diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/PollutionServiceImpl.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/PollutionServiceImpl.java index 1463553..f63b894 100644 --- a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/PollutionServiceImpl.java +++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/PollutionServiceImpl.java @@ -1,496 +1,496 @@ -package com.njcn.algorithm.serviceimpl.line; - -import cn.hutool.core.date.DatePattern; -import cn.hutool.core.date.LocalDateTimeUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.njcn.algorithm.pojo.bo.CalculatedParam; -import com.njcn.algorithm.service.line.IPollutionService; -import com.njcn.dataProcess.api.DataHarmRateVFeignClient; -import com.njcn.dataProcess.api.DataVFeignClient; -import com.njcn.dataProcess.dto.DataVDTO; -import com.njcn.dataProcess.dto.PollutionDTO; -import com.njcn.dataProcess.param.LineCountEvaluateParam; -import com.njcn.dataProcess.pojo.dto.DataHarmDto; -import com.njcn.dataProcess.pojo.dto.DataVDto; -import com.njcn.device.biz.commApi.CommTerminalGeneralClient; -import com.njcn.device.biz.pojo.po.Overlimit; -import com.njcn.device.pq.pojo.dto.PublicDTO; -import com.njcn.system.api.DicDataFeignClient; -import com.njcn.system.enums.DicDataTypeEnum; -import com.njcn.system.pojo.po.DictData; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.time.LocalDate; -import java.util.*; -import java.util.function.BinaryOperator; -import java.util.function.Function; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -/** - * @Author: cdf - * @CreateTime: 2025-03-12 - * @Description: 测点污区数据 - */ -@Service -@Slf4j -@RequiredArgsConstructor -public class PollutionServiceImpl implements IPollutionService { - - private final DicDataFeignClient dicDataFeignClient; - - private final CommTerminalGeneralClient commTerminalGeneralClient; - - private final DataVFeignClient dataVFeignClient; - - private final DataHarmRateVFeignClient dataHarmRateVFeignClient; - - @Override - public void handleDay(CalculatedParam calculatedParam) { - List pollutionList ; - - List dictData = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.POLLUTION_STATIS.getCode()).getData(); - LocalDate local = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate()); - String beginDay =LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); - String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); - List idList = calculatedParam.getIdList(); - List overlimitList = commTerminalGeneralClient.getOverLimitDataByIds(idList).getData(); - Map limitMap = overlimitList.stream().collect(Collectors.toMap(Overlimit::getId,Function.identity())); - - - - //指标数据获取 - List harmonicVoltageList = getHarmonicVoltage(idList,limitMap,beginDay,endDay); - List harmonicCurrentList = getHarmonicCurrent(idList,limitMap,beginDay,endDay); - List frequencyDeviationList = getFrequencyDeviation(idList,limitMap,beginDay,endDay); - List voltageDeviationList = getVoltageDeviation(idList,limitMap,beginDay,endDay); - List threePhaseVoltageList = getThreePhaseVoltageUnbalance(idList,limitMap,beginDay,endDay); - List negativeSequenceList = getNegativeSequenceCurrent(idList,limitMap,beginDay,endDay); - List interHarmonicVoltageList = getInterharmonicVoltage(idList,limitMap,beginDay,endDay); - List voltageFlickerList = getVoltageFlicker(idList,limitMap,beginDay,endDay); - - List lineIdList = new ArrayList<>(); - idList.forEach(item->{ - PollutionDTO pollutionDTO = new PollutionDTO(); - pollutionDTO.setLineId(item); - lineIdList.add(pollutionDTO); - }); - pollutionList = processPollutionList(lineIdList,harmonicVoltageList,harmonicCurrentList,frequencyDeviationList,voltageDeviationList,threePhaseVoltageList,negativeSequenceList,interHarmonicVoltageList,voltageFlickerList); - insertPollutionDayMySql(pollutionList, dictData, local); - } - - - /** - * 谐波电压:取监测点最新的A、B、C三相数据,再取电压总谐波畸变率、各次谐波电压含有率(2~25次)中的最大值,作为结果 - */ - private List getHarmonicVoltage(List ids,Map limitMap,String beginTime,String endTime){ - List list = new ArrayList<>(); - - Map threePhase = getThreePhaseData(ids,limitMap,beginTime,endTime); - Map distortionRate = getDistortionRateData(ids,limitMap,beginTime,endTime); - for (String key : threePhase.keySet()) { - list.add(threePhase.get(key)); - } - for (String key : distortionRate.keySet()) { - list.add(distortionRate.get(key)); - } - Comparator comparator = Comparator.comparing(PublicDTO::getData); - Map> outMap = list.stream().collect(Collectors.groupingBy(PublicDTO::getId,Collectors.reducing(BinaryOperator.maxBy(comparator)))); - return process(outMap); - } - - /** - * 出参处理 - */ - private List process(Map> outMap){ - List outList = new ArrayList<>(); - for (String key : outMap.keySet()) { - outList.add(outMap.get(key).get()); - } - return outList; - } - - private Map getThreePhaseData(List ids,Map limitMap,String beginTime,String endTime){ - LineCountEvaluateParam lineCountEvaluateParam = new LineCountEvaluateParam(); - lineCountEvaluateParam.setLineId(ids); - lineCountEvaluateParam.setValueType(Stream.of("CP95").collect(Collectors.toList())); - lineCountEvaluateParam.setPhasicType(Stream.of("A","B","C").collect(Collectors.toList())); - lineCountEvaluateParam.setStartTime(beginTime); - lineCountEvaluateParam.setEndTime(endTime); - List threePhaseList = dataVFeignClient.getDataV(lineCountEvaluateParam).getData(); - Map> dataVMap = threePhaseList.stream().collect(Collectors.groupingBy(DataVDto::getLineId)); - - Map map = new HashMap<>(); - dataVMap.forEach((lineId,vList)->{ - PublicDTO publicDTO = new PublicDTO(); - if(limitMap.containsKey(lineId)){ - Overlimit overlimit = limitMap.get(lineId); - double val = vList.stream().mapToDouble(DataVDto::getVThd).max().getAsDouble(); - double vUnbalance = val/overlimit.getUaberrance(); - publicDTO.setId(lineId); - publicDTO.setData(vUnbalance); - map.put(lineId,publicDTO); - } - }); - return map; - } - - private Map getDistortionRateData(List ids,Map limitMap,String beginTime,String endTime){ - Map mapResult = new HashMap<>(); - - LineCountEvaluateParam lineCountEvaluateParam = new LineCountEvaluateParam(); - lineCountEvaluateParam.setLineId(ids); - lineCountEvaluateParam.setValueType(Stream.of("CP95").collect(Collectors.toList())); - lineCountEvaluateParam.setPhasicType(Stream.of("A","B","C").collect(Collectors.toList())); - lineCountEvaluateParam.setStartTime(beginTime); - lineCountEvaluateParam.setEndTime(endTime); - List distortionRateList = dataHarmRateVFeignClient.getHarmRateVData(lineCountEvaluateParam).getData(); - - - - Map> harmDataMap = distortionRateList.stream().collect(Collectors.groupingBy(DataHarmDto::getLineId)); - harmDataMap.forEach((lineId,vList)->{ - Overlimit overlimit = limitMap.get(lineId); - List temList = new ArrayList<>(); - for(DataHarmDto dayHarmrateV : vList){ - PublicDTO publicDTO = new PublicDTO(); - double v2 = dayHarmrateV.getV2()/overlimit.getUharm2(); - double v3 = dayHarmrateV.getV3()/overlimit.getUharm3(); - double v4 = dayHarmrateV.getV4()/overlimit.getUharm4(); - double v5 = dayHarmrateV.getV5()/overlimit.getUharm5(); - double v6 = dayHarmrateV.getV6()/overlimit.getUharm6(); - double v7 = dayHarmrateV.getV7()/overlimit.getUharm7(); - double v8 = dayHarmrateV.getV8()/overlimit.getUharm8(); - double v9 = dayHarmrateV.getV9()/overlimit.getUharm9(); - double v10 = dayHarmrateV.getV10()/overlimit.getUharm10(); - double v11 = dayHarmrateV.getV11()/overlimit.getUharm11(); - double v12 = dayHarmrateV.getV12()/overlimit.getUharm12(); - double v13 = dayHarmrateV.getV13()/overlimit.getUharm13(); - double v14 = dayHarmrateV.getV14()/overlimit.getUharm14(); - double v15 = dayHarmrateV.getV15()/overlimit.getUharm15(); - double v16 = dayHarmrateV.getV16()/overlimit.getUharm16(); - double v17 = dayHarmrateV.getV17()/overlimit.getUharm17(); - double v18 = dayHarmrateV.getV18()/overlimit.getUharm18(); - double v19 = dayHarmrateV.getV19()/overlimit.getUharm19(); - double v20 = dayHarmrateV.getV20()/overlimit.getUharm20(); - double v21 = dayHarmrateV.getV21()/overlimit.getUharm21(); - double v22 = dayHarmrateV.getV22()/overlimit.getUharm22(); - double v23 = dayHarmrateV.getV23()/overlimit.getUharm23(); - double v24 = dayHarmrateV.getV24()/overlimit.getUharm24(); - double v25 = dayHarmrateV.getV25()/overlimit.getUharm25(); - List data = Stream.of(v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25).collect(Collectors.toList()); - double result = data.stream().max(Comparator.comparing(Double::doubleValue)).get(); - publicDTO.setId(lineId); - publicDTO.setData(result); - temList.add(publicDTO); - } - PublicDTO publicDTO = new PublicDTO(); - publicDTO.setId(lineId); - publicDTO.setData(temList.stream().mapToDouble(PublicDTO::getData).max().getAsDouble()); - mapResult.put(lineId,publicDTO); - }); - - return mapResult; - } - - /** - * 谐波电流:各次谐波电流(2~25次),取各监测点最新的A、B、C三相数据。 - */ - private List getHarmonicCurrent(List ids,Map limitMap,String beginTime,String endTime){ - List list = dataIDService.list(new LambdaQueryWrapper() - .eq(RStatDataIDPO::getValueType, "CP95") - .in(RStatDataIDPO::getPhaseType, Arrays.asList("A", "B", "C")) - .ge(RStatDataIDPO::getTime, beginTime) - .le(RStatDataIDPO::getTime, endTime) - ); - List data; - PublicDTO publicDTO; - List lineData = new ArrayList<>(); - for (RStatDataIDPO dayI : list) { - for (Overlimit overlimit : overLimitList) { - if (Objects.equals(dayI.getLineId(),overlimit.getId())){ - double v2 = dayI.getI2()/overlimit.getIharm2(); - double v3 = dayI.getI3()/overlimit.getIharm3(); - double v4 = dayI.getI4()/overlimit.getIharm4(); - double v5 = dayI.getI5()/overlimit.getIharm5(); - double v6 = dayI.getI6()/overlimit.getIharm6(); - double v7 = dayI.getI7()/overlimit.getIharm7(); - double v8 = dayI.getI8()/overlimit.getIharm8(); - double v9 = dayI.getI9()/overlimit.getIharm9(); - double v10 = dayI.getI10()/overlimit.getIharm10(); - double v11 = dayI.getI11()/overlimit.getIharm11(); - double v12 = dayI.getI12()/overlimit.getIharm12(); - double v13 = dayI.getI13()/overlimit.getIharm13(); - double v14 = dayI.getI14()/overlimit.getIharm14(); - double v15 = dayI.getI15()/overlimit.getIharm15(); - double v16 = dayI.getI16()/overlimit.getIharm16(); - double v17 = dayI.getI17()/overlimit.getIharm17(); - double v18 = dayI.getI18()/overlimit.getIharm18(); - double v19 = dayI.getI19()/overlimit.getIharm19(); - double v20 = dayI.getI20()/overlimit.getIharm20(); - double v21 = dayI.getI21()/overlimit.getIharm21(); - double v22 = dayI.getI22()/overlimit.getIharm22(); - double v23 = dayI.getI23()/overlimit.getIharm23(); - double v24 = dayI.getI24()/overlimit.getIharm24(); - double v25 = dayI.getI25()/overlimit.getIharm25(); - data = Stream.of(v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25).collect(Collectors.toList()); - double result = data.stream().max(Comparator.comparing(Double::doubleValue)).get(); - publicDTO = new PublicDTO(); - publicDTO.setId(dayI.getLineId()); - publicDTO.setData(result); - lineData.add(publicDTO); - } - } - } - Comparator comparator = Comparator.comparing(PublicDTO::getData); - Map> outMap = lineData.stream().collect(Collectors.groupingBy(PublicDTO::getId,Collectors.reducing(BinaryOperator.maxBy(comparator)))); - return process(outMap); - } - - /** - * 频率偏差:各监测点最新的T相数据,取频率上下偏差的绝对值中的最大值。 - */ - private List getFrequencyDeviation(List overLimitList,String beginTime,String endTime){ - List threePhaseList = dataVDService.list(new QueryWrapper() - .select("line_id","abs(freq_dev) as freq_dev ") - .in("value_type", Arrays.asList("MIN","MAX")) - .in("phasic_type", Arrays.asList("T")) - .ge("time", beginTime) - .le("time",endTime) - ); - List data; - PublicDTO publicDTO; - List lineData = new ArrayList<>(); -// String sql = "SELECT line_id,abs(freq_dev) AS freq_dev FROM day_v where phasic_type = 'T' and (value_type = 'MIN' or value_type = 'MAX') "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +"group by line_id order by time desc limit 2 tz('Asia/Shanghai')"; -// InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); +//package com.njcn.algorithm.serviceimpl.line; // -// QueryResult sqlResult = influxDbUtils.query(sql); -// List list = resultMapper.toPOJO(sqlResult, DayVPO.class); - for (RStatDataVDPO dayV : threePhaseList) { - for (Overlimit overlimit : overLimitList) { - if (Objects.equals(dayV.getLineId(),overlimit.getId())){ - double freqDev = dayV.getFreqDev()/overlimit.getFreqDev(); - data = Stream.of(freqDev).collect(Collectors.toList()); - double result = data.stream().max(Comparator.comparing(Double::doubleValue)).get(); - publicDTO = new PublicDTO(); - publicDTO.setId(dayV.getLineId()); - publicDTO.setData(result); - lineData.add(publicDTO); - } - } - } - Comparator comparator = Comparator.comparing(PublicDTO::getData); - Map> outMap = lineData.stream().collect(Collectors.groupingBy(PublicDTO::getId,Collectors.reducing(BinaryOperator.maxBy(comparator)))); - return process(outMap); - } - - /** - * 电压偏差:各监测点最新的A、B、C三相数据,取电压上下偏差的绝对值中的最大值。 - */ - private List getVoltageDeviation(List overLimitList,String beginTime,String endTime){ - List list = dataVDService.list(new QueryWrapper() - .select("line_id","vu_dev","vl_dev","value_type") - .in("value_type", Arrays.asList("MIN","MAX")) - .in("phasic_type", Arrays.asList("A","B","C")) - .ge("time", beginTime) - .le("time", endTime) - ); - List data; - PublicDTO publicDTO; - List lineData = new ArrayList<>(); -// String sql = "SELECT line_id,vu_dev,vl_dev,value_type FROM day_v where (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') and (value_type = 'MIN' or value_type = 'MAX') "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 6 tz('Asia/Shanghai')"; -// QueryResult sqlResult = influxDbUtils.query(sql); -// InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); +//import cn.hutool.core.date.DatePattern; +//import cn.hutool.core.date.LocalDateTimeUtil; +//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +//import com.njcn.algorithm.pojo.bo.CalculatedParam; +//import com.njcn.algorithm.service.line.IPollutionService; +//import com.njcn.dataProcess.api.DataHarmRateVFeignClient; +//import com.njcn.dataProcess.api.DataVFeignClient; +//import com.njcn.dataProcess.dto.DataVDTO; +//import com.njcn.dataProcess.dto.PollutionDTO; +//import com.njcn.dataProcess.param.LineCountEvaluateParam; +//import com.njcn.dataProcess.pojo.dto.DataHarmDto; +//import com.njcn.dataProcess.pojo.dto.DataVDto; +//import com.njcn.device.biz.commApi.CommTerminalGeneralClient; +//import com.njcn.device.biz.pojo.po.Overlimit; +//import com.njcn.device.pq.pojo.dto.PublicDTO; +//import com.njcn.system.api.DicDataFeignClient; +//import com.njcn.system.enums.DicDataTypeEnum; +//import com.njcn.system.pojo.po.DictData; +//import lombok.RequiredArgsConstructor; +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.stereotype.Service; // -// List list = resultMapper.toPOJO(sqlResult, DayVPO.class); - for (RStatDataVDPO dayV : list) { - for (Overlimit overlimit : overLimitList) { - if (Objects.equals(dayV.getLineId(),overlimit.getId())){ - double vlDev = Math.abs(dayV.getVlDev()/overlimit.getUvoltageDev()); - double vuDev = Math.abs(dayV.getVuDev()/overlimit.getVoltageDev()); - data = Stream.of(vuDev,vlDev).collect(Collectors.toList()); - double result = data.stream().max(Comparator.comparing(Double::doubleValue)).get(); - publicDTO = new PublicDTO(); - publicDTO.setId(dayV.getLineId()); - publicDTO.setData(result); - lineData.add(publicDTO); - } - } - } - Comparator comparator = Comparator.comparing(PublicDTO::getData); - Map> outMap = lineData.stream().collect(Collectors.groupingBy(PublicDTO::getId,Collectors.reducing(BinaryOperator.maxBy(comparator)))); - return process(outMap); - } - - /** - * 三相电压不平衡度:各监测点最新的T相数据。 - */ - private List getThreePhaseVoltageUnbalance(List overLimitList,String beginTime,String endTime){ - List list = dataVDService.list(new QueryWrapper() - .select("line_id","v_unbalance","value_type") - .in("value_type", Arrays.asList("CP95","MAX")) - .in("phasic_type", Arrays.asList("T")) - .ge("time", beginTime) - .le("time", endTime) - ); - List data; - PublicDTO publicDTO; - List lineData = new ArrayList<>(); -// String sql = "SELECT line_id,v_unbalance,value_type FROM day_v where phasic_type = 'T' and (value_type = 'CP95' or value_type = 'MAX') "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 2 tz('Asia/Shanghai')"; -// InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); +//import java.math.BigDecimal; +//import java.math.RoundingMode; +//import java.time.LocalDate; +//import java.util.*; +//import java.util.function.BinaryOperator; +//import java.util.function.Function; +//import java.util.stream.Collectors; +//import java.util.stream.Stream; // -// QueryResult sqlResult = influxDbUtils.query(sql); -// List list = resultMapper.toPOJO(sqlResult, DayVPO.class); - for (RStatDataVDPO dayV : list) { - for (Overlimit overlimit : overLimitList) { - if (Objects.equals(dayV.getLineId(),overlimit.getId())){ - double vUnbalance = Math.abs(dayV.getVUnbalance()/overlimit.getUbalance()); - data = Stream.of(vUnbalance).collect(Collectors.toList()); - double result = data.stream().max(Comparator.comparing(Double::doubleValue)).get(); - publicDTO = new PublicDTO(); - publicDTO.setId(dayV.getLineId()); - publicDTO.setData(result); - lineData.add(publicDTO); - } - } - } - Comparator comparator = Comparator.comparing(PublicDTO::getData); - Map> outMap = lineData.stream().collect(Collectors.groupingBy(PublicDTO::getId,Collectors.reducing(BinaryOperator.maxBy(comparator)))); - return process(outMap); - } - - /** - * 负序电流:各监测点最新的T相数据。 - */ - private List getNegativeSequenceCurrent(List overLimitList,String beginTime,String endTime){ - List list = dataIDService.list(new QueryWrapper() - .select("line_id","i_neg","value_type") - .in("value_type", Arrays.asList("CP95","MAX")) - .in("phasic_type", Arrays.asList("T")) - .ge("time", beginTime) - .le("time", endTime) - ); - List data; - PublicDTO publicDTO; - List lineData = new ArrayList<>(); -// String sql = "SELECT line_id,i_neg,value_type FROM day_i where phasic_type = 'T' and (value_type = 'CP95' or value_type = 'MAX') "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 2 tz('Asia/Shanghai')"; -// InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); +///** +// * @Author: cdf +// * @CreateTime: 2025-03-12 +// * @Description: 测点污区数据 +// */ +//@Service +//@Slf4j +//@RequiredArgsConstructor +//public class PollutionServiceImpl implements IPollutionService { // -// QueryResult sqlResult = influxDbUtils.query(sql); -// List list = resultMapper.toPOJO(sqlResult, DayIPO.class); - for (RStatDataIDPO dayI : list) { - for (Overlimit overlimit : overLimitList) { - if (Objects.equals(dayI.getLineId(),overlimit.getId()) && overlimit.getINeg() != 0){ - BigDecimal dayiNeg = BigDecimal.valueOf(dayI.getINeg()); - BigDecimal overNeg = BigDecimal.valueOf(overlimit.getINeg()); - double outNeg = dayiNeg.divide(overNeg,9, RoundingMode.HALF_UP).doubleValue(); - double iNeg = Math.abs(outNeg); - data = Stream.of(iNeg).collect(Collectors.toList()); - double result = data.stream().max(Comparator.comparing(Double::doubleValue)).get(); - publicDTO = new PublicDTO(); - publicDTO.setId(dayI.getLineId()); - publicDTO.setData(result); - lineData.add(publicDTO); - } - } - } - Comparator comparator = Comparator.comparing(PublicDTO::getData); - Map> outMap = lineData.stream().collect(Collectors.groupingBy(PublicDTO::getId,Collectors.reducing(BinaryOperator.maxBy(comparator)))); - return process(outMap); - } - - /** - * 间谐波电压含有率:各监测点最新的A、B、C三相数据。 - */ - private List getInterharmonicVoltage(List overLimitList,String beginTime,String endTime){ - List list = inharmVDService.list(new QueryWrapper() - .in("value_type", Arrays.asList("CP95")) - .in("phasic_type", Arrays.asList("A","B","C")) - .ge("time", beginTime) - .le("time", endTime) - ); - List data; - PublicDTO publicDTO; - List lineData = new ArrayList<>(); -// String sql = "SELECT * FROM day_inharm_v where (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') and value_type = 'CP95' "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 3 tz('Asia/Shanghai')"; -// InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); +// private final DicDataFeignClient dicDataFeignClient; // -// QueryResult sqlResult = influxDbUtils.query(sql); -// List list = resultMapper.toPOJO(sqlResult, DayInharmVPO.class); - for (RStatDataInharmVDPO dayInharmV : list) { - for (Overlimit overlimit : overLimitList) { - if (Objects.equals(dayInharmV.getLineId(),overlimit.getId())){ - double v1 = Math.abs(dayInharmV.getV1()/overlimit.getInuharm1()); - double v2 = Math.abs(dayInharmV.getV2()/overlimit.getInuharm2()); - double v3 = Math.abs(dayInharmV.getV3()/overlimit.getInuharm3()); - double v4 = Math.abs(dayInharmV.getV4()/overlimit.getInuharm4()); - double v5 = Math.abs(dayInharmV.getV5()/overlimit.getInuharm5()); - double v6 = Math.abs(dayInharmV.getV6()/overlimit.getInuharm6()); - double v7 = Math.abs(dayInharmV.getV7()/overlimit.getInuharm7()); - double v8 = Math.abs(dayInharmV.getV8()/overlimit.getInuharm8()); - double v9 = Math.abs(dayInharmV.getV9()/overlimit.getInuharm9()); - double v10 = Math.abs(dayInharmV.getV10()/overlimit.getInuharm10()); - double v11 = Math.abs(dayInharmV.getV11()/overlimit.getInuharm11()); - double v12 = Math.abs(dayInharmV.getV12()/overlimit.getInuharm12()); - double v13 = Math.abs(dayInharmV.getV13()/overlimit.getInuharm13()); - double v14 = Math.abs(dayInharmV.getV14()/overlimit.getInuharm14()); - double v15 = Math.abs(dayInharmV.getV15()/overlimit.getInuharm15()); - double v16 = Math.abs(dayInharmV.getV16()/overlimit.getInuharm16()); - data = Stream.of(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16).collect(Collectors.toList()); - double result = data.stream().max(Comparator.comparing(Double::doubleValue)).get(); - publicDTO = new PublicDTO(); - publicDTO.setId(dayInharmV.getLineId()); - publicDTO.setData(result); - lineData.add(publicDTO); - } - } - } - Comparator comparator = Comparator.comparing(PublicDTO::getData); - Map> outMap = lineData.stream().collect(Collectors.groupingBy(PublicDTO::getId,Collectors.reducing(BinaryOperator.maxBy(comparator)))); - return process(outMap); - } - - /** - * 长时电压闪变:各监测点最新的A、B、C三相数据。 - */ - private List getVoltageFlicker(List overLimitList,String beginTime,String endTime){ - List list = pltDService.list(new QueryWrapper() - .in("value_type", Arrays.asList("CP95")) - .in("phasic_type", Arrays.asList("A","B","C")) - .ge("time", beginTime) - .le("time", endTime) - ); - List data; - PublicDTO publicDTO; - List lineData = new ArrayList<>(); - -// String sql = "SELECT * FROM day_plt where (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') and value_type = 'CP95' "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 3 tz('Asia/Shanghai')"; -// InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); +// private final CommTerminalGeneralClient commTerminalGeneralClient; // -// QueryResult sqlResult = influxDbUtils.query(sql); -// List list = resultMapper.toPOJO(sqlResult, DayPltPO.class); - for (RStatDataPltDPO dayPlt : list) { - for (Overlimit overlimit : overLimitList) { - if (Objects.equals(dayPlt.getLineId(),overlimit.getId())){ - double plt = Math.abs(dayPlt.getPlt()/overlimit.getFlicker()); - data = Stream.of(plt).collect(Collectors.toList()); - double result = data.stream().max(Comparator.comparing(Double::doubleValue)).get(); - publicDTO = new PublicDTO(); - publicDTO.setId(dayPlt.getLineId()); - publicDTO.setData(result); - lineData.add(publicDTO); - } - } - } - Comparator comparator = Comparator.comparing(PublicDTO::getData); - Map> outMap = lineData.stream().collect(Collectors.groupingBy(PublicDTO::getId,Collectors.reducing(BinaryOperator.maxBy(comparator)))); - return process(outMap); - } - - -} +// private final DataVFeignClient dataVFeignClient; +// +// private final DataHarmRateVFeignClient dataHarmRateVFeignClient; +// +// @Override +// public void handleDay(CalculatedParam calculatedParam) { +// List pollutionList ; +// +// List dictData = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.POLLUTION_STATIS.getCode()).getData(); +// LocalDate local = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate()); +// String beginDay =LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); +// String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); +// List idList = calculatedParam.getIdList(); +// List overlimitList = commTerminalGeneralClient.getOverLimitDataByIds(idList).getData(); +// Map limitMap = overlimitList.stream().collect(Collectors.toMap(Overlimit::getId,Function.identity())); +// +// +// +// //指标数据获取 +// List harmonicVoltageList = getHarmonicVoltage(idList,limitMap,beginDay,endDay); +// List harmonicCurrentList = getHarmonicCurrent(idList,limitMap,beginDay,endDay); +// List frequencyDeviationList = getFrequencyDeviation(idList,limitMap,beginDay,endDay); +// List voltageDeviationList = getVoltageDeviation(idList,limitMap,beginDay,endDay); +// List threePhaseVoltageList = getThreePhaseVoltageUnbalance(idList,limitMap,beginDay,endDay); +// List negativeSequenceList = getNegativeSequenceCurrent(idList,limitMap,beginDay,endDay); +// List interHarmonicVoltageList = getInterharmonicVoltage(idList,limitMap,beginDay,endDay); +// List voltageFlickerList = getVoltageFlicker(idList,limitMap,beginDay,endDay); +// +// List lineIdList = new ArrayList<>(); +// idList.forEach(item->{ +// PollutionDTO pollutionDTO = new PollutionDTO(); +// pollutionDTO.setLineId(item); +// lineIdList.add(pollutionDTO); +// }); +// pollutionList = processPollutionList(lineIdList,harmonicVoltageList,harmonicCurrentList,frequencyDeviationList,voltageDeviationList,threePhaseVoltageList,negativeSequenceList,interHarmonicVoltageList,voltageFlickerList); +// insertPollutionDayMySql(pollutionList, dictData, local); +// } +// +// +// /** +// * 谐波电压:取监测点最新的A、B、C三相数据,再取电压总谐波畸变率、各次谐波电压含有率(2~25次)中的最大值,作为结果 +// */ +// private List getHarmonicVoltage(List ids,Map limitMap,String beginTime,String endTime){ +// List list = new ArrayList<>(); +// +// Map threePhase = getThreePhaseData(ids,limitMap,beginTime,endTime); +// Map distortionRate = getDistortionRateData(ids,limitMap,beginTime,endTime); +// for (String key : threePhase.keySet()) { +// list.add(threePhase.get(key)); +// } +// for (String key : distortionRate.keySet()) { +// list.add(distortionRate.get(key)); +// } +// Comparator comparator = Comparator.comparing(PublicDTO::getData); +// Map> outMap = list.stream().collect(Collectors.groupingBy(PublicDTO::getId,Collectors.reducing(BinaryOperator.maxBy(comparator)))); +// return process(outMap); +// } +// +// /** +// * 出参处理 +// */ +// private List process(Map> outMap){ +// List outList = new ArrayList<>(); +// for (String key : outMap.keySet()) { +// outList.add(outMap.get(key).get()); +// } +// return outList; +// } +// +// private Map getThreePhaseData(List ids,Map limitMap,String beginTime,String endTime){ +// LineCountEvaluateParam lineCountEvaluateParam = new LineCountEvaluateParam(); +// lineCountEvaluateParam.setLineId(ids); +// lineCountEvaluateParam.setValueType(Stream.of("CP95").collect(Collectors.toList())); +// lineCountEvaluateParam.setPhasicType(Stream.of("A","B","C").collect(Collectors.toList())); +// lineCountEvaluateParam.setStartTime(beginTime); +// lineCountEvaluateParam.setEndTime(endTime); +// List threePhaseList = dataVFeignClient.getDataV(lineCountEvaluateParam).getData(); +// Map> dataVMap = threePhaseList.stream().collect(Collectors.groupingBy(DataVDto::getLineId)); +// +// Map map = new HashMap<>(); +// dataVMap.forEach((lineId,vList)->{ +// PublicDTO publicDTO = new PublicDTO(); +// if(limitMap.containsKey(lineId)){ +// Overlimit overlimit = limitMap.get(lineId); +// double val = vList.stream().mapToDouble(DataVDto::getVThd).max().getAsDouble(); +// double vUnbalance = val/overlimit.getUaberrance(); +// publicDTO.setId(lineId); +// publicDTO.setData(vUnbalance); +// map.put(lineId,publicDTO); +// } +// }); +// return map; +// } +// +// private Map getDistortionRateData(List ids,Map limitMap,String beginTime,String endTime){ +// Map mapResult = new HashMap<>(); +// +// LineCountEvaluateParam lineCountEvaluateParam = new LineCountEvaluateParam(); +// lineCountEvaluateParam.setLineId(ids); +// lineCountEvaluateParam.setValueType(Stream.of("CP95").collect(Collectors.toList())); +// lineCountEvaluateParam.setPhasicType(Stream.of("A","B","C").collect(Collectors.toList())); +// lineCountEvaluateParam.setStartTime(beginTime); +// lineCountEvaluateParam.setEndTime(endTime); +// List distortionRateList = dataHarmRateVFeignClient.getHarmRateVData(lineCountEvaluateParam).getData(); +// +// +// +// Map> harmDataMap = distortionRateList.stream().collect(Collectors.groupingBy(DataHarmDto::getLineId)); +// harmDataMap.forEach((lineId,vList)->{ +// Overlimit overlimit = limitMap.get(lineId); +// List temList = new ArrayList<>(); +// for(DataHarmDto dayHarmrateV : vList){ +// PublicDTO publicDTO = new PublicDTO(); +// double v2 = dayHarmrateV.getV2()/overlimit.getUharm2(); +// double v3 = dayHarmrateV.getV3()/overlimit.getUharm3(); +// double v4 = dayHarmrateV.getV4()/overlimit.getUharm4(); +// double v5 = dayHarmrateV.getV5()/overlimit.getUharm5(); +// double v6 = dayHarmrateV.getV6()/overlimit.getUharm6(); +// double v7 = dayHarmrateV.getV7()/overlimit.getUharm7(); +// double v8 = dayHarmrateV.getV8()/overlimit.getUharm8(); +// double v9 = dayHarmrateV.getV9()/overlimit.getUharm9(); +// double v10 = dayHarmrateV.getV10()/overlimit.getUharm10(); +// double v11 = dayHarmrateV.getV11()/overlimit.getUharm11(); +// double v12 = dayHarmrateV.getV12()/overlimit.getUharm12(); +// double v13 = dayHarmrateV.getV13()/overlimit.getUharm13(); +// double v14 = dayHarmrateV.getV14()/overlimit.getUharm14(); +// double v15 = dayHarmrateV.getV15()/overlimit.getUharm15(); +// double v16 = dayHarmrateV.getV16()/overlimit.getUharm16(); +// double v17 = dayHarmrateV.getV17()/overlimit.getUharm17(); +// double v18 = dayHarmrateV.getV18()/overlimit.getUharm18(); +// double v19 = dayHarmrateV.getV19()/overlimit.getUharm19(); +// double v20 = dayHarmrateV.getV20()/overlimit.getUharm20(); +// double v21 = dayHarmrateV.getV21()/overlimit.getUharm21(); +// double v22 = dayHarmrateV.getV22()/overlimit.getUharm22(); +// double v23 = dayHarmrateV.getV23()/overlimit.getUharm23(); +// double v24 = dayHarmrateV.getV24()/overlimit.getUharm24(); +// double v25 = dayHarmrateV.getV25()/overlimit.getUharm25(); +// List data = Stream.of(v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25).collect(Collectors.toList()); +// double result = data.stream().max(Comparator.comparing(Double::doubleValue)).get(); +// publicDTO.setId(lineId); +// publicDTO.setData(result); +// temList.add(publicDTO); +// } +// PublicDTO publicDTO = new PublicDTO(); +// publicDTO.setId(lineId); +// publicDTO.setData(temList.stream().mapToDouble(PublicDTO::getData).max().getAsDouble()); +// mapResult.put(lineId,publicDTO); +// }); +// +// return mapResult; +// } +// +// /** +// * 谐波电流:各次谐波电流(2~25次),取各监测点最新的A、B、C三相数据。 +// */ +// private List getHarmonicCurrent(List ids,Map limitMap,String beginTime,String endTime){ +// List list = dataIDService.list(new LambdaQueryWrapper() +// .eq(RStatDataIDPO::getValueType, "CP95") +// .in(RStatDataIDPO::getPhaseType, Arrays.asList("A", "B", "C")) +// .ge(RStatDataIDPO::getTime, beginTime) +// .le(RStatDataIDPO::getTime, endTime) +// ); +// List data; +// PublicDTO publicDTO; +// List lineData = new ArrayList<>(); +// for (RStatDataIDPO dayI : list) { +// for (Overlimit overlimit : overLimitList) { +// if (Objects.equals(dayI.getLineId(),overlimit.getId())){ +// double v2 = dayI.getI2()/overlimit.getIharm2(); +// double v3 = dayI.getI3()/overlimit.getIharm3(); +// double v4 = dayI.getI4()/overlimit.getIharm4(); +// double v5 = dayI.getI5()/overlimit.getIharm5(); +// double v6 = dayI.getI6()/overlimit.getIharm6(); +// double v7 = dayI.getI7()/overlimit.getIharm7(); +// double v8 = dayI.getI8()/overlimit.getIharm8(); +// double v9 = dayI.getI9()/overlimit.getIharm9(); +// double v10 = dayI.getI10()/overlimit.getIharm10(); +// double v11 = dayI.getI11()/overlimit.getIharm11(); +// double v12 = dayI.getI12()/overlimit.getIharm12(); +// double v13 = dayI.getI13()/overlimit.getIharm13(); +// double v14 = dayI.getI14()/overlimit.getIharm14(); +// double v15 = dayI.getI15()/overlimit.getIharm15(); +// double v16 = dayI.getI16()/overlimit.getIharm16(); +// double v17 = dayI.getI17()/overlimit.getIharm17(); +// double v18 = dayI.getI18()/overlimit.getIharm18(); +// double v19 = dayI.getI19()/overlimit.getIharm19(); +// double v20 = dayI.getI20()/overlimit.getIharm20(); +// double v21 = dayI.getI21()/overlimit.getIharm21(); +// double v22 = dayI.getI22()/overlimit.getIharm22(); +// double v23 = dayI.getI23()/overlimit.getIharm23(); +// double v24 = dayI.getI24()/overlimit.getIharm24(); +// double v25 = dayI.getI25()/overlimit.getIharm25(); +// data = Stream.of(v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25).collect(Collectors.toList()); +// double result = data.stream().max(Comparator.comparing(Double::doubleValue)).get(); +// publicDTO = new PublicDTO(); +// publicDTO.setId(dayI.getLineId()); +// publicDTO.setData(result); +// lineData.add(publicDTO); +// } +// } +// } +// Comparator comparator = Comparator.comparing(PublicDTO::getData); +// Map> outMap = lineData.stream().collect(Collectors.groupingBy(PublicDTO::getId,Collectors.reducing(BinaryOperator.maxBy(comparator)))); +// return process(outMap); +// } +// +// /** +// * 频率偏差:各监测点最新的T相数据,取频率上下偏差的绝对值中的最大值。 +// */ +// private List getFrequencyDeviation(List overLimitList,String beginTime,String endTime){ +// List threePhaseList = dataVDService.list(new QueryWrapper() +// .select("line_id","abs(freq_dev) as freq_dev ") +// .in("value_type", Arrays.asList("MIN","MAX")) +// .in("phasic_type", Arrays.asList("T")) +// .ge("time", beginTime) +// .le("time",endTime) +// ); +// List data; +// PublicDTO publicDTO; +// List lineData = new ArrayList<>(); +//// String sql = "SELECT line_id,abs(freq_dev) AS freq_dev FROM day_v where phasic_type = 'T' and (value_type = 'MIN' or value_type = 'MAX') "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +"group by line_id order by time desc limit 2 tz('Asia/Shanghai')"; +//// InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); +//// +//// QueryResult sqlResult = influxDbUtils.query(sql); +//// List list = resultMapper.toPOJO(sqlResult, DayVPO.class); +// for (RStatDataVDPO dayV : threePhaseList) { +// for (Overlimit overlimit : overLimitList) { +// if (Objects.equals(dayV.getLineId(),overlimit.getId())){ +// double freqDev = dayV.getFreqDev()/overlimit.getFreqDev(); +// data = Stream.of(freqDev).collect(Collectors.toList()); +// double result = data.stream().max(Comparator.comparing(Double::doubleValue)).get(); +// publicDTO = new PublicDTO(); +// publicDTO.setId(dayV.getLineId()); +// publicDTO.setData(result); +// lineData.add(publicDTO); +// } +// } +// } +// Comparator comparator = Comparator.comparing(PublicDTO::getData); +// Map> outMap = lineData.stream().collect(Collectors.groupingBy(PublicDTO::getId,Collectors.reducing(BinaryOperator.maxBy(comparator)))); +// return process(outMap); +// } +// +// /** +// * 电压偏差:各监测点最新的A、B、C三相数据,取电压上下偏差的绝对值中的最大值。 +// */ +// private List getVoltageDeviation(List overLimitList,String beginTime,String endTime){ +// List list = dataVDService.list(new QueryWrapper() +// .select("line_id","vu_dev","vl_dev","value_type") +// .in("value_type", Arrays.asList("MIN","MAX")) +// .in("phasic_type", Arrays.asList("A","B","C")) +// .ge("time", beginTime) +// .le("time", endTime) +// ); +// List data; +// PublicDTO publicDTO; +// List lineData = new ArrayList<>(); +//// String sql = "SELECT line_id,vu_dev,vl_dev,value_type FROM day_v where (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') and (value_type = 'MIN' or value_type = 'MAX') "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 6 tz('Asia/Shanghai')"; +//// QueryResult sqlResult = influxDbUtils.query(sql); +//// InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); +//// +//// List list = resultMapper.toPOJO(sqlResult, DayVPO.class); +// for (RStatDataVDPO dayV : list) { +// for (Overlimit overlimit : overLimitList) { +// if (Objects.equals(dayV.getLineId(),overlimit.getId())){ +// double vlDev = Math.abs(dayV.getVlDev()/overlimit.getUvoltageDev()); +// double vuDev = Math.abs(dayV.getVuDev()/overlimit.getVoltageDev()); +// data = Stream.of(vuDev,vlDev).collect(Collectors.toList()); +// double result = data.stream().max(Comparator.comparing(Double::doubleValue)).get(); +// publicDTO = new PublicDTO(); +// publicDTO.setId(dayV.getLineId()); +// publicDTO.setData(result); +// lineData.add(publicDTO); +// } +// } +// } +// Comparator comparator = Comparator.comparing(PublicDTO::getData); +// Map> outMap = lineData.stream().collect(Collectors.groupingBy(PublicDTO::getId,Collectors.reducing(BinaryOperator.maxBy(comparator)))); +// return process(outMap); +// } +// +// /** +// * 三相电压不平衡度:各监测点最新的T相数据。 +// */ +// private List getThreePhaseVoltageUnbalance(List overLimitList,String beginTime,String endTime){ +// List list = dataVDService.list(new QueryWrapper() +// .select("line_id","v_unbalance","value_type") +// .in("value_type", Arrays.asList("CP95","MAX")) +// .in("phasic_type", Arrays.asList("T")) +// .ge("time", beginTime) +// .le("time", endTime) +// ); +// List data; +// PublicDTO publicDTO; +// List lineData = new ArrayList<>(); +//// String sql = "SELECT line_id,v_unbalance,value_type FROM day_v where phasic_type = 'T' and (value_type = 'CP95' or value_type = 'MAX') "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 2 tz('Asia/Shanghai')"; +//// InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); +//// +//// QueryResult sqlResult = influxDbUtils.query(sql); +//// List list = resultMapper.toPOJO(sqlResult, DayVPO.class); +// for (RStatDataVDPO dayV : list) { +// for (Overlimit overlimit : overLimitList) { +// if (Objects.equals(dayV.getLineId(),overlimit.getId())){ +// double vUnbalance = Math.abs(dayV.getVUnbalance()/overlimit.getUbalance()); +// data = Stream.of(vUnbalance).collect(Collectors.toList()); +// double result = data.stream().max(Comparator.comparing(Double::doubleValue)).get(); +// publicDTO = new PublicDTO(); +// publicDTO.setId(dayV.getLineId()); +// publicDTO.setData(result); +// lineData.add(publicDTO); +// } +// } +// } +// Comparator comparator = Comparator.comparing(PublicDTO::getData); +// Map> outMap = lineData.stream().collect(Collectors.groupingBy(PublicDTO::getId,Collectors.reducing(BinaryOperator.maxBy(comparator)))); +// return process(outMap); +// } +// +// /** +// * 负序电流:各监测点最新的T相数据。 +// */ +// private List getNegativeSequenceCurrent(List overLimitList,String beginTime,String endTime){ +// List list = dataIDService.list(new QueryWrapper() +// .select("line_id","i_neg","value_type") +// .in("value_type", Arrays.asList("CP95","MAX")) +// .in("phasic_type", Arrays.asList("T")) +// .ge("time", beginTime) +// .le("time", endTime) +// ); +// List data; +// PublicDTO publicDTO; +// List lineData = new ArrayList<>(); +//// String sql = "SELECT line_id,i_neg,value_type FROM day_i where phasic_type = 'T' and (value_type = 'CP95' or value_type = 'MAX') "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 2 tz('Asia/Shanghai')"; +//// InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); +//// +//// QueryResult sqlResult = influxDbUtils.query(sql); +//// List list = resultMapper.toPOJO(sqlResult, DayIPO.class); +// for (RStatDataIDPO dayI : list) { +// for (Overlimit overlimit : overLimitList) { +// if (Objects.equals(dayI.getLineId(),overlimit.getId()) && overlimit.getINeg() != 0){ +// BigDecimal dayiNeg = BigDecimal.valueOf(dayI.getINeg()); +// BigDecimal overNeg = BigDecimal.valueOf(overlimit.getINeg()); +// double outNeg = dayiNeg.divide(overNeg,9, RoundingMode.HALF_UP).doubleValue(); +// double iNeg = Math.abs(outNeg); +// data = Stream.of(iNeg).collect(Collectors.toList()); +// double result = data.stream().max(Comparator.comparing(Double::doubleValue)).get(); +// publicDTO = new PublicDTO(); +// publicDTO.setId(dayI.getLineId()); +// publicDTO.setData(result); +// lineData.add(publicDTO); +// } +// } +// } +// Comparator comparator = Comparator.comparing(PublicDTO::getData); +// Map> outMap = lineData.stream().collect(Collectors.groupingBy(PublicDTO::getId,Collectors.reducing(BinaryOperator.maxBy(comparator)))); +// return process(outMap); +// } +// +// /** +// * 间谐波电压含有率:各监测点最新的A、B、C三相数据。 +// */ +// private List getInterharmonicVoltage(List overLimitList,String beginTime,String endTime){ +// List list = inharmVDService.list(new QueryWrapper() +// .in("value_type", Arrays.asList("CP95")) +// .in("phasic_type", Arrays.asList("A","B","C")) +// .ge("time", beginTime) +// .le("time", endTime) +// ); +// List data; +// PublicDTO publicDTO; +// List lineData = new ArrayList<>(); +//// String sql = "SELECT * FROM day_inharm_v where (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') and value_type = 'CP95' "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 3 tz('Asia/Shanghai')"; +//// InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); +//// +//// QueryResult sqlResult = influxDbUtils.query(sql); +//// List list = resultMapper.toPOJO(sqlResult, DayInharmVPO.class); +// for (RStatDataInharmVDPO dayInharmV : list) { +// for (Overlimit overlimit : overLimitList) { +// if (Objects.equals(dayInharmV.getLineId(),overlimit.getId())){ +// double v1 = Math.abs(dayInharmV.getV1()/overlimit.getInuharm1()); +// double v2 = Math.abs(dayInharmV.getV2()/overlimit.getInuharm2()); +// double v3 = Math.abs(dayInharmV.getV3()/overlimit.getInuharm3()); +// double v4 = Math.abs(dayInharmV.getV4()/overlimit.getInuharm4()); +// double v5 = Math.abs(dayInharmV.getV5()/overlimit.getInuharm5()); +// double v6 = Math.abs(dayInharmV.getV6()/overlimit.getInuharm6()); +// double v7 = Math.abs(dayInharmV.getV7()/overlimit.getInuharm7()); +// double v8 = Math.abs(dayInharmV.getV8()/overlimit.getInuharm8()); +// double v9 = Math.abs(dayInharmV.getV9()/overlimit.getInuharm9()); +// double v10 = Math.abs(dayInharmV.getV10()/overlimit.getInuharm10()); +// double v11 = Math.abs(dayInharmV.getV11()/overlimit.getInuharm11()); +// double v12 = Math.abs(dayInharmV.getV12()/overlimit.getInuharm12()); +// double v13 = Math.abs(dayInharmV.getV13()/overlimit.getInuharm13()); +// double v14 = Math.abs(dayInharmV.getV14()/overlimit.getInuharm14()); +// double v15 = Math.abs(dayInharmV.getV15()/overlimit.getInuharm15()); +// double v16 = Math.abs(dayInharmV.getV16()/overlimit.getInuharm16()); +// data = Stream.of(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16).collect(Collectors.toList()); +// double result = data.stream().max(Comparator.comparing(Double::doubleValue)).get(); +// publicDTO = new PublicDTO(); +// publicDTO.setId(dayInharmV.getLineId()); +// publicDTO.setData(result); +// lineData.add(publicDTO); +// } +// } +// } +// Comparator comparator = Comparator.comparing(PublicDTO::getData); +// Map> outMap = lineData.stream().collect(Collectors.groupingBy(PublicDTO::getId,Collectors.reducing(BinaryOperator.maxBy(comparator)))); +// return process(outMap); +// } +// +// /** +// * 长时电压闪变:各监测点最新的A、B、C三相数据。 +// */ +// private List getVoltageFlicker(List overLimitList,String beginTime,String endTime){ +// List list = pltDService.list(new QueryWrapper() +// .in("value_type", Arrays.asList("CP95")) +// .in("phasic_type", Arrays.asList("A","B","C")) +// .ge("time", beginTime) +// .le("time", endTime) +// ); +// List data; +// PublicDTO publicDTO; +// List lineData = new ArrayList<>(); +// +//// String sql = "SELECT * FROM day_plt where (phasic_type = 'A' or phasic_type = 'B' or phasic_type = 'C') and value_type = 'CP95' "+ processDate(dataDate,Integer.valueOf(BizParamConstant.STAT_BIZ_DAY)) +" group by line_id order by time desc limit 3 tz('Asia/Shanghai')"; +//// InfluxDBResultMapper resultMapper = new InfluxDBResultMapper(); +//// +//// QueryResult sqlResult = influxDbUtils.query(sql); +//// List list = resultMapper.toPOJO(sqlResult, DayPltPO.class); +// for (RStatDataPltDPO dayPlt : list) { +// for (Overlimit overlimit : overLimitList) { +// if (Objects.equals(dayPlt.getLineId(),overlimit.getId())){ +// double plt = Math.abs(dayPlt.getPlt()/overlimit.getFlicker()); +// data = Stream.of(plt).collect(Collectors.toList()); +// double result = data.stream().max(Comparator.comparing(Double::doubleValue)).get(); +// publicDTO = new PublicDTO(); +// publicDTO.setId(dayPlt.getLineId()); +// publicDTO.setData(result); +// lineData.add(publicDTO); +// } +// } +// } +// Comparator comparator = Comparator.comparing(PublicDTO::getData); +// Map> outMap = lineData.stream().collect(Collectors.groupingBy(PublicDTO::getId,Collectors.reducing(BinaryOperator.maxBy(comparator)))); +// return process(outMap); +// } +// +// +//}