package com.dy.pipIrrStatistics.listeners; 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.JobExecutionContext; import org.quartz.JobExecutionException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; /** * @Author: liurunyu * @Date: 2024/7/22 16:41 * @Description */ public class StatisticsJob extends TaskJob { private static Logger log = LogManager.getLogger(Test.class.getName()) ; private StLoss stLoss ; private StIntake stIntake ; private StClient stClient ; private String statisticsYyyy_mm; private Long statisticsStartId ; private Long statisticsEndId ; @Override public void execute(JobExecutionContext ctx) throws JobExecutionException { stLoss = SpringContextUtil.getBean(StLoss.class); stIntake = SpringContextUtil.getBean(StIntake.class); stClient = SpringContextUtil.getBean(StClient.class); if(stLoss != null && stIntake != null && stClient != null){ int[] ymd = DateTime.yyyy_MM_dd_2_ymdGroup(DateTime.yyyy_MM_dd()) ; if(ymd[2] == 1){ //统计上个月的 statisticsYyyy_mm = DateTime.lastMonth_ym() ;//统计月 int lastYear = Integer.parseInt(statisticsYyyy_mm.substring(0, 4)) ; int lastMonth = Integer.parseInt(statisticsYyyy_mm.substring(5, 7)) ; statisticsStartId = IDLongGenerator.generateOneDayStartId(lastYear, lastMonth, 1) ; statisticsEndId = IDLongGenerator.generateOneDayEndId(lastYear, lastMonth, 31) ; }else{ //统计本月的 statisticsYyyy_mm = ymd[0] + "-" + ymd[1] ;//统计月 statisticsStartId = IDLongGenerator.generateOneDayStartId(ymd[0], ymd[1], 1) ; statisticsEndId = IDLongGenerator.generateOneDayEndId(ymd[0], ymd[1], 31) ; } doStatistics() ; }else{ log.error("未能从Spring容器中得到统计bean"); } } /** * 统计 */ private void doStatistics(){ stLoss.statistics(statisticsYyyy_mm, statisticsStartId, statisticsEndId) ; stIntake.statistics(statisticsYyyy_mm, statisticsStartId, statisticsEndId) ; stClient.statistics(statisticsYyyy_mm, statisticsStartId, statisticsEndId) ; } }