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