Commit 103b9065f9207b96ec0f327ecdbddee864fff2c2

Authored by liquanyu
1 parent 91fc2f2476

血糖

Showing 1 changed file with 102 additions and 70 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodSugarServiceImpl.java View file @ 103b906
... ... @@ -357,82 +357,114 @@
357 357 }
358 358  
359 359  
360   - // 周平均
361   - Date date = new Date();
362   - List<Map<String, Object>> weekAvgMap = new ArrayList<>();
363   - Map<Integer, Map<String, Object>> weekAvgMapTemp = new LinkedHashMap<>();
364   - Date weekStart = DateUtil.getYmdDate(DateUtil.addDay(DateUtil.addWeek(date, -1), 1));
365   - List<BloodSugar> bloodSugarsWeek = mongoTemplate.find(Query.query(Criteria.where("pid").is(pid).and("created").gte(weekStart)).with(new Sort(Sort.Direction.DESC, "created")), BloodSugar.class);
366   - for (BloodSugar bloodSugar : bloodSugarsWeek) {
367   - if(weekAvgMapTemp.containsKey(bloodSugar.getBloodSugarType())) {
368   - Map<String, Object> temp = weekAvgMapTemp.get(bloodSugar.getBloodSugarType());
369   - temp.put("dayCount", Integer.parseInt(temp.get("dayCount") + "") + 1); // 总共有记录的天数
370   - temp.put("sugarCount", Double.parseDouble(temp.get("sugarCount") + "") + Double.parseDouble(bloodSugar.getBloodSugar())); // 总共所有记录的和
371   - weekAvgMapTemp.put(bloodSugar.getBloodSugarType(), temp);
372   - } else {
373   - Map<String, Object> temp = new HashMap<>();
374   - temp.put("dayCount", 1); // 总共有记录的天数
375   - temp.put("sugarCount", Double.parseDouble(bloodSugar.getBloodSugar())); // 总共所有记录的和
376   - weekAvgMapTemp.put(bloodSugar.getBloodSugarType(), temp);
377   - }
378   - }
379   - for (BloodSugarEnums bloodSugarEnums : BloodSugarEnums.values()) {
380   - Map<String, Object> weekMap = new HashMap<>();
381   - weekMap.put("name", bloodSugarEnums.getName());
382   - boolean flag = true;
383   - for (Map.Entry<Integer, Map<String, Object>> entry : weekAvgMapTemp.entrySet()) {
384   - if(entry.getKey() == bloodSugarEnums.getId()) {
385   - Map<String, Object> map = entry.getValue();
386   - Integer dayCount = (Integer) map.get("dayCount");
387   - Double sugarCount = (Double) map.get("sugarCount");
388   - weekMap.put("value", MathUtil.doubleFormat2(sugarCount / dayCount));
389   - flag = false;
390   - }
391   - }
392   - if(flag) {
393   - weekMap.put("value", "");
394   - }
395   - weekAvgMap.add(weekMap);
396   - }
  360 +// // 周平均
  361 +// Date date = new Date();
  362 +// List<Map<String, Object>> weekAvgMap = new ArrayList<>();
  363 +// Map<Integer, Map<String, Object>> weekAvgMapTemp = new LinkedHashMap<>();
  364 +// Date weekStart = DateUtil.getYmdDate(DateUtil.addDay(DateUtil.addWeek(date, -1), 1));
  365 +// List<BloodSugar> bloodSugarsWeek = mongoTemplate.find(Query.query(Criteria.where("pid").is(pid).and("created").gte(weekStart)).with(new Sort(Sort.Direction.DESC, "created")), BloodSugar.class);
  366 +// for (BloodSugar bloodSugar : bloodSugarsWeek) {
  367 +// if(weekAvgMapTemp.containsKey(bloodSugar.getBloodSugarType())) {
  368 +// Map<String, Object> temp = weekAvgMapTemp.get(bloodSugar.getBloodSugarType());
  369 +// temp.put("dayCount", Integer.parseInt(temp.get("dayCount") + "") + 1); // 总共有记录的天数
  370 +// temp.put("sugarCount", Double.parseDouble(temp.get("sugarCount") + "") + Double.parseDouble(bloodSugar.getBloodSugar())); // 总共所有记录的和
  371 +// weekAvgMapTemp.put(bloodSugar.getBloodSugarType(), temp);
  372 +// } else {
  373 +// Map<String, Object> temp = new HashMap<>();
  374 +// temp.put("dayCount", 1); // 总共有记录的天数
  375 +// temp.put("sugarCount", Double.parseDouble(bloodSugar.getBloodSugar())); // 总共所有记录的和
  376 +// weekAvgMapTemp.put(bloodSugar.getBloodSugarType(), temp);
  377 +// }
  378 +// }
  379 +// for (BloodSugarEnums bloodSugarEnums : BloodSugarEnums.values()) {
  380 +// Map<String, Object> weekMap = new HashMap<>();
  381 +// weekMap.put("name", bloodSugarEnums.getName());
  382 +// boolean flag = true;
  383 +// for (Map.Entry<Integer, Map<String, Object>> entry : weekAvgMapTemp.entrySet()) {
  384 +// if(entry.getKey() == bloodSugarEnums.getId()) {
  385 +// Map<String, Object> map = entry.getValue();
  386 +// Integer dayCount = (Integer) map.get("dayCount");
  387 +// Double sugarCount = (Double) map.get("sugarCount");
  388 +// weekMap.put("value", MathUtil.doubleFormat2(sugarCount / dayCount));
  389 +// flag = false;
  390 +// }
  391 +// }
  392 +// if(flag) {
  393 +// weekMap.put("value", "");
  394 +// }
  395 +// weekAvgMap.add(weekMap);
  396 +// }
397 397  
398   - // 月平均
  398 +// // 月平均
  399 +// List<Map<String, Object>> monthAvgMap = new ArrayList<>();
  400 +// Map<Integer, Map<String, Object>> monthAvgTemp = new LinkedHashMap<>();
  401 +//// Date monthStart = DateUtil.addMonth(date, -1);
  402 +// Date monthStart = DateUtil.getYmdDate(DateUtil.addDay(DateUtil.addMonth(date, -1), 1));
  403 +// List<BloodSugar> bloodSugarsMonth = mongoTemplate.find(Query.query(Criteria.where("pid").is(pid).and("created").gte(monthStart)).with(new Sort(Sort.Direction.DESC, "created")), BloodSugar.class);
  404 +// for (BloodSugar bloodSugar : bloodSugarsMonth) {
  405 +// if(monthAvgTemp.containsKey(bloodSugar.getBloodSugarType())) {
  406 +// Map<String, Object> temp = monthAvgTemp.get(bloodSugar.getBloodSugarType());
  407 +// temp.put("dayCount", Integer.parseInt(temp.get("dayCount") + "") + 1); // 总共有记录的天数
  408 +// temp.put("sugarCount", Double.parseDouble(temp.get("sugarCount") + "") + Double.parseDouble(bloodSugar.getBloodSugar())); // 总共所有记录的和
  409 +// monthAvgTemp.put(bloodSugar.getBloodSugarType(), temp);
  410 +// } else {
  411 +// Map<String, Object> temp = new HashMap<>();
  412 +// temp.put("dayCount", 1); // 总共有记录的天数
  413 +// temp.put("sugarCount", Double.parseDouble(bloodSugar.getBloodSugar())); // 总共所有记录的和
  414 +// monthAvgTemp.put(bloodSugar.getBloodSugarType(), temp);
  415 +// }
  416 +// }
  417 +// for (BloodSugarEnums bloodSugarEnums : BloodSugarEnums.values()) {
  418 +// Map<String, Object> monthMap = new HashMap<>();
  419 +// monthMap.put("name", bloodSugarEnums.getName());
  420 +// boolean flag = true;
  421 +// for (Map.Entry<Integer, Map<String, Object>> entry : monthAvgTemp.entrySet()) {
  422 +// monthMap.put("name", bloodSugarEnums.getName());
  423 +// if(entry.getKey() == bloodSugarEnums.getId()) {
  424 +// Map<String, Object> map = entry.getValue();
  425 +// Integer dayCount = (Integer) map.get("dayCount");
  426 +// Double sugarCount = (Double) map.get("sugarCount");
  427 +// monthMap.put("value", MathUtil.doubleFormat2(sugarCount / dayCount));
  428 +// flag = false;
  429 +// }
  430 +// }
  431 +// if(flag) {
  432 +// monthMap.put("value", "");
  433 +// }
  434 +// monthAvgMap.add(monthMap);
  435 +// }
  436 +
  437 +
399 438 List<Map<String, Object>> monthAvgMap = new ArrayList<>();
400   - Map<Integer, Map<String, Object>> monthAvgTemp = new LinkedHashMap<>();
401   -// Date monthStart = DateUtil.addMonth(date, -1);
402   - Date monthStart = DateUtil.getYmdDate(DateUtil.addDay(DateUtil.addMonth(date, -1), 1));
403   - List<BloodSugar> bloodSugarsMonth = mongoTemplate.find(Query.query(Criteria.where("pid").is(pid).and("created").gte(monthStart)).with(new Sort(Sort.Direction.DESC, "created")), BloodSugar.class);
404   - for (BloodSugar bloodSugar : bloodSugarsMonth) {
405   - if(monthAvgTemp.containsKey(bloodSugar.getBloodSugarType())) {
406   - Map<String, Object> temp = monthAvgTemp.get(bloodSugar.getBloodSugarType());
407   - temp.put("dayCount", Integer.parseInt(temp.get("dayCount") + "") + 1); // 总共有记录的天数
408   - temp.put("sugarCount", Double.parseDouble(temp.get("sugarCount") + "") + Double.parseDouble(bloodSugar.getBloodSugar())); // 总共所有记录的和
409   - monthAvgTemp.put(bloodSugar.getBloodSugarType(), temp);
410   - } else {
411   - Map<String, Object> temp = new HashMap<>();
412   - temp.put("dayCount", 1); // 总共有记录的天数
413   - temp.put("sugarCount", Double.parseDouble(bloodSugar.getBloodSugar())); // 总共所有记录的和
414   - monthAvgTemp.put(bloodSugar.getBloodSugarType(), temp);
415   - }
416   - }
417   - for (BloodSugarEnums bloodSugarEnums : BloodSugarEnums.values()) {
418   - Map<String, Object> monthMap = new HashMap<>();
419   - monthMap.put("name", bloodSugarEnums.getName());
420   - boolean flag = true;
421   - for (Map.Entry<Integer, Map<String, Object>> entry : monthAvgTemp.entrySet()) {
  439 + List<Map<String, Object>> weekAvgMap = new ArrayList<>();
  440 + Date monthStart = new Date();
  441 + DateUtil.formatYmd(monthStart);
  442 + List<BloodSugar> bss = mongoTemplate.find(Query.query(Criteria.where("pid").is(pid).and("created").gte(monthStart)).with(new Sort(Sort.Direction.DESC, "created")), BloodSugar.class);
  443 + if (CollectionUtils.isNotEmpty(bss))
  444 + {
  445 + for (BloodSugarEnums bloodSugarEnums : BloodSugarEnums.values()) {
  446 + Map<String, Object> monthMap = new HashMap<>();
422 447 monthMap.put("name", bloodSugarEnums.getName());
423   - if(entry.getKey() == bloodSugarEnums.getId()) {
424   - Map<String, Object> map = entry.getValue();
425   - Integer dayCount = (Integer) map.get("dayCount");
426   - Double sugarCount = (Double) map.get("sugarCount");
427   - monthMap.put("value", MathUtil.doubleFormat2(sugarCount / dayCount));
428   - flag = false;
  448 + boolean flag = true;
  449 + for (BloodSugar bs : bss) {
  450 + monthMap.put("name",bloodSugarEnums.getName());
  451 + if (bs.getBloodSugarType() == bloodSugarEnums.getId())
  452 + {
  453 + monthMap.put("value", bs.getBloodSugar());
  454 +
  455 + flag = false;
  456 + }
429 457 }
  458 + if(flag) {
  459 + monthMap.put("value", "");
  460 + }
  461 + monthAvgMap.add(monthMap);
  462 + weekAvgMap.add(monthMap);
430 463 }
431   - if(flag) {
432   - monthMap.put("value", "");
433   - }
434   - monthAvgMap.add(monthMap);
  464 +
  465 +
435 466 }
  467 +
436 468  
437 469 CollectionUtils.sortListByMapKeyWithDate(restList, "craeted");
438 470 List<String> monthCountSet3 = new ArrayList<>();