From c2bc212e97b504887d59c654d7ec323e7ed08516 Mon Sep 17 00:00:00 2001 From: hzj <826100833@qq.com> Date: Wed, 23 Jul 2025 10:36:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=89=8D=E7=BD=AE=E6=9C=BA=E5=88=87=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E6=97=A5=E5=BF=97=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/TerminalBaseServiceImpl.java | 262 +++++++++++------- 1 file changed, 156 insertions(+), 106 deletions(-) diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalBaseServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalBaseServiceImpl.java index d3898d0aa..8f87e08ea 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalBaseServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalBaseServiceImpl.java @@ -3680,125 +3680,165 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple List pqsTerminalPushLogDTOList = new ArrayList<>(); List addAndDelteId = new ArrayList<>(); if(!CollectionUtils.isEmpty(list)){ - list.forEach(temp->{ - PqsTerminalPushLogDTO pqsTerminalPushLogDTO = new PqsTerminalPushLogDTO(); - if(Objects.equals(temp.getTerminalType(),6)){ - pqsTerminalPushLogDTO.setId(temp.getId()); - //如果不存在该设备id,说明设备也被删除,直接走下边的设备删除此处不做处理 - if(!lineDeviceMap.containsKey(temp.getObjIndex())){ - return; - } - String deviceId = lineDeviceMap.get(temp.getObjIndex()); - - pqsTerminalPushLogDTO.setDevId(deviceId); - pqsTerminalPushLogDTO.setDevName(lineMap.get(deviceId).getName()); - String nodeId = deviceMap.get(deviceId).getNodeId(); - pqsTerminalPushLogDTO.setNodeId(nodeId); - //如果前置删了直接返回 - if(!nodeMap.containsKey(nodeId)){ - return; - } - pqsTerminalPushLogDTO.setNodeName(nodeMap.get(nodeId).getName()); - pqsTerminalPushLogDTO.setProcessUpdateFlag(false); - if(deviceProcesseMap.containsKey(deviceId)){ - pqsTerminalPushLogDTO.setProcessNum(deviceProcesseMap.get(deviceId)); - }else { - throw new BusinessException("存在终端未设置进程号,请在前置管理页面设置进程号在进行此操作"); - } - pqsTerminalPushLogDTO.setOperateType(DeviceRebootType.LEDGER_MODIFY); - pqsTerminalPushLogDTOList.add(pqsTerminalPushLogDTO); - - }else if(Objects.equals(temp.getTerminalType(),4)){ - //如果是修改进程操作记录2个进程日志; - if(temp.getLogsType().equals(dataDic.getId())){ - String temLos = "%s进行更新终端进程操作;终端名称 :%s,由进程%s修改成进程%s"; - List strings = this.parseTemplateValues(temLos, temp.getTerminalDescribe()); - String num1 = strings.get(2); // 第一个进程 - String num2 = strings.get(3); // 第二个进程 - int processId1 = Integer.parseInt(num1); - int processId2 = Integer.parseInt(num2); + //前置层修改 + List list1 = list.stream().filter(temp -> temp.getTerminalDescribe().contains("终端所属前置机由")).collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(list1)){ + for (PqsTerminalLogs temp : list1) { + String temLos = "%s终端所属前置机由 %s 改为> %s;"; + List strings = this.parseTemplateValues(temLos, temp.getTerminalDescribe()); + String node1 = strings.get(1); // 第一个前置 + String node2 = strings.get(2); // 第二个前置 + if(deviceProcesseMap.containsKey(temp.getObjIndex())){ + Integer processNum = deviceProcesseMap.get(temp.getObjIndex()); + PqsTerminalPushLogDTO pqsTerminalPushLogDTO = new PqsTerminalPushLogDTO(); pqsTerminalPushLogDTO.setId(temp.getId()); String deviceId = temp.getObjIndex(); pqsTerminalPushLogDTO.setDevId(deviceId); pqsTerminalPushLogDTO.setDevName(lineMap.containsKey(deviceId)?lineMap.get(deviceId).getName():"删除设备"); + pqsTerminalPushLogDTO.setNodeId(node1); + pqsTerminalPushLogDTO.setNodeName(nodeMap.get(node1).getName()); + pqsTerminalPushLogDTO.setProcessUpdateFlag(true); + pqsTerminalPushLogDTO.setProcessNum(processNum); + pqsTerminalPushLogDTOList.add(pqsTerminalPushLogDTO); + + PqsTerminalPushLogDTO pqsTerminalPushLogDTO2 = new PqsTerminalPushLogDTO(); + pqsTerminalPushLogDTO2.setId(temp.getId()); + pqsTerminalPushLogDTO2.setDevId(deviceId); + pqsTerminalPushLogDTO2.setDevName(lineMap.containsKey(deviceId)?lineMap.get(deviceId).getName():"删除设备"); + pqsTerminalPushLogDTO2.setNodeId(node2); + pqsTerminalPushLogDTO2.setNodeName(nodeMap.get(node2).getName()); + pqsTerminalPushLogDTO2.setProcessUpdateFlag(true); + pqsTerminalPushLogDTO2.setProcessNum(processNum); + pqsTerminalPushLogDTOList.add(pqsTerminalPushLogDTO2); + + } + } + } + + list.removeAll(list1); + if(!CollectionUtils.isEmpty(list)){ + //终端层面和检测点层面修改 + list.forEach(temp->{ + PqsTerminalPushLogDTO pqsTerminalPushLogDTO = new PqsTerminalPushLogDTO(); + if(Objects.equals(temp.getTerminalType(),6)){ + pqsTerminalPushLogDTO.setId(temp.getId()); + //如果不存在该设备id,说明设备也被删除,直接走下边的设备删除此处不做处理 + if(!lineDeviceMap.containsKey(temp.getObjIndex())){ + return; + } + String deviceId = lineDeviceMap.get(temp.getObjIndex()); + + pqsTerminalPushLogDTO.setDevId(deviceId); + pqsTerminalPushLogDTO.setDevName(lineMap.get(deviceId).getName()); String nodeId = deviceMap.get(deviceId).getNodeId(); pqsTerminalPushLogDTO.setNodeId(nodeId); + //如果前置删了直接返回 + if(!nodeMap.containsKey(nodeId)){ + return; + } pqsTerminalPushLogDTO.setNodeName(nodeMap.get(nodeId).getName()); - pqsTerminalPushLogDTO.setProcessUpdateFlag(true); - pqsTerminalPushLogDTO.setProcessNum(processId1); - pqsTerminalPushLogDTOList.add(pqsTerminalPushLogDTO); - PqsTerminalPushLogDTO pqsTerminalPushLogDTO1 = new PqsTerminalPushLogDTO(); - - pqsTerminalPushLogDTO1.setId(temp.getId()); - pqsTerminalPushLogDTO1.setDevId(deviceId); - pqsTerminalPushLogDTO1.setDevName(lineMap.get(deviceId).getName()); - pqsTerminalPushLogDTO1.setNodeId(nodeId); - pqsTerminalPushLogDTO1.setNodeName(nodeMap.get(nodeId).getName()); - pqsTerminalPushLogDTO1.setProcessUpdateFlag(true); - pqsTerminalPushLogDTO1.setProcessNum(processId2); - pqsTerminalPushLogDTOList.add(pqsTerminalPushLogDTO); - - }else { - pqsTerminalPushLogDTO.setId(temp.getId()); - String deviceId = temp.getObjIndex(); - pqsTerminalPushLogDTO.setDevId(deviceId); - //区分删除操作,新增和其他操作 - String operate= DeviceRebootType.LEDGER_MODIFY; - - if(Objects.equals(temp.getOperateType(), Param.DEL)){ - operate = DeviceRebootType.DELETE_TERMINAL; - - - } else if (Objects.equals(temp.getOperateType(), Param.ADD)) { - operate = DeviceRebootType.ADD_TERMINAL; - - } - //设备删除找不到设备名称,重日志截取 - if(Objects.equals(temp.getOperateType(), Param.DEL)){ - String temLos = "%s名称:%s;前置信息:%s"; - List strings = this.parseTemplateValues(temLos, temp.getTerminalDescribe()); - String devName = strings.get(1); // 设备名称 - String nodeName = strings.get(2); // 进程名称 - pqsTerminalPushLogDTO.setDevName(devName); - String nodeId = nodeNameMap.get(nodeName).getId(); - pqsTerminalPushLogDTO.setNodeId(nodeId); - pqsTerminalPushLogDTO.setNodeName(nodeName); - }else { - //如果存在说明设备未被删除,不存在说明有一条删除日志,直接return; - if(lineMap.containsKey(deviceId)){ - pqsTerminalPushLogDTO.setDevName(lineMap.get(deviceId).getName()); - }else{ - pqsTerminalPushLogDTO.setDevName("删除设备"); - - } - //如果新增的没有,说明该新增设备在本次也删除了, - if(deviceMap.containsKey(deviceId)){ - String nodeId = deviceMap.get(deviceId).getNodeId(); - pqsTerminalPushLogDTO.setNodeId(nodeId); - pqsTerminalPushLogDTO.setNodeName(nodeMap.get(nodeId).getName()); - }else{ - addAndDelteId.add(deviceId); - return; - } - - - } - pqsTerminalPushLogDTO.setProcessUpdateFlag(false); if(deviceProcesseMap.containsKey(deviceId)){ pqsTerminalPushLogDTO.setProcessNum(deviceProcesseMap.get(deviceId)); }else { throw new BusinessException("存在终端未设置进程号,请在前置管理页面设置进程号在进行此操作"); } - - pqsTerminalPushLogDTO.setOperateType(operate); + pqsTerminalPushLogDTO.setOperateType(DeviceRebootType.LEDGER_MODIFY); pqsTerminalPushLogDTOList.add(pqsTerminalPushLogDTO); + + }else if(Objects.equals(temp.getTerminalType(),4)){ + //如果是修改进程操作记录2个进程日志; + if(temp.getLogsType().equals(dataDic.getId())){ + String temLos = "%s进行更新终端进程操作;终端名称 :%s,由进程%s修改成进程%s"; + List strings = this.parseTemplateValues(temLos, temp.getTerminalDescribe()); + String num1 = strings.get(2); // 第一个进程 + String num2 = strings.get(3); // 第二个进程 + int processId1 = Integer.parseInt(num1); + int processId2 = Integer.parseInt(num2); + pqsTerminalPushLogDTO.setId(temp.getId()); + String deviceId = temp.getObjIndex(); + pqsTerminalPushLogDTO.setDevId(deviceId); + pqsTerminalPushLogDTO.setDevName(lineMap.containsKey(deviceId)?lineMap.get(deviceId).getName():"删除设备"); + String nodeId = deviceMap.get(deviceId).getNodeId(); + pqsTerminalPushLogDTO.setNodeId(nodeId); + pqsTerminalPushLogDTO.setNodeName(nodeMap.get(nodeId).getName()); + pqsTerminalPushLogDTO.setProcessUpdateFlag(true); + pqsTerminalPushLogDTO.setProcessNum(processId1); + pqsTerminalPushLogDTOList.add(pqsTerminalPushLogDTO); + PqsTerminalPushLogDTO pqsTerminalPushLogDTO1 = new PqsTerminalPushLogDTO(); + + pqsTerminalPushLogDTO1.setId(temp.getId()); + pqsTerminalPushLogDTO1.setDevId(deviceId); + pqsTerminalPushLogDTO1.setDevName(lineMap.get(deviceId).getName()); + pqsTerminalPushLogDTO1.setNodeId(nodeId); + pqsTerminalPushLogDTO1.setNodeName(nodeMap.get(nodeId).getName()); + pqsTerminalPushLogDTO1.setProcessUpdateFlag(true); + pqsTerminalPushLogDTO1.setProcessNum(processId2); + pqsTerminalPushLogDTOList.add(pqsTerminalPushLogDTO); + + }else { + pqsTerminalPushLogDTO.setId(temp.getId()); + String deviceId = temp.getObjIndex(); + pqsTerminalPushLogDTO.setDevId(deviceId); + //区分删除操作,新增和其他操作 + String operate= DeviceRebootType.LEDGER_MODIFY; + + if(Objects.equals(temp.getOperateType(), Param.DEL)){ + operate = DeviceRebootType.DELETE_TERMINAL; + + + } else if (Objects.equals(temp.getOperateType(), Param.ADD)) { + operate = DeviceRebootType.ADD_TERMINAL; + + } + //设备删除找不到设备名称,重日志截取 + if(Objects.equals(temp.getOperateType(), Param.DEL)){ + String temLos = "%s名称:%s;前置信息:%s"; + List strings = this.parseTemplateValues(temLos, temp.getTerminalDescribe()); + String devName = strings.get(1); // 设备名称 + String nodeName = strings.get(2); // 进程名称 + pqsTerminalPushLogDTO.setDevName(devName); + String nodeId = nodeNameMap.get(nodeName).getId(); + pqsTerminalPushLogDTO.setNodeId(nodeId); + pqsTerminalPushLogDTO.setNodeName(nodeName); + }else { + //如果存在说明设备未被删除,不存在说明有一条删除日志,直接return; + if(lineMap.containsKey(deviceId)){ + pqsTerminalPushLogDTO.setDevName(lineMap.get(deviceId).getName()); + }else{ + pqsTerminalPushLogDTO.setDevName("删除设备"); + + } + //如果新增的没有,说明该新增设备在本次也删除了, + if(deviceMap.containsKey(deviceId)){ + String nodeId = deviceMap.get(deviceId).getNodeId(); + pqsTerminalPushLogDTO.setNodeId(nodeId); + pqsTerminalPushLogDTO.setNodeName(nodeMap.get(nodeId).getName()); + }else{ + addAndDelteId.add(deviceId); + return; + } + + + } + + pqsTerminalPushLogDTO.setProcessUpdateFlag(false); + if(deviceProcesseMap.containsKey(deviceId)){ + pqsTerminalPushLogDTO.setProcessNum(deviceProcesseMap.get(deviceId)); + }else { + throw new BusinessException("存在终端未设置进程号,请在前置管理页面设置进程号在进行此操作"); + } + + pqsTerminalPushLogDTO.setOperateType(operate); + pqsTerminalPushLogDTOList.add(pqsTerminalPushLogDTO); + } + + } + }); + } - } - - }); Map>> collect2 = pqsTerminalPushLogDTOList.stream().filter(temp->!addAndDelteId.contains(temp.getDevId())).collect(Collectors.groupingBy(PqsTerminalPushLogDTO::getNodeId, Collectors.groupingBy(PqsTerminalPushLogDTO::getProcessNum))); collect2.forEach((nodeId,pqsTerminalPushLogDTOMap)->{ @@ -3921,11 +3961,21 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple }); }); - list.forEach(temp->{ - temp.setIsPush(1); + if(!CollectionUtils.isEmpty(list1)){ + list1.forEach(temp->{ + temp.setIsPush(1); + + pqsTerminalLogsMapper.updateById(temp); + }); + } + if(!CollectionUtils.isEmpty(list)){ + list.forEach(temp->{ + temp.setIsPush(1); + + pqsTerminalLogsMapper.updateById(temp); + }); + } - pqsTerminalLogsMapper.updateById(temp); - }); }else { throw new BusinessException("暂无变动的装置测点推送");