解决误差值问题

This commit is contained in:
wr
2025-03-14 16:12:32 +08:00
parent 7f42a21536
commit 751dc56568
6 changed files with 40 additions and 13 deletions

View File

@@ -3,6 +3,8 @@ package com.njcn.gather.detection.pojo.vo;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
/** /**
* @author wr * @author wr
* @description * @description
@@ -37,4 +39,9 @@ public class DetectionData {
*/ */
private String radius; private String radius;
/**
* 误差值
*/
private BigDecimal errorData;
} }

View File

@@ -35,6 +35,7 @@ import java.util.*;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
* @author wr * @author wr
* @description * @description
@@ -888,10 +889,16 @@ public class DetectionServiceImpl {
List<Double> qualifiedList = harmDataList.stream() List<Double> qualifiedList = harmDataList.stream()
.filter(x -> v == 0 ? NumberUtil.isIn(devSubtractChannelData(x, v, errSysDtl.getErrorValueType()), .filter(x -> v == 0 ? NumberUtil.isIn(devSubtractChannelData(x, v, errSysDtl.getErrorValueType()),
BigDecimal.valueOf(-errSysDtl.getMaxErrorValue()), BigDecimal.valueOf(-errSysDtl.getMaxErrorValue()),
BigDecimal.valueOf(errSysDtl.getMaxErrorValue())) : BigDecimal.valueOf(errSysDtl.getMaxErrorValue()))
:
x != 0 && NumberUtil.isIn(devSubtractChannelData(x, v, errSysDtl.getErrorValueType()), x != 0 && NumberUtil.isIn(devSubtractChannelData(x, v, errSysDtl.getErrorValueType()),
BigDecimal.valueOf(-errSysDtl.getMaxErrorValue()), BigDecimal.valueOf(-errSysDtl.getMaxErrorValue()),
BigDecimal.valueOf(errSysDtl.getMaxErrorValue()))).collect(Collectors.toList()); BigDecimal.valueOf(errSysDtl.getMaxErrorValue()))).collect(Collectors.toList());
if (CollUtil.isNotEmpty(qualifiedList)) {
data.setErrorData(devSubtractChannelData(qualifiedList.get(0), v, errSysDtl.getErrorValueType()));
} else {
data.setErrorData(devSubtractChannelData(harmDataList.get(0), v, errSysDtl.getErrorValueType()));
}
isData(dataRule, harmDataList, data, qualifiedList); isData(dataRule, harmDataList, data, qualifiedList);
} }
@@ -1072,6 +1079,13 @@ public class DetectionServiceImpl {
BigDecimal.valueOf(1.0 / data * (channelData - errSysDtl.getMaxErrorValue())), BigDecimal.valueOf(1.0 / data * (channelData - errSysDtl.getMaxErrorValue())),
BigDecimal.valueOf(1.0 / data * (channelData + errSysDtl.getMaxErrorValue()))) BigDecimal.valueOf(1.0 / data * (channelData + errSysDtl.getMaxErrorValue())))
).collect(Collectors.toList()); ).collect(Collectors.toList());
if (CollUtil.isNotEmpty(qualifiedList)) {
Double a = qualifiedList.get(0) - (1.0 / data * (channelData - errSysDtl.getMaxErrorValue()));
detectionData.setErrorData(BigDecimal.valueOf(Math.abs(a)));
} else {
Double a = list.get(0) - (1.0 / data * (channelData - errSysDtl.getMaxErrorValue()));
detectionData.setErrorData(BigDecimal.valueOf(Math.abs(a)));
}
isData(dataRule, qualifiedList, detectionData, qualifiedList); isData(dataRule, qualifiedList, detectionData, qualifiedList);
} }
} }

View File

@@ -85,6 +85,8 @@ public interface DevValidMessage {
String STANDARD_TIME_NOT_BLANK = "标准推行时间不能为空请检查standardTime参数"; String STANDARD_TIME_NOT_BLANK = "标准推行时间不能为空请检查standardTime参数";
String SCRIPT_TYPE_FORMAT_ERROR = "检测脚本类型格式错误请检查scriptType参数"; String SCRIPT_TYPE_FORMAT_ERROR = "检测脚本类型格式错误请检查scriptType参数";
String SCRIPT_VOLT_FORMAT_ERROR = "检测脚本额定电压格式错误请检查scriptType参数";
String SCRIPT_CURR_FORMAT_ERROR = "检测脚本额定电流格式错误请检查scriptType参数";
String DEV_LEVEL_NOT_BLANK = "设备等级不能为空请检查devLevel参数"; String DEV_LEVEL_NOT_BLANK = "设备等级不能为空请检查devLevel参数";

View File

@@ -57,20 +57,20 @@ public class PqScriptParam {
/** /**
* 额定电压 * 额定电压
*/ */
// @ApiModelProperty("额定电压") @ApiModelProperty("额定电压")
// @NotNull(message = DevValidMessage.SCRIPT_TYPE_NOT_BLANK) @NotNull(message = DevValidMessage.SCRIPT_TYPE_NOT_BLANK)
// @Min(value = 0, message = DevValidMessage.SCRIPT_TYPE_FORMAT_ERROR) @Min(value = 0, message = DevValidMessage.SCRIPT_VOLT_FORMAT_ERROR)
// @Max(value = 380, message = DevValidMessage.SCRIPT_TYPE_FORMAT_ERROR) @Max(value = 380, message = DevValidMessage.SCRIPT_VOLT_FORMAT_ERROR)
// private Double ratedVolt; private Double ratedVolt;
/** /**
* 额定电流 * 额定电流
*/ */
// @ApiModelProperty("额定电流") @ApiModelProperty("额定电流")
// @NotNull(message = DevValidMessage.SCRIPT_TYPE_NOT_BLANK) @NotNull(message = DevValidMessage.SCRIPT_TYPE_NOT_BLANK)
// @Min(value = 0, message = DevValidMessage.SCRIPT_TYPE_FORMAT_ERROR) @Min(value = 0, message = DevValidMessage.SCRIPT_CURR_FORMAT_ERROR)
// @Max(value = 20, message = DevValidMessage.SCRIPT_TYPE_FORMAT_ERROR) @Max(value = 20, message = DevValidMessage.SCRIPT_CURR_FORMAT_ERROR)
// private Double ratedCurr; private Double ratedCurr;
@Data @Data

View File

@@ -66,12 +66,12 @@ public class PqScript extends BaseEntity implements Serializable {
/** /**
* 额定电压 * 额定电压
*/ */
// private Double ratedVolt; private Double ratedVolt;
/** /**
* 额定电流 * 额定电流
*/ */
// private Double ratedCurr; private Double ratedCurr;
/** /**
* 状态0-删除 1-正常 * 状态0-删除 1-正常

View File

@@ -82,5 +82,9 @@ public class RawResultDataVO {
*/ */
private String radius; private String radius;
/**
* 误差值
*/
private BigDecimal errorData;
} }
} }