package org.jeecg.modules.eam.job;
|
|
import cn.hutool.core.collection.CollectionUtil;
|
import lombok.extern.slf4j.Slf4j;
|
import org.jeecg.common.util.DateUtils;
|
import org.jeecg.modules.eam.constant.TechnicalStatusEvaluationOrderStatusEnum;
|
import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationOrder;
|
import org.jeecg.modules.eam.service.IEamTechnicalStatusEvaluationOrderService;
|
import org.jeecg.modules.quartz.entity.QuartzJob;
|
import org.jeecg.modules.quartz.entity.SysQuartzLog;
|
import org.jeecg.modules.quartz.service.IQuartzJobService;
|
import org.jeecg.modules.quartz.service.ISysQuartzLogService;
|
import org.quartz.Job;
|
import org.quartz.JobExecutionContext;
|
import org.quartz.JobExecutionException;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.Date;
|
import java.util.List;
|
|
@Component
|
@Slf4j
|
public class TechnicalStatusEvaluationLockedJob implements Job {
|
|
@Autowired
|
private IEamTechnicalStatusEvaluationOrderService evaluationOrderService;
|
@Autowired
|
private ISysQuartzLogService sysQuartzLogService;
|
@Autowired
|
private IQuartzJobService quartzJobService;
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
//任务日志
|
SysQuartzLog quartzLog = new SysQuartzLog();
|
quartzLog.setCreateTime(new Date());
|
List<QuartzJob> jobClassName = quartzJobService.findByJobClassName(this.getClass().getName());
|
if (jobClassName != null && !jobClassName.isEmpty()) {
|
quartzLog.setJobId(jobClassName.get(0).getId());
|
}
|
long startTime = System.currentTimeMillis();
|
List<EamTechnicalStatusEvaluationOrder> list = evaluationOrderService.selectWaitEvaluationOrderList();
|
if (CollectionUtil.isEmpty(list)) {
|
log.info("没有需要锁定的工单!日期:{}", DateUtils.date2Str(DateUtils.date_sdf.get()));
|
quartzLog.setIsSuccess(0);
|
long endTime = System.currentTimeMillis();
|
quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
|
quartzLog.setExceptionDetail("没有需要锁定的工单,日期:" + DateUtils.date2Str(DateUtils.date_sdf.get()));
|
sysQuartzLogService.save(quartzLog);
|
return;
|
}
|
for (EamTechnicalStatusEvaluationOrder order : list) {
|
order.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.LOCKED.name());
|
evaluationOrderService.updateById(order);
|
}
|
quartzLog.setIsSuccess(0);
|
long endTime = System.currentTimeMillis();
|
quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
|
quartzLog.setExceptionDetail("锁定了{" + list.size() + "}条工单,日期:" + DateUtils.date2Str(DateUtils.date_sdf.get()));
|
sysQuartzLogService.save(quartzLog);
|
}
|
}
|