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 jobClassName = quartzJobService.findByJobClassName(this.getClass().getName()); if (jobClassName != null && !jobClassName.isEmpty()) { quartzLog.setJobId(jobClassName.get(0).getId()); } long startTime = System.currentTimeMillis(); List 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); } }