From 01354d2369fd7c0f491d1a85ac3b68071f3d3da5 Mon Sep 17 00:00:00 2001 From: gaoyoulong <774597026@qq.com> Date: Tue, 16 Apr 2024 13:32:13 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=AE=BE=E5=A4=87=E7=A6=BB=E7=BA=BFbug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E8=AE=BE=E5=A4=87=E9=80=9A=E8=BF=87?= =?UTF-8?q?=E4=BF=9D=E6=B4=BB=E6=97=B6=E9=97=B4=E7=A6=BB=E7=BA=BF=E5=90=8E?= =?UTF-8?q?=EF=BC=8C=E6=97=A0=E6=B3=95=E5=88=87=E6=8D=A2=E4=B8=BA=E5=9C=A8?= =?UTF-8?q?=E7=BA=BF=E7=8A=B6=E6=80=81=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/sys/DeviceStateCheckHandler.java | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 iot-module/iot-rule-engine/src/main/java/cc/iotkit/ruleengine/handler/sys/DeviceStateCheckHandler.java diff --git a/iot-module/iot-rule-engine/src/main/java/cc/iotkit/ruleengine/handler/sys/DeviceStateCheckHandler.java b/iot-module/iot-rule-engine/src/main/java/cc/iotkit/ruleengine/handler/sys/DeviceStateCheckHandler.java new file mode 100644 index 00000000..8c879f2c --- /dev/null +++ b/iot-module/iot-rule-engine/src/main/java/cc/iotkit/ruleengine/handler/sys/DeviceStateCheckHandler.java @@ -0,0 +1,51 @@ +/* + * +---------------------------------------------------------------------- + * | Copyright (c) 奇特物联 2021-2022 All rights reserved. + * +---------------------------------------------------------------------- + * | Licensed 未经许可不能去掉「奇特物联」相关版权 + * +---------------------------------------------------------------------- + * | Author: xw2sy@163.com + * +---------------------------------------------------------------------- + */ +package cc.iotkit.ruleengine.handler.sys; + +import cc.iotkit.common.thing.ThingModelMessage; +import cc.iotkit.data.manager.IDeviceInfoData; +import cc.iotkit.model.device.DeviceInfo; +import cc.iotkit.ruleengine.handler.DeviceMessageHandler; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Component; + +import javax.transaction.Transactional; + +/** + * 设备状态检查 + */ +@Slf4j +@Component +public class DeviceStateCheckHandler implements DeviceMessageHandler { + + @Autowired + @Qualifier("deviceInfoDataCache") + private IDeviceInfoData deviceInfoData; + + + @Override + @Transactional + public void handle(ThingModelMessage msg) { + // 物模型->设备deviceName + String deviceName = msg.getDeviceName(); + + DeviceInfo realTimeDevice = deviceInfoData.findByDeviceName(deviceName); + if ( !realTimeDevice.getState().isOnline() ) { + // 切换状态,设备上线 + DeviceInfo.State state = realTimeDevice.getState(); + state.setOnline(true); + state.setOnlineTime(System.currentTimeMillis()); + deviceInfoData.save(realTimeDevice); + } + } + +}