diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/ExecutionCenter.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/ExecutionCenter.java index c427343..a783f55 100644 --- a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/ExecutionCenter.java +++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/ExecutionCenter.java @@ -310,53 +310,53 @@ public class ExecutionCenter extends BaseController { // // } // -// @OperateInfo(info = LogEnum.BUSINESS_COMMON) -// @ApiOperation("变电站算法执行链") -// @PostMapping("/substationExecutor") -// @Async("asyncExecutor") -// public void substationExecutor(@RequestBody BaseParam baseParam) { -// String methodDescribe = getMethodDescribe("substationExecutor"); -// //手动判断参数是否合法, -// CalculatedParam calculatedParam = judgeExecuteParam(baseParam); -// // 测点索引 -// DeptGetLineParam deptGetLineParam = new DeptGetLineParam(); -// -// if (CollectionUtils.isEmpty(calculatedParam.getIdList())) { -// Dept data = deptFeignClient.getRootDept().getData(); -// deptGetLineParam.setDeptId(data.getId()); -// List data1 = commTerminalGeneralClient.deptSubStation(deptGetLineParam).getData(); -// List stationIds = new ArrayList<>(); -// for (DeptGetSubStationDTO deptGetSubStationDTO : data1) { -// Collection union = CollectionUtils.union(Optional.ofNullable(deptGetSubStationDTO.getStationIds()).orElse(new ArrayList()), -// Optional.ofNullable(deptGetSubStationDTO.getStationIds()).orElse(new ArrayList())); -// List collect = union.stream().distinct().collect(Collectors.toList()); -// stationIds.addAll(collect); -// } -// stationIds = stationIds.stream().distinct().collect(Collectors.toList()); -// calculatedParam.setIdList(stationIds); -// } -// LiteflowResponse liteflowResponse; -// if (baseParam.isRepair()) { -// //补招时,起始日期、截止日期必填 -// DateTime startDate = DateUtil.parse(baseParam.getBeginTime(), DatePattern.NORM_DATE_FORMAT); -// DateTime endDate = DateUtil.parse(baseParam.getEndTime(), DatePattern.NORM_DATE_FORMAT); -// long betweenDay = DateUtil.betweenDay(startDate, endDate, true); -// //递增日期执行算法链 -// for (int i = 0; i < betweenDay; i++) { -// if (i != 0) { -// startDate = DateUtil.offsetDay(startDate, 1); -// } -// calculatedParam.setDataDate(DateUtil.format(startDate, DatePattern.NORM_DATE_PATTERN)); -// liteflowResponse = flowExecutor.execute2Resp("sub_station", calculatedParam); -// dealResponse(calculatedParam, liteflowResponse, methodDescribe); -// } -// } else { -// //非补招 -// liteflowResponse = flowExecutor.execute2Resp("sub_station", calculatedParam); -// dealResponse(calculatedParam, liteflowResponse, methodDescribe); -// } -// -// } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("变电站算法执行链") + @PostMapping("/substationExecutor") + @Async("asyncExecutor") + public void substationExecutor(@RequestBody BaseParam baseParam) { + String methodDescribe = getMethodDescribe("substationExecutor"); + //手动判断参数是否合法, + CalculatedParam calculatedParam = judgeExecuteParam(baseParam); + // 测点索引 + DeptGetLineParam deptGetLineParam = new DeptGetLineParam(); + + if (CollectionUtils.isEmpty(calculatedParam.getIdList())) { + Dept data = deptFeignClient.getRootDept().getData(); + deptGetLineParam.setDeptId(data.getId()); + List data1 = commTerminalGeneralClient.deptSubStation(deptGetLineParam).getData(); + List stationIds = new ArrayList<>(); + for (DeptGetSubStationDTO deptGetSubStationDTO : data1) { + Collection union = CollectionUtils.union(Optional.ofNullable(deptGetSubStationDTO.getStationIds()).orElse(new ArrayList()), + Optional.ofNullable(deptGetSubStationDTO.getStationIds()).orElse(new ArrayList())); + List collect = union.stream().distinct().collect(Collectors.toList()); + stationIds.addAll(collect); + } + stationIds = stationIds.stream().distinct().collect(Collectors.toList()); + calculatedParam.setIdList(stationIds); + } + LiteflowResponse liteflowResponse; + if (baseParam.isRepair()) { + //补招时,起始日期、截止日期必填 + DateTime startDate = DateUtil.parse(baseParam.getBeginTime(), DatePattern.NORM_DATE_FORMAT); + DateTime endDate = DateUtil.parse(baseParam.getEndTime(), DatePattern.NORM_DATE_FORMAT); + long betweenDay = DateUtil.betweenDay(startDate, endDate, true); + //递增日期执行算法链 + for (int i = 0; i < betweenDay; i++) { + if (i != 0) { + startDate = DateUtil.offsetDay(startDate, 1); + } + calculatedParam.setDataDate(DateUtil.format(startDate, DatePattern.NORM_DATE_PATTERN)); + liteflowResponse = flowExecutor.execute2Resp("sub_station", calculatedParam); + dealResponse(calculatedParam, liteflowResponse, methodDescribe); + } + } else { + //非补招 + liteflowResponse = flowExecutor.execute2Resp("sub_station", calculatedParam); + dealResponse(calculatedParam, liteflowResponse, methodDescribe); + } + + } // // /** // * pms dim母线,电站运行情况 diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/executor/OrgPointExecutor.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/executor/OrgPointExecutor.java index cc841c7..5a8d44b 100644 --- a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/executor/OrgPointExecutor.java +++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/executor/OrgPointExecutor.java @@ -1,7 +1,9 @@ package com.njcn.algorithm.executor; -import com.njcn.algorithm.service.line.IDataIntegrityService; +import com.njcn.algorithm.pojo.bo.CalculatedParam; import com.njcn.algorithm.service.line.IDataOrgPointService; +import com.njcn.algorithm.service.line.IPollutionService; +import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; import com.yomahub.liteflow.annotation.LiteflowComponent; import com.yomahub.liteflow.annotation.LiteflowMethod; import com.yomahub.liteflow.core.NodeComponent; @@ -26,6 +28,9 @@ public class OrgPointExecutor extends BaseExecutor{ @Resource private IDataOrgPointService dataOrgPointService; + @Resource + private IPollutionService pollutionService; + @LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "dataOrgIntegrity", nodeType = NodeTypeEnum.COMMON) public boolean dataOrgIntegrityAccess(NodeComponent bindCmp) { @@ -36,4 +41,39 @@ public class OrgPointExecutor extends BaseExecutor{ dataOrgPointService.dataOrgIntegrity(bindCmp.getRequestData()); } + /** + * 3.4.16. 单位污区图统计(新增) + * + */ + @LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "rStatPollutionOrg", nodeType = NodeTypeEnum.COMMON) + public boolean processRStatPollutionOrgAccess(NodeComponent bindCmp) { + return isAccess(bindCmp); + } + @LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "rStatPollutionOrg", nodeType = NodeTypeEnum.COMMON) + public void processRStatPollutionOrgProcess(NodeComponent bindCmp) { + String tag = bindCmp.getTag(); + CalculatedParam calculatedParam = bindCmp.getRequestData(); + if ("r_stat_pollution_org_d".equalsIgnoreCase(tag)) { + //日表 + pollutionService.handleOrgDay(calculatedParam); + } else if ("r_stat_pollution_org_m".equalsIgnoreCase(tag)) { + //数据补招不执行非日表算法 + if (!calculatedParam.isRepair()) { + //月表 + pollutionService.handleOrgMonth(calculatedParam); + } + }else if ("r_stat_pollution_org_q".equalsIgnoreCase(tag)) { + //数据补招不执行非日表算法 + if (!calculatedParam.isRepair()) { + //季表 + pollutionService.handleOrgQtr(calculatedParam); + } + }else if ("r_stat_pollution_org_y".equalsIgnoreCase(tag)) { + //数据补招不执行非日表算法 + if (!calculatedParam.isRepair()) { + //年表 + pollutionService.handleOrgYear(calculatedParam); + } + } + } } diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/executor/SubStationExecutor.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/executor/SubStationExecutor.java new file mode 100644 index 0000000..6b0fd15 --- /dev/null +++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/executor/SubStationExecutor.java @@ -0,0 +1,64 @@ +package com.njcn.algorithm.executor; + +import com.njcn.algorithm.pojo.bo.CalculatedParam; +import com.njcn.algorithm.service.line.IPollutionService; +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.annotation.LiteflowMethod; +import com.yomahub.liteflow.core.NodeComponent; +import com.yomahub.liteflow.enums.LiteFlowMethodEnum; +import com.yomahub.liteflow.enums.NodeTypeEnum; +import lombok.RequiredArgsConstructor; + +import javax.annotation.Resource; + +/** + * Description: + * Date: 2023/11/10 10:39【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@LiteflowComponent +@RequiredArgsConstructor +public class SubStationExecutor extends BaseExecutor{ + + @Resource + private IPollutionService pollutionService; + + /** + * 3.4.15. 变电站污区图统计(新增) + * + */ + @LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "rStatPollutionSubstation", nodeType = NodeTypeEnum.COMMON) + public boolean processRStatPollutionSubstationAccess(NodeComponent bindCmp) { + return isAccess(bindCmp); + } + @LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "rStatPollutionSubstation", nodeType = NodeTypeEnum.COMMON) + public void processRStatPollutionSubstationProcess(NodeComponent bindCmp) { + String tag = bindCmp.getTag(); + CalculatedParam calculatedParam = bindCmp.getRequestData(); + if ("r_stat_pollution_substation_d".equalsIgnoreCase(tag)) { + //日表 + pollutionService.handleSubstationDay(calculatedParam); + } else if ("r_stat_pollution_substation_m".equalsIgnoreCase(tag)) { + //数据补招不执行非日表算法 + if (!calculatedParam.isRepair()) { + //月表 + pollutionService.handleSubstationMonth(calculatedParam); + } + }else if ("r_stat_pollution_substation_q".equalsIgnoreCase(tag)) { + //数据补招不执行非日表算法 + if (!calculatedParam.isRepair()) { + //季表 + pollutionService.handleSubstationQtr(calculatedParam); + } + }else if ("r_stat_pollution_substation_y".equalsIgnoreCase(tag)) { + //数据补招不执行非日表算法 + if (!calculatedParam.isRepair()) { + //年表 + pollutionService.handleSubstationYear(calculatedParam); + } + } + } + +} diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/DataComAssServiceImpl.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/DataComAssServiceImpl.java index 631439d..13c8a55 100644 --- a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/DataComAssServiceImpl.java +++ b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/DataComAssServiceImpl.java @@ -6,8 +6,11 @@ import com.njcn.algorithm.service.line.IDataComAssService; import com.njcn.dataProcess.api.DataComAssFeignClient; import com.njcn.dataProcess.api.DataFlickerFeignClient; import com.njcn.dataProcess.api.DataVFeignClient; +import com.njcn.dataProcess.api.PqDataVerifyFeignClient; +import com.njcn.dataProcess.enums.DataCleanEnum; import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.pojo.dto.DataComassesDPO; +import com.njcn.dataProcess.pojo.po.PqDataVerify; import com.njcn.dataProcess.util.TimeUtils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -21,6 +24,7 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDateTime; import java.util.*; +import java.util.stream.Collectors; /** * @Description: @@ -43,6 +47,8 @@ public class DataComAssServiceImpl implements IDataComAssService { private DataFlickerFeignClient dataFlickerFeignClient; @Resource private DataComAssFeignClient dataComAssFeignClient; + @Resource + private PqDataVerifyFeignClient pqDataVerifyFeignClient; @Override public void dataComAssHandler(CalculatedParam calculatedParam) { @@ -52,6 +58,7 @@ public class DataComAssServiceImpl implements IDataComAssService { lineParam.setStartTime(TimeUtils.getBeginOfDay(calculatedParam.getDataDate())); lineParam.setEndTime(TimeUtils.getEndOfDay(calculatedParam.getDataDate())); List lineIdList = calculatedParam.getIdList(); + getAbnormalData(lineParam); for (String lineId : lineIdList) { DataComassesDPO rStatComassesDpo = new DataComassesDPO(); rStatComassesDpo.setTime(calculatedParam.getDataDate()); @@ -104,11 +111,31 @@ public class DataComAssServiceImpl implements IDataComAssService { } + /** + * @param lineParam + * @Description: + * @Author: wr + * @Date: 2025/3/11 9:04 + */ + private void getAbnormalData(LineCountEvaluateParam lineParam) { + lineParam.setTableName(DataCleanEnum.DataV.getCode()); + // 获取异常数据,用于排除异常数据 + List pqDataVerifies = pqDataVerifyFeignClient.queryData(lineParam).getData(); + if (CollUtil.isNotEmpty(pqDataVerifies)) { + Map> timeMap = pqDataVerifies.stream() + .collect(Collectors.groupingBy( + PqDataVerify::getLineId, + Collectors.mapping(item -> TimeUtils.LocalDateTimeToString(item.getTime()), Collectors.toList()) + )); + lineParam.setAbnormalTime(timeMap); + } + } + private Map getGeneralData(LineCountEvaluateParam lineParam) { Map outMap = new HashMap<>(30); BigDecimal hundred = BigDecimal.valueOf(100); //************************************电压偏差******************************************** - lineParam.setPhasicType(Arrays.asList("A","B","C")); + lineParam.setPhasicType(Arrays.asList("A", "B", "C")); lineParam.setValueType(Arrays.asList("AVG")); lineParam.setColumnName("vu_dev"); lineParam.setGe("10"); diff --git a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/IDataCrossingServiceImpl2.java b/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/IDataCrossingServiceImpl2.java deleted file mode 100644 index 4a766ac..0000000 --- a/algorithm/algorithm-boot/src/main/java/com/njcn/algorithm/serviceimpl/line/IDataCrossingServiceImpl2.java +++ /dev/null @@ -1,1061 +0,0 @@ -//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 IDataCrossingServiceImpl2 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/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 6ed8afb..eb6584e 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 @@ -7,10 +7,14 @@ 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.*; +import com.njcn.dataProcess.enums.DataCleanEnum; import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.pojo.dto.*; +import com.njcn.dataProcess.pojo.po.PqDataVerify; +import com.njcn.dataProcess.util.TimeUtils; import com.njcn.device.biz.commApi.CommTerminalGeneralClient; import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; +import com.njcn.device.biz.pojo.dto.LineDevGetBandDTO; import com.njcn.device.biz.pojo.dto.LineDevGetDTO; import com.njcn.device.biz.pojo.po.Overlimit; @@ -39,6 +43,7 @@ import java.util.stream.Stream; @RequiredArgsConstructor public class PollutionServiceImpl implements IPollutionService { + private final PqDataVerifyFeignClient pqDataVerifyFeignClient; private final DicDataFeignClient dicDataFeignClient; private final CommTerminalGeneralClient commTerminalGeneralClient; private final DataVFeignClient dataVFeignClient; @@ -47,10 +52,10 @@ public class PollutionServiceImpl implements IPollutionService { private final DataIFeignClient dataIFeignClient; private final DataPollutionFeignClient dataPollutionFeignClient; + @Override public void handleDay(CalculatedParam calculatedParam) { List pollutionList; - List dictDataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.POLLUTION_STATIS.getCode()).getData(); Map dictData = dictDataList.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); LocalDate local = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate()); @@ -62,10 +67,9 @@ public class PollutionServiceImpl implements IPollutionService { LineCountEvaluateParam lineCountEvaluateParam = new LineCountEvaluateParam(); lineCountEvaluateParam.setLineId(idList); - lineCountEvaluateParam.setStartTime(beginDay); lineCountEvaluateParam.setEndTime(endDay); - + getAbnormalData(lineCountEvaluateParam); //指标数据获取 Map harmonicVoltageList = getHarmonicVoltage(lineCountEvaluateParam, limitMap); Map harmonicCurrentList = getHarmonicCurrent(lineCountEvaluateParam, limitMap); @@ -88,52 +92,279 @@ public class PollutionServiceImpl implements IPollutionService { @Override public void handleOrgDay(CalculatedParam calculatedParam) { - LocalDate local = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate()); - QueryWrapper queryWrapper = new QueryWrapper<>(); - + List info = new ArrayList<>(); + //远程接口获取分钟数据 + LineCountEvaluateParam lineParam = new LineCountEvaluateParam(); + lineParam.setStartTime(TimeUtils.getBeginOfDay(calculatedParam.getDataDate())); + lineParam.setEndTime(TimeUtils.getEndOfDay(calculatedParam.getDataDate())); + LocalDate localDate = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate()); for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) { - Collection union = CollectionUtils.union(Optional.ofNullable(deptGetChildrenMoreDTO.getLineBaseList()).orElse(new ArrayList<>()), - Optional.ofNullable(deptGetChildrenMoreDTO.getPwMonitorIds()).orElse(new ArrayList<>())); + Collection union = CollectionUtils.union + (Optional.ofNullable(deptGetChildrenMoreDTO.getLineBaseList()).orElse(new ArrayList<>()), + Optional.ofNullable(deptGetChildrenMoreDTO.getPwMonitorIds()).orElse(new ArrayList<>())); List lineIds = union.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); - + if (CollUtil.isNotEmpty(lineIds)) { + lineParam.setLineId(lineIds); + List data = dataPollutionFeignClient.getRawData(lineParam).getData(); + Map> pollutionMap = data.stream().collect(Collectors.groupingBy(DataPollutionD::getPollutionType)); + pollutionMap.forEach((key, value) -> { + DataPollutionOrgD orgD = new DataPollutionOrgD(); + orgD.setOrgId(deptGetChildrenMoreDTO.getUnitId()); + orgD.setDataDate(localDate); + orgD.setPollutionType(key); + orgD.setValue(value.stream().max(Comparator.comparing(DataPollutionD::getValue)).get().getValue()); + info.add(orgD); + }); + } + } + if (CollUtil.isNotEmpty(info)) { + dataPollutionFeignClient.batchInsertionOrgD(info); } } @Override public void handleOrgMonth(CalculatedParam calculatedParam) { - + List info = new ArrayList<>(); + //远程接口获取分钟数据 + LineCountEvaluateParam lineParam = new LineCountEvaluateParam(); + lineParam.setStartTime(TimeUtils.getBeginOfMonth(calculatedParam.getDataDate())); + lineParam.setEndTime(TimeUtils.getEndOfMonth(calculatedParam.getDataDate())); + LocalDate localDate = LocalDateTimeUtil.parseDate(lineParam.getStartTime()); + for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) { + Collection union = CollectionUtils.union + (Optional.ofNullable(deptGetChildrenMoreDTO.getLineBaseList()).orElse(new ArrayList<>()), + Optional.ofNullable(deptGetChildrenMoreDTO.getPwMonitorIds()).orElse(new ArrayList<>())); + List lineIds = union.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(lineIds)) { + lineParam.setLineId(lineIds); + List data = dataPollutionFeignClient.getRawDataOrgD(lineParam).getData(); + Map> pollutionMap = data.stream().collect(Collectors.groupingBy(DataPollutionOrgD::getPollutionType)); + pollutionMap.forEach((key, value) -> { + DataPollutionOrgM orgD = new DataPollutionOrgM(); + orgD.setOrgId(deptGetChildrenMoreDTO.getUnitId()); + orgD.setDataDate(localDate); + orgD.setPollutionType(key); + orgD.setValue(value.stream().max(Comparator.comparing(DataPollutionOrgD::getValue)).get().getValue()); + info.add(orgD); + }); + } + } + if (CollUtil.isNotEmpty(info)) { + dataPollutionFeignClient.batchInsertionOrgM(info); + } } @Override public void handleOrgQtr(CalculatedParam calculatedParam) { - + List info = new ArrayList<>(); + //远程接口获取分钟数据 + LineCountEvaluateParam lineParam = new LineCountEvaluateParam(); + lineParam.setStartTime(TimeUtils.getBeginOfQuarter(calculatedParam.getDataDate())); + lineParam.setEndTime(TimeUtils.getEndOfQuarter(calculatedParam.getDataDate())); + LocalDate localDate = LocalDateTimeUtil.parseDate(lineParam.getStartTime()); + for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) { + Collection union = CollectionUtils.union + (Optional.ofNullable(deptGetChildrenMoreDTO.getLineBaseList()).orElse(new ArrayList<>()), + Optional.ofNullable(deptGetChildrenMoreDTO.getPwMonitorIds()).orElse(new ArrayList<>())); + List lineIds = union.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(lineIds)) { + lineParam.setLineId(lineIds); + List data = dataPollutionFeignClient.getRawDataOrgM(lineParam).getData(); + Map> pollutionMap = data.stream().collect(Collectors.groupingBy(DataPollutionOrgM::getPollutionType)); + pollutionMap.forEach((key, value) -> { + DataPollutionOrgQ orgD = new DataPollutionOrgQ(); + orgD.setOrgId(deptGetChildrenMoreDTO.getUnitId()); + orgD.setDataDate(localDate); + orgD.setPollutionType(key); + orgD.setValue(value.stream().max(Comparator.comparing(DataPollutionOrgM::getValue)).get().getValue()); + info.add(orgD); + }); + } + } + if (CollUtil.isNotEmpty(info)) { + dataPollutionFeignClient.batchInsertionOrgQ(info); + } } @Override public void handleOrgYear(CalculatedParam calculatedParam) { - + List info = new ArrayList<>(); + //远程接口获取分钟数据 + LineCountEvaluateParam lineParam = new LineCountEvaluateParam(); + lineParam.setStartTime(TimeUtils.getBeginOfYear(calculatedParam.getDataDate())); + lineParam.setEndTime(TimeUtils.getEndOfYear(calculatedParam.getDataDate())); + LocalDate localDate = LocalDateTimeUtil.parseDate(lineParam.getStartTime()); + for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) { + Collection union = CollectionUtils.union + (Optional.ofNullable(deptGetChildrenMoreDTO.getLineBaseList()).orElse(new ArrayList<>()), + Optional.ofNullable(deptGetChildrenMoreDTO.getPwMonitorIds()).orElse(new ArrayList<>())); + List lineIds = union.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(lineIds)) { + lineParam.setLineId(lineIds); + List data = dataPollutionFeignClient.getRawDataOrgQ(lineParam).getData(); + Map> pollutionMap = data.stream().collect(Collectors.groupingBy(DataPollutionOrgQ::getPollutionType)); + pollutionMap.forEach((key, value) -> { + DataPollutionOrgY orgD = new DataPollutionOrgY(); + orgD.setOrgId(deptGetChildrenMoreDTO.getUnitId()); + orgD.setDataDate(localDate); + orgD.setPollutionType(key); + orgD.setValue(value.stream().max(Comparator.comparing(DataPollutionOrgQ::getValue)).get().getValue()); + info.add(orgD); + }); + } + } + if (CollUtil.isNotEmpty(info)) { + dataPollutionFeignClient.batchInsertionOrgY(info); + } } @Override public void handleSubstationDay(CalculatedParam calculatedParam) { - + List info = new ArrayList<>(); + //远程接口获取分钟数据 + LineCountEvaluateParam lineParam = new LineCountEvaluateParam(); + lineParam.setStartTime(TimeUtils.getBeginOfDay(calculatedParam.getDataDate())); + lineParam.setEndTime(TimeUtils.getEndOfDay(calculatedParam.getDataDate())); + LocalDate localDate = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate()); + for (String substationId : calculatedParam.getIdList()) { + LineDevGetBandDTO data = commTerminalGeneralClient.substationGetLine(substationId).getData(); + Collection union = CollectionUtils.union(Optional.ofNullable(data.getPwList()).orElse(new ArrayList<>()), + Optional.ofNullable(data.getZwList()).orElse(new ArrayList<>())); + List lindIds = union.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(lindIds)) { + lineParam.setLineId(lindIds); + List pollutionDS = dataPollutionFeignClient.getRawData(lineParam).getData(); + Map> pollutionMap = pollutionDS.stream().collect(Collectors.groupingBy(DataPollutionD::getPollutionType)); + pollutionMap.forEach((key, value) -> { + DataPollutionSubstationD orgD = new DataPollutionSubstationD(); + orgD.setSubstationId(substationId); + orgD.setDataDate(localDate); + orgD.setPollutionType(key); + orgD.setValue(value.stream().max(Comparator.comparing(DataPollutionD::getValue)).get().getValue()); + info.add(orgD); + }); + } + } + if (CollUtil.isNotEmpty(info)) { + dataPollutionFeignClient.batchInsertionSubstationD(info); + } } @Override public void handleSubstationMonth(CalculatedParam calculatedParam) { - + List info = new ArrayList<>(); + //远程接口获取分钟数据 + LineCountEvaluateParam lineParam = new LineCountEvaluateParam(); + lineParam.setStartTime(TimeUtils.getBeginOfMonth(calculatedParam.getDataDate())); + lineParam.setEndTime(TimeUtils.getEndOfMonth(calculatedParam.getDataDate())); + LocalDate localDate = LocalDateTimeUtil.parseDate(lineParam.getStartTime()); + for (String substationId : calculatedParam.getIdList()) { + LineDevGetBandDTO data = commTerminalGeneralClient.substationGetLine(substationId).getData(); + Collection union = CollectionUtils.union(Optional.ofNullable(data.getPwList()).orElse(new ArrayList<>()), + Optional.ofNullable(data.getZwList()).orElse(new ArrayList<>())); + List lindIds = union.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(lindIds)) { + lineParam.setLineId(lindIds); + List pollutionDS = dataPollutionFeignClient.getRawDataSubstationD(lineParam).getData(); + Map> pollutionMap = pollutionDS.stream().collect(Collectors.groupingBy(DataPollutionSubstationD::getPollutionType)); + pollutionMap.forEach((key, value) -> { + DataPollutionSubstationM orgD = new DataPollutionSubstationM(); + orgD.setSubstationId(substationId); + orgD.setDataDate(localDate); + orgD.setPollutionType(key); + orgD.setValue(value.stream().max(Comparator.comparing(DataPollutionSubstationD::getValue)).get().getValue()); + info.add(orgD); + }); + } + } + if (CollUtil.isNotEmpty(info)) { + dataPollutionFeignClient.batchInsertionSubstationM(info); + } } @Override public void handleSubstationQtr(CalculatedParam calculatedParam) { - + List info = new ArrayList<>(); + //远程接口获取分钟数据 + LineCountEvaluateParam lineParam = new LineCountEvaluateParam(); + lineParam.setStartTime(TimeUtils.getBeginOfQuarter(calculatedParam.getDataDate())); + lineParam.setEndTime(TimeUtils.getEndOfQuarter(calculatedParam.getDataDate())); + LocalDate localDate = LocalDateTimeUtil.parseDate(lineParam.getStartTime()); + for (String substationId : calculatedParam.getIdList()) { + LineDevGetBandDTO data = commTerminalGeneralClient.substationGetLine(substationId).getData(); + Collection union = CollectionUtils.union(Optional.ofNullable(data.getPwList()).orElse(new ArrayList<>()), + Optional.ofNullable(data.getZwList()).orElse(new ArrayList<>())); + List lindIds = union.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(lindIds)) { + lineParam.setLineId(lindIds); + List pollutionDS = dataPollutionFeignClient.getRawDataSubstationM(lineParam).getData(); + Map> pollutionMap = pollutionDS.stream().collect(Collectors.groupingBy(DataPollutionSubstationM::getPollutionType)); + pollutionMap.forEach((key, value) -> { + DataPollutionSubstationQ orgD = new DataPollutionSubstationQ(); + orgD.setSubstationId(substationId); + orgD.setDataDate(localDate); + orgD.setPollutionType(key); + orgD.setValue(value.stream().max(Comparator.comparing(DataPollutionSubstationM::getValue)).get().getValue()); + info.add(orgD); + }); + } + } + if (CollUtil.isNotEmpty(info)) { + dataPollutionFeignClient.batchInsertionSubstationQ(info); + } } @Override public void handleSubstationYear(CalculatedParam calculatedParam) { - + List info = new ArrayList<>(); + //远程接口获取分钟数据 + LineCountEvaluateParam lineParam = new LineCountEvaluateParam(); + lineParam.setStartTime(TimeUtils.getBeginOfYear(calculatedParam.getDataDate())); + lineParam.setEndTime(TimeUtils.getEndOfYear(calculatedParam.getDataDate())); + LocalDate localDate = LocalDateTimeUtil.parseDate(lineParam.getStartTime()); + for (String substationId : calculatedParam.getIdList()) { + LineDevGetBandDTO data = commTerminalGeneralClient.substationGetLine(substationId).getData(); + Collection union = CollectionUtils.union(Optional.ofNullable(data.getPwList()).orElse(new ArrayList<>()), + Optional.ofNullable(data.getZwList()).orElse(new ArrayList<>())); + List lindIds = union.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(lindIds)) { + lineParam.setLineId(lindIds); + List pollutionDS = dataPollutionFeignClient.getRawDataSubstationQ(lineParam).getData(); + Map> pollutionMap = pollutionDS.stream().collect(Collectors.groupingBy(DataPollutionSubstationQ::getPollutionType)); + pollutionMap.forEach((key, value) -> { + DataPollutionSubstationY orgD = new DataPollutionSubstationY(); + orgD.setSubstationId(substationId); + orgD.setDataDate(localDate); + orgD.setPollutionType(key); + orgD.setValue(value.stream().max(Comparator.comparing(DataPollutionSubstationQ::getValue)).get().getValue()); + info.add(orgD); + }); + } + } + if (CollUtil.isNotEmpty(info)) { + dataPollutionFeignClient.batchInsertionSubstationY(info); + } } + /** + * @param lineParam + * @Description: + * @Author: wr + * @Date: 2025/3/11 9:04 + */ + private void getAbnormalData(LineCountEvaluateParam lineParam) { + lineParam.setTableName(DataCleanEnum.DataV.getCode()); + // 获取异常数据,用于排除异常数据 + List pqDataVerifies = pqDataVerifyFeignClient.queryData(lineParam).getData(); + if (CollUtil.isNotEmpty(pqDataVerifies)) { + Map> timeMap = pqDataVerifies.stream() + .collect(Collectors.groupingBy( + PqDataVerify::getLineId, + Collectors.mapping(item -> TimeUtils.LocalDateTimeToString(item.getTime()), Collectors.toList()) + )); + lineParam.setAbnormalTime(timeMap); + } + } private void assPollution(String lineId, LocalDate local, DictData dic, Map map, List result) { DataPollutionD tem; @@ -155,10 +386,10 @@ public class PollutionServiceImpl implements IPollutionService { * 参数拼装处理 */ private List processPollutionList(LocalDate local, List lineIds, Map dictData, - Map harmonicVoltageMap, Map harmonicCurrentMap, - Map frequencyDeviationMap, Map voltageDeviationMap, - Map threePhaseVoltageMap, Map negativeSequenceMap, - Map interharmonicVoltageMap, Map voltageFlickerMap) { + Map harmonicVoltageMap, Map harmonicCurrentMap, + Map frequencyDeviationMap, Map voltageDeviationMap, + Map threePhaseVoltageMap, Map negativeSequenceMap, + Map interharmonicVoltageMap, Map voltageFlickerMap) { List result = new ArrayList<>(); DictData dicVHarmonic = dictData.get("V_Harmonic"); DictData dicIHarmonic = dictData.get("I_All"); diff --git a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/DataPollutionFeignClient.java b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/DataPollutionFeignClient.java index 27050f5..cd32569 100644 --- a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/DataPollutionFeignClient.java +++ b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/DataPollutionFeignClient.java @@ -3,7 +3,8 @@ package com.njcn.dataProcess.api; import com.njcn.common.pojo.constant.ServerInfo; import com.njcn.common.pojo.response.HttpResult; import com.njcn.dataProcess.api.fallback.DataPollutionFeignClientFallbackFactory; -import com.njcn.dataProcess.pojo.dto.DataPollutionD; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.*; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -15,11 +16,56 @@ import java.util.List; * @version 1.0.0 * @date 2022年01月05日 15:11 */ -@FeignClient(value = ServerInfo.PLATFORM_DATA_PROCESSING_BOOT, path = "/dataPollution", fallbackFactory = DataPollutionFeignClientFallbackFactory.class, contextId = "dataPollution") +@FeignClient(value = ServerInfo.PLATFORM_DATA_PROCESSING_BOOT, path = "/dataPollution", fallbackFactory = DataPollutionFeignClientFallbackFactory.class, contextId = "dataPollution") public interface DataPollutionFeignClient { @PostMapping("/batchInsertion") HttpResult batchInsertion(@RequestBody List dataIDTOList); + @PostMapping("/getRawData") + HttpResult> getRawData(@RequestBody LineCountEvaluateParam lineParam); + @PostMapping("/batchInsertionOrgD") + HttpResult batchInsertionOrgD(@RequestBody List dataIDTOList); + @PostMapping("/getRawDataOrgD") + HttpResult> getRawDataOrgD(@RequestBody LineCountEvaluateParam lineParam); + + @PostMapping("/batchInsertionOrgM") + HttpResult batchInsertionOrgM(@RequestBody List dataIDTOList); + @PostMapping("/getRawDataOrgM") + HttpResult> getRawDataOrgM(@RequestBody LineCountEvaluateParam lineParam); + + + @PostMapping("/batchInsertionOrgQ") + HttpResult batchInsertionOrgQ(@RequestBody List dataIDTOList); + @PostMapping("/getRawDataOrgQ") + HttpResult> getRawDataOrgQ(@RequestBody LineCountEvaluateParam lineParam); + + + @PostMapping("/batchInsertionOrgY") + HttpResult batchInsertionOrgY(@RequestBody List dataIDTOList); + @PostMapping("/getRawDataOrgY") + HttpResult> getRawDataOrgY(@RequestBody LineCountEvaluateParam lineParam); + + + @PostMapping("/batchInsertionSubstationD") + HttpResult batchInsertionSubstationD(@RequestBody List dataIDTOList); + @PostMapping("/getRawDataSubstationD") + HttpResult> getRawDataSubstationD(@RequestBody LineCountEvaluateParam lineParam); + + @PostMapping("/batchInsertionSubstationM") + HttpResult batchInsertionSubstationM(@RequestBody List dataIDTOList); + @PostMapping("/getRawDataSubstationM") + HttpResult> getRawDataSubstationM(@RequestBody LineCountEvaluateParam lineParam); + + + @PostMapping("/batchInsertionSubstationQ") + HttpResult batchInsertionSubstationQ(@RequestBody List dataIDTOList); + @PostMapping("/getRawDataSubstationQ") + HttpResult> getRawDataSubstationQ(@RequestBody LineCountEvaluateParam lineParam); + + @PostMapping("/batchInsertionSubstationY") + HttpResult batchInsertionSubstationY(@RequestBody List dataIDTOList); + @PostMapping("/getRawDataSubstationY") + HttpResult> getRawDataSubstationY(@RequestBody LineCountEvaluateParam lineParam); } diff --git a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/fallback/DataPollutionFeignClientFallbackFactory.java b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/fallback/DataPollutionFeignClientFallbackFactory.java index 6f4ce07..871ada0 100644 --- a/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/fallback/DataPollutionFeignClientFallbackFactory.java +++ b/data-processing/data-processing-api/src/main/java/com/njcn/dataProcess/api/fallback/DataPollutionFeignClientFallbackFactory.java @@ -4,21 +4,13 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.response.HttpResult; import com.njcn.dataProcess.api.DataPollutionFeignClient; -import com.njcn.dataProcess.api.DataVFeignClient; -import com.njcn.dataProcess.dto.DataVDTO; -import com.njcn.dataProcess.dto.MeasurementCountDTO; import com.njcn.dataProcess.param.LineCountEvaluateParam; -import com.njcn.dataProcess.pojo.dto.CommonMinuteDto; -import com.njcn.dataProcess.pojo.dto.DataPollutionD; -import com.njcn.dataProcess.pojo.dto.DataVCvtDto; -import com.njcn.dataProcess.pojo.dto.DataVDto; +import com.njcn.dataProcess.pojo.dto.*; import com.njcn.dataProcess.util.DataProcessingEnumUtil; import feign.hystrix.FallbackFactory; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; -import org.springframework.web.bind.annotation.RequestBody; -import java.time.LocalDateTime; import java.util.List; /** @@ -48,7 +40,109 @@ public class DataPollutionFeignClientFallbackFactory implements FallbackFactory< @Override public HttpResult batchInsertion(List dataVDTOList) { - log.error("{}异常,降级处理,异常为:{}","批量插入数据",cause.toString()); + log.error("{}异常,降级处理,异常为:{}","监测点批量插入",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + @Override + public HttpResult> getRawData(LineCountEvaluateParam lineParam) { + log.error("{}异常,降级处理,异常为:{}","获取监测点原始数据",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + @Override + public HttpResult batchInsertionOrgD(List dataIDTOList) { + log.error("{}异常,降级处理,异常为:{}","部门(天)批量插入",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + @Override + public HttpResult> getRawDataOrgD(LineCountEvaluateParam lineParam) { + log.error("{}异常,降级处理,异常为:{}","获取部门(天)原始数据",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + @Override + public HttpResult batchInsertionOrgM(List dataIDTOList) { + log.error("{}异常,降级处理,异常为:{}","部门(月)批量插入",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + @Override + public HttpResult> getRawDataOrgM(LineCountEvaluateParam lineParam) { + log.error("{}异常,降级处理,异常为:{}","获取部门(月)原始数据",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + @Override + public HttpResult batchInsertionOrgQ(List dataIDTOList) { + log.error("{}异常,降级处理,异常为:{}","部门(季)批量插入",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + @Override + public HttpResult> getRawDataOrgQ(LineCountEvaluateParam lineParam) { + log.error("{}异常,降级处理,异常为:{}","获取部门(季)原始数据",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + @Override + public HttpResult batchInsertionOrgY(List dataIDTOList) { + log.error("{}异常,降级处理,异常为:{}","部门(年)批量插入",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + @Override + public HttpResult> getRawDataOrgY(LineCountEvaluateParam lineParam) { + log.error("{}异常,降级处理,异常为:{}","获取部门(年)原始数据",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + @Override + public HttpResult batchInsertionSubstationD(List dataIDTOList) { + log.error("{}异常,降级处理,异常为:{}","变电站(天)批量插入",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + @Override + public HttpResult> getRawDataSubstationD(LineCountEvaluateParam lineParam) { + log.error("{}异常,降级处理,异常为:{}","获取变电站(天)原始数据",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + @Override + public HttpResult batchInsertionSubstationM(List dataIDTOList) { + log.error("{}异常,降级处理,异常为:{}","变电站(月)批量插入",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + @Override + public HttpResult> getRawDataSubstationM(LineCountEvaluateParam lineParam) { + log.error("{}异常,降级处理,异常为:{}","获取变电站(月)原始数据",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + @Override + public HttpResult batchInsertionSubstationQ(List dataIDTOList) { + log.error("{}异常,降级处理,异常为:{}","变电站(季)批量插入",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + @Override + public HttpResult> getRawDataSubstationQ(LineCountEvaluateParam lineParam) { + log.error("{}异常,降级处理,异常为:{}","获取变电站(季)原始数据",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + @Override + public HttpResult batchInsertionSubstationY(List dataIDTOList) { + log.error("{}异常,降级处理,异常为:{}","变电站(年)批量插入",cause.toString()); + throw new BusinessException(finalExceptionEnum); + } + + @Override + public HttpResult> getRawDataSubstationY(LineCountEvaluateParam lineParam) { + log.error("{}异常,降级处理,异常为:{}","获取变电站(年)原始数据",cause.toString()); throw new BusinessException(finalExceptionEnum); } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataPollutionController.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataPollutionController.java index c336c81..6a1de8e 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataPollutionController.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataPollutionController.java @@ -8,6 +8,7 @@ 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.param.LineCountEvaluateParam; import com.njcn.dataProcess.pojo.dto.DataPollutionD; import com.njcn.dataProcess.service.IDataPollution; import com.njcn.web.controller.BaseController; @@ -42,10 +43,9 @@ public class DataPollutionController extends BaseController { @InsertBean private IDataPollution dataPollutionInsert; - @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD) @PostMapping("/batchInsertion") - @ApiOperation("批量插入") + @ApiOperation("监测点批量插入") public HttpResult batchInsertion(@RequestBody List dataIDTOList) { String methodDescribe = getMethodDescribe("batchInsertion"); dataPollutionInsert.batchInsertion(dataIDTOList); @@ -53,6 +53,13 @@ public class DataPollutionController extends BaseController { } - + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getRawData") + @ApiOperation("获取监测点原始数据") + public HttpResult> getRawData(@RequestBody LineCountEvaluateParam lineParam) { + String methodDescribe = getMethodDescribe("getRawData"); + List rawData = dataPollutionInsert.getRawData(lineParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rawData, methodDescribe); + } } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataPollutionOrgDController.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataPollutionOrgDController.java new file mode 100644 index 0000000..28150cd --- /dev/null +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataPollutionOrgDController.java @@ -0,0 +1,65 @@ +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.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionOrgD; +import com.njcn.dataProcess.service.IDataPollutionOrgD; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +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.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @author hongawen + * @version 1.0 + * @data 2024/11/6 19:48 + */ +@Validated +@Slf4j +@Controller +@RestController +@RequestMapping("/dataPollution") +@Api(tags = "污区图数据") +public class DataPollutionOrgDController extends BaseController { + + @QueryBean + private IDataPollutionOrgD dataPollutionOrgDQuery; + + @InsertBean + private IDataPollutionOrgD dataPollutionOrgDInsert; + + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD) + @PostMapping("/batchInsertionOrgD") + @ApiOperation("部门(天)批量插入") + public HttpResult batchInsertionOrgD(@RequestBody List dataIDTOList) { + String methodDescribe = getMethodDescribe("batchInsertionOrgD"); + dataPollutionOrgDInsert.batchInsertion(dataIDTOList); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getRawDataOrgD") + @ApiOperation("获取部门(天)原始数据") + public HttpResult> getRawDataOrgD(@RequestBody LineCountEvaluateParam lineParam) { + String methodDescribe = getMethodDescribe("getRawDataOrgD"); + List rawData = dataPollutionOrgDInsert.getRawData(lineParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rawData, methodDescribe); + } + +} diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataPollutionOrgMController.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataPollutionOrgMController.java new file mode 100644 index 0000000..697f62f --- /dev/null +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataPollutionOrgMController.java @@ -0,0 +1,65 @@ +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.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionOrgM; +import com.njcn.dataProcess.service.IDataPollutionOrgM; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +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.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @author hongawen + * @version 1.0 + * @data 2024/11/6 19:48 + */ +@Validated +@Slf4j +@Controller +@RestController +@RequestMapping("/dataPollution") +@Api(tags = "污区图数据") +public class DataPollutionOrgMController extends BaseController { + + @QueryBean + private IDataPollutionOrgM dataPollutionOrgMQuery; + + @InsertBean + private IDataPollutionOrgM dataPollutionOrgMInsert; + + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD) + @PostMapping("/batchInsertionOrgM") + @ApiOperation("部门(月)批量插入") + public HttpResult batchInsertionOrgM(@RequestBody List dataIDTOList) { + String methodDescribe = getMethodDescribe("batchInsertionOrgM"); + dataPollutionOrgMInsert.batchInsertion(dataIDTOList); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getRawDataOrgM") + @ApiOperation("获取部门(月)原始数据") + public HttpResult> getRawDataOrgM(@RequestBody LineCountEvaluateParam lineParam) { + String methodDescribe = getMethodDescribe("getRawDataOrgM"); + List rawData = dataPollutionOrgMInsert.getRawData(lineParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rawData, methodDescribe); + } + +} diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataPollutionOrgQController.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataPollutionOrgQController.java new file mode 100644 index 0000000..7da6504 --- /dev/null +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataPollutionOrgQController.java @@ -0,0 +1,65 @@ +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.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionOrgQ; +import com.njcn.dataProcess.service.IDataPollutionOrgQ; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +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.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @author hongawen + * @version 1.0 + * @data 2024/11/6 19:48 + */ +@Validated +@Slf4j +@Controller +@RestController +@RequestMapping("/dataPollution") +@Api(tags = "污区图数据") +public class DataPollutionOrgQController extends BaseController { + + @QueryBean + private IDataPollutionOrgQ dataPollutionOrgQQuery; + + @InsertBean + private IDataPollutionOrgQ dataPollutionOrgQInsert; + + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD) + @PostMapping("/batchInsertionOrgQ") + @ApiOperation("部门(季)批量插入") + public HttpResult batchInsertionOrgQ(@RequestBody List dataIDTOList) { + String methodDescribe = getMethodDescribe("batchInsertionOrgQ"); + dataPollutionOrgQInsert.batchInsertion(dataIDTOList); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getRawDataOrgQ") + @ApiOperation("获取部门(季)原始数据") + public HttpResult> getRawDataOrgQ(@RequestBody LineCountEvaluateParam lineParam) { + String methodDescribe = getMethodDescribe("getRawDataOrgQ"); + List rawData = dataPollutionOrgQInsert.getRawData(lineParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rawData, methodDescribe); + } + +} diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataPollutionOrgYController.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataPollutionOrgYController.java new file mode 100644 index 0000000..67dd28c --- /dev/null +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataPollutionOrgYController.java @@ -0,0 +1,65 @@ +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.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionOrgY; +import com.njcn.dataProcess.service.IDataPollutionOrgY; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +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.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @author hongawen + * @version 1.0 + * @data 2024/11/6 19:48 + */ +@Validated +@Slf4j +@Controller +@RestController +@RequestMapping("/dataPollution") +@Api(tags = "污区图数据") +public class DataPollutionOrgYController extends BaseController { + + @QueryBean + private IDataPollutionOrgY dataPollutionOrgYQuery; + + @InsertBean + private IDataPollutionOrgY dataPollutionOrgYInsert; + + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD) + @PostMapping("/batchInsertionOrgY") + @ApiOperation("部门(年)批量插入") + public HttpResult batchInsertionOrgY(@RequestBody List dataIDTOList) { + String methodDescribe = getMethodDescribe("batchInsertionOrgY"); + dataPollutionOrgYInsert.batchInsertion(dataIDTOList); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getRawDataOrgY") + @ApiOperation("获取部门(年)原始数据") + public HttpResult> getRawDataOrgY(@RequestBody LineCountEvaluateParam lineParam) { + String methodDescribe = getMethodDescribe("getRawDataOrgY"); + List rawData = dataPollutionOrgYInsert.getRawData(lineParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rawData, methodDescribe); + } + +} diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataPollutionSubstationDController.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataPollutionSubstationDController.java new file mode 100644 index 0000000..302cf95 --- /dev/null +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataPollutionSubstationDController.java @@ -0,0 +1,65 @@ +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.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionSubstationD; +import com.njcn.dataProcess.service.IDataPollutionSubstationD; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +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.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @author hongawen + * @version 1.0 + * @data 2024/11/6 19:48 + */ +@Validated +@Slf4j +@Controller +@RestController +@RequestMapping("/dataPollution") +@Api(tags = "污区图数据") +public class DataPollutionSubstationDController extends BaseController { + + @QueryBean + private IDataPollutionSubstationD dataPollutionSubstationDQuery; + + @InsertBean + private IDataPollutionSubstationD dataPollutionSubstationDInsert; + + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD) + @PostMapping("/batchInsertionSubstationD") + @ApiOperation("变电站(天)批量插入") + public HttpResult batchInsertionSubstationD(@RequestBody List dataIDTOList) { + String methodDescribe = getMethodDescribe("batchInsertionSubstationD"); + dataPollutionSubstationDInsert.batchInsertion(dataIDTOList); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getRawDataSubstationD") + @ApiOperation("获取变电站(天)原始数据") + public HttpResult> getRawDataSubstationD(@RequestBody LineCountEvaluateParam lineParam) { + String methodDescribe = getMethodDescribe("getRawDataSubstationD"); + List rawData = dataPollutionSubstationDInsert.getRawData(lineParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rawData, methodDescribe); + } + +} diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataPollutionSubstationMController.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataPollutionSubstationMController.java new file mode 100644 index 0000000..71aefd0 --- /dev/null +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataPollutionSubstationMController.java @@ -0,0 +1,65 @@ +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.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionSubstationM; +import com.njcn.dataProcess.service.IDataPollutionSubstationM; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +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.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @author hongawen + * @version 1.0 + * @data 2024/11/6 19:48 + */ +@Validated +@Slf4j +@Controller +@RestController +@RequestMapping("/dataPollution") +@Api(tags = "污区图数据") +public class DataPollutionSubstationMController extends BaseController { + + @QueryBean + private IDataPollutionSubstationM dataPollutionSubstationDQuery; + + @InsertBean + private IDataPollutionSubstationM dataPollutionSubstationDInsert; + + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD) + @PostMapping("/batchInsertionSubstationM") + @ApiOperation("变电站(月)批量插入") + public HttpResult batchInsertionSubstationM(@RequestBody List dataIDTOList) { + String methodDescribe = getMethodDescribe("batchInsertionSubstationM"); + dataPollutionSubstationDInsert.batchInsertion(dataIDTOList); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getRawDataSubstationM") + @ApiOperation("获取变电站(月)原始数据") + public HttpResult> getRawDataSubstationM(@RequestBody LineCountEvaluateParam lineParam) { + String methodDescribe = getMethodDescribe("getRawDataSubstationM"); + List rawData = dataPollutionSubstationDInsert.getRawData(lineParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rawData, methodDescribe); + } + +} diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataPollutionSubstationQController.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataPollutionSubstationQController.java new file mode 100644 index 0000000..a422e80 --- /dev/null +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataPollutionSubstationQController.java @@ -0,0 +1,65 @@ +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.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionSubstationQ; +import com.njcn.dataProcess.service.IDataPollutionSubstationQ; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +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.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @author hongawen + * @version 1.0 + * @data 2024/11/6 19:48 + */ +@Validated +@Slf4j +@Controller +@RestController +@RequestMapping("/dataPollution") +@Api(tags = "污区图数据") +public class DataPollutionSubstationQController extends BaseController { + + @QueryBean + private IDataPollutionSubstationQ dataPollutionSubstationDQuery; + + @InsertBean + private IDataPollutionSubstationQ dataPollutionSubstationDInsert; + + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD) + @PostMapping("/batchInsertionSubstationQ") + @ApiOperation("变电站(季)批量插入") + public HttpResult batchInsertionSubstationQ(@RequestBody List dataIDTOList) { + String methodDescribe = getMethodDescribe("batchInsertionSubstationQ"); + dataPollutionSubstationDInsert.batchInsertion(dataIDTOList); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getRawDataSubstationQ") + @ApiOperation("获取变电站(季)原始数据") + public HttpResult> getRawDataSubstationQ(@RequestBody LineCountEvaluateParam lineParam) { + String methodDescribe = getMethodDescribe("getRawDataSubstationQ"); + List rawData = dataPollutionSubstationDInsert.getRawData(lineParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rawData, methodDescribe); + } + +} diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataPollutionSubstationYController.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataPollutionSubstationYController.java new file mode 100644 index 0000000..2d34dd6 --- /dev/null +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataPollutionSubstationYController.java @@ -0,0 +1,65 @@ +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.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionSubstationY; +import com.njcn.dataProcess.service.IDataPollutionSubstationY; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +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.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @author hongawen + * @version 1.0 + * @data 2024/11/6 19:48 + */ +@Validated +@Slf4j +@Controller +@RestController +@RequestMapping("/dataPollution") +@Api(tags = "污区图数据") +public class DataPollutionSubstationYController extends BaseController { + + @QueryBean + private IDataPollutionSubstationY dataPollutionSubstationDQuery; + + @InsertBean + private IDataPollutionSubstationY dataPollutionSubstationDInsert; + + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD) + @PostMapping("/batchInsertionSubstationY") + @ApiOperation("变电站(年)批量插入") + public HttpResult batchInsertionSubstationY(@RequestBody List dataIDTOList) { + String methodDescribe = getMethodDescribe("batchInsertionSubstationY"); + dataPollutionSubstationDInsert.batchInsertion(dataIDTOList); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } + + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getRawDataSubstationY") + @ApiOperation("获取变电站(年)原始数据") + public HttpResult> getRawDataSubstationY(@RequestBody LineCountEvaluateParam lineParam) { + String methodDescribe = getMethodDescribe("getRawDataSubstationY"); + List rawData = dataPollutionSubstationDInsert.getRawData(lineParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rawData, methodDescribe); + } + +} diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataVController.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataVController.java index 154b443..0ef9ffb 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataVController.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/controller/DataVController.java @@ -153,5 +153,13 @@ public class DataVController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, data, methodDescribe); } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getDataV") + @ApiOperation("获取原始数据") + public HttpResult> getDataV(LineCountEvaluateParam lineParam) { + String methodDescribe = getMethodDescribe("getMeasurementCount"); + List dataV = dataVQuery.getDataV(lineParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, dataV, methodDescribe); + } } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollution.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollution.java index 19b40ed..83bc803 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollution.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollution.java @@ -1,6 +1,7 @@ package com.njcn.dataProcess.service; import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.pojo.dto.DataPollutionD; import com.njcn.dataProcess.pojo.po.RMpPollutionD; @@ -20,4 +21,9 @@ public interface IDataPollution extends IMppService { */ void batchInsertion(List pollutionList); + /** + * 获取原始数据 + * @param lineParam + */ + List getRawData(LineCountEvaluateParam lineParam); } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionOrgD.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionOrgD.java index 1298c0f..8b9c4e4 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionOrgD.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionOrgD.java @@ -1,8 +1,12 @@ package com.njcn.dataProcess.service; import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionOrgD; import com.njcn.dataProcess.pojo.po.RStatPollutionOrgD; +import java.util.List; + /** * @Description: * @Author: wr @@ -10,5 +14,15 @@ import com.njcn.dataProcess.pojo.po.RStatPollutionOrgD; */ public interface IDataPollutionOrgD extends IMppService { + /** + * 批量插入数据 + * @param pollutionList + */ + void batchInsertion(List pollutionList); + /** + * 获取原始数据 + * @param lineParam + */ + List getRawData(LineCountEvaluateParam lineParam); } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionOrgM.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionOrgM.java index eb4e393..7ccc87b 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionOrgM.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionOrgM.java @@ -1,8 +1,12 @@ package com.njcn.dataProcess.service; import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionOrgM; import com.njcn.dataProcess.pojo.po.RStatPollutionOrgM; +import java.util.List; + /** * @Description: * @Author: wr @@ -10,5 +14,15 @@ import com.njcn.dataProcess.pojo.po.RStatPollutionOrgM; */ public interface IDataPollutionOrgM extends IMppService { + /** + * 批量插入数据 + * @param pollutionList + */ + void batchInsertion(List pollutionList); + /** + * 获取原始数据 + * @param lineParam + */ + List getRawData(LineCountEvaluateParam lineParam); } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionOrgQ.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionOrgQ.java index c4f49d5..031bab3 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionOrgQ.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionOrgQ.java @@ -1,8 +1,12 @@ package com.njcn.dataProcess.service; import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionOrgQ; import com.njcn.dataProcess.pojo.po.RStatPollutionOrgQ; +import java.util.List; + /** * @author hongawen * @version 1.0 @@ -10,5 +14,15 @@ import com.njcn.dataProcess.pojo.po.RStatPollutionOrgQ; */ public interface IDataPollutionOrgQ extends IMppService { + /** + * 批量插入数据 + * @param pollutionList + */ + void batchInsertion(List pollutionList); + /** + * 获取原始数据 + * @param lineParam + */ + List getRawData(LineCountEvaluateParam lineParam); } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionOrgY.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionOrgY.java index 56c49f4..67bc921 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionOrgY.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionOrgY.java @@ -1,8 +1,12 @@ package com.njcn.dataProcess.service; import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionOrgY; import com.njcn.dataProcess.pojo.po.RStatPollutionOrgY; +import java.util.List; + /** * @author hongawen * @version 1.0 @@ -10,5 +14,15 @@ import com.njcn.dataProcess.pojo.po.RStatPollutionOrgY; */ public interface IDataPollutionOrgY extends IMppService { + /** + * 批量插入数据 + * @param pollutionList + */ + void batchInsertion(List pollutionList); + /** + * 获取原始数据 + * @param lineParam + */ + List getRawData(LineCountEvaluateParam lineParam); } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionSubstationD.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionSubstationD.java index c19567d..7948deb 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionSubstationD.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionSubstationD.java @@ -1,8 +1,12 @@ package com.njcn.dataProcess.service; import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionSubstationD; import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationD; +import java.util.List; + /** * @Description: * @Author: wr @@ -10,5 +14,15 @@ import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationD; */ public interface IDataPollutionSubstationD extends IMppService { + /** + * 批量插入数据 + * @param pollutionList + */ + void batchInsertion(List pollutionList); + /** + * 获取原始数据 + * @param lineParam + */ + List getRawData(LineCountEvaluateParam lineParam); } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionSubstationM.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionSubstationM.java index e364617..77ad679 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionSubstationM.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionSubstationM.java @@ -1,14 +1,28 @@ package com.njcn.dataProcess.service; import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionSubstationM; import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationM; +import java.util.List; + /** * @Description: * @Author: wr * @Date: 2025/3/19 14:41 */ public interface IDataPollutionSubstationM extends IMppService { + /** + * 批量插入数据 + * @param pollutionList + */ + void batchInsertion(List pollutionList); + /** + * 获取原始数据 + * @param lineParam + */ + List getRawData(LineCountEvaluateParam lineParam); } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionSubstationQ.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionSubstationQ.java index 16cb204..ba10e4f 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionSubstationQ.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionSubstationQ.java @@ -1,8 +1,12 @@ package com.njcn.dataProcess.service; import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionSubstationQ; import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationQ; +import java.util.List; + /** * @Description: * @Author: wr @@ -10,5 +14,15 @@ import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationQ; */ public interface IDataPollutionSubstationQ extends IMppService { + /** + * 批量插入数据 + * @param pollutionList + */ + void batchInsertion(List pollutionList); + /** + * 获取原始数据 + * @param lineParam + */ + List getRawData(LineCountEvaluateParam lineParam); } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionSubstationY.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionSubstationY.java index 16681fa..72028c3 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionSubstationY.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataPollutionSubstationY.java @@ -1,14 +1,28 @@ package com.njcn.dataProcess.service; import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionSubstationY; import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationY; +import java.util.List; + /** * @Description: * @Author: wr * @Date: 2025/3/19 14:41 */ public interface IDataPollutionSubstationY extends IMppService { + /** + * 批量插入数据 + * @param pollutionList + */ + void batchInsertion(List pollutionList); + /** + * 获取原始数据 + * @param lineParam + */ + List getRawData(LineCountEvaluateParam lineParam); } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataV.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataV.java index 8947c11..9b80efd 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataV.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataV.java @@ -71,6 +71,12 @@ public interface IDataV extends IMppService { List getMeasurementCount(List lineIndex, String startTime, String endTime); - + /** + * 获取原始数据 + * @param lineParam + * @return: java.util.List + * @Author: wr + * @Date: 2025/3/20 13:42 + */ List getDataV(LineCountEvaluateParam lineParam); } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataFlickerImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataFlickerImpl.java index efaed7f..bad7194 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataFlickerImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataFlickerImpl.java @@ -67,7 +67,7 @@ public class InfluxdbDataFlickerImpl 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 -> { DataFlickerDto dto = new DataFlickerDto(); BeanUtils.copyProperties(item, dto); @@ -80,7 +80,7 @@ public class InfluxdbDataFlickerImpl extends MppServiceImpl getBaseData(LineCountEvaluateParam lineParam) { List result = new ArrayList<>(); - List dataIList = getMinuteData(lineParam.getLineId(), lineParam.getStartTime(), lineParam.getEndTime(), lineParam.getAbnormalTime()); + List dataIList = getMinuteData(lineParam); if (CollectionUtil.isNotEmpty(dataIList)) { String time = TimeUtils.StringTimeToString(lineParam.getStartTime()); //以监测点分组 @@ -128,8 +128,7 @@ public class InfluxdbDataFlickerImpl extends MppServiceImpl dataFlickers = dataFlickerMapper.selectByQueryWrapper(influxQueryWrapper); - return dataFlickers.size(); + List result = new ArrayList<>(); + quality(result, influxQueryWrapper, lineParam); + return result.size(); } - /** - * 按监测点集合、时间条件获取分钟数据 - * timeMap参数来判断是否进行数据处理 timeMap为空则不进行数据处理 - * 需要进行剔除异常数据时,这里会有三种情况判断 - * 1.无异常数据,则直接返回集合; - * 2.异常数据和无异常数据参杂,剔除异常数据,只计算正常数据; - * 3.全是异常数据,则使用异常数据进行计算,但是日表中需要标记出来,此数据有异常 - */ - public List getMinuteData(List lineList, String startTime, String endTime, Map> timeMap) { - List result = new ArrayList<>(); - InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataFlicker.class); - influxQueryWrapper.regular(DataFlicker::getLineId, lineList) - .select(DataFlicker::getLineId) - .select(DataFlicker::getPhasicType) - .select(DataFlicker::getFluc) - .select(DataFlicker::getPst) - .select(DataFlicker::getPlt) - .select(DataFlicker::getQualityFlag) - .between(DataFlicker::getTime, startTime, endTime) - .eq(DataFlicker::getQualityFlag, "0"); + private void quality(List result, InfluxQueryWrapper influxQueryWrapper, LineCountEvaluateParam lineParam) { + List list = dataFlickerMapper.selectByQueryWrapper(influxQueryWrapper); Map> lineMap = list.stream().collect(Collectors.groupingBy(DataFlicker::getLineId)); //有异常数据 + Map> timeMap = lineParam.getAbnormalTime(); if (CollectionUtil.isNotEmpty(timeMap)) { lineMap.forEach((k, v) -> { List timeList = timeMap.get(k); @@ -197,6 +180,29 @@ public class InfluxdbDataFlickerImpl extends MppServiceImpl getMinuteData(LineCountEvaluateParam lineParam) { + List result = new ArrayList<>(); + InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataFlicker.class); + influxQueryWrapper.regular(DataFlicker::getLineId, lineParam.getLineId()) + .select(DataFlicker::getLineId) + .select(DataFlicker::getPhasicType) + .select(DataFlicker::getFluc) + .select(DataFlicker::getPst) + .select(DataFlicker::getPlt) + .select(DataFlicker::getQualityFlag) + .between(DataFlicker::getTime, lineParam.getStartTime(), lineParam.getEndTime()) + .eq(DataFlicker::getQualityFlag, "0"); + quality(result, influxQueryWrapper, lineParam); return result; } } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionImpl.java index dccab98..2a68ab4 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionImpl.java @@ -2,12 +2,15 @@ package com.njcn.dataProcess.service.impl.influxdb; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.dataProcess.dao.relation.mapper.RMpPollutionDMapper; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataLimitRateDto; import com.njcn.dataProcess.pojo.dto.DataPollutionD; import com.njcn.dataProcess.pojo.po.RMpPollutionD; import com.njcn.dataProcess.service.IDataPollution; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.Collections; import java.util.List; @@ -25,4 +28,9 @@ public class InfluxdbDataPollutionImpl extends MppServiceImpl pollutionList) { } + + @Override + public List getRawData(LineCountEvaluateParam lineParam) { + return Collections.emptyList(); + } } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionOrgDImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionOrgDImpl.java index 7f1e9f8..525a294 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionOrgDImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionOrgDImpl.java @@ -2,11 +2,15 @@ package com.njcn.dataProcess.service.impl.influxdb; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionOrgDMapper; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionOrgD; import com.njcn.dataProcess.pojo.po.RStatPollutionOrgD; import com.njcn.dataProcess.service.IDataPollutionOrgD; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.Collections; +import java.util.List; /** @@ -19,5 +23,13 @@ import org.springframework.stereotype.Service; public class InfluxdbDataPollutionOrgDImpl extends MppServiceImpl implements IDataPollutionOrgD { + @Override + public void batchInsertion(List pollutionList) { + } + + @Override + public List getRawData(LineCountEvaluateParam lineParam) { + return Collections.emptyList(); + } } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionOrgMImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionOrgMImpl.java index 235caae..5af5860 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionOrgMImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionOrgMImpl.java @@ -2,11 +2,15 @@ package com.njcn.dataProcess.service.impl.influxdb; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionOrgMMapper; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionOrgM; import com.njcn.dataProcess.pojo.po.RStatPollutionOrgM; import com.njcn.dataProcess.service.IDataPollutionOrgM; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.Collections; +import java.util.List; /** @@ -19,5 +23,13 @@ import org.springframework.stereotype.Service; public class InfluxdbDataPollutionOrgMImpl extends MppServiceImpl implements IDataPollutionOrgM { + @Override + public void batchInsertion(List pollutionList) { + } + + @Override + public List getRawData(LineCountEvaluateParam lineParam) { + return Collections.emptyList(); + } } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionOrgQImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionOrgQImpl.java index 7332b6a..2d2a0e1 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionOrgQImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionOrgQImpl.java @@ -2,11 +2,15 @@ package com.njcn.dataProcess.service.impl.influxdb; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionOrgQMapper; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionOrgQ; import com.njcn.dataProcess.pojo.po.RStatPollutionOrgQ; import com.njcn.dataProcess.service.IDataPollutionOrgQ; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.Collections; +import java.util.List; /** @@ -19,5 +23,13 @@ import org.springframework.stereotype.Service; public class InfluxdbDataPollutionOrgQImpl extends MppServiceImpl implements IDataPollutionOrgQ { + @Override + public void batchInsertion(List pollutionList) { + } + + @Override + public List getRawData(LineCountEvaluateParam lineParam) { + return Collections.emptyList(); + } } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionOrgYImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionOrgYImpl.java index 7f0f7bd..ec0afb6 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionOrgYImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionOrgYImpl.java @@ -2,11 +2,15 @@ package com.njcn.dataProcess.service.impl.influxdb; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionOrgYMapper; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionOrgY; import com.njcn.dataProcess.pojo.po.RStatPollutionOrgY; import com.njcn.dataProcess.service.IDataPollutionOrgY; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.Collections; +import java.util.List; /** @@ -19,5 +23,13 @@ import org.springframework.stereotype.Service; public class InfluxdbDataPollutionOrgYImpl extends MppServiceImpl implements IDataPollutionOrgY { + @Override + public void batchInsertion(List pollutionList) { + } + + @Override + public List getRawData(LineCountEvaluateParam lineParam) { + return Collections.emptyList(); + } } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionSubstationDImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionSubstationDImpl.java index 7bfd72d..e60eabe 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionSubstationDImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionSubstationDImpl.java @@ -2,11 +2,16 @@ package com.njcn.dataProcess.service.impl.influxdb; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionSubstationDMapper; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionSubstationD; import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationD; import com.njcn.dataProcess.service.IDataPollutionSubstationD; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.Collections; +import java.util.List; + /** * @Description: @@ -18,5 +23,13 @@ import org.springframework.stereotype.Service; public class InfluxdbDataPollutionSubstationDImpl extends MppServiceImpl implements IDataPollutionSubstationD { + @Override + public void batchInsertion(List pollutionList) { + } + + @Override + public List getRawData(LineCountEvaluateParam lineParam) { + return Collections.emptyList(); + } } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionSubstationMImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionSubstationMImpl.java index 312cc55..1c82625 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionSubstationMImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionSubstationMImpl.java @@ -2,11 +2,16 @@ package com.njcn.dataProcess.service.impl.influxdb; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionSubstationMMapper; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionSubstationM; import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationM; import com.njcn.dataProcess.service.IDataPollutionSubstationM; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.Collections; +import java.util.List; + /** * @Description: @@ -18,5 +23,13 @@ import org.springframework.stereotype.Service; public class InfluxdbDataPollutionSubstationMImpl extends MppServiceImpl implements IDataPollutionSubstationM { + @Override + public void batchInsertion(List pollutionList) { + } + + @Override + public List getRawData(LineCountEvaluateParam lineParam) { + return Collections.emptyList(); + } } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionSubstationQImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionSubstationQImpl.java index b54c784..23b5eb1 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionSubstationQImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionSubstationQImpl.java @@ -2,11 +2,16 @@ package com.njcn.dataProcess.service.impl.influxdb; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionSubstationQMapper; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionSubstationQ; import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationQ; import com.njcn.dataProcess.service.IDataPollutionSubstationQ; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.Collections; +import java.util.List; + /** * @Description: @@ -18,5 +23,13 @@ import org.springframework.stereotype.Service; public class InfluxdbDataPollutionSubstationQImpl extends MppServiceImpl implements IDataPollutionSubstationQ { + @Override + public void batchInsertion(List pollutionList) { + } + + @Override + public List getRawData(LineCountEvaluateParam lineParam) { + return Collections.emptyList(); + } } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionSubstationYImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionSubstationYImpl.java index 5ed1251..73e30e7 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionSubstationYImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataPollutionSubstationYImpl.java @@ -2,11 +2,16 @@ package com.njcn.dataProcess.service.impl.influxdb; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionSubstationYMapper; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionSubstationY; import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationY; import com.njcn.dataProcess.service.IDataPollutionSubstationY; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.Collections; +import java.util.List; + /** * @Description: @@ -18,5 +23,13 @@ import org.springframework.stereotype.Service; public class InfluxdbDataPollutionSubstationYImpl extends MppServiceImpl implements IDataPollutionSubstationY { + @Override + public void batchInsertion(List pollutionList) { + } + + @Override + public List getRawData(LineCountEvaluateParam lineParam) { + return Collections.emptyList(); + } } 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 65dd399..aa6f7f1 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 @@ -15,6 +15,7 @@ import com.njcn.dataProcess.dto.DataVFiveItemDTO; import com.njcn.dataProcess.dto.LineDataVFiveItemDTO; import com.njcn.dataProcess.dto.MeasurementCountDTO; import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.po.influx.DataFlicker; import com.njcn.dataProcess.po.influx.DataV; import com.njcn.dataProcess.pojo.dto.CommonMinuteDto; import com.njcn.dataProcess.pojo.dto.DataVCvtDto; @@ -81,18 +82,8 @@ public class InfluxdbDataVImpl extends MppServiceImpl lineDataVFiveItemDTOSByA = dataVMapper.queryDataValue(dataVQueryWrapper); - - System.out.println(123); - System.out.println(123); - System.out.println(123); - System.out.println(123); } - - } - - - System.out.println("InfluxdbDataVImpl"); return result; } @@ -122,9 +113,8 @@ public class InfluxdbDataVImpl extends MppServiceImpl dataVS = dataVMapper.selectByQueryWrapper(influxQueryWrapper); - List result = dataVS.stream().map(temp -> { - return LocalDateTime.ofInstant(temp.getTime(), ZoneId.systemDefault()); - }).distinct().collect(Collectors.toList()); + List result = dataVS.stream().map(temp -> LocalDateTime.ofInstant(temp.getTime(), ZoneId.systemDefault())) + .distinct().collect(Collectors.toList()); return result; } @@ -191,8 +181,9 @@ public class InfluxdbDataVImpl extends MppServiceImpl dataVS = dataVMapper.selectByQueryWrapper(influxQueryWrapper); - return dataVS.size(); + List result=new ArrayList<>(); + quality(result, influxQueryWrapper,lineParam); + return result.size(); } @Override @@ -397,13 +388,19 @@ public class InfluxdbDataVImpl extends MppServiceImpl result,InfluxQueryWrapper influxQueryWrapper, LineCountEvaluateParam lineParam) { List list = dataVMapper.selectByQueryWrapper(influxQueryWrapper); Map> lineMap = list.stream().collect(Collectors.groupingBy(DataV::getLineId)); //有异常数据 - if (CollectionUtil.isNotEmpty(lineParam.getAbnormalTime())) { + Map> timeMap = lineParam.getAbnormalTime(); + if (CollectionUtil.isNotEmpty(timeMap)) { lineMap.forEach((k, v) -> { - List timeList = lineParam.getAbnormalTime().get(k); - //有异常数据,是自身异常数据 + List timeList = timeMap.get(k); + //有异常数据,当前监测点自身的异常数据 if (CollectionUtil.isNotEmpty(timeList)) { List filterList = v.stream().filter(item -> !timeList.contains(DATE_TIME_FORMATTER.format(item.getTime()))).collect(Collectors.toList()); //1.过滤掉异常数据后还有正常数据,则用正常数据计算 @@ -426,7 +423,5 @@ public class InfluxdbDataVImpl extends MppServiceImpl quality(List list, LineCountEvaluateParam lineParam) { + List result = new ArrayList<>(); + Map> lineMap = list.stream().collect(Collectors.groupingBy(DataHarmDto::getLineId)); + //有异常数据 + Map> timeMap = lineParam.getAbnormalTime(); + if (CollectionUtil.isNotEmpty(timeMap)) { + lineMap.forEach((k, v) -> { + List timeList = timeMap.get(k); + //有异常数据,当前监测点自身的异常数据 + if (CollectionUtil.isNotEmpty(timeList)) { + List filterList = v.stream().filter(item -> !timeList.contains(item.getTime())).collect(Collectors.toList()); + //1.过滤掉异常数据后还有正常数据,则用正常数据计算 + if (CollectionUtil.isNotEmpty(filterList)) { + result.addAll(filterList); + } + //2.过滤掉异常数据后没有正常数据,则用所有异常数据计算,但是需要标记数据为异常的 + else { + v.parallelStream().forEach(item -> item.setQualityFlag("1")); + result.addAll(v); + } + } + //没有异常数据,则使用原数据 + else { + result.addAll(v); + } + }); + } + //没有异常数据,则使用原数据 + else { + result.addAll(list); + } return result; } } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataIImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataIImpl.java index 061992e..2150827 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataIImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataIImpl.java @@ -1,6 +1,7 @@ package com.njcn.dataProcess.service.impl.relation; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -12,6 +13,7 @@ import com.njcn.dataProcess.dto.DataIDTO; import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.po.relation.DataI; import com.njcn.dataProcess.pojo.dto.CommonMinuteDto; +import com.njcn.dataProcess.pojo.dto.DataHarmDto; import com.njcn.dataProcess.pojo.dto.DataIDto; import com.njcn.dataProcess.pojo.po.RStatDataID; import com.njcn.dataProcess.service.IDataI; @@ -24,10 +26,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; /** @@ -117,6 +116,40 @@ public class RelationDataIImpl extends MppServiceImpl quality(List list, LineCountEvaluateParam lineParam) { + List result = new ArrayList<>(); + Map> lineMap = list.stream().collect(Collectors.groupingBy(DataIDto::getLineId)); + //有异常数据 + Map> timeMap = lineParam.getAbnormalTime(); + if (CollectionUtil.isNotEmpty(timeMap)) { + lineMap.forEach((k, v) -> { + List timeList = timeMap.get(k); + //有异常数据,当前监测点自身的异常数据 + if (CollectionUtil.isNotEmpty(timeList)) { + List filterList = v.stream().filter(item -> !timeList.contains(item.getTime())).collect(Collectors.toList()); + //1.过滤掉异常数据后还有正常数据,则用正常数据计算 + if (CollectionUtil.isNotEmpty(filterList)) { + result.addAll(filterList); + } + //2.过滤掉异常数据后没有正常数据,则用所有异常数据计算,但是需要标记数据为异常的 + else { + v.parallelStream().forEach(item -> item.setQualityFlag("1")); + result.addAll(v); + } + } + //没有异常数据,则使用原数据 + else { + result.addAll(v); + } + }); + } + //没有异常数据,则使用原数据 + else { + result.addAll(list); + } return result; } } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPltImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPltImpl.java index 4eaf5c2..f3f41b4 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPltImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPltImpl.java @@ -1,6 +1,7 @@ package com.njcn.dataProcess.service.impl.relation; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -12,9 +13,7 @@ import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.po.relation.DataPlt; import com.njcn.dataProcess.pojo.dto.CommonMinuteDto; import com.njcn.dataProcess.pojo.dto.DataPltDto; -import com.njcn.dataProcess.pojo.dto.DataVDto; import com.njcn.dataProcess.pojo.po.RStatDataPltD; -import com.njcn.dataProcess.pojo.po.RStatDataVD; import com.njcn.dataProcess.service.IDataPlt; import com.njcn.dataProcess.util.BeanFeildUtils; import com.njcn.dataProcess.util.TimeUtils; @@ -27,6 +26,7 @@ import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -112,6 +112,40 @@ public class RelationDataPltImpl extends MppServiceImpl quality(List list, LineCountEvaluateParam lineParam) { + List result = new ArrayList<>(); + Map> lineMap = list.stream().collect(Collectors.groupingBy(DataPltDto::getLineId)); + //有异常数据 + Map> timeMap = lineParam.getAbnormalTime(); + if (CollectionUtil.isNotEmpty(timeMap)) { + lineMap.forEach((k, v) -> { + List timeList = timeMap.get(k); + //有异常数据,当前监测点自身的异常数据 + if (CollectionUtil.isNotEmpty(timeList)) { + List filterList = v.stream().filter(item -> !timeList.contains(item.getTime())).collect(Collectors.toList()); + //1.过滤掉异常数据后还有正常数据,则用正常数据计算 + if (CollectionUtil.isNotEmpty(filterList)) { + result.addAll(filterList); + } + //2.过滤掉异常数据后没有正常数据,则用所有异常数据计算,但是需要标记数据为异常的 + else { + v.parallelStream().forEach(item -> item.setQualityFlag("1")); + result.addAll(v); + } + } + //没有异常数据,则使用原数据 + else { + result.addAll(v); + } + }); + } + //没有异常数据,则使用原数据 + else { + result.addAll(list); + } return result; } } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionImpl.java index ab9977a..dec11dd 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionImpl.java @@ -1,10 +1,12 @@ package com.njcn.dataProcess.service.impl.relation; +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.dataProcess.dao.relation.mapper.RMpPollutionDMapper; +import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.pojo.dto.DataPollutionD; import com.njcn.dataProcess.pojo.po.RMpPollutionD; -import com.njcn.dataProcess.pojo.po.RStatLimitRateD; import com.njcn.dataProcess.service.IDataPollution; import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; @@ -34,4 +36,21 @@ public class RelationDataPollutionImpl extends MppServiceImpl getRawData(LineCountEvaluateParam lineParam) { + List result = new ArrayList<>(); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(CollUtil.isNotEmpty(lineParam.getLineId()),RMpPollutionD::getLineId,lineParam.getLineId()) + .ge(RMpPollutionD::getDataDate,lineParam.getStartTime()) + .le(RMpPollutionD::getDataDate,lineParam.getEndTime()); + List list = this.list(lambdaQueryWrapper); + + list.forEach(item->{ + DataPollutionD dto = new DataPollutionD(); + BeanUtils.copyProperties(item,dto); + result.add(dto); + }); + return result; + } } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionOrgDImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionOrgDImpl.java index dff89e2..2843b4b 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionOrgDImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionOrgDImpl.java @@ -1,12 +1,19 @@ package com.njcn.dataProcess.service.impl.relation; +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionOrgDMapper; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionOrgD; import com.njcn.dataProcess.pojo.po.RStatPollutionOrgD; import com.njcn.dataProcess.service.IDataPollutionOrgD; import lombok.RequiredArgsConstructor; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; /** @@ -19,5 +26,31 @@ import org.springframework.stereotype.Service; public class RelationDataPollutionOrgDImpl extends MppServiceImpl implements IDataPollutionOrgD { + @Override + public void batchInsertion(List pollutionList) { + List result = new ArrayList<>(); + pollutionList.forEach(item->{ + RStatPollutionOrgD limitRate = new RStatPollutionOrgD(); + BeanUtils.copyProperties(item, limitRate); + result.add(limitRate); + }); + this.saveOrUpdateBatchByMultiId(result); + } + @Override + public List getRawData(LineCountEvaluateParam lineParam) { + List result = new ArrayList<>(); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(CollUtil.isNotEmpty(lineParam.getLineId()),RStatPollutionOrgD::getOrgId,lineParam.getLineId()) + .ge(RStatPollutionOrgD::getDataDate,lineParam.getStartTime()) + .le(RStatPollutionOrgD::getDataDate,lineParam.getEndTime()); + List list = this.list(lambdaQueryWrapper); + + list.forEach(item->{ + DataPollutionOrgD dto = new DataPollutionOrgD(); + BeanUtils.copyProperties(item,dto); + result.add(dto); + }); + return result; + } } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionOrgMImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionOrgMImpl.java index 421256a..35ee4a8 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionOrgMImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionOrgMImpl.java @@ -1,12 +1,19 @@ package com.njcn.dataProcess.service.impl.relation; +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionOrgMMapper; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionOrgM; import com.njcn.dataProcess.pojo.po.RStatPollutionOrgM; import com.njcn.dataProcess.service.IDataPollutionOrgM; import lombok.RequiredArgsConstructor; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; /** @@ -19,5 +26,31 @@ import org.springframework.stereotype.Service; public class RelationDataPollutionOrgMImpl extends MppServiceImpl implements IDataPollutionOrgM { + @Override + public void batchInsertion(List pollutionList) { + List result = new ArrayList<>(); + pollutionList.forEach(item->{ + RStatPollutionOrgM limitRate = new RStatPollutionOrgM(); + BeanUtils.copyProperties(item, limitRate); + result.add(limitRate); + }); + this.saveOrUpdateBatchByMultiId(result); + } + @Override + public List getRawData(LineCountEvaluateParam lineParam) { + List result = new ArrayList<>(); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(CollUtil.isNotEmpty(lineParam.getLineId()),RStatPollutionOrgM::getOrgId,lineParam.getLineId()) + .ge(RStatPollutionOrgM::getDataDate,lineParam.getStartTime()) + .le(RStatPollutionOrgM::getDataDate,lineParam.getEndTime()); + List list = this.list(lambdaQueryWrapper); + + list.forEach(item->{ + DataPollutionOrgM dto = new DataPollutionOrgM(); + BeanUtils.copyProperties(item,dto); + result.add(dto); + }); + return result; + } } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionOrgQImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionOrgQImpl.java index 2a03cab..bf2df28 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionOrgQImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionOrgQImpl.java @@ -1,12 +1,19 @@ package com.njcn.dataProcess.service.impl.relation; +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionOrgQMapper; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionOrgQ; import com.njcn.dataProcess.pojo.po.RStatPollutionOrgQ; import com.njcn.dataProcess.service.IDataPollutionOrgQ; import lombok.RequiredArgsConstructor; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; /** @@ -19,5 +26,31 @@ import org.springframework.stereotype.Service; public class RelationDataPollutionOrgQImpl extends MppServiceImpl implements IDataPollutionOrgQ { + @Override + public void batchInsertion(List pollutionList) { + List result = new ArrayList<>(); + pollutionList.forEach(item->{ + RStatPollutionOrgQ limitRate = new RStatPollutionOrgQ(); + BeanUtils.copyProperties(item, limitRate); + result.add(limitRate); + }); + this.saveOrUpdateBatchByMultiId(result); + } + @Override + public List getRawData(LineCountEvaluateParam lineParam) { + List result = new ArrayList<>(); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(CollUtil.isNotEmpty(lineParam.getLineId()),RStatPollutionOrgQ::getOrgId,lineParam.getLineId()) + .ge(RStatPollutionOrgQ::getDataDate,lineParam.getStartTime()) + .le(RStatPollutionOrgQ::getDataDate,lineParam.getEndTime()); + List list = this.list(lambdaQueryWrapper); + + list.forEach(item->{ + DataPollutionOrgQ dto = new DataPollutionOrgQ(); + BeanUtils.copyProperties(item,dto); + result.add(dto); + }); + return result; + } } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionOrgYImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionOrgYImpl.java index 729f361..723c1d4 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionOrgYImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionOrgYImpl.java @@ -1,12 +1,19 @@ package com.njcn.dataProcess.service.impl.relation; +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionOrgYMapper; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionOrgY; import com.njcn.dataProcess.pojo.po.RStatPollutionOrgY; import com.njcn.dataProcess.service.IDataPollutionOrgY; import lombok.RequiredArgsConstructor; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; /** @@ -19,5 +26,31 @@ import org.springframework.stereotype.Service; public class RelationDataPollutionOrgYImpl extends MppServiceImpl implements IDataPollutionOrgY { + @Override + public void batchInsertion(List pollutionList) { + List result = new ArrayList<>(); + pollutionList.forEach(item->{ + RStatPollutionOrgY limitRate = new RStatPollutionOrgY(); + BeanUtils.copyProperties(item, limitRate); + result.add(limitRate); + }); + this.saveOrUpdateBatchByMultiId(result); + } + @Override + public List getRawData(LineCountEvaluateParam lineParam) { + List result = new ArrayList<>(); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(CollUtil.isNotEmpty(lineParam.getLineId()),RStatPollutionOrgY::getOrgId,lineParam.getLineId()) + .ge(RStatPollutionOrgY::getDataDate,lineParam.getStartTime()) + .le(RStatPollutionOrgY::getDataDate,lineParam.getEndTime()); + List list = this.list(lambdaQueryWrapper); + + list.forEach(item->{ + DataPollutionOrgY dto = new DataPollutionOrgY(); + BeanUtils.copyProperties(item,dto); + result.add(dto); + }); + return result; + } } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionSubstationDImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionSubstationDImpl.java index 19b8686..8e757bb 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionSubstationDImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionSubstationDImpl.java @@ -1,12 +1,20 @@ package com.njcn.dataProcess.service.impl.relation; +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionSubstationDMapper; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionSubstationD; import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationD; import com.njcn.dataProcess.service.IDataPollutionSubstationD; import lombok.RequiredArgsConstructor; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** * @Description: @@ -18,5 +26,31 @@ import org.springframework.stereotype.Service; public class RelationDataPollutionSubstationDImpl extends MppServiceImpl implements IDataPollutionSubstationD { + @Override + public void batchInsertion(List pollutionList) { + List result = new ArrayList<>(); + pollutionList.forEach(item->{ + RStatPollutionSubstationD limitRate = new RStatPollutionSubstationD(); + BeanUtils.copyProperties(item, limitRate); + result.add(limitRate); + }); + this.saveOrUpdateBatchByMultiId(result); + } + @Override + public List getRawData(LineCountEvaluateParam lineParam) { + List result = new ArrayList<>(); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(CollUtil.isNotEmpty(lineParam.getLineId()),RStatPollutionSubstationD::getSubstationId,lineParam.getLineId()) + .ge(RStatPollutionSubstationD::getDataDate,lineParam.getStartTime()) + .le(RStatPollutionSubstationD::getDataDate,lineParam.getEndTime()); + List list = this.list(lambdaQueryWrapper); + + list.forEach(item->{ + DataPollutionSubstationD dto = new DataPollutionSubstationD(); + BeanUtils.copyProperties(item,dto); + result.add(dto); + }); + return result; + } } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionSubstationMImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionSubstationMImpl.java index cd45669..de7bb6e 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionSubstationMImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionSubstationMImpl.java @@ -1,12 +1,20 @@ package com.njcn.dataProcess.service.impl.relation; +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionSubstationMMapper; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionSubstationM; import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationM; import com.njcn.dataProcess.service.IDataPollutionSubstationM; import lombok.RequiredArgsConstructor; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** * @Description: @@ -18,5 +26,31 @@ import org.springframework.stereotype.Service; public class RelationDataPollutionSubstationMImpl extends MppServiceImpl implements IDataPollutionSubstationM { + @Override + public void batchInsertion(List pollutionList) { + List result = new ArrayList<>(); + pollutionList.forEach(item->{ + RStatPollutionSubstationM limitRate = new RStatPollutionSubstationM(); + BeanUtils.copyProperties(item, limitRate); + result.add(limitRate); + }); + this.saveOrUpdateBatchByMultiId(result); + } + @Override + public List getRawData(LineCountEvaluateParam lineParam) { + List result = new ArrayList<>(); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(CollUtil.isNotEmpty(lineParam.getLineId()),RStatPollutionSubstationM::getSubstationId,lineParam.getLineId()) + .ge(RStatPollutionSubstationM::getDataDate,lineParam.getStartTime()) + .le(RStatPollutionSubstationM::getDataDate,lineParam.getEndTime()); + List list = this.list(lambdaQueryWrapper); + + list.forEach(item->{ + DataPollutionSubstationM dto = new DataPollutionSubstationM(); + BeanUtils.copyProperties(item,dto); + result.add(dto); + }); + return result; + } } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionSubstationQImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionSubstationQImpl.java index b4ea0b8..30cfcdb 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionSubstationQImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionSubstationQImpl.java @@ -1,12 +1,20 @@ package com.njcn.dataProcess.service.impl.relation; +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionSubstationQMapper; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionSubstationQ; import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationQ; import com.njcn.dataProcess.service.IDataPollutionSubstationQ; import lombok.RequiredArgsConstructor; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** * @Description: @@ -18,5 +26,31 @@ import org.springframework.stereotype.Service; public class RelationDataPollutionSubstationQImpl extends MppServiceImpl implements IDataPollutionSubstationQ { + @Override + public void batchInsertion(List pollutionList) { + List result = new ArrayList<>(); + pollutionList.forEach(item->{ + RStatPollutionSubstationQ limitRate = new RStatPollutionSubstationQ(); + BeanUtils.copyProperties(item, limitRate); + result.add(limitRate); + }); + this.saveOrUpdateBatchByMultiId(result); + } + @Override + public List getRawData(LineCountEvaluateParam lineParam) { + List result = new ArrayList<>(); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(CollUtil.isNotEmpty(lineParam.getLineId()),RStatPollutionSubstationQ::getSubstationId,lineParam.getLineId()) + .ge(RStatPollutionSubstationQ::getDataDate,lineParam.getStartTime()) + .le(RStatPollutionSubstationQ::getDataDate,lineParam.getEndTime()); + List list = this.list(lambdaQueryWrapper); + + list.forEach(item->{ + DataPollutionSubstationQ dto = new DataPollutionSubstationQ(); + BeanUtils.copyProperties(item,dto); + result.add(dto); + }); + return result; + } } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionSubstationYImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionSubstationYImpl.java index 15a59ac..3ee6905 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionSubstationYImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataPollutionSubstationYImpl.java @@ -1,12 +1,20 @@ package com.njcn.dataProcess.service.impl.relation; +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.dataProcess.dao.relation.mapper.RStatPollutionSubstationYMapper; +import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.pojo.dto.DataPollutionSubstationY; import com.njcn.dataProcess.pojo.po.RStatPollutionSubstationY; import com.njcn.dataProcess.service.IDataPollutionSubstationY; import lombok.RequiredArgsConstructor; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** * @Description: @@ -18,5 +26,31 @@ import org.springframework.stereotype.Service; public class RelationDataPollutionSubstationYImpl extends MppServiceImpl implements IDataPollutionSubstationY { + @Override + public void batchInsertion(List pollutionList) { + List result = new ArrayList<>(); + pollutionList.forEach(item->{ + RStatPollutionSubstationY limitRate = new RStatPollutionSubstationY(); + BeanUtils.copyProperties(item, limitRate); + result.add(limitRate); + }); + this.saveOrUpdateBatchByMultiId(result); + } + @Override + public List getRawData(LineCountEvaluateParam lineParam) { + List result = new ArrayList<>(); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.in(CollUtil.isNotEmpty(lineParam.getLineId()),RStatPollutionSubstationY::getSubstationId,lineParam.getLineId()) + .ge(RStatPollutionSubstationY::getDataDate,lineParam.getStartTime()) + .le(RStatPollutionSubstationY::getDataDate,lineParam.getEndTime()); + List list = this.list(lambdaQueryWrapper); + + list.forEach(item->{ + DataPollutionSubstationY dto = new DataPollutionSubstationY(); + BeanUtils.copyProperties(item,dto); + result.add(dto); + }); + return result; + } } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataVImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataVImpl.java index 8a4d57b..f5da65f 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataVImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataVImpl.java @@ -1,14 +1,11 @@ package com.njcn.dataProcess.service.impl.relation; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DatePattern; -import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; -import com.njcn.dataProcess.constant.InfluxDBTableConstant; import com.njcn.dataProcess.dao.relation.mapper.DataVRelationMapper; import com.njcn.dataProcess.dao.relation.mapper.RStatDataVRelationMapper; import com.njcn.dataProcess.dto.DataVDTO; @@ -23,21 +20,18 @@ import com.njcn.dataProcess.pojo.po.RStatDataVD; import com.njcn.dataProcess.service.IDataV; import com.njcn.dataProcess.util.BeanFeildUtils; import com.njcn.dataProcess.util.TimeUtils; -import com.njcn.influx.constant.InfluxDbSqlConstant; -import com.njcn.influx.query.InfluxQueryWrapper; import lombok.RequiredArgsConstructor; import org.apache.commons.collections4.ListUtils; -import org.ehcache.core.util.CollectionUtil; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; + /** * @author hongawen * @version 1.0 @@ -46,6 +40,7 @@ import java.util.stream.Collectors; @Service("RelationDataVImpl") @RequiredArgsConstructor public class RelationDataVImpl extends MppServiceImpl implements IDataV { + @Resource private DataVRelationMapper dataVRelationMapper; @@ -54,20 +49,16 @@ public class RelationDataVImpl extends MppServiceImpl> getLineCountEvaluate(LineCountEvaluateParam lineParam) { - - - - return null; } @Override public void batchInsertion(List dataVDTOList) { int totalCount = dataVDTOList.size(); - if(totalCount<=0){ + if (totalCount <= 0) { return; } - int minSize = Math.min(120, totalCount); + int minSize = Math.min(120, totalCount); List collect = dataVDTOList.stream().map(temp -> { @@ -90,7 +81,7 @@ public class RelationDataVImpl extends MppServiceImpl monitoringTime(String lineId, String localData) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lambda().select(DataV::getTimeid).eq(DataV::getLineid,lineId).between(DataV::getTimeid,localData+" 00:00:00",localData+" 23:59:59").eq(DataV::getPhasicType,"A").orderByAsc(DataV::getTimeid); + queryWrapper.lambda().select(DataV::getTimeid).eq(DataV::getLineid, lineId).between(DataV::getTimeid, localData + " 00:00:00", localData + " 23:59:59").eq(DataV::getPhasicType, "A").orderByAsc(DataV::getTimeid); List dataVS = dataVRelationMapper.selectList(queryWrapper); List result = dataVS.stream().map(DataV::getTimeid).distinct().collect(Collectors.toList()); return result; @@ -112,7 +103,6 @@ public class RelationDataVImpl extends MppServiceImpl getBaseData(LineCountEvaluateParam lineParam) { return Collections.emptyList(); @@ -121,7 +111,7 @@ public class RelationDataVImpl extends MppServiceImpl dataVDtoList) { List result = new ArrayList<>(); - dataVDtoList.forEach(item->{ + dataVDtoList.forEach(item -> { RStatDataVD dataV = new RStatDataVD(); dataV.setTime(TimeUtils.LocalDataTimeToLocalDate2(item.getTime())); dataV.setPhasicType(item.getPhasicType()); @@ -149,9 +139,9 @@ public class RelationDataVImpl extends MppServiceImpl getDataV(LineCountEvaluateParam lineParam) { - List result = new ArrayList<>(); + List info = new ArrayList<>(); QueryWrapper queryWrapper = new QueryWrapper<>(); - if(StrUtil.isNotBlank(lineParam.getColumnName())){ + if (StrUtil.isNotBlank(lineParam.getColumnName())) { queryWrapper.select(lineParam.getColumnName()); } queryWrapper.lambda() @@ -161,13 +151,45 @@ public class RelationDataVImpl extends MppServiceImpl rStatDataVDList = this.list(queryWrapper); - for(RStatDataVD rStatDataVD : rStatDataVDList){ - DataVDto dto = BeanUtil.copyProperties(rStatDataVD,DataVDto.class); + for (RStatDataVD rStatDataVD : rStatDataVDList) { + DataVDto dto = BeanUtil.copyProperties(rStatDataVD, DataVDto.class); dto.setTime(rStatDataVD.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN))); - result.add(dto); + info.add(dto); + } + return quality(info,lineParam); + } + + private List quality(List list, LineCountEvaluateParam lineParam) { + List result = new ArrayList<>(); + Map> lineMap = list.stream().collect(Collectors.groupingBy(DataVDto::getLineId)); + //有异常数据 + Map> timeMap = lineParam.getAbnormalTime(); + if (CollectionUtil.isNotEmpty(timeMap)) { + lineMap.forEach((k, v) -> { + List timeList = timeMap.get(k); + //有异常数据,当前监测点自身的异常数据 + if (CollectionUtil.isNotEmpty(timeList)) { + List filterList = v.stream().filter(item -> !timeList.contains(item.getTime())).collect(Collectors.toList()); + //1.过滤掉异常数据后还有正常数据,则用正常数据计算 + if (CollectionUtil.isNotEmpty(filterList)) { + result.addAll(filterList); + } + //2.过滤掉异常数据后没有正常数据,则用所有异常数据计算,但是需要标记数据为异常的 + else { + v.parallelStream().forEach(item -> item.setQualityFlag("1")); + result.addAll(v); + } + } + //没有异常数据,则使用原数据 + else { + result.addAll(v); + } + }); + } + //没有异常数据,则使用原数据 + else { + result.addAll(list); } return result; } - - }