소스 검색

ETL修改

esb 8 년 전
부모
커밋
350c1ff182

+ 1 - 5
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/etl/dataFilter/SignDataFilter.java

@ -115,7 +115,6 @@ public class SignDataFilter {
            townsMap.put(town.getCode(), town);
        }
        List<ETLModel> etlModelList=new ArrayList<>();//返回的ETL數據
        Long cityCount = new Long(0L); //统计到市的数目
@ -334,10 +333,7 @@ public class SignDataFilter {
            count++;
        }
        String returnLevel2Key= signFamily.getExpensesStatus();
        if(returnLevel2Key==null){
            returnLevel2Key="0";
        }
        if("".equals(returnLevel2Key.trim())){
        if(StringUtils.isEmpty(returnLevel2Key)){
            returnLevel2Key="0";
        }
        return returnLevel2Key;

+ 4 - 5
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/etl/extract/DBExtract.java

@ -1,6 +1,7 @@
package com.yihu.wlyy.statistics.etl.extract;
import com.yihu.wlyy.statistics.model.signfamily.SignFamily;
import com.yihu.wlyy.statistics.util.SpringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
@ -19,8 +20,6 @@ import java.util.List;
public class DBExtract<T> {
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private DBPageExtract dbPageExtract;
    /**
     * 不分页抽取
@ -41,7 +40,7 @@ public class DBExtract<T> {
     * @return
     */
    public List<T> extractByPage(Class<T> clazz,String sql,String countSql,int pageSize,Boolean isMultithreading)throws  Exception{
        return dbPageExtract.extractByPage(clazz,sql,countSql,pageSize,isMultithreading);
        return SpringUtil.getBean(DBPageExtract.class).extractByPage(clazz,sql,countSql,pageSize,isMultithreading);
    }
    /**
     * 分页抽取
@ -52,7 +51,7 @@ public class DBExtract<T> {
     */
    public List<Object> extractByPage(Class<T> clazz,String sql,String countSql,Boolean isMultithreading)throws  Exception{
        int pageSize=10000;
        return dbPageExtract.extractByPage(clazz,sql,countSql,pageSize,isMultithreading);
        return SpringUtil.getBean(DBPageExtract.class).extractByPage(clazz,sql,countSql,pageSize,isMultithreading);
    }
    /**
     * 分页抽取
@ -64,6 +63,6 @@ public class DBExtract<T> {
        int pageSize=10000;
        Boolean isMultithreading=false;
        String countSql="";
        return dbPageExtract.extractByPage(clazz,sql,countSql,pageSize,isMultithreading);
        return SpringUtil.getBean(DBPageExtract.class).extractByPage(clazz,sql,countSql,pageSize,isMultithreading);
    }
}

+ 1 - 0
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/etl/extract/DBPageExtract.java

@ -25,6 +25,7 @@ import java.util.concurrent.Future;
public class DBPageExtract<T> {
    @Autowired
    private JdbcTemplate jdbcTemplate;
    private  List<T> returnList=new ArrayList<T>();
    public synchronized void addData( List<T> dataList) {

+ 10 - 12
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/etl/mycache/CachePool.java

@ -6,6 +6,7 @@ import com.yihu.wlyy.statistics.etl.model.CacheModel;
import com.yihu.wlyy.statistics.job.business.Constant;
import com.yihu.wlyy.statistics.model.label.SignPatientLabelInfo;
import com.yihu.wlyy.statistics.model.signfamily.SignFamily;
import com.yihu.wlyy.statistics.util.SpringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
@ -20,12 +21,6 @@ import java.util.Map;
 */
@Component
public class CachePool {
    @Autowired
    private DBExtract dbExtract;
    @Autowired
    private SignPatientLabelInfoDao signPatientLabelInfoDao;
    /**
     * 到达量的缓存  key 是时间yyyy-MM-dd
     */
@ -53,10 +48,10 @@ public class CachePool {
        CacheModel model= arriveSignFamilyExpenseStatus1Map.get(date);
        if(model==null){
            model=new CacheModel();
            String sql=" select id,code,idcard,hospital,admin_team_code,expenses_status from wlyy_sign_family a where  a.type =2  and expenses_status=1 and a.expenses_time< '"+date+ Constant.quota_date_last+"'" ;
            String sqlCount="select count(id) from wlyy_sign_family a where  a.type =2  and expenses_status=1 and a.expenses_time< '"+date+ Constant.quota_date_last+"'";
            String sql=" select id,code,idcard,hospital,admin_team_code,expenses_status,patient from wlyy_sign_family a where status in(1,2) and a.type =2  and expenses_status=1 and a.expenses_time< '"+date+ Constant.quota_date_last+"'" ;
            String sqlCount="select count(id) from wlyy_sign_family a where  status in(1,2) and a.type =2  and expenses_status=1 and a.expenses_time< '"+date+ Constant.quota_date_last+"'";
            //抽取數據 分页抽取
            List<SignFamily> signFamiliesTemp= dbExtract.extractByPage(SignFamily.class,sql,sqlCount,true);
            List<SignFamily> signFamiliesTemp= SpringUtil.getBean(DBExtract.class).extractByPage(SignFamily.class,sql,sqlCount,true);
            model.setSql(sql);
            model.setSignFamilies(signFamiliesTemp);
            arriveSignFamilyExpenseStatus1Map.put(date,model);
@ -92,7 +87,7 @@ public class CachePool {
        if(patientGroup.size()==0) {
            String sql="select patient,label from wlyy_sign_patient_label_info where label_type='1' and status=1";
            String countSql="select count(id) from wlyy_sign_patient_label_info where label_type='1' and status=1";
            List<SignPatientLabelInfo> signPatientLabelInfoList = dbExtract.extractByPage(SignPatientLabelInfo.class,sql,countSql,true);
            List<SignPatientLabelInfo> signPatientLabelInfoList = SpringUtil.getBean(DBExtract.class).extractByPage(SignPatientLabelInfo.class,sql,countSql,true);
            for (SignPatientLabelInfo signPatientLabelInfo : signPatientLabelInfoList) {
                patientGroup.put(signPatientLabelInfo.getPatient(), signPatientLabelInfo.getLabel());
            }
@ -123,7 +118,7 @@ public class CachePool {
        if(healthGroup.size()==0){
            String sql="select patient,label from wlyy_sign_patient_label_info where label_type='2' and status=1";
            String countSql="select count(id) from wlyy_sign_patient_label_info where label_type='2' and status=1";
            List<SignPatientLabelInfo> signPatientLabelInfoList = dbExtract.extractByPage(SignPatientLabelInfo.class,sql,countSql,true);
            List<SignPatientLabelInfo> signPatientLabelInfoList = SpringUtil.getBean(DBExtract.class).extractByPage(SignPatientLabelInfo.class,sql,countSql,true);
            for(SignPatientLabelInfo signPatientLabelInfo:signPatientLabelInfoList){
                healthGroup.put(signPatientLabelInfo.getPatient(),signPatientLabelInfo.getLabel());
            }
@ -152,7 +147,7 @@ public class CachePool {
        if(diseaseGroup.size()==0){
            String sql="select patient,label from wlyy_sign_patient_label_info where label_type='3' and status=1";
            String countSql="select count(id) from wlyy_sign_patient_label_info where label_type='3' and status=1";
            List<SignPatientLabelInfo> signPatientLabelInfoList = dbExtract.extractByPage(SignPatientLabelInfo.class,sql,countSql,true);
            List<SignPatientLabelInfo> signPatientLabelInfoList = SpringUtil.getBean(DBExtract.class).extractByPage(SignPatientLabelInfo.class,sql,countSql,true);
            for(SignPatientLabelInfo signPatientLabelInfo:signPatientLabelInfoList){
                if(diseaseGroup.containsKey(signPatientLabelInfo.getPatient())){
                    List<String> code= diseaseGroup.get(signPatientLabelInfo.getPatient());
@ -169,5 +164,8 @@ public class CachePool {
    public static void cleanAllCache() {
        arriveSignFamilyExpenseStatus1Map.clear();
        patientGroup.clear();;
        diseaseGroup.clear();
        healthGroup.clear();
    }
}

+ 2 - 1
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/etl/role/Level1Role.java

@ -1,6 +1,7 @@
package com.yihu.wlyy.statistics.etl.role;
import com.yihu.wlyy.statistics.etl.model.ETLModel;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@ -14,7 +15,7 @@ import java.util.Map;
 * 1级维度 机构等级分组
 */
@Component
@Transactional
@Scope("prototype")
public class Level1Role {
    /**

+ 7 - 3
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/etl/role/Level2Role.java

@ -1,6 +1,7 @@
package com.yihu.wlyy.statistics.etl.role;
import com.yihu.wlyy.statistics.etl.model.ETLModel;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@ -13,8 +14,9 @@ import java.util.Map;
 * Created by Administrator on 2016.10.11.
 * 二级维度 的公共的统计算法
 */
@Component
@Transactional
@Scope("prototype")
public class Level2Role {
    public List<Map<String, Map<String, List<ETLModel>>>> elt(List<Map<String, List<ETLModel>>> data) throws  Exception{
        List<Map<String, Map<String, List<ETLModel>>>> returnMapsList=new ArrayList<Map<String, Map<String, List<ETLModel>>>>();
@ -57,9 +59,11 @@ public class Level2Role {
                //如果list不存在 新建一个
                if(etlModels==null){
                    etlModels=new ArrayList<>();
                    etlModels.add(eltModel);
                    childrens.put(sexKey,etlModels);
                }else{
                    etlModels.add(eltModel);
                }
                etlModels.add(eltModel);
                childrens.put(sexKey,etlModels);
            }
            tjMap.put(oneData.getKey(),childrens);
        }

+ 12 - 13
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/etl/storage/RedisStorage.java

@ -26,7 +26,6 @@ import java.util.*;
 */
@Component
@Scope("prototype")
@Transactional
public class RedisStorage {
    private Map<String, AdminTeam> adminTeamMap = new HashMap<String, AdminTeam>();
@ -593,9 +592,9 @@ public class RedisStorage {
                    }
                }
                if(deleteOneELTMap!=null){
                    List<ETLModel> etlModel= deleteOneELTMap.get(i+"");
                    if(etlModel!=null&&etlModel.size()>0){
                        num=num-etlModel.size();
                    List<ETLModel> etlModel1= deleteOneELTMap.get(i+"");
                    if(etlModel1!=null&&etlModel1.size()>0){
                        num=num-etlModel1.size();
                    }
                }
                jo.put("date", DateUtil.dateToStrLong(new Date()));
@ -648,9 +647,9 @@ public class RedisStorage {
                    }
                }
                if(deleteOneELTMap!=null){
                    List<ETLModel> etlModel= deleteOneELTMap.get(i+"");
                    if(etlModel!=null&&etlModel.size()>0){
                        num=num-etlModel.size();
                    List<ETLModel> etlModel1= deleteOneELTMap.get(i+"");
                    if(etlModel1!=null&&etlModel1.size()>0){
                        num=num-etlModel1.size();
                    }
                }
                jo.put("date", DateUtil.dateToStrLong(new Date()));
@ -723,9 +722,9 @@ public class RedisStorage {
                    }
                }
                if(deleteOneELTMap!=null){
                    List<ETLModel> etlModel= deleteOneELTMap.get(i+"");
                    if(etlModel!=null&&etlModel.size()>0){
                        num=num-etlModel.size();
                    List<ETLModel> etlModel1= deleteOneELTMap.get(i+"");
                    if(etlModel1!=null&&etlModel1.size()>0){
                        num=num-etlModel1.size();
                    }
                }
                jo.put("date", DateUtil.dateToStrLong(new Date()));
@ -753,9 +752,9 @@ public class RedisStorage {
                    }
                }
                if(deleteOneELTMap!=null){
                    List<ETLModel> etlModel= deleteOneELTMap.get(i+"");
                    if(etlModel!=null&&etlModel.size()>0){
                        num=num-etlModel.size();
                    List<ETLModel> etlModel1= deleteOneELTMap.get(i+"");
                    if(etlModel1!=null&&etlModel1.size()>0){
                        num=num-etlModel1.size();
                    }
                }
                jo.put("date", DateUtil.dateToStrLong(new Date()));

+ 74 - 90
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/business/CurrentDayAllQuotaJob.java

@ -47,8 +47,6 @@ import java.util.*;
@Component
@Scope("prototype")
public class CurrentDayAllQuotaJob implements Job {
    @Autowired
    private SignFamilyDao signFamilyDao;
    @Autowired
    private HospitalDao hospitalDao;
    @Autowired
@ -58,16 +56,6 @@ public class CurrentDayAllQuotaJob implements Job {
    @Autowired
    private DoctorAdminTeamDao doctorAdminTeamDao;
    @Autowired
    private Level1Role levelRole;
    @Autowired
    private Level2Role level2Role;
    @Autowired
    private Level3Role level3Role;
    @Autowired
    private RedisStorage redisStorage;
    @Autowired
    private JdbcTemplate jdbcTemplate ;
    @Autowired
    private ConsultDataFilter consultDataFilter;
    @Autowired
    private HealthGuideDataFilter healthGuideDataFilter;
@ -138,11 +126,11 @@ public class CurrentDayAllQuotaJob implements Job {
        quartzJobLog.setJobStartTime(new Date());
        allContent=new StringBuffer();
        //找出今天的签约信息 yesterday,now
        String sql=" select id,code,idcard,hospital,admin_team_code,expenses_status from wlyy_sign_family a where  a.type =2 and status in (1,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,patient from wlyy_sign_family a where  a.type =2 and status in (1,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);
        String deleteDql=" select id,code,idcard,hospital,admin_team_code,expenses_status from wlyy_sign_family a where  a.type =2 and  a.czrq>= '"+now+"' and  a.czrq< '"+tomorrow+"' and a.expenses_status=3 ";
        //找出需要扣除的数据
        String deleteDql=" select id,code,idcard,hospital,admin_team_code,expenses_status,patient from wlyy_sign_family a where  a.type =2 and  a.czrq>= '"+now+"' and  a.czrq< '"+tomorrow+"' and a.expenses_status=3 ";
        //抽取數據
        List<SignFamily> deleteSignFamilies= SpringUtil.getBean(DBExtract.class).extract(SignFamily.class,deleteDql);
        computequota_1(sql,signFamilies,deleteSignFamilies); //统计今天的签约
@ -157,9 +145,10 @@ public class CurrentDayAllQuotaJob implements Job {
        computequota_10();//统计今天的改签
        computequota_12(sql,signFamilies,deleteSignFamilies);//统计今天的签约下按年龄分组后再
        computequota_13(sql,signFamilies,deleteSignFamilies);//统计今天的签约量
        computequota_14(sql,signFamilies,deleteSignFamilies);//统计今天的签约数的扣费钱情况
        computequota_16_1(sql,signFamilies,deleteSignFamilies);//统计今天的签约数的扣费钱 1
        computequota_15(sql,signFamilies,deleteSignFamilies);//统计今天的健康分布统计
        computequota_16(sql,signFamilies,deleteSignFamilies);//统计今天的签约费用统计
        computequota_16_0(sql,signFamilies,deleteSignFamilies);//统计今天的签约数的未扣费 0
        quartzJobLog.setJobContent(allContent.toString());
        quartzJobLog.setJobName("实时统计");
        quartzJobLog.setJobId("11");
@ -168,35 +157,31 @@ public class CurrentDayAllQuotaJob implements Job {
        quartzJobLogDao.save(quartzJobLog);
    }
    private void computequota_14(String sql,List<SignFamily> signFamilies_1,List<SignFamily> deleteSignFamilies) {
        String quotaId="14";
    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 =0 or expenses_status is null) and  a.apply_date>= '"+now+"' 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>= '"+now+"' and  a.apply_date< '"+tomorrow+"' ";
           // List<SignFamily> signFamilies_2= SpringUtil.getBean(DBExtract.class).extractByPage(SignFamily.class,sql,sqlCount,true);
            //signFamilies_2.addAll(signFamilies_1);
            for(SignFamily signFamily:deleteSignFamilies){
                signFamily.setExpensesStatus("1");
            }
            //清洗數據
            FilterModel etlModels= SpringUtil.getBean(SignDataFilter.class).filter(signFamilies_1, SignDataFilter.level2Expenses,sql,null);
            //统计数据 一级维度
            List<Map<String, List<ETLModel>>>  returnDatas= levelRole.elt(etlModels.getEtlModelList());
            List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
            //统计数据 二级维度
            List<Map<String, Map<String, List<ETLModel>>>> level2Data= level2Role.elt(returnDatas);
            List<Map<String, Map<String, List<ETLModel>>>> level2Data= SpringUtil.getBean(Level2Role.class).elt(returnDatas);
            //清洗數據
            FilterModel deleteEtlModels= SpringUtil.getBean(SignDataFilter.class).filter(deleteSignFamilies,SignDataFilter.level2Expenses,sql,"now");
            //统计数据
            List<Map<String, List<ETLModel>>>  deleteReturnDatas= levelRole.elt(deleteEtlModels.getEtlModelList());
            List<Map<String, List<ETLModel>>>  deleteReturnDatas= SpringUtil.getBean(Level1Role.class).elt(deleteEtlModels.getEtlModelList());
            //统计数据 二级维度
            List<Map<String, Map<String, List<ETLModel>>>>  deleteLevel2Data= level2Role.elt(deleteReturnDatas);;
            //保存数据
            System.out.println("delete-data:"+deleteLevel2Data.size());
            redisStorage.saveByLevel2(level2Data,deleteLevel2Data,quotaId,2,4,0);
            List<Map<String, Map<String, List<ETLModel>>>>  deleteLevel2Data= SpringUtil.getBean(Level2Role.class).elt(deleteReturnDatas);;
            SpringUtil.getBean(RedisStorage.class).saveByLevel2(level2Data,deleteLevel2Data,quotaId,1,4,1);
            allContent.append(etlModels.getMessage());
        }catch (Exception e){
            e.printStackTrace();
            allContent.append("统计失败:"+e.getMessage());
        }
        allContent.append("-----------14----------");
        allContent.append("-----------16-1----------");
    }
    private void computequota_13(String sql,List<SignFamily> signFamilies,List<SignFamily> deleteSignFamilies) {
@ -207,13 +192,13 @@ public class CurrentDayAllQuotaJob implements Job {
           //清洗數據
           FilterModel etlModels= SpringUtil.getBean(SignDataFilter.class).filter(signFamilies,sql,null);
           //统计数据
           List<Map<String, List<ETLModel>>>  returnData= levelRole.elt(etlModels.getEtlModelList());
           List<Map<String, List<ETLModel>>>  returnData= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
            //清洗數據
            FilterModel deleteEtlModels= SpringUtil.getBean(SignDataFilter.class).filter(deleteSignFamilies,sql,"now");
            //统计数据
            List<Map<String, List<ETLModel>>>  deleteReturnDatas= levelRole.elt(deleteEtlModels.getEtlModelList());
            List<Map<String, List<ETLModel>>>  deleteReturnDatas= SpringUtil.getBean(Level1Role.class).elt(deleteEtlModels.getEtlModelList());
            //保存数据
            redisStorage.saveByLevel1(returnData,deleteReturnDatas,"13");
             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnData,deleteReturnDatas,"13");
            allContent.append(etlModels.getMessage());
        }catch (Exception e){
            e.printStackTrace();
@ -222,36 +207,35 @@ public class CurrentDayAllQuotaJob implements Job {
        allContent.append("-----------13----------");
    }
    private void computequota_16(String sql,List<SignFamily> signFamilies_1,List<SignFamily> deleteSignFamilies) {
    private void computequota_16_0(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 =0 or expenses_status is null) and  a.apply_date>= '"+now+"' 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>= '"+now+"' and  a.apply_date< '"+tomorrow+"' ";
           // List<SignFamily> signFamilies_2= SpringUtil.getBean(DBExtract.class).extractByPage(SignFamily.class,sql,sqlCount,true);
            //signFamilies_2.addAll(signFamilies_1);
            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>= '"+now+"' 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>= '"+now+"' 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_1, SignDataFilter.level2Expenses,sql,null);
            FilterModel etlModels= SpringUtil.getBean(SignDataFilter.class).filter(signFamilies_2, SignDataFilter.level2Expenses,sql,null);
            //统计数据
            //统计数据 一级维度
            List<Map<String, List<ETLModel>>>  returnDatas= levelRole.elt(etlModels.getEtlModelList());
            List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
            //统计数据 二级维度
            List<Map<String, Map<String, List<ETLModel>>>> level2Data= level2Role.elt(returnDatas);
            List<Map<String, Map<String, List<ETLModel>>>> level2Data= SpringUtil.getBean(Level2Role.class).elt(returnDatas);
            //清洗數據
            FilterModel deleteEtlModels= SpringUtil.getBean(SignDataFilter.class).filter(deleteSignFamilies,SignDataFilter.level2Expenses,sql,"now");
            FilterModel deleteEtlModels= SpringUtil.getBean(SignDataFilter.class).filter(deleteSignFamilies,SignDataFilter.level2Expenses,sql,null);
            //统计数据
            List<Map<String, List<ETLModel>>>  deleteReturnDatas= levelRole.elt(deleteEtlModels.getEtlModelList());
            List<Map<String, List<ETLModel>>>  deleteReturnDatas= SpringUtil.getBean(Level1Role.class).elt(deleteEtlModels.getEtlModelList());
            //统计数据 二级维度
            List<Map<String, Map<String, List<ETLModel>>>>  deleteLevel2Data= level2Role.elt(deleteReturnDatas);;
            List<Map<String, Map<String, List<ETLModel>>>>  deleteLevel2Data= SpringUtil.getBean(Level2Role.class).elt(deleteReturnDatas);;
            //保存数据
            redisStorage.saveByLevel2(level2Data,deleteLevel2Data,quotaId,2,4,0);
            SpringUtil.getBean(RedisStorage.class).saveByLevel2(level2Data,deleteLevel2Data,quotaId,0,4,0);
            allContent.append(etlModels.getMessage());
        }catch (Exception e){
            e.printStackTrace();
            allContent.append("统计失败:"+e.getMessage());
        }
        allContent.append("-----------16----------");
        allContent.append("-----------16-0----------");
    }
    private void computequota_15(String sql,List<SignFamily> signFamilies,List<SignFamily> deleteSignFamilies) {
@ -264,17 +248,17 @@ public class CurrentDayAllQuotaJob implements Job {
           //清洗數據
           FilterModel etlModels= SpringUtil.getBean(SignDataFilter.class).filter(signFamilies, SignDataFilter.level2Health,sql,null);
           //统计数据 一级维度
           List<Map<String, List<ETLModel>>>  returnDatas= levelRole.elt(etlModels.getEtlModelList());
           List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
           //统计数据 二级维度
           List<Map<String, Map<String, List<ETLModel>>>> patientSexRoleData= level2Role.elt(returnDatas);
           List<Map<String, Map<String, List<ETLModel>>>> patientSexRoleData= SpringUtil.getBean(Level2Role.class).elt(returnDatas);
           //清洗數據
           FilterModel deleteEtlModels= SpringUtil.getBean(SignDataFilter.class).filter(deleteSignFamilies,SignDataFilter.level2Health,sql,"now");
           //统计数据
           List<Map<String, List<ETLModel>>>  deleteReturnDatas= levelRole.elt(deleteEtlModels.getEtlModelList());
           List<Map<String, List<ETLModel>>>  deleteReturnDatas= SpringUtil.getBean(Level1Role.class).elt(deleteEtlModels.getEtlModelList());
           //统计数据 二级维度
           List<Map<String, Map<String, List<ETLModel>>>>  deleteLevel2Data= level2Role.elt(deleteReturnDatas);;
           List<Map<String, Map<String, List<ETLModel>>>>  deleteLevel2Data= SpringUtil.getBean(Level2Role.class).elt(deleteReturnDatas);;
            //保存数据
            redisStorage.saveByLevel2(patientSexRoleData,deleteLevel2Data,quotaId,4,5,0);
             SpringUtil.getBean(RedisStorage.class).saveByLevel2(patientSexRoleData,deleteLevel2Data,quotaId,4,5,0);
           allContent.append(etlModels.getMessage());
        }catch (Exception e){
            e.printStackTrace();
@ -295,21 +279,21 @@ public class CurrentDayAllQuotaJob implements Job {
            //清洗數據
            FilterModel etlModels= SpringUtil.getBean(SignDataFilter.class).filter(signFamilies,SignDataFilter.level2Age,SignDataFilter.level3Disease,sql,null);
            //统计数据 一级维度
            List<Map<String, List<ETLModel>>>  returnDatas= levelRole.elt(etlModels.getEtlModelList());
            List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
            //统计数据 二级维度
            List<Map<String, Map<String, List<ETLModel>>>> patientSexRoleData= level2Role.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=level3Role.elt(patientSexRoleData);
            List<Map<String, Map<String, Map<String, List<ETLModel>>>>> returnD= SpringUtil.getBean(Level3Role.class).elt(patientSexRoleData);
            //清洗數據
            FilterModel deleteEtlModels= SpringUtil.getBean(SignDataFilter.class).filter(deleteSignFamilies,SignDataFilter.level2Age,SignDataFilter.level3Disease,sql,null);
            //统计数据 一级维度
            List<Map<String, List<ETLModel>>>  deleteReturnDatas= levelRole.elt(deleteEtlModels.getEtlModelList());
            List<Map<String, List<ETLModel>>>  deleteReturnDatas= SpringUtil.getBean(Level1Role.class).elt(deleteEtlModels.getEtlModelList());
            //统计数据 二级维度
            List<Map<String, Map<String, List<ETLModel>>>> deletePatientSexRoleData= level2Role.elt(deleteReturnDatas);
            List<Map<String, Map<String, List<ETLModel>>>> deletePatientSexRoleData= SpringUtil.getBean(Level2Role.class).elt(deleteReturnDatas);
            //统计数据 三级维度
            List<Map<String, Map<String, Map<String, List<ETLModel>>>>> deleteReturnD=level3Role.elt(deletePatientSexRoleData);
            List<Map<String, Map<String, Map<String, List<ETLModel>>>>> deleteReturnD=SpringUtil.getBean(Level3Role.class).elt(deletePatientSexRoleData);
            //保存数据
            redisStorage.saveByLevel3(returnD,deleteReturnD,quotaId,6,4,2,1,1,1);
             SpringUtil.getBean(RedisStorage.class).saveByLevel3(returnD,deleteReturnD,quotaId,6,4,2,1,1,1);
        }catch (Exception e){
        }
@ -349,13 +333,13 @@ public class CurrentDayAllQuotaJob implements Job {
            //清洗數據
            FilterModel etlModels= SpringUtil.getBean(SignDataFilter.class).filter(signFamilies,sql,"now");
            //统计数据
            List<Map<String, List<ETLModel>>>  returnDatas= levelRole.elt(etlModels.getEtlModelList());
            List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
            //清洗數據
            FilterModel deleteEtlModels= SpringUtil.getBean(SignDataFilter.class).filter(deleteSignFamilies,sql,"now");
            //统计数据
            List<Map<String, List<ETLModel>>>  deleteReturnDatas= levelRole.elt(deleteEtlModels.getEtlModelList());
            List<Map<String, List<ETLModel>>>  deleteReturnDatas= SpringUtil.getBean(Level1Role.class).elt(deleteEtlModels.getEtlModelList());
            //保存数据
            redisStorage.saveByLevel1(returnDatas,deleteReturnDatas,"1");
             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas,deleteReturnDatas,"1");
            allContent.append(etlModels.getMessage());
        }catch (Exception e){
            e.printStackTrace();
@ -375,9 +359,9 @@ public class CurrentDayAllQuotaJob implements Job {
            //清洗數據
            FilterModel etlModels= SpringUtil.getBean(SignDataFilter.class).filter(signFamilies,sql);
            //统计数据
            List<Map<String, List<ETLModel>>>  returnDatas= levelRole.elt(etlModels.getEtlModelList());
            List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
            //保存数据
            redisStorage.saveByLevel1(returnDatas,null,quotaId);
             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas,null,quotaId);
            allContent.append(etlModels.getMessage());
        }catch (Exception e){
            e.printStackTrace();
@ -396,9 +380,9 @@ public class CurrentDayAllQuotaJob implements Job {
            //過濾數據
            FilterModel etlModels= consultDataFilter.filter(consultTeams,sql,null);
            //统计数据
            List<Map<String, List<ETLModel>>>  returnDatas= levelRole.elt(etlModels.getEtlModelList());
            List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
            //保存数据
            redisStorage.saveByLevel1(returnDatas,null,quotaId);
             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas,null,quotaId);
            allContent.append(etlModels.getMessage());
        }catch (Exception e){
            e.printStackTrace();
@ -418,9 +402,9 @@ public class CurrentDayAllQuotaJob implements Job {
            FilterModel etlModels = followUpDataFilter.filter(plans, sql, null);
            // 统计数据
            List<Map<String, List<ETLModel>>> returnDatas = levelRole.elt(etlModels.getEtlModelList());
            List<Map<String, List<ETLModel>>> returnDatas = SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
            //保存数据
            redisStorage.saveByLevel1(returnDatas,null,quotaId);
             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas,null,quotaId);
            allContent.append(etlModels.getMessage());
        }catch (Exception e){
            e.printStackTrace();
@ -438,9 +422,9 @@ public class CurrentDayAllQuotaJob implements Job {
            //過濾數據
            FilterModel etlModels= healthGuideDataFilter.filter(consultTeams,sql,null);
            //统计数据
            List<Map<String, List<ETLModel>>>  returnDatas= levelRole.elt(etlModels.getEtlModelList());
            List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
            //保存数据
            redisStorage.saveByLevel1(returnDatas,null,quotaId);
             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas,null,quotaId);
            allContent.append(etlModels.getMessage());
        }catch (Exception e){
            e.printStackTrace();
@ -459,17 +443,17 @@ public class CurrentDayAllQuotaJob implements Job {
           //清洗數據
           FilterModel etlModels= SpringUtil.getBean(SignDataFilter.class).filter(signFamilies,SignDataFilter.level2Sex,sql,null);
           //统计数据 1级维度
           List<Map<String, List<ETLModel>>>  returnDatas= levelRole.elt(etlModels.getEtlModelList());
           List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
           //统计数据 二级维度
           List<Map<String, Map<String, List<ETLModel>>>>  level2Data= level2Role.elt(returnDatas);;
           List<Map<String, Map<String, List<ETLModel>>>>  level2Data= SpringUtil.getBean(Level2Role.class).elt(returnDatas);;
           //清洗數據
           FilterModel deleteEtlModels= SpringUtil.getBean(SignDataFilter.class).filter(deleteSignFamilies,SignDataFilter.level2Sex,sql,"now");
           //统计数据
           List<Map<String, List<ETLModel>>>  deleteReturnDatas= levelRole.elt(deleteEtlModels.getEtlModelList());
           List<Map<String, List<ETLModel>>>  deleteReturnDatas= SpringUtil.getBean(Level1Role.class).elt(deleteEtlModels.getEtlModelList());
           //统计数据 二级维度
           List<Map<String, Map<String, List<ETLModel>>>>  deleteLevel2Data= level2Role.elt(deleteReturnDatas);;
           List<Map<String, Map<String, List<ETLModel>>>>  deleteLevel2Data= SpringUtil.getBean(Level2Role.class).elt(deleteReturnDatas);;
            //保存数据
            redisStorage.saveByLevel2(level2Data,deleteLevel2Data,quotaId,3,1);
            SpringUtil.getBean(RedisStorage.class).saveByLevel2(level2Data,deleteLevel2Data,quotaId,3,1);
           allContent.append(etlModels.getMessage());
        }catch (Exception e){
            e.printStackTrace();
@ -487,17 +471,17 @@ public class CurrentDayAllQuotaJob implements Job {
            //清洗數據
            FilterModel etlModels= SpringUtil.getBean(SignDataFilter.class).filter(signFamilies,SignDataFilter.level2Group,sql,null);
            //统计数据 1级维度
            List<Map<String, List<ETLModel>>>  returnDatas= levelRole.elt(etlModels.getEtlModelList());
            List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
            //统计数据 二级维度
            List<Map<String, Map<String, List<ETLModel>>>>  level2Data= level2Role.elt(returnDatas);
            List<Map<String, Map<String, List<ETLModel>>>>  level2Data= SpringUtil.getBean(Level2Role.class).elt(returnDatas);
            //清洗數據
            FilterModel deleteEtlModels= SpringUtil.getBean(SignDataFilter.class).filter(deleteSignFamilies,SignDataFilter.level2Group,sql,"now");
            //统计数据
            List<Map<String, List<ETLModel>>>  deleteReturnDatas= levelRole.elt(deleteEtlModels.getEtlModelList());
            List<Map<String, List<ETLModel>>>  deleteReturnDatas= SpringUtil.getBean(Level1Role.class).elt(deleteEtlModels.getEtlModelList());
            //统计数据 二级维度
            List<Map<String, Map<String, List<ETLModel>>>>  deleteLevel2Data= level2Role.elt(deleteReturnDatas);;
            List<Map<String, Map<String, List<ETLModel>>>>  deleteLevel2Data= SpringUtil.getBean(Level2Role.class).elt(deleteReturnDatas);;
            //保存数据 1 表示:从1开始循环 6表示:循环6次 3表示 2级维度是 3
            redisStorage.saveByLevel2(level2Data,deleteLevel2Data,quotaId,6,3,-1);
             SpringUtil.getBean(RedisStorage.class).saveByLevel2(level2Data,deleteLevel2Data,quotaId,6,3,-1);
            allContent.append(etlModels.getMessage());
        }catch (Exception e){
            e.printStackTrace();
@ -516,17 +500,17 @@ public class CurrentDayAllQuotaJob implements Job {
            //清洗數據
            FilterModel etlModels= SpringUtil.getBean(SignDataFilter.class).filter(signFamilies,SignDataFilter.level2Age,sql,null);
            //统计数据 1级维度
            List<Map<String, List<ETLModel>>>  returnDatas= levelRole.elt(etlModels.getEtlModelList());
            List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
            //统计数据 二级维度
            List<Map<String, Map<String, List<ETLModel>>>>  level2Data= level2Role.elt(returnDatas);;
            List<Map<String, Map<String, List<ETLModel>>>>  level2Data= SpringUtil.getBean(Level2Role.class).elt(returnDatas);;
            //清洗數據
            FilterModel deleteEtlModels= SpringUtil.getBean(SignDataFilter.class).filter(deleteSignFamilies,SignDataFilter.level2Age,sql,"now");
            //统计数据
            List<Map<String, List<ETLModel>>>  deleteReturnDatas= levelRole.elt(deleteEtlModels.getEtlModelList());
            List<Map<String, List<ETLModel>>>  deleteReturnDatas= SpringUtil.getBean(Level1Role.class).elt(deleteEtlModels.getEtlModelList());
            //统计数据 二级维度
            List<Map<String, Map<String, List<ETLModel>>>>  deleteLevel2Data= level2Role.elt(deleteReturnDatas);;
            List<Map<String, Map<String, List<ETLModel>>>>  deleteLevel2Data= SpringUtil.getBean(Level2Role.class).elt(deleteReturnDatas);;
            //保存数据
            redisStorage.saveByLevel2(level2Data,deleteLevel2Data,quotaId,6,2);
             SpringUtil.getBean(RedisStorage.class).saveByLevel2(level2Data,deleteLevel2Data,quotaId,6,2);
            allContent.append(etlModels.getMessage());
        }catch (Exception e){
            e.printStackTrace();
@ -545,9 +529,9 @@ public class CurrentDayAllQuotaJob implements Job {
            //清洗數據
            FilterModel etlModels= SpringUtil.getBean(SignDataFilter.class).filter(signFamilies,sql,null);
            //统计数据
            List<Map<String, List<ETLModel>>>  returnDatas= levelRole.elt(etlModels.getEtlModelList());
            List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
            //保存数据
            redisStorage.saveByLevel1(returnDatas,null,quotaId);
             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas,null,quotaId);
            allContent.append(etlModels.getMessage());
        }catch (Exception e){
            e.printStackTrace();
@ -566,9 +550,9 @@ public class CurrentDayAllQuotaJob implements Job {
            //清洗數據
            FilterModel etlModels= SpringUtil.getBean(SignDataFilter.class).filter(signFamilies,sql,null);
            //统计数据
            List<Map<String, List<ETLModel>>>  returnDatas= levelRole.elt(etlModels.getEtlModelList());
            List<Map<String, List<ETLModel>>>  returnDatas= SpringUtil.getBean(Level1Role.class).elt(etlModels.getEtlModelList());
            //保存数据
            redisStorage.saveByLevel1(returnDatas,null,quotaId);
             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas,null,quotaId);
           allContent.append(etlModels.getMessage());
        }catch (Exception e){
            e.printStackTrace();

+ 2 - 24
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/model/signfamily/SignFamily.java

@ -430,31 +430,9 @@ public class SignFamily extends IdEntity {
	public String toString() {
		return "SignFamily{" +
				"code='" + code + '\'' +
				", lwCode='" + lwCode + '\'' +
				", type=" + type +
				", patient='" + patient + '\'' +
				", openid='" + openid + '\'' +
				", name='" + name + '\'' +
				", idcard='" + idcard + '\'' +
				", ssc='" + ssc + '\'' +
				", mobile='" + mobile + '\'' +
				", emerMobile='" + emerMobile + '\'' +
				", expensesStatus='" + expensesStatus + '\'' +
				", hospital='" + hospital + '\'' +
				", hospitalName='" + hospitalName + '\'' +
				", doctor='" + doctor + '\'' +
				", doctorName='" + doctorName + '\'' +
				", doctorHealth='" + doctorHealth + '\'' +
				", doctorHealthName='" + doctorHealthName + '\'' +
				", begin=" + begin +
				", end=" + end +
				", status=" + status +
				", images='" + images + '\'' +
				", reason='" + reason + '\'' +
				", czrq=" + czrq +
				", teamCode='" + teamCode + '\'' +
				", applyDate=" + applyDate +
				", signType='" + signType + '\'' +
				", familyCode='" + familyCode + '\'' +
				", adminTeamCode=" + adminTeamCode +
				'}';
	}