java定时任务之spring-task注解设置

1.applicationContext.xml文件配置
这里写图片描述
2.在项目目录job下创建所需的任务类
这里写图片描述
3.编写任务类

package com.chw.job;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.scheduling.quartz.QuartzJobBean;
import org.springframework.stereotype.Component;

import com.chw.framework.log.ChwLogUtil;
import com.chw.model.lpt.LptDpDdSp;
import com.chw.service.lpt.ILptDdSpService;
import com.chw.system.util.DateUtils;

/**
 * @ClassName: ddTask
 * @Description: 更新订单状态接口
 * @author wangjintao
 * @date 2017年11月14日 下午5:48:45
 *
 */
@Component("ddTask")
@Lazy(false)
public class ddTask {

    @Autowired
    private ILptDdSpService lptDdSpService;

    private final static Long ONE_WEEK_TIMES = 7 * 24 * 60 * 60 * 1000L;

    private final static String DATE_FORMAT_STR = "yyyy-MM-dd HH:mm:ss";

    @Scheduled(cron = "59 59 23 * * ?")
    public void updateDdzt() {
        ChwLogUtil.getLogger().info(DateUtils.getCurrentTimeToStr(DATE_FORMAT_STR) + "  订单定时任务开始执行....");

        String sdsj = this.timesToDateStr(new Date().getTime() - ONE_WEEK_TIMES, DATE_FORMAT_STR);

        // 获取一周前订单数据(订单状态为已送达)
        List<LptDpDdSp> ddList = lptDdSpService.findTaskList(sdsj);
        if (null != ddList) {
            // 更新订单状态为已确认
            for (LptDpDdSp ddInfo : ddList) {
                ddInfo.setDdzt(3);
                int i = lptDdSpService.update(ddInfo);
                if (1 != i) {
                    ChwLogUtil.getLogger().info(
                            DateUtils.getCurrentTimeToStr(DATE_FORMAT_STR) + "  订单id=" + ddInfo.getDdid() + "更新失败!");
                } else {
                    ChwLogUtil.getLogger().info(
                            DateUtils.getCurrentTimeToStr(DATE_FORMAT_STR) + "  订单id=" + ddInfo.getDdid() + "更新成功!");
                }
            }
        } else {
            ChwLogUtil.getLogger().info(DateUtils.getCurrentTimeToStr(DATE_FORMAT_STR) + "暂无更新订单!");
        }
        ChwLogUtil.getLogger().info(DateUtils.getCurrentTimeToStr(DATE_FORMAT_STR) + "  订单定时任务执行结束....");

    }

    private String timesToDateStr(long oneWeekBeforeTimes, String dateFormatStr) {
        Date date = new Date(oneWeekBeforeTimes);
        SimpleDateFormat sdf = new SimpleDateFormat(dateFormatStr);
        return sdf.format(date);
    }

}

猜你喜欢

转载自blog.csdn.net/qq_33949836/article/details/78539650