@@ -11,10 +11,14 @@ import cn.hutool.core.text.StrBuilder;
import cn.hutool.core.util.IdUtil ;
import cn.hutool.core.util.ObjectUtil ;
import cn.hutool.core.util.StrUtil ;
import com.alibaba.fastjson.JSONObject ;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper ;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper ;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper ;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl ;
import com.fasterxml.jackson.core.JsonProcessingException ;
import com.fasterxml.jackson.databind.ObjectMapper ;
import com.google.gson.Gson ;
import com.njcn.common.pojo.dto.SimpleDTO ;
import com.njcn.common.pojo.enums.common.DataStateEnum ;
import com.njcn.common.pojo.enums.response.CommonResponseEnum ;
@@ -38,10 +42,7 @@ import com.njcn.device.pq.pojo.bo.excel.NodeExcel;
import com.njcn.device.pq.pojo.bo.excel.OracleTerminalExcel ;
import com.njcn.device.pq.pojo.bo.excel.OverLimitExcel ;
import com.njcn.device.pq.pojo.bo.excel.TerminalBaseExcel ;
import com.njcn.device.pq.pojo.dto.DeviceInfo ;
import com.njcn.device.pq.pojo.dto.PollutionSubstationDTO ;
import com.njcn.device.pq.pojo.dto.PqsTerminalPushLogDTO ;
import com.njcn.device.pq.pojo.dto.PreCommandDTO ;
import com.njcn.device.pq.pojo.dto.* ;
import com.njcn.device.pq.pojo.param.* ;
import com.njcn.device.pq.pojo.param.oracle.* ;
import com.njcn.device.pq.pojo.po.* ;
@@ -54,6 +55,7 @@ import com.njcn.message.constant.DeviceRebootType;
import com.njcn.message.constant.RedisKeyPrefix ;
import com.njcn.message.message.DeviceRebootMessage ;
import com.njcn.message.message.ProcessRebootMessage ;
import com.njcn.message.messagedto.TopicReplyDTO ;
import com.njcn.oss.constant.OssPath ;
import com.njcn.oss.utils.FileStorageUtil ;
import com.njcn.poi.excel.ExcelUtil ;
@@ -1223,10 +1225,10 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
//decoderM3d(deviceDetail);
BeanUtils . copyProperties ( deviceDetail , deviceVO ) ;
deviceVO . setDevIndex ( obj . getId ( ) ) ;
DeviceProcess deviceProcess = deviceProcessService. lambdaQuery( ) . eq ( DeviceProcess : : getId , obj . getId ( ) ) . one ( ) ;
if ( Objects. nonNull( deviceProcess) ) {
deviceVO. setProcessNum( deviceProcess. getProcessNo( ) ) ;
}
// DeviceProcess deviceProcess = deviceProcessService. lambdaQuery().eq(DeviceProcess::getId, obj.getId()).one() ;
// if( Objects. nonNull( deviceProcess)) {
// deviceVO. setProcessNum( deviceProcess. getProcessNo()) ;
// }
lineLambdaQueryWrapper . clear ( ) ;
lineLambdaQueryWrapper . eq ( Line : : getPid , obj . getId ( ) )
@@ -1323,10 +1325,10 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
//decoderM3d(deviceDetail);
BeanUtils . copyProperties ( deviceDetail , deviceVO ) ;
deviceVO . setDevIndex ( device . getId ( ) ) ;
DeviceProcess deviceProcess = deviceProcessService. lambdaQuery( ) . eq ( DeviceProcess : : getId , device . getId ( ) ) . one ( ) ;
if ( Objects. nonNull( deviceProcess) ) {
deviceVO. setProcessNum( deviceProcess. getProcessNo( ) ) ;
}
// DeviceProcess deviceProcess = deviceProcessService. lambdaQuery().eq(DeviceProcess::getId, device.getId()).one() ;
// if( Objects. nonNull( deviceProcess)) {
// deviceVO. setProcessNum( deviceProcess. getProcessNo()) ;
// }
deviceVO . setSubVoltageVOList ( subvList ) ;
@@ -1379,10 +1381,10 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
//decoderM3d(deviceDetail);
BeanUtils . copyProperties ( deviceDetail , deviceVO ) ;
deviceVO . setDevIndex ( device . getId ( ) ) ;
DeviceProcess deviceProcess = deviceProcessService. lambdaQuery( ) . eq ( DeviceProcess : : getId , device . getId ( ) ) . one ( ) ;
if ( Objects. nonNull( deviceProcess) ) {
deviceVO. setProcessNum( deviceProcess. getProcessNo( ) ) ;
}
// DeviceProcess deviceProcess = deviceProcessService. lambdaQuery().eq(DeviceProcess::getId, device.getId()).one() ;
// if( Objects. nonNull( deviceProcess)) {
// deviceVO. setProcessNum( deviceProcess. getProcessNo()) ;
// }
deviceVO . setSubVoltageVOList ( subVoltageVOS ) ;
@@ -1506,7 +1508,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
private void deleteDeviceAndChildren ( String deviceId , List < PqsTerminalLogs > logsList ) {
this . removeById ( deviceId ) ;
deviceMapper . deleteById ( deviceId ) ;
deviceProcessService. removeById( deviceId) ;
// deviceProcessService. removeById( deviceId) ;
@@ -3740,6 +3742,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
Map < String , Device > deviceMap = devices . stream ( ) . collect ( Collectors . toMap ( Device : : getId , Function . identity ( ) ) ) ;
List < Node > nodes = nodeService . nodeAllList ( ) ;
Map < String , Node > nodeMap = nodes . stream ( ) . collect ( Collectors . toMap ( Node : : getId , Function . identity ( ) ) ) ;
Map < String , Node > nodeNameMap = nodes . stream ( ) . collect ( Collectors . toMap ( Node : : getName , Function . identity ( ) ) ) ;
List < PqsTerminalPushLogDTO > pqsTerminalPushLogDTOList = new ArrayList < > ( ) ;
if ( ! CollectionUtils . isEmpty ( list ) ) {
@@ -3747,7 +3750,12 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
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 ( ) ;
@@ -3796,24 +3804,41 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
pqsTerminalPushLogDTO . setId ( temp . getId ( ) ) ;
String deviceId = temp . getObjIndex ( ) ;
pqsTerminalPushLogDTO . setDevId ( deviceId ) ;
//设备删除找不到设备名称
pqsTerminalPushLogDTO . setDevName ( " 设备id: " + d eviceId ) ;
//区分删除操作,新增和其他操作
String operate = D eviceRebootType . 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 {
pqsTerminalPushLogDTO . setDevName ( lineMap . get ( deviceId ) . getName ( ) ) ;
String nodeId = deviceMap . get ( deviceId ) . getNodeId ( ) ;
pqsTerminalPushLogDTO . setNodeId ( nodeId ) ;
pqsTerminalPushLogDTO . setNodeName ( nodeMap . get ( nodeId ) . getName ( ) ) ;
}
pqsTerminalPushLogDTO . setProcessUpdateFlag ( false ) ;
if ( deviceProcesseMap . containsKey ( deviceId ) ) {
pqsTerminalPushLogDTO . setProcessNum ( deviceProcesseMap . get ( deviceId ) ) ;
} else {
throw new BusinessException ( " 存在终端未设置进程号,请在前置管理页面设置进程号在进行此操作 " ) ;
}
//区分删除操作,新增和其他操作
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 ;
}
pqsTerminalPushLogDTO . setOperateType ( operate ) ;
pqsTerminalPushLogDTOList . add ( pqsTerminalPushLogDTO ) ;
}
@@ -3835,6 +3860,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
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 ) ;
@@ -3847,6 +3873,8 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
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 ) ;
@@ -3858,13 +3886,15 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
if ( collect . containsKey ( DeviceRebootType . DELETE_TERMINAL ) ) {
List < PqsTerminalPushLogDTO > pqsTerminalPushLogDTOList1 = collect . get ( DeviceRebootType . DELETE_TERMINAL ) ;
deleteDevIds = pqsTerminalPushLogDTOList1 . stream ( ) . map ( PqsTerminalPushLogDTO : : getDevId ) . distinct ( ) . collect ( Collectors . toList ( ) ) ;
String devNameString = deleteDevIds . stream ( ) . map ( temp - > { return lineMap . get ( temp ) . getName ( ) ; } ) . collect ( Collectors . joining ( " , " ) ) ;
String devNameString = pqsTerminalPushLogDTOList1 . stream ( ) . map ( PqsTerminalPushLogDTO : : getDevName ) . distinct ( ) . collect ( Collectors . joining ( " , " ) ) ;
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 . DELETE_TERMINAL , processId ) ;
preCommandDTOList . add ( preCommandDTO ) ;
@@ -3879,6 +3909,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
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 ) ;
preCommandDTOList . add ( preCommandDTO ) ;
@@ -3892,8 +3923,11 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
String command = " 新增前置机: " + pqsTerminalPushLogDTO . getNodeName ( ) + " 下进程: " + processId + " 下终端 " + devNameString ;
preCommandDTO . setGuid ( guid ) ;
preCommandDTO . setCommand ( command ) ;
preCommandDTO . setResult ( " 2 " ) ;
//调用重启进程接口
this . askRestartDevice ( guid , pqsTerminalPushLogDTO . getNodeId ( ) , deleteDevIds , DeviceRebootType . ADD_TERMINAL , processId ) ;
preCommandDTOList . add ( preCommandDTO ) ;
}
@@ -3915,9 +3949,22 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
}
@Override
public String getPushResult ( String guid ) {
public PushResultDTO getPushResult ( String guid ) {
PushResultDTO pushResultDTO = new PushResultDTO ( ) ;
String stringByKey = redisUtil . getStringByKey ( RedisKeyPrefix . TOPIC_REPLY . concat ( guid ) ) ;
return stringByKey ;
if ( Objects . isNull ( stringByKey ) ) {
pushResultDTO . setCode ( " 2 " ) ;
pushResultDTO . setResult ( " " ) ;
} else {
TopicReplyDTO topicReplyDTO = JSONObject . parseObject ( stringByKey , TopicReplyDTO . class ) ;
pushResultDTO . setCode ( " 1 " ) ;
pushResultDTO . setResult ( topicReplyDTO . getResult ( ) ) ;
}
return pushResultDTO ;
}
//反解析日志