package com.gk.hotwork.doublePrevention.scheduls;
|
|
import com.gk.hotwork.doublePrevention.entity.PreventDangerCheckTask;
|
import com.gk.hotwork.doublePrevention.enums.CheckTaskStatusEnum;
|
import com.gk.hotwork.doublePrevention.enums.StatusEnum;
|
import com.gk.hotwork.doublePrevention.service.baseService.PreventDangerCheckTaskService;
|
import org.apache.commons.lang3.ObjectUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.stereotype.Component;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import javax.annotation.PostConstruct;
|
import java.util.Date;
|
import java.util.List;
|
|
@Component
|
public class PreventResetTaskSchedule {
|
|
private static final org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(PreventDangerCheckWorkSchedule.class);
|
|
@Autowired
|
private PreventDangerCheckTaskService preventDangerCheckTaskService;
|
|
@Transactional
|
@Scheduled(cron = "0 0/30 * * * ?")
|
// @PostConstruct
|
public void resetTask(){
|
|
//确定检查时间为8小时内的任务
|
Date endTime = new Date();
|
Date startTime = new Date(endTime.getTime() - 8 * 60 * 60 * 1000L);
|
/**查询应该已经过期,但是还在执行中状态的任务*/
|
List<PreventDangerCheckTask> overTaskList = preventDangerCheckTaskService.listOverTask(startTime, endTime);
|
if (ObjectUtils.isNotEmpty(overTaskList)){
|
for (PreventDangerCheckTask overTask : overTaskList) {
|
preventDangerCheckTaskService.updateTaskStatus(overTask.getId(), CheckTaskStatusEnum.STATU_OVERTIME.getStatus());
|
}
|
}
|
|
/**查询应该已经开始,但是还在待执行状态的任务*/
|
//查询开始时间小于当前时间,有效期大于当前时间的任务
|
List<PreventDangerCheckTask> waitExecTaskList = preventDangerCheckTaskService.listWaitExecTask(endTime);
|
if (ObjectUtils.isNotEmpty(waitExecTaskList)){
|
for (PreventDangerCheckTask waitExecTask : waitExecTaskList) {
|
preventDangerCheckTaskService.updateTaskStatus(waitExecTask.getId(), CheckTaskStatusEnum.STATU_EXEUTE.getStatus());
|
|
}
|
}
|
|
/**查询应该已经结束,但是还在执行中状态的任务*/
|
//查询开始时间小于当前时间,有效期大于当前时间的任务
|
List<PreventDangerCheckTask> timeOutTaskList = preventDangerCheckTaskService.listTimeOutTask(endTime);
|
if (ObjectUtils.isNotEmpty(timeOutTaskList)){
|
for (PreventDangerCheckTask timeOutTask : timeOutTaskList) {
|
preventDangerCheckTaskService.updateTaskStatus(timeOutTask.getId(), CheckTaskStatusEnum.STATU_OVERTIME.getStatus());
|
|
}
|
}
|
|
}
|
}
|