终端删除后,终端日志记录名称修改
This commit is contained in:
@@ -96,6 +96,7 @@ import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.math.BigDecimal;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
@@ -3698,305 +3699,339 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
||||
|
||||
List<PqsTerminalPushLogDTO> pqsTerminalPushLogDTOList = new ArrayList<>();
|
||||
List<String> addAndDelteId = new ArrayList<>();
|
||||
//异常标志
|
||||
Boolean exFlag= false;
|
||||
if (!CollectionUtils.isEmpty(list)) {
|
||||
//前置层修改
|
||||
List<PqsTerminalLogs> 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<String> 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());
|
||||
String deviceId;
|
||||
//如果不存在该设备id,说明监测点删除
|
||||
if (!lineDeviceMap.containsKey(temp.getObjIndex())) {
|
||||
String temLos = "%s监测点名称: %s";
|
||||
List<String> strings = this.parseTemplateValues(temLos, temp.getTerminalDescribe());
|
||||
String[] lineName = strings.get(1).split("->");
|
||||
List<Line> devList = lineById.stream().filter(line -> Objects.equals(line.getName(), lineName[1])).collect(Collectors.toList());
|
||||
if (CollectionUtils.isEmpty(devList)) {
|
||||
//如果不存在该设备说明设备也被删除,直接走下边删除设备逻辑;
|
||||
return;
|
||||
} else {
|
||||
Line sub = lineById.stream().filter(line -> Objects.equals(line.getName(), lineName[0])).collect(Collectors.toList()).get(0);
|
||||
Line tempDev = devList.stream().filter(dev -> dev.getPid().equals(sub.getId())).collect(Collectors.toList()).get(0);
|
||||
deviceId = tempDev.getId();
|
||||
}
|
||||
|
||||
} else {
|
||||
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<String> 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<PqsTerminalLogs> list1 = new ArrayList<>();
|
||||
try {
|
||||
//前置层修改
|
||||
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<String> 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());
|
||||
String deviceId;
|
||||
//如果不存在该设备id,说明监测点删除
|
||||
if (!lineDeviceMap.containsKey(temp.getObjIndex())) {
|
||||
String temLos = "%s监测点名称: %s";
|
||||
List<String> strings = this.parseTemplateValues(temLos, temp.getTerminalDescribe());
|
||||
String[] lineName = strings.get(1).split("->");
|
||||
List<Line> devList = lineById.stream().filter(line -> Objects.equals(line.getName(), lineName[1])).collect(Collectors.toList());
|
||||
if (CollectionUtils.isEmpty(devList)) {
|
||||
//如果不存在该设备说明设备也被删除,直接走下边删除设备逻辑;
|
||||
return;
|
||||
} else {
|
||||
Line sub = lineById.stream().filter(line -> Objects.equals(line.getName(), lineName[0])).collect(Collectors.toList()).get(0);
|
||||
Line tempDev = devList.stream().filter(dev -> dev.getPid().equals(sub.getId())).collect(Collectors.toList()).get(0);
|
||||
deviceId = tempDev.getId();
|
||||
}
|
||||
|
||||
} else {
|
||||
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(pqsTerminalPushLogDTO1);
|
||||
|
||||
} 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<String> 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)) {
|
||||
String deviceId = temp.getObjIndex();
|
||||
if(!deviceMap.containsKey(deviceId)){
|
||||
//说明设备被删除
|
||||
String temLos = "%s名称:%s;前置信息:%s";
|
||||
List<String> strings = this.parseTemplateValues(temLos, temp.getTerminalDescribe());
|
||||
String devName = strings.get(1); // 设备名称
|
||||
String nodeName = strings.get(2); // 进程名称
|
||||
pqsTerminalPushLogDTO.setDevName(devName);
|
||||
//如果前置删了直接返回
|
||||
if(!nodeNameMap.containsKey(nodeName)){
|
||||
return;
|
||||
}
|
||||
String nodeId = nodeNameMap.get(nodeName).getId();
|
||||
pqsTerminalPushLogDTO.setNodeId(nodeId);
|
||||
pqsTerminalPushLogDTO.setNodeName(nodeName);
|
||||
}
|
||||
|
||||
//如果是修改进程操作记录2个进程日志;
|
||||
if (temp.getLogsType().equals(dataDic.getId())) {
|
||||
String temLos = "%s进行更新终端进程操作;终端名称 :%s,由进程%s修改成进程%s";
|
||||
List<String> 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(pqsTerminalPushLogDTO1);
|
||||
|
||||
} 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<String> 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.containsKey(nodeId)?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<String, Map<Integer, List<PqsTerminalPushLogDTO>>> collect2 = pqsTerminalPushLogDTOList.stream().filter(temp -> !addAndDelteId.contains(temp.getDevId())).collect(Collectors.groupingBy(PqsTerminalPushLogDTO::getNodeId, Collectors.groupingBy(PqsTerminalPushLogDTO::getProcessNum)));
|
||||
collect2.forEach((nodeId, pqsTerminalPushLogDTOMap) -> {
|
||||
pqsTerminalPushLogDTOMap.forEach((processId, tempPqsTerminalPushLogDTOList) -> {
|
||||
Map<String, Map<Integer, List<PqsTerminalPushLogDTO>>> collect2 = pqsTerminalPushLogDTOList.stream().filter(temp -> !addAndDelteId.contains(temp.getDevId())).collect(Collectors.groupingBy(PqsTerminalPushLogDTO::getNodeId, Collectors.groupingBy(PqsTerminalPushLogDTO::getProcessNum)));
|
||||
collect2.forEach((nodeId, pqsTerminalPushLogDTOMap) -> {
|
||||
pqsTerminalPushLogDTOMap.forEach((processId, tempPqsTerminalPushLogDTOList) -> {
|
||||
|
||||
PqsTerminalPushLogDTO pqsTerminalPushLogDTO = tempPqsTerminalPushLogDTOList.get(0);
|
||||
//如果存在终端变更进程的记录直接重启进程
|
||||
boolean processUpdateFlag = tempPqsTerminalPushLogDTOList.stream().map(PqsTerminalPushLogDTO::getProcessUpdateFlag).anyMatch(b -> b != null && b);
|
||||
if (processUpdateFlag) {
|
||||
PreCommandDTO preCommandDTO = new PreCommandDTO();
|
||||
String guid = IdUtil.simpleUUID();
|
||||
String command = "重启前置机:" + pqsTerminalPushLogDTO.getNodeName() + "下进程:" + processId;
|
||||
preCommandDTO.setGuid(guid);
|
||||
preCommandDTO.setCommand(command);
|
||||
preCommandDTO.setResult("2");
|
||||
//调用重启进程接口
|
||||
this.askRestartProcess(guid, pqsTerminalPushLogDTO.getNodeId(), processId, "delete", "all");
|
||||
preCommandDTOList.add(preCommandDTO);
|
||||
} else {
|
||||
List<String> deviceIds = tempPqsTerminalPushLogDTOList.stream().map(PqsTerminalPushLogDTO::getDevId).distinct().collect(Collectors.toList());
|
||||
//如果一个进程上涉及10个以上的设备修改,直接重启进程,否则重启设备
|
||||
if (CollectionUtil.isNotEmpty(deviceIds) && deviceIds.size() > 10) {
|
||||
PqsTerminalPushLogDTO pqsTerminalPushLogDTO = tempPqsTerminalPushLogDTOList.get(0);
|
||||
//如果存在终端变更进程的记录直接重启进程
|
||||
boolean processUpdateFlag = tempPqsTerminalPushLogDTOList.stream().map(PqsTerminalPushLogDTO::getProcessUpdateFlag).anyMatch(b -> b != null && b);
|
||||
if (processUpdateFlag) {
|
||||
PreCommandDTO preCommandDTO = new PreCommandDTO();
|
||||
String guid = IdUtil.simpleUUID();
|
||||
String command = "重启前置机:" + pqsTerminalPushLogDTO.getNodeName() + "下进程:" + processId;
|
||||
preCommandDTO.setGuid(guid);
|
||||
preCommandDTO.setCommand(command);
|
||||
preCommandDTO.setResult("2");
|
||||
|
||||
//调用重启进程接口
|
||||
this.askRestartProcess(guid, pqsTerminalPushLogDTO.getNodeId(), processId, "delete", "all");
|
||||
preCommandDTOList.add(preCommandDTO);
|
||||
|
||||
} else {
|
||||
//调用重启设备接口先删除设备,在新增,在修改在重启设备
|
||||
List<String> deleteDevIds = new ArrayList<>();
|
||||
List<String> addDevIds = new ArrayList<>();
|
||||
List<String> modifyDevIds = new ArrayList<>();
|
||||
Map<String, List<PqsTerminalPushLogDTO>> collect = tempPqsTerminalPushLogDTOList.stream().collect(Collectors.groupingBy(PqsTerminalPushLogDTO::getOperateType));
|
||||
if (collect.containsKey(DeviceRebootType.DELETE_TERMINAL)) {
|
||||
List<PqsTerminalPushLogDTO> pqsTerminalPushLogDTOList1 = collect.get(DeviceRebootType.DELETE_TERMINAL);
|
||||
deleteDevIds = pqsTerminalPushLogDTOList1.stream().map(PqsTerminalPushLogDTO::getDevId).distinct().collect(Collectors.toList());
|
||||
}
|
||||
if (collect.containsKey(DeviceRebootType.ADD_TERMINAL)) {
|
||||
List<PqsTerminalPushLogDTO> pqsTerminalPushLogDTOList1 = collect.get(DeviceRebootType.ADD_TERMINAL);
|
||||
addDevIds = pqsTerminalPushLogDTOList1.stream().map(PqsTerminalPushLogDTO::getDevId).distinct().collect(Collectors.toList());
|
||||
}
|
||||
if (collect.containsKey(DeviceRebootType.LEDGER_MODIFY)) {
|
||||
List<PqsTerminalPushLogDTO> pqsTerminalPushLogDTOList1 = collect.get(DeviceRebootType.LEDGER_MODIFY);
|
||||
modifyDevIds = pqsTerminalPushLogDTOList1.stream().map(PqsTerminalPushLogDTO::getDevId).distinct().collect(Collectors.toList());
|
||||
}
|
||||
if (collect.containsKey(DeviceRebootType.DELETE_TERMINAL)) {
|
||||
List<PqsTerminalPushLogDTO> pqsTerminalPushLogDTOList1 = collect.get(DeviceRebootType.DELETE_TERMINAL);
|
||||
List<String> 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<String> resultDevIds = pqsTerminalPushLogDTOList1.stream().map(PqsTerminalPushLogDTO::getDevId).distinct().collect(Collectors.toList());
|
||||
PreCommandDTO preCommandDTO = new PreCommandDTO();
|
||||
String guid = IdUtil.simpleUUID();
|
||||
List<String> deviceIds = tempPqsTerminalPushLogDTOList.stream().map(PqsTerminalPushLogDTO::getDevId).distinct().collect(Collectors.toList());
|
||||
//如果一个进程上涉及10个以上的设备修改,直接重启进程,否则重启设备
|
||||
if (CollectionUtil.isNotEmpty(deviceIds) && deviceIds.size() > 10) {
|
||||
PreCommandDTO preCommandDTO = new PreCommandDTO();
|
||||
String guid = IdUtil.simpleUUID();
|
||||
String command = "重启前置机:" + pqsTerminalPushLogDTO.getNodeName() + "下进程:" + processId;
|
||||
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.askRestartProcess(guid, pqsTerminalPushLogDTO.getNodeId(), processId, "delete", "all");
|
||||
preCommandDTOList.add(preCommandDTO);
|
||||
|
||||
} else {
|
||||
//调用重启设备接口先删除设备,在新增,在修改在重启设备
|
||||
List<String> deleteDevIds = new ArrayList<>();
|
||||
List<String> addDevIds = new ArrayList<>();
|
||||
List<String> modifyDevIds = new ArrayList<>();
|
||||
Map<String, List<PqsTerminalPushLogDTO>> collect = tempPqsTerminalPushLogDTOList.stream().collect(Collectors.groupingBy(PqsTerminalPushLogDTO::getOperateType));
|
||||
if (collect.containsKey(DeviceRebootType.DELETE_TERMINAL)) {
|
||||
List<PqsTerminalPushLogDTO> pqsTerminalPushLogDTOList1 = collect.get(DeviceRebootType.DELETE_TERMINAL);
|
||||
deleteDevIds = pqsTerminalPushLogDTOList1.stream().map(PqsTerminalPushLogDTO::getDevId).distinct().collect(Collectors.toList());
|
||||
}
|
||||
if (collect.containsKey(DeviceRebootType.ADD_TERMINAL)) {
|
||||
List<PqsTerminalPushLogDTO> pqsTerminalPushLogDTOList1 = collect.get(DeviceRebootType.ADD_TERMINAL);
|
||||
addDevIds = pqsTerminalPushLogDTOList1.stream().map(PqsTerminalPushLogDTO::getDevId).distinct().collect(Collectors.toList());
|
||||
}
|
||||
if (collect.containsKey(DeviceRebootType.LEDGER_MODIFY)) {
|
||||
List<PqsTerminalPushLogDTO> pqsTerminalPushLogDTOList1 = collect.get(DeviceRebootType.LEDGER_MODIFY);
|
||||
modifyDevIds = pqsTerminalPushLogDTOList1.stream().map(PqsTerminalPushLogDTO::getDevId).distinct().collect(Collectors.toList());
|
||||
}
|
||||
if (collect.containsKey(DeviceRebootType.DELETE_TERMINAL)) {
|
||||
List<PqsTerminalPushLogDTO> pqsTerminalPushLogDTOList1 = collect.get(DeviceRebootType.DELETE_TERMINAL);
|
||||
List<String> 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<String> 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(), resultDevIds, DeviceRebootType.DELETE_TERMINAL, processId);
|
||||
preCommandDTOList.add(preCommandDTO);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
if (collect.containsKey(DeviceRebootType.ADD_TERMINAL)) {
|
||||
List<PqsTerminalPushLogDTO> pqsTerminalPushLogDTOList1 = collect.get(DeviceRebootType.ADD_TERMINAL);
|
||||
List<String> 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<String> 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(), resultDevIds, DeviceRebootType.ADD_TERMINAL, processId);
|
||||
|
||||
preCommandDTOList.add(preCommandDTO);
|
||||
}
|
||||
|
||||
}
|
||||
if (collect.containsKey(DeviceRebootType.LEDGER_MODIFY)) {
|
||||
List<PqsTerminalPushLogDTO> pqsTerminalPushLogDTOList1 = collect.get(DeviceRebootType.LEDGER_MODIFY);
|
||||
List<String> finalDeleteDevIds1 = deleteDevIds;
|
||||
List<String> 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<String> 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(), resultDevIds, DeviceRebootType.LEDGER_MODIFY, processId);
|
||||
preCommandDTOList.add(preCommandDTO);
|
||||
}
|
||||
|
||||
//调用重启设备接口
|
||||
this.askRestartDevice(guid, pqsTerminalPushLogDTO.getNodeId(), resultDevIds, DeviceRebootType.DELETE_TERMINAL, processId);
|
||||
preCommandDTOList.add(preCommandDTO);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
if (collect.containsKey(DeviceRebootType.ADD_TERMINAL)) {
|
||||
List<PqsTerminalPushLogDTO> pqsTerminalPushLogDTOList1 = collect.get(DeviceRebootType.ADD_TERMINAL);
|
||||
List<String> 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<String> 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(), resultDevIds, DeviceRebootType.ADD_TERMINAL, processId);
|
||||
|
||||
preCommandDTOList.add(preCommandDTO);
|
||||
}
|
||||
|
||||
}
|
||||
if (collect.containsKey(DeviceRebootType.LEDGER_MODIFY)) {
|
||||
List<PqsTerminalPushLogDTO> pqsTerminalPushLogDTOList1 = collect.get(DeviceRebootType.LEDGER_MODIFY);
|
||||
List<String> finalDeleteDevIds1 = deleteDevIds;
|
||||
List<String> 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<String> 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(), resultDevIds, DeviceRebootType.LEDGER_MODIFY, processId);
|
||||
preCommandDTOList.add(preCommandDTO);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
});
|
||||
} catch (Exception e) {
|
||||
//出现异常,直接重启整个前置
|
||||
exFlag=true;
|
||||
for (Node node : nodes) {
|
||||
RestartParam restartParam = new RestartParam();
|
||||
restartParam.setDeviceRebootType("1");
|
||||
restartParam.setNodeId(node.getId());
|
||||
|
||||
askRestartProcess(restartParam);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (!CollectionUtils.isEmpty(list1)) {
|
||||
list1.forEach(temp -> {
|
||||
temp.setIsPush(1);
|
||||
@@ -4016,6 +4051,10 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
||||
} else {
|
||||
throw new BusinessException("暂无变动的装置测点推送");
|
||||
}
|
||||
if(exFlag){
|
||||
throw new BusinessException("存在未知错误,重启前置");
|
||||
|
||||
}
|
||||
if (CollectionUtils.isEmpty(preCommandDTOList)) {
|
||||
throw new BusinessException("暂无变动的装置测点推送");
|
||||
}
|
||||
@@ -4166,7 +4205,21 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
||||
subName = subMap.get(line.getPids().split(StrUtil.COMMA)[SUB_LEVEL.getCode()]).getName();
|
||||
String temLos = "%s进行%s%s操作;详细信息: %s名称: %s";
|
||||
if (line.getLevel().equals(LINE_LEVEL.getCode())) {
|
||||
String devName = this.getById(line.getPids().split(StrUtil.COMMA)[DEVICE_LEVEL.getCode()]).getName();
|
||||
String devId=line.getPids().split(StrUtil.COMMA)[DEVICE_LEVEL.getCode()];
|
||||
Line byId = this.getById(devId);
|
||||
String devName="";
|
||||
//设备已删除
|
||||
if(Objects.nonNull(byId)){
|
||||
devName= byId.getName();
|
||||
}else{
|
||||
List<Line> device = logsList.stream().filter(temp -> Objects.equals(temp.getId(), devId)).collect(Collectors.toList());
|
||||
if(!CollectionUtils.isEmpty(device)){
|
||||
devName =device.get(0).getName();
|
||||
}else {
|
||||
devName = "已删除设备";
|
||||
|
||||
}
|
||||
}
|
||||
tem = String.format(temLos, name, op, levelOperate, levelOperate, subName + "->" + devName + "->" + line.getName() + nodeName);
|
||||
} else {
|
||||
tem = String.format(temLos, name, op, levelOperate, levelOperate, subName + "->" + line.getName() + nodeName);
|
||||
|
||||
Reference in New Issue
Block a user