From ce217b8b86084870336480b3d08d8c7f2f9d69c7 Mon Sep 17 00:00:00 2001 From: wr <1754607820@qq.com> Date: Mon, 24 Mar 2025 18:56:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E9=BB=98=E8=AE=A4=E5=8F=82?= =?UTF-8?q?=E4=B8=8E=E6=AF=94=E8=BE=83=E5=80=BC=E9=80=BB=E8=BE=91,?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=8D=E5=8F=82=E4=B8=8E=E8=AF=AF=E5=B7=AE?= =?UTF-8?q?=E6=AF=94=E8=BE=83=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DetectionServiceImpl.java | 106 +++++++++++------- .../err/pojo/vo/ErrDtlsCheckDataVO.java | 5 + .../service/impl/PqErrSysDtlsServiceImpl.java | 34 ++++-- .../service/impl/AdHarmonicServiceImpl.java | 27 +++-- .../impl/AdNonHarmonicServiceImpl.java | 1 + .../impl/DetectionDataServiceImpl.java | 4 +- 6 files changed, 117 insertions(+), 60 deletions(-) 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 d60bdd43..e0b4fbca 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 @@ -227,9 +227,13 @@ public class DetectionServiceImpl { result.setScriptId(sourceIssue.getScriptId()); result.setSort(sourceIssue.getIndex()); result.setDataType("avg"); + Integer isQualified; 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(); + } else { + isQualified = 4; } List resultFlag = new ArrayList<>(); map.forEach((key, value) -> { @@ -237,9 +241,9 @@ public class DetectionServiceImpl { if (CollUtil.isNotEmpty(checkData)) { DetectionData detectionData; if (DUR.equals(devIndex)) { - detectionData = rangeDURComparisonList(value, new ArrayList<>(), sourceIssue.getFFreq(), checkData.get(0).getValue(), dataRule); + detectionData = rangeDURComparisonList(value, isQualified, new ArrayList<>(), sourceIssue.getFFreq(), checkData.get(0).getValue(), dataRule); } else { - detectionData = rangeComparisonList(value, new ArrayList<>(), null, checkData.get(0).getValue(), dataRule); + detectionData = rangeComparisonList(value, isQualified, new ArrayList<>(), null, checkData.get(0).getValue(), dataRule); } if (key.equals(TYPE_T)) { result.setTValue(JSON.toJSONString(detectionData)); @@ -303,14 +307,18 @@ public class DetectionServiceImpl { harmonicResult.setMonitorId(devID + "_" + split[1]); harmonicResult.setScriptId(sourceIssue.getScriptId()); harmonicResult.setSort(sourceIssue.getIndex()); + Integer isQualified; 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(); + } else { + isQualified = 4; } //电压下百分比给百分比直接算 电流是是下百分比给的是幅值要转换算 - 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); + 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); harmonicResult.setDataType("avg"); reflectHarmonic("a", integerBooleanA, harmonicResult, num); reflectHarmonic("b", integerBooleanB, harmonicResult, num); @@ -375,10 +383,12 @@ public class DetectionServiceImpl { result.setSort(sourceIssue.getIndex()); result.setDataType("avg"); List pqErrSysDtls = new ArrayList<>(); + Integer isQualified = 4; 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(); if (CollUtil.isNotEmpty(dtlsCheckData.get(0).getErrSysDtls())) { pqErrSysDtls = dtlsCheckData.get(0).getErrSysDtls(); } @@ -386,7 +396,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), pqErrSysDtls, fData, checkDataT.get(0).getValue(), dataRule); + DetectionData t = rangeComparisonList(map.get(TYPE_T), isQualified, pqErrSysDtls, fData, checkDataT.get(0).getValue(), dataRule); result.setTValue(JSON.toJSONString(t)); result.setResultFlag(t.getIsData()); } @@ -395,19 +405,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), pqErrSysDtls, fData, checkDataA.get(0).getValue(), dataRule); + DetectionData a = rangeComparisonList(map.get(TYPE_A), isQualified, 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), pqErrSysDtls, fData, checkDataB.get(0).getValue(), dataRule); + DetectionData b = rangeComparisonList(map.get(TYPE_B), isQualified, 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), pqErrSysDtls, fData, checkDataC.get(0).getValue(), dataRule); + DetectionData c = rangeComparisonList(map.get(TYPE_C), isQualified, pqErrSysDtls, fData, checkDataC.get(0).getValue(), dataRule); resultFlag.add(c); result.setCValue(JSON.toJSONString(c)); } @@ -418,7 +428,7 @@ public class DetectionServiceImpl { } if (CollUtil.isNotEmpty(info)) { detectionDataDealService.acceptAdNonResult(info, code); - List resultFlag = info.stream().filter(x -> 4 != x.getResultFlag()).map(AdNonHarmonicResult::getResultFlag).distinct().collect(Collectors.toList()); + List resultFlag = info.stream().map(AdNonHarmonicResult::getResultFlag).distinct().collect(Collectors.toList()); return getInteger(resultFlag); } return 4; @@ -477,23 +487,25 @@ public class DetectionServiceImpl { harmonicResult.setScriptId(sourceIssue.getScriptId()); harmonicResult.setSort(sourceIssue.getIndex()); List pqErrSysDtls = new ArrayList<>(); + Integer isQualified = 4; if (CollUtil.isNotEmpty(errDtlsCheckData)) { harmonicResult.setAdType(errDtlsCheckData.get(0).getValueType()); + isQualified = errDtlsCheckData.get(0).getIsQualified(); 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); + 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); 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())); + list.addAll(integerBooleanA.stream().filter(x -> 1 != x.getNum()).distinct().collect(Collectors.toList())); + list.addAll(integerBooleanB.stream().filter(x -> 1 != x.getNum()).distinct().collect(Collectors.toList())); + list.addAll(integerBooleanC.stream().filter(x -> 1 != x.getNum()).distinct().collect(Collectors.toList())); harmonicResult.setResultFlag(setResultFlag(list)); return harmonicResult; } @@ -538,8 +550,10 @@ public class DetectionServiceImpl { result.setScriptId(sourceIssue.getScriptId()); result.setSort(sourceIssue.getIndex()); List pqErrSysDtls = new ArrayList<>(); + Integer isQualified = 4; if (CollUtil.isNotEmpty(errDtlsCheckData)) { result.setAdType(errDtlsCheckData.get(0).getValueType()); + isQualified = errDtlsCheckData.get(0).getIsQualified(); if (CollUtil.isNotEmpty(errDtlsCheckData.get(0).getErrSysDtls())) { pqErrSysDtls = errDtlsCheckData.get(0).getErrSysDtls(); } @@ -550,19 +564,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), pqErrSysDtls, fData, channelTypeAList.get(0).getValue(), dataRule); + DetectionData a = rangeComparisonList(map.get(TYPE_A), isQualified, 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); + DetectionData b = rangeComparisonList(map.get(TYPE_B), isQualified, 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); + DetectionData c = rangeComparisonList(map.get(TYPE_C), isQualified, pqErrSysDtls, fData, channelTypeCList.get(0).getValue(), dataRule); result.setCValue(JSON.toJSONString(c)); result.setResultFlag(setResultFlag(Arrays.asList(a, b, c))); @@ -570,7 +584,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), pqErrSysDtls, fData, channelTypeBList.get(0).getValue(), dataRule); + DetectionData t = rangeComparisonList(map.get(TYPE_B), isQualified, pqErrSysDtls, fData, channelTypeBList.get(0).getValue(), dataRule); result.setTValue(JSON.toJSONString(t)); result.setResultFlag(setResultFlag(Arrays.asList(t))); } @@ -609,7 +623,7 @@ public class DetectionServiceImpl { AdNonHarmonicResult magResult = voltageResult(dev.get(0).getId(), devIdMapComm, sourceIssue, dataRule, mag, magErrList, sourceIssue.getFUn(), MAG); AdNonHarmonicResult durResult = voltageResult(dev.get(0).getId(), devIdMapComm, sourceIssue, dataRule, dur, durErrList, sourceIssue.getFFreq(), DUR); detectionDataDealService.acceptAdNonResult(Arrays.asList(magResult, durResult), code); - List numbers = Arrays.asList(magResult.getResultFlag(), durResult.getResultFlag()).stream().filter(x -> 4 != x).distinct().collect(Collectors.toList()); + List numbers = Arrays.asList(magResult.getResultFlag(), durResult.getResultFlag()).stream().distinct().collect(Collectors.toList()); return getInteger(numbers); } @@ -643,8 +657,10 @@ public class DetectionServiceImpl { result.setSort(sourceIssue.getIndex()); result.setDataType("avg"); List magErrList = new ArrayList<>(); + Integer isQualified = 4; if (CollUtil.isNotEmpty(errDtlsCheckData)) { result.setAdType(errDtlsCheckData.get(0).getValueType()); + isQualified = errDtlsCheckData.get(0).getIsQualified(); if (CollUtil.isNotEmpty(errDtlsCheckData.get(0).getErrSysDtls())) { magErrList = errDtlsCheckData.get(0).getErrSysDtls(); } @@ -653,57 +669,66 @@ public class DetectionServiceImpl { List channelTypeAList = sourceIssue.getChannelList().stream() .filter(x -> ("Ua").equals(x.getChannelType())) .collect(Collectors.toList()); - DetectionData a = setDetectionData(dataRule, mag, fData, dur, magErrList, channelTypeAList, TYPE_A); + DetectionData a = setDetectionData(isQualified, 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(dataRule, mag, fData, dur, magErrList, channelTypeBList, TYPE_B); + DetectionData b = setDetectionData(isQualified, 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(dataRule, mag, fData, dur, magErrList, channelTypeCList, TYPE_C); + DetectionData c = setDetectionData(isQualified, 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(DictDataEnum dataRule, Map> mag, Double fData, String dur, List magErrList, List channelTypeCList, String typeC) { + private DetectionData setDetectionData(Integer isQualified, 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), magErrList, fData, channelTypeCList.get(0).getDipData().getRetainTime(), dataRule); + c = rangeDURComparisonList(mag.get(typeC), isQualified, 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, magErrList, fData, channelTypeCList.get(0).getDipData().getFTransValue(), dataRule); + c = rangeComparisonList(ampData, isQualified, magErrList, fData, channelTypeCList.get(0).getDipData().getFTransValue(), dataRule); } return c; } private Integer setResultFlag(List numbers) { - List isData = numbers.stream().filter(x -> ObjectUtil.isNotNull(x.getData())).filter(x -> 4 != x.getIsData()).map(DetectionData::getIsData).distinct().collect(Collectors.toList()); + List isData = numbers.stream().filter(x -> ObjectUtil.isNotNull(x.getData())).map(DetectionData::getIsData).distinct().collect(Collectors.toList()); return getInteger(isData); } private static Integer getInteger(List isData) { if (CollUtil.isNotEmpty(isData)) { - if (isData.size() > 1) { - if (isData.contains(2)) { - return 2; + List isQualified = isData.stream().filter(x -> 1 == x || 2 == x).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(isQualified)) { + if (isQualified.size() > 1) { + if (isQualified.contains(2)) { + return 2; + } + } + return isData.get(0); + } else { + if (isData.contains(4)) { + return 4; + } + if (isData.contains(5)) { + return 5; } } - return isData.get(0); - } else { - return 4; } + return 4; } /** @@ -799,7 +824,8 @@ public class DetectionServiceImpl { * @param fData * @return */ - public List harmRangeComparison(List pqErrSysDtls, + public List harmRangeComparison(Integer isQualified, + List pqErrSysDtls, String type, String phase, SourceIssue sourceIssue, @@ -855,7 +881,7 @@ public class DetectionServiceImpl { devMap.forEach((harm, harmDataList) -> { PqErrSysDtls errSysDtl = errSysDtlMap.get(harm); DetectionData data = new DetectionData(); - data.setIsData(4); + data.setIsData(isQualified); data.setNum(harm); if (CollUtil.isNotEmpty(harmDataList)) { data.setData(harmDataList.get(0)); @@ -1031,9 +1057,9 @@ public class DetectionServiceImpl { * @param dataRule 数据处理原则 * @returnd */ - public DetectionData rangeComparisonList(List list, List pqErrSysDtls, Double data, Double channelData, DictDataEnum dataRule) { + public DetectionData rangeComparisonList(List list, Integer isQualified, List pqErrSysDtls, Double data, Double channelData, DictDataEnum dataRule) { DetectionData detectionData = new DetectionData(); - detectionData.setIsData(4); + detectionData.setIsData(isQualified); if (CollUtil.isNotEmpty(list)) { detectionData.setData(list.get(0)); detectionData.setResultData(channelData); @@ -1057,9 +1083,9 @@ public class DetectionServiceImpl { return detectionData; } - public DetectionData rangeDURComparisonList(List list, List pqErrSysDtls, Double data, Double channelData, DictDataEnum dataRule) { + public DetectionData rangeDURComparisonList(List list, Integer isQualified, List pqErrSysDtls, Double data, Double channelData, DictDataEnum dataRule) { DetectionData detectionData = new DetectionData(); - detectionData.setIsData(4); + detectionData.setIsData(isQualified); if (CollUtil.isNotEmpty(list)) { detectionData.setData(list.get(0)); detectionData.setResultData(BigDecimal.valueOf(1.0 / data).doubleValue() * channelData); diff --git a/detection/src/main/java/com/njcn/gather/err/pojo/vo/ErrDtlsCheckDataVO.java b/detection/src/main/java/com/njcn/gather/err/pojo/vo/ErrDtlsCheckDataVO.java index 1e67940a..4857df95 100644 --- a/detection/src/main/java/com/njcn/gather/err/pojo/vo/ErrDtlsCheckDataVO.java +++ b/detection/src/main/java/com/njcn/gather/err/pojo/vo/ErrDtlsCheckDataVO.java @@ -38,6 +38,11 @@ public class ErrDtlsCheckDataVO implements Serializable { */ private String phase; + /** + * 默认参与比较值(4.不参与值 5.不参与误差比较) + */ + private Integer isQualified; + /** * 误差体系 */ diff --git a/detection/src/main/java/com/njcn/gather/err/service/impl/PqErrSysDtlsServiceImpl.java b/detection/src/main/java/com/njcn/gather/err/service/impl/PqErrSysDtlsServiceImpl.java index 03b1651a..3ced339f 100644 --- a/detection/src/main/java/com/njcn/gather/err/service/impl/PqErrSysDtlsServiceImpl.java +++ b/detection/src/main/java/com/njcn/gather/err/service/impl/PqErrSysDtlsServiceImpl.java @@ -94,34 +94,38 @@ public class PqErrSysDtlsServiceImpl extends ServiceImpl listByPqErrSysIdAndTypes(PqErrSysParam.DetectionParam param) { - List info=new ArrayList<>(); + List info = new ArrayList<>(); PqScriptCheckDataParam checkDataParam = new PqScriptCheckDataParam(); checkDataParam.setScriptId(param.getScriptId()); checkDataParam.setIndex(param.getIndex()); + //获取检测脚本中所有装置下发的测试项 List list = pqScriptCheckDataService.listCheckDataCode(checkDataParam); Boolean isValueType = pqScriptMapper.selectScriptIsValueType(param.getScriptId()); - List valueType = list.stream().filter(x->x.getErrorFlag()!=0).map(PqScriptCheckData::getValueType).collect(Collectors.toList()); - Map> errMap =new HashMap<>(3); - if(CollUtil.isNotEmpty(valueType)){ + Map valueType = list.stream().collect(Collectors.toMap(PqScriptCheckData::getValueType, PqScriptCheckData::getErrorFlag, + (key1, key2) -> key1)); + + //获取误差体系 + Map> errMap = new HashMap<>(3); + if (CollUtil.isNotEmpty(valueType)) { List errSysDtls = this.list(new MPJLambdaWrapper().selectAll(PqErrSysDtls.class) .selectAll(PqErrSysDtls.class) .selectAs(DictTree::getCode, PqErrSysDtls::getScriptCode) .leftJoin(DictTree.class, DictTree::getId, PqErrSysDtls::getScriptType) .eq(PqErrSysDtls::getErrorSysId, param.getErrorSysId()) - .in(PqErrSysDtls::getScriptType, valueType) + .in(PqErrSysDtls::getScriptType, valueType.keySet()) ); - errMap= errSysDtls.stream().collect(Collectors.groupingBy(PqErrSysDtls::getScriptType)); + errMap = errSysDtls.stream().collect(Collectors.groupingBy(PqErrSysDtls::getScriptType)); } ErrDtlsCheckDataVO dataVO; for (PqScriptCheckData script : list) { - dataVO=new ErrDtlsCheckDataVO(); + dataVO = new ErrDtlsCheckDataVO(); dataVO.setCheckDataId(script.getScriptId()); dataVO.setValueTypeCode(script.getValueTypeCode()); dataVO.setValueType(script.getValueType()); dataVO.setValue(script.getValue()); dataVO.setPhase(script.getPhase()); - if(isValueType){ + if (isValueType) { if (DetectionCodeEnum.VRMS.getCode().equals(script.getValueTypeCode())) { BigDecimal volValue = new BigDecimal(script.getValue()); BigDecimal result = volValue.multiply(new BigDecimal(param.getUn().toString())) @@ -135,9 +139,17 @@ public class PqErrSysDtlsServiceImpl extends ServiceImpl numbers) { - List isData = numbers.stream().filter(Objects::nonNull).filter(x -> ObjectUtil.isNotNull(x.getData())).filter(x -> 4 != x.getIsData()).map(RawResultDataVO.DetectionData::getIsData).distinct().collect(Collectors.toList()); + List isData = numbers.stream().filter(Objects::nonNull) + .filter(x -> ObjectUtil.isNotNull(x.getData())) + .map(RawResultDataVO.DetectionData::getIsData) + .distinct() + .collect(Collectors.toList()); return getInteger(isData); } private static Integer getInteger(List isData) { if (CollUtil.isNotEmpty(isData)) { - if (isData.size() > 1) { - if (isData.contains(2)) { - return 2; + List isQualified = isData.stream().filter(x -> 1 == x || 2 == x).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(isQualified)) { + if (isQualified.size() > 1) { + if (isQualified.contains(2)) { + return 2; + } + } + return isData.get(0); + } else { + if (isData.contains(4)) { + return 4; + } + if (isData.contains(5)) { + return 5; } } - return isData.get(0); - } else { - return 4; } + return 4; } public Double isHarmOrInHarm(Double value) { diff --git a/storage/src/main/java/com/njcn/gather/storage/service/impl/AdNonHarmonicServiceImpl.java b/storage/src/main/java/com/njcn/gather/storage/service/impl/AdNonHarmonicServiceImpl.java index 5aea7ea8..18af7c92 100644 --- a/storage/src/main/java/com/njcn/gather/storage/service/impl/AdNonHarmonicServiceImpl.java +++ b/storage/src/main/java/com/njcn/gather/storage/service/impl/AdNonHarmonicServiceImpl.java @@ -108,6 +108,7 @@ public class AdNonHarmonicServiceImpl extends ServiceImpl dictTreeById = dictTreeService.getDictTreeById(new ArrayList<>(adTypeMap.keySet())); Map dictTreeByName = dictTreeById.stream().collect(Collectors.toMap(DictTree::getId, Function.identity())); + adTypeMap.forEach((key, result) -> { if (dictTreeByName.containsKey(key)) { DictTree treeName = dictTreeByName.get(key); diff --git a/storage/src/main/java/com/njcn/gather/storage/service/impl/DetectionDataServiceImpl.java b/storage/src/main/java/com/njcn/gather/storage/service/impl/DetectionDataServiceImpl.java index c155741f..f1bbb120 100644 --- a/storage/src/main/java/com/njcn/gather/storage/service/impl/DetectionDataServiceImpl.java +++ b/storage/src/main/java/com/njcn/gather/storage/service/impl/DetectionDataServiceImpl.java @@ -137,8 +137,8 @@ public class DetectionDataServiceImpl extends ReplenishMybatisServiceImpl resultFlags) { // 检测结果(0:不符合 1:符合 2:/[未检测无结果]) - //脚本结果是 1.符合 2.不符合 4.未检测无结果 - resultFlags = resultFlags.stream().filter(x -> 4 != x).distinct().collect(Collectors.toList()); + //脚本结果是 1.符合 2.不符合 4.未检测无结果 5.不参与误差比较 + resultFlags = resultFlags.stream().filter(x -> 4 != x && 5 != x).distinct().collect(Collectors.toList()); if (CollUtil.isNotEmpty(resultFlags)) { if (resultFlags.contains(2)) { return 0;