From ae6b8bcc935a1f1a8fba26dc2abd9743293b2d6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B0=8F=E4=BA=91?= Date: Mon, 9 Feb 2026 08:58:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/device/service/impl/SynService.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/ruoyi/device/service/impl/SynService.java b/src/main/java/com/ruoyi/device/service/impl/SynService.java index 3c8afb9..9e3fbf9 100644 --- a/src/main/java/com/ruoyi/device/service/impl/SynService.java +++ b/src/main/java/com/ruoyi/device/service/impl/SynService.java @@ -387,10 +387,7 @@ public class SynService { log.warn("机场 {} 没有 sub_device.device_sn 属性,无法建立机场-无人机关联", deviceName); } } else if (deviceType == DeviceType.AIRCRAFT) { - // 无人机:同步无人机表 - syncAircraft(deviceId, deviceName); - - // 获取无人机所属的机场SN号 + // 无人机:先检查是否有 dock_sn 属性 Optional dockSnOpt = attributes.get(DeviceAttributes.DOCK_SN); if (dockSnOpt.isPresent() && StringUtils.hasText(dockSnOpt.get())) { String dockSn = dockSnOpt.get(); @@ -400,13 +397,17 @@ public class SynService { Device dockDevice = findDeviceBySn(dockSn); if (dockDevice != null) { log.info("找到机场设备: dockSn={}, deviceId={}", dockSn, dockDevice.getDeviceId()); + + // 只有在找到机场的情况下,才同步无人机表 + syncAircraft(deviceId, deviceName); + // 建立机场-无人机关联 syncDockAircraft(dockDevice.getDeviceId(), deviceId); } else { - log.warn("未找到机场设备: dockSn={}, 可能机场尚未同步", dockSn); + log.warn("未找到机场设备: dockSn={}, 跳过无人机同步,避免产生脏数据", dockSn); } } else { - log.warn("无人机 {} 没有 dock_sn 属性,无法建立机场-无人机关联", deviceName); + log.warn("无人机 {} 没有 dock_sn 属性,跳过同步,避免产生脏数据", deviceName); } } // 网关类型不需要额外处理