前置机切操作日志推送
This commit is contained in:
@@ -3680,125 +3680,165 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
||||
List<PqsTerminalPushLogDTO> pqsTerminalPushLogDTOList = new ArrayList<>();
|
||||
List<String> 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<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 = 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());
|
||||
//如果不存在该设备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<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)){
|
||||
//如果是修改进程操作记录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(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<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);
|
||||
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)->{
|
||||
@@ -3921,11 +3961,21 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> 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("暂无变动的装置测点推送");
|
||||
|
||||
Reference in New Issue
Block a user