From 81e6199812e6bbafd5af27da25ed45903ce01f43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B0=8F=E4=BA=91?= Date: Wed, 11 Feb 2026 16:42:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=97=A0=E4=BA=BA=E6=9C=BA?= =?UTF-8?q?=E7=9A=84=E4=BB=BB=E5=8A=A1=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/TuohengBufferDeviceImpl.java | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/ruoyi/device/service/impl/TuohengBufferDeviceImpl.java b/src/main/java/com/ruoyi/device/service/impl/TuohengBufferDeviceImpl.java index e3803b9..83accd9 100644 --- a/src/main/java/com/ruoyi/device/service/impl/TuohengBufferDeviceImpl.java +++ b/src/main/java/com/ruoyi/device/service/impl/TuohengBufferDeviceImpl.java @@ -584,12 +584,16 @@ public class TuohengBufferDeviceImpl implements IBufferDeviceService { boolean isPowerOn = (droneState != null && droneState != DroneState.POWER_OFF && droneState != DroneState.UNKNOWN); log.info("无人机开关机状态: {}", isPowerOn ? "开机" : "关机"); - // 判断逻辑:舱门打开就是任务中 + // 判断逻辑:开仓且开机才是任务中 String aircraftStatus; - if (coverState == CoverState.OPENED) { - // 舱门打开,表示正在执行任务 + if (coverState == CoverState.OPENED && isPowerOn) { + // 舱门打开且开机,表示正在执行任务 aircraftStatus = "IN_MISSION"; - log.info("舱门打开,设置状态: IN_MISSION"); + log.info("舱门打开 + 开机 → IN_MISSION"); + } else if (coverState == CoverState.OPENED && !isPowerOn) { + // 舱门打开但关机 + aircraftStatus = "POWER_OFF_OUT_CABIN"; + log.info("舱门打开 + 关机 → POWER_OFF_OUT_CABIN"); } else if (coverState == CoverState.CLOSED) { // 舱门关闭(舱内),根据开关机状态判断 if (isPowerOn) { @@ -687,12 +691,16 @@ public class TuohengBufferDeviceImpl implements IBufferDeviceService { log.warn("机场SN为空,无法从MachineStateManager获取舱门状态"); } - // 判断逻辑:舱门打开就是任务中 + // 判断逻辑:开仓且开机才是任务中 String aircraftStatus; - if (coverState == CoverState.OPENED) { - // 舱门打开,表示正在执行任务 + if (coverState == CoverState.OPENED && isPowerOn) { + // 舱门打开且开机,表示正在执行任务 aircraftStatus = "IN_MISSION"; - log.info("舱门打开,设置状态: IN_MISSION"); + log.info("舱门打开 + 开机 → IN_MISSION"); + } else if (coverState == CoverState.OPENED && !isPowerOn) { + // 舱门打开但关机 + aircraftStatus = "POWER_OFF_OUT_CABIN"; + log.info("舱门打开 + 关机 → POWER_OFF_OUT_CABIN"); } else if (coverState == CoverState.CLOSED) { // 舱门关闭(舱内),根据开关机状态判断 if (isPowerOn) {