InComeCalculationStaticJob.java 3.88 KB
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<String> 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;
    }

}