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/resources/mapper/ArdFlightTaskMapper.xml                         |    6 ++++++
 ard-work/src/main/resources/mapper/ArdFlightTaskPartMapper.xml                     |    1 +
 ard-work/src/main/java/com/ard/work/domain/dto/UavFlightStateDTO.java              |    1 +
 ard-work/src/main/java/com/ard/work/service/impl/ArdFlightTaskPartServiceImpl.java |    9 ++++++---
 4 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/ard-work/src/main/java/com/ard/work/domain/dto/UavFlightStateDTO.java b/ard-work/src/main/java/com/ard/work/domain/dto/UavFlightStateDTO.java
index 721f28d..277204f 100644
--- a/ard-work/src/main/java/com/ard/work/domain/dto/UavFlightStateDTO.java
+++ b/ard-work/src/main/java/com/ard/work/domain/dto/UavFlightStateDTO.java
@@ -20,4 +20,5 @@
     private static final long serialVersionUID = 1L;
     private UavState uavState;
     private TelemetryData telemetryData;
+    private long timestamp;
 }
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 b7ca8e4..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());
diff --git a/ard-work/src/main/resources/mapper/ArdFlightTaskMapper.xml b/ard-work/src/main/resources/mapper/ArdFlightTaskMapper.xml
index 51b88d3..5f7bd31 100644
--- a/ard-work/src/main/resources/mapper/ArdFlightTaskMapper.xml
+++ b/ard-work/src/main/resources/mapper/ArdFlightTaskMapper.xml
@@ -57,6 +57,12 @@
                 <if test="startTime != null">AND aft.start_time &gt;= #{startTime}</if>
                 <if test="endTime != null">AND aft.end_time &lt;= #{endTime}</if>
                 <if test="serverId != null">AND aft.server_id = #{serverId}</if>
+                <if test="params.beginTime != null"><!-- 开始时间检索 -->
+                    AND aft.create_time &gt;= #{params.beginTime}
+                </if>
+                <if test="params.endTime != null"><!-- 结束时间检索 -->
+                    ANDaft.create_time &lt;= #{params.endTime}
+                </if>
             </trim>
         </where>
         ORDER BY aft.task_id DESC
diff --git a/ard-work/src/main/resources/mapper/ArdFlightTaskPartMapper.xml b/ard-work/src/main/resources/mapper/ArdFlightTaskPartMapper.xml
index 7260136..c11cad7 100644
--- a/ard-work/src/main/resources/mapper/ArdFlightTaskPartMapper.xml
+++ b/ard-work/src/main/resources/mapper/ArdFlightTaskPartMapper.xml
@@ -22,6 +22,7 @@
         <if test="params.endTime != null"><!-- 结束时间检索 -->
             AND u.create_time &lt;= #{params.endTime}
         </if>
+        ORDER BY u.create_time asc
     </select>
 
 </mapper>

--
Gitblit v1.9.3