Forráskód Böngészése

修改日志格式

esb 8 éve
szülő
commit
a988233083
23 módosított fájl, 408 hozzáadás és 96 törlés
  1. 15 10
      patient-co-statistics/pom.xml
  2. 23 10
      patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/etl/dataFilter/ConsultDataFilter.java
  3. 26 12
      patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/etl/dataFilter/FollowUpDataFilter.java
  4. 24 11
      patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/etl/dataFilter/HealthGuideDataFilter.java
  5. 26 14
      patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/etl/dataFilter/SignDataFilter.java
  6. 73 0
      patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/etl/model/ErrorModel.java
  7. 9 10
      patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/etl/model/FilterModel.java
  8. 92 0
      patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/etl/model/LogModel.java
  9. 5 1
      patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/business/AllSignExpenseStatusJob.java
  10. 3 1
      patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/business/AllSignJob.java
  11. 3 1
      patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/business/ChangeSignJob.java
  12. 3 1
      patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/business/ConsultJob.java
  13. 15 14
      patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/business/CurrentDayAllQuotaJob.java
  14. 3 1
      patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/business/FollowUpJob.java
  15. 3 1
      patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/business/HealthGuideJob.java
  16. 3 1
      patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/business/HealthSignJob.java
  17. 3 1
      patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/business/SignAgeGroupDiseaseJob.java
  18. 3 1
      patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/business/SignExpenseStatusJob.java
  19. 6 4
      patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/business/SignJob.java
  20. 3 1
      patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/business/UnSignJob.java
  21. 3 1
      patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/business/WaitSignJob.java
  22. 45 0
      patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/util/JsonDateValueProcessor.java
  23. 19 0
      patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/util/JsonUtil.java

+ 15 - 10
patient-co-statistics/pom.xml

@ -8,8 +8,8 @@
    <modelVersion>4.0.0</modelVersion>
    <!--打成war包需要的配置-->
    <packaging>war</packaging>
    <!--<packaging>jar</packaging>-->
    <!--<packaging>war</packaging>-->
    <packaging>jar</packaging>
    <name>patient-co-statistics</name>
    <properties>
@ -39,7 +39,7 @@
        <version.log4j2>2.4.1</version.log4j2>
        <version.logback>1.1.7</version.logback>
        <version.mysql>5.1.38</version.mysql>
        <version.quartz>2.2.1</version.quartz>
        <version.quartz>2.2.3</version.quartz>
        <version.servlet-api>3.1.0</version.servlet-api>
        <version.slf4j>1.7.21</version.slf4j>
        <version.spring-boot>1.3.5.RELEASE</version.spring-boot>
@ -371,7 +371,7 @@
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
                <version>${version.spring-boot}</version>
                <scope>provided</scope>
                <!--<scope>provided</scope>-->
            </dependency>
        <dependency>
            <groupId>org.json</groupId>
@ -388,18 +388,23 @@
            <artifactId>spring-orm</artifactId>
            <version>4.1.8.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.4</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <!--打成war包需要的配置-->
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
            <!--<plugin>-->
                <!--<artifactId>maven-war-plugin</artifactId>-->
                <!--<configuration>-->
                    <!--<failOnMissingWebXml>false</failOnMissingWebXml>-->
                <!--</configuration>-->
            <!--</plugin>-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>

+ 23 - 10
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/etl/dataFilter/ConsultDataFilter.java

@ -4,7 +4,9 @@ import com.yihu.wlyy.statistics.dao.DoctorAdminTeamDao;
import com.yihu.wlyy.statistics.dao.HospitalDao;
import com.yihu.wlyy.statistics.dao.TownDao;
import com.yihu.wlyy.statistics.etl.model.ETLModel;
import com.yihu.wlyy.statistics.etl.model.ErrorModel;
import com.yihu.wlyy.statistics.etl.model.FilterModel;
import com.yihu.wlyy.statistics.etl.model.LogModel;
import com.yihu.wlyy.statistics.job.business.Constant;
import com.yihu.wlyy.statistics.model.consult.ConsultTeam;
import com.yihu.wlyy.statistics.model.hosptial.Hospital;
@ -33,7 +35,7 @@ public class ConsultDataFilter {
    @Autowired
    private DoctorAdminTeamDao doctorAdminTeamDao;
    private StringBuffer errorContent =new StringBuffer();//错误信息
    List<ErrorModel> errorModels=new ArrayList<ErrorModel>();//错误信息
    public FilterModel filter(List<ConsultTeam> consultTeams, String sql, String filterDate){
        //查找出系统全部的全科医生
@ -63,30 +65,33 @@ public class ConsultDataFilter {
        Boolean isAll=true;//是否统计失败
        //统计有已改簽的
        List<ETLModel> etlModels=new ArrayList<ETLModel>();
        LogModel logModel=new LogModel();
        errorModels=new ArrayList<ErrorModel>();
        //数据过滤清洗出脏数据  -----------start
        for(ConsultTeam consultTeam:consultTeams){
            ETLModel etlModel=new ETLModel();
            Long adminId=consultTeam.getAdminTeamCode();
            if(adminId == null||adminId<=0) {
                errorContent.append("咨询Id:"+consultTeam.getId()+",咨询的团队(wlyy_consult_team)中的admin_team_code数据为空");
                errorModels.add(ErrorModel.newEM(consultTeam.getId().toString(),ErrorModel.consult_adminTeam_null));
                isAll=false;
                continue;
            }
            String teamCode = consultTeam.getAdminTeamCode()+"";//行政的团队的id
            AdminTeam adminTeam=adminTeamMap.get(teamCode);
            if(adminTeam == null) {
                errorContent.append("咨询Id:"+consultTeam.getId()+",团队Id:"+adminTeam.getId()+",咨询的团队(wlyy_consult_team)中的团队不存在");
                errorModels.add(ErrorModel.newEM(consultTeam.getId().toString(),ErrorModel.consult_adminTeam_noExist));
                isAll=false;
                continue;
            }
            String orgCode = adminTeam.getOrgCode();
            if(StringUtils.isEmpty(orgCode)) {
                errorContent.append("咨询Id:"+consultTeam.getId()+",团队Id:"+adminTeam.getId()+",医生团队的机构为空");
                errorModels.add(ErrorModel.newEM(consultTeam.getId().toString(),ErrorModel.consult_hospital_null));
                isAll=false;
                continue;
            }
            if(orgCode.length()!=10) {
                errorContent.append("咨询Id:"+consultTeam.getId()+",团队Id:"+adminTeam.getId()+",咨询的团队(wlyy_consult_team)中的机构是测试机构");
                errorModels.add(ErrorModel.newEM(consultTeam.getId().toString(),ErrorModel.consult_hospital_isTest));
                isAll=false;
                errorCount++;
                continue;
@ -103,19 +108,19 @@ public class ConsultDataFilter {
            //统计区 ---------------start--------------
            Hospital hospital=hospitalsMap.get(orgCodeTemp);
            if(hospital == null) {
                errorContent.append("咨询Id:"+consultTeam.getId()+",机构Id,医生团队的机构不存在");
                errorModels.add(ErrorModel.newEM(consultTeam.getId().toString(),ErrorModel.consult_hospital_noExist));
                isAll=false;
                continue;
            }
            String town=hospital.getTown();
            if(StringUtils.isEmpty(town)) {
                errorContent.append("咨询Id:"+consultTeam.getId()+",机构Id:"+hospital.getId()+",机构表的区字段(town)为空");
                errorModels.add(ErrorModel.newEM(consultTeam.getId().toString(),ErrorModel.consult_town_null));
                isAll=false;
                continue;
            }
            Town townObj=townsMap.get(town);
            if(townObj==null) {
                errorContent.append("咨询Id:"+consultTeam.getId()+",机构Id:"+hospital.getId()+",机构表的区不存在");
                errorModels.add(ErrorModel.newEM(consultTeam.getId().toString(),ErrorModel.consult_town_noExist));
                isAll=false;
                continue;
            }
@ -130,8 +135,16 @@ public class ConsultDataFilter {
            orgCount++;
            adminCount++;
        }
        String message=saveContent(consultTeams.size(),adminCount,orgCount,townCount,cityCount,isAll,errorContent,errorCount,sql,filterDate);
        return FilterModel.getFiltrerMode(message,etlModels,isAll);
        logModel.setDate(filterDate);
        logModel.setEndTime(new Date());
        logModel.setExcuteSql(sql);
        logModel.setAllNum(consultTeams.size());
        logModel.setSuccess(isAll);
        logModel.setSuccessNum(adminCount.intValue());
        logModel.setModelList(errorModels);
        logModel.setErrorNum(errorCount.intValue());
       // String message=saveContent(consultTeams.size(),adminCount,orgCount,townCount,cityCount,isAll,errorContent,errorCount,sql,filterDate);
        return FilterModel.getFiltrerMode(logModel,etlModels,isAll);
    }
    private String saveContent(Integer size, Long qkCount, Long orgCount, Long townCount, Long cityCount, boolean isAll, StringBuffer errorContent,Long errorCount,String sql,String filterDate) {

+ 26 - 12
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/etl/dataFilter/FollowUpDataFilter.java

@ -5,7 +5,9 @@ import com.yihu.wlyy.statistics.dao.HospitalDao;
import com.yihu.wlyy.statistics.dao.SignFamilyDao;
import com.yihu.wlyy.statistics.dao.TownDao;
import com.yihu.wlyy.statistics.etl.model.ETLModel;
import com.yihu.wlyy.statistics.etl.model.ErrorModel;
import com.yihu.wlyy.statistics.etl.model.FilterModel;
import com.yihu.wlyy.statistics.etl.model.LogModel;
import com.yihu.wlyy.statistics.job.business.Constant;
import com.yihu.wlyy.statistics.model.consult.ConsultTeam;
import com.yihu.wlyy.statistics.model.hosptial.Hospital;
@ -36,7 +38,8 @@ public class FollowUpDataFilter {
    @Autowired
    private SignFamilyDao signFamilyDao;
    private StringBuffer errorContent =new StringBuffer();//错误信息
    List<ErrorModel> errorModels=new ArrayList<ErrorModel>();//错误信息
    public FilterModel filter(List<Map<String,Object>> plans, String sql, String filterDate){
        //查找出系统全部的医生
        List<AdminTeam> adminTeams=doctorAdminTeamDao.findAllTeam();
@ -66,29 +69,32 @@ public class FollowUpDataFilter {
        //统计有已改簽的
        List<ETLModel> etlModels=new ArrayList<ETLModel>();
        //数据过滤清洗出脏数据  -----------start
        LogModel logModel=new LogModel();
        errorModels=new ArrayList<ErrorModel>();
        for(Map<String,Object> plan:plans){
            ETLModel etlModel=new ETLModel();
            Object idCard=plan.get("id_card");//得到隨訪的身份證
            if(StringUtils.isEmpty(idCard)){
                errorContent.append("随访id:"+plan.get("id")+",随访(fv_plan)表id_card为空");
                errorModels.add(ErrorModel.newEM(plan.get("id").toString(),ErrorModel.fv_idcard_null));
                isAll=false;
                continue;
            }
            SignFamily signFamily=signFamilyDao.findByIdcard(idCard.toString());
            if(signFamily==null){
                errorContent.append("随访id:"+plan.get("id")+",签约code:,随访中的患者身份证在签约表中找不到数据");
                errorModels.add(ErrorModel.newEM(plan.get("id").toString(),ErrorModel.fv_sign_noExist));
                isAll=false;
                continue;
            }
            Long adminTeamId=signFamily.getAdminTeamCode();
            if(adminTeamId==null||adminTeamId<=0){
                errorContent.append("随访id:"+plan.get("id")+",签约code:"+signFamily.getCode()+" 中的adminTeamId为空");
                errorModels.add(ErrorModel.newEM(plan.get("id").toString(),ErrorModel.fv_adminTeam_null));
                isAll=false;
                continue;
            }
            AdminTeam adminTeam=adminTeamMap.get(signFamily.getAdminTeamCode());
            if(adminTeam==null){
                errorContent.append("随访id:"+plan.get("id")+",签约code:"+signFamily.getCode()+",医生团队不存在");
                errorModels.add(ErrorModel.newEM(plan.get("id").toString(),ErrorModel.fv_adminTeam_noExist));
                isAll=false;
                continue;
            }
@ -97,12 +103,12 @@ public class FollowUpDataFilter {
            String orgCodeTemp="";
            String orgCode=adminTeam.getOrgCode();
            if(StringUtils.isEmpty(orgCode)){
                errorContent.append("随访id:"+plan.get("id")+",团队Id:"+adminTeam.getId()+",随访的医生所属的团队(wlyy_admin_team)机构为空");
                errorModels.add(ErrorModel.newEM(plan.get("id").toString(),ErrorModel.fv_hospital_null));
                isAll=false;
                continue;
            }
            if(orgCode.length()!=10) {
                errorContent.append("签约code:"+signFamily.getCode()+",签约表中(wlyy_sign_family)中的hospital数据是测试数据");
                errorModels.add(ErrorModel.newEM(plan.get("id").toString(),ErrorModel.fv_hospital_isTest));
                isAll=false;
                errorCount++;
                continue;
@ -117,20 +123,20 @@ public class FollowUpDataFilter {
            }
            Hospital hospital=hospitalsMap.get(orgCodeTemp);
            if(hospital==null){
                errorContent.append("随访id:"+plan.get("id")+",团队Id:"+adminTeam.getId()+",随访的医生所属的团队的机构不存在");
                errorModels.add(ErrorModel.newEM(plan.get("id").toString(),ErrorModel.fv_hospital_noExist));
                isAll=false;
                continue;
            }
            String town =hospital.getTown();
            if(StringUtils.isEmpty(town)) {
                errorContent.append("随访id:"+plan.get("id")+",机构Id:"+hospital.getId()+",机构表的中的town为空");
                errorModels.add(ErrorModel.newEM(plan.get("id").toString(),ErrorModel.fv_town_null));
                isAll=false;
                errorCount++;
                continue;
            }
            Town townObj =townsMap.get(town);
            if(townObj==null) {
                errorContent.append("随访id:"+plan.get("id")+",机构Id:"+hospital.getId()+",机构表的中的town不存在");
                errorModels.add(ErrorModel.newEM(plan.get("id").toString(),ErrorModel.fv_town_noExist));
                isAll=false;
                errorCount++;
                continue;
@ -147,8 +153,16 @@ public class FollowUpDataFilter {
            orgCount++;
            adminCount++;
        }
        String message=saveContent(plans.size(),adminCount,orgCount,townCount,cityCount,isAll,errorContent,errorCount,sql,filterDate);
        return FilterModel.getFiltrerMode(message,etlModels,isAll);
        logModel.setDate(filterDate);
        logModel.setEndTime(new Date());
        logModel.setExcuteSql(sql);
        logModel.setAllNum(plans.size());
        logModel.setSuccess(isAll);
        logModel.setSuccessNum(adminCount.intValue());
        logModel.setModelList(errorModels);
        logModel.setErrorNum(errorCount.intValue());
        // String message=saveContent(plans.size(),adminCount,orgCount,townCount,cityCount,isAll,errorContent,errorCount,sql,filterDate);
        return FilterModel.getFiltrerMode(logModel,etlModels,isAll);
    }
    private String saveContent(Integer size, Long qkCount, Long orgCount, Long townCount, Long cityCount, boolean isAll, StringBuffer errorContent,Long errorCount,String sql,String filterDate) {

+ 24 - 11
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/etl/dataFilter/HealthGuideDataFilter.java

@ -5,7 +5,9 @@ import com.yihu.wlyy.statistics.dao.HospitalDao;
import com.yihu.wlyy.statistics.dao.SignFamilyDao;
import com.yihu.wlyy.statistics.dao.TownDao;
import com.yihu.wlyy.statistics.etl.model.ETLModel;
import com.yihu.wlyy.statistics.etl.model.ErrorModel;
import com.yihu.wlyy.statistics.etl.model.FilterModel;
import com.yihu.wlyy.statistics.etl.model.LogModel;
import com.yihu.wlyy.statistics.job.business.Constant;
import com.yihu.wlyy.statistics.model.consult.ConsultTeam;
import com.yihu.wlyy.statistics.model.hosptial.Hospital;
@ -36,7 +38,7 @@ public class HealthGuideDataFilter {
    @Autowired
    private SignFamilyDao signFamilyDao;
    private StringBuffer errorContent =new StringBuffer();//错误信息
    List<ErrorModel> errorModels=new ArrayList<ErrorModel>();//错误信息
    public FilterModel filter(List<PatientHealthGuidance> patientHealthGuidances, String sql, String filterDate){
        //查找出系统全部的全科医生
@ -65,36 +67,38 @@ public class HealthGuideDataFilter {
        Boolean isAll=true;//是否统计失败
        //统计有已改簽的
        List<ETLModel> etlModels=new ArrayList<ETLModel>();
        LogModel logModel=new LogModel();
        errorModels=new ArrayList<ErrorModel>();
        //数据过滤清洗出脏数据  -----------start
        for(PatientHealthGuidance patientHealthGuidance:patientHealthGuidances){
            ETLModel etlModel=new ETLModel();
            String patient=patientHealthGuidance.getPatient();
            SignFamily signFamily= signFamilyDao.findByPatientAndType(patient,2);//只统计家庭签约
            if(signFamily == null) {
                errorContent.append("健康咨询id:"+patientHealthGuidance.getId()+",患者code:"+patient+",家庭签约不存在");
                errorModels.add(ErrorModel.newEM(patientHealthGuidance.getId().toString(),ErrorModel.healthGuidance_sign_noExist));
                isAll=false;
                continue;
            }
            String adminId=signFamily.getAdminTeamCode()+"";//得到团队ID
            if(StringUtils.isEmpty(adminId)){
                errorContent.append("健康咨询id:"+patientHealthGuidance.getId()+",签约code:"+signFamily.getCode()+",咨询的家庭签约的团队AdminTeamCode为空");
                errorModels.add(ErrorModel.newEM(patientHealthGuidance.getId().toString(),ErrorModel.healthGuidance_adminTeam_null));
                isAll=false;
                continue;
            }
            AdminTeam adminTeam = adminTeamMap.get(adminId);
            if(adminTeam==null){
                errorContent.append("健康咨询id:"+patientHealthGuidance.getId()+",签约code:"+signFamily.getCode()+",咨询的家庭签约的团队不存在");
                errorModels.add(ErrorModel.newEM(patientHealthGuidance.getId().toString(),ErrorModel.healthGuidance_adminTeam_noExist));
                isAll=false;
                continue;
            }
            String orgCode=signFamily.getHospital();//得到机构id
            if(StringUtils.isEmpty(orgCode)){
                errorContent.append("健康咨询id:"+patientHealthGuidance.getId()+",签约code:"+signFamily.getCode()+",咨询的家庭签约的机构Hospital不存在");
                errorModels.add(ErrorModel.newEM(patientHealthGuidance.getId().toString(),ErrorModel.healthGuidance_hospital_null));
                isAll=false;
                continue;
            }
            if(orgCode.length()!=10) {
                errorContent.append("健康咨询id:"+patientHealthGuidance.getId()+",签约code:"+signFamily.getCode()+",咨询的家庭签约的机构Hospital是测试机构");
                errorModels.add(ErrorModel.newEM(patientHealthGuidance.getId().toString(),ErrorModel.healthGuidance_hospital_isTest));
                isAll=false;
                errorCount++;
                continue;
@ -110,20 +114,20 @@ public class HealthGuideDataFilter {
            }
            Hospital hospital=hospitalsMap.get(orgCodeTemp);
            if(hospital == null) {
                errorContent.append("健康咨询id:"+patientHealthGuidance.getId()+",机构code:"+orgCodeTemp+",健康咨询的医生所属的机构不存在");
                errorModels.add(ErrorModel.newEM(patientHealthGuidance.getId().toString(),ErrorModel.healthGuidance_hospital_noExist));
                isAll=false;
                continue;
            }
            String town =hospital.getTown();
            if(StringUtils.isEmpty(town)) {
                errorContent.append("健康咨询id:"+patientHealthGuidance.getId()+",机构code:"+hospital.getCode()+",机构表的中的town为空");
                errorModels.add(ErrorModel.newEM(patientHealthGuidance.getId().toString(),ErrorModel.healthGuidance_town_null));
                isAll=false;
                errorCount++;
                continue;
            }
            Town townObj =townsMap.get(town);
            if(townObj==null) {
                errorContent.append("健康咨询id:"+patientHealthGuidance.getId()+",机构code:"+hospital.getCode()+",机构表的中的town不存在");
                errorModels.add(ErrorModel.newEM(patientHealthGuidance.getId().toString(),ErrorModel.healthGuidance_town_noExist));
                isAll=false;
                errorCount++;
                continue;
@ -140,9 +144,18 @@ public class HealthGuideDataFilter {
            orgCount++;
            adminCount++;
        }
        String message=saveContent(patientHealthGuidances.size(),adminCount,orgCount,townCount,cityCount,isAll,errorContent,errorCount,sql,filterDate);
        return FilterModel.getFiltrerMode(message,etlModels,isAll);
        logModel.setDate(filterDate);
        logModel.setEndTime(new Date());
        logModel.setExcuteSql(sql);
        logModel.setSuccess(isAll);
        logModel.setAllNum(patientHealthGuidances.size());
        logModel.setSuccessNum(adminCount.intValue());
        logModel.setModelList(errorModels);
        logModel.setErrorNum(errorCount.intValue());
        //String message=saveContent(patientHealthGuidances.size(),adminCount,orgCount,townCount,cityCount,isAll,errorContent,errorCount,sql,filterDate);
        return FilterModel.getFiltrerMode(logModel,etlModels,isAll);
    }
    private String saveContent(Integer size, Long qkCount, Long orgCount, Long townCount, Long cityCount, boolean isAll, StringBuffer errorContent,Long errorCount,String sql,String filterDate) {
        if(StringUtils.isEmpty(filterDate)){

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

@ -4,7 +4,9 @@ import com.yihu.wlyy.statistics.dao.DoctorAdminTeamDao;
import com.yihu.wlyy.statistics.dao.HospitalDao;
import com.yihu.wlyy.statistics.dao.TownDao;
import com.yihu.wlyy.statistics.etl.model.ETLModel;
import com.yihu.wlyy.statistics.etl.model.ErrorModel;
import com.yihu.wlyy.statistics.etl.model.FilterModel;
import com.yihu.wlyy.statistics.etl.model.LogModel;
import com.yihu.wlyy.statistics.etl.mycache.CachePool;
import com.yihu.wlyy.statistics.job.business.Constant;
import com.yihu.wlyy.statistics.model.hosptial.Hospital;
@ -36,7 +38,6 @@ public class SignDataFilter {
    public static String level2Age2="6";//年龄
    public static String level3Disease="1";//疾病分组
    private StringBuffer errorContent =new StringBuffer();//错误信息
    @Autowired
    private HospitalDao hospitalDao;
@ -47,6 +48,7 @@ public class SignDataFilter {
    @Autowired
    private CachePool cachePool;
    List<ErrorModel> errorModels=new ArrayList<ErrorModel>();
    private int count=0;
    /**
     * 过滤数据
@ -123,17 +125,19 @@ public class SignDataFilter {
        Long adminCount = new Long(0L);//统计到所有团队的数目
        Long errorCount=new Long(0L);//脏数据
        Boolean isAll=true;//是否统计失败
        LogModel logModel=new LogModel();
        errorModels=new ArrayList<ErrorModel>();
        for (int i=0;i<signFamilies.size();i++){
            SignFamily signFamily=signFamilies.get(i);
            String orgCode = signFamily.getHospital();
            if(StringUtils.isEmpty(orgCode)) {
                errorContent.append("签约code:"+signFamily.getCode()+",签约表中(wlyy_sign_family)中的hospital数据为空");
                errorModels.add(ErrorModel.newEM(signFamily.getCode(),ErrorModel.sign_hospital_null));
                isAll=false;
                errorCount++;
                continue;
            }
            if(orgCode.length()!=10) {
                errorContent.append("签约code:"+signFamily.getCode()+",签约表中(wlyy_sign_family)中的hospital数据是测试数据");
                errorModels.add(ErrorModel.newEM(signFamily.getCode(),ErrorModel.sign_hospital_isTest));
                isAll=false;
                errorCount++;
                continue;
@ -149,42 +153,42 @@ public class SignDataFilter {
            //判断社区有没有值
            Hospital hospital=hospitalsMap.get(orgCodeTemp);
            if(hospital == null) {
                errorContent.append("签约code:"+signFamily.getCode()+",签约表中(wlyy_sign_family)中的hospital数据不存在");
                errorModels.add(ErrorModel.newEM(signFamily.getCode(),ErrorModel.sign_hospital_noExist));
                isAll=false;
                errorCount++;
                continue;
            }
            String town =hospital.getTown();
            if(StringUtils.isEmpty(town)) {
                errorContent.append("签约code:"+signFamily.getCode()+",机构表的中的town为空");
                errorModels.add(ErrorModel.newEM(signFamily.getCode(),ErrorModel.sign_town_null));
                isAll=false;
                errorCount++;
                continue;
            }
            Town townObj =townsMap.get(town);
            if(townObj==null) {
                errorContent.append("签约code:"+signFamily.getCode()+",机构表的中的town不存在");
                errorModels.add(ErrorModel.newEM(signFamily.getCode(),ErrorModel.sign_town_noExist));
                isAll=false;
                errorCount++;
                continue;
            }
           Long adminId=signFamily.getAdminTeamCode();
            if(adminId == null||adminId<=0) {
                errorContent.append("签约code:"+signFamily.getCode()+",签约表中(wlyy_sign_family)中的Admin_Team_Id数据为空");
                errorModels.add(ErrorModel.newEM(signFamily.getCode(),ErrorModel.sign_adminTeam_null));
                isAll=false;
                errorCount++;
                continue;
            }
            AdminTeam adminTeam=adminTeamMap.get(adminId+"");
            if(adminTeam == null) {
                errorContent.append("签约code:"+signFamily.getCode()+",签约表中(wlyy_sign_family)中的Admin_Team_Id数据不存在");
                errorModels.add(ErrorModel.newEM(signFamily.getCode(),ErrorModel.sign_adminTeam_noExist));
                isAll=false;
                errorCount++;
                continue;
            }
            String idCard=signFamily.getIdcard();
            if(idCard == null||((idCard.length()!=18&&idCard.length()!=15))) {
                errorContent.append("签约code:"+signFamily.getCode()+",签约表中(wlyy_sign_family)中的idCard数据异常");
                errorModels.add(ErrorModel.newEM(signFamily.getCode(),ErrorModel.sign_idcard_error));
                isAll=false;
                errorCount++;
                continue;
@ -219,8 +223,16 @@ public class SignDataFilter {
            orgCount++;
            adminCount++;
        }
        String message=saveContent(signFamilies.size(),adminCount,orgCount,townCount,cityCount,isAll,errorContent,errorCount,sql,filterDate);
        return FilterModel.getFiltrerMode(message,etlModelList,isAll);
        logModel.setDate(filterDate);
        logModel.setEndTime(new Date());
        logModel.setExcuteSql(sql);
        logModel.setSuccess(isAll);
        logModel.setAllNum(signFamilies.size());
        logModel.setSuccessNum(adminCount.intValue());
        logModel.setModelList(errorModels);
        logModel.setErrorNum(errorCount.intValue());
        //String message=saveContent(signFamilies.size(),adminCount,orgCount,townCount,cityCount,isAll,errorContent,errorCount,sql,filterDate);
        return FilterModel.getFiltrerMode(logModel,etlModelList,isAll);
    }
    private String getLevel3Key(String level3Key, SignFamily signFamily) {
@ -316,7 +328,7 @@ public class SignDataFilter {
        String returnLevel2Key;
        int age= IdCardUtil.getAgeForIdcard(signFamily.getIdcard());
        if(0==age){
            errorContent.append("签约code:"+signFamily.getCode()+",年龄是0");
            errorModels.add(ErrorModel.newEM(signFamily.getCode(),ErrorModel.sign_idcard_error_age));
        }
        returnLevel2Key=getAgeCode2(age);
        return returnLevel2Key;
@ -392,7 +404,7 @@ public class SignDataFilter {
        String returnLevel2Key;
        int age= IdCardUtil.getAgeForIdcard(signFamily.getIdcard());
        if(0==age){
            errorContent.append("签约code:"+signFamily.getCode()+",年龄是0");
            errorModels.add(ErrorModel.newEM(signFamily.getCode(),ErrorModel.sign_idcard_error_age));
        }
        returnLevel2Key=getAgeCode(age);
        return returnLevel2Key;
@ -404,7 +416,7 @@ public class SignDataFilter {
            returnLevel2Key= IdCardUtil.getSexForIdcard(signFamily.getIdcard());
        }catch (Exception e){
            //如果解析失败 默认是男 并且纪录解析失败的签约code
            errorContent.append("签约code:"+signFamily.getCode()+",IdCard解析错误,分到未知的组里");
            errorModels.add(ErrorModel.newEM(signFamily.getCode(),ErrorModel.sign_idcard_error_sex));
            return Constant.level_sex_2;
        }
        return returnLevel2Key;

+ 73 - 0
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/etl/model/ErrorModel.java

@ -0,0 +1,73 @@
package com.yihu.wlyy.statistics.etl.model;
/**
 * Created by Administrator on 2016.10.20.
 */
public class ErrorModel {
    private String code;//错误数据的主键
    private String type;//错误的类型
    private ErrorModel(String code, String type) {
        this.code=code;
        this.type=type;
    }
    public static ErrorModel newEM(String code, String type){
        return new ErrorModel(code,type);
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public static String sign_hospital_null="签约表中(wlyy_sign_family)中的hospital数据为空";
    public static String sign_hospital_noExist="签约表中(wlyy_sign_family)中的hospital数据不存在";
    public static String sign_hospital_isTest="签约表中(wlyy_sign_family)中的hospital数据是测试数据";
    public static String sign_adminTeam_null="签约表中(wlyy_sign_family)中的团队数据为空";
    public static String sign_adminTeam_noExist="签约表中(wlyy_sign_family)中的团队数据不存在";
    public static String sign_town_null="机构表的中的town为空";
    public static String sign_town_noExist="机构表的中的town不存在";
    public static String sign_idcard_error="签约表中(wlyy_sign_family)中的身份证错误";
    public static String sign_idcard_error_age="签约表中(wlyy_sign_family)中的身份证解析年龄失败";
    public static String sign_idcard_error_sex="签约表中(wlyy_sign_family)中的身份证解析性别失败";
    public static String consult_adminTeam_null="咨询的团队(wlyy_consult_team)中的admin_team_code数据为空";
    public static String consult_adminTeam_noExist="咨询的团队(wlyy_consult_team)中的admin_team_code数据不存在";
    public static String consult_hospital_null="咨询的团队(wlyy_consult_team)中的admin_team_code在团队表中的orgCode为空";
    public static String consult_hospital_noExist="咨询的团队(wlyy_consult_team)中的admin_team_code在团队表中的orgCode为不存在";
    public static String consult_hospital_isTest="咨询的团队(wlyy_consult_team)中的admin_team_code在团队表中的orgCode为测试机构";
    public static String consult_town_null="咨询的团队(wlyy_consult_team)中的admin_team_code在团队表中的orgCode在机构表对应的机构的town为空";
    public static String consult_town_noExist="咨询的团队(wlyy_consult_team)中的admin_team_code在团队表中的orgCode在机构表对应的机构的town不存在";
    public static String healthGuidance_sign_noExist="健康咨询中的患者所属的家庭签约不存在";
    public static String healthGuidance_adminTeam_null="健康咨询中的患者所属的家庭签约表中(wlyy_sign_family)中的团队数据为空";
    public static String healthGuidance_adminTeam_noExist="健康咨询中的患者所属的家庭签约表中(wlyy_sign_family)中的团队数据不存在";
    public static String healthGuidance_hospital_null="健康咨询中的患者所属的家庭签约表中(wlyy_sign_family)中的hospital数据为空";
    public static String healthGuidance_hospital_noExist="健康咨询中的患者所属的家庭签约表中(wlyy_sign_family)中的hospital数据不存在";
    public static String healthGuidance_hospital_isTest="健康咨询中的患者所属的家庭签约表中(wlyy_sign_family)中的hospital数据是测试机构";
    public static String healthGuidance_town_null="健康咨询中的患者所属的家庭签约中所属机构表的中的town为空";
    public static String healthGuidance_town_noExist="健康咨询中的患者所属的家庭签约中所属机构表的中的town为不存在";
    public static String fv_sign_noExist="随访中的患者所属的家庭签约不存在";
    public static String fv_idcard_null="随访中的患者身份证为空";
    public static String fv_adminTeam_null="随访中的患者所属的家庭签约表中(wlyy_sign_family)中的团队数据为空";
    public static String fv_adminTeam_noExist="随访中的患者所属的家庭签约表中(wlyy_sign_family)中的团队数据不存在";
    public static String fv_hospital_null="随访中的患者所属的家庭签约表中(wlyy_sign_family)中的hospital数据为空";
    public static String fv_hospital_noExist="随访中的患者所属的家庭签约表中(wlyy_sign_family)中的hospital数据不存在";
    public static String fv_hospital_isTest="随访中的患者所属的家庭签约表中(wlyy_sign_family)中的hospital数据是测试机构";
    public static String fv_town_null="随访中的患者所属的家庭签约中所属机构表的中的town为空";
    public static String fv_town_noExist="随访中的患者所属的家庭签约中所属机构表的中的town为不存在";
}

+ 9 - 10
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/etl/model/FilterModel.java

@ -7,7 +7,7 @@ import java.util.List;
 * 過濾器模型
 */
public class FilterModel {
    private String  message;
    private LogModel logModel;
    private List<ETLModel> etlModelList;
    private Boolean isError;
@ -15,23 +15,22 @@ public class FilterModel {
    }
    public FilterModel( String message, List<ETLModel> etlModelList,Boolean isError) {
    public FilterModel( LogModel logModel, List<ETLModel> etlModelList,Boolean isError) {
        this.isError=isError;
        this.message = message;
        this.logModel = logModel;
        this.etlModelList = etlModelList;
    }
    public static FilterModel getFiltrerMode(String message, List<ETLModel> etlModelList,Boolean isError){
        return new FilterModel(message,etlModelList,isError);
    public static FilterModel getFiltrerMode(LogModel logModel, List<ETLModel> etlModelList,Boolean isError){
        return new FilterModel(logModel,etlModelList,isError);
    }
    public String getMessage() {
        return message;
    public LogModel getLogModel() {
        return logModel;
    }
    public void setMessage(String message) {
        this.message = message;
    public void setLogModel(LogModel logModel) {
        this.logModel = logModel;
    }
    public Boolean getError() {

+ 92 - 0
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/etl/model/LogModel.java

@ -0,0 +1,92 @@
package com.yihu.wlyy.statistics.etl.model;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
 * Created by Administrator on 2016.10.20.
 */
public class LogModel {
    private String id;//指标id
    private Integer successNum;//成功数
    private Integer errorNum;//錯誤數目
    private Integer allNum;//所有总数
    private String excuteSql;//执行的sql
    private Date endTime;//结束时间
    private List<ErrorModel> modelList=new ArrayList<>();//错误列表
    private String date;//統計的時間
    private boolean success;//是否出现异常
    public boolean isSuccess() {
        return success;
    }
    public void setSuccess(boolean success) {
        this.success = success;
    }
    public String getDate() {
        return date;
    }
    public void setDate(String date) {
        this.date = date;
    }
    public Integer getSuccessNum() {
        return successNum;
    }
    public Integer getErrorNum() {
        return errorNum;
    }
    public void setErrorNum(Integer errorNum) {
        this.errorNum = errorNum;
    }
    public void setSuccessNum(Integer successNum) {
        this.successNum = successNum;
    }
    public Integer getAllNum() {
        return allNum;
    }
    public void setAllNum(Integer allNum) {
        this.allNum = allNum;
    }
    public String getExcuteSql() {
        return excuteSql;
    }
    public void setExcuteSql(String excuteSql) {
        this.excuteSql = excuteSql;
    }
    public Date getEndTime() {
        return endTime;
    }
    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }
    public List<ErrorModel> getModelList() {
        return modelList;
    }
    public void setModelList(List<ErrorModel> modelList) {
        this.modelList = modelList;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
}

+ 5 - 1
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/business/AllSignExpenseStatusJob.java

@ -11,8 +11,12 @@ import com.yihu.wlyy.statistics.etl.role.Level2Role;
import com.yihu.wlyy.statistics.etl.storage.DBStorage;
import com.yihu.wlyy.statistics.model.job.QuartzJobLog;
import com.yihu.wlyy.statistics.model.signfamily.SignFamily;
import com.yihu.wlyy.statistics.util.JsonDateValueProcessor;
import com.yihu.wlyy.statistics.util.JsonUtil;
import com.yihu.wlyy.statistics.vo.WlyyJobConfigVO;
import com.yihu.wlyy.statistics.vo.WlyyQuotaVO;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import org.quartz.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
@ -105,7 +109,7 @@ public class AllSignExpenseStatusJob implements Job{
            dbStorage.saveByLevel2(level2Data,date,wlyyQuota,2,4,0);
            //保存日志
            quartzJobLog.setJobEndTime(new Date());
            quartzJobLog.setJobContent(etlModels.getMessage());
            quartzJobLog.setJobContent(JsonUtil.objToStr(etlModels.getLogModel()));
            quartzJobLog.setJobType(etlModels.getError()?"1":"0");
            dbStorage.saveLog(quartzJobLog);
        } catch (Exception e) {

+ 3 - 1
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/business/AllSignJob.java

@ -9,8 +9,10 @@ import com.yihu.wlyy.statistics.etl.mycache.CachePool;
import com.yihu.wlyy.statistics.etl.role.Level1Role;
import com.yihu.wlyy.statistics.etl.storage.DBStorage;
import com.yihu.wlyy.statistics.model.job.QuartzJobLog;
import com.yihu.wlyy.statistics.util.JsonUtil;
import com.yihu.wlyy.statistics.vo.WlyyJobConfigVO;
import com.yihu.wlyy.statistics.vo.WlyyQuotaVO;
import org.json.JSONObject;
import org.quartz.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
@ -89,7 +91,7 @@ public class AllSignJob implements Job {
            dbStorage.saveByLevel1(returnData,date,wlyyQuota);
            //保存日志
            quartzJobLog.setJobEndTime(new Date());
            quartzJobLog.setJobContent(etlModels.getMessage());
            quartzJobLog.setJobContent(JsonUtil.objToStr(etlModels.getLogModel()));
            quartzJobLog.setJobType(etlModels.getError()?"1":"0");
            dbStorage.saveLog(quartzJobLog);
        }catch (Exception e){

+ 3 - 1
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/business/ChangeSignJob.java

@ -12,8 +12,10 @@ import com.yihu.wlyy.statistics.model.job.QuartzJobLog;
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.JsonUtil;
import com.yihu.wlyy.statistics.vo.WlyyJobConfigVO;
import com.yihu.wlyy.statistics.vo.WlyyQuotaVO;
import org.json.JSONObject;
import org.quartz.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
@ -97,7 +99,7 @@ public class ChangeSignJob implements Job {
            dbStorage.saveByLevel1(returnDatas,yesterday,wlyyQuota);
            //保存日志
            quartzJobLog.setJobEndTime(new Date());
            quartzJobLog.setJobContent(etlModels.getMessage());
            quartzJobLog.setJobContent(JsonUtil.objToStr(etlModels.getLogModel()));
            quartzJobLog.setJobType(etlModels.getError()?"1":"0");
            quartzJobLogDao.save(quartzJobLog);
        }catch (Exception e){

+ 3 - 1
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/business/ConsultJob.java

@ -13,8 +13,10 @@ import com.yihu.wlyy.statistics.model.job.QuartzJobLog;
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.JsonUtil;
import com.yihu.wlyy.statistics.vo.WlyyJobConfigVO;
import com.yihu.wlyy.statistics.vo.WlyyQuotaVO;
import org.json.JSONObject;
import org.quartz.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
@ -97,7 +99,7 @@ public class ConsultJob implements Job {
            //保存日志
            quartzJobLog.setJobEndTime(new Date());
            quartzJobLog.setJobContent(etlModels.getMessage());
            quartzJobLog.setJobContent(JsonUtil.objToStr(etlModels.getLogModel()));
            quartzJobLog.setJobType(etlModels.getError()?"1":"0");
            quartzJobLogDao.save(quartzJobLog);
        }catch (Exception e){

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

@ -22,6 +22,7 @@ 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.json.JSONArray;
import org.json.JSONObject;
@ -180,7 +181,7 @@ public class CurrentDayAllQuotaJob implements Job {
            //统计数据 二级维度
            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());
            allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
        }catch (Exception e){
            e.printStackTrace();
            allContent.append("统计失败:"+e.getMessage());
@ -203,7 +204,7 @@ public class CurrentDayAllQuotaJob implements Job {
            List<Map<String, List<ETLModel>>>  deleteReturnDatas= SpringUtil.getBean(Level1Role.class).elt(deleteEtlModels.getEtlModelList());
            //保存数据
             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnData,deleteReturnDatas,"13");
            allContent.append(etlModels.getMessage());
            allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
        }catch (Exception e){
            e.printStackTrace();
            allContent.append("统计失败:"+e.getMessage());
@ -234,7 +235,7 @@ public class CurrentDayAllQuotaJob implements Job {
            List<Map<String, Map<String, List<ETLModel>>>>  deleteLevel2Data= SpringUtil.getBean(Level2Role.class).elt(deleteReturnDatas);;
            //保存数据
            SpringUtil.getBean(RedisStorage.class).saveByLevel2(level2Data,deleteLevel2Data,quotaId,0,4,0);
            allContent.append(etlModels.getMessage());
            allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
        }catch (Exception e){
            e.printStackTrace();
            allContent.append("统计失败:"+e.getMessage());
@ -263,7 +264,7 @@ public class CurrentDayAllQuotaJob implements Job {
           List<Map<String, Map<String, List<ETLModel>>>>  deleteLevel2Data= SpringUtil.getBean(Level2Role.class).elt(deleteReturnDatas);;
            //保存数据
             SpringUtil.getBean(RedisStorage.class).saveByLevel2(patientSexRoleData,deleteLevel2Data,quotaId,4,5,0);
           allContent.append(etlModels.getMessage());
           allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
        }catch (Exception e){
            e.printStackTrace();
           allContent.append("统计失败:"+e.getMessage());
@ -344,7 +345,7 @@ public class CurrentDayAllQuotaJob implements Job {
            List<Map<String, List<ETLModel>>>  deleteReturnDatas= SpringUtil.getBean(Level1Role.class).elt(deleteEtlModels.getEtlModelList());
            //保存数据
             SpringUtil.getBean(RedisStorage.class).saveByLevel1(returnDatas,deleteReturnDatas,"1");
            allContent.append(etlModels.getMessage());
            allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
        }catch (Exception e){
            e.printStackTrace();
            allContent.append("统计失败:"+e.getMessage());
@ -366,7 +367,7 @@ 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);
            allContent.append(etlModels.getMessage());
            allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
        }catch (Exception e){
            e.printStackTrace();
            allContent.append("统计失败:"+e.getMessage());
@ -387,7 +388,7 @@ 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);
            allContent.append(etlModels.getMessage());
            allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
        }catch (Exception e){
            e.printStackTrace();
            allContent.append("统计失败:"+e.getMessage());
@ -409,7 +410,7 @@ 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);
            allContent.append(etlModels.getMessage());
            allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
        }catch (Exception e){
            e.printStackTrace();
            allContent.append("统计失败:"+e.getMessage());
@ -429,7 +430,7 @@ 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);
            allContent.append(etlModels.getMessage());
            allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
        }catch (Exception e){
            e.printStackTrace();
            allContent.append("统计失败:"+e.getMessage());
@ -458,7 +459,7 @@ public class CurrentDayAllQuotaJob implements Job {
           List<Map<String, Map<String, List<ETLModel>>>>  deleteLevel2Data= SpringUtil.getBean(Level2Role.class).elt(deleteReturnDatas);;
            //保存数据
            SpringUtil.getBean(RedisStorage.class).saveByLevel2(level2Data,deleteLevel2Data,quotaId,3,1);
           allContent.append(etlModels.getMessage());
           allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
        }catch (Exception e){
            e.printStackTrace();
           allContent.append("统计失败:"+e.getMessage());
@ -486,7 +487,7 @@ public class CurrentDayAllQuotaJob implements Job {
            List<Map<String, Map<String, List<ETLModel>>>>  deleteLevel2Data= SpringUtil.getBean(Level2Role.class).elt(deleteReturnDatas);;
            //保存数据 1 表示:从1开始循环 6表示:循环6次 3表示 2级维度是 3
             SpringUtil.getBean(RedisStorage.class).saveByLevel2(level2Data,deleteLevel2Data,quotaId,7,3,-1);
            allContent.append(etlModels.getMessage());
            allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
        }catch (Exception e){
            e.printStackTrace();
            allContent.append("统计失败:"+e.getMessage());
@ -515,7 +516,7 @@ public class CurrentDayAllQuotaJob implements Job {
            List<Map<String, Map<String, List<ETLModel>>>>  deleteLevel2Data= SpringUtil.getBean(Level2Role.class).elt(deleteReturnDatas);;
            //保存数据
             SpringUtil.getBean(RedisStorage.class).saveByLevel2(level2Data,deleteLevel2Data,quotaId,6,2);
            allContent.append(etlModels.getMessage());
            allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
        }catch (Exception e){
            e.printStackTrace();
            allContent.append("统计失败:"+e.getMessage());
@ -536,7 +537,7 @@ 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);
            allContent.append(etlModels.getMessage());
            allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
        }catch (Exception e){
            e.printStackTrace();
            allContent.append("统计失败:"+e.getMessage());
@ -557,7 +558,7 @@ 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);
           allContent.append(etlModels.getMessage());
           allContent.append(JsonUtil.objToStr(etlModels.getLogModel()));
        }catch (Exception e){
            e.printStackTrace();
           allContent.append("统计失败:"+e.getMessage());

+ 3 - 1
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/business/FollowUpJob.java

@ -12,8 +12,10 @@ import com.yihu.wlyy.statistics.model.job.WlyyQuotaResult;
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.JsonUtil;
import com.yihu.wlyy.statistics.vo.WlyyJobConfigVO;
import com.yihu.wlyy.statistics.vo.WlyyQuotaVO;
import org.json.JSONObject;
import org.quartz.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@ -115,7 +117,7 @@ public class FollowUpJob implements Job {
            dbStorage.saveByLevel1(returnDatas, yesterday, wlyyQuota);
            //保存日志
            quartzJobLog.setJobEndTime(new Date());
            quartzJobLog.setJobContent(etlModels.getMessage());
            quartzJobLog.setJobContent(JsonUtil.objToStr(etlModels.getLogModel()));
            quartzJobLog.setJobType(etlModels.getError() ? "1" : "0");
            quartzJobLogDao.save(quartzJobLog);
        } catch (Exception e) {

+ 3 - 1
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/business/HealthGuideJob.java

@ -14,8 +14,10 @@ import com.yihu.wlyy.statistics.model.patient.PatientHealthGuidance;
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.JsonUtil;
import com.yihu.wlyy.statistics.vo.WlyyJobConfigVO;
import com.yihu.wlyy.statistics.vo.WlyyQuotaVO;
import org.json.JSONObject;
import org.quartz.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
@ -97,7 +99,7 @@ public class HealthGuideJob implements Job {
            //保存日志
            quartzJobLog.setJobEndTime(new Date());
            quartzJobLog.setJobContent(etlModels.getMessage());
            quartzJobLog.setJobContent(JsonUtil.objToStr(etlModels.getLogModel()));
            quartzJobLog.setJobType(etlModels.getError()?"1":"0");
            quartzJobLogDao.save(quartzJobLog);
        }catch (Exception e){

+ 3 - 1
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/business/HealthSignJob.java

@ -11,8 +11,10 @@ import com.yihu.wlyy.statistics.etl.role.Level1Role;
import com.yihu.wlyy.statistics.etl.role.Level2Role;
import com.yihu.wlyy.statistics.etl.storage.DBStorage;
import com.yihu.wlyy.statistics.model.job.QuartzJobLog;
import com.yihu.wlyy.statistics.util.JsonUtil;
import com.yihu.wlyy.statistics.vo.WlyyJobConfigVO;
import com.yihu.wlyy.statistics.vo.WlyyQuotaVO;
import org.json.JSONObject;
import org.quartz.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
@ -99,7 +101,7 @@ public class HealthSignJob implements Job {
            //保存日志
            quartzJobLog.setJobEndTime(new Date());
            quartzJobLog.setJobContent(etlModels.getMessage());
            quartzJobLog.setJobContent(JsonUtil.objToStr(etlModels.getLogModel()));
            quartzJobLog.setJobType(etlModels.getError()?"1":"0");
            quartzJobLogDao.save(quartzJobLog);
        }catch (Exception e){

+ 3 - 1
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/business/SignAgeGroupDiseaseJob.java

@ -10,8 +10,10 @@ import com.yihu.wlyy.statistics.etl.mycache.CachePool;
import com.yihu.wlyy.statistics.etl.role.*;
import com.yihu.wlyy.statistics.etl.storage.DBStorage;
import com.yihu.wlyy.statistics.model.job.QuartzJobLog;
import com.yihu.wlyy.statistics.util.JsonUtil;
import com.yihu.wlyy.statistics.vo.WlyyJobConfigVO;
import com.yihu.wlyy.statistics.vo.WlyyQuotaVO;
import org.json.JSONObject;
import org.quartz.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
@ -100,7 +102,7 @@ public class SignAgeGroupDiseaseJob implements Job {
            dbStorage.saveByLevel3(returnD,yesterday,wlyyQuota,6,4,2,1);
            //保存日志
            quartzJobLog.setJobEndTime(new Date());
            quartzJobLog.setJobContent(etlModels.getMessage());
            quartzJobLog.setJobContent(JsonUtil.objToStr(etlModels.getLogModel()));
            quartzJobLog.setJobType(etlModels.getError()?"1":"0");
            quartzJobLogDao.save(quartzJobLog);
        }catch (Exception e){

+ 3 - 1
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/business/SignExpenseStatusJob.java

@ -11,8 +11,10 @@ import com.yihu.wlyy.statistics.etl.role.Level2Role;
import com.yihu.wlyy.statistics.etl.storage.DBStorage;
import com.yihu.wlyy.statistics.model.job.QuartzJobLog;
import com.yihu.wlyy.statistics.model.signfamily.SignFamily;
import com.yihu.wlyy.statistics.util.JsonUtil;
import com.yihu.wlyy.statistics.vo.WlyyJobConfigVO;
import com.yihu.wlyy.statistics.vo.WlyyQuotaVO;
import org.json.JSONObject;
import org.quartz.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
@ -105,7 +107,7 @@ public class SignExpenseStatusJob implements Job{
            dbStorage.saveByLevel2(level2Data,date,wlyyQuota,2,4,0);
            //保存日志
            quartzJobLog.setJobEndTime(new Date());
            quartzJobLog.setJobContent(etlModels.getMessage());
            quartzJobLog.setJobContent(JsonUtil.objToStr(etlModels.getLogModel()));
            quartzJobLog.setJobType(etlModels.getError()?"1":"0");
            dbStorage.saveLog(quartzJobLog);
        } catch (Exception e) {

+ 6 - 4
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/business/SignJob.java

@ -11,8 +11,10 @@ import com.yihu.wlyy.statistics.etl.role.Level1Role;
import com.yihu.wlyy.statistics.etl.role.Level2Role;
import com.yihu.wlyy.statistics.etl.storage.DBStorage;
import com.yihu.wlyy.statistics.model.job.QuartzJobLog;
import com.yihu.wlyy.statistics.util.JsonUtil;
import com.yihu.wlyy.statistics.vo.WlyyJobConfigVO;
import com.yihu.wlyy.statistics.vo.WlyyQuotaVO;
import org.json.JSONObject;
import org.quartz.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
@ -125,7 +127,7 @@ public class SignJob implements Job {
            dbStorage.saveByLevel2(level2Data,yesterday,wlyyQuota,3,1);
            //保存日志
            quartzJobLog.setJobEndTime(new Date());
            quartzJobLog.setJobContent(etlModels.getMessage());
            quartzJobLog.setJobContent(JsonUtil.objToStr(etlModels.getLogModel()));
            quartzJobLog.setJobType(etlModels.getError()?"1":"0");
            quartzJobLogDao.save(quartzJobLog);
        }catch (Exception e){
@ -163,7 +165,7 @@ public class SignJob implements Job {
            //保存日志
            quartzJobLog.setJobEndTime(new Date());
            quartzJobLog.setJobContent(etlModels.getMessage());
            quartzJobLog.setJobContent(JsonUtil.objToStr(etlModels.getLogModel()));
            quartzJobLog.setJobType(etlModels.getError()?"1":"0");
            quartzJobLogDao.save(quartzJobLog);
        }catch (Exception e){
@ -196,7 +198,7 @@ public class SignJob implements Job {
            dbStorage.saveByLevel2(level2Data,yesterday,wlyyQuota,6,2);
            //保存日志
            quartzJobLog.setJobEndTime(new Date());;
            quartzJobLog.setJobContent(etlModels.getMessage());
            quartzJobLog.setJobContent(JsonUtil.objToStr(etlModels.getLogModel()));
            quartzJobLog.setJobType(etlModels.getError()?"1":"0");
            quartzJobLogDao.save(quartzJobLog);
        } catch (Exception e) {
@ -230,7 +232,7 @@ public class SignJob implements Job {
            dbStorage.saveByLevel1(returnDatas,yesterday,wlyyQuota);
            //保存日志
            quartzJobLog.setJobEndTime(new Date());
            quartzJobLog.setJobContent(etlModels.getMessage());
            quartzJobLog.setJobContent(JsonUtil.objToStr(etlModels.getLogModel()));
            quartzJobLog.setJobType(etlModels.getError()?"1":"0");
            quartzJobLogDao.save(quartzJobLog);
        }catch (Exception e){

+ 3 - 1
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/business/UnSignJob.java

@ -12,8 +12,10 @@ import com.yihu.wlyy.statistics.model.job.QuartzJobLog;
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.JsonUtil;
import com.yihu.wlyy.statistics.vo.WlyyJobConfigVO;
import com.yihu.wlyy.statistics.vo.WlyyQuotaVO;
import org.json.JSONObject;
import org.quartz.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
@ -98,7 +100,7 @@ public class UnSignJob implements Job {
            //保存日志
            quartzJobLog.setJobEndTime(new Date());
            quartzJobLog.setJobContent(etlModels.getMessage());
            quartzJobLog.setJobContent(JsonUtil.objToStr(etlModels.getLogModel()));
            quartzJobLog.setJobType(etlModels.getError()?"1":"0");
            quartzJobLogDao.save(quartzJobLog);
        }catch (Exception e){

+ 3 - 1
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/job/business/WaitSignJob.java

@ -12,8 +12,10 @@ import com.yihu.wlyy.statistics.model.job.QuartzJobLog;
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.JsonUtil;
import com.yihu.wlyy.statistics.vo.WlyyJobConfigVO;
import com.yihu.wlyy.statistics.vo.WlyyQuotaVO;
import org.json.JSONObject;
import org.quartz.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
@ -97,7 +99,7 @@ public class WaitSignJob implements Job {
            dbStorage.saveByLevel1(returnDatas,yesterday,wlyyQuota);
            //保存日志
            quartzJobLog.setJobEndTime(new Date());
            quartzJobLog.setJobContent(etlModels.getMessage());
            quartzJobLog.setJobContent(JsonUtil.objToStr(etlModels.getLogModel()));
            quartzJobLog.setJobType(etlModels.getError()?"1":"0");
            quartzJobLogDao.save(quartzJobLog);
        }catch (Exception e){

+ 45 - 0
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/util/JsonDateValueProcessor.java

@ -0,0 +1,45 @@
package com.yihu.wlyy.statistics.util;
import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
/**
 * Created by Administrator on 2016.10.20.
 */
public class JsonDateValueProcessor implements JsonValueProcessor {
    private String format ="yyyy-MM-dd HH:mm:ss";
    public JsonDateValueProcessor() {
        super();
    }
    public JsonDateValueProcessor(String format) {
        super();
        this.format = format;
    }
    @Override
    public Object processArrayValue(Object paramObject,
                                    JsonConfig paramJsonConfig) {
        return process(paramObject);
    }
    @Override
    public Object processObjectValue(String paramString, Object paramObject,
                                     JsonConfig paramJsonConfig) {
        return process(paramObject);
    }
    private Object process(Object value){
        if(value instanceof Date){
            SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.CHINA);
            return sdf.format(value);
        }
        return value == null ? "" : value.toString();
    }
}

+ 19 - 0
patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/util/JsonUtil.java

@ -0,0 +1,19 @@
package com.yihu.wlyy.statistics.util;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import java.util.Date;
/**
 * Created by Administrator on 2016.10.20.
 */
public class JsonUtil {
    public static String objToStr(Object obj){
        JsonConfig jsonConfig = new JsonConfig();
        jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor());
        JSONObject json = new JSONObject();
        json.fromObject(obj, jsonConfig);
        return json.toString();
    }
}