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 | 26 ++++++++++++++++++++------
1 files changed, 20 insertions(+), 6 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 2ff2e7e..59248ab 100644
--- a/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskScheduler.java
+++ b/src/main/java/com/ruoyi/inspectiontask/service/impl/TimingTaskScheduler.java
@@ -1,8 +1,8 @@
package com.ruoyi.inspectiontask.service.impl;
import com.ruoyi.inspectiontask.pojo.TimingTask;
+import lombok.RequiredArgsConstructor;
import org.quartz.*;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalTime;
@@ -13,10 +13,10 @@
import java.util.stream.Collectors;
@Service
+@RequiredArgsConstructor
public class TimingTaskScheduler {
- @Autowired
- private Scheduler scheduler;
+ private final Scheduler scheduler;
/**
* 娣诲姞鏂颁换鍔″埌璋冨害鍣�
@@ -84,9 +84,13 @@
/**
* 鍒犻櫎浠诲姟
*/
- public void unscheduleTimingTask(Long taskId) throws SchedulerException {
- JobKey jobKey = new JobKey("timingTask_" + taskId);
- scheduler.deleteJob(jobKey);
+ public void unscheduleTimingTask(Long taskId){
+ try {
+ JobKey jobKey = new JobKey("timingTask_" + taskId);
+ scheduler.deleteJob(jobKey);
+ }catch (SchedulerException e){
+ throw new RuntimeException(e);
+ }
}
private JobDetail buildJobDetail(TimingTask task) {
@@ -141,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":
@@ -154,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