Commit 5f397335422a4261b1c6cda8ec20d455a024a31b
1 parent
80e00bca04
Exists in
master
and in
6 other branches
bbbbbb
Showing 2 changed files with 82 additions and 2 deletions
platform-common/src/main/java/com/lyms/platform/common/utils/DateUtil.java
View file @
5f39733
| ... | ... | @@ -1366,6 +1366,19 @@ |
| 1366 | 1366 | return restList; |
| 1367 | 1367 | } |
| 1368 | 1368 | |
| 1369 | + /** | |
| 1370 | + * 把传进来的日期 设置为当天的最后一秒 | |
| 1371 | + * @param date | |
| 1372 | + */ | |
| 1373 | + public static Date getDayLastSecond(Date date) { | |
| 1374 | + Calendar calendar = Calendar.getInstance(); | |
| 1375 | + calendar.setTime(date); | |
| 1376 | + calendar.set(Calendar.HOUR_OF_DAY, 23); | |
| 1377 | + calendar.set(Calendar.MINUTE, 59); | |
| 1378 | + calendar.set(Calendar.SECOND, 59); | |
| 1379 | + return calendar.getTime(); | |
| 1380 | + } | |
| 1381 | + | |
| 1369 | 1382 | private static List<Date> getMonthBetween(Date start, Date end) { |
| 1370 | 1383 | List<Date> result = new ArrayList<>(); |
| 1371 | 1384 | Calendar min = Calendar.getInstance(); |
| ... | ... | @@ -1424,6 +1437,7 @@ |
| 1424 | 1437 | } |
| 1425 | 1438 | |
| 1426 | 1439 | public static void main(String[] args) { |
| 1440 | + System.out.println(getDayLastSecond(new Date()).toLocaleString()); | |
| 1427 | 1441 | List<Map<String, Date>> monthBetween = getRange(parseYMD("2017-1-11"), parseYMD("2017-12-29")); |
| 1428 | 1442 | for (Map<String, Date> map : monthBetween) { |
| 1429 | 1443 | System.out.print("cname>> " + getyyyy_mm(map.get("cname"))); |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java
View file @
5f39733
| ... | ... | @@ -230,7 +230,7 @@ |
| 230 | 230 | titleList.add(DateUtil.getyyyy_mm(map.get("cname"))); |
| 231 | 231 | } |
| 232 | 232 | Map<String, Map<String, Integer>> tempMap = new HashMap<>(); |
| 233 | - for (Patients patient : patients) { | |
| 233 | + /*for (Patients patient : patients) { | |
| 234 | 234 | if(tempMap.containsKey(patient.getHospitalId())) { |
| 235 | 235 | Map<String, Integer> map = tempMap.get(patient.getHospitalId()); |
| 236 | 236 | for (Map<String, Date> dateMap : range) { |
| ... | ... | @@ -252,6 +252,29 @@ |
| 252 | 252 | } |
| 253 | 253 | tempMap.put(patient.getHospitalId(), temp); |
| 254 | 254 | } |
| 255 | + }*/ | |
| 256 | + for (Patients patient : patients) { | |
| 257 | + if(tempMap.containsKey(patient.getHospitalId())) { | |
| 258 | + Map<String, Integer> map = tempMap.get(patient.getHospitalId()); | |
| 259 | + for (Map<String, Date> dateMap : range) { | |
| 260 | + String cname = DateUtil.getyyyy_mm(dateMap.get("cname")); | |
| 261 | + if(patient.getBookbuildingDate().getTime() >= dateMap.get("start").getTime() | |
| 262 | + && patient.getBookbuildingDate().getTime() <= DateUtil.getDayLastSecond(dateMap.get("end")).getTime()) { | |
| 263 | + map.put(cname, map.containsKey(cname) ? map.get(cname) + 1 : 1); | |
| 264 | + break; | |
| 265 | + } | |
| 266 | + } | |
| 267 | + } else { | |
| 268 | + Map<String, Integer> temp = new HashMap<>(); | |
| 269 | + for (Map<String, Date> dateMap : range) { | |
| 270 | + if(patient.getBookbuildingDate().getTime() >= dateMap.get("start").getTime() | |
| 271 | + && patient.getBookbuildingDate().getTime() <= DateUtil.getDayLastSecond(dateMap.get("end")).getTime()) { | |
| 272 | + temp.put(DateUtil.getyyyy_mm(dateMap.get("cname")), 1); | |
| 273 | + break; | |
| 274 | + } | |
| 275 | + } | |
| 276 | + tempMap.put(patient.getHospitalId(), temp); | |
| 277 | + } | |
| 255 | 278 | } |
| 256 | 279 | for (Map.Entry<String, Map<String, Integer>> entry : tempMap.entrySet()) { |
| 257 | 280 | List<String> tempList = new ArrayList<>(); |
| ... | ... | @@ -306,6 +329,48 @@ |
| 306 | 329 | hids.add(patient.getHospitalId()); |
| 307 | 330 | for (Map<String, Date> dateMap : range) { |
| 308 | 331 | if(patient.getBookbuildingDate().getTime() >= dateMap.get("start").getTime() |
| 332 | + && patient.getBookbuildingDate().getTime() <= DateUtil.getDayLastSecond(dateMap.get("end")).getTime()) { | |
| 333 | + String monthKey = DateUtil.getyyyy_mm(dateMap.get("cname")); | |
| 334 | + if(info.containsKey(monthKey)) { | |
| 335 | + info.put(monthKey, (Integer) info.get(monthKey) + 1); | |
| 336 | + flag = false; | |
| 337 | + } else { | |
| 338 | + info.put(monthKey, 1); | |
| 339 | + flag = false; | |
| 340 | + } | |
| 341 | + } | |
| 342 | + } | |
| 343 | + } | |
| 344 | + } | |
| 345 | + if(flag) { | |
| 346 | + for (Map<String, Date> dateMap : range) { | |
| 347 | + if(patient.getBookbuildingDate().getTime() >= dateMap.get("start").getTime() | |
| 348 | + && patient.getBookbuildingDate().getTime() <= DateUtil.getDayLastSecond(dateMap.get("end")).getTime()) { | |
| 349 | + String monthKey = DateUtil.getyyyy_mm(dateMap.get("cname")); | |
| 350 | + Map<String, Object> info = new HashMap<>(); | |
| 351 | + Set<String> hids = new HashSet<>(); | |
| 352 | + hids.add(patient.getHospitalId()); | |
| 353 | + info.put(monthKey, 1); | |
| 354 | + info.put("id", map.get((StringUtils.isNotEmpty(cityId) ? "areaId" : "cityId"))); | |
| 355 | + info.put("hids", hids); | |
| 356 | + infos.add(info); | |
| 357 | + } | |
| 358 | + } | |
| 359 | + } | |
| 360 | +// System.out.println(patient.getId() + " " +patient.getBookbuildingDate().toLocaleString() + " " + range.get(0).get("start").toLocaleString() + " " + range.get(0).get("end").toLocaleString()); | |
| 361 | + } | |
| 362 | + } | |
| 363 | + } | |
| 364 | + /* for (Patients patient : patients) { | |
| 365 | + for (Map<String, Object> map : hospitals) { | |
| 366 | + if(patient.getHospitalId().equals(map.get("id").toString())) { | |
| 367 | + boolean flag = true; | |
| 368 | + for (Map<String, Object> info : infos) { | |
| 369 | + if(map.get((StringUtils.isNotEmpty(cityId) ? "areaId" : "cityId")).equals(info.get("id"))) { | |
| 370 | + Set<String> hids = (Set<String>) info.get("hids"); | |
| 371 | + hids.add(patient.getHospitalId()); | |
| 372 | + for (Map<String, Date> dateMap : range) { | |
| 373 | + if(patient.getBookbuildingDate().getTime() >= dateMap.get("start").getTime() | |
| 309 | 374 | && patient.getBookbuildingDate().getTime() <= dateMap.get("end").getTime()) { |
| 310 | 375 | String monthKey = DateUtil.getyyyy_mm(dateMap.get("cname")); |
| 311 | 376 | if(info.containsKey(monthKey)) { |
| 312 | 377 | |
| ... | ... | @@ -334,9 +399,10 @@ |
| 334 | 399 | } |
| 335 | 400 | } |
| 336 | 401 | } |
| 402 | +// System.out.println(patient.getId() + " " +patient.getBookbuildingDate().toLocaleString() + " " + range.get(0).get("start").toLocaleString() + " " + range.get(0).get("end").toLocaleString()); | |
| 337 | 403 | } |
| 338 | 404 | } |
| 339 | - } | |
| 405 | + }*/ | |
| 340 | 406 | |
| 341 | 407 | for (Map<String, Object> info : infos) { |
| 342 | 408 | List<String> tempList = new ArrayList<>(); |