From 1ac467b2339d5e8d1d1004f2df22913dc30e4464 Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期日, 24 五月 2026 13:22:54 +0800
Subject: [PATCH] 巡检定时任务编辑保存报错修复

---
 src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskScheduler.java |   30 ++++++++++++++++++------------
 1 files changed, 18 insertions(+), 12 deletions(-)

diff --git a/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskScheduler.java b/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskScheduler.java
index a6179f6..63289a7 100644
--- a/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskScheduler.java
+++ b/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskScheduler.java
@@ -35,6 +35,17 @@
 
         // 鑾峰彇鐜版湁瑙﹀彂鍣ㄥ苟杞崲涓� CronTrigger
         Trigger oldTrigger = scheduler.getTrigger(triggerKey);
+        if (oldTrigger == null) {
+            JobKey jobKey = new JobKey("timingTask_" + task.getId());
+            JobDetail jobDetail = scheduler.getJobDetail(jobKey);
+            if (jobDetail != null) {
+                Trigger trigger = buildJobTrigger(task, jobDetail);
+                scheduler.scheduleJob(trigger);
+            } else {
+                scheduleTimingTask(task);
+            }
+            return;
+        }
         if (!(oldTrigger instanceof CronTrigger)) {
             throw new SchedulerException("Existing trigger is not a CronTrigger");
         }
@@ -144,18 +155,13 @@
 
         // 浣跨敤switch纭繚鏉′欢浜掓枼
         String frequencyType = task.getFrequencyType().toUpperCase(); // 缁熶竴杞负澶у啓姣旇緝
-        switch (frequencyType) {
-            case "DAILY":
-                return convertDailyToCron(task.getFrequencyDetail());
-            case "WEEKLY":
-                return convertWeeklyToCron(task.getFrequencyDetail());
-            case "MONTHLY":
-                return convertMonthlyToCron(task.getFrequencyDetail());
-            case "QUARTERLY":
-                return convertQuarterlyToCron(task.getFrequencyDetail());
-            default:
-                throw new IllegalArgumentException("涓嶆敮鎸佺殑棰戠巼绫诲瀷: " + task.getFrequencyType());
-        }
+        return switch (frequencyType) {
+            case "DAILY" -> convertDailyToCron(task.getFrequencyDetail());
+            case "WEEKLY" -> convertWeeklyToCron(task.getFrequencyDetail());
+            case "MONTHLY" -> convertMonthlyToCron(task.getFrequencyDetail());
+            case "QUARTERLY" -> convertQuarterlyToCron(task.getFrequencyDetail());
+            default -> throw new IllegalArgumentException("涓嶆敮鎸佺殑棰戠巼绫诲瀷: " + task.getFrequencyType());
+        };
     }
 
     // 姣忔棩浠诲姟杞崲

--
Gitblit v1.9.3