From 12c387d66ebcbc0fc59587e2c8fb4f747ab38f36 Mon Sep 17 00:00:00 2001 From: wr <1754607820@qq.com> Date: Thu, 6 Mar 2025 16:34:23 +0800 Subject: [PATCH] =?UTF-8?q?=20=E7=9B=91=E6=B5=8B=E7=82=B9=E7=A8=B3?= =?UTF-8?q?=E6=80=81=E6=8C=87=E6=A0=87=E8=B6=8A=E9=99=90=E6=AC=A1=E6=95=B0?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/line/IDataCrossingService.java | 19 + .../line/IDataCrossingServiceImpl.java | 1061 +++++++++++++++++ .../param/LineCountEvaluateParam.java | 6 +- .../pojo/dto/DataLimitRateDto.java | 388 ++++++ .../dataProcess/pojo/po/RStatLimitRateD.java | 468 ++++++++ .../controller/DataLimitRateController.java | 64 + .../dao/imapper/DataLimitRateMapper.java | 17 + .../mapper/RStatLimitRateRelationMapper.java | 17 + .../service/ILimitRateService.java | 22 + .../influxdb/InfluxdbDataHarmRateVImpl.java | 18 +- .../impl/influxdb/InfluxdbDataIImpl.java | 19 +- .../influxdb/InfluxdbDataInharmVImpl.java | 19 +- .../impl/influxdb/InfluxdbDataPltImpl.java | 19 +- .../impl/influxdb/InfluxdbDataVImpl.java | 18 +- .../impl/influxdb/InfluxdbLimitRateImpl.java | 28 + .../impl/relation/RelationLimitRateImpl.java | 28 + 16 files changed, 2175 insertions(+), 36 deletions(-) create mode 100644 algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/line/IDataCrossingService.java create mode 100644 algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/IDataCrossingServiceImpl.java create mode 100644 data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/dto/DataLimitRateDto.java create mode 100644 data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/po/RStatLimitRateD.java create mode 100644 data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataLimitRateController.java create mode 100644 data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/dao/imapper/DataLimitRateMapper.java create mode 100644 data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/dao/relation/mapper/RStatLimitRateRelationMapper.java create mode 100644 data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/ILimitRateService.java create mode 100644 data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbLimitRateImpl.java create mode 100644 data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationLimitRateImpl.java diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/line/IDataCrossingService.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/line/IDataCrossingService.java new file mode 100644 index 0000000..e1045fb --- /dev/null +++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/service/line/IDataCrossingService.java @@ -0,0 +1,19 @@ +package com.njcn.algorithm.service.line; + + +import com.njcn.algorithm.pojo.bo.CalculatedParam; + +/** + * @Description: + * @Author: wr + * @Date: 2025/3/6 10:22 + */ +public interface IDataCrossingService { + + /*** + * r_stat_limit_rate_d数据越线次数 + * @author xy + * @param calculatedParam 查询条件 + */ + void limitRateHandler(CalculatedParam calculatedParam); +} diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/IDataCrossingServiceImpl.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/IDataCrossingServiceImpl.java new file mode 100644 index 0000000..280e007 --- /dev/null +++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/IDataCrossingServiceImpl.java @@ -0,0 +1,1061 @@ +package com.njcn.algorithm.serviceimpl.line; + + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.ListUtil; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.LocalDateTimeUtil; +import com.njcn.algorithm.pojo.bo.CalculatedParam; +import com.njcn.algorithm.service.line.IDataCrossingService; +import com.njcn.dataProcess.api.*; +import com.njcn.dataProcess.constant.PhaseType; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.*; +import com.njcn.dataProcess.util.TimeUtils; +import com.njcn.device.biz.commApi.CommTerminalGeneralClient; +import com.njcn.device.biz.pojo.po.Overlimit; +import com.njcn.influx.constant.InfluxDbSqlConstant; +import com.njcn.influx.pojo.constant.InfluxDBTableConstant; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.ListUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * @Description: + * @Author: wr + * @Date: 2025/3/6 10:22 + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class IDataCrossingServiceImpl implements IDataCrossingService { + + private static final Logger logger = LoggerFactory.getLogger(DayDataServiceImpl.class); + private final static Integer NUM = 100; + @Resource + private DataVFeignClient dataVFeignClient; + @Resource + private CommTerminalGeneralClient commTerminalGeneralClient; + @Resource + private DataIFeignClient dataIFeignClient; + @Resource + private DataPltFeignClient dataPltFeignClient; + @Resource + private DataInharmVFeignClient dataInharmVFeignClient; + @Resource + private DataHarmRateVFeignClient dataHarmRateVFeignClient; + + + @Override + public void limitRateHandler(CalculatedParam calculatedParam) { + logger.info("{},dataV表转r_stat_data_v_d算法开始=====》", LocalDateTime.now()); + List result = new ArrayList<>(); + //远程接口获取分钟数据 + LineCountEvaluateParam lineParam = new LineCountEvaluateParam(); + lineParam.setStartTime(TimeUtils.getBeginOfDay(calculatedParam.getDataDate())); + lineParam.setEndTime(TimeUtils.getEndOfDay(calculatedParam.getDataDate())); + List lineIds = calculatedParam.getIdList(); + //获取所有监测点的限值 + List overLimitList = commTerminalGeneralClient.getOverLimitDataByIds(lineIds).getData(); + Map overLimitMap = overLimitList.stream().collect(Collectors.toMap(Overlimit::getId, Function.identity())); + + + //以100个监测点分片处理 + List> pendingIds = ListUtils.partition(lineIds, NUM); + ArrayList phase = ListUtil.toList(PhaseType.PHASE_A, PhaseType.PHASE_B, PhaseType.PHASE_C); + pendingIds.forEach(list -> { + lineParam.setLineId(list); + //获取电压数据 + List dataVAllTime = dataVFeignClient.getRawData(lineParam).getData(); + //闪变数据 + List dataFlickerAllTime = dataPltFeignClient.getRawData(lineParam).getData(); + //谐波数据 + List dataVHarmList = dataHarmRateVFeignClient.getRawData(lineParam).getData(); + //间谐波数据 + List dataVInHarmList = dataInharmVFeignClient.getRawData(lineParam).getData(); + //电流数据 + List dataIList = dataIFeignClient.getRawData(lineParam).getData(); + + /** + * 功能描述:获取influxDB -> data_v -> + * 总计算次数(用data_v中phasic_type=A,value_type=avg,quality_flag=0来参与统计) + */ + Map> allTime = dataVAllTime.stream() + .filter(x -> PhaseType.PHASE_A.equals(x.getPhasicType())) + .filter(x -> InfluxDbSqlConstant.AVG_WEB.equals(x.getValueType())) + .collect(Collectors.groupingBy(DataVDto::getLineId)); + + /** + * 功能描述:获取influxDB -> data_plt -> + * 闪变总计算次数(用data_plt中phasic_type=A,quality_flag=0来参与统计) + */ + Map> flickerAllTime = dataFlickerAllTime.stream() + .filter(x -> PhaseType.PHASE_A.equals(x.getValueType())) + .collect(Collectors.groupingBy(DataPltDto::getLineId)); + + /** + *功能描述:获取influxDB -> data_harmrate_v -> + * 2-25次谐波电压含有率 -> A相||B相||C相的日95%概率值 + */ + Map> harmRateV = dataVHarmList.stream() + .filter(x -> phase.contains(x.getPhasicType())) + .filter(x -> InfluxDBTableConstant.CP95.equals(x.getValueType())) + .collect(Collectors.groupingBy(DataHarmDto::getLineId)); + + /** + * 功能描述:获取influxDB -> data_i -> 2-25次谐波电流 -> 日95%概率值 + */ + Map> dataI = dataIList.stream() + .filter(x -> phase.contains(x.getPhasicType())) + .filter(x -> InfluxDBTableConstant.CP95.equals(x.getValueType())) + .collect(Collectors.groupingBy(DataIDto::getLineId)); + + + /** + * 功能描述:获取influxDB -> data_inharm_v -> 0.5-15.5次间谐波电压含有率 -> 日95%概率值 + */ + Map> inHarmV = dataVInHarmList.stream() + .filter(x -> phase.contains(x.getPhasicType())) + .filter(x -> InfluxDBTableConstant.CP95.equals(x.getValueType())) + .collect(Collectors.groupingBy(DataHarmDto::getLineId)); + + /** + * 功能描述:获取influxDB -> data_v -> 电压总谐波畸变率 -> 日95%概率值 + */ + Map> dataVThd = dataVAllTime.stream() + .filter(x -> phase.contains(x.getPhasicType())) + .filter(x -> InfluxDBTableConstant.CP95.equals(x.getValueType())) + .collect(Collectors.groupingBy(DataVDto::getLineId)); + + /** + * 功能描述:获取influxDB -> data_v -> 负序电压不平衡度 -> 最大值 && 日95%概率值 + */ + Map> dataVUnbalance = dataVAllTime.stream() + .filter(x -> InfluxDBTableConstant.PHASE_TYPE_T.equals(x.getPhasicType())) + .filter(x -> InfluxDBTableConstant.CP95.equals(x.getValueType()) || + InfluxDBTableConstant.MAX.equals(x.getValueType())) + .collect(Collectors.groupingBy(DataVDto::getLineId)); + + /** + * 功能描述:获取influxDB -> data_i -> 负序电流 -> 最大值 && 日95%概率值 + */ + Map> dataINeg = dataIList.stream() + .filter(x -> InfluxDBTableConstant.PHASE_TYPE_T.equals(x.getPhasicType())) + .filter(x -> InfluxDBTableConstant.CP95.equals(x.getValueType()) || + InfluxDBTableConstant.MAX.equals(x.getValueType())) + .collect(Collectors.groupingBy(DataIDto::getLineId)); + + /** + * 功能描述:获取influxDB -> data_v -> 频率偏差 -> 最大值 && 最小值 + */ + Map> dataVFreq = dataVAllTime.stream() + .filter(x -> InfluxDBTableConstant.PHASE_TYPE_T.equals(x.getPhasicType())) + .filter(x -> InfluxDBTableConstant.MIN.equals(x.getValueType()) || + InfluxDBTableConstant.MAX.equals(x.getValueType())) + .collect(Collectors.groupingBy(DataVDto::getLineId)); + /** + * 功能描述:获取influxDB -> data_v -> 电压偏差 -> 最大值 + */ + Map> dataVDev = dataVAllTime.stream() + .filter(x -> phase.contains(x.getPhasicType())) + .filter(x -> InfluxDBTableConstant.MAX.equals(x.getValueType())) + .collect(Collectors.groupingBy(DataVDto::getLineId)); + + /** + * 功能描述:获取influxDB -> data_plt -> 长时间闪变 -> 最大值 + */ + Map> dataPlt = dataFlickerAllTime.stream() + .filter(x -> phase.contains(x.getPhasicType())) + .filter(x -> InfluxDBTableConstant.MAX.equals(x.getValueType())) + .collect(Collectors.groupingBy(DataPltDto::getLineId)); + + for (String item : lineIds) { + result.addAll(getData(calculatedParam.getDataDate(), + overLimitMap.get(item), + allTime.get(item), + flickerAllTime.get(item), + harmRateV.get(item), + dataI.get(item), + inHarmV.get(item), + dataVThd.get(item), + dataVUnbalance.get(item), + dataINeg.get(item), + dataVFreq.get(item), + dataVDev.get(item), + dataPlt.get(item))); + + } + + + }); + + if (CollUtil.isNotEmpty(result)) { + //存储数据 + + } + + + } + + + /** + * @Description: getData + * @Param: [overlimit, allTimeList, flickerAllTimeList, dataHarmRateVPOList, dataIPOList, dataInHarmVPOList, dataVPOList, dataVPOUnbalanceList, dataIPONegList, dataVPOFreqList, dataVPODevList, dataPltPOList] + * @return: java.util.List + * @Author: clam + * @Date: 2022/10/18 + */ + private List getData(String dataDate, + Overlimit overlimit, + List allTimeList, + List flickerAllTimeList, + List dataHarmRateVPOList, + List dataIPOList, + List dataInHarmVPOList, + List dataVPOList, + List dataVPOUnbalanceList, + List dataIPONegList, + List dataVPOFreqList, + List dataVPODevList, + List dataPltPOList) { + List result = new ArrayList<>(); + + Map> harmRateVByPhaseType = new HashMap<>(); + Map> dataIByPhaseType = new HashMap<>(); + Map> dataInHarmVPhaseType = new HashMap<>(); + Map> dataVPhaseType = new HashMap<>(); + Map> dataVDevPhaseType = new HashMap<>(); + Map> dataPltPhaseType = new HashMap<>(); + + + Map> harmRateVByTime = new HashMap<>(); + Map> dataIByTime = new HashMap<>(); + Map> dataInHarmVByTime = new HashMap<>(); + Map> dataVByTime = new HashMap<>(); + Map> dataVUnbalanceByTime = new HashMap<>(); + Map> dataINegByTime = new HashMap<>(); + Map> dataVFreqByTime = new HashMap<>(); + Map> dataVDevByTime = new HashMap<>(); + Map> dataPltByTime = new HashMap<>(); + Integer allTime = 0; + Integer flickerAllTime = 0; + if (!CollectionUtils.isEmpty(allTimeList)) { + allTime = allTimeList.size(); + } + if (!CollectionUtils.isEmpty(flickerAllTimeList)) { + flickerAllTime = flickerAllTimeList.size(); + } + if (!CollectionUtils.isEmpty(dataHarmRateVPOList)) { + harmRateVByPhaseType = dataHarmRateVPOList.stream().collect(Collectors.groupingBy(DataHarmDto::getPhasicType)); + harmRateVByTime = dataHarmRateVPOList.stream().collect(Collectors.groupingBy(DataHarmDto::getMinTime)); + } + if (!CollectionUtils.isEmpty(dataIPOList)) { + dataIByPhaseType = dataIPOList.stream().collect(Collectors.groupingBy(DataIDto::getPhasicType)); + dataIByTime = dataIPOList.stream().collect(Collectors.groupingBy(DataIDto::getMinTime)); + } + if (!CollectionUtils.isEmpty(dataInHarmVPOList)) { + dataInHarmVPhaseType = dataInHarmVPOList.stream().collect(Collectors.groupingBy(DataHarmDto::getPhasicType)); + dataInHarmVByTime = dataInHarmVPOList.stream().collect(Collectors.groupingBy(DataHarmDto::getMinTime)); + } + if (!CollectionUtils.isEmpty(dataVPOList)) { + dataVPhaseType = dataVPOList.stream().collect(Collectors.groupingBy(DataVDto::getPhasicType)); + dataVByTime = dataVPOList.stream().collect(Collectors.groupingBy(DataVDto::getMinTime)); + } + if (!CollectionUtils.isEmpty(dataVPOUnbalanceList)) { + dataVUnbalanceByTime = dataVPOUnbalanceList.stream().collect(Collectors.groupingBy(DataVDto::getMinTime)); + } + if (!CollectionUtils.isEmpty(dataIPONegList)) { + dataINegByTime = dataIPONegList.stream().collect(Collectors.groupingBy(DataIDto::getMinTime)); + } + if (!CollectionUtils.isEmpty(dataVPOFreqList)) { + dataVFreqByTime = dataVPOFreqList.stream().collect(Collectors.groupingBy(DataVDto::getMinTime)); + } + if (!CollectionUtils.isEmpty(dataVPODevList)) { + dataVDevPhaseType = dataVPODevList.stream().collect(Collectors.groupingBy(DataVDto::getPhasicType)); + dataVDevByTime = dataVPODevList.stream().collect(Collectors.groupingBy(DataVDto::getMinTime)); + } + if (!CollectionUtils.isEmpty(dataPltPOList)) { + dataPltPhaseType = dataPltPOList.stream().collect(Collectors.groupingBy(DataPltDto::getPhasicType)); + dataPltByTime = dataPltPOList.stream().collect(Collectors.groupingBy(DataPltDto::getMinTime)); + } + DataLimitRateDto a = limitRateData(dataDate, overlimit, allTime, flickerAllTime, PhaseType.PHASE_A, overlimit.getId(), harmRateVByPhaseType.get(PhaseType.PHASE_A), dataIByPhaseType.get(PhaseType.PHASE_A), dataInHarmVPhaseType.get(PhaseType.PHASE_A), dataVPhaseType.get(PhaseType.PHASE_A), dataVDevPhaseType.get(PhaseType.PHASE_A), dataPltPhaseType.get(PhaseType.PHASE_A)); + DataLimitRateDto b = limitRateData(dataDate, overlimit, allTime, flickerAllTime, PhaseType.PHASE_B, overlimit.getId(), harmRateVByPhaseType.get(PhaseType.PHASE_B), dataIByPhaseType.get(PhaseType.PHASE_B), dataInHarmVPhaseType.get(PhaseType.PHASE_B), dataVPhaseType.get(PhaseType.PHASE_B), dataVDevPhaseType.get(PhaseType.PHASE_B), dataPltPhaseType.get(PhaseType.PHASE_B)); + DataLimitRateDto c = limitRateData(dataDate, overlimit, allTime, flickerAllTime, PhaseType.PHASE_C, overlimit.getId(), harmRateVByPhaseType.get(PhaseType.PHASE_C), dataIByPhaseType.get(PhaseType.PHASE_C), dataInHarmVPhaseType.get(PhaseType.PHASE_C), dataVPhaseType.get(PhaseType.PHASE_C), dataVDevPhaseType.get(PhaseType.PHASE_C), dataPltPhaseType.get(PhaseType.PHASE_C)); + DataLimitRateDto t = limitRateDataT(dataDate, overlimit, allTime, flickerAllTime, overlimit.getId(), harmRateVByTime, dataIByTime, dataInHarmVByTime, dataVByTime, dataVUnbalanceByTime, dataINegByTime, dataVFreqByTime, dataVDevByTime, dataPltByTime); + result.add(a); + result.add(b); + result.add(c); + result.add(t); + return result; + } + + + /** + * @Description: limitRateData + * @Param: [overlimit, allTime, flickerAllTime, phasicType, lineId, dataHarmRateVPOList, dataIPOList, dataInHarmVPOList, dataVPOList, dataVUnbalanceList, dataINegList] + * @return: com.njcn.harmonic.pojo.po.LimitRate + * @Author: clam + * @Date: 2022/10/18 + */ + public DataLimitRateDto limitRateData(String dataDate, + Overlimit overlimit, + Integer allTime, + Integer flickerAllTime, + String phasicType, String lineId, + List dataHarmRateVPOList, + List dataIPOList, + List dataInHarmVPOList, + List dataVPOList, + List dataVPODevList, + List dataPltPOList) { + int v2 = 0, v3 = 0, v4 = 0, v5 = 0, v6 = 0, v7 = 0, v8 = 0, v9 = 0, v10 = 0, v11 = 0, v12 = 0, v13 = 0, v14 = 0, v15 = 0, v16 = 0, v17 = 0, v18 = 0, v19 = 0, v20 = 0, v21 = 0, v22 = 0, v23 = 0, v24 = 0, v25 = 0; + int i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0; + int uHarm1 = 0, uHarm2 = 0, uHarm3 = 0, uHarm4 = 0, uHarm5 = 0, uHarm6 = 0, uHarm7 = 0, uHarm8 = 0, uHarm9 = 0, uHarm10 = 0, uHarm11 = 0, uHarm12 = 0, uHarm13 = 0, uHarm14 = 0, uHarm15 = 0, uHarm16 = 0; + int thd = 0, uDev = 0, flicker = 0; + //2-25次谐波电压含有率 + if (!CollectionUtils.isEmpty(dataHarmRateVPOList)) { + for (DataHarmDto item : dataHarmRateVPOList) { + if (item.getV2() > overlimit.getUharm2() && item.getV2() >= 0.0 && item.getV2() <= 30.0) { + v2++; + } + if (item.getV3() > overlimit.getUharm3() && item.getV3() >= 0.0 && item.getV3() <= 30.0) { + v3++; + } + if (item.getV4() > overlimit.getUharm4() && item.getV4() >= 0.0 && item.getV4() <= 30.0) { + v4++; + } + if (item.getV5() > overlimit.getUharm5() && item.getV5() >= 0.0 && item.getV5() <= 30.0) { + v5++; + } + if (item.getV6() > overlimit.getUharm6() && item.getV6() >= 0.0 && item.getV6() <= 30.0) { + v6++; + } + if (item.getV7() > overlimit.getUharm7() && item.getV7() >= 0.0 && item.getV7() <= 30.0) { + v7++; + } + if (item.getV8() > overlimit.getUharm8() && item.getV8() >= 0.0 && item.getV8() <= 30.0) { + v8++; + } + if (item.getV9() > overlimit.getUharm9() && item.getV9() >= 0.0 && item.getV9() <= 30.0) { + v9++; + } + if (item.getV10() > overlimit.getUharm10() && item.getV10() >= 0.0 && item.getV10() <= 30.0) { + v10++; + } + if (item.getV11() > overlimit.getUharm11() && item.getV11() >= 0.0 && item.getV11() <= 30.0) { + v11++; + } + if (item.getV12() > overlimit.getUharm12() && item.getV12() >= 0.0 && item.getV12() <= 30.0) { + v12++; + } + if (item.getV13() > overlimit.getUharm13() && item.getV13() >= 0.0 && item.getV13() <= 30.0) { + v13++; + } + if (item.getV14() > overlimit.getUharm14() && item.getV14() >= 0.0 && item.getV14() <= 30.0) { + v14++; + } + if (item.getV15() > overlimit.getUharm15() && item.getV15() >= 0.0 && item.getV15() <= 30.0) { + v15++; + } + if (item.getV16() > overlimit.getUharm16() && item.getV16() >= 0.0 && item.getV16() <= 30.0) { + v16++; + } + if (item.getV17() > overlimit.getUharm17() && item.getV17() >= 0.0 && item.getV17() <= 30.0) { + v17++; + } + if (item.getV18() > overlimit.getUharm18() && item.getV18() >= 0.0 && item.getV18() <= 30.0) { + v18++; + } + if (item.getV19() > overlimit.getUharm19() && item.getV19() >= 0.0 && item.getV19() <= 30.0) { + v19++; + } + if (item.getV20() > overlimit.getUharm20() && item.getV20() >= 0.0 && item.getV20() <= 30.0) { + v20++; + } + if (item.getV21() > overlimit.getUharm21() && item.getV21() >= 0.0 && item.getV21() <= 30.0) { + v21++; + } + if (item.getV22() > overlimit.getUharm22() && item.getV22() >= 0.0 && item.getV22() <= 30.0) { + v22++; + } + if (item.getV23() > overlimit.getUharm23() && item.getV23() >= 0.0 && item.getV23() <= 30.0) { + v23++; + } + if (item.getV24() > overlimit.getUharm24() && item.getV24() >= 0.0 && item.getV24() <= 30.0) { + v24++; + } + if (item.getV25() > overlimit.getUharm25() && item.getV25() >= 0.0 && item.getV25() <= 30.0) { + v25++; + } + } + } + //2-25次谐波电流 + if (!CollectionUtils.isEmpty(dataIPOList)) { + for (DataIDto item : dataIPOList) { + if (item.getI2() > overlimit.getIharm2() && item.getI2() >= 0.0 && item.getI2() <= 30.0) { + i2++; + } + if (item.getI3() > overlimit.getIharm3() && item.getI3() >= 0.0 && item.getI3() <= 30.0) { + i3++; + } + if (item.getI4() > overlimit.getIharm4() && item.getI4() >= 0.0 && item.getI4() <= 30.0) { + i4++; + } + if (item.getI5() > overlimit.getIharm5() && item.getI5() >= 0.0 && item.getI5() <= 30.0) { + i5++; + } + if (item.getI6() > overlimit.getIharm6() && item.getI6() >= 0.0 && item.getI6() <= 30.0) { + i6++; + } + if (item.getI7() > overlimit.getIharm7() && item.getI7() >= 0.0 && item.getI7() <= 30.0) { + i7++; + } + if (item.getI8() > overlimit.getIharm8() && item.getI8() >= 0.0 && item.getI8() <= 30.0) { + i8++; + } + if (item.getI9() > overlimit.getIharm9() && item.getI9() >= 0.0 && item.getI9() <= 30.0) { + i9++; + } + if (item.getI10() > overlimit.getIharm10() && item.getI10() >= 0.0 && item.getI10() <= 30.0) { + i10++; + } + if (item.getI11() > overlimit.getIharm11() && item.getI11() >= 0.0 && item.getI11() <= 30.0) { + i11++; + } + if (item.getI12() > overlimit.getIharm12() && item.getI12() >= 0.0 && item.getI12() <= 30.0) { + i12++; + } + if (item.getI13() > overlimit.getIharm13() && item.getI13() >= 0.0 && item.getI13() <= 30.0) { + i13++; + } + if (item.getI14() > overlimit.getIharm14() && item.getI14() >= 0.0 && item.getI14() <= 30.0) { + i14++; + } + if (item.getI15() > overlimit.getIharm15() && item.getI15() >= 0.0 && item.getI15() <= 30.0) { + i15++; + } + if (item.getI16() > overlimit.getIharm16() && item.getI16() >= 0.0 && item.getI16() <= 30.0) { + i16++; + } + if (item.getI17() > overlimit.getIharm17() && item.getI17() >= 0.0 && item.getI17() <= 30.0) { + i17++; + } + if (item.getI18() > overlimit.getIharm18() && item.getI18() >= 0.0 && item.getI18() <= 30.0) { + i18++; + } + if (item.getI19() > overlimit.getIharm19() && item.getI19() >= 0.0 && item.getI19() <= 30.0) { + i19++; + } + if (item.getI20() > overlimit.getIharm20() && item.getI20() >= 0.0 && item.getI20() <= 30.0) { + i20++; + } + if (item.getI21() > overlimit.getIharm21() && item.getI21() >= 0.0 && item.getI21() <= 30.0) { + i21++; + } + if (item.getI22() > overlimit.getIharm22() && item.getI22() >= 0.0 && item.getI22() <= 30.0) { + i22++; + } + if (item.getI23() > overlimit.getIharm23() && item.getI23() >= 0.0 && item.getI23() <= 30.0) { + i23++; + } + if (item.getI24() > overlimit.getIharm24() && item.getI24() >= 0.0 && item.getI24() <= 30.0) { + i24++; + } + if (item.getI25() > overlimit.getIharm25() && item.getI25() >= 0.0 && item.getI25() <= 30.0) { + i25++; + } + } + } + //0.5-15.5次间谐波电压含有率 + if (!CollectionUtils.isEmpty(dataInHarmVPOList)) { + for (DataHarmDto item : dataInHarmVPOList) { + if (item.getV1() > overlimit.getInuharm1() && item.getV1() >= 0.0 && item.getV1() <= 30.0) { + uHarm1++; + } + if (item.getV2() > overlimit.getInuharm2() && item.getV2() >= 0.0 && item.getV2() <= 30.0) { + uHarm2++; + } + if (item.getV3() > overlimit.getInuharm3() && item.getV3() >= 0.0 && item.getV3() <= 30.0) { + uHarm3++; + } + if (item.getV4() > overlimit.getInuharm4() && item.getV4() >= 0.0 && item.getV4() <= 30.0) { + uHarm4++; + } + if (item.getV5() > overlimit.getInuharm5() && item.getV5() >= 0.0 && item.getV5() <= 30.0) { + uHarm5++; + } + if (item.getV6() > overlimit.getInuharm6() && item.getV6() >= 0.0 && item.getV6() <= 30.0) { + uHarm6++; + } + if (item.getV7() > overlimit.getInuharm7() && item.getV7() >= 0.0 && item.getV7() <= 30.0) { + uHarm7++; + } + if (item.getV8() > overlimit.getInuharm8() && item.getV8() >= 0.0 && item.getV8() <= 30.0) { + uHarm8++; + } + if (item.getV9() > overlimit.getInuharm9() && item.getV9() >= 0.0 && item.getV9() <= 30.0) { + uHarm9++; + } + if (item.getV10() > overlimit.getInuharm10() && item.getV10() >= 0.0 && item.getV10() <= 30.0) { + uHarm10++; + } + if (item.getV11() > overlimit.getInuharm11() && item.getV11() >= 0.0 && item.getV11() <= 30.0) { + uHarm11++; + } + if (item.getV12() > overlimit.getInuharm12() && item.getV12() >= 0.0 && item.getV12() <= 30.0) { + uHarm12++; + } + if (item.getV13() > overlimit.getInuharm13() && item.getV13() >= 0.0 && item.getV13() <= 30.0) { + uHarm13++; + } + if (item.getV14() > overlimit.getInuharm14() && item.getV14() >= 0.0 && item.getV14() <= 30.0) { + uHarm14++; + } + if (item.getV15() > overlimit.getInuharm15() && item.getV15() >= 0.0 && item.getV15() <= 30.0) { + uHarm15++; + } + if (item.getV16() > overlimit.getInuharm16() && item.getV16() >= 0.0 && item.getV16() <= 30.0) { + uHarm16++; + } + } + } + //电压总谐波畸变率 + if (!CollectionUtils.isEmpty(dataVPOList)) { + for (DataVDto item : dataVPOList) { + if (item.getVThd() > overlimit.getUaberrance() && item.getVThd() >= 0.0 && item.getVThd() <= 30.0) { + thd++; + } + } + } + //电压上偏差、电压下偏差(根据vl_dev的正负判断是用哪个值判断越限) + if (!CollectionUtils.isEmpty(dataVPODevList)) { + for (DataVDto item : dataVPODevList) { + + if (item.getVlDev() >= 0) { + if (item.getVlDev() > overlimit.getVoltageDev() && item.getVlDev() >= 0.0 && item.getVlDev() <= 20.0) { + uDev++; + } + } else { + if (Math.abs(item.getVuDev()) > Math.abs(overlimit.getUvoltageDev()) && Math.abs(item.getVuDev()) <= 20.0) { + uDev++; + } + } + } + } + //长时间闪变 + if (!CollectionUtils.isEmpty(dataPltPOList)) { + for (DataPltDto item : dataPltPOList) { + if (item.getPlt() > overlimit.getFlicker() && item.getPlt() >= 0 && item.getPlt() <= 20) { + flicker++; + } + } + } + DataLimitRateDto limitRate = new DataLimitRateDto(); + limitRate.setLineId(lineId); + limitRate.setTime(LocalDateTimeUtil.parseDate(dataDate, DatePattern.NORM_DATE_PATTERN)); + limitRate.setPhasicType(phasicType); + limitRate.setAllTime(allTime); + limitRate.setFlickerAllTime(flickerAllTime); + limitRate.setUaberranceOvertime(thd); + limitRate.setINegOvertime(0); + limitRate.setFreqDevOvertime(0); + limitRate.setUharm2Overtime(v2); + limitRate.setUharm3Overtime(v3); + limitRate.setUharm4Overtime(v4); + limitRate.setUharm5Overtime(v5); + limitRate.setUharm6Overtime(v6); + limitRate.setUharm7Overtime(v7); + limitRate.setUharm8Overtime(v8); + limitRate.setUharm9Overtime(v9); + limitRate.setUharm10Overtime(v10); + limitRate.setUharm11Overtime(v11); + limitRate.setUharm12Overtime(v12); + limitRate.setUharm13Overtime(v13); + limitRate.setUharm14Overtime(v14); + limitRate.setUharm15Overtime(v15); + limitRate.setUharm16Overtime(v16); + limitRate.setUharm17Overtime(v17); + limitRate.setUharm18Overtime(v18); + limitRate.setUharm19Overtime(v19); + limitRate.setUharm20Overtime(v20); + limitRate.setUharm21Overtime(v21); + limitRate.setUharm22Overtime(v22); + limitRate.setUharm23Overtime(v23); + limitRate.setUharm24Overtime(v24); + limitRate.setUharm25Overtime(v25); + limitRate.setIharm2Overtime(i2); + limitRate.setIharm3Overtime(i3); + limitRate.setIharm4Overtime(i4); + limitRate.setIharm5Overtime(i5); + limitRate.setIharm6Overtime(i6); + limitRate.setIharm7Overtime(i7); + limitRate.setIharm8Overtime(i8); + limitRate.setIharm9Overtime(i9); + limitRate.setIharm10Overtime(i10); + limitRate.setIharm11Overtime(i11); + limitRate.setIharm12Overtime(i12); + limitRate.setIharm13Overtime(i13); + limitRate.setIharm14Overtime(i14); + limitRate.setIharm15Overtime(i15); + limitRate.setIharm16Overtime(i16); + limitRate.setIharm17Overtime(i17); + limitRate.setIharm18Overtime(i18); + limitRate.setIharm19Overtime(i19); + limitRate.setIharm20Overtime(i20); + limitRate.setIharm21Overtime(i21); + limitRate.setIharm22Overtime(i22); + limitRate.setIharm23Overtime(i23); + limitRate.setIharm24Overtime(i24); + limitRate.setIharm25Overtime(i25); + limitRate.setInuharm1Overtime(uHarm1); + limitRate.setInuharm2Overtime(uHarm2); + limitRate.setInuharm3Overtime(uHarm3); + limitRate.setInuharm4Overtime(uHarm4); + limitRate.setInuharm5Overtime(uHarm5); + limitRate.setInuharm6Overtime(uHarm6); + limitRate.setInuharm7Overtime(uHarm7); + limitRate.setInuharm8Overtime(uHarm8); + limitRate.setInuharm9Overtime(uHarm9); + limitRate.setInuharm10Overtime(uHarm10); + limitRate.setInuharm11Overtime(uHarm11); + limitRate.setInuharm12Overtime(uHarm12); + limitRate.setInuharm13Overtime(uHarm13); + limitRate.setInuharm14Overtime(uHarm14); + limitRate.setInuharm15Overtime(uHarm15); + limitRate.setInuharm16Overtime(uHarm16); + limitRate.setUbalanceOvertime(0); + limitRate.setVoltageDevOvertime(uDev); + limitRate.setFlickerOvertime(flicker); + return limitRate; + } + + + public DataLimitRateDto limitRateDataT( + String dataDate, + Overlimit overlimit, + Integer allTime, + Integer flickerAllTime, + String lineId, + Map> map1, + Map> map2, + Map> map3, + Map> map4, + Map> map5, + Map> map6, + Map> map7, + Map> map8, + Map> map9) { + DataLimitRateDto limitRate = new DataLimitRateDto(); + int v2 = 0, v3 = 0, v4 = 0, v5 = 0, v6 = 0, v7 = 0, v8 = 0, v9 = 0, v10 = 0, v11 = 0, v12 = 0, v13 = 0, v14 = 0, v15 = 0, v16 = 0, v17 = 0, v18 = 0, v19 = 0, v20 = 0, v21 = 0, v22 = 0, v23 = 0, v24 = 0, v25 = 0; + int i2 = 0, i3 = 0, i4 = 0, i5 = 0, i6 = 0, i7 = 0, i8 = 0, i9 = 0, i10 = 0, i11 = 0, i12 = 0, i13 = 0, i14 = 0, i15 = 0, i16 = 0, i17 = 0, i18 = 0, i19 = 0, i20 = 0, i21 = 0, i22 = 0, i23 = 0, i24 = 0, i25 = 0; + int uHarm1 = 0, uHarm2 = 0, uHarm3 = 0, uHarm4 = 0, uHarm5 = 0, uHarm6 = 0, uHarm7 = 0, uHarm8 = 0, uHarm9 = 0, uHarm10 = 0, uHarm11 = 0, uHarm12 = 0, uHarm13 = 0, uHarm14 = 0, uHarm15 = 0, uHarm16 = 0; + int thd = 0, uDev = 0, flicker = 0, freqDev = 0, uAberrance = 0, iNeg = 0; + //2-25次谐波电压含有率 + for (String time : map1.keySet()) { + List list = map1.get(time); + List l2 = list.stream().filter(s -> s.getV2() > overlimit.getUharm2() && s.getV2() >= 0.0 && s.getV2() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l2)) { + v2++; + } + List l3 = list.stream().filter(s -> s.getV3() > overlimit.getUharm3() && s.getV3() >= 0.0 && s.getV3() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l3)) { + v3++; + } + List l4 = list.stream().filter(s -> s.getV4() > overlimit.getUharm4() && s.getV4() >= 0.0 && s.getV4() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l4)) { + v4++; + } + List l5 = list.stream().filter(s -> s.getV5() > overlimit.getUharm5() && s.getV5() >= 0.0 && s.getV5() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l5)) { + v5++; + } + List l6 = list.stream().filter(s -> s.getV6() > overlimit.getUharm6() && s.getV6() >= 0.0 && s.getV6() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l6)) { + v6++; + } + List l7 = list.stream().filter(s -> s.getV7() > overlimit.getUharm7() && s.getV7() >= 0.0 && s.getV7() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l7)) { + v7++; + } + List l8 = list.stream().filter(s -> s.getV8() > overlimit.getUharm8() && s.getV8() >= 0.0 && s.getV8() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l8)) { + v8++; + } + List l9 = list.stream().filter(s -> s.getV9() > overlimit.getUharm9() && s.getV9() >= 0.0 && s.getV9() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l9)) { + v9++; + } + List l10 = list.stream().filter(s -> s.getV10() > overlimit.getUharm10() && s.getV10() >= 0.0 && s.getV10() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l10)) { + v10++; + } + List l11 = list.stream().filter(s -> s.getV11() > overlimit.getUharm11() && s.getV11() >= 0.0 && s.getV11() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l11)) { + v11++; + } + List l12 = list.stream().filter(s -> s.getV12() > overlimit.getUharm12() && s.getV12() >= 0.0 && s.getV12() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l12)) { + v12++; + } + List l13 = list.stream().filter(s -> s.getV13() > overlimit.getUharm13() && s.getV13() >= 0.0 && s.getV13() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l13)) { + v13++; + } + List l14 = list.stream().filter(s -> s.getV14() > overlimit.getUharm14() && s.getV14() >= 0.0 && s.getV14() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l14)) { + v14++; + } + List l15 = list.stream().filter(s -> s.getV15() > overlimit.getUharm15() && s.getV15() >= 0.0 && s.getV15() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l15)) { + v15++; + } + List l16 = list.stream().filter(s -> s.getV16() > overlimit.getUharm16() && s.getV16() >= 0.0 && s.getV16() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l16)) { + v16++; + } + List l17 = list.stream().filter(s -> s.getV17() > overlimit.getUharm17() && s.getV17() >= 0.0 && s.getV17() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l17)) { + v17++; + } + List l18 = list.stream().filter(s -> s.getV18() > overlimit.getUharm18() && s.getV18() >= 0.0 && s.getV18() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l18)) { + v18++; + } + List l19 = list.stream().filter(s -> s.getV19() > overlimit.getUharm19() && s.getV19() >= 0.0 && s.getV19() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l19)) { + v19++; + } + List l20 = list.stream().filter(s -> s.getV20() > overlimit.getUharm20() && s.getV20() >= 0.0 && s.getV20() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l20)) { + v20++; + } + List l21 = list.stream().filter(s -> s.getV21() > overlimit.getUharm21() && s.getV21() >= 0.0 && s.getV21() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l21)) { + v21++; + } + List l22 = list.stream().filter(s -> s.getV22() > overlimit.getUharm22() && s.getV22() >= 0.0 && s.getV22() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l22)) { + v22++; + } + List l23 = list.stream().filter(s -> s.getV23() > overlimit.getUharm23() && s.getV23() >= 0.0 && s.getV23() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l23)) { + v23++; + } + List l24 = list.stream().filter(s -> s.getV24() > overlimit.getUharm24() && s.getV24() >= 0.0 && s.getV24() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l24)) { + v24++; + } + List l25 = list.stream().filter(s -> s.getV25() > overlimit.getUharm25() && s.getV25() >= 0.0 && s.getV25() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l25)) { + v25++; + } + } + //2-25次谐波电流 + for (String time : map2.keySet()) { + List list = map2.get(time); + List l2 = list.stream().filter(s -> s.getI2() > overlimit.getIharm2() && s.getI2() >= 0.0 && s.getI2() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l2)) { + i2++; + } + List l3 = list.stream().filter(s -> s.getI3() > overlimit.getIharm3() && s.getI3() >= 0.0 && s.getI3() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l3)) { + i3++; + } + List l4 = list.stream().filter(s -> s.getI4() > overlimit.getIharm4() && s.getI4() >= 0.0 && s.getI4() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l4)) { + i4++; + } + List l5 = list.stream().filter(s -> s.getI5() > overlimit.getIharm5() && s.getI5() >= 0.0 && s.getI5() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l5)) { + i5++; + } + List l6 = list.stream().filter(s -> s.getI6() > overlimit.getIharm6() && s.getI6() >= 0.0 && s.getI6() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l6)) { + i6++; + } + List l7 = list.stream().filter(s -> s.getI7() > overlimit.getIharm7() && s.getI7() >= 0.0 && s.getI7() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l7)) { + i7++; + } + List l8 = list.stream().filter(s -> s.getI8() > overlimit.getIharm8() && s.getI8() >= 0.0 && s.getI8() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l8)) { + i8++; + } + List l9 = list.stream().filter(s -> s.getI9() > overlimit.getIharm9() && s.getI9() >= 0.0 && s.getI9() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l9)) { + i9++; + } + List l10 = list.stream().filter(s -> s.getI10() > overlimit.getIharm10() && s.getI10() >= 0.0 && s.getI10() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l10)) { + i10++; + } + List l11 = list.stream().filter(s -> s.getI11() > overlimit.getIharm11() && s.getI11() >= 0.0 && s.getI11() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l11)) { + i11++; + } + List l12 = list.stream().filter(s -> s.getI12() > overlimit.getIharm12() && s.getI12() >= 0.0 && s.getI12() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l12)) { + i12++; + } + List l13 = list.stream().filter(s -> s.getI13() > overlimit.getIharm13() && s.getI13() >= 0.0 && s.getI13() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l13)) { + i13++; + } + List l14 = list.stream().filter(s -> s.getI14() > overlimit.getIharm14() && s.getI14() >= 0.0 && s.getI14() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l14)) { + i14++; + } + List l15 = list.stream().filter(s -> s.getI15() > overlimit.getIharm15() && s.getI15() >= 0.0 && s.getI15() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l15)) { + i15++; + } + List l16 = list.stream().filter(s -> s.getI16() > overlimit.getIharm16() && s.getI16() >= 0.0 && s.getI16() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l16)) { + i16++; + } + List l17 = list.stream().filter(s -> s.getI17() > overlimit.getIharm17() && s.getI17() >= 0.0 && s.getI17() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l17)) { + i17++; + } + List l18 = list.stream().filter(s -> s.getI18() > overlimit.getIharm18() && s.getI18() >= 0.0 && s.getI18() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l18)) { + i18++; + } + List l19 = list.stream().filter(s -> s.getI19() > overlimit.getIharm19() && s.getI19() >= 0.0 && s.getI19() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l19)) { + i19++; + } + List l20 = list.stream().filter(s -> s.getI20() > overlimit.getIharm20() && s.getI20() >= 0.0 && s.getI20() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l20)) { + i20++; + } + List l21 = list.stream().filter(s -> s.getI21() > overlimit.getIharm21() && s.getI21() >= 0.0 && s.getI21() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l21)) { + i21++; + } + List l22 = list.stream().filter(s -> s.getI22() > overlimit.getIharm22() && s.getI22() >= 0.0 && s.getI22() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l22)) { + i22++; + } + List l23 = list.stream().filter(s -> s.getI23() > overlimit.getIharm23() && s.getI23() >= 0.0 && s.getI23() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l23)) { + i23++; + } + List l24 = list.stream().filter(s -> s.getI24() > overlimit.getIharm24() && s.getI24() >= 0.0 && s.getI24() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l24)) { + i24++; + } + List l25 = list.stream().filter(s -> s.getI25() > overlimit.getIharm25() && s.getI25() >= 0.0 && s.getI25() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l25)) { + i25++; + } + } + //0.5-15.5次间谐波电压含有率 + for (String time : map3.keySet()) { + List list3 = map3.get(time); + List l2 = list3.stream().filter(s -> s.getV1() > overlimit.getInuharm1() && s.getV1() >= 0.0 && s.getV1() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l2)) { + uHarm1++; + } + List l3 = list3.stream().filter(s -> s.getV2() > overlimit.getInuharm2() && s.getV2() >= 0.0 && s.getV2() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l3)) { + uHarm2++; + } + List l4 = list3.stream().filter(s -> s.getV3() > overlimit.getInuharm3() && s.getV3() >= 0.0 && s.getV3() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l4)) { + uHarm3++; + } + List l5 = list3.stream().filter(s -> s.getV4() > overlimit.getInuharm4() && s.getV4() >= 0.0 && s.getV4() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l5)) { + uHarm4++; + } + List l6 = list3.stream().filter(s -> s.getV5() > overlimit.getInuharm5() && s.getV5() >= 0.0 && s.getV5() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l6)) { + uHarm5++; + } + List l7 = list3.stream().filter(s -> s.getV6() > overlimit.getInuharm6() && s.getV6() >= 0.0 && s.getV6() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l7)) { + uHarm6++; + } + List l8 = list3.stream().filter(s -> s.getV7() > overlimit.getInuharm7() && s.getV7() >= 0.0 && s.getV7() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l8)) { + uHarm7++; + } + List l9 = list3.stream().filter(s -> s.getV8() > overlimit.getInuharm8() && s.getV8() >= 0.0 && s.getV8() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l9)) { + uHarm8++; + } + List l10 = list3.stream().filter(s -> s.getV9() > overlimit.getInuharm9() && s.getV9() >= 0.0 && s.getV9() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l10)) { + uHarm9++; + } + List l11 = list3.stream().filter(s -> s.getV10() > overlimit.getInuharm10() && s.getV10() >= 0.0 && s.getV10() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l11)) { + uHarm10++; + } + List l12 = list3.stream().filter(s -> s.getV11() > overlimit.getInuharm11() && s.getV11() >= 0.0 && s.getV11() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l12)) { + uHarm11++; + } + List l13 = list3.stream().filter(s -> s.getV12() > overlimit.getInuharm12() && s.getV12() >= 0.0 && s.getV12() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l13)) { + uHarm12++; + } + List l14 = list3.stream().filter(s -> s.getV13() > overlimit.getInuharm13() && s.getV13() >= 0.0 && s.getV13() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l14)) { + uHarm13++; + } + List l15 = list3.stream().filter(s -> s.getV14() > overlimit.getInuharm14() && s.getV14() >= 0.0 && s.getV14() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l15)) { + uHarm14++; + } + List l16 = list3.stream().filter(s -> s.getV15() > overlimit.getInuharm15() && s.getV15() >= 0.0 && s.getV15() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l16)) { + uHarm15++; + } + List l17 = list3.stream().filter(s -> s.getV16() > overlimit.getInuharm16() && s.getV16() >= 0.0 && s.getV16() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l17)) { + uHarm16++; + } + } + //电压总谐波畸变率 + for (String time : map4.keySet()) { + List list = map4.get(time); + List l = list.stream().filter(s -> s.getVThd() > overlimit.getUaberrance() && s.getVThd() >= 0.0 && s.getVThd() <= 30.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l)) { + thd++; + } + } + //三相电压不平衡度 + for (String time : map5.keySet()) { + List list = map5.get(time); + List l = list.stream().filter(s -> s.getVUnbalance() > overlimit.getUbalance() && s.getVUnbalance() >= 0.0 && s.getVUnbalance() <= 40.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l)) { + uAberrance++; + } + } + //负序电流 + for (String time : map6.keySet()) { + List list = map6.get(time); + List l = list.stream().filter(s -> s.getINeg() > overlimit.getINeg()).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l)) { + iNeg++; + } + } + //频率偏差 + for (String time : map7.keySet()) { + List list = map7.get(time); + List l = list.stream().filter(s -> s.getFreqDev() > overlimit.getFreqDev() && Math.abs(s.getFreqDev()) <= 7.5).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l)) { + freqDev++; + } + } + //电压上偏差、电压下偏差 + for (String time : map8.keySet()) { + List list = map8.get(time); + List l1 = list.stream().filter(s -> s.getVlDev() >= 0.0 && s.getVlDev() <= 20.0 && s.getVlDev() > overlimit.getVoltageDev()).collect(Collectors.toList()); + List l2 = list.stream().filter(s -> s.getVuDev() >= -20.0 && s.getVuDev() <= 0.0 && Math.abs(s.getVuDev()) > Math.abs(overlimit.getUvoltageDev())).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l1) || !CollectionUtils.isEmpty(l2)) { + uDev++; + } + } + //长时间闪变 + for (String time : map9.keySet()) { + List list = map9.get(time); + List l = list.stream().filter(s -> s.getPlt() > overlimit.getFlicker() && s.getPlt() >= 0.0 && s.getPlt() <= 20.0).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(l)) { + flicker++; + } + } + limitRate.setLineId(lineId); + limitRate.setPhasicType("T"); + limitRate.setAllTime(allTime); + limitRate.setTime(LocalDateTimeUtil.parseDate(dataDate, DatePattern.NORM_DATE_PATTERN)); + limitRate.setFlickerAllTime(flickerAllTime); + limitRate.setUaberranceOvertime(thd); + limitRate.setINegOvertime(iNeg); + limitRate.setFreqDevOvertime(freqDev); + limitRate.setUharm2Overtime(v2); + limitRate.setUharm3Overtime(v3); + limitRate.setUharm4Overtime(v4); + limitRate.setUharm5Overtime(v5); + limitRate.setUharm6Overtime(v6); + limitRate.setUharm7Overtime(v7); + limitRate.setUharm8Overtime(v8); + limitRate.setUharm9Overtime(v9); + limitRate.setUharm10Overtime(v10); + limitRate.setUharm11Overtime(v11); + limitRate.setUharm12Overtime(v12); + limitRate.setUharm13Overtime(v13); + limitRate.setUharm14Overtime(v14); + limitRate.setUharm15Overtime(v15); + limitRate.setUharm16Overtime(v16); + limitRate.setUharm17Overtime(v17); + limitRate.setUharm18Overtime(v18); + limitRate.setUharm19Overtime(v19); + limitRate.setUharm20Overtime(v20); + limitRate.setUharm21Overtime(v21); + limitRate.setUharm22Overtime(v22); + limitRate.setUharm23Overtime(v23); + limitRate.setUharm24Overtime(v24); + limitRate.setUharm25Overtime(v25); + limitRate.setIharm2Overtime(i2); + limitRate.setIharm3Overtime(i3); + limitRate.setIharm4Overtime(i4); + limitRate.setIharm5Overtime(i5); + limitRate.setIharm6Overtime(i6); + limitRate.setIharm7Overtime(i7); + limitRate.setIharm8Overtime(i8); + limitRate.setIharm9Overtime(i9); + limitRate.setIharm10Overtime(i10); + limitRate.setIharm11Overtime(i11); + limitRate.setIharm12Overtime(i12); + limitRate.setIharm13Overtime(i13); + limitRate.setIharm14Overtime(i14); + limitRate.setIharm15Overtime(i15); + limitRate.setIharm16Overtime(i16); + limitRate.setIharm17Overtime(i17); + limitRate.setIharm18Overtime(i18); + limitRate.setIharm19Overtime(i19); + limitRate.setIharm20Overtime(i20); + limitRate.setIharm21Overtime(i21); + limitRate.setIharm22Overtime(i22); + limitRate.setIharm23Overtime(i23); + limitRate.setIharm24Overtime(i24); + limitRate.setIharm25Overtime(i25); + limitRate.setInuharm1Overtime(uHarm1); + limitRate.setInuharm2Overtime(uHarm2); + limitRate.setInuharm3Overtime(uHarm3); + limitRate.setInuharm4Overtime(uHarm4); + limitRate.setInuharm5Overtime(uHarm5); + limitRate.setInuharm6Overtime(uHarm6); + limitRate.setInuharm7Overtime(uHarm7); + limitRate.setInuharm8Overtime(uHarm8); + limitRate.setInuharm9Overtime(uHarm9); + limitRate.setInuharm10Overtime(uHarm10); + limitRate.setInuharm11Overtime(uHarm11); + limitRate.setInuharm12Overtime(uHarm12); + limitRate.setInuharm13Overtime(uHarm13); + limitRate.setInuharm14Overtime(uHarm14); + limitRate.setInuharm15Overtime(uHarm15); + limitRate.setInuharm16Overtime(uHarm16); + limitRate.setUbalanceOvertime(uAberrance); + limitRate.setVoltageDevOvertime(uDev); + limitRate.setFlickerOvertime(flicker); + return limitRate; + } + +} diff --git a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/param/LineCountEvaluateParam.java b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/param/LineCountEvaluateParam.java index e270ed1..7dc935e 100644 --- a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/param/LineCountEvaluateParam.java +++ b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/param/LineCountEvaluateParam.java @@ -3,7 +3,6 @@ package com.njcn.dataProcess.param; import lombok.Data; import java.io.Serializable; -import java.time.LocalDateTime; import java.util.List; import java.util.Map; @@ -26,6 +25,11 @@ public class LineCountEvaluateParam extends BaseParam implements Serializable { */ private String tableName; + /** + * 相别集合 + */ + private List phasicType; + /** * 异常数据时间集合 * Map> key:监测点id value:异常时间集合 diff --git a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/dto/DataLimitRateDto.java b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/dto/DataLimitRateDto.java new file mode 100644 index 0000000..5d14efa --- /dev/null +++ b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/dto/DataLimitRateDto.java @@ -0,0 +1,388 @@ +package com.njcn.dataProcess.pojo.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDate; + +/** + * @author web2023 + */ +@Data +public class DataLimitRateDto implements Serializable { + /** + * 监测点ID合格率的变电站/装置/母线/线路序号 + */ + private String lineId; + + /** + * 数据类型,’A’表示A相,’B’表示B相,’C’表示C相,’’M’表示ABC三项总和,T’表示总 + */ + private String phasicType; + + /** + * 合格率时间 + */ + + private LocalDate time; + + /** + * 总计算次数 + */ + private Integer allTime; + + /** + * 闪变越限次数 + */ + private Integer flickerOvertime; + + /** + * 闪变总计算次数 + */ + private Integer flickerAllTime; + + /** + * 频率偏差越限次数 + */ + private Integer freqDevOvertime; + + /** + * 电压偏差越限次数 + */ + private Integer voltageDevOvertime; + + /** + * 三相电压不平衡度越限次数 + */ + private Integer ubalanceOvertime; + + /** + * 电压谐波畸变率越限次数 + */ + private Integer uaberranceOvertime; + + /** + * 负序电流限值次数 + */ + private Integer iNegOvertime; + + /** + * 2次电压谐波含有率越限次数 + */ + private Integer uharm2Overtime; + + /** + * 3次电压谐波含有率越限次数 + */ + private Integer uharm3Overtime; + + /** + * 4次电压谐波含有率越限次数 + */ + private Integer uharm4Overtime; + + /** + * 5次电压谐波含有率越限次数 + */ + private Integer uharm5Overtime; + + /** + * 6次电压谐波含有率越限次数 + */ + private Integer uharm6Overtime; + + /** + * 7次电压谐波含有率越限次数 + */ + private Integer uharm7Overtime; + + /** + * 8次电压谐波含有率越限次数 + */ + private Integer uharm8Overtime; + + /** + * 9次电压谐波含有率越限次数 + */ + private Integer uharm9Overtime; + + /** + * 10次电压谐波含有率越限次数 + */ + private Integer uharm10Overtime; + + /** + * 11次电压谐波含有率越限次数 + */ + private Integer uharm11Overtime; + + /** + * 12次电压谐波含有率越限次数 + */ + private Integer uharm12Overtime; + + /** + * 13次电压谐波含有率越限次数 + */ + private Integer uharm13Overtime; + + /** + * 14次电压谐波含有率越限次数 + */ + private Integer uharm14Overtime; + + /** + * 15次电压谐波含有率越限次数 + */ + private Integer uharm15Overtime; + + /** + * 16次电压谐波含有率越限次数 + */ + private Integer uharm16Overtime; + + /** + * 17次电压谐波含有率越限次数 + */ + private Integer uharm17Overtime; + + /** + * 18次电压谐波含有率越限次数 + */ + private Integer uharm18Overtime; + + /** + * 19次电压谐波含有率越限次数 + */ + private Integer uharm19Overtime; + + /** + * 20次电压谐波含有率越限次数 + */ + private Integer uharm20Overtime; + + /** + * 21次电压谐波含有率越限次数 + */ + private Integer uharm21Overtime; + + /** + * 22次电压谐波含有率越限次数 + */ + private Integer uharm22Overtime; + + /** + * 23次电压谐波含有率越限次数 + */ + private Integer uharm23Overtime; + + /** + * 24次电压谐波含有率越限次数 + */ + private Integer uharm24Overtime; + + /** + * 25次电压谐波含有率越限次数 + */ + private Integer uharm25Overtime; + + /** + * 2次电流谐波幅值越限次数 + */ + private Integer iharm2Overtime; + + /** + * 3次电流谐波幅值越限次数 + */ + private Integer iharm3Overtime; + + /** + * 4次电流谐波幅值越限次数 + */ + private Integer iharm4Overtime; + + /** + * 5次电流谐波幅值越限次数 + */ + private Integer iharm5Overtime; + + /** + * 6次电流谐波幅值越限次数 + */ + private Integer iharm6Overtime; + + /** + * 7次电流谐波幅值越限次数 + */ + private Integer iharm7Overtime; + + /** + * 8次电流谐波幅值越限次数 + */ + private Integer iharm8Overtime; + + /** + * 9次电流谐波幅值越限次数 + */ + private Integer iharm9Overtime; + + /** + * 10次电流谐波幅值越限次数 + */ + private Integer iharm10Overtime; + + /** + * 11次电流谐波幅值越限次数 + */ + private Integer iharm11Overtime; + + /** + * 12次电流谐波幅值越限次数 + */ + private Integer iharm12Overtime; + + /** + * 13次电流谐波幅值越限次数 + */ + private Integer iharm13Overtime; + + /** + * 14次电流谐波幅值越限次数 + */ + private Integer iharm14Overtime; + + /** + * 15次电流谐波幅值越限次数 + */ + private Integer iharm15Overtime; + + /** + * 16次电流谐波幅值越限次数 + */ + private Integer iharm16Overtime; + + /** + * 17次电流谐波幅值越限次数 + */ + private Integer iharm17Overtime; + + /** + * 18次电流谐波幅值越限次数 + */ + private Integer iharm18Overtime; + + /** + * 19次电流谐波幅值越限次数 + */ + private Integer iharm19Overtime; + + /** + * 20次电流谐波幅值越限次数 + */ + private Integer iharm20Overtime; + + /** + * 21次电流谐波幅值越限次数 + */ + private Integer iharm21Overtime; + + /** + * 22次电流谐波幅值越限次数 + */ + private Integer iharm22Overtime; + + /** + * 23次电流谐波幅值越限次数 + */ + private Integer iharm23Overtime; + + /** + * 24次电流谐波幅值越限次数 + */ + private Integer iharm24Overtime; + + /** + * 25次电流谐波幅值越限次数 + */ + private Integer iharm25Overtime; + + /** + * 0.5次间谐波电压限值次数 + */ + private Integer inuharm1Overtime; + + /** + * 1.5次间谐波电压限值次数 + */ + private Integer inuharm2Overtime; + + /** + * 2.5次间谐波电压限值次数 + */ + private Integer inuharm3Overtime; + + /** + * 3.5次间谐波电压限值次数 + */ + private Integer inuharm4Overtime; + + /** + * 4.5次间谐波电压限值次数 + */ + private Integer inuharm5Overtime; + + /** + * 5.5次间谐波电压限值次数 + */ + private Integer inuharm6Overtime; + + /** + * 6.5次间谐波电压限值次数 + */ + private Integer inuharm7Overtime; + + /** + * 7.5次间谐波电压限值次数 + */ + private Integer inuharm8Overtime; + + /** + * 8.5次间谐波电压限值次数 + */ + private Integer inuharm9Overtime; + + /** + * 9.5次间谐波电压限值次数 + */ + private Integer inuharm10Overtime; + + /** + * 10.5次间谐波电压限值次数 + */ + private Integer inuharm11Overtime; + + /** + * 11.5次间谐波电压限值次数 + */ + private Integer inuharm12Overtime; + + /** + * 12.5次间谐波电压限值次数 + */ + private Integer inuharm13Overtime; + + /** + * 13.5次间谐波电压限值次数 + */ + private Integer inuharm14Overtime; + + /** + * 14.5次间谐波电压限值次数 + */ + private Integer inuharm15Overtime; + + /** + * 15.5次间谐波电压限值次数 + */ + private Integer inuharm16Overtime; +} diff --git a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/po/RStatLimitRateD.java b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/po/RStatLimitRateD.java new file mode 100644 index 0000000..79eeec8 --- /dev/null +++ b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/pojo/po/RStatLimitRateD.java @@ -0,0 +1,468 @@ +package com.njcn.dataProcess.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.github.jeffreyning.mybatisplus.anno.MppMultiId; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDate; + +@Data +@TableName(value = "r_stat_limit_rate_d") +public class RStatLimitRateD implements Serializable { + /** + * 监测点ID合格率的变电站/装置/母线/线路序号 + */ + @MppMultiId + @TableField(value = "my_index") + private String lineId; + + /** + * 数据类型,’A’表示A相,’B’表示B相,’C’表示C相,’’M’表示ABC三项总和,T’表示总 + */ + @MppMultiId + @TableField(value = "phasic_type") + private String phasicType; + + /** + * 合格率时间 + */ + @MppMultiId + @TableField(value = "time_id") + @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8") + private LocalDate time; + + /** + * 总计算次数 + */ + @TableField(value = "all_time") + private Integer allTime; + + /** + * 闪变越限次数 + */ + @TableField(value = "flicker_overtime") + private Integer flickerOvertime; + + /** + * 闪变总计算次数 + */ + @TableField(value = "flicker_all_time") + private Integer flickerAllTime; + + /** + * 频率偏差越限次数 + */ + @TableField(value = "freq_dev_overtime") + private Integer freqDevOvertime; + + /** + * 电压偏差越限次数 + */ + @TableField(value = "voltage_dev_overtime") + private Integer voltageDevOvertime; + + /** + * 三相电压不平衡度越限次数 + */ + @TableField(value = "ubalance_overtime") + private Integer ubalanceOvertime; + + /** + * 电压谐波畸变率越限次数 + */ + @TableField(value = "uaberrance_overtime") + private Integer uaberranceOvertime; + + /** + * 负序电流限值次数 + */ + @TableField(value = "i_neg_overtime") + private Integer iNegOvertime; + + /** + * 2次电压谐波含有率越限次数 + */ + @TableField(value = "uharm_2_overtime") + private Integer uharm2Overtime; + + /** + * 3次电压谐波含有率越限次数 + */ + @TableField(value = "uharm_3_overtime") + private Integer uharm3Overtime; + + /** + * 4次电压谐波含有率越限次数 + */ + @TableField(value = "uharm_4_overtime") + private Integer uharm4Overtime; + + /** + * 5次电压谐波含有率越限次数 + */ + @TableField(value = "uharm_5_overtime") + private Integer uharm5Overtime; + + /** + * 6次电压谐波含有率越限次数 + */ + @TableField(value = "uharm_6_overtime") + private Integer uharm6Overtime; + + /** + * 7次电压谐波含有率越限次数 + */ + @TableField(value = "uharm_7_overtime") + private Integer uharm7Overtime; + + /** + * 8次电压谐波含有率越限次数 + */ + @TableField(value = "uharm_8_overtime") + private Integer uharm8Overtime; + + /** + * 9次电压谐波含有率越限次数 + */ + @TableField(value = "uharm_9_overtime") + private Integer uharm9Overtime; + + /** + * 10次电压谐波含有率越限次数 + */ + @TableField(value = "uharm_10_overtime") + private Integer uharm10Overtime; + + /** + * 11次电压谐波含有率越限次数 + */ + @TableField(value = "uharm_11_overtime") + private Integer uharm11Overtime; + + /** + * 12次电压谐波含有率越限次数 + */ + @TableField(value = "uharm_12_overtime") + private Integer uharm12Overtime; + + /** + * 13次电压谐波含有率越限次数 + */ + @TableField(value = "uharm_13_overtime") + private Integer uharm13Overtime; + + /** + * 14次电压谐波含有率越限次数 + */ + @TableField(value = "uharm_14_overtime") + private Integer uharm14Overtime; + + /** + * 15次电压谐波含有率越限次数 + */ + @TableField(value = "uharm_15_overtime") + private Integer uharm15Overtime; + + /** + * 16次电压谐波含有率越限次数 + */ + @TableField(value = "uharm_16_overtime") + private Integer uharm16Overtime; + + /** + * 17次电压谐波含有率越限次数 + */ + @TableField(value = "uharm_17_overtime") + private Integer uharm17Overtime; + + /** + * 18次电压谐波含有率越限次数 + */ + @TableField(value = "uharm_18_overtime") + private Integer uharm18Overtime; + + /** + * 19次电压谐波含有率越限次数 + */ + @TableField(value = "uharm_19_overtime") + private Integer uharm19Overtime; + + /** + * 20次电压谐波含有率越限次数 + */ + @TableField(value = "uharm_20_overtime") + private Integer uharm20Overtime; + + /** + * 21次电压谐波含有率越限次数 + */ + @TableField(value = "uharm_21_overtime") + private Integer uharm21Overtime; + + /** + * 22次电压谐波含有率越限次数 + */ + @TableField(value = "uharm_22_overtime") + private Integer uharm22Overtime; + + /** + * 23次电压谐波含有率越限次数 + */ + @TableField(value = "uharm_23_overtime") + private Integer uharm23Overtime; + + /** + * 24次电压谐波含有率越限次数 + */ + @TableField(value = "uharm_24_overtime") + private Integer uharm24Overtime; + + /** + * 25次电压谐波含有率越限次数 + */ + @TableField(value = "uharm_25_overtime") + private Integer uharm25Overtime; + + /** + * 2次电流谐波幅值越限次数 + */ + @TableField(value = "iharm_2_overtime") + private Integer iharm2Overtime; + + /** + * 3次电流谐波幅值越限次数 + */ + @TableField(value = "iharm_3_overtime") + private Integer iharm3Overtime; + + /** + * 4次电流谐波幅值越限次数 + */ + @TableField(value = "iharm_4_overtime") + private Integer iharm4Overtime; + + /** + * 5次电流谐波幅值越限次数 + */ + @TableField(value = "iharm_5_overtime") + private Integer iharm5Overtime; + + /** + * 6次电流谐波幅值越限次数 + */ + @TableField(value = "iharm_6_overtime") + private Integer iharm6Overtime; + + /** + * 7次电流谐波幅值越限次数 + */ + @TableField(value = "iharm_7_overtime") + private Integer iharm7Overtime; + + /** + * 8次电流谐波幅值越限次数 + */ + @TableField(value = "iharm_8_overtime") + private Integer iharm8Overtime; + + /** + * 9次电流谐波幅值越限次数 + */ + @TableField(value = "iharm_9_overtime") + private Integer iharm9Overtime; + + /** + * 10次电流谐波幅值越限次数 + */ + @TableField(value = "iharm_10_overtime") + private Integer iharm10Overtime; + + /** + * 11次电流谐波幅值越限次数 + */ + @TableField(value = "iharm_11_overtime") + private Integer iharm11Overtime; + + /** + * 12次电流谐波幅值越限次数 + */ + @TableField(value = "iharm_12_overtime") + private Integer iharm12Overtime; + + /** + * 13次电流谐波幅值越限次数 + */ + @TableField(value = "iharm_13_overtime") + private Integer iharm13Overtime; + + /** + * 14次电流谐波幅值越限次数 + */ + @TableField(value = "iharm_14_overtime") + private Integer iharm14Overtime; + + /** + * 15次电流谐波幅值越限次数 + */ + @TableField(value = "iharm_15_overtime") + private Integer iharm15Overtime; + + /** + * 16次电流谐波幅值越限次数 + */ + @TableField(value = "iharm_16_overtime") + private Integer iharm16Overtime; + + /** + * 17次电流谐波幅值越限次数 + */ + @TableField(value = "iharm_17_overtime") + private Integer iharm17Overtime; + + /** + * 18次电流谐波幅值越限次数 + */ + @TableField(value = "iharm_18_overtime") + private Integer iharm18Overtime; + + /** + * 19次电流谐波幅值越限次数 + */ + @TableField(value = "iharm_19_overtime") + private Integer iharm19Overtime; + + /** + * 20次电流谐波幅值越限次数 + */ + @TableField(value = "iharm_20_overtime") + private Integer iharm20Overtime; + + /** + * 21次电流谐波幅值越限次数 + */ + @TableField(value = "iharm_21_overtime") + private Integer iharm21Overtime; + + /** + * 22次电流谐波幅值越限次数 + */ + @TableField(value = "iharm_22_overtime") + private Integer iharm22Overtime; + + /** + * 23次电流谐波幅值越限次数 + */ + @TableField(value = "iharm_23_overtime") + private Integer iharm23Overtime; + + /** + * 24次电流谐波幅值越限次数 + */ + @TableField(value = "iharm_24_overtime") + private Integer iharm24Overtime; + + /** + * 25次电流谐波幅值越限次数 + */ + @TableField(value = "iharm_25_overtime") + private Integer iharm25Overtime; + + /** + * 0.5次间谐波电压限值次数 + */ + @TableField(value = "inuharm_1_overtime") + private Integer inuharm1Overtime; + + /** + * 1.5次间谐波电压限值次数 + */ + @TableField(value = "inuharm_2_overtime") + private Integer inuharm2Overtime; + + /** + * 2.5次间谐波电压限值次数 + */ + @TableField(value = "inuharm_3_overtime") + private Integer inuharm3Overtime; + + /** + * 3.5次间谐波电压限值次数 + */ + @TableField(value = "inuharm_4_overtime") + private Integer inuharm4Overtime; + + /** + * 4.5次间谐波电压限值次数 + */ + @TableField(value = "inuharm_5_overtime") + private Integer inuharm5Overtime; + + /** + * 5.5次间谐波电压限值次数 + */ + @TableField(value = "inuharm_6_overtime") + private Integer inuharm6Overtime; + + /** + * 6.5次间谐波电压限值次数 + */ + @TableField(value = "inuharm_7_overtime") + private Integer inuharm7Overtime; + + /** + * 7.5次间谐波电压限值次数 + */ + @TableField(value = "inuharm_8_overtime") + private Integer inuharm8Overtime; + + /** + * 8.5次间谐波电压限值次数 + */ + @TableField(value = "inuharm_9_overtime") + private Integer inuharm9Overtime; + + /** + * 9.5次间谐波电压限值次数 + */ + @TableField(value = "inuharm_10_overtime") + private Integer inuharm10Overtime; + + /** + * 10.5次间谐波电压限值次数 + */ + @TableField(value = "inuharm_11_overtime") + private Integer inuharm11Overtime; + + /** + * 11.5次间谐波电压限值次数 + */ + @TableField(value = "inuharm_12_overtime") + private Integer inuharm12Overtime; + + /** + * 12.5次间谐波电压限值次数 + */ + @TableField(value = "inuharm_13_overtime") + private Integer inuharm13Overtime; + + /** + * 13.5次间谐波电压限值次数 + */ + @TableField(value = "inuharm_14_overtime") + private Integer inuharm14Overtime; + + /** + * 14.5次间谐波电压限值次数 + */ + @TableField(value = "inuharm_15_overtime") + private Integer inuharm15Overtime; + + /** + * 15.5次间谐波电压限值次数 + */ + @TableField(value = "inuharm_16_overtime") + private Integer inuharm16Overtime; +} diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataLimitRateController.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataLimitRateController.java new file mode 100644 index 0000000..4cd7fe2 --- /dev/null +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataLimitRateController.java @@ -0,0 +1,64 @@ +package com.njcn.dataProcess.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.OperateType; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.dataProcess.annotation.InsertBean; +import com.njcn.dataProcess.annotation.QueryBean; +import com.njcn.dataProcess.dto.DataVDTO; +import com.njcn.dataProcess.dto.DataVFiveItemDTO; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.CommonMinuteDto; +import com.njcn.dataProcess.pojo.dto.DataLimitRateDto; +import com.njcn.dataProcess.pojo.dto.DataVCvtDto; +import com.njcn.dataProcess.pojo.dto.DataVDto; +import com.njcn.dataProcess.pojo.po.RStatLimitRateD; +import com.njcn.dataProcess.service.IDataV; +import com.njcn.dataProcess.service.ILimitRateService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Controller; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.Map; + +/** + * @author hongawen + * @version 1.0 + * @data 2024/11/6 19:48 + */ +@Validated +@Slf4j +@Controller +@RestController +@RequestMapping("/dataV") +@Api(tags = "电压类数据获取") +public class DataLimitRateController extends BaseController { + + @QueryBean + private ILimitRateService limitRateQuery; + + @InsertBean + private ILimitRateService limitRateInsert; + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD) + @PostMapping("/batchInsertion") + @ApiOperation("批量插入") + public HttpResult batchInsertion(@RequestBody List dataVDTOList) { + String methodDescribe = getMethodDescribe("batchInsertion"); + limitRateInsert.batchInsertion(dataVDTOList); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + +} diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/dao/imapper/DataLimitRateMapper.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/dao/imapper/DataLimitRateMapper.java new file mode 100644 index 0000000..e990b9b --- /dev/null +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/dao/imapper/DataLimitRateMapper.java @@ -0,0 +1,17 @@ +package com.njcn.dataProcess.dao.imapper; + +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.dataProcess.pojo.dto.DataLimitRateDto; + + +/** + *

+ * Mapper 接口 + *

+ * @author web2023 + */ +public interface DataLimitRateMapper extends MppBaseMapper { + + + +} diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/dao/relation/mapper/RStatLimitRateRelationMapper.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/dao/relation/mapper/RStatLimitRateRelationMapper.java new file mode 100644 index 0000000..819f8ce --- /dev/null +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/dao/relation/mapper/RStatLimitRateRelationMapper.java @@ -0,0 +1,17 @@ +package com.njcn.dataProcess.dao.relation.mapper; + +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.dataProcess.pojo.po.RStatLimitRateD; + + +/** + *

+ * Mapper 接口 + *

+ * @author web2023 + */ +public interface RStatLimitRateRelationMapper extends MppBaseMapper { + + + +} diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/ILimitRateService.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/ILimitRateService.java new file mode 100644 index 0000000..741edea --- /dev/null +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/ILimitRateService.java @@ -0,0 +1,22 @@ +package com.njcn.dataProcess.service; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.dataProcess.pojo.dto.DataLimitRateDto; +import com.njcn.dataProcess.pojo.po.RStatLimitRateD; + +import java.util.List; + + +/** + * @Description: + * @Author: wr + * @Date: 2025/3/6 10:22 + */ +public interface ILimitRateService extends IMppService { + + /** + * 批量插入数据 + * @param dataVDTOList + */ + void batchInsertion(List dataVDTOList); +} diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataHarmRateVImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataHarmRateVImpl.java index 695ef4a..8a046f3 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataHarmRateVImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataHarmRateVImpl.java @@ -1,5 +1,6 @@ package com.njcn.dataProcess.service.impl.influxdb; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.common.utils.HarmonicTimesUtil; @@ -45,7 +46,7 @@ public class InfluxdbDataHarmRateVImpl extends MppServiceImpl getRawData(LineCountEvaluateParam lineParam) { List result = new ArrayList<>(); - List list = getMinuteData(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(), lineParam.getAbnormalTime()); + List list = getMinuteData(lineParam); list.forEach(item->{ DataHarmDto dto = new DataHarmDto(); BeanUtils.copyProperties(item,dto); @@ -77,7 +78,7 @@ public class InfluxdbDataHarmRateVImpl extends MppServiceImpl getBaseData(LineCountEvaluateParam lineParam) { List result = new ArrayList<>(); - List data = getMinuteData(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(),lineParam.getAbnormalTime()); + List data = getMinuteData(lineParam); if (CollectionUtil.isNotEmpty(data)) { String time = TimeUtils.StringTimeToString(lineParam.getStartTime()); //以监测点分组 @@ -190,23 +191,26 @@ public class InfluxdbDataHarmRateVImpl extends MppServiceImpl getMinuteData(List lineList, String startTime, String endTime, Map> timeMap) { + public List getMinuteData(LineCountEvaluateParam lineParam) { List result = new ArrayList<>(); InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmrateV.class); influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); - influxQueryWrapper.regular(DataHarmrateV::getLineId, lineList) + influxQueryWrapper.regular(DataHarmrateV::getLineId, lineParam.getLineId()) .select(DataHarmrateV::getLineId) .select(DataHarmrateV::getPhasicType) .select(DataHarmrateV::getValueType) .select(DataHarmrateV::getQualityFlag) - .between(DataHarmrateV::getTime, startTime, endTime) + .between(DataHarmrateV::getTime, lineParam.getStartTime(), lineParam.getEndTime()) .eq(DataHarmrateV::getQualityFlag,"0"); + if(CollUtil.isNotEmpty(lineParam.getPhasicType())){ + influxQueryWrapper.regular(DataV::getPhasicType,lineParam.getPhasicType()); + } List list = dataHarmRateVMapper.selectByQueryWrapper(influxQueryWrapper); Map> lineMap = list.stream().collect(Collectors.groupingBy(DataHarmrateV::getLineId)); //有异常数据 - if (CollectionUtil.isNotEmpty(timeMap)) { + if (CollectionUtil.isNotEmpty(lineParam.getAbnormalTime())) { lineMap.forEach((k,v)->{ - List timeList = timeMap.get(k); + List timeList = lineParam.getAbnormalTime().get(k); //有异常数据,当前监测点自身的异常数据 if (CollectionUtil.isNotEmpty(timeList)) { List filterList = v.stream().filter(item -> !timeList.contains(DATE_TIME_FORMATTER.format(item.getTime()))).collect(Collectors.toList()); diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataIImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataIImpl.java index 63833f1..99705b6 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataIImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataIImpl.java @@ -1,5 +1,6 @@ package com.njcn.dataProcess.service.impl.influxdb; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.common.utils.HarmonicTimesUtil; @@ -8,6 +9,7 @@ import com.njcn.dataProcess.dao.relation.mapper.RStatDataIRelationMapper; import com.njcn.dataProcess.dto.DataIDTO; import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.po.influx.DataI; +import com.njcn.dataProcess.po.influx.DataV; import com.njcn.dataProcess.pojo.dto.CommonMinuteDto; import com.njcn.dataProcess.pojo.dto.DataIDto; import com.njcn.dataProcess.pojo.po.RStatDataID; @@ -65,7 +67,7 @@ public class InfluxdbDataIImpl extends MppServiceImpl getRawData(LineCountEvaluateParam lineParam) { List result = new ArrayList<>(); - List list = getMinuteDataI(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(), lineParam.getAbnormalTime()); + List list = getMinuteDataI(lineParam); list.forEach(item->{ DataIDto dto = new DataIDto(); BeanUtils.copyProperties(item,dto); @@ -78,7 +80,7 @@ public class InfluxdbDataIImpl extends MppServiceImpl getBaseData(LineCountEvaluateParam lineParam) { List result = new ArrayList<>(); - List dataIList = getMinuteDataI(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(),lineParam.getAbnormalTime()); + List dataIList = getMinuteDataI(lineParam); if (CollectionUtil.isNotEmpty(dataIList)) { String time = TimeUtils.StringTimeToString(lineParam.getStartTime()); //以监测点分组 @@ -192,11 +194,11 @@ public class InfluxdbDataIImpl extends MppServiceImpl getMinuteDataI(List lineList, String startTime, String endTime, Map> timeMap) { + public List getMinuteDataI(LineCountEvaluateParam lineParam) { List result = new ArrayList<>(); InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataI.class); influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); - influxQueryWrapper.regular(DataI::getLineId, lineList) + influxQueryWrapper.regular(DataI::getLineId, lineParam.getLineId()) .select(DataI::getLineId) .select(DataI::getPhasicType) .select(DataI::getValueType) @@ -207,14 +209,17 @@ public class InfluxdbDataIImpl extends MppServiceImpl list = dataIMapper.selectByQueryWrapper(influxQueryWrapper); Map> lineMap = list.stream().collect(Collectors.groupingBy(DataI::getLineId)); //有异常数据 - if (CollectionUtil.isNotEmpty(timeMap)) { + if (CollectionUtil.isNotEmpty(lineParam.getAbnormalTime())) { lineMap.forEach((k,v)->{ - List timeList = timeMap.get(k); + List timeList = lineParam.getAbnormalTime().get(k); //有异常数据,当前监测点自身的异常数据 if (CollectionUtil.isNotEmpty(timeList)) { List filterList = v.stream().filter(item -> !timeList.contains(DATE_TIME_FORMATTER.format(item.getTime()))).collect(Collectors.toList()); diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataInharmVImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataInharmVImpl.java index 14d3ea1..b33ea97 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataInharmVImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataInharmVImpl.java @@ -1,5 +1,6 @@ package com.njcn.dataProcess.service.impl.influxdb; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.common.utils.HarmonicTimesUtil; @@ -9,6 +10,7 @@ import com.njcn.dataProcess.dto.DataInharmVDTO; import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.po.influx.DataI; import com.njcn.dataProcess.po.influx.DataInharmV; +import com.njcn.dataProcess.po.influx.DataV; import com.njcn.dataProcess.pojo.dto.CommonMinuteDto; import com.njcn.dataProcess.pojo.dto.DataHarmDto; import com.njcn.dataProcess.pojo.dto.DataInHarmVDto; @@ -68,7 +70,7 @@ public class InfluxdbDataInharmVImpl extends MppServiceImpl getRawData(LineCountEvaluateParam lineParam) { List result = new ArrayList<>(); - List list = getMinuteData(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(), lineParam.getAbnormalTime()); + List list = getMinuteData(lineParam); list.forEach(item->{ DataHarmDto dto = new DataHarmDto(); BeanUtils.copyProperties(item,dto); @@ -81,7 +83,7 @@ public class InfluxdbDataInharmVImpl extends MppServiceImpl getBaseData(LineCountEvaluateParam lineParam) { List result = new ArrayList<>(); - List data = getMinuteData(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(),lineParam.getAbnormalTime()); + List data = getMinuteData(lineParam); if (CollectionUtil.isNotEmpty(data)) { String time = TimeUtils.StringTimeToString(lineParam.getStartTime()); //以监测点分组 @@ -187,23 +189,26 @@ public class InfluxdbDataInharmVImpl extends MppServiceImpl getMinuteData(List lineList, String startTime, String endTime, Map> timeMap) { + public List getMinuteData(LineCountEvaluateParam lineParam) { List result = new ArrayList<>(); InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataInharmV.class); influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); - influxQueryWrapper.regular(DataInharmV::getLineId, lineList) + influxQueryWrapper.regular(DataInharmV::getLineId, lineParam.getLineId()) .select(DataInharmV::getLineId) .select(DataInharmV::getPhasicType) .select(DataInharmV::getValueType) .select(DataInharmV::getQualityFlag) - .between(DataI::getTime, startTime, endTime) + .between(DataI::getTime, lineParam.getStartTime(), lineParam.getEndTime()) .eq(DataI::getQualityFlag,"0"); + if(CollUtil.isNotEmpty(lineParam.getPhasicType())){ + influxQueryWrapper.regular(DataV::getPhasicType,lineParam.getPhasicType()); + } List list = dataInharmVMapper.selectByQueryWrapper(influxQueryWrapper); Map> lineMap = list.stream().collect(Collectors.groupingBy(DataInharmV::getLineId)); //有异常数据 - if (CollectionUtil.isNotEmpty(timeMap)) { + if (CollectionUtil.isNotEmpty(lineParam.getAbnormalTime())) { lineMap.forEach((k,v)->{ - List timeList = timeMap.get(k); + List timeList = lineParam.getAbnormalTime().get(k); //有异常数据,当前监测点自身的异常数据 if (CollectionUtil.isNotEmpty(timeList)) { List filterList = v.stream().filter(item -> !timeList.contains(DATE_TIME_FORMATTER.format(item.getTime()))).collect(Collectors.toList()); diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPltImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPltImpl.java index 2184c55..4ebb76a 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPltImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPltImpl.java @@ -1,5 +1,6 @@ package com.njcn.dataProcess.service.impl.influxdb; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.dataProcess.dao.imapper.DataPltMapper; @@ -7,6 +8,7 @@ import com.njcn.dataProcess.dao.relation.mapper.RStatDataPltRelationMapper; import com.njcn.dataProcess.dto.DataPltDTO; import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.po.influx.DataPlt; +import com.njcn.dataProcess.po.influx.DataV; import com.njcn.dataProcess.pojo.dto.CommonMinuteDto; import com.njcn.dataProcess.pojo.dto.DataPltDto; import com.njcn.dataProcess.pojo.po.RStatDataPltD; @@ -60,7 +62,7 @@ public class InfluxdbDataPltImpl extends MppServiceImpl getRawData(LineCountEvaluateParam lineParam) { List result = new ArrayList<>(); - List list = getMinuteDataPlt(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(), lineParam.getAbnormalTime()); + List list = getMinuteDataPlt(lineParam); list.forEach(item->{ DataPltDto dto = new DataPltDto(); BeanUtils.copyProperties(item,dto); @@ -73,7 +75,7 @@ public class InfluxdbDataPltImpl extends MppServiceImpl getBaseData(LineCountEvaluateParam lineParam) { List result = new ArrayList<>(); - List data = getMinuteDataPlt(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(),lineParam.getAbnormalTime()); + List data = getMinuteDataPlt(lineParam); if (CollectionUtil.isNotEmpty(data)) { String time = TimeUtils.StringTimeToString(lineParam.getStartTime()); //以监测点分组 @@ -124,22 +126,25 @@ public class InfluxdbDataPltImpl extends MppServiceImpl getMinuteDataPlt(List lineList, String startTime, String endTime, Map> timeMap) { + public List getMinuteDataPlt(LineCountEvaluateParam lineParam) { List result = new ArrayList<>(); InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataPlt.class); - influxQueryWrapper.regular(DataPlt::getLineId, lineList) + influxQueryWrapper.regular(DataPlt::getLineId, lineParam.getLineId()) .select(DataPlt::getLineId) .select(DataPlt::getPhasicType) .select(DataPlt::getPlt) .select(DataPlt::getQualityFlag) - .between(DataPlt::getTime, startTime, endTime) + .between(DataPlt::getTime, lineParam.getStartTime(), lineParam.getEndTime()) .eq(DataPlt::getQualityFlag,"0"); + if(CollUtil.isNotEmpty(lineParam.getPhasicType())){ + influxQueryWrapper.regular(DataV::getPhasicType,lineParam.getPhasicType()); + } List list = dataPltMapper.selectByQueryWrapper(influxQueryWrapper); Map> lineMap = list.stream().collect(Collectors.groupingBy(DataPlt::getLineId)); //有异常数据 - if (CollectionUtil.isNotEmpty(timeMap)) { + if (CollectionUtil.isNotEmpty(lineParam.getAbnormalTime())) { lineMap.forEach((k,v)->{ - List timeList = timeMap.get(k); + List timeList = lineParam.getAbnormalTime().get(k); //有异常数据,当前监测点自身的异常数据 if (CollectionUtil.isNotEmpty(timeList)) { List filterList = v.stream().filter(item -> !timeList.contains(DATE_TIME_FORMATTER.format(item.getTime()))).collect(Collectors.toList()); diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataVImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataVImpl.java index 98ef410..c4653a1 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataVImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataVImpl.java @@ -1,5 +1,6 @@ package com.njcn.dataProcess.service.impl.influxdb; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.ListUtil; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; @@ -129,7 +130,7 @@ public class InfluxdbDataVImpl extends MppServiceImpl getRawData(LineCountEvaluateParam lineParam) { List result = new ArrayList<>(); - List list = getMinuteDataV(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(), lineParam.getAbnormalTime()); + List list = getMinuteDataV(lineParam); list.forEach(item->{ DataVDto dto = new DataVDto(); BeanUtils.copyProperties(item,dto); @@ -142,7 +143,7 @@ public class InfluxdbDataVImpl extends MppServiceImpl getBaseData(LineCountEvaluateParam lineParam) { List result = new ArrayList<>(); - List dataVList = getMinuteDataV(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(),lineParam.getAbnormalTime()); + List dataVList = getMinuteDataV(lineParam); if (CollectionUtil.isNotEmpty(dataVList)) { String time = TimeUtils.StringTimeToString(lineParam.getStartTime()); //以监测点分组 @@ -299,11 +300,11 @@ public class InfluxdbDataVImpl extends MppServiceImpl getMinuteDataV(List lineList, String startTime, String endTime, Map> timeMap) { + public List getMinuteDataV(LineCountEvaluateParam lineParam) { List result = new ArrayList<>(); InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataV.class); influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); - influxQueryWrapper.regular(DataV::getLineId, lineList) + influxQueryWrapper.regular(DataV::getLineId,lineParam.getLineId()) .select(DataV::getLineId) .select(DataV::getPhasicType) .select(DataV::getValueType) @@ -319,14 +320,17 @@ public class InfluxdbDataVImpl extends MppServiceImpl list = dataVMapper.selectByQueryWrapper(influxQueryWrapper); Map> lineMap = list.stream().collect(Collectors.groupingBy(DataV::getLineId)); //有异常数据 - if (CollectionUtil.isNotEmpty(timeMap)) { + if (CollectionUtil.isNotEmpty(lineParam.getAbnormalTime())) { lineMap.forEach((k,v)->{ - List timeList = timeMap.get(k); + List timeList = lineParam.getAbnormalTime().get(k); //有异常数据,是自身异常数据 if (CollectionUtil.isNotEmpty(timeList)) { List filterList = v.stream().filter(item -> !timeList.contains(DATE_TIME_FORMATTER.format(item.getTime()))).collect(Collectors.toList()); diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbLimitRateImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbLimitRateImpl.java new file mode 100644 index 0000000..7a9b49f --- /dev/null +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbLimitRateImpl.java @@ -0,0 +1,28 @@ +package com.njcn.dataProcess.service.impl.influxdb; + +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.dataProcess.dao.relation.mapper.RStatLimitRateRelationMapper; +import com.njcn.dataProcess.pojo.dto.DataLimitRateDto; +import com.njcn.dataProcess.pojo.po.RStatLimitRateD; +import com.njcn.dataProcess.service.ILimitRateService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * Description: + * Date: 2024/11/18 14:33【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service("InfluxdbILimitRateImpl") +@RequiredArgsConstructor +public class InfluxdbLimitRateImpl extends MppServiceImpl implements ILimitRateService { + + @Override + public void batchInsertion(List dataVDTOList) { + + } +} diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationLimitRateImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationLimitRateImpl.java new file mode 100644 index 0000000..8148a74 --- /dev/null +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationLimitRateImpl.java @@ -0,0 +1,28 @@ +package com.njcn.dataProcess.service.impl.relation; + +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.dataProcess.dao.relation.mapper.RStatLimitRateRelationMapper; +import com.njcn.dataProcess.pojo.dto.DataLimitRateDto; +import com.njcn.dataProcess.pojo.po.RStatLimitRateD; +import com.njcn.dataProcess.service.ILimitRateService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; + + +/** + * @author hongawen + * @version 1.0 + * @data 2024/11/7 11:02 + */ +@Service("RelationDataVImpl") +@RequiredArgsConstructor +public class RelationLimitRateImpl extends MppServiceImpl implements ILimitRateService { + + + @Override + public void batchInsertion(List dataVDTOList) { + + } +}