| 
					
				 | 
			
			
				@ -11,12 +11,14 @@ import com.yihu.wlyy.statistics.model.system.City; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.statistics.model.system.Town; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.statistics.model.team.AdminTeam; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.statistics.util.DateUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.json.JSONArray; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.json.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.context.annotation.Scope; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.data.redis.core.StringRedisTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.stereotype.Component; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import springfox.documentation.spring.web.json.Json; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -27,6 +29,9 @@ import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@Component 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@Scope("prototype") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static String timeKey=""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static List<String> keys=new ArrayList<String>();//全部的key 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private Map<String, AdminTeam> adminTeamMap = new HashMap<String, AdminTeam>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private Map<String, Hospital> hospitalsMap = new HashMap<String, Hospital>(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -46,6 +51,7 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @throws Exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void saveByLevel1(List<Map<String, List<ETLModel>>> data,List<Map<String, List<ETLModel>>> deleteData, String wlyyQuotaId) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<AdminTeam> adminTeams=doctorAdminTeamDao.findAllTeam(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String, AdminTeam> adminTeamMap = new HashMap<String, AdminTeam>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (AdminTeam adminTeam : adminTeams) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -74,7 +80,6 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String, List<ETLModel>> orgTeam=data.get(1);//机构的数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String, List<ETLModel>> townTeam=data.get(2);//区的数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String, List<ETLModel>> cityTeam=data.get(3);//市的数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        redisTemplate.opsForValue().set("quota:date",DateUtil.dateToStrLong(new Date())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(deleteData==null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //保存市 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            saveLevel1City(wlyyQuotaId, cityMap, cityTeam); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -168,7 +173,6 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //保存市 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            saveCityTeamDataLevel3(data.get(3),deleteData.get(3),wlyyQuotaId,cityMap,foreachNum2,foreachNum3,type2,type3,start2,start3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //保存团队 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            saveAdminTeamDataLevel3(data.get(0),wlyyQuotaId,adminTeamMap,foreachNum2,foreachNum3,type2,type3,start2,start3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //保存机构 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -218,8 +222,8 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    JSONObject jo=new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("date", DateUtil.dateToStrLong(new Date())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("num", num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("teamName", adminTeamObj.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("teamId", adminTeamObj.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("name", adminTeamObj.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("code", adminTeamObj.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("name", getLevel3Name(level3,type3)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":"+level1+":"+level2+":"+level3+":"+adminTeamObj.getId()).toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -227,8 +231,12 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private void saveAdminTeamDataLevel3(Map<String, Map<String, Map<String, List<ETLModel>>>> etlModelMap, String wlyyQuotaId,Map<String, AdminTeam> adminTeamMap, Integer foreachNum2, Integer foreachNum3, Integer type2, Integer type3, Integer start2, Integer start3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //遍历团队的Map 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for(Map.Entry<String,AdminTeam> oneAdminTeam:adminTeamMap.entrySet()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONArray level2Jr=new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            AdminTeam adminTeamObj = adminTeamMap.get(oneAdminTeam.getKey());//团队 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String level1="1"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //得到每个团队的2级维度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, Map<String, List<ETLModel>>> twoETLMap= etlModelMap.get(oneAdminTeam.getKey()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for(int i=start2;i<=foreachNum2;i++){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -238,7 +246,6 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    threeETLMap=twoETLMap.get(i+""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                for(int j=start3;j<=foreachNum3;j++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String level1="1"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String level2=i+""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String level3=j+""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    int num=0; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -248,17 +255,23 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            num=etlModelList.size(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    AdminTeam adminTeamObj = adminTeamMap.get(oneAdminTeam.getKey());//团队 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(adminTeamObj==null)continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    JSONObject jo=new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("date", DateUtil.dateToStrLong(new Date())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("num", num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("teamName", adminTeamObj.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("teamId", adminTeamObj.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("name", getLevel3Name(level3,type3)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":"+level1+":"+level2+":"+level3+":"+adminTeamObj.getId()).toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("name", level3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("code", getLevel3Name(level3,type3)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    StringBuffer sb=new StringBuffer("quota:"+wlyyQuotaId+":"+level1+":"+adminTeamObj.getId()+":"+level2+":"+":"+level3+":"+timeKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    keys.add(sb.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    redisTemplate.opsForValue().set(sb.toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    level2Jr.put(jo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            StringBuffer sb=new StringBuffer("quota:"+wlyyQuotaId+":"+level1+":"+adminTeamObj.getId()+":"+timeKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            keys.add(sb.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            redisTemplate.opsForValue().set(sb.toString(), level2Jr.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String getLevel3Name(String j, Integer type) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -311,8 +324,8 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    JSONObject jo=new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("date", DateUtil.dateToStrLong(new Date())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("num", num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("orgName", hospital.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("orgCode", hospital.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("name", hospital.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("code", hospital.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("name", getLevel3Name(level3,type3)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":"+level1+":"+level2+":"+level3+":"+hospital.getCode()).toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -320,8 +333,14 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private void saveHospitalTeamDataLevel3(Map<String, Map<String, Map<String, List<ETLModel>>>> etlModelMap,String wlyyQuotaId, Map<String, Hospital> hospitalMap, Integer foreachNum2, Integer foreachNum3, Integer type2, Integer type3, Integer start2, Integer start3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String,Map<String,JSONArray>> cityJr=new HashMap<String,Map<String,JSONArray>>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //遍历团队的Map 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for(Map.Entry<String,Hospital> oneHospital:hospitalMap.entrySet()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Hospital hospital = hospitalsMap.get(oneHospital.getKey()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(hospital==null)continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONArray jr=new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String level1="2"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //得到每个团队的2级维度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, Map<String, List<ETLModel>>> twoETLMap= etlModelMap.get(oneHospital.getKey()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for(int i=start2;i<=foreachNum2;i++){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -331,7 +350,6 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    threeETLMap=twoETLMap.get(i+""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                for(int j=start3;j<=foreachNum3;j++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String level1="2"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String level2=i+""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String level3=j+""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    int num=0; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -341,17 +359,21 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            num=etlModelList.size(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    Hospital hospital = hospitalsMap.get(oneHospital.getKey()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(hospital==null)continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    JSONObject jo=new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("date", DateUtil.dateToStrLong(new Date())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("num", num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("orgName", hospital.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("orgCode", hospital.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("name", getLevel3Name(level3,type3)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":"+level1+":"+level2+":"+level3+":"+hospital.getCode()).toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("name", level3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("code", getLevel3Name(level3,type3)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    StringBuffer sb=new StringBuffer("quota:"+wlyyQuotaId+":"+level1+":"+":"+hospital.getCode()+":"+level2+":"+level3+":"+timeKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    keys.add(sb.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    redisTemplate.opsForValue().set(sb.toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jr.put(jo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            StringBuffer sb=new StringBuffer("quota:"+wlyyQuotaId+":"+level1+":"+hospital.getCode()+":"+timeKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            keys.add(sb.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            redisTemplate.opsForValue().set(sb.toString(), jr.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private void saveTownTeamDataLevel3(Map<String, Map<String, Map<String, List<ETLModel>>>> etlModelMap,Map<String, Map<String, Map<String, List<ETLModel>>>> deleteEtlModelMap,String wlyyQuotaId, Map<String, Town> townsMap, Integer foreachNum2, Integer foreachNum3, Integer type2, Integer type3, Integer start2, Integer start3) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -393,8 +415,8 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    JSONObject jo=new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("date", DateUtil.dateToStrLong(new Date())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("num", num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("townName", town.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("townCode", town.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("name", town.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("code", town.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("name", getLevel3Name(level3,type3)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":"+level1+":"+level2+":"+level3+":"+town.getCode()).toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -440,8 +462,8 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    JSONObject jo=new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("date", DateUtil.dateToStrLong(new Date())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("num", num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("cityName", cityObj.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("cityCode", cityObj.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("name", cityObj.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("code", cityObj.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("name", getLevel3Name(level3,type3)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":"+level1+":"+level2+":"+level3+":"+cityObj.getCode()).toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -450,9 +472,12 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private void saveTownTeamDataLevel3(Map<String, Map<String, Map<String, List<ETLModel>>>> etlModelMap,String wlyyQuotaId, Map<String, Town> townsMap, Integer foreachNum2, Integer foreachNum3, Integer type2, Integer type3, Integer start2, Integer start3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<WlyyQuotaResult> wlyyQuotaResults=new ArrayList<WlyyQuotaResult>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //遍历团队的Map 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for(Map.Entry<String,Town> oneTownTeam:townsMap.entrySet()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Town town=townsMap.get(oneTownTeam.getKey()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONArray jr=new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String level1="3"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //得到每个团队的2级维度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, Map<String, List<ETLModel>>> twoETLMap= etlModelMap.get(oneTownTeam.getKey()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for(int i=start2;i<=foreachNum2;i++){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -462,7 +487,6 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    threeETLMap=twoETLMap.get(i+""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                for(int j=start3;j<=foreachNum3;j++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String level1="3"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String level2=i+""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String level3=j+""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    int num=0; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -472,24 +496,34 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            num=etlModelList.size(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    Town town=townsMap.get(oneTownTeam.getKey()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if(town==null)continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    JSONObject jo=new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("date", DateUtil.dateToStrLong(new Date())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("num", num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("townName", town.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("townCode", town.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("name", getLevel3Name(level3,type3)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":"+level1+":"+level2+":"+level3+":"+town.getCode()).toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    //jo.put("name", town.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    //jo.put("code", town.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("level2code", level2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("level2name", getLevel2Name(level2,type2)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("name", level3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("code", getLevel3Name(level3,type3)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    StringBuffer sb=new StringBuffer("quota:"+wlyyQuotaId+":"+level1+":"+town.getCode()+":"+level2+":"+level3+":"+timeKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    keys.add(sb.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    redisTemplate.opsForValue().set(sb.toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jr.put(jo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            StringBuffer sb=new StringBuffer("quota:"+wlyyQuotaId+":"+level1+":"+town.getCode()+":"+timeKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            keys.add(sb.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            redisTemplate.opsForValue().set(sb.toString(), jr.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private void saveCityTeamDataLevel3(Map<String, Map<String, Map<String, List<ETLModel>>>> etlModelMap,String wlyyQuotaId, Map<String, City> cityMap, Integer foreachNum2, Integer foreachNum3, Integer type2, Integer type3, Integer start2, Integer start3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<WlyyQuotaResult> wlyyQuotaResults=new ArrayList<WlyyQuotaResult>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //遍历团队的Map 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for(Map.Entry<String,City> oneCityTeam:cityMap.entrySet()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            City cityObj=oneCityTeam.getValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONArray jr=new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String level1="4"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //得到每个团队的2级维度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, Map<String, List<ETLModel>>> twoETLMap= etlModelMap.get(oneCityTeam.getKey()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for(int i=start2;i<=foreachNum2;i++){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -499,8 +533,6 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    threeETLMap=twoETLMap.get(i+""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                for(int j=start3;j<=foreachNum3;j++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String level1="4"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String level2=i+""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String level3=j+""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    int num=0; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -510,17 +542,22 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            num=etlModelList.size(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    City cityObj=oneCityTeam.getValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    JSONObject jo=new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("date", DateUtil.dateToStrLong(new Date())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("num", num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("cityName", cityObj.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("cityCode", cityObj.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("name", getLevel3Name(level3,type3)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":"+level1+":"+level2+":"+level3+":"+cityObj.getCode()).toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("name", level3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jo.put("code", getLevel3Name(level3,type3)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    StringBuffer sb=new StringBuffer("quota:"+wlyyQuotaId+":"+level1+":"+cityObj.getCode()+":"+level2+":"+level3+":"+timeKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    keys.add(sb.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    redisTemplate.opsForValue().set(sb.toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jr.put(jo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            StringBuffer sb=new StringBuffer("quota:"+wlyyQuotaId+":"+level1+":"+cityObj.getCode()+":"+timeKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            keys.add(sb.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            redisTemplate.opsForValue().set(sb.toString(), jr.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -554,7 +591,6 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String, Map<String, List<ETLModel>>> townTeam=data.get(2);//区的数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String, Map<String, List<ETLModel>>> cityTeam=data.get(3);//市的数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        redisTemplate.opsForValue().set("quota:date",DateUtil.dateToStrLong(new Date())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(deleteData!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //保存市 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            saveLevel2City(wlyyQuotaId, cityMap, cityTeam,deleteData.get(3),foreachNum,type,start); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -599,10 +635,9 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("date", DateUtil.dateToStrLong(new Date())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("num", num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("teamName", adminTeamObj.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("teamId", adminTeamObj.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("name", adminTeamObj.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("code", adminTeamObj.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String key=i+""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("name", getLevel2Name(key,type)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":1:"+key+":"+adminTeam.getKey()).toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -610,6 +645,7 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private void saveLevel2Team(String wlyyQuotaId, Map<String, AdminTeam> adminTeamMap, Map<String, Map<String, List<ETLModel>>> eltModel,  Integer foreachNum, Integer type,Integer start) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for(Map.Entry<String,AdminTeam> adminTeam:adminTeamMap.entrySet()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, List<ETLModel>> oneELTMap= eltModel.get(adminTeam.getKey()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONArray level2=new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for(int i=start;i<=foreachNum;i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                AdminTeam adminTeamObj=adminTeam.getValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(adminTeamObj==null)continue; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -623,12 +659,20 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("date", DateUtil.dateToStrLong(new Date())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("num", num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("teamName", adminTeamObj.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("teamId", adminTeamObj.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String key=i+""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("name", getLevel2Name(key,type)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":1:"+key+":"+adminTeam.getKey()).toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("name", key); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("code",  Constant.getLevelSexName(key)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                StringBuffer sb=new StringBuffer("quota:"+wlyyQuotaId+":1:"+adminTeam.getKey().toString()+":"+key+":"+timeKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                keys.add(sb.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                redisTemplate.opsForValue().set(sb.toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                level2.put(jo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            StringBuffer sb=new StringBuffer("quota:"+wlyyQuotaId+":1:"+adminTeam.getKey().toString()+":"+timeKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            keys.add(sb.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            redisTemplate.opsForValue().set(sb.toString(), level2.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private void saveLevel2Org(String wlyyQuotaId, Map<String, Hospital> hospitalsMap, Map<String, Map<String, List<ETLModel>>> eltModel, Map<String, Map<String, List<ETLModel>>> deleteEltModel, Integer foreachNum, Integer type,Integer start) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -654,10 +698,9 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("date", DateUtil.dateToStrLong(new Date())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("num", num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("orgName", hospitalObj.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("orgCode", hospitalObj.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("name", hospitalObj.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("code", hospitalObj.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String key=i+""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("name", getLevel2Name(key,type)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":2:"+key+":"+hospital.getKey()).toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -665,6 +708,7 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private void saveLevel2Town(String wlyyQuotaId, Map<String, Town> townsMap, Map<String, Map<String, List<ETLModel>>> eltModel,  Integer foreachNum, Integer type,Integer start) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for(Map.Entry<String,Town> town:townsMap.entrySet()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, List<ETLModel>> oneELTMap= eltModel.get(town.getKey()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONArray level2=new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for(int i=1;i<=foreachNum;i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONObject jo=new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                int num=0; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -676,17 +720,27 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("date", DateUtil.dateToStrLong(new Date())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("num", num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("townName", town.getValue().getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("townCode", town.getValue().getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String key=i+""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("name", getLevel2Name(key,type)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":3:"+key+":"+town.getKey()).toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("name", key); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("code", Constant.getLevelSexName(key)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                StringBuffer sb=new StringBuffer("quota:"+wlyyQuotaId+":3:"+town.getKey()+":"+key+":"+timeKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                keys.add(sb.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                redisTemplate.opsForValue().set(sb.toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                level2.put(jo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            StringBuffer sb=new StringBuffer("quota:"+wlyyQuotaId+":3:"+town.getKey()+":"+timeKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            keys.add(sb.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            redisTemplate.opsForValue().set(sb.toString(), level2.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private void saveLevel2Org(String wlyyQuotaId, Map<String, Hospital> hospitalsMap, Map<String, Map<String, List<ETLModel>>> eltModel,Integer foreachNum, Integer type,Integer start) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String,Map<String,JSONArray>> townjr=new HashMap<String,Map<String,JSONArray>>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for(Map.Entry<String,Hospital> hospital:hospitalsMap.entrySet()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, List<ETLModel>> oneELTMap= eltModel.get(hospital.getKey()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONArray level2=new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for(int i=start;i<=foreachNum;i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Hospital hospitalObj=hospital.getValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(hospitalObj==null)continue; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -700,12 +754,20 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("date", DateUtil.dateToStrLong(new Date())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("num", num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("orgName", hospitalObj.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("orgCode", hospitalObj.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String key=i+""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("name", getLevel2Name(key,type)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":2:"+key+":"+hospital.getKey()).toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("name", key); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("code", Constant.getLevelSexName(key)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                addJOLeval2(townjr,hospitalObj.getTown(),key,jo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                StringBuffer sb=new StringBuffer("quota:"+wlyyQuotaId+":2:"+hospital.getKey().toString()+":"+key+":"+timeKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                keys.add(sb.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                redisTemplate.opsForValue().set(sb.toString(), level2.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            StringBuffer sb=new StringBuffer("quota:"+wlyyQuotaId+":2:"+hospital.getKey().toString()+":"+timeKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            keys.add(sb.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            redisTemplate.opsForValue().set(sb.toString(), level2.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private void saveLevel2Town(String wlyyQuotaId, Map<String, Town> townsMap, Map<String, Map<String, List<ETLModel>>> eltModel, Map<String, Map<String, List<ETLModel>>> deleteEltModel, Integer foreachNum, Integer type,Integer start) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -729,8 +791,8 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("date", DateUtil.dateToStrLong(new Date())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("num", num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("townName", town.getValue().getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("townCode", town.getValue().getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("name", town.getValue().getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("code", town.getValue().getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String key=i+""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("name", getLevel2Name(key,type)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":3:"+key+":"+town.getKey()).toString(), jo.toString()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -759,10 +821,11 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("date", DateUtil.dateToStrLong(new Date())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("num", num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("cityName", city.getValue().getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("cityCode", city.getValue().getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("name", city.getValue().getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("code", city.getValue().getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String key=i+""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("name", getLevel2Name(key,type)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("name", getLevel2Name(key,type)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":4:"+key+":"+city.getKey()).toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -770,6 +833,7 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private void saveLevel2City(String wlyyQuotaId, Map<String, City> cityMap, Map<String, Map<String, List<ETLModel>>> eltModel,  Integer foreachNum, Integer type,Integer start) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for(Map.Entry<String,City> city:cityMap.entrySet()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, List<ETLModel>> oneELTMap= eltModel.get(city.getKey()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONArray level2=new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for(int i=start;i<=foreachNum;i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONObject jo=new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                int num=0; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -781,15 +845,24 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("date", DateUtil.dateToStrLong(new Date())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("num", num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("cityName", city.getValue().getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("cityCode", city.getValue().getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String key=i+""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("code", key); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jo.put("name", getLevel2Name(key,type)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":4:"+key+":"+city.getKey()).toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                StringBuffer sb=new StringBuffer("quota:"+wlyyQuotaId+":4:"+city.getKey()+":"+key+":"+timeKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                keys.add(sb.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                redisTemplate.opsForValue().set(sb.toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                level2.put(jo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            StringBuffer sb=new StringBuffer("quota:"+wlyyQuotaId+":4:"+city.getKey()+":"+timeKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            keys.add(sb.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            redisTemplate.opsForValue().set(sb.toString(), level2.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private void saveLevel1Team(String wlyyQuotaId, Map<String, AdminTeam> adminTeamMap, Map<String, List<ETLModel>> adminTeam) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray cityjr=new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String,JSONArray> townjr=new HashMap<String,JSONArray>();//key是town 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String,JSONArray> orgjr=new HashMap<String,JSONArray>();//key是机构 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for(Map.Entry<String,AdminTeam> entry:adminTeamMap.entrySet()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject jo=new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Integer num=0; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -801,10 +874,41 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("date", DateUtil.dateToStrLong(new Date())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("num", num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("teamName", adminTeamObj.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("teamId", adminTeamObj.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":1:"+entry.getKey()).toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("name", adminTeamObj.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("code", adminTeamObj.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String orgKey=adminTeamObj.getOrgCode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Hospital hospital=hospitalsMap.get(orgKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(hospital==null)continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String townKey=hospital.getTown(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            cityjr.put(jo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            addJO(townjr,townKey,jo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            addJO(orgjr,orgKey,jo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            StringBuffer key=new StringBuffer("quota:"+wlyyQuotaId+":1:"+entry.getKey()+":"+timeKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            keys.add(key.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            redisTemplate.opsForValue().set(key.toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //保存市下面全部的团队 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        StringBuffer key=new StringBuffer("quota:"+wlyyQuotaId+":4:1:"+Constant.city+":"+timeKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        keys.add(key.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        redisTemplate.opsForValue().set(key.toString(), cityjr.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //保存区下面全部的团队 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for(Map.Entry<String,JSONArray> entry:townjr.entrySet()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            key=new StringBuffer("quota:"+wlyyQuotaId+":3:1:"+entry.getKey()+":"+timeKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            keys.add(key.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            redisTemplate.opsForValue().set(key.toString(), entry.getValue().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        townjr.clear(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //保存机构下面全部的团队 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for(Map.Entry<String,JSONArray> entry:orgjr.entrySet()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            key=new StringBuffer("quota:"+wlyyQuotaId+":2:1:"+entry.getKey()+":"+timeKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            keys.add(key.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            redisTemplate.opsForValue().set(key.toString(), entry.getValue().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        orgjr.clear(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private void saveLevel1Team(String wlyyQuotaId, Map<String, AdminTeam> adminTeamMap, Map<String, List<ETLModel>> adminTeam, Map<String, List<ETLModel>> deleteAdminTeam) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for(Map.Entry<String,AdminTeam> entry:adminTeamMap.entrySet()){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -824,12 +928,14 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("date", DateUtil.dateToStrLong(new Date())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("num", num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("teamName", adminTeamObj.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("teamId", adminTeamObj.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":1:"+entry.getKey()).toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("name", adminTeamObj.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("code", adminTeamObj.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":1:"+entry.getKey()).toString()+":0", jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private void saveLevel1Org(String wlyyQuotaId, Map<String, Hospital> hospitalsMap, Map<String, List<ETLModel>> orgTeam) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray cityjr=new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String,JSONArray> townjr=new HashMap<String,JSONArray>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for(Map.Entry<String,Hospital> entry:hospitalsMap.entrySet()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Hospital hospital=entry.getValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(hospital==null)continue; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -841,11 +947,89 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("date", DateUtil.dateToStrLong(new Date())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("num", num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("orgName", hospital.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("orgCode", hospital.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":2:"+entry.getKey()).toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("name", hospital.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("code", hospital.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            cityjr.put(jo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String townKey=hospital.getTown(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            addJO(townjr, townKey, jo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            StringBuffer key=new StringBuffer("quota:"+wlyyQuotaId+":2:"+entry.getKey()+":"+timeKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            keys.add(key.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            redisTemplate.opsForValue().set(key.toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //保存市下面全部的机构 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        StringBuffer key=new StringBuffer("quota:"+wlyyQuotaId+":4:2:"+Constant.city+":"+timeKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        keys.add(key.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        redisTemplate.opsForValue().set(key.toString(), cityjr.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //保存区下面全部的机构 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for(Map.Entry<String,JSONArray> entry:townjr.entrySet()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            key=new StringBuffer("quota:"+wlyyQuotaId+":3:2:"+entry.getKey()+":"+timeKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            keys.add(key.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            redisTemplate.opsForValue().set(key.toString(), entry.getValue().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        townjr.clear(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private void addJO(Map<String, JSONArray> townjr,String key, JSONObject jo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(townjr.containsKey(key)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            townjr.get(key).put(jo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONArray townjrList=new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            townjrList.put(jo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            townjr.put(key,townjrList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private void addJOLeval2(Map<String,Map<String, JSONArray>> townjr,String key1,String key2, JSONObject jo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(townjr.containsKey(key1)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, JSONArray> level2=townjr.get(key1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(level2.containsKey(key2)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONArray jr=level2.get(key2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jr.put(jo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONArray jr=new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jr.put(jo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                level2.put(key2,jr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, JSONArray> level2=new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONArray jr=new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jr.put(jo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            level2.put(key2,jr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            townjr.put(key1,level2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private void addJOLeval3(Map<String,Map<String, Map<String, JSONArray>>> townjr,String key1,String key2,String key3, JSONObject jo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(townjr.containsKey(key1)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, Map<String, JSONArray>> level1= townjr.get(key1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(level1.containsKey(key2)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, JSONArray> level2=level1.get(key2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(level2.containsKey(key3)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    JSONArray jr=level2.get(key3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jr.put(jo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    JSONArray jr=new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    jr.put(jo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    level2.put(key3,jr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map<String, JSONArray> level2=new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONArray jr=new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jr.put(jo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                level2.put(key3,jr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                level1.put(key2,level2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, Map<String, JSONArray>> level1=new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, JSONArray> level2=new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONArray level3=new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            level3.put(jo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private void saveLevel1Org(String wlyyQuotaId, Map<String, Hospital> hospitalsMap, Map<String, List<ETLModel>> orgTeam, Map<String, List<ETLModel>> deleteOrgTeam) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for(Map.Entry<String,Hospital> entry:hospitalsMap.entrySet()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Hospital hospital=entry.getValue(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -864,13 +1048,14 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("date", DateUtil.dateToStrLong(new Date())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("num", num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("orgName", hospital.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("orgCode", hospital.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":2:"+entry.getKey()).toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("name", hospital.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("code", hospital.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":2:"+entry.getKey()).toString()+":0", jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private void saveLevel1Town(String wlyyQuotaId, Map<String, Town> townsMap, Map<String, List<ETLModel>> townTeam, Map<String, List<ETLModel>> deleteTownTeam) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for(Map.Entry<String,Town> entry:townsMap.entrySet()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject jo=new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Integer num=0; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -886,12 +1071,13 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("date", DateUtil.dateToStrLong(new Date())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("num", num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("townName", entry.getValue().getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("townCode", entry.getValue().getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":3:"+entry.getKey()).toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("name", entry.getValue().getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("code", entry.getValue().getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":3:"+entry.getKey()).toString()+":0", jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private void saveLevel1Town(String wlyyQuotaId, Map<String, Town> townsMap, Map<String, List<ETLModel>> townTeam) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray jr=new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for(Map.Entry<String,Town> entry:townsMap.entrySet()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject jo=new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Integer num=0; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -901,10 +1087,17 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("date", DateUtil.dateToStrLong(new Date())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("num", num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("townName", entry.getValue().getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("townCode", entry.getValue().getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":3:"+entry.getKey()).toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("name", entry.getValue().getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("code", entry.getValue().getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jr.put(jo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            StringBuffer key=new StringBuffer("quota:"+wlyyQuotaId+":3:"+entry.getKey()+":"+timeKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            keys.add(key.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            redisTemplate.opsForValue().set(key.toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //保存市下面全部的区 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        StringBuffer key=new StringBuffer("quota:"+wlyyQuotaId+":4:3:"+Constant.city+":"+timeKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        keys.add(key.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        redisTemplate.opsForValue().set(key.toString(), jr.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private void saveLevel1City(String wlyyQuotaId, Map<String, City> cityMap, Map<String, List<ETLModel>> cityTeam, Map<String, List<ETLModel>> deleteCityTeam) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for(Map.Entry<String,City> entry:cityMap.entrySet()){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -922,9 +1115,9 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("date", DateUtil.dateToStrLong(new Date())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("num", num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("cityName", entry.getValue().getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("cityCode", entry.getValue().getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":4:"+entry.getKey()).toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("name", entry.getValue().getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("code", entry.getValue().getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":4:"+entry.getKey()).toString()+":0", jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private void saveLevel1City(String wlyyQuotaId, Map<String, City> cityMap, Map<String, List<ETLModel>> cityTeam) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -937,9 +1130,11 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("date", DateUtil.dateToStrLong(new Date())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("num", num); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("cityName", entry.getValue().getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("cityCode", entry.getValue().getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":4:"+entry.getKey()).toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("name", entry.getValue().getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jo.put("code", entry.getValue().getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            StringBuffer key=new StringBuffer("quota:"+wlyyQuotaId+":4:"+entry.getKey()+":"+timeKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            keys.add(key.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            redisTemplate.opsForValue().set(key.toString(), jo.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String getLevel2Name(String i, Integer type) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -956,9 +1151,25 @@ public class RedisStorage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //用户分组 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return Constant.getLevelGroupName(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            case  4:{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //疾病 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return Constant.getLevelDiseaseName(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            case  5:{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //疾病 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return Constant.getLevelExpenseName(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            default:{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String getOrg(String org){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //if(!"00".equals(org.substring(org.length()-2,org.length()))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(org.length() == 10 && !org.endsWith("00")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return org.substring(0,org.length()-2)+"00"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return org; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |