From ad2f6bdfba61270d206be7e78f498d92e71bb0aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A2=A8=E5=A4=A7=E5=8F=94?= <494979559@qq.com> Date: Mon, 16 Sep 2024 11:07:15 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E4=BD=BF=E7=94=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 --- .../ss/device/service/impl/DeviceServiceImpl.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/device/service/impl/DeviceServiceImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/device/service/impl/DeviceServiceImpl.java index a479ed94..0a4f4cff 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/device/service/impl/DeviceServiceImpl.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/device/service/impl/DeviceServiceImpl.java @@ -716,6 +716,8 @@ public class DeviceServiceImpl implements DeviceService if (CollectionUtils.isEmptyElement(list)) { return; } + LocalDateTime now = LocalDateTime.now(); + for (DeviceVO device : list) { try { if (StringUtils.isAnyBlank(device.getMac(), device.getModelProductId())) { @@ -736,6 +738,19 @@ public class DeviceServiceImpl implements DeviceService data.setSurplusEle(deviceInfo.getM()); } + // 判断设备是否正在使用 + // 时长优先级最高,若当前设备过期时间 > 当前时间,则正在使用 + boolean hasTime = device.getExpireTime().isAfter(now); + // 若当前设备有电量,则正在使用 + boolean hasEle = device.getSurplusEle().compareTo(BigDecimal.ZERO) > 0; + // 若开关开启,则正在使用 + boolean hasOpen = DevicePowerStatus.ON.getStatus().equals(device.getPowerStatus()); + if (hasTime || hasEle || hasOpen) { + data.setStatus(DeviceStatus.USING.getStatus()); + } else { + data.setStatus(DeviceStatus.NORMAL.getStatus()); + } + // 是否在线 data.setOnlineStatus(iotService.getOnlineStatus(device.getMac(), device.getModelProductId()).getStatus());