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 87c0b9c..3cc3bff 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 @@ -498,11 +498,11 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService List> couponReport = new ArrayList<>(); List hospitalId = (List) param.get("hospitalId"); List xAxis = new ArrayList<>(); - + Map hNameMap = new HashMap<>(); if(CollectionUtils.isNotEmpty(hospitalId)) { List> hospitalNames = couponMapper.findHospitalNames(hospitalId); if(CollectionUtils.isNotEmpty(hospitalNames)) { - Map hNameMap = CollectionUtils.coverListToMap(hospitalNames, "id", "name"); + hNameMap = CollectionUtils.coverListToMap(hospitalNames, "id", "name"); for (String hid : hospitalId) { param.put("hid", hid); Map usedInfo = couponMapper.findHospitalUsedInfo(param); @@ -539,45 +539,17 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService } - ReportModel reportModel = new ReportModel(); reportModel.setxAxis(xAxis); reportModel.setData(Arrays.asList("发放券数", "使用券数")); reportModel.setSeries(createSeries(couponReport)); reportModel.doMerge(); + ReportModel reportModal = createReportModal(couponReport, param, hNameMap); + Map titleMap = parseTitle(couponReport); transNullToZero(couponReport, titleMap); -// /** titlemap 排序 */ -// Map temp = new LinkedHashMap<>(); -// Set keys = titleMap.keySet(); -// for (String key : keys) { -// if(key.startsWith("7")) { -// temp.put(key, titleMap.get(key)); -// } -// } -// for (String key : keys) { -// if(key.startsWith("9")) { -// temp.put(key, titleMap.get(key)); -// } -// } -// for (String key : keys) { -// if(key.startsWith("8")) { -// temp.put(key, titleMap.get(key)); -// } -// } -// for (String key : keys) { -// if(key.startsWith("10")) { -// temp.put(key, titleMap.get(key)); -// } -// } -// for (String s : keys) { -// if(!s.startsWith("10")||!s.startsWith("9")||!s.startsWith("8")||!s.startsWith("7")) { -// temp.put(s, titleMap.get(s)); -// } -// } - List> couponReportMap = new ArrayList<>(); Set> entries = titleMap.entrySet(); for (Map.Entry entry : entries) { @@ -586,51 +558,97 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService m.put("value", entry.getKey()); couponReportMap.add(m); } - - return RespBuilder.buildSuccess("couponReport", couponReport, "couponReportMap", couponReportMap, "reportModel", reportModel); +// return RespBuilder.buildSuccess("couponReport", couponReport, "couponReportMap", couponReportMap, "reportModel", reportModel); + return RespBuilder.buildSuccess("couponReport", couponReport, "couponReportMap", couponReportMap, "reportModel", reportModal); } - private void setZeroDataByTemp(List key, List> couponReport) { + private ReportModel createReportModal(List> couponReport, Map param, Map hNameMap) { + List> temps = new ArrayList<>(); for (Map map : couponReport) { - for (String s : key) { - if(map.get(s) == null) { - map.put(s, 0); - } - } - } + String province_id = (String) map.get("province_id"); + String city_id = (String) map.get("city_id"); + String area_id = (String) map.get("area_id"); + Integer coupon_send_count = Integer.parseInt(map.get("coupon_send_count") + ""); + Integer coupon_used_count = Integer.parseInt(map.get("coupon_used_count") + ""); - /* if(CollectionUtils.isNotEmpty(couponReport)) { - Map map = couponReport.get(0); - // 类型排序:儿童建档券-新生儿访视券-儿保检查券-血红蛋白检查券 (7 9 8 10) - Map temp = new LinkedHashMap<>(); - Set keys = map.keySet(); - for (String s : keys) { - if(s.startsWith("7")) { - temp.put(s, map.get(s)); + Map data = new HashMap<>(); + data.put("send_count", coupon_send_count + ""); + data.put("hospital_id", map.get("hospitalId") + ""); + data.put("used_count", coupon_used_count + ""); + data.put("hospital_name", hNameMap.get(map.get("hospitalId"))); + + boolean exist = false; + for (Map temp : temps) { + if(StringUtils.isNotEmpty(province_id) && province_id.equals(temp.get("province_id")) && + StringUtils.isNotEmpty(city_id) && city_id.equals(temp.get("city_id")) && + StringUtils.isNotEmpty(area_id) && area_id.equals(temp.get("area_id"))) { + Integer send_count = Integer.parseInt(temp.get("send_count") + ""); + Integer used_count = Integer.parseInt(temp.get("used_count") + ""); + temp.put("send_count", send_count + coupon_send_count + ""); + temp.put("used_count", used_count + coupon_used_count + ""); + List> datas = (List>) temp.get("hospitals"); + datas.add(data); + exist = true; } } - for (String s : keys) { - if(s.startsWith("9")) { - temp.put(s, map.get(s)); - } + if(!exist) { + Map temp = new HashMap<>(); + temp.put("province_id", province_id); + temp.put("city_id", city_id); + temp.put("area_id", area_id); + temp.put("area_name", (String) map.get("area_name")); + temp.put("send_count", coupon_send_count == null ? "0" : coupon_send_count.toString()); + temp.put("used_count", coupon_used_count == null ? "0" : coupon_used_count.toString()); + List> datas = new ArrayList<>(); + datas.add(data); + temp.put("hospitals", datas); + temps.add(temp); } - for (String s : keys) { - if(s.startsWith("8")) { - temp.put(s, map.get(s)); - } - } - for (String s : keys) { - if(s.startsWith("10")) { - temp.put(s, map.get(s)); + } + + ReportModel reportModel = new ReportModel(); + List xAxis = new ArrayList<>(); + List series = new ArrayList<>(); + Series sendSeries = new Series(); + sendSeries.setName("发放券数"); + sendSeries.setType("bar"); + sendSeries.setData(new ArrayList<>()); + Series usedSeries = new Series(); + usedSeries.setName("使用券数"); + usedSeries.setType("bar"); + usedSeries.setData(new ArrayList<>()); + series.add(sendSeries); + series.add(usedSeries); + for (Map temp : temps) { + /** 没传区县 报表数据就为区域的 */ + if(param.get("areaId") == null) { + xAxis.add((String) temp.get("area_name")); + sendSeries.getData().add(temp.get("send_count")); + usedSeries.getData().add(temp.get("used_count")); + } else { /** 传了区县 报表数据就为医院 */ + List> datas = (List>) temp.get("hospitals"); + for (Map data : datas) { + xAxis.add((String) data.get("hospital_name")); + sendSeries.getData().add(data.get("send_count")); + usedSeries.getData().add(data.get("used_count")); } } - for (String s : keys) { - if(!s.startsWith("10")||!s.startsWith("9")||!s.startsWith("8")||!s.startsWith("7")) { - temp.put(s, map.get(s)); + } + reportModel.setxAxis(xAxis); + reportModel.setData(Arrays.asList("发放券数", "使用券数")); + reportModel.setSeries(series); + reportModel.doMerge(); + return reportModel; + } + + private void setZeroDataByTemp(List key, List> couponReport) { + for (Map map : couponReport) { + for (String s : key) { + if(map.get(s) == null) { + map.put(s, 0); } } - couponReport.set(0, temp); - }*/ + } } private Map packCouponMap(Map sendInfo, Map usedInfo, Map hNameMap, String hid, List xAxis, Map param) {