diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PatientWeightServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PatientWeightServiceImpl.java index da68517..8ba36de 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PatientWeightServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PatientWeightServiceImpl.java @@ -254,7 +254,7 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient if(patientWeight != null) { Map map = new HashMap<>(); map.put("beforeWeight", patientWeight.getBeforeWeight()); - setReport(map, patientWeight.getWeights(), patientWeight.getBeforeWeight(), patientWeight.getBmi(), patientWeight.getDayWeights()); + setAppReport(map, patientWeight.getWeights(), patientWeight.getBeforeWeight(), patientWeight.getBmi(), patientWeight.getDayWeights()); return RespBuilder.buildSuccess(map); } return RespBuilder.buildSuccess(); @@ -621,7 +621,7 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient 最低 0-0.8 0.9-4.9 最高 0-2.1 2.1-8.9 */ - public void setReport(Map restMap, Map weights, String beforeWeight, String bmi, Map dayWeights) { + public void setAppReport(Map restMap, Map weights, String beforeWeight, String bmi, Map dayWeights) { List> restList = new ArrayList<>(); if(MapUtils.isNotEmpty(dayWeights)) { for (String key : dayWeights.keySet()) { @@ -722,6 +722,96 @@ public class PatientWeightServiceImpl extends BaseServiceImpl implements Patient restMap.put("reportModel", reportModel); } + public void setReport(Map restMap, Map weights, String beforeWeight, String bmi, Map dayWeights) { + List> restList = new ArrayList<>(); + if(MapUtils.isNotEmpty(dayWeights)) { + for (String key : dayWeights.keySet()) { + Map temp = new HashMap<>(); + temp.put("nowWeight", dayWeights.get(key)); + temp.put("recordTime", key); + restList.add(temp); + } + } + + Double bmiD = Double.parseDouble(bmi); + double low = 0D; + double low2 = 0D; + double high = 0D; + double high2 = 0D; + if(bmiD <= 18.5) { + low = 1.2; + low2 = 11.9; + high = 3.8; + high2 = 18.1; + } else if(bmiD > 18.5 && bmiD <= 24.9){ + low = 1.4; + low2 = 11.9; + high = 3.2; + high2 = 15.9; + } else if(bmiD > 24.9 && bmiD < 30){ + low = 1.1 ; + low2 = 7.1; + high = 3.1; + high2 = 11.6; + } else if(bmiD >= 30){ + low = 0.8 ; + low2 = 4.9; + high = 2.1; + high2 = 8.9; + } + + Map highMap = new HashMap<>(); + Map normalMap = new HashMap<>(); + Map lowMap = new HashMap<>(); + List xAxis = new ArrayList<>(); + double avg = low / 13; + for (int i = 0; i <= 13; i++) { + lowMap.put(i, i * avg); + } + double avg2 = (low2 - low) / 27; + for (int i = 1; i <= 27; i++) { + lowMap.put(13 + i, low + i * avg2); + } + double highAvg = high / 13; + for (int i = 0; i <= 13; i++) { + highMap.put(i, i * highAvg); + } + double highAvg2 = (high2 - high) / 27; + for (int i = 1; i <= 27; i++) { + highMap.put(13 + i, high + i * highAvg2); + } + for (int i = 0; i <= 40; i++) { + normalMap.put(i, (highMap.get(i) + lowMap.get(i)) / 2); + } + + Map reportModel = new HashMap<>(); + Map series = new HashMap<>(); + series.put("lowData", MathUtil.doubleFormat2(CollectionUtils.getValList(lowMap))); + series.put("highData", MathUtil.doubleFormat2(CollectionUtils.getValList(highMap))); + series.put("normalData", MathUtil.doubleFormat2(CollectionUtils.getValList(normalMap))); + + series.put("dayWeights", restList); + + reportModel.put("series", series); + + for (int i = 0; i <= 40; i++) { + xAxis.add(i); + } + reportModel.put("xAxis", xAxis); + + List list = new ArrayList<>(); + if(MapUtils.isNotEmpty(weights)) { + Iterator> iterator = weights.entrySet().iterator(); + while (iterator.hasNext()) { + Map.Entry next = iterator.next(); + list.add(Arrays.asList(next.getKey(), getDiff(beforeWeight, next.getValue()))); + } + } + series.put("portData", list); + series.put("portData", list); + restMap.put("reportModel", reportModel); + } + /** * 获取两个体重之间相差的数值 */