From 2acf49278129e5870d8b775519a2bc1461294fb8 Mon Sep 17 00:00:00 2001
From: zhaowenyu <35589726@qq.com>
Date: Wed, 11 Mar 2026 08:55:46 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 ard-work/src/main/java/com/ard/work/service/impl/ArdFlightTaskServiceImpl.java |   38 +++++++++++++++++++++++---------------
 1 files changed, 23 insertions(+), 15 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 97dc505..35a510a 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);
         }
     }
 
@@ -80,6 +84,8 @@
     public void syncFlightHistory(String serverId, Date startTime) {
         // 创建查询条件 BoxHistoryDTO,并设置 startTime 作为过滤条件
         BoxHistoryDTO boxHistoryDTO = BoxHistoryDTO.builder()
+                .pageIndex(1)
+                .pageSize(20)
                 .startTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, startTime))
                 .build();
 
@@ -100,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());
@@ -126,7 +132,7 @@
 
             Long flyUserId = uavControlService.getCurrentController(flightTask.getBoxSn(), "fly");
             if (flyUserId != null) {
-                SysUser flyUser = redisCache.getCacheObject(CacheConstants.SYS_USER_KEY + flyUserId);
+                SysUser flyUser = redisCache.getCacheMapValue(CacheConstants.SYS_USER, flyUserId.toString());
                 if (flyUser != null && flyUser.getNickName() != null) {
                     flightTask.setCreateBy(flyUser.getNickName());
                 }
@@ -142,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());
         }
     }
 
@@ -161,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;
             }
         }
@@ -183,6 +192,5 @@
             ardFlightTaskMapper.updateArdFlightTask(local);
         }
     }
-
 
 }

--
Gitblit v1.9.3