This commit is contained in:
parent
86b7ffe93d
commit
392add0212
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
// 网关类型不需要额外处理
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue