统计数据
This commit is contained in:
@@ -99,8 +99,6 @@ import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.njcn.gather.detection.util.socket.FormalTestManager.waveNum;
|
||||
|
||||
/**
|
||||
* @author caozehui
|
||||
* @data 2024-12-30
|
||||
@@ -1997,13 +1995,13 @@ public class ResultServiceImpl implements IResultService {
|
||||
if ("无法比较".equals(resultTemp)) {
|
||||
String numOfDataStr = singlePhaseData.get(ItemReportKeyEnum.NUM_OF_DATA.getKey());
|
||||
unComparableMap.computeIfAbsent(harmNum, k -> new LinkedHashMap<>())
|
||||
.computeIfAbsent(numOfDataStr, k -> new ArrayList<>())
|
||||
.add(phase.toUpperCase() + "相");
|
||||
.computeIfAbsent(numOfDataStr, k -> new ArrayList<>())
|
||||
.add(phase.toUpperCase() + "相");
|
||||
} else if ("不符合".equals(resultTemp)) {
|
||||
String numOfDataStr = singlePhaseData.get(ItemReportKeyEnum.NUM_OF_DATA.getKey());
|
||||
unqualifiedMap.computeIfAbsent(harmNum, k -> new LinkedHashMap<>())
|
||||
.computeIfAbsent(numOfDataStr, k -> new ArrayList<>())
|
||||
.add(phase.toUpperCase() + "相");
|
||||
.computeIfAbsent(numOfDataStr, k -> new ArrayList<>())
|
||||
.add(phase.toUpperCase() + "相");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2035,7 +2033,7 @@ public class ResultServiceImpl implements IResultService {
|
||||
|
||||
// 生成specialCase描述
|
||||
String specialCase = generateHarmonicSpecialCase(zeroFilteredMap, unComparableMap, unqualifiedMap,
|
||||
totalDataPoints, zeroFilteredPoints, isInterHarmonic);
|
||||
totalDataPoints, zeroFilteredPoints, isInterHarmonic);
|
||||
|
||||
// 设置检测结果
|
||||
String overallResult;
|
||||
@@ -2058,6 +2056,7 @@ public class ResultServiceImpl implements IResultService {
|
||||
|
||||
/**
|
||||
* 判断值是否为零
|
||||
*
|
||||
* @param value 字符串值
|
||||
* @return 是否为零
|
||||
*/
|
||||
@@ -2075,12 +2074,13 @@ public class ResultServiceImpl implements IResultService {
|
||||
|
||||
/**
|
||||
* 生成谐波类特殊情况描述
|
||||
* @param zeroFilteredMap 双零过滤的次数和相别
|
||||
* @param unComparableMap 无法比较的次数和相别
|
||||
* @param unqualifiedMap 不符合的次数和相别
|
||||
* @param totalDataPoints 总数据点数
|
||||
*
|
||||
* @param zeroFilteredMap 双零过滤的次数和相别
|
||||
* @param unComparableMap 无法比较的次数和相别
|
||||
* @param unqualifiedMap 不符合的次数和相别
|
||||
* @param totalDataPoints 总数据点数
|
||||
* @param zeroFilteredPoints 双零过滤的数据点数
|
||||
* @param isInterHarmonic 是否为间谐波
|
||||
* @param isInterHarmonic 是否为间谐波
|
||||
* @return 特殊情况描述
|
||||
*/
|
||||
private String generateHarmonicSpecialCase(Map<Integer, List<String>> zeroFilteredMap,
|
||||
@@ -2122,8 +2122,8 @@ public class ResultServiceImpl implements IResultService {
|
||||
List<String> phases = dataEntry.getValue();
|
||||
String phaseKey = String.join("、", phases);
|
||||
groupedUnComparable.computeIfAbsent(numOfData, k -> new LinkedHashMap<>())
|
||||
.computeIfAbsent(phaseKey, k -> new ArrayList<>())
|
||||
.add(harmNum);
|
||||
.computeIfAbsent(phaseKey, k -> new ArrayList<>())
|
||||
.add(harmNum);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2164,7 +2164,7 @@ public class ResultServiceImpl implements IResultService {
|
||||
harmPhaseDesc = "第" + displayHarmNum + "次谐波" + String.join("、", phases);
|
||||
}
|
||||
groupedByNumOfData.computeIfAbsent(numOfData, k -> new ArrayList<>())
|
||||
.add(harmPhaseDesc);
|
||||
.add(harmPhaseDesc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2176,7 +2176,7 @@ public class ResultServiceImpl implements IResultService {
|
||||
// 合并描述:第4次谐波A相、B相、C相、第32次谐波A相、第44次谐波C相
|
||||
specialCaseDesc.append(String.join("、", harmPhaseList));
|
||||
specialCaseDesc.append("收集有效组数为").append(numOfData)
|
||||
.append("组,误差计算结果不符合误差标准要求。");
|
||||
.append("组,误差计算结果不符合误差标准要求。");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2195,7 +2195,8 @@ public class ResultServiceImpl implements IResultService {
|
||||
|
||||
/**
|
||||
* 获取显示用的谐波次数
|
||||
* @param harmNum 原始次数(2-50)
|
||||
*
|
||||
* @param harmNum 原始次数(2-50)
|
||||
* @param isInterHarmonic 是否为间谐波
|
||||
* @return 显示用的次数字符串
|
||||
*/
|
||||
@@ -2214,7 +2215,8 @@ public class ResultServiceImpl implements IResultService {
|
||||
|
||||
/**
|
||||
* 格式化谐波次数列表
|
||||
* @param harmNumbers 谐波次数列表
|
||||
*
|
||||
* @param harmNumbers 谐波次数列表
|
||||
* @param isInterHarmonic 是否为间谐波
|
||||
* @return 格式化的字符串,如"2、3、5"或"2-5、7、9-11"(间谐波为"1.5、2.5、3.5")
|
||||
*/
|
||||
@@ -2401,10 +2403,10 @@ public class ResultServiceImpl implements IResultService {
|
||||
/**
|
||||
* 解析非谐波数据
|
||||
*
|
||||
* @param valueJson JSON格式的数据
|
||||
* @param phase 相别标识
|
||||
* @param numOfData 收集组数
|
||||
* @param scriptCode 脚本代码,用于判断是否需要特殊格式化
|
||||
* @param valueJson JSON格式的数据
|
||||
* @param phase 相别标识
|
||||
* @param numOfData 收集组数
|
||||
* @param scriptCode 脚本代码,用于判断是否需要特殊格式化
|
||||
* @param decimalPlaces 小数位数,null则不格式化
|
||||
* @return 解析后的数据列表
|
||||
*/
|
||||
@@ -2528,11 +2530,11 @@ public class ResultServiceImpl implements IResultService {
|
||||
/**
|
||||
* 解析谐波相数据
|
||||
*
|
||||
* @param jsonData JSON格式的数据
|
||||
* @param phase 相别标识
|
||||
* @param harmNum 谐波次数
|
||||
* @param numOfData 收集组数
|
||||
* @param scriptCode 脚本代码,用于判断是否需要特殊格式化
|
||||
* @param jsonData JSON格式的数据
|
||||
* @param phase 相别标识
|
||||
* @param harmNum 谐波次数
|
||||
* @param numOfData 收集组数
|
||||
* @param scriptCode 脚本代码,用于判断是否需要特殊格式化
|
||||
* @param decimalPlaces 小数位数,null则不格式化
|
||||
* @return 解析后的数据列表
|
||||
*/
|
||||
@@ -3036,13 +3038,35 @@ public class ResultServiceImpl implements IResultService {
|
||||
|
||||
AdPlan plan = adPlanService.getById(planId);
|
||||
|
||||
String dataSourceId = plan.getDatasourceId();
|
||||
String[] dataSourceIds = dataSourceId.split(StrUtil.COMMA);
|
||||
|
||||
DataSourceEnum nonWaveDataSourceEnum = DataSourceEnum.REAL_DATA;
|
||||
for (String ds : dataSourceIds) {
|
||||
switch (DataSourceEnum.valueOf(ds)) {
|
||||
case MINUTE_STATISTICS_MIN:
|
||||
nonWaveDataSourceEnum = DataSourceEnum.MINUTE_STATISTICS_MIN;
|
||||
break;
|
||||
case MINUTE_STATISTICS_MAX:
|
||||
nonWaveDataSourceEnum = DataSourceEnum.MINUTE_STATISTICS_MAX;
|
||||
break;
|
||||
case MINUTE_STATISTICS_AVG:
|
||||
nonWaveDataSourceEnum = DataSourceEnum.MINUTE_STATISTICS_AVG;
|
||||
break;
|
||||
case MINUTE_STATISTICS_CP95:
|
||||
nonWaveDataSourceEnum = DataSourceEnum.MINUTE_STATISTICS_CP95;
|
||||
break;
|
||||
}
|
||||
}
|
||||
DataSourceEnum finalNonWaveDataSourceEnum = nonWaveDataSourceEnum;
|
||||
|
||||
BiMap<String, String> testItemMap = HashBiMap.create();
|
||||
List<String> testItemIds = Arrays.asList(plan.getTestItem().split(","));
|
||||
List<DictTree> dictTreeList = dictTreeService.getDictTreeById(testItemIds);
|
||||
List<String> fatherIdList = dictTreeList.stream().map(DictTree::getId).collect(Collectors.toList());
|
||||
List<DictTree> childDictTreeList = dictTreeService.listByFatherIds(fatherIdList);
|
||||
if (CollUtil.isNotEmpty(childDictTreeList)) {
|
||||
List<String> collect1 = SocketContrastResponseService.testItemCodeMap.values().stream().flatMap(Collection::stream).map(x -> x.split("\\$")[1]).collect(Collectors.toList());
|
||||
List<String> collect1 = SocketContrastResponseService.testItemCodeMap.values().stream().flatMap(Collection::stream).collect(Collectors.toList());
|
||||
testItemMap.putAll(childDictTreeList.stream().filter(x -> collect1.contains(x.getCode())).collect(Collectors.toMap(obj -> DetectionCodeEnum.REAL_PREFIX.getCode() + obj.getCode(), obj -> obj.getId())));
|
||||
}
|
||||
|
||||
@@ -3067,6 +3091,7 @@ public class ResultServiceImpl implements IResultService {
|
||||
.update();
|
||||
List<AdPair> adPairList = adPairService.listByDevIds(Arrays.asList(deviceId));
|
||||
Map<Integer, List<AdPair>> numAdPairsMap = adPairList.stream().collect(Collectors.groupingBy(AdPair::getNum, Collectors.toList()));
|
||||
|
||||
numAdPairsMap.forEach((num, pairList) -> {
|
||||
BiMap<String, String> parsIp = HashBiMap.create();
|
||||
BiMap<String, String> parsId = HashBiMap.create();
|
||||
@@ -3092,11 +3117,11 @@ public class ResultServiceImpl implements IResultService {
|
||||
List<DevData> devData = contrastToList(devNonHarmonicRawDataList, devHarmonicRawDataList, testItemMap);
|
||||
List<DevData> standardDevData = contrastToList(stdDevNonHarmonicRawDataList, stdDevHarmonicRawDataList, testItemMap);
|
||||
|
||||
detectionServiceImpl.processing(devData, standardDevData, parsIp, devIdMapComm, testItemMap.keySet().stream().collect(Collectors.toList()), errorSysId, dataRule, numMap, code, null);
|
||||
detectionServiceImpl.processing(devData, standardDevData, parsIp, devIdMapComm, testItemMap.keySet().stream().collect(Collectors.toList()), errorSysId, dataRule, numMap, code, null, finalNonWaveDataSourceEnum);
|
||||
|
||||
parsId.forEach((devMonitorId, stdDevMonitorId) -> {
|
||||
String[] split = devMonitorId.split(CnSocketUtil.SPLIT_TAG);
|
||||
pqMonitorService.updateMonitorResult(devMonitorId, null, DataSourceEnum.REAL_DATA, num, null, oldCode);
|
||||
pqMonitorService.updateMonitorResult(devMonitorId, null, finalNonWaveDataSourceEnum, num, null, oldCode);
|
||||
pqDevService.updateResult(split[0], null);
|
||||
});
|
||||
|
||||
@@ -3109,12 +3134,12 @@ public class ResultServiceImpl implements IResultService {
|
||||
|
||||
devData = contrastToList(devNonHarmonicRawDataList, devHarmonicRawDataList, testItemMap);
|
||||
standardDevData = contrastToList(stdDevNonHarmonicRawDataList, stdDevHarmonicRawDataList, testItemMap);
|
||||
detectionServiceImpl.processing(devData, standardDevData, parsIp, devIdMapComm, testItemMap.keySet().stream().collect(Collectors.toList()), errorSysId, dataRule, numMap, oldCode, i);
|
||||
detectionServiceImpl.processing(devData, standardDevData, parsIp, devIdMapComm, testItemMap.keySet().stream().collect(Collectors.toList()), errorSysId, dataRule, numMap, oldCode, i, DataSourceEnum.WAVE_DATA);
|
||||
}
|
||||
|
||||
parsId.forEach((devMonitorId, stdDevMonitorId) -> {
|
||||
String[] split = devMonitorId.split(CnSocketUtil.SPLIT_TAG);
|
||||
pqMonitorService.updateMonitorResult(devMonitorId, null, DataSourceEnum.WAVE_DATA, num, adPlanTestConfig.getWaveRecord(), oldCode);
|
||||
pqMonitorService.updateMonitorResult(devMonitorId, null, finalNonWaveDataSourceEnum, num, adPlanTestConfig.getWaveRecord(), oldCode);
|
||||
pqDevService.updateResult(split[0], null);
|
||||
});
|
||||
});
|
||||
@@ -3325,7 +3350,7 @@ public class ResultServiceImpl implements IResultService {
|
||||
/**
|
||||
* 格式化数值,保留指定的小数位数
|
||||
*
|
||||
* @param value 原始数值
|
||||
* @param value 原始数值
|
||||
* @param decimalPlaces 小数位数
|
||||
* @return 格式化后的字符串
|
||||
*/
|
||||
@@ -3366,7 +3391,7 @@ public class ResultServiceImpl implements IResultService {
|
||||
/**
|
||||
* 格式化误差范围字符串,支持处理"-0.05~0.05"格式并转换为"±0.05"格式
|
||||
*
|
||||
* @param errorRange 误差范围字符串
|
||||
* @param errorRange 误差范围字符串
|
||||
* @param decimalPlaces 小数位数
|
||||
* @return 格式化后的误差范围
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user