From 68d96e67aa0b53449cdcda1912f43e612036a0f1 Mon Sep 17 00:00:00 2001 From: caozehui <2427765068@qq.com> Date: Wed, 26 Nov 2025 18:33:35 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=96=B0=E8=AE=A1=E7=AE=97=E3=80=81?= =?UTF-8?q?=E6=9B=B4=E6=8D=A2=E8=AF=AF=E5=B7=AE=E4=BD=93=E7=B3=BB=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E8=B0=83=E6=95=B4=EF=BC=8Ccp95=E5=A4=84=E7=90=86?= =?UTF-8?q?=E5=8E=9F=E5=88=99=E8=B0=83=E6=95=B4=E3=80=81=E6=A3=80=E6=B5=8B?= =?UTF-8?q?=E7=BB=93=E6=9E=9C=E5=8E=9F=E5=A7=8B=E6=95=B0=E6=8D=AE=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DetectionServiceImpl.java | 83 ++++++++++--------- .../gather/result/pojo/param/ResultParam.java | 4 + .../service/impl/ResultServiceImpl.java | 51 ++++++------ 3 files changed, 74 insertions(+), 64 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 73f47a65..a10e9d41 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 @@ -1567,6 +1567,9 @@ public class DetectionServiceImpl { private Map singleMonitorProcessing(List devDataList, List standardDevDataList, Map devIdMapComm, List testItemCodeList, String errorSysId, DictDataEnum dataRule, Integer num, String code, Integer waveNum, DataSourceEnum dataSourceEnum) { Map resultMap = new HashMap<>(); if (CollUtil.isNotEmpty(devDataList) && CollUtil.isNotEmpty(standardDevDataList) && CollUtil.isNotEmpty(testItemCodeList)) { + devDataList = devDataList.stream().sorted(Comparator.comparing(DevData::getTime)).collect(Collectors.toList()); + standardDevDataList = standardDevDataList.stream().sorted(Comparator.comparing(DevData::getTime)).collect(Collectors.toList()); + // 处理谐波数据 SysTestConfig oneConfig = sysTestConfigService.getOneConfig(); String[] split1 = devDataList.get(0).getId().split("_"); String devMonitorId = devIdMapComm.get(split1[0]) + "_" + split1[1]; @@ -2196,66 +2199,66 @@ public class DetectionServiceImpl { .map(x -> x.getT().doubleValue()) .collect(Collectors.toList())); } - List aIdxs = DetectionUtil.sort(aDev, false); - List bIdxs = DetectionUtil.sort(bDev, false); - List cIdxs = DetectionUtil.sort(cDev, false); - List tIdxs = DetectionUtil.sort(tDev, false); + List aIdxs = DetectionUtil.sort(aStandardDev, false); + List bIdxs = DetectionUtil.sort(bStandardDev, false); + List cIdxs = DetectionUtil.sort(cStandardDev, false); + List tIdxs = DetectionUtil.sort(tStandardDev, false); switch (dataRule) { case SECTION_VALUE: - if (aDev.size() > 2) { - aDev.remove(aIdxs.get(0)); - aDev.remove(aIdxs.get(aIdxs.size() - 1)); - List newArray = DetectionUtil.getNewArray(aStandardDev, aIdxs.subList(1, aIdxs.size() - 1)); - aStandardDev.clear(); - aStandardDev.addAll(newArray); + if (aStandardDev.size() > 2) { + aStandardDev.remove(aIdxs.get(0)); + aStandardDev.remove(aIdxs.get(aIdxs.size() - 1)); + List newArray = DetectionUtil.getNewArray(aDev, aIdxs.subList(1, aIdxs.size() - 1)); + aDev.clear(); + aDev.addAll(newArray); } - if (bDev.size() > 2) { - bDev.remove(bIdxs.get(0)); - bDev.remove(bIdxs.get(bIdxs.size() - 1)); - List newArray = DetectionUtil.getNewArray(bStandardDev, bIdxs.subList(1, bIdxs.size() - 1)); - bStandardDev.clear(); - bStandardDev.addAll(newArray); + if (bStandardDev.size() > 2) { + bStandardDev.remove(bIdxs.get(0)); + bStandardDev.remove(bIdxs.get(bIdxs.size() - 1)); + List newArray = DetectionUtil.getNewArray(bDev, bIdxs.subList(1, bIdxs.size() - 1)); + bDev.clear(); + bDev.addAll(newArray); } - if (cDev.size() > 2) { - cDev.remove(cIdxs.get(0)); - cDev.remove(cIdxs.get(cIdxs.size() - 1)); - List newArray = DetectionUtil.getNewArray(cStandardDev, cIdxs.subList(1, cIdxs.size() - 1)); - cStandardDev.clear(); - cStandardDev.addAll(newArray); + if (cStandardDev.size() > 2) { + cStandardDev.remove(cIdxs.get(0)); + cStandardDev.remove(cIdxs.get(cIdxs.size() - 1)); + List newArray = DetectionUtil.getNewArray(cDev, cIdxs.subList(1, cIdxs.size() - 1)); + cDev.clear(); + cDev.addAll(newArray); } - if (tDev.size() > 2) { - tDev.remove(tIdxs.get(0)); - tDev.remove(tIdxs.get(tIdxs.size() - 1)); - List newArray = DetectionUtil.getNewArray(tStandardDev, tIdxs.subList(1, tIdxs.size() - 1)); - tStandardDev.clear(); - tStandardDev.addAll(newArray); + if (tStandardDev.size() > 2) { + tStandardDev.remove(tIdxs.get(0)); + tStandardDev.remove(tIdxs.get(tIdxs.size() - 1)); + List newArray = DetectionUtil.getNewArray(tDev, tIdxs.subList(1, tIdxs.size() - 1)); + tDev.clear(); + tDev.addAll(newArray); } break; case CP95_VALUE: - if (CollUtil.isNotEmpty(aDev)) { - int cp95Idx = DetectionUtil.getCP95Idx(aDev); - aDev = Collections.singletonList(aDev.get(cp95Idx)); + if (CollUtil.isNotEmpty(aStandardDev)) { + int cp95Idx = DetectionUtil.getCP95Idx(aStandardDev); aStandardDev = Collections.singletonList(aStandardDev.get(cp95Idx)); + aDev = Collections.singletonList(aDev.get(aIdxs.get(cp95Idx))); } - if (CollUtil.isNotEmpty(bDev)) { - int cp95Idx = DetectionUtil.getCP95Idx(bDev); - bDev = Collections.singletonList(bDev.get(cp95Idx)); + if (CollUtil.isNotEmpty(bStandardDev)) { + int cp95Idx = DetectionUtil.getCP95Idx(bStandardDev); bStandardDev = Collections.singletonList(bStandardDev.get(cp95Idx)); + bDev = Collections.singletonList(bDev.get(bIdxs.get(cp95Idx))); } - if (CollUtil.isNotEmpty(cDev)) { - int cp95Idx = DetectionUtil.getCP95Idx(cDev); - cDev = Collections.singletonList(cDev.get(cp95Idx)); + if (CollUtil.isNotEmpty(cStandardDev)) { + int cp95Idx = DetectionUtil.getCP95Idx(cStandardDev); cStandardDev = Collections.singletonList(cStandardDev.get(cp95Idx)); + cDev = Collections.singletonList(cDev.get(cIdxs.get(cp95Idx))); } - if (CollUtil.isNotEmpty(tDev)) { - int cp95Idx = DetectionUtil.getCP95Idx(tDev); - tDev = Collections.singletonList(tDev.get(cp95Idx)); + if (CollUtil.isNotEmpty(tStandardDev)) { + int cp95Idx = DetectionUtil.getCP95Idx(tStandardDev); tStandardDev = Collections.singletonList(tStandardDev.get(cp95Idx)); + tDev = Collections.singletonList(tDev.get(tIdxs.get(cp95Idx))); } break; diff --git a/detection/src/main/java/com/njcn/gather/result/pojo/param/ResultParam.java b/detection/src/main/java/com/njcn/gather/result/pojo/param/ResultParam.java index a2b5b3f5..61ec56ca 100644 --- a/detection/src/main/java/com/njcn/gather/result/pojo/param/ResultParam.java +++ b/detection/src/main/java/com/njcn/gather/result/pojo/param/ResultParam.java @@ -2,6 +2,7 @@ package com.njcn.gather.result.pojo.param; import com.njcn.common.pojo.constant.PatternRegex; import com.njcn.gather.pojo.constant.DetectionValidMessage; +import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -100,5 +101,8 @@ public class ResultParam { @ApiModelProperty(value = "模式Id", required = true) private String patternId; + + @ApiModelProperty(value = "通道号", required = true) + private String chnNum; } } diff --git a/detection/src/main/java/com/njcn/gather/result/service/impl/ResultServiceImpl.java b/detection/src/main/java/com/njcn/gather/result/service/impl/ResultServiceImpl.java index 47b6767b..4bb684f9 100644 --- a/detection/src/main/java/com/njcn/gather/result/service/impl/ResultServiceImpl.java +++ b/detection/src/main/java/com/njcn/gather/result/service/impl/ResultServiceImpl.java @@ -983,7 +983,7 @@ public class ResultServiceImpl implements IResultService { DictData dictData = dictDataService.getDictDataById(param.getPatternId()); if (PatternEnum.CONTRAST.getValue().equals(dictData.getCode())) { this.createTempResultTable(param.getCode() + "_temp", true); - this.contrastCalculateResult(param.getPlanId(), param.getCode() + "_temp", param.getErrorSysId(), param.getDeviceId()); + this.contrastCalculateResult(param.getPlanId(), param.getCode() + "_temp", param.getErrorSysId(), param.getDeviceId(), param.getChnNum()); } else { this.createTempResultTable(param.getCode() + "_temp", false); this.simAndDigCalculateResult(param.getPlanId(), param.getScriptId(), param.getCode() + "_temp", param.getErrorSysId(), param.getDeviceId()); @@ -1000,7 +1000,7 @@ public class ResultServiceImpl implements IResultService { public void reCalculate(ResultParam.ChangeErrorSystemParam param) { DictData dictData = dictDataService.getDictDataById(param.getPatternId()); if (PatternEnum.CONTRAST.getValue().equals(dictData.getCode())) { - this.contrastCalculateResult(param.getPlanId(), param.getCode(), param.getErrorSysId(), param.getDeviceId()); + this.contrastCalculateResult(param.getPlanId(), param.getCode(), param.getErrorSysId(), param.getDeviceId(), param.getChnNum()); } else { this.simAndDigCalculateResult(param.getPlanId(), param.getScriptId(), param.getCode(), param.getErrorSysId(), param.getDeviceId()); } @@ -2872,23 +2872,23 @@ public class ResultServiceImpl implements IResultService { for (int i = 0; i < devNonHarmonicRawDataList.size(); i++) { AlignDataVO.RawData rawDataVO = new AlignDataVO.RawData(); rawDataVO.setUnit(unit); - ContrastNonHarmonicResult contrastNonHarmonicResult = devNonHarmonicRawDataList.get(i); - rawDataVO.setTimeDev(contrastNonHarmonicResult.getTimeId().format(dtf)); + ContrastNonHarmonicResult contrastNonHarmonicResultDev = devNonHarmonicRawDataList.get(i); + rawDataVO.setTimeDev(contrastNonHarmonicResultDev.getTimeId().format(dtf)); - rawDataVO.setUbDev(getValue(contrastNonHarmonicResult.getBValue())); - rawDataVO.setUtDev(getValue(contrastNonHarmonicResult.getTValue())); + rawDataVO.setUbDev(getValue(contrastNonHarmonicResultDev.getBValue())); + rawDataVO.setUtDev(getValue(contrastNonHarmonicResultDev.getTValue())); - contrastNonHarmonicResult = stdDevNonHarmonicRawDataList.get(i); - rawDataVO.setTimeStdDev(contrastNonHarmonicResult.getTimeId().format(dtf)); + ContrastNonHarmonicResult contrastNonHarmonicResultStdDev = stdDevNonHarmonicRawDataList.get(i); + rawDataVO.setTimeStdDev(contrastNonHarmonicResultStdDev.getTimeId().format(dtf)); if (!DicDataEnum.IMBV.getCode().equals(dictTree.getCode()) && !DicDataEnum.IMBA.getCode().equals(dictTree.getCode())) { - rawDataVO.setUaDev(getValue(contrastNonHarmonicResult.getAValue())); - rawDataVO.setUcDev(getValue(contrastNonHarmonicResult.getCValue())); - rawDataVO.setUaStdDev(getValue(contrastNonHarmonicResult.getAValue())); - rawDataVO.setUcStdDev(getValue(contrastNonHarmonicResult.getCValue())); + rawDataVO.setUaDev(getValue(contrastNonHarmonicResultDev.getAValue())); + rawDataVO.setUcDev(getValue(contrastNonHarmonicResultDev.getCValue())); + rawDataVO.setUaStdDev(getValue(contrastNonHarmonicResultStdDev.getAValue())); + rawDataVO.setUcStdDev(getValue(contrastNonHarmonicResultStdDev.getCValue())); } - rawDataVO.setUbStdDev(getValue(contrastNonHarmonicResult.getBValue())); - rawDataVO.setUtStdDev(getValue(contrastNonHarmonicResult.getTValue())); + rawDataVO.setUbStdDev(getValue(contrastNonHarmonicResultStdDev.getBValue())); + rawDataVO.setUtStdDev(getValue(contrastNonHarmonicResultStdDev.getTValue())); rawDataVOList.add(rawDataVO); } @@ -3144,8 +3144,9 @@ public class ResultServiceImpl implements IResultService { * @param code * @param errorSysId * @param deviceId + * @param chnNum */ - private void contrastCalculateResult(String planId, String code, String errorSysId, String deviceId) { + private void contrastCalculateResult(String planId, String code, String errorSysId, String deviceId, String chnNum) { String oldCode = code.replace("_temp", ""); Map devIdMapComm = new HashMap<>(); @@ -3204,9 +3205,11 @@ public class ResultServiceImpl implements IResultService { .set(PqMonitor::getResultType, null) .set(PqMonitor::getQualifiedNum, 0) .eq(PqMonitor::getDevId, deviceId) + .eq(PqMonitor::getNum, Integer.parseInt(chnNum)) .eq(PqMonitor::getCheckFlag, 1) .update(); - List adPairList = adPairService.listByDevIds(Arrays.asList(deviceId)); + String monitorId = deviceId + CnSocketUtil.SPLIT_TAG + chnNum; + List adPairList = adPairService.listByDevIds(Arrays.asList(monitorId)); Map> numAdPairsMap = adPairList.stream().collect(Collectors.groupingBy(AdPair::getNum, Collectors.toList())); numAdPairsMap.forEach((num, pairList) -> { @@ -3227,10 +3230,10 @@ public class ResultServiceImpl implements IResultService { devIdMapComm.put(standardDev.getIp(), standardDev.getId()); }); - List devNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, null, false, null, 0, deviceId, null); - List stdDevNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, null, false, null, 1, deviceId, null); - List devHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, null, false, null, 0, deviceId, null); - List stdDevHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, null, false, null, 1, deviceId, null); + List devNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, null, false, null, 0, monitorId, null); + List stdDevNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, null, false, null, 1, monitorId, null); + List devHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, null, false, null, 0, monitorId, null); + List stdDevHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, null, false, null, 1, monitorId, null); List devData = contrastToList(devNonHarmonicRawDataList, devHarmonicRawDataList, testItemMap, 0); List standardDevData = contrastToList(stdDevNonHarmonicRawDataList, stdDevHarmonicRawDataList, testItemMap, 1); @@ -3247,10 +3250,10 @@ public class ResultServiceImpl implements IResultService { AdPlanTestConfig adPlanTestConfig = adPlanTestConfigService.getByPlanId(planId); for (int i = 1; i <= adPlanTestConfig.getWaveRecord(); i++) { - devNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, i, true, null, 0, deviceId, null); - stdDevNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, i, true, null, 1, deviceId, null); - devHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, i, true, null, 0, deviceId, null); - stdDevHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, i, true, null, 1, deviceId, null); + devNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, i, true, null, 0, monitorId, null); + stdDevNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, i, true, null, 1, monitorId, null); + devHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, i, true, null, 0, monitorId, null); + stdDevHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, i, true, null, 1, monitorId, null); devData = contrastToList(devNonHarmonicRawDataList, devHarmonicRawDataList, testItemMap, 0); standardDevData = contrastToList(stdDevNonHarmonicRawDataList, stdDevHarmonicRawDataList, testItemMap, 1);