| | |
| | | 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) { |
| | | // 从启用变为停用,移除任务 |
| | |
| | | // 从停用变为启用,添加任务 |
| | | 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) { |
| | |
| | | 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; |
| | | } |