调整case枚举信息,调整数据处理原则

This commit is contained in:
wr
2025-02-10 16:22:36 +08:00
parent d2a8ddfbd2
commit 8bc0498b9f
3 changed files with 278 additions and 174 deletions

View File

@@ -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;
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}