From 8841000989eeb6c5f4fc59746f9a35208e6f12d4 Mon Sep 17 00:00:00 2001 From: xy <748613696@qq.com> Date: Tue, 21 Apr 2026 20:33:55 +0800 Subject: [PATCH] =?UTF-8?q?refactor(service):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E4=BA=A4=E4=BB=98=E6=9C=8D=E5=8A=A1=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E6=97=A5=E5=BF=97=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除未使用的 ICsTerminalLogsService 依赖注入 - 删除前置推送日志的清理代码,简化设备删除流程 - 在创建操作日志时添加UUID标识符 - 在终端日志服务中增加Redis缓存清理逻辑 - 为设备列表处理添加空值检查,避免空指针异常 - 重构设备分组和消息发送逻辑,提高代码可读性 --- .../impl/CsEquipmentDeliveryServiceImpl.java | 8 +-- .../impl/CsTerminalLogsServiceImpl.java | 70 ++++++++++--------- 2 files changed, 39 insertions(+), 39 deletions(-) diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java index 20b82ba..4badb3e 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsEquipmentDeliveryServiceImpl.java @@ -9,6 +9,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.text.StrPool; +import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -111,7 +112,6 @@ public class CsEquipmentDeliveryServiceImpl extends ServiceImpl queryWrap = new LambdaQueryWrapper<>(); - queryWrap.eq(CsTerminalLogs::getDeviceId,id); - csTerminalLogsService.remove(queryWrap); - if (update) { refreshDeviceDataCache(); } //新增操作日志 CsTerminalLogs csTerminalLogs = new CsTerminalLogs(); + csTerminalLogs.setId(IdUtil.simpleUUID()); csTerminalLogs.setDeviceId(id); csTerminalLogs.setOperateType(2); csTerminalLogs.setIsPush(0); diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsTerminalLogsServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsTerminalLogsServiceImpl.java index 518ad94..14fc451 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsTerminalLogsServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsTerminalLogsServiceImpl.java @@ -66,6 +66,8 @@ public class CsTerminalLogsServiceImpl extends ServiceImpl list = this.list(wrapper); if (CollectionUtil.isNotEmpty(list)) { + //先清空缓存 + redisUtil.delete(RequestUtil.getUserIndex()+"reply"); //新增台账集合 List addList = new ArrayList<>(); //修改台账集合 @@ -97,42 +99,44 @@ public class CsTerminalLogsServiceImpl extends ServiceImpl devList = Stream.of(addList, updateList, deleteList).flatMap(List::stream).collect(Collectors.toList()); - //获取设备集合 - List deviceList = csEquipmentDeliveryService.listByIds(devList); - //按照前置机id分组 - Map> nodeMap = deviceList.stream().collect(Collectors.groupingBy(CsEquipmentDeliveryPO::getNodeId)); - nodeMap.forEach((k,v)->{ - int maxProcessNum = nodeService.getNodeById(k).getMaxProcessNum(); - //按照进程号分组 - Map> nodeProcessMap = v.stream().collect(Collectors.groupingBy(CsEquipmentDeliveryPO::getNodeProcess)); - nodeProcessMap.forEach((k1,v1)->{ - if (v1.size() > 10) { - //一个进程下修改的设备数量超过10台,重启该进程号下的前置 - CldControlMessage cldControlMessage = new CldControlMessage(); - cldControlMessage.setGuid(IdUtil.simpleUUID()); - cldControlMessage.setCode("set_process"); - cldControlMessage.setProcessNo(k1); - cldControlMessage.setFun("delete"); - cldControlMessage.setProcessNum(maxProcessNum); - controlMessageTemplate.sendMember(cldControlMessage,k); - } + if (CollectionUtil.isNotEmpty(devList)) { + //获取设备集合 + List deviceList = csEquipmentDeliveryService.listByIds(devList); + //按照前置机id分组 + Map> nodeMap = deviceList.stream().collect(Collectors.groupingBy(CsEquipmentDeliveryPO::getNodeId)); + nodeMap.forEach((k,v)->{ + int maxProcessNum = nodeService.getNodeById(k).getMaxProcessNum(); + //按照进程号分组 + Map> nodeProcessMap = v.stream().collect(Collectors.groupingBy(CsEquipmentDeliveryPO::getNodeProcess)); + nodeProcessMap.forEach((k1,v1)->{ + if (v1.size() > 10) { + //一个进程下修改的设备数量超过10台,重启该进程号下的前置 + CldControlMessage cldControlMessage = new CldControlMessage(); + cldControlMessage.setGuid(IdUtil.simpleUUID()); + cldControlMessage.setCode("set_process"); + cldControlMessage.setProcessNo(k1); + cldControlMessage.setFun("delete"); + cldControlMessage.setProcessNum(maxProcessNum); + controlMessageTemplate.sendMember(cldControlMessage,k); + } + }); }); - }); - if (CollectionUtil.isNotEmpty(addList)) { - sendMessage(addList, deviceList, "add_terminal"); - } - if (CollectionUtil.isNotEmpty(updateList)) { - sendMessage(updateList, deviceList, "ledger_modify"); - } - if (CollectionUtil.isNotEmpty(deleteList)) { - sendDeleteMessage(deleteList, list, "delete_terminal"); - } + if (CollectionUtil.isNotEmpty(addList)) { + sendMessage(addList, deviceList, "add_terminal"); + } + if (CollectionUtil.isNotEmpty(updateList)) { + sendMessage(updateList, deviceList, "ledger_modify"); + } + if (CollectionUtil.isNotEmpty(deleteList)) { + sendDeleteMessage(deleteList, list, "delete_terminal"); + } - //推送完将数据改成推送 - LambdaUpdateWrapper wrapper2 = new LambdaUpdateWrapper<>(); - wrapper2.set(CsTerminalLogs::getIsPush, 1); - this.update(wrapper2); + //推送完将数据改成推送 + LambdaUpdateWrapper wrapper2 = new LambdaUpdateWrapper<>(); + wrapper2.set(CsTerminalLogs::getIsPush, 1); + this.update(wrapper2); + } } else { return "暂无需要推送的数据"; }