diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntExRecordFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntExRecordFacade.java index f0aaf28..80c8795 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntExRecordFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AntExRecordFacade.java @@ -18,6 +18,8 @@ import com.lyms.platform.operate.web.utils.CommonsHelper; import com.lyms.platform.operate.web.utils.FunvCommonUtil; import com.lyms.platform.operate.web.utils.UnitConstants; import com.lyms.platform.operate.web.utils.UnitUtils; +import com.lyms.platform.operate.web.worker.AntExRecordWorker; +import com.lyms.platform.operate.web.worker.WorkHR; import com.lyms.platform.permission.model.Organization; import com.lyms.platform.permission.model.OrganizationQuery; import com.lyms.platform.permission.model.Users; @@ -29,12 +31,16 @@ import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.MapUtils; import org.apache.commons.lang.math.NumberUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Component; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.OutputStream; import java.util.*; +import java.util.concurrent.Future; +import java.util.concurrent.TimeUnit; /** * 产检管理 @@ -61,6 +67,9 @@ public class AntExRecordFacade { private OrganizationService organizationService; @Autowired private DataPermissionService dataPermissionService; + @Autowired + @Qualifier("commonThreadPool") + private ThreadPoolTaskExecutor commonThreadPool; public void syncAntRecordToList(String hospitalId) { recordService.syncAntRecordToList(hospitalId); @@ -214,8 +223,7 @@ public class AntExRecordFacade { List data = new ArrayList<>(); List antExRecordModelList = recordService.queryAntExRecords(antExRecordQuery); if (CollectionUtils.isNotEmpty(antExRecordModelList)) { - for (AntExRecordModel e : antExRecordModelList) { - AntExManagerResult antExManagerResult = new AntExManagerResult(); + /*AntExManagerResult antExManagerResult = new AntExManagerResult(); antExManagerResult.convertToResult(e); if (isRegion) { //产检医院 @@ -270,9 +278,25 @@ public class AntExRecordFacade { antExManagerResult.setChTimes(dichi); //高危因素 antExManagerResult.setrLevel(commonService.findRiskLevel(e.gethLevel())); - antExManagerResult.setRiskFactor(commonService.resloveFactor(e.gethRisk())); + antExManagerResult.setRiskFactor(commonService.resloveFactor(e.gethRisk()));*/ + - data.add(antExManagerResult); + int batchSize = 4; + int end = 0; + List listFuture = new ArrayList<>(); + for (int i = 0; i < antExRecordModelList.size(); i += batchSize) { + end = (end + batchSize); + if (end > antExRecordModelList.size()) { + end = antExRecordModelList.size(); + } + listFuture.add(commonThreadPool.submit(new AntExRecordWorker(antExRecordModelList.subList(i, end), isRegion, organizationService, usersService, recordService, commonService, hospital, basicConfigService))); + } + for (Future f : listFuture) { + try { + data.addAll((List) f.get(30, TimeUnit.SECONDS)); + } catch (Exception e) { + ExceptionUtils.catchException(e, "antexrecord findList get result future error."); + } } } return new BaseListResponse().setData(data).setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setPageInfo(antExRecordQuery.getPageInfo()); @@ -400,7 +424,6 @@ public class AntExRecordFacade { } } } else { -// List list = patientsService.aggregateOne(patientsQuery1); antExRecordQuery.setNeNullCheckDoctor(true); List list = recordService.aggregateOne(antExRecordQuery); for (HashMap map : list) { @@ -550,145 +573,4 @@ public class AntExRecordFacade { } } - - - //查询复诊接口 - public BaseObjectResponse findAntenatalExamination(String id){ - - BaseObjectResponse br = new BaseObjectResponse(); - if (org.apache.commons.lang.StringUtils.isEmpty(id)){ - br.setErrorcode(ErrorCodeConstants.PARAMETER_ERROR); - br.setErrormsg("id为空"); - return br; - } - - AntenatalExaminationModel data = antExService.findOneById(id); - if (data==null || data.getYn()==YnEnums.NO.getId()){ - br.setErrorcode(ErrorCodeConstants.NO_DATA); - br.setErrormsg("没有查询到数据"); - return br; - } - - - if (org.apache.commons.lang.StringUtils.isEmpty(data.getParentId())){ - br.setErrorcode(ErrorCodeConstants.PARAMETER_ERROR); - br.setErrormsg("数据异常"); - return br; - } - - Patients patients = patientsService.findOnePatientById(data.getParentId()); - if (patients==null || patients.getYn()==YnEnums.NO.getId()){ - br.setErrorcode(ErrorCodeConstants.PARAMETER_ERROR); - br.setErrormsg("孕妇信息不存在"); - return br; - } - - Map map= new HashMap<>(); - /* 基本信息 */ - //孕妇基本信息 - map.put("id",data.getId()); - map.put("username",patients.getUsername()); - map.put("birth",DateUtil.getyyyy_MM_dd(patients.getBirth())); - map.put("age",DateUtil.getAge(patients.getBirth())); - map.put("phone",patients.getPhone()); - map.put("fmWeek",patients.getFmWeek()); - map.put("dueDate",DateUtil.getyyyy_MM_dd(patients.getDueDate())); - map.put("mremark",patients.getMremark()); - map.put("oRiskFactor",patients.getoRiskFactor()); - map.put("riskScore",patients.getRiskScore()); - //产检基本信息 - map.put("checkDate",DateUtil.getyyyy_MM_dd(data.getCheckDate())); - map.put("currentDueDate",data.getCurrentDueDate()); - map.put("checkDoctor", data.getCheckDoctor()); - String hospital = ""; - if (org.apache.commons.lang.StringUtils.isNotEmpty(data.getHospitalId())){ - Organization organization = organizationService.getOrganization(Integer.parseInt(data.getHospitalId())); - if (organization!=null && organization.getYn()==YnEnums.YES.getId()){ - hospital = organization.getName(); - } - } - map.put("hospital", hospital); - map.put("nextCheckTime",DateUtil.getyyyy_MM_dd(data.getNextCheckTime())); - map.put("cDueWeek", data.getcDueWeek()); - - /* 复诊信息 */ - map.put("chiefComplaint", data.getChiefComplaint()); - map.put("weight", UnitUtils.unitSplice(data.getWeight(), UnitConstants.KG)); - // 血压 - String ssy = ""; - String szy = ""; - Map chBpMap = JsonUtil.getMap(data.getBp()); - if (MapUtils.isNotEmpty(chBpMap)) { - ssy = chBpMap.get("ssy"); - szy = chBpMap.get("szy"); - } - map.put("bp", UnitUtils.unitSplice(ssy + "/" + szy, UnitConstants.MMHG)); - map.put("gongGao", UnitUtils.unitSplice(data.getGongGao(), UnitConstants.CM)); - map.put("abdominalCircumference", UnitUtils.unitSplice(data.getAbdominalCircumference(), UnitConstants.CM)); - String edema = ""; - if (org.apache.commons.lang.StringUtils.isNotEmpty(data.getEdema())){ - for (FuZhongEnums fuZhongEnums:FuZhongEnums.values()){ - if (data.getEdema().equals(fuZhongEnums.getId())){ - edema = fuZhongEnums.getName(); - } - } - } - map.put("edema",edema); - - map.put("tireNumber", TaiShuEnums.getTitle(data.getTireNumber())); - //胎儿情况 - List tireList = new ArrayList<>(); - if (CollectionUtils.isNotEmpty(data.getTireData())){ - for (Object temp : data.getTireData()){ - Map tire = JsonUtil.getMap(temp.toString()); - String heartRate = tire.get("heartRate"); - String fetalPosition = tire.get("fetalPosition"); - String fetalPresentation = tire.get("fetalPresentation"); - String join = tire.get("join"); - - Map tireMap = new HashMap<>(); - tireMap.put("heartRate",UnitUtils.unitSplice(heartRate, UnitConstants.CIFEN)); - tireMap.put("fetalPosition", FetalPositionEnums.getTitle(fetalPosition)); - tireMap.put("fetalPresentation", FetalEnums.getTitle(fetalPresentation)); - tireMap.put("join", JoinEnums.getTitle(join)); - tireList.add(tireMap); - } - } - map.put("tireData",tireList); - - /* 辅助信息 */ - map.put("hemoglobin", UnitUtils.unitSplice(data.getHemoglobin(), UnitConstants.GL)); - map.put("urineProtein",data.getUrineProtein()); - map.put("bloodSugar", UnitUtils.unitSplice(data.getUrineProtein(), UnitConstants.MMOLL)); - map.put("bChao",data.getbChao()); - - /* 诊断指导 */ - String diagnosis = ""; - if (org.apache.commons.lang.StringUtils.isNotEmpty(data.getDiagnosis())){ - List temp = JsonUtil.toList(data.getDiagnosis(), String.class); - if (CollectionUtils.isNotEmpty(temp)){ - - StringBuilder sb = new StringBuilder(); - - for (String sId : temp){ - sb.append(FunvCommonUtil.getBaseicConfigByid(sId, basicConfigService)).append(","); - } - if (sb.toString().endsWith(",")) { - diagnosis = sb.substring(0, sb.length() - 1); - }else { - diagnosis = sb.toString(); - } - } - } - map.put("diagnosis",diagnosis); - map.put("treatmentOpinion",data.getTreatmentOpinion()); - map.put("guide",data.getGuide()); - - br.setErrorcode(ErrorCodeConstants.SUCCESS); - br.setErrormsg("成功"); - br.setData(map); - return br; - } - - } \ No newline at end of file