From 456bb321a84411d81be1f20642abf1b86c2085d5 Mon Sep 17 00:00:00 2001 From: wtt <1872109740@qq.com> Date: Mon, 18 Jan 2021 11:56:37 +0800 Subject: [PATCH] update --- .../platform/operate/web/facade/PatientFacade.java | 29 +++- .../operate/web/worker/HugeQuanWeightWorker.java | 150 +++++++++++++++++++++ .../operate/web/worker/QuanWeightWorker.java | 57 ++------ 3 files changed, 188 insertions(+), 48 deletions(-) create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/HugeQuanWeightWorker.java diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java index cb09605..7cc9d60 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/PatientFacade.java @@ -792,7 +792,7 @@ public class PatientFacade { } List ps = patientsService.queryPatientBySort(pq, riskPatientsQueryRequest.getSort(), riskPatientsQueryRequest.getOrder()); if (CollectionUtils.isNotEmpty(ps)) { - data = convertToQuanWeight(ps,null); + data = convertToQuanWeight(ps); } } } @@ -884,7 +884,7 @@ public class PatientFacade { } List ps = patientsService.queryPatientBySort(pq, riskPatientsQueryRequest.getSort(), riskPatientsQueryRequest.getOrder()); if(CollectionUtils.isNotEmpty(ps)){ - data = convertToQuanWeight(ps,"judaer");//judaer巨大儿管理 + data = convertToHugeQuanWeight(ps);//巨大儿管理 } } } @@ -1498,7 +1498,7 @@ public class PatientFacade { } return data; } - private List convertToQuanWeight(List patientses,String type) { + private List convertToQuanWeight(List patientses) { List data = new ArrayList<>(); int batchSize = 4; int end = 0; @@ -1508,7 +1508,28 @@ public class PatientFacade { if (end > patientses.size()) { end = patientses.size(); } - listFuture.add(commonThreadPool.submit(new QuanWeightWorker(patientses.subList(i, end),mongoTemplate,commonService,basicConfigService,type))); + listFuture.add(commonThreadPool.submit(new QuanWeightWorker(patientses.subList(i, end),mongoTemplate,commonService,basicConfigService))); + } + for (Future f : listFuture) { + try { + data.addAll(( List) f.get(30, TimeUnit.SECONDS)); + } catch (Exception e) { + ExceptionUtils.catchException(e, "convertToQuanWeight get result Future error."); + } + } + return data; + } + private List convertToHugeQuanWeight(List patientses) { + List data = new ArrayList<>(); + int batchSize = 4; + int end = 0; + List listFuture = new ArrayList<>(); + for (int i = 0; i < patientses.size(); i += batchSize) { + end = (end + batchSize); + if (end > patientses.size()) { + end = patientses.size(); + } + listFuture.add(commonThreadPool.submit(new HugeQuanWeightWorker(patientses.subList(i, end),mongoTemplate,commonService,basicConfigService))); } for (Future f : listFuture) { try { diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/HugeQuanWeightWorker.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/HugeQuanWeightWorker.java new file mode 100644 index 0000000..82bc804 --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/HugeQuanWeightWorker.java @@ -0,0 +1,150 @@ +package com.lyms.platform.operate.web.worker; + +import com.lyms.platform.biz.service.BasicConfigService; +import com.lyms.platform.biz.service.CommonService; +import com.lyms.platform.common.utils.DateUtil; +import com.lyms.platform.common.utils.StringUtils; +import com.lyms.platform.operate.web.facade.PatientFacade; +import com.lyms.platform.pojo.MaternalDeliverModel; +import com.lyms.platform.pojo.PatientWeight; +import com.lyms.platform.pojo.Patients; +import org.apache.commons.collections.CollectionUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; + +import java.util.*; +import java.util.concurrent.Callable; + +/** + * 巨大儿 + * + * @Author: 武涛涛 + * @Date: 2021/1/4 9:28 + */ +public class HugeQuanWeightWorker implements Callable> { + + private static final Logger logger = LoggerFactory.getLogger(PatientFacade.class); + + private List patientses; + private MongoTemplate mongoTemplate; + private CommonService commonService; + private BasicConfigService basicConfigService; + + public HugeQuanWeightWorker(List patientses, + MongoTemplate mongoTemplate, + CommonService commonService, + BasicConfigService basicConfigService + ) { + this.patientses = patientses; + this.mongoTemplate = mongoTemplate; + this.commonService = commonService; + this.basicConfigService = basicConfigService; + } + + @Override + public List call() throws Exception { + List data = new ArrayList<>(); + for (Patients patients : patientses) + if (StringUtils.isNotEmpty(patients.getId())) { + Map map = new HashMap(); + map.put("fmDate", DateUtil.getyyyy_MM_dd(patients.getFmDate())); + if (patients.getFmWeek() != null) { + String dueWeek = ""; + String week = (patients.getFmWeek() / 7) + ""; + int day = (patients.getFmWeek() % 7); + dueWeek = "孕" + week + "周" + (day > 0 ? "+" + day + "天" : ""); + map.put("fmWeek", dueWeek); + } else { + map.put("fmWeek", ""); + } + map.put("username", patients.getUsername()); + map.put("age", patients.getAge()); + map.put("phone", patients.getPhone()); + map.put("currentWeek", patients.getType() == 3 ? "已分娩" : DateUtil.getWeekDesc(patients.getLastMenses(), new Date())); + String risk = getRiskFactor(patients.getRiskFactorId()); + if (org.apache.commons.lang.StringUtils.isEmpty(risk)) { + risk = (org.apache.commons.lang.StringUtils.isEmpty(patients.getoRiskFactor()) ? "" : patients.getoRiskFactor()); + } else { + risk = risk + (org.apache.commons.lang.StringUtils.isEmpty(patients.getoRiskFactor()) ? "" : "," + patients.getoRiskFactor()); + } +// String rFactor = commonService.resloveFactor(JsonUtil.toList(patients.getRiskLevelId(), String.class)); + map.put("riskFactor", risk); + map.put("patientId", patients.getId()); + map.put("pid", patients.getPid()); + map.put("cardNo", patients.getCardNo()); + + + List patientWeightList = mongoTemplate.find(Query.query(Criteria.where("patientId").is(patients.getId()).and("yn").ne("0")), PatientWeight.class); + if (CollectionUtils.isNotEmpty(patientWeightList)) { + PatientWeight patientWeight = patientWeightList.get(0); + if (patientWeight != null && StringUtils.isNotEmpty(patientWeight.getBmi())) { + map.put("bmi", patientWeight.getBmi()); + map.put("beforeHeight", patientWeight.getBeforeHeight()); + map.put("beforeWeight", patientWeight.getBeforeWeight()); + map.put("dayWeights", patientWeight.getDayWeights()); + if (patientWeight.getDayWeights() != null) { + int ii = 1; + for (Map.Entry entry : patientWeight.getDayWeights().entrySet()) { + String mapKey = entry.getKey(); + String mapValue = entry.getValue(); + map.put("dayWeights" + ii++, mapKey + "/" + mapValue); + } + } + } + + } + Query querymd = Query.query(Criteria.where("parentId").is(patients.getId()).and("yn").ne("0") + .and("baby").elemMatch(Criteria.where("babyWeight").gte("4000"))); + List deliverModels = mongoTemplate.find(querymd, MaternalDeliverModel.class); + if (CollectionUtils.isNotEmpty(deliverModels)) { + MaternalDeliverModel maternalDeliverModel = deliverModels.get(0); + List baby = maternalDeliverModel.getBaby(); + for (int i = 0; i < baby.size(); i++) { + MaternalDeliverModel.Baby baby1 = baby.get(i); + map.put("babyWeight", baby1.getBabyWeight()); + + } + } + data.add(map); + } + return data; + } + + + public static List filter(List level) { + List list = new ArrayList(); + List addEdList = new ArrayList(); + if (CollectionUtils.isNotEmpty(level)) { + for (Map map : level) { + if (!addEdList.contains(map.get("name"))) { + list.add(map); + addEdList.add(map.get("name")); + } + } + } + + return list; + } + + + private String getRiskFactor(List list) { + String riskFactor = ""; + if (list != null && list.size() > 0) { + for (String s : list) { + try { + riskFactor += basicConfigService.getOneBasicConfigById(s).getName(); + riskFactor += ","; + } catch (Exception e) { + riskFactor += ""; + } + } + } + if (riskFactor.length() > 0) { + return riskFactor.substring(0, riskFactor.length() - 1); + } + return riskFactor; + } +} \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/QuanWeightWorker.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/QuanWeightWorker.java index 47a3162..7d18657 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/QuanWeightWorker.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/QuanWeightWorker.java @@ -22,6 +22,8 @@ import java.util.*; import java.util.concurrent.Callable; /** + * 孕期体重异常管理 + * * @Author: 武涛涛 * @Date: 2021/1/4 9:28 */ @@ -32,19 +34,17 @@ public class QuanWeightWorker implements Callable> { private List patientses; private MongoTemplate mongoTemplate; private CommonService commonService; - private String type; private BasicConfigService basicConfigService; + public QuanWeightWorker(List patientses, MongoTemplate mongoTemplate, CommonService commonService, - BasicConfigService basicConfigService, - String type + BasicConfigService basicConfigService ) { this.patientses = patientses; this.mongoTemplate = mongoTemplate; this.commonService = commonService; this.basicConfigService = basicConfigService; - this.type = type; } @Override @@ -57,39 +57,8 @@ public class QuanWeightWorker implements Callable> { PatientWeight patientWeight = patientWeightList.get(0); if (patientWeight != null && com.lyms.platform.common.utils.StringUtils.isNotEmpty(patientWeight.getBmi())) { Map map = new HashMap(); - if(StringUtils.isEmpty(type)){ - //-------------------------孕期体重异常管理---字段---------------------- - puliMap(patients, patientWeight, map); - data.add(map); - - }else if("judaer".equals(type)) { - //-------------------------巨大儿管理---字段---------------------- - map.put("fmDate", DateUtil.getyyyy_MM_dd(patients.getFmDate())); - if (patients.getFmWeek() != null) { - String dueWeek = ""; - String week = (patients.getFmWeek() / 7) + ""; - int day = (patients.getFmWeek() % 7); - dueWeek = "孕" + week + "周" + (day > 0 ? "+" + day + "天" : ""); - map.put("fmWeek", dueWeek); - } else { - map.put("fmWeek", ""); - } - Query querymd = Query.query(Criteria.where("parentId").is(patients.getId()).and("yn").ne("0") - .and("baby").elemMatch(Criteria.where("babyWeight").gte("4000"))); - List deliverModels = mongoTemplate.find(querymd, MaternalDeliverModel.class); - if(CollectionUtils.isNotEmpty(deliverModels)){ - MaternalDeliverModel maternalDeliverModel = deliverModels.get(0); - List baby = maternalDeliverModel.getBaby(); - for (int i = 0; i < baby.size() ; i++) { - MaternalDeliverModel.Baby baby1 = baby.get(i); - map.put("babyWeight", baby1.getBabyWeight()); - puliMap(patients, patientWeight, map); - data.add(map); - } - } - - } - + puliMap(patients, patientWeight, map); + data.add(map); } } @@ -116,11 +85,11 @@ public class QuanWeightWorker implements Callable> { map.put("dayWeights", patientWeight.getDayWeights()); if (patientWeight.getDayWeights() != null) { int i = 1; - for(Map.Entry entry : patientWeight.getDayWeights().entrySet()){ + for (Map.Entry entry : patientWeight.getDayWeights().entrySet()) { String mapKey = entry.getKey(); String mapValue = entry.getValue(); // System.out.println(mapKey + "/" + mapValue); - map.put("dayWeights"+i++, mapKey + "/" + mapValue); + map.put("dayWeights" + i++, mapKey + "/" + mapValue); } } @@ -132,12 +101,12 @@ public class QuanWeightWorker implements Callable> { } - public static List filter(List level){ + public static List filter(List level) { List list = new ArrayList(); - List addEdList = new ArrayList(); - if(CollectionUtils.isNotEmpty(level)){ - for(java.util.Map map :level){ - if(!addEdList.contains(map.get("name"))){ + List addEdList = new ArrayList(); + if (CollectionUtils.isNotEmpty(level)) { + for (java.util.Map map : level) { + if (!addEdList.contains(map.get("name"))) { list.add(map); addEdList.add(map.get("name")); } -- 1.8.3.1