重新计算、更换误差体系接口调整,cp95处理原则调整、检测结果原始数据调整

This commit is contained in:
caozehui
2025-11-26 18:33:35 +08:00
parent 3f94012faa
commit 68d96e67aa
3 changed files with 74 additions and 64 deletions

View File

@@ -1567,6 +1567,9 @@ public class DetectionServiceImpl {
private Map<String, Integer> singleMonitorProcessing(List<DevData> devDataList, List<DevData> standardDevDataList, Map<String, String> devIdMapComm, List<String> testItemCodeList, String errorSysId, DictDataEnum dataRule, Integer num, String code, Integer waveNum, DataSourceEnum dataSourceEnum) { private Map<String, Integer> singleMonitorProcessing(List<DevData> devDataList, List<DevData> standardDevDataList, Map<String, String> devIdMapComm, List<String> testItemCodeList, String errorSysId, DictDataEnum dataRule, Integer num, String code, Integer waveNum, DataSourceEnum dataSourceEnum) {
Map<String, Integer> resultMap = new HashMap<>(); Map<String, Integer> resultMap = new HashMap<>();
if (CollUtil.isNotEmpty(devDataList) && CollUtil.isNotEmpty(standardDevDataList) && CollUtil.isNotEmpty(testItemCodeList)) { 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(); SysTestConfig oneConfig = sysTestConfigService.getOneConfig();
String[] split1 = devDataList.get(0).getId().split("_"); String[] split1 = devDataList.get(0).getId().split("_");
String devMonitorId = devIdMapComm.get(split1[0]) + "_" + split1[1]; String devMonitorId = devIdMapComm.get(split1[0]) + "_" + split1[1];
@@ -2196,66 +2199,66 @@ public class DetectionServiceImpl {
.map(x -> x.getT().doubleValue()) .map(x -> x.getT().doubleValue())
.collect(Collectors.toList())); .collect(Collectors.toList()));
} }
List<Integer> aIdxs = DetectionUtil.sort(aDev, false); List<Integer> aIdxs = DetectionUtil.sort(aStandardDev, false);
List<Integer> bIdxs = DetectionUtil.sort(bDev, false); List<Integer> bIdxs = DetectionUtil.sort(bStandardDev, false);
List<Integer> cIdxs = DetectionUtil.sort(cDev, false); List<Integer> cIdxs = DetectionUtil.sort(cStandardDev, false);
List<Integer> tIdxs = DetectionUtil.sort(tDev, false); List<Integer> tIdxs = DetectionUtil.sort(tStandardDev, false);
switch (dataRule) { switch (dataRule) {
case SECTION_VALUE: case SECTION_VALUE:
if (aDev.size() > 2) { if (aStandardDev.size() > 2) {
aDev.remove(aIdxs.get(0)); aStandardDev.remove(aIdxs.get(0));
aDev.remove(aIdxs.get(aIdxs.size() - 1)); aStandardDev.remove(aIdxs.get(aIdxs.size() - 1));
List<Double> newArray = DetectionUtil.getNewArray(aStandardDev, aIdxs.subList(1, aIdxs.size() - 1)); List<Double> newArray = DetectionUtil.getNewArray(aDev, aIdxs.subList(1, aIdxs.size() - 1));
aStandardDev.clear(); aDev.clear();
aStandardDev.addAll(newArray); aDev.addAll(newArray);
} }
if (bDev.size() > 2) { if (bStandardDev.size() > 2) {
bDev.remove(bIdxs.get(0)); bStandardDev.remove(bIdxs.get(0));
bDev.remove(bIdxs.get(bIdxs.size() - 1)); bStandardDev.remove(bIdxs.get(bIdxs.size() - 1));
List<Double> newArray = DetectionUtil.getNewArray(bStandardDev, bIdxs.subList(1, bIdxs.size() - 1)); List<Double> newArray = DetectionUtil.getNewArray(bDev, bIdxs.subList(1, bIdxs.size() - 1));
bStandardDev.clear(); bDev.clear();
bStandardDev.addAll(newArray); bDev.addAll(newArray);
} }
if (cDev.size() > 2) { if (cStandardDev.size() > 2) {
cDev.remove(cIdxs.get(0)); cStandardDev.remove(cIdxs.get(0));
cDev.remove(cIdxs.get(cIdxs.size() - 1)); cStandardDev.remove(cIdxs.get(cIdxs.size() - 1));
List<Double> newArray = DetectionUtil.getNewArray(cStandardDev, cIdxs.subList(1, cIdxs.size() - 1)); List<Double> newArray = DetectionUtil.getNewArray(cDev, cIdxs.subList(1, cIdxs.size() - 1));
cStandardDev.clear(); cDev.clear();
cStandardDev.addAll(newArray); cDev.addAll(newArray);
} }
if (tDev.size() > 2) { if (tStandardDev.size() > 2) {
tDev.remove(tIdxs.get(0)); tStandardDev.remove(tIdxs.get(0));
tDev.remove(tIdxs.get(tIdxs.size() - 1)); tStandardDev.remove(tIdxs.get(tIdxs.size() - 1));
List<Double> newArray = DetectionUtil.getNewArray(tStandardDev, tIdxs.subList(1, tIdxs.size() - 1)); List<Double> newArray = DetectionUtil.getNewArray(tDev, tIdxs.subList(1, tIdxs.size() - 1));
tStandardDev.clear(); tDev.clear();
tStandardDev.addAll(newArray); tDev.addAll(newArray);
} }
break; break;
case CP95_VALUE: case CP95_VALUE:
if (CollUtil.isNotEmpty(aDev)) { if (CollUtil.isNotEmpty(aStandardDev)) {
int cp95Idx = DetectionUtil.getCP95Idx(aDev); int cp95Idx = DetectionUtil.getCP95Idx(aStandardDev);
aDev = Collections.singletonList(aDev.get(cp95Idx));
aStandardDev = Collections.singletonList(aStandardDev.get(cp95Idx)); aStandardDev = Collections.singletonList(aStandardDev.get(cp95Idx));
aDev = Collections.singletonList(aDev.get(aIdxs.get(cp95Idx)));
} }
if (CollUtil.isNotEmpty(bDev)) { if (CollUtil.isNotEmpty(bStandardDev)) {
int cp95Idx = DetectionUtil.getCP95Idx(bDev); int cp95Idx = DetectionUtil.getCP95Idx(bStandardDev);
bDev = Collections.singletonList(bDev.get(cp95Idx));
bStandardDev = Collections.singletonList(bStandardDev.get(cp95Idx)); bStandardDev = Collections.singletonList(bStandardDev.get(cp95Idx));
bDev = Collections.singletonList(bDev.get(bIdxs.get(cp95Idx)));
} }
if (CollUtil.isNotEmpty(cDev)) { if (CollUtil.isNotEmpty(cStandardDev)) {
int cp95Idx = DetectionUtil.getCP95Idx(cDev); int cp95Idx = DetectionUtil.getCP95Idx(cStandardDev);
cDev = Collections.singletonList(cDev.get(cp95Idx));
cStandardDev = Collections.singletonList(cStandardDev.get(cp95Idx)); cStandardDev = Collections.singletonList(cStandardDev.get(cp95Idx));
cDev = Collections.singletonList(cDev.get(cIdxs.get(cp95Idx)));
} }
if (CollUtil.isNotEmpty(tDev)) { if (CollUtil.isNotEmpty(tStandardDev)) {
int cp95Idx = DetectionUtil.getCP95Idx(tDev); int cp95Idx = DetectionUtil.getCP95Idx(tStandardDev);
tDev = Collections.singletonList(tDev.get(cp95Idx));
tStandardDev = Collections.singletonList(tStandardDev.get(cp95Idx)); tStandardDev = Collections.singletonList(tStandardDev.get(cp95Idx));
tDev = Collections.singletonList(tDev.get(tIdxs.get(cp95Idx)));
} }
break; break;

View File

@@ -2,6 +2,7 @@ package com.njcn.gather.result.pojo.param;
import com.njcn.common.pojo.constant.PatternRegex; import com.njcn.common.pojo.constant.PatternRegex;
import com.njcn.gather.pojo.constant.DetectionValidMessage; import com.njcn.gather.pojo.constant.DetectionValidMessage;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@@ -100,5 +101,8 @@ public class ResultParam {
@ApiModelProperty(value = "模式Id", required = true) @ApiModelProperty(value = "模式Id", required = true)
private String patternId; private String patternId;
@ApiModelProperty(value = "通道号", required = true)
private String chnNum;
} }
} }

View File

@@ -983,7 +983,7 @@ public class ResultServiceImpl implements IResultService {
DictData dictData = dictDataService.getDictDataById(param.getPatternId()); DictData dictData = dictDataService.getDictDataById(param.getPatternId());
if (PatternEnum.CONTRAST.getValue().equals(dictData.getCode())) { if (PatternEnum.CONTRAST.getValue().equals(dictData.getCode())) {
this.createTempResultTable(param.getCode() + "_temp", true); 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 { } else {
this.createTempResultTable(param.getCode() + "_temp", false); this.createTempResultTable(param.getCode() + "_temp", false);
this.simAndDigCalculateResult(param.getPlanId(), param.getScriptId(), param.getCode() + "_temp", param.getErrorSysId(), param.getDeviceId()); 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) { public void reCalculate(ResultParam.ChangeErrorSystemParam param) {
DictData dictData = dictDataService.getDictDataById(param.getPatternId()); DictData dictData = dictDataService.getDictDataById(param.getPatternId());
if (PatternEnum.CONTRAST.getValue().equals(dictData.getCode())) { 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 { } else {
this.simAndDigCalculateResult(param.getPlanId(), param.getScriptId(), param.getCode(), param.getErrorSysId(), param.getDeviceId()); 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++) { for (int i = 0; i < devNonHarmonicRawDataList.size(); i++) {
AlignDataVO.RawData rawDataVO = new AlignDataVO.RawData(); AlignDataVO.RawData rawDataVO = new AlignDataVO.RawData();
rawDataVO.setUnit(unit); rawDataVO.setUnit(unit);
ContrastNonHarmonicResult contrastNonHarmonicResult = devNonHarmonicRawDataList.get(i); ContrastNonHarmonicResult contrastNonHarmonicResultDev = devNonHarmonicRawDataList.get(i);
rawDataVO.setTimeDev(contrastNonHarmonicResult.getTimeId().format(dtf)); rawDataVO.setTimeDev(contrastNonHarmonicResultDev.getTimeId().format(dtf));
rawDataVO.setUbDev(getValue(contrastNonHarmonicResult.getBValue())); rawDataVO.setUbDev(getValue(contrastNonHarmonicResultDev.getBValue()));
rawDataVO.setUtDev(getValue(contrastNonHarmonicResult.getTValue())); rawDataVO.setUtDev(getValue(contrastNonHarmonicResultDev.getTValue()));
contrastNonHarmonicResult = stdDevNonHarmonicRawDataList.get(i); ContrastNonHarmonicResult contrastNonHarmonicResultStdDev = stdDevNonHarmonicRawDataList.get(i);
rawDataVO.setTimeStdDev(contrastNonHarmonicResult.getTimeId().format(dtf)); rawDataVO.setTimeStdDev(contrastNonHarmonicResultStdDev.getTimeId().format(dtf));
if (!DicDataEnum.IMBV.getCode().equals(dictTree.getCode()) && !DicDataEnum.IMBA.getCode().equals(dictTree.getCode())) { if (!DicDataEnum.IMBV.getCode().equals(dictTree.getCode()) && !DicDataEnum.IMBA.getCode().equals(dictTree.getCode())) {
rawDataVO.setUaDev(getValue(contrastNonHarmonicResult.getAValue())); rawDataVO.setUaDev(getValue(contrastNonHarmonicResultDev.getAValue()));
rawDataVO.setUcDev(getValue(contrastNonHarmonicResult.getCValue())); rawDataVO.setUcDev(getValue(contrastNonHarmonicResultDev.getCValue()));
rawDataVO.setUaStdDev(getValue(contrastNonHarmonicResult.getAValue())); rawDataVO.setUaStdDev(getValue(contrastNonHarmonicResultStdDev.getAValue()));
rawDataVO.setUcStdDev(getValue(contrastNonHarmonicResult.getCValue())); rawDataVO.setUcStdDev(getValue(contrastNonHarmonicResultStdDev.getCValue()));
} }
rawDataVO.setUbStdDev(getValue(contrastNonHarmonicResult.getBValue())); rawDataVO.setUbStdDev(getValue(contrastNonHarmonicResultStdDev.getBValue()));
rawDataVO.setUtStdDev(getValue(contrastNonHarmonicResult.getTValue())); rawDataVO.setUtStdDev(getValue(contrastNonHarmonicResultStdDev.getTValue()));
rawDataVOList.add(rawDataVO); rawDataVOList.add(rawDataVO);
} }
@@ -3144,8 +3144,9 @@ public class ResultServiceImpl implements IResultService {
* @param code * @param code
* @param errorSysId * @param errorSysId
* @param deviceId * @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", ""); String oldCode = code.replace("_temp", "");
Map<String, String> devIdMapComm = new HashMap<>(); Map<String, String> devIdMapComm = new HashMap<>();
@@ -3204,9 +3205,11 @@ public class ResultServiceImpl implements IResultService {
.set(PqMonitor::getResultType, null) .set(PqMonitor::getResultType, null)
.set(PqMonitor::getQualifiedNum, 0) .set(PqMonitor::getQualifiedNum, 0)
.eq(PqMonitor::getDevId, deviceId) .eq(PqMonitor::getDevId, deviceId)
.eq(PqMonitor::getNum, Integer.parseInt(chnNum))
.eq(PqMonitor::getCheckFlag, 1) .eq(PqMonitor::getCheckFlag, 1)
.update(); .update();
List<AdPair> adPairList = adPairService.listByDevIds(Arrays.asList(deviceId)); String monitorId = deviceId + CnSocketUtil.SPLIT_TAG + chnNum;
List<AdPair> adPairList = adPairService.listByDevIds(Arrays.asList(monitorId));
Map<Integer, List<AdPair>> numAdPairsMap = adPairList.stream().collect(Collectors.groupingBy(AdPair::getNum, Collectors.toList())); Map<Integer, List<AdPair>> numAdPairsMap = adPairList.stream().collect(Collectors.groupingBy(AdPair::getNum, Collectors.toList()));
numAdPairsMap.forEach((num, pairList) -> { numAdPairsMap.forEach((num, pairList) -> {
@@ -3227,10 +3230,10 @@ public class ResultServiceImpl implements IResultService {
devIdMapComm.put(standardDev.getIp(), standardDev.getId()); devIdMapComm.put(standardDev.getIp(), standardDev.getId());
}); });
List<ContrastNonHarmonicResult> devNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, null, false, null, 0, deviceId, null); List<ContrastNonHarmonicResult> devNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, null, false, null, 0, monitorId, null);
List<ContrastNonHarmonicResult> stdDevNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, null, false, null, 1, deviceId, null); List<ContrastNonHarmonicResult> stdDevNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, null, false, null, 1, monitorId, null);
List<ContrastHarmonicResult> devHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, null, false, null, 0, deviceId, null); List<ContrastHarmonicResult> devHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, null, false, null, 0, monitorId, null);
List<ContrastHarmonicResult> stdDevHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, null, false, null, 1, deviceId, null); List<ContrastHarmonicResult> stdDevHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, null, false, null, 1, monitorId, null);
List<DevData> devData = contrastToList(devNonHarmonicRawDataList, devHarmonicRawDataList, testItemMap, 0); List<DevData> devData = contrastToList(devNonHarmonicRawDataList, devHarmonicRawDataList, testItemMap, 0);
List<DevData> standardDevData = contrastToList(stdDevNonHarmonicRawDataList, stdDevHarmonicRawDataList, testItemMap, 1); List<DevData> standardDevData = contrastToList(stdDevNonHarmonicRawDataList, stdDevHarmonicRawDataList, testItemMap, 1);
@@ -3247,10 +3250,10 @@ public class ResultServiceImpl implements IResultService {
AdPlanTestConfig adPlanTestConfig = adPlanTestConfigService.getByPlanId(planId); AdPlanTestConfig adPlanTestConfig = adPlanTestConfigService.getByPlanId(planId);
for (int i = 1; i <= adPlanTestConfig.getWaveRecord(); i++) { for (int i = 1; i <= adPlanTestConfig.getWaveRecord(); i++) {
devNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, i, true, null, 0, deviceId, null); devNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, i, true, null, 0, monitorId, null);
stdDevNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, i, true, null, 1, deviceId, null); stdDevNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, i, true, null, 1, monitorId, null);
devHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, i, true, null, 0, deviceId, null); devHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, i, true, null, 0, monitorId, null);
stdDevHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, i, true, null, 1, deviceId, null); stdDevHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, i, true, null, 1, monitorId, null);
devData = contrastToList(devNonHarmonicRawDataList, devHarmonicRawDataList, testItemMap, 0); devData = contrastToList(devNonHarmonicRawDataList, devHarmonicRawDataList, testItemMap, 0);
standardDevData = contrastToList(stdDevNonHarmonicRawDataList, stdDevHarmonicRawDataList, testItemMap, 1); standardDevData = contrastToList(stdDevNonHarmonicRawDataList, stdDevHarmonicRawDataList, testItemMap, 1);