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; } }