From ec5dba7fc59bafbfb8d2c52224adb9fec6be31e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B0=8F=E4=BA=91?= Date: Wed, 21 Jan 2026 18:33:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=88=B1=E9=97=A8=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../device/service/impl/BufferDeviceImpl.java | 34 ++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) 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) {