From ac360fe22ae21722c3af52ef727c8456f5f100e7 Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期日, 06 九月 2026 01:04:33 +0800
Subject: [PATCH] 修复三类数据查询的数据库时间转换

---
 ruoyi-admin/src/test/java/com/battery/business/web/ConsoleWorkbookImportMysqlTest.java |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/ruoyi-admin/src/test/java/com/battery/business/web/ConsoleWorkbookImportMysqlTest.java b/ruoyi-admin/src/test/java/com/battery/business/web/ConsoleWorkbookImportMysqlTest.java
index 093c2e5..847668b 100644
--- a/ruoyi-admin/src/test/java/com/battery/business/web/ConsoleWorkbookImportMysqlTest.java
+++ b/ruoyi-admin/src/test/java/com/battery/business/web/ConsoleWorkbookImportMysqlTest.java
@@ -12,6 +12,8 @@
 import com.battery.business.mapper.TTestMapper;
 import com.battery.business.service.ITestConsoleDataService;
 import com.battery.business.service.impl.TestConsoleDataServiceImpl;
+import com.battery.business.service.impl.TTestServiceImpl;
+import com.battery.business.service.impl.TestDataQueryServiceImpl;
 import org.apache.ibatis.datasource.unpooled.UnpooledDataSource;
 import org.flywaydb.core.Flyway;
 import org.junit.jupiter.api.Test;
@@ -67,6 +69,9 @@
                     @Override public String getUsername() { return "验收操作员"; }
                 };
                 ReflectionTestUtils.setField(controller, "consoleDataService", service);
+                var tests = new TTestServiceImpl();
+                ReflectionTestUtils.setField(tests, "testMapper", mapper);
+                ReflectionTestUtils.setField(controller, "testDataQueryService", new TestDataQueryServiceImpl(mapper, tests));
                 var sample = JSON.parseObject(Files.readString(Path.of(System.getenv("TICKET03_SAMPLE_JSON"))));
                 Map<String, List<Map<String, Object>>> sheets = new LinkedHashMap<>();
                 for (String type : List.of("REALTIME", "STEP", "CYCLE")) sheets.put(type, (List) sample.getJSONArray(type).toJavaList(Map.class));
@@ -83,6 +88,19 @@
                 assertEquals(7605, mapper.selectPersistedFinalRealtimeRecords(1L).size());
                 assertEquals(129, mapper.selectPersistedFinalStepRecords(1L).size());
                 assertEquals(33, mapper.selectPersistedFinalCycleRecords(1L).size());
+                // 通过正式查询入口验证真实 JDBC 时间类型,避免内存库时间类型掩盖接口偏差。
+                var json = tools.jackson.databind.json.JsonMapper.builder().findAndAddModules().build();
+                for (var result : List.of(controller.persistedRecords(1L), controller.persistedSteps(1L), controller.persistedCycles(1L)))
+                {
+                    var rows = json.readTree(json.writeValueAsString(result)).get("data");
+                    for (var row : rows) for (String field : List.of("deviceTime", "recordedAt", "absoluteTime", "serverReceivedAt"))
+                    {
+                        var value = row.get(field);
+                        if (value != null && !value.isNull()) assertTrue(value.isIntegralNumber(), field + ": " + value);
+                    }
+                }
+                var firstRecord = json.readTree(json.writeValueAsString(controller.persistedRecords(1L))).get("data").get(7604);
+                assertEquals(1683517331000L, firstRecord.get("deviceTime").longValue());
                 var actions = service.selectActions(new TTestDataRevisionAction());
                 assertEquals(1, actions.size());
                 var revision = service.selectActionById(actions.get(0).getActionId());

--
Gitblit v1.7.1