From 370ef4f5e663fdfc1d19d2774dfc4ec1ed0af60e Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期六, 29 八月 2026 14:57:48 +0800
Subject: [PATCH] 修复采集器历史状态持续序列化错误
---
ruoyi-device/src/main/java/com/ruoyi/device/simulator/InMemoryBtsSimulatorStateStore.java | 33 +++++++++++++++++++++++++++++++++
1 files changed, 33 insertions(+), 0 deletions(-)
diff --git a/ruoyi-device/src/main/java/com/ruoyi/device/simulator/InMemoryBtsSimulatorStateStore.java b/ruoyi-device/src/main/java/com/ruoyi/device/simulator/InMemoryBtsSimulatorStateStore.java
index 780ffe3..1c6db82 100644
--- a/ruoyi-device/src/main/java/com/ruoyi/device/simulator/InMemoryBtsSimulatorStateStore.java
+++ b/ruoyi-device/src/main/java/com/ruoyi/device/simulator/InMemoryBtsSimulatorStateStore.java
@@ -1,6 +1,11 @@
package com.ruoyi.device.simulator;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
import java.util.List;
+import java.util.Map;
+import com.ruoyi.device.simulator.BtsSimulatorStateStore.CollectorHistoryAppend;
+import com.ruoyi.device.simulator.BtsSimulatorStateStore.CollectorMeasurementRecord;
import com.ruoyi.device.simulator.BtsSimulatorStateStore.RecentRequest;
import com.ruoyi.device.simulator.BtsSimulatorStateStore.SimulatorState;
@@ -9,6 +14,7 @@
{
private SimulatorState state;
private List<RecentRequest> recentRequests = List.of();
+ private final Map<String, List<CollectorMeasurementRecord>> collectorHistory = new LinkedHashMap<>();
public InMemoryBtsSimulatorStateStore() { }
@@ -31,6 +37,32 @@
}
@Override
+ public synchronized void save(SimulatorState state, List<CollectorHistoryAppend> historyAppends)
+ {
+ for (CollectorHistoryAppend append : historyAppends)
+ {
+ List<CollectorMeasurementRecord> records = new ArrayList<>(
+ collectorHistory.getOrDefault(append.collectorCode(), List.of()));
+ records.addAll(append.records());
+ collectorHistory.put(append.collectorCode(), List.copyOf(records));
+ }
+ this.state = state;
+ }
+
+ @Override
+ public synchronized List<CollectorMeasurementRecord> loadCollectorHistory(String collectorCode)
+ {
+ return collectorHistory.getOrDefault(collectorCode, List.of());
+ }
+
+ @Override
+ public synchronized void saveAndDeleteCollectorHistory(SimulatorState state, String collectorCode)
+ {
+ collectorHistory.remove(collectorCode);
+ this.state = state;
+ }
+
+ @Override
public synchronized List<RecentRequest> loadRecentRequests()
{
return recentRequests;
@@ -47,5 +79,6 @@
{
state = defaultState;
recentRequests = List.of();
+ collectorHistory.clear();
}
}
--
Gitblit v1.7.1