diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java index f908240..f5baca6 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java @@ -42,7 +42,7 @@ public class ReportController extends BaseController { @ResponseBody @TokenRequired @RequestMapping(value = "/patients", method = RequestMethod.GET) - public BaseObjectResponse patients(String provinceId, String cityId, String areaId, String streetId, Integer statistType, Integer statistVal, + public BaseObjectResponse patients(String provinceId, String cityId, String areaId, String streetId, @RequestParam Integer statistType, Integer statistVal, Integer ageType, Integer patientType, Date startDate, Date endDate, HttpServletRequest request) { return reportService.patients(provinceId, cityId, areaId, streetId, statistType, statistVal, ageType, patientType, startDate, endDate, getUserId(request)); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/ViewFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/ViewFacade.java index bc30158..43f617e 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/ViewFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/ViewFacade.java @@ -1488,7 +1488,7 @@ public class ViewFacade { if (antExcAddOther.getFitness() != null) { String fitness = FitnessEnums.getTitle(Integer.parseInt(antExcAddOther.getFitness().toString())); if (antExcAddOther.getFitnessRemark() != null) { - mapData.put("fitness", fitness + "(," + antExcAddOther.getFitnessRemark() + ")"); + mapData.put("fitness", fitness + "(" + antExcAddOther.getFitnessRemark() + ")"); } else { mapData.put("fitness", fitness); } @@ -1515,7 +1515,7 @@ public class ViewFacade { if (otherMap.containsKey("fmType")) { String fmType = CZFmTypeEnums.getTitle(Integer.parseInt(otherMap.get("fmType").toString())); if (otherMap.get("fmTypeRemark") != null) { - mapData.put("fmType", fmType + "," + otherMap.get("fmTypeRemark")); + mapData.put("fmType", fmType + "(" + otherMap.get("fmTypeRemark") + ")"); } else { mapData.put("fmType", fmType); } @@ -1525,7 +1525,7 @@ public class ViewFacade { if (otherMap.containsKey("fitness")) { String fitness = FitnessEnums.getTitle(Integer.parseInt(otherMap.get("fitness").toString())); if (otherMap.get("fitnessRemark") != null) { - mapData.put("fitness", fitness + "," + otherMap.get("fitnessRemark")); + mapData.put("fitness", fitness + "(" + otherMap.get("fitnessRemark") + ")"); } else { mapData.put("fitness", fitness); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java index f0ed9e0..76bd8c0 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java @@ -184,7 +184,7 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService /** * 建档统计 - * @param statistType 统计环比 1=周 2=月 3=季度 4=半年 5=年 + * @param statistType 1=占比 2=环比 * @param ageType 1=全部年龄 2=20岁以下 3=20-30岁 4=30-40岁 5=40岁以上 * @param patientType 建档孕周 1=孕早期 2=孕中期 3=孕晚期 * @return @@ -243,78 +243,77 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService // 拼装tab数据 List> range = DateUtil.getRange(startDate, endDate); - if(StringUtils.isNotEmpty(cityId)) { // 按照区县来 - titleList.add(""); - titleList.add(""); - titleList.add(""); - for (Map map : range) { - titleList.add(DateUtil.getyyyy_mm(map.get("cname"))); - } - } else { // 按照城市来 - titleList.add("城市名称"); - titleList.add("机构数"); - titleList.add("统计指标(人)"); - for (Map map : range) { - titleList.add(DateUtil.getyyyy_mm(map.get("cname"))); - } - tabList.add(titleList); - List> infos = new ArrayList<>(); - for (Patients patient : patients) { - for (Map map : hospitals) { - if(patient.getHospitalId().equals(map.get("id").toString())) { - boolean flag = true; - for (Map info : infos) { - if(map.get("cityId").equals(info.get("id"))) { - Set hids = (Set) info.get("hids"); - hids.add(patient.getHospitalId()); - for (Map dateMap : range) { - if(patient.getBookbuildingDate().getTime() >= dateMap.get("start").getTime() - && patient.getBookbuildingDate().getTime() < dateMap.get("end").getTime()) { - String monthKey = DateUtil.getyyyy_mm(dateMap.get("cname")); - if(info.containsKey(monthKey)) { - info.put(monthKey, (Integer) info.get(monthKey) + 1); - flag = false; - } else { - info.put(monthKey, 1); - flag = false; - } - } - } - } - } - if(flag) { + titleList.add((StringUtils.isNotEmpty(cityId) ? "区县" : "城市") + "名称"); + titleList.add("机构数"); + titleList.add("统计指标(人)"); + for (Map map : range) { + titleList.add(DateUtil.getyyyy_mm(map.get("cname"))); + } + tabList.add(titleList); + + List> infos = new ArrayList<>(); + for (Patients patient : patients) { + for (Map map : hospitals) { + if(patient.getHospitalId().equals(map.get("id").toString())) { + boolean flag = true; + for (Map info : infos) { + if(map.get("cityId").equals(info.get("id"))) { + Set hids = (Set) info.get("hids"); + hids.add(patient.getHospitalId()); for (Map dateMap : range) { if(patient.getBookbuildingDate().getTime() >= dateMap.get("start").getTime() && patient.getBookbuildingDate().getTime() < dateMap.get("end").getTime()) { String monthKey = DateUtil.getyyyy_mm(dateMap.get("cname")); - Map info = new HashMap<>(); - Set hids = new HashSet<>(); - hids.add(patient.getHospitalId()); - info.put(monthKey, 1); - info.put("id", map.get("cityId")); - info.put("hids", hids); - infos.add(info); + if(info.containsKey(monthKey)) { + info.put(monthKey, (Integer) info.get(monthKey) + 1); + flag = false; + } else { + info.put(monthKey, 1); + flag = false; + } } } } } + if(flag) { + for (Map dateMap : range) { + if(patient.getBookbuildingDate().getTime() >= dateMap.get("start").getTime() + && patient.getBookbuildingDate().getTime() < dateMap.get("end").getTime()) { + String monthKey = DateUtil.getyyyy_mm(dateMap.get("cname")); + Map info = new HashMap<>(); + Set hids = new HashSet<>(); + hids.add(patient.getHospitalId()); + info.put(monthKey, 1); +// info.put("id", map.get("cityId")); + info.put("id", map.get((StringUtils.isNotEmpty(cityId) ? "areaId" : "cityId"))); + info.put("hids", hids); + infos.add(info); + } + } + } } } + } - for (Map info : infos) { - List tempList = new ArrayList<>(); - tempList.add(findName(info.get("id"))); - tempList.add(((Set) info.get("hids")).size() + ""); - tempList.add("建档总数"); - for (Map map : range) { - tempList.add(info.containsKey(DateUtil.getyyyy_mm(map.get("cname"))) ? - info.get(DateUtil.getyyyy_mm(map.get("cname"))) + "" : "0"); - } - tabList.add(tempList); - } - System.out.println(tabList); + for (Map info : infos) { + List tempList = new ArrayList<>(); + tempList.add(findName(info.get("id"))); + tempList.add(((Set) info.get("hids")).size() + ""); + tempList.add("建档总数"); + for (Map map : range) { + tempList.add(info.containsKey(DateUtil.getyyyy_mm(map.get("cname"))) ? + info.get(DateUtil.getyyyy_mm(map.get("cname"))) + "" : "0"); } + tabList.add(tempList); } + System.out.println(tabList); + } +// +// if(StringUtils.isNotEmpty(cityId)) { // 按照区县来 对应孕妇建档统计-市 +// +// } else { // 按照城市来 对应孕妇建档统计-省 +// +// } setTabListInfo(tabList); @@ -323,12 +322,16 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService barMap.put("name", "建档总数"); series.add(barMap); - Integer count = 0; - for (Integer num : bar) { - count += num; - } - for (Integer num : bar) { - line.add(MathUtil.getProportion(num, count)); + if(statistType == 1) { + Integer count = 0; + for (Integer num : bar) { + count += num; + } + for (Integer num : bar) { + line.add(MathUtil.getProportion(num, count)); + } + } else if(statistType == 2) { + } lineMap.put("data", line); lineMap.put("type", "line"); @@ -464,12 +467,21 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService return patients; } - // 建档孕周 1=孕早期 2=孕中期 3=孕晚期 + // 建档孕周 1=孕早期(0~12周) 2=孕中期(13-27) 3=孕晚期(28~42) private void doFilter(List patients, Integer ageType, Integer patientType) { if(patientType != null) { Iterator iterator = patients.iterator(); while (iterator.hasNext()) { - + Integer week = DateUtil.getWeek(iterator.next().getLastMenses(), new Date()); + if(week != null) { + if(patientType == 1 && week > 12) { + iterator.remove(); + } else if(patientType == 2 && (week < 13 || week > 27)) { + iterator.remove(); + } else if(patientType == 3 && week < 28) { + iterator.remove(); + } + } } } if (ageType != null) {