|  | @ -12,32 +12,25 @@ import com.yihu.wlyy.statistics.model.consult.ConsultTeam;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.statistics.model.consult.ConsultTeamDto;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.statistics.model.hosptial.Hospital;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.statistics.model.job.QuartzJobLog;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.statistics.model.label.SignPatientLabelInfo;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.statistics.model.patient.Patient;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.statistics.model.patient.PatientHealthGuidance;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.statistics.model.patient.PatientReservation;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.statistics.model.signfamily.SignFamily;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.statistics.model.system.Town;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.statistics.model.team.AdminTeam;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.statistics.util.DateUtil;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.statistics.util.IdCardUtil;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.statistics.util.JsonUtil;
 | 
	
		
			
				|  |  | import com.yihu.wlyy.statistics.util.SpringUtil;
 | 
	
		
			
				|  |  | import org.apache.commons.collections.map.HashedMap;
 | 
	
		
			
				|  |  | import org.json.JSONArray;
 | 
	
		
			
				|  |  | import org.json.JSONObject;
 | 
	
		
			
				|  |  | import org.quartz.DisallowConcurrentExecution;
 | 
	
		
			
				|  |  | import org.quartz.Job;
 | 
	
		
			
				|  |  | import org.quartz.JobExecutionContext;
 | 
	
		
			
				|  |  | import org.quartz.JobExecutionException;
 | 
	
		
			
				|  |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | import org.springframework.beans.factory.annotation.Qualifier;
 | 
	
		
			
				|  |  | import org.springframework.beans.factory.annotation.Value;
 | 
	
		
			
				|  |  | import org.springframework.context.annotation.Scope;
 | 
	
		
			
				|  |  | import org.springframework.data.redis.core.StringRedisTemplate;
 | 
	
		
			
				|  |  | import org.springframework.jdbc.core.BeanPropertyRowMapper;
 | 
	
		
			
				|  |  | import org.springframework.jdbc.core.JdbcTemplate;
 | 
	
		
			
				|  |  | import org.springframework.jdbc.support.nativejdbc.OracleJdbc4NativeJdbcExtractor;
 | 
	
		
			
				|  |  | import org.springframework.stereotype.Component;
 | 
	
		
			
				|  |  | import org.springframework.util.StringUtils;
 | 
	
		
			
				|  |  | import org.springframework.web.context.support.SpringBeanAutowiringSupport;
 | 
	
	
		
			
				|  | @ -77,27 +70,27 @@ public class CurrentDayAllQuotaJob implements Job {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     List<Town> towns = null;//厦门市全部的区
 | 
	
		
			
				|  |  |     List<Hospital> hospitals = null;//系统全部的机构
 | 
	
		
			
				|  |  |     List<AdminTeam> adminTeams=null;//系统全部的团队
 | 
	
		
			
				|  |  |     List<AdminTeam> adminTeams = null;//系统全部的团队
 | 
	
		
			
				|  |  |     Map<String, Hospital> hospitalsMap = new HashMap<String, Hospital>();
 | 
	
		
			
				|  |  |     Map<String, Town> townsMap = new HashMap<String, Town>();
 | 
	
		
			
				|  |  |     Map<String, AdminTeam> adminTeamMap = new HashMap<String, AdminTeam>();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private String now = getDayString(-1)+ Constant.quota_date_last;
 | 
	
		
			
				|  |  |     private String now = getDayString(-1) + Constant.quota_date_last;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private String tomorrow = getDayString(1);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private StringBuffer allContent=new StringBuffer();//日志内容
 | 
	
		
			
				|  |  |     private StringBuffer allContent = new StringBuffer();//日志内容
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private StringRedisTemplate redisTemplate;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Value("${redis.quota.current.expire}")
 | 
	
		
			
				|  |  |     String currentExpire="2";
 | 
	
		
			
				|  |  |     String currentExpire = "2";
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     //im库的jdbcTemplate
 | 
	
		
			
				|  |  |     private JdbcTemplate imjdbcTemplate;
 | 
	
		
			
				|  |  |     @Resource(name="imData")
 | 
	
		
			
				|  |  |     @Resource(name = "imData")
 | 
	
		
			
				|  |  |     private DataSource dataSource;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Override
 | 
	
	
		
			
				|  | @ -114,7 +107,7 @@ public class CurrentDayAllQuotaJob implements Job {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             towns = townDao.findByCityCode(Constant.city); //查找出厦门市全部的区
 | 
	
		
			
				|  |  |             hospitals = hospitalDao.findHospitalzxFWZ(); //查找出系统全部的机构
 | 
	
		
			
				|  |  |             adminTeams=doctorAdminTeamDao.findAllTeam();//查找出系统全部的全科医生
 | 
	
		
			
				|  |  |             adminTeams = doctorAdminTeamDao.findAllTeam();//查找出系统全部的全科医生
 | 
	
		
			
				|  |  |             for (Hospital hospital : hospitals) {
 | 
	
		
			
				|  |  |                 hospitalsMap.put(hospital.getCode(), hospital);
 | 
	
		
			
				|  |  |             }
 | 
	
	
		
			
				|  | @ -122,7 +115,7 @@ public class CurrentDayAllQuotaJob implements Job {
 | 
	
		
			
				|  |  |                 townsMap.put(town.getCode(), town);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             for (AdminTeam adminTeam : adminTeams) {
 | 
	
		
			
				|  |  |                 adminTeamMap.put(adminTeam.getId()+"", adminTeam);
 | 
	
		
			
				|  |  |                 adminTeamMap.put(adminTeam.getId() + "", adminTeam);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             //清空缓存
 | 
	
		
			
				|  |  |             CachePool.cleanAllCache();
 | 
	
	
		
			
				|  | @ -130,16 +123,15 @@ public class CurrentDayAllQuotaJob implements Job {
 | 
	
		
			
				|  |  |             computequota();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             //延迟上一次key的生命周期
 | 
	
		
			
				|  |  |             if(CachePool.getKeys()!=null&&CachePool.getKeys().size()>0){
 | 
	
		
			
				|  |  |                 for (String key :CachePool.getKeys()){
 | 
	
		
			
				|  |  |             if (CachePool.getKeys() != null && CachePool.getKeys().size() > 0) {
 | 
	
		
			
				|  |  |                 for (String key : CachePool.getKeys()) {
 | 
	
		
			
				|  |  |                     redisTemplate.expire(key, Integer.valueOf(currentExpire), TimeUnit.HOURS);//2小时过期
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             //如果出錯立即重新執行
 | 
	
		
			
				|  |  |             JobExecutionException e2 =new JobExecutionException(e);
 | 
	
		
			
				|  |  |             JobExecutionException e2 = new JobExecutionException(e);
 | 
	
		
			
				|  |  |             e2.setRefireImmediately(true);
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |         }
 | 
	
	
		
			
				|  | @ -148,32 +140,32 @@ public class CurrentDayAllQuotaJob implements Job {
 | 
	
		
			
				|  |  |     //统计
 | 
	
		
			
				|  |  |     private void computequota() throws Exception {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         RedisStorage.timeKey=new Date().getTime()+"";
 | 
	
		
			
				|  |  |         RedisStorage.timeKey = new Date().getTime() + "";
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         QuartzJobLog quartzJobLog =new QuartzJobLog();
 | 
	
		
			
				|  |  |         QuartzJobLog quartzJobLog = new QuartzJobLog();
 | 
	
		
			
				|  |  |         quartzJobLog.setJobStartTime(new Date());
 | 
	
		
			
				|  |  |         allContent=new StringBuffer();
 | 
	
		
			
				|  |  |         allContent = new StringBuffer();
 | 
	
		
			
				|  |  |         //找出今天的签约信息 yesterday,now
 | 
	
		
			
				|  |  |         String sql=" select id,code,idcard,hospital,admin_team_code,expenses_status,patient from wlyy_sign_family a where  a.type =2 and status in (1,2) and  a.expenses_time< '"+tomorrow+"' and a.expenses_status=1 ";
 | 
	
		
			
				|  |  |         String sqlCount=" select count(id) from wlyy_sign_family a where  a.type =2 and status in (1,2) and  a.expenses_time< '"+tomorrow+"' and a.expenses_status=1 ";
 | 
	
		
			
				|  |  |         String sql = " select id,code,idcard,hospital,admin_team_code,expenses_status,patient from wlyy_sign_family a where  a.type =2 and status in (1,2) and  a.expenses_time< '" + tomorrow + "' and a.expenses_status=1 ";
 | 
	
		
			
				|  |  |         String sqlCount = " select count(id) from wlyy_sign_family a where  a.type =2 and status in (1,2) and  a.expenses_time< '" + tomorrow + "' and a.expenses_status=1 ";
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //抽取數據
 | 
	
		
			
				|  |  |         List<SignFamily> signFamilies= SpringUtil.getBean(DBExtract.class).extractByPage(SignFamily.class,sql,sqlCount,true);
 | 
	
		
			
				|  |  |         computequota_1(sql,signFamilies,null); //统计今天的签约
 | 
	
		
			
				|  |  |         List<SignFamily> signFamilies = SpringUtil.getBean(DBExtract.class).extractByPage(SignFamily.class, sql, sqlCount, true);
 | 
	
		
			
				|  |  |         computequota_1(sql, signFamilies, null); //统计今天的签约
 | 
	
		
			
				|  |  |         computequota_2(); //统计今天的解约
 | 
	
		
			
				|  |  |         computequota_3(); //统计今天的健康咨询量
 | 
	
		
			
				|  |  |         computequota_4(); //统计今天的随访量
 | 
	
		
			
				|  |  |         computequota_5(); //统计今天的健康指导
 | 
	
		
			
				|  |  |         computequota_6(sql,signFamilies,null); //统计今天的签约患者性别
 | 
	
		
			
				|  |  |         computequota_7(sql,signFamilies,null);//统计今天的签约患者分组
 | 
	
		
			
				|  |  |         computequota_8(sql,signFamilies,null);//统计今天的签约患者年龄
 | 
	
		
			
				|  |  |         computequota_6(sql, signFamilies, null); //统计今天的签约患者性别
 | 
	
		
			
				|  |  |         computequota_7(sql, signFamilies, null);//统计今天的签约患者分组
 | 
	
		
			
				|  |  |         computequota_8(sql, signFamilies, null);//统计今天的签约患者年龄
 | 
	
		
			
				|  |  |         computequota_9();//统计今天的待签约
 | 
	
		
			
				|  |  |         computequota_10();//统计今天的改签
 | 
	
		
			
				|  |  |         computequota_12(sql,signFamilies,null);//统计今天的签约下按年龄分组后再
 | 
	
		
			
				|  |  |         computequota_13(sql,signFamilies,null);//统计今天的签约量
 | 
	
		
			
				|  |  |         computequota_16_1(sql,signFamilies,null);//统计今天的签约数的扣费钱
 | 
	
		
			
				|  |  |         computequota_15(sql,signFamilies,null);//统计今天的健康分布统计
 | 
	
		
			
				|  |  |         computequota_17(sql,signFamilies,null);//统计今天的年龄疾病
 | 
	
		
			
				|  |  |         computequota_12(sql, signFamilies, null);//统计今天的签约下按年龄分组后再
 | 
	
		
			
				|  |  |         computequota_13(sql, signFamilies, null);//统计今天的签约量
 | 
	
		
			
				|  |  |         computequota_16_1(sql, signFamilies, null);//统计今天的签约数的扣费钱
 | 
	
		
			
				|  |  |         computequota_15(sql, signFamilies, null);//统计今天的健康分布统计
 | 
	
		
			
				|  |  |         computequota_17(sql, signFamilies, null);//统计今天的年龄疾病
 | 
	
		
			
				|  |  |         computequota_20();//统计今天的已经签约患者绑定设备
 | 
	
		
			
				|  |  |         computequota_21();//统计今天的已经签约微信关注人数
 | 
	
		
			
				|  |  |         computequota_22();//未回复的咨询量
 | 
	
	
		
			
				|  | @ -193,141 +185,190 @@ public class CurrentDayAllQuotaJob implements Job {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         initCurrentExpire();//初始化生命周期
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         for (String key :RedisStorage.keys){
 | 
	
		
			
				|  |  |         for (String key : RedisStorage.keys) {
 | 
	
		
			
				|  |  |             redisTemplate.expire(key, Integer.valueOf(currentExpire), TimeUnit.HOURS);//2小时过期
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         CachePool.addKeys(RedisStorage.keys);//缓存key
 | 
	
		
			
				|  |  |         RedisStorage.keys.clear();//清空Key
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //更新统计时间
 | 
	
		
			
				|  |  |         redisTemplate.opsForValue().set("quota:date",DateUtil.dateToStrLong(new Date()));
 | 
	
		
			
				|  |  |         redisTemplate.opsForValue().set("quota:date", DateUtil.dateToStrLong(new Date()));
 | 
	
		
			
				|  |  |         //更新时间key
 | 
	
		
			
				|  |  |         redisTemplate.opsForValue().set("quota:timeKey",RedisStorage.timeKey);
 | 
	
		
			
				|  |  |         redisTemplate.opsForValue().set("quota:timeKey", RedisStorage.timeKey);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private void computequota_22() {
 | 
	
		
			
				|  |  |         String quotaId="22";
 | 
	
		
			
				|  |  |         try{
 | 
	
		
			
				|  |  |         String quotaId = "22";
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             //查找Im库中的所有的医生ID
 | 
	
		
			
				|  |  |             List<String> consultIdMaps = getConsultIdsByIm();
 | 
	
		
			
				|  |  |             StringBuffer sb=new StringBuffer("");
 | 
	
		
			
				|  |  |             for(int i=0;i<consultIdMaps.size();i++){
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             List<ConsultTeam> consultTeams = new ArrayList<>();
 | 
	
		
			
				|  |  |             StringBuffer sb = new StringBuffer("");
 | 
	
		
			
				|  |  |             for (int i = 0; i < consultIdMaps.size(); i++) {
 | 
	
		
			
				|  |  |                 sb.append(consultIdMaps.get(i));
 | 
	
		
			
				|  |  |                 if(i<(consultIdMaps.size()-1)){
 | 
	
		
			
				|  |  |                 if (i < (consultIdMaps.size() - 1)) {
 | 
	
		
			
				|  |  |                     sb.append(",");
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 if ((1+1) % 100 == 0) {
 | 
	
		
			
				|  |  |                     //每隔100统计一次
 | 
	
		
			
				|  |  |                     String sql = "select admin_team_code,id,consult from wlyy_consult_team a where  a.czrq< '" + tomorrow + "' and a.consult in (" + sb.toString() + ")";
 | 
	
		
			
				|  |  |                     //抽取數據
 | 
	
		
			
				|  |  |                     List<ConsultTeam> consultTeamsTemp = SpringUtil.getBean(DBExtract.class).extract(ConsultTeam.class, sql);
 | 
	
		
			
				|  |  |                     consultTeams.addAll(consultTeamsTemp);
 | 
	
		
			
				|  |  |                     sb = new StringBuffer();//重置 in条件
 | 
	
		
			
				|  |  |                 } else {
 | 
	
		
			
				|  |  |                     //判断是不是最后的一段
 | 
	
		
			
				|  |  |                     if (consultIdMaps.size() == (i+1)) {
 | 
	
		
			
				|  |  |                         String sql = "select admin_team_code,id,consult from wlyy_consult_team a where  a.czrq< '" + tomorrow + "' and a.consult in (" + sb.toString() + ")";
 | 
	
		
			
				|  |  |                         //抽取數據
 | 
	
		
			
				|  |  |                         List<ConsultTeam> consultTeamsTemp = SpringUtil.getBean(DBExtract.class).extract(ConsultTeam.class, sql);
 | 
	
		
			
				|  |  |                         consultTeams.addAll(consultTeamsTemp);
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             String sql = "";
 | 
	
		
			
				|  |  |             if (consultIdMaps.size() > 0) {
 | 
	
		
			
				|  |  |                 sql = " select admin_team_code,id,consult from wlyy_consult_team a where  a.czrq< '" + tomorrow + "' and a.consult in (" + sb.toString() + ")";
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |                 sql = " select admin_team_code,id,consult from wlyy_consult_team a where  a.czrq< '" + tomorrow + "' and a.consult ='noRey' ";
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             String sql="";
 | 
	
		
			
				|  |  |             //找出今天的咨询信息
 | 
	
		
			
				|  |  |             if(consultIdMaps.size()>0){
 | 
	
		
			
				|  |  |                 sql="select admin_team_code,id,consult from wlyy_consult_team a where  a.czrq< '"+tomorrow+"' and a.consult in ("+sb.toString()+")";
 | 
	
		
			
				|  |  |             }else{
 | 
	
		
			
				|  |  |                 sql="select admin_team_code,id,consult from wlyy_consult_team a where  a.czrq< '"+tomorrow+ "' and a.consult ='noRey' ";
 | 
	
		
			
				|  |  |             } //抽取數據
 | 
	
		
			
				|  |  |             List<ConsultTeam> consultTeams= SpringUtil.getBean(DBExtract.class).extract(ConsultTeam.class,sql);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             System.out.println("consultTeams num:"+consultTeams.size());
 | 
	
		
			
				|  |  |             System.out.println("consultTeams num:" + consultTeams.size());
 | 
	
		
			
				|  |  |             //過濾數據
 | 
	
		
			
				|  |  |             FilterModel etlModels= consultDataFilter.filter(consultTeams,sql,null);
 | 
	
		
			
				|  |  |             FilterModel etlModels = consultDataFilter.filter(consultTeams, sql, null);
 | 
	
		
			
				|  |  |             //统计数据
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>> returnDatas = SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             //保存数据
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas,null,quotaId);
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas, null, quotaId);
 | 
	
		
			
				|  |  |             allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |             allContent.append("统计失败:"+e.getMessage());
 | 
	
		
			
				|  |  |             allContent.append("统计失败:" + e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         allContent.append("----------22-----------");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private void computequota_23() {
 | 
	
		
			
				|  |  |         String quotaId="23";
 | 
	
		
			
				|  |  |         try{
 | 
	
		
			
				|  |  |         String quotaId = "23";
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             //查找Im库中的所有的医生ID
 | 
	
		
			
				|  |  |             List<String> consultIdMaps = getConsultIdsByIm23();
 | 
	
		
			
				|  |  |             StringBuffer sb=new StringBuffer("");
 | 
	
		
			
				|  |  |             for(int i=0;i<consultIdMaps.size();i++){
 | 
	
		
			
				|  |  |             StringBuffer sb = new StringBuffer("");
 | 
	
		
			
				|  |  |             List<ConsultTeam> consultTeams = new ArrayList<>();
 | 
	
		
			
				|  |  |             for (int i = 0; i < consultIdMaps.size(); i++) {
 | 
	
		
			
				|  |  |                 sb.append(consultIdMaps.get(i));
 | 
	
		
			
				|  |  |                 if(i<(consultIdMaps.size()-1)){
 | 
	
		
			
				|  |  |                 if (i < (consultIdMaps.size() - 1)) {
 | 
	
		
			
				|  |  |                     sb.append(",");
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 if ((1+1) % 100 == 0) {
 | 
	
		
			
				|  |  |                     //每隔100统计一次
 | 
	
		
			
				|  |  |                     String sql = "select admin_team_code,id,consult from wlyy_consult_team a where  a.czrq< '" + tomorrow + "' and a.consult in (" + sb.toString() + ")";
 | 
	
		
			
				|  |  |                     //抽取數據
 | 
	
		
			
				|  |  |                     List<ConsultTeam> consultTeamsTemp = SpringUtil.getBean(DBExtract.class).extract(ConsultTeam.class, sql);
 | 
	
		
			
				|  |  |                     consultTeams.addAll(consultTeamsTemp);
 | 
	
		
			
				|  |  |                     sb = new StringBuffer();//重置 in条件
 | 
	
		
			
				|  |  |                 } else {
 | 
	
		
			
				|  |  |                     //判断是不是最后的一段
 | 
	
		
			
				|  |  |                     if (consultIdMaps.size() == (i+1)) {
 | 
	
		
			
				|  |  |                         String sql = "select admin_team_code,id,consult from wlyy_consult_team a where  a.czrq< '" + tomorrow + "' and a.consult in (" + sb.toString() + ")";
 | 
	
		
			
				|  |  |                         //抽取數據
 | 
	
		
			
				|  |  |                         List<ConsultTeam> consultTeamsTemp = SpringUtil.getBean(DBExtract.class).extract(ConsultTeam.class, sql);
 | 
	
		
			
				|  |  |                         consultTeams.addAll(consultTeamsTemp);
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             String sql="";
 | 
	
		
			
				|  |  |             String sql = "";
 | 
	
		
			
				|  |  |             //找出今天的咨询信息
 | 
	
		
			
				|  |  |             if(consultIdMaps.size()>0){
 | 
	
		
			
				|  |  |                 sql="select admin_team_code,id,consult from wlyy_consult_team a where  a.czrq< '"+tomorrow+"' and a.consult in ("+sb.toString()+")";
 | 
	
		
			
				|  |  |             }else{
 | 
	
		
			
				|  |  |                 sql="select admin_team_code,id,consult from wlyy_consult_team a where  a.czrq< '"+tomorrow+ "' and a.consult ='Rey' ";
 | 
	
		
			
				|  |  |             } //抽取數據
 | 
	
		
			
				|  |  |             List<ConsultTeam> consultTeams= SpringUtil.getBean(DBExtract.class).extract(ConsultTeam.class,sql);
 | 
	
		
			
				|  |  |             if (consultIdMaps.size() > 0) {
 | 
	
		
			
				|  |  |                 sql = "select admin_team_code,id,consult from wlyy_consult_team a where  a.czrq< '" + tomorrow + "' and a.consult in (" + sb.toString() + ")";
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |                 sql = "select admin_team_code,id,consult from wlyy_consult_team a where  a.czrq< '" + tomorrow + "' and a.consult ='Rey' ";
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             System.out.println("consultTeams num:"+consultTeams.size());
 | 
	
		
			
				|  |  |             System.out.println("consultTeams num:" + consultTeams.size());
 | 
	
		
			
				|  |  |             //過濾數據
 | 
	
		
			
				|  |  |             FilterModel etlModels= consultDataFilter.filter(consultTeams,sql,null);
 | 
	
		
			
				|  |  |             FilterModel etlModels = consultDataFilter.filter(consultTeams, sql, null);
 | 
	
		
			
				|  |  |             //统计数据
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>> returnDatas = SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             //保存数据
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas,null,quotaId);
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas, null, quotaId);
 | 
	
		
			
				|  |  |             allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |             allContent.append("统计失败:"+e.getMessage());
 | 
	
		
			
				|  |  |             allContent.append("统计失败:" + e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         allContent.append("----------23-----------");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private void computequota_24() {
 | 
	
		
			
				|  |  |         String quotaId="24";
 | 
	
		
			
				|  |  |         try{
 | 
	
		
			
				|  |  |         String quotaId = "24";
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             //查找Im库中的所有的医生ID
 | 
	
		
			
				|  |  |             List<Map<String, Object>>  ims = getConsultIdsByIm24();
 | 
	
		
			
				|  |  |             List<Map<String, Object>> ims = getConsultIdsByIm24();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             List<ConsultTeam> consultTeams = new ArrayList<>();
 | 
	
		
			
				|  |  |             //得到医生的id
 | 
	
		
			
				|  |  |             List<String> consultIdMaps=new ArrayList<>();
 | 
	
		
			
				|  |  |             List<String> consultIdMaps = new ArrayList<>();
 | 
	
		
			
				|  |  |             ims.stream().forEach(map -> {
 | 
	
		
			
				|  |  |                 if (map.containsKey("consultId")) {
 | 
	
		
			
				|  |  |                     consultIdMaps.add(String.valueOf("'"+map.get("consultId")+"'"));
 | 
	
		
			
				|  |  |                     consultIdMaps.add(String.valueOf("'" + map.get("consultId") + "'"));
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             });
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             StringBuffer sb=new StringBuffer("");
 | 
	
		
			
				|  |  |             for(int i=0;i<consultIdMaps.size();i++){
 | 
	
		
			
				|  |  |             StringBuffer sb = new StringBuffer("");
 | 
	
		
			
				|  |  |             for (int i = 0; i < consultIdMaps.size(); i++) {
 | 
	
		
			
				|  |  |                 sb.append(consultIdMaps.get(i));
 | 
	
		
			
				|  |  |                 if(i<(consultIdMaps.size()-1)){
 | 
	
		
			
				|  |  |                 if (i < (consultIdMaps.size() - 1)) {
 | 
	
		
			
				|  |  |                     sb.append(",");
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 if ((1+1) % 100 == 0) {
 | 
	
		
			
				|  |  |                     //每隔100统计一次
 | 
	
		
			
				|  |  |                     String sql = "select admin_team_code,id,consult from wlyy_consult_team a where  a.czrq< '" + tomorrow + "' and a.consult in (" + sb.toString() + ")";
 | 
	
		
			
				|  |  |                     //抽取數據
 | 
	
		
			
				|  |  |                     List<ConsultTeam> consultTeamsTemp = SpringUtil.getBean(DBExtract.class).extract(ConsultTeam.class, sql);
 | 
	
		
			
				|  |  |                     consultTeams.addAll(consultTeamsTemp);
 | 
	
		
			
				|  |  |                     sb = new StringBuffer();//重置 in条件
 | 
	
		
			
				|  |  |                 } else {
 | 
	
		
			
				|  |  |                     //判断是不是最后的一段
 | 
	
		
			
				|  |  |                     if (consultIdMaps.size() == (i+1)) {
 | 
	
		
			
				|  |  |                         String sql = "select admin_team_code,id,consult from wlyy_consult_team a where  a.czrq< '" + tomorrow + "' and a.consult in (" + sb.toString() + ")";
 | 
	
		
			
				|  |  |                         //抽取數據
 | 
	
		
			
				|  |  |                         List<ConsultTeam> consultTeamsTemp = SpringUtil.getBean(DBExtract.class).extract(ConsultTeam.class, sql);
 | 
	
		
			
				|  |  |                         consultTeams.addAll(consultTeamsTemp);
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             String sql="";
 | 
	
		
			
				|  |  |             String sql = "";
 | 
	
		
			
				|  |  |             //找出今天的咨询信息
 | 
	
		
			
				|  |  |             if(consultIdMaps.size()>0){
 | 
	
		
			
				|  |  |                 sql="select admin_team_code,id,consult from wlyy_consult_team a where  a.czrq< '"+tomorrow+"' and a.consult in ("+sb.toString()+")";
 | 
	
		
			
				|  |  |             }else{
 | 
	
		
			
				|  |  |                 sql="select admin_team_code,id,consult from wlyy_consult_team a where  a.czrq< '"+tomorrow+ "' and a.consult ='Rey' ";
 | 
	
		
			
				|  |  |             if (consultIdMaps.size() > 0) {
 | 
	
		
			
				|  |  |                 sql = "select admin_team_code,id,consult from wlyy_consult_team a where  a.czrq< '" + tomorrow + "' and a.consult in (" + sb.toString() + ")";
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |                 sql = "select admin_team_code,id,consult from wlyy_consult_team a where  a.czrq< '" + tomorrow + "' and a.consult ='Rey' ";
 | 
	
		
			
				|  |  |             } //抽取數據
 | 
	
		
			
				|  |  |             List<ConsultTeam> consultTeams= SpringUtil.getBean(DBExtract.class).extract(ConsultTeam.class,sql);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             List<ConsultTeamDto> consultTeamDtos = getConsultTeams(ims,consultTeams);
 | 
	
		
			
				|  |  |             System.out.println("consultTeamDtos num:"+consultTeamDtos.size());
 | 
	
		
			
				|  |  |             List<ConsultTeamDto> consultTeamDtos = getConsultTeams(ims, consultTeams);
 | 
	
		
			
				|  |  |             System.out.println("consultTeamDtos num:" + consultTeamDtos.size());
 | 
	
		
			
				|  |  |             //過濾數據
 | 
	
		
			
				|  |  |             FilterModel etlModels= consultDataFilter.filter2(consultTeamDtos,sql,null,ConsultDataFilter.level2ReplyTime);
 | 
	
		
			
				|  |  |             FilterModel etlModels = consultDataFilter.filter2(consultTeamDtos, sql, null, ConsultDataFilter.level2ReplyTime);
 | 
	
		
			
				|  |  |             //统计数据
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>> returnDatas = SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             //统计数据 二级维度
 | 
	
		
			
				|  |  |             List<Map<String, Map<String, List<ETLModel>>>> level2Data= SpringUtil.getBean(Level2Role.class).elt(returnDatas);
 | 
	
		
			
				|  |  |             List<Map<String, Map<String, List<ETLModel>>>> level2Data = SpringUtil.getBean(Level2Role.class).elt(returnDatas);
 | 
	
		
			
				|  |  |             //保存数据
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel2(level2Data,null,quotaId,5,8);
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel2(level2Data, null, quotaId, 5, 8);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |             allContent.append("统计失败:"+e.getMessage());
 | 
	
		
			
				|  |  |             allContent.append("统计失败:" + e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         allContent.append("----------24----------");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 找出 im中的所有未回复的topic
 | 
	
		
			
				|  |  |      *
 | 
	
	
		
			
				|  | @ -345,20 +386,20 @@ public class CurrentDayAllQuotaJob implements Job {
 | 
	
		
			
				|  |  |                 " AND t.session_id = p.session_id " +
 | 
	
		
			
				|  |  |                 " AND t.session_id = s.id " +
 | 
	
		
			
				|  |  |                 " AND s.type = 1 " +
 | 
	
		
			
				|  |  |                 " AND t.status <>10 "+
 | 
	
		
			
				|  |  |                 " AND t.status <>10 " +
 | 
	
		
			
				|  |  |                 " AND t.`reply`=0 " +
 | 
	
		
			
				|  |  |                 " AND t.create_time< '" + tomorrow + "'";
 | 
	
		
			
				|  |  |         List<Map<String, Object>> ims = imjdbcTemplate.queryForList(sql);
 | 
	
		
			
				|  |  |         //得到医生的id
 | 
	
		
			
				|  |  |         List<String> ids=new ArrayList<>();
 | 
	
		
			
				|  |  |         List<String> ids = new ArrayList<>();
 | 
	
		
			
				|  |  |         ims.stream().forEach(map -> {
 | 
	
		
			
				|  |  |             if (map.containsKey("consultId")) {
 | 
	
		
			
				|  |  |                 ids.add(String.valueOf("'"+map.get("consultId")+"'"));
 | 
	
		
			
				|  |  |                 ids.add(String.valueOf("'" + map.get("consultId") + "'"));
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         });
 | 
	
		
			
				|  |  |         System.out.println("22 ims 实时:" +ims.size());
 | 
	
		
			
				|  |  |         System.out.println("22 实时sql:" +sql);
 | 
	
		
			
				|  |  |         System.out.println("22 ids 实时:" +ids.size());
 | 
	
		
			
				|  |  |         System.out.println("22 ims 实时:" + ims.size());
 | 
	
		
			
				|  |  |         System.out.println("22 实时sql:" + sql);
 | 
	
		
			
				|  |  |         System.out.println("22 ids 实时:" + ids.size());
 | 
	
		
			
				|  |  |         return ids;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -380,19 +421,19 @@ public class CurrentDayAllQuotaJob implements Job {
 | 
	
		
			
				|  |  |                 " AND t.session_id = s.id " +
 | 
	
		
			
				|  |  |                 " AND s.business_type=2 " +
 | 
	
		
			
				|  |  |                 " AND t.`reply`=1 " +
 | 
	
		
			
				|  |  |                 " AND TIMESTAMPDIFF(SECOND ,t.create_time ,t.reply_time) <86400 AND TIMESTAMPDIFF(SECOND ,t.create_time,t.reply_time) >0 "+
 | 
	
		
			
				|  |  |                 " AND TIMESTAMPDIFF(SECOND ,t.create_time ,t.reply_time) <86400 AND TIMESTAMPDIFF(SECOND ,t.create_time,t.reply_time) >0 " +
 | 
	
		
			
				|  |  |                 " AND t.create_time< '" + tomorrow + "'";
 | 
	
		
			
				|  |  |         List<Map<String, Object>> ims = imjdbcTemplate.queryForList(sql);
 | 
	
		
			
				|  |  |         //得到医生的id
 | 
	
		
			
				|  |  |         List<String> ids=new ArrayList<>();
 | 
	
		
			
				|  |  |         List<String> ids = new ArrayList<>();
 | 
	
		
			
				|  |  |         ims.stream().forEach(map -> {
 | 
	
		
			
				|  |  |             if (map.containsKey("consultId")) {
 | 
	
		
			
				|  |  |                 ids.add(String.valueOf("'"+map.get("consultId")+"'"));
 | 
	
		
			
				|  |  |                 ids.add(String.valueOf("'" + map.get("consultId") + "'"));
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         });
 | 
	
		
			
				|  |  |         System.out.println("23 ims 实时:" +ims.size());
 | 
	
		
			
				|  |  |         System.out.println("23 实时sql:" +sql);
 | 
	
		
			
				|  |  |         System.out.println("23 ids 实时:" +ids.size());
 | 
	
		
			
				|  |  |         System.out.println("23 ims 实时:" + ims.size());
 | 
	
		
			
				|  |  |         System.out.println("23 实时sql:" + sql);
 | 
	
		
			
				|  |  |         System.out.println("23 ids 实时:" + ids.size());
 | 
	
		
			
				|  |  |         return ids;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -401,7 +442,7 @@ public class CurrentDayAllQuotaJob implements Job {
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public List<Map<String, Object>>  getConsultIdsByIm24() {
 | 
	
		
			
				|  |  |     public List<Map<String, Object>> getConsultIdsByIm24() {
 | 
	
		
			
				|  |  |         String sql = "SELECT  DISTINCT t.id consultId ,t.reply_time replyTime" +
 | 
	
		
			
				|  |  |                 " FROM " +
 | 
	
		
			
				|  |  |                 " topics t, " +
 | 
	
	
		
			
				|  | @ -414,31 +455,31 @@ public class CurrentDayAllQuotaJob implements Job {
 | 
	
		
			
				|  |  |                 " AND t.session_id = s.id " +
 | 
	
		
			
				|  |  |                 " AND s.business_type=2 " +
 | 
	
		
			
				|  |  |                 " AND t.`reply`=1 " +
 | 
	
		
			
				|  |  |                 " AND TIMESTAMPDIFF(SECOND ,t.create_time,t.reply_time) <86400 AND TIMESTAMPDIFF(SECOND ,t.create_time,t.reply_time) >0 "+
 | 
	
		
			
				|  |  |                 " AND TIMESTAMPDIFF(SECOND ,t.create_time,t.reply_time) <86400 AND TIMESTAMPDIFF(SECOND ,t.create_time,t.reply_time) >0 " +
 | 
	
		
			
				|  |  |                 " AND t.create_time< '" + tomorrow + "'";
 | 
	
		
			
				|  |  |         List<Map<String, Object>> ims = imjdbcTemplate.queryForList(sql);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         return ims;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public List<ConsultTeamDto> getConsultTeams(List<Map<String, Object>> ims, List<ConsultTeam> consultTeams){
 | 
	
		
			
				|  |  |     public List<ConsultTeamDto> getConsultTeams(List<Map<String, Object>> ims, List<ConsultTeam> consultTeams) {
 | 
	
		
			
				|  |  |         List<ConsultTeamDto> rs = new ArrayList<>();
 | 
	
		
			
				|  |  |         if(consultTeams!=null&&consultTeams.size()>0&&ims!=null&&ims.size()>0){
 | 
	
		
			
				|  |  |         if (consultTeams != null && consultTeams.size() > 0 && ims != null && ims.size() > 0) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             //將List转换为Map,减小循环层级
 | 
	
		
			
				|  |  |             Map<String,Object> mapList = new HashedMap();
 | 
	
		
			
				|  |  |             for(Map<String, Object> m : ims){
 | 
	
		
			
				|  |  |                 mapList.put(m.get("consultId").toString(),m);
 | 
	
		
			
				|  |  |             Map<String, Object> mapList = new HashedMap();
 | 
	
		
			
				|  |  |             for (Map<String, Object> m : ims) {
 | 
	
		
			
				|  |  |                 mapList.put(m.get("consultId").toString(), m);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             //合并结果集
 | 
	
		
			
				|  |  |             for(ConsultTeam consultTeam :consultTeams){
 | 
	
		
			
				|  |  |             for (ConsultTeam consultTeam : consultTeams) {
 | 
	
		
			
				|  |  |                 ConsultTeamDto con = new ConsultTeamDto();
 | 
	
		
			
				|  |  |                 String key = consultTeam.getConsult();
 | 
	
		
			
				|  |  |                 Map<String, Object> ms = (Map<String, Object>)mapList.get(key);
 | 
	
		
			
				|  |  |                 Map<String, Object> ms = (Map<String, Object>) mapList.get(key);
 | 
	
		
			
				|  |  |                 con.setConsult(key);
 | 
	
		
			
				|  |  |                 con.setId(consultTeam.getId());
 | 
	
		
			
				|  |  |                 con.setAdminTeamCode(consultTeam.getAdminTeamCode());
 | 
	
		
			
				|  |  |                 con.setReplyTime((Date)ms.get("replyTime"));
 | 
	
		
			
				|  |  |                 con.setReplyTime((Date) ms.get("replyTime"));
 | 
	
		
			
				|  |  |                 rs.add(con);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             return rs;
 | 
	
	
		
			
				|  | @ -446,10 +487,11 @@ public class CurrentDayAllQuotaJob implements Job {
 | 
	
		
			
				|  |  |         return rs;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private void computequota_21() {
 | 
	
		
			
				|  |  |         try{
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             //找出今天的签约信息 yesterday,now
 | 
	
		
			
				|  |  |             String sql=" SELECT " +
 | 
	
		
			
				|  |  |             String sql = " SELECT " +
 | 
	
		
			
				|  |  |                     "  sf. CODE, " +
 | 
	
		
			
				|  |  |                     "  sf.idcard, " +
 | 
	
		
			
				|  |  |                     "  sf.hospital, " +
 | 
	
	
		
			
				|  | @ -462,26 +504,26 @@ public class CurrentDayAllQuotaJob implements Job {
 | 
	
		
			
				|  |  |                     " AND sf.type = 2 " +
 | 
	
		
			
				|  |  |                     " AND sf. STATUS IN (1, 2) " +
 | 
	
		
			
				|  |  |                     " AND p.openid is not null  " +
 | 
	
		
			
				|  |  |                     " AND p.openid_time <'" +tomorrow+"' ";
 | 
	
		
			
				|  |  |                     " AND p.openid_time <'" + tomorrow + "' ";
 | 
	
		
			
				|  |  |             //抽取數據
 | 
	
		
			
				|  |  |             List<SignFamily> signFamilies= SpringUtil.getBean(DBExtract.class).extract(SignFamily.class,sql);
 | 
	
		
			
				|  |  |             List<SignFamily> signFamilies = SpringUtil.getBean(DBExtract.class).extract(SignFamily.class, sql);
 | 
	
		
			
				|  |  |             //清洗數據
 | 
	
		
			
				|  |  |             FilterModel etlModels= SpringUtil.getBean(SignDataFilter.class).filter(signFamilies,sql,"now");
 | 
	
		
			
				|  |  |             FilterModel etlModels = SpringUtil.getBean(SignDataFilter.class).filter(signFamilies, sql, "now");
 | 
	
		
			
				|  |  |             //统计数据
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>> returnDatas = SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             //保存数据
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas,null,"21");
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas, null, "21");
 | 
	
		
			
				|  |  |             allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |             allContent.append("统计失败:"+e.getMessage());
 | 
	
		
			
				|  |  |             allContent.append("统计失败:" + e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         allContent.append("-----------21----------");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private void computequota_20() {
 | 
	
		
			
				|  |  |         try{
 | 
	
		
			
				|  |  |             String sql=" SELECT " +
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             String sql = " SELECT " +
 | 
	
		
			
				|  |  |                     "  sf. CODE, " +
 | 
	
		
			
				|  |  |                     "  sf.idcard, " +
 | 
	
		
			
				|  |  |                     "  sf.hospital, " +
 | 
	
	
		
			
				|  | @ -494,192 +536,193 @@ public class CurrentDayAllQuotaJob implements Job {
 | 
	
		
			
				|  |  |                     " AND sf.type = 2 " +
 | 
	
		
			
				|  |  |                     " AND pd.del=0 " +
 | 
	
		
			
				|  |  |                     " AND sf. STATUS IN (1, 2) " +
 | 
	
		
			
				|  |  |                     " AND pd.czrq <' "+tomorrow+"' ";
 | 
	
		
			
				|  |  |                     " AND pd.czrq <' " + tomorrow + "' ";
 | 
	
		
			
				|  |  |             //抽取數據
 | 
	
		
			
				|  |  |             List<SignFamily> signFamilies=  SpringUtil.getBean(DBExtract.class).extract(SignFamily.class,sql);
 | 
	
		
			
				|  |  |             List<SignFamily> signFamilies = SpringUtil.getBean(DBExtract.class).extract(SignFamily.class, sql);
 | 
	
		
			
				|  |  |             //清洗數據
 | 
	
		
			
				|  |  |             FilterModel etlModels= SpringUtil.getBean(SignDataFilter.class).filter(signFamilies,sql,"now");
 | 
	
		
			
				|  |  |             FilterModel etlModels = SpringUtil.getBean(SignDataFilter.class).filter(signFamilies, sql, "now");
 | 
	
		
			
				|  |  |             //统计数据
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>> returnDatas = SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             //保存数据
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas,null,"20");
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas, null, "20");
 | 
	
		
			
				|  |  |             allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |             allContent.append("统计失败:"+e.getMessage());
 | 
	
		
			
				|  |  |             allContent.append("统计失败:" + e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         allContent.append("-----------20----------");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private void initCurrentExpire() {
 | 
	
		
			
				|  |  |         try{
 | 
	
		
			
				|  |  |             if(StringUtils.isEmpty(currentExpire)){
 | 
	
		
			
				|  |  |                 currentExpire="2";//默认是2小时
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             if (StringUtils.isEmpty(currentExpire)) {
 | 
	
		
			
				|  |  |                 currentExpire = "2";//默认是2小时
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             if(!org.apache.commons.lang.StringUtils.isNumeric(currentExpire)){
 | 
	
		
			
				|  |  |                 currentExpire="2";//默认是2小时
 | 
	
		
			
				|  |  |             }else{
 | 
	
		
			
				|  |  |                 Integer cout =Integer.valueOf(currentExpire);
 | 
	
		
			
				|  |  |                 if(cout<=0){
 | 
	
		
			
				|  |  |                     currentExpire="2";//默认是2小时
 | 
	
		
			
				|  |  |             if (!org.apache.commons.lang.StringUtils.isNumeric(currentExpire)) {
 | 
	
		
			
				|  |  |                 currentExpire = "2";//默认是2小时
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |                 Integer cout = Integer.valueOf(currentExpire);
 | 
	
		
			
				|  |  |                 if (cout <= 0) {
 | 
	
		
			
				|  |  |                     currentExpire = "2";//默认是2小时
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |             currentExpire="2";//默认是2小时
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             currentExpire = "2";//默认是2小时
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private void computequota_17(String sql, List<SignFamily> signFamilies, Object o) {
 | 
	
		
			
				|  |  |         String quotaId="17";
 | 
	
		
			
				|  |  |         try{
 | 
	
		
			
				|  |  |         String quotaId = "17";
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             //清洗數據
 | 
	
		
			
				|  |  |             FilterModel etlModels= SpringUtil.getBean(SignDataFilter.class).filter(signFamilies,SignDataFilter.level2AgeDisease,sql,null);
 | 
	
		
			
				|  |  |             FilterModel etlModels = SpringUtil.getBean(SignDataFilter.class).filter(signFamilies, SignDataFilter.level2AgeDisease, sql, null);
 | 
	
		
			
				|  |  |             //统计数据 1级维度
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>> returnDatas = SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             //统计数据 二级维度
 | 
	
		
			
				|  |  |             List<Map<String, Map<String, List<ETLModel>>>>  level2Data= SpringUtil.getBean(Level2Role.class).elt(returnDatas);
 | 
	
		
			
				|  |  |             List<Map<String, Map<String, List<ETLModel>>>> level2Data = SpringUtil.getBean(Level2Role.class).elt(returnDatas);
 | 
	
		
			
				|  |  |             //保存数据 1 表示:从1开始循环 6表示:循环6次 3表示 2级维度是 3
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel2(level2Data,null,quotaId,3,7,1);
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel2(level2Data, null, quotaId, 3, 7, 1);
 | 
	
		
			
				|  |  |             allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |             allContent.append("统计失败:"+e.getMessage());
 | 
	
		
			
				|  |  |             allContent.append("统计失败:" + e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         allContent.append("-----------17----------");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private void computequota_16_1(String sql,List<SignFamily> signFamilies_1,List<SignFamily> deleteSignFamilies) {
 | 
	
		
			
				|  |  |         String quotaId="16";
 | 
	
		
			
				|  |  |         try{
 | 
	
		
			
				|  |  |             sql=" select id,code,idcard,hospital,admin_team_code,expenses_status from wlyy_sign_family a where  a.type =2 and (expenses_status !=1 or expenses_status is null) and status in (1,2) and    a.apply_date< '"+tomorrow+"' ";
 | 
	
		
			
				|  |  |             String sqlCount=" select count(id) from wlyy_sign_family a where  a.type =2 and (expenses_status !=1 or expenses_status is null) and status in (1,2) and  a.apply_date< '"+tomorrow+"' ";
 | 
	
		
			
				|  |  |             List<SignFamily> signFamilies_2= SpringUtil.getBean(DBExtract.class).extractByPage(SignFamily.class,sql,sqlCount,true);
 | 
	
		
			
				|  |  |     private void computequota_16_1(String sql, List<SignFamily> signFamilies_1, List<SignFamily> deleteSignFamilies) {
 | 
	
		
			
				|  |  |         String quotaId = "16";
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             sql = " select id,code,idcard,hospital,admin_team_code,expenses_status from wlyy_sign_family a where  a.type =2 and (expenses_status !=1 or expenses_status is null) and status in (1,2) and    a.apply_date< '" + tomorrow + "' ";
 | 
	
		
			
				|  |  |             String sqlCount = " select count(id) from wlyy_sign_family a where  a.type =2 and (expenses_status !=1 or expenses_status is null) and status in (1,2) and  a.apply_date< '" + tomorrow + "' ";
 | 
	
		
			
				|  |  |             List<SignFamily> signFamilies_2 = SpringUtil.getBean(DBExtract.class).extractByPage(SignFamily.class, sql, sqlCount, true);
 | 
	
		
			
				|  |  |             signFamilies_2.addAll(signFamilies_1);
 | 
	
		
			
				|  |  |             //清洗數據
 | 
	
		
			
				|  |  |             FilterModel etlModels= SpringUtil.getBean(SignDataFilter.class).filter(signFamilies_2, SignDataFilter.level2Expenses,sql,null);
 | 
	
		
			
				|  |  |             FilterModel etlModels = SpringUtil.getBean(SignDataFilter.class).filter(signFamilies_2, SignDataFilter.level2Expenses, sql, null);
 | 
	
		
			
				|  |  |             //统计数据 一级维度
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>> returnDatas = SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             //统计数据 二级维度
 | 
	
		
			
				|  |  |             List<Map<String, Map<String, List<ETLModel>>>> level2Data= SpringUtil.getBean(Level2Role.class).elt(returnDatas);
 | 
	
		
			
				|  |  |             List<Map<String, Map<String, List<ETLModel>>>> level2Data = SpringUtil.getBean(Level2Role.class).elt(returnDatas);
 | 
	
		
			
				|  |  |             //保存redis
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel2(level2Data,null,quotaId,2,6,0);
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel2(level2Data, null, quotaId, 2, 6, 0);
 | 
	
		
			
				|  |  |             allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |             allContent.append("统计失败:"+e.getMessage());
 | 
	
		
			
				|  |  |             allContent.append("统计失败:" + e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         allContent.append("-----------16-1----------");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private void computequota_13(String sql,List<SignFamily> signFamilies,List<SignFamily> deleteSignFamilies) {
 | 
	
		
			
				|  |  |     private void computequota_13(String sql, List<SignFamily> signFamilies, List<SignFamily> deleteSignFamilies) {
 | 
	
		
			
				|  |  |         //找出今天的签约信息 yesterday,now
 | 
	
		
			
				|  |  |         try{
 | 
	
		
			
				|  |  |            //抽取數據 分页抽取
 | 
	
		
			
				|  |  |            //List<SignFamily> signFamilies= SpringUtil.getBean(DBExtract.class).extractByPage(SignFamily.class,sql,sqlCount,true);
 | 
	
		
			
				|  |  |            //清洗數據
 | 
	
		
			
				|  |  |            FilterModel etlModels= SpringUtil.getBean(SignDataFilter.class).filter(signFamilies,sql,null);
 | 
	
		
			
				|  |  |            //统计数据
 | 
	
		
			
				|  |  |            List<Map<String, List<ETLModel>>>  returnData= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             //抽取數據 分页抽取
 | 
	
		
			
				|  |  |             //List<SignFamily> signFamilies= SpringUtil.getBean(DBExtract.class).extractByPage(SignFamily.class,sql,sqlCount,true);
 | 
	
		
			
				|  |  |             //清洗數據
 | 
	
		
			
				|  |  |             FilterModel etlModels = SpringUtil.getBean(SignDataFilter.class).filter(signFamilies, sql, null);
 | 
	
		
			
				|  |  |             //统计数据
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>> returnData = SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             //保存数据
 | 
	
		
			
				|  |  |              SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnData,null,"13");
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnData, null, "13");
 | 
	
		
			
				|  |  |             allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |             allContent.append("统计失败:"+e.getMessage());
 | 
	
		
			
				|  |  |             allContent.append("统计失败:" + e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         allContent.append("-----------13----------");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private void computequota_16_0(String sql,List<SignFamily> signFamilies_1,List<SignFamily> deleteSignFamilies) {
 | 
	
		
			
				|  |  |         String quotaId="16";
 | 
	
		
			
				|  |  |     private void computequota_16_0(String sql, List<SignFamily> signFamilies_1, List<SignFamily> deleteSignFamilies) {
 | 
	
		
			
				|  |  |         String quotaId = "16";
 | 
	
		
			
				|  |  |         //找出今天的签约信息
 | 
	
		
			
				|  |  |         try{
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             //抽取第二种条件的语句 找出未缴费的
 | 
	
		
			
				|  |  |             sql=" select id,code,idcard,hospital,admin_team_code,expenses_status from wlyy_sign_family a where  a.type =2 and (expenses_status =0 or expenses_status is null) and    a.apply_date< '"+tomorrow+"' ";
 | 
	
		
			
				|  |  |             String sqlCount=" select count(id) from wlyy_sign_family a where  a.type =2 and (expenses_status =0 or expenses_status is null)  and  a.apply_date< '"+tomorrow+"' ";
 | 
	
		
			
				|  |  |             List<SignFamily> signFamilies_2= SpringUtil.getBean(DBExtract.class).extractByPage(SignFamily.class,sql,sqlCount,true);
 | 
	
		
			
				|  |  |              //清洗數據
 | 
	
		
			
				|  |  |             FilterModel etlModels= SpringUtil.getBean(SignDataFilter.class).filter(signFamilies_2, SignDataFilter.level2Expenses,sql,null);
 | 
	
		
			
				|  |  |             sql = " select id,code,idcard,hospital,admin_team_code,expenses_status from wlyy_sign_family a where  a.type =2 and (expenses_status =0 or expenses_status is null) and    a.apply_date< '" + tomorrow + "' ";
 | 
	
		
			
				|  |  |             String sqlCount = " select count(id) from wlyy_sign_family a where  a.type =2 and (expenses_status =0 or expenses_status is null)  and  a.apply_date< '" + tomorrow + "' ";
 | 
	
		
			
				|  |  |             List<SignFamily> signFamilies_2 = SpringUtil.getBean(DBExtract.class).extractByPage(SignFamily.class, sql, sqlCount, true);
 | 
	
		
			
				|  |  |             //清洗數據
 | 
	
		
			
				|  |  |             FilterModel etlModels = SpringUtil.getBean(SignDataFilter.class).filter(signFamilies_2, SignDataFilter.level2Expenses, sql, null);
 | 
	
		
			
				|  |  |             //统计数据
 | 
	
		
			
				|  |  |             //统计数据 一级维度
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>> returnDatas = SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             //统计数据 二级维度
 | 
	
		
			
				|  |  |             List<Map<String, Map<String, List<ETLModel>>>> level2Data= SpringUtil.getBean(Level2Role.class).elt(returnDatas);
 | 
	
		
			
				|  |  |             List<Map<String, Map<String, List<ETLModel>>>> level2Data = SpringUtil.getBean(Level2Role.class).elt(returnDatas);
 | 
	
		
			
				|  |  |             //保存数据
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel2(level2Data,null,quotaId,2,6,0);
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel2(level2Data, null, quotaId, 2, 6, 0);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |             allContent.append("统计失败:"+e.getMessage());
 | 
	
		
			
				|  |  |             allContent.append("统计失败:" + e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         allContent.append("-----------16-0----------");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private void computequota_15(String sql,List<SignFamily> signFamilies,List<SignFamily> deleteSignFamilies) {
 | 
	
		
			
				|  |  |         String quotaId="15";
 | 
	
		
			
				|  |  |     private void computequota_15(String sql, List<SignFamily> signFamilies, List<SignFamily> deleteSignFamilies) {
 | 
	
		
			
				|  |  |         String quotaId = "15";
 | 
	
		
			
				|  |  |         //找出今天的签约信息
 | 
	
		
			
				|  |  |         //String sql=" select id,code,idcard,hospital,admin_team_code from wlyy_sign_family a where  a.type =2 and  a.expenses_time>= '"+now+"' and  a.expenses_time< '"+tomorrow+"' and a.expenses_status=1 ";
 | 
	
		
			
				|  |  |        try{
 | 
	
		
			
				|  |  |            //抽取數據
 | 
	
		
			
				|  |  |           // List<SignFamily> signFamilies= SpringUtil.getBean(DBExtract.class).extract(SignFamily.class,sql);
 | 
	
		
			
				|  |  |            //清洗數據
 | 
	
		
			
				|  |  |            FilterModel etlModels= SpringUtil.getBean(SignDataFilter.class).filter(signFamilies, SignDataFilter.level2Health,sql,null);
 | 
	
		
			
				|  |  |            //统计数据 一级维度
 | 
	
		
			
				|  |  |            List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |            //统计数据 二级维度
 | 
	
		
			
				|  |  |            List<Map<String, Map<String, List<ETLModel>>>> patientSexRoleData= SpringUtil.getBean(Level2Role.class).elt(returnDatas);
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             //抽取數據
 | 
	
		
			
				|  |  |             // List<SignFamily> signFamilies= SpringUtil.getBean(DBExtract.class).extract(SignFamily.class,sql);
 | 
	
		
			
				|  |  |             //清洗數據
 | 
	
		
			
				|  |  |             FilterModel etlModels = SpringUtil.getBean(SignDataFilter.class).filter(signFamilies, SignDataFilter.level2Health, sql, null);
 | 
	
		
			
				|  |  |             //统计数据 一级维度
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>> returnDatas = SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             //统计数据 二级维度
 | 
	
		
			
				|  |  |             List<Map<String, Map<String, List<ETLModel>>>> patientSexRoleData = SpringUtil.getBean(Level2Role.class).elt(returnDatas);
 | 
	
		
			
				|  |  |             //保存数据
 | 
	
		
			
				|  |  |              SpringUtil.getBean(RedisStorage.class).saveByLevel2(patientSexRoleData,null,quotaId,4,5,0);
 | 
	
		
			
				|  |  |            allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel2(patientSexRoleData, null, quotaId, 4, 5, 0);
 | 
	
		
			
				|  |  |             allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |            allContent.append("统计失败:"+e.getMessage());
 | 
	
		
			
				|  |  |             allContent.append("统计失败:" + e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         allContent.append("-----------15----------");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private void computequota_12(String sql,List<SignFamily> signFamilies,List<SignFamily> deleteSignFamilies) throws Exception{
 | 
	
		
			
				|  |  |         String quotaId="12";
 | 
	
		
			
				|  |  |     private void computequota_12(String sql, List<SignFamily> signFamilies, List<SignFamily> deleteSignFamilies) throws Exception {
 | 
	
		
			
				|  |  |         String quotaId = "12";
 | 
	
		
			
				|  |  |         //找出今天的签约信息
 | 
	
		
			
				|  |  |         //String sql=" select id,code,idcard,hospital,admin_team_code from wlyy_sign_family a where  a.type =2 and  a.expenses_time>= '"+now+"' and  a.expenses_time< '"+tomorrow+"' and a.expenses_status=1 ";
 | 
	
		
			
				|  |  |         //String deleteSql=" select id,code,idcard,hospital,admin_team_code from wlyy_sign_family a where  a.type =2 and  a.czrq>= '"+now+"' and  a.czrq< '"+tomorrow+"' and a.expenses_status=3  ";
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         try{
 | 
	
		
			
				|  |  |              //抽取數據
 | 
	
		
			
				|  |  |            // List<SignFamily> signFamilies= SpringUtil.getBean(DBExtract.class).extract(SignFamily.class,sql);
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             //抽取數據
 | 
	
		
			
				|  |  |             // List<SignFamily> signFamilies= SpringUtil.getBean(DBExtract.class).extract(SignFamily.class,sql);
 | 
	
		
			
				|  |  |             //清洗數據
 | 
	
		
			
				|  |  |             FilterModel etlModels= SpringUtil.getBean(SignDataFilter.class).filter(signFamilies,SignDataFilter.level2Age,SignDataFilter.level3Disease,sql,null);
 | 
	
		
			
				|  |  |             FilterModel etlModels = SpringUtil.getBean(SignDataFilter.class).filter(signFamilies, SignDataFilter.level2Age, SignDataFilter.level3Disease, sql, null);
 | 
	
		
			
				|  |  |             //统计数据 一级维度
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>> returnDatas = SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             //统计数据 二级维度
 | 
	
		
			
				|  |  |             List<Map<String, Map<String, List<ETLModel>>>> patientSexRoleData= SpringUtil.getBean(Level2Role.class).elt(returnDatas);
 | 
	
		
			
				|  |  |             List<Map<String, Map<String, List<ETLModel>>>> patientSexRoleData = SpringUtil.getBean(Level2Role.class).elt(returnDatas);
 | 
	
		
			
				|  |  |             //统计数据 三级维度
 | 
	
		
			
				|  |  |             List<Map<String, Map<String, Map<String, List<ETLModel>>>>> returnD= SpringUtil.getBean(Level3Role.class).elt(patientSexRoleData);
 | 
	
		
			
				|  |  |             List<Map<String, Map<String, Map<String, List<ETLModel>>>>> returnD = SpringUtil.getBean(Level3Role.class).elt(patientSexRoleData);
 | 
	
		
			
				|  |  |             //保存数据
 | 
	
		
			
				|  |  |              SpringUtil.getBean(RedisStorage.class).saveByLevel3(returnD,null,quotaId,6,4,2,1,1,1);
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel3(returnD, null, quotaId, 6, 4, 2, 1, 1, 1);
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         allContent.append("-----------12----------");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private void compute(Map<String, Map<String, Map>> rootMap, String rootKey, String ageCode, String diseaseType) {
 | 
	
		
			
				|  |  |         if (rootMap.containsKey(rootKey)) {
 | 
	
		
			
				|  |  |             //得到市下面的所有的年龄map
 | 
	
		
			
				|  |  |             Map<String, Map> groupMapTemp = rootMap.get(rootKey);
 | 
	
		
			
				|  |  |             if(groupMapTemp.containsKey(ageCode)){
 | 
	
		
			
				|  |  |             if (groupMapTemp.containsKey(ageCode)) {
 | 
	
		
			
				|  |  |                 //得到这个年龄下的患者map
 | 
	
		
			
				|  |  |                 Map<String,Long> mape= groupMapTemp.get(ageCode);
 | 
	
		
			
				|  |  |                 if(mape.containsKey(diseaseType)){
 | 
	
		
			
				|  |  |                     mape.put(diseaseType,mape.get(diseaseType)+1L);
 | 
	
		
			
				|  |  |                 }else{
 | 
	
		
			
				|  |  |                     mape.put(diseaseType,1L);
 | 
	
		
			
				|  |  |                 Map<String, Long> mape = groupMapTemp.get(ageCode);
 | 
	
		
			
				|  |  |                 if (mape.containsKey(diseaseType)) {
 | 
	
		
			
				|  |  |                     mape.put(diseaseType, mape.get(diseaseType) + 1L);
 | 
	
		
			
				|  |  |                 } else {
 | 
	
		
			
				|  |  |                     mape.put(diseaseType, 1L);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }else{
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |                 //新增疾病的统计map
 | 
	
		
			
				|  |  |                 Map<String, Long> groupMapTemp1 = new HashMap<String, Long>();
 | 
	
		
			
				|  |  |                 groupMapTemp1.put(diseaseType, 1L);
 | 
	
		
			
				|  |  |                 groupMapTemp.put(ageCode,groupMapTemp1);
 | 
	
		
			
				|  |  |                 groupMapTemp.put(ageCode, groupMapTemp1);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         } else {
 | 
	
		
			
				|  |  |             //没有就新建统计数据  新增疾病的统计map
 | 
	
	
		
			
				|  | @ -687,75 +730,76 @@ public class CurrentDayAllQuotaJob implements Job {
 | 
	
		
			
				|  |  |             groupMapTemp.put(diseaseType, 1L);
 | 
	
		
			
				|  |  |             //把统计疾病的map放入对应的年龄组map中
 | 
	
		
			
				|  |  |             Map<String, Map> groupMapTemp2 = new HashMap<String, Map>();
 | 
	
		
			
				|  |  |             groupMapTemp2.put(ageCode,groupMapTemp);
 | 
	
		
			
				|  |  |             groupMapTemp2.put(ageCode, groupMapTemp);
 | 
	
		
			
				|  |  |             //把年龄组map放入市的map里面
 | 
	
		
			
				|  |  |             rootMap.put(rootKey, groupMapTemp2);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     private void computequota_1(String sql,List<SignFamily> signFamilies,List<SignFamily> deleteSignFamilies) {
 | 
	
		
			
				|  |  |         try{
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private void computequota_1(String sql, List<SignFamily> signFamilies, List<SignFamily> deleteSignFamilies) {
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             //清洗數據
 | 
	
		
			
				|  |  |             FilterModel etlModels= SpringUtil.getBean(SignDataFilter.class).filter(signFamilies,sql,"now");
 | 
	
		
			
				|  |  |             FilterModel etlModels = SpringUtil.getBean(SignDataFilter.class).filter(signFamilies, sql, "now");
 | 
	
		
			
				|  |  |             //统计数据
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>> returnDatas = SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             //保存数据
 | 
	
		
			
				|  |  |              SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas,null,"1");
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas, null, "1");
 | 
	
		
			
				|  |  |             allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |             allContent.append("统计失败:"+e.getMessage());
 | 
	
		
			
				|  |  |             allContent.append("统计失败:" + e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         allContent.append("-----------1----------");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private void computequota_2() {
 | 
	
		
			
				|  |  |         String quotaId="2";
 | 
	
		
			
				|  |  |         try{
 | 
	
		
			
				|  |  |         String quotaId = "2";
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             //找出今天的解约信息
 | 
	
		
			
				|  |  |             String sql=" select id,code,idcard,hospital,admin_team_code,expenses_status from wlyy_sign_family a where  a.type =2 and a.status in(-3,-4) and  a.apply_unsign_date< '"+tomorrow+"' ";
 | 
	
		
			
				|  |  |             String sql = " select id,code,idcard,hospital,admin_team_code,expenses_status from wlyy_sign_family a where  a.type =2 and a.status in(-3,-4) and  a.apply_unsign_date< '" + tomorrow + "' ";
 | 
	
		
			
				|  |  |             //抽取數據
 | 
	
		
			
				|  |  |             List<SignFamily> signFamilies= SpringUtil.getBean(DBExtract.class).extract(SignFamily.class,sql);
 | 
	
		
			
				|  |  |             List<SignFamily> signFamilies = SpringUtil.getBean(DBExtract.class).extract(SignFamily.class, sql);
 | 
	
		
			
				|  |  |             //清洗數據
 | 
	
		
			
				|  |  |             FilterModel etlModels= SpringUtil.getBean(SignDataFilter.class).filter(signFamilies,sql);
 | 
	
		
			
				|  |  |             FilterModel etlModels = SpringUtil.getBean(SignDataFilter.class).filter(signFamilies, sql);
 | 
	
		
			
				|  |  |             //统计数据
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>> returnDatas = SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             //保存数据
 | 
	
		
			
				|  |  |              SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas,null,quotaId);
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas, null, quotaId);
 | 
	
		
			
				|  |  |             allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |             allContent.append("统计失败:"+e.getMessage());
 | 
	
		
			
				|  |  |             allContent.append("统计失败:" + e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |          allContent.append("----------2-----------");
 | 
	
		
			
				|  |  |         allContent.append("----------2-----------");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private void computequota_3() {
 | 
	
		
			
				|  |  |         String quotaId="3";
 | 
	
		
			
				|  |  |         try{
 | 
	
		
			
				|  |  |         String quotaId = "3";
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             //找出今天的咨询信息
 | 
	
		
			
				|  |  |             String sql=" select * from wlyy_consult_team a where  a.czrq>= '"+now+"'and a.czrq< '"+tomorrow+"'";
 | 
	
		
			
				|  |  |             String sql = " select * from wlyy_consult_team a where  a.czrq>= '" + now + "'and a.czrq< '" + tomorrow + "'";
 | 
	
		
			
				|  |  |             //抽取數據
 | 
	
		
			
				|  |  |             List<ConsultTeam> consultTeams= SpringUtil.getBean(DBExtract.class).extract(ConsultTeam.class,sql);
 | 
	
		
			
				|  |  |             List<ConsultTeam> consultTeams = SpringUtil.getBean(DBExtract.class).extract(ConsultTeam.class, sql);
 | 
	
		
			
				|  |  |             //過濾數據
 | 
	
		
			
				|  |  |             FilterModel etlModels= consultDataFilter.filter(consultTeams,sql,null);
 | 
	
		
			
				|  |  |             FilterModel etlModels = consultDataFilter.filter(consultTeams, sql, null);
 | 
	
		
			
				|  |  |             //统计数据
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>> returnDatas = SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             //保存数据
 | 
	
		
			
				|  |  |              SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas,null,quotaId);
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas, null, quotaId);
 | 
	
		
			
				|  |  |             allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |             allContent.append("统计失败:"+e.getMessage());
 | 
	
		
			
				|  |  |             allContent.append("统计失败:" + e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |          allContent.append("----------3-----------");
 | 
	
		
			
				|  |  |         allContent.append("----------3-----------");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private void computequota_4() {
 | 
	
		
			
				|  |  |         String quotaId="4";
 | 
	
		
			
				|  |  |         try{
 | 
	
		
			
				|  |  |         String quotaId = "4";
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             //找出今天的随访信息
 | 
	
		
			
				|  |  |             String sql=" select * from wlyy_followup a where  a.status=1 and  a.followup_plan_date< '"+tomorrow+"' and a.followup_plan_date>= '"+now+"' ";
 | 
	
		
			
				|  |  |             String sql = " select * from wlyy_followup a where  a.status=1 and  a.followup_plan_date< '" + tomorrow + "' and a.followup_plan_date>= '" + now + "' ";
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             //找出今天的随访信息
 | 
	
		
			
				|  |  |             List<Map<String, Object>> plans = jdbcTemplate.queryForList(sql);
 | 
	
	
		
			
				|  | @ -764,204 +808,207 @@ public class CurrentDayAllQuotaJob implements Job {
 | 
	
		
			
				|  |  |             // 统计数据
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>> returnDatas = SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             //保存数据
 | 
	
		
			
				|  |  |              SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas,null,quotaId);
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas, null, quotaId);
 | 
	
		
			
				|  |  |             allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |             allContent.append("统计失败:"+e.getMessage());
 | 
	
		
			
				|  |  |         }allContent.append("-----------4----------");
 | 
	
		
			
				|  |  |             allContent.append("统计失败:" + e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         allContent.append("-----------4----------");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private void computequota_5() {
 | 
	
		
			
				|  |  |         String quotaId="5";
 | 
	
		
			
				|  |  |         String quotaId = "5";
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String sql="SELECT * FROM wlyy_patient_health_guidance a WHERE a.create_time< '"+tomorrow+"' and a.create_time>= '"+now+"'";
 | 
	
		
			
				|  |  |         try{
 | 
	
		
			
				|  |  |         String sql = "SELECT * FROM wlyy_patient_health_guidance a WHERE a.create_time< '" + tomorrow + "' and a.create_time>= '" + now + "'";
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             //抽取數據
 | 
	
		
			
				|  |  |             List<PatientHealthGuidance> consultTeams= SpringUtil.getBean(DBExtract.class).extract(PatientHealthGuidance.class,sql);
 | 
	
		
			
				|  |  |             List<PatientHealthGuidance> consultTeams = SpringUtil.getBean(DBExtract.class).extract(PatientHealthGuidance.class, sql);
 | 
	
		
			
				|  |  |             //過濾數據
 | 
	
		
			
				|  |  |             FilterModel etlModels= healthGuideDataFilter.filter(consultTeams,sql,null);
 | 
	
		
			
				|  |  |             FilterModel etlModels = healthGuideDataFilter.filter(consultTeams, sql, null);
 | 
	
		
			
				|  |  |             //统计数据
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>> returnDatas = SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             //保存数据
 | 
	
		
			
				|  |  |              SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas,null,quotaId);
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas, null, quotaId);
 | 
	
		
			
				|  |  |             allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |             allContent.append("统计失败:"+e.getMessage());
 | 
	
		
			
				|  |  |             allContent.append("统计失败:" + e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         allContent.append("-----------5----------");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private void computequota_6(String sql,List<SignFamily> signFamilies,List<SignFamily> deleteSignFamilies) throws Exception {
 | 
	
		
			
				|  |  |         String quotaId="6";
 | 
	
		
			
				|  |  |     private void computequota_6(String sql, List<SignFamily> signFamilies, List<SignFamily> deleteSignFamilies) throws Exception {
 | 
	
		
			
				|  |  |         String quotaId = "6";
 | 
	
		
			
				|  |  |         //找出今天的签约信息
 | 
	
		
			
				|  |  |       //  String sql=" select id,code,idcard,hospital,admin_team_code,expenses_status from wlyy_sign_family a where  a.type =2 and  a.expenses_time>= '"+now+"' and  a.expenses_time< '"+tomorrow+"' and a.expenses_status=1 ";
 | 
	
		
			
				|  |  |        try{
 | 
	
		
			
				|  |  |            //抽取數據
 | 
	
		
			
				|  |  |            //List<SignFamily> signFamilies= SpringUtil.getBean(DBExtract.class).extract(SignFamily.class,sql);
 | 
	
		
			
				|  |  |            //清洗數據
 | 
	
		
			
				|  |  |            FilterModel etlModels= SpringUtil.getBean(SignDataFilter.class).filter(signFamilies,SignDataFilter.level2Sex,sql,null);
 | 
	
		
			
				|  |  |            //统计数据 1级维度
 | 
	
		
			
				|  |  |            List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |            //统计数据 二级维度
 | 
	
		
			
				|  |  |            List<Map<String, Map<String, List<ETLModel>>>>  level2Data= SpringUtil.getBean(Level2Role.class).elt(returnDatas);;
 | 
	
		
			
				|  |  |         //  String sql=" select id,code,idcard,hospital,admin_team_code,expenses_status from wlyy_sign_family a where  a.type =2 and  a.expenses_time>= '"+now+"' and  a.expenses_time< '"+tomorrow+"' and a.expenses_status=1 ";
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             //抽取數據
 | 
	
		
			
				|  |  |             //List<SignFamily> signFamilies= SpringUtil.getBean(DBExtract.class).extract(SignFamily.class,sql);
 | 
	
		
			
				|  |  |             //清洗數據
 | 
	
		
			
				|  |  |             FilterModel etlModels = SpringUtil.getBean(SignDataFilter.class).filter(signFamilies, SignDataFilter.level2Sex, sql, null);
 | 
	
		
			
				|  |  |             //统计数据 1级维度
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>> returnDatas = SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             //统计数据 二级维度
 | 
	
		
			
				|  |  |             List<Map<String, Map<String, List<ETLModel>>>> level2Data = SpringUtil.getBean(Level2Role.class).elt(returnDatas);
 | 
	
		
			
				|  |  |             ;
 | 
	
		
			
				|  |  |             //保存数据
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel2(level2Data,null,quotaId,3,1);
 | 
	
		
			
				|  |  |            allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel2(level2Data, null, quotaId, 3, 1);
 | 
	
		
			
				|  |  |             allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |            allContent.append("统计失败:"+e.getMessage());
 | 
	
		
			
				|  |  |             allContent.append("统计失败:" + e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         allContent.append("-----------6----------");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private void computequota_7(String sql,List<SignFamily> signFamilies,List<SignFamily> deleteSignFamilies) {
 | 
	
		
			
				|  |  |         String quotaId="7";
 | 
	
		
			
				|  |  |         try{
 | 
	
		
			
				|  |  |           //  String sql=" select id,code,idcard,hospital,admin_team_code,expenses_status from wlyy_sign_family a where  a.type =2 and  a.expenses_time>= '"+now+"' and  a.expenses_time< '"+tomorrow+"' and a.expenses_status=1 ";
 | 
	
		
			
				|  |  |     private void computequota_7(String sql, List<SignFamily> signFamilies, List<SignFamily> deleteSignFamilies) {
 | 
	
		
			
				|  |  |         String quotaId = "7";
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             //  String sql=" select id,code,idcard,hospital,admin_team_code,expenses_status from wlyy_sign_family a where  a.type =2 and  a.expenses_time>= '"+now+"' and  a.expenses_time< '"+tomorrow+"' and a.expenses_status=1 ";
 | 
	
		
			
				|  |  |             //抽取數據
 | 
	
		
			
				|  |  |             //List<SignFamily> signFamilies= SpringUtil.getBean(DBExtract.class).extract(SignFamily.class,sql);
 | 
	
		
			
				|  |  |             //清洗數據
 | 
	
		
			
				|  |  |             FilterModel etlModels= SpringUtil.getBean(SignDataFilter.class).filter(signFamilies,SignDataFilter.level2Group,sql,null);
 | 
	
		
			
				|  |  |             FilterModel etlModels = SpringUtil.getBean(SignDataFilter.class).filter(signFamilies, SignDataFilter.level2Group, sql, null);
 | 
	
		
			
				|  |  |             //统计数据 1级维度
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>> returnDatas = SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             //统计数据 二级维度
 | 
	
		
			
				|  |  |             List<Map<String, Map<String, List<ETLModel>>>>  level2Data= SpringUtil.getBean(Level2Role.class).elt(returnDatas);
 | 
	
		
			
				|  |  |             List<Map<String, Map<String, List<ETLModel>>>> level2Data = SpringUtil.getBean(Level2Role.class).elt(returnDatas);
 | 
	
		
			
				|  |  |             //保存数据 1 表示:从1开始循环 6表示:循环6次 3表示 2级维度是 3
 | 
	
		
			
				|  |  |              SpringUtil.getBean(RedisStorage.class).saveByLevel2(level2Data,null,quotaId,7,3,-1);
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel2(level2Data, null, quotaId, 7, 3, -1);
 | 
	
		
			
				|  |  |             allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |             allContent.append("统计失败:"+e.getMessage());
 | 
	
		
			
				|  |  |             allContent.append("统计失败:" + e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         allContent.append("----------7-----------");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private void computequota_8(String sql,List<SignFamily> signFamilies,List<SignFamily> deleteSignFamilies)throws Exception {
 | 
	
		
			
				|  |  |         String quotaId="8";
 | 
	
		
			
				|  |  |         try{
 | 
	
		
			
				|  |  |     private void computequota_8(String sql, List<SignFamily> signFamilies, List<SignFamily> deleteSignFamilies) throws Exception {
 | 
	
		
			
				|  |  |         String quotaId = "8";
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             //找出今天的签约信息
 | 
	
		
			
				|  |  |            // String sql=" select id,code,idcard,hospital,admin_team_code,expenses_status from wlyy_sign_family a where  a.type =2  and  a.expenses_time>= '"+now+"' and  a.expenses_time< '"+tomorrow+"' and a.expenses_status=1 ";
 | 
	
		
			
				|  |  |             // String sql=" select id,code,idcard,hospital,admin_team_code,expenses_status from wlyy_sign_family a where  a.type =2  and  a.expenses_time>= '"+now+"' and  a.expenses_time< '"+tomorrow+"' and a.expenses_status=1 ";
 | 
	
		
			
				|  |  |             //抽取數據
 | 
	
		
			
				|  |  |            // List<SignFamily> signFamilies= SpringUtil.getBean(DBExtract.class).extract(SignFamily.class,sql);
 | 
	
		
			
				|  |  |             // List<SignFamily> signFamilies= SpringUtil.getBean(DBExtract.class).extract(SignFamily.class,sql);
 | 
	
		
			
				|  |  |             //清洗數據
 | 
	
		
			
				|  |  |             FilterModel etlModels= SpringUtil.getBean(SignDataFilter.class).filter(signFamilies,SignDataFilter.level2Age,sql,null);
 | 
	
		
			
				|  |  |             FilterModel etlModels = SpringUtil.getBean(SignDataFilter.class).filter(signFamilies, SignDataFilter.level2Age, sql, null);
 | 
	
		
			
				|  |  |             //统计数据 1级维度
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>> returnDatas = SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             //统计数据 二级维度
 | 
	
		
			
				|  |  |             List<Map<String, Map<String, List<ETLModel>>>>  level2Data= SpringUtil.getBean(Level2Role.class).elt(returnDatas);;
 | 
	
		
			
				|  |  |             List<Map<String, Map<String, List<ETLModel>>>> level2Data = SpringUtil.getBean(Level2Role.class).elt(returnDatas);
 | 
	
		
			
				|  |  |             ;
 | 
	
		
			
				|  |  |             //保存数据
 | 
	
		
			
				|  |  |              SpringUtil.getBean(RedisStorage.class).saveByLevel2(level2Data,null,quotaId,6,2);
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel2(level2Data, null, quotaId, 6, 2);
 | 
	
		
			
				|  |  |             allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |             allContent.append("统计失败:"+e.getMessage());
 | 
	
		
			
				|  |  |             allContent.append("统计失败:" + e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         allContent.append("----------8-----------");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private void computequota_9() {
 | 
	
		
			
				|  |  |         String quotaId="9";
 | 
	
		
			
				|  |  |         String quotaId = "9";
 | 
	
		
			
				|  |  |         //找出今天的待签约信息
 | 
	
		
			
				|  |  |         String sql=" select id,code,idcard,hospital,admin_team_code,doctor,doctor_health from wlyy_sign_family a where   a.type =2  and a.status=0 and  a.patient_apply_date< '"+tomorrow+"'  ";
 | 
	
		
			
				|  |  |         try{
 | 
	
		
			
				|  |  |         String sql = " select id,code,idcard,hospital,admin_team_code,doctor,doctor_health from wlyy_sign_family a where   a.type =2  and a.status=0 and  a.patient_apply_date< '" + tomorrow + "'  ";
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             //抽取數據
 | 
	
		
			
				|  |  |             List<SignFamily> signFamilies= SpringUtil.getBean(DBExtract.class).extract(SignFamily.class,sql);
 | 
	
		
			
				|  |  |             List<SignFamily> signFamilies = SpringUtil.getBean(DBExtract.class).extract(SignFamily.class, sql);
 | 
	
		
			
				|  |  |             //清洗數據
 | 
	
		
			
				|  |  |             FilterModel etlModels= SpringUtil.getBean(SignDataFilter.class).filterNoTeam(signFamilies,null,null,sql,"now");
 | 
	
		
			
				|  |  |             FilterModel etlModels = SpringUtil.getBean(SignDataFilter.class).filterNoTeam(signFamilies, null, null, sql, "now");
 | 
	
		
			
				|  |  |             //统计数据
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>> returnDatas = SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             //保存数据
 | 
	
		
			
				|  |  |              SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas,null,quotaId);
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas, null, quotaId);
 | 
	
		
			
				|  |  |             allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |             allContent.append("统计失败:"+e.getMessage());
 | 
	
		
			
				|  |  |             allContent.append("统计失败:" + e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |          allContent.append("----------9-----------");
 | 
	
		
			
				|  |  |         allContent.append("----------9-----------");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private void computequota_10() {
 | 
	
		
			
				|  |  |         String quotaId="10";
 | 
	
		
			
				|  |  |        try{
 | 
	
		
			
				|  |  |         String quotaId = "10";
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             //找出今天的已改簽信息
 | 
	
		
			
				|  |  |             String sql=" select id,code,idcard,hospital,admin_team_code from wlyy_sign_family a where  a.type =2 and a.status =100 and   a.patient_apply_date< '"+tomorrow+"' and a.expenses_status=1 ";
 | 
	
		
			
				|  |  |             String sql = " select id,code,idcard,hospital,admin_team_code from wlyy_sign_family a where  a.type =2 and a.status =100 and   a.patient_apply_date< '" + tomorrow + "' and a.expenses_status=1 ";
 | 
	
		
			
				|  |  |             //抽取數據
 | 
	
		
			
				|  |  |             List<SignFamily> signFamilies= SpringUtil.getBean(DBExtract.class).extract(SignFamily.class,sql);
 | 
	
		
			
				|  |  |             List<SignFamily> signFamilies = SpringUtil.getBean(DBExtract.class).extract(SignFamily.class, sql);
 | 
	
		
			
				|  |  |             //清洗數據
 | 
	
		
			
				|  |  |             FilterModel etlModels= SpringUtil.getBean(SignDataFilter.class).filter(signFamilies,sql,null);
 | 
	
		
			
				|  |  |             FilterModel etlModels = SpringUtil.getBean(SignDataFilter.class).filter(signFamilies, sql, null);
 | 
	
		
			
				|  |  |             //统计数据
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>> returnDatas = SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             //保存数据
 | 
	
		
			
				|  |  |              SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas,null,quotaId);
 | 
	
		
			
				|  |  |            allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas, null, quotaId);
 | 
	
		
			
				|  |  |             allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |            allContent.append("统计失败:"+e.getMessage());
 | 
	
		
			
				|  |  |             allContent.append("统计失败:" + e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         allContent.append("-----------10----------");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private void computequota_25() {
 | 
	
		
			
				|  |  |         String quotaId="25";
 | 
	
		
			
				|  |  |         try{
 | 
	
		
			
				|  |  |         String quotaId = "25";
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             //找出总的咨询信息
 | 
	
		
			
				|  |  |             String sql=" select * from wlyy_consult_team a where a.czrq< '"+tomorrow+"'";
 | 
	
		
			
				|  |  |             String sql = " select * from wlyy_consult_team a where a.czrq< '" + tomorrow + "'";
 | 
	
		
			
				|  |  |             //抽取數據
 | 
	
		
			
				|  |  |             List<ConsultTeam> consultTeams= SpringUtil.getBean(DBExtract.class).extract(ConsultTeam.class,sql);
 | 
	
		
			
				|  |  |             List<ConsultTeam> consultTeams = SpringUtil.getBean(DBExtract.class).extract(ConsultTeam.class, sql);
 | 
	
		
			
				|  |  |             //過濾數據
 | 
	
		
			
				|  |  |             FilterModel etlModels= consultDataFilter.filter(consultTeams,sql,null);
 | 
	
		
			
				|  |  |             FilterModel etlModels = consultDataFilter.filter(consultTeams, sql, null);
 | 
	
		
			
				|  |  |             //统计数据
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>> returnDatas = SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             //保存数据
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas,null,quotaId);
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas, null, quotaId);
 | 
	
		
			
				|  |  |             allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |             allContent.append("统计失败:"+e.getMessage());
 | 
	
		
			
				|  |  |             allContent.append("统计失败:" + e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         allContent.append("----------25-----------");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private void computequota_26() {
 | 
	
		
			
				|  |  |         String quotaId="26";
 | 
	
		
			
				|  |  |         try{
 | 
	
		
			
				|  |  |         String quotaId = "26";
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             //找出今天统计未缴费签约总数
 | 
	
		
			
				|  |  |             String sql="select code,idcard,hospital,admin_team_code from wlyy_sign_family a where  a.type =2 and  a.status>0  and  a.apply_date< '"+tomorrow+"' and a.expenses_status=0 ";
 | 
	
		
			
				|  |  |             String sql = "select code,idcard,hospital,admin_team_code from wlyy_sign_family a where  a.type =2 and  a.status>0  and  a.apply_date< '" + tomorrow + "' and a.expenses_status=0 ";
 | 
	
		
			
				|  |  |             //抽取數據
 | 
	
		
			
				|  |  |             List<SignFamily> signFamilies= SpringUtil.getBean(DBExtract.class).extract(SignFamily.class,sql);
 | 
	
		
			
				|  |  |             List<SignFamily> signFamilies = SpringUtil.getBean(DBExtract.class).extract(SignFamily.class, sql);
 | 
	
		
			
				|  |  |             //清洗數據
 | 
	
		
			
				|  |  |             FilterModel etlModels= SpringUtil.getBean(SignDataFilter.class).filter(signFamilies,sql,null);
 | 
	
		
			
				|  |  |             FilterModel etlModels = SpringUtil.getBean(SignDataFilter.class).filter(signFamilies, sql, null);
 | 
	
		
			
				|  |  |             //统计数据
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>> returnDatas = SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             //保存数据
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas,null,quotaId);
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas, null, quotaId);
 | 
	
		
			
				|  |  |             allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |             allContent.append("统计失败:"+e.getMessage());
 | 
	
		
			
				|  |  |             allContent.append("统计失败:" + e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         allContent.append("-----------26----------");
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private void computequota_27() {
 | 
	
		
			
				|  |  |         String quotaId="27";
 | 
	
		
			
				|  |  |         String quotaId = "27";
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String sql="select w.id,w.patient from  wlyy_patient_reservation w,wlyy_doctor d where w.doctor = d.code and  w.doctor is not null and w.dname is not null and w.czrq< '"+tomorrow+"' and w.czrq>= '"+now+"'";
 | 
	
		
			
				|  |  |         try{
 | 
	
		
			
				|  |  |         String sql = "select w.id,w.patient from  wlyy_patient_reservation w,wlyy_doctor d where w.doctor = d.code and  w.doctor is not null and w.dname is not null and w.czrq< '" + tomorrow + "' and w.czrq>= '" + now + "'";
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             //抽取數據
 | 
	
		
			
				|  |  |             List<PatientReservation> patientReservations = SpringUtil.getBean(DBExtract.class).extract(PatientReservation.class,sql);
 | 
	
		
			
				|  |  |             List<PatientReservation> patientReservations = SpringUtil.getBean(DBExtract.class).extract(PatientReservation.class, sql);
 | 
	
		
			
				|  |  |             //過濾數據
 | 
	
		
			
				|  |  |             FilterModel etlModels= agentAppointmentFilter.filter(patientReservations,sql,null);
 | 
	
		
			
				|  |  |             FilterModel etlModels = agentAppointmentFilter.filter(patientReservations, sql, null);
 | 
	
		
			
				|  |  |             //统计数据
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             List<Map<String, List<ETLModel>>> returnDatas = SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
 | 
	
		
			
				|  |  |             //保存数据
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas,null,quotaId);
 | 
	
		
			
				|  |  |             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas, null, quotaId);
 | 
	
		
			
				|  |  |             allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
 | 
	
		
			
				|  |  |         }catch (Exception e){
 | 
	
		
			
				|  |  |         } catch (Exception e) {
 | 
	
		
			
				|  |  |             e.printStackTrace();
 | 
	
		
			
				|  |  |             allContent.append("统计失败:"+e.getMessage());
 | 
	
		
			
				|  |  |             allContent.append("统计失败:" + e.getMessage());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         allContent.append("-----------27----------");
 | 
	
		
			
				|  |  |     }
 | 
	
	
		
			
				|  | @ -970,124 +1017,128 @@ public class CurrentDayAllQuotaJob implements Job {
 | 
	
		
			
				|  |  |      * SQL统计平均值存储redis
 | 
	
		
			
				|  |  |      * 统计市,区,机构,团队医生满意度
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     private void  computequota_28(){
 | 
	
		
			
				|  |  |     private void computequota_28() {
 | 
	
		
			
				|  |  |         //获取市,区统计结果
 | 
	
		
			
				|  |  |         List<Map<String,Object>> m1 = getCityTowms();
 | 
	
		
			
				|  |  |         List<Map<String, Object>> m1 = getCityTowms();
 | 
	
		
			
				|  |  |         JSONObject json1 = new JSONObject();
 | 
	
		
			
				|  |  |         json1.put("data",m1);
 | 
	
		
			
				|  |  |         String key = "quota:28:4:"+Constant.city+":3:"+RedisStorage.timeKey;
 | 
	
		
			
				|  |  |         redisTemplate.opsForValue().set(key,json1.toString());
 | 
	
		
			
				|  |  |         json1.put("data", m1);
 | 
	
		
			
				|  |  |         String key = "quota:28:4:" + Constant.city + ":3:" + RedisStorage.timeKey;
 | 
	
		
			
				|  |  |         redisTemplate.opsForValue().set(key, json1.toString());
 | 
	
		
			
				|  |  |         RedisStorage.keys.add(key);
 | 
	
		
			
				|  |  |         //获取市,机构统计结果
 | 
	
		
			
				|  |  |         List<Map<String,Object>> m2 = getCityHoss();
 | 
	
		
			
				|  |  |         List<Map<String, Object>> m2 = getCityHoss();
 | 
	
		
			
				|  |  |         JSONObject json2 = new JSONObject();
 | 
	
		
			
				|  |  |         json2.put("data",m2);
 | 
	
		
			
				|  |  |         String key1 = "quota:28:4:"+Constant.city+":2:"+RedisStorage.timeKey;
 | 
	
		
			
				|  |  |         redisTemplate.opsForValue().set(key1,json2.toString());
 | 
	
		
			
				|  |  |         json2.put("data", m2);
 | 
	
		
			
				|  |  |         String key1 = "quota:28:4:" + Constant.city + ":2:" + RedisStorage.timeKey;
 | 
	
		
			
				|  |  |         redisTemplate.opsForValue().set(key1, json2.toString());
 | 
	
		
			
				|  |  |         RedisStorage.keys.add(key1);
 | 
	
		
			
				|  |  |         //统计区级低下所有机构
 | 
	
		
			
				|  |  |         if(m1!=null&&m1.size()>0){
 | 
	
		
			
				|  |  |             for(Map<String,Object> m:m1){
 | 
	
		
			
				|  |  |                 String town =(String)m.get("code");
 | 
	
		
			
				|  |  |                 List<Map<String,Object>> m3 = getTownHoss(town);
 | 
	
		
			
				|  |  |         if (m1 != null && m1.size() > 0) {
 | 
	
		
			
				|  |  |             for (Map<String, Object> m : m1) {
 | 
	
		
			
				|  |  |                 String town = (String) m.get("code");
 | 
	
		
			
				|  |  |                 List<Map<String, Object>> m3 = getTownHoss(town);
 | 
	
		
			
				|  |  |                 JSONObject json3 = new JSONObject();
 | 
	
		
			
				|  |  |                 json3.put("data",m3);
 | 
	
		
			
				|  |  |                 String key2 ="quota:28:3:"+town+":2:"+RedisStorage.timeKey;
 | 
	
		
			
				|  |  |                 redisTemplate.opsForValue().set(key2,json3.toString());
 | 
	
		
			
				|  |  |                 json3.put("data", m3);
 | 
	
		
			
				|  |  |                 String key2 = "quota:28:3:" + town + ":2:" + RedisStorage.timeKey;
 | 
	
		
			
				|  |  |                 redisTemplate.opsForValue().set(key2, json3.toString());
 | 
	
		
			
				|  |  |                 RedisStorage.keys.add(key2);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //得到所有机构
 | 
	
		
			
				|  |  |         List<Map<String,Object>> allHs = getAllHoss();
 | 
	
		
			
				|  |  |         List<Map<String, Object>> allHs = getAllHoss();
 | 
	
		
			
				|  |  |         //得到所有团队统计结果
 | 
	
		
			
				|  |  |         List<Map<String,Object>> allTs =getAllHosTeams();
 | 
	
		
			
				|  |  |         List<Map<String, Object>> allTs = getAllHosTeams();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //将团队按机构分组,分别存储
 | 
	
		
			
				|  |  |         if(allHs!=null&&allHs.size()>0){
 | 
	
		
			
				|  |  |             for(Map<String,Object> h : allHs){
 | 
	
		
			
				|  |  |                 String code = (String)h.get("code");
 | 
	
		
			
				|  |  |                 List<Map<String,Object>> hosTeams = new ArrayList<>();
 | 
	
		
			
				|  |  |                 Iterator<Map<String,Object>> it = allTs.iterator();
 | 
	
		
			
				|  |  |                 while(it.hasNext()){
 | 
	
		
			
				|  |  |                     Map<String,Object> x = it.next();
 | 
	
		
			
				|  |  |                     String hospital = (String)x.get("hospital");
 | 
	
		
			
				|  |  |                     if(code.equals(hospital)){
 | 
	
		
			
				|  |  |         if (allHs != null && allHs.size() > 0) {
 | 
	
		
			
				|  |  |             for (Map<String, Object> h : allHs) {
 | 
	
		
			
				|  |  |                 String code = (String) h.get("code");
 | 
	
		
			
				|  |  |                 List<Map<String, Object>> hosTeams = new ArrayList<>();
 | 
	
		
			
				|  |  |                 Iterator<Map<String, Object>> it = allTs.iterator();
 | 
	
		
			
				|  |  |                 while (it.hasNext()) {
 | 
	
		
			
				|  |  |                     Map<String, Object> x = it.next();
 | 
	
		
			
				|  |  |                     String hospital = (String) x.get("hospital");
 | 
	
		
			
				|  |  |                     if (code.equals(hospital)) {
 | 
	
		
			
				|  |  |                         hosTeams.add(x);
 | 
	
		
			
				|  |  |                         it.remove();
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 JSONObject json = new JSONObject();
 | 
	
		
			
				|  |  |                 json.put("data",hosTeams);
 | 
	
		
			
				|  |  |                 String k = "quota:28:2:"+code+":1:"+RedisStorage.timeKey;
 | 
	
		
			
				|  |  |                 redisTemplate.opsForValue().set(k,json.toString());
 | 
	
		
			
				|  |  |                 json.put("data", hosTeams);
 | 
	
		
			
				|  |  |                 String k = "quota:28:2:" + code + ":1:" + RedisStorage.timeKey;
 | 
	
		
			
				|  |  |                 redisTemplate.opsForValue().set(k, json.toString());
 | 
	
		
			
				|  |  |                 RedisStorage.keys.add(k);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public List<Map<String,Object>> getCityTowms(){
 | 
	
		
			
				|  |  |         List<Map<String,Object>> map = jdbcTemplate.queryForList(getAvgSqlByCode("city_town_SQL"));
 | 
	
		
			
				|  |  |     public List<Map<String, Object>> getCityTowms() {
 | 
	
		
			
				|  |  |         List<Map<String, Object>> map = jdbcTemplate.queryForList(getAvgSqlByCode("city_town_SQL"));
 | 
	
		
			
				|  |  |         return map;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     public List<Map<String,Object>> getCityHoss(){
 | 
	
		
			
				|  |  |         List<Map<String,Object>> map = jdbcTemplate.queryForList(getAvgSqlByCode("city_hos_SQL"));
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public List<Map<String, Object>> getCityHoss() {
 | 
	
		
			
				|  |  |         List<Map<String, Object>> map = jdbcTemplate.queryForList(getAvgSqlByCode("city_hos_SQL"));
 | 
	
		
			
				|  |  |         return map;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     public List<Map<String,Object>> getTownHoss(String townCode){
 | 
	
		
			
				|  |  |         List<Map<String,Object>> map = jdbcTemplate.queryForList(getAvgSqlByCode("town_hos_SQL"),new Object[]{townCode});
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public List<Map<String, Object>> getTownHoss(String townCode) {
 | 
	
		
			
				|  |  |         List<Map<String, Object>> map = jdbcTemplate.queryForList(getAvgSqlByCode("town_hos_SQL"), new Object[]{townCode});
 | 
	
		
			
				|  |  |         return map;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     public List<Map<String,Object>> getAllHosTeams(){
 | 
	
		
			
				|  |  |         List<Map<String,Object>> map = jdbcTemplate.queryForList(getAvgSqlByCode("team_SQL"));
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public List<Map<String, Object>> getAllHosTeams() {
 | 
	
		
			
				|  |  |         List<Map<String, Object>> map = jdbcTemplate.queryForList(getAvgSqlByCode("team_SQL"));
 | 
	
		
			
				|  |  |         return map;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  |     public List<Map<String,Object>> getAllHoss(){
 | 
	
		
			
				|  |  |         List<Map<String,Object>> map = jdbcTemplate.queryForList(getAvgSqlByCode("All_hos_SQL"));
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public List<Map<String, Object>> getAllHoss() {
 | 
	
		
			
				|  |  |         List<Map<String, Object>> map = jdbcTemplate.queryForList(getAvgSqlByCode("All_hos_SQL"));
 | 
	
		
			
				|  |  |         return map;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public String getAvgSqlByCode(String code){
 | 
	
		
			
				|  |  |     public String getAvgSqlByCode(String code) {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if("city_town_SQL".equals(code)){
 | 
	
		
			
				|  |  |         if ("city_town_SQL".equals(code)) {
 | 
	
		
			
				|  |  |             //统计市级各区
 | 
	
		
			
				|  |  |             String city_town_SQL ="SELECT t.code,t.`name` ,ifnull(ROUND(AVG(s.score),1),0) as avgCount " +
 | 
	
		
			
				|  |  |             String city_town_SQL = "SELECT t.code,t.`name` ,ifnull(ROUND(AVG(s.score),1),0) as avgCount " +
 | 
	
		
			
				|  |  |                     " FROM wlyy_doctor d " +
 | 
	
		
			
				|  |  |                     " RIGHT JOIN dm_town t on t.code=d.town " +
 | 
	
		
			
				|  |  |                     " LEFT JOIN wlyy_evaluate_score s ON d.code = s.doctor " +
 | 
	
		
			
				|  |  |                     " WHERE t.city='"+Constant.city+"' GROUP BY d.town order by avgCount DESC ";
 | 
	
		
			
				|  |  |                     " WHERE t.city='" + Constant.city + "' GROUP BY d.town order by avgCount DESC ";
 | 
	
		
			
				|  |  |             return city_town_SQL;
 | 
	
		
			
				|  |  |         }else if("city_hos_SQL".equals(code)){
 | 
	
		
			
				|  |  |         } else if ("city_hos_SQL".equals(code)) {
 | 
	
		
			
				|  |  |             //统计市级各社区
 | 
	
		
			
				|  |  |             String city_hos_SQL ="SELECT  t.code,t.`name`,ifnull(ROUND(AVG(s.score),1),0) as avgCount " +
 | 
	
		
			
				|  |  |             String city_hos_SQL = "SELECT  t.code,t.`name`,ifnull(ROUND(AVG(s.score),1),0) as avgCount " +
 | 
	
		
			
				|  |  |                     " FROM wlyy_doctor d " +
 | 
	
		
			
				|  |  |                     " RIGHT JOIN dm_hospital t on t.code = d.hospital " +
 | 
	
		
			
				|  |  |                     " LEFT JOIN wlyy_evaluate_score s ON d.code = s.doctor " +
 | 
	
		
			
				|  |  |                     " WHERE t.level = 2 AND t.del='1' AND t.city='"+Constant.city+"' AND LENGTH(t.code)<=10 GROUP BY left(t.code,8) order by avgCount DESC ";
 | 
	
		
			
				|  |  |                     " WHERE t.level = 2 AND t.del='1' AND t.city='" + Constant.city + "' AND LENGTH(t.code)<=10 GROUP BY left(t.code,8) order by avgCount DESC ";
 | 
	
		
			
				|  |  |             return city_hos_SQL;
 | 
	
		
			
				|  |  |         }else if("town_hos_SQL".equals(code)){
 | 
	
		
			
				|  |  |         } else if ("town_hos_SQL".equals(code)) {
 | 
	
		
			
				|  |  |             //统计区级各社区
 | 
	
		
			
				|  |  |             String town_hos_SQL ="SELECT  t.code,t.`name`,ifnull(ROUND(AVG(s.score),1),0) as avgCount " +
 | 
	
		
			
				|  |  |             String town_hos_SQL = "SELECT  t.code,t.`name`,ifnull(ROUND(AVG(s.score),1),0) as avgCount " +
 | 
	
		
			
				|  |  |                     " FROM wlyy_doctor d " +
 | 
	
		
			
				|  |  |                     " RIGHT JOIN dm_hospital t on t.code = d.hospital " +
 | 
	
		
			
				|  |  |                     " LEFT JOIN wlyy_evaluate_score s ON d.code = s.doctor " +
 | 
	
		
			
				|  |  |                     " WHERE t.level = 2 AND t.del='1' AND t.town= ? AND LENGTH(t.code)<=10 GROUP BY left(t.code,8) order by avgCount DESC ";
 | 
	
		
			
				|  |  |             return town_hos_SQL;
 | 
	
		
			
				|  |  |         }else if("team_SQL".equals(code)){
 | 
	
		
			
				|  |  |         } else if ("team_SQL".equals(code)) {
 | 
	
		
			
				|  |  |             //查找所有团队
 | 
	
		
			
				|  |  |             String team_SQL ="SELECT  t.id,t.`name` ,d.hospital,ifnull(ROUND(AVG(s.score),1),0) as avgCount " +
 | 
	
		
			
				|  |  |             String team_SQL = "SELECT  t.id,t.`name` ,d.hospital,ifnull(ROUND(AVG(s.score),1),0) as avgCount " +
 | 
	
		
			
				|  |  |                     " FROM wlyy_doctor d " +
 | 
	
		
			
				|  |  |                     " RIGHT JOIN wlyy_admin_team t on t.leader_code = d.code " +
 | 
	
		
			
				|  |  |                     " LEFT JOIN wlyy_evaluate_score s ON d.code = s.doctor " +
 | 
	
		
			
				|  |  |                     " WHERE LENGTH(d.hospital)<=10 "+
 | 
	
		
			
				|  |  |                     " WHERE LENGTH(d.hospital)<=10 " +
 | 
	
		
			
				|  |  |                     " GROUP BY t.id,left(d.hospital,8) order by avgCount DESC ";
 | 
	
		
			
				|  |  |             return team_SQL;
 | 
	
		
			
				|  |  |         }else if("All_hos_SQL".equals(code)){
 | 
	
		
			
				|  |  |         } else if ("All_hos_SQL".equals(code)) {
 | 
	
		
			
				|  |  |             //查找所有机构
 | 
	
		
			
				|  |  |             String All_hos_SQL = "SELECT t.code FROM dm_hospital t where t.level = 2 AND t.del='1' AND LENGTH(t.code)<=10 AND t.city ='"+Constant.city+"' GROUP BY left(t.code,8) ";
 | 
	
		
			
				|  |  |             String All_hos_SQL = "SELECT t.code FROM dm_hospital t where t.level = 2 AND t.del='1' AND LENGTH(t.code)<=10 AND t.city ='" + Constant.city + "' GROUP BY left(t.code,8) ";
 | 
	
		
			
				|  |  |             return All_hos_SQL;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     return "";
 | 
	
		
			
				|  |  |         return "";
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static String getDayString(Integer size) {
 | 
	
	
		
			
				|  | @ -1103,6 +1154,7 @@ public class CurrentDayAllQuotaJob implements Job {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 根据年龄得到对应的code
 | 
	
		
			
				|  |  |      *
 | 
	
		
			
				|  |  |      * @param age
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      */
 | 
	
	
		
			
				|  | @ -1122,16 +1174,16 @@ public class CurrentDayAllQuotaJob implements Job {
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     private String saveContent(String id,Integer size, Long qkCount, Long orgCount, Long townCount, Long cityCount, boolean isAll, StringBuffer errorContent,Long errorCount) {
 | 
	
		
			
				|  |  |         StringBuffer string=new StringBuffer("统计 quotaid:"+id+" 的数据完成 ,数据库查询到签约数目:"+size);
 | 
	
		
			
				|  |  |         string.append(",过滤的脏数据数目:"+errorCount);
 | 
	
		
			
				|  |  |         string.append(",统计到市的数据总数:"+cityCount);
 | 
	
		
			
				|  |  |         string.append(",统计到区的数据总数:"+townCount);
 | 
	
		
			
				|  |  |         string.append(",统计到机构的数据总数:"+orgCount);
 | 
	
		
			
				|  |  |         string.append(",统计到团队的数据总数:"+qkCount);
 | 
	
		
			
				|  |  |         string.append(",是否统计成功:"+isAll);
 | 
	
		
			
				|  |  |         if(!isAll){
 | 
	
		
			
				|  |  |             string.append(",失败原因:"+errorContent);
 | 
	
		
			
				|  |  |     private String saveContent(String id, Integer size, Long qkCount, Long orgCount, Long townCount, Long cityCount, boolean isAll, StringBuffer errorContent, Long errorCount) {
 | 
	
		
			
				|  |  |         StringBuffer string = new StringBuffer("统计 quotaid:" + id + " 的数据完成 ,数据库查询到签约数目:" + size);
 | 
	
		
			
				|  |  |         string.append(",过滤的脏数据数目:" + errorCount);
 | 
	
		
			
				|  |  |         string.append(",统计到市的数据总数:" + cityCount);
 | 
	
		
			
				|  |  |         string.append(",统计到区的数据总数:" + townCount);
 | 
	
		
			
				|  |  |         string.append(",统计到机构的数据总数:" + orgCount);
 | 
	
		
			
				|  |  |         string.append(",统计到团队的数据总数:" + qkCount);
 | 
	
		
			
				|  |  |         string.append(",是否统计成功:" + isAll);
 | 
	
		
			
				|  |  |         if (!isAll) {
 | 
	
		
			
				|  |  |             string.append(",失败原因:" + errorContent);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return string.toString();
 | 
	
		
			
				|  |  |     }
 |