Commit 5f397335422a4261b1c6cda8ec20d455a024a31b

Authored by litao@lymsh.com
1 parent 80e00bca04

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<>();