From 6f3bb4274247c6de3132841347a1392bd4abcda1 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, 29 Apr 2025 15:18:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ruoyi/iot/receive/ReceiveController.java | 1 + .../com/ruoyi/iot/service/impl/IotReceiveServiceImpl.java | 7 ++++++- .../src/main/java/com/ruoyi/task/device/DeviceTask.java | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ruoyi-service/src/main/java/com/ruoyi/iot/receive/ReceiveController.java b/ruoyi-service/src/main/java/com/ruoyi/iot/receive/ReceiveController.java index 62b6dfd..9d57f16 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/iot/receive/ReceiveController.java +++ b/ruoyi-service/src/main/java/com/ruoyi/iot/receive/ReceiveController.java @@ -65,6 +65,7 @@ public class ReceiveController { ObjBody obj = IotUtil.resolveBody(body, false); if (obj != null){ Object msg = obj.getMsg(); + log.info("收到receive数据:{}", msg); // 接收到msg if (msg instanceof String) { iotReceiveService.handleReceive(JSON.parseObject((String) msg, ReceiveMsg.class)); diff --git a/ruoyi-service/src/main/java/com/ruoyi/iot/service/impl/IotReceiveServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/iot/service/impl/IotReceiveServiceImpl.java index a2f0ffe..be17f8c 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/iot/service/impl/IotReceiveServiceImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/iot/service/impl/IotReceiveServiceImpl.java @@ -152,7 +152,12 @@ public class IotReceiveServiceImpl implements IotReceiveService { // 需要在设备未启动的时候做,否则可能有安全问题 if (!isOpen) { // 若当前数据点的上报时间和设备内上次上报的时间不一样,但是定位一样,则重启设备 - log.info("当前定位:{},{},上次定位:{},{}", sys.getLon().setScale(8), sys.getLat().setScale(8), device.getLongitude().setScale(8), device.getLatitude().setScale(8)); + log.info("当前定位:{},{},上次定位:{},{}", + sys.getLon().setScale(8, BigDecimal.ROUND_HALF_UP), + sys.getLat().setScale(8, BigDecimal.ROUND_HALF_UP), + device.getLongitude().setScale(8, BigDecimal.ROUND_HALF_UP), + device.getLatitude().setScale(8, BigDecimal.ROUND_HALF_UP) + ); if (at.isAfter(device.getLastLocationTime()) && MathUtils.equalsFixed(device.getLongitude(), sys.getLon(), 8) && MathUtils.equalsFixed(device.getLatitude(), sys.getLat(), 8)) { String reason = String.format("设备不同时间的两次定位一样,重启设备。新定位:%s,%s,旧定位:%s,%s", sys.getLon(), sys.getLat(), device.getLongitude(), device.getLatitude()); deviceIotService.reboot(device, reason, true); diff --git a/ruoyi-web/src/main/java/com/ruoyi/task/device/DeviceTask.java b/ruoyi-web/src/main/java/com/ruoyi/task/device/DeviceTask.java index 8efff1b..67077ca 100644 --- a/ruoyi-web/src/main/java/com/ruoyi/task/device/DeviceTask.java +++ b/ruoyi-web/src/main/java/com/ruoyi/task/device/DeviceTask.java @@ -32,7 +32,7 @@ public class DeviceTask { /** * 将过久未上报数据的设备设置为离线 */ - public void monitorOffline(long seconds) { + public void monitorOffline(Integer seconds) { // 条件:在线且最后上报时间小于当前时间 - seconds秒 DeviceQuery query = new DeviceQuery(); query.setOnlineStatus(DeviceOnlineStatus.ONLINE.getStatus());