|  | @ -11,6 +11,7 @@ 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.apache.logging.log4j.message.StringFormattedMessage;
 | 
	
		
			
				|  |  | import org.json.JSONArray;
 | 
	
		
			
				|  |  | import org.json.JSONObject;
 | 
	
		
			
				|  |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
	
	
		
			
				|  | @ -53,19 +54,19 @@ public class RedisStorage {
 | 
	
		
			
				|  |  |     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>();
 | 
	
		
			
				|  |  |         adminTeamMap = new HashMap<String, AdminTeam>();
 | 
	
		
			
				|  |  |         for (AdminTeam adminTeam : adminTeams) {
 | 
	
		
			
				|  |  |             adminTeamMap.put(adminTeam.getId()+"", adminTeam);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //查找出系统全部的机构
 | 
	
		
			
				|  |  |         List<Hospital> hospitals = hospitalDao.findHospitalzxFWZ();
 | 
	
		
			
				|  |  |          Map<String, Hospital> hospitalsMap = new HashMap<String, Hospital>();
 | 
	
		
			
				|  |  |         hospitalsMap = new HashMap<String, Hospital>();
 | 
	
		
			
				|  |  |         for (Hospital hospital : hospitals) {
 | 
	
		
			
				|  |  |             hospitalsMap.put(hospital.getCode(), hospital);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //查找出厦门市全部的区
 | 
	
		
			
				|  |  |         List<Town> towns = townDao.findByCityCode(Constant.city);
 | 
	
		
			
				|  |  |         Map<String, Town> townsMap = new HashMap<String, Town>();
 | 
	
		
			
				|  |  |         townsMap = new HashMap<String, Town>();
 | 
	
		
			
				|  |  |         for (Town town : towns) {
 | 
	
		
			
				|  |  |             townsMap.put(town.getCode(), town);
 | 
	
		
			
				|  |  |         }
 | 
	
	
		
			
				|  | @ -90,14 +91,14 @@ public class RedisStorage {
 | 
	
		
			
				|  |  |             //保存全科团队
 | 
	
		
			
				|  |  |             saveLevel1Team(wlyyQuotaId,adminTeamMap, adminTeam);
 | 
	
		
			
				|  |  |         }else{
 | 
	
		
			
				|  |  |             //保存市
 | 
	
		
			
				|  |  |             saveLevel1City(wlyyQuotaId, cityMap, cityTeam,deleteData.get(3));
 | 
	
		
			
				|  |  |             //保存区
 | 
	
		
			
				|  |  |             saveLevel1Town(wlyyQuotaId, townsMap, townTeam,deleteData.get(2));
 | 
	
		
			
				|  |  |             //保存机构
 | 
	
		
			
				|  |  |             saveLevel1Org(wlyyQuotaId, hospitalsMap, orgTeam,deleteData.get(1));
 | 
	
		
			
				|  |  |             //保存全科团队
 | 
	
		
			
				|  |  |             saveLevel1Team(wlyyQuotaId,adminTeamMap, adminTeam,deleteData.get(0));
 | 
	
		
			
				|  |  | //            //保存市
 | 
	
		
			
				|  |  | //            saveLevel1City(wlyyQuotaId, cityMap, cityTeam,deleteData.get(3));
 | 
	
		
			
				|  |  | //            //保存区
 | 
	
		
			
				|  |  | //            saveLevel1Town(wlyyQuotaId, townsMap, townTeam,deleteData.get(2));
 | 
	
		
			
				|  |  | //            //保存机构
 | 
	
		
			
				|  |  | //            saveLevel1Org(wlyyQuotaId, hospitalsMap, orgTeam,deleteData.get(1));
 | 
	
		
			
				|  |  | //            //保存全科团队
 | 
	
		
			
				|  |  | //            saveLevel1Team(wlyyQuotaId,adminTeamMap, adminTeam,deleteData.get(0));
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -584,19 +585,19 @@ public class RedisStorage {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private void saveByLevel2Public(List<Map<String, Map<String, List<ETLModel>>>> data,List<Map<String, Map<String, List<ETLModel>>>> deleteData, String wlyyQuotaId, Integer foreachNum, Integer type, Integer start) {
 | 
	
		
			
				|  |  |         List<AdminTeam> adminTeams=doctorAdminTeamDao.findAllTeam();
 | 
	
		
			
				|  |  |         Map<String, AdminTeam> adminTeamMap = new HashMap<String, AdminTeam>();
 | 
	
		
			
				|  |  |         adminTeamMap = new HashMap<String, AdminTeam>();
 | 
	
		
			
				|  |  |         for (AdminTeam adminTeam : adminTeams) {
 | 
	
		
			
				|  |  |             adminTeamMap.put(adminTeam.getId()+"", adminTeam);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //查找出系统全部的机构
 | 
	
		
			
				|  |  |         List<Hospital> hospitals = hospitalDao.findHospitalzxFWZ();
 | 
	
		
			
				|  |  |         Map<String, Hospital> hospitalsMap = new HashMap<String, Hospital>();
 | 
	
		
			
				|  |  |         hospitalsMap = new HashMap<String, Hospital>();
 | 
	
		
			
				|  |  |         for (Hospital hospital : hospitals) {
 | 
	
		
			
				|  |  |             hospitalsMap.put(hospital.getCode(), hospital);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //查找出厦门市全部的区
 | 
	
		
			
				|  |  |         List<Town> towns = townDao.findByCityCode(Constant.city);
 | 
	
		
			
				|  |  |         Map<String, Town> townsMap = new HashMap<String, Town>();
 | 
	
		
			
				|  |  |          townsMap = new HashMap<String, Town>();
 | 
	
		
			
				|  |  |         for (Town town : towns) {
 | 
	
		
			
				|  |  |             townsMap.put(town.getCode(), town);
 | 
	
		
			
				|  |  |         }
 | 
	
	
		
			
				|  | @ -613,14 +614,14 @@ public class RedisStorage {
 | 
	
		
			
				|  |  |         Map<String, Map<String, List<ETLModel>>> cityTeam=data.get(3);//市的数据
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if(deleteData!=null){
 | 
	
		
			
				|  |  |             //保存市
 | 
	
		
			
				|  |  |             saveLevel2City(wlyyQuotaId, cityMap, cityTeam,deleteData.get(3),foreachNum,type,start);
 | 
	
		
			
				|  |  |             //保存区
 | 
	
		
			
				|  |  |             saveLevel2Town(wlyyQuotaId, townsMap, townTeam,deleteData.get(2),foreachNum,type,start);
 | 
	
		
			
				|  |  |             //保存机构
 | 
	
		
			
				|  |  |             saveLevel2Org(wlyyQuotaId, hospitalsMap, orgTeam,deleteData.get(1),foreachNum,type,start);
 | 
	
		
			
				|  |  |             //保存全科团队
 | 
	
		
			
				|  |  |             saveLevel2Team(wlyyQuotaId, adminTeamMap, adminTeam,deleteData.get(0),foreachNum,type,start);
 | 
	
		
			
				|  |  | //            //保存市
 | 
	
		
			
				|  |  | //            saveLevel2City(wlyyQuotaId, cityMap, cityTeam,deleteData.get(3),foreachNum,type,start);
 | 
	
		
			
				|  |  | //            //保存区
 | 
	
		
			
				|  |  | //            saveLevel2Town(wlyyQuotaId, townsMap, townTeam,deleteData.get(2),foreachNum,type,start);
 | 
	
		
			
				|  |  | //            //保存机构
 | 
	
		
			
				|  |  | //            saveLevel2Org(wlyyQuotaId, hospitalsMap, orgTeam,deleteData.get(1),foreachNum,type,start);
 | 
	
		
			
				|  |  | //            //保存全科团队
 | 
	
		
			
				|  |  | //            saveLevel2Team(wlyyQuotaId, adminTeamMap, adminTeam,deleteData.get(0),foreachNum,type,start);
 | 
	
		
			
				|  |  |         }else{
 | 
	
		
			
				|  |  |             //保存市
 | 
	
		
			
				|  |  |             saveLevel2City(wlyyQuotaId, cityMap, cityTeam,foreachNum,type,start);
 | 
	
	
		
			
				|  | @ -922,14 +923,12 @@ public class RedisStorage {
 | 
	
		
			
				|  |  |             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()){
 | 
	
	
		
			
				|  | @ -990,7 +989,6 @@ public class RedisStorage {
 | 
	
		
			
				|  |  |             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) {
 | 
	
	
		
			
				|  | @ -1111,7 +1109,7 @@ public class RedisStorage {
 | 
	
		
			
				|  |  |             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);
 | 
	
		
			
				|  |  |             StringBuffer key=new StringBuffer("quota:"+wlyyQuotaId+":3:"+entry.getKey()+":"+timeKey);
 | 
	
		
			
				|  |  |             keys.add(key.toString());
 | 
	
		
			
				|  |  |             redisTemplate.opsForValue().set(key.toString(), jo.toString());
 | 
	
		
			
				|  |  |         }
 | 
	
	
		
			
				|  | @ -1121,6 +1119,7 @@ public class RedisStorage {
 | 
	
		
			
				|  |  |         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) {
 | 
	
		
			
				|  |  |         JSONArray jr=new JSONArray();
 | 
	
		
			
				|  |  |         for(Map.Entry<String,City> entry:cityMap.entrySet()){
 | 
	
		
			
				|  |  |             JSONObject jo=new JSONObject();
 | 
	
		
			
				|  |  |             Integer num=0;
 | 
	
	
		
			
				|  | @ -1138,8 +1137,11 @@ public class RedisStorage {
 | 
	
		
			
				|  |  |             jo.put("num", num);
 | 
	
		
			
				|  |  |             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());
 | 
	
		
			
				|  |  |             jr.put(jo);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         StringBuffer key=new StringBuffer("quota:"+wlyyQuotaId+":4:"+Constant.city+":");
 | 
	
		
			
				|  |  |         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) {
 | 
	
		
			
				|  |  |         for(Map.Entry<String,City> entry:cityMap.entrySet()){
 | 
	
	
		
			
				|  | @ -1153,10 +1155,11 @@ public class RedisStorage {
 | 
	
		
			
				|  |  |             jo.put("num", num);
 | 
	
		
			
				|  |  |             jo.put("name", entry.getValue().getName());
 | 
	
		
			
				|  |  |             jo.put("code", entry.getValue().getCode());
 | 
	
		
			
				|  |  |             StringBuffer key=new StringBuffer("quota:"+wlyyQuotaId+":4:"+entry.getKey()+":"+timeKey);
 | 
	
		
			
				|  |  |             StringBuffer key=new StringBuffer("quota:"+wlyyQuotaId+":4:"+Constant.city+":"+timeKey);
 | 
	
		
			
				|  |  |             keys.add(key.toString());
 | 
	
		
			
				|  |  |             redisTemplate.opsForValue().set(key.toString(), jo.toString());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     private String getLevel2Name(String i, Integer type) {
 | 
	
		
			
				|  |  |         switch (type){
 | 
	
	
		
			
				|  | @ -1178,7 +1181,7 @@ public class RedisStorage {
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             case  5:{
 | 
	
		
			
				|  |  |                 //疾病
 | 
	
		
			
				|  |  |                 return Constant.getLevelExpenseName(i);
 | 
	
		
			
				|  |  |                 return Constant.getlevelHealthFbName(i);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             default:{
 | 
	
		
			
				|  |  |                 return "";
 |