云
2026-10-27 0a4d548b6bf9cfef252400fb6d6612e45cf5b602
src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskJob.java
@@ -4,6 +4,7 @@
import com.ruoyi.device.pojo.MaintenanceTask;
import lombok.RequiredArgsConstructor;
import org.quartz.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
@@ -18,14 +19,15 @@
import java.util.Set;
@Component
@DisallowConcurrentExecution // 禁止并发执行同一个Job
@RequiredArgsConstructor
@DisallowConcurrentExecution
public class MaintenanceTaskJob implements Job, Serializable {
    private static final long serialVersionUID = 1L; // 必须定义序列化ID
    private static final long serialVersionUID = 1L;
    private final DeviceMaintenanceServiceImpl deviceMaintenanceService;
    @Autowired
    private DeviceMaintenanceServiceImpl deviceMaintenanceService;
    private final JdbcTemplate jdbcTemplate;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
@@ -45,6 +47,10 @@
            MaintenanceTask timingTask = tasks.isEmpty() ? null : tasks.get(0);
            if (timingTask == null) {
                throw new JobExecutionException("MaintenanceTaskJob找不到定时任务: " + taskId);
            }
            // 任务已停用时不生成保养记录
            if (!timingTask.isActive()) {
                return;
            }
            // 2. 创建并保存巡检任务记录 - 这就是您提供的代码应该放的位置
@@ -91,11 +97,13 @@
        inspectionTask.setMaintenanceTaskId(timingTask.getId());
        inspectionTask.setDeviceLedgerId(timingTask.getTaskId());
        inspectionTask.setMaintenancePlanTime(LocalDateTime.now());
        inspectionTask.setMaintenanceActuallyName(timingTask.getMaintenancePerson());
        inspectionTask.setFrequencyType(timingTask.getFrequencyType());
        inspectionTask.setFrequencyDetail(timingTask.getFrequencyDetail());
        inspectionTask.setTenantId(timingTask.getTenantId());
        inspectionTask.setStatus(0);
        inspectionTask.setDeviceModel(timingTask.getDeviceModel());
        inspectionTask.setMachineryCategory(timingTask.getMachineryCategory());
        inspectionTask.setCreateUser(Integer.parseInt(timingTask.getRegistrantId().toString()));
        inspectionTask.setUpdateTime(LocalDateTime.now());
        inspectionTask.setCreateTime(LocalDateTime.now());