Commit f4875c7220f20316a53cbd7d009f72ea385c1770

Authored by wangbo
1 parent 7d8298254e

血压报告bug修改

Showing 2 changed files with 90 additions and 93 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BloodPressureController.java View file @ f4875c7
... ... @@ -146,7 +146,9 @@
146 146 @ResponseBody
147 147 @RequestMapping(value = "/getXyPresentation/{bloodId}", method = RequestMethod.GET)
148 148 public BaseResponse getXyPresentation(@PathVariable String bloodId) {
149   - System.out.println("bloodID:" + bloodId);
  149 + if (StringUtils.isEmpty(bloodId) || "null".equals(bloodId)) {
  150 + return new BaseResponse().setErrorcode(ErrorCodeConstants.PARAMETER_ERROR).setErrormsg("bloodId参数不能为空");
  151 + }
150 152 return bloodPressureService.getXyPresentation(bloodId);
151 153 }
152 154  
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodPressureServiceImpl.java View file @ f4875c7
... ... @@ -674,8 +674,7 @@
674 674 @Override
675 675 public BaseResponse getXyPresentation(String bloodId) {
676 676 //1.通过血压ID 查询到pnationId
677   - List<Map> datas = new ArrayList<>();
678   - Map<String, Object> maps = new HashMap<>();
  677 + Map<String, Object> datas = new HashMap<>();
679 678 Map<String, Map<Integer, Double>> series = new HashMap<>();
680 679 BloodPressure bloodPressure = mongoTemplate.findOne(Query.query(Criteria.where("_id").is(bloodId)), BloodPressure.class);
681 680 //1.1回去bim值 String getBmi(String weight, String height);
... ... @@ -683,7 +682,7 @@
683 682 String height = bloodPressure.getHeight();
684 683 String bregmatic = bloodPressure.getTireNumber();
685 684 //2.通过pnationId ID获取到相应的信息例如:末次月经
686   - if (StringUtils.isNotEmpty(bloodPressure.getParentId())) {
  685 + if (StringUtils.isNotEmpty(bloodPressure.getParentId()) && StringUtils.isNotEmpty(weight) && StringUtils.isNotEmpty(height) && StringUtils.isNotEmpty(bregmatic)) {
687 686 Patients patients = mongoTemplate.findOne(Query.query(Criteria.where("_id").is(bloodPressure.getParentId())), Patients.class);
688 687 Integer weeks = DateUtil.daysBetween(patients.getLastMenses(), new Date()) / 7;
689 688 Map paMap = new HashMap();
690 689  
691 690  
692 691  
693 692  
694 693  
695 694  
696 695  
697 696  
698 697  
699 698  
700 699  
... ... @@ -691,109 +690,107 @@
691 690 paMap.put("username", patients.getUsername());
692 691 paMap.put("phone", patients.getPhone());
693 692 paMap.put("age", patients.getAge());
694   - paMap.put("dueDate", patients.getDueDate());
  693 + paMap.put("dueDate", DateUtil.getyyyy_MM_dd(patients.getDueDate()));
695 694 paMap.put("height", bloodPressure.getHeight());
696 695 paMap.put("beforWeight", bloodPressure.getBeforWeight());
697 696 paMap.put("weeks", weeks);
698   - datas.add(paMap);
  697 + datas.put("userInfo", paMap);
699 698 Double bmiD = Double.valueOf(patientWeightService.getBmi(weight, height)).doubleValue();
700 699 String bmiStr = "";
701 700 //空和1表示单胎
702   - if (StringUtils.isEmpty(weight) || StringUtils.isEmpty(height) || StringUtils.isEmpty(bregmatic)) {
703   - return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.NO_DATA).setErrormsg("没有填写孕前体重或身高");
  701 + if (!org.apache.commons.lang.StringUtils.isNotEmpty(bregmatic) || "1".equals(bregmatic)) {
  702 + if (bmiD < 18.5) {
  703 + bmiStr = "BMI<18.5";
  704 + } else if (bmiD >= 18.5 && bmiD <= 24.99) {
  705 + bmiStr = "BMI=18.5-24.9";
  706 + } else if (bmiD > 24.9 && bmiD < 30) {
  707 + bmiStr = "BMI=25-29.9";
  708 + } else if (bmiD >= 30) {
  709 + bmiStr = "BMI≥30";
  710 + }
704 711 } else {
705   - if (!org.apache.commons.lang.StringUtils.isNotEmpty(bregmatic) || "1".equals(bregmatic)) {
706   - if (bmiD < 18.5) {
707   - bmiStr = "BMI<18.5";
708   - } else if (bmiD >= 18.5 && bmiD <= 24.99) {
709   - bmiStr = "BMI=18.5-24.9";
710   - } else if (bmiD > 24.9 && bmiD < 30) {
711   - bmiStr = "BMI=25-29.9";
712   - } else if (bmiD >= 30) {
713   - bmiStr = "BMI≥30";
714   - }
715   - } else {
716   - if (bmiD <= 24.9) {
717   - bmiStr = "BMI≤24.9";
718   - } else if (bmiD >= 25 && bmiD <= 29.99) {
719   - bmiStr = "BMI=25-29.9";
720   - } else if (bmiD >= 30) {
721   - bmiStr = "BMI≥30";
722   - }
  712 + if (bmiD <= 24.9) {
  713 + bmiStr = "BMI≤24.9";
  714 + } else if (bmiD >= 25 && bmiD <= 29.99) {
  715 + bmiStr = "BMI=25-29.9";
  716 + } else if (bmiD >= 30) {
  717 + bmiStr = "BMI≥30";
723 718 }
724   - //计算出区间范围
725   - double low = 0.0;
726   - double high = 0.0;
727   - this.getSeries(series, bmiStr, bregmatic);
728   - Map<Integer, Double> lowMap = series.get("lowData");
729   - for (Map.Entry<Integer, Double> entry : lowMap.entrySet()) {
730   - if (entry.getKey() == weeks) {
731   - low = entry.getValue();
732   - }
  719 + }
  720 + //计算出区间范围
  721 + double low = 0.0;
  722 + double high = 0.0;
  723 + this.getSeries(series, bmiStr, bregmatic);
  724 + Map<Integer, Double> lowMap = series.get("lowData");
  725 + for (Map.Entry<Integer, Double> entry : lowMap.entrySet()) {
  726 + if (entry.getKey() == weeks) {
  727 + low = entry.getValue();
733 728 }
734   - Map<Integer, Double> highMap = series.get("highData");
735   - for (Map.Entry<Integer, Double> entry : highMap.entrySet()) {
736   - if (entry.getKey() == weeks) {
737   - high = entry.getValue();
738   - }
  729 + }
  730 + Map<Integer, Double> highMap = series.get("highData");
  731 + for (Map.Entry<Integer, Double> entry : highMap.entrySet()) {
  732 + if (entry.getKey() == weeks) {
  733 + high = entry.getValue();
739 734 }
740   - //计算出属于那种类型 偏重 还事负重 还是正常 当前体重-孕前体重
741   - Double residualWeight = Double.valueOf(bloodPressure.getWeight()).doubleValue() - Double.valueOf(bloodPressure.getBeforWeight()).doubleValue();
742   - //把厘米转换成米
743   - Double heights = (Double.valueOf(bloodPressure.getHeight()).doubleValue()) / 100d;
744   - int cals = this.getRounding((int) this.getCal(bregmatic, residualWeight, low, high, weeks, bmiD, patients, bloodPressure, heights));
745   - String calStr = cals + "kcal";
746   - List<XyPresentationModel> xyPresentationModels = mongoTemplate.find(Query.query(Criteria.where("originWeek").lte(weeks).and("endWeek").gte(weeks)), XyPresentationModel.class);
747   - XyPresentationModel xy = mongoTemplate.findOne(Query.query(Criteria.where("quantityHeat").is(calStr)), XyPresentationModel.class);
748   - if (xy != null) {
749   - Map mapxy = new HashMap();
750   - if (weeks >= 0 && weeks <= 12) {
751   - mapxy.put("proposal", "建议(孕早期)");
752   - mapxy.put("proposalInfo", xy.getEarlySuggests());
753   - } else if (weeks >= 13 && weeks <= 28) {
754   - mapxy.put("proposal", "建议(孕中期)");
755   - mapxy.put("proposalInfo", xy.getMiddleSuggests());
756   - mapxy.put("proposal", "建议(孕晚期)");
757   - } else if (weeks >= 30) {
758   - mapxy.put("proposalInfo", xy.getLaterSuggests());
759   - }
760   - mapxy.put("quantityHeat", xy.getQuantityHeat());
761   - mapxy.put("breakfast", xy.getBreakfast());
762   - mapxy.put("breakfastAdd", xy.getBreakfastAdd());
763   - mapxy.put("lunch", xy.getLunch());
764   - mapxy.put("lunchAdd", xy.getLunchAdd());
765   - mapxy.put("dinner", xy.getDinner());
766   - mapxy.put("dinnerAdd", xy.getDinnerAdd());
767   - mapxy.put("northSouth", xy.getNorthSouth());
768   - maps.put("recipes", mapxy);
769   - } else {
770   - return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.NO_DATA).setErrormsg("未获取到热量值");
  735 + }
  736 + //计算出属于那种类型 偏重 还事负重 还是正常 当前体重-孕前体重
  737 + Double residualWeight = Double.valueOf(bloodPressure.getWeight()).doubleValue() - Double.valueOf(bloodPressure.getBeforWeight()).doubleValue();
  738 + //把厘米转换成米
  739 + Double heights = (Double.valueOf(bloodPressure.getHeight()).doubleValue()) / 100d;
  740 + int cals = this.getRounding((int) this.getCal(bregmatic, residualWeight, low, high, weeks, bmiD, patients, bloodPressure, heights));
  741 + String calStr = cals + "kcal";
  742 + List<XyPresentationModel> xyPresentationModels = mongoTemplate.find(Query.query(Criteria.where("originWeek").lte(weeks).and("endWeek").gte(weeks)), XyPresentationModel.class);
  743 + XyPresentationModel xy = mongoTemplate.findOne(Query.query(Criteria.where("quantityHeat").is(calStr)), XyPresentationModel.class);
  744 + if (xy != null) {
  745 + Map mapxy = new HashMap();
  746 + if (weeks >= 0 && weeks <= 12) {
  747 + mapxy.put("proposal", "建议(孕早期)");
  748 + mapxy.put("proposalInfo", xy.getEarlySuggests());
  749 + } else if (weeks >= 13 && weeks <= 28) {
  750 + mapxy.put("proposal", "建议(孕中期)");
  751 + mapxy.put("proposalInfo", xy.getMiddleSuggests());
  752 + } else if (weeks >= 30) {
  753 + mapxy.put("proposal", "建议(孕晚期)");
  754 + mapxy.put("proposalInfo", xy.getLaterSuggests());
771 755 }
772   - if (xyPresentationModels.isEmpty()) {
773   - return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.NO_DATA).setErrormsg("没有对应的数据");
774   - } else {
775   - List<Map> motionList = new LinkedList<>();
776   - for (XyPresentationModel p : xyPresentationModels) {
777   - Map map = new HashMap();
778   - map.put("title", p.getTitle());
779   - map.put("content", p.getContent());
780   - map.put("modular", p.getModular());
781   - map.put("type", p.getType());
782   - if (p.getType() == 3) {
783   - motionList.add(map);
784   - } else if (p.getType() == 2) {
785   - maps.put("guide", map);
786   - } else {
787   - maps.put("pregnancy", map);
788   - }
  756 + mapxy.put("quantityHeat", xy.getQuantityHeat());
  757 + mapxy.put("breakfast", xy.getBreakfast());
  758 + mapxy.put("breakfastAdd", xy.getBreakfastAdd());
  759 + mapxy.put("lunch", xy.getLunch());
  760 + mapxy.put("lunchAdd", xy.getLunchAdd());
  761 + mapxy.put("dinner", xy.getDinner());
  762 + mapxy.put("dinnerAdd", xy.getDinnerAdd());
  763 + mapxy.put("northSouth", xy.getNorthSouth());
  764 + datas.put("recipes", mapxy);
  765 + } else {
  766 + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.NO_DATA).setErrormsg("未获取到热量值");
  767 + }
  768 + if (xyPresentationModels.isEmpty()) {
  769 + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.NO_DATA).setErrormsg("没有对应的数据");
  770 + } else {
  771 + List<Map> motionList = new ArrayList<>();
  772 + for (XyPresentationModel p : xyPresentationModels) {
  773 + Map map = new HashMap();
  774 + map.put("title", p.getTitle());
  775 + map.put("content", p.getContent());
  776 + map.put("modular", p.getModular());
  777 + map.put("type", p.getType());
  778 + if (3 == p.getType()) {
  779 + motionList.add(map);
  780 + } else if (2 == p.getType()) {
  781 + datas.put("guide", map);
  782 + } else if (0 == p.getType()) {
  783 + datas.put("pregnancy", map);
789 784 }
790   - maps.put("motion", motionList);
791   - datas.add(maps);
792 785 }
  786 + datas.put("motion", motionList);
793 787 }
  788 + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(datas);
  789 + } else {
  790 + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.NO_DATA).setErrormsg("失败").setData("请检查数据是否填写完整!");
794 791 }
795 792 //3.算出孕周通过孕周查询到对应的信息进行返回
796   - return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(datas);
  793 +
797 794 }
798 795  
799 796 public void getSeries(Map<String, Map<Integer, Double>> series, String bmiStr, String bregmatic) {
... ... @@ -1073,7 +1070,6 @@
1073 1070 int b = number / 100 % 10 + 1;
1074 1071 int q = number / 1000 % 10;
1075 1072 int num = q * 1000 + b * 100 + sw * 0 + g * 0;
1076   - System.out.println("向上取cal值为:" + num);
1077 1073 return num;
1078 1074 } else {
1079 1075 int g = 0; //s % 10;
... ... @@ -1081,7 +1077,6 @@
1081 1077 int b = number / 100 % 10;
1082 1078 int q = number / 1000 % 10;
1083 1079 int num = q * 1000 + b * 100 + sw * 0 + g * 0;
1084   - System.out.println("向下取得cal值为:" + num);
1085 1080 return num;
1086 1081 }
1087 1082 }