esb před 8 roky
rodič
revize
7fbadcf0c7

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

@ -138,10 +138,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 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 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 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 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); //统计今天的签约
@ -156,9 +157,9 @@ public class CurrentDayAllQuotaJob implements Job {
        computequota_10();//统计今天的改签
        computequota_12(sql,signFamilies,deleteSignFamilies);//统计今天的签约下按年龄分组后再
        computequota_13(sql,signFamilies,deleteSignFamilies);//统计今天的签约量
        computequota_14(sql,signFamilies);//统计今天的签约数的扣费钱情况
        computequota_14(sql,signFamilies,deleteSignFamilies);//统计今天的签约数的扣费钱情况
        computequota_15(sql,signFamilies,deleteSignFamilies);//统计今天的健康分布统计
        computequota_16(sql,signFamilies);//统计今天的签约费用统计
        computequota_16(sql,signFamilies,deleteSignFamilies);//统计今天的签约费用统计
        quartzJobLog.setJobContent(allContent.toString());
        quartzJobLog.setJobName("实时统计");
        quartzJobLog.setJobId("11");
@ -167,7 +168,7 @@ public class CurrentDayAllQuotaJob implements Job {
        quartzJobLogDao.save(quartzJobLog);
    }
    private void computequota_14(String sql,List<SignFamily> signFamilies_1) {
    private void computequota_14(String sql,List<SignFamily> signFamilies_1,List<SignFamily> deleteSignFamilies) {
        String quotaId="14";
        try{
            //找出今天的签约信息
@ -176,8 +177,8 @@ public class CurrentDayAllQuotaJob implements Job {
            //抽取數據 expensesStatus=1
           // List<SignFamily> signFamilies_1= SpringUtil.getBean(DBExtract.class).extractByPage(SignFamily.class,sql,sqlCount,true);
            //抽取第二种条件的语句
             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  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 !=1 or expenses_status is null) and  a.apply_date>= '"+now+"' and  a.apply_date< '"+tomorrow+"' ";
             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);
            //抽取的语句
            sql=" select id,code,idcard,hospital,admin_team_code,expenses_status from wlyy_sign_family a where  a.type =2  and  a.apply_date>= '"+now+"' and  a.apply_date< '"+tomorrow+"' ";
@ -189,8 +190,14 @@ public class CurrentDayAllQuotaJob implements Job {
            List<Map<String, List<ETLModel>>>  returnDatas= levelRole.elt(etlModels.getEtlModelList());
            //统计数据 二级维度
            List<Map<String, Map<String, List<ETLModel>>>> level2Data= level2Role.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, Map<String, List<ETLModel>>>>  deleteLevel2Data= level2Role.elt(deleteReturnDatas);;
            //保存数据
            redisStorage.saveByLevel2(level2Data,null,quotaId,2,4,0);
            redisStorage.saveByLevel2(level2Data,deleteLevel2Data,quotaId,2,4,0);
            allContent.append(etlModels.getMessage());
        }catch (Exception e){
            e.printStackTrace();
@ -222,31 +229,30 @@ public class CurrentDayAllQuotaJob implements Job {
        allContent.append("-----------13----------");
    }
    private void computequota_16(String sql,List<SignFamily> signFamilies_1) {
    private void computequota_16(String sql,List<SignFamily> signFamilies_1,List<SignFamily> deleteSignFamilies) {
        String quotaId="16";
        //找出今天的签约信息
        try{
            //找出今天的签约信息
            //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.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=1 and  a.apply_date>= '"+now+"' and  a.apply_date< '"+tomorrow+"' ";
            //抽取數據 expensesStatus=1
           // List<SignFamily> signFamilies_1= SpringUtil.getBean(DBExtract.class).extractByPage(SignFamily.class,sql,sqlCount,true);
            //抽取第二种条件的语句
             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  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 !=1 or expenses_status is null) and  a.apply_date>= '"+now+"' and  a.apply_date< '"+tomorrow+"' ";
            //抽取第二种条件的语句 找出未缴费的
            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  a.apply_date>= '"+now+"' and  a.apply_date< '"+tomorrow+"' ";
            //清洗數據
             //清洗數據
            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, Map<String, List<ETLModel>>>> level2Data= level2Role.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, Map<String, List<ETLModel>>>>  deleteLevel2Data= level2Role.elt(deleteReturnDatas);;
            //保存数据
            redisStorage.saveByLevel2(level2Data,null,quotaId,2,4,0);
            redisStorage.saveByLevel2(level2Data,deleteLevel2Data,quotaId,2,4,0);
            allContent.append(etlModels.getMessage());
        }catch (Exception e){
            e.printStackTrace();