From f4875c7220f20316a53cbd7d009f72ea385c1770 Mon Sep 17 00:00:00 2001 From: wangbo <184677810@qq.com> Date: Tue, 5 Mar 2019 17:11:05 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=80=E5=8E=8B=E6=8A=A5=E5=91=8Abug?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/BloodPressureController.java | 4 +- .../web/service/impl/BloodPressureServiceImpl.java | 179 ++++++++++----------- 2 files changed, 90 insertions(+), 93 deletions(-) diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BloodPressureController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BloodPressureController.java index 3364651..e1d157b 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BloodPressureController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BloodPressureController.java @@ -146,7 +146,9 @@ public class BloodPressureController extends BaseController { @ResponseBody @RequestMapping(value = "/getXyPresentation/{bloodId}", method = RequestMethod.GET) public BaseResponse getXyPresentation(@PathVariable String bloodId) { - System.out.println("bloodID:" + bloodId); + if (StringUtils.isEmpty(bloodId) || "null".equals(bloodId)) { + return new BaseResponse().setErrorcode(ErrorCodeConstants.PARAMETER_ERROR).setErrormsg("bloodId参数不能为空"); + } return bloodPressureService.getXyPresentation(bloodId); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodPressureServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodPressureServiceImpl.java index 2cf2565..bc6baaf 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodPressureServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodPressureServiceImpl.java @@ -674,8 +674,7 @@ public class BloodPressureServiceImpl extends BaseServiceImpl implements IBloodP @Override public BaseResponse getXyPresentation(String bloodId) { //1.通过血压ID 查询到pnationId - List datas = new ArrayList<>(); - Map maps = new HashMap<>(); + Map datas = new HashMap<>(); Map> series = new HashMap<>(); BloodPressure bloodPressure = mongoTemplate.findOne(Query.query(Criteria.where("_id").is(bloodId)), BloodPressure.class); //1.1回去bim值 String getBmi(String weight, String height); @@ -683,7 +682,7 @@ public class BloodPressureServiceImpl extends BaseServiceImpl implements IBloodP String height = bloodPressure.getHeight(); String bregmatic = bloodPressure.getTireNumber(); //2.通过pnationId ID获取到相应的信息例如:末次月经 - if (StringUtils.isNotEmpty(bloodPressure.getParentId())) { + if (StringUtils.isNotEmpty(bloodPressure.getParentId()) && StringUtils.isNotEmpty(weight) && StringUtils.isNotEmpty(height) && StringUtils.isNotEmpty(bregmatic)) { Patients patients = mongoTemplate.findOne(Query.query(Criteria.where("_id").is(bloodPressure.getParentId())), Patients.class); Integer weeks = DateUtil.daysBetween(patients.getLastMenses(), new Date()) / 7; Map paMap = new HashMap(); @@ -691,109 +690,107 @@ public class BloodPressureServiceImpl extends BaseServiceImpl implements IBloodP paMap.put("username", patients.getUsername()); paMap.put("phone", patients.getPhone()); paMap.put("age", patients.getAge()); - paMap.put("dueDate", patients.getDueDate()); + paMap.put("dueDate", DateUtil.getyyyy_MM_dd(patients.getDueDate())); paMap.put("height", bloodPressure.getHeight()); paMap.put("beforWeight", bloodPressure.getBeforWeight()); paMap.put("weeks", weeks); - datas.add(paMap); + datas.put("userInfo", paMap); Double bmiD = Double.valueOf(patientWeightService.getBmi(weight, height)).doubleValue(); String bmiStr = ""; //空和1表示单胎 - if (StringUtils.isEmpty(weight) || StringUtils.isEmpty(height) || StringUtils.isEmpty(bregmatic)) { - return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.NO_DATA).setErrormsg("没有填写孕前体重或身高"); + if (!org.apache.commons.lang.StringUtils.isNotEmpty(bregmatic) || "1".equals(bregmatic)) { + if (bmiD < 18.5) { + bmiStr = "BMI<18.5"; + } else if (bmiD >= 18.5 && bmiD <= 24.99) { + bmiStr = "BMI=18.5-24.9"; + } else if (bmiD > 24.9 && bmiD < 30) { + bmiStr = "BMI=25-29.9"; + } else if (bmiD >= 30) { + bmiStr = "BMI≥30"; + } } else { - if (!org.apache.commons.lang.StringUtils.isNotEmpty(bregmatic) || "1".equals(bregmatic)) { - if (bmiD < 18.5) { - bmiStr = "BMI<18.5"; - } else if (bmiD >= 18.5 && bmiD <= 24.99) { - bmiStr = "BMI=18.5-24.9"; - } else if (bmiD > 24.9 && bmiD < 30) { - bmiStr = "BMI=25-29.9"; - } else if (bmiD >= 30) { - bmiStr = "BMI≥30"; - } - } else { - if (bmiD <= 24.9) { - bmiStr = "BMI≤24.9"; - } else if (bmiD >= 25 && bmiD <= 29.99) { - bmiStr = "BMI=25-29.9"; - } else if (bmiD >= 30) { - bmiStr = "BMI≥30"; - } + if (bmiD <= 24.9) { + bmiStr = "BMI≤24.9"; + } else if (bmiD >= 25 && bmiD <= 29.99) { + bmiStr = "BMI=25-29.9"; + } else if (bmiD >= 30) { + bmiStr = "BMI≥30"; } - //计算出区间范围 - double low = 0.0; - double high = 0.0; - this.getSeries(series, bmiStr, bregmatic); - Map lowMap = series.get("lowData"); - for (Map.Entry entry : lowMap.entrySet()) { - if (entry.getKey() == weeks) { - low = entry.getValue(); - } + } + //计算出区间范围 + double low = 0.0; + double high = 0.0; + this.getSeries(series, bmiStr, bregmatic); + Map lowMap = series.get("lowData"); + for (Map.Entry entry : lowMap.entrySet()) { + if (entry.getKey() == weeks) { + low = entry.getValue(); } - Map highMap = series.get("highData"); - for (Map.Entry entry : highMap.entrySet()) { - if (entry.getKey() == weeks) { - high = entry.getValue(); - } + } + Map highMap = series.get("highData"); + for (Map.Entry entry : highMap.entrySet()) { + if (entry.getKey() == weeks) { + high = entry.getValue(); } - //计算出属于那种类型 偏重 还事负重 还是正常 当前体重-孕前体重 - Double residualWeight = Double.valueOf(bloodPressure.getWeight()).doubleValue() - Double.valueOf(bloodPressure.getBeforWeight()).doubleValue(); - //把厘米转换成米 - Double heights = (Double.valueOf(bloodPressure.getHeight()).doubleValue()) / 100d; - int cals = this.getRounding((int) this.getCal(bregmatic, residualWeight, low, high, weeks, bmiD, patients, bloodPressure, heights)); - String calStr = cals + "kcal"; - List xyPresentationModels = mongoTemplate.find(Query.query(Criteria.where("originWeek").lte(weeks).and("endWeek").gte(weeks)), XyPresentationModel.class); - XyPresentationModel xy = mongoTemplate.findOne(Query.query(Criteria.where("quantityHeat").is(calStr)), XyPresentationModel.class); - if (xy != null) { - Map mapxy = new HashMap(); - if (weeks >= 0 && weeks <= 12) { - mapxy.put("proposal", "建议(孕早期)"); - mapxy.put("proposalInfo", xy.getEarlySuggests()); - } else if (weeks >= 13 && weeks <= 28) { - mapxy.put("proposal", "建议(孕中期)"); - mapxy.put("proposalInfo", xy.getMiddleSuggests()); - mapxy.put("proposal", "建议(孕晚期)"); - } else if (weeks >= 30) { - mapxy.put("proposalInfo", xy.getLaterSuggests()); - } - mapxy.put("quantityHeat", xy.getQuantityHeat()); - mapxy.put("breakfast", xy.getBreakfast()); - mapxy.put("breakfastAdd", xy.getBreakfastAdd()); - mapxy.put("lunch", xy.getLunch()); - mapxy.put("lunchAdd", xy.getLunchAdd()); - mapxy.put("dinner", xy.getDinner()); - mapxy.put("dinnerAdd", xy.getDinnerAdd()); - mapxy.put("northSouth", xy.getNorthSouth()); - maps.put("recipes", mapxy); - } else { - return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.NO_DATA).setErrormsg("未获取到热量值"); + } + //计算出属于那种类型 偏重 还事负重 还是正常 当前体重-孕前体重 + Double residualWeight = Double.valueOf(bloodPressure.getWeight()).doubleValue() - Double.valueOf(bloodPressure.getBeforWeight()).doubleValue(); + //把厘米转换成米 + Double heights = (Double.valueOf(bloodPressure.getHeight()).doubleValue()) / 100d; + int cals = this.getRounding((int) this.getCal(bregmatic, residualWeight, low, high, weeks, bmiD, patients, bloodPressure, heights)); + String calStr = cals + "kcal"; + List xyPresentationModels = mongoTemplate.find(Query.query(Criteria.where("originWeek").lte(weeks).and("endWeek").gte(weeks)), XyPresentationModel.class); + XyPresentationModel xy = mongoTemplate.findOne(Query.query(Criteria.where("quantityHeat").is(calStr)), XyPresentationModel.class); + if (xy != null) { + Map mapxy = new HashMap(); + if (weeks >= 0 && weeks <= 12) { + mapxy.put("proposal", "建议(孕早期)"); + mapxy.put("proposalInfo", xy.getEarlySuggests()); + } else if (weeks >= 13 && weeks <= 28) { + mapxy.put("proposal", "建议(孕中期)"); + mapxy.put("proposalInfo", xy.getMiddleSuggests()); + } else if (weeks >= 30) { + mapxy.put("proposal", "建议(孕晚期)"); + mapxy.put("proposalInfo", xy.getLaterSuggests()); } - if (xyPresentationModels.isEmpty()) { - return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.NO_DATA).setErrormsg("没有对应的数据"); - } else { - List motionList = new LinkedList<>(); - for (XyPresentationModel p : xyPresentationModels) { - Map map = new HashMap(); - map.put("title", p.getTitle()); - map.put("content", p.getContent()); - map.put("modular", p.getModular()); - map.put("type", p.getType()); - if (p.getType() == 3) { - motionList.add(map); - } else if (p.getType() == 2) { - maps.put("guide", map); - } else { - maps.put("pregnancy", map); - } + mapxy.put("quantityHeat", xy.getQuantityHeat()); + mapxy.put("breakfast", xy.getBreakfast()); + mapxy.put("breakfastAdd", xy.getBreakfastAdd()); + mapxy.put("lunch", xy.getLunch()); + mapxy.put("lunchAdd", xy.getLunchAdd()); + mapxy.put("dinner", xy.getDinner()); + mapxy.put("dinnerAdd", xy.getDinnerAdd()); + mapxy.put("northSouth", xy.getNorthSouth()); + datas.put("recipes", mapxy); + } else { + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.NO_DATA).setErrormsg("未获取到热量值"); + } + if (xyPresentationModels.isEmpty()) { + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.NO_DATA).setErrormsg("没有对应的数据"); + } else { + List motionList = new ArrayList<>(); + for (XyPresentationModel p : xyPresentationModels) { + Map map = new HashMap(); + map.put("title", p.getTitle()); + map.put("content", p.getContent()); + map.put("modular", p.getModular()); + map.put("type", p.getType()); + if (3 == p.getType()) { + motionList.add(map); + } else if (2 == p.getType()) { + datas.put("guide", map); + } else if (0 == p.getType()) { + datas.put("pregnancy", map); } - maps.put("motion", motionList); - datas.add(maps); } + datas.put("motion", motionList); } + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(datas); + } else { + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.NO_DATA).setErrormsg("失败").setData("请检查数据是否填写完整!"); } //3.算出孕周通过孕周查询到对应的信息进行返回 - return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功").setData(datas); + } public void getSeries(Map> series, String bmiStr, String bregmatic) { @@ -1073,7 +1070,6 @@ public class BloodPressureServiceImpl extends BaseServiceImpl implements IBloodP int b = number / 100 % 10 + 1; int q = number / 1000 % 10; int num = q * 1000 + b * 100 + sw * 0 + g * 0; - System.out.println("向上取cal值为:" + num); return num; } else { int g = 0; //s % 10; @@ -1081,7 +1077,6 @@ public class BloodPressureServiceImpl extends BaseServiceImpl implements IBloodP int b = number / 100 % 10; int q = number / 1000 % 10; int num = q * 1000 + b * 100 + sw * 0 + g * 0; - System.out.println("向下取得cal值为:" + num); return num; } } -- 1.8.3.1