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