1.稳态告警查询优化 2.在线监测数据异常排查
This commit is contained in:
@@ -6,9 +6,9 @@ import com.njcn.common.pojo.enums.common.LogEnum;
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.common.utils.HttpResultUtil;
|
||||
import com.njcn.device.pq.pojo.vo.OnlineMonitorVo;
|
||||
import com.njcn.supervision.pojo.param.device.OnlineParam;
|
||||
import com.njcn.supervision.pojo.vo.device.LineLimitDetailVo;
|
||||
import com.njcn.supervision.pojo.vo.device.OnlineVo;
|
||||
import com.njcn.supervision.service.device.ILineWarningService;
|
||||
import com.njcn.web.controller.BaseController;
|
||||
import io.swagger.annotations.Api;
|
||||
@@ -20,6 +20,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import springfox.documentation.annotations.ApiIgnore;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -67,9 +68,9 @@ public class LineWarningController extends BaseController {
|
||||
@PostMapping("/list")
|
||||
@ApiOperation("分页查询在线监测数据")
|
||||
@ApiImplicitParam(name = "param", value = "参数", required = true)
|
||||
public HttpResult<List<OnlineMonitorVo>> lineWarningList(@RequestBody @Validated OnlineParam param) {
|
||||
public HttpResult<Page<OnlineVo>> lineWarningList(@RequestBody @Validated OnlineParam param) {
|
||||
String methodDescribe = getMethodDescribe("lineWarningList");
|
||||
List<OnlineMonitorVo> list = lineWarningService.getLineWarningList(param);
|
||||
Page<OnlineVo> list = lineWarningService.getLineWarningList(param);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
@@ -2,13 +2,11 @@ package com.njcn.supervision.service.device;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.device.pq.pojo.vo.OnlineMonitorVo;
|
||||
import com.njcn.supervision.pojo.param.device.OnlineParam;
|
||||
import com.njcn.supervision.pojo.po.device.LineWarning;
|
||||
import com.njcn.supervision.pojo.vo.device.LineLimitDetailVo;
|
||||
import com.njcn.supervision.pojo.vo.device.OnlineVo;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -36,7 +34,7 @@ public interface ILineWarningService extends IService<LineWarning> {
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
List<OnlineMonitorVo> getLineWarningList(OnlineParam param);
|
||||
Page<OnlineVo> getLineWarningList(OnlineParam param);
|
||||
|
||||
/**
|
||||
* 发起预告警单
|
||||
|
||||
@@ -5,7 +5,10 @@ import cn.hutool.core.date.DatePattern;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||
import com.njcn.common.pojo.enums.common.ServerEnum;
|
||||
import com.njcn.common.utils.HarmonicTimesUtil;
|
||||
@@ -15,12 +18,11 @@ import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
||||
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
||||
import com.njcn.device.biz.pojo.po.Overlimit;
|
||||
import com.njcn.device.pq.api.DeptLineFeignClient;
|
||||
import com.njcn.device.pq.api.LineFeignClient;
|
||||
import com.njcn.device.pq.api.LineIntegrityClient;
|
||||
import com.njcn.device.pq.api.*;
|
||||
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
|
||||
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||
import com.njcn.device.pq.pojo.param.LineBaseQueryParam;
|
||||
import com.njcn.device.pq.pojo.po.DeptLine;
|
||||
import com.njcn.device.pq.pojo.vo.LineDetailVO;
|
||||
import com.njcn.device.pq.pojo.vo.OnlineMonitorVo;
|
||||
import com.njcn.device.pq.pojo.vo.ReportLineInfoVo;
|
||||
import com.njcn.harmonic.api.RStatLimitRateDClient;
|
||||
@@ -41,6 +43,7 @@ import com.njcn.supervision.pojo.param.device.OnlineParam;
|
||||
import com.njcn.supervision.pojo.po.device.LineWarning;
|
||||
import com.njcn.supervision.pojo.po.leaflet.WarningLeaflet;
|
||||
import com.njcn.supervision.pojo.vo.device.LineLimitDetailVo;
|
||||
import com.njcn.supervision.pojo.vo.device.OnlineVo;
|
||||
import com.njcn.supervision.service.device.ILineWarningService;
|
||||
import com.njcn.supervision.service.leaflet.IWarningLeafletService;
|
||||
import com.njcn.system.api.DicDataFeignClient;
|
||||
@@ -48,6 +51,7 @@ import com.njcn.system.enums.DicDataEnum;
|
||||
import com.njcn.system.enums.DicDataTypeEnum;
|
||||
import com.njcn.system.pojo.po.DictData;
|
||||
import com.njcn.user.api.DeptFeignClient;
|
||||
import com.njcn.web.factory.PageFactory;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -97,6 +101,8 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
|
||||
private final DataInHarmVMapper dataInHarmVMapper;
|
||||
private final DataPltMapper dataPltMapper;
|
||||
private final LineIntegrityClient lineIntegrityClient;
|
||||
private final PqDataVerifyCountClient pqDataVerifyCountClient;
|
||||
private final GeneralDeviceInfoClient generalDeviceInfoClient;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@@ -196,96 +202,98 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
|
||||
result.addAll(Arrays.asList(l1, l2, l3, l4, l5, l6, l7, l8, l9, l10));
|
||||
});
|
||||
}
|
||||
//将装置无数据的统计入库 按运维要求,判断装置的最新数据不是当天,则认为装置无数据
|
||||
List<LineDetailVO.noDataLineInfo> noDataLineInfo = lineFeignClient.getNoDataLine().getData();
|
||||
if (CollUtil.isNotEmpty(noDataLineInfo)) {
|
||||
LambdaQueryWrapper<LineWarning> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(LineWarning::getTargetType, "0").eq(LineWarning::getAlarmTime, date);
|
||||
this.baseMapper.delete(lambdaQueryWrapper);
|
||||
noDataLineInfo.forEach(item -> {
|
||||
//完整性为0的数据
|
||||
LineBaseQueryParam param = new LineBaseQueryParam();
|
||||
param.setStartTime(date);
|
||||
param.setEndTime(endDate);
|
||||
List<OnlineMonitorVo> list = lineIntegrityClient.getNoData(param).getData();
|
||||
if (CollUtil.isNotEmpty(list)) {
|
||||
list.forEach(item -> {
|
||||
String deptId = Objects.isNull(deptLineMap.get(item.getLineId())) ? null : deptLineMap.get(item.getLineId()).get(0).getId();
|
||||
LineWarning lineWarning = new LineWarning();
|
||||
lineWarning.setAlarmTime(firstDayOfMonth);
|
||||
lineWarning.setDeptId(deptId);
|
||||
lineWarning.setLineId(item.getLineId());
|
||||
lineWarning.setTargetType("0");
|
||||
lineWarning.setOverLimitDay(item.getLastDay());
|
||||
result.add(lineWarning);
|
||||
});
|
||||
}
|
||||
//异常数据
|
||||
List<OnlineMonitorVo> list2 = pqDataVerifyCountClient.getAnomalousData(param).getData();
|
||||
if (CollUtil.isNotEmpty(list2)) {
|
||||
list2.forEach(item -> {
|
||||
String deptId = Objects.isNull(deptLineMap.get(item.getLineId())) ? null : deptLineMap.get(item.getLineId()).get(0).getId();
|
||||
LineWarning lineWarning = new LineWarning();
|
||||
lineWarning.setAlarmTime(firstDayOfMonth);
|
||||
lineWarning.setDeptId(deptId);
|
||||
lineWarning.setLineId(item.getLineId());
|
||||
lineWarning.setTargetType("2");
|
||||
lineWarning.setOverLimitDay(item.getLastDay());
|
||||
result.add(lineWarning);
|
||||
});
|
||||
}
|
||||
|
||||
// //将装置无数据的统计入库 按运维要求,判断装置的最新数据不是当天,则认为装置无数据
|
||||
// List<LineDetailVO.noDataLineInfo> noDataLineInfo = lineFeignClient.getNoDataLine().getData();
|
||||
// if (CollUtil.isNotEmpty(noDataLineInfo)) {
|
||||
// LambdaQueryWrapper<LineWarning> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
// lambdaQueryWrapper.eq(LineWarning::getTargetType, "0").eq(LineWarning::getAlarmTime, date);
|
||||
// this.baseMapper.delete(lambdaQueryWrapper);
|
||||
// noDataLineInfo.forEach(item -> {
|
||||
// String deptId = Objects.isNull(deptLineMap.get(item.getLineId())) ? null : deptLineMap.get(item.getLineId()).get(0).getId();
|
||||
// LineWarning lineWarning = new LineWarning();
|
||||
// lineWarning.setAlarmTime(firstDayOfMonth);
|
||||
// lineWarning.setDeptId(deptId);
|
||||
// lineWarning.setLineId(item.getLineId());
|
||||
// lineWarning.setTargetType("0");
|
||||
// result.add(lineWarning);
|
||||
// });
|
||||
// }
|
||||
this.saveOrUpdateBatchByMultiId(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OnlineMonitorVo> getLineWarningList(OnlineParam param) {
|
||||
List<OnlineMonitorVo> result = new ArrayList<>();
|
||||
public Page<OnlineVo> getLineWarningList(OnlineParam param) {
|
||||
DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
|
||||
deptGetLineParam.setDeptId(param.getDeptId());
|
||||
deptGetLineParam.setServerName(ServerEnum.HARMONIC.getName());
|
||||
deptGetLineParam.setLineRunFlag(0);
|
||||
if (ObjectUtil.isNotNull(param.getLineType()) && !Objects.equals(param.getLineType(), "")) {
|
||||
deptGetLineParam.setIsUpToGrid(Integer.valueOf(param.getLineType()));
|
||||
}
|
||||
List<DeptGetChildrenMoreDTO> list = commTerminalGeneralClient.deptGetAllLine(deptGetLineParam).getData();
|
||||
List<String> lineList = list.stream()
|
||||
.flatMap(dto -> dto.getLineBaseList().stream().map(LineDevGetDTO::getPointId))
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
//数据完整性为0的数据
|
||||
if (param.getDataType() == 0) {
|
||||
LineBaseQueryParam par = new LineBaseQueryParam();
|
||||
par.setLineIds(lineList);
|
||||
par.setStartTime(param.getSearchBeginTime());
|
||||
par.setEndTime(param.getSearchEndTime());
|
||||
result = lineIntegrityClient.getNoData(par).getData();
|
||||
QueryWrapper<LineWarning> queryWrapper = new QueryWrapper<>();
|
||||
if (Objects.nonNull(param.getSearchBeginTime()) && Objects.nonNull(param.getSearchEndTime())) {
|
||||
queryWrapper.between("A.alarm_time", param.getSearchBeginTime(), param.getSearchEndTime());
|
||||
}
|
||||
//监测点id
|
||||
if (CollUtil.isNotEmpty(lineList)) {
|
||||
queryWrapper.in("A.line_id", lineList);
|
||||
}
|
||||
//监测点类型
|
||||
if (StringUtils.isNotBlank(param.getLineType())) {
|
||||
queryWrapper.eq("B.Power_Flag", Integer.parseInt(param.getLineType()));
|
||||
}
|
||||
//查询无数据的监测点
|
||||
if (Objects.equals(param.getDataType(), 0)) {
|
||||
queryWrapper.eq("A.target_type", "0");
|
||||
}
|
||||
//异常数据
|
||||
else if (param.getDataType() == 1) {
|
||||
|
||||
else if (Objects.equals(param.getDataType(), 2)) {
|
||||
queryWrapper.eq("A.target_type", "2");
|
||||
}
|
||||
//告警数据
|
||||
//查询指标超标的监测点
|
||||
else {
|
||||
|
||||
queryWrapper.ge("A.over_limit_day", param.getAlarmThreshold());
|
||||
if (CollUtil.isNotEmpty(param.getTargetList())) {
|
||||
queryWrapper.in("A.target_type", param.getTargetList());
|
||||
}
|
||||
}
|
||||
return result;
|
||||
queryWrapper.orderBy(true, true, "D.Name", "p4.Name", "p3.Name");
|
||||
return this.baseMapper.page(new Page<>(PageFactory.getPageNum(param), PageFactory.getPageSize(param)), queryWrapper);
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public Page<OnlineVo> getLineWarningList(OnlineParam param) {
|
||||
// DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
|
||||
// deptGetLineParam.setDeptId(param.getDeptId());
|
||||
// deptGetLineParam.setServerName(ServerEnum.HARMONIC.getName());
|
||||
// List<DeptGetChildrenMoreDTO> list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData();
|
||||
// List<String> lineList = list.stream()
|
||||
// .flatMap(dto -> dto.getLineBaseList().stream().map(LineDevGetDTO::getPointId))
|
||||
// .distinct()
|
||||
// .collect(Collectors.toList());
|
||||
// QueryWrapper<LineWarning> queryWrapper = new QueryWrapper<>();
|
||||
// if (Objects.nonNull(param.getSearchBeginTime()) && Objects.nonNull(param.getSearchEndTime())) {
|
||||
// queryWrapper.between("A.alarm_time", param.getSearchBeginTime(), param.getSearchEndTime());
|
||||
// }
|
||||
// //监测点id
|
||||
// if (CollUtil.isNotEmpty(lineList)) {
|
||||
// queryWrapper.in("A.line_id", lineList);
|
||||
// }
|
||||
// //监测点类型
|
||||
// if (StringUtils.isNotBlank(param.getLineType())) {
|
||||
// queryWrapper.eq("B.Power_Flag", Integer.parseInt(param.getLineType()));
|
||||
// }
|
||||
// //查询无数据的监测点
|
||||
// if (Objects.equals(param.getDataType(), 0)) {
|
||||
// queryWrapper.eq("A.target_type", "0");
|
||||
// }
|
||||
// //查询指标超标的监测点
|
||||
// else {
|
||||
// queryWrapper.ge("A.over_limit_day", param.getAlarmThreshold());
|
||||
// if (CollUtil.isNotEmpty(param.getTargetList())) {
|
||||
// queryWrapper.in("A.target_type", param.getTargetList());
|
||||
// }
|
||||
// }
|
||||
// queryWrapper.orderBy(true, true, "D.Name", "p4.Name", "p3.Name");
|
||||
// return this.baseMapper.page(new Page<>(PageFactory.getPageNum(param), PageFactory.getPageSize(param)), queryWrapper);
|
||||
// }
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void startReport(OnlineParam.ReportParam param) {
|
||||
|
||||
Reference in New Issue
Block a user