From cf330c6a6c2ae7ec86d20de465d5af27a4684cf6 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 03 十一月 2026 19:16:58 +0800
Subject: [PATCH] 巡检任务频次增加“每年”支持

---
 src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskScheduler.java |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 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..59248ab 100644
--- a/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskScheduler.java
+++ b/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskScheduler.java
@@ -145,6 +145,8 @@
         // 浣跨敤switch纭繚鏉′欢浜掓枼
         String frequencyType = task.getFrequencyType().toUpperCase(); // 缁熶竴杞负澶у啓姣旇緝
         switch (frequencyType) {
+            case "YEARLY":
+                return convertYearlyToCron(task.getFrequencyDetail());
             case "DAILY":
                 return convertDailyToCron(task.getFrequencyDetail());
             case "WEEKLY":
@@ -158,6 +160,14 @@
         }
     }
 
+    // 姣忓勾浠诲姟杞崲锛坒requencyDetail 鏍煎紡涓� "鏈�,鏃�"锛岄粯璁� 07:00 鎵ц锛�
+    private String convertYearlyToCron(String frequencyDetail) {
+        String[] parts = validateAndSplit(frequencyDetail, ",", 2);
+        int month = validateMonth(parts[0]);
+        int day = validateDayOfMonth(parts[1]);
+        return String.format("0 0 7 %d %d ? *", day, month);
+    }
+
     // 姣忔棩浠诲姟杞崲
     private String convertDailyToCron(String frequencyDetail) {
         LocalTime time = parseTime(frequencyDetail);

--
Gitblit v1.9.3