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