动态决定是否进行相角差校验、角型接线是否使用相别的指标进行正式检测、数模脚本与映射校验时动态补充相角的测试项

This commit is contained in:
caozehui
2025-08-26 18:49:35 +08:00
parent d0f6cc46ad
commit 6ae9037a47
22 changed files with 434 additions and 259 deletions

View File

@@ -1523,21 +1523,28 @@ public class ResultServiceImpl implements IResultService {
allResultList.addAll(contrastHarmonicResults);
allResultList.addAll(contrastNonHarmonicResults);
Map<String, List<Integer>> chnMap = new HashMap<>();
Map<String, List<Integer>> chnMap = new TreeMap<>();
Map<String, List<ContrastBaseResult>> devMonitorIdMap = allResultList.stream().collect(Collectors.groupingBy(ContrastBaseResult::getDevMonitorId));
devMonitorIdMap.forEach((devMonitorId, resultList) -> {
Integer maxNum = resultList.stream().map(ContrastBaseResult::getNum).max(Comparator.comparing(Integer::valueOf)).orElse(1);
List<Integer> numList = Stream.iterate(1, n -> n + 1).limit(maxNum).collect(Collectors.toList());
String[] split = devMonitorId.split(CnSocketUtil.SPLIT_TAG);
chnMap.put(split[1], numList);
if (ObjectUtil.isNull(queryParam.getNum())) {
formContentVO.setCheckNum(maxNum);
} else {
formContentVO.setCheckNum(queryParam.getNum());
}
});
if (ObjectUtil.isNull(queryParam.getNum())) {
if (StrUtil.isNotBlank(queryParam.getChnNum())) {
List<Integer> integers = chnMap.get(queryParam.getChnNum());
formContentVO.setCheckNum(integers.get(integers.size() - 1));
} else {
List<String> keyList = chnMap.keySet().stream().collect(Collectors.toList());
List<Integer> integers = chnMap.get(keyList.get(0));
formContentVO.setCheckNum(integers.get(integers.size() - 1));
}
} else {
formContentVO.setCheckNum(queryParam.getNum());
}
formContentVO.setChnMap(chnMap);
return formContentVO;
}
@@ -1553,19 +1560,31 @@ public class ResultServiceImpl implements IResultService {
List<String> adTypeList = childDictTreeList.stream().map(DictTree::getId).collect(Collectors.toList());
DictTree dictTree = dictTreeList.get(0);
contrastResultVO.setResultMap(this.getResultMap(dictTree, adTypeList, queryParam.getDeviceId() + CnSocketUtil.SPLIT_TAG + queryParam.getChnNum(), queryParam.getNum(), String.valueOf(plan.getCode())));
contrastResultVO.setRawDataMap(this.getRawDataMap(dictTree, adTypeList, queryParam.getDeviceId() + CnSocketUtil.SPLIT_TAG + queryParam.getChnNum(), queryParam.getNum(), String.valueOf(plan.getCode())));
String unit = StorageUtil.unit(dictTree.getCode());
if (DicDataEnum.HV.getCode().equals(dictTree.getCode()) || DicDataEnum.HI.getCode().equals(dictTree.getCode())) {
unit = "%";
if (DicDataEnum.HI.getCode().equals(dictTree.getCode())) {
unit = "A";
}
}
if (DicDataEnum.HSV.getCode().equals(dictTree.getCode()) || DicDataEnum.HSI.getCode().equals(dictTree.getCode())) {
unit = "%";
if (DicDataEnum.HSI.getCode().equals(dictTree.getCode())) {
unit = "A";
}
}
contrastResultVO.setResultMap(this.getResultMap(dictTree, adTypeList, queryParam.getDeviceId() + CnSocketUtil.SPLIT_TAG + queryParam.getChnNum(), unit, queryParam.getNum(), String.valueOf(plan.getCode())));
contrastResultVO.setRawDataMap(this.getRawDataMap(dictTree, adTypeList, queryParam.getDeviceId() + CnSocketUtil.SPLIT_TAG + queryParam.getChnNum(), unit, queryParam.getNum(), String.valueOf(plan.getCode())));
return contrastResultVO;
}
private Map<String, List<RawResultDataVO>> getResultMap(DictTree dictTree, List<String> adTypeList, String monitorId, Integer num, String code) {
private Map<String, List<RawResultDataVO>> getResultMap(DictTree dictTree, List<String> adTypeList, String monitorId, String unit, Integer num, String code) {
Map<String, List<RawResultDataVO>> resultMap = new LinkedHashMap<>();
List<ContrastNonHarmonicResult> contrastNonHarmonicResults = contrastNonHarmonicService.listAllResultData(code, num, monitorId, adTypeList);
List<ContrastHarmonicResult> contrastHarmonicResults = contrastHarmonicService.listAllResultData(code, num, monitorId, adTypeList);
String unit = StorageUtil.unit(dictTree.getCode());
if (CollUtil.isNotEmpty(contrastNonHarmonicResults)) {
ContrastNonHarmonicResult contrastNonHarmonicResult = contrastNonHarmonicResults.get(0);
List<RawResultDataVO.DetectionData> aList = JSON.parseArray(contrastNonHarmonicResult.getAValue() + "", RawResultDataVO.DetectionData.class);
@@ -1612,22 +1631,13 @@ public class ResultServiceImpl implements IResultService {
List<Double> harmonicNum = null;
if (DicDataEnum.HV.getCode().equals(dictTree.getCode()) || DicDataEnum.HI.getCode().equals(dictTree.getCode())) {
harmonicNum = Stream.iterate(2.0, n -> n + 1).limit(49).collect(Collectors.toList());
unit = "%";
if (DicDataEnum.HI.getCode().equals(dictTree.getCode())) {
unit = "A";
}
}
if (DicDataEnum.HSV.getCode().equals(dictTree.getCode()) || DicDataEnum.HSI.getCode().equals(dictTree.getCode())) {
harmonicNum = Stream.iterate(0.5, n -> n + 1).limit(50).collect(Collectors.toList());
unit = "%";
if (DicDataEnum.HSI.getCode().equals(dictTree.getCode())) {
unit = "A";
}
}
for (Double n : harmonicNum) {
try {
int i = StorageUtil.isHarmOrInHarm(n).intValue();
String finalUnit = unit;
Field fieldA = contrastHarmonicResult.getClass().getDeclaredField("aValue" + i);
fieldA.setAccessible(true);
@@ -1645,7 +1655,7 @@ public class ResultServiceImpl implements IResultService {
for (int j = 0; j < aList.size(); j++) {
RawResultDataVO dataVO = new RawResultDataVO();
dataVO.setHarmNum(n);
dataVO.setUnit(finalUnit);
dataVO.setUnit(unit);
dataVO.setDataA(aList.get(j));
dataVO.setDataB(bList.get(j));
dataVO.setDataC(cList.get(j));
@@ -1664,35 +1674,41 @@ public class ResultServiceImpl implements IResultService {
return resultMap;
}
private Map<String, List<AlignDataVO.RawData>> getRawDataMap(DictTree dictTree, List<String> adTypeList, String monitorId, Integer num, String code) {
Map<String, List<AlignDataVO.RawData>> resultMap = new LinkedHashMap<>();
private Map<String, List<AlignDataVO.RawData>> getRawDataMap(DictTree dictTree, List<String> adTypeList, String monitorId, String unit, Integer num, String code) {
Map<String, List<AlignDataVO.RawData>> rawMap = new LinkedHashMap<>();
List<ContrastNonHarmonicResult> devNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(code, num, 0, monitorId, adTypeList);
List<ContrastNonHarmonicResult> stdDevNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(code, num, 1, monitorId, adTypeList);
List<ContrastHarmonicResult> devHarmonicRawDataList = contrastHarmonicService.listAllRawData(code, num, 0, monitorId, adTypeList);
List<ContrastHarmonicResult> stdDevHarmonicRawDataList = contrastHarmonicService.listAllRawData(code, num, 1, monitorId, adTypeList);
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
List<AlignDataVO.RawData> rawDataVOList = new ArrayList<>();
for (int i = 0; i < devNonHarmonicRawDataList.size(); i++) {
AlignDataVO.RawData rawDataVO = new AlignDataVO.RawData();
rawDataVO.setUnit(unit);
ContrastNonHarmonicResult contrastNonHarmonicResult = devNonHarmonicRawDataList.get(i);
rawDataVO.setTimeDev(String.valueOf(contrastNonHarmonicResult.getTimeId()));
rawDataVO.setUaDev(getValue(contrastNonHarmonicResult.getAValue()));
rawDataVO.setTimeDev(contrastNonHarmonicResult.getTimeId().format(dtf));
rawDataVO.setUbDev(getValue(contrastNonHarmonicResult.getBValue()));
rawDataVO.setUcDev(getValue(contrastNonHarmonicResult.getCValue()));
rawDataVO.setUtDev(getValue(contrastNonHarmonicResult.getTValue()));
contrastNonHarmonicResult = stdDevNonHarmonicRawDataList.get(i);
rawDataVO.setTimeStdDev(String.valueOf(contrastNonHarmonicResult.getTimeId()));
rawDataVO.setUaStdDev(getValue(contrastNonHarmonicResult.getAValue()));
rawDataVO.setTimeStdDev(contrastNonHarmonicResult.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.setUbStdDev(getValue(contrastNonHarmonicResult.getBValue()));
rawDataVO.setUcStdDev(getValue(contrastNonHarmonicResult.getCValue()));
rawDataVO.setUtStdDev(getValue(contrastNonHarmonicResult.getTValue()));
rawDataVOList.add(rawDataVO);
}
if (CollUtil.isNotEmpty(rawDataVOList)) {
resultMap.put(dictTree.getName(), rawDataVOList);
rawMap.put(dictTree.getName(), rawDataVOList);
}
if (CollUtil.isNotEmpty(devHarmonicRawDataList) && CollUtil.isNotEmpty(stdDevHarmonicRawDataList)) {
@@ -1708,11 +1724,12 @@ public class ResultServiceImpl implements IResultService {
int i = StorageUtil.isHarmOrInHarm(n).intValue();
for (int j = 0; j < devHarmonicRawDataList.size(); j++) {
AlignDataVO.RawData rawDataVO = new AlignDataVO.RawData();
rawDataVO.setUnit(unit);
ContrastHarmonicResult devHarmonicResult = devHarmonicRawDataList.get(j);
ContrastHarmonicResult stdDevHarmonicResult = stdDevHarmonicRawDataList.get(j);
rawDataVO.setTimeDev(String.valueOf(devHarmonicResult.getTimeId()));
rawDataVO.setTimeStdDev(String.valueOf(stdDevHarmonicResult.getTimeId()));
rawDataVO.setTimeDev(devHarmonicResult.getTimeId().format(dtf));
rawDataVO.setTimeStdDev(stdDevHarmonicResult.getTimeId().format(dtf));
try {
Field fieldA = devHarmonicResult.getClass().getDeclaredField("aValue" + i);
@@ -1751,11 +1768,11 @@ public class ResultServiceImpl implements IResultService {
}
rawDataVOList1.add(rawDataVO);
}
resultMap.put(String.valueOf(n), rawDataVOList1);
rawMap.put(String.valueOf(n), rawDataVOList1);
}
}
return resultMap;
return rawMap;
}
private Double getValue(String value) {