|
|
|
@ -0,0 +1,57 @@ |
|
|
|
package com.qniao.dam.application.task; |
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
import com.qniao.dam.domain.aggregate.tasktemplate.TaskTemplateAggregate; |
|
|
|
import com.qniao.dam.domain.aggregate.tasktemplate.entity.TaskTemplate; |
|
|
|
import com.qniao.dam.domian.aggregate.tasktemplate.constant.TaskTemplateStatus; |
|
|
|
import com.qniao.dam.infrastructure.persistent.dao.tasktemplate.TaskTemplateDao; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.springframework.scheduling.annotation.Scheduled; |
|
|
|
import org.springframework.stereotype.Component; |
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
import java.time.LocalDateTime; |
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
@Component |
|
|
|
@Slf4j |
|
|
|
public class TaskTemplateTask { |
|
|
|
|
|
|
|
@Resource |
|
|
|
private TaskTemplateDao taskTemplateDao; |
|
|
|
@Resource |
|
|
|
private TaskTemplateAggregate taskTemplateAggregate; |
|
|
|
|
|
|
|
@Scheduled(cron = "1 0 * * * *") |
|
|
|
public void handle() { |
|
|
|
try { |
|
|
|
log.error("任务模板任务开始"); |
|
|
|
LocalDateTime now = LocalDateTime.now(); |
|
|
|
//准备开始的任务 |
|
|
|
List<TaskTemplate> notEffectiveList = taskTemplateDao.selectList(new LambdaQueryWrapper<TaskTemplate>() |
|
|
|
.eq(TaskTemplate::getStatus, TaskTemplateStatus.NOT_EFFECTIVE) |
|
|
|
.le(TaskTemplate::getStartTime, now) |
|
|
|
.ge(TaskTemplate::getEndTime, now)); |
|
|
|
if (CollUtil.isNotEmpty(notEffectiveList)) { |
|
|
|
notEffectiveList.forEach(taskTemplate -> { |
|
|
|
taskTemplate.setStatus(TaskTemplateStatus.EFFECTIVE); |
|
|
|
taskTemplateAggregate.edit(taskTemplate); |
|
|
|
}); |
|
|
|
} |
|
|
|
//准备结束的任务 |
|
|
|
List<TaskTemplate> effectiveList = taskTemplateDao.selectList(new LambdaQueryWrapper<TaskTemplate>() |
|
|
|
.eq(TaskTemplate::getStatus, TaskTemplateStatus.EFFECTIVE) |
|
|
|
.le(TaskTemplate::getEndTime, now)); |
|
|
|
if (CollUtil.isNotEmpty(effectiveList)) { |
|
|
|
notEffectiveList.forEach(taskTemplate -> { |
|
|
|
taskTemplate.setStatus(TaskTemplateStatus.FINISHED); |
|
|
|
taskTemplateAggregate.edit(taskTemplate); |
|
|
|
}); |
|
|
|
} |
|
|
|
log.error("任务模板任务结束"); |
|
|
|
} catch (Exception e) { |
|
|
|
log.error("任务模板任务异常", e); |
|
|
|
} |
|
|
|
} |
|
|
|
} |