From ad816479399f87a9691edb983bd2bb17b48370e9 Mon Sep 17 00:00:00 2001 From: chenyouting <514333061@qq.com> Date: Sat, 27 Sep 2025 15:40:31 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=8F=91=E9=80=81=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=92=8C=E5=91=8A=E8=AD=A6=E6=95=85=E9=9A=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mqtt/receiver/ReceiverMessageHandler.java | 2 +- .../global/mqtt/rule/bjq/BjqAlarmRule.java | 17 +++++++++++++--- .../global/mqtt/rule/bjq/BjqModeRule.java | 20 ++++++++++++++++++- .../mqtt/rule/bjq/BjqSendMessageRule.java | 12 +++++++++-- .../service/device/DeviceBJQBizService.java | 11 ++++++++-- .../src/main/resources/application-dev.yml | 2 +- 6 files changed, 54 insertions(+), 10 deletions(-) diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/receiver/ReceiverMessageHandler.java b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/receiver/ReceiverMessageHandler.java index 9145a3bc3..13f86d26e 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/receiver/ReceiverMessageHandler.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/receiver/ReceiverMessageHandler.java @@ -54,7 +54,7 @@ public class ReceiverMessageHandler implements MessageHandler { RedisUtils.offerDeduplicated(queueKey,dedupKey,deviceImei, Duration.ofHours(24)); //在线状态 String deviceOnlineStatusRedisKey = GlobalConstants.GLOBAL_REDIS_KEY+ DEVICE_KEY_PREFIX+ deviceImei + DeviceRedisKeyConstants.DEVICE_ONLINE_STATUS_KEY_PREFIX ; - RedisUtils.setCacheObject(deviceOnlineStatusRedisKey, "1", Duration.ofSeconds(120)); + RedisUtils.setCacheObject(deviceOnlineStatusRedisKey, "1", Duration.ofSeconds(303)); } String state = payloadDict.getStr("state"); diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqAlarmRule.java b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqAlarmRule.java index b8c309883..46cbceab9 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqAlarmRule.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqAlarmRule.java @@ -57,12 +57,23 @@ public class BjqAlarmRule implements MqttMessageRule { if (StringUtils.isNotBlank(convertValue)) { // 将设备状态信息存储到Redis中 String deviceRedisKey = GlobalConstants.GLOBAL_REDIS_KEY + DeviceRedisKeyConstants.DEVICE_KEY_PREFIX + context.getDeviceImei() + DEVICE_ALARM_KEY_PREFIX; + if ("1".equals(convertValue)) { + // 存储到Redis + RedisUtils.setCacheObject(deviceRedisKey, convertValue); - // 存储到Redis - RedisUtils.setCacheObject(deviceRedisKey, convertValue); + String sendMessageIng = GLOBAL_REDIS_KEY+ DEVICE_KEY_PREFIX + context.getDeviceImei() + ":messageSending"; + RedisUtils.setCacheObject(sendMessageIng, "1", Duration.ofSeconds(120)); + }else if ("0".equals(convertValue)){ + RedisUtils.deleteObject(deviceRedisKey); + } } RedisUtils.setCacheObject(functionAccess, FunctionAccessStatus.OK.getCode(), Duration.ofSeconds(20)); - + if("200".equals(convertValue)){ + String sendMessageIng = GLOBAL_REDIS_KEY+ DEVICE_KEY_PREFIX + context.getDeviceImei() + ":messageSending"; +// RedisUtils.setCacheObject(sendMessageIng, "1", Duration.ofDays(1)); + RedisUtils.deleteObject(sendMessageIng); + return; + } // 保存告警信息 String deviceImei = context.getDeviceImei(); // 设备告警状态 0:解除告警 1:报警产生 diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqModeRule.java b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqModeRule.java index f16b77e4a..41f356117 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqModeRule.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqModeRule.java @@ -1,8 +1,11 @@ package com.fuyuanshen.global.mqtt.rule.bjq; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.fuyuanshen.common.core.constant.GlobalConstants; import com.fuyuanshen.common.core.utils.StringUtils; import com.fuyuanshen.common.redis.utils.RedisUtils; +import com.fuyuanshen.equipment.domain.Device; +import com.fuyuanshen.equipment.service.DeviceService; import com.fuyuanshen.global.mqtt.base.MqttMessageRule; import com.fuyuanshen.global.mqtt.base.MqttRuleContext; import com.fuyuanshen.global.mqtt.constants.DeviceRedisKeyConstants; @@ -16,6 +19,7 @@ import java.time.Duration; import java.util.concurrent.CompletableFuture; import static com.fuyuanshen.common.core.constant.GlobalConstants.FUNCTION_ACCESS_KEY; +import static com.fuyuanshen.common.core.constant.GlobalConstants.GLOBAL_REDIS_KEY; import static com.fuyuanshen.global.mqtt.constants.DeviceRedisKeyConstants.*; /** @@ -26,6 +30,8 @@ import static com.fuyuanshen.global.mqtt.constants.DeviceRedisKeyConstants.*; @Slf4j public class BjqModeRule implements MqttMessageRule { + private final DeviceService deviceService; + @Override public String getCommandType() { return LightingCommandTypeConstants.LIGHT_MODE; @@ -41,8 +47,20 @@ public class BjqModeRule implements MqttMessageRule { String batteryRemainingTime = convertArr[2].toString(); if(StringUtils.isNotBlank(mainLightMode)){ if("0".equals(mainLightMode)){ + //设备离线 String deviceOnlineStatusRedisKey = GlobalConstants.GLOBAL_REDIS_KEY+ DEVICE_KEY_PREFIX+ context.getDeviceImei() + DeviceRedisKeyConstants.DEVICE_ONLINE_STATUS_KEY_PREFIX ; - RedisUtils.setCacheObject(deviceOnlineStatusRedisKey, "0", Duration.ofSeconds(60*15)); + RedisUtils.setCacheObject(deviceOnlineStatusRedisKey, "0"); + + String sendMessageIng = GLOBAL_REDIS_KEY+ DEVICE_KEY_PREFIX + context.getDeviceImei() + ":messageSending"; + String messageSendingValue = RedisUtils.getCacheObject(sendMessageIng); + if("1".equals(messageSendingValue)){ + //设置为故障状态 + RedisUtils.setCacheObject(deviceOnlineStatusRedisKey, "2"); + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("device_imei", context.getDeviceImei()); + updateWrapper.set("online_status", 2); + deviceService.update(); + } } // 发送设备状态和位置信息到Redis syncSendDeviceDataToRedisWithFuture(context.getDeviceImei(),mainLightMode); diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqSendMessageRule.java b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqSendMessageRule.java index 7dc50935e..609a1cee3 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqSendMessageRule.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqSendMessageRule.java @@ -43,12 +43,20 @@ public class BjqSendMessageRule implements MqttMessageRule { public void execute(MqttRuleContext context) { String functionAccess = FUNCTION_ACCESS_KEY + context.getDeviceImei(); try { - Byte val2 = (Byte) context.getConvertArr()[1]; + Integer val2 = (Integer) context.getConvertArr()[1]; if (val2 == 100) { RedisUtils.setCacheObject(functionAccess, FunctionAccessStatus.OK.getCode(), Duration.ofSeconds(20)); return; } + if(val2==200){ + String sendMessageIng = GLOBAL_REDIS_KEY+ DEVICE_KEY_PREFIX + context.getDeviceImei() + ":messageSending"; +// RedisUtils.setCacheObject(sendMessageIng, "1", Duration.ofDays(1)); + RedisUtils.deleteObject(sendMessageIng); + return; + } + + String data = RedisUtils.getCacheObject(GLOBAL_REDIS_KEY+ DEVICE_KEY_PREFIX + context.getDeviceImei() + ":app_send_message_data"); if (StringUtils.isEmpty(data)) { return; @@ -61,7 +69,7 @@ public class BjqSendMessageRule implements MqttMessageRule { ArrayList intData = new ArrayList<>(); intData.add(6); - intData.add((int) val2); + intData.add(val2); ImageToCArrayConverter.buildArr(convertHexToDecimal(specificChunk), intData); intData.add(0); intData.add(0); diff --git a/fys-admin/src/main/java/com/fuyuanshen/web/service/device/DeviceBJQBizService.java b/fys-admin/src/main/java/com/fuyuanshen/web/service/device/DeviceBJQBizService.java index c62d89c39..aff02091b 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/web/service/device/DeviceBJQBizService.java +++ b/fys-admin/src/main/java/com/fuyuanshen/web/service/device/DeviceBJQBizService.java @@ -108,7 +108,8 @@ public class DeviceBJQBizService { log.info("发送信息设备发送信息失败:{}" ,deviceId); throw new ServiceException("发送指令失败"); } - + //发送消息 + messageSending(device.getDeviceImei()); } @@ -526,8 +527,9 @@ public class DeviceBJQBizService { log.info("设备发送告警信息信息失败:{}" ,deviceId); throw new ServiceException("设备发送告警信息信息失败"); } - + messageSending(device.getDeviceImei()); } + } catch (Exception e){ e.printStackTrace(); throw new ServiceException("发送告警信息指令失败"); @@ -535,6 +537,11 @@ public class DeviceBJQBizService { return 1; } + private void messageSending(String deviceImei){ + String sendMessageIng = GLOBAL_REDIS_KEY+ DEVICE_KEY_PREFIX + deviceImei + ":messageSending"; + RedisUtils.setCacheObject(sendMessageIng, "1", Duration.ofDays(1)); + } + private boolean getDeviceStatus(String deviceImei) { String deviceOnlineStatusRedisKey = GlobalConstants.GLOBAL_REDIS_KEY+ DEVICE_KEY_PREFIX+ deviceImei + DeviceRedisKeyConstants.DEVICE_ONLINE_STATUS_KEY_PREFIX ; return RedisUtils.getCacheObject(deviceOnlineStatusRedisKey) == null; diff --git a/fys-admin/src/main/resources/application-dev.yml b/fys-admin/src/main/resources/application-dev.yml index 9d12395f1..40b7f28fc 100644 --- a/fys-admin/src/main/resources/application-dev.yml +++ b/fys-admin/src/main/resources/application-dev.yml @@ -301,7 +301,7 @@ file: mqtt: username: admin password: #YtvpSfCNG - url: tcp://47.120.79.150:2883 + url: tcp://www.cnxhyc.com:2883 subClientId: fys_subClient subTopic: A/# pubTopic: B/# From 233e0e32b050e6702c58925aec9f9921e7b4d936 Mon Sep 17 00:00:00 2001 From: chenyouting <514333061@qq.com> Date: Sun, 28 Sep 2025 16:19:28 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=8F=91=E9=80=81=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=92=8C=E5=91=8A=E8=AD=A6=E6=95=85=E9=9A=9C2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/service/AppDeviceShareService.java | 7 +++--- .../mqtt/receiver/ReceiverMessageHandler.java | 25 ++++++++++++------- .../global/mqtt/rule/bjq/BjqAlarmRule.java | 11 +++----- .../global/mqtt/rule/bjq/BjqModeRule.java | 5 +++- .../mqtt/rule/bjq/BjqSendMessageRule.java | 9 ++++--- .../web/service/device/DeviceBizService.java | 10 +++++--- .../mapper/equipment/DeviceMapper.xml | 2 ++ 7 files changed, 41 insertions(+), 28 deletions(-) diff --git a/fys-admin/src/main/java/com/fuyuanshen/app/service/AppDeviceShareService.java b/fys-admin/src/main/java/com/fuyuanshen/app/service/AppDeviceShareService.java index 44d1ba424..6f9b21b85 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/app/service/AppDeviceShareService.java +++ b/fys-admin/src/main/java/com/fuyuanshen/app/service/AppDeviceShareService.java @@ -73,10 +73,11 @@ public class AppDeviceShareService { private static void buildDeviceStatus(AppDeviceShareVo item) { // 设备在线状态 String onlineStatus = RedisUtils.getCacheObject(GLOBAL_REDIS_KEY + DEVICE_KEY_PREFIX + item.getDeviceImei() + DeviceRedisKeyConstants.DEVICE_ONLINE_STATUS_KEY_PREFIX); - if (StringUtils.isNotBlank(onlineStatus)) { - + if("1".equals(onlineStatus)){ item.setOnlineStatus(1); - } else { + }else if("2".equals(onlineStatus)){ + item.setOnlineStatus(2); + }else{ item.setOnlineStatus(0); } String deviceStatus = RedisUtils.getCacheObject(GLOBAL_REDIS_KEY + DEVICE_KEY_PREFIX + item.getDeviceImei() + DEVICE_STATUS_KEY_PREFIX); diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/receiver/ReceiverMessageHandler.java b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/receiver/ReceiverMessageHandler.java index 13f86d26e..b6458150e 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/receiver/ReceiverMessageHandler.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/receiver/ReceiverMessageHandler.java @@ -48,17 +48,24 @@ public class ReceiverMessageHandler implements MessageHandler { } String[] subStr = receivedTopic.split("/"); String deviceImei = subStr[1]; - if(StringUtils.isNotBlank(deviceImei)){ - String queueKey = MqttMessageQueueConstants.MQTT_MESSAGE_QUEUE_KEY; - String dedupKey = MqttMessageQueueConstants.MQTT_MESSAGE_DEDUP_KEY; - RedisUtils.offerDeduplicated(queueKey,dedupKey,deviceImei, Duration.ofHours(24)); - //在线状态 - String deviceOnlineStatusRedisKey = GlobalConstants.GLOBAL_REDIS_KEY+ DEVICE_KEY_PREFIX+ deviceImei + DeviceRedisKeyConstants.DEVICE_ONLINE_STATUS_KEY_PREFIX ; - RedisUtils.setCacheObject(deviceOnlineStatusRedisKey, "1", Duration.ofSeconds(303)); - } - String state = payloadDict.getStr("state"); Object[] convertArr = ImageToCArrayConverter.convertByteStringToMixedObjectArray(state); + if(StringUtils.isNotBlank(deviceImei)){ + String arr1 = convertArr[0].toString(); + String arr2 = convertArr[1].toString(); + if("12".equals(arr1) && "0".equals(arr2)){ + return; + }else{ + String queueKey = MqttMessageQueueConstants.MQTT_MESSAGE_QUEUE_KEY; + String dedupKey = MqttMessageQueueConstants.MQTT_MESSAGE_DEDUP_KEY; + RedisUtils.offerDeduplicated(queueKey,dedupKey,deviceImei, Duration.ofHours(24)); + //在线状态 + String deviceOnlineStatusRedisKey = GlobalConstants.GLOBAL_REDIS_KEY+ DEVICE_KEY_PREFIX+ deviceImei + DeviceRedisKeyConstants.DEVICE_ONLINE_STATUS_KEY_PREFIX ; + RedisUtils.setCacheObject(deviceOnlineStatusRedisKey, "1", Duration.ofSeconds(303)); + } + } + + if (convertArr.length > 0) { Byte val1 = (Byte) convertArr[0]; diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqAlarmRule.java b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqAlarmRule.java index 3270e4690..75de5d32d 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqAlarmRule.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqAlarmRule.java @@ -62,18 +62,13 @@ public class BjqAlarmRule implements MqttMessageRule { RedisUtils.setCacheObject(deviceRedisKey, convertValue); String sendMessageIng = GLOBAL_REDIS_KEY+ DEVICE_KEY_PREFIX + context.getDeviceImei() + ":messageSending"; - RedisUtils.setCacheObject(sendMessageIng, "1", Duration.ofSeconds(120)); + RedisUtils.setCacheObject(sendMessageIng, "1", Duration.ofDays(1)); }else if ("0".equals(convertValue)){ - RedisUtils.deleteObject(deviceRedisKey); + String sendMessageIng = GLOBAL_REDIS_KEY+ DEVICE_KEY_PREFIX + context.getDeviceImei() + ":messageSending"; + RedisUtils.deleteObject(sendMessageIng); } } RedisUtils.setCacheObject(functionAccess, FunctionAccessStatus.OK.getCode(), Duration.ofSeconds(20)); - if("200".equals(convertValue)){ - String sendMessageIng = GLOBAL_REDIS_KEY+ DEVICE_KEY_PREFIX + context.getDeviceImei() + ":messageSending"; -// RedisUtils.setCacheObject(sendMessageIng, "1", Duration.ofDays(1)); - RedisUtils.deleteObject(sendMessageIng); - return; - } // 保存告警信息 String deviceImei = context.getDeviceImei(); // 设备告警状态 0:解除告警 1:报警产生 diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqModeRule.java b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqModeRule.java index 41f356117..56bb514f6 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqModeRule.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqModeRule.java @@ -46,7 +46,9 @@ public class BjqModeRule implements MqttMessageRule { String mainLightMode = convertArr[1].toString(); String batteryRemainingTime = convertArr[2].toString(); if(StringUtils.isNotBlank(mainLightMode)){ + log.info("设备离线mainLightMode:{}",mainLightMode); if("0".equals(mainLightMode)){ + //设备离线 String deviceOnlineStatusRedisKey = GlobalConstants.GLOBAL_REDIS_KEY+ DEVICE_KEY_PREFIX+ context.getDeviceImei() + DeviceRedisKeyConstants.DEVICE_ONLINE_STATUS_KEY_PREFIX ; RedisUtils.setCacheObject(deviceOnlineStatusRedisKey, "0"); @@ -59,7 +61,8 @@ public class BjqModeRule implements MqttMessageRule { UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.eq("device_imei", context.getDeviceImei()); updateWrapper.set("online_status", 2); - deviceService.update(); + deviceService.update(updateWrapper); + RedisUtils.deleteObject(sendMessageIng); } } // 发送设备状态和位置信息到Redis diff --git a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqSendMessageRule.java b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqSendMessageRule.java index 609a1cee3..d2d3620b5 100644 --- a/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqSendMessageRule.java +++ b/fys-admin/src/main/java/com/fuyuanshen/global/mqtt/rule/bjq/BjqSendMessageRule.java @@ -43,7 +43,11 @@ public class BjqSendMessageRule implements MqttMessageRule { public void execute(MqttRuleContext context) { String functionAccess = FUNCTION_ACCESS_KEY + context.getDeviceImei(); try { - Integer val2 = (Integer) context.getConvertArr()[1]; + +// Byte val2 = (Byte) context.getConvertArr()[1]; + String val2Str = context.getConvertArr()[1].toString(); + int val2 = Integer.parseInt(val2Str); + System.out.println("收到设备信息命令:"+val2); if (val2 == 100) { RedisUtils.setCacheObject(functionAccess, FunctionAccessStatus.OK.getCode(), Duration.ofSeconds(20)); return; @@ -51,7 +55,6 @@ public class BjqSendMessageRule implements MqttMessageRule { if(val2==200){ String sendMessageIng = GLOBAL_REDIS_KEY+ DEVICE_KEY_PREFIX + context.getDeviceImei() + ":messageSending"; -// RedisUtils.setCacheObject(sendMessageIng, "1", Duration.ofDays(1)); RedisUtils.deleteObject(sendMessageIng); return; } @@ -61,7 +64,7 @@ public class BjqSendMessageRule implements MqttMessageRule { if (StringUtils.isEmpty(data)) { return; } - + byte[] arr = ImageToCArrayConverter.convertStringToByteArray(data); byte[] specificChunk = ImageToCArrayConverter.getChunk(arr, (val2 - 1), 512); log.info("第{}块数据大小: {} 字节", val2, specificChunk.length); 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 90de863a5..71cb591bd 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 @@ -90,9 +90,10 @@ public class DeviceBizService { //设备在线状态 String onlineStatus = RedisUtils.getCacheObject(GLOBAL_REDIS_KEY+ DEVICE_KEY_PREFIX+ item.getDeviceImei() + DeviceRedisKeyConstants.DEVICE_ONLINE_STATUS_KEY_PREFIX); - if(StringUtils.isNotBlank(onlineStatus)){ - + if("1".equals(onlineStatus)){ item.setOnlineStatus(1); + }else if("2".equals(onlineStatus)){ + item.setOnlineStatus(2); }else{ item.setOnlineStatus(0); } @@ -131,9 +132,10 @@ public class DeviceBizService { //设备在线状态 String onlineStatus = RedisUtils.getCacheObject(GLOBAL_REDIS_KEY+ DEVICE_KEY_PREFIX+ item.getDeviceImei() + DeviceRedisKeyConstants.DEVICE_ONLINE_STATUS_KEY_PREFIX); - if(StringUtils.isNotBlank(onlineStatus)){ - + if("1".equals(onlineStatus)){ item.setOnlineStatus(1); + }else if("2".equals(onlineStatus)){ + item.setOnlineStatus(2); }else{ item.setOnlineStatus(0); } 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 f4681e346..9ededee08 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 @@ -241,9 +241,11 @@