diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MeasureInfoFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MeasureInfoFacade.java index 960dbb1..943561d 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MeasureInfoFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MeasureInfoFacade.java @@ -987,7 +987,7 @@ public class MeasureInfoFacade { beforeWeight = weight.getBeforeWeight() == null ? "" : weight.getBeforeWeight(); beforeHeight = weight.getBeforeHeight() == null ? "" : weight.getBeforeHeight(); lastWeight = weight.getNowWeight() == null ? "" : weight.getNowWeight(); - tireNumber = weight.getBregmatic() == null ? "" : (Integer.valueOf(weight.getBregmatic()) < 3 ? weight.getBregmatic() : weight.getBregmaticOther()); + tireNumber = !StringUtils.isNotEmpty(weight.getBregmatic()) ? "1" : (Integer.valueOf(weight.getBregmatic()) < 3 ? weight.getBregmatic() : weight.getBregmaticOther()); } else { diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBloodPressureService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBloodPressureService.java index aa5fe10..6bd2277 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBloodPressureService.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IBloodPressureService.java @@ -15,7 +15,7 @@ public interface IBloodPressureService extends IBaseService { BaseResponse info(String id, Date startDate); - List> getAppInfo(String parentId); + Map getAppInfo(String parentId); BaseResponse initBloodPressure(Map param); 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 370970f..c84d1df 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 @@ -61,12 +61,13 @@ public class BloodPressureServiceImpl extends BaseServiceImpl implements IBloodP @Autowired private PatientsService patientService; - private static Map typeGuideMap =new HashMap<>(); + private static Map typeGuideMap = new HashMap<>(); + static { - typeGuideMap.put("00","在这周你的血压值和血压波动均在正常范围之内,但是也需要注意饮食和运动。高油高盐饮食以及体重过重都会增加患妊娠期高血压的风险。此外保持心理平衡也是减少患妊高症的关键因素之一。"); - typeGuideMap.put("11","在这周你的血压值在正常范围之内,但血压波动情况异常,在饮食、运动等方面都需要注意。由于血压的不稳定,在心理上你也承受着一定的压力,在这份报告中将根据你的血压值和血压波动情况建议你下一周的饮食和运动方式以及心理疏导。"); - typeGuideMap.put("01","在这周你的血压值在异常范围但血压的波动情况良好没有较大的起伏。因此在饮食、运动等方面都需要注意。由于血压值的异常,在心理上你也承受着一定的压力,在这份报告中将根据你的血压值和血压波动情况建议你下一周的饮食和运动方式以及心理疏导。"); - typeGuideMap.put("10","在这周你的血压值正常,但是血压波动幅度较大。在降压的同时也要保持血压波动的平稳。血压波动异常可由多种原因导致,你需要合理饮食、适当运动、保持心理平衡等以保持血压的平稳。"); + typeGuideMap.put("00", "在这周你的血压值和血压波动均在正常范围之内,但是也需要注意饮食和运动。高油高盐饮食以及体重过重都会增加患妊娠期高血压的风险。此外保持心理平衡也是减少患妊高症的关键因素之一。"); + typeGuideMap.put("11", "在这周你的血压值在正常范围之内,但血压波动情况异常,在饮食、运动等方面都需要注意。由于血压的不稳定,在心理上你也承受着一定的压力,在这份报告中将根据你的血压值和血压波动情况建议你下一周的饮食和运动方式以及心理疏导。"); + typeGuideMap.put("01", "在这周你的血压值在异常范围但血压的波动情况良好没有较大的起伏。因此在饮食、运动等方面都需要注意。由于血压值的异常,在心理上你也承受着一定的压力,在这份报告中将根据你的血压值和血压波动情况建议你下一周的饮食和运动方式以及心理疏导。"); + typeGuideMap.put("10", "在这周你的血压值正常,但是血压波动幅度较大。在降压的同时也要保持血压波动的平稳。血压波动异常可由多种原因导致,你需要合理饮食、适当运动、保持心理平衡等以保持血压的平稳。"); } /** @@ -114,7 +115,7 @@ public class BloodPressureServiceImpl extends BaseServiceImpl implements IBloodP List keys = new ArrayList<>(bp.getInfos().keySet()); int count = 0, bpcount = 0, index = 0; - String countType="0",bpCountType="0"; + String countType = "0", bpCountType = "0"; if (!set.isEmpty()) { for (Map.Entry> entry : set) { Map entryMap = entry.getValue(); @@ -126,7 +127,7 @@ public class BloodPressureServiceImpl extends BaseServiceImpl implements IBloodP ++count; } - if (keys.size() - 1 >=++index ) { + if (keys.size() - 1 >= ++index) { //计算血压波动异常次数 String mapKey = keys.get(index); @@ -140,19 +141,19 @@ public class BloodPressureServiceImpl extends BaseServiceImpl implements IBloodP } } } - if(bpcount>=3){ - bpCountType="1"; + if (bpcount >= 3) { + bpCountType = "1"; } - if(count>=3){ - countType="1"; + if (count >= 3) { + countType = "1"; } } } report.setStatus(0); - report.setType(bpCountType+countType); - report.setGuide(bp.getInfos().size()>=5?typeGuideMap.get(report.getType()):"在这周你的血压测量次数没有达到可以出报告的标准,但是根据你的孕周这份报告可以给你提供相应的膳食指导。"); + report.setType(bpCountType + countType); + report.setGuide(bp.getInfos().size() >= 5 ? typeGuideMap.get(report.getType()) : "在这周你的血压测量次数没有达到可以出报告的标准,但是根据你的孕周这份报告可以给你提供相应的膳食指导。"); report.setBpWaveCount(String.valueOf(bpcount)); report.setBpValExp(String.valueOf(count)); report.setYn(YnEnums.YES.getId()); @@ -309,14 +310,17 @@ public class BloodPressureServiceImpl extends BaseServiceImpl implements IBloodP } @Override - public List> getAppInfo(String parentId) { + public Map getAppInfo(String parentId) { List bloodPressure = mongoTemplate.find(Query.query(Criteria.where("pid").is(parentId)), BloodPressure.class); List> restList = new ArrayList<>(); + int count = 0; if (CollectionUtils.isNotEmpty(bloodPressure)) { for (BloodPressure b : bloodPressure) { Map> infos = b.getInfos(); Object[] keys = infos.keySet().toArray(); CollectionUtils.reverseArray(keys); + Object[] items = getKeys(keys); + count = getExceptionCount(items, infos); for (Object key : keys) { Map temp = new HashMap<>(); Map info = infos.get(key); @@ -329,16 +333,49 @@ public class BloodPressureServiceImpl extends BaseServiceImpl implements IBloodP } } CollectionUtils.sortListByMapKeyWithDate(restList, "createTime"); - return restList; + Map map = new HashMap<>(); + map.put("restList",restList); + map.put("excetionCount",count); + return map; } - private int bloodPressureExceptionCount() + private int getExceptionCount(Object[] items, Map> infos) { - int count = 0; + for (Object key : items) { + Map info = infos.get(key); + if (info == null) + { + continue; + } + Object szy = info.get("szy"); + Object ssy = info.get("ssy"); + int result = getPressureStatus(String.valueOf(ssy),String.valueOf(szy)); + if (result != 0) + { + count++; + } + } return count; } + + + private Object[] getKeys(Object[] keys) + { + Object[] items = new Object[keys.length]; + Object obj = keys[0]; + for (int i = 0; i < keys.length; i++) { + String date = DateUtil.getyyyy_MM_dd(DateUtil.addDay(DateUtil.parseYMD(String.valueOf(obj)), -i)); + if (!date.equals(keys[i])) + { + break; + } + items[i] = keys[i]; + } + return items; + } + @Override public BaseResponse initBloodPressure(Map bloods) { JSONArray array = JSONArray.parseArray(bloods.get("datas")); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodSugarServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodSugarServiceImpl.java index 118da9d..9ab89b4 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodSugarServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BloodSugarServiceImpl.java @@ -509,36 +509,54 @@ public class BloodSugarServiceImpl extends BaseServiceImpl implements IBloodSuga bss.add(bloodSugar); maps.put(bloodSugar.getCreatYmdDate(),bss); } - } - maps = sortMapByKey(maps); - if (maps.size() > 0) - { - for (String key : maps.keySet()) + maps = sortMapByKey(maps); + maps = doHandle(maps,bloodSugars.get(0).getCreatYmdDate()); + if (maps.size() > 0 && maps.size() >= 3) { - boolean isBreak = false; - List bss = maps.get(key); - if (CollectionUtils.isNotEmpty(bss)) + for (String key : maps.keySet()) { - for (BloodSugar bs : bss) + boolean isBreak = false; + List bss = maps.get(key); + if (CollectionUtils.isNotEmpty(bss)) { - int status = getBloodSugarStatus(bs.getBloodSugarType(),Float.parseFloat(bs.getBloodSugar())); - if (status != 0) + for (BloodSugar bs : bss) { - isBreak = true; - count++; - break; + int status = getBloodSugarStatus(bs.getBloodSugarType(),Float.parseFloat(bs.getBloodSugar())); + if (status != 0) + { + isBreak = true; + count++; + break; + } } } + if (!isBreak || count >=5) + { + break; + } } - if (!isBreak || count >=5) + } + } + return count; + } + + private Map> doHandle(Map> maps,String lastDate) + { + Map> result = new HashMap<>(); + if (maps.size() > 0 && maps.size() >= 3) { + int index = 0; + for (String key : maps.keySet()) { + String date = DateUtil.getyyyy_MM_dd(DateUtil.addDay(DateUtil.parseYMD(lastDate), index)); + if (!date.equals(key)) { - break; + break; } + result.put(key,maps.get(key)); + index--; } } - - return count; + return result; }