From 44ceeeee9cd3f76b0f3a2135421407b73dea9bb0 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期五, 28 八月 2026 11:41:58 +0800
Subject: [PATCH] fix(sales): 修复销售台账发货状态查询逻辑
---
src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskJob.java | 33 ++++++++++++++++++++++++++++-----
1 files changed, 28 insertions(+), 5 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 b9deb2d..42f3f36 100644
--- a/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskJob.java
+++ b/src/main/java/com/ruoyi/device/service/impl/MaintenanceTaskJob.java
@@ -4,6 +4,7 @@
import com.ruoyi.device.pojo.MaintenanceTask;
import lombok.RequiredArgsConstructor;
import org.quartz.*;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
@@ -18,14 +19,15 @@
import java.util.Set;
@Component
-@DisallowConcurrentExecution // 绂佹骞跺彂鎵ц鍚屼竴涓狫ob
-@RequiredArgsConstructor
+@DisallowConcurrentExecution
public class MaintenanceTaskJob implements Job, Serializable {
- private static final long serialVersionUID = 1L; // 蹇呴』瀹氫箟搴忓垪鍖朓D
+ private static final long serialVersionUID = 1L;
- private final DeviceMaintenanceServiceImpl deviceMaintenanceService;
+ @Autowired
+ private DeviceMaintenanceServiceImpl deviceMaintenanceService;
- private final JdbcTemplate jdbcTemplate;
+ @Autowired
+ private JdbcTemplate jdbcTemplate;
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
@@ -91,11 +93,13 @@
inspectionTask.setMaintenanceTaskId(timingTask.getId());
inspectionTask.setDeviceLedgerId(timingTask.getTaskId());
inspectionTask.setMaintenancePlanTime(LocalDateTime.now());
+ inspectionTask.setMaintenanceActuallyName(timingTask.getMaintenancePerson());
inspectionTask.setFrequencyType(timingTask.getFrequencyType());
inspectionTask.setFrequencyDetail(timingTask.getFrequencyDetail());
inspectionTask.setTenantId(timingTask.getTenantId());
inspectionTask.setStatus(0);
inspectionTask.setDeviceModel(timingTask.getDeviceModel());
+ inspectionTask.setMachineryCategory(timingTask.getMachineryCategory());
inspectionTask.setCreateUser(Integer.parseInt(timingTask.getRegistrantId().toString()));
inspectionTask.setUpdateTime(LocalDateTime.now());
inspectionTask.setCreateTime(LocalDateTime.now());
@@ -120,6 +124,8 @@
return calculateMonthlyNextTime(frequencyDetail, currentTime);
case "QUARTERLY":
return calculateQuarterlyNextTime(frequencyDetail, currentTime);
+ case "YEARLY":
+ return calculateYearlyNextTime(frequencyDetail, currentTime);
default:
throw new IllegalArgumentException("涓嶆敮鎸佺殑棰戠巼绫诲瀷: " + frequencyType);
}
@@ -217,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