From 64972e9093fa9dde9ce346273b27445bd9d004b9 Mon Sep 17 00:00:00 2001
From: zhaowenyu <35589726@qq.com>
Date: Wed, 24 Dec 2025 15:14:25 +0800
Subject: [PATCH] 2025-12-24 zwy 增加计划任务轨迹功能,将在计划任务执行期间的飞行轨迹数据、任务状态数据保存;同时将计划任务数据保存到计划任务历史表中保存。并提供完整的轨迹提取接口。

---
 ard-work/src/main/java/com/ard/work/service/impl/ArdDroneInfoServiceImpl.java |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/ard-work/src/main/java/com/ard/work/service/impl/ArdDroneInfoServiceImpl.java b/ard-work/src/main/java/com/ard/work/service/impl/ArdDroneInfoServiceImpl.java
index 78e3352..053cfa6 100644
--- a/ard-work/src/main/java/com/ard/work/service/impl/ArdDroneInfoServiceImpl.java
+++ b/ard-work/src/main/java/com/ard/work/service/impl/ArdDroneInfoServiceImpl.java
@@ -320,11 +320,12 @@
                 String redisKey = CacheConstants.UAV_ONLINE_KEY + boxSn;
                 boolean currentOnline = remote.getOnLine() == 1;
 
-                // 获取上次状态
-                boolean lastOnline = redisCache.getCacheObject(redisKey) != null;
+                ArdDroneInfo local = localMap.get(boxSn);
+                boolean dbOnline = local != null && local.getOnLine() == 1;
+                boolean needUpdate = (dbOnline != currentOnline);
 
                 // 如果状态变化才更新
-                if (lastOnline != currentOnline) {
+                if (needUpdate){
                     // 更新 Redis
                     if (currentOnline) {
                         redisCache.setCacheObject(redisKey, remote);
@@ -334,7 +335,6 @@
                     // 发布事件
                     eventPublisher.publishEvent(new DeviceStatusEvent(boxSn, currentOnline));
                     // 更新数据库
-                    ArdDroneInfo local = localMap.get(boxSn);
                     if (local != null) {
                         local.setOnLine(currentOnline ? 1 : 0);
                         updateArdDrone(local);

--
Gitblit v1.9.3