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/MaintenanceTaskJob.java | 19 +++++++++++++++++++
1 files changed, 19 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskJob.java b/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskJob.java
index 204667b..42f3f36 100644
--- a/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskJob.java
+++ b/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskJob.java
@@ -124,6 +124,8 @@
return calculateMonthlyNextTime(frequencyDetail, currentTime);
case "QUARTERLY":
return calculateQuarterlyNextTime(frequencyDetail, currentTime);
+ case "YEARLY":
+ return calculateYearlyNextTime(frequencyDetail, currentTime);
default:
throw new IllegalArgumentException("涓嶆敮鎸佺殑棰戠巼绫诲瀷: " + frequencyType);
}
@@ -221,6 +223,23 @@
);
}
+ private LocalDateTime calculateYearlyNextTime(String detail, LocalDateTime current) {
+ String[] parts = detail.split(",");
+ int month = Integer.parseInt(parts[0]);
+ int day = Integer.parseInt(parts[1]);
+ LocalTime time = LocalTime.parse(parts[2]);
+
+ int year = current.getYear();
+ LocalDateTime nextTime = LocalDateTime.of(java.time.LocalDate.of(year, month,
+ Math.min(day, YearMonth.of(year, month).lengthOfMonth())), time);
+ if (!nextTime.isAfter(current)) {
+ year++;
+ nextTime = LocalDateTime.of(java.time.LocalDate.of(year, month,
+ Math.min(day, YearMonth.of(year, month).lengthOfMonth())), time);
+ }
+ return nextTime;
+ }
+
/**
* 瑙f瀽鏄熸湡鍑犲瓧绗︿覆
*/
--
Gitblit v1.9.3