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-sample/src/main/java/com/ard/sample/component/mqtt/handler/StateLiveStatusHandler.java |   17 ++++++++---------
 1 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/ard-sample/src/main/java/com/ard/sample/component/mqtt/handler/StateLiveStatusHandler.java b/ard-sample/src/main/java/com/ard/sample/component/mqtt/handler/StateLiveStatusHandler.java
index c836da9..7bc77ef 100644
--- a/ard-sample/src/main/java/com/ard/sample/component/mqtt/handler/StateLiveStatusHandler.java
+++ b/ard-sample/src/main/java/com/ard/sample/component/mqtt/handler/StateLiveStatusHandler.java
@@ -1,5 +1,7 @@
 package com.ard.sample.component.mqtt.handler;
 
+import com.ard.common.core.redis.RedisConst;
+import com.ard.common.core.redis.RedisOpsUtils;
 import com.ard.sample.component.mqtt.model.CommonTopicReceiver;
 import com.ard.sample.component.mqtt.model.StateDataEnum;
 import com.ard.sample.component.websocket.enums.MessageType;
@@ -24,8 +26,6 @@
 public class StateLiveStatusHandler extends AbstractStateTopicHandler{
 
     @Autowired
-    private DockWebSocketHandler _dockWebSocketHandler;
-    @Autowired
     private IDeviceService _deviceService;
 
     protected StateLiveStatusHandler(@Autowired @Qualifier("stateFirmwareVersionHandler")AbstractStateTopicHandler handler) {
@@ -36,15 +36,14 @@
     public CommonTopicReceiver handleState(Map<String, Object> dataNode, CommonTopicReceiver stateReceiver, String sn) throws JsonProcessingException {
         if (dataNode.containsKey(StateDataEnum.LIVESTATUS.getDesc())) {
             stateReceiver.setType(MessageType.LIVESTATUS.getType());
-            String deviceSn= stateReceiver.getGateway();
-            DeviceQueryParam param = DeviceQueryParam.builder().deviceSn(deviceSn).build();
-            List<DeviceDTO> deviceDTOS = _deviceService.getDevicesByParams(param);
-            if(deviceDTOS!=null && deviceDTOS.size()>0)
+            DeviceDTO device = (DeviceDTO) RedisOpsUtils.get(RedisConst.DEVICE_ONLINE_PREFIX + sn);
+            if(device != null)
             {
-                String childSn = deviceDTOS.get(0).getChildDeviceSn();
-                List<LiveStatusTwoReceiver> list = mapper.convertValue(dataNode.get(StateDataEnum.LIVESTATUS.getDesc()), new TypeReference<List<LiveStatusTwoReceiver>>() {});
+                String childSn = device.getChildDeviceSn();
+                List<LiveStatusTwoReceiver> list = mapper.convertValue(dataNode.get(StateDataEnum.LIVESTATUS.getDesc()),
+                        new TypeReference<List<LiveStatusTwoReceiver>>() {});
                 for (LiveStatusTwoReceiver receiver : list) {
-                    if(receiver.getVideoId().contains(childSn)){
+                    if(receiver.getVideoId()!=null && receiver.getVideoId().contains(childSn)){
                         stateReceiver.setData(receiver);
                         continue;
                     }

--
Gitblit v1.9.3