yuan
2026-06-26 fbda2f16d63dcad15de13ab0997ef51257e5815b
src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskServiceImpl.java
@@ -53,6 +53,7 @@
        if (StringUtils.isNotBlank(timingTask.getTaskName())) {
            queryWrapper.like(TimingTask::getTaskName, timingTask.getTaskName());
        }
        queryWrapper.orderByDesc(TimingTask::getCreateTime);
        IPage<TimingTask> taskPage = timingTaskMapper.selectPage(page, queryWrapper);
        // 2. 如果没有数据,直接返回空分页
@@ -167,6 +168,10 @@
            TimingTask oldTask = timingTaskMapper.selectById(timingTaskDto.getId());
            Integer oldIsActive = oldTask != null ? oldTask.getIsActive() : 0;
            Integer newIsActive = timingTask.getIsActive();
            if (Integer.valueOf(1).equals(newIsActive)) {
                LocalDateTime firstExecutionTime = calculateFirstExecutionTime(timingTask);
                timingTask.setNextExecutionTime(firstExecutionTime);
            }
            int result = timingTaskMapper.updateById(timingTask);
            if (result > 0) {
                // 从启用变为停用,移除任务
@@ -177,9 +182,6 @@
                // 从停用变为启用,添加任务
                else if (!Integer.valueOf(1).equals(oldIsActive)
                        && Integer.valueOf(1).equals(newIsActive)) {
                    // 计算首次执行时间
                    LocalDateTime firstExecutionTime = calculateFirstExecutionTime(timingTask);
                    timingTask.setNextExecutionTime(firstExecutionTime);
                    try {
                        timingTaskScheduler.scheduleTimingTask(timingTask);
                    } catch (Exception e) {
@@ -187,6 +189,16 @@
                        throw new ServiceException("添加巡检任务失败");
                    }
                }
                // 保持启用状态,重新调度任务
                else if (Integer.valueOf(1).equals(oldIsActive)
                        && Integer.valueOf(1).equals(newIsActive)) {
                    try {
                        timingTaskScheduler.rescheduleTimingTask(timingTask);
                    } catch (Exception e) {
                        log.error("更新巡检任务失败 : {}", e.getMessage(), e);
                        throw new ServiceException("更新巡检任务失败");
                    }
                }
            }
            return result;
        }