From 18f6032658828ceaff5a61ca1f495f74a1092f57 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Wed, 24 Dec 2025 17:23:55 +0800
Subject: [PATCH] 优化架次

---
 ard-work/src/main/java/com/ard/work/service/impl/ArdFlightTaskServiceImpl.java |   16 +++++++++++-----
 ard-work/src/main/java/com/ard/work/service/impl/TyServiceImpl.java            |    6 +++++-
 2 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/ard-work/src/main/java/com/ard/work/service/impl/ArdFlightTaskServiceImpl.java b/ard-work/src/main/java/com/ard/work/service/impl/ArdFlightTaskServiceImpl.java
index 4ab7d19..c6b8b3b 100644
--- a/ard-work/src/main/java/com/ard/work/service/impl/ArdFlightTaskServiceImpl.java
+++ b/ard-work/src/main/java/com/ard/work/service/impl/ArdFlightTaskServiceImpl.java
@@ -122,6 +122,10 @@
         if (ardFlightTask == null) {
             // 如果不存在,则插入新记录
             log.debug("insert task {}", boxHistoryReceiver.getTaskId());
+            Date endTime = null;
+            if (boxHistoryReceiver.getEndTime() != null) {
+                endTime = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, boxHistoryReceiver.getEndTime());
+            }
             // 创建FlightTask实体对象并填充数据
             ArdFlightTask flightTask = ArdFlightTask.builder()
                     .taskId(boxHistoryReceiver.getTaskId())
@@ -134,7 +138,7 @@
                     .videoPath(boxHistoryReceiver.getVideoPath())
                     .serverId(serverId)
                     .startTime(DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, boxHistoryReceiver.getStartTime()))
-                    .endTime(DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, boxHistoryReceiver.getEndTime()))
+                    .endTime(endTime)
                     .flightMileage(boxHistoryReceiver.getFlightMileage())
                     .flightDuration(boxHistoryReceiver.getFlightDuration())
                     .aveSpeed(boxHistoryReceiver.getAveSpeed())
@@ -177,10 +181,12 @@
         boolean needUpdate = false;
 
         // endTime 更新(重要!!!)
-        Date newEnd = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, remote.getEndTime());
-        if (newEnd != null && (local.getEndTime() == null || !local.getEndTime().equals(newEnd))) {
-            local.setEndTime(newEnd);
-            needUpdate = true;
+        if (remote.getEndTime() != null) {
+            Date newEnd = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, remote.getEndTime());
+            if (local.getEndTime() == null || !local.getEndTime().equals(newEnd)) {
+                local.setEndTime(newEnd);
+                needUpdate = true;
+            }
         }
 
         // photoCount 更新
diff --git a/ard-work/src/main/java/com/ard/work/service/impl/TyServiceImpl.java b/ard-work/src/main/java/com/ard/work/service/impl/TyServiceImpl.java
index c6a0d66..147f4a8 100644
--- a/ard-work/src/main/java/com/ard/work/service/impl/TyServiceImpl.java
+++ b/ard-work/src/main/java/com/ard/work/service/impl/TyServiceImpl.java
@@ -606,6 +606,10 @@
         if (ardDroneInfo == null) {
             throw new ControlException("未找到对应的飞行器信息,boxSn:{}" + boxSn);
         }
+        //打点之前先停止打点
+        FlyPointControlCancelCmd flyPointControlCancelCmd = new FlyPointControlCancelCmd(FlyPointControlCancelDTO.builder().boxSn(boxSn).build());
+        this.sendMessage(ardDroneInfo.getServerId(), flyPointControlCancelCmd);
+
         FlyPointControlCmd flyPointControlCmd = new FlyPointControlCmd(flyPointControlDTO);
         this.sendMessage(ardDroneInfo.getServerId(), flyPointControlCmd);
         return true;
@@ -974,7 +978,7 @@
                 // 处理无人机遥测消息
                 UavTelemetryDataCmd uavTelemetryDataCmd = (UavTelemetryDataCmd) tyCommand;
                 TelemetryData telemetryData = uavTelemetryDataCmd.getTelemetryData();
-                telemetryData.setTimestamp(System.currentTimeMillis());//由于六合提供的状态时间戳不准,先以接收状态作为时间戳
+                //telemetryData.setTimestamp(System.currentTimeMillis());//由于六合提供的状态时间戳不准,先以接收状态作为时间戳
                 UavTelemetryDataCache.put(telemetryData);
                 //logPrint("无人机遥测", uavTelemetryDataCmd.getTelemetryData().getBoxSn());
                 //WebSocketUtil.sendMessageAll(uavTelemetryDataCmd.getTelemetryData());

--
Gitblit v1.9.3