微调
This commit is contained in:
@@ -354,7 +354,7 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if(StrUtil.isNotBlank(jonsStr)){
|
if (StrUtil.isNotBlank(jonsStr)) {
|
||||||
JSONArray jsonArray = new JSONArray(jonsStr);
|
JSONArray jsonArray = new JSONArray(jonsStr);
|
||||||
List<JsonBaseVO> jsonBaseVOList = jsonArray.toList(JsonBaseVO.class);
|
List<JsonBaseVO> jsonBaseVOList = jsonArray.toList(JsonBaseVO.class);
|
||||||
jsonBaseVOList.forEach(it -> {
|
jsonBaseVOList.forEach(it -> {
|
||||||
@@ -363,13 +363,13 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(timeSet.size()>0){
|
if (timeSet.size() > 0) {
|
||||||
DetailAbnormalVO detailAbnormalVO = new DetailAbnormalVO();
|
DetailAbnormalVO detailAbnormalVO = new DetailAbnormalVO();
|
||||||
detailAbnormalVO.setMonitorId(lineId);
|
detailAbnormalVO.setMonitorId(lineId);
|
||||||
detailAbnormalVO.setDate(date.format(DATE_FORMAT));
|
detailAbnormalVO.setDate(date.format(DATE_FORMAT));
|
||||||
detailAbnormalVO.setMonitorName(lineInfoVO.getLineName());
|
detailAbnormalVO.setMonitorName(lineInfoVO.getLineName());
|
||||||
detailAbnormalVO.setBdName(lineInfoVO.getBdName());
|
detailAbnormalVO.setBdName(lineInfoVO.getBdName());
|
||||||
detailAbnormalVO.setTimeSum(String.valueOf(timeInterval*timeSet.size()));
|
detailAbnormalVO.setTimeSum(String.valueOf(timeInterval * timeSet.size()));
|
||||||
detailAbnormalVO.setTargetKey(monitorBaseParam.getTargetKey());
|
detailAbnormalVO.setTargetKey(monitorBaseParam.getTargetKey());
|
||||||
result.add(detailAbnormalVO);
|
result.add(detailAbnormalVO);
|
||||||
}
|
}
|
||||||
@@ -429,9 +429,9 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
|||||||
dealJsonArr(new JSONArray(dto.getFlickerOvertime()), flicker, DicDataEnum.FLICKER.getName(), null);
|
dealJsonArr(new JSONArray(dto.getFlickerOvertime()), flicker, DicDataEnum.FLICKER.getName(), null);
|
||||||
dealJsonArr(new JSONArray(dto.getINegOvertime()), iNeg, DicDataEnum.NEG_CURRENT.getName(), null);
|
dealJsonArr(new JSONArray(dto.getINegOvertime()), iNeg, DicDataEnum.NEG_CURRENT.getName(), null);
|
||||||
// 处理谐波类指标
|
// 处理谐波类指标
|
||||||
processHarmonicTargetHarm(dto, DicDataEnum.HARMONIC_VOLTAGE.getName(), "uharm", 2, 25, uharm);
|
processHarmonicTargetHarm(dto, DicDataEnum.HARMONIC_VOLTAGE.getName(), "uharm", 2, 25, uharm);
|
||||||
processHarmonicTargetHarm(dto, DicDataEnum.HARMONIC_CURRENT.getName(), "iharm", 2, 25, iharm);
|
processHarmonicTargetHarm(dto, DicDataEnum.HARMONIC_CURRENT.getName(), "iharm", 2, 25, iharm);
|
||||||
processHarmonicTargetHarm(dto, DicDataEnum.INTERHARMONIC_VOLTAGE.getName(), "inuharm", 1, 16, inuharm);
|
processHarmonicTargetHarm(dto, DicDataEnum.INTERHARMONIC_VOLTAGE.getName(), "inuharm", 1, 16, inuharm);
|
||||||
}
|
}
|
||||||
assess.setFreqLimit(overLimitDataById.getFreqDev());
|
assess.setFreqLimit(overLimitDataById.getFreqDev());
|
||||||
assess.setVDevLimit(overLimitDataById.getVoltageDev());
|
assess.setVDevLimit(overLimitDataById.getVoltageDev());
|
||||||
@@ -440,62 +440,101 @@ 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());
|
//上偏差
|
||||||
if(CollUtil.isNotEmpty(collect)){
|
PqReasonableRangeDto dto1 = dataVCode.get(DataCleanEnum.VuDev.getCode());
|
||||||
DetailAbnormalVO.DetailLimitInnerVO val = collect.get(0);
|
List<DetailAbnormalVO.DetailLimitInnerVO> collect = voltage.stream()
|
||||||
assess.setVDevData(NumberUtil.round(val.getVal(),2).doubleValue());
|
.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)) {
|
||||||
|
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());
|
||||||
}
|
}
|
||||||
List<DetailAbnormalVO.DetailLimitInnerVO> collect2 = voltage.stream().filter(x->Double.valueOf(x.getVal()) < 0).sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal)).collect(Collectors.toList());
|
//下偏差
|
||||||
if(CollUtil.isNotEmpty(collect2)){
|
PqReasonableRangeDto dto2 = dataVCode.get(DataCleanEnum.VlDev.getCode());
|
||||||
DetailAbnormalVO.DetailLimitInnerVO val2 = collect2.get(0);
|
List<DetailAbnormalVO.DetailLimitInnerVO> collect2 = voltage.stream()
|
||||||
assess.setUDevData(NumberUtil.round(val2.getVal(),2).doubleValue());
|
.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)) {
|
||||||
|
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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//负序电流
|
//负序电流
|
||||||
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 {
|
||||||
Class<?> clazz = overLimitDataById.getClass();
|
Class<?> clazz = overLimitDataById.getClass();
|
||||||
@@ -510,9 +549,11 @@ 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("次");
|
||||||
try {
|
try {
|
||||||
Class<?> clazz = overLimitDataById.getClass();
|
Class<?> clazz = overLimitDataById.getClass();
|
||||||
@@ -521,15 +562,17 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
|||||||
Float value = (Float) method.invoke(overLimitDataById);
|
Float value = (Float) method.invoke(overLimitDataById);
|
||||||
assess.setIharmLimit(value);
|
assess.setIharmLimit(value);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
//间谐波电压
|
//间谐波电压
|
||||||
|
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 {
|
||||||
Class<?> clazz = overLimitDataById.getClass();
|
Class<?> clazz = overLimitDataById.getClass();
|
||||||
@@ -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()));
|
||||||
@@ -632,7 +692,7 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void processHarmonicTargetHarm(DataLimitRateDetailDto dto, String targetCode, String prefix, int start, int end,
|
private void processHarmonicTargetHarm(DataLimitRateDetailDto dto, String targetCode, String prefix, int start, int end,
|
||||||
List<DetailAbnormalVO.DetailLimitInnerVO> result) {
|
List<DetailAbnormalVO.DetailLimitInnerVO> result) {
|
||||||
List<String> tempList = new ArrayList<>();
|
List<String> tempList = new ArrayList<>();
|
||||||
collectHarmonicData(dto, prefix, start, end, tempList);
|
collectHarmonicData(dto, prefix, start, end, tempList);
|
||||||
processSpecialTargets(tempList, result, targetCode);
|
processSpecialTargets(tempList, result, targetCode);
|
||||||
|
|||||||
Reference in New Issue
Block a user