From f6d36a864d02baec4b628f9a8675b1f8ebf207c2 Mon Sep 17 00:00:00 2001
From: zhaowenyu <35589726@qq.com>
Date: Mon, 03 Nov 2025 16:58:00 +0800
Subject: [PATCH] 2025-11-3 zwy 飞行器实时状态中data中增加飞行器sn字段

---
 ard-sample/src/main/java/com/ard/sample/manage/service/impl/DeviceOSDServiceImpl.java |   23 ++++++++++++++++++-----
 1 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/ard-sample/src/main/java/com/ard/sample/manage/service/impl/DeviceOSDServiceImpl.java b/ard-sample/src/main/java/com/ard/sample/manage/service/impl/DeviceOSDServiceImpl.java
index 073757f..9f55a60 100644
--- a/ard-sample/src/main/java/com/ard/sample/manage/service/impl/DeviceOSDServiceImpl.java
+++ b/ard-sample/src/main/java/com/ard/sample/manage/service/impl/DeviceOSDServiceImpl.java
@@ -19,6 +19,7 @@
 import com.ard.sample.manage.service.IDeviceService;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
@@ -76,18 +77,30 @@
 
             OsdSubDeviceReceiver data = mapper.convertValue(receiver.getData(), OsdSubDeviceReceiver.class);
             List<DevicePayloadDTO> payloadsList = device.getPayloadsList();
+            //data.setChildDeviceSn(device.getDeviceSn());
             String dockOsd = "";
             receiver.setType(MessageType.STATUS.getType()+"-aircraft");
+//            receiver.setData(data);
             try {
                 dockOsd=mapper.writeValueAsString(receiver);
                 JsonNode jsonNode = mapper.readTree(dockOsd);
-                if(jsonNode.has("data") && jsonNode.get("data").has("mode_code")) {
-                    Long code = jsonNode.get("data").get("mode_code").asLong();
-                    if("0,1,2,3,4,5,8,9,10,11,13,14".contains(code.toString())){
-                        _deviceService.updateWorkType(device.getDeviceSn(),code);
-                        RedisOpsUtils.setWithExpire(RedisConst.OSD_STATUS_PREFIX + device.getDeviceSn(), code, RedisConst.DEVICE_ALIVE_SECOND);
+                //在JSON的data下插入childDeviceSn,飞行器的sn
+                if(jsonNode.get("data") instanceof ObjectNode){
+                    ObjectNode objectNode = (ObjectNode) jsonNode.get("data");
+                    objectNode.put("childDeviceSn", device.getDeviceSn());
+                }
+                if(jsonNode.has("data")){
+
+                    if(jsonNode.get("data").has("mode_code")) {
+                        Long code = jsonNode.get("data").get("mode_code").asLong();
+                        if ("0,1,2,3,4,5,8,9,10,11,13,14".contains(code.toString())) {
+                            _deviceService.updateWorkType(device.getDeviceSn(), code);
+                            RedisOpsUtils.setWithExpire(RedisConst.OSD_STATUS_PREFIX + device.getDeviceSn(), code, RedisConst.DEVICE_ALIVE_SECOND);
+                        }
                     }
                 }
+                dockOsd=mapper.writeValueAsString(jsonNode);
+
                 Map<String, Object> receiverData = (Map<String, Object>) receiver.getData();
                 data.setPayloads(payloadsList.stream()
                         .map(payload -> mapper.convertValue(

--
Gitblit v1.9.3