diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyFirstRistRecordController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyFirstRistRecordController.java index 829092c..2f65b7c 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyFirstRistRecordController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyFirstRistRecordController.java @@ -9,6 +9,7 @@ import com.lyms.platform.operate.web.facade.BabyFirstRistRecordFacade; import com.lyms.platform.pojo.Authentication; import com.lyms.platform.query.AuthenticationQuery; import com.lyms.platform.query.BabyFirstRistRecordQuery; +import com.lyms.platform.query.BabyModelQuery; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; @@ -43,6 +44,23 @@ public class BabyFirstRistRecordController extends BaseController { LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); return babyFirstRistRecordFacade.queryListPage(ModelQuery,loginState.getId()); } + /** + * 儿童档案历史数据执行方法。-儿童首次高危确诊 + * 不会影响现有首次高危记录 + * hospitalIdList 放多个医院机构的id {n,n..} 必填 + * buildDateStart 年月日时间:2022-6-27 选填 + * buildDateEnd 年月日时间:2022-6-27 选填 + * @param babyQuery + * @param request + * @return + */ + @ResponseBody + @TokenRequired + @RequestMapping(value = "/historyDataFirstRist",method = RequestMethod.GET) + public BaseResponse historyDataFirstRist(BabyModelQuery babyQuery, HttpServletRequest request) { + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + return babyFirstRistRecordFacade.historyDataFirstRist(babyQuery,loginState.getId()); + } } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyFirstRistRecordFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyFirstRistRecordFacade.java index 6ff8248..dc5ad58 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyFirstRistRecordFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyFirstRistRecordFacade.java @@ -1,42 +1,44 @@ package com.lyms.platform.operate.web.facade; -import com.lyms.platform.biz.service.AuthenticationService; +import com.lyms.platform.biz.service.BabyBookbuildingService; +import com.lyms.platform.biz.service.BabyCheckService; import com.lyms.platform.biz.service.BabyFistRistRecordService; import com.lyms.platform.biz.service.BasicConfigService; import com.lyms.platform.common.constants.ErrorCodeConstants; -import com.lyms.platform.common.enums.OptActionEnums; import com.lyms.platform.common.enums.SexEnum; import com.lyms.platform.common.enums.YnEnums; import com.lyms.platform.common.result.BaseObjectResponse; import com.lyms.platform.common.result.BaseResponse; import com.lyms.platform.common.utils.*; -import com.lyms.platform.operate.web.utils.CommonsHelper; -import com.lyms.platform.operate.web.utils.ResponseUtil; -import com.lyms.platform.permission.dao.master.CouponMapper; import com.lyms.platform.permission.model.Organization; import com.lyms.platform.permission.model.Users; import com.lyms.platform.permission.service.OrganizationService; import com.lyms.platform.permission.service.UsersService; -import com.lyms.platform.pojo.Authentication; +import com.lyms.platform.pojo.BabyCheckModel; import com.lyms.platform.pojo.BabyFirstRistRecord; +import com.lyms.platform.pojo.BabyModel; import com.lyms.platform.pojo.BasicConfig; -import com.lyms.platform.query.AuthenticationQuery; +import com.lyms.platform.query.BabyCheckModelQuery; import com.lyms.platform.query.BabyFirstRistRecordQuery; +import com.lyms.platform.query.BabyModelQuery; import com.lyms.platform.query.BasicConfigQuery; import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.data.domain.Sort; -import org.springframework.data.mongodb.core.MongoTemplate; -import org.springframework.data.mongodb.core.query.Criteria; -import org.springframework.data.mongodb.core.query.Query; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Component; +import java.util.concurrent.Future; +import java.util.concurrent.Callable; -import javax.servlet.http.HttpServletResponse; import java.util.*; @Component public class BabyFirstRistRecordFacade { @Autowired + @Qualifier("commonThreadPool") + private ThreadPoolTaskExecutor commonThreadPool; + @Autowired private AutoMatchFacade autoMatchFacade; @Autowired private BasicConfigService basicConfigService; @@ -48,6 +50,10 @@ public class BabyFirstRistRecordFacade { private UsersService usersService; @Autowired private OrganizationService organizationService; + @Autowired + private BabyBookbuildingService babyBookbuildingService; + @Autowired + private BabyCheckService babyCheckService; @@ -144,4 +150,82 @@ public class BabyFirstRistRecordFacade { return br; } + public BaseResponse historyDataFirstRist(BabyModelQuery babyQuery, Integer id) { + BaseResponse br = new BaseResponse(); + if(CollectionUtils.isEmpty(babyQuery.getHospitalIdList())){ + br.setErrorcode(ErrorCodeConstants.PARAMETER_ERROR); + br.setErrormsg("参数错误"); + return br; + } + babyQuery.setYn(YnEnums.YES.getId()); + babyQuery.setHighRisk(1); + if (null!=babyQuery.getBuildDateEnd()) { + babyQuery.setBuildDateEnd(DateUtil.getDayLastSecond(babyQuery.getBuildDateEnd())); + } + List list=babyBookbuildingService.queryBabyBuildByCond(babyQuery); + if(CollectionUtils.isNotEmpty(list)) { + int batchSize = 20; + int end = 0; + List listFuture = new ArrayList<>(); + for (int i = 0; i < list.size(); i += batchSize) { + end = (end + batchSize); + if (end > list.size()) { + end = list.size(); + } + final List babyModels = list.subList(i, end); + listFuture.add(commonThreadPool.submit(new Callable() { + @Override + public Object call() throws Exception { + if (CollectionUtils.isNotEmpty(babyModels)) { + for (BabyModel model : babyModels) { + //儿保检查是否添加过高危 + int ristYn = 0; + //儿保检查记录 + BabyCheckModelQuery query = new BabyCheckModelQuery(); + query.setYn(YnEnums.YES.getId()); + query.setBuildId(model.getId()); + List babyCheckModels = babyCheckService.queryBabyCheckRecord(query); + for (BabyCheckModel babyCheckModel : babyCheckModels) { + BabyFirstRistRecord firstRistRecord = babyFistRistRecordService.queryByPId(babyCheckModel.getId()); + if (null != firstRistRecord) { + ristYn = 1; + break; + } + } + if (ristYn == 0) { + //建档记录是否添加过 + BabyFirstRistRecord firstRistRecord = babyFistRistRecordService.queryByPId(model.getId()); + //增加高危记录 + if (null == firstRistRecord) { + firstRistRecord=new BabyFirstRistRecord(); + firstRistRecord.setYn(YnEnums.YES.getId()); + firstRistRecord.setRistType(0);//初次高危发生类型 0:建档高危。1:检查高危 + firstRistRecord.setHospitalId(model.getHospitalId());//建档/检查医院 + firstRistRecord.setParentId(model.getId());//建档/检查 数据id + firstRistRecord.setName(model.getName()); + firstRistRecord.setSex(model.getSex()); + firstRistRecord.setBirth(model.getBirth()); + firstRistRecord.setHighRiskInfo(model.getHighRiskInfo()); + firstRistRecord.setDiagnose(model.getDiagnose()); + firstRistRecord.setDiagnosisTime(model.getBuildDate()); + firstRistRecord.setCheckDoctor(model.getBuildDoctor());//建档/检查医生 + firstRistRecord.setmName(model.getMname()); + firstRistRecord.setmPhone(model.getMphone()); + firstRistRecord.setmCertNo(model.getMcertNo()); + firstRistRecord.setFmHospitalId(model.getDeliverOrg()); + babyFistRistRecordService.add(firstRistRecord); + } + } + } + } + return null; + } + })); + } + + } + br.setErrorcode(ErrorCodeConstants.SUCCESS); + br.setErrormsg("成功"); + return br; + } }