功能优化

This commit is contained in:
xy
2025-03-20 13:37:20 +08:00
parent a797381a7d
commit cc52561395

View File

@@ -50,6 +50,7 @@ import com.njcn.system.pojo.po.DictData;
import com.njcn.user.api.DeptFeignClient; import com.njcn.user.api.DeptFeignClient;
import com.njcn.web.factory.PageFactory; import com.njcn.web.factory.PageFactory;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@@ -76,6 +77,7 @@ import static java.util.regex.Pattern.*;
* @author xy * @author xy
* @since 2024-06-17 * @since 2024-06-17
*/ */
@Slf4j
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, LineWarning> implements ILineWarningService { public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, LineWarning> implements ILineWarningService {
@@ -374,11 +376,16 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
if (CollUtil.isNotEmpty(list)) { if (CollUtil.isNotEmpty(list)) {
list.forEach(item -> { list.forEach(item -> {
String time = item.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)); String time = item.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN));
double maxData = getFreqDev(param.getLineId() List<DataV> freqDevList = getFreqDev(param.getLineId()
, time + " 00:00:00" , time + " 00:00:00"
, time + " 23:59:59" , time + " 23:59:59"
).get(0).getFreqDev(); );
channelEachData(item, maxData > 0 ? overlimit.getFreqDev() : -overlimit.getFreqDev(), "getFreqDev", result, DicDataEnum.FREQUENCY_DEV.getName(), timeInterval, maxData); if (CollUtil.isNotEmpty(freqDevList)) {
double maxData = freqDevList.get(0).getFreqDev();
channelEachData(item, maxData > 0 ? overlimit.getFreqDev() : -overlimit.getFreqDev(), "getFreqDev", result, DicDataEnum.FREQUENCY_DEV.getName(), timeInterval, maxData);
} else {
log.info("{}原始数据缺失", time);
}
}); });
} }
} }
@@ -394,15 +401,19 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
, time + " 00:00:00" , time + " 00:00:00"
, time + " 23:59:59" , time + " 23:59:59"
); );
List<Double> voltage = voltageList.stream().map(DataV::getVuDev).collect(Collectors.toList()); if (CollUtil.isNotEmpty(voltageList)) {
if (Math.abs(voltage.get(0)) >= Math.abs(voltage.get(1))) { List<Double> voltage = voltageList.stream().map(DataV::getVuDev).collect(Collectors.toList());
overLimit = overlimit.getUvoltageDev(); if (Math.abs(voltage.get(0)) >= Math.abs(voltage.get(1))) {
maxData = voltage.get(0); overLimit = overlimit.getUvoltageDev();
maxData = voltage.get(0);
} else {
overLimit = overlimit.getVoltageDev();
maxData = voltage.get(1);
}
channelEachData(item, overLimit, "getVoltageDev", result, DicDataEnum.VOLTAGE_DEV.getName(), timeInterval, maxData);
} else { } else {
overLimit = overlimit.getVoltageDev(); log.info("{}原始数据缺失", time);
maxData = voltage.get(1);
} }
channelEachData(item, overLimit, "getVoltageDev", result, DicDataEnum.VOLTAGE_DEV.getName(), timeInterval, maxData);
}); });
} }
} }
@@ -412,11 +423,16 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
if (CollUtil.isNotEmpty(list)) { if (CollUtil.isNotEmpty(list)) {
list.forEach(item -> { list.forEach(item -> {
String time = item.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)); String time = item.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN));
double maxData = getFlicker(param.getLineId() List<DataPlt> dataPltList = getFlicker(param.getLineId()
, time + " 00:00:00" , time + " 00:00:00"
, time + " 23:59:59" , time + " 23:59:59"
).get(0).getPlt(); );
channelEachData(item, overlimit.getFlicker(), "getFlicker", result, DicDataEnum.FLICKER.getName(), timeInterval, maxData); if (CollUtil.isNotEmpty(dataPltList)) {
double maxData = dataPltList.get(0).getPlt();
channelEachData(item, overlimit.getFlicker(), "getFlicker", result, DicDataEnum.FLICKER.getName(), timeInterval, maxData);
} else {
log.info("{}原始数据缺失", time);
}
}); });
} }
} }
@@ -426,11 +442,16 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
if (CollUtil.isNotEmpty(list)) { if (CollUtil.isNotEmpty(list)) {
list.forEach(item -> { list.forEach(item -> {
String time = item.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)); String time = item.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN));
double maxData = getVThd(param.getLineId() List<DataV> dataVList = getVThd(param.getLineId()
, time + " 00:00:00" , time + " 00:00:00"
, time + " 23:59:59" , time + " 23:59:59"
).get(0).getVThd(); );
channelEachData(item, overlimit.getUaberrance(), "getUaberrance", result, DicDataEnum.THD_V.getName(), timeInterval, maxData); if (CollUtil.isNotEmpty(dataVList)) {
double maxData = dataVList.get(0).getVThd();
channelEachData(item, overlimit.getUaberrance(), "getUaberrance", result, DicDataEnum.THD_V.getName(), timeInterval, maxData);
} else {
log.info("{}原始数据缺失", time);
}
}); });
} }
} }
@@ -441,11 +462,16 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
if (CollUtil.isNotEmpty(list)) { if (CollUtil.isNotEmpty(list)) {
list.forEach(item -> { list.forEach(item -> {
String time = item.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)); String time = item.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN));
double maxData = getVThd(param.getLineId() List<DataV> dataVList = getVThd(param.getLineId()
, time + " 00:00:00" , time + " 00:00:00"
, time + " 23:59:59" , time + " 23:59:59"
).get(0).getVThd(); );
channelEachData(item, overlimit.getUaberrance(), "getUaberrance", result, DicDataEnum.THD_V.getName(), timeInterval, maxData); if (CollUtil.isNotEmpty(dataVList)) {
double maxData = dataVList.get(0).getVThd();
channelEachData(item, overlimit.getUaberrance(), "getUaberrance", result, DicDataEnum.THD_V.getName(), timeInterval, maxData);
} else {
log.info("{}原始数据缺失", time);
}
}); });
} }
//谐波电压含有率2~25次 //谐波电压含有率2~25次
@@ -453,10 +479,15 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
if (CollUtil.isNotEmpty(list2)) { if (CollUtil.isNotEmpty(list2)) {
list2.forEach(item -> { list2.forEach(item -> {
String time = item.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)); String time = item.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN));
DataHarmRateV dataHarmRateV = getDataHarmRateV(param.getLineId() List<DataHarmRateV> dataHarmRateVList = getDataHarmRateV(param.getLineId()
, time + " 00:00:00" , time + " 00:00:00"
, time + " 23:59:59").get(0); , time + " 23:59:59");
channelHarmonicData(dataHarmRateV, null, null, item, overlimit, result, "getUharm", DicDataEnum.HARMONIC_VOLTAGE.getName(), timeInterval, 2, 25); if (CollUtil.isNotEmpty(dataHarmRateVList)) {
DataHarmRateV dataHarmRateV = dataHarmRateVList.get(0);
channelHarmonicData(dataHarmRateV, null, null, item, overlimit, result, "getUharm", DicDataEnum.HARMONIC_VOLTAGE.getName(), timeInterval, 2, 25);
} else {
log.info("{}原始数据缺失", time);
}
}); });
} }
} }
@@ -466,10 +497,15 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
if (CollUtil.isNotEmpty(list)) { if (CollUtil.isNotEmpty(list)) {
list.forEach(item -> { list.forEach(item -> {
String time = item.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)); String time = item.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN));
DataI dataI = getDataI(param.getLineId() List<DataI> dataIList = getDataI(param.getLineId()
, time + " 00:00:00" , time + " 00:00:00"
, time + " 23:59:59").get(0); , time + " 23:59:59");
channelHarmonicData(null, dataI, null, item, overlimit, result, "getIharm", DicDataEnum.HARMONIC_CURRENT.getName(), timeInterval, 2, 25); if (CollUtil.isNotEmpty(dataIList)) {
DataI dataI = dataIList.get(0);
channelHarmonicData(null, dataI, null, item, overlimit, result, "getIharm", DicDataEnum.HARMONIC_CURRENT.getName(), timeInterval, 2, 25);
} else {
log.info("{}原始数据缺失", time);
}
}); });
} }
} }
@@ -479,10 +515,15 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
if (CollUtil.isNotEmpty(list)) { if (CollUtil.isNotEmpty(list)) {
list.forEach(item -> { list.forEach(item -> {
String time = item.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)); String time = item.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN));
DataInHarmV dataInHarmV = getDataInHarmV(param.getLineId() List<DataInHarmV> dataInHarmVList = getDataInHarmV(param.getLineId()
, time + " 00:00:00" , time + " 00:00:00"
, time + " 23:59:59").get(0); , time + " 23:59:59");
channelHarmonicData(null, null, dataInHarmV, item, overlimit, result, "getInuharm", DicDataEnum.INTERHARMONIC_VOLTAGE.getName(), timeInterval, 1, 16); if (CollUtil.isNotEmpty(dataInHarmVList)) {
DataInHarmV dataInHarmV = dataInHarmVList.get(0);
channelHarmonicData(null, null, dataInHarmV, item, overlimit, result, "getInuharm", DicDataEnum.INTERHARMONIC_VOLTAGE.getName(), timeInterval, 1, 16);
} else {
log.info("{}原始数据缺失", time);
}
}); });
} }
} }
@@ -492,11 +533,16 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
if (CollUtil.isNotEmpty(list)) { if (CollUtil.isNotEmpty(list)) {
list.forEach(item -> { list.forEach(item -> {
String time = item.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)); String time = item.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN));
double maxData = getUnbalance(param.getLineId() List<DataV> dataVList = getUnbalance(param.getLineId()
, time + " 00:00:00" , time + " 00:00:00"
, time + " 23:59:59" , time + " 23:59:59"
).get(0).getVUnbalance(); );
channelEachData(item, overlimit.getUbalance(), "getUbalance", result, DicDataEnum.PHASE_VOLTAGE.getName(), timeInterval, maxData); if (CollUtil.isNotEmpty(dataVList)) {
double maxData = dataVList.get(0).getVUnbalance();
channelEachData(item, overlimit.getUbalance(), "getUbalance", result, DicDataEnum.PHASE_VOLTAGE.getName(), timeInterval, maxData);
} else {
log.info("{}原始数据缺失", time);
}
}); });
} }
} }
@@ -506,11 +552,16 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
if (CollUtil.isNotEmpty(list)) { if (CollUtil.isNotEmpty(list)) {
list.forEach(item -> { list.forEach(item -> {
String time = item.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)); String time = item.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN));
double maxData = getINeg(param.getLineId() List<DataI> dataIList = getINeg(param.getLineId()
, time + " 00:00:00" , time + " 00:00:00"
, time + " 23:59:59" , time + " 23:59:59"
).get(0).getINeg(); );
channelEachData(item, overlimit.getINeg(), "getINeg", result, DicDataEnum.NEG_CURRENT.getName(), timeInterval, maxData); if (CollUtil.isNotEmpty(dataIList)) {
double maxData = dataIList.get(0).getINeg();
channelEachData(item, overlimit.getINeg(), "getINeg", result, DicDataEnum.NEG_CURRENT.getName(), timeInterval, maxData);
} else {
log.info("{}原始数据缺失", time);
}
}); });
} }
} }
@@ -904,12 +955,12 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
} }
/** /**
* 获取负序电压不平衡度-日最大值-最大值 * 获取负序电压不平衡度-日最大值-CP95
*/ */
public List<DataV> getUnbalance(String lineIndex, String startTime, String endTime) { public List<DataV> getUnbalance(String lineIndex, String startTime, String endTime) {
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataV.class); InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataV.class);
influxQueryWrapper.eq(DataV::getLineId, lineIndex) influxQueryWrapper.eq(DataV::getLineId, lineIndex)
.eq(DataV::getValueType, InfluxDbSqlConstant.MAX) .eq(DataV::getValueType, InfluxDbSqlConstant.CP95)
.eq(DataV::getPhaseType, "T") .eq(DataV::getPhaseType, "T")
.max(DataV::getVUnbalance) .max(DataV::getVUnbalance)
.between(DataV::getTime, startTime, endTime); .between(DataV::getTime, startTime, endTime);
@@ -917,12 +968,12 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
} }
/** /**
* 获取负序电流-日最大值-最大值 * 获取负序电流-日最大值-CP95
*/ */
public List<DataI> getINeg(String lineIndex, String startTime, String endTime) { public List<DataI> getINeg(String lineIndex, String startTime, String endTime) {
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataI.class); InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataI.class);
influxQueryWrapper.eq(DataI::getLineId, lineIndex) influxQueryWrapper.eq(DataI::getLineId, lineIndex)
.eq(DataI::getValueType, InfluxDbSqlConstant.MAX) .eq(DataI::getValueType, InfluxDbSqlConstant.CP95)
.eq(DataI::getPhaseType, "T") .eq(DataI::getPhaseType, "T")
.max(DataI::getINeg) .max(DataI::getINeg)
.between(DataI::getTime, startTime, endTime); .between(DataI::getTime, startTime, endTime);