From a217dbfc7378ff9cf5b6d3ca8b229a2b9d932e51 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 02 六月 2026 11:52:19 +0800
Subject: [PATCH] feat(device): 添加设备保养验收功能和年度定时任务支持
---
src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskServiceImpl.java | 43 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 43 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskServiceImpl.java b/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskServiceImpl.java
index 1450a35..8aa02aa 100644
--- a/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskServiceImpl.java
+++ b/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskServiceImpl.java
@@ -147,4 +147,47 @@
}
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("鏇存柊澶辫触");
+ }
}
--
Gitblit v1.9.3