企业级概览页面接口

This commit is contained in:
2023-08-30 20:28:14 +08:00
parent 151ef5f885
commit 03f2982c5a
6 changed files with 277 additions and 10 deletions

View File

@@ -59,4 +59,14 @@ public class SteadyQualifyController extends BaseController {
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getEnterpriseSteadyQualify")
@ApiOperation("企业级稳态合格率图表")
@ApiImplicitParam(name = "steadyParam", value = "稳态列表参数", required = true)
public HttpResult<List<SteadyQualifyVO>> getEnterpriseSteadyQualify(@RequestBody @Validated DeviceInfoParam.BusinessParam steadyParam){
String methodDescribe = getMethodDescribe("getEnterpriseSteadyQualify");
List<SteadyQualifyVO> list = steadyQualifyService.getEnterpriseSteadyQualify(steadyParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
}

View File

@@ -28,4 +28,12 @@ public interface SteadyQualifyService {
* @return
*/
SteadyQualifyCensusVO getSteadyQualifyCensus(DeviceInfoParam.BusinessParam steadyCensusParam);
/**
* 功能描述: 获取稳态合格率信息
* @param steadyParam
* @author cc
* @date 2022/03/20 20:34
*/
List<SteadyQualifyVO> getEnterpriseSteadyQualify(DeviceInfoParam.BusinessParam steadyParam);
}

View File

@@ -142,6 +142,65 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
return steadyQualifyCensusVO;
}
@Override
public List<SteadyQualifyVO> getEnterpriseSteadyQualify(DeviceInfoParam.BusinessParam steadyParam) {
List<SteadyQualifyVO> steadyQualifyList = new ArrayList<>();
//按照条件获取实际运行终端综合信息
List<GeneralDeviceDTO> deviceDataList = generalDeviceInfoClient.getPracticalRunDeviceInfo(steadyParam).getData();
//组装监测点Top层集合
for (GeneralDeviceDTO generalDeviceDTO : deviceDataList) {
List<String> lineIndexes = generalDeviceDTO.getLineIndexes();
if (CollectionUtils.isEmpty(lineIndexes)) {
continue;
}
SteadyQualifyVO steadyQualifyVO = new SteadyQualifyVO();
steadyQualifyVO.setId(generalDeviceDTO.getIndex());
steadyQualifyVO.setName(generalDeviceDTO.getName());
List<SteadyQualifyDTO> qualifiesRate = getQualifiesRate(lineIndexes, steadyParam.getSearchBeginTime(), steadyParam.getSearchEndTime());
//组装子集级数据树
List<SteadyQualifyVO> treeList = getCompanyTreeData(qualifiesRate, lineIndexes);
if (CollectionUtil.isNotEmpty(treeList)) {
List<SteadyQualifyVO> flicker = treeList.stream().filter(s -> s.getFlicker() != 3.14159).collect(Collectors.toList());
List<SteadyQualifyVO> freqOffset = treeList.stream().filter(s -> s.getFreqOffset() != 3.14159).collect(Collectors.toList());
List<SteadyQualifyVO> voltageOffset = treeList.stream().filter(s -> s.getVoltageOffset() != 3.14159).collect(Collectors.toList());
List<SteadyQualifyVO> voltageUnbalance = treeList.stream().filter(s -> s.getVoltageUnbalance() != 3.14159).collect(Collectors.toList());
List<SteadyQualifyVO> negativeCurrent = treeList.stream().filter(s -> s.getNegativeCurrent() != 3.14159).collect(Collectors.toList());
List<SteadyQualifyVO> harmonicVoltage = treeList.stream().filter(s -> s.getHarmonicVoltage() != 3.14159).collect(Collectors.toList());
List<SteadyQualifyVO> harmonicCurrent = treeList.stream().filter(s -> s.getHarmonicCurrent() != 3.14159).collect(Collectors.toList());
List<SteadyQualifyVO> interHarmonic = treeList.stream().filter(s -> s.getInterHarmonic() != 3.14159).collect(Collectors.toList());
//求各项平均值
if (!CollectionUtils.isEmpty(flicker)) {
steadyQualifyVO.setFlicker(PubUtils.dataLimits(NumberUtil.round(flicker.stream().mapToDouble(SteadyQualifyVO::getFlicker).average().orElse(100), 2).doubleValue()));
}
if (!CollectionUtils.isEmpty(freqOffset)) {
steadyQualifyVO.setFreqOffset(PubUtils.dataLimits(NumberUtil.round(freqOffset.stream().mapToDouble(SteadyQualifyVO::getFreqOffset).average().orElse(100), 2).doubleValue()));
}
if (!CollectionUtils.isEmpty(voltageOffset)) {
steadyQualifyVO.setVoltageOffset(PubUtils.dataLimits(NumberUtil.round(voltageOffset.stream().mapToDouble(SteadyQualifyVO::getVoltageOffset).average().orElse(100), 2).doubleValue()));
}
if (!CollectionUtils.isEmpty(voltageUnbalance)) {
steadyQualifyVO.setVoltageUnbalance(PubUtils.dataLimits(NumberUtil.round(voltageUnbalance.stream().mapToDouble(SteadyQualifyVO::getVoltageUnbalance).average().orElse(100), 2).doubleValue()));
}
if (!CollectionUtils.isEmpty(negativeCurrent)) {
steadyQualifyVO.setNegativeCurrent(PubUtils.dataLimits(NumberUtil.round(negativeCurrent.stream().mapToDouble(SteadyQualifyVO::getNegativeCurrent).average().orElse(100), 2).doubleValue()));
}
if (!CollectionUtils.isEmpty(harmonicVoltage)) {
steadyQualifyVO.setHarmonicVoltage(PubUtils.dataLimits(NumberUtil.round(harmonicVoltage.stream().mapToDouble(SteadyQualifyVO::getHarmonicVoltage).average().orElse(100), 2).doubleValue()));
}
if (!CollectionUtils.isEmpty(harmonicCurrent)) {
steadyQualifyVO.setHarmonicCurrent(PubUtils.dataLimits(NumberUtil.round(harmonicCurrent.stream().mapToDouble(SteadyQualifyVO::getHarmonicCurrent).average().orElse(100), 2).doubleValue()));
}
if (!CollectionUtils.isEmpty(interHarmonic)) {
steadyQualifyVO.setInterHarmonic(PubUtils.dataLimits(NumberUtil.round(interHarmonic.stream().mapToDouble(SteadyQualifyVO::getInterHarmonic).average().orElse(100), 2).doubleValue()));
}
}
steadyQualifyVO.setChildren(treeList);
steadyQualifyList.add(steadyQualifyVO);
}
return steadyQualifyList;
}
/**
* 获取父级每层数据
*/
@@ -582,4 +641,39 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
}
}
/**
* 获取父级每层数据
*/
private List<SteadyQualifyVO> getCompanyTreeData(List<SteadyQualifyDTO> qualifiesRate, List<String> lineIndexes) {
//监测点集合
List<SteadyQualifyVO> monitorList = steadyQualifyMapper.getSteadyQualifyData(lineIndexes);
//母线集合
List<SteadyQualifyVO> busBarList = steadyQualifyMapper.getLineInfoByList(monitorList.stream().map(SteadyQualifyVO::getPid).distinct().collect(Collectors.toList()));
//终端集合
List<SteadyQualifyVO> deviceList = steadyQualifyMapper.getLineInfoByList(busBarList.stream().map(SteadyQualifyVO::getPid).distinct().collect(Collectors.toList()));
//变电站集合
List<SteadyQualifyVO> substationList = steadyQualifyMapper.getLineInfoByList(deviceList.stream().map(SteadyQualifyVO::getPid).distinct().collect(Collectors.toList()));
//供电公司集合
List<SteadyQualifyVO> powerCompanyList = steadyQualifyMapper.getLineInfoByList(substationList.stream().map(SteadyQualifyVO::getPid).distinct().collect(Collectors.toList()));
// List<SteadyQualifyDTO> qualifiesRate = getQualifiesRate(lineIndexes, steadyParam.getSearchBeginTime(), steadyParam.getSearchEndTime());
monitorList.forEach(steadyQualifyVO -> {
SteadyQualifyVO dataSingleMonitorMoreDay = getDataSingleMonitorMoreDay(qualifiesRate, steadyQualifyVO.getId());
steadyQualifyVO.setFlicker(PubUtils.dataLimits(dataSingleMonitorMoreDay.getFlicker()));
steadyQualifyVO.setFreqOffset(PubUtils.dataLimits(dataSingleMonitorMoreDay.getFreqOffset()));
steadyQualifyVO.setVoltageOffset(PubUtils.dataLimits(dataSingleMonitorMoreDay.getVoltageOffset()));
steadyQualifyVO.setVoltageUnbalance(PubUtils.dataLimits(dataSingleMonitorMoreDay.getVoltageUnbalance()));
steadyQualifyVO.setNegativeCurrent(PubUtils.dataLimits(dataSingleMonitorMoreDay.getNegativeCurrent()));
steadyQualifyVO.setHarmonicVoltage(PubUtils.dataLimits(dataSingleMonitorMoreDay.getHarmonicVoltage()));
steadyQualifyVO.setHarmonicCurrent(PubUtils.dataLimits(dataSingleMonitorMoreDay.getHarmonicCurrent()));
steadyQualifyVO.setInterHarmonic(PubUtils.dataLimits(dataSingleMonitorMoreDay.getInterHarmonic()));
});
setChildesList(substationList, monitorList);
setFatherDistortion(substationList);
return substationList;
}
}