hsy
2026-08-28 a8e4132c3e2e9c3b3fcb0360901b35571b6464ea
src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskJob.java
@@ -4,9 +4,12 @@
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;
import com.ruoyi.project.system.service.ISysNoticeService;
import com.ruoyi.project.system.domain.SysNotice;
import java.io.Serializable;
import java.time.DayOfWeek;
@@ -18,14 +21,18 @@
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;
    @Autowired
    private ISysNoticeService sysNoticeService;
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
@@ -50,6 +57,19 @@
            // 2. 创建并保存巡检任务记录 - 这就是您提供的代码应该放的位置
            DeviceMaintenance deviceMaintenance = createInspectionTask(timingTask);
            deviceMaintenanceService.save(deviceMaintenance);
            // 给执行人发送系统通知
            if (timingTask.getExecutorId() != null) {
                SysNotice notice = new SysNotice();
                notice.setNoticeTitle("新保养任务提醒");
                notice.setNoticeType("1"); // 1 通知
                notice.setNoticeContent("您有一个新的设备保养任务需要执行,设备名称:" + timingTask.getTaskName());
                notice.setStatus("0"); // 正常
                notice.setConsigneeId(timingTask.getExecutorId());
                notice.setSenderId(0L); // 0代表系统发送
                notice.setTenantId(timingTask.getTenantId());
                sysNoticeService.insertNotice(notice);
            }
            // 3. 更新定时任务的执行时间
            if (!tasks.isEmpty()) {
@@ -91,6 +111,9 @@
        inspectionTask.setMaintenanceTaskId(timingTask.getId());
        inspectionTask.setDeviceLedgerId(timingTask.getTaskId());
        inspectionTask.setMaintenancePlanTime(LocalDateTime.now());
        inspectionTask.setMaintenanceActuallyName(timingTask.getMaintenancePerson());
        inspectionTask.setExecutorId(timingTask.getExecutorId());
        inspectionTask.setMaintenanceType(timingTask.getMaintenanceType());
        inspectionTask.setFrequencyType(timingTask.getFrequencyType());
        inspectionTask.setFrequencyDetail(timingTask.getFrequencyDetail());
        inspectionTask.setTenantId(timingTask.getTenantId());