This commit is contained in:
wr
2025-12-15 18:20:42 +08:00
parent 9f3bb52d9a
commit dc11d34add

View File

@@ -440,61 +440,100 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
assess.setUnbalanceLimit(overLimitDataById.getUbalance()); assess.setUnbalanceLimit(overLimitDataById.getUbalance());
assess.setFlickerLimit(overLimitDataById.getFlicker()); assess.setFlickerLimit(overLimitDataById.getFlicker());
assess.setINegLimit(overLimitDataById.getINeg()); assess.setINegLimit(overLimitDataById.getINeg());
Map<String, List<PqReasonableRangeDto>> map = new HashMap<>();
DataCleanParam param = new DataCleanParam();
param.setSystemType(DataCleanEnum.Pqs.getCode());
List<PqReasonableRangeDto> list = pqReasonableRangeFeignClient.getData(param).getData();
if (CollUtil.isNotEmpty(list)) {
map = list.stream().collect(Collectors.groupingBy(PqReasonableRangeDto::getInfluxdbTableName));
}
List<PqReasonableRangeDto> dataV = map.get(DataCleanEnum.DataV.getCode());
//谐波电压 Map<String, PqReasonableRangeDto> dataVCode = dataV.stream().collect(Collectors.toMap(PqReasonableRangeDto::getIndexCode, Function.identity()));
//谐波电流
//简谐波电压
//频率偏差 //频率偏差
if (CollUtil.isNotEmpty(freq)) { if (CollUtil.isNotEmpty(freq)) {
List<DetailAbnormalVO.DetailLimitInnerVO> collect = freq.stream().sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal).reversed()).collect(Collectors.toList()); PqReasonableRangeDto dto = dataVCode.get(DataCleanEnum.FreqDev.getCode());
DetailAbnormalVO.DetailLimitInnerVO val = collect.get(0); DetailAbnormalVO.DetailLimitInnerVO val = reasonAble(freq, dto);
assess.setFreqData(NumberUtil.round(val.getVal(), 2).doubleValue()); assess.setFreqData(NumberUtil.round(val.getVal(), 2).doubleValue());
} }
//电压偏差 //电压偏差
if (CollUtil.isNotEmpty(voltage)) { if (CollUtil.isNotEmpty(voltage)) {
List<DetailAbnormalVO.DetailLimitInnerVO> collect = voltage.stream().filter(x->Double.valueOf(x.getVal()) > 0).sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal).reversed()).collect(Collectors.toList()); //上偏差
PqReasonableRangeDto dto1 = dataVCode.get(DataCleanEnum.VuDev.getCode());
List<DetailAbnormalVO.DetailLimitInnerVO> collect = voltage.stream()
.filter(x -> Double.valueOf(x.getVal()) > 0)
.filter(x -> Double.valueOf(x.getVal()) < dto1.getMaxValue())
.sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal).reversed()).collect(Collectors.toList());
if (CollUtil.isNotEmpty(collect)) { if (CollUtil.isNotEmpty(collect)) {
DetailAbnormalVO.DetailLimitInnerVO val = collect.get(0); DetailAbnormalVO.DetailLimitInnerVO val;
if (CollUtil.isNotEmpty(collect)) {
val = collect.get(0);
} else {
List<DetailAbnormalVO.DetailLimitInnerVO> collect2 = voltage.stream()
.filter(x -> Double.valueOf(x.getVal()) > 0)
.sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal).reversed())
.collect(Collectors.toList());
val = collect2.get(0);
val.setVal(dto1.getMaxValue().toString());
}
assess.setVDevData(NumberUtil.round(val.getVal(), 2).doubleValue()); assess.setVDevData(NumberUtil.round(val.getVal(), 2).doubleValue());
} }
List<DetailAbnormalVO.DetailLimitInnerVO> collect2 = voltage.stream().filter(x->Double.valueOf(x.getVal()) < 0).sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal)).collect(Collectors.toList()); //下偏差
PqReasonableRangeDto dto2 = dataVCode.get(DataCleanEnum.VlDev.getCode());
List<DetailAbnormalVO.DetailLimitInnerVO> collect2 = voltage.stream()
.filter(x -> Double.valueOf(x.getVal()) < 0)
.filter(x -> dto2.getMinValue() < Double.valueOf(x.getVal()))
.sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal)).collect(Collectors.toList());
if (CollUtil.isNotEmpty(collect2)) { if (CollUtil.isNotEmpty(collect2)) {
DetailAbnormalVO.DetailLimitInnerVO val2 = collect2.get(0); DetailAbnormalVO.DetailLimitInnerVO val2;
if (CollUtil.isNotEmpty(collect)) {
val2 = collect.get(0);
} else {
List<DetailAbnormalVO.DetailLimitInnerVO> collect3 = voltage.stream()
.filter(x -> Double.valueOf(x.getVal()) < 0)
.sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal).reversed())
.collect(Collectors.toList());
val2 = collect3.get(0);
val2.setVal(dto2.getMaxValue().toString());
}
assess.setUDevData(NumberUtil.round(val2.getVal(), 2).doubleValue()); assess.setUDevData(NumberUtil.round(val2.getVal(), 2).doubleValue());
} }
} }
//负序电流 //负序电流
if (CollUtil.isNotEmpty(iNeg)) { if (CollUtil.isNotEmpty(iNeg)) {
List<DetailAbnormalVO.DetailLimitInnerVO> collect = iNeg.stream().sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal).reversed()).collect(Collectors.toList()); List<DetailAbnormalVO.DetailLimitInnerVO> collect = iNeg.stream()
.sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal).reversed())
.collect(Collectors.toList());
DetailAbnormalVO.DetailLimitInnerVO val = collect.get(0); DetailAbnormalVO.DetailLimitInnerVO val = collect.get(0);
assess.setINegData(NumberUtil.round(val.getVal(), 2).doubleValue()); assess.setINegData(NumberUtil.round(val.getVal(), 2).doubleValue());
} }
//电压总谐波 //电压总谐波
if (CollUtil.isNotEmpty(uaberrance)) { if (CollUtil.isNotEmpty(uaberrance)) {
List<DetailAbnormalVO.DetailLimitInnerVO> collect = uaberrance.stream().sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal).reversed()).collect(Collectors.toList()); PqReasonableRangeDto dto = dataVCode.get(DataCleanEnum.VThd.getCode());
DetailAbnormalVO.DetailLimitInnerVO val = collect.get(0); DetailAbnormalVO.DetailLimitInnerVO val = reasonAble(uaberrance, dto);
assess.setUaberranceData(NumberUtil.round(val.getVal(), 2).doubleValue()); assess.setUaberranceData(NumberUtil.round(val.getVal(), 2).doubleValue());
} }
//三相不平衡度 //三相不平衡度
if (CollUtil.isNotEmpty(ubalance)) { if (CollUtil.isNotEmpty(ubalance)) {
List<DetailAbnormalVO.DetailLimitInnerVO> collect = ubalance.stream().sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal).reversed()).collect(Collectors.toList()); PqReasonableRangeDto dto = dataVCode.get(DataCleanEnum.VUnbalance.getCode());
DetailAbnormalVO.DetailLimitInnerVO val = collect.get(0); DetailAbnormalVO.DetailLimitInnerVO val = reasonAble(ubalance, dto);
assess.setUnbalanceData(NumberUtil.round(val.getVal(), 2).doubleValue()); assess.setUnbalanceData(NumberUtil.round(val.getVal(), 2).doubleValue());
} }
//闪变 //闪变
List<PqReasonableRangeDto> dataPlt = map.get(DataCleanEnum.DataPlt.getCode());
Map<String, PqReasonableRangeDto> dataPltCode = dataPlt.stream().collect(Collectors.toMap(PqReasonableRangeDto::getIndexCode, Function.identity()));
if (CollUtil.isNotEmpty(flicker)) { if (CollUtil.isNotEmpty(flicker)) {
List<DetailAbnormalVO.DetailLimitInnerVO> collect = flicker.stream().sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal).reversed()).collect(Collectors.toList()); PqReasonableRangeDto dto = dataPltCode.get(DataCleanEnum.Plt.getCode());
DetailAbnormalVO.DetailLimitInnerVO val = collect.get(0); DetailAbnormalVO.DetailLimitInnerVO val = reasonAble(flicker, dto);
assess.setFlickerData(NumberUtil.round(val.getVal(), 2).doubleValue()); assess.setFlickerData(NumberUtil.round(val.getVal(), 2).doubleValue());
} }
//谐波电压 //谐波电压
List<PqReasonableRangeDto> dataHarmRate = map.get(DataCleanEnum.DataHarmRateV.getCode());
Map<String, PqReasonableRangeDto> dataHarmRateCode = dataHarmRate.stream().collect(Collectors.toMap(PqReasonableRangeDto::getIndexCode, Function.identity()));
if (CollUtil.isNotEmpty(uharm)) { if (CollUtil.isNotEmpty(uharm)) {
List<DetailAbnormalVO.DetailLimitInnerVO> collect = uharm.stream().sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal).reversed()).collect(Collectors.toList()); PqReasonableRangeDto dto = dataHarmRateCode.get(DataCleanEnum.V_Rate.getCode());
DetailAbnormalVO.DetailLimitInnerVO val = collect.get(0); DetailAbnormalVO.DetailLimitInnerVO val = reasonAble(uharm, dto);
assess.setUharmData(NumberUtil.round(val.getVal(), 2).doubleValue()); assess.setUharmData(NumberUtil.round(val.getVal(), 2).doubleValue());
String[] split = val.getTargetName().split(""); String[] split = val.getTargetName().split("");
try { try {
@@ -510,7 +549,9 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
} }
//谐波电流 //谐波电流
if (CollUtil.isNotEmpty(iharm)) { if (CollUtil.isNotEmpty(iharm)) {
List<DetailAbnormalVO.DetailLimitInnerVO> collect = iharm.stream().sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal).reversed()).collect(Collectors.toList()); List<DetailAbnormalVO.DetailLimitInnerVO> collect = iharm.stream()
.sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal).reversed())
.collect(Collectors.toList());
DetailAbnormalVO.DetailLimitInnerVO val = collect.get(0); DetailAbnormalVO.DetailLimitInnerVO val = collect.get(0);
assess.setIharmData(NumberUtil.round(val.getVal(), 2).doubleValue()); assess.setIharmData(NumberUtil.round(val.getVal(), 2).doubleValue());
String[] split = val.getTargetName().split(""); String[] split = val.getTargetName().split("");
@@ -526,9 +567,11 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
} }
//间谐波电压 //间谐波电压
List<PqReasonableRangeDto> dataInHarm = map.get(DataCleanEnum.DataInHarmV.getCode());
Map<String, PqReasonableRangeDto> dataInHarmCode = dataInHarm.stream().collect(Collectors.toMap(PqReasonableRangeDto::getIndexCode, Function.identity()));
if (CollUtil.isNotEmpty(inuharm)) { if (CollUtil.isNotEmpty(inuharm)) {
List<DetailAbnormalVO.DetailLimitInnerVO> collect = inuharm.stream().sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal).reversed()).collect(Collectors.toList()); PqReasonableRangeDto dto = dataInHarmCode.get(DataCleanEnum.V_InHarm.getCode());
DetailAbnormalVO.DetailLimitInnerVO val = collect.get(0); DetailAbnormalVO.DetailLimitInnerVO val = reasonAble(inuharm, dto);
assess.setInuharmData(NumberUtil.round(val.getVal(), 2).doubleValue()); assess.setInuharmData(NumberUtil.round(val.getVal(), 2).doubleValue());
String[] split = val.getTargetName().split(""); String[] split = val.getTargetName().split("");
try { try {
@@ -544,6 +587,23 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
return assess; return assess;
} }
private DetailAbnormalVO.DetailLimitInnerVO reasonAble(List<DetailAbnormalVO.DetailLimitInnerVO> limit, PqReasonableRangeDto dto) {
List<DetailAbnormalVO.DetailLimitInnerVO> collect = limit.stream()
.filter(x -> dto.getMinValue() < Double.valueOf(x.getVal()) && Double.valueOf(x.getVal()) < dto.getMaxValue())
.sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal).reversed()).collect(Collectors.toList());
DetailAbnormalVO.DetailLimitInnerVO val;
if (CollUtil.isNotEmpty(collect)) {
val = collect.get(0);
} else {
List<DetailAbnormalVO.DetailLimitInnerVO> collect2 = limit.stream()
.sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal).reversed())
.collect(Collectors.toList());
val = collect2.get(0);
val.setVal(dto.getMaxValue().toString());
}
return val;
}
private Map<String, DictData> getTargetMap() { private Map<String, DictData> getTargetMap() {
List<DictData> dictDataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); List<DictData> dictDataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
return dictDataList.stream().collect(Collectors.toMap(DictData::getCode, Function.identity())); return dictDataList.stream().collect(Collectors.toMap(DictData::getCode, Function.identity()));