统计数据
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -849,7 +849,7 @@ public class SocketDevResponseService {
|
|||||||
boolean isContinue = true;
|
boolean isContinue = true;
|
||||||
List<String> descList = icdCheckData.getResultData().stream().map(
|
List<String> descList = icdCheckData.getResultData().stream().map(
|
||||||
obj -> {
|
obj -> {
|
||||||
if (DetectionCodeEnum.MAG.getCode().equals(obj.getDesc()) || DetectionCodeEnum.DUR.getCode().equals(obj.getDesc())) {
|
if (DetectionCodeEnum.MAG.getCode().equals(obj.getDesc()) || DetectionCodeEnum.DUR.getCode().equals(obj.getDesc()) || DetectionCodeEnum.PST.getCode().equals(obj.getDesc())) {
|
||||||
return DetectionCodeEnum.AVG_PREFIX.getCode() + obj.getDesc();
|
return DetectionCodeEnum.AVG_PREFIX.getCode() + obj.getDesc();
|
||||||
} else {
|
} else {
|
||||||
return DetectionCodeEnum.REAL_PREFIX.getCode() + obj.getDesc();
|
return DetectionCodeEnum.REAL_PREFIX.getCode() + obj.getDesc();
|
||||||
@@ -1371,7 +1371,7 @@ public class SocketDevResponseService {
|
|||||||
checkDataParam.setIsValueTypeName(false);
|
checkDataParam.setIsValueTypeName(false);
|
||||||
List<String> valueType = iPqScriptCheckDataService.getValueType(checkDataParam);
|
List<String> valueType = iPqScriptCheckDataService.getValueType(checkDataParam);
|
||||||
|
|
||||||
iPqDevService.updateResult( param.getDevIds(), valueType, param.getCode(), param.getUserId(), param.getTemperature(), param.getHumidity());
|
iPqDevService.updateResult(param.getDevIds(), valueType, param.getCode(), param.getUserId(), param.getTemperature(), param.getHumidity());
|
||||||
CnSocketUtil.quitSend(param);
|
CnSocketUtil.quitSend(param);
|
||||||
}
|
}
|
||||||
successComm.clear();
|
successComm.clear();
|
||||||
|
|||||||
@@ -50,7 +50,10 @@ public enum DetectionCodeEnum {
|
|||||||
DELTA("Delta", "角型接线"),
|
DELTA("Delta", "角型接线"),
|
||||||
|
|
||||||
REAL_PREFIX("real$", "实时数据前缀"),
|
REAL_PREFIX("real$", "实时数据前缀"),
|
||||||
AVG_PREFIX("avg$", "统计数据前缀");
|
CP_95_PREFIX("cp95$", "分钟统计-CP95值数据前缀"),
|
||||||
|
MAX_PREFIX("max$", "分钟统计-最大值数据前缀"),
|
||||||
|
MIN_PREFIX("min$", "分钟统计-最小值数据前缀"),
|
||||||
|
AVG_PREFIX("avg$", "分钟统计-平均值数据前缀");
|
||||||
|
|
||||||
private final String code;
|
private final String code;
|
||||||
private final String message;
|
private final String message;
|
||||||
|
|||||||
@@ -42,7 +42,8 @@ public enum SourceResponseCodeEnum {
|
|||||||
FAIL(25002,"失败"),
|
FAIL(25002,"失败"),
|
||||||
ALL_FAIL(25003,"校验失败"),
|
ALL_FAIL(25003,"校验失败"),
|
||||||
RECEIVE_DATA_TIME_OUT(25004,"接收数据超时"),
|
RECEIVE_DATA_TIME_OUT(25004,"接收数据超时"),
|
||||||
REAL_DATA_CHECK_FAIL(25005,"实时数据校验失败")
|
REAL_DATA_CHECK_FAIL(25005,"实时数据校验失败"),
|
||||||
|
STATISTICS_DATA_CHECK_FAIL(25006,"统计数据校验失败")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1508,9 +1508,10 @@ public class DetectionServiceImpl {
|
|||||||
* @param numMap 第几次检测 key为设备id_通道号,value为第几次检测
|
* @param numMap 第几次检测 key为设备id_通道号,value为第几次检测
|
||||||
* @param code 结果表code
|
* @param code 结果表code
|
||||||
* @param waveNum 第几次录波
|
* @param waveNum 第几次录波
|
||||||
|
* @param dataSourceEnum 数据源类型
|
||||||
* @return key为被检设备ip_通道号、value为是否合格(1合格 2不合格 4无法处理)
|
* @return key为被检设备ip_通道号、value为是否合格(1合格 2不合格 4无法处理)
|
||||||
*/
|
*/
|
||||||
public List<DevLineTestResult> processing(List<DevData> devDataList, List<DevData> standardDevDataList, Map<String, String> parsIp, Map<String, String> devIdMapComm, List<String> testItemCodeList, String errorSysId, DictDataEnum dataRule, Map<String, Integer> numMap, String code, Integer waveNum) {
|
public List<DevLineTestResult> processing(List<DevData> devDataList, List<DevData> standardDevDataList, Map<String, String> parsIp, Map<String, String> devIdMapComm, List<String> testItemCodeList, String errorSysId, DictDataEnum dataRule, Map<String, Integer> numMap, String code, Integer waveNum, DataSourceEnum dataSourceEnum) {
|
||||||
Map<String, List<DevData>> devDataMap = devDataList.stream().collect(Collectors.groupingBy(obj -> obj.getId().split("_")[0]));
|
Map<String, List<DevData>> devDataMap = devDataList.stream().collect(Collectors.groupingBy(obj -> obj.getId().split("_")[0]));
|
||||||
Map<String, List<DevData>> standardDevDataMap = standardDevDataList.stream().collect(Collectors.groupingBy(DevData::getId));
|
Map<String, List<DevData>> standardDevDataMap = standardDevDataList.stream().collect(Collectors.groupingBy(DevData::getId));
|
||||||
|
|
||||||
@@ -1525,7 +1526,7 @@ public class DetectionServiceImpl {
|
|||||||
Map<String, List<Integer>> chnResultMap = new HashMap<>();
|
Map<String, List<Integer>> chnResultMap = new HashMap<>();
|
||||||
devMonitorMap.forEach((devMoniterId, devData) -> {
|
devMonitorMap.forEach((devMoniterId, devData) -> {
|
||||||
String[] split = devMoniterId.split(CnSocketUtil.SPLIT_TAG);
|
String[] split = devMoniterId.split(CnSocketUtil.SPLIT_TAG);
|
||||||
Map<String, Integer> map = singleMonitorProcessing(devData, standardDevDataMap.get(parsIp.get(devMoniterId)), devIdMapComm, testItemCodeList, errorSysId, dataRule, numMap.get(devId + CnSocketUtil.SPLIT_TAG + split[1]), code, waveNum);
|
Map<String, Integer> map = singleMonitorProcessing(devData, standardDevDataMap.get(parsIp.get(devMoniterId)), devIdMapComm, testItemCodeList, errorSysId, dataRule, numMap.get(devId + CnSocketUtil.SPLIT_TAG + split[1]), code, waveNum, dataSourceEnum);
|
||||||
map.forEach((key, value) -> {
|
map.forEach((key, value) -> {
|
||||||
DevLineTestResult devLineTestResult = new DevLineTestResult();
|
DevLineTestResult devLineTestResult = new DevLineTestResult();
|
||||||
devLineTestResult.setDeviceId(devId);
|
devLineTestResult.setDeviceId(devId);
|
||||||
@@ -1560,9 +1561,10 @@ public class DetectionServiceImpl {
|
|||||||
* @param num 第几次检测
|
* @param num 第几次检测
|
||||||
* @param code 结果表code
|
* @param code 结果表code
|
||||||
* @param waveNum 第几次录波
|
* @param waveNum 第几次录波
|
||||||
|
* @param dataSourceEnum 数据源类型
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
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) {
|
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)) {
|
||||||
SysTestConfig oneConfig = sysTestConfigService.getOneConfig();
|
SysTestConfig oneConfig = sysTestConfigService.getOneConfig();
|
||||||
@@ -1610,12 +1612,12 @@ public class DetectionServiceImpl {
|
|||||||
sqlData.setList(listDTO);
|
sqlData.setList(listDTO);
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
resultMap.put(PowerIndexEnum.FREQ.getKey(), isQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, true, fHz, DetectionCodeEnum.FREQ.getCode(), dataRule, num, code, oneConfig.getScale(), waveNum));
|
resultMap.put(PowerIndexEnum.FREQ.getKey(), isQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, true, fHz, DetectionCodeEnum.FREQ.getCode(), dataRule, num, code, oneConfig.getScale(), waveNum, dataSourceEnum));
|
||||||
break;
|
break;
|
||||||
case VRMS:
|
case VRMS:
|
||||||
case PVRMS:
|
case PVRMS:
|
||||||
// 如果是角型接法且存在角型接法的一些指标,则不进行使用角型接线的指标。反之,则使用相别的指标。
|
// 如果是角型接法且存在角型接法的一些指标,则不进行使用角型接线的指标。反之,则使用相别的指标。
|
||||||
resultMap.put(PowerIndexEnum.V.getKey(), isQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, true, fUn, (isDelta && isExitDelta ? DetectionCodeEnum.PVRMS.getCode() : DetectionCodeEnum.VRMS.getCode()), dataRule, num, code, oneConfig.getScale(), waveNum));
|
resultMap.put(PowerIndexEnum.V.getKey(), isQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, true, fUn, (isDelta && isExitDelta ? DetectionCodeEnum.PVRMS.getCode() : DetectionCodeEnum.VRMS.getCode()), dataRule, num, code, oneConfig.getScale(), waveNum, dataSourceEnum));
|
||||||
break;
|
break;
|
||||||
case IRMS:
|
case IRMS:
|
||||||
// if (ObjectUtil.isNotNull(waveNum) && (waveNum.equals(2) || waveNum.equals(5))) {
|
// if (ObjectUtil.isNotNull(waveNum) && (waveNum.equals(2) || waveNum.equals(5))) {
|
||||||
@@ -1626,30 +1628,33 @@ public class DetectionServiceImpl {
|
|||||||
// sqlData.setList(listDTO);
|
// sqlData.setList(listDTO);
|
||||||
// }));
|
// }));
|
||||||
// }
|
// }
|
||||||
resultMap.put(PowerIndexEnum.I.getKey(), isQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, true, fIn, DetectionCodeEnum.IRMS.getCode(), dataRule, num, code, oneConfig.getScale(), waveNum));
|
resultMap.put(PowerIndexEnum.I.getKey(), isQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, true, fIn, DetectionCodeEnum.IRMS.getCode(), dataRule, num, code, oneConfig.getScale(), waveNum, dataSourceEnum));
|
||||||
break;
|
break;
|
||||||
case V_UNBAN:
|
case V_UNBAN:
|
||||||
resultMap.put(PowerIndexEnum.IMBV.getKey(), isQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, false, fUn, DetectionCodeEnum.V_UNBAN.getCode(), dataRule, num, code, oneConfig.getScale(), waveNum));
|
resultMap.put(PowerIndexEnum.IMBV.getKey(), isQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, false, fUn, DetectionCodeEnum.V_UNBAN.getCode(), dataRule, num, code, oneConfig.getScale(), waveNum, dataSourceEnum));
|
||||||
break;
|
break;
|
||||||
case I_UNBAN:
|
case I_UNBAN:
|
||||||
resultMap.put(PowerIndexEnum.IMBA.getKey(), isQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, false, fIn, DetectionCodeEnum.I_UNBAN.getCode(), dataRule, num, code, oneConfig.getScale(), waveNum));
|
resultMap.put(PowerIndexEnum.IMBA.getKey(), isQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, false, fIn, DetectionCodeEnum.I_UNBAN.getCode(), dataRule, num, code, oneConfig.getScale(), waveNum, dataSourceEnum));
|
||||||
break;
|
break;
|
||||||
case V2_50:
|
case V2_50:
|
||||||
case PV2_50:
|
case PV2_50:
|
||||||
resultMap.put(PowerIndexEnum.HV.getKey(), isHarmQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, U, fUn, HARMONIC_FLAG, isDelta && isExitDelta, dataRule, num, code, oneConfig.getScale(), waveNum));
|
resultMap.put(PowerIndexEnum.HV.getKey(), isHarmQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, U, fUn, HARMONIC_FLAG, isDelta && isExitDelta, dataRule, num, code, oneConfig.getScale(), waveNum, dataSourceEnum));
|
||||||
break;
|
break;
|
||||||
case I2_50:
|
case I2_50:
|
||||||
resultMap.put(PowerIndexEnum.HI.getKey(), isHarmQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, I, fIn, HARMONIC_FLAG, isDelta && isExitDelta, dataRule, num, code, oneConfig.getScale(), waveNum));
|
resultMap.put(PowerIndexEnum.HI.getKey(), isHarmQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, I, fIn, HARMONIC_FLAG, isDelta && isExitDelta, dataRule, num, code, oneConfig.getScale(), waveNum, dataSourceEnum));
|
||||||
break;
|
break;
|
||||||
case P2_50:
|
case P2_50:
|
||||||
resultMap.put(PowerIndexEnum.HP.getKey(), isHarmQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, HP, fUn * fIn, HARMONIC_FLAG, isDelta && isExitDelta, dataRule, num, code, oneConfig.getScale(), waveNum));
|
resultMap.put(PowerIndexEnum.HP.getKey(), isHarmQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, HP, fUn * fIn, HARMONIC_FLAG, isDelta && isExitDelta, dataRule, num, code, oneConfig.getScale(), waveNum, dataSourceEnum));
|
||||||
break;
|
break;
|
||||||
case SV_1_49:
|
case SV_1_49:
|
||||||
case PSV_1_49:
|
case PSV_1_49:
|
||||||
resultMap.put(PowerIndexEnum.HSV.getKey(), isHarmQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, U, fUn, INHARMONIC_FLAG, isDelta && isExitDelta, dataRule, num, code, oneConfig.getScale(), waveNum));
|
resultMap.put(PowerIndexEnum.HSV.getKey(), isHarmQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, U, fUn, INHARMONIC_FLAG, isDelta && isExitDelta, dataRule, num, code, oneConfig.getScale(), waveNum, dataSourceEnum));
|
||||||
break;
|
break;
|
||||||
case SI_1_49:
|
case SI_1_49:
|
||||||
resultMap.put(PowerIndexEnum.HSI.getKey(), isHarmQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, I, fIn, INHARMONIC_FLAG, isDelta && isExitDelta, dataRule, num, code, oneConfig.getScale(), waveNum));
|
resultMap.put(PowerIndexEnum.HSI.getKey(), isHarmQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, I, fIn, INHARMONIC_FLAG, isDelta && isExitDelta, dataRule, num, code, oneConfig.getScale(), waveNum, dataSourceEnum));
|
||||||
|
break;
|
||||||
|
case PST:
|
||||||
|
resultMap.put(PowerIndexEnum.PST.getKey(), isQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, true, fUn , DetectionCodeEnum.PST.getCode(), dataRule, num, code, oneConfig.getScale(), waveNum, dataSourceEnum));
|
||||||
break;
|
break;
|
||||||
case UNKNOWN_ERROR:
|
case UNKNOWN_ERROR:
|
||||||
break;
|
break;
|
||||||
@@ -1708,6 +1713,7 @@ public class DetectionServiceImpl {
|
|||||||
* @param code 结果表code
|
* @param code 结果表code
|
||||||
* @param scale 小数点位数
|
* @param scale 小数点位数
|
||||||
* @param waveNum 第几次录波
|
* @param waveNum 第几次录波
|
||||||
|
* @param dataSourceEnum 数据源类型
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private Integer isQualified(List<DevData> devDataList,
|
private Integer isQualified(List<DevData> devDataList,
|
||||||
@@ -1721,12 +1727,13 @@ public class DetectionServiceImpl {
|
|||||||
Integer num,
|
Integer num,
|
||||||
String code,
|
String code,
|
||||||
Integer scale,
|
Integer scale,
|
||||||
Integer waveNum) {
|
Integer waveNum,
|
||||||
|
DataSourceEnum dataSourceEnum) {
|
||||||
List<ContrastNonHarmonicResult> info = new ArrayList<>();
|
List<ContrastNonHarmonicResult> info = new ArrayList<>();
|
||||||
if (CollUtil.isNotEmpty(devDataList) && CollUtil.isNotEmpty(standardDevDataList) && CollUtil.isNotEmpty(errSysDtls)) {
|
if (CollUtil.isNotEmpty(devDataList) && CollUtil.isNotEmpty(standardDevDataList) && CollUtil.isNotEmpty(errSysDtls)) {
|
||||||
|
|
||||||
Map<String, List<List<Double>>> map = devListMap(devDataList, standardDevDataList, desc, dataRule);
|
Map<String, List<List<Double>>> map = devListMap(devDataList, standardDevDataList, desc, dataRule);
|
||||||
if(ObjectUtil.isNull(map)){
|
if (ObjectUtil.isNull(map)) {
|
||||||
return 4;
|
return 4;
|
||||||
}
|
}
|
||||||
ContrastNonHarmonicResult result = new ContrastNonHarmonicResult();
|
ContrastNonHarmonicResult result = new ContrastNonHarmonicResult();
|
||||||
@@ -1738,7 +1745,7 @@ public class DetectionServiceImpl {
|
|||||||
result.setDevMonitorId(devIdMapComm.get(split1[0]) + "_" + split1[1]);
|
result.setDevMonitorId(devIdMapComm.get(split1[0]) + "_" + split1[1]);
|
||||||
result.setStdDevMonitorId(devIdMapComm.get(split2[0]) + "_" + split2[1]);
|
result.setStdDevMonitorId(devIdMapComm.get(split2[0]) + "_" + split2[1]);
|
||||||
result.setAdType(errSysDtls.get(0).getScriptType());
|
result.setAdType(errSysDtls.get(0).getScriptType());
|
||||||
result.setDataType(DataSourceEnum.REAL_DATA.getValue());
|
result.setDataType(dataSourceEnum.getValue());
|
||||||
if (ObjectUtil.isNotNull(waveNum)) {
|
if (ObjectUtil.isNotNull(waveNum)) {
|
||||||
result.setDataType(DataSourceEnum.WAVE_DATA.getValue());
|
result.setDataType(DataSourceEnum.WAVE_DATA.getValue());
|
||||||
}
|
}
|
||||||
@@ -1793,6 +1800,7 @@ public class DetectionServiceImpl {
|
|||||||
* @param code 结果表code
|
* @param code 结果表code
|
||||||
* @param scale 小数点位数
|
* @param scale 小数点位数
|
||||||
* @param waveNum 第几次录波
|
* @param waveNum 第几次录波
|
||||||
|
* @param dataSourceEnum 数据源类型
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public Integer isHarmQualified(List<DevData> devDataList,
|
public Integer isHarmQualified(List<DevData> devDataList,
|
||||||
@@ -1807,7 +1815,8 @@ public class DetectionServiceImpl {
|
|||||||
Integer num,
|
Integer num,
|
||||||
String code,
|
String code,
|
||||||
Integer scale,
|
Integer scale,
|
||||||
Integer waveNum) {
|
Integer waveNum,
|
||||||
|
DataSourceEnum dataSourceEnum) {
|
||||||
List<ContrastHarmonicResult> info = new ArrayList<>();
|
List<ContrastHarmonicResult> info = new ArrayList<>();
|
||||||
if (CollUtil.isNotEmpty(devDataList) && CollUtil.isNotEmpty(standardDevDataList) && CollUtil.isNotEmpty(errSysDtls)) {
|
if (CollUtil.isNotEmpty(devDataList) && CollUtil.isNotEmpty(standardDevDataList) && CollUtil.isNotEmpty(errSysDtls)) {
|
||||||
String fundCode = "";
|
String fundCode = "";
|
||||||
@@ -1852,14 +1861,14 @@ public class DetectionServiceImpl {
|
|||||||
result.setDevMonitorId(devIdMapComm.get(split1[0]) + "_" + split1[1]);
|
result.setDevMonitorId(devIdMapComm.get(split1[0]) + "_" + split1[1]);
|
||||||
result.setStdDevMonitorId(devIdMapComm.get(split2[0]) + "_" + split2[1]);
|
result.setStdDevMonitorId(devIdMapComm.get(split2[0]) + "_" + split2[1]);
|
||||||
result.setAdType(errSysDtls.get(0).getScriptType());
|
result.setAdType(errSysDtls.get(0).getScriptType());
|
||||||
result.setDataType(DataSourceEnum.REAL_DATA.getValue());
|
result.setDataType(dataSourceEnum.getValue());
|
||||||
if (ObjectUtil.isNotNull(waveNum)) {
|
if (ObjectUtil.isNotNull(waveNum)) {
|
||||||
result.setDataType(DataSourceEnum.WAVE_DATA.getValue());
|
result.setDataType(DataSourceEnum.WAVE_DATA.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
List<DetectionData> integerBooleanA = harmRangeComparison(devMap.get(TYPE_A).get(0), devMap.get(TYPE_A).get(1), errSysDtls, type, fData, scale, dataRule);
|
List<DetectionData> integerBooleanA = harmRangeComparison(devMap.get(TYPE_A).get(0), devMap.get(TYPE_A).get(1), errSysDtls, type, fData, scale, dataRule);
|
||||||
List<DetectionData> integerBooleanB = harmRangeComparison(devMap.get(TYPE_B).get(0), devMap.get(TYPE_A).get(1), errSysDtls, type, fData, scale, dataRule);
|
List<DetectionData> integerBooleanB = harmRangeComparison(devMap.get(TYPE_B).get(0), devMap.get(TYPE_B).get(1), errSysDtls, type, fData, scale, dataRule);
|
||||||
List<DetectionData> integerBooleanC = harmRangeComparison(devMap.get(TYPE_C).get(0), devMap.get(TYPE_A).get(1), errSysDtls, type, fData, scale, dataRule);
|
List<DetectionData> integerBooleanC = harmRangeComparison(devMap.get(TYPE_C).get(0), devMap.get(TYPE_C).get(1), errSysDtls, type, fData, scale, dataRule);
|
||||||
reflectHarmonic(true, "a", integerBooleanA, result, harmonicFlag);
|
reflectHarmonic(true, "a", integerBooleanA, result, harmonicFlag);
|
||||||
reflectHarmonic(true, "b", integerBooleanB, result, harmonicFlag);
|
reflectHarmonic(true, "b", integerBooleanB, result, harmonicFlag);
|
||||||
reflectHarmonic(true, "c", integerBooleanC, result, harmonicFlag);
|
reflectHarmonic(true, "c", integerBooleanC, result, harmonicFlag);
|
||||||
@@ -1906,7 +1915,7 @@ public class DetectionServiceImpl {
|
|||||||
List<DevData.SqlDataDTO.ListDTO> standardDevList = standardDevSqlData.stream().filter(j -> finalDesc.equals(j.getDesc()))
|
List<DevData.SqlDataDTO.ListDTO> standardDevList = standardDevSqlData.stream().filter(j -> finalDesc.equals(j.getDesc()))
|
||||||
.map(DevData.SqlDataDTO::getList).collect(Collectors.toList());
|
.map(DevData.SqlDataDTO::getList).collect(Collectors.toList());
|
||||||
|
|
||||||
if(CollUtil.isEmpty(devList) || CollUtil.isEmpty(standardDevList)){
|
if (CollUtil.isEmpty(devList) || CollUtil.isEmpty(standardDevList)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import com.njcn.gather.detection.util.socket.websocket.WebServiceManager;
|
|||||||
import com.njcn.gather.device.pojo.po.PqDev;
|
import com.njcn.gather.device.pojo.po.PqDev;
|
||||||
import com.njcn.gather.device.pojo.vo.PreDetection;
|
import com.njcn.gather.device.pojo.vo.PreDetection;
|
||||||
import com.njcn.gather.device.service.IPqDevService;
|
import com.njcn.gather.device.service.IPqDevService;
|
||||||
|
import com.njcn.gather.plan.pojo.enums.DataSourceEnum;
|
||||||
import com.njcn.gather.plan.pojo.po.AdPlan;
|
import com.njcn.gather.plan.pojo.po.AdPlan;
|
||||||
import com.njcn.gather.plan.pojo.po.AdPlanSource;
|
import com.njcn.gather.plan.pojo.po.AdPlanSource;
|
||||||
import com.njcn.gather.plan.service.IAdPlanService;
|
import com.njcn.gather.plan.service.IAdPlanService;
|
||||||
@@ -385,16 +386,15 @@ public class PreDetectionServiceImpl implements PreDetectionService {
|
|||||||
String jsonString = JSON.toJSONString(map);
|
String jsonString = JSON.toJSONString(map);
|
||||||
SocketMsg<String> socketMsg = new SocketMsg<>();
|
SocketMsg<String> socketMsg = new SocketMsg<>();
|
||||||
socketMsg.setRequestId(SourceOperateCodeEnum.YJC_SBTXJY.getValue());
|
socketMsg.setRequestId(SourceOperateCodeEnum.YJC_SBTXJY.getValue());
|
||||||
// AdPlan currentTestPlan = FormalTestManager.currentTestPlan;
|
AdPlan currentTestPlan = FormalTestManager.currentTestPlan;
|
||||||
// String[] datasource = currentTestPlan.getDatasourceId().split(",");
|
String[] datasource = currentTestPlan.getDatasourceId().split(",");
|
||||||
// if (Arrays.stream(datasource).anyMatch(x -> x.equals(DataSourceEnum.REAL_DATA.getValue()))) {
|
if (Arrays.stream(datasource).anyMatch(x -> x.equals(DataSourceEnum.REAL_DATA.getValue()))) {
|
||||||
// socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_INIT_GATHER_02.getValue());
|
socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_INIT_GATHER_02.getValue());
|
||||||
// } else if (Arrays.stream(datasource).anyMatch(x -> x.equals(DataSourceEnum.MINUTE_STATISTICS_AVG.getValue()) || x.equals(DataSourceEnum.MINUTE_STATISTICS_MAX.getValue()) || x.equals(DataSourceEnum.MINUTE_STATISTICS_MIN.getValue()) || x.equals(DataSourceEnum.MINUTE_STATISTICS_CP95.getValue()))) {
|
} else if (Arrays.stream(datasource).anyMatch(x -> x.equals(DataSourceEnum.MINUTE_STATISTICS_AVG.getValue()) || x.equals(DataSourceEnum.MINUTE_STATISTICS_MAX.getValue()) || x.equals(DataSourceEnum.MINUTE_STATISTICS_MIN.getValue()) || x.equals(DataSourceEnum.MINUTE_STATISTICS_CP95.getValue()))) {
|
||||||
//
|
socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_INIT_GATHER_01.getValue());
|
||||||
// } else if (Arrays.stream(datasource).anyMatch(x -> x.equals(DataSourceEnum.WAVE_DATA.getValue()))) {
|
} else if (Arrays.stream(datasource).anyMatch(x -> x.equals(DataSourceEnum.WAVE_DATA.getValue()))) {
|
||||||
// socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_INIT_GATHER_03.getValue());
|
socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_INIT_GATHER_02.getValue());
|
||||||
// }
|
}
|
||||||
socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_INIT_GATHER_02.getValue());
|
|
||||||
socketMsg.setData(jsonString);
|
socketMsg.setData(jsonString);
|
||||||
PreDetectionParam preDetectionParam = new PreDetectionParam();
|
PreDetectionParam preDetectionParam = new PreDetectionParam();
|
||||||
preDetectionParam.setUserPageId(param.getLoginName());
|
preDetectionParam.setUserPageId(param.getLoginName());
|
||||||
|
|||||||
@@ -51,6 +51,11 @@ public class DetectionUtil {
|
|||||||
*/
|
*/
|
||||||
private static final long MILLIS_TO_SECONDS = 1000L;
|
private static final long MILLIS_TO_SECONDS = 1000L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 毫秒转分钟的转换因子
|
||||||
|
*/
|
||||||
|
private static final long MILLIS_TO_MINUTES = 1000 * 60L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 时间对齐判断的容差毫秒数
|
* 时间对齐判断的容差毫秒数
|
||||||
* 当两个时间戳差值小于此值时,认为时间是对齐的
|
* 当两个时间戳差值小于此值时,认为时间是对齐的
|
||||||
@@ -123,24 +128,33 @@ public class DetectionUtil {
|
|||||||
* @param standardDevData 标准设备数据,包含时间戳信息
|
* @param standardDevData 标准设备数据,包含时间戳信息
|
||||||
* @return true表示数据时间对齐,false表示不对齐
|
* @return true表示数据时间对齐,false表示不对齐
|
||||||
*/
|
*/
|
||||||
public static boolean isAlignData(DevData devData, DevData standardDevData) {
|
public static boolean isAlignData(DevData devData, DevData standardDevData, int type) {
|
||||||
if (ObjectUtil.isNotNull(devData) && ObjectUtil.isNotNull(standardDevData)) {
|
if (ObjectUtil.isNotNull(devData) && ObjectUtil.isNotNull(standardDevData)) {
|
||||||
// 获取两个设备数据的时间戳(毫秒)
|
// 获取两个设备数据的时间戳(毫秒)
|
||||||
long devMillis = getMillis(devData.getTime());
|
long devMillis = getMillis(devData.getTime());
|
||||||
long standardMillis = getMillis(standardDevData.getTime());
|
long standardMillis = getMillis(standardDevData.getTime());
|
||||||
|
if (type == 1) { // 实时数据
|
||||||
|
// 方式1:将时间戳转换为秒级精度进行比较(处理跨秒边界情况)
|
||||||
|
BigDecimal devSeconds = BigDecimal.valueOf(devMillis).divide(BigDecimal.valueOf(MILLIS_TO_SECONDS), 0, RoundingMode.HALF_UP);
|
||||||
|
BigDecimal standardSeconds = BigDecimal.valueOf(standardMillis).divide(BigDecimal.valueOf(MILLIS_TO_SECONDS), 0, RoundingMode.HALF_UP);
|
||||||
|
if (devSeconds.compareTo(standardSeconds) == 0) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
// 方式1:将时间戳转换为秒级精度进行比较(处理跨秒边界情况)
|
// 方式2:毫秒级时间差小于容差值也认为是对齐的(处理精确对齐)
|
||||||
BigDecimal devSeconds = BigDecimal.valueOf(devMillis).divide(BigDecimal.valueOf(MILLIS_TO_SECONDS), 0, RoundingMode.HALF_UP);
|
if (Math.abs(devMillis - standardMillis) < TIME_ALIGNMENT_TOLERANCE_MS) {
|
||||||
BigDecimal standardSeconds = BigDecimal.valueOf(standardMillis).divide(BigDecimal.valueOf(MILLIS_TO_SECONDS), 0, RoundingMode.HALF_UP);
|
return true;
|
||||||
if (devSeconds.compareTo(standardSeconds) == 0) {
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
if (type == 2) { //统计数据
|
||||||
// 方式2:毫秒级时间差小于容差值也认为是对齐的(处理精确对齐)
|
BigDecimal devSeconds = BigDecimal.valueOf(devMillis).divide(BigDecimal.valueOf(MILLIS_TO_MINUTES), 0, RoundingMode.HALF_UP);
|
||||||
if (Math.abs(devMillis - standardMillis) < TIME_ALIGNMENT_TOLERANCE_MS) {
|
BigDecimal standardSeconds = BigDecimal.valueOf(standardMillis).divide(BigDecimal.valueOf(MILLIS_TO_MINUTES), 0, RoundingMode.HALF_UP);
|
||||||
return true;
|
if (devSeconds.compareTo(standardSeconds) == 0) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import com.njcn.gather.detection.pojo.po.DevData;
|
|||||||
import com.njcn.gather.detection.pojo.vo.DevLineTestResult;
|
import com.njcn.gather.detection.pojo.vo.DevLineTestResult;
|
||||||
import com.njcn.gather.device.pojo.enums.PatternEnum;
|
import com.njcn.gather.device.pojo.enums.PatternEnum;
|
||||||
import com.njcn.gather.device.pojo.vo.PreDetection;
|
import com.njcn.gather.device.pojo.vo.PreDetection;
|
||||||
|
import com.njcn.gather.plan.pojo.enums.DataSourceEnum;
|
||||||
import com.njcn.gather.plan.pojo.po.AdPlan;
|
import com.njcn.gather.plan.pojo.po.AdPlan;
|
||||||
import com.njcn.gather.plan.pojo.po.AdPlanTestConfig;
|
import com.njcn.gather.plan.pojo.po.AdPlanTestConfig;
|
||||||
import com.njcn.gather.system.dictionary.pojo.enums.DictDataEnum;
|
import com.njcn.gather.system.dictionary.pojo.enums.DictDataEnum;
|
||||||
@@ -89,6 +90,17 @@ public class FormalTestManager {
|
|||||||
*/
|
*/
|
||||||
public static AdPlan currentTestPlan;
|
public static AdPlan currentTestPlan;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 非录波数据源枚举
|
||||||
|
*/
|
||||||
|
public static DataSourceEnum nonWaveDataSourceEnum;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统计数据最大超时时间
|
||||||
|
*/
|
||||||
|
public static Long maxTime;
|
||||||
|
|
||||||
public static AdPlanTestConfig curretntTestPlanConfig;
|
public static AdPlanTestConfig curretntTestPlanConfig;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -166,4 +178,6 @@ public class FormalTestManager {
|
|||||||
*/
|
*/
|
||||||
public static ScheduledFuture<?> scheduledFuture;
|
public static ScheduledFuture<?> scheduledFuture;
|
||||||
|
|
||||||
|
|
||||||
|
public static boolean isWaveCheck;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,6 +84,15 @@ public class MsgUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String getMonitorInfo(String monitorId, Map<String, String> devMap) {
|
||||||
|
if (StrUtil.isBlank(monitorId)) {
|
||||||
|
return "";
|
||||||
|
} else {
|
||||||
|
String[] split1 = monitorId.split("_");
|
||||||
|
return devMap.get(split1[0]) + CnSocketUtil.SPLIT_TAG + split1[1] + "路\"";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取消息
|
* 获取消息
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.njcn.gather.detection.util.socket.cilent;
|
package com.njcn.gather.detection.util.socket.cilent;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.njcn.gather.detection.handler.SocketContrastResponseService;
|
import com.njcn.gather.detection.handler.SocketContrastResponseService;
|
||||||
import com.njcn.gather.detection.pojo.enums.SourceOperateCodeEnum;
|
import com.njcn.gather.detection.pojo.enums.SourceOperateCodeEnum;
|
||||||
import com.njcn.gather.detection.pojo.enums.SourceResponseCodeEnum;
|
import com.njcn.gather.detection.pojo.enums.SourceResponseCodeEnum;
|
||||||
@@ -60,11 +60,14 @@ public class NettyContrastClientHandler extends SimpleChannelInboundHandler<Stri
|
|||||||
socketContrastResponseService.deal(param, msg);
|
socketContrastResponseService.deal(param, msg);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("处理服务端消息异常", e);
|
log.error("处理服务端消息异常", e);
|
||||||
if (FormalTestManager.currentStep == SourceOperateCodeEnum.RECORD_WAVE_STEP1) {
|
// if (FormalTestManager.currentStep == SourceOperateCodeEnum.RECORD_WAVE_STEP1) {
|
||||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_03, true);
|
// CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_03, true);
|
||||||
} else {
|
// } else {
|
||||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, true);
|
// CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, true);
|
||||||
}
|
// }
|
||||||
|
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_01, false);
|
||||||
|
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, false);
|
||||||
|
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_03, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,17 +89,21 @@ public class NettyContrastClientHandler extends SimpleChannelInboundHandler<Stri
|
|||||||
if (evt instanceof IdleStateEvent) { //IdleState.在一段时间内没有收到任何消息时,会触发该事件
|
if (evt instanceof IdleStateEvent) { //IdleState.在一段时间内没有收到任何消息时,会触发该事件
|
||||||
if (((IdleStateEvent) evt).state() == IdleState.READER_IDLE) {
|
if (((IdleStateEvent) evt).state() == IdleState.READER_IDLE) {
|
||||||
System.out.println(LocalDateTime.now() + "contrastClientHandler触发读超时函数**************************************");
|
System.out.println(LocalDateTime.now() + "contrastClientHandler触发读超时函数**************************************");
|
||||||
SocketManager.contrastClockMap.put(DataSourceEnum.REAL_DATA, SocketManager.contrastClockMap.get(DataSourceEnum.REAL_DATA) + 60L);
|
|
||||||
|
|
||||||
if (FormalTestManager.isRemoveSocket) {
|
if (!FormalTestManager.isRemoveSocket && ObjectUtil.isNotNull(FormalTestManager.nonWaveDataSourceEnum)) {
|
||||||
//实时数据
|
long time = SocketManager.contrastClockMap.get(FormalTestManager.nonWaveDataSourceEnum) + 60L;
|
||||||
if (SocketManager.contrastClockMap.get(DataSourceEnum.REAL_DATA) >= 60) {
|
SocketManager.contrastClockMap.put(FormalTestManager.nonWaveDataSourceEnum, time);
|
||||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, false);
|
|
||||||
System.out.println("超时处理-----》" + "实时数据已超时----------------关闭");
|
if (DataSourceEnum.REAL_DATA == FormalTestManager.nonWaveDataSourceEnum) {
|
||||||
timeoutSend();
|
if (time >= 60) {
|
||||||
|
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, true);
|
||||||
|
timeoutSend(SourceOperateCodeEnum.QUIT_INIT_02);
|
||||||
|
}
|
||||||
|
} else if (time >= FormalTestManager.maxTime) {
|
||||||
|
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, true);
|
||||||
|
timeoutSend(SourceOperateCodeEnum.QUIT_INIT_01);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -126,8 +133,9 @@ public class NettyContrastClientHandler extends SimpleChannelInboundHandler<Stri
|
|||||||
System.out.println("Unknown exception caught: " + cause.getMessage());
|
System.out.println("Unknown exception caught: " + cause.getMessage());
|
||||||
WebServiceManager.sendDetectionErrorMessage(param.getUserPageId(), SourceOperateCodeEnum.DEVICE_ERROR);
|
WebServiceManager.sendDetectionErrorMessage(param.getUserPageId(), SourceOperateCodeEnum.DEVICE_ERROR);
|
||||||
}
|
}
|
||||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, true);
|
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_01, false);
|
||||||
// socketContrastResponseService.backCheckState(param);
|
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, false);
|
||||||
|
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_03, true);
|
||||||
ctx.close();
|
ctx.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -135,13 +143,14 @@ public class NettyContrastClientHandler extends SimpleChannelInboundHandler<Stri
|
|||||||
/**
|
/**
|
||||||
* 接收数据超时处理
|
* 接收数据超时处理
|
||||||
*/
|
*/
|
||||||
private void timeoutSend() {
|
private void timeoutSend(SourceOperateCodeEnum sourceOperateCodeEnum) {
|
||||||
|
System.out.println("超时处理-----》" + "统计数据已超时----------------关闭");
|
||||||
// 向前端推送超时消息
|
// 向前端推送超时消息
|
||||||
SocketDataMsg webSend = new SocketDataMsg();
|
SocketDataMsg webSend = new SocketDataMsg();
|
||||||
|
webSend.setRequestId(sourceOperateCodeEnum.getValue());
|
||||||
|
webSend.setData(sourceOperateCodeEnum.getMsg() + SourceResponseCodeEnum.RECEIVE_DATA_TIME_OUT.getMessage());
|
||||||
webSend.setCode(SourceResponseCodeEnum.RECEIVE_DATA_TIME_OUT.getCode());
|
webSend.setCode(SourceResponseCodeEnum.RECEIVE_DATA_TIME_OUT.getCode());
|
||||||
WebServiceManager.sendMsg(param.getUserPageId(), MsgUtil.msgToWebData(webSend, FormalTestManager.devNameMapComm, 0));
|
WebServiceManager.sendMsg(param.getUserPageId(), MsgUtil.msgToWebData(webSend, FormalTestManager.devNameMapComm, 0));
|
||||||
|
|
||||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSend));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -120,6 +120,7 @@ public class WebServiceManager {
|
|||||||
channel.writeAndFlush(frame);
|
channel.writeAndFlush(frame);
|
||||||
} else {
|
} else {
|
||||||
log.error("WebSocket推送消息失败,用户连接已断开,时间: {}, userId: {}", LocalDateTime.now(), userId);
|
log.error("WebSocket推送消息失败,用户连接已断开,时间: {}, userId: {}", LocalDateTime.now(), userId);
|
||||||
|
WebSocketHandler.cleanupSocketResources(userId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -137,6 +138,7 @@ public class WebServiceManager {
|
|||||||
channel.writeAndFlush(frame);
|
channel.writeAndFlush(frame);
|
||||||
} else {
|
} else {
|
||||||
log.error("WebSocket推送结构化消息失败,用户连接已断开,时间: {}, userId: {}", LocalDateTime.now(), userId);
|
log.error("WebSocket推送结构化消息失败,用户连接已断开,时间: {}, userId: {}", LocalDateTime.now(), userId);
|
||||||
|
WebSocketHandler.cleanupSocketResources(userId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import com.njcn.gather.detection.util.socket.CnSocketUtil;
|
|||||||
import com.njcn.gather.detection.util.socket.FormalTestManager;
|
import com.njcn.gather.detection.util.socket.FormalTestManager;
|
||||||
import com.njcn.gather.detection.util.socket.SocketManager;
|
import com.njcn.gather.detection.util.socket.SocketManager;
|
||||||
import com.njcn.gather.device.pojo.enums.PatternEnum;
|
import com.njcn.gather.device.pojo.enums.PatternEnum;
|
||||||
|
import com.njcn.gather.plan.pojo.enums.DataSourceEnum;
|
||||||
import io.netty.channel.ChannelHandlerContext;
|
import io.netty.channel.ChannelHandlerContext;
|
||||||
import io.netty.channel.SimpleChannelInboundHandler;
|
import io.netty.channel.SimpleChannelInboundHandler;
|
||||||
import io.netty.handler.codec.CorruptedFrameException;
|
import io.netty.handler.codec.CorruptedFrameException;
|
||||||
@@ -360,7 +361,7 @@ public class WebSocketHandler extends SimpleChannelInboundHandler<TextWebSocketF
|
|||||||
*
|
*
|
||||||
* @param userId 用户ID
|
* @param userId 用户ID
|
||||||
*/
|
*/
|
||||||
private void cleanupSocketResources(String userId) {
|
public static void cleanupSocketResources(String userId) {
|
||||||
if (userId == null || userId.trim().isEmpty()) {
|
if (userId == null || userId.trim().isEmpty()) {
|
||||||
log.warn("userId为空,无法进行Socket连接清理");
|
log.warn("userId为空,无法进行Socket连接清理");
|
||||||
return;
|
return;
|
||||||
@@ -381,8 +382,21 @@ public class WebSocketHandler extends SimpleChannelInboundHandler<TextWebSocketF
|
|||||||
if (FormalTestManager.currentStep == SourceOperateCodeEnum.RECORD_WAVE_STEP1) {
|
if (FormalTestManager.currentStep == SourceOperateCodeEnum.RECORD_WAVE_STEP1) {
|
||||||
CnSocketUtil.contrastSendquit(preDetectionParam.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_03, true);
|
CnSocketUtil.contrastSendquit(preDetectionParam.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_03, true);
|
||||||
} else if (FormalTestManager.currentStep != SourceOperateCodeEnum.QUITE) {
|
} else if (FormalTestManager.currentStep != SourceOperateCodeEnum.QUITE) {
|
||||||
CnSocketUtil.contrastSendquit(preDetectionParam.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, false);
|
if (ObjectUtil.isNotNull(FormalTestManager.nonWaveDataSourceEnum)) {
|
||||||
CnSocketUtil.contrastSendquit(preDetectionParam.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_03, true);
|
if (FormalTestManager.nonWaveDataSourceEnum == DataSourceEnum.REAL_DATA) {
|
||||||
|
CnSocketUtil.contrastSendquit(preDetectionParam.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, false);
|
||||||
|
} else {
|
||||||
|
CnSocketUtil.contrastSendquit(preDetectionParam.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_01, false);
|
||||||
|
}
|
||||||
|
if (FormalTestManager.isWaveCheck) {
|
||||||
|
CnSocketUtil.contrastSendquit(preDetectionParam.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_03, true);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (FormalTestManager.isWaveCheck) {
|
||||||
|
CnSocketUtil.contrastSendquit(preDetectionParam.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, false);
|
||||||
|
CnSocketUtil.contrastSendquit(preDetectionParam.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_03, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
SocketManager.removeUser(preDetectionParam.getUserPageId() + CnSocketUtil.CONTRAST_DEV_TAG);
|
SocketManager.removeUser(preDetectionParam.getUserPageId() + CnSocketUtil.CONTRAST_DEV_TAG);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -148,12 +148,9 @@ public class PqMonitorServiceImpl extends ServiceImpl<PqMonitorMapper, PqMonitor
|
|||||||
Integer newMonitorResult = CheckResultEnum.UNCHECKED.getValue();
|
Integer newMonitorResult = CheckResultEnum.UNCHECKED.getValue();
|
||||||
AtomicReference<Integer> newWaveNum = new AtomicReference<>(-1);
|
AtomicReference<Integer> newWaveNum = new AtomicReference<>(-1);
|
||||||
switch (dataSourceEnum) {
|
switch (dataSourceEnum) {
|
||||||
case REAL_DATA:
|
|
||||||
newMonitorResult = detectionDataDealService.getMonitorResult(monitorId, adTypes, dataSourceEnum.getValue(), num, null, code);
|
|
||||||
break;
|
|
||||||
case WAVE_DATA:
|
case WAVE_DATA:
|
||||||
Map<Integer, Integer> waveNumResultMap = detectionDataDealService.getWaveNumResultMap(monitorId, adTypes, num, code);
|
Map<Integer, Integer> waveNumResultMap = detectionDataDealService.getWaveNumResultMap(monitorId, adTypes, num, code);
|
||||||
if(CollUtil.isEmpty(waveNumResultMap)){
|
if (CollUtil.isEmpty(waveNumResultMap)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
waveNumResultMap.forEach((key, value) -> {
|
waveNumResultMap.forEach((key, value) -> {
|
||||||
@@ -169,6 +166,7 @@ public class PqMonitorServiceImpl extends ServiceImpl<PqMonitorMapper, PqMonitor
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
newMonitorResult = detectionDataDealService.getMonitorResult(monitorId, adTypes, dataSourceEnum.getValue(), num, null, code);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -206,22 +204,28 @@ public class PqMonitorServiceImpl extends ServiceImpl<PqMonitorMapper, PqMonitor
|
|||||||
|
|
||||||
switch (dataSourceEnum) {
|
switch (dataSourceEnum) {
|
||||||
case REAL_DATA:
|
case REAL_DATA:
|
||||||
monitor.setRealtimeResult(newMonitorResult);
|
|
||||||
monitor.setRealtimeNum(String.valueOf(num));
|
monitor.setRealtimeNum(String.valueOf(num));
|
||||||
monitor.setRecordedResult(null);
|
monitor.setRealtimeResult(newMonitorResult);
|
||||||
monitor.setRecordedNum(null);
|
monitor.setRecordedNum(null);
|
||||||
monitor.setStatisticsResult(null);
|
monitor.setRecordedResult(null);
|
||||||
monitor.setStatisticsNum(null);
|
monitor.setStatisticsNum(null);
|
||||||
|
monitor.setStatisticsResult(null);
|
||||||
break;
|
break;
|
||||||
case WAVE_DATA:
|
case WAVE_DATA:
|
||||||
monitor.setRealtimeResult(null);
|
|
||||||
monitor.setRealtimeNum(null);
|
monitor.setRealtimeNum(null);
|
||||||
monitor.setRecordedResult(newMonitorResult);
|
monitor.setRealtimeResult(null);
|
||||||
monitor.setRecordedNum(num + CnSocketUtil.SPLIT_TAG + newWaveNum.get());
|
monitor.setRecordedNum(num + CnSocketUtil.SPLIT_TAG + newWaveNum.get());
|
||||||
monitor.setStatisticsResult(null);
|
monitor.setRecordedResult(newMonitorResult);
|
||||||
monitor.setStatisticsNum(null);
|
monitor.setStatisticsNum(null);
|
||||||
|
monitor.setStatisticsResult(null);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
monitor.setRealtimeResult(null);
|
||||||
|
monitor.setRealtimeNum(null);
|
||||||
|
monitor.setRecordedResult(null);
|
||||||
|
monitor.setRecordedNum(null);
|
||||||
|
monitor.setStatisticsNum(String.valueOf(num));
|
||||||
|
monitor.setStatisticsResult(newMonitorResult);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
monitor.setQualifiedNum(qualifiedNum);
|
monitor.setQualifiedNum(qualifiedNum);
|
||||||
|
|||||||
@@ -26,7 +26,8 @@ public enum PowerIndexEnum {
|
|||||||
HI("HI", "谐波电流"),
|
HI("HI", "谐波电流"),
|
||||||
HSV("HSV", "间谐波电压"),
|
HSV("HSV", "间谐波电压"),
|
||||||
HSI("HSI", "间谐波电流"),
|
HSI("HSI", "间谐波电流"),
|
||||||
VOLTAGE("VOLTAGE", "电压暂降、暂升及短时中断");
|
VOLTAGE("VOLTAGE", "电压暂降、暂升及短时中断"),
|
||||||
|
PST("PST", "短时间闪变");
|
||||||
|
|
||||||
private String key;
|
private String key;
|
||||||
|
|
||||||
|
|||||||
@@ -99,8 +99,6 @@ import java.util.function.Function;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
import static com.njcn.gather.detection.util.socket.FormalTestManager.waveNum;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author caozehui
|
* @author caozehui
|
||||||
* @data 2024-12-30
|
* @data 2024-12-30
|
||||||
@@ -1997,13 +1995,13 @@ public class ResultServiceImpl implements IResultService {
|
|||||||
if ("无法比较".equals(resultTemp)) {
|
if ("无法比较".equals(resultTemp)) {
|
||||||
String numOfDataStr = singlePhaseData.get(ItemReportKeyEnum.NUM_OF_DATA.getKey());
|
String numOfDataStr = singlePhaseData.get(ItemReportKeyEnum.NUM_OF_DATA.getKey());
|
||||||
unComparableMap.computeIfAbsent(harmNum, k -> new LinkedHashMap<>())
|
unComparableMap.computeIfAbsent(harmNum, k -> new LinkedHashMap<>())
|
||||||
.computeIfAbsent(numOfDataStr, k -> new ArrayList<>())
|
.computeIfAbsent(numOfDataStr, k -> new ArrayList<>())
|
||||||
.add(phase.toUpperCase() + "相");
|
.add(phase.toUpperCase() + "相");
|
||||||
} else if ("不符合".equals(resultTemp)) {
|
} else if ("不符合".equals(resultTemp)) {
|
||||||
String numOfDataStr = singlePhaseData.get(ItemReportKeyEnum.NUM_OF_DATA.getKey());
|
String numOfDataStr = singlePhaseData.get(ItemReportKeyEnum.NUM_OF_DATA.getKey());
|
||||||
unqualifiedMap.computeIfAbsent(harmNum, k -> new LinkedHashMap<>())
|
unqualifiedMap.computeIfAbsent(harmNum, k -> new LinkedHashMap<>())
|
||||||
.computeIfAbsent(numOfDataStr, k -> new ArrayList<>())
|
.computeIfAbsent(numOfDataStr, k -> new ArrayList<>())
|
||||||
.add(phase.toUpperCase() + "相");
|
.add(phase.toUpperCase() + "相");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2035,7 +2033,7 @@ public class ResultServiceImpl implements IResultService {
|
|||||||
|
|
||||||
// 生成specialCase描述
|
// 生成specialCase描述
|
||||||
String specialCase = generateHarmonicSpecialCase(zeroFilteredMap, unComparableMap, unqualifiedMap,
|
String specialCase = generateHarmonicSpecialCase(zeroFilteredMap, unComparableMap, unqualifiedMap,
|
||||||
totalDataPoints, zeroFilteredPoints, isInterHarmonic);
|
totalDataPoints, zeroFilteredPoints, isInterHarmonic);
|
||||||
|
|
||||||
// 设置检测结果
|
// 设置检测结果
|
||||||
String overallResult;
|
String overallResult;
|
||||||
@@ -2058,6 +2056,7 @@ public class ResultServiceImpl implements IResultService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 判断值是否为零
|
* 判断值是否为零
|
||||||
|
*
|
||||||
* @param value 字符串值
|
* @param value 字符串值
|
||||||
* @return 是否为零
|
* @return 是否为零
|
||||||
*/
|
*/
|
||||||
@@ -2075,12 +2074,13 @@ public class ResultServiceImpl implements IResultService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 生成谐波类特殊情况描述
|
* 生成谐波类特殊情况描述
|
||||||
* @param zeroFilteredMap 双零过滤的次数和相别
|
*
|
||||||
* @param unComparableMap 无法比较的次数和相别
|
* @param zeroFilteredMap 双零过滤的次数和相别
|
||||||
* @param unqualifiedMap 不符合的次数和相别
|
* @param unComparableMap 无法比较的次数和相别
|
||||||
* @param totalDataPoints 总数据点数
|
* @param unqualifiedMap 不符合的次数和相别
|
||||||
|
* @param totalDataPoints 总数据点数
|
||||||
* @param zeroFilteredPoints 双零过滤的数据点数
|
* @param zeroFilteredPoints 双零过滤的数据点数
|
||||||
* @param isInterHarmonic 是否为间谐波
|
* @param isInterHarmonic 是否为间谐波
|
||||||
* @return 特殊情况描述
|
* @return 特殊情况描述
|
||||||
*/
|
*/
|
||||||
private String generateHarmonicSpecialCase(Map<Integer, List<String>> zeroFilteredMap,
|
private String generateHarmonicSpecialCase(Map<Integer, List<String>> zeroFilteredMap,
|
||||||
@@ -2122,8 +2122,8 @@ public class ResultServiceImpl implements IResultService {
|
|||||||
List<String> phases = dataEntry.getValue();
|
List<String> phases = dataEntry.getValue();
|
||||||
String phaseKey = String.join("、", phases);
|
String phaseKey = String.join("、", phases);
|
||||||
groupedUnComparable.computeIfAbsent(numOfData, k -> new LinkedHashMap<>())
|
groupedUnComparable.computeIfAbsent(numOfData, k -> new LinkedHashMap<>())
|
||||||
.computeIfAbsent(phaseKey, k -> new ArrayList<>())
|
.computeIfAbsent(phaseKey, k -> new ArrayList<>())
|
||||||
.add(harmNum);
|
.add(harmNum);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2164,7 +2164,7 @@ public class ResultServiceImpl implements IResultService {
|
|||||||
harmPhaseDesc = "第" + displayHarmNum + "次谐波" + String.join("、", phases);
|
harmPhaseDesc = "第" + displayHarmNum + "次谐波" + String.join("、", phases);
|
||||||
}
|
}
|
||||||
groupedByNumOfData.computeIfAbsent(numOfData, k -> new ArrayList<>())
|
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相
|
// 合并描述:第4次谐波A相、B相、C相、第32次谐波A相、第44次谐波C相
|
||||||
specialCaseDesc.append(String.join("、", harmPhaseList));
|
specialCaseDesc.append(String.join("、", harmPhaseList));
|
||||||
specialCaseDesc.append("收集有效组数为").append(numOfData)
|
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 是否为间谐波
|
* @param isInterHarmonic 是否为间谐波
|
||||||
* @return 显示用的次数字符串
|
* @return 显示用的次数字符串
|
||||||
*/
|
*/
|
||||||
@@ -2214,7 +2215,8 @@ public class ResultServiceImpl implements IResultService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 格式化谐波次数列表
|
* 格式化谐波次数列表
|
||||||
* @param harmNumbers 谐波次数列表
|
*
|
||||||
|
* @param harmNumbers 谐波次数列表
|
||||||
* @param isInterHarmonic 是否为间谐波
|
* @param isInterHarmonic 是否为间谐波
|
||||||
* @return 格式化的字符串,如"2、3、5"或"2-5、7、9-11"(间谐波为"1.5、2.5、3.5")
|
* @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 valueJson JSON格式的数据
|
||||||
* @param phase 相别标识
|
* @param phase 相别标识
|
||||||
* @param numOfData 收集组数
|
* @param numOfData 收集组数
|
||||||
* @param scriptCode 脚本代码,用于判断是否需要特殊格式化
|
* @param scriptCode 脚本代码,用于判断是否需要特殊格式化
|
||||||
* @param decimalPlaces 小数位数,null则不格式化
|
* @param decimalPlaces 小数位数,null则不格式化
|
||||||
* @return 解析后的数据列表
|
* @return 解析后的数据列表
|
||||||
*/
|
*/
|
||||||
@@ -2528,11 +2530,11 @@ public class ResultServiceImpl implements IResultService {
|
|||||||
/**
|
/**
|
||||||
* 解析谐波相数据
|
* 解析谐波相数据
|
||||||
*
|
*
|
||||||
* @param jsonData JSON格式的数据
|
* @param jsonData JSON格式的数据
|
||||||
* @param phase 相别标识
|
* @param phase 相别标识
|
||||||
* @param harmNum 谐波次数
|
* @param harmNum 谐波次数
|
||||||
* @param numOfData 收集组数
|
* @param numOfData 收集组数
|
||||||
* @param scriptCode 脚本代码,用于判断是否需要特殊格式化
|
* @param scriptCode 脚本代码,用于判断是否需要特殊格式化
|
||||||
* @param decimalPlaces 小数位数,null则不格式化
|
* @param decimalPlaces 小数位数,null则不格式化
|
||||||
* @return 解析后的数据列表
|
* @return 解析后的数据列表
|
||||||
*/
|
*/
|
||||||
@@ -3036,13 +3038,35 @@ public class ResultServiceImpl implements IResultService {
|
|||||||
|
|
||||||
AdPlan plan = adPlanService.getById(planId);
|
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();
|
BiMap<String, String> testItemMap = HashBiMap.create();
|
||||||
List<String> testItemIds = Arrays.asList(plan.getTestItem().split(","));
|
List<String> testItemIds = Arrays.asList(plan.getTestItem().split(","));
|
||||||
List<DictTree> dictTreeList = dictTreeService.getDictTreeById(testItemIds);
|
List<DictTree> dictTreeList = dictTreeService.getDictTreeById(testItemIds);
|
||||||
List<String> fatherIdList = dictTreeList.stream().map(DictTree::getId).collect(Collectors.toList());
|
List<String> fatherIdList = dictTreeList.stream().map(DictTree::getId).collect(Collectors.toList());
|
||||||
List<DictTree> childDictTreeList = dictTreeService.listByFatherIds(fatherIdList);
|
List<DictTree> childDictTreeList = dictTreeService.listByFatherIds(fatherIdList);
|
||||||
if (CollUtil.isNotEmpty(childDictTreeList)) {
|
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())));
|
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();
|
.update();
|
||||||
List<AdPair> adPairList = adPairService.listByDevIds(Arrays.asList(deviceId));
|
List<AdPair> adPairList = adPairService.listByDevIds(Arrays.asList(deviceId));
|
||||||
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) -> {
|
||||||
BiMap<String, String> parsIp = HashBiMap.create();
|
BiMap<String, String> parsIp = HashBiMap.create();
|
||||||
BiMap<String, String> parsId = 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> devData = contrastToList(devNonHarmonicRawDataList, devHarmonicRawDataList, testItemMap);
|
||||||
List<DevData> standardDevData = contrastToList(stdDevNonHarmonicRawDataList, stdDevHarmonicRawDataList, 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) -> {
|
parsId.forEach((devMonitorId, stdDevMonitorId) -> {
|
||||||
String[] split = devMonitorId.split(CnSocketUtil.SPLIT_TAG);
|
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);
|
pqDevService.updateResult(split[0], null);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -3109,12 +3134,12 @@ public class ResultServiceImpl implements IResultService {
|
|||||||
|
|
||||||
devData = contrastToList(devNonHarmonicRawDataList, devHarmonicRawDataList, testItemMap);
|
devData = contrastToList(devNonHarmonicRawDataList, devHarmonicRawDataList, testItemMap);
|
||||||
standardDevData = contrastToList(stdDevNonHarmonicRawDataList, stdDevHarmonicRawDataList, 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) -> {
|
parsId.forEach((devMonitorId, stdDevMonitorId) -> {
|
||||||
String[] split = devMonitorId.split(CnSocketUtil.SPLIT_TAG);
|
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);
|
pqDevService.updateResult(split[0], null);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -3325,7 +3350,7 @@ public class ResultServiceImpl implements IResultService {
|
|||||||
/**
|
/**
|
||||||
* 格式化数值,保留指定的小数位数
|
* 格式化数值,保留指定的小数位数
|
||||||
*
|
*
|
||||||
* @param value 原始数值
|
* @param value 原始数值
|
||||||
* @param decimalPlaces 小数位数
|
* @param decimalPlaces 小数位数
|
||||||
* @return 格式化后的字符串
|
* @return 格式化后的字符串
|
||||||
*/
|
*/
|
||||||
@@ -3366,7 +3391,7 @@ public class ResultServiceImpl implements IResultService {
|
|||||||
/**
|
/**
|
||||||
* 格式化误差范围字符串,支持处理"-0.05~0.05"格式并转换为"±0.05"格式
|
* 格式化误差范围字符串,支持处理"-0.05~0.05"格式并转换为"±0.05"格式
|
||||||
*
|
*
|
||||||
* @param errorRange 误差范围字符串
|
* @param errorRange 误差范围字符串
|
||||||
* @param decimalPlaces 小数位数
|
* @param decimalPlaces 小数位数
|
||||||
* @return 格式化后的误差范围
|
* @return 格式化后的误差范围
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user