Browse Source

Merge branch 'dev' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into dev

LAPTOP-KB9HII50\70708 3 years ago
parent
commit
2214455fd2

+ 27 - 15
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/statistics/StatisticsService.java

@ -2557,21 +2557,21 @@ public class StatisticsService {
        List<BaseServiceNews> result = new ArrayList<>();
        String olderFilter = roleService.getOlderRoleSQL(area,level);
        String baseServiceSql = "select sn.* from base_service_news sn where sn.type = 1 " + olderFilter.replace("{patient}","sn.code");
        String baseServiceSql = "select sn.* from base_service_news sn where sn.user_type = 1 " + olderFilter.replace("{patient}","sn.code");
        if ("330100".equals(area)){
                baseServiceSql +=" UNION SELECT sn.* FROM base_service_news sn WHERE sn.type =2 ";
        /*if ("330100".equals(area)){
                baseServiceSql +=" UNION SELECT sn.* FROM base_service_news sn WHERE sn.user_type =2 ";
        }else {
            // 1省 2市 3区县 4机构 5团队 6医生
            baseServiceSql +=" UNION SELECT sn.* FROM base_service_news sn LEFT JOIN base_team_member tm ON sn.`code` = tm.doctor_code WHERE sn.type =2  AND tm.del =1 ";
            baseServiceSql +=" UNION SELECT sn.* FROM base_service_news sn LEFT JOIN base_team_member tm ON sn.`code` = tm.doctor_code WHERE sn.user_type =2  AND tm.del =1 ";
            if ("4".equals(level)){
                baseServiceSql +=" AND tm.org_code ='"+area+"'";
            }
            if ("5".equals(level)){
                baseServiceSql += " AND tm.team_code ='"+area+"'";
            }
        }
        baseServiceSql += " ORDER BY create_time DESC  LIMIT "+(page-1)*size+","+size+"";
        }*/
        baseServiceSql += " ORDER BY sn.create_time DESC  LIMIT "+(page-1)*size+","+size+"";
        List<BaseServiceNews> list = jdbcTemplate.query(baseServiceSql,new BeanPropertyRowMapper<>(BaseServiceNews.class));
@ -2622,32 +2622,44 @@ public class StatisticsService {
        String totalIndex = "";
        String noReplyIndex = "";
        String inTimeIndex = "";
        String lowLevel = "";
        String finishIndex = " " ;
        Integer lowLevel ;
        if ("23".equals(type)){
            totalIndex = "28";
            noReplyIndex = "29";
            inTimeIndex = "30";
            lowLevel = "4";
            finishIndex = "70";
            lowLevel = 4;//按机构分组
        }else if ("24".equals(type)){
            totalIndex = "31";
            noReplyIndex = "32";
            inTimeIndex = "33";
            lowLevel = "5";
            finishIndex = "71";
            lowLevel = 5;//按社区分组
        }else if ("25".equals(type)){
            totalIndex = "57";
            noReplyIndex = "58";
            inTimeIndex = "59";
            lowLevel = "5";
            finishIndex = "72";
            lowLevel = 5;//按社区分组
        }else {
            return null;
        }
        //按机构排名
        List<SaveModel> list = elasticsearchUtil.findDateQuotaLevelList(endDate, endDate, area, level, totalIndex, SaveModel.timeLevel_DDL,null,lowLevel, null);
        List<SaveModel> list = elasticsearchUtil.findDateQuotaLevelList(endDate, endDate, area, level, totalIndex, SaveModel.timeLevel_DDL,null,lowLevel+"", null);
        for (SaveModel tmp:list){
            JSONObject res = new JSONObject();
            SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, tmp.getHospital(), 4, noReplyIndex, SaveModel.timeLevel_DDL);
            String areaTmp ="";
            if (4==lowLevel){
                areaTmp = tmp.getHospital();
            }if (5==lowLevel){
                areaTmp = tmp.getDept();
            }
            SaveModel saveModel2 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, areaTmp, lowLevel, noReplyIndex, SaveModel.timeLevel_DDL);
            //及时回复数
            SaveModel saveModel3 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, tmp.getHospital(), 4, inTimeIndex, SaveModel.timeLevel_DDL);
            SaveModel saveModel3 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, areaTmp, lowLevel, inTimeIndex, SaveModel.timeLevel_DDL);
            SaveModel saveModel4 = elasticsearchUtil.findOneDateQuotaLevel0(endDate, endDate, areaTmp, lowLevel, finishIndex, SaveModel.timeLevel_DDL);
            res.put("total", tmp.getResult2().longValue());
            res.put("dept", tmp.getDept());
            res.put("deptName", tmp.getDeptName());
@ -2655,10 +2667,10 @@ public class StatisticsService {
            res.put("hospitalName", tmp.getHospitalName());
            res.put("noReply", saveModel2.getResult2().longValue());
            res.put("inTime", saveModel3.getResult2().longValue());
            res.put("finish", saveModel2.getResult2().longValue()+saveModel3.getResult2().longValue());
            res.put("finish", saveModel4.getResult2().longValue());
            res.put("noReplyRate", commonUtil.getRangeDouble(saveModel2.getResult2().intValue(), tmp.getResult2().intValue()));
            res.put("inTimeRate", commonUtil.getRangeDouble(saveModel3.getResult2().intValue(), tmp.getResult2().intValue()));
            res.put("finishRate", commonUtil.getRangeDouble(saveModel2.getResult2().intValue()+saveModel3.getResult2().intValue(), tmp.getResult2().intValue()));
            res.put("finishRate", commonUtil.getRangeDouble(saveModel4.getResult2().intValue(), tmp.getResult2().intValue()));
            result.add(res);
        }
        result.sort(Comparator.comparing(obj -> ((JSONObject) obj).getDouble("finishRate")).reversed());