Переглянути джерело

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

trick9191 8 роки тому
батько
коміт
c378f78b70

+ 1 - 1
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/statistics/StatisticsAllService.java

@ -2524,7 +2524,7 @@ public class StatisticsAllService extends BaseService {
        if (rs != null && rs.size() > 0) {
            for (Map<String, Object> r : rs) {
                String id = (String) r.get("code");
                String name = getTeamLeaderNameByTeamCode(leaders, Integer.parseInt(id));
                    String name = getTeamLeaderNameByTeamCode(leaders, Integer.parseInt(id));
                if (org.apache.commons.lang3.StringUtils.isNotBlank(name)) {
                    r.put("name", name);
                }

+ 90 - 4
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/statistics/StatisticsService.java

@ -1503,7 +1503,7 @@ public class StatisticsService extends BaseService {
        JSONArray onRely = new JSONArray();
        onRely.put(onRelyObject);
        result.put("result", getCoutList(level,rely, total, onRely));
        result.put("result", getCoutListTitle(level,rely, total, onRely));
        return result;
    }
@ -1544,6 +1544,91 @@ public class StatisticsService extends BaseService {
            onRelyMap.put(jsonObject.get("code").toString(), jsonObject);
        }
        List<Map<String, Object>> resultMaps = new ArrayList<>();
        for (String key : totalMap.keySet()) {
            Map<String, Object> rs = new HashMap<>();
            JSONObject relyRs = (JSONObject) relyMap.get(key);
            JSONObject totalRs = (JSONObject) totalMap.get(key);
            JSONObject onRelyRs = (JSONObject) onRelyMap.get(key);
            //合并结果集
            Long totalNm = totalRs.getLong("num");
            Long relyNm = relyRs.getLong("num");
            Long noRelyNm = onRelyRs.getLong("num");
            rs.put("name", relyRs.get("name"));
            rs.put("noRelyCount", noRelyNm);
            rs.put("relyCount", relyNm);
            rs.put("total", totalNm);
            rs.put("code", key);
            if (totalNm != null && totalNm != 0) {
                if (relyNm != null && relyNm != 0) {
                    double rr = (double) relyNm / totalNm * 100;
                    DecimalFormat df = new DecimalFormat("0.00");
                    rs.put("relyRate", df.format(rr) + "%");
                    rs.put("relyDoubleRate", rr);
                } else {
                    rs.put("relyRate", "0.00%");
                    rs.put("relyDoubleRate", 0.0);
                }
                if (noRelyNm != null && noRelyNm != 0) {
                    double rr = (double) noRelyNm / totalNm * 100;
                    DecimalFormat df = new DecimalFormat("0.00");
                    rs.put("noRelyRate", df.format(rr) + "%");
                    rs.put("noRelyDoubleRate", rr);
                } else {
                    rs.put("noRelyRate", "0.00%");
                    rs.put("noRelyDoubleRate", 0.0);
                }
            } else {
                rs.put("relyRate", "0.00%");
                rs.put("relyDoubleRate", 0.0);
                rs.put("noRelyRate", "0.00%");
                rs.put("noRelyDoubleRate", 0.0);
            }
            resultMaps.add(rs);
        }
        if(level==2){
            statisticsAllService.translateTeamLeaderName(resultMaps);
        }
        //根据为回复数排序
        Collections.sort(resultMaps, new Comparator<Map<String, Object>>() {
            public int compare(Map<String, Object> o1, Map<String, Object> o2) {
                return (double) o1.get("noRelyDoubleRate") < (double) o2.get("noRelyDoubleRate") ? 1 : ((double) o1.get("noRelyDoubleRate") == (double) o2.get("noRelyDoubleRate") ? 0 : -1);
            }
        });
        return resultMaps;
    }
    public List<Map<String, Object>> getCoutListTitle(Integer level,JSONArray rely, JSONArray total, JSONArray onRely) {
        Map<String, Object> relyMap = new HashMap<>();
        Map<String, Object> totalMap = new HashMap<>();
        Map<String, Object> onRelyMap = new HashMap<>();
        //将List转换为Map,Key为要比较的CODE,降低循环层数
        //转换回复数
        Iterator iterator = rely.iterator();
        while (iterator.hasNext()) {
            JSONObject jsonObject = (JSONObject) iterator.next();
            relyMap.put(jsonObject.get("code").toString(), jsonObject);
        }
        //转换总咨询数
        Iterator iterator2 = total.iterator();
        while (iterator2.hasNext()) {
            JSONObject jsonObject = (JSONObject) iterator2.next();
            totalMap.put(jsonObject.get("code").toString(), jsonObject);
        }
        //转换总咨询数
        Iterator iterator3 = onRely.iterator();
        while (iterator3.hasNext()) {
            JSONObject jsonObject = (JSONObject) iterator3.next();
            onRelyMap.put(jsonObject.get("code").toString(), jsonObject);
        }
        List<Map<String, Object>> resultMaps = new ArrayList<>();
        for (String key : totalMap.keySet()) {
            Map<String, Object> rs = new HashMap<>();
@ -1602,6 +1687,7 @@ public class StatisticsService extends BaseService {
        return resultMaps;
    }
    /**
     * 获取及时回复的时间分布
     *
@ -4205,7 +4291,7 @@ public class StatisticsService extends BaseService {
        JSONArray onRely = new JSONArray();
        onRely.put(onRelyObject);
        result.put("result", getCoutList(level,rely, total, onRely));
        result.put("result", getCoutListTitle(level,rely, total, onRely));
        return result;
    }
@ -4246,7 +4332,7 @@ public class StatisticsService extends BaseService {
        JSONArray onRely = new JSONArray();
        onRely.put(onRelyObject);
        result.put("result", getCoutList(level,rely, total, onRely));
        result.put("result", getCoutListTitle(level,rely, total, onRely));
        return result;
    }
@ -4433,7 +4519,7 @@ public class StatisticsService extends BaseService {
        if(lowlevel==null){
            lowlevel=(level-1)+"";
        }
        result.put("resultList", getCoutList(Integer.valueOf(lowlevel),rely, total, onRely));
        result.put("resultList", getCoutList(level,rely, total, onRely));
        return result;
    }