|  | @ -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();
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | }
 |