From 90882aca0b60a5b39e127d30438752a774b3a7ac Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期六, 05 九月 2026 21:29:25 +0800
Subject: [PATCH] 修复模拟器 Redis 工步方案恢复

---
 ruoyi-admin/src/test/java/com/battery/business/runtime/RedisStateStoreTest.java |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/ruoyi-admin/src/test/java/com/battery/business/runtime/RedisStateStoreTest.java b/ruoyi-admin/src/test/java/com/battery/business/runtime/RedisStateStoreTest.java
index ecc55f3..8023b0d 100644
--- a/ruoyi-admin/src/test/java/com/battery/business/runtime/RedisStateStoreTest.java
+++ b/ruoyi-admin/src/test/java/com/battery/business/runtime/RedisStateStoreTest.java
@@ -112,6 +112,23 @@
     }
 
     @Test
+    void restoresChannelPlanWhenRedisReturnsNestedJsonObjects()
+    {
+        JSONObject state = JSON.parseObject(JSON.toJSONString(state(1, "127.0.0.2")));
+        JSONObject configuration = state.getJSONArray("devices").getJSONObject(0)
+                .getJSONArray("channels").getJSONObject(0).getJSONObject("configuration");
+        configuration.getJSONArray("steps").forEach(item -> ((JSONObject) item).put("@type", JSONObject.class.getName()));
+        FastJson2JsonRedisSerializer<Object> serializer = new FastJson2JsonRedisSerializer<>(Object.class);
+        Object restoredValue = serializer.deserialize(serializer.serialize(state));
+
+        SimulatorState restored = store(new AtomicReference<>(restoredValue))
+                .loadOrInitialize(state(9, "127.0.0.9"));
+
+        assertEquals("恒流充电", restored.devices().get(0).channels().get(0)
+                .configuration().steps().get(0).name());
+    }
+
+    @Test
     void upgradesLegacyCollectorDiscoveryStateWithSamplingDefaults()
     {
         AtomicReference<Object> stored = new AtomicReference<>("{\"version\":1,\"devices\":[],"

--
Gitblit v1.7.1