package com.zteits.park.job; import org.apache.commons.lang3.StringUtils; import com.xiaoleilu.hutool.date.DateTime; import com.xiaoleilu.hutool.date.DateUtil; import com.xiaoleilu.hutool.date.TimeInterval; import com.xxl.job.core.biz.model.ReturnT; import com.xxl.job.core.context.XxlJobHelper; import com.xxl.job.core.handler.annotation.XxlJob; import com.zteits.park.dao.InComeCalculationStaticDao; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.Date; /** * Copyright: Copyright (c) 2017 zteits * * @ClassName: com.zteits.park.job * @Description: 收益测算统计job * @version: v1.0.0 * @author: atao * @date: 2017/12/26 下午3:22 * Modification History: * Date Author Version Description * ---------------------------------------------------------* * 2017/12/26 atao v1.0.0 创建 */ @Component public class InComeCalculationStaticJob { @Autowired private InComeCalculationStaticDao inComeCalculationStaticDao; @XxlJob("InComeCalculationStaticJob") public ReturnT execute(String... params) throws Exception { String param = XxlJobHelper.getJobParam(); if (StringUtils.isNotEmpty(param) && params == null) { params = param.split(","); } //开启计时器 TimeInterval timer = DateUtil.timer(); XxlJobHelper.log("---收益测算统计定时任务---start--" + DateUtil.now() + "---"); Date date = DateUtil.offsetDay(new Date(), -1); int count = staticOfNum(date); XxlJobHelper.log("----收益测算定时任务--统计按次数据结束,共" + count + "条数据,此时耗时:" + timer.intervalMinute() + "分钟"); count = staticOfTime(date); XxlJobHelper.log("----收益测算定时任务--统计按时数据结束,共" + count + "条数据,此时耗时:" + timer.intervalMinute() + "分钟"); Boolean flag = inComeCalculationStaticDao.updateParkBaseInfoByProc(); XxlJobHelper.log("----收益测算定时任务--更新补充基础数据,isSuccess:" + flag + ",此时耗时:" + timer.intervalMinute() + "分钟"); XxlJobHelper.log("---收益测算统计定时任务---end--" + DateUtil.now() + "---"); XxlJobHelper.log("---收益测算统计定时任务---耗时:" + timer.intervalMinute() + "分钟"); return ReturnT.SUCCESS; } /** * 按次任务统计 * * @return */ private int staticOfNum(Date date) { date = DateUtil.offsetDay(date, 0); DateTime staticStartDate = DateUtil.beginOfDay(date); DateTime staticEndDate = DateUtil.endOfDay(date); DateTime lastMonth = DateUtil.offsetMonth(date, -1); //查看当前月表数据 int count = inComeCalculationStaticDao.staticIncomeCalculationDataOfNum(DateUtil.format(date, "yyyyMM"), staticStartDate, staticEndDate); //查看上一个月表数据 count += inComeCalculationStaticDao.staticIncomeCalculationDataOfNum(DateUtil.format(lastMonth, "yyyyMM"), staticStartDate, staticEndDate); return count; } /** * 按时任务统计 * * @return */ private int staticOfTime(Date date) { date = DateUtil.offsetDay(date, 0); DateTime staticStartDate = DateUtil.beginOfDay(date); DateTime staticEndDate = DateUtil.endOfDay(date); DateTime lastMonth = DateUtil.offsetMonth(date, -1); //查看当前月表数据 int count = inComeCalculationStaticDao.staticIncomeCalculationDataOfTime( DateUtil.format(date, "yyyyMM"), staticStartDate, staticEndDate); //查看上一个月表数据 count += inComeCalculationStaticDao.staticIncomeCalculationDataOfTime(DateUtil.format(lastMonth, "yyyyMM"), staticStartDate, staticEndDate); return count; } }