Commit 98329a1cc5f3be8be135be4b523d893bd5297545
1 parent
f56d87617b
Exists in
master
and in
6 other branches
改为有序map
Showing 1 changed file with 88 additions and 158 deletions
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PatientWeightServiceImpl.java
View file @
98329a1
| ... | ... | @@ -18,8 +18,6 @@ |
| 18 | 18 | import com.lyms.platform.pojo.Patients; |
| 19 | 19 | import org.apache.commons.collections.MapUtils; |
| 20 | 20 | import org.apache.commons.lang.StringUtils; |
| 21 | -import org.slf4j.Logger; | |
| 22 | -import org.slf4j.LoggerFactory; | |
| 23 | 21 | import org.springframework.beans.factory.annotation.Autowired; |
| 24 | 22 | import org.springframework.data.domain.Sort; |
| 25 | 23 | import org.springframework.data.mongodb.core.MongoTemplate; |
| ... | ... | @@ -49,8 +47,6 @@ |
| 49 | 47 | @Autowired |
| 50 | 48 | private PatientsService patientsService; |
| 51 | 49 | |
| 52 | - private Logger logger = LoggerFactory.getLogger(PatientWeightServiceImpl.class); | |
| 53 | - | |
| 54 | 50 | /** |
| 55 | 51 | * 最低:0~13 : 0~1.9 13~40 1.9~11.9 |
| 56 | 52 | * 最高: 0~2.2 2.2~15.9 |
| ... | ... | @@ -92,7 +88,7 @@ |
| 92 | 88 | patientsService.addPatient(patients); |
| 93 | 89 | patientWeight.setPatientId(patients.getId()); |
| 94 | 90 | } |
| 95 | - Map<String, String> dayWeights = new HashMap<>(); | |
| 91 | + Map<String, String> dayWeights = new LinkedHashMap<>(); | |
| 96 | 92 | if(pw != null) { |
| 97 | 93 | if(MapUtils.isNotEmpty(pw.getDayWeights())) { |
| 98 | 94 | dayWeights = pw.getDayWeights(); |
| ... | ... | @@ -168,7 +164,7 @@ |
| 168 | 164 | for (PatientWeight patientWeight : patientWeights) { |
| 169 | 165 | Patients p = mongoTemplate.findById(patientWeight.getPatientId(), Patients.class); |
| 170 | 166 | if(patients != null) { |
| 171 | - Map<String, Object> temp = new HashMap<>(); | |
| 167 | + Map<String, Object> temp = new LinkedHashMap<>(); | |
| 172 | 168 | temp.put("id", patientWeight.getId()); |
| 173 | 169 | temp.put("username", p.getUsername()); |
| 174 | 170 | temp.put("age", DateUtil.getAge(p.getBirth())); |
| ... | ... | @@ -216,7 +212,7 @@ |
| 216 | 212 | map.put("bim", patientWeight.getBmi()); // 体质指数(BMI)=体重(kg)÷身高^2(m) |
| 217 | 213 | |
| 218 | 214 | Map<String, String> dayWeights = patientWeight.getDayWeights(); |
| 219 | - Map<Integer, String> weights = new HashMap<>(); | |
| 215 | + Map<Integer, String> weights = new LinkedHashMap<>(); | |
| 220 | 216 | if (MapUtils.isNotEmpty(dayWeights)) { |
| 221 | 217 | Set<Map.Entry<String, String>> entries = dayWeights.entrySet(); |
| 222 | 218 | for (Map.Entry<String, String> entry : entries) { |
| ... | ... | @@ -248,7 +244,7 @@ |
| 248 | 244 | public BaseResponse report(String id) { |
| 249 | 245 | PatientWeight patientWeight = mongoTemplate.findById(id, PatientWeight.class); |
| 250 | 246 | if(patientWeight != null) { |
| 251 | - Map<String, Object> map = new HashMap<>(); | |
| 247 | + Map<String, Object> map = new LinkedHashMap<>(); | |
| 252 | 248 | Patients patients = mongoTemplate.findById(patientWeight.getPatientId(), Patients.class); |
| 253 | 249 | Integer week = null; |
| 254 | 250 | if(patients != null) { |
| ... | ... | @@ -285,7 +281,7 @@ |
| 285 | 281 | } |
| 286 | 282 | |
| 287 | 283 | Map<String, String> dayWeights = patientWeight.getDayWeights(); |
| 288 | - Map<Integer, String> weights = new HashMap<>(); | |
| 284 | + Map<Integer, String> weights = new LinkedHashMap<>(); | |
| 289 | 285 | if (MapUtils.isNotEmpty(dayWeights)) { |
| 290 | 286 | Set<Map.Entry<String, String>> entries = dayWeights.entrySet(); |
| 291 | 287 | for (Map.Entry<String, String> entry : entries) { |
| 292 | 288 | |
| ... | ... | @@ -303,11 +299,11 @@ |
| 303 | 299 | public BaseResponse wxReport(String pid) { |
| 304 | 300 | PatientWeight patientWeight = mongoTemplate.findOne(Query.query(Criteria.where("pid").is(pid).and("yn").ne("0")), PatientWeight.class); |
| 305 | 301 | if(patientWeight != null) { |
| 306 | - Map<String, Object> map = new HashMap<>(); | |
| 302 | + Map<String, Object> map = new LinkedHashMap<>(); | |
| 307 | 303 | map.put("beforeWeight", patientWeight.getBeforeWeight()); |
| 308 | 304 | Patients patients = mongoTemplate.findById(patientWeight.getPatientId(), Patients.class); |
| 309 | 305 | Map<String, String> dayWeights = patientWeight.getDayWeights(); |
| 310 | - Map<Integer, String> weights = new HashMap<>(); | |
| 306 | + Map<Integer, String> weights = new LinkedHashMap<>(); | |
| 311 | 307 | if (MapUtils.isNotEmpty(dayWeights)) { |
| 312 | 308 | Set<Map.Entry<String, String>> entries = dayWeights.entrySet(); |
| 313 | 309 | for (Map.Entry<String, String> entry : entries) { |
| ... | ... | @@ -325,7 +321,7 @@ |
| 325 | 321 | String nowWeight = patientWeight.getNowWeight(); |
| 326 | 322 | Patients patients = mongoTemplate.findById(patientWeight.getPatientId(), Patients.class); |
| 327 | 323 | PatientWeight pw = mongoTemplate.findOne(Query.query(Criteria.where("pid").is(patientWeight.getPid())), PatientWeight.class); |
| 328 | - Map<String, String> dayWeights = new HashMap<>(); | |
| 324 | + Map<String, String> dayWeights = new LinkedHashMap<>(); | |
| 329 | 325 | if(pw == null && StringUtils.isEmpty(patientWeight.getBeforeWeight())) { |
| 330 | 326 | return RespBuilder.buildErro(ResponseCode.NEED_ADD_PATIENT_WEIGHT); |
| 331 | 327 | } |
| ... | ... | @@ -369,7 +365,7 @@ |
| 369 | 365 | String nowWeight = patientWeight.getNowWeight(); |
| 370 | 366 | Patients patients = mongoTemplate.findById(patientWeight.getPatientId(), Patients.class); |
| 371 | 367 | PatientWeight pw = mongoTemplate.findOne(Query.query(Criteria.where("pid").is(patientWeight.getPid())), PatientWeight.class); |
| 372 | - Map<String, String> dayWeights = new HashMap<>(); | |
| 368 | + Map<String, String> dayWeights = new LinkedHashMap<>(); | |
| 373 | 369 | if(pw == null && StringUtils.isEmpty(patientWeight.getBeforeWeight())) { |
| 374 | 370 | return RespBuilder.buildErro(ResponseCode.NEED_ADD_PATIENT_WEIGHT); |
| 375 | 371 | } |
| ... | ... | @@ -442,12 +438,12 @@ |
| 442 | 438 | private void setRecipe(Integer week, Map<String, Object> map) { |
| 443 | 439 | String recipeTitle1 = ""; |
| 444 | 440 | String recipeTitle2 = ""; |
| 445 | - Map<String, Object> breakfast = new HashMap<>(); // 早餐 | |
| 446 | - Map<String, Object> breakfast2 = new HashMap<>(); // 上午加餐 | |
| 447 | - Map<String, Object> lunch = new HashMap<>(); // 午餐 | |
| 448 | - Map<String, Object> lunch2 = new HashMap<>(); // 下午加餐 | |
| 449 | - Map<String, Object> dinner = new HashMap<>(); // 晚餐 | |
| 450 | - Map<String, Object> dinner2 = new HashMap<>(); // 晚加餐 | |
| 441 | + Map<String, Object> breakfast = new LinkedHashMap<>(); // 早餐 | |
| 442 | + Map<String, Object> breakfast2 = new LinkedHashMap<>(); // 上午加餐 | |
| 443 | + Map<String, Object> lunch = new LinkedHashMap<>(); // 午餐 | |
| 444 | + Map<String, Object> lunch2 = new LinkedHashMap<>(); // 下午加餐 | |
| 445 | + Map<String, Object> dinner = new LinkedHashMap<>(); // 晚餐 | |
| 446 | + Map<String, Object> dinner2 = new LinkedHashMap<>(); // 晚加餐 | |
| 451 | 447 | if(week <= 12) { |
| 452 | 448 | setData(breakfast, "早餐", "(谷类80克,蔬菜70克,蛋类50克,坚果18克,油脂5克)\n" + |
| 453 | 449 | "面包(30克);小米绿豆粥(小米25克,绿豆25克);\n" + |
| ... | ... | @@ -536,7 +532,7 @@ |
| 536 | 532 | } |
| 537 | 533 | |
| 538 | 534 | private Map<String, Object> setData2(String ... values) { |
| 539 | - Map<String, Object> map = new HashMap<>(); | |
| 535 | + Map<String, Object> map = new LinkedHashMap<>(); | |
| 540 | 536 | map.put("id", values[0]); |
| 541 | 537 | List<String> value = new ArrayList<>(); |
| 542 | 538 | for (int i = 1; i < values.length; i++) { |
| 543 | 539 | |
| 544 | 540 | |
| ... | ... | @@ -718,27 +714,27 @@ |
| 718 | 714 | } |
| 719 | 715 | } |
| 720 | 716 | |
| 721 | - /** | |
| 722 | - BMI指数: | |
| 723 | - 低体重(<18.5) 0-13周 13-40周 | |
| 724 | - 最低 0-1.2 1.2-11.9 | |
| 725 | - 最高 0-3.8 3.8-18.1 | |
| 726 | - 标准 (18.5-24.9) 0-13周 13-40周 | |
| 727 | - 最低 0-1.4 1.4-11.9 | |
| 728 | - 最高 0-3.2 3.2-15.9 | |
| 717 | + /** | |
| 718 | + BMI指数: | |
| 719 | + 低体重(<18.5) 0-13周 13-40周 | |
| 720 | + 最低 0-1.2 1.2-11.9 | |
| 721 | + 最高 0-3.8 3.8-18.1 | |
| 722 | + 标准 (18.5-24.9) 0-13周 13-40周 | |
| 723 | + 最低 0-1.4 1.4-11.9 | |
| 724 | + 最高 0-3.2 3.2-15.9 | |
| 729 | 725 | |
| 730 | - 超重(25.0-29.9) 0-13周 13-40周 | |
| 731 | - 最低 0-1.1 1.1-7.1 | |
| 732 | - 最高 0-3.1 3.2-11.6 | |
| 733 | - 肥胖 (>=30.0) 0-13周 13-40周 | |
| 734 | - 最低 0-0.8 0.9-4.9 | |
| 735 | - 最高 0-2.1 2.1-8.9 | |
| 726 | + 超重(25.0-29.9) 0-13周 13-40周 | |
| 727 | + 最低 0-1.1 1.1-7.1 | |
| 728 | + 最高 0-3.1 3.2-11.6 | |
| 729 | + 肥胖 (>=30.0) 0-13周 13-40周 | |
| 730 | + 最低 0-0.8 0.9-4.9 | |
| 731 | + 最高 0-2.1 2.1-8.9 | |
| 736 | 732 | */ |
| 737 | 733 | public void setAppReport(Map<String, Object> restMap, Map<Integer, String> weights, String beforeWeight, String bmi, Map<String, String> dayWeights) { |
| 738 | 734 | List<Map<String, Object>> restList = new ArrayList<>(); |
| 739 | 735 | if(MapUtils.isNotEmpty(dayWeights)) { |
| 740 | 736 | for (String key : dayWeights.keySet()) { |
| 741 | - Map<String, Object> temp = new HashMap<>(); | |
| 737 | + Map<String, Object> temp = new LinkedHashMap<>(); | |
| 742 | 738 | temp.put("nowWeight", dayWeights.get(key)); |
| 743 | 739 | temp.put("recordTime", key); |
| 744 | 740 | restList.add(temp); |
| 745 | 741 | |
| 746 | 742 | |
| 747 | 743 | |
| 748 | 744 | |
| 749 | 745 | |
| 750 | 746 | |
| 751 | 747 | |
| 752 | 748 | |
| ... | ... | @@ -750,42 +746,69 @@ |
| 750 | 746 | if(StringUtils.isNotEmpty(bmi)) { |
| 751 | 747 | bmiD = Double.parseDouble(bmi); |
| 752 | 748 | } |
| 753 | - List<Double> highData = new ArrayList<>(); | |
| 754 | - List<Double> normalData = new ArrayList<>(); | |
| 755 | - List<Double> lowData = new ArrayList<>(); | |
| 749 | + double low = 0D; | |
| 750 | + double low2 = 0D; | |
| 751 | + double high = 0D; | |
| 752 | + double high2 = 0D; | |
| 756 | 753 | String color = ""; |
| 757 | 754 | if(bmiD <= 18.5) { |
| 758 | - highData = getDoubleList(Arrays.asList("0.0,0.3,0.6,0.9,1.2,1.5,1.8,2.0,2.3,2.6,2.9,3.2,3.5,3.8,4.3,4.9,5.4,5.9,6.4,7.0,7.5,8.0,8.6,9.1,9.6,10.2,10.7,11.2,11.7,12.3,12.8,13.3,13.9,14.4,14.9,15.5,16.0,16.5,17.0,17.6,18.1".split(","))); | |
| 759 | - normalData = getDoubleList(Arrays.asList("0.0,0.2,0.4,0.6,0.8,1.0,1.2,1.3,1.5,1.7,1.9,2.1,2.3,2.5,3.0,3.4,3.9,4.4,4.8,5.3,5.7,6.2,6.7,7.1,7.6,8.1,8.5,9.0,9.4,9.9,10.4,10.8,11.3,11.8,12.2,12.7,13.1,13.6,14.1,14.5,15.0".split(","))); | |
| 760 | - lowData = getDoubleList(Arrays.asList("0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.6,2.0,2.4,2.8,3.2,3.6,4.0,4.4,4.8,5.2,5.6,6.0,6.4,6.7,7.1,7.5,7.9,8.3,8.7,9.1,9.5,9.9,10.3,10.7,11.1,11.5,11.9".split(","))); | |
| 755 | + low = 1.2; | |
| 756 | + low2 = 11.9; | |
| 757 | + high = 3.8; | |
| 758 | + high2 = 18.1; | |
| 761 | 759 | color = "#00CD00"; |
| 762 | 760 | } else if(bmiD > 18.5 && bmiD <= 24.9){ |
| 763 | - highData = getDoubleList(Arrays.asList("0.0,0.2,0.5,0.7,1.0,1.2,1.5,1.7,2.0,2.2,2.5,2.7,3.0,3.2,3.7,4.1,4.6,5.1,5.6,6.0,6.5,7.0,7.4,7.9,8.4,8.8,9.3,9.8,10.3,10.7,11.2,11.7,12.1,12.6,13.1,13.5,14.0,14.5,15.0,15.4,15.9".split(","))); | |
| 764 | - normalData = getDoubleList(Arrays.asList("0.0,0.2,0.4,0.5,0.7,0.9,1.1,1.2,1.4,1.6,1.8,1.9,2.1,2.3,2.7,3.2,3.6,4.0,4.4,4.9,5.3,5.7,6.2,6.6,7.0,7.5,7.9,8.3,8.7,9.2,9.6,10.0,10.5,10.9,11.3,11.8,12.2,12.6,13.0,13.5,13.9".split(","))); | |
| 765 | - lowData = getDoubleList(Arrays.asList("0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.8,2.2,2.6,3.0,3.3,3.7,4.1,4.5,4.9,5.3,5.7,6.1,6.5,6.8,7.2,7.6,8.0,8.4,8.8,9.2,9.6,10.0,10.3,10.7,11.1,11.5,11.9".split(","))); | |
| 761 | + low = 1.4; | |
| 762 | + low2 = 11.9; | |
| 763 | + high = 3.2; | |
| 764 | + high2 = 15.9; | |
| 766 | 765 | color = "#7EC0EE"; |
| 767 | 766 | } else if(bmiD > 24.9 && bmiD < 30){ |
| 768 | - highData = getDoubleList(Arrays.asList("0.0,0.2,0.5,0.7,1.0,1.2,1.4,1.7,1.9,2.1,2.4,2.6,2.9,3.1,3.4,3.7,4.0,4.4,4.7,5.0,5.3,5.6,5.9,6.2,6.6,6.9,7.2,7.5,7.8,8.1,8.5,8.8,9.1,9.4,9.7,10.0,10.3,10.7,11.0,11.3,11.6".split(","))); | |
| 769 | - normalData = getDoubleList(Arrays.asList("0.0,0.2,0.3,0.5,0.6,0.8,1.0,1.1,1.3,1.5,1.6,1.8,1.9,2.1,2.4,2.6,2.9,3.2,3.4,3.7,4.0,4.2,4.5,4.8,5.1,5.3,5.6,5.9,6.1,6.4,6.7,6.9,7.2,7.5,7.7,8.0,8.3,8.5,8.8,9.1,9.3".split(","))); | |
| 770 | - lowData = getDoubleList(Arrays.asList("0.0,0.1,0.2,0.3,0.3,0.4,0.5,0.6,0.7,0.8,0.8,0.9,1.0,1.1,1.3,1.5,1.8,2.0,2.2,2.4,2.7,2.9,3.1,3.3,3.5,3.8,4.0,4.2,4.4,4.7,4.9,5.1,5.3,5.5,5.8,6.0,6.2,6.4,6.7,6.9,7.1".split(","))); | |
| 767 | + low = 1.1 ; | |
| 768 | + low2 = 7.1; | |
| 769 | + high = 3.1; | |
| 770 | + high2 = 11.6; | |
| 771 | 771 | color = "#CD3333"; |
| 772 | 772 | } else if(bmiD >= 30){ |
| 773 | - highData = getDoubleList(Arrays.asList("0.0,0.2,0.3,0.5,0.6,0.8,1.0,1.1,1.3,1.5,1.6,1.8,1.9,2.1,2.4,2.6,2.9,3.1,3.4,3.6,3.9,4.1,4.4,4.6,4.9,5.1,5.4,5.6,5.9,6.1,6.4,6.6,6.9,7.1,7.4,7.6,7.9,8.1,8.4,8.6,8.9".split(","))); | |
| 774 | - normalData = getDoubleList(Arrays.asList("0.0,0.1,0.2,0.3,0.4,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.5,1.7,1.9,2.1,2.3,2.5,2.7,2.9,3.1,3.3,3.5,3.7,3.9,4.1,4.3,4.5,4.7,4.9,5.1,5.3,5.5,5.7,5.9,6.1,6.3,6.5,6.7,6.9".split(","))); | |
| 775 | - lowData = getDoubleList(Arrays.asList("0.0,0.1,0.1,0.2,0.2,0.3,0.4,0.4,0.5,0.6,0.6,0.7,0.7,0.8,1.0,1.1,1.3,1.4,1.6,1.7,1.9,2.0,2.2,2.3,2.5,2.6,2.8,2.9,3.1,3.2,3.4,3.5,3.7,3.8,4.0,4.1,4.3,4.4,4.6,4.7,4.9".split(","))); | |
| 773 | + low = 0.8 ; | |
| 774 | + low2 = 4.9; | |
| 775 | + high = 2.1; | |
| 776 | + high2 = 8.9; | |
| 776 | 777 | color = "#CD00CD"; |
| 777 | 778 | } |
| 778 | 779 | |
| 780 | + Map<Integer, Double> highMap = new LinkedHashMap<>(); | |
| 781 | + Map<Integer, Double> normalMap = new LinkedHashMap<>(); | |
| 782 | + Map<Integer, Double> lowMap = new LinkedHashMap<>(); | |
| 779 | 783 | List<Integer> xAxis = new ArrayList<>(); |
| 784 | + double avg = low / 13; | |
| 785 | + for (int i = 0; i <= 13; i++) { | |
| 786 | + lowMap.put(i, i * avg); | |
| 787 | + } | |
| 788 | + double avg2 = (low2 - low) / 27; | |
| 789 | + for (int i = 1; i <= 27; i++) { | |
| 790 | + lowMap.put(13 + i, low + i * avg2); | |
| 791 | + } | |
| 792 | + double highAvg = high / 13; | |
| 793 | + for (int i = 0; i <= 13; i++) { | |
| 794 | + highMap.put(i, i * highAvg); | |
| 795 | + } | |
| 796 | + double highAvg2 = (high2 - high) / 27; | |
| 797 | + for (int i = 1; i <= 27; i++) { | |
| 798 | + highMap.put(13 + i, high + i * highAvg2); | |
| 799 | + } | |
| 800 | + for (int i = 0; i <= 40; i++) { | |
| 801 | + normalMap.put(i, (highMap.get(i) + lowMap.get(i)) / 2); | |
| 802 | + } | |
| 780 | 803 | |
| 781 | - Map<String, Object> reportModel = new HashMap<>(); | |
| 782 | - Map<String, Object> series = new HashMap<>(); | |
| 804 | + Map<String, Object> reportModel = new LinkedHashMap<>(); | |
| 805 | + Map<String, Object> series = new LinkedHashMap<>(); | |
| 783 | 806 | // series.put("lowData", MathUtil.doubleFormat2(CollectionUtils.getValList(lowMap))); |
| 784 | 807 | // series.put("highData", MathUtil.doubleFormat2(CollectionUtils.getValList(highMap))); |
| 785 | 808 | // series.put("normalData", MathUtil.doubleFormat2(CollectionUtils.getValList(normalMap))); |
| 786 | - series.put("lowData", lowData); | |
| 787 | - series.put("highData", highData); | |
| 788 | - series.put("normalData", normalData); | |
| 809 | + series.put("lowData", delOtherPort(CollectionUtils.getValList(lowMap))); | |
| 810 | + series.put("highData", delOtherPort(CollectionUtils.getValList(highMap))); | |
| 811 | + series.put("normalData", delOtherPort(CollectionUtils.getValList(normalMap))); | |
| 789 | 812 | |
| 790 | 813 | series.put("dayWeights", restList); |
| 791 | 814 | |
| ... | ... | @@ -811,7 +834,7 @@ |
| 811 | 834 | Iterator<Map.Entry<Integer, String>> iterator = weights.entrySet().iterator(); |
| 812 | 835 | while (iterator.hasNext()) { |
| 813 | 836 | Map.Entry<Integer, String> next = iterator.next(); |
| 814 | - Map<String, Object> temp = new HashMap<>(); | |
| 837 | + Map<String, Object> temp = new LinkedHashMap<>(); | |
| 815 | 838 | temp.put("week", next.getKey()); |
| 816 | 839 | temp.put("weight", getDiff(beforeWeight, next.getValue())); |
| 817 | 840 | list.add(temp); |
| 818 | 841 | |
| 819 | 842 | |
| ... | ... | @@ -840,28 +863,17 @@ |
| 840 | 863 | return restList; |
| 841 | 864 | } |
| 842 | 865 | |
| 843 | - public List<Double> getDoubleList(List<String> list) { | |
| 844 | - List<Double> rest = new ArrayList<>(); | |
| 845 | - for (String s : list) { | |
| 846 | - rest.add(Double.parseDouble(s)); | |
| 847 | - } | |
| 848 | - return rest; | |
| 849 | - } | |
| 850 | - | |
| 851 | 866 | public void setReport(Map<String, Object> restMap, Map<Integer, String> weights, String beforeWeight, String bmi, Map<String, String> dayWeights) { |
| 852 | 867 | List<Map<String, Object>> restList = new ArrayList<>(); |
| 853 | 868 | if(MapUtils.isNotEmpty(dayWeights)) { |
| 854 | 869 | for (String key : dayWeights.keySet()) { |
| 855 | - Map<String, Object> temp = new HashMap<>(); | |
| 870 | + Map<String, Object> temp = new LinkedHashMap<>(); | |
| 856 | 871 | temp.put("nowWeight", dayWeights.get(key)); |
| 857 | 872 | temp.put("recordTime", key); |
| 858 | 873 | restList.add(temp); |
| 859 | 874 | } |
| 860 | 875 | } |
| 861 | 876 | |
| 862 | - List<Double> highData = new ArrayList<>(); | |
| 863 | - List<Double> normalData = new ArrayList<>(); | |
| 864 | - List<Double> lowData = new ArrayList<>(); | |
| 865 | 877 | // 小程序和app可能没有bmi 默认返回标准 |
| 866 | 878 | Double bmiD = 20D; |
| 867 | 879 | if(StringUtils.isNotEmpty(bmi)) { |
| ... | ... | @@ -869,88 +881,6 @@ |
| 869 | 881 | } |
| 870 | 882 | String title = ""; |
| 871 | 883 | String color = ""; |
| 872 | - if(bmiD <= 18.5) { | |
| 873 | - title = "低体重推荐增重均值"; | |
| 874 | - highData = getDoubleList(Arrays.asList("0.0,0.3,0.6,0.9,1.2,1.5,1.8,2.0,2.3,2.6,2.9,3.2,3.5,3.8,4.3,4.9,5.4,5.9,6.4,7.0,7.5,8.0,8.6,9.1,9.6,10.2,10.7,11.2,11.7,12.3,12.8,13.3,13.9,14.4,14.9,15.5,16.0,16.5,17.0,17.6,18.1".split(","))); | |
| 875 | - normalData = getDoubleList(Arrays.asList("0.0,0.2,0.4,0.6,0.8,1.0,1.2,1.3,1.5,1.7,1.9,2.1,2.3,2.5,3.0,3.4,3.9,4.4,4.8,5.3,5.7,6.2,6.7,7.1,7.6,8.1,8.5,9.0,9.4,9.9,10.4,10.8,11.3,11.8,12.2,12.7,13.1,13.6,14.1,14.5,15.0".split(","))); | |
| 876 | - lowData = getDoubleList(Arrays.asList("0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.6,2.0,2.4,2.8,3.2,3.6,4.0,4.4,4.8,5.2,5.6,6.0,6.4,6.7,7.1,7.5,7.9,8.3,8.7,9.1,9.5,9.9,10.3,10.7,11.1,11.5,11.9".split(","))); | |
| 877 | - color = "#00CD00"; | |
| 878 | - } else if(bmiD > 18.5 && bmiD <= 24.9){ | |
| 879 | - title = "标准体重推荐增重均值"; | |
| 880 | - highData = getDoubleList(Arrays.asList("0.0,0.2,0.5,0.7,1.0,1.2,1.5,1.7,2.0,2.2,2.5,2.7,3.0,3.2,3.7,4.1,4.6,5.1,5.6,6.0,6.5,7.0,7.4,7.9,8.4,8.8,9.3,9.8,10.3,10.7,11.2,11.7,12.1,12.6,13.1,13.5,14.0,14.5,15.0,15.4,15.9".split(","))); | |
| 881 | - normalData = getDoubleList(Arrays.asList("0.0,0.2,0.4,0.5,0.7,0.9,1.1,1.2,1.4,1.6,1.8,1.9,2.1,2.3,2.7,3.2,3.6,4.0,4.4,4.9,5.3,5.7,6.2,6.6,7.0,7.5,7.9,8.3,8.7,9.2,9.6,10.0,10.5,10.9,11.3,11.8,12.2,12.6,13.0,13.5,13.9".split(","))); | |
| 882 | - lowData = getDoubleList(Arrays.asList("0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.8,2.2,2.6,3.0,3.3,3.7,4.1,4.5,4.9,5.3,5.7,6.1,6.5,6.8,7.2,7.6,8.0,8.4,8.8,9.2,9.6,10.0,10.3,10.7,11.1,11.5,11.9".split(","))); | |
| 883 | - color = "#7EC0EE"; | |
| 884 | - } else if(bmiD > 24.9 && bmiD < 30){ | |
| 885 | - title = "超重体重推荐增重均值"; | |
| 886 | - highData = getDoubleList(Arrays.asList("0.0,0.2,0.5,0.7,1.0,1.2,1.4,1.7,1.9,2.1,2.4,2.6,2.9,3.1,3.4,3.7,4.0,4.4,4.7,5.0,5.3,5.6,5.9,6.2,6.6,6.9,7.2,7.5,7.8,8.1,8.5,8.8,9.1,9.4,9.7,10.0,10.3,10.7,11.0,11.3,11.6".split(","))); | |
| 887 | - normalData = getDoubleList(Arrays.asList("0.0,0.2,0.3,0.5,0.6,0.8,1.0,1.1,1.3,1.5,1.6,1.8,1.9,2.1,2.4,2.6,2.9,3.2,3.4,3.7,4.0,4.2,4.5,4.8,5.1,5.3,5.6,5.9,6.1,6.4,6.7,6.9,7.2,7.5,7.7,8.0,8.3,8.5,8.8,9.1,9.3".split(","))); | |
| 888 | - lowData = getDoubleList(Arrays.asList("0.0,0.1,0.2,0.3,0.3,0.4,0.5,0.6,0.7,0.8,0.8,0.9,1.0,1.1,1.3,1.5,1.8,2.0,2.2,2.4,2.7,2.9,3.1,3.3,3.5,3.8,4.0,4.2,4.4,4.7,4.9,5.1,5.3,5.5,5.8,6.0,6.2,6.4,6.7,6.9,7.1".split(","))); | |
| 889 | - color = "#CD3333"; | |
| 890 | - } else if(bmiD >= 30){ | |
| 891 | - title = "肥胖体重推荐增重均值"; | |
| 892 | - highData = getDoubleList(Arrays.asList("0.0,0.2,0.3,0.5,0.6,0.8,1.0,1.1,1.3,1.5,1.6,1.8,1.9,2.1,2.4,2.6,2.9,3.1,3.4,3.6,3.9,4.1,4.4,4.6,4.9,5.1,5.4,5.6,5.9,6.1,6.4,6.6,6.9,7.1,7.4,7.6,7.9,8.1,8.4,8.6,8.9".split(","))); | |
| 893 | - normalData = getDoubleList(Arrays.asList("0.0,0.1,0.2,0.3,0.4,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.5,1.7,1.9,2.1,2.3,2.5,2.7,2.9,3.1,3.3,3.5,3.7,3.9,4.1,4.3,4.5,4.7,4.9,5.1,5.3,5.5,5.7,5.9,6.1,6.3,6.5,6.7,6.9".split(","))); | |
| 894 | - lowData = getDoubleList(Arrays.asList("0.0,0.1,0.1,0.2,0.2,0.3,0.4,0.4,0.5,0.6,0.6,0.7,0.7,0.8,1.0,1.1,1.3,1.4,1.6,1.7,1.9,2.0,2.2,2.3,2.5,2.6,2.8,2.9,3.1,3.2,3.4,3.5,3.7,3.8,4.0,4.1,4.3,4.4,4.6,4.7,4.9".split(","))); | |
| 895 | - color = "#CD00CD"; | |
| 896 | - } | |
| 897 | - | |
| 898 | - List<Integer> xAxis = new ArrayList<>(); | |
| 899 | - | |
| 900 | - Map<String, Object> reportModel = new HashMap<>(); | |
| 901 | - Map<String, Object> series = new HashMap<>(); | |
| 902 | - series.put("lowData", lowData); | |
| 903 | - series.put("highData", highData); | |
| 904 | - series.put("normalData", normalData); | |
| 905 | - | |
| 906 | - series.put("dayWeights", restList); | |
| 907 | - | |
| 908 | - reportModel.put("series", series); | |
| 909 | - | |
| 910 | - reportModel.put("title", title); | |
| 911 | - reportModel.put("color", color); | |
| 912 | - | |
| 913 | - for (int i = 0; i <= 40; i++) { | |
| 914 | - xAxis.add(i); | |
| 915 | - } | |
| 916 | - reportModel.put("xAxis", xAxis); | |
| 917 | - | |
| 918 | - List<Object> list = new ArrayList<>(); | |
| 919 | - if(MapUtils.isNotEmpty(weights)) { | |
| 920 | - Iterator<Map.Entry<Integer, String>> iterator = weights.entrySet().iterator(); | |
| 921 | - while (iterator.hasNext()) { | |
| 922 | - Map.Entry<Integer, String> next = iterator.next(); | |
| 923 | - list.add(Arrays.asList(next.getKey(), getDiff(beforeWeight, next.getValue()))); | |
| 924 | - } | |
| 925 | - } | |
| 926 | - series.put("portData", list); | |
| 927 | - series.put("portData", list); | |
| 928 | - restMap.put("reportModel", reportModel); | |
| 929 | - } | |
| 930 | - | |
| 931 | - /*public void setReport(Map<String, Object> restMap, Map<Integer, String> weights, String beforeWeight, String bmi, Map<String, String> dayWeights) { | |
| 932 | - logger.info("restMap>> " + restMap); | |
| 933 | - logger.info("weights>> " + weights); | |
| 934 | - logger.info("beforeWeight>> " + beforeWeight); | |
| 935 | - logger.info("bmi>> " + bmi); | |
| 936 | - logger.info("dayWeights>> " + dayWeights); | |
| 937 | - List<Map<String, Object>> restList = new ArrayList<>(); | |
| 938 | - if(MapUtils.isNotEmpty(dayWeights)) { | |
| 939 | - for (String key : dayWeights.keySet()) { | |
| 940 | - Map<String, Object> temp = new HashMap<>(); | |
| 941 | - temp.put("nowWeight", dayWeights.get(key)); | |
| 942 | - temp.put("recordTime", key); | |
| 943 | - restList.add(temp); | |
| 944 | - } | |
| 945 | - } | |
| 946 | - | |
| 947 | - // 小程序和app可能没有bmi 默认返回标准 | |
| 948 | - Double bmiD = 20D; | |
| 949 | - if(StringUtils.isNotEmpty(bmi)) { | |
| 950 | - bmiD = Double.parseDouble(bmi); | |
| 951 | - } | |
| 952 | - String title = ""; | |
| 953 | - String color = ""; | |
| 954 | 884 | double low = 0D; |
| 955 | 885 | double low2 = 0D; |
| 956 | 886 | double high = 0D; |
| ... | ... | @@ -985,9 +915,9 @@ |
| 985 | 915 | color = "#CD00CD"; |
| 986 | 916 | } |
| 987 | 917 | |
| 988 | - Map<Integer, Double> highMap = new HashMap<>(); | |
| 989 | - Map<Integer, Double> normalMap = new HashMap<>(); | |
| 990 | - Map<Integer, Double> lowMap = new HashMap<>(); | |
| 918 | + Map<Integer, Double> highMap = new LinkedHashMap<>(); | |
| 919 | + Map<Integer, Double> normalMap = new LinkedHashMap<>(); | |
| 920 | + Map<Integer, Double> lowMap = new LinkedHashMap<>(); | |
| 991 | 921 | List<Integer> xAxis = new ArrayList<>(); |
| 992 | 922 | double avg = low / 13; |
| 993 | 923 | for (int i = 0; i <= 13; i++) { |
| ... | ... | @@ -1009,8 +939,8 @@ |
| 1009 | 939 | normalMap.put(i, (highMap.get(i) + lowMap.get(i)) / 2); |
| 1010 | 940 | } |
| 1011 | 941 | |
| 1012 | - Map<String, Object> reportModel = new HashMap<>(); | |
| 1013 | - Map<String, Object> series = new HashMap<>(); | |
| 942 | + Map<String, Object> reportModel = new LinkedHashMap<>(); | |
| 943 | + Map<String, Object> series = new LinkedHashMap<>(); | |
| 1014 | 944 | series.put("lowData", MathUtil.doubleFormat2(CollectionUtils.getValList(lowMap))); |
| 1015 | 945 | series.put("highData", MathUtil.doubleFormat2(CollectionUtils.getValList(highMap))); |
| 1016 | 946 | series.put("normalData", MathUtil.doubleFormat2(CollectionUtils.getValList(normalMap))); |
| ... | ... | @@ -1027,7 +957,7 @@ |
| 1027 | 957 | } |
| 1028 | 958 | reportModel.put("xAxis", xAxis); |
| 1029 | 959 | |
| 1030 | - List<Object> list = new ArrayList<>(); | |
| 960 | + List<Object> list = new ArrayList<>(); | |
| 1031 | 961 | if(MapUtils.isNotEmpty(weights)) { |
| 1032 | 962 | Iterator<Map.Entry<Integer, String>> iterator = weights.entrySet().iterator(); |
| 1033 | 963 | while (iterator.hasNext()) { |
| ... | ... | @@ -1038,7 +968,7 @@ |
| 1038 | 968 | series.put("portData", list); |
| 1039 | 969 | series.put("portData", list); |
| 1040 | 970 | restMap.put("reportModel", reportModel); |
| 1041 | - }*/ | |
| 971 | + } | |
| 1042 | 972 | |
| 1043 | 973 | /** |
| 1044 | 974 | * 获取两个体重之间相差的数值 |