From 890049eeece6fc94cd974368451cdc36ec89fdf4 Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期六, 05 九月 2026 22:28:38 +0800
Subject: [PATCH] 兼容甲方三类数据单页导入并保留同秒记录

---
 battery-business/src/main/resources/mapper/battery/TTestMapper.xml |   15 ++++++++++++---
 1 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/battery-business/src/main/resources/mapper/battery/TTestMapper.xml b/battery-business/src/main/resources/mapper/battery/TTestMapper.xml
index 5bde8ad..0e2f941 100644
--- a/battery-business/src/main/resources/mapper/battery/TTestMapper.xml
+++ b/battery-business/src/main/resources/mapper/battery/TTestMapper.xml
@@ -411,7 +411,7 @@
 
     <select id="selectPersistedFinalRealtimeRecords" resultType="map">
         select concat('realtime:', r.record_id) id, concat('realtime:', r.record_id) stableIdentity,
-               case when r.source_identity='IMPORT' then r.source_record_id else concat('RT-', r.record_id) end recordNo,
+               coalesce(r.source_record_id, concat('RT-', r.record_id)) recordNo,
                'SNAPSHOT' sourceType, b.battery_no batteryNo,
                r.cycle_no cycleNo, r.step_no stepNo, r.step_name stepName, r.step_type stepType,
                r.cabinet_sequence_id sequenceId, r.cabinet_device_time_utc deviceTime,
@@ -425,7 +425,7 @@
                r.collector_channel_code channelCode, r.source_identity sourceIdentity, r.source_record_id sourceRecordId
         from t_test_realtime_record r join t_test_battery b on b.test_battery_id = r.test_battery_id
         where r.test_id = #{testId} and b.del_flag = 0
-        order by r.capture_slot_utc desc, r.record_id desc
+        order by coalesce(r.capture_slot_utc, r.cabinet_device_time_utc) desc, r.record_id desc
     </select>
     <select id="selectPersistedFinalStepRecords" resultType="map">
         select concat('step:', r.step_record_id) id, concat('step:', r.step_record_id) stableIdentity,
@@ -662,12 +662,21 @@
         delete from <include refid="dataTable"/> where test_id=#{testId} and <include refid="dataId"/>=#{recordId}
     </delete>
     <select id="selectImportBinding" resultType="map">
-        select b.test_battery_id, binding.binding_id, cabinet.adapter_code
+        select b.test_battery_id, binding.binding_id, cabinet.adapter_code, ch.devtype, ch.devid, ch.subdevid, ch.chlid
         from t_test_battery b join t_test_channel_binding binding on binding.test_battery_id=b.test_battery_id
         join t_detection_channel ch on ch.channel_id=binding.channel_id
         join t_detection_cabinet cabinet on cabinet.cabinet_id=ch.cabinet_id
         where b.test_id=#{testId} and b.battery_no=#{batteryNo}
     </select>
+    <!-- 显式按 UTC 日期对象读取,避免 JDBC 驱动将 DATETIME 返回为 LocalDateTime 后破坏幂等比较。 -->
+    <resultMap id="ImportDataRecordMap" type="java.util.LinkedHashMap" autoMapping="true">
+        <result property="capture_slot_utc" column="capture_slot_utc" javaType="java.util.Date" jdbcType="TIMESTAMP"/>
+        <result property="cabinet_device_time_utc" column="cabinet_device_time_utc" javaType="java.util.Date" jdbcType="TIMESTAMP"/>
+        <result property="device_time_utc" column="device_time_utc" javaType="java.util.Date" jdbcType="TIMESTAMP"/>
+    </resultMap>
+    <select id="selectImportDataRecords" resultMap="ImportDataRecordMap">
+        select * from <include refid="dataTable"/> where test_id=#{testId}
+    </select>
     <insert id="insertImportedDataRecord">
         insert into <include refid="dataTable"/>
         (<foreach collection="values" index="column" item="value" separator=",">${column}</foreach>)

--
Gitblit v1.7.1