1.增加异常数据量算法

2.增加稳态异常数据标记
This commit is contained in:
wr
2025-12-05 15:26:45 +08:00
parent 2624d7d495
commit 5afb860467
8 changed files with 362 additions and 1 deletions

View File

@@ -18,6 +18,7 @@ import com.njcn.dataProcess.param.LineCountEvaluateParam;
import com.njcn.dataProcess.pojo.dto.*;
import com.njcn.dataProcess.pojo.po.PqDataVerify;
import com.njcn.dataProcess.pojo.po.PqDataVerifyBak;
import com.njcn.dataProcess.pojo.po.PqDataVerifyCount;
import com.njcn.dataProcess.util.DataCommonUtils;
import com.njcn.dataProcess.util.TimeUtils;
import com.njcn.device.pq.api.LineFeignClient;
@@ -100,6 +101,8 @@ public class DataCleanServiceImpl implements IDataCleanService {
@Resource
private PqDataVerifyNewFeignClient pqDataVerifyNewFeignClient;
@Resource
private PqDataVerifyCountFeignClient pqDataVerifyCountFeignClient;
@Resource
private FileStorageUtil fileStorageUtil;
@Override
@@ -538,7 +541,79 @@ public class DataCleanServiceImpl implements IDataCleanService {
}
if (CollUtil.isNotEmpty(allTimeSet)) {
Map<String,Object> dtoMap = new HashMap<>();
PqDataVerifyCount verifyCount = new PqDataVerifyCount();
verifyCount.setLineId(item.getLineId());
verifyCount.setTime(LocalDate.parse(calculatedParam.getDataDate(), DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)));
verifyCount.setTotalAll(data1.size());
verifyCount.setFlickerAll(data9.size());
List<DataVDto> dataV = data1.stream()
.filter(item1 -> allTimeSet.contains(item1.getMinTime().substring(11, 19)))
.collect(Collectors.toList());
if (CollUtil.isNotEmpty(dataV)) {
verifyCount.setTotal(dataV.size());
dataV.forEach(item1-> item1.setAbnormalFlag(1));
dataVFeignClient.addInfluxDbList(dataV);
}
List<DataIDto> dataI = data2.stream()
.filter(item1 -> allTimeSet.contains(item1.getMinTime().substring(11, 19)))
.collect(Collectors.toList());
if (CollUtil.isNotEmpty(dataI)) {
dataI.forEach(item1-> item1.setAbnormalFlag(1));
dataIFeignClient.addInfluxDbList(dataI);
}
List<DataPltDto> dataPlt = data3.stream()
.filter(item1 -> allTimeSet.contains(item1.getMinTime().substring(11, 19)))
.collect(Collectors.toList());
if (CollUtil.isNotEmpty(dataPlt)) {
dataPlt.forEach(item1-> item1.setAbnormalFlag(1));
dataPltFeignClient.addInfluxDbList(dataPlt);
}
List<DataHarmDto> dataInHarmV = data4.stream()
.filter(item1 -> allTimeSet.contains(item1.getMinTime().substring(11, 19)))
.collect(Collectors.toList());
if (CollUtil.isNotEmpty(dataInHarmV)) {
dataInHarmV.forEach(item1-> item1.setAbnormalFlag(1));
dataInharmVFeignClient.addInfluxDbList(dataInHarmV);
}
List<DataHarmDto> dataHarmRateV = data5.stream()
.filter(item1 -> allTimeSet.contains(item1.getMinTime().substring(11, 19)))
.collect(Collectors.toList());
if (CollUtil.isNotEmpty(dataHarmRateV)) {
dataHarmRateV.forEach(item1-> item1.setAbnormalFlag(1));
dataHarmRateVFeignClient.addInfluxDbList(dataHarmRateV);
}
List<DataPowerPDto> dataHarmPowerP = data6.stream()
.filter(item1 -> allTimeSet.contains(item1.getMinTime().substring(11, 19)))
.collect(Collectors.toList());
if (CollUtil.isNotEmpty(dataHarmPowerP)) {
dataHarmPowerP.forEach(item1-> item1.setAbnormalFlag(1));
dataHarmpowerPFeignClient.addInfluxDbList(dataHarmPowerP);
}
List<DataHarmDto> dataHarmPhasicV = data7.stream()
.filter(item1 -> allTimeSet.contains(item1.getMinTime().substring(11, 19)))
.collect(Collectors.toList());
if (CollUtil.isNotEmpty(dataHarmPhasicV)) {
dataHarmPhasicV.forEach(item1-> item1.setAbnormalFlag(1));
dataHarmphasicVFeignClient.addInfluxDbList(dataHarmPhasicV);
}
List<DataFlucDto> dataFluc = data8.stream()
.filter(item1 -> allTimeSet.contains(item1.getMinTime().substring(11, 19)))
.collect(Collectors.toList());
if (CollUtil.isNotEmpty(dataFluc)) {
dataFluc.forEach(item1-> item1.setAbnormalFlag(1));
dataFlucFeignClient.addInfluxDbList(dataFluc);
}
List<DataFlickerDto> dataFlicker = data9.stream()
.filter(item1 -> allTimeSet.contains(item1.getMinTime().substring(11, 19)))
.collect(Collectors.toList());
if (CollUtil.isNotEmpty(dataFlicker)) {
verifyCount.setFlicker(dataFlicker.size());
dataFlicker.forEach(item1-> item1.setAbnormalFlag(1));
dataFlickerFeignClient.addInfluxDbList(dataFlicker);
}
pqDataVerifyCountFeignClient.insertData(verifyCount);
Map<String,Object> dtoMap = new HashMap<>(1);
dtoMap.put("lineErrorTimes",allTimeSet.size() * item.getTimeInterval());
resultData.add(dtoMap);
}