From 5d1b27b300fcda6be04f12aa0aa5b0cb59df8b09 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Sat, 20 Dec 2025 11:44:55 +0800
Subject: [PATCH] 优化飞行状态

---
 ard-work/src/main/java/com/ard/work/service/impl/ArdFlightTaskPartServiceImpl.java |   15 +++++++++------
 1 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/ard-work/src/main/java/com/ard/work/service/impl/ArdFlightTaskPartServiceImpl.java b/ard-work/src/main/java/com/ard/work/service/impl/ArdFlightTaskPartServiceImpl.java
index 9985e7e..dbecd7c 100644
--- a/ard-work/src/main/java/com/ard/work/service/impl/ArdFlightTaskPartServiceImpl.java
+++ b/ard-work/src/main/java/com/ard/work/service/impl/ArdFlightTaskPartServiceImpl.java
@@ -54,9 +54,9 @@
 
             UavFlightStateDTO dto = new UavFlightStateDTO(
                     uavState,
-                    telemetryData
+                    telemetryData,
+                    System.currentTimeMillis()
             );
-
             addTelemetryData(dto);
         });
     }
@@ -94,7 +94,10 @@
                     .count(dataList.size())
                     .dataPart(blobData)
                     .build();
-            part.setCreateTime(new Date());
+            // 使用 list 中第一条数据的时间作为 createTime
+            long firstTimeMillis = dataList.get(0).getTimestamp();
+            Date createTime = new Date(firstTimeMillis);
+            part.setCreateTime(createTime);
             ardflightTaskPartMapper.insert(part);
 
             log.info("设备 {} 分片保存 {} 条飞行数据到数据库成功", boxSn, dataList.size());
@@ -123,13 +126,13 @@
      * 获取完整航线轨迹(合并所有分片)
      */
     @Override
-    public List<TelemetryData> getCompleteFlightData(ArdFlightTaskPart ardFlightTaskPart) {
-        List<TelemetryData> allData = new ArrayList<>();
+    public List<UavFlightStateDTO> getCompleteFlightData(ArdFlightTaskPart ardFlightTaskPart) {
+        List<UavFlightStateDTO> allData = new ArrayList<>();
         String boxSn = ardFlightTaskPart.getBoxSn();
         List<ArdFlightTaskPart> parts = ardflightTaskPartMapper.selectByTaskStartTime(ardFlightTaskPart);
         for (ArdFlightTaskPart part : parts) {
             try {
-                List<TelemetryData> partData = SerializeUtil.deserialize(part.getDataPart());
+                List<UavFlightStateDTO> partData = SerializeUtil.deserialize(part.getDataPart());
                 allData.addAll(partData);
             } catch (Exception e) {
                 log.error("反序列化 boxSn={} 分片数据失败", boxSn, e);

--
Gitblit v1.9.3