diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/VolumeComponentAnalysisFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/VolumeComponentAnalysisFacade.java index 4bfcbb4..ca6d8a4 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/VolumeComponentAnalysisFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/VolumeComponentAnalysisFacade.java @@ -27,6 +27,8 @@ import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; import org.springframework.stereotype.Component; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; @@ -265,11 +267,11 @@ public class VolumeComponentAnalysisFacade extends BaseServiceImpl { componentInfo.put("lbm", volumeComponentAnalysisModel.getLbm());//瘦体重(去脂体重) componentInfo.put("weight", volumeComponentAnalysisModel.getWeight());//体重 componentInfo.put("protein", volumeComponentAnalysisModel.getProtein());//蛋白质 - componentInfo.put("proteinMax", volumeComponentAnalysisModel.getProtein());//蛋白质正常范围的高值 - componentInfo.put("proteinMin", volumeComponentAnalysisModel.getProtein());//蛋白质正常范围的低值 + componentInfo.put("proteinMax", volumeComponentAnalysisModel.getProteinMax());//蛋白质正常范围的高值 + componentInfo.put("proteinMin", volumeComponentAnalysisModel.getProteinMin());//蛋白质正常范围的低值 componentInfo.put("bone", volumeComponentAnalysisModel.getBone());//骨质 - componentInfo.put("boneMax", volumeComponentAnalysisModel.getBone());//骨质正常范围的高值 - componentInfo.put("boneMin", volumeComponentAnalysisModel.getBone());//骨质正常范围的低值 + componentInfo.put("boneMax", volumeComponentAnalysisModel.getBoneMax());//骨质正常范围的高值 + componentInfo.put("boneMin", volumeComponentAnalysisModel.getBoneMin());//骨质正常范围的低值 componentInfo.put("fat", volumeComponentAnalysisModel.getFat());//脂肪 componentInfo.put("fatMax", volumeComponentAnalysisModel.getFatMax());//脂肪正常范围的高值 componentInfo.put("fatMin", volumeComponentAnalysisModel.getFatMin());//脂肪正常范围的低值 @@ -287,14 +289,14 @@ public class VolumeComponentAnalysisFacade extends BaseServiceImpl { basicInfo.put("basicMuscleMax", volumeComponentAnalysisModel.getMuscleMax());//肌肉正常范围的高值 basicInfo.put("basicMuscleMin", volumeComponentAnalysisModel.getMuscleMin());//肌肉正常范围的低值 basicInfo.put("basicPbf", volumeComponentAnalysisModel.getPbf());//体脂百分比 - basicInfo.put("basicPbfMax", volumeComponentAnalysisModel.getPbf());//体脂率正常范围的高值 - basicInfo.put("basicPbfMin", volumeComponentAnalysisModel.getPbf());//体脂率正常范围的低值 + basicInfo.put("basicPbfMax", volumeComponentAnalysisModel.getPbfMax());//体脂率正常范围的高值 + basicInfo.put("basicPbfMin", volumeComponentAnalysisModel.getPbfMin());//体脂率正常范围的低值 basicInfo.put("basicBone", volumeComponentAnalysisModel.getBone());//骨质 - basicInfo.put("basicBoneMax", volumeComponentAnalysisModel.getBone());//骨质正常范围的高值 - basicInfo.put("basicBoneMin", volumeComponentAnalysisModel.getBone());//骨质正常范围的低值 + basicInfo.put("basicBoneMax", volumeComponentAnalysisModel.getBoneMax());//骨质正常范围的高值 + basicInfo.put("basicBoneMin", volumeComponentAnalysisModel.getBoneMin());//骨质正常范围的低值 basicInfo.put("basicWater",volumeComponentAnalysisModel.getWater());//身体总水分 basicInfo.put("basicWaterMax",volumeComponentAnalysisModel.getWaterMax());//身体总 水分正常范围的高值 - basicInfo.put("basicWaterMin",volumeComponentAnalysisModel.getWaterMax());//身体总 水分正常范围的低值 + basicInfo.put("basicWaterMin",volumeComponentAnalysisModel.getWaterMin());//身体总 水分正常范围的低值 basicInfo.put("basicSmm", volumeComponentAnalysisModel.getSmm());//骨骼肌 basicInfo.put("basicSmmMax", volumeComponentAnalysisModel.getSmmMax());//骨骼肌正常范围的高值 basicInfo.put("basicSmmMin", volumeComponentAnalysisModel.getSmmMin());//骨骼肌正常范围的低值 @@ -328,6 +330,7 @@ public class VolumeComponentAnalysisFacade extends BaseServiceImpl { double waterd = Double.parseDouble(water); double weightd = Double.parseDouble(weight); double moistureRate = weightd / waterd; + moistureRate = new BigDecimal(moistureRate).setScale(2, RoundingMode.DOWN).doubleValue(); edemaAnalysis.put("moistureRate", moistureRate);//身体水分率 } edemaAnalysis.put("edema", volumeComponentAnalysisModel.getEdema());//水肿系数 @@ -432,30 +435,30 @@ public class VolumeComponentAnalysisFacade extends BaseServiceImpl { k1 = 3300; } String type = null; - String evaluationType = null; + String[] evaluationType = new String[2]; if ("不足".equals(tz) && "低肌肉".equals(jr)) {//低体脂低肌肉(3、体脂不足肌肉不足:) type = "5"; - evaluationType = "3"; + evaluationType[0] = "3"; } else if ("过量".equals(tz) && "低肌肉".equals(jr)) {//超体制底肌肉(4、体脂过量肌肉不足:) type = "3"; - evaluationType = "4"; + evaluationType[0] = "4"; } else if ("低肌肉".equals(jr)) {//低肌肉(5、肌肉不足:) type = "2"; - evaluationType = "5"; + evaluationType[0] = "5"; } else if ("不足".equals(tz)) {//低体脂(2、体脂不足:) type = "4"; - evaluationType = "2"; + evaluationType[0] = "2"; } else if ("过量".equals(tz)) {//超体制(1、体脂过量:) type = "1"; - evaluationType = "1"; + evaluationType[0] = "1"; } else {//正常 type = "6"; - evaluationType = "8"; + evaluationType[0] = "8"; } if ("过量".equals(wjy)) { - evaluationType = "7"; + evaluationType[1] = "7"; } else if ("不足".equals(wjy)) { - evaluationType = "6"; + evaluationType[1] = "6"; } //体型判定2 star if ("过量".equals(tz) && "低肌肉".equals(jr) && (bmi>18.5 && bmi<24.9)) { @@ -505,17 +508,25 @@ public class VolumeComponentAnalysisFacade extends BaseServiceImpl { recipesInfo.put("dinnerAdd", bodyMassAnalysisModel.getDinnerAdd());//晚加餐 data.add(recipesInfo); + + } + BodyMassAnalysisModel bodyMassAnalysisModel2 = mongoTemplate.findOne( + Query.query(Criteria.where("type").is(type).and("kcal").is(k1).and("pregnancy").is(null)), + BodyMassAnalysisModel.class); + if(null != bodyMassAnalysisModel2){ //膳食结构 Map dietInfo = new HashMap<>(); if (week <= 12) { - dietInfo.put("diet", bodyMassAnalysisModel.getEarlySuggests());//膳食 + dietInfo.put("diet", bodyMassAnalysisModel2.getEarlySuggests());//膳食 } else if (week >= 13 && week <= 28) { - dietInfo.put("diet", bodyMassAnalysisModel.getMiddleSuggests()); + dietInfo.put("diet", bodyMassAnalysisModel2.getMiddleSuggests()); } else if (week >= 28 && week <= 40) { - dietInfo.put("diet", bodyMassAnalysisModel.getLaterSuggests()); + dietInfo.put("diet", bodyMassAnalysisModel2.getLaterSuggests()); } data.add(dietInfo); } + + BodyMassAnalysisModel nutrition = mongoTemplate.findOne(Query.query(Criteria.where("evaluationType").is(evaluationType)), BodyMassAnalysisModel.class); if (null != nutrition) { //人体成分营养评价 @@ -552,7 +563,7 @@ public class VolumeComponentAnalysisFacade extends BaseServiceImpl { return "正常"; } } else if ("zf".equals(type)) {//脂肪 - double b = weight * 21.4; + double b = weight * 0.214; double c = weight * 0.35; if (value < b) { return "不足";//体成分分析体型判定--体脂不足 @@ -594,7 +605,7 @@ public class VolumeComponentAnalysisFacade extends BaseServiceImpl { return "正常"; } } else if ("zf".equals(type)) {//脂肪 - double b = weight * 21.4; + double b = weight * 0.214; double c = weight * 0.35; if (value < b) { return "不足"; @@ -625,8 +636,8 @@ public class VolumeComponentAnalysisFacade extends BaseServiceImpl { //孕晚期 } else if (week >= 29 && week <= 40) {//蛋白质 if ("dbz".equals(type)) { - double b = weight * 15.78; - double c = weight * 19.2; + double b = weight * 0.1578; + double c = weight * 0.192; if (value < b) { return "不足"; } else {