This commit is contained in:
孙小云 2026-02-04 18:55:35 +08:00
parent 1160635703
commit 4704cbb94b
2 changed files with 32 additions and 11 deletions

View File

@ -239,18 +239,27 @@ public class DaJiangBufferDeviceImpl implements IBufferDeviceService
// 根据 ACTIVE 属性和 MODE_CODE 设置机场状态
// 先检查 ACTIVE 属性判断是否离线只有在线时才通过 MODE_CODE 判断具体状态
// MODE_CODE 定义: {"0":"空闲中","1":"现场调试","2":"远程调试","3":"固件升级中","4":"作业中","5":"待标定"}
Boolean isActive = attributeMap.get(DeviceAttributes.ACTIVE).orElse(false);
// Boolean isActive = attributeMap.get(DeviceAttributes.ACTIVE).orElse(false);
// log.info("大疆机场状态判断 - iotDeviceId: {}, ACTIVE: {}", dockerDeviceIotId, isActive);
if (!isActive) {
// if (!isActive) {
// 设备离线
dto.setDockStatus(DockStatusEnum.OFFLINE.getCode());
} else {
// dto.setDockStatus(DockStatusEnum.OFFLINE.getCode());
// log.info("大疆机场判定为离线 - iotDeviceId: {}, 原因: ACTIVE=false", dockerDeviceIotId);
// } else {
// 设备在线根据 MODE_CODE 判断具体状态
attributeMap.get(DeviceAttributes.MODE_CODE).ifPresent(modeCode -> {
String dockStatus = mapModeCodeToDockStatus(modeCode);
dto.setDockStatus(dockStatus);
log.info("大疆机场状态判断 - iotDeviceId: {}, MODE_CODE: {}, dockStatus: {}",
dockerDeviceIotId, modeCode, dockStatus);
});
// 如果没有 MODE_CODE 属性记录警告
if (!attributeMap.get(DeviceAttributes.MODE_CODE).isPresent()) {
log.warn("大疆机场缺少 MODE_CODE 属性 - iotDeviceId: {}, 无法判断具体状态", dockerDeviceIotId);
}
// }
// 设置备降点坐标数据
// 备降点经度

View File

@ -1053,6 +1053,7 @@ public class SynService {
// 查询机场是否已存在
Dock existingDock = dockDomain.selectDockByDeviceId(deviceId);
Long dockId;
if (existingDock == null) {
// 机场不存在插入新机场
@ -1063,13 +1064,24 @@ public class SynService {
log.info("准备插入新拓恒机场: deviceId={}, dockName={}, SN={}", deviceId, airportId, sn);
dockDomain.insertDock(newDock);
log.info("插入新拓恒机场成功: dockId={}", newDock.getDockId());
// 确保默认分组存在并加入
ensureDefaultGroupExists();
insertDockToDefaultGroup(newDock.getDockId(), airportId);
dockId = newDock.getDockId();
log.info("插入新拓恒机场成功: dockId={}", dockId);
} else {
log.info("拓恒机场已存在: deviceId={}, dockId={}", deviceId, existingDock.getDockId());
dockId = existingDock.getDockId();
log.info("拓恒机场已存在: deviceId={}, dockId={}", deviceId, dockId);
}
// 确保默认分组存在
ensureDefaultGroupExists();
// 检查机场是否在任何分组中无论新旧机场都检查
List<DockGroup> dockGroups = dockGroupDomain.selectDockGroupByDockId(dockId);
if (dockGroups == null || dockGroups.isEmpty()) {
// 机场不在任何分组中将其插入默认分组
insertDockToDefaultGroup(dockId, airportId);
} else {
log.info("拓恒机场已在分组中: dockId={}, 分组数量={}", dockId, dockGroups.size());
}
}