|
@ -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();
|
|
|
}
|