diff --git a/src/main/java/com/ruoyi/device/service/impl/BufferDeviceImpl.java b/src/main/java/com/ruoyi/device/service/impl/BufferDeviceImpl.java index a88bebc..0214299 100644 --- a/src/main/java/com/ruoyi/device/service/impl/BufferDeviceImpl.java +++ b/src/main/java/com/ruoyi/device/service/impl/BufferDeviceImpl.java @@ -214,12 +214,21 @@ public class BufferDeviceImpl implements IBufferDeviceService AttributeMap attributeMap = thingsBoardDomain.getPredefinedDeviceAttributes(dockerDeviceIotId); TelemetryMap telemetryMap = thingsBoardDomain.getPredefinedDeviceTelemetry(dockerDeviceIotId); - // 根据 MODE_CODE 设置机场状态 + // 根据 ACTIVE 属性和 MODE_CODE 设置机场状态 + // 先检查 ACTIVE 属性判断是否离线,只有在线时才通过 MODE_CODE 判断具体状态 // MODE_CODE 定义: {"0":"空闲中","1":"现场调试","2":"远程调试","3":"固件升级中","4":"作业中","5":"待标定"} - attributeMap.get(DeviceAttributes.MODE_CODE).ifPresent(modeCode -> { - String dockStatus = mapModeCodeToDockStatus(modeCode); - dto.setDockStatus(dockStatus); - }); + Boolean isActive = attributeMap.get(DeviceAttributes.ACTIVE).orElse(false); + + if (!isActive) { + // 设备离线 + dto.setDockStatus(DockStatusEnum.OFFLINE.getCode()); + } else { + // 设备在线,根据 MODE_CODE 判断具体状态 + attributeMap.get(DeviceAttributes.MODE_CODE).ifPresent(modeCode -> { + String dockStatus = mapModeCodeToDockStatus(modeCode); + dto.setDockStatus(dockStatus); + }); + } // 设置备降点坐标数据 // 备降点经度