From 8b1129e0fc329b5d69428e2a813baec64bee1625 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 27 四月 2026 10:44:42 +0800
Subject: [PATCH] fix: preserve unlimited station task limits in snapshot
---
src/main/java/com/zy/ai/service/impl/AutoTuneSnapshotServiceImpl.java | 47 +++++++++++++++++++++++++++++++++--------------
1 files changed, 33 insertions(+), 14 deletions(-)
diff --git a/src/main/java/com/zy/ai/service/impl/AutoTuneSnapshotServiceImpl.java b/src/main/java/com/zy/ai/service/impl/AutoTuneSnapshotServiceImpl.java
index 9578f23..0eabf21 100644
--- a/src/main/java/com/zy/ai/service/impl/AutoTuneSnapshotServiceImpl.java
+++ b/src/main/java/com/zy/ai/service/impl/AutoTuneSnapshotServiceImpl.java
@@ -212,11 +212,13 @@
"aiAutoTuneIntervalMinutes",
DEFAULT_AI_AUTO_TUNE_INTERVAL_MINUTES
));
+ List<BasCrnp> crnList = loadCrnList();
+ List<BasDualCrnp> dualCrnList = loadDualCrnList();
snapshot.setStationOutTaskLimits(loadStationOutTaskLimits());
- snapshot.setCrnMaxOutTask(loadCrnMaxOutTask());
- snapshot.setCrnMaxInTask(loadCrnMaxInTask());
- snapshot.setDualCrnMaxOutTask(loadDualCrnMaxOutTask());
- snapshot.setDualCrnMaxInTask(loadDualCrnMaxInTask());
+ snapshot.setCrnMaxOutTask(buildCrnMaxOutTask(crnList));
+ snapshot.setCrnMaxInTask(buildCrnMaxInTask(crnList));
+ snapshot.setDualCrnMaxOutTask(buildDualCrnMaxOutTask(dualCrnList));
+ snapshot.setDualCrnMaxInTask(buildDualCrnMaxInTask(dualCrnList));
return snapshot;
}
@@ -242,41 +244,58 @@
}
QueryWrapper<BasStation> wrapper = new QueryWrapper<>();
wrapper.orderByAsc("station_id");
- for (BasStation station : safeList(basStationService.list(wrapper))) {
+ return buildStationOutTaskLimitMap(basStationService.list(wrapper));
+ }
+
+ Map<String, Integer> buildStationOutTaskLimitMap(List<BasStation> stationList) {
+ Map<String, Integer> result = new LinkedHashMap<>();
+ for (BasStation station : safeList(stationList)) {
if (station != null && station.getStationId() != null) {
- result.put(String.valueOf(station.getStationId()), defaultInt(station.getOutTaskLimit()));
+ result.put(String.valueOf(station.getStationId()), station.getOutTaskLimit());
}
}
return result;
}
- private Map<String, Integer> loadCrnMaxOutTask() {
+ private Map<String, Integer> buildCrnMaxOutTask(List<BasCrnp> crnList) {
Map<String, Integer> result = new LinkedHashMap<>();
- for (BasCrnp crn : loadCrnList()) {
+ for (BasCrnp crn : safeList(crnList)) {
+ if (crn == null || crn.getCrnNo() == null) {
+ continue;
+ }
result.put(String.valueOf(crn.getCrnNo()), defaultInt(crn.getMaxOutTask()));
}
return result;
}
- private Map<String, Integer> loadCrnMaxInTask() {
+ private Map<String, Integer> buildCrnMaxInTask(List<BasCrnp> crnList) {
Map<String, Integer> result = new LinkedHashMap<>();
- for (BasCrnp crn : loadCrnList()) {
+ for (BasCrnp crn : safeList(crnList)) {
+ if (crn == null || crn.getCrnNo() == null) {
+ continue;
+ }
result.put(String.valueOf(crn.getCrnNo()), defaultInt(crn.getMaxInTask()));
}
return result;
}
- private Map<String, Integer> loadDualCrnMaxOutTask() {
+ private Map<String, Integer> buildDualCrnMaxOutTask(List<BasDualCrnp> dualCrnList) {
Map<String, Integer> result = new LinkedHashMap<>();
- for (BasDualCrnp dualCrn : loadDualCrnList()) {
+ for (BasDualCrnp dualCrn : safeList(dualCrnList)) {
+ if (dualCrn == null || dualCrn.getCrnNo() == null) {
+ continue;
+ }
result.put(String.valueOf(dualCrn.getCrnNo()), defaultInt(dualCrn.getMaxOutTask()));
}
return result;
}
- private Map<String, Integer> loadDualCrnMaxInTask() {
+ private Map<String, Integer> buildDualCrnMaxInTask(List<BasDualCrnp> dualCrnList) {
Map<String, Integer> result = new LinkedHashMap<>();
- for (BasDualCrnp dualCrn : loadDualCrnList()) {
+ for (BasDualCrnp dualCrn : safeList(dualCrnList)) {
+ if (dualCrn == null || dualCrn.getCrnNo() == null) {
+ continue;
+ }
result.put(String.valueOf(dualCrn.getCrnNo()), defaultInt(dualCrn.getMaxInTask()));
}
return result;
--
Gitblit v1.9.1