package com.dy.pipIrrStatistics.statistics; 
 | 
  
 | 
import com.dy.common.multiDataSource.DataSourceContext; 
 | 
import com.dy.common.schedulerTask.TaskJob; 
 | 
import com.dy.common.schedulerTask.Test; 
 | 
import com.dy.common.springUtil.SpringContextUtil; 
 | 
import com.dy.common.util.DateTime; 
 | 
import com.dy.common.util.IDLongGenerator; 
 | 
import org.apache.logging.log4j.LogManager; 
 | 
import org.apache.logging.log4j.Logger; 
 | 
import org.quartz.JobDataMap; 
 | 
import org.quartz.JobExecutionContext; 
 | 
import org.quartz.JobExecutionException; 
 | 
  
 | 
import java.util.Date; 
 | 
  
 | 
/** 
 | 
 * @Author: liurunyu 
 | 
 * @Date: 2024/7/22 16:41 
 | 
 * @Description 
 | 
 */ 
 | 
public class StatisticsJob extends TaskJob { 
 | 
  
 | 
    private static Logger log = LogManager.getLogger(Test.class.getName()) ; 
 | 
  
 | 
    private String orgTag ; 
 | 
  
 | 
    private StLossAmount stLossAmount; 
 | 
    private StIntakeAmount stIntakeAmount; 
 | 
    private StClientAmount stClientAmount; 
 | 
    private StChargeByIc stChargeByIc ; 
 | 
    private StChargeByClient stChargeByClient ; 
 | 
    private StConsumeByIc stConsumeByIc ; 
 | 
    private StConsumeByClient stConsumeByClient ; 
 | 
  
 | 
    private Integer statisticsYear; 
 | 
    private Integer statisticsMonth; 
 | 
    private Integer statisticsDay; 
 | 
    private Long statistics4DayStartId ; 
 | 
    private Long statistics4DayEndId ; 
 | 
    private Date statistics4DayStartDt ; 
 | 
    private Date statistics4DayEndDt ; 
 | 
    private Long statistics4MonthYearStartId ; 
 | 
    private Long statistics4MonthYearEndId ; 
 | 
    //private Date statistics4MonthYearStartDt ; 
 | 
    //private Date statistics4MonthYearEndDt ; 
 | 
  
 | 
  
 | 
    @Override 
 | 
    public void execute(JobExecutionContext ctx) throws JobExecutionException { 
 | 
        JobDataMap jobDataMap = ctx.getJobDetail().getJobDataMap() ; 
 | 
        if(jobDataMap != null){ 
 | 
            orgTag = (String)jobDataMap.get(StatisticsListener.orgKey) ; 
 | 
        } 
 | 
        if(orgTag == null){ 
 | 
            return ; 
 | 
        } 
 | 
        DataSourceContext.set(orgTag);//设置数据源 
 | 
        stLossAmount = SpringContextUtil.getBean(StLossAmount.class); 
 | 
        stIntakeAmount = SpringContextUtil.getBean(StIntakeAmount.class); 
 | 
        stClientAmount = SpringContextUtil.getBean(StClientAmount.class); 
 | 
        stChargeByIc = SpringContextUtil.getBean(StChargeByIc.class); 
 | 
        stChargeByClient = SpringContextUtil.getBean(StChargeByClient.class); 
 | 
        stConsumeByIc = SpringContextUtil.getBean(StConsumeByIc.class); 
 | 
        stConsumeByClient = SpringContextUtil.getBean(StConsumeByClient.class); 
 | 
        if(stLossAmount != null && stIntakeAmount != null && stClientAmount != null 
 | 
                && stChargeByIc != null && stChargeByClient != null 
 | 
                && stConsumeByIc != null && stConsumeByClient != null){ 
 | 
            String yesterday = DateTime.lastXDay_yyyy_MM_dd(1) ;//得到昨天,零晨时刻统计,统计昨天的数 
 | 
            int[] yesterdayGrp = DateTime.yyyy_MM_dd_2_ymdGroup(yesterday) ; 
 | 
            statisticsYear = yesterdayGrp[0] ;//统计年 
 | 
            statisticsMonth = yesterdayGrp[1] ;//统计月 
 | 
            statisticsDay = yesterdayGrp[2] ;//统计日 
 | 
            statistics4DayStartId = IDLongGenerator.generateOneDayStartId(statisticsYear, statisticsMonth, statisticsDay) ; 
 | 
            statistics4DayEndId = IDLongGenerator.generateOneDayEndId(statisticsYear, statisticsMonth, statisticsDay) ; 
 | 
            statistics4DayStartDt = DateTime.startOfDay(statisticsYear, statisticsMonth, statisticsDay) ; 
 | 
            statistics4DayEndDt = DateTime.endOfDay(statisticsYear, statisticsMonth, statisticsDay) ; 
 | 
            //统计日的量 
 | 
            doStatisticsDay() ; 
 | 
  
 | 
            int[] ymd = DateTime.yyyy_MM_dd_2_ymdGroup(DateTime.yyyy_MM_dd()) ; 
 | 
            if(ymd[2] == 1){ 
 | 
                //统计上个月的 
 | 
                String statisticsYyyy_mm = DateTime.lastMonth_ym() ; //统计年月 
 | 
                statisticsYear = Integer.parseInt(statisticsYyyy_mm.substring(0, 4)) ;//统计年 
 | 
                statisticsMonth = Integer.parseInt(statisticsYyyy_mm.substring(5, 7)) ;//统计月 
 | 
                statistics4MonthYearStartId = IDLongGenerator.generateOneDayStartId(statisticsYear, statisticsMonth, 1) ; 
 | 
                statistics4MonthYearEndId = IDLongGenerator.generateOneDayEndId(statisticsYear, statisticsMonth, DateTime.endDayOfMonth(statisticsYear, statisticsMonth)) ; 
 | 
                //statistics4MonthYearStartDt = DateTime.startOfDay(statisticsYear, statisticsMonth, 1) ; 
 | 
                //statistics4MonthYearEndDt = DateTime.endOfDay(statisticsYear, statisticsMonth, DateTime.endDayOfMonth(statisticsYear, statisticsMonth)) ; 
 | 
            }else{ 
 | 
                //统计本月的 
 | 
                statisticsYear = ymd[0] ;//统计年 
 | 
                statisticsMonth =  ymd[1] ;//统计月 
 | 
                statistics4MonthYearStartId = IDLongGenerator.generateOneDayStartId(ymd[0], ymd[1], 1) ; 
 | 
                statistics4MonthYearEndId = IDLongGenerator.generateOneDayEndId(ymd[0], ymd[1], DateTime.endDayOfMonth(statisticsYear, statisticsMonth)) ; 
 | 
                //statistics4MonthYearStartDt = DateTime.startOfDay(statisticsYear, statisticsMonth, 1) ; 
 | 
                //statistics4MonthYearEndDt = DateTime.endOfDay(statisticsYear, statisticsMonth, DateTime.endDayOfMonth(statisticsYear, statisticsMonth)) ; 
 | 
            } 
 | 
            doStatisticsMonthAndYear() ; 
 | 
        }else{ 
 | 
            log.error("未能从Spring容器中得到统计bean"); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 统计 
 | 
     */ 
 | 
    private void doStatisticsDay(){ 
 | 
        stClientAmount.statistics4Day(statisticsYear, statisticsMonth, statisticsDay, statistics4DayStartId, statistics4DayEndId) ; 
 | 
        //stChargeByIc.statistics4Day(statisticsYear, statisticsMonth, statisticsDay, statistics4DayStartId, statistics4DayEndId); 
 | 
        //stChargeByClient.statistics4Day(statisticsYear, statisticsMonth, statisticsDay, statistics4DayStartId, statistics4DayEndId); 
 | 
        //stConsumeByIc.statistics4Day(statisticsYear, statisticsMonth, statisticsDay, statistics4DayStartDt, statistics4DayEndDt); 
 | 
        //stConsumeByClient.statistics4Day(statisticsYear, statisticsMonth, statisticsDay, statistics4DayStartDt, statistics4DayEndDt); 
 | 
    } 
 | 
    /** 
 | 
     * 统计 
 | 
     */ 
 | 
    private void doStatisticsMonthAndYear(){ 
 | 
        stLossAmount.statistics(statisticsYear, statisticsMonth, statistics4MonthYearStartId, statistics4MonthYearEndId) ; 
 | 
        stIntakeAmount.statistics(statisticsYear, statisticsMonth, statistics4MonthYearStartId, statistics4MonthYearEndId) ; 
 | 
        stClientAmount.statistics(statisticsYear, statisticsMonth, statistics4MonthYearStartId, statistics4MonthYearEndId) ; 
 | 
  
 | 
        //stChargeByIc.statistics4MonthAndYear(statisticsYear, statisticsMonth); 
 | 
        //stChargeByClient.statistics4MonthAndYear(statisticsYear, statisticsMonth); 
 | 
        //stConsumeByIc.statistics4MonthAndYear(statisticsYear, statisticsMonth); 
 | 
        //stConsumeByClient.statistics4MonthAndYear(statisticsYear, statisticsMonth); 
 | 
    } 
 | 
} 
 |