| | |
| | | } |
| | | return AjaxResult.success("删除成功"); |
| | | } |
| | | |
| | | @Override |
| | | public AjaxResult changeEnable(Long id, Integer isEnabled) { |
| | | MaintenanceTask oldTask = maintenanceTaskMapper.selectById(id); |
| | | if (oldTask == null) { |
| | | return AjaxResult.error("保养任务不存在"); |
| | | } |
| | | |
| | | MaintenanceTask update = new MaintenanceTask(); |
| | | update.setId(id); |
| | | update.setIsEnabled(isEnabled); |
| | | update.setActive(isEnabled != null && isEnabled == 1); |
| | | |
| | | int result = maintenanceTaskMapper.updateById(update); |
| | | if (result > 0) { |
| | | try { |
| | | if (isEnabled != null && isEnabled == 1) { |
| | | // 启用:恢复或重新调度 |
| | | if (oldTask.getIsEnabled() != null && oldTask.getIsEnabled() == 0) { |
| | | // 从禁用改为启用,重新计算下次执行时间(如果没有) |
| | | if (oldTask.getNextExecutionTime() == null || oldTask.getNextExecutionTime().isBefore(LocalDateTime.now())) { |
| | | TimingTask tempTask = new TimingTask(); |
| | | tempTask.setFrequencyType(oldTask.getFrequencyType()); |
| | | tempTask.setFrequencyDetail(oldTask.getFrequencyDetail()); |
| | | LocalDateTime nextTime = timingTaskService.calculateFirstExecutionTime(tempTask); |
| | | update.setNextExecutionTime(nextTime); |
| | | maintenanceTaskMapper.updateById(update); |
| | | } |
| | | maintenanceTaskScheduler.scheduleMaintenanceTask(oldTask); |
| | | } else { |
| | | maintenanceTaskScheduler.resumeMaintenanceTask(id); |
| | | } |
| | | } else { |
| | | // 禁用:暂停调度 |
| | | maintenanceTaskScheduler.pauseMaintenanceTask(id); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("调整保养任务调度状态失败", e); |
| | | } |
| | | return AjaxResult.success("更新成功"); |
| | | } |
| | | return AjaxResult.error("更新失败"); |
| | | } |
| | | } |