企业级概览页面接口
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user