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 32292f81c..0113ab7ca 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 @@ -3882,31 +3882,52 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple }else { //调用重启设备接口先删除设备,在新增,在修改在重启设备 List deleteDevIds = new ArrayList<>(); + List addDevIds = new ArrayList<>(); + List modifyDevIds = new ArrayList<>(); Map> collect = tempPqsTerminalPushLogDTOList.stream().collect(Collectors.groupingBy(PqsTerminalPushLogDTO::getOperateType)); if(collect.containsKey(DeviceRebootType.DELETE_TERMINAL)){ List pqsTerminalPushLogDTOList1 = collect.get(DeviceRebootType.DELETE_TERMINAL); deleteDevIds = pqsTerminalPushLogDTOList1.stream().map(PqsTerminalPushLogDTO::getDevId).distinct().collect(Collectors.toList()); - String devNameString = pqsTerminalPushLogDTOList1.stream().map(PqsTerminalPushLogDTO::getDevName).distinct().collect(Collectors.joining(",")); - PreCommandDTO preCommandDTO = new PreCommandDTO(); - String guid = IdUtil.simpleUUID(); + } + if(collect.containsKey(DeviceRebootType.ADD_TERMINAL)){ + List pqsTerminalPushLogDTOList1 = collect.get(DeviceRebootType.ADD_TERMINAL); + addDevIds = pqsTerminalPushLogDTOList1.stream().map(PqsTerminalPushLogDTO::getDevId).distinct().collect(Collectors.toList()); + } + if(collect.containsKey(DeviceRebootType.LEDGER_MODIFY)){ + List pqsTerminalPushLogDTOList1 = collect.get(DeviceRebootType.LEDGER_MODIFY); + modifyDevIds = pqsTerminalPushLogDTOList1.stream().map(PqsTerminalPushLogDTO::getDevId).distinct().collect(Collectors.toList()); + } + if(collect.containsKey(DeviceRebootType.DELETE_TERMINAL)){ + List pqsTerminalPushLogDTOList1 = collect.get(DeviceRebootType.DELETE_TERMINAL); + List finalAddDevIds = addDevIds; + //过滤本次新增的设备,因为前置那边还没有新增该装备 + pqsTerminalPushLogDTOList1 = pqsTerminalPushLogDTOList1.stream().filter(temp-> finalAddDevIds.contains(temp.getDevId())).distinct().collect(Collectors.toList()); + if(!CollectionUtils.isEmpty(pqsTerminalPushLogDTOList1)){ + String devNameString = pqsTerminalPushLogDTOList1.stream().map(PqsTerminalPushLogDTO::getDevName).distinct().collect(Collectors.joining(",")); + List resultDevIds = pqsTerminalPushLogDTOList1.stream().map(PqsTerminalPushLogDTO::getDevId).distinct().collect(Collectors.toList()); + PreCommandDTO preCommandDTO = new PreCommandDTO(); + String guid = IdUtil.simpleUUID(); - String command = "删除前置机:"+pqsTerminalPushLogDTO.getNodeName()+"下进程:"+processId+"下终端"+devNameString; - preCommandDTO.setGuid(guid); - preCommandDTO.setCommand(command); - preCommandDTO.setResult("2"); + String command = "删除前置机:"+pqsTerminalPushLogDTO.getNodeName()+"下进程:"+processId+"下终端"+devNameString; + preCommandDTO.setGuid(guid); + preCommandDTO.setCommand(command); + preCommandDTO.setResult("2"); + + //调用重启设备接口 + this.askRestartDevice(guid,pqsTerminalPushLogDTO.getNodeId(),resultDevIds,DeviceRebootType.DELETE_TERMINAL,processId); + preCommandDTOList.add(preCommandDTO); + } - //调用重启进程接口 - this.askRestartDevice(guid,pqsTerminalPushLogDTO.getNodeId(),deleteDevIds,DeviceRebootType.DELETE_TERMINAL,processId); - preCommandDTOList.add(preCommandDTO); } if(collect.containsKey(DeviceRebootType.ADD_TERMINAL)){ List pqsTerminalPushLogDTOList1 = collect.get(DeviceRebootType.ADD_TERMINAL); - List addDevIds = pqsTerminalPushLogDTOList1.stream().map(PqsTerminalPushLogDTO::getDevId).distinct().collect(Collectors.toList()); - addDevIds.removeAll(deleteDevIds); - if(!CollectionUtils.isEmpty(addDevIds)){ - String devNameString = deleteDevIds.stream().map(temp->{return lineMap.get(temp).getName();}).collect(Collectors.joining(",")); - PreCommandDTO preCommandDTO = new PreCommandDTO(); + List finalDeleteDevIds = deleteDevIds; + pqsTerminalPushLogDTOList1 = pqsTerminalPushLogDTOList1.stream().filter(temp-> finalDeleteDevIds.contains(temp.getDevId())).distinct().collect(Collectors.toList()); + + if(!CollectionUtils.isEmpty(pqsTerminalPushLogDTOList1)){ + String devNameString = pqsTerminalPushLogDTOList1.stream().map(PqsTerminalPushLogDTO::getDevName).distinct().collect(Collectors.joining(",")); + List resultDevIds = pqsTerminalPushLogDTOList1.stream().map(PqsTerminalPushLogDTO::getDevId).distinct().collect(Collectors.toList()); PreCommandDTO preCommandDTO = new PreCommandDTO(); String guid = IdUtil.simpleUUID(); String command = "新增前置机:"+pqsTerminalPushLogDTO.getNodeName()+"下进程:"+processId+"下终端"+devNameString; preCommandDTO.setGuid(guid); @@ -3914,7 +3935,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple preCommandDTO.setResult("2"); //调用重启进程接口 - this.askRestartDevice(guid,pqsTerminalPushLogDTO.getNodeId(),deleteDevIds,DeviceRebootType.ADD_TERMINAL,processId); + this.askRestartDevice(guid,pqsTerminalPushLogDTO.getNodeId(),resultDevIds,DeviceRebootType.ADD_TERMINAL,processId); preCommandDTOList.add(preCommandDTO); } @@ -3922,18 +3943,20 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple } if(collect.containsKey(DeviceRebootType.LEDGER_MODIFY)){ List pqsTerminalPushLogDTOList1 = collect.get(DeviceRebootType.LEDGER_MODIFY); - List modifyDevIds = pqsTerminalPushLogDTOList1.stream().map(PqsTerminalPushLogDTO::getDevId).distinct().collect(Collectors.toList()); - modifyDevIds.removeAll(deleteDevIds); - if(!CollectionUtils.isEmpty(modifyDevIds)){ - String devNameString = modifyDevIds.stream().map(temp->{return lineMap.get(temp).getName();}).collect(Collectors.joining(",")); - PreCommandDTO preCommandDTO = new PreCommandDTO(); + List finalDeleteDevIds1 = deleteDevIds; + List finalAddDevIds1 = addDevIds; + pqsTerminalPushLogDTOList1 = pqsTerminalPushLogDTOList1.stream().filter(temp-> finalDeleteDevIds1.contains(temp.getDevId())|| finalAddDevIds1.contains(temp.getDevId())).distinct().collect(Collectors.toList()); + + if(!CollectionUtils.isEmpty(pqsTerminalPushLogDTOList1)){ + String devNameString = pqsTerminalPushLogDTOList1.stream().map(PqsTerminalPushLogDTO::getDevName).distinct().collect(Collectors.joining(",")); + List resultDevIds = pqsTerminalPushLogDTOList1.stream().map(PqsTerminalPushLogDTO::getDevId).distinct().collect(Collectors.toList()); PreCommandDTO preCommandDTO = new PreCommandDTO(); String guid = IdUtil.simpleUUID(); String command = "修改前置机:"+pqsTerminalPushLogDTO.getNodeName()+"下进程:"+processId+"下终端"+devNameString; preCommandDTO.setGuid(guid); preCommandDTO.setCommand(command); preCommandDTO.setResult("2"); //调用重启进程接口 - this.askRestartDevice(guid,pqsTerminalPushLogDTO.getNodeId(),deleteDevIds,DeviceRebootType.LEDGER_MODIFY,processId); + this.askRestartDevice(guid,pqsTerminalPushLogDTO.getNodeId(),resultDevIds,DeviceRebootType.LEDGER_MODIFY,processId); preCommandDTOList.add(preCommandDTO); }