diff --git a/detection/src/main/java/com/njcn/gather/detection/handler/SocketDevResponseService.java b/detection/src/main/java/com/njcn/gather/detection/handler/SocketDevResponseService.java index 95422970..6daa3965 100644 --- a/detection/src/main/java/com/njcn/gather/detection/handler/SocketDevResponseService.java +++ b/detection/src/main/java/com/njcn/gather/detection/handler/SocketDevResponseService.java @@ -1288,10 +1288,18 @@ public class SocketDevResponseService { if (devPhase > 180) { phase = devPhase - 360; } + + Double fPhase = channelListDTO.getFPhase(); + if (fPhase < -180) { + fPhase = fPhase + 360; + } + if (fPhase > 180) { + fPhase = fPhase - 360; + } return NumberUtil.isIn(BigDecimal.valueOf(phase), - BigDecimal.valueOf(channelListDTO.getFPhase() - 1), - BigDecimal.valueOf(channelListDTO.getFPhase() + 1)); + BigDecimal.valueOf(fPhase - 1), + BigDecimal.valueOf(fPhase + 1)); } 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 new file mode 100644 index 00000000..2d8edda3 --- /dev/null +++ b/detection/src/main/java/com/njcn/gather/detection/pojo/enums/DetectionCodeEnum.java @@ -0,0 +1,32 @@ +package com.njcn.gather.detection.pojo.enums; + +import lombok.Getter; + +/** + * @Description: + * @Author: wr + * @Date: 2025/2/12 10:15 + */ +@Getter +public enum DetectionCodeEnum { + + U1("U1", "基波电压"), + V2_50("V2-50", "谐波电压"), + SV_1_49("SV_1-49", "间谐波电压"), + I1("I1", "基波电流"), + I2_50("I2-50", "谐波电流"), + SI_1_49("SI_1-49", "间谐波电压"), + P2_50("P2-50", "谐波有功功率"), + + + + ; + + private final String code; + private final String message; + + DetectionCodeEnum(String code, String message) { + this.code = code; + this.message = message; + } +} 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 b72cdfd4..1183ca66 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 @@ -8,6 +8,7 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.njcn.gather.detection.pojo.enums.DetectionCodeEnum; import com.njcn.gather.detection.pojo.param.PreDetectionParam; import com.njcn.gather.detection.pojo.po.DevData; import com.njcn.gather.detection.pojo.vo.DetectionData; @@ -112,57 +113,81 @@ public class DetectionServiceImpl { */ case HV: AdHarmonicResult harmV = isHarmQualified(dev, devIdMapComm, errDtlsCheckData, U, sourceIssue, dataRule, 2); - detectionDataDealService.acceptAdResult(Arrays.asList(harmV), code); - return harmV.getResultFlag(); + if (ObjectUtil.isNull(harmV)) { + detectionDataDealService.acceptAdResult(Arrays.asList(harmV), code); + return harmV.getResultFlag(); + } + return 4; /** * 谐波电流 */ case HI: AdHarmonicResult harmI = isHarmQualified(dev, devIdMapComm, errDtlsCheckData, I, sourceIssue, dataRule, 2); - detectionDataDealService.acceptAdResult(Arrays.asList(harmI), code); - return harmI.getResultFlag(); + if (ObjectUtil.isNull(harmI)) { + detectionDataDealService.acceptAdResult(Arrays.asList(harmI), code); + return harmI.getResultFlag(); + } + return 4; /** * 间谐波电压 */ case HSV: AdHarmonicResult harmInV = isHarmQualified(dev, devIdMapComm, errDtlsCheckData, U, sourceIssue, dataRule, 1); - detectionDataDealService.acceptAdResult(Arrays.asList(harmInV), code); - return harmInV.getResultFlag(); + if (ObjectUtil.isNull(harmInV)) { + detectionDataDealService.acceptAdResult(Arrays.asList(harmInV), code); + return harmInV.getResultFlag(); + } + return 4; /** * 间谐波电流 */ case HSI: AdHarmonicResult harmInI = isHarmQualified(dev, devIdMapComm, errDtlsCheckData, I, sourceIssue, dataRule, 1); - detectionDataDealService.acceptAdResult(Arrays.asList(harmInI), code); - return harmInI.getResultFlag(); + if (ObjectUtil.isNull(harmInI)) { + detectionDataDealService.acceptAdResult(Arrays.asList(harmInI), code); + return harmInI.getResultFlag(); + } + return 4; /** * 三相电压不平衡度 */ case IMBV: AdNonHarmonicResult vUnban = isUnBalanceOrFlickerQualified(dev, devIdMapComm, errDtlsCheckData, U, sourceIssue, dataRule, "V_UNBAN"); - detectionDataDealService.acceptAdNonResult(Arrays.asList(vUnban), code); - return vUnban.getResultFlag(); + if (ObjectUtil.isNull(vUnban)) { + detectionDataDealService.acceptAdNonResult(Arrays.asList(vUnban), code); + return vUnban.getResultFlag(); + } + return 4; /** * 三相电流不平衡度 */ case IMBA: AdNonHarmonicResult iUnban = isUnBalanceOrFlickerQualified(dev, devIdMapComm, errDtlsCheckData, I, sourceIssue, dataRule, "I_UNBAN"); - detectionDataDealService.acceptAdNonResult(Arrays.asList(iUnban), code); - return iUnban.getResultFlag(); + if (ObjectUtil.isNull(iUnban)) { + detectionDataDealService.acceptAdNonResult(Arrays.asList(iUnban), code); + return iUnban.getResultFlag(); + } + return 4; /** * 谐波有功功率 */ case HP: AdHarmonicResult harmP = isHarmQualified(dev, devIdMapComm, errDtlsCheckData, P, sourceIssue, dataRule, 2); - detectionDataDealService.acceptAdResult(Arrays.asList(harmP), code); - return harmP.getResultFlag(); + if (ObjectUtil.isNull(harmP)) { + detectionDataDealService.acceptAdResult(Arrays.asList(harmP), code); + return harmP.getResultFlag(); + } + return 4; /** * 闪变 */ case F: AdNonHarmonicResult pst = isUnBalanceOrFlickerQualified(dev, devIdMapComm, errDtlsCheckData, null, sourceIssue, dataRule, "PST"); - detectionDataDealService.acceptAdNonResult(Arrays.asList(pst), code); - return pst.getResultFlag(); + if (ObjectUtil.isNull(pst)) { + detectionDataDealService.acceptAdNonResult(Arrays.asList(pst), code); + return pst.getResultFlag(); + } + return 4; /** * 暂态 */ @@ -170,8 +195,7 @@ public class DetectionServiceImpl { case VOLTAGE_DUR: return isVoltageQualified(dev, devIdMapComm, errDtlsCheckData, sourceIssue, dataRule, code); default: -// return isUnknownQualified(dev, devIdMapComm, errDtlsCheckData, sourceIssue, dataRule, code); - return 4; + return isUnknownQualified(dev, devIdMapComm, errDtlsCheckData, sourceIssue, dataRule, code); } } @@ -182,49 +206,126 @@ public class DetectionServiceImpl { DictDataEnum dataRule, String code) { List info = new ArrayList<>(); + List harmonicResultList = new ArrayList<>(); List devValueTypeList = sourceIssue.getDevValueTypeList(); + //非谐波指标 + List harmDesc = dev.stream().flatMap(x -> x.getSqlData().stream()).map(DevData.SqlDataDTO::getDesc).distinct().collect(Collectors.toList()); + //谐波类型 + List inHarm = dev.stream().flatMap(x -> x.getSqlDataHarm().stream()).map(DevData.SqlDataHarmDTO::getDesc).distinct().collect(Collectors.toList()); for (String s : devValueTypeList) { - //基本数据 - Map> 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 dtlsCheckData = errDtlsCheckData.stream().filter(x -> x.getValueTypeCode().equals(s.split("\\$")[1])).collect(Collectors.toList()); - List resultFlag = new ArrayList<>(); - map.forEach((key, value) -> { - List 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)); + String devIndex = s.split("\\$")[1]; + if (harmDesc.contains(devIndex)) { + //基本数据(频率,电压,电流) + Map> map = devListMap(dev, dataRule, devIndex); + 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 dtlsCheckData = errDtlsCheckData.stream().filter(x -> x.getValueTypeCode().equals(s.split("\\$")[1])).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(dtlsCheckData)) { + result.setAdType(dtlsCheckData.get(0).getValueType()); } - if (key.equals(TYPE_A)) { - result.setAValue(JSON.toJSONString(detectionData)); + List resultFlag = new ArrayList<>(); + map.forEach((key, value) -> { + List checkData = dtlsCheckData.stream().filter(x -> key.equals(x.getPhase())).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(checkData)){ + DetectionData detectionData; + if (DUR.equals(devIndex)) { + detectionData = rangeDURComparisonList(value, new ArrayList<>(), sourceIssue.getFFreq(), checkData.get(0).getValue(), dataRule); + } else { + 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); + } + + if (inHarm.contains(devIndex)) { + String fundCode = ""; + String harmCode = ""; + Integer num = 1; + String type = ""; + Double fData = 1.0; + if (devIndex.contains("V")) { + fundCode = DetectionCodeEnum.U1.getCode(); + num = 2; + type = U; + fData = sourceIssue.getFUn(); + if (devIndex.contains("50")) { + harmCode = DetectionCodeEnum.V2_50.getCode(); + } + if (devIndex.contains("49")) { + harmCode = DetectionCodeEnum.SV_1_49.getCode(); + } } - if (key.equals(TYPE_B)) { - result.setBValue(JSON.toJSONString(detectionData)); + if (devIndex.contains("I")) { + fundCode = DetectionCodeEnum.I1.getCode();; + type = I; + fData = sourceIssue.getFIn(); + if (devIndex.contains("50")) { + harmCode =DetectionCodeEnum.I2_50.getCode(); + } + if (devIndex.contains("49")) { + harmCode = DetectionCodeEnum.SI_1_49.getCode(); + } } - if (key.equals(TYPE_C)) { - result.setCValue(JSON.toJSONString(detectionData)); + if (devIndex.contains("P")) { + type = P; + harmCode = DetectionCodeEnum.P2_50.getCode(); + fData = sourceIssue.getFIn() * sourceIssue.getFUn() * 0.01; } - resultFlag.add(detectionData); - }); - result.setResultFlag(setResultFlag(resultFlag)); - info.add(result); - //谐波 - Map>> devHarmMap = devHarmListMap(dev, sourceIssue, dataRule, 2); - List detectionData = harmRangeComparison(new ArrayList<>(), null, TYPE_T, sourceIssue, dataRule, devHarmMap.get(TYPE_T), sourceIssue.getFUn(), 2); - //间谐波 - Map>> devInHarmMap = devHarmListMap(dev, sourceIssue, dataRule, 1); + Map>> devHarmMap = devHarmListMap(dev, sourceIssue, dataRule, fundCode, harmCode, num); + if(CollUtil.isNotEmpty(devHarmMap)){ + AdHarmonicResult harmonicResult = new AdHarmonicResult(); + String[] split = dev.get(0).getId().split("_"); + String devID = devIdMapComm.get(split[0]); + harmonicResult.setMonitorId(devID + "_" + split[1]); + harmonicResult.setScriptId(sourceIssue.getScriptId()); + harmonicResult.setSort(sourceIssue.getIndex()); + 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()); + } + List integerBooleanA = harmRangeComparison(new ArrayList<>(), type, TYPE_A, sourceIssue, dataRule, devHarmMap.get(TYPE_A), fData, num); + List integerBooleanB = harmRangeComparison(new ArrayList<>(), type, TYPE_B, sourceIssue, dataRule, devHarmMap.get(TYPE_B), fData, num); + List integerBooleanC = harmRangeComparison(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); + reflectHarmonic("c", integerBooleanC, harmonicResult, num); + List list = new ArrayList<>(); + list.addAll(integerBooleanA.stream().distinct().collect(Collectors.toList())); + list.addAll(integerBooleanB.stream().distinct().collect(Collectors.toList())); + list.addAll(integerBooleanC.stream().distinct().collect(Collectors.toList())); + harmonicResult.setResultFlag(setResultFlag(list)); + harmonicResultList.add(harmonicResult); + } + } + } if (CollUtil.isNotEmpty(info)) { detectionDataDealService.acceptAdNonResult(info, code); - List resultFlag = info.stream().filter(x -> 4 != x.getResultFlag()).map(AdNonHarmonicResult::getResultFlag).distinct().collect(Collectors.toList()); - return getInteger(resultFlag); + } + if (CollUtil.isNotEmpty(harmonicResultList)) { + detectionDataDealService.acceptAdResult(harmonicResultList, code); } return 4; } @@ -336,45 +437,61 @@ public class DetectionServiceImpl { SourceIssue sourceIssue, DictDataEnum dataRule, Integer num) { - Map>> devMap = devHarmListMap(dev, sourceIssue, dataRule, num); Double fData = 1.0; + String fundCode = ""; + String harmCode = ""; if (U.equals(type)) { fData = sourceIssue.getFUn(); + fundCode = DetectionCodeEnum.U1.getCode(); + if (num == 1) { + harmCode = DetectionCodeEnum.SV_1_49.getCode(); + } else { + harmCode = DetectionCodeEnum.V2_50.getCode(); + } } if (I.equals(type)) { fData = sourceIssue.getFIn(); + fundCode = DetectionCodeEnum.I1.getCode();; + if (num == 1) { + harmCode = DetectionCodeEnum.SI_1_49.getCode(); + } else { + harmCode =DetectionCodeEnum.I2_50.getCode(); + } } if (P.equals(type)) { fData = sourceIssue.getFIn() * sourceIssue.getFUn() * 0.01; + harmCode = DetectionCodeEnum.P2_50.getCode(); } - - - AdHarmonicResult harmonicResult = new AdHarmonicResult(); - String[] split = dev.get(0).getId().split("_"); - String devID = devIdMapComm.get(split[0]); - harmonicResult.setMonitorId(devID + "_" + split[1]); - harmonicResult.setScriptId(sourceIssue.getScriptId()); - harmonicResult.setSort(sourceIssue.getIndex()); - List pqErrSysDtls = new ArrayList<>(); - if (CollUtil.isNotEmpty(errDtlsCheckData)) { - harmonicResult.setAdType(errDtlsCheckData.get(0).getValueType()); - if (CollUtil.isNotEmpty(errDtlsCheckData.get(0).getErrSysDtls())) { - pqErrSysDtls = errDtlsCheckData.get(0).getErrSysDtls(); + Map>> devMap = devHarmListMap(dev, sourceIssue, dataRule, fundCode, harmCode, num); + if(CollUtil.isNotEmpty(devMap)){ + AdHarmonicResult harmonicResult = new AdHarmonicResult(); + String[] split = dev.get(0).getId().split("_"); + String devID = devIdMapComm.get(split[0]); + harmonicResult.setMonitorId(devID + "_" + split[1]); + harmonicResult.setScriptId(sourceIssue.getScriptId()); + harmonicResult.setSort(sourceIssue.getIndex()); + List pqErrSysDtls = new ArrayList<>(); + if (CollUtil.isNotEmpty(errDtlsCheckData)) { + harmonicResult.setAdType(errDtlsCheckData.get(0).getValueType()); + if (CollUtil.isNotEmpty(errDtlsCheckData.get(0).getErrSysDtls())) { + pqErrSysDtls = errDtlsCheckData.get(0).getErrSysDtls(); + } } + List integerBooleanA = harmRangeComparison(pqErrSysDtls, type, TYPE_A, sourceIssue, dataRule, devMap.get(TYPE_A), fData, num); + List integerBooleanB = harmRangeComparison(pqErrSysDtls, type, TYPE_B, sourceIssue, dataRule, devMap.get(TYPE_B), fData, num); + List integerBooleanC = harmRangeComparison(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); + reflectHarmonic("c", integerBooleanC, harmonicResult, num); + List list = new ArrayList<>(); + list.addAll(integerBooleanA.stream().distinct().collect(Collectors.toList())); + list.addAll(integerBooleanB.stream().distinct().collect(Collectors.toList())); + list.addAll(integerBooleanC.stream().distinct().collect(Collectors.toList())); + harmonicResult.setResultFlag(setResultFlag(list)); + return harmonicResult; } - List integerBooleanA = harmRangeComparison(pqErrSysDtls, type, TYPE_A, sourceIssue, dataRule, devMap.get(TYPE_A), fData, num); - List integerBooleanB = harmRangeComparison(pqErrSysDtls, type, TYPE_B, sourceIssue, dataRule, devMap.get(TYPE_B), fData, num); - List integerBooleanC = harmRangeComparison(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); - reflectHarmonic("c", integerBooleanC, harmonicResult, num); - List list = new ArrayList<>(); - list.addAll(integerBooleanA.stream().distinct().collect(Collectors.toList())); - list.addAll(integerBooleanB.stream().distinct().collect(Collectors.toList())); - list.addAll(integerBooleanC.stream().distinct().collect(Collectors.toList())); - harmonicResult.setResultFlag(setResultFlag(list)); - return harmonicResult; + return null; } @@ -400,57 +517,60 @@ public class DetectionServiceImpl { .eq(PqScriptCheckData::getScriptId, sourceIssue.getScriptId()) ); Map> map = devListMap(dev, dataRule, code); - Double fData = 1.0; - if (U.equals(type)) { - fData = sourceIssue.getFUn(); - } - if (I.equals(type)) { - fData = sourceIssue.getFIn(); - } - 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()); - List pqErrSysDtls = new ArrayList<>(); - if (CollUtil.isNotEmpty(errDtlsCheckData)) { - result.setAdType(errDtlsCheckData.get(0).getValueType()); - if (CollUtil.isNotEmpty(errDtlsCheckData.get(0).getErrSysDtls())) { - pqErrSysDtls = errDtlsCheckData.get(0).getErrSysDtls(); + if(CollUtil.isNotEmpty(map)){ + Double fData = 1.0; + if (U.equals(type)) { + fData = sourceIssue.getFUn(); } + if (I.equals(type)) { + fData = sourceIssue.getFIn(); + } + 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()); + List pqErrSysDtls = new ArrayList<>(); + if (CollUtil.isNotEmpty(errDtlsCheckData)) { + result.setAdType(errDtlsCheckData.get(0).getValueType()); + if (CollUtil.isNotEmpty(errDtlsCheckData.get(0).getErrSysDtls())) { + pqErrSysDtls = errDtlsCheckData.get(0).getErrSysDtls(); + } + } + result.setDataType("avg"); + if (StrUtil.isBlank(type)) { + //取出源所对应的相别信息 + List channelTypeAList = checkData.stream() + .filter(x -> TYPE_A.equals(x.getPhase())) + .collect(Collectors.toList()); + DetectionData a = rangeComparisonList(map.get(TYPE_A), 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), 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), pqErrSysDtls, fData, channelTypeCList.get(0).getValue(), dataRule); + result.setCValue(JSON.toJSONString(c)); + + result.setResultFlag(setResultFlag(Arrays.asList(a, b, c))); + } else { + List channelTypeBList = checkData.stream() + .filter(x -> TYPE_T.equals(x.getPhase())) + .collect(Collectors.toList()); + DetectionData t = rangeComparisonList(map.get(TYPE_B), pqErrSysDtls, fData, channelTypeBList.get(0).getValue(), dataRule); + result.setTValue(JSON.toJSONString(t)); + result.setResultFlag(setResultFlag(Arrays.asList(t))); + } + return result; } - result.setDataType("avg"); - if (StrUtil.isBlank(type)) { - //取出源所对应的相别信息 - List channelTypeAList = checkData.stream() - .filter(x -> TYPE_A.equals(x.getPhase())) - .collect(Collectors.toList()); - DetectionData a = rangeComparisonList(map.get(TYPE_A), 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), 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), pqErrSysDtls, fData, channelTypeCList.get(0).getValue(), dataRule); - result.setCValue(JSON.toJSONString(c)); - - result.setResultFlag(setResultFlag(Arrays.asList(a, b, c))); - } else { - List channelTypeBList = checkData.stream() - .filter(x -> TYPE_T.equals(x.getPhase())) - .collect(Collectors.toList()); - DetectionData t = rangeComparisonList(map.get(TYPE_B), pqErrSysDtls, fData, channelTypeBList.get(0).getValue(), dataRule); - result.setTValue(JSON.toJSONString(t)); - result.setResultFlag(setResultFlag(Arrays.asList(t))); - } - return result; + return null; } @@ -788,12 +908,19 @@ public class DetectionServiceImpl { /** * @param dev 原始数据 - * @param sourceIssue - * @param dataRule - * @param num + * @param sourceIssue 源下发参数 + * @param dataRule 数据处理原则 + * @param fundCode 装置下发基波code + * @param harmCode 装置下发谐波信息 + * @param num 区分谐波还是间谐波1:谐波,2:间谐波 * @return */ - public Map>> devHarmListMap(List dev, SourceIssue sourceIssue, DictDataEnum dataRule, Integer num) { + public Map>> devHarmListMap(List dev, + SourceIssue sourceIssue, + DictDataEnum dataRule, + String fundCode, + String harmCode, + Integer num) { Map>> map = new HashMap<>(3); List harmNum = new ArrayList<>(); harmNum.add(1.0); @@ -807,12 +934,12 @@ public class DetectionServiceImpl { .sorted().distinct().collect(Collectors.toList())); } for (DevData devData : dev) { - Optional first = devData.getSqlData().stream().collect(Collectors.toList()).stream().findFirst(); + Optional first = devData.getSqlData().stream().filter(x -> x.getDesc().equals(fundCode)).collect(Collectors.toList()).stream().findFirst(); DevData.SqlDataDTO fund = null; if (first.isPresent()) { - fund = devData.getSqlData().stream().collect(Collectors.toList()).stream().findFirst().get(); + fund = first.get(); } - List harmList = devData.getSqlDataHarm().stream().collect(Collectors.toList()); + List harmList = devData.getSqlDataHarm().stream().filter(x -> x.getDesc().equals(harmCode)).collect(Collectors.toList()); if (CollUtil.isNotEmpty(harmList)) { DevData.SqlDataHarmDTO harm = harmList.get(0); if (ObjectUtil.isNotNull(fund)) { @@ -820,9 +947,9 @@ public class DetectionServiceImpl { harmPut(TYPE_B, map, harmNum, harm, String.valueOf(fund.getList().getB()), num); harmPut(TYPE_C, map, harmNum, harm, String.valueOf(fund.getList().getC()), num); } else { - harmPut(TYPE_A, map, harmNum, harm, "1.0", num); - harmPut(TYPE_B, map, harmNum, harm, "1.0", num); - harmPut(TYPE_C, map, harmNum, harm, "1.0", num); + harmPut(TYPE_A, map, harmNum, harm, "", num); + harmPut(TYPE_B, map, harmNum, harm, "", num); + harmPut(TYPE_C, map, harmNum, harm, "", num); } } diff --git a/detection/src/main/java/com/njcn/gather/script/service/impl/PqScriptCheckDataServiceImpl.java b/detection/src/main/java/com/njcn/gather/script/service/impl/PqScriptCheckDataServiceImpl.java index eaaea80c..b31104b7 100644 --- a/detection/src/main/java/com/njcn/gather/script/service/impl/PqScriptCheckDataServiceImpl.java +++ b/detection/src/main/java/com/njcn/gather/script/service/impl/PqScriptCheckDataServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.njcn.common.pojo.enums.common.DataStateEnum; +import com.njcn.gather.detection.pojo.enums.DetectionCodeEnum; import com.njcn.gather.script.mapper.PqScriptCheckDataMapper; import com.njcn.gather.script.pojo.param.PqScriptCheckDataParam; import com.njcn.gather.script.pojo.po.PqScriptCheckData; @@ -32,10 +33,7 @@ import java.util.stream.Collectors; @RequiredArgsConstructor public class PqScriptCheckDataServiceImpl extends ServiceImpl implements IPqScriptCheckDataService { - private final String V="real$V2-50"; - private final String SV="real$SV_1-49"; - private final String I="real$I2-50"; - private final String IV="real$SI_1-49"; + private final String REAL="real$"; private final DictTreeMapper dictTreeMapper; @@ -54,17 +52,21 @@ public class PqScriptCheckDataServiceImpl extends ServiceImpl checkData = pqScriptCheckData.stream().map(x -> x.getDataType() + "$" + x.getValueType()).distinct().collect(Collectors.toList()); - if(!checkData.contains("real$U1")){ - if(checkData.contains(V)||checkData.contains(SV)){ - checkData.add("real$U1"); + String U = REAL + DetectionCodeEnum.U1.getCode(); + if(!checkData.contains(U)){ + if(checkData.contains(REAL+DetectionCodeEnum.V2_50.getCode())|| + checkData.contains(REAL+DetectionCodeEnum.SV_1_49.getCode())){ + checkData.add(U); } } - if(!checkData.contains("real$I1")){ - if(checkData.contains(I)||checkData.contains(IV)){ - checkData.add("real$I1"); + String I = REAL + DetectionCodeEnum.I1.getCode(); + if(!checkData.contains(I)){ + if(checkData.contains(REAL+DetectionCodeEnum.I2_50.getCode())|| + checkData.contains(REAL+DetectionCodeEnum.SI_1_49.getCode())){ + checkData.add(I); } } - return checkData; + return checkData.stream().distinct().collect(Collectors.toList()); } else { return pqScriptCheckData.stream().map(PqScriptCheckData::getValueType).distinct().collect(Collectors.toList()); }