瀏覽代碼

续签赚钱增加老年人、高、糖列表接口BUG修复

huangwenjie 7 年之前
父節點
當前提交
733592e6d5

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

@ -2867,25 +2867,48 @@ public class StatisticsAllService extends BaseService {
        return Double.valueOf(filesize);
    }
    public JSONArray getLevelTwoLowLevelTotalSignAndRenew(String area, int level, String index, int sort, String lowLevel, String year) throws Exception {
    public JSONArray getLevelTwoLowLevelTotalSignAndRenew(String area, int level, String index, int sort, String lowLevel, String year, String lowCode) throws Exception {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        String lastDate = year + "-06-30";
        String timeKey = redisTemplate.opsForValue().get("quota:timeKey");
        String low_level = String.valueOf(StringUtils.isEmpty(lowLevel) ? (level - 1) : lowLevel);
        List<Map<String, Object>> resultList = new ArrayList<>();//续签量
        //从redis获取续签量列表 团队,机构 区的续签量根据index来区分
        JSONArray renewJA = getLevel2ListForRedis(index, level + "", lowLevel, area, timeKey);
        //续签量
        List<Map<String, Object>> resultList = new ArrayList<>();
        //续签的的列表转map
        Map<String, Integer> renewMap = new HashMap<>();
        if (renewJA != null && renewJA.length() > 0) {
            for (int i = 0; i < renewJA.length(); i++) {
                JSONObject jo = renewJA.getJSONObject(i);
                renewMap.put(jo.getString("code"), jo.getInt("num"));
        
        //如果服务团队维度CODE为空,则走旧方法,不为空,则走新方法
        if(org.apache.commons.lang.StringUtils.isBlank(lowCode)){
            //旧方法
            //从redis获取续签量列表 团队,机构 区的续签量根据index来区分
            JSONArray renewJA = getLevel2ListForRedis(index, level + "", lowLevel, area, timeKey);
            if (renewJA != null && renewJA.length() > 0) {
                for (int i = 0; i < renewJA.length(); i++) {
                    JSONObject jo = renewJA.getJSONObject(i);
                    renewMap.put(jo.getString("code"), jo.getInt("num"));
                }
            }
        }else{
            //新方法
            List<WlyyQuotaResult> wlyyQuotaResults = findQuotaResultsWithLevelType2AndParentQuatoCode(DateUtil.getNextDay(new Date(),-1),level,Integer.parseInt(lowLevel), index, area,lowCode);
    
            for (WlyyQuotaResult wlyyQuotaResult: wlyyQuotaResults) {
                if("3".equals(low_level)){
                    renewMap.put(wlyyQuotaResult.getTown(),Integer.parseInt(wlyyQuotaResult.getResult()));
                }else if("2".equals(low_level)){
                    renewMap.put(wlyyQuotaResult.getOrgCode(),Integer.parseInt(wlyyQuotaResult.getResult()));
                }else if("1".equals(low_level)){
                    renewMap.put(wlyyQuotaResult.getQkdoctorCode(),Integer.parseInt(wlyyQuotaResult.getResult()));
                }else{
                    continue;
                }
                
            }
        }
    
        //自建结果集
        resultList = getLowLevelMapKey(level, low_level, area);
@ -2893,7 +2916,22 @@ public class StatisticsAllService extends BaseService {
        if (resultList != null) {
            DecimalFormat df = new DecimalFormat("0.0000");
            //查询去年的签约转map
            List<WlyyQuotaResult> yearsYear = findQuotaResultList(lastDate, Integer.valueOf(low_level), "1");
            List<WlyyQuotaResult> yearsYear = new ArrayList<>();
            if(org.apache.commons.lang.StringUtils.isBlank(lowCode)){
                yearsYear = findQuotaResultList(lastDate, Integer.valueOf(low_level), "1");
            }else{
                if("3".equals(lowCode)){
                    //老年人
                    yearsYear = findQuotaResultsWithLevelType1AndLevelType2(lastDate,Integer.valueOf(low_level),"17","3");
                }else if("4".equals(lowCode)){
                    //高血压
                    yearsYear = findQuotaResultsWithLevelType1AndLevelType2(lastDate,Integer.valueOf(low_level),"17","1");
                }else if("5".equals(lowCode)){
                    //糖尿病
                    yearsYear = findQuotaResultsWithLevelType1AndLevelType2(lastDate,Integer.valueOf(low_level),"17","2");
                }else{}
            }
            
            Map<String, WlyyQuotaResult> resultMap = new HashMap<>();
            yearsYear.stream().forEach(one -> {
                if ("1".equals(low_level)) {
@ -3004,4 +3042,45 @@ public class StatisticsAllService extends BaseService {
        }
        return 1;
    }
    
    /**
     * 根据父级的quato_code,查找二级数据列表
     * @param date
     * @param level
     * @param index
     * @param area
     * @param lowCode
     * @return
     */
    public List<WlyyQuotaResult> findQuotaResultsWithLevelType2AndParentQuatoCode(String date, int Level ,int lowLevel, String index, String area,String lowCode) {
    
        String sql = " select * from wlyy_quota_result w where w.quota_date ='" + date + "' and w.quato_code='" + index + "' and w.level1_type= '" + lowLevel +"' and w.level2_type = " + lowCode;
    
        if(4 == Level){
            sql += " and city='" + area + "' ";
        }else if (3 == Level){
            // 区、城镇级别
            sql += " and town='" + area + "' ";
        }else if (2 == Level){
            // 机构级别
            sql += " and org_code='" + area + "' ";
        }else if (1 == Level){
            // 团队级别
            sql += " and qkdoctor_code ='" + area + "'";
        }else{}
        List<WlyyQuotaResult> results = jdbcTemplate.query(sql, new BeanPropertyRowMapper(WlyyQuotaResult.class));
        return results;
    }
    
    public List<WlyyQuotaResult> findQuotaResultsWithLevelType1AndLevelType2(String date, int level, String index,String lowCode) {
        String sql = " select * from wlyy_quota_result w where " +
                " w.quota_date ='" + date + "' and " +
                " w.quato_code='" + index + "' and " +
                " w.level1_type='" + level+ "' and " +
                " w.level2_type= " + lowCode;
        List<WlyyQuotaResult> results = jdbcTemplate.query(sql, new BeanPropertyRowMapper(WlyyQuotaResult.class));
        return results;
    }
}

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

@ -4854,5 +4854,6 @@ public class StatisticsService extends BaseService {
        }
        return null;
    }
    
}

+ 4 - 3
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/statistic/StatisticsController.java

@ -1536,8 +1536,8 @@ public class StatisticsController extends BaseController {
     * @param level    level1_type等级 1:团队 2社区机构 3区级 4市级
     * @param sort     0:升序 1:降序
     * @param lowLevel 只有可能是 1,2,3,不传默认是level-1;
     *                 如果是服务类型维度code(老年人3,高血压4,糖尿病5)
     * @param year     不管根据当前时间找年度
     * @param lowCode  如果是服务类型维度code(老年人3,高血压4,糖尿病5)
     * @return
     */
    @RequestMapping("/lowlevel_all_sign_renew")
@ -1548,7 +1548,8 @@ public class StatisticsController extends BaseController {
            @RequestParam(required = true) int level,
            @RequestParam(required = true) int sort,
            @RequestParam(required = false) String lowLevel,
            @RequestParam(required = false) String year) {
            @RequestParam(required = false) String year,
            @RequestParam(required = false) String lowCode) {
        try {
            JSONObject result = new JSONObject();
@ -1562,7 +1563,7 @@ public class StatisticsController extends BaseController {
            }
            result.put("index_"+index, statisticsAllService.getLevelTwoLowLevelTotalSignAndRenew(area, level, index, sort, lowLevel, year));
            result.put("index_"+index, statisticsAllService.getLevelTwoLowLevelTotalSignAndRenew(area, level, index, sort, lowLevel, year,lowCode));
            return write(200, "查询成功", "data", result);
        } catch (Exception e) {