diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java b/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java index 9a8932c..be6dd7f 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java @@ -1366,6 +1366,19 @@ public class DateUtil { return restList; } + /** + * 把传进来的日期 设置为当天的最后一秒 + * @param date + */ + public static Date getDayLastSecond(Date date) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.set(Calendar.HOUR_OF_DAY, 23); + calendar.set(Calendar.MINUTE, 59); + calendar.set(Calendar.SECOND, 59); + return calendar.getTime(); + } + private static List getMonthBetween(Date start, Date end) { List result = new ArrayList<>(); Calendar min = Calendar.getInstance(); @@ -1424,6 +1437,7 @@ public class DateUtil { } public static void main(String[] args) { + System.out.println(getDayLastSecond(new Date()).toLocaleString()); List> monthBetween = getRange(parseYMD("2017-1-11"), parseYMD("2017-12-29")); for (Map map : monthBetween) { System.out.print("cname>> " + getyyyy_mm(map.get("cname"))); 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 893b361..b5f6801 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 @@ -230,7 +230,7 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService titleList.add(DateUtil.getyyyy_mm(map.get("cname"))); } Map> tempMap = new HashMap<>(); - for (Patients patient : patients) { + /*for (Patients patient : patients) { if(tempMap.containsKey(patient.getHospitalId())) { Map map = tempMap.get(patient.getHospitalId()); for (Map dateMap : range) { @@ -252,6 +252,29 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService } tempMap.put(patient.getHospitalId(), temp); } + }*/ + for (Patients patient : patients) { + if(tempMap.containsKey(patient.getHospitalId())) { + Map map = tempMap.get(patient.getHospitalId()); + for (Map dateMap : range) { + String cname = DateUtil.getyyyy_mm(dateMap.get("cname")); + if(patient.getBookbuildingDate().getTime() >= dateMap.get("start").getTime() + && patient.getBookbuildingDate().getTime() <= DateUtil.getDayLastSecond(dateMap.get("end")).getTime()) { + map.put(cname, map.containsKey(cname) ? map.get(cname) + 1 : 1); + break; + } + } + } else { + Map temp = new HashMap<>(); + for (Map dateMap : range) { + if(patient.getBookbuildingDate().getTime() >= dateMap.get("start").getTime() + && patient.getBookbuildingDate().getTime() <= DateUtil.getDayLastSecond(dateMap.get("end")).getTime()) { + temp.put(DateUtil.getyyyy_mm(dateMap.get("cname")), 1); + break; + } + } + tempMap.put(patient.getHospitalId(), temp); + } } for (Map.Entry> entry : tempMap.entrySet()) { List tempList = new ArrayList<>(); @@ -306,6 +329,48 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService hids.add(patient.getHospitalId()); for (Map dateMap : range) { if(patient.getBookbuildingDate().getTime() >= dateMap.get("start").getTime() + && patient.getBookbuildingDate().getTime() <= DateUtil.getDayLastSecond(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) { + for (Map dateMap : range) { + if(patient.getBookbuildingDate().getTime() >= dateMap.get("start").getTime() + && patient.getBookbuildingDate().getTime() <= DateUtil.getDayLastSecond(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((StringUtils.isNotEmpty(cityId) ? "areaId" : "cityId"))); + info.put("hids", hids); + infos.add(info); + } + } + } +// System.out.println(patient.getId() + " " +patient.getBookbuildingDate().toLocaleString() + " " + range.get(0).get("start").toLocaleString() + " " + range.get(0).get("end").toLocaleString()); + } + } + } + /* 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((StringUtils.isNotEmpty(cityId) ? "areaId" : "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)) { @@ -334,9 +399,10 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService } } } +// System.out.println(patient.getId() + " " +patient.getBookbuildingDate().toLocaleString() + " " + range.get(0).get("start").toLocaleString() + " " + range.get(0).get("end").toLocaleString()); } } - } + }*/ for (Map info : infos) { List tempList = new ArrayList<>();