From 04de920362c9dcc1cc6077b54acba8eeff5090fd Mon Sep 17 00:00:00 2001
From: zhaowenyu <35589726@qq.com>
Date: Thu, 05 Feb 2026 14:09:03 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 ard-work/src/main/java/com/ard/work/service/impl/ArdFlightTaskServiceImpl.java |   35 +++++++++++++++++++++--------------
 1 files changed, 21 insertions(+), 14 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 8f4cb85..64afb12 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
@@ -55,12 +55,16 @@
      */
     @Scheduled(fixedDelay = 5000)
     public void syncAllFlightHistory() {
-        List<String> serverIds = ardServerInfoService.getServerIdsList();
-        for (String serverId : serverIds) {
-            // 获取上次同步的时间(即数据库中最大 startTime)
-            Date lastSyncTime = getLastSyncTimeForServer(serverId);
-            // 根据上次同步时间同步飞行历史
-            syncFlightHistory(serverId, lastSyncTime);
+        try {
+            List<String> serverIds = ardServerInfoService.getServerIdsList();
+            for (String serverId : serverIds) {
+                // 获取上次同步的时间(即数据库中最大 startTime)
+                Date lastSyncTime = getLastSyncTimeForServer(serverId);
+                // 根据上次同步时间同步飞行历史
+                syncFlightHistory(serverId, lastSyncTime);
+            }
+        } catch (Exception e) {
+            log.error("同步飞行历史失败", e);
         }
     }
 
@@ -81,7 +85,7 @@
         // 创建查询条件 BoxHistoryDTO,并设置 startTime 作为过滤条件
         BoxHistoryDTO boxHistoryDTO = BoxHistoryDTO.builder()
                 .pageIndex(1)
-                .pageSize(100)
+                .pageSize(20)
                 .startTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, startTime))
                 .build();
 
@@ -102,7 +106,7 @@
         ArdFlightTask ardFlightTask = ardFlightTaskMapper.getArdFlightTaskById(boxHistoryReceiver.getTaskId());
         if (ardFlightTask == null) {
             // 如果不存在,则插入新记录
-            log.debug("insert task {}", boxHistoryReceiver.getTaskId());
+            log.info("insert task {}", boxHistoryReceiver.getTaskId());
             Date endTime = null;
             if (boxHistoryReceiver.getEndTime() != null) {
                 endTime = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, boxHistoryReceiver.getEndTime());
@@ -144,13 +148,12 @@
             }
         } else {
             // 如果存在,则更新记录
-            log.debug("Updating task {}", boxHistoryReceiver.getTaskId());
+            log.debug("sync task {}", boxHistoryReceiver.getTaskId());
             updateFlightTask(ardFlightTask, boxHistoryReceiver);
-            // 增量更新视频
-            ardMediaService.updateVideoToDatabase(ardFlightTask, serverId, boxHistoryReceiver.getBoxSn());
-            // 增量更新图片
-            ardMediaService.updatePhotoToDatabase(ardFlightTask, serverId, boxHistoryReceiver.getBoxSn());
-
+            // 同步任务图片
+            ardMediaService.syncPicToDatabase(ardFlightTask, serverId, boxHistoryReceiver.getBoxSn());
+            // 同步任务视频
+            ardMediaService.syncVideoToDatabase(ardFlightTask, serverId, boxHistoryReceiver.getBoxSn());
         }
     }
 
@@ -163,6 +166,10 @@
             Date newEnd = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, remote.getEndTime());
             if (local.getEndTime() == null || !local.getEndTime().equals(newEnd)) {
                 local.setEndTime(newEnd);
+                local.setAveSpeed(remote.getAveSpeed());
+                local.setMaxSpeed(remote.getMaxSpeed());
+                local.setFlightDuration(remote.getFlightDuration());
+                local.setFlightMileage(remote.getFlightMileage());
                 needUpdate = true;
             }
         }

--
Gitblit v1.9.3