|  | @ -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,18 +231,22 @@ 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++){
 | 
	
		
			
				|  |  |                 JSONArray jrlevel2=new JSONArray();
 | 
	
		
			
				|  |  |                 //得到每个团队的三级维度
 | 
	
		
			
				|  |  |                 Map<String, List<ETLModel>> threeETLMap=null;
 | 
	
		
			
				|  |  |                 if(twoETLMap!=null){
 | 
	
		
			
				|  |  |                     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 +256,27 @@ 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);
 | 
	
		
			
				|  |  |                     jrlevel2.put(jo);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 StringBuffer sb=new StringBuffer("quota:"+wlyyQuotaId+":"+level1+":"+adminTeamObj.getId()+":"+timeKey);
 | 
	
		
			
				|  |  |                 keys.add(sb.toString());
 | 
	
		
			
				|  |  |                 redisTemplate.opsForValue().set(sb.toString(), jrlevel2.toString());
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             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 +329,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,18 +338,24 @@ 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++){
 | 
	
		
			
				|  |  |                 JSONArray jrlevel2=new JSONArray();
 | 
	
		
			
				|  |  |                 //得到每个团队的三级维度
 | 
	
		
			
				|  |  |                 Map<String, List<ETLModel>> threeETLMap= new HashMap<String, List<ETLModel>>();
 | 
	
		
			
				|  |  |                 if(twoETLMap!=null){
 | 
	
		
			
				|  |  |                     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 +365,25 @@ 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);
 | 
	
		
			
				|  |  |                     jrlevel2.put(jo);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 StringBuffer sb=new StringBuffer("quota:"+wlyyQuotaId+":"+level1+":"+hospital.getCode()+":"+i+":"+timeKey);
 | 
	
		
			
				|  |  |                 keys.add(sb.toString());
 | 
	
		
			
				|  |  |                 redisTemplate.opsForValue().set(sb.toString(), jrlevel2.toString());
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             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 +425,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 +472,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,19 +482,22 @@ 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++){
 | 
	
		
			
				|  |  |                 JSONArray jrlevel2=new JSONArray();
 | 
	
		
			
				|  |  |                 //得到每个团队的三级维度
 | 
	
		
			
				|  |  |                 Map<String, List<ETLModel>> threeETLMap= new HashMap<String, List<ETLModel>>();
 | 
	
		
			
				|  |  |                 if(twoETLMap!=null){
 | 
	
		
			
				|  |  |                     threeETLMap=twoETLMap.get(i+"");
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 for(int j=start3;j<=foreachNum3;j++){
 | 
	
		
			
				|  |  |                     String level1="3";
 | 
	
		
			
				|  |  |                     String level2=i+"";
 | 
	
		
			
				|  |  |                     String level3=j+"";
 | 
	
		
			
				|  |  |                     int num=0;
 | 
	
	
		
			
				|  | @ -472,35 +507,49 @@ 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);
 | 
	
		
			
				|  |  |                     jrlevel2.put(jo);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 StringBuffer sb=new StringBuffer("quota:"+wlyyQuotaId+":"+level1+":"+town.getCode()+":"+i+":"+timeKey);
 | 
	
		
			
				|  |  |                 keys.add(sb.toString());
 | 
	
		
			
				|  |  |                 redisTemplate.opsForValue().set(sb.toString(), jrlevel2.toString());
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             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++){
 | 
	
		
			
				|  |  |                 //得到每个团队的三级维度
 | 
	
		
			
				|  |  |                 JSONArray jrLevel2=new JSONArray();
 | 
	
		
			
				|  |  |                 Map<String, List<ETLModel>> threeETLMap= new HashMap<String, List<ETLModel>>();
 | 
	
		
			
				|  |  |                 if(twoETLMap!=null){
 | 
	
		
			
				|  |  |                     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 +559,26 @@ 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());
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     jrLevel2.put(jo);
 | 
	
		
			
				|  |  |                     jr.put(jo);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 StringBuffer sb=new StringBuffer("quota:"+wlyyQuotaId+":"+level1+":"+cityObj.getCode()+":"+i+":"+timeKey);
 | 
	
		
			
				|  |  |                 keys.add(sb.toString());
 | 
	
		
			
				|  |  |                 redisTemplate.opsForValue().set(sb.toString(), jrLevel2.toString());
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             StringBuffer sb=new StringBuffer("quota:"+wlyyQuotaId+":"+level1+":"+cityObj.getCode()+":"+timeKey);
 | 
	
		
			
				|  |  |             keys.add(sb.toString());
 | 
	
		
			
				|  |  |             redisTemplate.opsForValue().set(sb.toString(), jr.toString());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -554,7 +612,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 +656,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 +666,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 +680,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 +719,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 +729,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 +741,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 +775,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 +812,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 +842,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 +854,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 +866,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 +895,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:"+Constant.city+":1:"+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:"+entry.getKey()+":1:"+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:"+entry.getKey()+":1:"+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 +949,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 +968,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:"+Constant.city+":2:"+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:"+entry.getKey()+":2:"+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 +1069,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 +1092,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());
 | 
	
		
			
				|  |  |             jo.put("name", entry.getValue().getName());
 | 
	
		
			
				|  |  |             jo.put("code", entry.getValue().getCode());
 | 
	
		
			
				|  |  |             redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":3:"+entry.getKey()).toString(), 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 +1108,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+":"+entry.getKey()+":3:"+timeKey);
 | 
	
		
			
				|  |  |             keys.add(key.toString());
 | 
	
		
			
				|  |  |             redisTemplate.opsForValue().set(key.toString(), jo.toString());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //保存市下面全部的区
 | 
	
		
			
				|  |  |         StringBuffer key=new StringBuffer("quota:"+wlyyQuotaId+":4:"+Constant.city+":3:"+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,8 +1136,8 @@ 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());
 | 
	
		
			
				|  |  |             jo.put("name", entry.getValue().getName());
 | 
	
		
			
				|  |  |             jo.put("code", entry.getValue().getCode());
 | 
	
		
			
				|  |  |             redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":4:"+entry.getKey()).toString(), jo.toString());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
	
		
			
				|  | @ -937,9 +1151,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 +1172,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;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | }
 |