From 7ba71562d868c0c79dd3ded2ac2afaf07c58cfc6 Mon Sep 17 00:00:00 2001 From: wr <1754607820@qq.com> Date: Fri, 28 Mar 2025 15:24:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=AD=A3=E5=BC=8F=E6=A3=80=E6=B5=8B=E6=A3=80?= =?UTF-8?q?=E6=B5=8B=E7=BB=93=E6=9E=9C=E5=A2=9E=E5=8A=A0=E5=8D=95=E4=BD=8D?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/enums/DetectionCodeEnum.java | 3 +- .../detection/pojo/vo/DetectionData.java | 4 + .../service/impl/DetectionServiceImpl.java | 74 ++++++++++++------- .../gather/detection/util/socket/MsgUtil.java | 10 --- .../detection/util/socket/UnitUtil.java | 63 ++++++++++++++++ .../gather/script/util/ScriptDtlsDesc.java | 9 +++ 6 files changed, 125 insertions(+), 38 deletions(-) create mode 100644 detection/src/main/java/com/njcn/gather/detection/util/socket/UnitUtil.java diff --git a/detection/src/main/java/com/njcn/gather/detection/pojo/enums/DetectionCodeEnum.java b/detection/src/main/java/com/njcn/gather/detection/pojo/enums/DetectionCodeEnum.java index 23f87ae6..175fda58 100644 --- a/detection/src/main/java/com/njcn/gather/detection/pojo/enums/DetectionCodeEnum.java +++ b/detection/src/main/java/com/njcn/gather/detection/pojo/enums/DetectionCodeEnum.java @@ -20,7 +20,7 @@ public enum DetectionCodeEnum { I2_50("I2-50", "谐波电流"), P2_50("P2-50", "谐波有功功率"), SV_1_49("SV_1-49", "间谐波电压"), - SI_1_49("SI_1-49", "间谐波电压"), + SI_1_49("SI_1-49", "间谐波电流"), MAG("MAG", "电压幅值"), DUR("DUR", "持续时间"), IRMS("IRMS", "电流有效值"), @@ -28,6 +28,7 @@ public enum DetectionCodeEnum { V_UNBAN("V_UNBAN", "三相电压负序不平衡度"), I_UNBAN("I_UNBAN", "三相电流负序不平衡度"), PST("PST", "短时间闪变"), + P("P", "功率"), I1("I1", "基波电流"), diff --git a/detection/src/main/java/com/njcn/gather/detection/pojo/vo/DetectionData.java b/detection/src/main/java/com/njcn/gather/detection/pojo/vo/DetectionData.java index aecdceaa..67ce2c96 100644 --- a/detection/src/main/java/com/njcn/gather/detection/pojo/vo/DetectionData.java +++ b/detection/src/main/java/com/njcn/gather/detection/pojo/vo/DetectionData.java @@ -44,4 +44,8 @@ public class DetectionData { */ private BigDecimal errorData; + /** + * 单位 + */ + private String unit; } diff --git a/detection/src/main/java/com/njcn/gather/detection/service/impl/DetectionServiceImpl.java b/detection/src/main/java/com/njcn/gather/detection/service/impl/DetectionServiceImpl.java index e0b4fbca..4f1c5286 100644 --- a/detection/src/main/java/com/njcn/gather/detection/service/impl/DetectionServiceImpl.java +++ b/detection/src/main/java/com/njcn/gather/detection/service/impl/DetectionServiceImpl.java @@ -35,6 +35,8 @@ import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; +import static com.njcn.gather.detection.util.socket.UnitUtil.unit; + /** * @author wr @@ -228,12 +230,15 @@ public class DetectionServiceImpl { result.setSort(sourceIssue.getIndex()); result.setDataType("avg"); Integer isQualified; + String valueTypeCode; List dtlsCheckData = errDtlsCheckData.stream().filter(x -> x.getValueTypeCode().equals(s.split("\\$")[1])).collect(Collectors.toList()); if (CollUtil.isNotEmpty(dtlsCheckData)) { result.setAdType(dtlsCheckData.get(0).getValueType()); isQualified = dtlsCheckData.get(0).getIsQualified(); + valueTypeCode = dtlsCheckData.get(0).getValueTypeCode(); } else { isQualified = 4; + valueTypeCode = ""; } List resultFlag = new ArrayList<>(); map.forEach((key, value) -> { @@ -241,9 +246,9 @@ public class DetectionServiceImpl { if (CollUtil.isNotEmpty(checkData)) { DetectionData detectionData; if (DUR.equals(devIndex)) { - detectionData = rangeDURComparisonList(value, isQualified, new ArrayList<>(), sourceIssue.getFFreq(), checkData.get(0).getValue(), dataRule); + detectionData = rangeDURComparisonList(value, isQualified, valueTypeCode, new ArrayList<>(), sourceIssue.getFFreq(), checkData.get(0).getValue(), dataRule); } else { - detectionData = rangeComparisonList(value, isQualified, new ArrayList<>(), null, checkData.get(0).getValue(), dataRule); + detectionData = rangeComparisonList(value, isQualified, valueTypeCode, new ArrayList<>(), null, checkData.get(0).getValue(), dataRule); } if (key.equals(TYPE_T)) { result.setTValue(JSON.toJSONString(detectionData)); @@ -308,17 +313,20 @@ public class DetectionServiceImpl { harmonicResult.setScriptId(sourceIssue.getScriptId()); harmonicResult.setSort(sourceIssue.getIndex()); Integer isQualified; + String valueTypeCode; List dtlsCheckData = errDtlsCheckData.stream().filter(x -> x.getValueTypeCode().equals(s.split("\\$")[1])).collect(Collectors.toList()); if (CollUtil.isNotEmpty(dtlsCheckData)) { harmonicResult.setAdType(dtlsCheckData.get(0).getValueType()); isQualified = dtlsCheckData.get(0).getIsQualified(); + valueTypeCode = dtlsCheckData.get(0).getValueTypeCode(); } else { isQualified = 4; + valueTypeCode = ""; } //电压下百分比给百分比直接算 电流是是下百分比给的是幅值要转换算 - List integerBooleanA = harmRangeComparison(isQualified, new ArrayList<>(), type, TYPE_A, sourceIssue, dataRule, devHarmMap.get(TYPE_A), fData, num); - List integerBooleanB = harmRangeComparison(isQualified, new ArrayList<>(), type, TYPE_B, sourceIssue, dataRule, devHarmMap.get(TYPE_B), fData, num); - List integerBooleanC = harmRangeComparison(isQualified, new ArrayList<>(), type, TYPE_C, sourceIssue, dataRule, devHarmMap.get(TYPE_C), fData, num); + List integerBooleanA = harmRangeComparison(isQualified, valueTypeCode, new ArrayList<>(), type, TYPE_A, sourceIssue, dataRule, devHarmMap.get(TYPE_A), fData, num); + List integerBooleanB = harmRangeComparison(isQualified, valueTypeCode, new ArrayList<>(), type, TYPE_B, sourceIssue, dataRule, devHarmMap.get(TYPE_B), fData, num); + List integerBooleanC = harmRangeComparison(isQualified, valueTypeCode, new ArrayList<>(), type, TYPE_C, sourceIssue, dataRule, devHarmMap.get(TYPE_C), fData, num); harmonicResult.setDataType("avg"); reflectHarmonic("a", integerBooleanA, harmonicResult, num); reflectHarmonic("b", integerBooleanB, harmonicResult, num); @@ -384,11 +392,13 @@ public class DetectionServiceImpl { result.setDataType("avg"); List pqErrSysDtls = new ArrayList<>(); Integer isQualified = 4; + String valueTypeCode = ""; if (CollUtil.isNotEmpty(errDtlsCheckData)) { List dtlsCheckData = errDtlsCheckData.stream().filter(x -> x.getValueTypeCode().equals(s.split("\\$")[1])).collect(Collectors.toList()); if (CollUtil.isNotEmpty(dtlsCheckData)) { result.setAdType(dtlsCheckData.get(0).getValueType()); isQualified = dtlsCheckData.get(0).getIsQualified(); + valueTypeCode = dtlsCheckData.get(0).getValueTypeCode(); if (CollUtil.isNotEmpty(dtlsCheckData.get(0).getErrSysDtls())) { pqErrSysDtls = dtlsCheckData.get(0).getErrSysDtls(); } @@ -396,7 +406,7 @@ public class DetectionServiceImpl { if (map.containsKey(TYPE_T)) { List checkDataT = dtlsCheckData.stream().filter(x -> TYPE_T.equals(x.getPhase())).collect(Collectors.toList()); if (CollUtil.isNotEmpty(checkDataT)) { - DetectionData t = rangeComparisonList(map.get(TYPE_T), isQualified, pqErrSysDtls, fData, checkDataT.get(0).getValue(), dataRule); + DetectionData t = rangeComparisonList(map.get(TYPE_T), isQualified, valueTypeCode, pqErrSysDtls, fData, checkDataT.get(0).getValue(), dataRule); result.setTValue(JSON.toJSONString(t)); result.setResultFlag(t.getIsData()); } @@ -405,19 +415,19 @@ public class DetectionServiceImpl { //取出源所对应的相别信息 List checkDataA = dtlsCheckData.stream().filter(x -> TYPE_A.equals(x.getPhase())).collect(Collectors.toList()); if (CollUtil.isNotEmpty(checkDataA)) { - DetectionData a = rangeComparisonList(map.get(TYPE_A), isQualified, pqErrSysDtls, fData, checkDataA.get(0).getValue(), dataRule); + DetectionData a = rangeComparisonList(map.get(TYPE_A), isQualified, valueTypeCode, pqErrSysDtls, fData, checkDataA.get(0).getValue(), dataRule); resultFlag.add(a); result.setAValue(JSON.toJSONString(a)); } List checkDataB = dtlsCheckData.stream().filter(x -> TYPE_B.equals(x.getPhase())).collect(Collectors.toList()); if (CollUtil.isNotEmpty(checkDataB)) { - DetectionData b = rangeComparisonList(map.get(TYPE_B), isQualified, pqErrSysDtls, fData, checkDataB.get(0).getValue(), dataRule); + DetectionData b = rangeComparisonList(map.get(TYPE_B), isQualified, valueTypeCode, pqErrSysDtls, fData, checkDataB.get(0).getValue(), dataRule); resultFlag.add(b); result.setBValue(JSON.toJSONString(b)); } List checkDataC = dtlsCheckData.stream().filter(x -> TYPE_C.equals(x.getPhase())).collect(Collectors.toList()); if (CollUtil.isNotEmpty(checkDataC)) { - DetectionData c = rangeComparisonList(map.get(TYPE_C), isQualified, pqErrSysDtls, fData, checkDataC.get(0).getValue(), dataRule); + DetectionData c = rangeComparisonList(map.get(TYPE_C), isQualified, valueTypeCode, pqErrSysDtls, fData, checkDataC.get(0).getValue(), dataRule); resultFlag.add(c); result.setCValue(JSON.toJSONString(c)); } @@ -488,16 +498,18 @@ public class DetectionServiceImpl { harmonicResult.setSort(sourceIssue.getIndex()); List pqErrSysDtls = new ArrayList<>(); Integer isQualified = 4; + String valueTypeCode = ""; if (CollUtil.isNotEmpty(errDtlsCheckData)) { harmonicResult.setAdType(errDtlsCheckData.get(0).getValueType()); isQualified = errDtlsCheckData.get(0).getIsQualified(); + valueTypeCode = errDtlsCheckData.get(0).getValueTypeCode(); if (CollUtil.isNotEmpty(errDtlsCheckData.get(0).getErrSysDtls())) { pqErrSysDtls = errDtlsCheckData.get(0).getErrSysDtls(); } } - List integerBooleanA = harmRangeComparison(isQualified, pqErrSysDtls, type, TYPE_A, sourceIssue, dataRule, devMap.get(TYPE_A), fData, num); - List integerBooleanB = harmRangeComparison(isQualified, pqErrSysDtls, type, TYPE_B, sourceIssue, dataRule, devMap.get(TYPE_B), fData, num); - List integerBooleanC = harmRangeComparison(isQualified, pqErrSysDtls, type, TYPE_C, sourceIssue, dataRule, devMap.get(TYPE_C), fData, num); + List integerBooleanA = harmRangeComparison(isQualified, valueTypeCode, pqErrSysDtls, type, TYPE_A, sourceIssue, dataRule, devMap.get(TYPE_A), fData, num); + List integerBooleanB = harmRangeComparison(isQualified, valueTypeCode, pqErrSysDtls, type, TYPE_B, sourceIssue, dataRule, devMap.get(TYPE_B), fData, num); + List integerBooleanC = harmRangeComparison(isQualified, valueTypeCode, pqErrSysDtls, type, TYPE_C, sourceIssue, dataRule, devMap.get(TYPE_C), fData, num); harmonicResult.setDataType("avg"); reflectHarmonic("a", integerBooleanA, harmonicResult, num); reflectHarmonic("b", integerBooleanB, harmonicResult, num); @@ -551,9 +563,11 @@ public class DetectionServiceImpl { result.setSort(sourceIssue.getIndex()); List pqErrSysDtls = new ArrayList<>(); Integer isQualified = 4; + String valueTypeCode = ""; if (CollUtil.isNotEmpty(errDtlsCheckData)) { result.setAdType(errDtlsCheckData.get(0).getValueType()); isQualified = errDtlsCheckData.get(0).getIsQualified(); + valueTypeCode = errDtlsCheckData.get(0).getValueTypeCode(); if (CollUtil.isNotEmpty(errDtlsCheckData.get(0).getErrSysDtls())) { pqErrSysDtls = errDtlsCheckData.get(0).getErrSysDtls(); } @@ -564,19 +578,19 @@ public class DetectionServiceImpl { List channelTypeAList = checkData.stream() .filter(x -> TYPE_A.equals(x.getPhase())) .collect(Collectors.toList()); - DetectionData a = rangeComparisonList(map.get(TYPE_A), isQualified, pqErrSysDtls, fData, channelTypeAList.get(0).getValue(), dataRule); + DetectionData a = rangeComparisonList(map.get(TYPE_A), isQualified, valueTypeCode, pqErrSysDtls, fData, channelTypeAList.get(0).getValue(), dataRule); result.setAValue(JSON.toJSONString(a)); List channelTypeBList = checkData.stream() .filter(x -> TYPE_B.equals(x.getPhase())) .collect(Collectors.toList()); - DetectionData b = rangeComparisonList(map.get(TYPE_B), isQualified, pqErrSysDtls, fData, channelTypeBList.get(0).getValue(), dataRule); + DetectionData b = rangeComparisonList(map.get(TYPE_B), isQualified, valueTypeCode, pqErrSysDtls, fData, channelTypeBList.get(0).getValue(), dataRule); result.setBValue(JSON.toJSONString(b)); List channelTypeCList = checkData.stream() .filter(x -> TYPE_C.equals(x.getPhase())) .collect(Collectors.toList()); - DetectionData c = rangeComparisonList(map.get(TYPE_C), isQualified, pqErrSysDtls, fData, channelTypeCList.get(0).getValue(), dataRule); + DetectionData c = rangeComparisonList(map.get(TYPE_C), isQualified, valueTypeCode, pqErrSysDtls, fData, channelTypeCList.get(0).getValue(), dataRule); result.setCValue(JSON.toJSONString(c)); result.setResultFlag(setResultFlag(Arrays.asList(a, b, c))); @@ -584,7 +598,7 @@ public class DetectionServiceImpl { List channelTypeBList = checkData.stream() .filter(x -> TYPE_T.equals(x.getPhase())) .collect(Collectors.toList()); - DetectionData t = rangeComparisonList(map.get(TYPE_B), isQualified, pqErrSysDtls, fData, channelTypeBList.get(0).getValue(), dataRule); + DetectionData t = rangeComparisonList(map.get(TYPE_B), isQualified, valueTypeCode, pqErrSysDtls, fData, channelTypeBList.get(0).getValue(), dataRule); result.setTValue(JSON.toJSONString(t)); result.setResultFlag(setResultFlag(Arrays.asList(t))); } @@ -658,9 +672,11 @@ public class DetectionServiceImpl { result.setDataType("avg"); List magErrList = new ArrayList<>(); Integer isQualified = 4; + String valueTypeCode = ""; if (CollUtil.isNotEmpty(errDtlsCheckData)) { result.setAdType(errDtlsCheckData.get(0).getValueType()); isQualified = errDtlsCheckData.get(0).getIsQualified(); + valueTypeCode = errDtlsCheckData.get(0).getValueTypeCode(); if (CollUtil.isNotEmpty(errDtlsCheckData.get(0).getErrSysDtls())) { magErrList = errDtlsCheckData.get(0).getErrSysDtls(); } @@ -669,36 +685,36 @@ public class DetectionServiceImpl { List channelTypeAList = sourceIssue.getChannelList().stream() .filter(x -> ("Ua").equals(x.getChannelType())) .collect(Collectors.toList()); - DetectionData a = setDetectionData(isQualified, dataRule, mag, fData, dur, magErrList, channelTypeAList, TYPE_A); + DetectionData a = setDetectionData(isQualified, valueTypeCode, dataRule, mag, fData, dur, magErrList, channelTypeAList, TYPE_A); result.setAValue(JSON.toJSONString(a)); List channelTypeBList = sourceIssue.getChannelList().stream() .filter(x -> ("Ub").equals(x.getChannelType())) .collect(Collectors.toList()); - DetectionData b = setDetectionData(isQualified, dataRule, mag, fData, dur, magErrList, channelTypeBList, TYPE_B); + DetectionData b = setDetectionData(isQualified, valueTypeCode, dataRule, mag, fData, dur, magErrList, channelTypeBList, TYPE_B); result.setBValue(JSON.toJSONString(b)); List channelTypeCList = sourceIssue.getChannelList().stream() .filter(x -> ("Uc").equals(x.getChannelType())) .collect(Collectors.toList()); - DetectionData c = setDetectionData(isQualified, dataRule, mag, fData, dur, magErrList, channelTypeCList, TYPE_C); + DetectionData c = setDetectionData(isQualified, valueTypeCode, dataRule, mag, fData, dur, magErrList, channelTypeCList, TYPE_C); result.setCValue(JSON.toJSONString(c)); result.setResultFlag(setResultFlag(Arrays.asList(a, b, c))); return result; } - private DetectionData setDetectionData(Integer isQualified, DictDataEnum dataRule, Map> mag, Double fData, String dur, List magErrList, List channelTypeCList, String typeC) { + private DetectionData setDetectionData(Integer isQualified, String valueTypeCode, DictDataEnum dataRule, Map> mag, Double fData, String dur, List magErrList, List channelTypeCList, String typeC) { DetectionData c; if (DUR.equals(dur)) { - c = rangeDURComparisonList(mag.get(typeC), isQualified, magErrList, fData, channelTypeCList.get(0).getDipData().getRetainTime(), dataRule); + c = rangeDURComparisonList(mag.get(typeC), isQualified, valueTypeCode, magErrList, fData, channelTypeCList.get(0).getDipData().getRetainTime(), dataRule); } else { List ampData = mag.get(typeC).stream() .filter(x -> ObjectUtil.isNotNull(x)) .map(x -> x * channelTypeCList.get(0).getFAmp() * 0.01) .collect(Collectors.toList()); - c = rangeComparisonList(ampData, isQualified, magErrList, fData, channelTypeCList.get(0).getDipData().getFTransValue(), dataRule); + c = rangeComparisonList(ampData, isQualified, valueTypeCode, magErrList, fData, channelTypeCList.get(0).getDipData().getFTransValue(), dataRule); } return c; } @@ -825,6 +841,7 @@ public class DetectionServiceImpl { * @return */ public List harmRangeComparison(Integer isQualified, + String valueTypeCode, List pqErrSysDtls, String type, String phase, @@ -894,6 +911,7 @@ public class DetectionServiceImpl { NumberFormat nf = NumberFormat.getInstance(); nf.setMaximumFractionDigits(6); nf.setGroupingUsed(false); + data.setUnit(unit(valueTypeCode, errSysDtl.getErrorValueType())); data.setRadius(nf.format(-errSys.getMaxErrorValue()) + "~" + nf.format(errSys.getMaxErrorValue())); setDetection(dataRule, harmDataList, errSys, data, v); } @@ -1057,7 +1075,7 @@ public class DetectionServiceImpl { * @param dataRule 数据处理原则 * @returnd */ - public DetectionData rangeComparisonList(List list, Integer isQualified, List pqErrSysDtls, Double data, Double channelData, DictDataEnum dataRule) { + public DetectionData rangeComparisonList(List list, Integer isQualified, String valueTypeCode, List pqErrSysDtls, Double data, Double channelData, DictDataEnum dataRule) { DetectionData detectionData = new DetectionData(); detectionData.setIsData(isQualified); if (CollUtil.isNotEmpty(list)) { @@ -1075,6 +1093,7 @@ public class DetectionServiceImpl { NumberFormat nf = NumberFormat.getInstance(); nf.setMaximumFractionDigits(6); nf.setGroupingUsed(false); + detectionData.setUnit(unit(valueTypeCode, errSysDtl.getErrorValueType())); errSysDtl.setMaxErrorValue(maxErrorMultiply(errSysDtl.getMaxErrorValue(), data, channelData, errSysDtl.getErrorValueType())); detectionData.setRadius(nf.format(-errSysDtl.getMaxErrorValue()) + "~" + nf.format(errSysDtl.getMaxErrorValue())); setDetection(dataRule, list, errSysDtl, detectionData, channelData); @@ -1083,7 +1102,7 @@ public class DetectionServiceImpl { return detectionData; } - public DetectionData rangeDURComparisonList(List list, Integer isQualified, List pqErrSysDtls, Double data, Double channelData, DictDataEnum dataRule) { + public DetectionData rangeDURComparisonList(List list, Integer isQualified, String valueTypeCode, List pqErrSysDtls, Double data, Double channelData, DictDataEnum dataRule) { DetectionData detectionData = new DetectionData(); detectionData.setIsData(isQualified); if (CollUtil.isNotEmpty(list)) { @@ -1102,6 +1121,7 @@ public class DetectionServiceImpl { NumberFormat nf = NumberFormat.getInstance(); nf.setMaximumFractionDigits(6); nf.setGroupingUsed(false); + detectionData.setUnit(unit(valueTypeCode, errSysDtl.getErrorValueType())); detectionData.setRadius(nf.format(BigDecimal.valueOf(1.0 / data * (channelData - errSysDtl.getMaxErrorValue()))) + "~" + nf.format(BigDecimal.valueOf(1.0 / data * (channelData + errSysDtl.getMaxErrorValue())))); List qualifiedList = list.stream() @@ -1179,11 +1199,11 @@ public class DetectionServiceImpl { switch (errorValueType) { case 2: //下发的谐波电压幅值,返回的是谐波电压含有率,拿(含有率值*基波 - 源下发对应谐波值幅值)/下发的幅值 - return subtract + return subtract.multiply(BigDecimal.valueOf(100)) .divide(BigDecimal.valueOf(channelData), 4, RoundingMode.HALF_UP); case 3: //下发的谐波电压幅值,返回的是谐波电压含有率,拿(含有率值*基波 - 源下发对应谐波值幅值)/装置返回值 - return subtract + return subtract.multiply(BigDecimal.valueOf(100)) .divide(BigDecimal.valueOf(devData), 4, RoundingMode.HALF_UP); } return subtract; @@ -1240,7 +1260,7 @@ public class DetectionServiceImpl { .setScale(4, RoundingMode.HALF_UP).doubleValue(); case 2: case 3: - return BigDecimal.valueOf(errorValue).multiply(BigDecimal.valueOf(harmData)) + return BigDecimal.valueOf(errorValue).multiply(BigDecimal.valueOf(100)) .setScale(4, RoundingMode.HALF_UP).doubleValue(); default: return errorValue; diff --git a/detection/src/main/java/com/njcn/gather/detection/util/socket/MsgUtil.java b/detection/src/main/java/com/njcn/gather/detection/util/socket/MsgUtil.java index dd32af4c..1672adbd 100644 --- a/detection/src/main/java/com/njcn/gather/detection/util/socket/MsgUtil.java +++ b/detection/src/main/java/com/njcn/gather/detection/util/socket/MsgUtil.java @@ -1,21 +1,11 @@ package com.njcn.gather.detection.util.socket; -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.date.DatePattern; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.serializer.SerializerFeature; -import com.njcn.gather.detection.pojo.po.DevData; import com.njcn.gather.detection.pojo.vo.SocketDataMsg; -import com.njcn.gather.storage.pojo.po.AdHarmonicResult; -import com.njcn.gather.storage.pojo.po.AdNonHarmonicResult; -import java.lang.reflect.Field; -import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.List; import java.util.Map; -import java.util.stream.Collectors; /** * @author wr diff --git a/detection/src/main/java/com/njcn/gather/detection/util/socket/UnitUtil.java b/detection/src/main/java/com/njcn/gather/detection/util/socket/UnitUtil.java new file mode 100644 index 00000000..6678714c --- /dev/null +++ b/detection/src/main/java/com/njcn/gather/detection/util/socket/UnitUtil.java @@ -0,0 +1,63 @@ +package com.njcn.gather.detection.util.socket; + +import com.njcn.gather.detection.pojo.enums.DetectionCodeEnum; + +import java.util.Arrays; + +/** + * @author wr + * @description + * @date 2025/3/27 14:58 + */ +public class UnitUtil { + public static String unit(String code, Integer fly) { + String unit = ""; + if (Arrays.asList(0, 1).contains(fly)) { + if (DetectionCodeEnum.FREQ.getCode().equals(code)) { + unit = "Hz"; + } + if (DetectionCodeEnum.VRMS.getCode().equals(code)) { + unit = "V"; + } + if (DetectionCodeEnum.IRMS.getCode().equals(code)) { + unit = "A"; + } + if (DetectionCodeEnum.V2_50.getCode().equals(code) || + DetectionCodeEnum.SV_1_49.getCode().equals(code)|| + DetectionCodeEnum.V_UNBAN.getCode().equals(code) || + DetectionCodeEnum.I_UNBAN.getCode().equals(code) + ) { + unit = "%"; + } + if (DetectionCodeEnum.I2_50.getCode().equals(code) || + DetectionCodeEnum.SI_1_49.getCode().equals(code) + ) { + unit = "A"; + } + if (DetectionCodeEnum.P2_50.getCode().equals(code)) { + unit = "W"; + } + if (DetectionCodeEnum.P.getCode().equals(code)) { + unit = "P"; + } + if (DetectionCodeEnum.MAG.getCode().equals(code)) { + unit = "%"; + } + if (DetectionCodeEnum.DUR.getCode().equals(code)) { + unit = "s"; + } + if (DetectionCodeEnum.VA.getCode().equals(code) || + DetectionCodeEnum.IA.getCode().equals(code) + ) { + unit = "°"; + } + if (DetectionCodeEnum.DELTA_V.getCode().equals(code) + ) { + unit = "%"; + } + }else{ + unit = "%"; + } + return unit; + } +} diff --git a/detection/src/main/java/com/njcn/gather/script/util/ScriptDtlsDesc.java b/detection/src/main/java/com/njcn/gather/script/util/ScriptDtlsDesc.java index f9f784ac..06884ddd 100644 --- a/detection/src/main/java/com/njcn/gather/script/util/ScriptDtlsDesc.java +++ b/detection/src/main/java/com/njcn/gather/script/util/ScriptDtlsDesc.java @@ -16,6 +16,15 @@ import java.util.stream.Collectors; * @date 2025/1/13 22:05 */ public class ScriptDtlsDesc { + /** + * @Description: + * @param scriptDtlIndex 检测脚本集合 + * @param isScript 是否为下源检测脚本(true 则为下源检测脚本里面所有单位都是值类型) + * @param isValueType 用来检测脚本是相对类型,还是绝对类型 + * @return: java.lang.StringBuffer + * @Author: wr + * @Date: 2025/3/27 15:20 + */ public static StringBuffer getStringBuffer(List scriptDtlIndex,Boolean isScript, Boolean isValueType) { if (ObjectUtil.isNull(isValueType)) { isValueType = true;