From 66d041ed14b3ed3ed7183a28a5c588e235fc21d0 Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期二, 26 五月 2026 11:14:07 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_pro_河南鹤壁' into dev_鹤壁_强信宇_pro

---
 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