1.修改全景稳态告警数据不一致问题 2.初步修改在线监测功能

This commit is contained in:
xy
2025-12-10 16:25:38 +08:00
parent c03a516931
commit 2117e16b61
26 changed files with 551 additions and 55 deletions

View File

@@ -108,8 +108,17 @@ public class CommTerminalController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@PostMapping("deptGetAllLine")
@ApiOperation("根据单位获取监测点信息(all line)")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiImplicitParam(name = "deptGetLineParam", value = "请求体", required = true)
public HttpResult<List<DeptGetChildrenMoreDTO>> deptGetAllLine(@RequestBody @Validated DeptGetLineParam deptGetLineParam) {
TimeInterval timer = new TimeInterval();
String methodDescribe = getMethodDescribe("deptGetLine");
List<DeptGetChildrenMoreDTO> result = commTerminalService.deptGetAllLine(deptGetLineParam);
log.info("运行时长" + timer.intervalSecond());
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
/**
* 根据单位获取所有变电站

View File

@@ -16,6 +16,7 @@ import com.njcn.device.pq.pojo.param.LineDataQualityParam;
import com.njcn.device.pq.pojo.param.LineIntegrityDataParam;
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
import com.njcn.device.pq.pojo.vo.LineIntegrityDataVO;
import com.njcn.device.pq.pojo.vo.OnlineMonitorVo;
import com.njcn.device.pq.pojo.vo.common.DeviceOnlineRate;
import com.njcn.device.pq.service.IRStatIntegrityDService;
import com.njcn.device.pq.service.LineIntegrityDataService;
@@ -159,4 +160,14 @@ public class LineIntegrityDataController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rate, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/noData")
@ApiOperation("监测点数据完整性为0的数据(冀北)")
@ApiImplicitParam(name = "param", value = "参数实体", required = true)
public HttpResult<List<OnlineMonitorVo>> getNoData(@RequestBody LineBaseQueryParam param) {
String methodDescribe = getMethodDescribe("getNoData");
List<OnlineMonitorVo> rate = irStatIntegrityDService.getNoData(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rate, methodDescribe);
}
}

View File

@@ -40,11 +40,10 @@ public interface CommTerminalService {
*/
List<DeptGetChildrenMoreDTO> deptGetLine(DeptGetLineParam deptGetLineParam);
List<DeptGetChildrenMoreDTO> deptGetAllLine(DeptGetLineParam deptGetLineParam);
List<LineDevGetDTO> deptGetLineByIdList(List<String> monitorIds);
/**
* 根据单位获取所有变电站
* @author cdf

View File

@@ -9,6 +9,7 @@ import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.device.pq.pojo.param.LineBaseQueryParam;
import com.njcn.device.pq.pojo.param.LineDataQualityParam;
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
import com.njcn.device.pq.pojo.vo.OnlineMonitorVo;
import com.njcn.device.pq.pojo.vo.common.DeviceOnlineRate;
import java.util.List;
@@ -37,4 +38,6 @@ public interface IRStatIntegrityDService extends IMppService<RStatIntegrityD> {
Boolean saveOrUpdateData(List<MonitorIntegrityDTO> monitorIntegrityDTOList);
DeviceOnlineRate getData(DeviceInfoParam.BusinessParam param);
List<OnlineMonitorVo> getNoData(LineBaseQueryParam param);
}

View File

@@ -121,6 +121,45 @@ public class CommTerminalServiceImpl implements CommTerminalService {
return result;
}
@Override
public List<DeptGetChildrenMoreDTO> deptGetAllLine(DeptGetLineParam deptGetLineParam) {
List<DeptGetChildrenMoreDTO> result = new ArrayList<>();
List<DeptGetBase> temDept = getDeptChildrenByParent(deptGetLineParam);
Map<String, String> deptMap = temDept.stream().collect(Collectors.toMap(DeptGetBase::getUnitId, DeptGetBase::getUnitName));
Map<String, List<LineDevGetDTO>> map = deptLineService.lineDevAllGet(filterDataTypeNew(deptGetLineParam.getServerName()),
1,deptGetLineParam.getLineRunFlag(),deptGetLineParam.getIsUpToGrid());
temDept.forEach(item -> {
DeptGetChildrenMoreDTO deptGetChildrenMoreDTO = new DeptGetChildrenMoreDTO();
deptGetChildrenMoreDTO.setUnitId(item.getUnitId());
deptGetChildrenMoreDTO.setUnitName(item.getUnitName());
deptGetChildrenMoreDTO.setUnitChildrenList(item.getUnitChildrenList());
deptGetChildrenMoreDTO.setDeptLevel(item.getDeptLevel());
List<String> deptIds = item.getUnitChildrenList();
if (CollectionUtil.isNotEmpty(deptIds)) {
List<LineDevGetDTO> lineList = new ArrayList<>();
deptIds.forEach(i -> {
if (map.containsKey(i)) {
map.get(i).forEach(x->{
if(deptMap.containsKey(x.getUnitId())){
x.setUnitName(deptMap.get(x.getUnitId()));
}
});
lineList.addAll(map.get(i));
}
});
//去重
ArrayList<LineDevGetDTO> collect = lineList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
Comparator.comparing(LineDevGetDTO::getPointId)
)), ArrayList::new));
deptGetChildrenMoreDTO.setLineBaseList(collect);
}
result.add(deptGetChildrenMoreDTO);
});
return result;
}
@Override
public List<LineDevGetDTO> deptGetLineByIdList(List<String> monitorIds) {
return lineMapper.getMonitorListDetail(monitorIds);

View File

@@ -4,7 +4,6 @@ package com.njcn.device.pq.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -26,6 +25,7 @@ import com.njcn.device.pq.pojo.po.RStatIntegrityD;
import com.njcn.device.pq.pojo.po.RStatOnlinerateD;
import com.njcn.device.pq.pojo.vo.LineDetailDataVO;
import com.njcn.device.pq.pojo.vo.LineDetailVO;
import com.njcn.device.pq.pojo.vo.OnlineMonitorVo;
import com.njcn.device.pq.pojo.vo.RStatIntegrityVO;
import com.njcn.device.pq.pojo.vo.common.DeviceOnlineRate;
import com.njcn.device.pq.service.IRStatIntegrityDService;
@@ -196,6 +196,11 @@ public class RStatIntegrityDServiceImpl extends MppServiceImpl<RStatIntegrityDMa
return rate;
}
@Override
public List<OnlineMonitorVo> getNoData(LineBaseQueryParam param) {
return this.baseMapper.getNoData(param.getLineIds(), param.getStartTime(), param.getEndTime());
}
private BigDecimal calculateIntegrityRate(List<RStatIntegrityVO> lineIntegrityRateInfo, List<String> deviceIds) {
List<RStatIntegrityVO> list = lineIntegrityRateInfo.stream().filter(x -> deviceIds.contains(x.getLineIndex())).collect(Collectors.toList());
if (CollUtil.isNotEmpty(list)) {