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 17ebc55..dd73c58 100644 --- a/src/main/java/com/ruoyi/device/service/impl/BufferDeviceImpl.java +++ b/src/main/java/com/ruoyi/device/service/impl/BufferDeviceImpl.java @@ -17,6 +17,7 @@ import com.ruoyi.device.api.enums.AircraftStatusEnum; import com.ruoyi.device.api.enums.DockStatusEnum; import com.ruoyi.device.api.enums.NetworkTypeEnum; import com.ruoyi.device.api.enums.AirConditionerStatusEnum; +import com.ruoyi.device.api.enums.CabinDoorStatusEnum; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -224,7 +225,14 @@ public class BufferDeviceImpl implements IBufferDeviceService } }); - //cabinDoorStatus + // 舱门状态(枚举值:0-关闭,1-打开,2-半开,3-舱盖状态异常) + telemetryMap.get(DeviceTelemetry.Cover_State) + .ifPresent(telemetryValue -> { + Integer coverState = telemetryValue.getValue(); + if (coverState != null) { + dto.setCabinDoorStatus(mapCabinDoorState(coverState)); + } + }); return dto; } @@ -297,6 +305,30 @@ public class BufferDeviceImpl implements IBufferDeviceService } } + /** + * 将舱门状态代码映射到 CabinDoorStatusEnum + * @param coverState 舱门状态代码(0-关闭,1-打开,2-半开,3-舱盖状态异常) + * @return 舱门状态枚举的 code + */ + private String mapCabinDoorState(Integer coverState) { + if (coverState == null) { + return null; + } + + switch (coverState) { + case 0: + return CabinDoorStatusEnum.CLOSED.getCode(); + case 1: + return CabinDoorStatusEnum.OPEN.getCode(); + case 2: + return CabinDoorStatusEnum.HALF_OPEN.getCode(); + case 3: + return CabinDoorStatusEnum.ABNORMAL.getCode(); + default: + return null; + } + } + private AircraftDetailDTO getChangeAbleAirDetailDTO(String deviceIotId) {