调整case枚举信息,调整数据处理原则
This commit is contained in:
@@ -15,6 +15,7 @@ import com.njcn.gather.err.pojo.param.PqErrSysParam;
|
||||
import com.njcn.gather.err.pojo.po.PqErrSysDtls;
|
||||
import com.njcn.gather.err.pojo.vo.ErrDtlsCheckDataVO;
|
||||
import com.njcn.gather.err.service.IPqErrSysDtlsService;
|
||||
import com.njcn.gather.result.pojo.enums.ResultUnitEnum;
|
||||
import com.njcn.gather.script.pojo.po.PqScriptCheckData;
|
||||
import com.njcn.gather.script.pojo.po.SourceIssue;
|
||||
import com.njcn.gather.script.service.IPqScriptCheckDataService;
|
||||
@@ -87,90 +88,145 @@ public class DetectionServiceImpl {
|
||||
param.setScriptId(sourceIssue.getScriptId());
|
||||
param.setErrorSysId(errorSysId);
|
||||
List<ErrDtlsCheckDataVO> errDtlsCheckData = pqErrSysDtlsService.listByPqErrSysIdAndTypes(param);
|
||||
switch (sourceIssue.getType()) {
|
||||
ResultUnitEnum resultUnitEnumByCode = ResultUnitEnum.getResultUnitEnumByCode(sourceIssue.getType());
|
||||
switch (resultUnitEnumByCode) {
|
||||
/**
|
||||
* 频率
|
||||
*/
|
||||
case "FREQ":
|
||||
case FREQ:
|
||||
return isQualified(dev, devIdMapComm, errDtlsCheckData, F, sourceIssue, dataRule, code);
|
||||
/**
|
||||
* 电压
|
||||
*/
|
||||
case "V":
|
||||
case V_RELATIVE:
|
||||
case V_ABSOLUTELY:
|
||||
return isQualified(dev, devIdMapComm, errDtlsCheckData, U, sourceIssue, dataRule, code);
|
||||
/**
|
||||
* 电流
|
||||
*/
|
||||
case "I":
|
||||
case I_RELATIVE:
|
||||
case I_ABSOLUTELY:
|
||||
return isQualified(dev, devIdMapComm, errDtlsCheckData, I, sourceIssue, dataRule, code);
|
||||
/**
|
||||
* 谐波电压
|
||||
*/
|
||||
case "HV":
|
||||
case HV:
|
||||
AdHarmonicResult harmV = isHarmQualified(dev, devIdMapComm, errDtlsCheckData, U, sourceIssue, dataRule, 2);
|
||||
detectionDataDealService.acceptAdResult(Arrays.asList(harmV), code);
|
||||
return harmV.getResultFlag();
|
||||
/**
|
||||
* 谐波电流
|
||||
*/
|
||||
case "HI":
|
||||
case HI:
|
||||
AdHarmonicResult harmI = isHarmQualified(dev, devIdMapComm, errDtlsCheckData, I, sourceIssue, dataRule, 2);
|
||||
detectionDataDealService.acceptAdResult(Arrays.asList(harmI), code);
|
||||
return harmI.getResultFlag();
|
||||
/**
|
||||
* 间谐波电压
|
||||
*/
|
||||
case "HSV":
|
||||
case HSV:
|
||||
AdHarmonicResult harmInV = isHarmQualified(dev, devIdMapComm, errDtlsCheckData, U, sourceIssue, dataRule, 1);
|
||||
detectionDataDealService.acceptAdResult(Arrays.asList(harmInV), code);
|
||||
return harmInV.getResultFlag();
|
||||
/**
|
||||
* 间谐波电流
|
||||
*/
|
||||
case "HSI":
|
||||
case HSI:
|
||||
AdHarmonicResult harmInI = isHarmQualified(dev, devIdMapComm, errDtlsCheckData, I, sourceIssue, dataRule, 1);
|
||||
detectionDataDealService.acceptAdResult(Arrays.asList(harmInI), code);
|
||||
return harmInI.getResultFlag();
|
||||
/**
|
||||
* 三相电压不平衡度
|
||||
*/
|
||||
case "IMBV":
|
||||
case IMBV:
|
||||
AdNonHarmonicResult vUnban = isUnBalanceOrFlickerQualified(dev, devIdMapComm, errDtlsCheckData, U, sourceIssue, dataRule, "V_UNBAN");
|
||||
detectionDataDealService.acceptAdNonResult(Arrays.asList(vUnban), code);
|
||||
return vUnban.getResultFlag();
|
||||
/**
|
||||
* 三相电流不平衡度
|
||||
*/
|
||||
case "IMBA":
|
||||
case IMBA:
|
||||
AdNonHarmonicResult iUnban = isUnBalanceOrFlickerQualified(dev, devIdMapComm, errDtlsCheckData, I, sourceIssue, dataRule, "I_UNBAN");
|
||||
detectionDataDealService.acceptAdNonResult(Arrays.asList(iUnban), code);
|
||||
return iUnban.getResultFlag();
|
||||
/**
|
||||
* 谐波有功功率
|
||||
*/
|
||||
case "HP":
|
||||
case HP:
|
||||
AdHarmonicResult harmP = isHarmQualified(dev, devIdMapComm, errDtlsCheckData, P, sourceIssue, dataRule, 2);
|
||||
detectionDataDealService.acceptAdResult(Arrays.asList(harmP), code);
|
||||
return harmP.getResultFlag();
|
||||
/**
|
||||
* 功率
|
||||
*/
|
||||
case "P":
|
||||
return 4;
|
||||
/**
|
||||
* 闪变
|
||||
*/
|
||||
case "F":
|
||||
case F:
|
||||
AdNonHarmonicResult pst = isUnBalanceOrFlickerQualified(dev, devIdMapComm, errDtlsCheckData, null, sourceIssue, dataRule, "PST");
|
||||
detectionDataDealService.acceptAdNonResult(Arrays.asList(pst), code);
|
||||
return pst.getResultFlag();
|
||||
/**
|
||||
* 暂态
|
||||
*/
|
||||
case "VOLTAGE":
|
||||
case VOLTAGE_MAG:
|
||||
case VOLTAGE_DUR:
|
||||
return isVoltageQualified(dev, devIdMapComm, errDtlsCheckData, sourceIssue, dataRule, code);
|
||||
default:
|
||||
// return isUnknownQualified(dev, devIdMapComm, errDtlsCheckData, sourceIssue, dataRule, code);
|
||||
return 4;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public Integer isUnknownQualified(List<DevData> dev,
|
||||
Map<String, String> devIdMapComm,
|
||||
List<ErrDtlsCheckDataVO> errDtlsCheckData,
|
||||
SourceIssue sourceIssue,
|
||||
DictDataEnum dataRule,
|
||||
String code) {
|
||||
List<AdNonHarmonicResult> info = new ArrayList<>();
|
||||
List<String> devValueTypeList = sourceIssue.getDevValueTypeList();
|
||||
for (String s : devValueTypeList) {
|
||||
//基本数据
|
||||
Map<String, List<Double>> map = devListMap(dev, dataRule, s.split("\\$")[1]);
|
||||
AdNonHarmonicResult result = new AdNonHarmonicResult();
|
||||
String[] split = dev.get(0).getId().split("_");
|
||||
String devID = devIdMapComm.get(split[0]);
|
||||
result.setMonitorId(devID + "_" + split[1]);
|
||||
result.setScriptId(sourceIssue.getScriptId());
|
||||
result.setSort(sourceIssue.getIndex());
|
||||
result.setDataType("avg");
|
||||
List<ErrDtlsCheckDataVO> dtlsCheckData = errDtlsCheckData.stream().filter(x -> x.getValueTypeCode().equals(s.split("\\$")[1])).collect(Collectors.toList());
|
||||
List<DetectionData> resultFlag = new ArrayList<>();
|
||||
map.forEach((key, value) -> {
|
||||
List<ErrDtlsCheckDataVO> checkData = dtlsCheckData.stream().filter(x -> key.equals(x.getPhase())).collect(Collectors.toList());
|
||||
DetectionData detectionData = rangeComparisonList(value, new ArrayList<>(), null, checkData.get(0).getValue(), dataRule);
|
||||
if (key.equals(TYPE_T)) {
|
||||
result.setTValue(JSON.toJSONString(detectionData));
|
||||
}
|
||||
if (key.equals(TYPE_A)) {
|
||||
result.setAValue(JSON.toJSONString(detectionData));
|
||||
}
|
||||
if (key.equals(TYPE_B)) {
|
||||
result.setBValue(JSON.toJSONString(detectionData));
|
||||
}
|
||||
if (key.equals(TYPE_C)) {
|
||||
result.setCValue(JSON.toJSONString(detectionData));
|
||||
}
|
||||
resultFlag.add(detectionData);
|
||||
});
|
||||
result.setResultFlag(setResultFlag(resultFlag));
|
||||
info.add(result);
|
||||
//谐波
|
||||
Map<String, Map<Double, List<Double>>> devHarmMap = devHarmListMap(dev, sourceIssue, dataRule, 2);
|
||||
List<DetectionData> detectionData = harmRangeComparison(new ArrayList<>(), null, TYPE_T, sourceIssue, dataRule, devHarmMap.get(TYPE_T), sourceIssue.getFUn(), 2);
|
||||
//间谐波
|
||||
Map<String, Map<Double, List<Double>>> devInHarmMap = devHarmListMap(dev, sourceIssue, dataRule, 1);
|
||||
}
|
||||
|
||||
if (CollUtil.isNotEmpty(info)) {
|
||||
detectionDataDealService.acceptAdNonResult(info, code);
|
||||
List<Integer> resultFlag = info.stream().filter(x -> 4 != x.getResultFlag()).map(AdNonHarmonicResult::getResultFlag).distinct().collect(Collectors.toList());
|
||||
return getInteger(resultFlag);
|
||||
}
|
||||
return 4;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -554,16 +610,16 @@ public class DetectionServiceImpl {
|
||||
.collect(Collectors.toList());
|
||||
switch (dataRule) {
|
||||
case SECTION_VALUE:
|
||||
a = getDoubles(a, 1, 19);
|
||||
b = getDoubles(b, 1, 19);
|
||||
c = getDoubles(c, 1, 19);
|
||||
t = getDoubles(t, 1, 19);
|
||||
a = getDoubles(a);
|
||||
b = getDoubles(b);
|
||||
c = getDoubles(c);
|
||||
t = getDoubles(t);
|
||||
break;
|
||||
case CP95_VALUE:
|
||||
a = getDoubles(a, 1, 2);
|
||||
b = getDoubles(b, 1, 2);
|
||||
c = getDoubles(c, 1, 2);
|
||||
t = getDoubles(t, 1, 2);
|
||||
a = getCP95Doubles(a);
|
||||
b = getCP95Doubles(b);
|
||||
c = getCP95Doubles(c);
|
||||
t = getCP95Doubles(t);
|
||||
break;
|
||||
case AVG_VALUE:
|
||||
a = getAvgDoubles(a);
|
||||
@@ -730,7 +786,13 @@ public class DetectionServiceImpl {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param dev 原始数据
|
||||
* @param sourceIssue
|
||||
* @param dataRule
|
||||
* @param num
|
||||
* @return
|
||||
*/
|
||||
public Map<String, Map<Double, List<Double>>> devHarmListMap(List<DevData> dev, SourceIssue sourceIssue, DictDataEnum dataRule, Integer num) {
|
||||
Map<String, Map<Double, List<Double>>> map = new HashMap<>(3);
|
||||
List<Double> harmNum = new ArrayList<>();
|
||||
@@ -768,12 +830,25 @@ public class DetectionServiceImpl {
|
||||
map.forEach((typeKey, typeValue) -> {
|
||||
typeValue.forEach((key, value) -> {
|
||||
value.sort(Comparator.comparing(Double::doubleValue).reversed());
|
||||
if (CollUtil.isNotEmpty(value)) {
|
||||
switch (dataRule) {
|
||||
case SECTION_VALUE:
|
||||
value.subList(19, value.size()).clear(); // 保留前19个元素
|
||||
value.remove(0); // 移除第一个元素
|
||||
if (value.size() > 2) {
|
||||
Double max = Collections.max(value);
|
||||
Double min = Collections.min(value);
|
||||
value.remove(max);
|
||||
value.remove(min);
|
||||
}
|
||||
break;
|
||||
case CP95_VALUE:
|
||||
if (value.size() < 21) {
|
||||
if (value.size() > 1) {
|
||||
value.subList(1, 2);
|
||||
}
|
||||
} else {
|
||||
int v = (int) (value.size() * 0.5);
|
||||
value.subList(v, v + 1);
|
||||
}
|
||||
value.subList(1, value.size()).clear(); // 保留第一个元素
|
||||
break;
|
||||
case AVG_VALUE:
|
||||
@@ -782,6 +857,7 @@ public class DetectionServiceImpl {
|
||||
value.add(average); // 添加平均值
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
return map;
|
||||
@@ -1047,9 +1123,32 @@ public class DetectionServiceImpl {
|
||||
return t;
|
||||
}
|
||||
|
||||
public List<Double> getDoubles(List<Double> t, Integer start, Integer end) {
|
||||
public List<Double> getDoubles(List<Double> t) {
|
||||
if (CollUtil.isNotEmpty(t)) {
|
||||
t = t.subList(start, end);
|
||||
if (t == null || t.size() < 2) {
|
||||
return t;
|
||||
}
|
||||
Double max = Collections.max(t);
|
||||
Double min = Collections.min(t);
|
||||
t.remove(max);
|
||||
t.remove(min);
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
||||
public List<Double> getCP95Doubles(List<Double> t) {
|
||||
if (CollUtil.isNotEmpty(t)) {
|
||||
if (t.size() < 21) {
|
||||
if (t.size() == 1) {
|
||||
return t;
|
||||
}
|
||||
if (t.size() > 1) {
|
||||
return t.subList(1, 2);
|
||||
}
|
||||
} else {
|
||||
int v = (int) (t.size() * 0.5);
|
||||
return t.subList(v, v + 1);
|
||||
}
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.njcn.gather.result.pojo.enums;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
@@ -9,28 +10,41 @@ import lombok.Getter;
|
||||
@Getter
|
||||
public enum ResultUnitEnum {
|
||||
|
||||
FREQ_UNIT("Hz", "频率"),
|
||||
V_RELATIVE_UNIT("%Un", "电压"),
|
||||
V_ABSOLUTELY_UNIT("V", "电压"),
|
||||
I_RELATIVE_UNIT("%In", "电流"),
|
||||
I_ABSOLUTELY_UNIT("A", "电流"),
|
||||
HV_UNIT("%", "谐波电压"),
|
||||
HI_UNIT("%", "谐波电流"),
|
||||
HP_UNIT("W", "谐波有功功率"),
|
||||
HSV_UNIT("%", "间谐波电压"),
|
||||
HSI_UNIT("%", "间谐波电流"),
|
||||
VOLTAGE_MAG_UNIT("周波", "暂态持续时间"),
|
||||
VOLTAGE_DUR_UNIT("%", "暂态深度"),
|
||||
IMBV_UNIT("%", "电压不平衡度"),
|
||||
IMBA_UNIT("%", "电流不平衡度"),
|
||||
FREQ("Hz", "频率","FREQ"),
|
||||
V_RELATIVE("%Un", "电压","V"),
|
||||
V_ABSOLUTELY("V", "电压","V"),
|
||||
I_RELATIVE("%In", "电流","I"),
|
||||
I_ABSOLUTELY("A", "电流","I"),
|
||||
HV("%", "谐波电压","HV"),
|
||||
HI("%", "谐波电流","HI"),
|
||||
HP("W", "谐波有功功率","HP"),
|
||||
HSV("%", "间谐波电压","HSV"),
|
||||
HSI("%", "间谐波电流","HSI"),
|
||||
VOLTAGE_MAG("周波", "暂态持续时间","VOLTAGE"),
|
||||
VOLTAGE_DUR("%", "暂态深度","VOLTAGE"),
|
||||
IMBV("%", "电压不平衡度","IMBV"),
|
||||
IMBA("%", "电流不平衡度","IMBA"),
|
||||
F("","闪变","F"),
|
||||
|
||||
UNKNOWN("","未知","UNKNOWN"),
|
||||
;
|
||||
|
||||
private String unit;
|
||||
private String name;
|
||||
private String code;
|
||||
|
||||
ResultUnitEnum(String unit, String name) {
|
||||
ResultUnitEnum(String unit, String name, String code) {
|
||||
this.unit = unit;
|
||||
this.name = name;
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public static ResultUnitEnum getResultUnitEnumByCode(String code) {
|
||||
for (ResultUnitEnum resultUnitEnum : ResultUnitEnum.values()) {
|
||||
if (ObjectUtil.equals(code, resultUnitEnum.getCode())) {
|
||||
return resultUnitEnum;
|
||||
}
|
||||
}
|
||||
return UNKNOWN;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -289,23 +289,25 @@ public class ResultServiceImpl implements IResultService {
|
||||
}
|
||||
|
||||
private void ratedScriptTypeName(List<PqScriptDtls> scriptDtlIndexList, Boolean isValueType, TreeDataVO dtlType, DictTree dictTree) {
|
||||
switch (dictTree.getCode()) {
|
||||
ResultUnitEnum resultUnitEnumByCode = ResultUnitEnum.getResultUnitEnumByCode(dictTree.getCode());
|
||||
switch (resultUnitEnumByCode) {
|
||||
/**
|
||||
* 频率
|
||||
*/
|
||||
case "FREQ":
|
||||
case FREQ:
|
||||
List<PqScriptDtls> f = scriptDtlIndexList.stream().filter(x -> "Freq".equals(x.getValueType())).collect(Collectors.toList());
|
||||
dtlType.setScriptTypeName(dictTree.getName() + "=" + f.get(0).getValue() + ResultUnitEnum.FREQ_UNIT.getUnit());
|
||||
dtlType.setScriptTypeName(dictTree.getName() + "=" + f.get(0).getValue() + ResultUnitEnum.FREQ.getUnit());
|
||||
break;
|
||||
/**
|
||||
* 电压
|
||||
*/
|
||||
case "V":
|
||||
case V_RELATIVE:
|
||||
case V_ABSOLUTELY:
|
||||
String unit;
|
||||
if (isValueType) {
|
||||
unit = ResultUnitEnum.V_RELATIVE_UNIT.getUnit();
|
||||
unit = ResultUnitEnum.V_RELATIVE.getUnit();
|
||||
} else {
|
||||
unit = ResultUnitEnum.V_ABSOLUTELY_UNIT.getUnit();
|
||||
unit = ResultUnitEnum.V_ABSOLUTELY.getUnit();
|
||||
}
|
||||
List<PqScriptDtls> v = scriptDtlIndexList.stream().filter(x -> "VOL".equals(x.getValueType())).collect(Collectors.toList());
|
||||
dtlType.setScriptTypeName(dictTree.getName() + "=" + v.get(0).getValue().intValue() + unit);
|
||||
@@ -313,24 +315,23 @@ public class ResultServiceImpl implements IResultService {
|
||||
/**
|
||||
* 电流
|
||||
*/
|
||||
case "I":
|
||||
case I_RELATIVE:
|
||||
case I_ABSOLUTELY:
|
||||
String unitI;
|
||||
if (isValueType) {
|
||||
unitI = ResultUnitEnum.I_RELATIVE_UNIT.getUnit();
|
||||
unitI = ResultUnitEnum.I_RELATIVE.getUnit();
|
||||
} else {
|
||||
unitI = ResultUnitEnum.I_ABSOLUTELY_UNIT.getUnit();
|
||||
unitI = ResultUnitEnum.I_ABSOLUTELY.getUnit();
|
||||
}
|
||||
List<PqScriptDtls> I = scriptDtlIndexList.stream().filter(x -> "CUR".equals(x.getValueType())).collect(Collectors.toList());
|
||||
dtlType.setScriptTypeName(dictTree.getName() + "=" + I.get(0).getValue().intValue() + unitI);
|
||||
break;
|
||||
/**
|
||||
* 谐波电压
|
||||
*/
|
||||
case "HV":
|
||||
/**
|
||||
* 谐波电流
|
||||
*/
|
||||
case "HI":
|
||||
case HV:
|
||||
case HI:
|
||||
String valueType;
|
||||
if ("HV".equals(dictTree.getCode())) {
|
||||
valueType = "Harm_V";
|
||||
@@ -348,17 +349,15 @@ public class ResultServiceImpl implements IResultService {
|
||||
+ "次" + dictTree.getName() + "(含有率为GB/T)");
|
||||
} else {
|
||||
//叠加5%的2次谐波电压
|
||||
dtlType.setScriptTypeName("叠加" + hv.get(0).getValue().intValue() + ResultUnitEnum.HV_UNIT.getUnit() + "的" + hv.get(0).getHarmNum().intValue() + "次" + dictTree.getName());
|
||||
dtlType.setScriptTypeName("叠加" + hv.get(0).getValue().intValue() + ResultUnitEnum.HV.getUnit() + "的" + hv.get(0).getHarmNum().intValue() + "次" + dictTree.getName());
|
||||
}
|
||||
break;
|
||||
/**
|
||||
* 间谐波电压
|
||||
*/
|
||||
case "HSV":
|
||||
/**
|
||||
* 间谐波电流
|
||||
*/
|
||||
case "HSI":
|
||||
case HSV:
|
||||
case HSI:
|
||||
//叠加1.5/5.5/7.5/49.5次间谐波,含有率为。。。
|
||||
String in;
|
||||
if ("HSV".equals(dictTree.getCode())) {
|
||||
@@ -384,36 +383,36 @@ public class ResultServiceImpl implements IResultService {
|
||||
dtlType.setScriptTypeName(a.toString());
|
||||
} else {
|
||||
//叠加5%的2次谐波电压
|
||||
dtlType.setScriptTypeName("叠加" + harmInNumList.get(0).getValue().intValue() + ResultUnitEnum.HV_UNIT.getUnit() + "的" + harmInNumList.get(0).getHarmNum() + "次" + dictTree.getName());
|
||||
dtlType.setScriptTypeName("叠加" + harmInNumList.get(0).getValue().intValue() + ResultUnitEnum.HV.getUnit() + "的" + harmInNumList.get(0).getHarmNum() + "次" + dictTree.getName());
|
||||
}
|
||||
|
||||
break;
|
||||
/**
|
||||
* 三相电压不平衡度
|
||||
*/
|
||||
case "IMBV":
|
||||
case IMBV:
|
||||
List<PqScriptCheckData> list = pqScriptCheckDataService.list(new MPJLambdaWrapper<PqScriptCheckData>()
|
||||
.eq(PqScriptCheckData::getScriptId, scriptDtlIndexList.get(0).getScriptId())
|
||||
.eq(PqScriptCheckData::getIndex, scriptDtlIndexList.get(0).getIndex())
|
||||
);
|
||||
//三相负序电压不平衡度=0%
|
||||
dtlType.setScriptTypeName(dictTree.getName() + "=" + list.get(0).getValue() + ResultUnitEnum.IMBV_UNIT.getUnit());
|
||||
dtlType.setScriptTypeName(dictTree.getName() + "=" + list.get(0).getValue() + ResultUnitEnum.IMBV.getUnit());
|
||||
break;
|
||||
/**
|
||||
* 三相电流不平衡度
|
||||
*/
|
||||
case "IMBA":
|
||||
case IMBA:
|
||||
List<PqScriptCheckData> imba = pqScriptCheckDataService.list(new MPJLambdaWrapper<PqScriptCheckData>()
|
||||
.eq(PqScriptCheckData::getScriptId, scriptDtlIndexList.get(0).getScriptId())
|
||||
.eq(PqScriptCheckData::getIndex, scriptDtlIndexList.get(0).getIndex())
|
||||
);
|
||||
//三相负序电流不平衡度=0%
|
||||
dtlType.setScriptTypeName(dictTree.getName() + "=" + imba.get(0).getValue() + ResultUnitEnum.IMBV_UNIT.getUnit());
|
||||
dtlType.setScriptTypeName(dictTree.getName() + "=" + imba.get(0).getValue() + ResultUnitEnum.IMBV.getUnit());
|
||||
break;
|
||||
/**
|
||||
* 谐波有功功率
|
||||
*/
|
||||
case "HP":
|
||||
case HP:
|
||||
//10%的2次谐波电压,40%的2次谐波电流
|
||||
List<PqScriptDtls> hpv = scriptDtlIndexList.stream().filter(x -> "Harm_V".equals(x.getValueType())).collect(Collectors.toList());
|
||||
List<PqScriptDtls> hpI = scriptDtlIndexList.stream().filter(x -> "Harm_I".equals(x.getValueType())).collect(Collectors.toList());
|
||||
@@ -429,7 +428,7 @@ public class ResultServiceImpl implements IResultService {
|
||||
ArrayList<List<PqScriptDtls>> lists = new ArrayList<>(harmNumVMap.values());
|
||||
Map<Double, List<PqScriptDtls>> hpvMap = lists.stream().flatMap(x -> x.stream().filter(j -> "A".equals(j.getPhase()))).collect(Collectors.groupingBy(PqScriptDtls::getValue));
|
||||
hpvMap.forEach((key, value) -> {
|
||||
a.append(key.intValue() + ResultUnitEnum.HV_UNIT.getUnit() + "的");
|
||||
a.append(key.intValue() + ResultUnitEnum.HV.getUnit() + "的");
|
||||
for (int i = 0; i < value.size(); i++) {
|
||||
if (i == value.size() - 1) {
|
||||
a.append(value.get(i).getHarmNum().intValue());
|
||||
@@ -437,18 +436,18 @@ public class ResultServiceImpl implements IResultService {
|
||||
a.append(value.get(i).getHarmNum().intValue() + "、");
|
||||
}
|
||||
}
|
||||
a.append("次" + ResultUnitEnum.HV_UNIT.getName());
|
||||
a.append("次" + ResultUnitEnum.HV.getName());
|
||||
});
|
||||
} else {
|
||||
PqScriptDtls dtls = harmNumVMap.entrySet().iterator().next().getValue().get(0);
|
||||
a.append(dtls.getValue().intValue() + ResultUnitEnum.HV_UNIT.getUnit() + "的" + dtls.getHarmNum().intValue() + ResultUnitEnum.HV_UNIT.getName());
|
||||
a.append(dtls.getValue().intValue() + ResultUnitEnum.HV.getUnit() + "的" + dtls.getHarmNum().intValue() + ResultUnitEnum.HV.getName());
|
||||
}
|
||||
a.append(",");
|
||||
if (harmNumIMap.size() > 1) {
|
||||
ArrayList<List<PqScriptDtls>> lists = new ArrayList<>(harmNumIMap.values());
|
||||
Map<Double, List<PqScriptDtls>> hpvMap = lists.stream().flatMap(x -> x.stream().filter(j -> "A".equals(j.getPhase()))).collect(Collectors.groupingBy(PqScriptDtls::getValue));
|
||||
hpvMap.forEach((key, value) -> {
|
||||
a.append(key.intValue() + ResultUnitEnum.HI_UNIT.getUnit() + "的");
|
||||
a.append(key.intValue() + ResultUnitEnum.HI.getUnit() + "的");
|
||||
for (int i = 0; i < value.size(); i++) {
|
||||
if (i == value.size() - 1) {
|
||||
a.append(value.get(i).getHarmNum().intValue());
|
||||
@@ -456,23 +455,18 @@ public class ResultServiceImpl implements IResultService {
|
||||
a.append(value.get(i).getHarmNum().intValue() + "、");
|
||||
}
|
||||
}
|
||||
a.append("次" + ResultUnitEnum.HI_UNIT.getName());
|
||||
a.append("次" + ResultUnitEnum.HI.getName());
|
||||
});
|
||||
} else {
|
||||
PqScriptDtls dtls = harmNumIMap.entrySet().iterator().next().getValue().get(0);
|
||||
a.append(dtls.getValue().intValue() + ResultUnitEnum.HI_UNIT.getUnit() + "的" + dtls.getHarmNum().intValue() + "次" + ResultUnitEnum.HI_UNIT.getName());
|
||||
a.append(dtls.getValue().intValue() + ResultUnitEnum.HI.getUnit() + "的" + dtls.getHarmNum().intValue() + "次" + ResultUnitEnum.HI.getName());
|
||||
}
|
||||
dtlType.setScriptTypeName(a.toString());
|
||||
break;
|
||||
/**
|
||||
* 功率
|
||||
*/
|
||||
case "P":
|
||||
break;
|
||||
/**
|
||||
* 闪变
|
||||
*/
|
||||
case "F":
|
||||
case F:
|
||||
//Pst=1(变动率=1.459%*1)
|
||||
List<PqScriptDtls> flicker = scriptDtlIndexList.stream().filter(x -> "Flicker".equals(x.getValueType())).collect(Collectors.toList());
|
||||
dtlType.setScriptTypeName("Pst=" + flicker.get(0).getChagFre() + "(变动率=" + flicker.get(0).getChagValue() + "%*" + flicker.get(0).getChagFre() + ")");
|
||||
@@ -480,29 +474,32 @@ public class ResultServiceImpl implements IResultService {
|
||||
/**
|
||||
* 暂态
|
||||
*/
|
||||
case "VOLTAGE":
|
||||
case VOLTAGE_MAG:
|
||||
case VOLTAGE_DUR:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void harmScriptTypeName(List<PqScriptDtls> dtls, DictTree dictTree, Boolean isValueType, TreeDataVO dtlType) {
|
||||
switch (dictTree.getCode()) {
|
||||
ResultUnitEnum resultUnitEnumByCode = ResultUnitEnum.getResultUnitEnumByCode(dictTree.getCode());
|
||||
switch (resultUnitEnumByCode) {
|
||||
/**
|
||||
* 频率
|
||||
*/
|
||||
case "FREQ":
|
||||
case FREQ:
|
||||
List<PqScriptDtls> f = dtls.stream().filter(x -> "Freq".equals(x.getValueType())).collect(Collectors.toList());
|
||||
dtlType.setScriptTypeName("叠加多次谐波对" + dictTree.getName() + "=" + f.get(0).getValue() + ResultUnitEnum.FREQ_UNIT.getUnit() + "的影响");
|
||||
dtlType.setScriptTypeName("叠加多次谐波对" + dictTree.getName() + "=" + f.get(0).getValue() + ResultUnitEnum.FREQ.getUnit() + "的影响");
|
||||
break;
|
||||
/**
|
||||
* 电压
|
||||
*/
|
||||
case "V":
|
||||
case V_RELATIVE:
|
||||
case V_ABSOLUTELY:
|
||||
String unit;
|
||||
if (isValueType) {
|
||||
unit = ResultUnitEnum.V_RELATIVE_UNIT.getUnit();
|
||||
unit = ResultUnitEnum.V_RELATIVE.getUnit();
|
||||
} else {
|
||||
unit = ResultUnitEnum.V_ABSOLUTELY_UNIT.getUnit();
|
||||
unit = ResultUnitEnum.V_ABSOLUTELY.getUnit();
|
||||
}
|
||||
List<PqScriptDtls> v = dtls.stream().filter(x -> "VOL".equals(x.getValueType())).collect(Collectors.toList());
|
||||
dtlType.setScriptTypeName("叠加多次谐波对" + dictTree.getName() + "=" + v.get(0).getValue() + unit + "的影响");
|
||||
@@ -510,246 +507,240 @@ public class ResultServiceImpl implements IResultService {
|
||||
/**
|
||||
* 电流
|
||||
*/
|
||||
case "I":
|
||||
case I_RELATIVE:
|
||||
case I_ABSOLUTELY:
|
||||
break;
|
||||
/**
|
||||
* 谐波电压
|
||||
*/
|
||||
case "HV":
|
||||
case HV:
|
||||
break;
|
||||
/**
|
||||
* 谐波电流
|
||||
*/
|
||||
case "HI":
|
||||
case HI:
|
||||
break;
|
||||
/**
|
||||
* 间谐波电压
|
||||
*/
|
||||
case "HSV":
|
||||
case HSV:
|
||||
break;
|
||||
/**
|
||||
* 间谐波电流
|
||||
*/
|
||||
case "HSI":
|
||||
case HSI:
|
||||
break;
|
||||
/**
|
||||
* 三相电压不平衡度
|
||||
*/
|
||||
case "IMBV":
|
||||
case IMBV:
|
||||
break;
|
||||
/**
|
||||
* 三相电流不平衡度
|
||||
*/
|
||||
case "IMBA":
|
||||
case IMBA:
|
||||
break;
|
||||
/**
|
||||
* 谐波有功功率
|
||||
*/
|
||||
case "HP":
|
||||
break;
|
||||
/**
|
||||
* 功率
|
||||
*/
|
||||
case "P":
|
||||
case HP:
|
||||
break;
|
||||
/**
|
||||
* 闪变
|
||||
*/
|
||||
case "F":
|
||||
case F:
|
||||
break;
|
||||
/**
|
||||
* 暂态
|
||||
*/
|
||||
case "VOLTAGE":
|
||||
case VOLTAGE_MAG:
|
||||
case VOLTAGE_DUR:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void volScriptTypeName(List<PqScriptDtls> dtls, DictTree dictTree, Boolean isValueType, TreeDataVO dtlType) {
|
||||
switch (dictTree.getCode()) {
|
||||
ResultUnitEnum resultUnitEnumByCode = ResultUnitEnum.getResultUnitEnumByCode(dictTree.getCode());
|
||||
switch (resultUnitEnumByCode) {
|
||||
/**
|
||||
* 频率
|
||||
*/
|
||||
case "FREQ":
|
||||
case FREQ:
|
||||
String unit;
|
||||
if (isValueType) {
|
||||
unit = ResultUnitEnum.V_RELATIVE_UNIT.getUnit();
|
||||
unit = ResultUnitEnum.V_RELATIVE.getUnit();
|
||||
} else {
|
||||
unit = ResultUnitEnum.V_ABSOLUTELY_UNIT.getUnit();
|
||||
unit = ResultUnitEnum.V_ABSOLUTELY.getUnit();
|
||||
}
|
||||
List<PqScriptDtls> f = dtls.stream().filter(x -> "Freq".equals(x.getValueType())).collect(Collectors.toList());
|
||||
List<PqScriptDtls> v = dtls.stream().filter(x -> "VOL".equals(x.getValueType())).collect(Collectors.toList());
|
||||
dtlType.setScriptTypeName(v.get(0).getValue().intValue() + unit + "对" + dictTree.getName() + "=" + f.get(0).getValue() + ResultUnitEnum.FREQ_UNIT.getUnit() + "的影响");
|
||||
dtlType.setScriptTypeName(v.get(0).getValue().intValue() + unit + "对" + dictTree.getName() + "=" + f.get(0).getValue() + ResultUnitEnum.FREQ.getUnit() + "的影响");
|
||||
break;
|
||||
/**
|
||||
* 电压
|
||||
*/
|
||||
case "V":
|
||||
|
||||
case V_RELATIVE:
|
||||
case V_ABSOLUTELY:
|
||||
break;
|
||||
/**
|
||||
* 电流
|
||||
*/
|
||||
case "I":
|
||||
case I_RELATIVE:
|
||||
case I_ABSOLUTELY:
|
||||
break;
|
||||
/**
|
||||
* 谐波电压
|
||||
*/
|
||||
case "HV":
|
||||
case HV:
|
||||
//电压有效值10%,3次谐波电压,含有率
|
||||
List<PqScriptDtls> hvv = dtls.stream().filter(x -> "VOL".equals(x.getValueType())).collect(Collectors.toList());
|
||||
List<PqScriptDtls> hv = dtls.stream().filter(x -> "Harm_V".equals(x.getValueType())).collect(Collectors.toList());
|
||||
dtlType.setScriptTypeName("电压有效值" + hvv.get(0).getValue().intValue() + ResultUnitEnum.HV_UNIT.getUnit() + "," + hv.get(0).getHarmNum().intValue() + "次" + dictTree.getName());
|
||||
dtlType.setScriptTypeName("电压有效值" + hvv.get(0).getValue().intValue() + ResultUnitEnum.HV.getUnit() + "," + hv.get(0).getHarmNum().intValue() + "次" + dictTree.getName());
|
||||
break;
|
||||
/**
|
||||
* 谐波电流
|
||||
*/
|
||||
case "HI":
|
||||
case HI:
|
||||
List<PqScriptDtls> hiv = dtls.stream().filter(x -> "VOL".equals(x.getValueType())).collect(Collectors.toList());
|
||||
List<PqScriptDtls> hi = dtls.stream().filter(x -> "Harm_I".equals(x.getValueType())).collect(Collectors.toList());
|
||||
dtlType.setScriptTypeName("电压有效值" + hiv.get(0).getValue().intValue() + ResultUnitEnum.HI_UNIT.getUnit() + "," + hi.get(0).getHarmNum().intValue() + "次" + dictTree.getName());
|
||||
dtlType.setScriptTypeName("电压有效值" + hiv.get(0).getValue().intValue() + ResultUnitEnum.HI.getUnit() + "," + hi.get(0).getHarmNum().intValue() + "次" + dictTree.getName());
|
||||
break;
|
||||
/**
|
||||
* 间谐波电压
|
||||
*/
|
||||
case "HSV":
|
||||
case HSV:
|
||||
List<PqScriptDtls> hsvv = dtls.stream().filter(x -> "VOL".equals(x.getValueType())).collect(Collectors.toList());
|
||||
List<PqScriptDtls> hsv = dtls.stream().filter(x -> "InHarm_V".equals(x.getValueType())).collect(Collectors.toList());
|
||||
dtlType.setScriptTypeName("电压有效值" + hsvv.get(0).getValue().intValue() + ResultUnitEnum.HSV_UNIT.getUnit() + "," + hsv.get(0).getHarmNum() + "次" + dictTree.getName());
|
||||
dtlType.setScriptTypeName("电压有效值" + hsvv.get(0).getValue().intValue() + ResultUnitEnum.HSV.getUnit() + "," + hsv.get(0).getHarmNum() + "次" + dictTree.getName());
|
||||
break;
|
||||
/**
|
||||
* 间谐波电流
|
||||
*/
|
||||
case "HSI":
|
||||
case HSI:
|
||||
List<PqScriptDtls> hsiv = dtls.stream().filter(x -> "VOL".equals(x.getValueType())).collect(Collectors.toList());
|
||||
List<PqScriptDtls> hsi = dtls.stream().filter(x -> "InHarm_I".equals(x.getValueType())).collect(Collectors.toList());
|
||||
dtlType.setScriptTypeName("电压有效值" + hsiv.get(0).getValue().intValue() + ResultUnitEnum.HSI_UNIT.getUnit() + "," + hsi.get(0).getHarmNum() + "次" + dictTree.getName());
|
||||
dtlType.setScriptTypeName("电压有效值" + hsiv.get(0).getValue().intValue() + ResultUnitEnum.HSI.getUnit() + "," + hsi.get(0).getHarmNum() + "次" + dictTree.getName());
|
||||
break;
|
||||
/**
|
||||
* 三相电压不平衡度
|
||||
*/
|
||||
case "IMBV":
|
||||
case IMBV:
|
||||
break;
|
||||
/**
|
||||
* 三相电流不平衡度
|
||||
*/
|
||||
case "IMBA":
|
||||
case IMBA:
|
||||
break;
|
||||
/**
|
||||
* 谐波有功功率
|
||||
*/
|
||||
case "HP":
|
||||
break;
|
||||
/**
|
||||
* 功率
|
||||
*/
|
||||
case "P":
|
||||
case HP:
|
||||
break;
|
||||
/**
|
||||
* 闪变
|
||||
*/
|
||||
case "F":
|
||||
case F:
|
||||
break;
|
||||
/**
|
||||
* 暂态
|
||||
*/
|
||||
case "VOLTAGE":
|
||||
case VOLTAGE_MAG:
|
||||
case VOLTAGE_DUR:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void freqScriptTypeName(List<PqScriptDtls> dtls, DictTree dictTree, Boolean isValueType, TreeDataVO dtlType) {
|
||||
switch (dictTree.getCode()) {
|
||||
ResultUnitEnum resultUnitEnumByCode = ResultUnitEnum.getResultUnitEnumByCode(dictTree.getCode());
|
||||
switch (resultUnitEnumByCode) {
|
||||
/**
|
||||
* 频率
|
||||
*/
|
||||
case "FREQ":
|
||||
case FREQ:
|
||||
break;
|
||||
/**
|
||||
* 电压
|
||||
*/
|
||||
case "V":
|
||||
case V_RELATIVE:
|
||||
case V_ABSOLUTELY:
|
||||
String unit;
|
||||
if (isValueType) {
|
||||
unit = ResultUnitEnum.V_RELATIVE_UNIT.getUnit();
|
||||
unit = ResultUnitEnum.V_RELATIVE.getUnit();
|
||||
} else {
|
||||
unit = ResultUnitEnum.V_ABSOLUTELY_UNIT.getUnit();
|
||||
unit = ResultUnitEnum.V_ABSOLUTELY.getUnit();
|
||||
}
|
||||
List<PqScriptDtls> f = dtls.stream().filter(x -> "Freq".equals(x.getValueType())).collect(Collectors.toList());
|
||||
List<PqScriptDtls> v = dtls.stream().filter(x -> "VOL".equals(x.getValueType())).collect(Collectors.toList());
|
||||
dtlType.setScriptTypeName("频率=" + f.get(0).getValue() + ResultUnitEnum.FREQ_UNIT.getUnit() + "," + dictTree.getName() + "=" + v.get(0).getValue() + unit);
|
||||
dtlType.setScriptTypeName("频率=" + f.get(0).getValue() + ResultUnitEnum.FREQ.getUnit() + "," + dictTree.getName() + "=" + v.get(0).getValue() + unit);
|
||||
break;
|
||||
/**
|
||||
* 电流
|
||||
*/
|
||||
case "I":
|
||||
case I_RELATIVE:
|
||||
case I_ABSOLUTELY:
|
||||
break;
|
||||
/**
|
||||
* 谐波电压
|
||||
*/
|
||||
case "HV":
|
||||
case HV:
|
||||
//基波频率为42.5Hz,2次谐波电压
|
||||
List<PqScriptDtls> hvf = dtls.stream().filter(x -> "Freq".equals(x.getValueType())).collect(Collectors.toList());
|
||||
List<PqScriptDtls> hv = dtls.stream().filter(x -> "Harm_V".equals(x.getValueType())).collect(Collectors.toList());
|
||||
dtlType.setScriptTypeName("基波频率为" + hvf.get(0).getValue() + ResultUnitEnum.FREQ_UNIT.getUnit() + "," + hv.get(0).getHarmNum().intValue() + "次" + dictTree.getName());
|
||||
dtlType.setScriptTypeName("基波频率为" + hvf.get(0).getValue() + ResultUnitEnum.FREQ.getUnit() + "," + hv.get(0).getHarmNum().intValue() + "次" + dictTree.getName());
|
||||
break;
|
||||
/**
|
||||
* 谐波电流
|
||||
*/
|
||||
case "HI":
|
||||
case HI:
|
||||
List<PqScriptDtls> hif = dtls.stream().filter(x -> "Freq".equals(x.getValueType())).collect(Collectors.toList());
|
||||
List<PqScriptDtls> hi = dtls.stream().filter(x -> "Harm_I".equals(x.getValueType())).collect(Collectors.toList());
|
||||
dtlType.setScriptTypeName("基波频率为" + hif.get(0).getValue() + ResultUnitEnum.FREQ_UNIT.getUnit() + "," + hi.get(0).getHarmNum().intValue() + "次" + dictTree.getName());
|
||||
dtlType.setScriptTypeName("基波频率为" + hif.get(0).getValue() + ResultUnitEnum.FREQ.getUnit() + "," + hi.get(0).getHarmNum().intValue() + "次" + dictTree.getName());
|
||||
break;
|
||||
/**
|
||||
* 间谐波电压
|
||||
*/
|
||||
case "HSV":
|
||||
case HSV:
|
||||
List<PqScriptDtls> hsvf = dtls.stream().filter(x -> "Freq".equals(x.getValueType())).collect(Collectors.toList());
|
||||
List<PqScriptDtls> hsv = dtls.stream().filter(x -> "InHarm_V".equals(x.getValueType())).collect(Collectors.toList());
|
||||
dtlType.setScriptTypeName("基波频率为" + hsvf.get(0).getValue() + ResultUnitEnum.FREQ_UNIT.getUnit() + "," + hsv.get(0).getHarmNum() + "次" + dictTree.getName());
|
||||
dtlType.setScriptTypeName("基波频率为" + hsvf.get(0).getValue() + ResultUnitEnum.FREQ.getUnit() + "," + hsv.get(0).getHarmNum() + "次" + dictTree.getName());
|
||||
break;
|
||||
/**
|
||||
* 间谐波电流
|
||||
*/
|
||||
case "HSI":
|
||||
case HSI:
|
||||
List<PqScriptDtls> hsif = dtls.stream().filter(x -> "Freq".equals(x.getValueType())).collect(Collectors.toList());
|
||||
List<PqScriptDtls> hsi = dtls.stream().filter(x -> "InHarm_I".equals(x.getValueType())).collect(Collectors.toList());
|
||||
dtlType.setScriptTypeName("基波频率为" + hsif.get(0).getValue() + ResultUnitEnum.FREQ_UNIT.getUnit() + "," + hsi.get(0).getHarmNum() + "次" + dictTree.getName());
|
||||
dtlType.setScriptTypeName("基波频率为" + hsif.get(0).getValue() + ResultUnitEnum.FREQ.getUnit() + "," + hsi.get(0).getHarmNum() + "次" + dictTree.getName());
|
||||
break;
|
||||
/**
|
||||
* 三相电压不平衡度
|
||||
*/
|
||||
case "IMBV":
|
||||
case IMBV:
|
||||
break;
|
||||
/**
|
||||
* 三相电流不平衡度
|
||||
*/
|
||||
case "IMBA":
|
||||
case IMBA:
|
||||
break;
|
||||
/**
|
||||
* 谐波有功功率
|
||||
*/
|
||||
case "HP":
|
||||
break;
|
||||
/**
|
||||
* 功率
|
||||
*/
|
||||
case "P":
|
||||
case HP:
|
||||
break;
|
||||
/**
|
||||
* 闪变
|
||||
*/
|
||||
case "F":
|
||||
case F:
|
||||
break;
|
||||
/**
|
||||
* 暂态
|
||||
*/
|
||||
case "VOLTAGE":
|
||||
case VOLTAGE_MAG:
|
||||
case VOLTAGE_DUR:
|
||||
//频率=42.5H在,特征幅值=60%Un,持续时间=1周波
|
||||
List<PqScriptDtls> dipf = dtls.stream().filter(x -> "Freq".equals(x.getValueType())).collect(Collectors.toList());
|
||||
List<PqScriptDtls> dip = dtls.stream().filter(x -> "Dip".equals(x.getValueType())).collect(Collectors.toList());
|
||||
dtlType.setScriptTypeName("频率=" + dipf.get(0).getValue() + ResultUnitEnum.FREQ_UNIT.getUnit() + ",特征幅值=" + dip.get(0).getTransValue().intValue() + "%Un,持续时间=" + dip.get(0).getRetainTime().intValue() + "周波");
|
||||
dtlType.setScriptTypeName("频率=" + dipf.get(0).getValue() + ResultUnitEnum.FREQ.getUnit() + ",特征幅值=" + dip.get(0).getTransValue().intValue() + "%Un,持续时间=" + dip.get(0).getRetainTime().intValue() + "周波");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user