diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyNutritionFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyNutritionFacade.java index ff6fdbe..7462079 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyNutritionFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyNutritionFacade.java @@ -790,7 +790,7 @@ public class BabyNutritionFacade { /** * 1-5 体重 * 90kcal/kg * 6-11月龄热量计算:体重 * 80kcal/kg - * 12月龄-35月龄 [80×体重(kg)-100]+20kcal/day + * 12月龄-35月龄 [89×体重(kg)-100]+20kcal/day * 36月龄 男童:88.5-61.9×年龄(岁)+PA[26.7×体重(kg)+903×身长(m)]+20kcal/day PA=1.26 * 36月龄 女童:135.3-30.8×年龄(岁)+PA[10×体重(kg)+934×身长(m)]+20kcal/day PA=1.31 * 获取热量 @@ -1248,6 +1248,9 @@ public class BabyNutritionFacade { return String.valueOf(tag); } + /** + * 秦皇岛精简版儿童膳食报告 + */ public BaseObjectResponse queryBabyDietReport(String id, Integer userId) { BaseObjectResponse objectResponse = new BaseObjectResponse(); Map data = new HashMap(); @@ -1289,6 +1292,8 @@ public class BabyNutritionFacade { map.put("kaupEvaluate", kaupEvaluate); //获取热量值 体重在正常范围内的不计算热量值 double kaul = getKcal(month, model.getWeight(), model.getHeight(), baby.getSex(), kaupEvaluate); + + double kauls = getBasicKaul(month, model.getWeight(), model.getHeight(), baby.getSex()); if (month >= 0 && month <= 5) { List babyDietReport = mongoTemplate.find(Query.query(Criteria.where("monthAge").is(month).and("feedingPattern").is(Integer.valueOf(model.getFeedType()))), BabyDietReportModel.class); for (BabyDietReportModel babyDiet : babyDietReport) { @@ -1352,7 +1357,7 @@ public class BabyNutritionFacade { } } - map.put("kaul", kaul + "kacl"); + map.put("kaul", String.format("%.2f", kauls) + "kacl"); data.put("userInfo", map); if ((kaupEvaluate.equals("消瘦") || kaupEvaluate.equals("超重")) && month >= 6 && month <= 11) { List babyDietReport = mongoTemplate.find(Query.query(Criteria.where("monthAge").is(month)), BabyDietReportModel.class); @@ -1420,9 +1425,9 @@ public class BabyNutritionFacade { //秦皇岛精简版算法 private double getKcal(int month, Double weight, Double height, int sex, String kaupEvaluate) { - double kaul = getBasicKaul(month, weight, height, sex); + Integer kaul = (int) getBasicKaul(month, weight, height, sex); if (month < 12) { - kaul = getMathAbs(kaul); + kaul = getRoundingFifty(kaul); if (kaul < 400) { kaul = 400; } else if (kaul > 1000) { @@ -1459,39 +1464,59 @@ public class BabyNutritionFacade { } // 25 为分割 - public Double getRounding(Double number) { + public Integer getRounding(Integer number) { if (number / 10 % 10 >= 5) { if (number / 10 % 10 >= 7 && number % 10 >= 5) { - double g = 0; //s % 10; - double sw = 0;//s / 10 % 10; - double b = number / 100 % 10 + 1; - double q = number / 1000 % 10; - double num = q * 1000 + b * 100 + sw * 0 + g * 0; + int g = 0; //s % 10; + int sw = 0;//s / 10 % 10; + int b = number / 100 % 10 + 1; + int q = number / 1000 % 10; + int num = q * 1000 + b * 100 + sw * 0 + g * 0; return num; } else { - double g = 0; //s % 10; - double sw = 5;//s / 10 % 10; - double b = number / 100 % 10; - double q = number / 1000 % 10; - double num = q * 1000 + b * 100 + sw * 10 + g * 0; + int g = 0; //s % 10; + int sw = 5;//s / 10 % 10; + int b = number / 100 % 10; + int q = number / 1000 % 10; + int num = q * 1000 + b * 100 + sw * 10 + g * 0; return num; } } else { if (number / 10 % 10 >= 2 && number % 10 >= 5) { - double g = 0; //s % 10; - double sw = 5;//s / 10 % 10; - double b = number / 100 % 10; - double q = number / 1000 % 10; - double num = q * 1000 + b * 100 + sw * 10 + g * 0; + int g = 0; //s % 10; + int sw = 5;//s / 10 % 10; + int b = number / 100 % 10; + int q = number / 1000 % 10; + int num = q * 1000 + b * 100 + sw * 10 + g * 0; return num; } else { - double g = 0; //s % 10; - double sw = 0;//s / 10 % 10; - double b = number / 100 % 10; - double q = number / 1000 % 10; - double num = q * 1000 + b * 100 + sw * 0 + g * 0; + int g = 0; //s % 10; + int sw = 0;//s / 10 % 10; + int b = number / 100 % 10; + int q = number / 1000 % 10; + int num = q * 1000 + b * 100 + sw * 0 + g * 0; return num; } } } + + //50为分割 + public Integer getRoundingFifty(Integer number) { + if (number / 10 % 10 >= 5) { + int g = 0; //s % 10; + int sw = 0;//s / 10 % 10; + int b = number / 100 % 10 + 1; + int q = number / 1000 % 10; + int num = q * 1000 + b * 100 + sw * 0 + g * 0; + return num; + } else { + int g = 0; //s % 10; + int sw = 0;//s / 10 % 10; + int b = number / 100 % 10; + int q = number / 1000 % 10; + int num = q * 1000 + b * 100 + sw * 0 + g * 0; + return num; + } + } + } \ No newline at end of file