diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodSugarServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodSugarServiceImpl.java index b988089..5260614 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodSugarServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodSugarServiceImpl.java @@ -244,13 +244,11 @@ public class BloodSugarServiceImpl extends BaseServiceImpl implements IBloodSuga } + // 周平均 Date date = new Date(); - Map monthAvgMap = new LinkedHashMap<>(); - Map> monthAvgTemp = new LinkedHashMap<>(); - Map weekAvgMap = new LinkedHashMap<>(); + List> weekAvgMap = new ArrayList<>(); Map> weekAvgMapTemp = new LinkedHashMap<>(); Date weekStart = DateUtil.addWeek(date, -1); - Date monthStart = DateUtil.addMonth(date, -1); List bloodSugarsWeek = mongoTemplate.find(Query.query(Criteria.where("parentId").is(parentId).and("created").gte(weekStart)).with(new Sort(Sort.Direction.DESC, "created")), BloodSugar.class); for (BloodSugar bloodSugar : bloodSugarsWeek) { if(weekAvgMapTemp.containsKey(bloodSugar.getBloodSugarType())) { @@ -266,23 +264,28 @@ public class BloodSugarServiceImpl extends BaseServiceImpl implements IBloodSuga } } for (BloodSugarEnums bloodSugarEnums : BloodSugarEnums.values()) { + Map weekMap = new HashMap<>(); + weekMap.put("name", bloodSugarEnums.getName()); boolean flag = true; for (Map.Entry> entry : weekAvgMapTemp.entrySet()) { - weekAvgMap.put("name", bloodSugarEnums.getName()); if(entry.getKey() == bloodSugarEnums.getId()) { Map map = entry.getValue(); Integer dayCount = (Integer) map.get("dayCount"); Double sugarCount = (Double) map.get("sugarCount"); - weekAvgMap.put("value", sugarCount / dayCount); + weekMap.put("value", sugarCount / dayCount); flag = false; } } if(flag) { - weekAvgMap.put("value", "--"); + weekMap.put("value", "--"); } + weekAvgMap.add(weekMap); } // 月平均 + List> monthAvgMap = new ArrayList<>(); + Map> monthAvgTemp = new LinkedHashMap<>(); + Date monthStart = DateUtil.addMonth(date, -1); List bloodSugarsMonth = mongoTemplate.find(Query.query(Criteria.where("parentId").is(parentId).and("created").gte(monthStart)).with(new Sort(Sort.Direction.DESC, "created")), BloodSugar.class); for (BloodSugar bloodSugar : bloodSugarsMonth) { if(monthAvgTemp.containsKey(bloodSugar.getBloodSugarType())) { @@ -298,20 +301,23 @@ public class BloodSugarServiceImpl extends BaseServiceImpl implements IBloodSuga } } for (BloodSugarEnums bloodSugarEnums : BloodSugarEnums.values()) { + Map monthMap = new HashMap<>(); + monthMap.put("name", bloodSugarEnums.getName()); boolean flag = true; for (Map.Entry> entry : monthAvgTemp.entrySet()) { - weekAvgMap.put("name", bloodSugarEnums.getName()); + monthMap.put("name", bloodSugarEnums.getName()); if(entry.getKey() == bloodSugarEnums.getId()) { Map map = entry.getValue(); Integer dayCount = (Integer) map.get("dayCount"); Double sugarCount = (Double) map.get("sugarCount"); - weekAvgMap.put("value", sugarCount / dayCount); + monthMap.put("value", sugarCount / dayCount); flag = false; } } if(flag) { - weekAvgMap.put("value", "--"); + monthMap.put("value", "--"); } + monthAvgMap.add(monthMap); }