|
@ -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.system.Town;
|
|
import com.yihu.wlyy.statistics.model.team.AdminTeam;
|
|
import com.yihu.wlyy.statistics.model.team.AdminTeam;
|
|
import com.yihu.wlyy.statistics.util.DateUtil;
|
|
import com.yihu.wlyy.statistics.util.DateUtil;
|
|
|
|
import org.json.JSONArray;
|
|
import org.json.JSONObject;
|
|
import org.json.JSONObject;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.context.annotation.Scope;
|
|
import org.springframework.context.annotation.Scope;
|
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import springfox.documentation.spring.web.json.Json;
|
|
|
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
|
|
@ -27,6 +29,9 @@ import java.util.*;
|
|
@Component
|
|
@Component
|
|
@Scope("prototype")
|
|
@Scope("prototype")
|
|
public class RedisStorage {
|
|
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, AdminTeam> adminTeamMap = new HashMap<String, AdminTeam>();
|
|
private Map<String, Hospital> hospitalsMap = new HashMap<String, Hospital>();
|
|
private Map<String, Hospital> hospitalsMap = new HashMap<String, Hospital>();
|
|
@ -46,6 +51,7 @@ public class RedisStorage {
|
|
* @throws Exception
|
|
* @throws Exception
|
|
*/
|
|
*/
|
|
public void saveByLevel1(List<Map<String, List<ETLModel>>> data,List<Map<String, List<ETLModel>>> deleteData, String wlyyQuotaId) 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();
|
|
List<AdminTeam> adminTeams=doctorAdminTeamDao.findAllTeam();
|
|
Map<String, AdminTeam> adminTeamMap = new HashMap<String, AdminTeam>();
|
|
Map<String, AdminTeam> adminTeamMap = new HashMap<String, AdminTeam>();
|
|
for (AdminTeam adminTeam : adminTeams) {
|
|
for (AdminTeam adminTeam : adminTeams) {
|
|
@ -74,7 +80,6 @@ public class RedisStorage {
|
|
Map<String, List<ETLModel>> orgTeam=data.get(1);//机构的数据
|
|
Map<String, List<ETLModel>> orgTeam=data.get(1);//机构的数据
|
|
Map<String, List<ETLModel>> townTeam=data.get(2);//区的数据
|
|
Map<String, List<ETLModel>> townTeam=data.get(2);//区的数据
|
|
Map<String, List<ETLModel>> cityTeam=data.get(3);//市的数据
|
|
Map<String, List<ETLModel>> cityTeam=data.get(3);//市的数据
|
|
redisTemplate.opsForValue().set("quota:date",DateUtil.dateToStrLong(new Date()));
|
|
|
|
if(deleteData==null){
|
|
if(deleteData==null){
|
|
//保存市
|
|
//保存市
|
|
saveLevel1City(wlyyQuotaId, cityMap, cityTeam);
|
|
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);
|
|
saveCityTeamDataLevel3(data.get(3),deleteData.get(3),wlyyQuotaId,cityMap,foreachNum2,foreachNum3,type2,type3,start2,start3);
|
|
}else{
|
|
}else{
|
|
|
|
|
|
//保存团队
|
|
//保存团队
|
|
saveAdminTeamDataLevel3(data.get(0),wlyyQuotaId,adminTeamMap,foreachNum2,foreachNum3,type2,type3,start2,start3);
|
|
saveAdminTeamDataLevel3(data.get(0),wlyyQuotaId,adminTeamMap,foreachNum2,foreachNum3,type2,type3,start2,start3);
|
|
//保存机构
|
|
//保存机构
|
|
@ -218,8 +222,8 @@ public class RedisStorage {
|
|
JSONObject jo=new JSONObject();
|
|
JSONObject jo=new JSONObject();
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("num", num);
|
|
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));
|
|
jo.put("name", getLevel3Name(level3,type3));
|
|
redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":"+level1+":"+level2+":"+level3+":"+adminTeamObj.getId()).toString(), jo.toString());
|
|
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) {
|
|
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
|
|
//遍历团队的Map
|
|
for(Map.Entry<String,AdminTeam> oneAdminTeam:adminTeamMap.entrySet()){
|
|
for(Map.Entry<String,AdminTeam> oneAdminTeam:adminTeamMap.entrySet()){
|
|
|
|
JSONArray level2Jr=new JSONArray();
|
|
|
|
AdminTeam adminTeamObj = adminTeamMap.get(oneAdminTeam.getKey());//团队
|
|
|
|
String level1="1";
|
|
//得到每个团队的2级维度
|
|
//得到每个团队的2级维度
|
|
Map<String, Map<String, List<ETLModel>>> twoETLMap= etlModelMap.get(oneAdminTeam.getKey());
|
|
Map<String, Map<String, List<ETLModel>>> twoETLMap= etlModelMap.get(oneAdminTeam.getKey());
|
|
for(int i=start2;i<=foreachNum2;i++){
|
|
for(int i=start2;i<=foreachNum2;i++){
|
|
@ -238,7 +246,6 @@ public class RedisStorage {
|
|
threeETLMap=twoETLMap.get(i+"");
|
|
threeETLMap=twoETLMap.get(i+"");
|
|
}
|
|
}
|
|
for(int j=start3;j<=foreachNum3;j++){
|
|
for(int j=start3;j<=foreachNum3;j++){
|
|
String level1="1";
|
|
|
|
String level2=i+"";
|
|
String level2=i+"";
|
|
String level3=j+"";
|
|
String level3=j+"";
|
|
int num=0;
|
|
int num=0;
|
|
@ -248,17 +255,23 @@ public class RedisStorage {
|
|
num=etlModelList.size();
|
|
num=etlModelList.size();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
AdminTeam adminTeamObj = adminTeamMap.get(oneAdminTeam.getKey());//团队
|
|
|
|
if(adminTeamObj==null)continue;
|
|
if(adminTeamObj==null)continue;
|
|
JSONObject jo=new JSONObject();
|
|
JSONObject jo=new JSONObject();
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("num", num);
|
|
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) {
|
|
private String getLevel3Name(String j, Integer type) {
|
|
@ -311,8 +324,8 @@ public class RedisStorage {
|
|
JSONObject jo=new JSONObject();
|
|
JSONObject jo=new JSONObject();
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("num", num);
|
|
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));
|
|
jo.put("name", getLevel3Name(level3,type3));
|
|
redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":"+level1+":"+level2+":"+level3+":"+hospital.getCode()).toString(), jo.toString());
|
|
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) {
|
|
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
|
|
//遍历团队的Map
|
|
for(Map.Entry<String,Hospital> oneHospital:hospitalMap.entrySet()){
|
|
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级维度
|
|
//得到每个团队的2级维度
|
|
Map<String, Map<String, List<ETLModel>>> twoETLMap= etlModelMap.get(oneHospital.getKey());
|
|
Map<String, Map<String, List<ETLModel>>> twoETLMap= etlModelMap.get(oneHospital.getKey());
|
|
for(int i=start2;i<=foreachNum2;i++){
|
|
for(int i=start2;i<=foreachNum2;i++){
|
|
@ -331,7 +350,6 @@ public class RedisStorage {
|
|
threeETLMap=twoETLMap.get(i+"");
|
|
threeETLMap=twoETLMap.get(i+"");
|
|
}
|
|
}
|
|
for(int j=start3;j<=foreachNum3;j++){
|
|
for(int j=start3;j<=foreachNum3;j++){
|
|
String level1="2";
|
|
|
|
String level2=i+"";
|
|
String level2=i+"";
|
|
String level3=j+"";
|
|
String level3=j+"";
|
|
int num=0;
|
|
int num=0;
|
|
@ -341,17 +359,21 @@ public class RedisStorage {
|
|
num=etlModelList.size();
|
|
num=etlModelList.size();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Hospital hospital = hospitalsMap.get(oneHospital.getKey());
|
|
|
|
if(hospital==null)continue;
|
|
if(hospital==null)continue;
|
|
JSONObject jo=new JSONObject();
|
|
JSONObject jo=new JSONObject();
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("num", num);
|
|
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) {
|
|
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();
|
|
JSONObject jo=new JSONObject();
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("num", num);
|
|
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));
|
|
jo.put("name", getLevel3Name(level3,type3));
|
|
redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":"+level1+":"+level2+":"+level3+":"+town.getCode()).toString(), jo.toString());
|
|
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();
|
|
JSONObject jo=new JSONObject();
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("num", num);
|
|
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));
|
|
jo.put("name", getLevel3Name(level3,type3));
|
|
redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":"+level1+":"+level2+":"+level3+":"+cityObj.getCode()).toString(), jo.toString());
|
|
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) {
|
|
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
|
|
//遍历团队的Map
|
|
for(Map.Entry<String,Town> oneTownTeam:townsMap.entrySet()){
|
|
for(Map.Entry<String,Town> oneTownTeam:townsMap.entrySet()){
|
|
|
|
Town town=townsMap.get(oneTownTeam.getKey());
|
|
|
|
JSONArray jr=new JSONArray();
|
|
|
|
String level1="3";
|
|
//得到每个团队的2级维度
|
|
//得到每个团队的2级维度
|
|
Map<String, Map<String, List<ETLModel>>> twoETLMap= etlModelMap.get(oneTownTeam.getKey());
|
|
Map<String, Map<String, List<ETLModel>>> twoETLMap= etlModelMap.get(oneTownTeam.getKey());
|
|
for(int i=start2;i<=foreachNum2;i++){
|
|
for(int i=start2;i<=foreachNum2;i++){
|
|
@ -462,7 +487,6 @@ public class RedisStorage {
|
|
threeETLMap=twoETLMap.get(i+"");
|
|
threeETLMap=twoETLMap.get(i+"");
|
|
}
|
|
}
|
|
for(int j=start3;j<=foreachNum3;j++){
|
|
for(int j=start3;j<=foreachNum3;j++){
|
|
String level1="3";
|
|
|
|
String level2=i+"";
|
|
String level2=i+"";
|
|
String level3=j+"";
|
|
String level3=j+"";
|
|
int num=0;
|
|
int num=0;
|
|
@ -472,24 +496,34 @@ public class RedisStorage {
|
|
num=etlModelList.size();
|
|
num=etlModelList.size();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Town town=townsMap.get(oneTownTeam.getKey());
|
|
|
|
if(town==null)continue;
|
|
if(town==null)continue;
|
|
JSONObject jo=new JSONObject();
|
|
JSONObject jo=new JSONObject();
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("num", num);
|
|
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) {
|
|
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
|
|
//遍历团队的Map
|
|
for(Map.Entry<String,City> oneCityTeam:cityMap.entrySet()){
|
|
for(Map.Entry<String,City> oneCityTeam:cityMap.entrySet()){
|
|
|
|
City cityObj=oneCityTeam.getValue();
|
|
|
|
JSONArray jr=new JSONArray();
|
|
|
|
String level1="4";
|
|
//得到每个团队的2级维度
|
|
//得到每个团队的2级维度
|
|
Map<String, Map<String, List<ETLModel>>> twoETLMap= etlModelMap.get(oneCityTeam.getKey());
|
|
Map<String, Map<String, List<ETLModel>>> twoETLMap= etlModelMap.get(oneCityTeam.getKey());
|
|
for(int i=start2;i<=foreachNum2;i++){
|
|
for(int i=start2;i<=foreachNum2;i++){
|
|
@ -499,8 +533,6 @@ public class RedisStorage {
|
|
threeETLMap=twoETLMap.get(i+"");
|
|
threeETLMap=twoETLMap.get(i+"");
|
|
}
|
|
}
|
|
for(int j=start3;j<=foreachNum3;j++){
|
|
for(int j=start3;j<=foreachNum3;j++){
|
|
|
|
|
|
String level1="4";
|
|
|
|
String level2=i+"";
|
|
String level2=i+"";
|
|
String level3=j+"";
|
|
String level3=j+"";
|
|
int num=0;
|
|
int num=0;
|
|
@ -510,17 +542,22 @@ public class RedisStorage {
|
|
num=etlModelList.size();
|
|
num=etlModelList.size();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
City cityObj=oneCityTeam.getValue();
|
|
|
|
JSONObject jo=new JSONObject();
|
|
JSONObject jo=new JSONObject();
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("num", num);
|
|
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>>> townTeam=data.get(2);//区的数据
|
|
Map<String, Map<String, List<ETLModel>>> cityTeam=data.get(3);//市的数据
|
|
Map<String, Map<String, List<ETLModel>>> cityTeam=data.get(3);//市的数据
|
|
|
|
|
|
redisTemplate.opsForValue().set("quota:date",DateUtil.dateToStrLong(new Date()));
|
|
|
|
if(deleteData!=null){
|
|
if(deleteData!=null){
|
|
//保存市
|
|
//保存市
|
|
saveLevel2City(wlyyQuotaId, cityMap, cityTeam,deleteData.get(3),foreachNum,type,start);
|
|
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("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("num", num);
|
|
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+"";
|
|
String key=i+"";
|
|
jo.put("name", getLevel2Name(key,type));
|
|
|
|
redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":1:"+key+":"+adminTeam.getKey()).toString(), jo.toString());
|
|
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) {
|
|
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()){
|
|
for(Map.Entry<String,AdminTeam> adminTeam:adminTeamMap.entrySet()){
|
|
Map<String, List<ETLModel>> oneELTMap= eltModel.get(adminTeam.getKey());
|
|
Map<String, List<ETLModel>> oneELTMap= eltModel.get(adminTeam.getKey());
|
|
|
|
JSONArray level2=new JSONArray();
|
|
for(int i=start;i<=foreachNum;i++){
|
|
for(int i=start;i<=foreachNum;i++){
|
|
AdminTeam adminTeamObj=adminTeam.getValue();
|
|
AdminTeam adminTeamObj=adminTeam.getValue();
|
|
if(adminTeamObj==null)continue;
|
|
if(adminTeamObj==null)continue;
|
|
@ -623,12 +659,20 @@ public class RedisStorage {
|
|
}
|
|
}
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("num", num);
|
|
jo.put("num", num);
|
|
jo.put("teamName", adminTeamObj.getName());
|
|
|
|
jo.put("teamId", adminTeamObj.getId());
|
|
|
|
String key=i+"";
|
|
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) {
|
|
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("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("num", num);
|
|
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+"";
|
|
String key=i+"";
|
|
jo.put("name", getLevel2Name(key,type));
|
|
|
|
redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":2:"+key+":"+hospital.getKey()).toString(), jo.toString());
|
|
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) {
|
|
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()){
|
|
for(Map.Entry<String,Town> town:townsMap.entrySet()){
|
|
Map<String, List<ETLModel>> oneELTMap= eltModel.get(town.getKey());
|
|
Map<String, List<ETLModel>> oneELTMap= eltModel.get(town.getKey());
|
|
|
|
JSONArray level2=new JSONArray();
|
|
for(int i=1;i<=foreachNum;i++){
|
|
for(int i=1;i<=foreachNum;i++){
|
|
JSONObject jo=new JSONObject();
|
|
JSONObject jo=new JSONObject();
|
|
int num=0;
|
|
int num=0;
|
|
@ -676,17 +720,27 @@ public class RedisStorage {
|
|
}
|
|
}
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("num", num);
|
|
jo.put("num", num);
|
|
jo.put("townName", town.getValue().getName());
|
|
|
|
jo.put("townCode", town.getValue().getCode());
|
|
|
|
String key=i+"";
|
|
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) {
|
|
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()){
|
|
for(Map.Entry<String,Hospital> hospital:hospitalsMap.entrySet()){
|
|
Map<String, List<ETLModel>> oneELTMap= eltModel.get(hospital.getKey());
|
|
Map<String, List<ETLModel>> oneELTMap= eltModel.get(hospital.getKey());
|
|
|
|
JSONArray level2=new JSONArray();
|
|
for(int i=start;i<=foreachNum;i++){
|
|
for(int i=start;i<=foreachNum;i++){
|
|
Hospital hospitalObj=hospital.getValue();
|
|
Hospital hospitalObj=hospital.getValue();
|
|
if(hospitalObj==null)continue;
|
|
if(hospitalObj==null)continue;
|
|
@ -700,12 +754,20 @@ public class RedisStorage {
|
|
}
|
|
}
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("num", num);
|
|
jo.put("num", num);
|
|
jo.put("orgName", hospitalObj.getName());
|
|
|
|
jo.put("orgCode", hospitalObj.getCode());
|
|
|
|
String key=i+"";
|
|
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) {
|
|
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("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("num", num);
|
|
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+"";
|
|
String key=i+"";
|
|
jo.put("name", getLevel2Name(key,type));
|
|
jo.put("name", getLevel2Name(key,type));
|
|
redisTemplate.opsForValue().set(new StringBuffer("quota:"+wlyyQuotaId+":3:"+key+":"+town.getKey()).toString(), jo.toString());
|
|
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("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("num", num);
|
|
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+"";
|
|
String key=i+"";
|
|
jo.put("name", getLevel2Name(key,type));
|
|
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());
|
|
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) {
|
|
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()){
|
|
for(Map.Entry<String,City> city:cityMap.entrySet()){
|
|
Map<String, List<ETLModel>> oneELTMap= eltModel.get(city.getKey());
|
|
Map<String, List<ETLModel>> oneELTMap= eltModel.get(city.getKey());
|
|
|
|
JSONArray level2=new JSONArray();
|
|
for(int i=start;i<=foreachNum;i++){
|
|
for(int i=start;i<=foreachNum;i++){
|
|
JSONObject jo=new JSONObject();
|
|
JSONObject jo=new JSONObject();
|
|
int num=0;
|
|
int num=0;
|
|
@ -781,15 +845,24 @@ public class RedisStorage {
|
|
}
|
|
}
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("num", num);
|
|
jo.put("num", num);
|
|
jo.put("cityName", city.getValue().getName());
|
|
|
|
jo.put("cityCode", city.getValue().getCode());
|
|
|
|
String key=i+"";
|
|
String key=i+"";
|
|
|
|
jo.put("code", key);
|
|
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());
|
|
|
|
|
|
|
|
|
|
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) {
|
|
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()){
|
|
for(Map.Entry<String,AdminTeam> entry:adminTeamMap.entrySet()){
|
|
JSONObject jo=new JSONObject();
|
|
JSONObject jo=new JSONObject();
|
|
Integer num=0;
|
|
Integer num=0;
|
|
@ -801,10 +874,41 @@ public class RedisStorage {
|
|
}
|
|
}
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("num", num);
|
|
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) {
|
|
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()){
|
|
for(Map.Entry<String,AdminTeam> entry:adminTeamMap.entrySet()){
|
|
@ -824,12 +928,14 @@ public class RedisStorage {
|
|
}
|
|
}
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("num", num);
|
|
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) {
|
|
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()){
|
|
for(Map.Entry<String,Hospital> entry:hospitalsMap.entrySet()){
|
|
Hospital hospital=entry.getValue();
|
|
Hospital hospital=entry.getValue();
|
|
if(hospital==null)continue;
|
|
if(hospital==null)continue;
|
|
@ -841,11 +947,89 @@ public class RedisStorage {
|
|
}
|
|
}
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("num", num);
|
|
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) {
|
|
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()){
|
|
for(Map.Entry<String,Hospital> entry:hospitalsMap.entrySet()){
|
|
Hospital hospital=entry.getValue();
|
|
Hospital hospital=entry.getValue();
|
|
@ -864,13 +1048,14 @@ public class RedisStorage {
|
|
}
|
|
}
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("num", num);
|
|
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) {
|
|
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()){
|
|
for(Map.Entry<String,Town> entry:townsMap.entrySet()){
|
|
JSONObject jo=new JSONObject();
|
|
JSONObject jo=new JSONObject();
|
|
Integer num=0;
|
|
Integer num=0;
|
|
@ -886,12 +1071,13 @@ public class RedisStorage {
|
|
}
|
|
}
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("num", num);
|
|
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) {
|
|
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()){
|
|
for(Map.Entry<String,Town> entry:townsMap.entrySet()){
|
|
JSONObject jo=new JSONObject();
|
|
JSONObject jo=new JSONObject();
|
|
Integer num=0;
|
|
Integer num=0;
|
|
@ -901,10 +1087,17 @@ public class RedisStorage {
|
|
}
|
|
}
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("num", num);
|
|
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) {
|
|
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()){
|
|
for(Map.Entry<String,City> entry:cityMap.entrySet()){
|
|
@ -922,9 +1115,9 @@ public class RedisStorage {
|
|
}
|
|
}
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("num", num);
|
|
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) {
|
|
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("date", DateUtil.dateToStrLong(new Date()));
|
|
jo.put("num", num);
|
|
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) {
|
|
private String getLevel2Name(String i, Integer type) {
|
|
@ -956,9 +1151,25 @@ public class RedisStorage {
|
|
//用户分组
|
|
//用户分组
|
|
return Constant.getLevelGroupName(i);
|
|
return Constant.getLevelGroupName(i);
|
|
}
|
|
}
|
|
|
|
case 4:{
|
|
|
|
//疾病
|
|
|
|
return Constant.getLevelDiseaseName(i);
|
|
|
|
}
|
|
|
|
case 5:{
|
|
|
|
//疾病
|
|
|
|
return Constant.getLevelExpenseName(i);
|
|
|
|
}
|
|
default:{
|
|
default:{
|
|
return "";
|
|
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;
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|