This commit is contained in:
孙小云 2026-02-04 15:38:21 +08:00
parent 86b7ffe93d
commit 392add0212
1 changed files with 24 additions and 0 deletions

View File

@ -197,10 +197,15 @@ public class SynService {
syncTuohengDevice(childDeviceInfo, gatewayInfo.getId());
} else {
// 大疆设备处理逻辑原有逻辑
log.info("检测到大疆设备: {}", deviceName);
AttributeMap attributes = iThingsBoardDomain.getPredefinedDeviceAttributes(childDeviceId);
log.info("大疆设备 {} 的属性: {}", deviceName, attributes);
DeviceType deviceType = determineDeviceType(childDeviceInfo, attributes);
log.info("大疆设备 {} 的类型: {}", deviceName, deviceType);
Long deviceId = syncDevice(childDeviceInfo, deviceType, gatewayInfo.getId());
log.info("大疆设备 {} 同步到device表deviceId={}", deviceName, deviceId);
syncDeviceByType(deviceId, childDeviceInfo.getName(), deviceType, attributes);
log.info("大疆设备 {} 同步完成", deviceName);
}
totalCount++;
@ -259,6 +264,25 @@ public class SynService {
} else if (deviceType == DeviceType.AIRCRAFT) {
// 无人机同步无人机表
syncAircraft(deviceId, deviceName);
// 获取无人机所属的机场SN号
Optional<String> dockSnOpt = attributes.get(DeviceAttributes.DOCK_SN);
if (dockSnOpt.isPresent() && StringUtils.hasText(dockSnOpt.get())) {
String dockSn = dockSnOpt.get();
log.info("无人机 {} 尝试查找所属机场: dockSn={}", deviceName, dockSn);
// 通过机场SN号查找机场设备
Device dockDevice = findDeviceBySn(dockSn);
if (dockDevice != null) {
log.info("找到机场设备: dockSn={}, deviceId={}", dockSn, dockDevice.getDeviceId());
// 建立机场-无人机关联
syncDockAircraft(dockDevice.getDeviceId(), deviceId);
} else {
log.warn("未找到机场设备: dockSn={}, 可能机场尚未同步", dockSn);
}
} else {
log.warn("无人机 {} 没有 dock_sn 属性,无法建立机场-无人机关联", deviceName);
}
}
// 网关类型不需要额外处理
}