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 f62b378..d6ebacf 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 @@ -61,7 +61,8 @@ public class ReportController extends BaseController { * @param childBirth 统计范围 1=孕妇 3=产妇 不传=全部 * @return */ - @RequestMapping(method = RequestMethod.GET, value = "/getCheckNumber") +// @RequestMapping(method = RequestMethod.GET, value = "/getCheckNumber") + @RequestMapping(method = RequestMethod.GET, value = "/getCheckStatistics") @ResponseBody @TokenRequired public BaseObjectResponse getCheckNumber(Date startDate, Date endDate, 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 e7b99d2..9d9d3fe 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 @@ -1170,6 +1170,7 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService } List patients = mongoUtil.findField(Patients.class, criteria,"id", "bookbuildingDate", "fmDate", "pid"); List patientIds = CollectionUtils.getId(patients, "id", String.class); + Map restMap = new HashMap<>(); if(CollectionUtils.isNotEmpty(patientIds)) { /** 初诊数据 */ Criteria c = Criteria.where("hospitalId").is(hid).and("parentId").in(patientIds); @@ -1182,27 +1183,16 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService doMerge(datas, antExChuModels, antExModels, patients); /** 拼装好产检次数 */ - List> grid = getCheckNumerGrid(datas); + List yData = new ArrayList<>(); + List> grid = getCheckNumerGrid(datas, yData); + restMap.put("grid", grid); + restMap.put("xAxis", Arrays.asList("1次", "2次", "3次", "4次", "5次", "6次", "7次", "8次", "9次", "10次", "11次", "12次", "≥13次")); + restMap.put("yAxis", yData); } - -// List antExChuModels = mongoTemplate.find(antexcQuery, AntExChuModel.class); - -// mongoUtil.findField(AntExChuModel.class, antexcQuery, ""); - - /*Map restMap = new HashMap<>(); - List params = new ArrayList<>(); - String hospitalId = autoMatchFacade.getHospitalId(userId); - List> mapList = reportDao.findList(getAreaCountFacadeSql(startDate, endDate, startWeek, endWeek, childBirth, hospitalId, params), params); - List peopleList = createPeoples(mapList); - restMap.put("grid", createGrid( createPeoples(mapList), createProportion(peopleList))); - restMap.put("xAxis", Arrays.asList("1次", "2次", "3次", "4次", "5次", "6次", "7次", "8次", "9次", "10次", "11次", "12次", "≥13次")); *//** x轴数据 *//* - restMap.put("yAxis", createYData(peopleList)); - - rest.setData(restMap);*/ return rest; } - private List> getCheckNumerGrid(List> datas) { + private List> getCheckNumerGrid(List> datas, List yData) { /** key = pid, value = 初诊复诊记录 */ Map>> userCheckInfo = new HashMap<>(); for (Map data : datas) { @@ -1216,7 +1206,6 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService userCheckInfo.put(patientId, maps); } } - System.out.println("==========="); Map countMap = new HashMap<>(); for (int i = 1; i < 14; i++) { countMap.put(i, 0); @@ -1231,7 +1220,6 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService /** key=pid value=count */ Map tempMap = new HashMap<>(); Integer other = 0; - Date otherDate = new Date(); for (Map map : value) { Date fmDate = (Date) map.get("fmDate"); if(fmDate == null) { @@ -1244,16 +1232,73 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService tempMap.put(fmDate, 1); } } - tempMap.put(otherDate, other); - System.out.println(">>> " + tempMap + " >>" + other); + if(other != 0) { /** 处理大于或等于13次 没有分娩时间的数据 */ + if(other >= 13) { + countMap.put(13, countMap.get(13) + 1); + } else { + countMap.put(other, countMap.get(other) + 1); + } + } + + Set> entries1 = tempMap.entrySet(); + for (Map.Entry en : entries1) { + Integer v = en.getValue(); + if(v >= 13) { + countMap.put(13, countMap.get(13) + 1); + } else { + countMap.put(v, countMap.get(v) + 1); + } + + } } } + /** 处理总数 */ + Integer count = 0; + for (int i = 1; i < 14; i++) { + count += countMap.get(i); + } + countMap.put(0, count); List> restList = new ArrayList<>(); Map peoples = new LinkedHashMap<>(); - peoples.put("desc", "产检人数"); + peoples.put("desc", "产检人数"); /** 产检人数 */ + peoples.put("count", countMap.get(0));/** 总计 */ + peoples.put("once", countMap.get(1)); + peoples.put("twice", countMap.get(2)); + peoples.put("threeTimes", countMap.get(3)); + peoples.put("fourTimes", countMap.get(4)); + peoples.put("fiveTimes", countMap.get(5)); + peoples.put("sixTimes", countMap.get(6)); + peoples.put("sevenTimes", countMap.get(7)); + peoples.put("eightTimes", countMap.get(8)); + peoples.put("nineTimes", countMap.get(9)); + peoples.put("tenTimes", countMap.get(10)); + peoples.put("elevenTimes", countMap.get(11)); + peoples.put("twelveTimes", countMap.get(12)); + peoples.put("otherTimes", countMap.get(13)); + restList.add(peoples); + Map proportion = new LinkedHashMap<>(); + proportion.put("desc", "占比"); /** 占比 */ + proportion.put("count", "100%");/** 总计 */ + proportion.put("once", MathUtil.getProportion(countMap.get(1), count)); + proportion.put("twice", MathUtil.getProportion(countMap.get(2), count)); + proportion.put("threeTimes", MathUtil.getProportion(countMap.get(3), count)); + proportion.put("fourTimes", MathUtil.getProportion(countMap.get(4), count)); + proportion.put("fiveTimes", MathUtil.getProportion(countMap.get(5), count)); + proportion.put("sixTimes", MathUtil.getProportion(countMap.get(6), count)); + proportion.put("sevenTimes", MathUtil.getProportion(countMap.get(7), count)); + proportion.put("eightTimes", MathUtil.getProportion(countMap.get(8), count)); + proportion.put("nineTimes", MathUtil.getProportion(countMap.get(9), count)); + proportion.put("tenTimes", MathUtil.getProportion(countMap.get(10), count)); + proportion.put("elevenTimes", MathUtil.getProportion(countMap.get(11), count)); + proportion.put("twelveTimes", MathUtil.getProportion(countMap.get(12), count)); + proportion.put("otherTimes", MathUtil.getProportion(countMap.get(13), count)); + restList.add(proportion); + for (int i = 0; i < 12; i++) { + yData.add(countMap.get(i + 1)); + } return restList; }