算法清洗,调整空指针问题
This commit is contained in:
@@ -26,7 +26,6 @@ import com.njcn.device.pq.pojo.vo.LineDetailVO;
|
||||
import com.njcn.oss.constant.OssPath;
|
||||
import com.njcn.oss.utils.FileStorageUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -58,7 +57,7 @@ public class DataCleanServiceImpl implements IDataCleanService {
|
||||
private static final Logger logger = LoggerFactory.getLogger(DataCleanServiceImpl.class);
|
||||
|
||||
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
|
||||
|
||||
|
||||
@Value("${line.num}")
|
||||
private Integer NUM = 100;
|
||||
|
||||
@@ -1538,21 +1537,23 @@ public class DataCleanServiceImpl implements IDataCleanService {
|
||||
// 50次谐波
|
||||
for (int i = 1; i <= 50; i++) {
|
||||
// 通过反射获取dto.getV(i)的值
|
||||
double vValue = getVValue(dto, i);
|
||||
if (vValue < pqReasonableRangeDto.getMinValue() || vValue > pqReasonableRangeDto.getMaxValue()) {
|
||||
PqDataVerify pqDataVerify = getPqDataVerify(
|
||||
dto.getLineId(),
|
||||
dto.getMinTime(),
|
||||
dto.getValueType(),
|
||||
dto.getPhasicType(),
|
||||
pqReasonableRangeDto.getIndexCode(),
|
||||
(i - 0.5) + pqReasonableRangeDto.getIndexName(),
|
||||
pqReasonableRangeDto.getInfluxdbTableName(),
|
||||
vValue,
|
||||
pqReasonableRangeDto.getMinValue(),
|
||||
pqReasonableRangeDto.getMaxValue()
|
||||
);
|
||||
list.add(pqDataVerify);
|
||||
Double vValue = getVValue(dto, i);
|
||||
if(ObjectUtil.isNotNull(vValue)){
|
||||
if (vValue < pqReasonableRangeDto.getMinValue() || vValue > pqReasonableRangeDto.getMaxValue()) {
|
||||
PqDataVerify pqDataVerify = getPqDataVerify(
|
||||
dto.getLineId(),
|
||||
dto.getMinTime(),
|
||||
dto.getValueType(),
|
||||
dto.getPhasicType(),
|
||||
pqReasonableRangeDto.getIndexCode(),
|
||||
(i - 0.5) + pqReasonableRangeDto.getIndexName(),
|
||||
pqReasonableRangeDto.getInfluxdbTableName(),
|
||||
vValue,
|
||||
pqReasonableRangeDto.getMinValue(),
|
||||
pqReasonableRangeDto.getMaxValue()
|
||||
);
|
||||
list.add(pqDataVerify);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1570,21 +1571,23 @@ public class DataCleanServiceImpl implements IDataCleanService {
|
||||
// 50次谐波
|
||||
for (int i = 2; i <= 50; i++) {
|
||||
// 通过反射获取dto.getV(i)的值
|
||||
double vValue = getVValue(dto, i);
|
||||
if (vValue < pqReasonableRangeDto.getMinValue() || vValue > pqReasonableRangeDto.getMaxValue()) {
|
||||
PqDataVerify pqDataVerify = getPqDataVerify(
|
||||
dto.getLineId(),
|
||||
dto.getMinTime(),
|
||||
dto.getValueType(),
|
||||
dto.getPhasicType(),
|
||||
pqReasonableRangeDto.getIndexCode(),
|
||||
i + pqReasonableRangeDto.getIndexName(),
|
||||
pqReasonableRangeDto.getInfluxdbTableName(),
|
||||
vValue,
|
||||
pqReasonableRangeDto.getMinValue(),
|
||||
pqReasonableRangeDto.getMaxValue()
|
||||
);
|
||||
list.add(pqDataVerify);
|
||||
Double vValue = getVValue(dto, i);
|
||||
if(ObjectUtil.isNotNull(vValue)){
|
||||
if (vValue < pqReasonableRangeDto.getMinValue() || vValue > pqReasonableRangeDto.getMaxValue()) {
|
||||
PqDataVerify pqDataVerify = getPqDataVerify(
|
||||
dto.getLineId(),
|
||||
dto.getMinTime(),
|
||||
dto.getValueType(),
|
||||
dto.getPhasicType(),
|
||||
pqReasonableRangeDto.getIndexCode(),
|
||||
i + pqReasonableRangeDto.getIndexName(),
|
||||
pqReasonableRangeDto.getInfluxdbTableName(),
|
||||
vValue,
|
||||
pqReasonableRangeDto.getMinValue(),
|
||||
pqReasonableRangeDto.getMaxValue()
|
||||
);
|
||||
list.add(pqDataVerify);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1627,27 +1630,29 @@ public class DataCleanServiceImpl implements IDataCleanService {
|
||||
// 50次谐波
|
||||
for (int i = 1; i <= 50; i++) {
|
||||
// 通过反射获取dto.getV(i)的值
|
||||
double vValue = getVValue(dto, i);
|
||||
if (vValue < -180) {
|
||||
vValue = vValue + 360;
|
||||
}
|
||||
if (vValue > 180) {
|
||||
vValue = vValue - 360;
|
||||
}
|
||||
if (vValue < pqReasonableRangeDto.getMinValue() || vValue > pqReasonableRangeDto.getMaxValue()) {
|
||||
PqDataVerify pqDataVerify = getPqDataVerify(
|
||||
dto.getLineId(),
|
||||
dto.getMinTime(),
|
||||
dto.getValueType(),
|
||||
dto.getPhasicType(),
|
||||
pqReasonableRangeDto.getIndexCode(),
|
||||
i + pqReasonableRangeDto.getIndexName(),
|
||||
pqReasonableRangeDto.getInfluxdbTableName(),
|
||||
vValue,
|
||||
pqReasonableRangeDto.getMinValue(),
|
||||
pqReasonableRangeDto.getMaxValue()
|
||||
);
|
||||
list.add(pqDataVerify);
|
||||
Double vValue = getVValue(dto, i);
|
||||
if(ObjectUtil.isNotNull(vValue)){
|
||||
if (vValue < -180) {
|
||||
vValue = vValue + 360;
|
||||
}
|
||||
if (vValue > 180) {
|
||||
vValue = vValue - 360;
|
||||
}
|
||||
if (vValue < pqReasonableRangeDto.getMinValue() || vValue > pqReasonableRangeDto.getMaxValue()) {
|
||||
PqDataVerify pqDataVerify = getPqDataVerify(
|
||||
dto.getLineId(),
|
||||
dto.getMinTime(),
|
||||
dto.getValueType(),
|
||||
dto.getPhasicType(),
|
||||
pqReasonableRangeDto.getIndexCode(),
|
||||
i + pqReasonableRangeDto.getIndexName(),
|
||||
pqReasonableRangeDto.getInfluxdbTableName(),
|
||||
vValue,
|
||||
pqReasonableRangeDto.getMinValue(),
|
||||
pqReasonableRangeDto.getMaxValue()
|
||||
);
|
||||
list.add(pqDataVerify);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1727,12 +1732,16 @@ public class DataCleanServiceImpl implements IDataCleanService {
|
||||
return pqDataVerify;
|
||||
}
|
||||
|
||||
private double getVValue(DataHarmDto dto, int index) {
|
||||
private Double getVValue(DataHarmDto dto, int index) {
|
||||
try {
|
||||
Method method = DataHarmDto.class.getMethod("getV" + index);
|
||||
return (double) method.invoke(dto);
|
||||
Object invoke = method.invoke(dto);
|
||||
if(invoke==null){
|
||||
return null;
|
||||
}
|
||||
return (Double) invoke;
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("Failed to get V value for index: " + index, e);
|
||||
throw new RuntimeException(dto+"Failed to get V value for index: " + index, e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user