| 
					
				 | 
			
			
				@ -133,7 +133,7 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String val = redisTemplate.opsForValue().get("quota:" + index + ":" + level + ":" + area); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (!StringUtils.isEmpty(val)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONObject valJson = new JSONObject(val); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (valJson.has("num") && valJson.getInt("num") > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (valJson.has("num")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    todayAmount = valJson.getInt("num"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -146,12 +146,76 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取一级指标达到量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param endDate 截止日期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param area    区域 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param index   指标 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param level   级别 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public long getIndexTotal(String endDate,String area, int level , String index) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        int todayAmount = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String dateCon = endDate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (endDate.compareTo(dateFormat.format(new Date())) >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Calendar calendar = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            calendar.add(Calendar.DATE, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            dateCon = dateFormat.format(calendar.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 查询语句 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql = " select " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     ifnull(result,'0') amount" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " from  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     wlyy_quota_result " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " where " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     quato_code = ? " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "   and level1_type = ? and del = '1'" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "   and quota_date = ? "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (level == 4) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 市级别 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql += " and city = ? "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else if (level == 3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 区、城镇级别 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql += " and town = ? "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else if (level == 2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 机构级别 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql += " and org_code = ? "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else if (level == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql += " and qkdoctor_code = ?"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 截止日期包含当天,则从redis查询当天统计数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (endDate.compareTo(new SimpleDateFormat("yyyy-MM-dd").format(new Date())) >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String val = redisTemplate.opsForValue().get("quota:" + index + ":" + level + ":" + area); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (!StringUtils.isEmpty(val)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONObject valJson = new JSONObject(val); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (valJson.has("num")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    todayAmount = valJson.getInt("num"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String, Object>> result = jdbcTemplate.queryForList(sql, new Object[]{index,level, dateCon, area}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (result != null && result.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return (result.get(0).get("amount") != null ? (Long.valueOf(result.get(0).get("amount").toString()) + todayAmount) : todayAmount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取缴费 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param endDate 截止日期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param area 区域 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param level 级别 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param area    区域 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param level   级别 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public long getWeiJiaoFei(String endDate, String area, int level) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -171,7 +235,7 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " from  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     wlyy_quota_result " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " where " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     quato_code = '14' " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     quato_code = '16' " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "   and level1_type = ? and del = '1'" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "   and level2_type = '0' " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "   and quota_date = ? "; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -192,10 +256,10 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 截止日期包含当天,则从redis查询当天统计数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (endDate.compareTo(new SimpleDateFormat("yyyy-MM-dd").format(new Date())) >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String val = redisTemplate.opsForValue().get("quota:14:" + level + ":" + area); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String val = redisTemplate.opsForValue().get("quota:16:" + level + ":" + area); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (!StringUtils.isEmpty(val)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONObject valJson = new JSONObject(val); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (valJson.has("num") && valJson.getInt("num") > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (valJson.has("num")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    todayAmount = valJson.getInt("num"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -220,7 +284,7 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject getSignRate(String endDate, String area, int level) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject json = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        long signAmount = getTotalAmount(endDate, area, level, SIGN); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        long signAmount = getIndexTotal(endDate, area, level, "13"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        PopulationBase peopleNum = peopleNumDao.findByCodeAndYear(area, Calendar.getInstance().get(Calendar.YEAR)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        DecimalFormat df = new DecimalFormat("0.0000"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -247,7 +311,7 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject getSignTaskRate(String endDate, String area, int level) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject json = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        long signAmount = getTotalAmount(endDate, area, level, SIGN); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        long signAmount = getIndexTotal(endDate, area, level, "13"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        PopulationBase peopleNum = peopleNumDao.findByCodeAndYear(area, Calendar.getInstance().get(Calendar.YEAR)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        DecimalFormat df = new DecimalFormat("0.0000"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -264,19 +328,6 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return json; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 查询截止某个日期累计建档率 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param endDate 截止日期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param area    区域或机构代码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param level   级别 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String getFilingRate(String endDate, String area, int level) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取某个指标在某个期间的增长量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -320,7 +371,7 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String val = redisTemplate.opsForValue().get("quota:" + index + ":" + level + ":" + area); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (!StringUtils.isEmpty(val)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONObject valJson = new JSONObject(val); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (valJson.has("num") && valJson.getInt("num") > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (valJson.has("num")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    todayAmount = valJson.getInt("num"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -333,134 +384,6 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 查询截止某个日期某个区域后机构各下级累计签约情况 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param endDate 截止日期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param area    区域或机构代码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param level   级别 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONArray getLowLevelSignDetail(String endDate, String area, int level) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String areaField = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String lowLevelField = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String lowLevelName = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (level == 4) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 市级别 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            areaField = "city"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            lowLevelField = "town"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            lowLevelName = "town_name"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else if (level == 3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 区、城镇级别 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            areaField = "town"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            lowLevelField = "org_code"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            lowLevelName = "org_name"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else if (level == 2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 机构级别 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            areaField = "org_code"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            lowLevelField = "qkdoctor_code"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            lowLevelName = "qkdoctor_name"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else if (level == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 查询语句 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql = " select " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     ifnull(a." + lowLevelField + ",'') code " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     ,ifnull(a." + lowLevelName + ",'') 'name' " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     ,sum(a.result) amount "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(level > 3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            sql += "     ,sum(a.result)*1.00/b.num*100 rate"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql += " from  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     wlyy_quota_result a"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if(level > 3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            sql += "  inner join " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    "     wlyy_people_num b" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    "  on a." + lowLevelField + " = b.code "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql += " where " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     a.quato_code = '" + SIGN + "' " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "   and a.level1_type = ? and a.del = '1'" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "   and a.quota_date <= ? " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "   and a." + areaField + " = ? " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " group by a." + lowLevelField + ",a." + lowLevelName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String, Object>> resultList = jdbcTemplate.queryForList(sql, new Object[]{level - 1, endDate, area}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (resultList != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            DecimalFormat df = new DecimalFormat("0.00"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (Map<String, Object> map : resultList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map.put("amount", map.get("amount") != null ? Math.round(Double.valueOf(map.get("amount").toString())) : 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                if(level > 3){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    map.put("rate",df.format(map.get("rate") != null ? map.get("rate") : 0)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new JSONArray(resultList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 查询截止某个日期某个区域后机构各下级累计建档情况 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param endDate 截止日期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param area    区域或机构代码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param level   级别 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONArray getLowLevelFilingDetail(String endDate, String area, int level) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String areaField = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String lowLevelField = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String lowLevelName = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (level == 4) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 市级别 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            areaField = "city"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            lowLevelField = "town"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            lowLevelName = "town_name"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else if (level == 3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 区、城镇级别 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            areaField = "town"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            lowLevelField = "org_code"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            lowLevelName = "org_name"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else if (level == 2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 机构级别 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            areaField = "org_code"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            lowLevelField = "qkdoctor_code"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            lowLevelName = "qkdoctor_name"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else if (level == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 查询语句 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql = " select " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     ifnull(" + lowLevelField + ",'') code " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     ,ifnull(" + lowLevelName + ",'') 'name' " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     ,sum(result) amount" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " from  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     wlyy_quota_result " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " where " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     quato_code = '' " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "   and level1_type = '1' and del = '1'" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "   and quota_date <= ? " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "   and " + areaField + " = ? " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " group by " + lowLevelField + "," + lowLevelName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String, Object>> resultList = jdbcTemplate.queryForList(sql, new Object[]{endDate, area}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (resultList != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (Map<String, Object> map : resultList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map.put("amount", map.get("amount") != null ? Math.round(Double.valueOf(map.get("amount").toString())) : 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new JSONArray(resultList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 查询截止某个日期某个区域后机构各下级指标累计情况 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -608,7 +531,7 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String val = redisTemplate.opsForValue().get("quota:" + index + ":" + low_level + ":" + code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (!StringUtils.isEmpty(val)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        JSONObject valJson = new JSONObject(val); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (valJson.has("num") && valJson.getInt("num") > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (valJson.has("num")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            map.put("amount", (long) map.get("amount") + valJson.getInt("num")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -801,7 +724,7 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String val = redisTemplate.opsForValue().get("quota:" + index + ":" + low_level + ":" + code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (!StringUtils.isEmpty(val)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        JSONObject valJson = new JSONObject(val); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (valJson.has("num") && valJson.getInt("num") > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (valJson.has("num")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            map.put("amount", (long) map.get("amount") + valJson.getInt("num")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -924,7 +847,7 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String val = redisTemplate.opsForValue().get("quota:" + index + ":" + level + ":" + area); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (!StringUtils.isEmpty(val)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    JSONObject valJson = new JSONObject(val); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (valJson.has("num") && valJson.getInt("num") > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (valJson.has("num")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        amount = (long) valJson.getInt("num"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1088,7 +1011,7 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String val = redisTemplate.opsForValue().get("quota:" + index + ":" + level + ":" + area); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (!StringUtils.isEmpty(val)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    JSONObject valJson = new JSONObject(val); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (valJson.has("num") && valJson.getInt("num") > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (valJson.has("num")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        amount = valJson.getInt("num"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1284,7 +1207,7 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String val = redisTemplate.opsForValue().get("quota:" + index + ":" + level + ":" + area); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (!StringUtils.isEmpty(val)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    JSONObject valJson = new JSONObject(val); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (valJson.has("num") && valJson.getInt("num") > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (valJson.has("num")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        amount = valJson.getInt("num"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1479,8 +1402,8 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resultList.add(tnb); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, Object> tnbGxy = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                tnbGxy.put("code", "100"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                tnbGxy.put("name", "高血压+糖尿病"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                tnbGxy.put("code", "6"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                tnbGxy.put("name", "高血压和糖尿病"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                tnbGxy.put("amount", Double.valueOf("0.0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resultList.add(tnb); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else if (index.equals(AGE)) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1582,7 +1505,7 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String val = redisTemplate.opsForValue().get("quota:" + index + ":" + level + ":" + code + ":" + area); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (!StringUtils.isEmpty(val)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        JSONObject valJson = new JSONObject(val); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (valJson.has("num") && valJson.getInt("num") > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (valJson.has("num")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            map.put("amount", (long) map.get("amount") + valJson.getInt("num")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1639,14 +1562,21 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 统计65以上人群数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param startDate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param endDate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param area 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param level 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONArray getSixFiveStatistics(String startDate, String endDate, String area, int level) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONArray getSixFiveStatistics(String endDate, String area, int level) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String areaField = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SimpleDateFormat datef = new SimpleDateFormat("yyyy-MM-dd"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String dateCon = endDate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (endDate.compareTo(datef.format(new Date())) == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Calendar calendar = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            calendar.add(Calendar.DATE, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            dateCon = datef.format(calendar.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (level == 4) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 市级别 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1666,7 +1596,7 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql = " select " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     ifnull(level3_type,'') code " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     ,ifnull(level3_type_name,'') 'name' " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     ,ifnull(sum(result),0.0) amount" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     ,ifnull(result,0.0) amount" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " from  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     wlyy_quota_result " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " where " + 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1675,21 +1605,13 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "   and level1_type = ? and del = '1'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (!org.apache.commons.lang3.StringUtils.isEmpty(startDate)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql += "   and quota_date >= ? "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql += "   and quota_date <= ? " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql += "   and quota_date = ? " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "   and " + areaField + " = ? " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " group by level3_type,level3_type_name"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String, Object>> resultList = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (org.apache.commons.lang3.StringUtils.isEmpty(startDate)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resultList = jdbcTemplate.queryForList(sql, new Object[]{level, endDate, area}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resultList = jdbcTemplate.queryForList(sql, new Object[]{level, startDate, endDate, area}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        resultList = jdbcTemplate.queryForList(sql, new Object[]{level, dateCon, area}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (resultList == null || resultList.size() < 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resultList = new ArrayList<>(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1724,12 +1646,12 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map.put("amount", map.get("amount") == null ? 0 : Math.round(Double.valueOf(map.get("amount").toString()))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 当天数据统计 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (endDate.compareTo(new SimpleDateFormat("yyyy-MM-dd").format(new Date())) >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (endDate.compareTo(new SimpleDateFormat("yyyy-MM-dd").format(new Date())) == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String code = map.get("code") != null ? String.valueOf(map.get("code")) : ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String val = redisTemplate.opsForValue().get("quota:12:" + level + ":6:" + code + ":" + area); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (!StringUtils.isEmpty(val)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        JSONObject valJson = new JSONObject(val); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (valJson.has("num") && valJson.getInt("num") > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (valJson.has("num")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            map.put("amount", (long) map.get("amount") + valJson.getInt("num")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1737,7 +1659,7 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 65岁以上人群总数统计 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            long sixFiveTotal = getSixFiveTotal(startDate, endDate, area, level); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            long sixFiveTotal = getSixFiveTotal(endDate, area, level); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, Object> sixFive = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sixFive.put("code", "0"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1754,15 +1676,22 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取65岁以上人群总数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param startDate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param endDate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param area 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param level 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public long getSixFiveTotal(String startDate, String endDate, String area, int level) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public long getSixFiveTotal(String endDate, String area, int level) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String areaField = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        long total = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SimpleDateFormat datef = new SimpleDateFormat("yyyy-MM-dd"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String dateCon = endDate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (endDate.compareTo(datef.format(new Date())) == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Calendar calendar = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            calendar.add(Calendar.DATE, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            dateCon = datef.format(calendar.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (level == 4) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 市级别 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1780,7 +1709,7 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 查询语句 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql = " select " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     ifnull(sum(result),0.0) amount" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     ifnull(result,0.0) amount" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " from  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     wlyy_quota_result " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " where " + 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1789,31 +1718,25 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "   and level1_type = ? and del = '1'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (!org.apache.commons.lang3.StringUtils.isEmpty(startDate)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql += "   and quota_date >= ? "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql += "   and quota_date <= ? " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql += "   and quota_date = ? " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "   and " + areaField + " = ? "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String, Object> result = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (org.apache.commons.lang3.StringUtils.isEmpty(startDate)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result = jdbcTemplate.queryForMap(sql, new Object[]{level, endDate, area}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result = jdbcTemplate.queryForMap(sql, new Object[]{level, startDate, endDate, area}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result = jdbcTemplate.queryForMap(sql, new Object[]{level, dateCon, area}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (result != null && result.containsKey("amount")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            total += (result.get("amount") == null ? 0 : Math.round(Double.valueOf(result.get("amount").toString()))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String code = "6"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String val = redisTemplate.opsForValue().get("quota:8:" + level + ":" + code + ":" + area); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (!StringUtils.isEmpty(val)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject valJson = new JSONObject(val); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (valJson.has("num") && valJson.getInt("num") > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                total += valJson.getInt("num"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (endDate.compareTo(datef.format(new Date())) == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String code = "6"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String val = redisTemplate.opsForValue().get("quota:8:" + level + ":" + code + ":" + area); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (!StringUtils.isEmpty(val)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONObject valJson = new JSONObject(val); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (valJson.has("num")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    total += valJson.getInt("num"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1976,12 +1899,12 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map.put("amount", map.get("amount") != null ? Long.valueOf(map.get("amount").toString()) : 0L); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 截止日期包含当天,则从redis查询当天统计数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (date.compareTo(dateFormat.format(new Date())) >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (date.compareTo(dateFormat.format(new Date())) == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String code = map.get("code") != null ? String.valueOf(map.get("code")) : ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String val = redisTemplate.opsForValue().get("quota:" + index + ":" + low_level + ":" + code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (!StringUtils.isEmpty(val)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        JSONObject valJson = new JSONObject(val); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (valJson.has("num") && valJson.getInt("num") > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (valJson.has("num")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            map.put("amount", (long) map.get("amount") + valJson.getInt("num")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2158,7 +2081,7 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String val = redisTemplate.opsForValue().get("quota:" + index + ":" + level + ":" + area); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (!StringUtils.isEmpty(val)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    JSONObject valJson = new JSONObject(val); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (valJson.has("num") && valJson.getInt("num") > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (valJson.has("num")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        amount = (long) valJson.getInt("num"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2170,10 +2093,10 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            countResult.put(startStr, range); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(startDate.equals(df.format(new Date()))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (startDate.equals(df.format(new Date()))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Calendar preDate = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            preDate.setTime(df.parse(endDate)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            preDate.add(Calendar.DATE,-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            preDate.add(Calendar.DATE, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            startDate = df.format(preDate.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2195,10 +2118,10 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (resultList != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String preStr = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (endDate.equals(df.format(new Date()))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (endDate.equals(df.format(new Date()))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Calendar preDate = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                preDate.setTime(df.parse(endDate)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                preDate.add(Calendar.DATE,-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                preDate.add(Calendar.DATE, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                preStr = df.format(preDate.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2210,10 +2133,10 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    long resultAmount = map.get("amount") != null ? Long.valueOf(map.get("amount").toString()) : 0L; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    range.put("amount", amount + resultAmount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(org.apache.commons.lang3.StringUtils.isNotEmpty(preStr) && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        preStr.equals(map.get("range").toString())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (org.apache.commons.lang3.StringUtils.isNotEmpty(preStr) && 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        preStr.equals(map.get("range").toString())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    JSONObject range = (JSONObject) countResult.get(endDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(range != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (range != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        long amount = range.getLong("amount"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        long resultAmount = map.get("amount") != null ? Long.valueOf(map.get("amount").toString()) : 0L; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        range.put("amount", amount + resultAmount); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2354,7 +2277,7 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String val = redisTemplate.opsForValue().get("quota:" + index + ":" + level + ":" + area); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (!StringUtils.isEmpty(val)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    JSONObject valJson = new JSONObject(val); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (valJson.has("num") && valJson.getInt("num") > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (valJson.has("num")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        amount = valJson.getInt("num"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2368,10 +2291,10 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            countResult.put(endStr, range); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(startDate.equals(df.format(new Date()))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (startDate.equals(df.format(new Date()))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Calendar preDate = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            preDate.setTime(df.parse(endDate)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            preDate.add(Calendar.DATE,-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            preDate.add(Calendar.DATE, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            startDate = df.format(preDate.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2396,7 +2319,7 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (endDate.equals(df.format(new Date()))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Calendar preDate = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                preDate.setTime(df.parse(endDate)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                preDate.add(Calendar.DATE,-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                preDate.add(Calendar.DATE, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                pre = df.format(preDate.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2551,7 +2474,7 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String val = redisTemplate.opsForValue().get("quota:" + index + ":" + level + ":" + area); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (!StringUtils.isEmpty(val)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    JSONObject valJson = new JSONObject(val); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (valJson.has("num") && valJson.getInt("num") > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (valJson.has("num")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        amount = valJson.getInt("num"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2565,10 +2488,10 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            countResult.put(endStr, range); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(startDate.equals(df.format(new Date()))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (startDate.equals(df.format(new Date()))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Calendar preDate = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            preDate.setTime(df.parse(endDate)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            preDate.add(Calendar.DATE,-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            preDate.add(Calendar.DATE, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            startDate = df.format(preDate.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2593,7 +2516,7 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (endDate.equals(df.format(new Date()))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Calendar preDate = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                preDate.setTime(df.parse(endDate)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                preDate.add(Calendar.DATE,-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                preDate.add(Calendar.DATE, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                pre = df.format(preDate.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 计算结果 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -2639,4 +2562,273 @@ public class StatisticsService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取二级指标的到达量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param endDate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param area 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param level 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param index 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONArray getIndexLevelTwototal(String endDate, String area, int level, String index) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String areaField = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SimpleDateFormat datef = new SimpleDateFormat("yyyy-MM-dd"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String dateCon = endDate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (endDate.compareTo(datef.format(new Date())) == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Calendar calendar = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            calendar.add(Calendar.DATE, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            dateCon = datef.format(calendar.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (level == 4) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 市级别 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            areaField = "city"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else if (level == 3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 区、城镇级别 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            areaField = "town"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else if (level == 2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 机构级别 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            areaField = "org_code"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else if (level == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 团队 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            areaField = "qkdoctor_code"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 查询语句 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql = " select " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     ifnull(level2_type,'') code " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     ,ifnull(level2_type_name,'') 'name' " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     ,ifnull(result,0.0) amount" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " from  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     wlyy_quota_result " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " where " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "     quato_code = '" + index + "' " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "   and level1_type = ? and del = '1'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        sql += "   and quota_date = ? " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                "   and " + areaField + " = ? " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " group by level2_type,level2_type_name"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String, Object>> resultList = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        resultList = jdbcTemplate.queryForList(sql, new Object[]{level, dateCon, area}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (resultList == null || resultList.size() < 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resultList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (index.equals(SEX)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, Object> women = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                women.put("code", "1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                women.put("name", "女"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                women.put("amount", Double.valueOf("0.0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resultList.add(women); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, Object> man = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                man.put("code", "2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                man.put("name", "男"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                man.put("amount", Double.valueOf("0.0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resultList.add(man); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, Object> unknown = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                unknown.put("code", "3"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                unknown.put("name", "未知"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                unknown.put("amount", Double.valueOf("0.0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resultList.add(unknown); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else if (index.equals(GROUP)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, Object> nogroup = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                nogroup.put("code", "0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                nogroup.put("name", "未分组"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                nogroup.put("amount", Double.valueOf("0.0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resultList.add(nogroup); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, Object> normal = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                normal.put("code", "1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                normal.put("name", "普通人群"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                normal.put("amount", Double.valueOf("0.0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resultList.add(normal); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, Object> manbing = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                manbing.put("code", "2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                manbing.put("name", "慢病人群"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                manbing.put("amount", Double.valueOf("0.0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resultList.add(manbing); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, Object> upsixfive = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                upsixfive.put("code", "3"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                upsixfive.put("name", "65岁以上人群"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                upsixfive.put("amount", Double.valueOf("0.0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resultList.add(upsixfive); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, Object> gxy = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                gxy.put("code", "4"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                gxy.put("name", "高血压"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                gxy.put("amount", Double.valueOf("0.0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resultList.add(gxy); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, Object> tnb = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                tnb.put("code", "5"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                tnb.put("name", "糖尿病"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                tnb.put("amount", Double.valueOf("0.0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resultList.add(tnb); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, Object> tnbGxy = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                tnbGxy.put("code", "6"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                tnbGxy.put("name", "高血压和糖尿病"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                tnbGxy.put("amount", Double.valueOf("0.0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resultList.add(tnb); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                Map<String, Object> mn65LowGxy = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                mn65LowGxy.put("code", "7"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                mn65LowGxy.put("name", "慢病人群65岁以上"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                mn65LowGxy.put("amount", Double.valueOf("0.0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                resultList.add(mn65LowGxy); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else if (index.equals(AGE)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, Object> map1 = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map1.put("code", "1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map1.put("name", "0~6"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map1.put("amount", Double.valueOf("0.0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resultList.add(map1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, Object> map2 = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map2.put("code", "2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map2.put("name", "7~18"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map2.put("amount", Double.valueOf("0.0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resultList.add(map2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, Object> map3 = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map3.put("code", "3"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map3.put("name", "18~30"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map3.put("amount", Double.valueOf("0.0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resultList.add(map3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, Object> map4 = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map4.put("code", "4"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map4.put("name", "30~50"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map4.put("amount", Double.valueOf("0.0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resultList.add(map4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, Object> map5 = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map5.put("code", "5"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map5.put("name", "50~65"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map5.put("amount", Double.valueOf("0.0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resultList.add(map5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, Object> map6 = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map6.put("code", "6"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map6.put("name", "50~65"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map6.put("amount", Double.valueOf("0.0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resultList.add(map6); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else if (index.equals("16")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, Object> map1 = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map1.put("code", "0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map1.put("name", "未缴费人数"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map1.put("amount", Double.valueOf("0.0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resultList.add(map1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, Object> map2 = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map2.put("code", "1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map2.put("name", "已缴费人数"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map2.put("amount", Double.valueOf("0.0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resultList.add(map2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, Object> map3 = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map3.put("code", "2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map3.put("name", "已退费人数"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map3.put("amount", Double.valueOf("0.0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resultList.add(map3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else if (index.equals("15")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, Object> map1 = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map1.put("code", "0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map1.put("name", "未标注"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map1.put("amount", Double.valueOf("0.0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resultList.add(map1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, Object> map2 = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map2.put("code", "1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map2.put("name", "健康人群"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map2.put("amount", Double.valueOf("0.0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resultList.add(map2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, Object> map3 = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map3.put("code", "2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map3.put("name", "患病人群"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map3.put("amount", Double.valueOf("0.0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resultList.add(map3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, Object> map4 = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map4.put("code", "3"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map4.put("name", "高危人群"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map4.put("amount", Double.valueOf("0.0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resultList.add(map4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, Object> map5 = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map5.put("code", "4"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map5.put("name", "恢复期人群"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map5.put("amount", Double.valueOf("0.0")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resultList.add(map5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (resultList != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            long total = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (Map<String, Object> map : resultList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map.put("amount", map.get("amount") == null ? 0 : Math.round(Double.valueOf(map.get("amount").toString()))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 当天数据统计 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (endDate.compareTo(new SimpleDateFormat("yyyy-MM-dd").format(new Date())) == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String code = map.get("code") != null ? String.valueOf(map.get("code")) : ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String val = redisTemplate.opsForValue().get("quota:" + index + ":" + level + ":" + code + ":" + area); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (!StringUtils.isEmpty(val)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        JSONObject valJson = new JSONObject(val); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if (valJson.has("num")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            map.put("amount", (long) map.get("amount") + valJson.getInt("num")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (index.equals(GROUP)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    // 分组指标总数算法 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String code = map.get("code") != null ? String.valueOf(map.get("code")) : ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (code.equals("0") || code.equals("1") || code.equals("2") || code.equals("3")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        total += (long) map.get("amount"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } else if (index.equals("16")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String code = map.get("code") != null ? String.valueOf(map.get("code")) : ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (!code.equals("2")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        total += (long) map.get("amount"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    total += (long) map.get("amount"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (!index.equals(AGE)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                DecimalFormat df = new DecimalFormat("0.0000"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                for (Map<String, Object> map : resultList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    double rateG = (total > 0 ? ((long) map.get("amount")) * 1.0000 / total * 100 : 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    map.put("rate", df.format(rateG)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (index.equals(SEX) && resultList.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                int i = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                boolean flag = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                for (; i < resultList.size(); i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if (resultList.get(i).get("code") != null && String.valueOf(resultList.get(i).get("code")).equals("3") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            && String.valueOf(resultList.get(i).get("amount")).equals("0")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        flag = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (flag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    resultList.remove(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new JSONArray(resultList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |