From 359c96b8eb7137b4fb71fcd4f2ffc34a6740a2e4 Mon Sep 17 00:00:00 2001 From: wtt <1872109740@qq.com> Date: Wed, 13 Jan 2021 16:32:36 +0800 Subject: [PATCH] update --- .../platform/operate/web/facade/PatientFacade.java | 31 +++++-- .../operate/web/worker/QuanWeightWorker.java | 103 +++++++++++++++------ 2 files changed, 101 insertions(+), 33 deletions(-) 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 aec03cf..93f2013 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 @@ -789,7 +789,7 @@ public class PatientFacade { pq.setLimit(riskPatientsQueryRequest.getLimit()); List ps = patientsService.queryPatientBySort(pq, riskPatientsQueryRequest.getSort(), riskPatientsQueryRequest.getOrder()); if (CollectionUtils.isNotEmpty(ps)) { - data = convertToQuanWeight(ps); + data = convertToQuanWeight(ps,null); } } } @@ -841,7 +841,7 @@ public class PatientFacade { List deliverModels = mongoTemplate.find(querymd, MaternalDeliverModel.class); if(CollectionUtils.isNotEmpty(deliverModels)){ MaternalDeliverModel maternalDeliverModel = deliverModels.get(0); - idsMd.add(patients.getId()); + idsMd.add(maternalDeliverModel.getParentId()); } } } @@ -869,7 +869,7 @@ public class PatientFacade { pq.setLimit(riskPatientsQueryRequest.getLimit()); List ps = patientsService.queryPatientBySort(pq, riskPatientsQueryRequest.getSort(), riskPatientsQueryRequest.getOrder()); if(CollectionUtils.isNotEmpty(ps)){ - data = convertToQuanWeight(ps); + data = convertToQuanWeight(ps,"judaer");//judaer巨大儿管理 } } } @@ -939,11 +939,13 @@ public class PatientFacade { if (CollectionUtils.isNotEmpty(list)) { for (Map map : list) { Map m = new HashMap <>(); + m.put("fmDate", map.get("fmDate")); m.put("username", map.get("username")); m.put("age", map.get("age")); m.put("phone", map.get("phone")); - m.put("currentWeek", map.get("currentWeek")); + m.put("fmWeek", map.get("fmWeek")); m.put("riskFactor", map.get("riskFactor")); + m.put("babyWeight", map.get("babyWeight")); m.put("bmi", map.get("bmi")); m.put("beforeHeight", map.get("beforeHeight")); m.put("beforeWeight", map.get("beforeWeight")); @@ -968,7 +970,7 @@ public class PatientFacade { } OutputStream out = response.getOutputStream(); Map cnames = new LinkedHashMap<>(); - cnamesMap(cnames); + cnamesMapWeight(cnames); response.setContentType("application/octet-stream"); response.setCharacterEncoding("UTF-8"); response.setHeader("Content-Disposition", "attachment;fileName=" + "巨大儿管理.xls"); @@ -993,6 +995,21 @@ public class PatientFacade { cnames.put("dayWeight"+i,"测量日期/体重"+i); } } + private void cnamesMapWeight(Map cnames) { + cnames.put("fmDate", "分娩日期"); + cnames.put("username", "姓名"); + cnames.put("age", "年龄"); + cnames.put("phone", "手机号"); + cnames.put("fmWeek", "分娩孕周"); + cnames.put("riskFactor", "高危因素"); + cnames.put("babyWeight", "新生儿体重"); + cnames.put("bmi", "BMI指数"); + cnames.put("beforeHeight", "身高"); + cnames.put("beforeWeight", "孕前体重"); + for (int i = 0; i <= 20 ; i++) { + cnames.put("dayWeight"+i,"测量日期/体重"+i); + } + } /** * list排序(按照日期升序) @@ -1466,7 +1483,7 @@ public class PatientFacade { } return data; } - private List convertToQuanWeight(List patientses) { + private List convertToQuanWeight(List patientses,String type) { List data = new ArrayList<>(); int batchSize = 4; int end = 0; @@ -1476,7 +1493,7 @@ public class PatientFacade { if (end > patientses.size()) { end = patientses.size(); } - listFuture.add(commonThreadPool.submit(new QuanWeightWorker(patientses.subList(i, end),mongoTemplate,commonService,basicConfigService))); + listFuture.add(commonThreadPool.submit(new QuanWeightWorker(patientses.subList(i, end),mongoTemplate,commonService,basicConfigService,type))); } for (Future f : listFuture) { try { 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 ce55e08..59bb041 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 @@ -4,7 +4,9 @@ import com.lyms.platform.biz.service.BasicConfigService; import com.lyms.platform.biz.service.CommonService; import com.lyms.platform.common.enums.YnEnums; 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 com.lyms.platform.query.AntExChuQuery; @@ -30,57 +32,106 @@ 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 + BasicConfigService basicConfigService, + String type ) { this.patientses = patientses; this.mongoTemplate = mongoTemplate; this.commonService = commonService; this.basicConfigService = basicConfigService; + this.type = type; } @Override public List call() throws Exception { List data = new ArrayList<>(); - for (Patients patients : patientses) { - if(com.lyms.platform.common.utils.StringUtils.isNotEmpty(patients.getId())){ + for (Patients patients : patientses) + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(patients.getId())) { List patientWeightList = mongoTemplate.find(Query.query(Criteria.where("patientId").is(patients.getId()).and("yn").ne("0")), PatientWeight.class); - if(CollectionUtils.isNotEmpty(patientWeightList)){ + if (CollectionUtils.isNotEmpty(patientWeightList)) { PatientWeight patientWeight = patientWeightList.get(0); - if(patientWeight!=null && com.lyms.platform.common.utils.StringUtils.isNotEmpty(patientWeight.getBmi())){ + if (patientWeight != null && com.lyms.platform.common.utils.StringUtils.isNotEmpty(patientWeight.getBmi())) { Map map = new HashMap(); - 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("bmi", patientWeight.getBmi()); - map.put("beforeHeight", patientWeight.getBeforeHeight()); - map.put("beforeWeight", patientWeight.getBeforeWeight()); - map.put("dayWeights",patientWeight.getDayWeights()); + 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); + } + } + + } - map.put("patientId", patients.getId()); - map.put("pid", patients.getPid()); - map.put("cardNo", patients.getCardNo()); - data.add(map); } } } - } return data; } + + private void puliMap(Patients patients, PatientWeight patientWeight, Map map) { + 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("bmi", patientWeight.getBmi()); + map.put("beforeHeight", patientWeight.getBeforeHeight()); + map.put("beforeWeight", patientWeight.getBeforeWeight()); + map.put("dayWeights", patientWeight.getDayWeights()); + if (patientWeight.getDayWeights() != null) { + int i = 1; + 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("patientId", patients.getId()); + map.put("pid", patients.getPid()); + map.put("cardNo", patients.getCardNo()); + + + } + public static List filter(List level){ List list = new ArrayList(); List addEdList = new ArrayList(); -- 1.8.3.1