Pārlūkot izejas kodu

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

trick9191 8 gadi atpakaļ
vecāks
revīzija
866a7cc77d

+ 1 - 1
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/family/FamilyMemberService.java

@ -815,7 +815,7 @@ public class FamilyMemberService extends BaseService {
        if (p == null) {
            return -1;
        }
        // 添加的成员是否注册判断
        // 添加成员是否注册判断
        if (m == null) {
            return -2;
        }

+ 9 - 0
patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/sign/SignWebService.java

@ -1434,4 +1434,13 @@ public class SignWebService extends BaseService {
        resultObject.put("guidanceNum", resultCount.get(4).get("count"));
        return resultObject;
    }
    /**
     * 获取团队签约数,服务次数,平均满意度,
     * @param type
     * @return
     */
    public JSONArray get(String type){
            return null;
    }
}

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

@ -2618,13 +2618,20 @@ public class StatisticsAllService extends BaseService {
     * 获取所有团队长信息
     * @return
     */
    public List<Map<String,Object>> getAllTeamLeaders(){
    public  Map<Integer,Map<String,Object>> getAllTeamLeaders(){
        String sql = " select t.leader_code,t.id,d.name " +
                " from wlyy_admin_team t " +
                " LEFT JOIN wlyy_doctor d " +
                " on t.leader_code = d.code ";
        List<Map<String,Object>> rs = jdbcTemplate.queryForList(sql);
        return rs;
        //将结果集转换为 map减小循环层
        Map<Integer,Map<String,Object>> rsMap = new HashMap<>();
        if(rs!=null&&rs.size()>0){
            for(Map<String,Object> map : rs){
                rsMap.put((Integer)map.get("id"),map);
            }
        }
        return rsMap;
    }
    /**
@ -2633,20 +2640,16 @@ public class StatisticsAllService extends BaseService {
     * @param teamCode
     * @return
     */
    public String getTeamLeaderNameByTeamCode(List<Map<String,Object>> leaders ,int teamCode){
    public String getTeamLeaderNameByTeamCode(Map<Integer,Map<String,Object>> leaders ,int teamCode){
        if(leaders!=null&&leaders.size()>0&&teamCode!=0){
            for(Map<String,Object> leader: leaders){
                int id = (Integer)leader.get("id");
                if(teamCode==id){
                    return (String)leader.get("name");
                }
            }
            Map<String,Object> leader = leaders.get(teamCode);
            return (String)leader.get("name");
        }
        return "";
    }
    public List<Map<String,Object>> translateTeamLeaderName(List<Map<String,Object>> rs){
        List<Map<String,Object>> leaders = getAllTeamLeaders();
        Map<Integer,Map<String,Object>> leaders = getAllTeamLeaders();
        if(rs!=null&&rs.size()>0){
            for(Map<String,Object> r :rs){
                String id = (String)r.get("code");
@ -2657,4 +2660,124 @@ public class StatisticsAllService extends BaseService {
        return rs;
    }
    /**
     * 查询某个级别的某个指标到达量
     *
     * @param date
     * @param area
     * @param level
     * @param index
     * @param sort
     * @param lowLevel
     * @return
     * @throws Exception
     */
    public JSONArray getLevelTwoLowLevelTotalTeamLeader(String date, String area, int level, String index, int sort, String lowLevel, String lowCode) throws Exception {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        String low_level = String.valueOf(StringUtils.isEmpty(lowLevel) ? (level - 1) : lowLevel);
        List<Map<String, Object>> resultList = new ArrayList<>();
        if (date.compareTo(dateFormat.format(new Date())) >= 0) {
//            查询当天及以后的数据
            resultList = getLevelTwoTodayLowLevelTotal(area, level, index, sort, lowLevel, lowCode);
        } else {
//           查询当天以前的数据
            resultList = getLevelTwoTodayBeforeLowLevelTotal(date, area, level, index, sort, lowLevel, lowCode);
        }
        // 结果为空时,自建结果集
        if (resultList == null || resultList.size() < 1) {
            resultList = getLowLevelMapKey(level, low_level, area);
        }
        if (resultList != null) {
            DecimalFormat df = new DecimalFormat("0.0000");
            for (Map<String, Object> map : resultList) {
                map.put("amount", map.get("amount") != null ? Long.valueOf(map.get("amount").toString()) : 0L);
                if (!low_level.equals("1")) {
                    String redisNum = "";
                    try {
                        redisNum = redisTemplate.opsForValue().get("people:num:" + map.get("code").toString());
                    } catch (Exception e) {
                        redisNum = "";
                    }
                    if (StringUtils.isEmpty(redisNum)) {
                        PopulationBase peopleNum = peopleNumDao.findByCodeAndYear(map.get("code").toString(), Calendar.getInstance().get(Calendar.YEAR));
                        if (peopleNum != null) {
                            int num = 0;
                            int taskNum = 0;
                            if (lowCode.equals("3")) {
                                num = peopleNum.getSixFiveNum();
                                taskNum = peopleNum.getSixFiveTaskNum();
                            } else if (lowCode.equals("1")) {
                                num = peopleNum.getGxyNum();
                                taskNum = peopleNum.getGxyTaskNum();
                            } else if (lowCode.equals("2")) {
                                num = peopleNum.getTnbNum();
                                taskNum = peopleNum.getTnbTaskNum();
                            }
                            map.put("rate", df.format(((long) map.get("amount") * 1.0000) / num * 100));
                            map.put("taskRate", df.format(((long) map.get("amount") * 1.0000) / taskNum * 100));
                            map.put("targetRate", df.format(taskNum * 1.0000 / num * 100));
                            map.put("rateString", map.get("amount")+"/"+ num);
                            map.put("taskRateString", map.get("amount")+"/"+ taskNum);
                            map.put("targetRateString",taskNum+"/"+num );
                            map.put("num", num);
                            map.put("task", taskNum);
                        }
                    } else {
                        JSONObject peopleNum = new JSONObject(redisNum);
                        if (peopleNum != null) {
                            int num = 0;
                            int taskNum = 0;
                            if (lowCode.equals("3")) {
                                num = peopleNum.getInt("sixFiveNum");
                                taskNum = peopleNum.getInt("sixFiveTaskNum");
                            } else if (lowCode.equals("1")) {
                                num = peopleNum.getInt("gxyNum");
                                taskNum = peopleNum.getInt("gxyTaskNum");
                            } else if (lowCode.equals("2")) {
                                num = peopleNum.getInt("tnbNum");
                                taskNum = peopleNum.getInt("tnbTaskNum");
                            }
                            map.put("rate", df.format(((long) map.get("amount") * 1.0000) / num * 100));
                            map.put("taskRate", df.format(((long) map.get("amount") * 1.0000) / taskNum * 100));
                            map.put("targetRate", df.format(taskNum * 1.0000 / num * 100));
                            map.put("rateString", map.get("amount")+"/"+ num);
                            map.put("taskRateString", map.get("amount")+"/"+ taskNum);
                            map.put("targetRateString",taskNum+"/"+num );
                            map.put("num", num);
                            map.put("task", taskNum);
                        }
                    }
                }
            }
            if((level==4&&"1".equals(lowLevel))||(level==2)){
                translateTeamLeaderName(resultList);
            }
            Collections.sort(resultList, new Comparator<Map<String, Object>>() {
                public int compare(Map<String, Object> o1, Map<String, Object> o2) {
                    long map1value = (long) o1.get("amount");
                    long map2value = (long) o2.get("amount");
                    if (map1value - map2value > 0) {
                        return sort == 1 ? -1 : 1;
                    } else if (map1value - map2value < 0) {
                        return sort == 1 ? 1 : -1;
                    } else {
                        return 0;
                    }
                }
            });
            return new JSONArray(resultList);
        } else {
            return new JSONArray();
        }
    }
}

+ 7 - 2
patient-co-wlyy/src/main/java/com/yihu/wlyy/web/statistic/StatisticsController.java

@ -452,7 +452,12 @@ public class StatisticsController extends BaseController {
            if (StringUtils.isNotEmpty(lowCode)) {
//                指定level下特定查询级别
                result.put("index_" + index, statisticsAllService.getLevelTwoLowLevelTotal(date, area, level, index, sort, lowLevel, lowCode));
                if(index.equals("17")){
                    result.put("index_" + index, statisticsAllService.getLevelTwoLowLevelTotalTeamLeader(date, area, level, index, sort, lowLevel, lowCode));
                }else{
                    result.put("index_" + index, statisticsAllService.getLevelTwoLowLevelTotal(date, area, level, index, sort, lowLevel, lowCode));
                }
            } else {
//                未指定level下特定查询级别
                for (String idx : indexes) {
@ -462,7 +467,7 @@ public class StatisticsController extends BaseController {
                        result.put("index_" + idx, statisticsAllService.getLowLevelTotal2(date, area, level, idx, sort, lowLevel));
                    } else if (idx.equals("28")){
                        result.put("index_" + idx, statisticsService.getAvgAllInfo(level,area,lowLevel));
                    } else if(idx.equals("13")||idx.equals("17")){
                    } else if(idx.equals("13")){
                        result.put("index_" + idx, statisticsAllService.getLowLevelTotalTeamLeader(date, area, level, idx, sort, lowLevel));
                    }else{
                        result.put("index_" + idx, statisticsAllService.getLowLevelTotal(date, area, level, idx, sort, lowLevel));