终端运维日志功能

This commit is contained in:
2025-04-15 09:30:30 +08:00
parent e968e44440
commit 829488a680
11 changed files with 162 additions and 73 deletions

View File

@@ -1,6 +1,7 @@
package com.njcn.device.pq.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
@@ -71,9 +72,9 @@ public class PqsTerminalLogsController extends BaseController {
@PostMapping("/getList")
@ApiOperation("运维日志页面展示")
@ApiImplicitParam(name = "logsListParam", value = "实体", required = true)
public HttpResult<List<LogsListVO>> getList(@RequestBody LogsListParam logsListParam) {
public HttpResult<Page<PqsTerminalLogs>> getList(@RequestBody LogsListParam logsListParam) {
String methodDescribe = getMethodDescribe("getList");
List<LogsListVO> result = iPqsTerminalLogsService.getList(logsListParam);
Page<PqsTerminalLogs> result = iPqsTerminalLogsService.getList(logsListParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
}

View File

@@ -30,20 +30,14 @@
</select>-->
<select id="getList" resultType="com.njcn.device.pq.pojo.vo.LogsListVO">
SELECT
sdd.Name "type",
ptl.Create_By "updateBy",
ptl.Create_Time "updateTime",
ptl.Terminal_Describe "remark"
logs.logs_type type,
ptl.Create_By updateBy,
ptl.Create_Time updateTime,
ptl.Terminal_Describe remark
FROM
pqs_terminal_logs ptl
LEFT JOIN sys_dict_data sdd ON sdd.Id = ptl.Terminal_Type
pqs_terminal_logs logs
<where>
<if test="logsListParam.searchBeginTime != null and logsListParam.searchBeginTime != ''">
and date_format(ptl.Create_Time,'%y%m%d') &gt;= date_format(#{logsListParam.searchBeginTime},'%y%m%d')
</if>
<if test="logsListParam.searchEndTime != null and logsListParam.searchEndTime != ''">
and date_format(ptl.Create_Time,'%y%m%d') &lt;= date_format(#{logsListParam.searchEndTime},'%y%m%d')
</if>
<if test="logsListParam.searchValue !=null and logsListParam.searchValue !=''">
and ptl.Terminal_Describe like CONCAT('%', #{logsListParam.searchValue},'%')
</if>

View File

@@ -1,5 +1,6 @@
package com.njcn.device.pq.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.device.pq.pojo.param.LogsListParam;
import com.njcn.device.pq.pojo.po.PqsTerminalLogs;
@@ -16,10 +17,10 @@ import java.util.List;
* @author hongawen
* @since 2023-04-13
*/
@Service
public interface IPqsTerminalLogsService extends IService<PqsTerminalLogs> {
boolean saveLogs(PqsTerminalLogs pqsTerminalLogs);
List<LogsListVO> getList(LogsListParam logsListParam);
Page<PqsTerminalLogs> getList(LogsListParam logsListParam);
}

View File

@@ -16,7 +16,6 @@ import com.njcn.device.pq.pojo.constant.DeviceValidMessage;
import com.njcn.device.pq.pojo.param.DeviceLogParam;
import com.njcn.device.pq.pojo.param.EventLogParam;
import com.njcn.device.pq.pojo.po.EventPushLogs;
import com.njcn.device.pq.pojo.po.TerminalLogs;
import com.njcn.device.pq.pojo.vo.AreaLineInfoVO;
import com.njcn.device.pq.pojo.vo.DeviceLogVO;
import com.njcn.device.pq.pojo.vo.EventLogVO;

View File

@@ -1,5 +1,9 @@
package com.njcn.device.pq.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.device.pq.mapper.PqsTerminalLogsMapper;
import com.njcn.device.pq.pojo.param.LogsListParam;
@@ -7,10 +11,19 @@ import com.njcn.device.pq.pojo.po.PqsTerminalLogs;
import com.njcn.device.pq.pojo.vo.LogsListVO;
import com.njcn.device.pq.service.IPqsTerminalLogsService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.user.api.UserFeignClient;
import com.njcn.user.pojo.vo.UserVO;
import com.njcn.web.factory.PageFactory;
import lombok.AllArgsConstructor;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* <p>
@@ -21,11 +34,13 @@ import java.util.List;
* @since 2023-04-13
*/
@Service
@AllArgsConstructor
@RequiredArgsConstructor
public class PqsTerminalLogsServiceImpl extends ServiceImpl<PqsTerminalLogsMapper, PqsTerminalLogs> implements IPqsTerminalLogsService {
private final PqsTerminalLogsMapper pqsTerminalLogsMapper;
private final UserFeignClient userFeignClient;
@Override
public boolean saveLogs(PqsTerminalLogs pqsTerminalLogs) {
return this.save(pqsTerminalLogs);
@@ -38,8 +53,26 @@ public class PqsTerminalLogsServiceImpl extends ServiceImpl<PqsTerminalLogsMappe
* @date 2023/4/13
*/
@Override
public List<LogsListVO> getList(LogsListParam logsListParam) {
return pqsTerminalLogsMapper.getList(new Page<LogsListVO>(logsListParam.getPageNum(), logsListParam.getPageSize()),logsListParam);
public Page<PqsTerminalLogs> getList(LogsListParam logsListParam) {
Page<PqsTerminalLogs> page;
LambdaQueryWrapper<PqsTerminalLogs> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(StrUtil.isNotBlank(logsListParam.getType()),PqsTerminalLogs::getLogsType,logsListParam.getType())
.between(PqsTerminalLogs::getCreateTime, DateUtil.beginOfDay(DateUtil.parse(logsListParam.getSearchBeginTime())),DateUtil.endOfDay(DateUtil.parse(logsListParam.getSearchEndTime())))
.orderByDesc(PqsTerminalLogs::getCreateTime);
page = pqsTerminalLogsMapper.selectPage(new Page<>(PageFactory.getPageNum(logsListParam),PageFactory.getPageSize(logsListParam)),lambdaQueryWrapper);
if(CollUtil.isNotEmpty(page.getRecords())){
List<String> userIds = page.getRecords().stream().map(PqsTerminalLogs::getCreateBy).distinct().collect(Collectors.toList());
List<UserVO> userVOList = userFeignClient.getUserVOByIdList(userIds).getData();
Map<String,UserVO> userMap = userVOList.stream().collect(Collectors.toMap(UserVO::getId, Function.identity()));
page.getRecords().forEach(it->{
UserVO userVO = userMap.getOrDefault(it.getCreateBy(),null);
if(Objects.nonNull(userVO)){
it.setCreateBy(userVO.getName());
}else {
it.setCreateBy("/");
}
});
}
return page;
}
}

View File

@@ -529,7 +529,10 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
throw new BusinessException(CommonResponseEnum.FAIL);
}
terminalLogsCat(logsList,0);
if(CollUtil.isNotEmpty(logsList)){
DictData dataDic = dicDataFeignClient.getDicDataByCodeAndType(DicDataEnum.LINE_PARAMETER.getCode(),DicDataTypeEnum.DEV_OPS.getCode()).getData();
terminalLogsCat(logsList,0,dataDic.getId());
}
}
return true;
}
@@ -688,7 +691,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
List<PqsTerminalLogs> pqsTerminalLogsList = new ArrayList<>();
Map<String,DictData> dictDataMap = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_TYPE.getCode()).getData().stream().collect(Collectors.toMap(DictData::getId, Function.identity()));
DictData dicDataByCode = dicDataFeignClient.getDicDataByCode(DicDataEnum.LINE_PARAMETER.getCode()).getData();
DictData dicDataByCode = dicDataFeignClient.getDicDataByCode(DicDataEnum.DEV_PARAMETER.getCode()).getData();
String userName= RequestUtil.getUserNickname();
for (DeviceParam updateDeviceParam : devList) {
@@ -1520,7 +1523,9 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
deptLineMapper.delete(wrapper);
}
private void deleteMonitoringPoint(Line point) {
private void deleteMonitoringPoint(Line point,List<Line> logsList) {
logsList.add(point);
this.removeById(point.getId());
lineDetailMapper.deleteById(point.getId());
overlimitMapper.deleteById(point.getId());
deptLineMapper.deleteById(point.getId());
@@ -1570,14 +1575,15 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
deleteBusbarAndChildren(obj.getId(),logsList);
break;
case LINE_LEVEL:
deleteMonitoringPoint(obj);
deleteMonitoringPoint(obj,logsList);
break;
default:
throw new BusinessException(CommonResponseEnum.FAIL);
}
if(CollUtil.isNotEmpty(logsList)){
terminalLogsCat(logsList,2);
DictData dataDic = dicDataFeignClient.getDicDataByCodeAndType(DicDataEnum.DEV_PARAMETER.getCode(),DicDataTypeEnum.DEV_OPS.getCode()).getData();
terminalLogsCat(logsList,2,dataDic.getId());
}
return true;
}
@@ -3656,7 +3662,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
/**
* 终端日志记录
*/
private void terminalLogsCat(List<Line> logsList,Integer operateType){
private void terminalLogsCat(List<Line> logsList,Integer operateType,String logsType){
String op,operate;
switch (operateType){
case 0:
@@ -3678,11 +3684,31 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
}
String name = RequestUtil.getUserNickname();
if(CollUtil.isNotEmpty(logsList)){
List<String> lineSubIds = logsList.stream().filter(it->it.getLevel().equals(LINE_LEVEL.getCode())).map(it->it.getPids().split(StrUtil.COMMA)[SUB_LEVEL.getCode()]).distinct().collect(Collectors.toList());
List<String> devSubIds = logsList.stream().filter(it->it.getLevel().equals(DEVICE_LEVEL.getCode())).map(it->it.getPids().split(StrUtil.COMMA)[SUB_LEVEL.getCode()]).distinct().collect(Collectors.toList());
lineSubIds.addAll(devSubIds);
List<String> ids = lineSubIds.stream().distinct().collect(Collectors.toList());
List<Line> subList = this.listByIds(ids);
Map<String,Line> subMap = subList.stream().collect(Collectors.toMap(Line::getId,Function.identity()));
for(Line line : logsList){
PqsTerminalLogs pqsTerminalLogs = new PqsTerminalLogs();
pqsTerminalLogs.setLogsType(line.getId());
pqsTerminalLogs.setLogsType(logsType);
pqsTerminalLogs.setTerminalType(line.getLevel());
pqsTerminalLogs.setTerminalDescribe(name+"进行"+op+(Objects.equals(line.getLevel(), LineBaseEnum.LINE_LEVEL.getCode()) ? LineBaseEnum.LINE_LEVEL.getMessage():LineBaseEnum.DEVICE_LEVEL.getMessage())+"操作;监测点名称:"+line.getName());
String subName;
String levelOperate;
if(line.getLevel().equals(LINE_LEVEL.getCode())){
levelOperate = LINE_LEVEL.getMessage();
}else{
levelOperate = DEVICE_LEVEL.getMessage();
}
subName = subMap.get(line.getPids().split(StrUtil.COMMA)[SUB_LEVEL.getCode()]).getName();
String temLos = "%s进行%s%s操作; %s名称: %s";
String tem = String.format(temLos,name,op,levelOperate,levelOperate,subName+"_"+line.getName());
pqsTerminalLogs.setTerminalDescribe(tem);
pqsTerminalLogs.setState(DataStateEnum.ENABLE.getCode());
pqsTerminalLogs.setIsPush(DataStateEnum.ENABLE.getCode());
pqsTerminalLogs.setOperateType(operate);