From 1f0768c69e50a3596596ed9754dd556b6692b5ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A3=B7=E5=8F=B6?= <14103883+leaf-phos@user.noreply.gitee.com> Date: Tue, 20 May 2025 17:14:58 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A6=BB=E7=BA=BF=E6=83=85=E5=86=B5=E5=A4=84?= =?UTF-8?q?=E7=90=86=EF=BC=8C=E5=BF=AB=E9=80=9F=E5=93=8D=E5=BA=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ruoyi/iot/service/impl/IotServiceImpl.java | 3 ++- .../src/main/java/com/ruoyi/iot/util/IotUtil.java | 9 ++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/ruoyi-service/src/main/java/com/ruoyi/iot/service/impl/IotServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/iot/service/impl/IotServiceImpl.java index b1b8bef..d346c02 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/iot/service/impl/IotServiceImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/iot/service/impl/IotServiceImpl.java @@ -263,7 +263,8 @@ public class IotServiceImpl implements IotService { private CommandResponse sendCommand(IotDevice device, String command, String reason, int tryCount) { if (tryCount > 0) { CommandResponse res = sendCommand(device, command, null, reason); - if (IotUtil.isSuccess(res) || tryCount <= 1) { + // 若操作成功 or 设备离线 or 尝试次数小于等于1,则直接返回结果 + if (IotUtil.isSuccess(res) || IotUtil.isOffline(res) || tryCount <= 1) { return res; } try { diff --git a/ruoyi-service/src/main/java/com/ruoyi/iot/util/IotUtil.java b/ruoyi-service/src/main/java/com/ruoyi/iot/util/IotUtil.java index 0abc01b..2daba9c 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/iot/util/IotUtil.java +++ b/ruoyi-service/src/main/java/com/ruoyi/iot/util/IotUtil.java @@ -211,6 +211,13 @@ public class IotUtil { return result.isSuccess(); } + public static boolean isOffline(CommandResponse result) { + if (result == null) { + return false; + } + return result.isNotOnline(); + } + public static String getMsg(CommandResponse result) { if (result == null) { return "未知错误"; @@ -229,7 +236,7 @@ public class IotUtil { if (sys.getBat() != null && sys.getBat().compareTo(BigDecimal.valueOf(100)) >= 0) { sys.setBat(sys.getBat().divide(BigDecimal.valueOf(10), 2, BigDecimal.ROUND_HALF_UP)); } - + return sys; } }