From 2c3effa683be0be818fb6ceaa125402f4f407878 Mon Sep 17 00:00:00 2001 From: chenyouting <514333061@qq.com> Date: Fri, 10 Oct 2025 09:26:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=86=E5=8F=B2=E8=BD=A8=E8=BF=B91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../global/mqtt/rule/bjq/BjqLocationDataRule.java | 7 ++++++- .../fuyuanshen/web/service/device/DeviceBizService.java | 4 ++++ .../src/main/resources/mapper/equipment/DeviceMapper.xml | 3 +++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqLocationDataRule.java b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqLocationDataRule.java index 0c0732dd..5fac7459 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqLocationDataRule.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqLocationDataRule.java @@ -56,7 +56,11 @@ public class BjqLocationDataRule implements MqttMessageRule { // Latitude, longitude String latitude = convertArr[1].toString(); String longitude = convertArr[2].toString(); - + // 判断 latitude 和 longitude 是否都为 0 + if ("0".equals(latitude) && "0".equals(longitude)) { + log.info("位置信息为0,不存储到Redis: device={}, lat={}, lon={}", context.getDeviceImei(), latitude, longitude); + return; + } // 异步发送经纬度到Redis asyncSendLocationToRedisWithFuture(context.getDeviceImei(), latitude, longitude); // 异步保存数据 @@ -122,6 +126,7 @@ public class BjqLocationDataRule implements MqttMessageRule { if (StringUtils.isBlank(latitude) || StringUtils.isBlank(longitude)) { return; } + // String[] latArr = latitude.split("\\."); // String[] lonArr = longitude.split("\\."); // // 将位置信息存储到Redis中 diff --git a/fys-admin/src/main/java/com/fuyuanshen/web/service/device/DeviceBizService.java b/fys-admin/src/main/java/com/fuyuanshen/web/service/device/DeviceBizService.java index 4a395b8a..d77a9bdb 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/web/service/device/DeviceBizService.java +++ b/fys-admin/src/main/java/com/fuyuanshen/web/service/device/DeviceBizService.java @@ -395,6 +395,10 @@ public class DeviceBizService { JSONObject jsonObject = JSONObject.parseObject(obj); Long timestamp = jsonObject.getLong("timestamp"); LocalDate date = LocalDateTime.ofInstant(Instant.ofEpochMilli(timestamp), ZoneId.systemDefault()).toLocalDate(); + String address = jsonObject.getString("address"); + if(StringUtils.isBlank( address) || "[]".equals(address)){ + continue; + } if (map.containsKey(date.toString())) { map.get(date.toString()).add(jsonObject); } else { diff --git a/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceMapper.xml b/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceMapper.xml index 46fa3f44..3879beab 100644 --- a/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceMapper.xml +++ b/fys-modules/fys-equipment/src/main/resources/mapper/equipment/DeviceMapper.xml @@ -274,6 +274,9 @@ and a.device_imei like concat('%',#{criteria.deviceImei}, '%') + + and a.device_mac like concat('%',#{criteria.deviceMac}, '%') + AND (a.device_imei like concat('%',#{criteria.content}, '%') or a.device_mac like concat('%',#{criteria.content}, '%') )