From 55d694aaae4e421b5e55cd941500e08f85cb5d4d Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 27 八月 2026 18:21:33 +0800
Subject: [PATCH] feat(sales): 添加框架合同订单功能并优化销售台账管理

---
 src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskScheduler.java |   16 +++++++++++++---
 1 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskScheduler.java b/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskScheduler.java
index 384862b..18d426d 100644
--- a/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskScheduler.java
+++ b/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskScheduler.java
@@ -1,9 +1,9 @@
 package com.ruoyi.device.service.impl;
 
 import com.ruoyi.device.pojo.MaintenanceTask;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.quartz.*;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.time.LocalTime;
@@ -19,10 +19,10 @@
  */
 @Service
 @Slf4j
+@RequiredArgsConstructor
 public class MaintenanceTaskScheduler {
 
-    @Autowired
-    private Scheduler scheduler;
+    private final Scheduler scheduler;
 
     /**
      * 娣诲姞鏂颁换鍔″埌璋冨害鍣�
@@ -160,6 +160,8 @@
                 return convertMonthlyToCron(task.getFrequencyDetail());
             case "QUARTERLY":
                 return convertQuarterlyToCron(task.getFrequencyDetail());
+            case "YEARLY":
+                return convertYearlyToCron(task.getFrequencyDetail());
             default:
                 throw new IllegalArgumentException("涓嶆敮鎸佺殑棰戠巼绫诲瀷: " + task.getFrequencyType());
         }
@@ -204,6 +206,14 @@
                 quarterStartMonth);
     }
 
+    private String convertYearlyToCron(String frequencyDetail) {
+        String[] parts = validateAndSplit(frequencyDetail, ",", 3);
+        int month = validateMonth(parts[0]);
+        int day = validateDayOfMonth(parts[1]);
+        LocalTime time = parseTime(parts[2]);
+        return String.format("0 %d %d %d %d ?", time.getMinute(), time.getHour(), day, month);
+    }
+
     // 鏂板楠岃瘉鏈堜唤鐨勬柟娉�(1-12)
     private int validateMonth(String monthStr) {
         try {

--
Gitblit v1.9.3