| 
					
				 | 
			
			
				@ -68,6 +68,8 @@ public class StatisticsAllService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public long getIndexTotal(String endDate, String area, int level, String index) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        long total = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        boolean preFlag = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String preDate = endDate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (endDate.compareTo(dateFormat.format(new Date())) >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String val = redisTemplate.opsForValue().get("quota:" + index + ":" + level + ":" + area + ":" + getQuotaTimeStamp()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -76,8 +78,16 @@ public class StatisticsAllService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (valJson.has("num")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    total = valJson.getInt("num"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                preFlag = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Calendar today = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                today.add(Calendar.DATE, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                preDate = dateFormat.format(today.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            preFlag = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (preFlag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 查询语句 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String sql = " select " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "     ifnull(result,'0') amount" + 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -101,7 +111,7 @@ public class StatisticsAllService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sql += " and qkdoctor_code = ?"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<Map<String, Object>> result = jdbcTemplate.queryForList(sql, new Object[]{index, level, endDate, area}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<Map<String, Object>> result = jdbcTemplate.queryForList(sql, new Object[]{index, level, preDate, area}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (result != null && result.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                total = (result.get(0).get("amount") != null ? Long.valueOf(result.get(0).get("amount").toString()) : 0L); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -122,16 +132,26 @@ public class StatisticsAllService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public long getWeiJiaoFei(String endDate, String area, int level) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        long total = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        boolean preFlag = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String preDate = endDate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (endDate.compareTo(dateFormat.format(new Date())) >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String val = redisTemplate.opsForValue().get("quota:16:" + level + ":"+ area + ":0:" + getQuotaTimeStamp()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String val = redisTemplate.opsForValue().get("quota:16:" + level + ":" + area + ":0:" + getQuotaTimeStamp()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (!StringUtils.isEmpty(val)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONObject valJson = new JSONObject(val); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (valJson.has("num")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    total = valJson.getInt("num"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                preFlag = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Calendar today = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                today.add(Calendar.DATE, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                preDate = dateFormat.format(today.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            preFlag = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (preFlag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 查询语句 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String sql = " select " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "     ifnull(result,'0') amount" + 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -156,7 +176,7 @@ public class StatisticsAllService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sql += " and qkdoctor_code = ?"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<Map<String, Object>> result = jdbcTemplate.queryForList(sql, new Object[]{level, endDate, area}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<Map<String, Object>> result = jdbcTemplate.queryForList(sql, new Object[]{level, preDate, area}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (result != null && result.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                total = (result.get(0).get("amount") != null ? Long.valueOf(result.get(0).get("amount").toString()) : 0L); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -239,13 +259,11 @@ public class StatisticsAllService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String, Object>> resultList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (date.compareTo(dateFormat.format(new Date())) >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resultList = getTodayLowLevelTotal(date, area, level, index, lowLevel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resultList = getTodayLowLevelTotal(area, level, index, sort, lowLevel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resultList = getTodayBeforeLowLevelTotal(date, area, level, index, sort, lowLevel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        // 结果为空时,自建结果集 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (resultList == null || resultList.size() < 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resultList = getLowLevelMapKey(level, low_level, area); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -373,14 +391,13 @@ public class StatisticsAllService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取今天某个区域一级指标的下级统计 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param date 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param area 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param level 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param index 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param lowLevel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public List<Map<String, Object>> getTodayLowLevelTotal(String date, String area, int level, String index, String lowLevel) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public List<Map<String, Object>> getTodayLowLevelTotal(String area, int level, String index, int sort, String lowLevel) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String, Object>> resultList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String low_level = String.valueOf(StringUtils.isEmpty(lowLevel) ? (level - 1) : lowLevel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String redisData = redisTemplate.opsForValue().get("quota:" + index + ":" + level + ":" + area + ":" + low_level + ":" + getQuotaTimeStamp()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -398,6 +415,11 @@ public class StatisticsAllService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resultList.add(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Calendar today = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            today.add(Calendar.DATE, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String preDate = new SimpleDateFormat("yyyy-MM-dd").format(today.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resultList = getTodayBeforeLowLevelTotal(preDate, area, level, index, sort, lowLevel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (resultList.size() < 1) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -649,6 +671,11 @@ public class StatisticsAllService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                resultList.add(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Calendar today = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            today.add(Calendar.DATE, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String preDate = new SimpleDateFormat("yyyy-MM-dd").format(today.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resultList = getTodyBeforeLevelTwototal(preDate, area, level, index); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (resultList.size() < 1) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -834,6 +861,8 @@ public class StatisticsAllService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String areaField = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SimpleDateFormat datef = new SimpleDateFormat("yyyy-MM-dd"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String, Object>> resultList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        boolean preFlag = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String preDate = endDate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (endDate.compareTo(datef.format(new Date())) >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String redisData = redisTemplate.opsForValue().get("quota:12:" + level + ":" + area + ":6:" + getQuotaTimeStamp()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -851,8 +880,17 @@ public class StatisticsAllService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    resultList.add(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                preFlag = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Calendar today = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                today.add(Calendar.DATE, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                preDate = datef.format(today.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            preFlag = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (preFlag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (level == 4) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 市级别 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                areaField = "city"; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -884,7 +922,7 @@ public class StatisticsAllService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    "   and " + areaField + " = ? " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " group by level3_type,level3_type_name"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resultList = jdbcTemplate.queryForList(sql, new Object[]{level, endDate, area}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            resultList = jdbcTemplate.queryForList(sql, new Object[]{level, preDate, area}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (resultList == null || resultList.size() < 1) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -947,6 +985,8 @@ public class StatisticsAllService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String areaField = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        long total = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        SimpleDateFormat datef = new SimpleDateFormat("yyyy-MM-dd"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        boolean preFlag = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String preDate = endDate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (endDate.compareTo(datef.format(new Date())) >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String code = "6"; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -956,8 +996,17 @@ public class StatisticsAllService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (valJson.has("num")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    total = valJson.getInt("num"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                preFlag = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Calendar today = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                today.add(Calendar.DATE, -1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                preDate = datef.format(today.getTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            preFlag = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (preFlag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (level == 4) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 市级别 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                areaField = "city"; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -988,7 +1037,7 @@ public class StatisticsAllService extends BaseService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<Map<String, Object>> result = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result = jdbcTemplate.queryForList(sql, new Object[]{level, endDate, area}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result = jdbcTemplate.queryForList(sql, new Object[]{level, preDate, area}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (result != null && result.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                total = (result.get(0).get("amount") == null ? 0 : Math.round(Double.valueOf(result.get(0).get("amount").toString()))); 
			 |