终端运维日志功能
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package com.njcn.device.pq.pojo.param;
|
||||
|
||||
import com.njcn.web.pojo.param.BaseParam;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
@@ -11,12 +12,12 @@ import lombok.Data;
|
||||
*/
|
||||
@Data
|
||||
@ApiModel
|
||||
public class LogsListParam extends DeviceLogParam{
|
||||
public class LogsListParam extends BaseParam {
|
||||
|
||||
/**
|
||||
* 描述模糊匹配字段
|
||||
* 日志类型
|
||||
*/
|
||||
@ApiModelProperty("描述模糊匹配字段")
|
||||
private String searchValue;
|
||||
@ApiModelProperty("日志类型")
|
||||
private String type;
|
||||
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ import lombok.Setter;
|
||||
@Getter
|
||||
@Setter
|
||||
@TableName("pqs_terminal_logs")
|
||||
public class PqsTerminalLogs extends BaseEntity {
|
||||
public class PqsTerminalLogs extends BaseEntity implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
@@ -1,34 +1,34 @@
|
||||
package com.njcn.device.pq.pojo.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import lombok.Data;
|
||||
import org.influxdb.annotation.Column;
|
||||
import org.influxdb.annotation.Measurement;
|
||||
|
||||
import java.time.Instant;
|
||||
|
||||
/**
|
||||
* @version 1.0.0
|
||||
* @author: chenchao
|
||||
* @date: 2022/06/22 19:03
|
||||
*/
|
||||
@Data
|
||||
@Measurement(name = "pqs_terminal_logs")
|
||||
public class TerminalLogs {
|
||||
|
||||
@Column(name = "time")
|
||||
private Instant timeId;
|
||||
|
||||
@Column(name = "line_id")
|
||||
private String lineId;
|
||||
|
||||
@Column(name = "terminal_type")
|
||||
private String terminalType;
|
||||
|
||||
@Column(name = "update_by")
|
||||
private String updateBy;
|
||||
|
||||
@Column(name = "terminal_describe")
|
||||
private String terminalDescribe;
|
||||
|
||||
}
|
||||
//package com.njcn.device.pq.pojo.po;
|
||||
//
|
||||
//import com.baomidou.mybatisplus.annotation.TableId;
|
||||
//import lombok.Data;
|
||||
//import org.influxdb.annotation.Column;
|
||||
//import org.influxdb.annotation.Measurement;
|
||||
//
|
||||
//import java.time.Instant;
|
||||
//
|
||||
///**
|
||||
// * @version 1.0.0
|
||||
// * @author: chenchao
|
||||
// * @date: 2022/06/22 19:03
|
||||
// */
|
||||
//@Data
|
||||
//@Measurement(name = "pqs_terminal_logs")
|
||||
//public class TerminalLogs {
|
||||
//
|
||||
// @Column(name = "time")
|
||||
// private Instant timeId;
|
||||
//
|
||||
// @Column(name = "line_id")
|
||||
// private String lineId;
|
||||
//
|
||||
// @Column(name = "terminal_type")
|
||||
// private String terminalType;
|
||||
//
|
||||
// @Column(name = "update_by")
|
||||
// private String updateBy;
|
||||
//
|
||||
// @Column(name = "terminal_describe")
|
||||
// private String terminalDescribe;
|
||||
//
|
||||
//}
|
||||
|
||||
@@ -17,11 +17,44 @@ public class LogsListVO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 日志类型
|
||||
* 终端运维日志Id
|
||||
*/
|
||||
@ApiModelProperty("type")
|
||||
private String type;
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 对象Id
|
||||
*/
|
||||
private String objIndex;
|
||||
|
||||
/**
|
||||
* 对象类型 6.监测点 4.装置
|
||||
*/
|
||||
private Integer terminalType;
|
||||
|
||||
/**
|
||||
* 新增,修改,删除
|
||||
*/
|
||||
private String operateType;
|
||||
|
||||
/**
|
||||
* 运维日志类型
|
||||
*/
|
||||
@ApiModelProperty("logsType")
|
||||
private String logsType;
|
||||
|
||||
/**
|
||||
* 是否推送
|
||||
*/
|
||||
private Integer isPush;
|
||||
|
||||
/**
|
||||
* 内容描述
|
||||
*/
|
||||
private String terminalDescribe;
|
||||
|
||||
|
||||
/**
|
||||
* 更改人员
|
||||
@@ -41,4 +74,5 @@ public class LogsListVO implements Serializable {
|
||||
@ApiModelProperty("描述")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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') >= 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') <= 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>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -366,8 +366,8 @@ public enum DicDataEnum {
|
||||
/**
|
||||
* 日志字典类型
|
||||
*/
|
||||
LINE_PARAMETER("监测点参数修改", "Line_Parameter"),
|
||||
DEV_PARAMETER("设备状态修改", "Dev_Parameter"),
|
||||
LINE_PARAMETER("监测点日志", "Line_Parameter"),
|
||||
DEV_PARAMETER("设备日志", "Dev_Parameter"),
|
||||
WEB_ADD("web新增用户", "Web_Add"),
|
||||
DATA_PLAN("流量套餐修改", "Data_Plan"),
|
||||
|
||||
|
||||
Reference in New Issue
Block a user