浏览代码

Merge branch 'dev' of liuwenbin/patient-co-management into dev

trick9191 7 年之前
父节点
当前提交
c65652c64f

+ 7 - 6
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/health/PatientHealthIndexService.java

@ -299,7 +299,7 @@ public class PatientHealthIndexService extends BaseService {
    /**
     * 推送信息
     */
    private void sendMessage(String content, Patient patient, DevicePatientHealthIndex model) {
    private void sendMessage(String content, Patient patient, DevicePatientHealthIndex model,String oldMsgContent) {
        String patientCode = patient.getCode();
        String patientName = patient.getName();
        // 消息接收者
@ -370,7 +370,7 @@ public class PatientHealthIndexService extends BaseService {
                json.put("receiver", receiver);
                json.put("type", MessageType.MESSAGE_TYPE_DOCTOR_HEALTH_INDEX.D_HI_01.name());
                json.put("title", MessageType.MESSAGE_TYPE_DOCTOR_HEALTH_INDEX.体征指标.name());
                json.put("msg", content);
                json.put("msg", oldMsgContent);
                json.put("data", "");
                array.put(json);
            }
@ -524,6 +524,7 @@ public class PatientHealthIndexService extends BaseService {
        int type = data.getType();
        String msgContent = "";
        String oldMsgContent = "";
        //血糖校验
        if (type == 1) {
            // 血糖记录,查询患者血糖预警值
@ -551,7 +552,7 @@ public class PatientHealthIndexService extends BaseService {
            // 餐后
            if (index % 2 == 0) {
                if (!checkHealthIndex(NumberUtils.toDouble(value1), maxValueAfter, minValueAfter)) {
//                    msgContent += patient.getName() + "血糖异常(" + value1 + "mmol/L)";
                    oldMsgContent += patient.getName() + "血糖异常(" + value1 + "mmol/L)";
                    if(checkHealthIndexDetail(NumberUtils.toDouble(value1), maxValueAfter ,minValueAfter)==1){
                        msgContent = "<a>"+patient.getName()+"</a><span style=\"color: #FF4C4C;\">血糖偏高</span>";
                    }else if(checkHealthIndexDetail(NumberUtils.toDouble(value1), maxValueAfter ,minValueAfter)==2){
@ -562,7 +563,7 @@ public class PatientHealthIndexService extends BaseService {
                }
            } else { //餐前
                if (!checkHealthIndex(NumberUtils.toDouble(value1), maxValueBefore, minValueBefore)) {
//                    msgContent += patient.getName() + "血糖异常(" + value1 + "mmol/L)";
                    oldMsgContent += patient.getName() + "血糖异常(" + value1 + "mmol/L)";
                    if(checkHealthIndexDetail(NumberUtils.toDouble(value1), maxValueAfter ,minValueAfter)==1){
                        msgContent = "<a>"+patient.getName()+"</a><span style=\"color: #FF4C4C;\">血糖偏高</span>";
                    }else if(checkHealthIndexDetail(NumberUtils.toDouble(value1), maxValueAfter ,minValueAfter)==2){
@ -598,7 +599,7 @@ public class PatientHealthIndexService extends BaseService {
            }
            // 收缩压/舒张压校验
            if (!checkHealthIndex(NumberUtils.toDouble(value1), maxValueSSY, minValueSSY) || !checkHealthIndex(NumberUtils.toDouble(value2), maxValueSZY, minValueSZY)) {
//                msgContent = patient.getName() + "血压异常(舒张压 " + value2 + "mmHg、收缩压 " + value1 + "mmHg)";
                oldMsgContent = patient.getName() + "血压异常(舒张压 " + value2 + "mmHg、收缩压 " + value1 + "mmHg)";
                if(checkHealthIndexDetail(NumberUtils.toDouble(value1), maxValueSSY, minValueSSY)==1||checkHealthIndexDetail(NumberUtils.toDouble(value2), maxValueSZY, minValueSZY)==1){
                    msgContent = "<a>"+patient.getName()+"</a><span style=\"color: #FF4C4C;\">血压偏高</span>";
                }else if(checkHealthIndexDetail(NumberUtils.toDouble(value1), maxValueSSY, minValueSSY)==2||checkHealthIndexDetail(NumberUtils.toDouble(value2), maxValueSZY, minValueSZY)==2){
@ -610,7 +611,7 @@ public class PatientHealthIndexService extends BaseService {
        //超标则发送消息
        if (msgContent != null && msgContent.length() > 0) {
            sendMessage(msgContent, patient, data);
            sendMessage(msgContent, patient, data,oldMsgContent);
        }
    }

+ 120 - 34
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/statisticsES/StatisticsESService.java

@ -5834,44 +5834,23 @@ public class StatisticsESService {
                }
            }
        }
        Map<String, SaveModel> applyMap = new HashMap<>();
        applyAmountList.stream().forEach(one -> {
            if ("5".equals(low_level)) {
                applyMap.put(one.getTeam(), one);
            } else if ("4".equals(low_level)) {
                applyMap.put(one.getHospital(), one);
            } else if ("3".equals(low_level)) {
                applyMap.put(one.getTown(), one);
            }
        });
        //自建结果集
        List<Map<String, Object>> resultList = getLowLevelMapKey(level, low_level, area);
        List<Map<String, Object>> resultList = getActivityLowLevelMapKey(level, low_level, area,allMap,applyMap);
        if (resultList != null && resultList.size() > 0) {
            Map<String, SaveModel> applyMap = new HashMap<>();
            applyAmountList.stream().forEach(one -> {
                if ("5".equals(low_level)) {
                    applyMap.put(one.getTeam(), one);
                } else if ("4".equals(low_level)) {
                    applyMap.put(one.getHospital(), one);
                } else if ("3".equals(low_level)) {
                    applyMap.put(one.getTown(), one);
                }
            });
            for (Map<String, Object> reMap : resultList) {
                reMap.put("amount", reMap.get("amount") != null ? Long.valueOf(reMap.get("amount").toString()) : 0L);
                Integer allAmount = 0;
                int applyAmount = 0;
                //获取绑定数量
                if (applyMap != null && applyMap.size() > 0) {
                    SaveModel one = applyMap.get(reMap.get("code").toString());
                    if (one != null) {
                        applyAmount = one.getResult2().intValue();
                    }
                }
                if (allMap != null && allMap.size() > 0) {
                    allAmount = allMap.get(reMap.get("code").toString());
                    if (allAmount == null) {
                        allAmount = 0;
                    }
                }
                reMap.put("allNum", allAmount);
                reMap.put("applyNum", applyAmount);
                reMap.put("rate", getRange2(applyAmount, allAmount, 2));//参与率是 报名数/签约数
                if ((level == 2 && "5".equals(lowLevel)) || (level == 4) || (level == 3 && "5".equals(lowLevel))) {
                    translateTeamLeaderName(resultList);
                }
            if ((level == 2 && "5".equals(lowLevel)) || (level == 4) || (level == 3 && "5".equals(lowLevel))) {
                translateTeamLeaderName(resultList);
            }
            //对结果进行排序
            Collections.sort(resultList, new Comparator<Map<String, Object>>() {
@ -5899,6 +5878,113 @@ public class StatisticsESService {
        }
    }
    /**
     * 获取下级统计key
     *
     * @param level
     * @param lowLevel
     * @param area
     * @return
     */
    public List<Map<String, Object>> getActivityLowLevelMapKey(int level, String lowLevel, String area,Map<String, Integer> allMap,Map<String, SaveModel> applyMap) {
        List<Map<String, Object>> resultList = new ArrayList<>();
        if (SaveModel.townLevel.equals(lowLevel)) {
            List<Town> towns = townDao.findByCityCode(area);
            if (towns != null) {
                for (Town town : towns) {
                    Map<String, Object> obj = new HashMap<>();
                    obj.put("code", town.getCode());
                    obj.put("name", town.getName());
                    obj.put("amount", "0");
                    obj = activityRateList(obj,allMap,applyMap);
                    resultList.add(obj);
                }
            }
        } else if (lowLevel.equals("4")) {
            List<Town> towns = new ArrayList<>();
            if (SaveModel.cityLevel.equals(level + "")) {
                towns = townDao.findByCityCode(area);
            } else if (SaveModel.townLevel.equals(level + "")) {
                Town town = townDao.findByCode(area);
                if (town != null) {
                    towns.add(town);
                }
            }
            if (towns != null && towns.size() > 0) {
                for (Town town : towns) {
                    List<Hospital> hospitals = hospitalDao.findByTownCode(town.getCode());
                    for (Hospital hos : hospitals) {
                        if (hos.getCode().length() > 10) {
                            continue;
                        }
                        Map<String, Object> obj = new HashMap<>();
                        obj.put("code", hos.getCode());
                        obj.put("name", hos.getName());
                        obj.put("amount", "0");
                        obj = activityRateList(obj,allMap,applyMap);
                        resultList.add(obj);
                    }
                }
            }
        } else if (SaveModel.teamLevel.equals(lowLevel)) {
            List<Hospital> hospitals = new ArrayList<>();
            if (level == 2) {
                hospitals = hospitalDao.findByCity(area);
            } else if (SaveModel.townLevel.equals(level + "")) {
                hospitals = hospitalDao.findByTownCode(area);
            } else {
                Hospital hos = hospitalDao.findByCode(area);
                if (hos != null) {
                    hospitals.add(hos);
                }
            }
            if (hospitals != null && hospitals.size() > 0) {
                for (Hospital hos : hospitals) {
                    if (hos.getCode().length() > 10) {
                        continue;
                    }
                    List<AdminTeam> teams = adminTeamDao.findByOrgCode(hos.getCode());
                    for (AdminTeam team : teams) {
                        Map<String, Object> obj = new HashMap<>();
                        obj.put("code", String.valueOf(team.getId()));
                        obj.put("name", team.getName());
                        obj.put("amount", "0");
                        obj = activityRateList(obj,allMap,applyMap);
                        resultList.add(obj);
                    }
                }
            }
        }
        return resultList;
    }
    public Map<String, Object> activityRateList(Map<String, Object> reMap,Map<String, Integer> allMap,Map<String, SaveModel> applyMap){
        reMap.put("amount", reMap.get("amount") != null ? Long.valueOf(reMap.get("amount").toString()) : 0L);
        Integer allAmount = 0;
        int applyAmount = 0;
        //获取绑定数量
        if (applyMap != null && applyMap.size() > 0) {
            SaveModel one = applyMap.get(reMap.get("code").toString());
            if (one != null) {
                applyAmount = one.getResult2().intValue();
            }
        }
        if (allMap != null && allMap.size() > 0) {
            allAmount = allMap.get(reMap.get("code").toString());
            if (allAmount == null) {
                allAmount = 0;
            }
        }
        reMap.put("allNum", allAmount);
        reMap.put("applyNum", applyAmount);
        reMap.put("rate", getRange2(applyAmount, allAmount, 2));//参与率是 报名数/签约数
        return reMap;
    }