| | |
| | | if (StringUtils.isNotBlank(timingTask.getTaskName())) { |
| | | queryWrapper.like(TimingTask::getTaskName, timingTask.getTaskName()); |
| | | } |
| | | queryWrapper.orderByDesc(TimingTask::getCreateTime); |
| | | IPage<TimingTask> taskPage = timingTaskMapper.selectPage(page, queryWrapper); |
| | | |
| | | // 2. 如果没有数据,直接返回空分页 |
| | |
| | | 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; |
| | | } |