diff --git a/pqs-event/event-api/src/main/java/com/njcn/event/pojo/vo/EventDipShortDistributionTableVO.java b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/vo/EventDipShortDistributionTableVO.java new file mode 100644 index 000000000..3d8e28843 --- /dev/null +++ b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/vo/EventDipShortDistributionTableVO.java @@ -0,0 +1,74 @@ +package com.njcn.event.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * 监测点电压暂降和短时中断分布情况(用于前端表格展示) + * @Title EventDipShortDistributionTableVO + * @Package com.njcn.event.pojo.vo + * @Author jianghaifei + * @Date 2022-10-31 14:35 + * @Version V1.0 + */ +@Data +public class EventDipShortDistributionTableVO implements Serializable { + + private static final long serialVersionUID = 1L; + + + /** + * 特征幅值 + */ + @ApiModelProperty(name = "featureAmplitude",value = "特征幅值") + private String featureAmplitude; + + + /** + * 持续时间0-100ms + */ + @ApiModelProperty(name = "duration100",value = "持续时间0-100ms") + private Integer duration100; + + /** + * 持续时间100-250ms + */ + @ApiModelProperty(name = "duration250",value = "持续时间100-250ms") + private Integer duration250; + + /** + * 持续时间250-500ms + */ + @ApiModelProperty(name = "duration500",value = "持续时间250-500ms") + private Integer duration500; + /** + * 持续时间500-1000ms + */ + @ApiModelProperty(name = "duration1000",value = "持续时间500-1000ms") + private Integer duration1000; + /** + * 持续时间1000-3000ms + */ + @ApiModelProperty(name = "duration3000",value = "持续时间1000-3000ms") + private Integer duration3000; + + /** + * 持续时间3000-10000ms + */ + @ApiModelProperty(name = "duration10000",value = "持续时间3000-10000ms") + private Integer duration10000; + + /** + * 持续时间10000-20000ms + */ + @ApiModelProperty(name = "duration20000",value = "持续时间10000-20000ms") + private Integer duration20000; + /** + * 持续时间20000-60000ms + */ + @ApiModelProperty(name = "duration60000",value = "持续时间20000-60000ms") + private Integer duration60000; + +} diff --git a/pqs-event/event-api/src/main/java/com/njcn/event/pojo/vo/EventRiseDistributionTableVO.java b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/vo/EventRiseDistributionTableVO.java new file mode 100644 index 000000000..68b9d5f36 --- /dev/null +++ b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/vo/EventRiseDistributionTableVO.java @@ -0,0 +1,43 @@ +package com.njcn.event.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/**监测点电压暂升分布情况(用于前端表格展示) + * @Title EventRiseDistributionTableVO + * @Package com.njcn.event.pojo.vo + * @Author jianghaifei + * @Date 2022-10-31 15:17 + * @Version V1.0 + */ +@Data +public class EventRiseDistributionTableVO implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 特征幅值 + */ + @ApiModelProperty(name = "featureAmplitude",value = "特征幅值") + private String featureAmplitude; + + /** + * 持续时间100ms-500ms + */ + @ApiModelProperty(name = "duration500",value = "持续时间100ms-500ms") + private Integer duration500; + + /** + * 持续时间500ms-5000ms + */ + @ApiModelProperty(name = "duration5000",value = "持续时间500ms-5000ms") + private Integer duration5000; + + /** + * 持续时间5000ms-60000ms + */ + @ApiModelProperty(name = "duration60000",value = "持续时间5000ms-60000ms") + private Integer duration60000; + +} diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/controller/distribution/PwEventMonitorReportController.java b/pqs-event/event-boot/src/main/java/com/njcn/event/controller/distribution/PwEventMonitorReportController.java new file mode 100644 index 000000000..b2dbbcd21 --- /dev/null +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/controller/distribution/PwEventMonitorReportController.java @@ -0,0 +1,89 @@ +package com.njcn.event.controller.distribution; + +import com.njcn.common.pojo.annotation.OperateInfo; +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.event.pojo.param.EventMonitorReportParam; +import com.njcn.event.pojo.vo.EventDipShortDistributionTableVO; +import com.njcn.event.pojo.vo.EventMonitorReportVO; +import com.njcn.event.pojo.vo.EventRiseDistributionTableVO; +import com.njcn.event.service.distribution.PwEventMonitorReportService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +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; + +/** + * 暂态指标监测点统计报表 + * @Title EventMonitorDailyReportController + * @Package com.njcn.event.controller + * @Author jianghaifei + * @Date 2022-10-25 09:36 + * @Version V1.0 + */ +@RestController +@RequestMapping("/pwEventMonitorReport") +@Api(tags = "配网-暂态指标统计报表") +@RequiredArgsConstructor +public class PwEventMonitorReportController extends BaseController { + + private final PwEventMonitorReportService eventMonitorReportService; + + /*** + * @author jianghaifei + * @date 2022-10-29 16:37 + * @param eventMonitorReportParam + * @return com.njcn.common.pojo.response.HttpResult> + */ + @PostMapping("getMonitorEventCount") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("监测点暂态事件发生次数") + public HttpResult> getMonitorEventCount(@RequestBody EventMonitorReportParam eventMonitorReportParam) { + String methodDescribe = getMethodDescribe("getMonitorEventCount"); + List list = eventMonitorReportService.getMonitorEventCount(eventMonitorReportParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + + /*** + * + * @author jianghaifei + * @date 2022-10-29 14:08 + * @param eventMonitorReportParam + * @return com.njcn.common.pojo.response.HttpResult + */ + @PostMapping("getEventDipShortDistribution") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("暂态指标监测点电压暂降和短时中断分布情况") + public HttpResult> getEventDipShortDistribution(@RequestBody EventMonitorReportParam eventMonitorReportParam) { + String methodDescribe = getMethodDescribe("getEventDipShortDistribution"); + List list = eventMonitorReportService.getEventDipShortDistributionByCond(eventMonitorReportParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + + /*** + * + * @author jianghaifei + * @date 2022-10-29 14:08 + * @param eventMonitorReportParam + * @return com.njcn.common.pojo.response.HttpResult + */ + @PostMapping("getEventRiseDistribution") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("暂态指标监测点电压暂升分布情况") + public HttpResult> getEventRiseDistribution(@RequestBody EventMonitorReportParam eventMonitorReportParam) { + String methodDescribe = getMethodDescribe("getEventRiseDistribution"); + List list = eventMonitorReportService.getEventRiseDistributionByCond(eventMonitorReportParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + + + +} diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/distribution/PwEventDistributionStatisticsMapper.java b/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/distribution/PwEventDistributionStatisticsMapper.java new file mode 100644 index 000000000..9c0008f26 --- /dev/null +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/distribution/PwEventDistributionStatisticsMapper.java @@ -0,0 +1,56 @@ +package com.njcn.event.mapper.distribution; + +import com.njcn.event.pojo.po.EventDistributionStatisticsPO; +import com.njcn.event.pojo.po.EventDurationLineChartPO; +import com.njcn.event.pojo.po.EventFeatureAmplitudeLineChartPO; +import com.njcn.event.pojo.po.RmpEventDetailPO; +import com.njcn.event.pojo.vo.EventDipShortDistributionVO; +import com.njcn.event.pojo.vo.EventRiseDistributionVO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + + +/*** + * + * @author jianghaifei + * @date 2022-11-08 09:26 + * @return + */ + +@Mapper +public interface PwEventDistributionStatisticsMapper { + + /** + * 获取监测点暂态事件明细数据 + * + * @param monitorIdList 监测点id + * @param startTime 开始时间 + * @param endTime 结束时间 + * @return 监测点暂态事件明细数据 + */ + List getRmpEventDetail(@Param("monitorIdList") List monitorIdList, + @Param("startTime") String startTime, + @Param("endTime") String endTime); + + + /*** + * 获取监测点电压暂降和短时中断分布情况 + * @author jianghaifei + * @date 2022-11-8 09:26:34 + * @param map + * @return com.njcn.event.pojo.vo.EventDipShortDistributionVO + */ + EventDipShortDistributionVO getEventDipShortDistributionByCond(Map map); + + /*** + * 获取监测点电压暂升分布情况 + * @author jianghaifei + * @date 2022-11-8 09:26:29 + * @param map + * @return com.njcn.event.pojo.vo.EventRiseDistributionVO + */ + EventRiseDistributionVO getEventRiseDistributionByCond(Map map); +} diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/distribution/mapping/PwEventDistributionStatisticsMapper.xml b/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/distribution/mapping/PwEventDistributionStatisticsMapper.xml new file mode 100644 index 000000000..ba4337464 --- /dev/null +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/distribution/mapping/PwEventDistributionStatisticsMapper.xml @@ -0,0 +1,265 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/distribution/Impl/PwEventMonitorReportServiceImpl.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/distribution/Impl/PwEventMonitorReportServiceImpl.java new file mode 100644 index 000000000..61576a481 --- /dev/null +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/distribution/Impl/PwEventMonitorReportServiceImpl.java @@ -0,0 +1,356 @@ +package com.njcn.event.service.distribution.Impl; + +import cn.hutool.core.collection.CollUtil; +import com.njcn.common.pojo.constant.BizParamConstant; +import com.njcn.device.pms.api.PwMonitorClient; +import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO; +import com.njcn.device.pms.pojo.param.PwPmsMonitorParam; +import com.njcn.event.mapper.distribution.PwEventDistributionStatisticsMapper; +import com.njcn.event.mapper.distribution.PwRmpEventDetailMapper; +import com.njcn.event.pojo.param.EventMonitorReportParam; +import com.njcn.event.pojo.po.RmpEventDetailPO; +import com.njcn.event.pojo.vo.*; +import com.njcn.event.service.distribution.PwEventMonitorReportService; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataEnum; +import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.pojo.po.DictData; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Title EventMonitorDailyReportServiceImpl + * @Package com.njcn.event.service.Impl + * @Author jianghaifei + * @Date 2022-10-25 09:39 + * @Version V1.0 + */ +@Service +@RequiredArgsConstructor +public class PwEventMonitorReportServiceImpl implements PwEventMonitorReportService { + + private final PwMonitorClient pwMonitorClient; + + private final PwRmpEventDetailMapper rmpEventDetailMapper; + + private final DicDataFeignClient dicDataFeignClient; + + private final PwEventDistributionStatisticsMapper eventDistributionStatisticsMapper; + + + /*** + * 监测点暂态事件发生次数 + * @author jianghaifei + * @date 2022-10-29 18:05 + * @param eventMonitorReportParam + * @return java.util.List + */ + @Override + public List getMonitorEventCount(EventMonitorReportParam eventMonitorReportParam) { + //提取查询参数 +// String monitorName = eventMonitorReportParam.getMonitorName(); //监测点名称 +// String id = eventMonitorReportParam.getId(); //单位id + String startTime = eventMonitorReportParam.getStartTime(); //开始时间 + String endTime = eventMonitorReportParam.getEndTime(); //结束时间 + Integer type = eventMonitorReportParam.getType(); //时间类型(日/月) + + //查询监测点信息 + List monitorList = this.getMonitorList(eventMonitorReportParam); + List monitorIdList = monitorList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList()); //监测点id信息 + Map monitorMap = monitorList.stream().collect(Collectors.toMap(PwPmsMonitorDTO::getMonitorId, monitor -> monitor)); + + //获取电压等级的字典 + List voltageLevelList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData(); + //将电压信息转成map,key:id value:name + Map voltageLevelMap = voltageLevelList.stream().collect(Collectors.toMap(DictData::getId, DictData::getName)); + //获取暂态指标的字典 + List eventStatisList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData(); + //将暂态指标信息转成map,key:id value:实体 + Map eventStatisMap = eventStatisList.stream().collect(Collectors.toMap(DictData::getId, data -> data)); + //将暂态指标信息转成map,key:code value:实体 +// Map eventStatisMapByCode = eventStatisList.stream().collect(Collectors.toMap(DictData::getCode, data -> data)); + + //查询暂态事件明细 + List detailList; + if (BizParamConstant.STAT_BIZ_MONTH.equals(type + "")) { //按月查 + detailList = rmpEventDetailMapper.getDetailsOfTransientEventsByMonth(monitorIdList, null, startTime, endTime); + } else { //按日查 + detailList = rmpEventDetailMapper.getDetailsOfTransientEvents(monitorIdList, null, startTime, endTime); + } + + + Map> groupByMIdDetailMap = detailList.stream().collect(Collectors.groupingBy(RmpEventDetailPO::getMeasurementPointId, Collectors.toList())); + List resultList = new ArrayList<>(); + groupByMIdDetailMap.forEach((key, monitorEventDetailList) -> { + //封装返回需要返回的信息 + PwPmsMonitorDTO pmsMonitorDTO = monitorMap.get(key); + + EventMonitorReportVO eventMonitorReportVO = new EventMonitorReportVO(); + eventMonitorReportVO.setDate(startTime); //查询时间 + //监测点基本信息 + eventMonitorReportVO.setMonitorId(pmsMonitorDTO.getMonitorId()); //监测点id + eventMonitorReportVO.setMonitorName(pmsMonitorDTO.getMonitorName()); //监测点name + eventMonitorReportVO.setOrgId(pmsMonitorDTO.getOrgId()); //单位id + eventMonitorReportVO.setOrgName(pmsMonitorDTO.getOrgName()); //单位name + eventMonitorReportVO.setVoltageLevel(pmsMonitorDTO.getVoltageLevel()); //监测点电压等级 + eventMonitorReportVO.setVoltageLevelName(voltageLevelMap.get(pmsMonitorDTO.getVoltageLevel())); //监测点电压等级名称 + //暂升、暂降、短时中断次数 + Map> countMap = monitorEventDetailList.stream().collect(Collectors.groupingBy(RmpEventDetailPO::getEventType, Collectors.toList())); + countMap.forEach((countKey, value) -> { + String code = eventStatisMap.get(countKey).getCode(); + //电压暂降次数 + if (DicDataEnum.VOLTAGE_DIP.getCode().equalsIgnoreCase(code)) { + eventMonitorReportVO.setVoltageDipCount(CollUtil.isNotEmpty(value) ? value.size() : 0); + } + //电压暂升次数 + if (DicDataEnum.VOLTAGE_RISE.getCode().equalsIgnoreCase(code)) { + eventMonitorReportVO.setVoltageRiseCount(CollUtil.isNotEmpty(value) ? value.size() : 0); + } + //短时中断 + if (DicDataEnum.SHORT_INTERRUPTIONS.getCode().equalsIgnoreCase(code)) { + eventMonitorReportVO.setShortInterruptionCount(CollUtil.isNotEmpty(value) ? value.size() : 0); + } + + }); + //重新校验设置属性值,避免值是null + eventMonitorReportVO.setVoltageDipCount(eventMonitorReportVO.getVoltageDipCount() == null ? 0 : eventMonitorReportVO.getVoltageDipCount()); + eventMonitorReportVO.setVoltageRiseCount(eventMonitorReportVO.getVoltageRiseCount() == null ? 0 : eventMonitorReportVO.getVoltageRiseCount()); + eventMonitorReportVO.setShortInterruptionCount(eventMonitorReportVO.getShortInterruptionCount() == null ? 0 : eventMonitorReportVO.getShortInterruptionCount()); + + resultList.add(eventMonitorReportVO); + }); + + return resultList; + } + + /*** + * 暂态指标监测点电压暂降和短时中断分布情况 + * @author jianghaifei + * @date 2022-10-28 14:56 + * @param eventMonitorReportParam + * @return com.njcn.event.pojo.vo.EventDipShortDistributionVO + */ + @Override + public List getEventDipShortDistributionByCond(EventMonitorReportParam eventMonitorReportParam) { + //提取参数 +// String monitorName = eventMonitorReportParam.getMonitorName(); //监测点名称 +// String id = eventMonitorReportParam.getId(); //单位id + String startTime = eventMonitorReportParam.getStartTime(); //开始时间 + String endTime = eventMonitorReportParam.getEndTime(); //结束时间 + Integer type = eventMonitorReportParam.getType(); //时间类型(日/月) + + //查询监测点信息 + List monitorList = this.getMonitorList(eventMonitorReportParam); + List monitorIdList = monitorList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList()); //监测点id集合 + + //获取暂态指标的字典 + List eventStatisList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData(); + //将暂态指标信息转成map,key:code value:实体 + Map eventStatisMapByCode = eventStatisList.stream().collect(Collectors.toMap(DictData::getCode, data -> data)); + + //短时中断、暂降分布情况 + Map condMap = new HashMap<>(); + condMap.put("monitorIdList", monitorIdList); + condMap.put("startTime", startTime); + condMap.put("endTime", endTime); + condMap.put("eventTypeList", Arrays.asList(eventStatisMapByCode.get(DicDataEnum.VOLTAGE_DIP.getCode()).getId(), eventStatisMapByCode.get(DicDataEnum.SHORT_INTERRUPTIONS.getCode()).getId())); + condMap.put("dateType", type); + EventDipShortDistributionVO eventDipShortDistribution = eventDistributionStatisticsMapper.getEventDipShortDistributionByCond(condMap); + + //设置返回数据 + List list = new ArrayList<>(); + //特征幅值[80,90] + EventDipShortDistributionTableVO entity8090 = new EventDipShortDistributionTableVO(); + entity8090.setFeatureAmplitude("[80,90]"); + entity8090.setDuration100(eventDipShortDistribution.getFeatureAmp90with100ms()); //持续时间10ms-100ms + entity8090.setDuration250(eventDipShortDistribution.getFeatureAmp90with250ms()); //持续时间100ms-250ms + entity8090.setDuration500(eventDipShortDistribution.getFeatureAmp90with500ms()); //持续时间250ms-500ms + entity8090.setDuration1000(eventDipShortDistribution.getFeatureAmp90with1000ms()); //持续时间500ms-1000ms + entity8090.setDuration3000(eventDipShortDistribution.getFeatureAmp90with3000ms()); //持续时间1000ms-3000ms + entity8090.setDuration10000(eventDipShortDistribution.getFeatureAmp90with10000ms()); //持续时间3000ms-10000ms + entity8090.setDuration20000(eventDipShortDistribution.getFeatureAmp90with20000ms()); //持续时间10000ms-20000ms + entity8090.setDuration60000(eventDipShortDistribution.getFeatureAmp90with60000ms()); //持续时间20000ms-60000ms + list.add(entity8090); + + //特征幅值[70,80) + EventDipShortDistributionTableVO entity7080 = new EventDipShortDistributionTableVO(); + entity7080.setFeatureAmplitude("[70,80)"); + entity7080.setDuration100(eventDipShortDistribution.getFeatureAmp80with100ms()); //持续时间10ms-100ms + entity7080.setDuration250(eventDipShortDistribution.getFeatureAmp80with250ms()); //持续时间100ms-250ms + entity7080.setDuration500(eventDipShortDistribution.getFeatureAmp80with500ms()); //持续时间250ms-500ms + entity7080.setDuration1000(eventDipShortDistribution.getFeatureAmp80with1000ms()); //持续时间500ms-1000ms + entity7080.setDuration3000(eventDipShortDistribution.getFeatureAmp80with3000ms()); //持续时间1000ms-3000ms + entity7080.setDuration10000(eventDipShortDistribution.getFeatureAmp80with10000ms()); //持续时间3000ms-10000ms + entity7080.setDuration20000(eventDipShortDistribution.getFeatureAmp80with20000ms()); //持续时间10000ms-20000ms + entity7080.setDuration60000(eventDipShortDistribution.getFeatureAmp80with60000ms()); //持续时间20000ms-60000ms + list.add(entity7080); + + //特征幅值[60,70) + EventDipShortDistributionTableVO entity6070 = new EventDipShortDistributionTableVO(); + entity6070.setFeatureAmplitude("[60,70)"); + entity6070.setDuration100(eventDipShortDistribution.getFeatureAmp70with100ms()); //持续时间10ms-100ms + entity6070.setDuration250(eventDipShortDistribution.getFeatureAmp70with250ms()); //持续时间100ms-250ms + entity6070.setDuration500(eventDipShortDistribution.getFeatureAmp70with500ms()); //持续时间250ms-500ms + entity6070.setDuration1000(eventDipShortDistribution.getFeatureAmp70with1000ms()); //持续时间500ms-1000ms + entity6070.setDuration3000(eventDipShortDistribution.getFeatureAmp70with3000ms()); //持续时间1000ms-3000ms + entity6070.setDuration10000(eventDipShortDistribution.getFeatureAmp70with10000ms()); //持续时间3000ms-10000ms + entity6070.setDuration20000(eventDipShortDistribution.getFeatureAmp70with20000ms()); //持续时间10000ms-20000ms + entity6070.setDuration60000(eventDipShortDistribution.getFeatureAmp70with60000ms()); //持续时间20000ms-60000ms + list.add(entity6070); + + //特征幅值[50,60) + EventDipShortDistributionTableVO entity5060 = new EventDipShortDistributionTableVO(); + entity5060.setFeatureAmplitude("[50,60)"); + entity5060.setDuration100(eventDipShortDistribution.getFeatureAmp60with100ms()); //持续时间10ms-100ms + entity5060.setDuration250(eventDipShortDistribution.getFeatureAmp60with250ms()); //持续时间100ms-250ms + entity5060.setDuration500(eventDipShortDistribution.getFeatureAmp60with500ms()); //持续时间250ms-500ms + entity5060.setDuration1000(eventDipShortDistribution.getFeatureAmp60with1000ms()); //持续时间500ms-1000ms + entity5060.setDuration3000(eventDipShortDistribution.getFeatureAmp60with3000ms()); //持续时间1000ms-3000ms + entity5060.setDuration10000(eventDipShortDistribution.getFeatureAmp60with10000ms()); //持续时间3000ms-10000ms + entity5060.setDuration20000(eventDipShortDistribution.getFeatureAmp60with20000ms()); //持续时间10000ms-20000ms + entity5060.setDuration60000(eventDipShortDistribution.getFeatureAmp60with60000ms()); //持续时间20000ms-60000ms + list.add(entity5060); + + //特征幅值[40,50) + EventDipShortDistributionTableVO entity4050 = new EventDipShortDistributionTableVO(); + entity4050.setFeatureAmplitude("[40,50)"); + entity4050.setDuration100(eventDipShortDistribution.getFeatureAmp50with100ms()); //持续时间10ms-100ms + entity4050.setDuration250(eventDipShortDistribution.getFeatureAmp50with250ms()); //持续时间100ms-250ms + entity4050.setDuration500(eventDipShortDistribution.getFeatureAmp50with500ms()); //持续时间250ms-500ms + entity4050.setDuration1000(eventDipShortDistribution.getFeatureAmp50with1000ms()); //持续时间500ms-1000ms + entity4050.setDuration3000(eventDipShortDistribution.getFeatureAmp50with3000ms()); //持续时间1000ms-3000ms + entity4050.setDuration10000(eventDipShortDistribution.getFeatureAmp50with10000ms()); //持续时间3000ms-10000ms + entity4050.setDuration20000(eventDipShortDistribution.getFeatureAmp50with20000ms()); //持续时间10000ms-20000ms + entity4050.setDuration60000(eventDipShortDistribution.getFeatureAmp50with60000ms()); //持续时间20000ms-60000ms + list.add(entity4050); + + //特征幅值[30,40) + EventDipShortDistributionTableVO entity3040 = new EventDipShortDistributionTableVO(); + entity3040.setFeatureAmplitude("[30,40)"); + entity3040.setDuration100(eventDipShortDistribution.getFeatureAmp40with100ms()); //持续时间10ms-100ms + entity3040.setDuration250(eventDipShortDistribution.getFeatureAmp40with250ms()); //持续时间100ms-250ms + entity3040.setDuration500(eventDipShortDistribution.getFeatureAmp40with500ms()); //持续时间250ms-500ms + entity3040.setDuration1000(eventDipShortDistribution.getFeatureAmp40with1000ms()); //持续时间500ms-1000ms + entity3040.setDuration3000(eventDipShortDistribution.getFeatureAmp40with3000ms()); //持续时间1000ms-3000ms + entity3040.setDuration10000(eventDipShortDistribution.getFeatureAmp40with10000ms()); //持续时间3000ms-10000ms + entity3040.setDuration20000(eventDipShortDistribution.getFeatureAmp40with20000ms()); //持续时间10000ms-20000ms + entity3040.setDuration60000(eventDipShortDistribution.getFeatureAmp40with60000ms()); //持续时间20000ms-60000ms + list.add(entity3040); + + //特征幅值[20,30) + EventDipShortDistributionTableVO entity2030 = new EventDipShortDistributionTableVO(); + entity2030.setFeatureAmplitude("[20,30)"); + entity2030.setDuration100(eventDipShortDistribution.getFeatureAmp30with100ms()); //持续时间10ms-100ms + entity2030.setDuration250(eventDipShortDistribution.getFeatureAmp30with250ms()); //持续时间100ms-250ms + entity2030.setDuration500(eventDipShortDistribution.getFeatureAmp30with500ms()); //持续时间250ms-500ms + entity2030.setDuration1000(eventDipShortDistribution.getFeatureAmp30with1000ms()); //持续时间500ms-1000ms + entity2030.setDuration3000(eventDipShortDistribution.getFeatureAmp30with3000ms()); //持续时间1000ms-3000ms + entity2030.setDuration10000(eventDipShortDistribution.getFeatureAmp30with10000ms()); //持续时间3000ms-10000ms + entity2030.setDuration20000(eventDipShortDistribution.getFeatureAmp30with20000ms()); //持续时间10000ms-20000ms + entity2030.setDuration60000(eventDipShortDistribution.getFeatureAmp30with60000ms()); //持续时间20000ms-60000ms + list.add(entity2030); + + //特征幅值[10,20) + EventDipShortDistributionTableVO entity1020 = new EventDipShortDistributionTableVO(); + entity1020.setFeatureAmplitude("[10,20)"); + entity1020.setDuration100(eventDipShortDistribution.getFeatureAmp20with100ms()); //持续时间10ms-100ms + entity1020.setDuration250(eventDipShortDistribution.getFeatureAmp20with250ms()); //持续时间100ms-250ms + entity1020.setDuration500(eventDipShortDistribution.getFeatureAmp20with500ms()); //持续时间250ms-500ms + entity1020.setDuration1000(eventDipShortDistribution.getFeatureAmp20with1000ms()); //持续时间500ms-1000ms + entity1020.setDuration3000(eventDipShortDistribution.getFeatureAmp20with3000ms()); //持续时间1000ms-3000ms + entity1020.setDuration10000(eventDipShortDistribution.getFeatureAmp20with10000ms()); //持续时间3000ms-10000ms + entity1020.setDuration20000(eventDipShortDistribution.getFeatureAmp20with20000ms()); //持续时间10000ms-20000ms + entity1020.setDuration60000(eventDipShortDistribution.getFeatureAmp20with60000ms()); //持续时间20000ms-60000ms + list.add(entity1020); + + //特征幅值[0,10) + EventDipShortDistributionTableVO entity10 = new EventDipShortDistributionTableVO(); + entity10.setFeatureAmplitude("[0,10)"); + entity10.setDuration100(eventDipShortDistribution.getFeatureAmp10with100ms()); //持续时间10ms-100ms + entity10.setDuration250(eventDipShortDistribution.getFeatureAmp10with250ms()); //持续时间100ms-250ms + entity10.setDuration500(eventDipShortDistribution.getFeatureAmp10with500ms()); //持续时间250ms-500ms + entity10.setDuration1000(eventDipShortDistribution.getFeatureAmp10with1000ms()); //持续时间500ms-1000ms + entity10.setDuration3000(eventDipShortDistribution.getFeatureAmp10with3000ms()); //持续时间1000ms-3000ms + entity10.setDuration10000(eventDipShortDistribution.getFeatureAmp10with10000ms()); //持续时间3000ms-10000ms + entity10.setDuration20000(eventDipShortDistribution.getFeatureAmp10with20000ms()); //持续时间10000ms-20000ms + entity10.setDuration60000(eventDipShortDistribution.getFeatureAmp10with60000ms()); //持续时间20000ms-60000ms + list.add(entity10); + return list; + } + + /*** + * 暂态指标监测点电压暂升分布情况 + * @author jianghaifei + * @date 2022-10-29 14:08 + * @param eventMonitorReportParam + * @return com.njcn.event.pojo.vo.EventRiseDistributionVO + */ + @Override + public List getEventRiseDistributionByCond(EventMonitorReportParam eventMonitorReportParam) { + //提取参数 +// String monitorName = eventMonitorReportParam.getMonitorName(); //监测点名称 +// String id = eventMonitorReportParam.getId(); //单位id + String startTime = eventMonitorReportParam.getStartTime(); //开始时间 + String endTime = eventMonitorReportParam.getEndTime(); //结束时间 + Integer type = eventMonitorReportParam.getType(); //时间类型(日/月) + + //查询监测点信息 + List monitorList = this.getMonitorList(eventMonitorReportParam); + List monitorIdList = monitorList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList()); //监测点id集合 + + //获取暂态指标的字典 + List eventStatisList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData(); + //将暂态指标信息转成map,key:code value:实体 + Map eventStatisMapByCode = eventStatisList.stream().collect(Collectors.toMap(DictData::getCode, data -> data)); + //暂升分布情况 + Map riseCondMap = new HashMap<>(); + riseCondMap.put("monitorIdList", monitorIdList); + riseCondMap.put("startTime", startTime); + riseCondMap.put("endTime", endTime); + riseCondMap.put("eventTypeList", Collections.singletonList(eventStatisMapByCode.get(DicDataEnum.VOLTAGE_RISE.getCode()).getId())); + riseCondMap.put("dateType", type); + EventRiseDistributionVO eventRiseDistribution = eventDistributionStatisticsMapper.getEventRiseDistributionByCond(riseCondMap); + //设置返回数据 + List list = new ArrayList<>(); + //特征幅值U1≥120 + EventRiseDistributionTableVO entity120 = new EventRiseDistributionTableVO(); + entity120.setFeatureAmplitude("≥120"); + entity120.setDuration500(eventRiseDistribution.getFeatureAmp120with500ms()); //持续时间100ms-500ms + entity120.setDuration5000(eventRiseDistribution.getFeatureAmp120with5000ms()); //持续时间500ms-5000ms + entity120.setDuration60000(eventRiseDistribution.getFeatureAmp120with60000ms()); //持续时间5000ms-60000ms + list.add(entity120); + + //特征幅值-120-110 + EventRiseDistributionTableVO entity110 = new EventRiseDistributionTableVO(); + entity110.setFeatureAmplitude("-120,110"); + entity110.setDuration500(eventRiseDistribution.getFeatureAmp110with500ms()); //持续时间100ms-500ms + entity110.setDuration5000(eventRiseDistribution.getFeatureAmp110with5000ms()); //持续时间500ms-5000ms + entity110.setDuration60000(eventRiseDistribution.getFeatureAmp110with60000ms()); //持续时间5000ms-60000ms + list.add(entity110); + return list; + } + + /*** + * 获取单位(及子孙单位)下的监测点信息(抽取的公共方法) + * @author jianghaifei + * @date 2022-10-29 17:37 + * @param eventMonitorReportParam + * @return java.util.List + */ + private List getMonitorList(EventMonitorReportParam eventMonitorReportParam) { + //提起参数 + String id = eventMonitorReportParam.getId(); //单位id + String monitorName = eventMonitorReportParam.getMonitorName(); //台区名称 + + //根据条件查询单位下面的所有配网监测点 + PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam(); + pwPmsMonitorParam.setOrgId(id); //单位id + pwPmsMonitorParam.setMonitorName(monitorName); //台区名称(监测点名称) + List pwMonitorList = pwMonitorClient.getPwMonitorList(pwPmsMonitorParam).getData(); + + return pwMonitorList; + } +} diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/distribution/PwEventMonitorReportService.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/distribution/PwEventMonitorReportService.java new file mode 100644 index 000000000..53cdfb403 --- /dev/null +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/distribution/PwEventMonitorReportService.java @@ -0,0 +1,28 @@ +package com.njcn.event.service.distribution; + +import com.njcn.event.pojo.param.EventMonitorReportParam; +import com.njcn.event.pojo.vo.EventDipShortDistributionTableVO; +import com.njcn.event.pojo.vo.EventMonitorReportVO; +import com.njcn.event.pojo.vo.EventRiseDistributionTableVO; + +import java.util.List; + +/** + * 配网暂态指标 + * @Title EventMonitorDailyReportService + * @Package com.njcn.event.service + * @Author jianghaifei + * @Date 2022-10-25 09:39 + * @Version V1.0 + */ +public interface PwEventMonitorReportService { + + //监测点暂态事件发生次数 + List getMonitorEventCount(EventMonitorReportParam eventMonitorReportParam); + + //暂态指标监测点电压暂降和短时中断分布情况 + List getEventDipShortDistributionByCond(EventMonitorReportParam eventMonitorReportParam); + + //暂态指标监测点电压暂升分布情况 + List getEventRiseDistributionByCond(EventMonitorReportParam eventMonitorReportParam); +} diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/RStatPwPermeabilityMParam.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/RStatPwPermeabilityMParam.java new file mode 100644 index 000000000..4a8ec15b0 --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/RStatPwPermeabilityMParam.java @@ -0,0 +1,19 @@ +package com.njcn.harmonic.pojo.param; + +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Title RStatPwPermeabilityMParam + * @Package com.njcn.harmonic.pojo.param + * @Author jianghaifei + * @Date 2022-11-07 14:15 + * @Version V1.0 + */ +@Data +public class RStatPwPermeabilityMParam extends StatisticsBizBaseParam { + + @ApiModelProperty(name = "psrName", value = "台区名称") + private String psrName; +} diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/RStatPollutionOrgDPO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/RStatPollutionOrgDPO.java new file mode 100644 index 000000000..8b95e6cb1 --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/RStatPollutionOrgDPO.java @@ -0,0 +1,61 @@ +package com.njcn.harmonic.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.Date; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/8 13:27【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +/** + * 单位污区图统计日表 + */ +@ApiModel(value="com-njcn-harmonic-pojo-po-RStatPollutionOrgDPO") +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "r_stat_pollution_org_d") +public class RStatPollutionOrgDPO implements Serializable { + /** + * 单位id + */ + @TableField(value = "org_id") + @ApiModelProperty(value="单位id") + private String orgId; + + /** + * 时间 + */ + @TableField(value = "data_date") + @ApiModelProperty(value="时间") + private Date dataDate; + + /** + * 污区图统计类型 + */ + @TableField(value = "pollution_type") + @ApiModelProperty(value="污区图统计类型") + private String pollutionType; + + /** + * 统计值 + */ + @TableField(value = "value") + @ApiModelProperty(value="统计值") + private Double value; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/RStatPollutionOrgQPO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/RStatPollutionOrgQPO.java new file mode 100644 index 000000000..34a71fa21 --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/RStatPollutionOrgQPO.java @@ -0,0 +1,62 @@ +package com.njcn.harmonic.pojo.po; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import java.util.Date; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/8 13:27【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +/** + * 单位污区图统计季表 + */ +@ApiModel(value="com-njcn-harmonic-pojo-po-RStatPollutionOrgQPO") +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "r_stat_pollution_org_q") +public class RStatPollutionOrgQPO implements Serializable { + /** + * 单位id + */ + @TableField(value = "org_id") + @ApiModelProperty(value="单位id") + private String orgId; + + /** + * 时间 + */ + @TableField(value = "data_date") + @ApiModelProperty(value="时间") + private Date dataDate; + + /** + * 污区图统计类型 + */ + @TableField(value = "pollution_type") + @ApiModelProperty(value="污区图统计类型") + private String pollutionType; + + /** + * 统计值 + */ + @TableField(value = "value") + @ApiModelProperty(value="统计值") + private Double value; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/RStatPollutionOrgYPO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/RStatPollutionOrgYPO.java new file mode 100644 index 000000000..44fc2c38d --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/RStatPollutionOrgYPO.java @@ -0,0 +1,62 @@ +package com.njcn.harmonic.pojo.po; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import java.util.Date; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/8 13:28【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +/** + * 单位污区图统计年表 + */ +@ApiModel(value="com-njcn-harmonic-pojo-po-RStatPollutionOrgYPO") +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "r_stat_pollution_org_y") +public class RStatPollutionOrgYPO implements Serializable { + /** + * 单位id + */ + @TableField(value = "org_id") + @ApiModelProperty(value="单位id") + private String orgId; + + /** + * 时间 + */ + @TableField(value = "data_date") + @ApiModelProperty(value="时间") + private Date dataDate; + + /** + * 污区图统计类型 + */ + @TableField(value = "pollution_type") + @ApiModelProperty(value="污区图统计类型") + private String pollutionType; + + /** + * 统计值 + */ + @TableField(value = "value") + @ApiModelProperty(value="统计值") + private Double value; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/RStatPollutionSubstationDPO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/RStatPollutionSubstationDPO.java new file mode 100644 index 000000000..4fc3cc462 --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/RStatPollutionSubstationDPO.java @@ -0,0 +1,62 @@ +package com.njcn.harmonic.pojo.po; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import java.util.Date; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/8 13:28【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +/** + * 变电站污区图统计日表 + */ +@ApiModel(value="com-njcn-harmonic-pojo-po-RStatPollutionSubstationDPO") +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "r_stat_pollution_substation_d") +public class RStatPollutionSubstationDPO implements Serializable { + /** + * 变电站id + */ + @TableField(value = "substation_id") + @ApiModelProperty(value="变电站id") + private String substationId; + + /** + * 时间 + */ + @TableField(value = "data_date") + @ApiModelProperty(value="时间") + private Date dataDate; + + /** + * 污区图统计类型 + */ + @TableField(value = "pollution_type") + @ApiModelProperty(value="污区图统计类型") + private String pollutionType; + + /** + * 统计值 + */ + @TableField(value = "value") + @ApiModelProperty(value="统计值") + private Double value; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/RStatPollutionSubstationQPO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/RStatPollutionSubstationQPO.java new file mode 100644 index 000000000..2936a93d6 --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/RStatPollutionSubstationQPO.java @@ -0,0 +1,62 @@ +package com.njcn.harmonic.pojo.po; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import java.util.Date; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/8 13:28【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +/** + * 变电站污区图统计季表 + */ +@ApiModel(value="com-njcn-harmonic-pojo-po-RStatPollutionSubstationQPO") +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "r_stat_pollution_substation_q") +public class RStatPollutionSubstationQPO implements Serializable { + /** + * 变电站id + */ + @TableField(value = "substation_id") + @ApiModelProperty(value="变电站id") + private String substationId; + + /** + * 时间 + */ + @TableField(value = "data_date") + @ApiModelProperty(value="时间") + private Date dataDate; + + /** + * 污区图统计类型 + */ + @TableField(value = "pollution_type") + @ApiModelProperty(value="污区图统计类型") + private String pollutionType; + + /** + * 统计值 + */ + @TableField(value = "value") + @ApiModelProperty(value="统计值") + private Double value; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/RStatPollutionSubstationYPO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/RStatPollutionSubstationYPO.java new file mode 100644 index 000000000..e46ffc5ff --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/RStatPollutionSubstationYPO.java @@ -0,0 +1,62 @@ +package com.njcn.harmonic.pojo.po; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import java.util.Date; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/8 13:28【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +/** + * 变电站污区图统计年表 + */ +@ApiModel(value="com-njcn-harmonic-pojo-po-RStatPollutionSubstationYPO") +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "r_stat_pollution_substation_y") +public class RStatPollutionSubstationYPO implements Serializable { + /** + * 变电站id + */ + @TableField(value = "substation_id") + @ApiModelProperty(value="变电站id") + private String substationId; + + /** + * 时间 + */ + @TableField(value = "data_date") + @ApiModelProperty(value="时间") + private Date dataDate; + + /** + * 污区图统计类型 + */ + @TableField(value = "pollution_type") + @ApiModelProperty(value="污区图统计类型") + private String pollutionType; + + /** + * 统计值 + */ + @TableField(value = "value") + @ApiModelProperty(value="统计值") + private Double value; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/RStatPwPermeabilityM.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/RStatPwPermeabilityM.java new file mode 100644 index 000000000..e276aaad3 --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/RStatPwPermeabilityM.java @@ -0,0 +1,82 @@ +package com.njcn.harmonic.pojo.po; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + +/** + * + * @TableName r_stat_pw_permeability_m + */ +@TableName(value ="r_stat_pw_permeability_m") +@Data +public class RStatPwPermeabilityM implements Serializable { + + @TableField(exist = false) + private static final long serialVersionUID = 1L; + + /** + * 单位ID + */ + private String orgNo; + + /** + * 生成数据的时间,每月统计一次 + */ + private Date dataDate; + + /** + * 台区ID + */ + private String psrId; + + /** + * 电压水平均值 + */ + private Double voltageAvg; + + /** + * 电压水平标准差 + */ + private Double voltageSd; + + /** + * 三相电压不平衡水平均值 + */ + private Double unbalanceAvg; + + /** + * 三相电压不平衡水平标准差 + */ + private Double unbalanceSd; + + /** + * 电压总谐波畸变率水平均值 + */ + private Double vthdAvg; + + /** + * 电压总谐波畸变率水平标准差 + */ + private Double vthdSd; + + /** + * 长时间闪变水平均值 + */ + private Double flickerAvg; + + /** + * 长时间闪变水平标准差 + */ + private Double flickerSd; + + /** + * 分布式光伏台区渗透率水平(0~25%、25~50%、50~75%、75~100%、100%) + */ + private String permeabilityType; + + +} \ No newline at end of file diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/PwRMpBenchmarkLevelVO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/PwRMpBenchmarkLevelVO.java new file mode 100644 index 000000000..b664fcb07 --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/PwRMpBenchmarkLevelVO.java @@ -0,0 +1,59 @@ +package com.njcn.harmonic.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * @Title PwRMpBenchmarkLevelVO + * @Package com.njcn.harmonic.pojo.vo + * @Author jianghaifei + * @Date 2022-11-04 11:04 + * @Version V1.0 + */ +@Data +public class PwRMpBenchmarkLevelVO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(name = "orgNo", value = "单位id") + private String orgNo; + + @ApiModelProperty(name = "orgName", value = "单位名称") + private String orgName; + + @ApiModelProperty(name = "measurementPointId", value = "监测点ID") + private String measurementPointId; + + @ApiModelProperty(name = "measurementPointName", value = "监测点名称") + private String measurementPointName; + + @ApiModelProperty(name = "voltage_Level", value = "电压等级id") + private String voltageLevel; + + @ApiModelProperty(name = "voltageAvg", value = "电压水平均值") + private Double voltageAvg; + + @ApiModelProperty(name = "voltageSd", value = "电压水平标准差") + private Double voltageSd; + + @ApiModelProperty(name = "unbalanceAvg", value = "三相电压不平衡水平均值") + private Double unbalanceAvg; + + @ApiModelProperty(name = "unbalanceSd", value = "三相电压不平衡水平标准差") + private Double unbalanceSd; + + @ApiModelProperty(name = "vthdAvg", value = "电压总谐波畸变率水平均值") + private Double vthdAvg; + + @ApiModelProperty(name = "vthdSd", value = "电压总谐波畸变率水平标准差") + private Double vthdSd; + + @ApiModelProperty(name = "flickerAvg", value = "长时间闪变水平均值") + private Double flickerAvg; + + @ApiModelProperty(name = "flickerSd", value = "长时间闪变水平标准差") + private Double flickerSd; +} diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/PwRStatOrgVO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/PwRStatOrgVO.java new file mode 100644 index 000000000..b3764dfbb --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/PwRStatOrgVO.java @@ -0,0 +1,37 @@ +package com.njcn.harmonic.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * <功能描述> + * + * @author 1754607820@qq.com + * @createTime: 2022-11-08 + */ +@Data +public class PwRStatOrgVO { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "单位id") + private String orgNo; + + @ApiModelProperty(value = "单位名称") + private String orgName; + + @ApiModelProperty(value = "监测点类别") + private String measurementTypeClass; + + @ApiModelProperty(value = "在线监测点数") + private String allCount; + + @ApiModelProperty(value = "频率偏差合格率") + private Float freqPassRate; + + @ApiModelProperty(value = "电压偏差合格率") + private Float vDevPassRate; + + @ApiModelProperty(value = "闪变合格率") + private Float flickerPassRate; + +} diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/RStatPwPermeabilityMVO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/RStatPwPermeabilityMVO.java new file mode 100644 index 000000000..9295bbcce --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/RStatPwPermeabilityMVO.java @@ -0,0 +1,158 @@ +package com.njcn.harmonic.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * 各渗透率光伏台区基准水平返回实体 + * @Title RStatPwPermeabilityMVO + * @Package com.njcn.harmonic.pojo.vo + * @Author jianghaifei + * @Date 2022-11-07 10:40 + * @Version V1.0 + */ +@Data +public class RStatPwPermeabilityMVO implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(name = "orgNo", value = "单位id") + private String orgNo; + + @ApiModelProperty(name = "orgName", value = "单位名称") + private String orgName; + + @ApiModelProperty(name = "psrId", value = "台区Id") + private String psrId; + + @ApiModelProperty(name = "psrName", value = "台区名称") + private String psrName; + + + @ApiModelProperty(name = "voltageAvg25", value = "0~25%渗透率电压水平均值") + private Double voltageAvg25; + + @ApiModelProperty(name = "voltageSd25", value = "0~25%渗透率电压水平标准差") + private Double voltageSd25; + + @ApiModelProperty(name = "unbalanceAvg25", value = "0~25%渗透率三相电压不平衡水平均值") + private Double unbalanceAvg25; + + @ApiModelProperty(name = "unbalanceSd25", value = "0~25%渗透率三相电压不平衡水平标准差") + private Double unbalanceSd25; + + @ApiModelProperty(name = "vthdAvg25", value = "0~25%渗透率电压总谐波畸变率水平均值") + private Double vthdAvg25; + + @ApiModelProperty(name = "vthdSd25", value = "0~25%渗透率电压总谐波畸变率水平标准差") + private Double vthdSd25; + + @ApiModelProperty(name = "flickerAvg25", value = "0~25%渗透率长时间闪变水平均值") + private Double flickerAvg25; + + @ApiModelProperty(name = "flickerSd25", value = "0~25%渗透率长时间闪变水平标准差") + private Double flickerSd25; + + + @ApiModelProperty(name = "voltageAvg50", value = "25~50%渗透率电压水平均值") + private Double voltageAvg50; + + @ApiModelProperty(name = "voltageSd50", value = "25~50%渗透率电压水平标准差") + private Double voltageSd50; + + @ApiModelProperty(name = "unbalanceAvg50", value = "25~50%渗透率三相电压不平衡水平均值") + private Double unbalanceAvg50; + + @ApiModelProperty(name = "unbalanceSd50", value = "25~50%渗透率三相电压不平衡水平标准差") + private Double unbalanceSd50; + + @ApiModelProperty(name = "vthdAvg50", value = "25~50%渗透率电压总谐波畸变率水平均值") + private Double vthdAvg50; + + @ApiModelProperty(name = "vthdSd50", value = "25~50%渗透率电压总谐波畸变率水平标准差") + private Double vthdSd50; + + @ApiModelProperty(name = "flickerAvg50", value = "25~50%渗透率长时间闪变水平均值") + private Double flickerAvg50; + + @ApiModelProperty(name = "flickerSd50", value = "25~50%渗透率长时间闪变水平标准差") + private Double flickerSd50; + + + @ApiModelProperty(name = "voltageAvg75", value = "50~75%渗透率电压水平均值") + private Double voltageAvg75; + + @ApiModelProperty(name = "voltageSd75", value = "50~75%渗透率电压水平标准差") + private Double voltageSd75; + + @ApiModelProperty(name = "unbalanceAvg75", value = "50~75%渗透率三相电压不平衡水平均值") + private Double unbalanceAvg75; + + @ApiModelProperty(name = "unbalanceSd75", value = "50~75%渗透率三相电压不平衡水平标准差") + private Double unbalanceSd75; + + @ApiModelProperty(name = "vthdAvg75", value = "50~75%渗透率电压总谐波畸变率水平均值") + private Double vthdAvg75; + + @ApiModelProperty(name = "vthdSd75", value = "50~75%渗透率电压总谐波畸变率水平标准差") + private Double vthdSd75; + + @ApiModelProperty(name = "flickerAvg75", value = "50~75%渗透率长时间闪变水平均值") + private Double flickerAvg75; + + @ApiModelProperty(name = "flickerSd75", value = "50~75%渗透率长时间闪变水平标准差") + private Double flickerSd75; + + + @ApiModelProperty(name = "voltageAvg99", value = "75~100%渗透率电压水平均值") + private Double voltageAvg99; + + @ApiModelProperty(name = "voltageSd99", value = "75~100%渗透率电压水平标准差") + private Double voltageSd99; + + @ApiModelProperty(name = "unbalanceAvg99", value = "75~100%渗透率三相电压不平衡水平均值") + private Double unbalanceAvg99; + + @ApiModelProperty(name = "unbalanceSd99", value = "75~100%渗透率三相电压不平衡水平标准差") + private Double unbalanceSd99; + + @ApiModelProperty(name = "vthdAvg99", value = "75~100%渗透率电压总谐波畸变率水平均值") + private Double vthdAvg99; + + @ApiModelProperty(name = "vthdSd99", value = "75~100%渗透率电压总谐波畸变率水平标准差") + private Double vthdSd99; + + @ApiModelProperty(name = "flickerAvg99", value = "75~100%渗透率长时间闪变水平均值") + private Double flickerAvg99; + + @ApiModelProperty(name = "flickerSd99", value = "75~100%渗透率长时间闪变水平标准差") + private Double flickerSd99; + + + + @ApiModelProperty(name = "voltageAvg100", value = "100%渗透率电压水平均值") + private Double voltageAvg100; + + @ApiModelProperty(name = "voltageSd100", value = "100%渗透率电压水平标准差") + private Double voltageSd100; + + @ApiModelProperty(name = "unbalanceAvg100", value = "100%渗透率三相电压不平衡水平均值") + private Double unbalanceAvg100; + + @ApiModelProperty(name = "unbalanceSd100", value = "100%渗透率三相电压不平衡水平标准差") + private Double unbalanceSd100; + + @ApiModelProperty(name = "vthdAvg100", value = "100%渗透率电压总谐波畸变率水平均值") + private Double vthdAvg100; + + @ApiModelProperty(name = "vthdSd100", value = "100%渗透率电压总谐波畸变率水平标准差") + private Double vthdSd100; + + @ApiModelProperty(name = "flickerAvg100", value = "100%渗透率长时间闪变水平均值") + private Double flickerAvg100; + + @ApiModelProperty(name = "flickerSd100", value = "100%渗透率长时间闪变水平标准差") + private Double flickerSd100; + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/RStatPwPermeabilityMController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/RStatPwPermeabilityMController.java new file mode 100644 index 000000000..f83ce0df0 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/RStatPwPermeabilityMController.java @@ -0,0 +1,48 @@ +package com.njcn.harmonic.controller; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.BizParamConstant; +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.harmonic.pojo.param.RMpBenchmarkLevelParam; +import com.njcn.harmonic.pojo.param.RStatPwPermeabilityMParam; +import com.njcn.harmonic.pojo.vo.PwRMpBenchmarkLevelVO; +import com.njcn.harmonic.pojo.vo.RStatPwPermeabilityMVO; +import com.njcn.harmonic.service.RStatPwPermeabilityMService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +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; + +/** + * @Title RStatPwPermeabilityMController + * @Package com.njcn.harmonic.controller + * @Author jianghaifei + * @Date 2022-11-07 13:55 + * @Version V1.0 + */ +@RestController +@RequestMapping("/rStatPwPermeability") +@RequiredArgsConstructor +@Api(tags = "配网-各渗透率光伏台区基准水平") +public class RStatPwPermeabilityMController extends BaseController { + + private final RStatPwPermeabilityMService rStatPwPermeabilityMService; + + @PostMapping("getPwPermeabilityList") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("查询各渗透率光伏台区基准水平") + public HttpResult> getPwPermeabilityList(@RequestBody RStatPwPermeabilityMParam rStatPwPermeabilityMParam) { + String methodDescribe = getMethodDescribe("getPwPermeabilityList"); + List list = rStatPwPermeabilityMService.getPwPermeabilityList(rStatPwPermeabilityMParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/distribution/PwRStatHarmonicController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/distribution/PwRStatHarmonicController.java new file mode 100644 index 000000000..17f226fc5 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/distribution/PwRStatHarmonicController.java @@ -0,0 +1,86 @@ +package com.njcn.harmonic.controller.distribution; + + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.BizParamConstant; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.harmonic.pojo.param.RStatHarmonicMParam; +import com.njcn.harmonic.pojo.vo.RArrayVO; +import com.njcn.harmonic.pojo.vo.RHarmonicPolylineVO; +import com.njcn.harmonic.service.majornetwork.RStatHarmonicMService; +import com.njcn.harmonic.service.majornetwork.RStatHarmonicQService; +import com.njcn.harmonic.service.majornetwork.RStatHarmonicYService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + *

+ * 前端控制器 + *

+ * + * @author rui.wu + * @since 2022-10-09 + */ +@RestController +@RequiredArgsConstructor +@Api(tags = "配网指标分类概览-监测点分类总览") +@RequestMapping("/harmonic/pwRStatHarmonic") +public class PwRStatHarmonicController extends BaseController { + + private final RStatHarmonicMService rStatHarmonicMService; + private final RStatHarmonicQService rStatHarmonicQService; + private final RStatHarmonicYService rStatHarmonicYService; + + /** + * 查询查询监测点稳态指标 日/月点数 + */ + @PostMapping("/getPwAllRStatHarmonic") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("查询稳态累计超标监测点数") + public HttpResult> getPwAllRStatHarmonic(@RequestBody StatisticsBizBaseParam param) { + String methodDescribe = getMethodDescribe("getPwAllRStatHarmonic"); + List rStatHarmonicMAll = null; + String string = param.getType().toString(); + switch (string) { + //查询超标监测点数-年数据 + case BizParamConstant.STAT_BIZ_YEAR: + rStatHarmonicMAll = rStatHarmonicYService.getPwRStatHarmonicYAll(param); + break; + //查询超标监测点数-季数据 + case BizParamConstant.STAT_BIZ_QUARTER: + rStatHarmonicMAll = rStatHarmonicQService.getPwRStatHarmonicQAll(param); + break; + //查询超标监测点数-月数据 + case BizParamConstant.STAT_BIZ_MONTH: + rStatHarmonicMAll = rStatHarmonicMService.getPwRStatHarmonicMAll(param); + break; + default: + break; + } + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rStatHarmonicMAll, methodDescribe); + } + + + /** + * 监测点-频率偏差-电压统计图 + */ + @PostMapping("/getPwRStatHarmonicIconDate") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("稳态监测点-频率偏差-越线日期统计图") + public HttpResult> getPwRStatHarmonicIconDate(@RequestBody RStatHarmonicMParam param) { + String methodDescribe = getMethodDescribe("getPwRStatHarmonicIconDate"); + List rStatHarmonicIcon = rStatHarmonicMService.getPwRStatHarmonicIconDate(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rStatHarmonicIcon, methodDescribe); + } + +} + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/distribution/PwRStatHarmonicOrgMController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/distribution/PwRStatHarmonicOrgMController.java new file mode 100644 index 000000000..b3a0a5b26 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/distribution/PwRStatHarmonicOrgMController.java @@ -0,0 +1,103 @@ +package com.njcn.harmonic.controller.distribution; + + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.BizParamConstant; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.harmonic.pojo.param.RStatHarmonicMParam; +import com.njcn.harmonic.pojo.vo.RArrayVO; +import com.njcn.harmonic.pojo.vo.RIconVO; +import com.njcn.harmonic.service.majornetwork.RStatHarmonicOrgMService; +import com.njcn.harmonic.service.majornetwork.RStatHarmonicOrgQService; +import com.njcn.harmonic.service.majornetwork.RStatHarmonicOrgYService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + *

+ * 前端控制器 + *

+ * + * @author rui.wu + * @since 2022-10-14 + */ +@RestController +@RequiredArgsConstructor +@Api(tags = "配网指标分类概览-各单位分类总览") +@RequestMapping("/harmonic/pwRStatHarmonicOrg") +public class PwRStatHarmonicOrgMController extends BaseController { + + private final RStatHarmonicOrgYService rStatHarmonicOrgYService; + private final RStatHarmonicOrgQService rStatHarmonicOrgQService; + private final RStatHarmonicOrgMService rStatHarmonicOrgMService; + + /** + * 查询查询监测点稳态指标 日/月点数 + */ + @PostMapping("/getPwRStatHarmonicOrg") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("查询稳态累计超标监测点数") + public HttpResult> getPwRStatHarmonicOrg(@RequestBody StatisticsBizBaseParam param) { + String methodDescribe = getMethodDescribe("getPwRStatHarmonicOrg"); + List org = null; + String string = param.getType().toString(); + switch (string) { + //查询各单位累计超标监测点数-年数据 + case BizParamConstant.STAT_BIZ_YEAR: + org = rStatHarmonicOrgYService.getPwRStatHarmonicYAll(param); + break; + //查询各单位累计超标监测点数-季数据 + case BizParamConstant.STAT_BIZ_QUARTER: + org = rStatHarmonicOrgQService.getPwRStatHarmonicQAll(param); + break; + //查询各单位累计超标监测点数-月数据 + case BizParamConstant.STAT_BIZ_MONTH: + org = rStatHarmonicOrgMService.getPwRStatHarmonicMAll(param); + break; + default: + break; + } + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, org, methodDescribe); + } + + + /** + * 查询查询监测点稳态指标 日/月点数 + */ + @PostMapping("/getPwRStatHarmonicOrgIcon") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("查询稳态各单位超标监测统计图") + public HttpResult> getPwRStatHarmonicOrgIcon(@RequestBody RStatHarmonicMParam param) { + String methodDescribe = getMethodDescribe("getPwRStatHarmonicOrgIcon"); + List icon= null; + String string = param.getType().toString(); + switch (string) { + //查询各单位累计超标监测点数统计图-年数据 + case BizParamConstant.STAT_BIZ_YEAR: + icon = rStatHarmonicOrgYService.getPwRStatHarmonicOrgYIcon(param); + break; + //查询各单位累计超标监测点数-季数据 + case BizParamConstant.STAT_BIZ_QUARTER: + icon = rStatHarmonicOrgQService.getPwRStatHarmonicOrgQIcon(param); + break; + //查询各单位累计超标监测点数-月数据 + case BizParamConstant.STAT_BIZ_MONTH: + icon = rStatHarmonicOrgMService.getPwRStatHarmonicOrgMIcon(param); + break; + default: + break; + } + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, icon, methodDescribe); + } + +} + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/distribution/PwRStatOrgController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/distribution/PwRStatOrgController.java new file mode 100644 index 000000000..4c995bab6 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/distribution/PwRStatOrgController.java @@ -0,0 +1,175 @@ +package com.njcn.harmonic.controller.distribution; + + +import com.njcn.common.pojo.annotation.OperateInfo; +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.harmonic.pojo.param.RStatOrgParam; +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.vo.*; +import com.njcn.harmonic.service.distribution.PwRStatOrgService; +import com.njcn.harmonic.service.majornetwork.*; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + + +/** + *

+ * 区域分类统计月表 前端控制器 + *

+ * + * @author rui.wu + * @since 2022-10-17 + */ +@RestController +@RequiredArgsConstructor +@Api(tags = "配网指标-稳态指标") +@RequestMapping("/harmonic/pwRStatOrg") +public class PwRStatOrgController extends BaseController { + + private final PwRStatOrgService pwRStatOrgService; + private final RStatOrgYService rStatOrgYService; + private final RStatOrgBusbarVoltageService rStatOrgBusbarVoltageService; + private final RStatLoadTypeService rStatLoadTypeService; + private final RMpPartHarmonicDetailMService rMpPartHarmonicDetailMService; + private final RMpPartHarmonicDetailDService rMpPartHarmonicDetailDService; + private final RMpPassRateService rMpPassRateService; + + + /** + * 查询配网区域超标统计 + */ + @PostMapping("/getPwAllRStatHarmonicOrg") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("区域超标统计") + public HttpResult> getPwAllRStatHarmonicOrg(@RequestBody StatSubstationBizBaseParam param) { + String methodDescribe = getMethodDescribe("getPwAllRStatHarmonicOrg"); + List rStatHarmonicAll = pwRStatOrgService.getRStatHarmonicAll(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rStatHarmonicAll, methodDescribe); + } + + +// /** +// * 区域稳态指标超标分类统计表 +// */ +// @GetMapping("/getPwRStatSubstation") +// @OperateInfo(info = LogEnum.BUSINESS_COMMON) +// @ApiOperation("区域稳态指标超标分类统计表") +// public HttpResult> getRStatSubstation(StatisticsBizBaseParam param) { +// String methodDescribe = getMethodDescribe("getRStatSubstation"); +// List statSubstationIcon = rStatOrgYService.getRStatSubstationOrg(param); +// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, statSubstationIcon, methodDescribe); +// } +// +// /** +// * 区域稳态指标超标分类统计表 +// */ +// @PostMapping("/getRStatOrgBusbarVoltage") +// @OperateInfo(info = LogEnum.BUSINESS_COMMON) +// @ApiOperation("区域电站母线电压类指标超标计") +// public HttpResult> getRStatOrgBusbarVoltage(@RequestBody StatSubstationBizBaseParam param) { +// String methodDescribe = getMethodDescribe("getRStatOrgBusbarVoltage"); +// List statSubstationIcon = rStatOrgBusbarVoltageService.getRStatOrgBusbarVoltage(param); +// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, statSubstationIcon, methodDescribe); +// } +// +// /** +// * 区域干扰源电流类指标超标统计 +// * +// * @param param +// * @return +// */ +// @GetMapping("/getRStatLoadType") +// @OperateInfo(info = LogEnum.BUSINESS_COMMON) +// @ApiOperation("区域干扰源电流类指标超标统计") +// public HttpResult> getRStatLoadType(StatisticsBizBaseParam param) { +// String methodDescribe = getMethodDescribe("getRStatLoadType"); +// List rStatLoadType = rStatLoadTypeService.getRStatLoadType(param); +// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rStatLoadType, methodDescribe); +// } +// +// /** +// * 变电站(换流站)稳态指标超标分类统计表 +// * +// * @param param +// * @return +// */ +// @PostMapping("/getRStatSubstationOrg") +// @OperateInfo(info = LogEnum.BUSINESS_COMMON) +// @ApiOperation("变电站(换流站)稳态指标超标分类统计表") +// public HttpResult> getRStatSubstationOrg(@RequestBody StatSubstationBizBaseParam param +// ) { +// String methodDescribe = getMethodDescribe("getRStatSubstationOrg"); +// List rStatOrg = rStatOrgYService.getRStatSubstation(param); +// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rStatOrg, methodDescribe); +// } +// +// /** +// * 稳态指标超标明细表 +// * +// * @param param +// * @return +// */ +// @PostMapping("/getRMpPartHarmonicDetail") +// @OperateInfo(info = LogEnum.BUSINESS_COMMON) +// @ApiOperation("稳态指标超标明细表") +// public HttpResult> getRMpPartHarmonicDetail(@RequestBody RStatOrgParam param) { +// String methodDescribe = getMethodDescribe("getRMpPartHarmonicDetail"); +// List rMpPartHarmonicDetail = rMpPartHarmonicDetailMService.getRMpPartHarmonicDetail(param); +// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rMpPartHarmonicDetail, methodDescribe); +// } +// +// /** +// * 稳态指标超标明细表-指标趋势图 +// * +// * @param param +// * @return +// */ +// @GetMapping("/getRMpPartHarmonicDetailIcon") +// @OperateInfo(info = LogEnum.BUSINESS_COMMON) +// @ApiOperation("稳态指标超标明细表-指标趋势图") +// public HttpResult> getRMpPartHarmonicDetailIcon(StatisticsBizBaseParam param) { +// String methodDescribe = getMethodDescribe("getRMpPartHarmonicDetailIcon"); +// List rMpPartHarmonicDetail = rMpPartHarmonicDetailDService.getRMpPartHarmonicDetailIcon(param); +// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rMpPartHarmonicDetail, methodDescribe); +// } + + /** + * 区域稳态指标合格率统计表-主网(稳态指标合格率统计) + * + * @param param + * @return + */ + @GetMapping("/getPwRStatOrgIndex") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("区域稳态指标合格率统计表") + public HttpResult>getRStatOrgIndex(StatSubstationBizBaseParam param) { + String methodDescribe = getMethodDescribe("getRStatOrgIndex"); + List rStatOrg = pwRStatOrgService.getRStatOrgIndex(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rStatOrg, methodDescribe); + } + + /** + * 区域稳态指标合格率统计表-主网(稳态指标合格率统计) + * + * @param param + * @return + */ + @PostMapping("/getRMpPassRateInfo") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("稳态指标合格率明细表") + public HttpResult> getRMpPassRateInfo(@RequestBody RStatOrgParam param) { + String methodDescribe = getMethodDescribe("getRMpPassRateInfo"); + List rStatOrg = rMpPassRateService.getRMpPassRateInfo(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rStatOrg, methodDescribe); + } + +} + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/RStatHarmonicMController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/RStatHarmonicMController.java new file mode 100644 index 000000000..a36265079 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/RStatHarmonicMController.java @@ -0,0 +1,99 @@ +package com.njcn.harmonic.controller.majornetwork; + + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.BizParamConstant; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.harmonic.pojo.param.RStatHarmonicMParam; +import com.njcn.harmonic.pojo.vo.*; +import com.njcn.harmonic.service.majornetwork.RStatHarmonicMService; +import com.njcn.harmonic.service.majornetwork.RStatHarmonicQService; +import com.njcn.harmonic.service.majornetwork.RStatHarmonicYService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 前端控制器 + *

+ * + * @author rui.wu + * @since 2022-10-09 + */ +@RestController +@RequiredArgsConstructor +@Api(tags = "主网指标分类概览-监测点分类总览") +@RequestMapping("/harmonic/rStatHarmonic") +public class RStatHarmonicMController extends BaseController { + + private final RStatHarmonicMService rStatHarmonicMService; + private final RStatHarmonicQService rStatHarmonicQService; + private final RStatHarmonicYService rStatHarmonicYService; + + /** + * 查询查询监测点稳态指标 日/月点数 + */ + @GetMapping("/getAllRStatHarmonic") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("查询稳态累计超标监测点数") + public HttpResult> getAllRStatHarmonic(StatisticsBizBaseParam param) { + String methodDescribe = getMethodDescribe("getAllRStatHarmonic"); + List rStatHarmonicMAll = null; + String string = param.getType().toString(); + switch (string) { + //查询超标监测点数-年数据 + case BizParamConstant.STAT_BIZ_YEAR: + rStatHarmonicMAll = rStatHarmonicYService.getRStatHarmonicYAll(param); + break; + //查询超标监测点数-季数据 + case BizParamConstant.STAT_BIZ_QUARTER: + rStatHarmonicMAll = rStatHarmonicQService.getRStatHarmonicQAll(param); + break; + //查询超标监测点数-月数据 + case BizParamConstant.STAT_BIZ_MONTH: + rStatHarmonicMAll = rStatHarmonicMService.getRStatHarmonicMAll(param); + break; + default: + break; + } + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rStatHarmonicMAll, methodDescribe); + } + + /** + * 电铁-频率偏差-电压统计图 + */ + @GetMapping("/getRStatHarmonicIconVoltage") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("稳态电铁-频率偏差-电压统计图") + public HttpResult> getRStatHarmonicIconVoltage(RStatHarmonicMParam param) { + String methodDescribe = getMethodDescribe("getRStatHarmonicIconVoltage"); + List rStatHarmonicIcon = rStatHarmonicMService.getRStatHarmonicIconVoltage(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rStatHarmonicIcon, methodDescribe); + } + + /** + * 电铁-频率偏差-电压统计图 + */ + @GetMapping("/getRStatHarmonicIconDate") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("稳态电铁-频率偏差-越线日期统计图") + public HttpResult> getRStatHarmonicIconDate(RStatHarmonicMParam param) { + String methodDescribe = getMethodDescribe("getRStatHarmonicIconDate"); + List rStatHarmonicIcon = rStatHarmonicMService.getRStatHarmonicIconDate(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rStatHarmonicIcon, methodDescribe); + } + + +} + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/RStatHarmonicOrgMController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/RStatHarmonicOrgMController.java new file mode 100644 index 000000000..4301c2232 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/RStatHarmonicOrgMController.java @@ -0,0 +1,106 @@ +package com.njcn.harmonic.controller.majornetwork; + + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.BizParamConstant; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.harmonic.pojo.param.RStatHarmonicMParam; +import com.njcn.harmonic.pojo.vo.RArrayVO; +import com.njcn.harmonic.pojo.vo.RIconVO; +import com.njcn.harmonic.service.majornetwork.RStatHarmonicOrgMService; +import com.njcn.harmonic.service.majornetwork.RStatHarmonicOrgQService; +import com.njcn.harmonic.service.majornetwork.RStatHarmonicOrgYService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

+ * 前端控制器 + *

+ * + * @author rui.wu + * @since 2022-10-14 + */ +@RestController +@RequiredArgsConstructor +@Api(tags = "主网指标分类概览-各单位分类总览") +@RequestMapping("/harmonic/rStatHarmonicOrg") +public class RStatHarmonicOrgMController extends BaseController { + + private final RStatHarmonicOrgYService rStatHarmonicOrgYService; + private final RStatHarmonicOrgQService rStatHarmonicOrgQService; + private final RStatHarmonicOrgMService rStatHarmonicOrgMService; + + /** + * 查询查询监测点稳态指标 日/月点数 + */ + @GetMapping("/getAllRStatHarmonicOrg") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("查询稳态累计超标监测点数") + public HttpResult> getAllRStatHarmonicOrg(StatisticsBizBaseParam param) { + String methodDescribe = getMethodDescribe("getAllRStatHarmonicOrg"); + List rStatHarmonicOrgMAll = null; + String string = param.getType().toString(); + switch (string) { + //查询各单位累计超标监测点数-年数据 + case BizParamConstant.STAT_BIZ_YEAR: + rStatHarmonicOrgMAll = rStatHarmonicOrgYService.getRStatHarmonicYAll(param); + break; + //查询各单位累计超标监测点数-季数据 + case BizParamConstant.STAT_BIZ_QUARTER: + rStatHarmonicOrgMAll = rStatHarmonicOrgQService.getRStatHarmonicQAll(param); + break; + //查询各单位累计超标监测点数-月数据 + case BizParamConstant.STAT_BIZ_MONTH: + rStatHarmonicOrgMAll = rStatHarmonicOrgMService.getRStatHarmonicMAll(param); + break; + default: + break; + } + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rStatHarmonicOrgMAll, methodDescribe); + } + + + /** + * 查询查询监测点稳态指标 日/月点数 + */ + @GetMapping("/getAllRStatHarmonicOrgIcon") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("查询稳态各单位超标监测统计图") + public HttpResult> getAllRStatHarmonicOrgIcon(RStatHarmonicMParam param) { + String methodDescribe = getMethodDescribe("getAllRStatHarmonicOrgIcon"); + List getAllRStatHarmonicOrgIcon = null; + String string = param.getType().toString(); + switch (string) { + //查询各单位累计超标监测点数统计图-年数据 + case BizParamConstant.STAT_BIZ_YEAR: + getAllRStatHarmonicOrgIcon = rStatHarmonicOrgYService.getRStatHarmonicOrgYIcon(param); + break; + //查询各单位累计超标监测点数-季数据 + case BizParamConstant.STAT_BIZ_QUARTER: + getAllRStatHarmonicOrgIcon = rStatHarmonicOrgQService.getRStatHarmonicOrgQIcon(param); + break; + //查询各单位累计超标监测点数-月数据 + case BizParamConstant.STAT_BIZ_MONTH: + getAllRStatHarmonicOrgIcon = rStatHarmonicOrgMService.getRStatHarmonicOrgMIcon(param); + break; + default: + break; + } + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, getAllRStatHarmonicOrgIcon, methodDescribe); + } + +} + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/RStatOrgController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/RStatOrgController.java new file mode 100644 index 000000000..d389c1bd1 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/RStatOrgController.java @@ -0,0 +1,195 @@ +package com.njcn.harmonic.controller.majornetwork; + + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.constant.BizParamConstant; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.harmonic.pojo.param.RStatOrgParam; +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.vo.*; +import com.njcn.harmonic.service.majornetwork.*; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + + +import java.util.List; + + +/** + *

+ * 区域分类统计月表 前端控制器 + *

+ * + * @author rui.wu + * @since 2022-10-17 + */ +@RestController +@RequiredArgsConstructor +@Api(tags = "主网指标-稳态指标") +@RequestMapping("/harmonic/rStatOrg") +public class RStatOrgController extends BaseController { + + private final RStatOrgYService rStatOrgYService; + private final RStatOrgQService rStatOrgQService; + private final RStatOrgMService rStatOrgMService; + private final RStatOrgBusbarVoltageService rStatOrgBusbarVoltageService; + private final RStatLoadTypeService rStatLoadTypeService; + private final RMpPartHarmonicDetailMService rMpPartHarmonicDetailMService; + private final RMpPartHarmonicDetailDService rMpPartHarmonicDetailDService; + private final RMpPassRateService rMpPassRateService; + + + /** + * 查询区域超标统计 + */ + @GetMapping("/getAllRStatHarmonicOrg") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("区域超标统计") + public HttpResult> getAllRStatHarmonicOrg(StatisticsBizBaseParam param) { + String methodDescribe = getMethodDescribe("getAllRStatHarmonicOrg"); + List rStatHarmonicOrgMAll = null; + String string = param.getType().toString(); + switch (string) { + //查询区域超标统计-年数据 + case BizParamConstant.STAT_BIZ_YEAR: + rStatHarmonicOrgMAll = rStatOrgYService.getRStatHarmonicYAll(param); + break; + //查询区域超标统计-季数据 + case BizParamConstant.STAT_BIZ_QUARTER: + rStatHarmonicOrgMAll = rStatOrgQService.getRStatHarmonicQAll(param); + break; + //查询各区域超标统计-月数据 + case BizParamConstant.STAT_BIZ_MONTH: + rStatHarmonicOrgMAll = rStatOrgMService.getRStatHarmonicMAll(param); + break; + default: + break; + } + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rStatHarmonicOrgMAll, methodDescribe); + } + + + /** + * 区域稳态指标超标分类统计表 + */ + @GetMapping("/getRStatSubstation") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("区域稳态指标超标分类统计表") + public HttpResult> getRStatSubstation(StatisticsBizBaseParam param) { + String methodDescribe = getMethodDescribe("getRStatSubstation"); + List statSubstationIcon = rStatOrgYService.getRStatSubstationOrg(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, statSubstationIcon, methodDescribe); + } + + /** + * 区域稳态指标超标分类统计表 + */ + @PostMapping("/getRStatOrgBusbarVoltage") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("区域电站母线电压类指标超标计") + public HttpResult> getRStatOrgBusbarVoltage(@RequestBody StatSubstationBizBaseParam param) { + String methodDescribe = getMethodDescribe("getRStatOrgBusbarVoltage"); + List statSubstationIcon = rStatOrgBusbarVoltageService.getRStatOrgBusbarVoltage(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, statSubstationIcon, methodDescribe); + } + + /** + * 区域干扰源电流类指标超标统计 + * + * @param param + * @return + */ + @GetMapping("/getRStatLoadType") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("区域干扰源电流类指标超标统计") + public HttpResult> getRStatLoadType(StatisticsBizBaseParam param) { + String methodDescribe = getMethodDescribe("getRStatLoadType"); + List rStatLoadType = rStatLoadTypeService.getRStatLoadType(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rStatLoadType, methodDescribe); + } + + /** + * 变电站(换流站)稳态指标超标分类统计表 + * + * @param param + * @return + */ + @PostMapping("/getRStatSubstationOrg") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("变电站(换流站)稳态指标超标分类统计表") + public HttpResult> getRStatSubstationOrg(@RequestBody StatSubstationBizBaseParam param + ) { + String methodDescribe = getMethodDescribe("getRStatSubstationOrg"); + List rStatOrg = rStatOrgYService.getRStatSubstation(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rStatOrg, methodDescribe); + } + + /** + * 稳态指标超标明细表 + * + * @param param + * @return + */ + @PostMapping("/getRMpPartHarmonicDetail") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("稳态指标超标明细表") + public HttpResult> getRMpPartHarmonicDetail(@RequestBody RStatOrgParam param) { + String methodDescribe = getMethodDescribe("getRMpPartHarmonicDetail"); + List rMpPartHarmonicDetail = rMpPartHarmonicDetailMService.getRMpPartHarmonicDetail(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rMpPartHarmonicDetail, methodDescribe); + } + + /** + * 稳态指标超标明细表-指标趋势图 + * + * @param param + * @return + */ + @GetMapping("/getRMpPartHarmonicDetailIcon") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("稳态指标超标明细表-指标趋势图") + public HttpResult> getRMpPartHarmonicDetailIcon(StatisticsBizBaseParam param) { + String methodDescribe = getMethodDescribe("getRMpPartHarmonicDetailIcon"); + List rMpPartHarmonicDetail = rMpPartHarmonicDetailDService.getRMpPartHarmonicDetailIcon(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rMpPartHarmonicDetail, methodDescribe); + } + + /** + * 区域稳态指标合格率统计表-主网(稳态指标合格率统计) + * + * @param param + * @return + */ + @GetMapping("/getRStatOrgIndex") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("区域稳态指标合格率统计表") + public HttpResult> getRStatOrgIndex(StatisticsBizBaseParam param) { + String methodDescribe = getMethodDescribe("getRStatOrgIndex"); + List rStatOrg = rStatOrgYService.getRStatOrgIndex(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rStatOrg, methodDescribe); + } + + /** + * 区域稳态指标合格率统计表-主网(稳态指标合格率统计) + * + * @param param + * @return + */ + @PostMapping("/getRMpPassRateInfo") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("稳态指标合格率明细表") + public HttpResult> getRMpPassRateInfo(@RequestBody RStatOrgParam param) { + String methodDescribe = getMethodDescribe("getRMpPassRateInfo"); + List rStatOrg = rMpPassRateService.getRMpPassRateInfo(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, rStatOrg, methodDescribe); + } + +} + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/RStatSubstationMController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/RStatSubstationMController.java new file mode 100644 index 000000000..ede2f48e7 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/RStatSubstationMController.java @@ -0,0 +1,81 @@ +package com.njcn.harmonic.controller.majornetwork; + + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.harmonic.pojo.vo.RSubstationIcon2VO; +import com.njcn.harmonic.pojo.vo.RSubstationIconVO; +import com.njcn.harmonic.pojo.vo.RVoltageIconVO; +import com.njcn.harmonic.service.majornetwork.RStatSubstationMService; +import com.njcn.harmonic.service.majornetwork.RStatSubstationVoltageMService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + + +/** + *

+ * 前端控制器 + *

+ * + * @author rui.wu + * @since 2022-10-18 + */ +@RestController +@RequiredArgsConstructor +@Api(tags = "主网指标分类概览-变电站分类总览") +@RequestMapping("/harmonic/rStatSubstation") +public class RStatSubstationMController extends BaseController { + + private final RStatSubstationMService rStatSubstationMService; + private final RStatSubstationVoltageMService rStatSubstationVoltageMService; + + /** + * 变电站稳态指标超标分布(按超标天数) + */ + @GetMapping("/getAllRStatSubstationIconDays") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("变电站稳态指标超标分布(按超标天数)") + public HttpResult getAllRStatSubstationIconDays(StatisticsBizBaseParam param) { + String methodDescribe = getMethodDescribe("getAllRStatSubstationIconDays"); + RSubstationIconVO statSubstationIcon = rStatSubstationMService.getStatSubstationIcon(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, statSubstationIcon, methodDescribe); + } + + /** + * 变电站稳态指标超标分布(按电压等级) + */ + @GetMapping("/getAllRStatSubstationIconVoltage") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("变电站稳态指标超标分布(按电压等级)") + public HttpResult> getAllRStatSubstationIconVoltage(StatisticsBizBaseParam param) { + String methodDescribe = getMethodDescribe("getAllRStatSubstationIconVoltage"); + List statSubstationIcon = rStatSubstationVoltageMService.getStatSubstationIcon(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, statSubstationIcon, methodDescribe); + } + + + /** + * 变电站稳态指标平均超标天数 + */ + @GetMapping("/getAllRStatSubstationIconAvgDays") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("变电站稳态指标平均超标天数") + public HttpResult> getAllRStatSubstationIconAvgDays(StatisticsBizBaseParam param) { + String methodDescribe = getMethodDescribe("getAllRStatSubstationIconAvgDays"); + List statSubstationIcon = rStatSubstationMService.getStatSubstationIcon2(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, statSubstationIcon, methodDescribe); + } +} + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatPollutionOrgDPOMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatPollutionOrgDPOMapper.java new file mode 100644 index 000000000..af65ab626 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatPollutionOrgDPOMapper.java @@ -0,0 +1,25 @@ +package com.njcn.harmonic.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.RStatPollutionOrgDPO; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/8 13:27【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatPollutionOrgDPOMapper extends BaseMapper { + int updateBatch(List list); + + int batchInsert(@Param("list") List list); + + int insertOrUpdate(RStatPollutionOrgDPO record); + + int insertOrUpdateSelective(RStatPollutionOrgDPO record); +} \ No newline at end of file diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatPollutionOrgQPOMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatPollutionOrgQPOMapper.java new file mode 100644 index 000000000..0973dd249 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatPollutionOrgQPOMapper.java @@ -0,0 +1,25 @@ +package com.njcn.harmonic.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.RStatPollutionOrgQPO; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/8 13:27【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatPollutionOrgQPOMapper extends BaseMapper { + int updateBatch(List list); + + int batchInsert(@Param("list") List list); + + int insertOrUpdate(RStatPollutionOrgQPO record); + + int insertOrUpdateSelective(RStatPollutionOrgQPO record); +} \ No newline at end of file diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatPollutionOrgYPOMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatPollutionOrgYPOMapper.java new file mode 100644 index 000000000..ebf3975be --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatPollutionOrgYPOMapper.java @@ -0,0 +1,25 @@ +package com.njcn.harmonic.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.RStatPollutionOrgYPO; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/8 13:28【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatPollutionOrgYPOMapper extends BaseMapper { + int updateBatch(List list); + + int batchInsert(@Param("list") List list); + + int insertOrUpdate(RStatPollutionOrgYPO record); + + int insertOrUpdateSelective(RStatPollutionOrgYPO record); +} \ No newline at end of file diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatPollutionSubstationDPOMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatPollutionSubstationDPOMapper.java new file mode 100644 index 000000000..8dfad1839 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatPollutionSubstationDPOMapper.java @@ -0,0 +1,25 @@ +package com.njcn.harmonic.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.RStatPollutionSubstationDPO; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/8 13:28【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatPollutionSubstationDPOMapper extends BaseMapper { + int updateBatch(List list); + + int batchInsert(@Param("list") List list); + + int insertOrUpdate(RStatPollutionSubstationDPO record); + + int insertOrUpdateSelective(RStatPollutionSubstationDPO record); +} \ No newline at end of file diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatPollutionSubstationQPOMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatPollutionSubstationQPOMapper.java new file mode 100644 index 000000000..3c42366c5 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatPollutionSubstationQPOMapper.java @@ -0,0 +1,25 @@ +package com.njcn.harmonic.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.RStatPollutionSubstationQPO; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/8 13:28【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatPollutionSubstationQPOMapper extends BaseMapper { + int updateBatch(List list); + + int batchInsert(@Param("list") List list); + + int insertOrUpdate(RStatPollutionSubstationQPO record); + + int insertOrUpdateSelective(RStatPollutionSubstationQPO record); +} \ No newline at end of file diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatPollutionSubstationYPOMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatPollutionSubstationYPOMapper.java new file mode 100644 index 000000000..84062e1e2 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatPollutionSubstationYPOMapper.java @@ -0,0 +1,25 @@ +package com.njcn.harmonic.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.RStatPollutionSubstationYPO; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +/** + * + * Description: + * 接口文档访问地址:http://serverIP:port/swagger-ui.html + * Date: 2022/11/8 13:28【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface RStatPollutionSubstationYPOMapper extends BaseMapper { + int updateBatch(List list); + + int batchInsert(@Param("list") List list); + + int insertOrUpdate(RStatPollutionSubstationYPO record); + + int insertOrUpdateSelective(RStatPollutionSubstationYPO record); +} \ No newline at end of file diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatPwPermeabilityMMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatPwPermeabilityMMapper.java new file mode 100644 index 000000000..a4904279d --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatPwPermeabilityMMapper.java @@ -0,0 +1,24 @@ +package com.njcn.harmonic.mapper; + +import com.njcn.harmonic.pojo.param.RStatPwPermeabilityMParam; +import com.njcn.harmonic.pojo.po.RStatPwPermeabilityM; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.vo.RStatPwPermeabilityMVO; + +import java.util.List; +import java.util.Map; + +/** +* @author jianghf +* @description 针对表【r_stat_pw_permeability_m】的数据库操作Mapper +* @createDate 2022-11-07 10:35:21 +* @Entity com.njcn.harmonic.pojo.po.RStatPwPermeabilityM +*/ +public interface RStatPwPermeabilityMMapper extends BaseMapper { + + List getPwPermeabilityList(Map map); +} + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/distribution/PwRStatOrgMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/distribution/PwRStatOrgMapper.java new file mode 100644 index 000000000..3a0537794 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/distribution/PwRStatOrgMapper.java @@ -0,0 +1,55 @@ +package com.njcn.harmonic.mapper.distribution; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatOrgQ; +import com.njcn.harmonic.pojo.vo.RStatOrgIndexVO; +import com.njcn.harmonic.pojo.vo.RStatOrgVO; +import com.njcn.harmonic.pojo.vo.RStatSubstationOrgVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 区域分类统计季表 Mapper 接口 + *

+ * + * @author rui.wu + * @since 2022-10-17 + */ +public interface PwRStatOrgMapper extends BaseMapper { + + /** + * 配网查询区域超标统计-年数据 + * @param param + * @param deptIds + * @param dataType + * @return + */ + List selectListY(@Param("param") StatSubstationBizBaseParam param, + @Param("deptIds")List deptIds, + @Param("dataType")String dataType); + + /** + * 配网查询区域超标统计-季数据 + * @param param + * @param deptIds + * @param dataType + * @return + */ + List selectListQ(@Param("param") StatSubstationBizBaseParam param, + @Param("deptIds")List deptIds, + @Param("dataType")String dataType); + + /** + * 配网查询区域超标统计-月数据 + * @param param + * @param deptIds + * @param dataType + * @return + */ + List selectListM(@Param("param") StatSubstationBizBaseParam param, + @Param("deptIds")List deptIds, + @Param("dataType")String dataType); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/distribution/mapping/PwRStatOrgMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/distribution/mapping/PwRStatOrgMapper.xml new file mode 100644 index 000000000..26626bdb1 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/distribution/mapping/PwRStatOrgMapper.xml @@ -0,0 +1,114 @@ + + + + + + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RMpPartHarmonicDetailDMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RMpPartHarmonicDetailDMapper.java new file mode 100644 index 000000000..90d4e5dcb --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RMpPartHarmonicDetailDMapper.java @@ -0,0 +1,27 @@ +package com.njcn.harmonic.mapper.majornetwork; + +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailD; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.vo.RMpPartHarmonicDetailIconVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author rui.wu + * @since 2022-10-24 + */ +public interface RMpPartHarmonicDetailDMapper extends BaseMapper { + + /** + * 稳态指标超标明细表-指标趋势图 + * @param param + * @return + */ + List getRMpPartHarmonicDetailIcon(@Param("param") StatisticsBizBaseParam param); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RMpPartHarmonicDetailMMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RMpPartHarmonicDetailMMapper.java new file mode 100644 index 000000000..6f6d53311 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RMpPartHarmonicDetailMMapper.java @@ -0,0 +1,16 @@ +package com.njcn.harmonic.mapper.majornetwork; + +import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailM; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author rui.wu + * @since 2022-10-24 + */ +public interface RMpPartHarmonicDetailMMapper extends BaseMapper { + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RMpPassRateMMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RMpPassRateMMapper.java new file mode 100644 index 000000000..ffeadb489 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RMpPassRateMMapper.java @@ -0,0 +1,27 @@ +package com.njcn.harmonic.mapper.majornetwork; + +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RMpPassRateM; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.vo.RStatOrgIndexVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author rui.wu + * @since 2022-10-24 + */ +public interface RMpPassRateMMapper extends BaseMapper { + + /** + * 获取月稳态指标合格率明细表 + * @param baseParam + * @return + */ + List getMonthPassRate(@Param("param") StatSubstationBizBaseParam baseParam); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RMpPassRateQMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RMpPassRateQMapper.java new file mode 100644 index 000000000..b33870533 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RMpPassRateQMapper.java @@ -0,0 +1,27 @@ +package com.njcn.harmonic.mapper.majornetwork; + +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RMpPassRateQ; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.vo.RStatOrgIndexVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author rui.wu + * @since 2022-10-24 + */ +public interface RMpPassRateQMapper extends BaseMapper { + + /** + * 获取季稳态指标合格率明细表 + * @param baseParam + * @return + */ + List getQuarterPassRate(@Param("param") StatSubstationBizBaseParam baseParam); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RMpPassRateYMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RMpPassRateYMapper.java new file mode 100644 index 000000000..0ce82a5e8 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RMpPassRateYMapper.java @@ -0,0 +1,27 @@ +package com.njcn.harmonic.mapper.majornetwork; + +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RMpPassRateY; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.vo.RStatOrgIndexVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author rui.wu + * @since 2022-10-24 + */ +public interface RMpPassRateYMapper extends BaseMapper { + + /** + * 获取年稳态指标合格率明细表 + * @param baseParam + * @return + */ + List getYearPassRate(@Param("param") StatSubstationBizBaseParam baseParam); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RMpSurplusHarmonicDetailDMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RMpSurplusHarmonicDetailDMapper.java new file mode 100644 index 000000000..6ad923ab0 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RMpSurplusHarmonicDetailDMapper.java @@ -0,0 +1,16 @@ +package com.njcn.harmonic.mapper.majornetwork; + +import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailD; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author rui.wu + * @since 2022-10-24 + */ +public interface RMpSurplusHarmonicDetailDMapper extends BaseMapper { + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RMpSurplusHarmonicDetailMMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RMpSurplusHarmonicDetailMMapper.java new file mode 100644 index 000000000..1ed378c58 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RMpSurplusHarmonicDetailMMapper.java @@ -0,0 +1,27 @@ +package com.njcn.harmonic.mapper.majornetwork; + +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailM; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.vo.RMpPartHarmonicDetailVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author rui.wu + * @since 2022-10-24 + */ +public interface RMpSurplusHarmonicDetailMMapper extends BaseMapper { + + /** + * 稳态指标超标明细表 + * @param param + * @return + */ + List getRMpPartHarmonicDetail(@Param("param") StatSubstationBizBaseParam param); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatHarmonicDMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatHarmonicDMapper.java new file mode 100644 index 000000000..3529aa31f --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatHarmonicDMapper.java @@ -0,0 +1,16 @@ +package com.njcn.harmonic.mapper.majornetwork; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.RStatHarmonicD; + +/** + *

+ * Mapper 接口 + *

+ * + * @author rui.wu + * @since 2022-10-12 + */ +public interface RStatHarmonicDMapper extends BaseMapper { + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatHarmonicMMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatHarmonicMMapper.java new file mode 100644 index 000000000..e93cdc5d0 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatHarmonicMMapper.java @@ -0,0 +1,17 @@ +package com.njcn.harmonic.mapper.majornetwork; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.RStatHarmonicM; + +/** + *

+ * Mapper 接口 + *

+ * + * @author rui.wu + * @since 2022-10-09 + */ +public interface RStatHarmonicMMapper extends BaseMapper { + + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatHarmonicQMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatHarmonicQMapper.java new file mode 100644 index 000000000..852a29e13 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatHarmonicQMapper.java @@ -0,0 +1,16 @@ +package com.njcn.harmonic.mapper.majornetwork; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.RStatHarmonicQ; + +/** + *

+ * Mapper 接口 + *

+ * + * @author rui.wu + * @since 2022-10-12 + */ +public interface RStatHarmonicQMapper extends BaseMapper { + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatHarmonicVoltageDMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatHarmonicVoltageDMapper.java new file mode 100644 index 000000000..071dac4bc --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatHarmonicVoltageDMapper.java @@ -0,0 +1,16 @@ +package com.njcn.harmonic.mapper.majornetwork; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.RStatHarmonicVoltageD; + +/** + *

+ * Mapper 接口 + *

+ * + * @author rui.wu + * @since 2022-10-10 + */ +public interface RStatHarmonicVoltageDMapper extends BaseMapper { + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatHarmonicVoltageMMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatHarmonicVoltageMMapper.java new file mode 100644 index 000000000..232b7c879 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatHarmonicVoltageMMapper.java @@ -0,0 +1,16 @@ +package com.njcn.harmonic.mapper.majornetwork; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.RStatHarmonicVoltageM; + +/** + *

+ * Mapper 接口 + *

+ * + * @author rui.wu + * @since 2022-10-10 + */ +public interface RStatHarmonicVoltageMMapper extends BaseMapper { + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatHarmonicYMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatHarmonicYMapper.java new file mode 100644 index 000000000..d9924203f --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatHarmonicYMapper.java @@ -0,0 +1,16 @@ +package com.njcn.harmonic.mapper.majornetwork; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.RStatHarmonicY; + +/** + *

+ * Mapper 接口 + *

+ * + * @author rui.wu + * @since 2022-10-12 + */ +public interface RStatHarmonicYMapper extends BaseMapper { + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatLoadTypeMMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatLoadTypeMMapper.java new file mode 100644 index 000000000..8825324ca --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatLoadTypeMMapper.java @@ -0,0 +1,27 @@ +package com.njcn.harmonic.mapper.majornetwork; + +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatLoadTypeM; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.vo.RStatLoadTypeVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author rui.wu + * @since 2022-10-19 + */ +public interface RStatLoadTypeMMapper extends BaseMapper { + + /** + * 获取月区域暂态指标分类统计表 + * @param param + * @return + */ + List getMonthStatLoadType(@Param("param") StatSubstationBizBaseParam param); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatLoadTypeQMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatLoadTypeQMapper.java new file mode 100644 index 000000000..cad243eac --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatLoadTypeQMapper.java @@ -0,0 +1,27 @@ +package com.njcn.harmonic.mapper.majornetwork; + +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatLoadTypeQ; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.vo.RStatLoadTypeVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author rui.wu + * @since 2022-10-19 + */ +public interface RStatLoadTypeQMapper extends BaseMapper { + + /** + * 获取季区域暂态指标分类统计表 + * @param param + * @return + */ + List getQuarterStatLoadType(@Param("param") StatSubstationBizBaseParam param); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatLoadTypeYMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatLoadTypeYMapper.java new file mode 100644 index 000000000..985e4b2ee --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatLoadTypeYMapper.java @@ -0,0 +1,26 @@ +package com.njcn.harmonic.mapper.majornetwork; + +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatLoadTypeY; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.vo.RStatLoadTypeVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author rui.wu + * @since 2022-10-19 + */ +public interface RStatLoadTypeYMapper extends BaseMapper { + + /** + * 获取年区域暂态指标分类统计表 + * @return + */ + List getYearStatLoadType(@Param("param") StatSubstationBizBaseParam param); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatOrgBusbarVoltageMMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatOrgBusbarVoltageMMapper.java new file mode 100644 index 000000000..76b0fb6e9 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatOrgBusbarVoltageMMapper.java @@ -0,0 +1,27 @@ +package com.njcn.harmonic.mapper.majornetwork; + +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatOrgBusbarVoltageM; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.vo.RStatOrgBusbarVoltageVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author rui.wu + * @since 2022-10-19 + */ +public interface RStatOrgBusbarVoltageMMapper extends BaseMapper { + + /** + * 获取月区域电站母线电压类指标超标计 + * @param param + * @return + */ + List getMstatOrgBusbarVoltageVO(@Param("param") StatSubstationBizBaseParam param); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatOrgBusbarVoltageQMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatOrgBusbarVoltageQMapper.java new file mode 100644 index 000000000..dcf8cc1a0 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatOrgBusbarVoltageQMapper.java @@ -0,0 +1,27 @@ +package com.njcn.harmonic.mapper.majornetwork; + +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatOrgBusbarVoltageQ; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.vo.RStatOrgBusbarVoltageVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author rui.wu + * @since 2022-10-19 + */ +public interface RStatOrgBusbarVoltageQMapper extends BaseMapper { + + /** + * 获取季区域电站母线电压类指标超标计 + * @param param + * @return + */ + List getQstatOrgBusbarVoltageVO(@Param("param") StatSubstationBizBaseParam param); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatOrgBusbarVoltageYMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatOrgBusbarVoltageYMapper.java new file mode 100644 index 000000000..49a2c3089 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatOrgBusbarVoltageYMapper.java @@ -0,0 +1,28 @@ +package com.njcn.harmonic.mapper.majornetwork; + +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatOrgBusbarVoltageY; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.vo.RStatOrgBusbarVoltageVO; +import com.njcn.harmonic.pojo.vo.RStatOrgIndexVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author rui.wu + * @since 2022-10-19 + */ +public interface RStatOrgBusbarVoltageYMapper extends BaseMapper { + + /** + * 获取年区域电站母线电压类指标超标计 + * @param param + * @return + */ + List getYstatOrgBusbarVoltageVO(@Param("param") StatSubstationBizBaseParam param); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatOrgMMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatOrgMMapper.java new file mode 100644 index 000000000..a597b37bf --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatOrgMMapper.java @@ -0,0 +1,49 @@ +package com.njcn.harmonic.mapper.majornetwork; + +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatOrgM; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.vo.PwRStatOrgVO; +import com.njcn.harmonic.pojo.vo.RStatOrgIndexVO; +import com.njcn.harmonic.pojo.vo.RStatSubstationOrgVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 区域分类统计月表 Mapper 接口 + *

+ * + * @author rui.wu + * @since 2022-10-17 + */ +public interface RStatOrgMMapper extends BaseMapper { + + /** + * 区域稳态指标超标分类统计表--月表数据 + * @param param + * @param dataType + * @return + */ + List getMonthRStatHarmonicOrgInfo(@Param("param") StatSubstationBizBaseParam param + ,@Param("dataType") String dataType); + + /** + * 获取月区域稳态指标合格率统计表 + * @param param + * @param dataType + * @return + */ + List getMonthRStatOrgIndex(@Param("param") StatSubstationBizBaseParam param + ,@Param("dataType") String dataType); + + /** + * 配网获取月区域稳态指标合格率统计表 + * @param param + * @param dataType + * @return + */ + List getPwMonthRStatOrgIndex(@Param("param") StatSubstationBizBaseParam param + ,@Param("dataType") String dataType); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatOrgQMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatOrgQMapper.java new file mode 100644 index 000000000..2d8ebcc88 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatOrgQMapper.java @@ -0,0 +1,49 @@ +package com.njcn.harmonic.mapper.majornetwork; + +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatOrgQ; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.vo.PwRStatOrgVO; +import com.njcn.harmonic.pojo.vo.RStatOrgIndexVO; +import com.njcn.harmonic.pojo.vo.RStatSubstationOrgVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 区域分类统计季表 Mapper 接口 + *

+ * + * @author rui.wu + * @since 2022-10-17 + */ +public interface RStatOrgQMapper extends BaseMapper { + + /** + * 区域稳态指标超标分类统计表--年表数据 + * @param param + * @param dataType + * @return + */ + List getQuarterRStatHarmonicOrgInfo(@Param("param") StatSubstationBizBaseParam param + ,@Param("dataType") String dataType); + + /** + * 主网获取季区域稳态指标合格率统计表 + * @param param + * @param dataType + * @return + */ + List getQuarterRStatOrgIndex(@Param("param") StatSubstationBizBaseParam param + ,@Param("dataType") String dataType); + + /** + * 配网获取季区域稳态指标合格率统计表 + * @param param + * @param dataType + * @return + */ + List getPwQuarterRStatOrgIndex(@Param("param") StatSubstationBizBaseParam param + ,@Param("dataType") String dataType); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatOrgYMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatOrgYMapper.java new file mode 100644 index 000000000..556b7a6e7 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatOrgYMapper.java @@ -0,0 +1,49 @@ +package com.njcn.harmonic.mapper.majornetwork; + +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatOrgY; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.vo.PwRStatOrgVO; +import com.njcn.harmonic.pojo.vo.RStatOrgIndexVO; +import com.njcn.harmonic.pojo.vo.RStatSubstationOrgVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 区域分类统计年表 Mapper 接口 + *

+ * + * @author rui.wu + * @since 2022-10-17 + */ +public interface RStatOrgYMapper extends BaseMapper { + + /** + * 区域稳态指标超标分类统计表--年表数据 + * @param param + * @param dataType + * @return + */ + List getYearRStatHarmonicOrgInfo(@Param("param") StatSubstationBizBaseParam param + ,@Param("dataType") String dataType); + + /** + * 主网获取年区域稳态指标合格率统计表 + * @param param + * @param dataType + * @return + */ + List getYearRStatOrgIndex(@Param("param") StatSubstationBizBaseParam param + ,@Param("dataType") String dataType); + + /** + * 配网获取年区域稳态指标合格率统计表 + * @param param + * @param dataType + * @return + */ + List getPwYearRStatOrgIndex(@Param("param") StatSubstationBizBaseParam param + , @Param("dataType") String dataType); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatSubstationMMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatSubstationMMapper.java new file mode 100644 index 000000000..91c1e0b0c --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatSubstationMMapper.java @@ -0,0 +1,35 @@ +package com.njcn.harmonic.mapper.majornetwork; + +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatSubstationM; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.vo.RSubstationIcon2VO; +import com.njcn.harmonic.pojo.vo.RSubstationIconVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author rui.wu + * @since 2022-10-18 + */ +public interface RStatSubstationMMapper extends BaseMapper { + + /** + * 变电站稳态指标超标分布(按超标天数) + * @param param + * @return + */ + RSubstationIconVO getStatSubstationIconM(@Param("param") StatSubstationBizBaseParam param); + + /** + * 变电站稳态指标平均超标天数 + * @param param + * @return + */ + List getStatSubstationIcon2M(@Param("param") StatSubstationBizBaseParam param); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatSubstationQMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatSubstationQMapper.java new file mode 100644 index 000000000..bc587500f --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatSubstationQMapper.java @@ -0,0 +1,35 @@ +package com.njcn.harmonic.mapper.majornetwork; + +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatSubstationQ; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.vo.RSubstationIcon2VO; +import com.njcn.harmonic.pojo.vo.RSubstationIconVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author rui.wu + * @since 2022-10-18 + */ +public interface RStatSubstationQMapper extends BaseMapper { + + /** + * 变电站稳态指标超标分布(按超标天数) + * @param param + * @return + */ + RSubstationIconVO getStatSubstationIconQ(@Param("param") StatSubstationBizBaseParam param); + + /** + * 变电站稳态指标平均超标天数 + * @param param + * @return + */ + List getStatSubstationIcon2Q(@Param("param") StatSubstationBizBaseParam param); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatSubstationVoltageMMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatSubstationVoltageMMapper.java new file mode 100644 index 000000000..55551e798 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatSubstationVoltageMMapper.java @@ -0,0 +1,30 @@ +package com.njcn.harmonic.mapper.majornetwork; + +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatSubstationVoltageM; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.vo.RSubstationIconVO; +import com.njcn.harmonic.pojo.vo.RVoltageIconVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author rui.wu + * @since 2022-10-18 + */ +public interface RStatSubstationVoltageMMapper extends BaseMapper { + + /** + * 变电站稳态指标超标分布(按电压等级) + * @param param + * @return + */ + List getStatSubstationIcon(@Param("param") StatSubstationBizBaseParam param); + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatSubstationYMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatSubstationYMapper.java new file mode 100644 index 000000000..37f931cf8 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/RStatSubstationYMapper.java @@ -0,0 +1,36 @@ +package com.njcn.harmonic.mapper.majornetwork; + +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatSubstationY; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.vo.RSubstationIcon2VO; +import com.njcn.harmonic.pojo.vo.RSubstationIconVO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author rui.wu + * @since 2022-10-18 + */ +public interface RStatSubstationYMapper extends BaseMapper { + + /** + * 变电站稳态指标超标分布(按超标天数) + * @param param + * @return + */ + RSubstationIconVO getStatSubstationIconY(@Param("param") StatSubstationBizBaseParam param); + + + /** + * 变电站稳态指标平均超标天数 + * @param param + * @return + */ + List getStatSubstationIcon2Y(@Param("param") StatSubstationBizBaseParam param); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RMpPartHarmonicDetailDMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RMpPartHarmonicDetailDMapper.xml new file mode 100644 index 000000000..0070cc0a7 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RMpPartHarmonicDetailDMapper.xml @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RMpPartHarmonicDetailMMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RMpPartHarmonicDetailMMapper.xml new file mode 100644 index 000000000..2568a93b3 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RMpPartHarmonicDetailMMapper.xml @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RMpPassRateMMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RMpPassRateMMapper.xml new file mode 100644 index 000000000..aba881b3d --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RMpPassRateMMapper.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RMpPassRateQMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RMpPassRateQMapper.xml new file mode 100644 index 000000000..780857c9e --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RMpPassRateQMapper.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RMpPassRateYMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RMpPassRateYMapper.xml new file mode 100644 index 000000000..4f5ab69d4 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RMpPassRateYMapper.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RMpSurplusHarmonicDetailDMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RMpSurplusHarmonicDetailDMapper.xml new file mode 100644 index 000000000..ace450a00 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RMpSurplusHarmonicDetailDMapper.xml @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RMpSurplusHarmonicDetailMMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RMpSurplusHarmonicDetailMMapper.xml new file mode 100644 index 000000000..964611810 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RMpSurplusHarmonicDetailMMapper.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatHarmonicDMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatHarmonicDMapper.xml new file mode 100644 index 000000000..908d3e072 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatHarmonicDMapper.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatHarmonicMMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatHarmonicMMapper.xml new file mode 100644 index 000000000..53cea839d --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatHarmonicMMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatHarmonicQMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatHarmonicQMapper.xml new file mode 100644 index 000000000..58aae73ac --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatHarmonicQMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatHarmonicVoltageDMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatHarmonicVoltageDMapper.xml new file mode 100644 index 000000000..8ac315280 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatHarmonicVoltageDMapper.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatHarmonicVoltageMMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatHarmonicVoltageMMapper.xml new file mode 100644 index 000000000..d9ddc3419 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatHarmonicVoltageMMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatHarmonicYMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatHarmonicYMapper.xml new file mode 100644 index 000000000..2878d9075 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatHarmonicYMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatLoadTypeMMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatLoadTypeMMapper.xml new file mode 100644 index 000000000..8f5645619 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatLoadTypeMMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatLoadTypeQMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatLoadTypeQMapper.xml new file mode 100644 index 000000000..66955ef17 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatLoadTypeQMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatLoadTypeYMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatLoadTypeYMapper.xml new file mode 100644 index 000000000..b8a73b45f --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatLoadTypeYMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgBusbarVoltageMMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgBusbarVoltageMMapper.xml new file mode 100644 index 000000000..3cf28ff52 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgBusbarVoltageMMapper.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgBusbarVoltageQMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgBusbarVoltageQMapper.xml new file mode 100644 index 000000000..76c19529c --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgBusbarVoltageQMapper.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgBusbarVoltageYMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgBusbarVoltageYMapper.xml new file mode 100644 index 000000000..a62c826fb --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgBusbarVoltageYMapper.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgMMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgMMapper.xml new file mode 100644 index 000000000..ba405679f --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgMMapper.xml @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgQMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgQMapper.xml new file mode 100644 index 000000000..c04d48141 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgQMapper.xml @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgYMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgYMapper.xml new file mode 100644 index 000000000..684b14d06 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgYMapper.xml @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatSubstationMMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatSubstationMMapper.xml new file mode 100644 index 000000000..5a7ef636b --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatSubstationMMapper.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatSubstationQMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatSubstationQMapper.xml new file mode 100644 index 000000000..ee1bb1dcc --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatSubstationQMapper.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatSubstationVoltageMMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatSubstationVoltageMMapper.xml new file mode 100644 index 000000000..01d51a39a --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatSubstationVoltageMMapper.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatSubstationYMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatSubstationYMapper.xml new file mode 100644 index 000000000..58109a474 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatSubstationYMapper.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatPollutionOrgDPOMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatPollutionOrgDPOMapper.xml new file mode 100644 index 000000000..074f3bcbb --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatPollutionOrgDPOMapper.xml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + org_id, data_date, pollution_type, `value` + + + + update r_stat_pollution_org_d + + + + when org_id = #{item.orgId,jdbcType=VARCHAR} then #{item.value,jdbcType=FLOAT} + + + + where org_id in + + #{item.orgId,jdbcType=VARCHAR} + + + + + insert into r_stat_pollution_org_d + (org_id, data_date, pollution_type, `value`) + values + + (#{item.orgId,jdbcType=VARCHAR}, #{item.dataDate,jdbcType=TIMESTAMP}, #{item.pollutionType,jdbcType=VARCHAR}, + #{item.value,jdbcType=FLOAT}) + + + + + insert into r_stat_pollution_org_d + (org_id, data_date, pollution_type, `value`) + values + (#{orgId,jdbcType=VARCHAR}, #{dataDate,jdbcType=TIMESTAMP}, #{pollutionType,jdbcType=VARCHAR}, + #{value,jdbcType=FLOAT}) + on duplicate key update + org_id = #{orgId,jdbcType=VARCHAR}, + data_date = #{dataDate,jdbcType=TIMESTAMP}, + pollution_type = #{pollutionType,jdbcType=VARCHAR}, + `value` = #{value,jdbcType=FLOAT} + + + + insert into r_stat_pollution_org_d + + + org_id, + + + data_date, + + + pollution_type, + + + `value`, + + + values + + + #{orgId,jdbcType=VARCHAR}, + + + #{dataDate,jdbcType=TIMESTAMP}, + + + #{pollutionType,jdbcType=VARCHAR}, + + + #{value,jdbcType=FLOAT}, + + + on duplicate key update + + + org_id = #{orgId,jdbcType=VARCHAR}, + + + data_date = #{dataDate,jdbcType=TIMESTAMP}, + + + pollution_type = #{pollutionType,jdbcType=VARCHAR}, + + + `value` = #{value,jdbcType=FLOAT}, + + + + \ No newline at end of file diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatPollutionOrgQPOMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatPollutionOrgQPOMapper.xml new file mode 100644 index 000000000..97b0be8d3 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatPollutionOrgQPOMapper.xml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + org_id, data_date, pollution_type, `value` + + + + update r_stat_pollution_org_q + + + + when org_id = #{item.orgId,jdbcType=VARCHAR} then #{item.value,jdbcType=FLOAT} + + + + where org_id in + + #{item.orgId,jdbcType=VARCHAR} + + + + + insert into r_stat_pollution_org_q + (org_id, data_date, pollution_type, `value`) + values + + (#{item.orgId,jdbcType=VARCHAR}, #{item.dataDate,jdbcType=TIMESTAMP}, #{item.pollutionType,jdbcType=VARCHAR}, + #{item.value,jdbcType=FLOAT}) + + + + + insert into r_stat_pollution_org_q + (org_id, data_date, pollution_type, `value`) + values + (#{orgId,jdbcType=VARCHAR}, #{dataDate,jdbcType=TIMESTAMP}, #{pollutionType,jdbcType=VARCHAR}, + #{value,jdbcType=FLOAT}) + on duplicate key update + org_id = #{orgId,jdbcType=VARCHAR}, + data_date = #{dataDate,jdbcType=TIMESTAMP}, + pollution_type = #{pollutionType,jdbcType=VARCHAR}, + `value` = #{value,jdbcType=FLOAT} + + + + insert into r_stat_pollution_org_q + + + org_id, + + + data_date, + + + pollution_type, + + + `value`, + + + values + + + #{orgId,jdbcType=VARCHAR}, + + + #{dataDate,jdbcType=TIMESTAMP}, + + + #{pollutionType,jdbcType=VARCHAR}, + + + #{value,jdbcType=FLOAT}, + + + on duplicate key update + + + org_id = #{orgId,jdbcType=VARCHAR}, + + + data_date = #{dataDate,jdbcType=TIMESTAMP}, + + + pollution_type = #{pollutionType,jdbcType=VARCHAR}, + + + `value` = #{value,jdbcType=FLOAT}, + + + + \ No newline at end of file diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatPollutionOrgYPOMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatPollutionOrgYPOMapper.xml new file mode 100644 index 000000000..965382f2d --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatPollutionOrgYPOMapper.xml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + org_id, data_date, pollution_type, `value` + + + + update r_stat_pollution_org_y + + + + when org_id = #{item.orgId,jdbcType=VARCHAR} then #{item.value,jdbcType=FLOAT} + + + + where org_id in + + #{item.orgId,jdbcType=VARCHAR} + + + + + insert into r_stat_pollution_org_y + (org_id, data_date, pollution_type, `value`) + values + + (#{item.orgId,jdbcType=VARCHAR}, #{item.dataDate,jdbcType=TIMESTAMP}, #{item.pollutionType,jdbcType=VARCHAR}, + #{item.value,jdbcType=FLOAT}) + + + + + insert into r_stat_pollution_org_y + (org_id, data_date, pollution_type, `value`) + values + (#{orgId,jdbcType=VARCHAR}, #{dataDate,jdbcType=TIMESTAMP}, #{pollutionType,jdbcType=VARCHAR}, + #{value,jdbcType=FLOAT}) + on duplicate key update + org_id = #{orgId,jdbcType=VARCHAR}, + data_date = #{dataDate,jdbcType=TIMESTAMP}, + pollution_type = #{pollutionType,jdbcType=VARCHAR}, + `value` = #{value,jdbcType=FLOAT} + + + + insert into r_stat_pollution_org_y + + + org_id, + + + data_date, + + + pollution_type, + + + `value`, + + + values + + + #{orgId,jdbcType=VARCHAR}, + + + #{dataDate,jdbcType=TIMESTAMP}, + + + #{pollutionType,jdbcType=VARCHAR}, + + + #{value,jdbcType=FLOAT}, + + + on duplicate key update + + + org_id = #{orgId,jdbcType=VARCHAR}, + + + data_date = #{dataDate,jdbcType=TIMESTAMP}, + + + pollution_type = #{pollutionType,jdbcType=VARCHAR}, + + + `value` = #{value,jdbcType=FLOAT}, + + + + \ No newline at end of file diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatPollutionSubstationDPOMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatPollutionSubstationDPOMapper.xml new file mode 100644 index 000000000..e64a9a8e9 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatPollutionSubstationDPOMapper.xml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + substation_id, data_date, pollution_type, `value` + + + + update r_stat_pollution_substation_d + + + + when substation_id = #{item.substationId,jdbcType=VARCHAR} then #{item.value,jdbcType=FLOAT} + + + + where substation_id in + + #{item.substationId,jdbcType=VARCHAR} + + + + + insert into r_stat_pollution_substation_d + (substation_id, data_date, pollution_type, `value`) + values + + (#{item.substationId,jdbcType=VARCHAR}, #{item.dataDate,jdbcType=TIMESTAMP}, #{item.pollutionType,jdbcType=VARCHAR}, + #{item.value,jdbcType=FLOAT}) + + + + + insert into r_stat_pollution_substation_d + (substation_id, data_date, pollution_type, `value`) + values + (#{substationId,jdbcType=VARCHAR}, #{dataDate,jdbcType=TIMESTAMP}, #{pollutionType,jdbcType=VARCHAR}, + #{value,jdbcType=FLOAT}) + on duplicate key update + substation_id = #{substationId,jdbcType=VARCHAR}, + data_date = #{dataDate,jdbcType=TIMESTAMP}, + pollution_type = #{pollutionType,jdbcType=VARCHAR}, + `value` = #{value,jdbcType=FLOAT} + + + + insert into r_stat_pollution_substation_d + + + substation_id, + + + data_date, + + + pollution_type, + + + `value`, + + + values + + + #{substationId,jdbcType=VARCHAR}, + + + #{dataDate,jdbcType=TIMESTAMP}, + + + #{pollutionType,jdbcType=VARCHAR}, + + + #{value,jdbcType=FLOAT}, + + + on duplicate key update + + + substation_id = #{substationId,jdbcType=VARCHAR}, + + + data_date = #{dataDate,jdbcType=TIMESTAMP}, + + + pollution_type = #{pollutionType,jdbcType=VARCHAR}, + + + `value` = #{value,jdbcType=FLOAT}, + + + + \ No newline at end of file diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatPollutionSubstationQPOMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatPollutionSubstationQPOMapper.xml new file mode 100644 index 000000000..9d4030924 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatPollutionSubstationQPOMapper.xml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + substation_id, data_date, pollution_type, `value` + + + + update r_stat_pollution_substation_q + + + + when substation_id = #{item.substationId,jdbcType=VARCHAR} then #{item.value,jdbcType=FLOAT} + + + + where substation_id in + + #{item.substationId,jdbcType=VARCHAR} + + + + + insert into r_stat_pollution_substation_q + (substation_id, data_date, pollution_type, `value`) + values + + (#{item.substationId,jdbcType=VARCHAR}, #{item.dataDate,jdbcType=TIMESTAMP}, #{item.pollutionType,jdbcType=VARCHAR}, + #{item.value,jdbcType=FLOAT}) + + + + + insert into r_stat_pollution_substation_q + (substation_id, data_date, pollution_type, `value`) + values + (#{substationId,jdbcType=VARCHAR}, #{dataDate,jdbcType=TIMESTAMP}, #{pollutionType,jdbcType=VARCHAR}, + #{value,jdbcType=FLOAT}) + on duplicate key update + substation_id = #{substationId,jdbcType=VARCHAR}, + data_date = #{dataDate,jdbcType=TIMESTAMP}, + pollution_type = #{pollutionType,jdbcType=VARCHAR}, + `value` = #{value,jdbcType=FLOAT} + + + + insert into r_stat_pollution_substation_q + + + substation_id, + + + data_date, + + + pollution_type, + + + `value`, + + + values + + + #{substationId,jdbcType=VARCHAR}, + + + #{dataDate,jdbcType=TIMESTAMP}, + + + #{pollutionType,jdbcType=VARCHAR}, + + + #{value,jdbcType=FLOAT}, + + + on duplicate key update + + + substation_id = #{substationId,jdbcType=VARCHAR}, + + + data_date = #{dataDate,jdbcType=TIMESTAMP}, + + + pollution_type = #{pollutionType,jdbcType=VARCHAR}, + + + `value` = #{value,jdbcType=FLOAT}, + + + + \ No newline at end of file diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatPollutionSubstationYPOMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatPollutionSubstationYPOMapper.xml new file mode 100644 index 000000000..95abdac7b --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatPollutionSubstationYPOMapper.xml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + substation_id, data_date, pollution_type, `value` + + + + update r_stat_pollution_substation_y + + + + when substation_id = #{item.substationId,jdbcType=VARCHAR} then #{item.value,jdbcType=FLOAT} + + + + where substation_id in + + #{item.substationId,jdbcType=VARCHAR} + + + + + insert into r_stat_pollution_substation_y + (substation_id, data_date, pollution_type, `value`) + values + + (#{item.substationId,jdbcType=VARCHAR}, #{item.dataDate,jdbcType=TIMESTAMP}, #{item.pollutionType,jdbcType=VARCHAR}, + #{item.value,jdbcType=FLOAT}) + + + + + insert into r_stat_pollution_substation_y + (substation_id, data_date, pollution_type, `value`) + values + (#{substationId,jdbcType=VARCHAR}, #{dataDate,jdbcType=TIMESTAMP}, #{pollutionType,jdbcType=VARCHAR}, + #{value,jdbcType=FLOAT}) + on duplicate key update + substation_id = #{substationId,jdbcType=VARCHAR}, + data_date = #{dataDate,jdbcType=TIMESTAMP}, + pollution_type = #{pollutionType,jdbcType=VARCHAR}, + `value` = #{value,jdbcType=FLOAT} + + + + insert into r_stat_pollution_substation_y + + + substation_id, + + + data_date, + + + pollution_type, + + + `value`, + + + values + + + #{substationId,jdbcType=VARCHAR}, + + + #{dataDate,jdbcType=TIMESTAMP}, + + + #{pollutionType,jdbcType=VARCHAR}, + + + #{value,jdbcType=FLOAT}, + + + on duplicate key update + + + substation_id = #{substationId,jdbcType=VARCHAR}, + + + data_date = #{dataDate,jdbcType=TIMESTAMP}, + + + pollution_type = #{pollutionType,jdbcType=VARCHAR}, + + + `value` = #{value,jdbcType=FLOAT}, + + + + \ No newline at end of file diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatPwPermeabilityMMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatPwPermeabilityMMapper.xml new file mode 100644 index 000000000..a34545d59 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatPwPermeabilityMMapper.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + org_no,data_date,psr_id, + voltage_avg,voltage_sd,unbalance_avg, + unbalance_sd,vthd_avg,vthd_sd, + flicker_avg,flicker_sd,permeability_type + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/RStatPwPermeabilityMService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/RStatPwPermeabilityMService.java new file mode 100644 index 000000000..5c7e59168 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/RStatPwPermeabilityMService.java @@ -0,0 +1,26 @@ +package com.njcn.harmonic.service; + +import com.njcn.harmonic.pojo.param.RStatPwPermeabilityMParam; +import com.njcn.harmonic.pojo.po.RStatPwPermeabilityM; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.harmonic.pojo.vo.RStatPwPermeabilityMVO; + +import java.util.List; + +/** + * 各渗透率光伏台区基准水平 +* @author jianghf +* @description 针对表【r_stat_pw_permeability_m】的数据库操作Service +* @createDate 2022-11-07 10:35:21 +*/ +public interface RStatPwPermeabilityMService extends IService { + + /*** + * 获取各渗透率光伏台区基准水平 + * @author jianghaifei + * @date 2022-11-07 14:38 + * @param rStatPwPermeabilityMParam + * @return java.util.List + */ + List getPwPermeabilityList(RStatPwPermeabilityMParam rStatPwPermeabilityMParam); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/distribution/PwRStatOrgService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/distribution/PwRStatOrgService.java new file mode 100644 index 000000000..6af7e3a03 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/distribution/PwRStatOrgService.java @@ -0,0 +1,37 @@ +package com.njcn.harmonic.service.distribution; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatOrgQ; +import com.njcn.harmonic.pojo.vo.PwRStatOrgVO; +import com.njcn.harmonic.pojo.vo.RStatOrgIndexVO; +import com.njcn.harmonic.pojo.vo.RStatOrgVO; + +import java.util.List; + +/** + *

+ * 配网区域分类统计月表 服务类 + *

+ * + * @author rui.wu + * @since 2022-11-08 + */ +public interface PwRStatOrgService extends IService { + + /** + * 配网查询区域超标统计 + * @param param + * @return + */ + List getRStatHarmonicAll(StatSubstationBizBaseParam param); + + /** + * 配网区域稳态指标合格率统计表 + * + * @param param + * @return + */ + List getRStatOrgIndex(StatSubstationBizBaseParam param); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/distribution/impl/PwRStatOrgServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/distribution/impl/PwRStatOrgServiceImpl.java new file mode 100644 index 000000000..10f1812e2 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/distribution/impl/PwRStatOrgServiceImpl.java @@ -0,0 +1,143 @@ +package com.njcn.harmonic.service.distribution.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.common.pojo.constant.BizParamConstant; +import com.njcn.device.pms.api.PwMonitorClient; +import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO; +import com.njcn.device.pms.pojo.param.PwPmsMonitorParam; +import com.njcn.harmonic.mapper.distribution.PwRStatOrgMapper; +import com.njcn.harmonic.mapper.majornetwork.RStatOrgMMapper; +import com.njcn.harmonic.mapper.majornetwork.RStatOrgQMapper; +import com.njcn.harmonic.mapper.majornetwork.RStatOrgYMapper; +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatOrgQ; +import com.njcn.harmonic.pojo.vo.PwRStatOrgVO; +import com.njcn.harmonic.pojo.vo.RStatOrgVO; +import com.njcn.harmonic.service.distribution.PwRStatOrgService; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataEnum; +import com.njcn.system.pojo.po.DictData; +import com.njcn.user.api.DeptFeignClient; +import com.njcn.user.pojo.dto.DeptDTO; +import com.njcn.web.utils.WebUtil; +import lombok.RequiredArgsConstructor; +import org.apache.commons.compress.utils.Lists; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 配网区域分类统计月表 服务实现类 + *

+ * + * @author rui.wu + * @since 2022-11-08 + */ +@Service +@RequiredArgsConstructor +public class PwRStatOrgServiceImpl extends ServiceImpl implements PwRStatOrgService { + + private final DeptFeignClient deptFeignClient; + private final DicDataFeignClient dicDataFeignClient; + private final PwRStatOrgMapper pwRStatOrgMapper; + private final RStatOrgYMapper rStatOrgYMapper; + private final RStatOrgQMapper rStatOrgQMapper; + private final RStatOrgMMapper rStatOrgMMapper; + private final PwMonitorClient pwMonitorClient; + + + @Override + public List getRStatHarmonicAll(StatSubstationBizBaseParam param) { + List deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData(); + //获取部门id集合 + List deptIds = deptDTOList.stream().map(DeptDTO::getId).collect(Collectors.toList()); + Map deptMap = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getId, Function.identity())); + //获取配网信息 + DictData distributionData = dicDataFeignClient.getDicDataByCode(DicDataEnum.DISTRIBUTION_POINT.getCode()).getData(); + List info = new ArrayList<>(); + List newList = new ArrayList<>(); + switch (String.valueOf(param.getType())) { + //查询区域超标统计-年数据 + case BizParamConstant.STAT_BIZ_YEAR: + info = pwRStatOrgMapper.selectListY(param,deptIds,distributionData.getId()); + break; + //查询区域超标统计-季数据 + case BizParamConstant.STAT_BIZ_QUARTER: + info = pwRStatOrgMapper.selectListQ(param,deptIds,distributionData.getId()); + break; + //查询各区域超标统计-月数据 + case BizParamConstant.STAT_BIZ_MONTH: + info = pwRStatOrgMapper.selectListM(param,deptIds,distributionData.getId()); + break; + default: + break; + } + if(CollectionUtil.isNotEmpty(info)){ + Map> collect = info.stream().collect( + Collectors.groupingBy(RStatOrgVO.PwRStatOrgVO::getOrgNo)); + collect.forEach((key, value) -> { + if (deptMap.containsKey(key)) { + for (RStatOrgVO.PwRStatOrgVO org : value) { + DeptDTO deptDTO = deptMap.get(key); + org.setOrgName(deptDTO.getName()); + newList.add(org); + } + } + }); + return newList; + } + return Lists.newArrayList(); + } + + @Override + public List getRStatOrgIndex(StatSubstationBizBaseParam param) { + // 获取当前用户的部门的子部门信息 + PwPmsMonitorParam pwPmsMonitorParam=new PwPmsMonitorParam(); + pwPmsMonitorParam.setOrgId(param.getId()); + pwPmsMonitorParam.setMonitorSort(param.getIds()); + List data = pwMonitorClient.getPwMonitorList(pwPmsMonitorParam).getData(); + //获取配网信息 + DictData distributionData = dicDataFeignClient.getDicDataByCode(DicDataEnum.DISTRIBUTION_POINT.getCode()).getData(); + List info=new ArrayList<>(); + if (CollectionUtil.isNotEmpty(data)) { + // 过滤出部门id + List deptIds = data.stream().map(PwPmsMonitorDTO::getOrgId).collect(Collectors.toList()); + StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class); + baseParam.setIds(deptIds); + // 类型(1年 2季度 3月份 4日 + switch (param.getType().toString()) { + case BizParamConstant.STAT_BIZ_YEAR: + // 获取年区域稳态指标合格率统计表 + info = rStatOrgYMapper.getPwYearRStatOrgIndex(baseParam, distributionData.getId()); + break; + case BizParamConstant.STAT_BIZ_QUARTER: + // 获取季区域稳态指标合格率统计表 + info = rStatOrgQMapper.getPwQuarterRStatOrgIndex(baseParam, distributionData.getId()); + break; + case BizParamConstant.STAT_BIZ_MONTH: + // 获取月区域稳态指标合格率统计表 + info = rStatOrgMMapper.getPwMonthRStatOrgIndex(baseParam, distributionData.getId()); + break; + default: + break; + } + } + //匹配名称 + for (PwPmsMonitorDTO dto : data) { + for (PwRStatOrgVO vo : info) { + if (dto.getOrgId().equals(vo.getOrgNo())) { + vo.setOrgNo(dto.getOrgId()); + vo.setOrgName(dto.getOrgName()); + } + } + } + return info; + } +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/RStatPwPermeabilityMServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/RStatPwPermeabilityMServiceImpl.java new file mode 100644 index 000000000..6c7977aab --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/RStatPwPermeabilityMServiceImpl.java @@ -0,0 +1,85 @@ +package com.njcn.harmonic.service.impl; + +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.device.pms.api.PwMonitorClient; +import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO; +import com.njcn.device.pms.pojo.param.PwPmsMonitorParam; +import com.njcn.harmonic.mapper.RStatPwPermeabilityMMapper; +import com.njcn.harmonic.pojo.param.RStatPwPermeabilityMParam; +import com.njcn.harmonic.pojo.po.RStatPwPermeabilityM; +import com.njcn.harmonic.pojo.vo.RStatPwPermeabilityMVO; +import com.njcn.harmonic.service.RStatPwPermeabilityMService; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.pojo.po.DictData; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 各渗透率光伏台区基准水平 +* @author jianghf +* @description 针对表【r_stat_pw_permeability_m】的数据库操作Service实现 +* @createDate 2022-11-07 10:35:21 +*/ +@Service +@RequiredArgsConstructor +public class RStatPwPermeabilityMServiceImpl extends ServiceImpl + implements RStatPwPermeabilityMService{ + + private final PwMonitorClient pwMonitorClient; + + private final DicDataFeignClient dicDataFeignClient; + + + /*** + * 获取各渗透率光伏台区基准水平 + * @author jianghaifei + * @date 2022-11-07 14:38 + * @param rStatPwPermeabilityMParam + * @return java.util.List + */ + @Override + public List getPwPermeabilityList(RStatPwPermeabilityMParam rStatPwPermeabilityMParam) { + //提起参数 + String id = rStatPwPermeabilityMParam.getId(); //单位id + String psrName = rStatPwPermeabilityMParam.getPsrName(); //台区名称 + String startTime = rStatPwPermeabilityMParam.getStartTime(); //开始时间 + String endTime = rStatPwPermeabilityMParam.getEndTime(); //结束时间 + + //根据条件查询单位下面的所有配网监测点 + PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam(); + pwPmsMonitorParam.setOrgId(id); //单位id + pwPmsMonitorParam.setMonitorName(psrName); //台区名称(监测点名称) + List pwMonitorList = pwMonitorClient.getPwMonitorList(pwPmsMonitorParam).getData(); + if (CollUtil.isEmpty(pwMonitorList)) { + return new ArrayList<>(); + } + //监测点id集合 + List monitorIdList = pwMonitorList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList()); + //监测点map key:监测点id value:监测点实体 + Map monitorMap = pwMonitorList.stream().collect(Collectors.toMap(PwPmsMonitorDTO::getMonitorId, monitor -> monitor)); + + //获取各渗透率字典 + List rateList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.PERMEABILITY_TYPE.getCode()).getData(); + Map condMap = rateList.stream().collect(Collectors.toMap(DictData::getCode, DictData::getId)); + condMap.put("startTime", startTime); + condMap.put("endTime", endTime); + condMap.put("idList", monitorIdList); + List list = this.baseMapper.getPwPermeabilityList(condMap); + list = list.stream().peek(item -> { + item.setOrgName(monitorMap.get(item.getPsrId()).getOrgName()); //单位名称 + item.setPsrName(monitorMap.get(item.getPsrId()).getMonitorName()); //台区名称 + }).collect(Collectors.toList()); + return list; + } +} + + + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RMpPartHarmonicDetailDService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RMpPartHarmonicDetailDService.java new file mode 100644 index 000000000..8c8ed1c81 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RMpPartHarmonicDetailDService.java @@ -0,0 +1,27 @@ +package com.njcn.harmonic.service.majornetwork; + +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailD; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.harmonic.pojo.vo.RMpPartHarmonicDetailIconVO; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author rui.wu + * @since 2022-10-24 + */ +public interface RMpPartHarmonicDetailDService extends IService { + + /** + * 稳态指标超标明细表-指标趋势图 + * + * @param param + * @return + */ + List getRMpPartHarmonicDetailIcon(StatisticsBizBaseParam param); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RMpPartHarmonicDetailMService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RMpPartHarmonicDetailMService.java new file mode 100644 index 000000000..051caa755 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RMpPartHarmonicDetailMService.java @@ -0,0 +1,29 @@ +package com.njcn.harmonic.service.majornetwork; + +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.harmonic.pojo.param.RStatOrgParam; +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailM; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.harmonic.pojo.vo.RMpPartHarmonicDetailVO; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author rui.wu + * @since 2022-10-24 + */ +public interface RMpPartHarmonicDetailMService extends IService { + + /** + * 稳态指标超标明细表 + * + * @param param + * @return + */ + List getRMpPartHarmonicDetail(RStatOrgParam param); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RMpPassRateService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RMpPassRateService.java new file mode 100644 index 000000000..f3483857e --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RMpPassRateService.java @@ -0,0 +1,29 @@ +package com.njcn.harmonic.service.majornetwork; + +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.harmonic.pojo.param.RStatOrgParam; +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RMpPassRateQ; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.harmonic.pojo.vo.RStatOrgIndexVO; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author rui.wu + * @since 2022-10-24 + */ +public interface RMpPassRateService extends IService { + + /** + * 稳态指标合格率明细表 + * + * @param param + * @return + */ + List getRMpPassRateInfo(RStatOrgParam param); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatHarmonicMService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatHarmonicMService.java new file mode 100644 index 000000000..e67988b77 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatHarmonicMService.java @@ -0,0 +1,57 @@ +package com.njcn.harmonic.service.majornetwork; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.harmonic.pojo.param.RStatHarmonicMParam; +import com.njcn.harmonic.pojo.po.RStatHarmonicM; +import com.njcn.harmonic.pojo.vo.RArrayVO; +import com.njcn.harmonic.pojo.vo.RHarmonicPolylineVO; +import com.njcn.harmonic.pojo.vo.RIconVO; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author rui.wu + * @since 2022-10-09 + */ +public interface RStatHarmonicMService extends IService { + + /** + * 主网查询查询监测点稳态指标 日/月点数 + * @param param + * @return + */ + List getRStatHarmonicMAll(StatisticsBizBaseParam param); + + /** + * 主网稳态电铁-频率偏差-电压统计图 + * @param param + * @return + */ + List getRStatHarmonicIconVoltage(RStatHarmonicMParam param); + + /** + * 主网稳态电铁-频率偏差-越线日期统计图 + * @param param + * @return + */ + List getRStatHarmonicIconDate(RStatHarmonicMParam param); + + /** + * 配网查询监测点稳态指标(月) + * @param param + * @return + */ + List getPwRStatHarmonicMAll(StatisticsBizBaseParam param); + + /** + * 配网监测点-频率偏差-越线日期统计图 + * @param param + * @return + */ + List getPwRStatHarmonicIconDate(RStatHarmonicMParam param); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatHarmonicOrgMService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatHarmonicOrgMService.java new file mode 100644 index 000000000..4a92e306f --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatHarmonicOrgMService.java @@ -0,0 +1,53 @@ +package com.njcn.harmonic.service.majornetwork; + +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.harmonic.pojo.param.RStatHarmonicMParam; +import com.njcn.harmonic.pojo.po.RStatHarmonicOrgM; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.harmonic.pojo.vo.RArrayVO; +import com.njcn.harmonic.pojo.vo.RIconVO; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author rui.wu + * @since 2022-10-14 + */ +public interface RStatHarmonicOrgMService extends IService { + + /** + * 主网查询各单位稳态指标(月) + * + * @param param + * @return + */ + List getRStatHarmonicMAll(StatisticsBizBaseParam param); + + /** + * 主网查询各单位累计超标监测点数统计图-月数据 + * + * @param param + * @return + */ + List getRStatHarmonicOrgMIcon(RStatHarmonicMParam param); + + /** + * 配网查询各单位稳态指标(月) + * + * @param param + * @return + */ + List getPwRStatHarmonicMAll(StatisticsBizBaseParam param); + + /** + * 配网查询各单位累计超标监测点数统计图-月数据 + * + * @param param + * @return + */ + List getPwRStatHarmonicOrgMIcon(RStatHarmonicMParam param); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatHarmonicOrgQService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatHarmonicOrgQService.java new file mode 100644 index 000000000..26b07f62b --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatHarmonicOrgQService.java @@ -0,0 +1,53 @@ +package com.njcn.harmonic.service.majornetwork; + +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.harmonic.pojo.param.RStatHarmonicMParam; +import com.njcn.harmonic.pojo.po.RStatHarmonicOrgQ; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.harmonic.pojo.vo.RArrayVO; +import com.njcn.harmonic.pojo.vo.RIconVO; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author rui.wu + * @since 2022-10-14 + */ +public interface RStatHarmonicOrgQService extends IService { + + /** + * 主网查询各单位稳态指标(季) + * + * @param param + * @return + */ + List getRStatHarmonicQAll(StatisticsBizBaseParam param); + + /** + * 主网查询各单位累计超标监测点数统计图-季数据 + * + * @param param + * @return + */ + List getRStatHarmonicOrgQIcon(RStatHarmonicMParam param); + + /** + * 配网网查询各单位稳态指标(季) + * + * @param param + * @return + */ + List getPwRStatHarmonicQAll(StatisticsBizBaseParam param); + + /** + * 配网查询各单位累计超标监测点数统计图-季数据 + * + * @param param + * @return + */ + List getPwRStatHarmonicOrgQIcon(RStatHarmonicMParam param); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatHarmonicOrgYService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatHarmonicOrgYService.java new file mode 100644 index 000000000..0ebeca440 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatHarmonicOrgYService.java @@ -0,0 +1,53 @@ +package com.njcn.harmonic.service.majornetwork; + +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.harmonic.pojo.param.RStatHarmonicMParam; +import com.njcn.harmonic.pojo.po.RStatHarmonicOrgY; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.harmonic.pojo.vo.RArrayVO; +import com.njcn.harmonic.pojo.vo.RIconVO; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author rui.wu + * @since 2022-10-14 + */ +public interface RStatHarmonicOrgYService extends IService { + + /** + * 主网查询各单位稳态指标(年) + * + * @param param + * @return + */ + List getRStatHarmonicYAll(StatisticsBizBaseParam param); + + /** + * 主网各单位累计超标监测点数统计图-年数据 + * + * @param param + * @return + */ + List getRStatHarmonicOrgYIcon(RStatHarmonicMParam param); + + /** + * 配网查询各单位稳态指标(年) + * + * @param param + * @return + */ + List getPwRStatHarmonicYAll(StatisticsBizBaseParam param); + + /** + * 配网各单位累计超标监测点数统计图-年数据 + * + * @param param + * @return + */ + List getPwRStatHarmonicOrgYIcon(RStatHarmonicMParam param); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatHarmonicQService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatHarmonicQService.java new file mode 100644 index 000000000..fc2bfe9db --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatHarmonicQService.java @@ -0,0 +1,33 @@ +package com.njcn.harmonic.service.majornetwork; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatHarmonicQ; +import com.njcn.harmonic.pojo.vo.RArrayVO; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author rui.wu + * @since 2022-10-12 + */ +public interface RStatHarmonicQService extends IService { + + /** + * 主网查询监测点稳态指标(季) + * @param param + * @return + */ + List getRStatHarmonicQAll(StatisticsBizBaseParam param); + + /** + * 配网查询监测点稳态指标(季) + * @param param + * @return + */ + List getPwRStatHarmonicQAll(StatisticsBizBaseParam param); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatHarmonicYService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatHarmonicYService.java new file mode 100644 index 000000000..d8fd5e9f7 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatHarmonicYService.java @@ -0,0 +1,36 @@ +package com.njcn.harmonic.service.majornetwork; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatHarmonicY; +import com.njcn.harmonic.pojo.vo.RArrayVO; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author rui.wu + * @since 2022-10-12 + */ +public interface RStatHarmonicYService extends IService { + + /** + * 主网查询监测点稳态指标(年) + * + * @param param + * @return + */ + List getRStatHarmonicYAll(StatisticsBizBaseParam param); + + /** + * 配网查询监测点稳态指标(年) + * + * @param param + * @return + */ + List getPwRStatHarmonicYAll(StatisticsBizBaseParam param); + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatLoadTypeService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatLoadTypeService.java new file mode 100644 index 000000000..44fdbfd6e --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatLoadTypeService.java @@ -0,0 +1,26 @@ +package com.njcn.harmonic.service.majornetwork; + +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatLoadTypeM; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.harmonic.pojo.vo.RArrayVO; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author rui.wu + * @since 2022-10-19 + */ +public interface RStatLoadTypeService extends IService { + + /** + * 区域干扰源电流类指标超标统计 + * @param param + * @return + */ + List getRStatLoadType(StatisticsBizBaseParam param); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatOrgBusbarVoltageService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatOrgBusbarVoltageService.java new file mode 100644 index 000000000..b999e2900 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatOrgBusbarVoltageService.java @@ -0,0 +1,27 @@ +package com.njcn.harmonic.service.majornetwork; + +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatOrgBusbarVoltageM; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.harmonic.pojo.vo.RStatOrgBusbarVoltageVO; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author rui.wu + * @since 2022-10-19 + */ +public interface RStatOrgBusbarVoltageService extends IService { + + /** + * 区域电站母线电压类指标超标计 + * + * @param param + * @return + */ + List getRStatOrgBusbarVoltage(StatSubstationBizBaseParam param); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatOrgMService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatOrgMService.java new file mode 100644 index 000000000..daade575a --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatOrgMService.java @@ -0,0 +1,26 @@ +package com.njcn.harmonic.service.majornetwork; + +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatOrgM; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.harmonic.pojo.vo.RStatOrgVO; + +import java.util.List; + +/** + *

+ * 区域分类统计月表 服务类 + *

+ * + * @author rui.wu + * @since 2022-10-17 + */ +public interface RStatOrgMService extends IService { + + /** + * 查询区域超标统计-月数据 + * @param param + * @return + */ + List getRStatHarmonicMAll(StatisticsBizBaseParam param); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatOrgQService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatOrgQService.java new file mode 100644 index 000000000..389e0cd56 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatOrgQService.java @@ -0,0 +1,26 @@ +package com.njcn.harmonic.service.majornetwork; + +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatOrgQ; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.harmonic.pojo.vo.RStatOrgVO; + +import java.util.List; + +/** + *

+ * 区域分类统计季表 服务类 + *

+ * + * @author rui.wu + * @since 2022-10-17 + */ +public interface RStatOrgQService extends IService { + + /** + * 查询区域超标统计-季数据 + * @param param + * @return + */ + List getRStatHarmonicQAll(StatisticsBizBaseParam param); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatOrgYService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatOrgYService.java new file mode 100644 index 000000000..1dfc9be2d --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatOrgYService.java @@ -0,0 +1,54 @@ +package com.njcn.harmonic.service.majornetwork; + +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatOrgY; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.harmonic.pojo.vo.*; + +import java.util.List; + +/** + *

+ * 区域分类统计年表 服务类 + *

+ * + * @author rui.wu + * @since 2022-10-17 + */ +public interface RStatOrgYService extends IService { + + /** + * 查询区域超标统计-年数据 + * + * @param param + * @return + */ + List getRStatHarmonicYAll(StatisticsBizBaseParam param); + + /** + * 区域稳态指标超标分类统计表 + * + * @param param + * @return + */ + List getRStatSubstationOrg(StatisticsBizBaseParam param); + + /** + * 变电站(换流站)稳态指标超标分类统计表 + * + * @param param + * @return + */ + List getRStatSubstation(StatSubstationBizBaseParam param); + + /** + * 区域稳态指标合格率统计表 + * + * @param param + * @return + */ + List getRStatOrgIndex(StatisticsBizBaseParam param); + + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatSubstationMService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatSubstationMService.java new file mode 100644 index 000000000..bdd5b6175 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatSubstationMService.java @@ -0,0 +1,36 @@ +package com.njcn.harmonic.service.majornetwork; + +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatSubstationM; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.harmonic.pojo.vo.RSubstationIcon2VO; +import com.njcn.harmonic.pojo.vo.RSubstationIconVO; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author rui.wu + * @since 2022-10-18 + */ +public interface RStatSubstationMService extends IService { + + /** + * 变电站稳态指标超标分布(按超标天数) + * + * @param param + * @return + */ + RSubstationIconVO getStatSubstationIcon(StatisticsBizBaseParam param); + + /** + * 变电站稳态指标平均超标天数 + * + * @param param + * @return + */ + List getStatSubstationIcon2(StatisticsBizBaseParam param); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatSubstationVoltageMService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatSubstationVoltageMService.java new file mode 100644 index 000000000..b887b0443 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/RStatSubstationVoltageMService.java @@ -0,0 +1,28 @@ +package com.njcn.harmonic.service.majornetwork; + +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatSubstationVoltageM; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.harmonic.pojo.vo.RVoltageIconVO; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author rui.wu + * @since 2022-10-18 + */ +public interface RStatSubstationVoltageMService extends IService { + + /** + * 变电站稳态指标超标分布(按电压等级) + * @param param + * @return + */ + List getStatSubstationIcon(StatisticsBizBaseParam param); + + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RMpPartHarmonicDetailDServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RMpPartHarmonicDetailDServiceImpl.java new file mode 100644 index 000000000..254a2d5bd --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RMpPartHarmonicDetailDServiceImpl.java @@ -0,0 +1,33 @@ +package com.njcn.harmonic.service.majornetwork.impl; + +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailD; +import com.njcn.harmonic.mapper.majornetwork.RMpPartHarmonicDetailDMapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.harmonic.pojo.vo.RMpPartHarmonicDetailIconVO; +import com.njcn.harmonic.service.majornetwork.RMpPartHarmonicDetailDService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author rui.wu + * @since 2022-10-24 + */ +@Service +@RequiredArgsConstructor +public class RMpPartHarmonicDetailDServiceImpl extends ServiceImpl implements RMpPartHarmonicDetailDService { + + private final RMpPartHarmonicDetailDMapper rMpPartHarmonicDetailDMapper; + + + @Override + public List getRMpPartHarmonicDetailIcon(StatisticsBizBaseParam param) { + return rMpPartHarmonicDetailDMapper.getRMpPartHarmonicDetailIcon(param); + } +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RMpPartHarmonicDetailMServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RMpPartHarmonicDetailMServiceImpl.java new file mode 100644 index 000000000..953eeca46 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RMpPartHarmonicDetailMServiceImpl.java @@ -0,0 +1,105 @@ +package com.njcn.harmonic.service.majornetwork.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; +import com.njcn.common.pojo.dto.SimpleDTO; +import com.njcn.device.pms.api.MonitorClient; +import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient; +import com.njcn.device.pms.pojo.dto.PmsGeneralDeviceDTO; +import com.njcn.device.pms.pojo.dto.PmsMonitorDTO; +import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam; +import com.njcn.device.pms.pojo.param.PmsMonitorParam; +import com.njcn.harmonic.mapper.majornetwork.RMpSurplusHarmonicDetailMMapper; +import com.njcn.harmonic.pojo.param.RStatOrgParam; +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailM; +import com.njcn.harmonic.mapper.majornetwork.RMpPartHarmonicDetailMMapper; +import com.njcn.harmonic.pojo.vo.RMpPartHarmonicDetailVO; +import com.njcn.harmonic.service.majornetwork.RMpPartHarmonicDetailMService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.pojo.po.DictData; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 服务实现类 + *

+ * + * @author rui.wu + * @since 2022-10-24 + */ +@Service +@RequiredArgsConstructor +public class RMpPartHarmonicDetailMServiceImpl extends ServiceImpl implements RMpPartHarmonicDetailMService { + + private final RMpSurplusHarmonicDetailMMapper rMpSurplusHarmonicDetailMMapper; + private final PmsGeneralDeviceInfoClient pmsGeneralDeviceInfoClient; + private final MonitorClient monitorClient; + private final DicDataFeignClient dicDataFeignClient; + + @Override + public List getRMpPartHarmonicDetail(RStatOrgParam param) { + //根据部门获取监测点信息(根据部门过滤基本信息) + PmsDeviceInfoParam pms = new PmsDeviceInfoParam(); + pms.setDeptIndex(param.getId()); + pms.setStatisticalType(new SimpleDTO()); + List data = pmsGeneralDeviceInfoClient.getPmsDeviceInfoWithInOrg(pms).getData(); + List addIds = new ArrayList<>(); + data.stream().forEach(e -> addIds.addAll(e.getMonitorIdList())); + + if (CollectionUtil.isNotEmpty(addIds)) { + //根据监测点ids获取监测点相关详细信息(变电站id,电压id,监测点名称) + PmsMonitorParam dto = BeanUtil.copyProperties(param, PmsMonitorParam.class); + dto.setMonitorIds(addIds); + dto.setMonitorName(param.getMonitorName()); + dto.setVoltageLevels(param.getVoltageLevels()); + dto.setPowerrIds(param.getPowerrIds()); + List pmsMonitorDTOS = monitorClient.getMonitorInfoListByCond(dto).getData(); + Map pmsMonitorDTOMap = pmsMonitorDTOS.stream() + .collect(Collectors.toMap(PmsMonitorDTO::getId, Function.identity())); + //获取电压等级 + List devVoltageData = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData(); + Map devVoltageMap = devVoltageData.stream() + .collect(Collectors.toMap(DictData::getId, Function.identity())); + //获取最新过滤的监测点id + List ids = pmsMonitorDTOS.stream().map(PmsMonitorDTO::getId).collect(Collectors.toList()); + //筛选出数据库对应监测点 + StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class); + baseParam.setIds(ids); + List rMpPartHarmonicDetail = rMpSurplusHarmonicDetailMMapper.getRMpPartHarmonicDetail(baseParam); + if (CollectionUtil.isNotEmpty(rMpPartHarmonicDetail)) { + //因为只有月表,数据进行查询可能出现重复数据。进行分组 + Map> detailVOMap = rMpPartHarmonicDetail.stream() + .collect(Collectors.groupingBy(RMpPartHarmonicDetailVO::getMeasurementPointId)); + detailVOMap.forEach((Key, value) -> { + if (pmsMonitorDTOMap.containsKey(Key)) { + PmsMonitorDTO dto1 = pmsMonitorDTOMap.get(Key); + for (RMpPartHarmonicDetailVO rmp : value) { + rmp.setOrgName(dto1.getOrgName()); + rmp.setPowerrName(dto1.getPowerrName()); + rmp.setMeasurementPointName(dto1.getName()); + //获取字典电压等级名称 + if (devVoltageMap.containsKey(dto1.getVoltageLevel())) { + DictData data1 = devVoltageMap.get(dto1.getVoltageLevel()); + rmp.setMonitorVoltageName(data1.getName()); + } + } + + } + }); + } + return rMpPartHarmonicDetail; + } + return null; + } +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RMpPassRateServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RMpPassRateServiceImpl.java new file mode 100644 index 000000000..3bd684db2 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RMpPassRateServiceImpl.java @@ -0,0 +1,130 @@ +package com.njcn.harmonic.service.majornetwork.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; +import com.njcn.common.pojo.constant.BizParamConstant; +import com.njcn.common.pojo.dto.SimpleDTO; +import com.njcn.device.pms.api.MonitorClient; +import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient; +import com.njcn.device.pms.pojo.dto.PmsGeneralDeviceDTO; +import com.njcn.device.pms.pojo.dto.PmsMonitorDTO; +import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam; +import com.njcn.device.pms.pojo.param.PmsMonitorParam; +import com.njcn.harmonic.mapper.majornetwork.RMpPassRateMMapper; +import com.njcn.harmonic.mapper.majornetwork.RMpPassRateYMapper; +import com.njcn.harmonic.pojo.param.RStatOrgParam; +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RMpPassRateQ; +import com.njcn.harmonic.mapper.majornetwork.RMpPassRateQMapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.harmonic.pojo.vo.RStatOrgIndexVO; +import com.njcn.harmonic.service.majornetwork.RMpPassRateService; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.pojo.po.DictData; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 服务实现类 + *

+ * + * @author rui.wu + * @since 2022-10-24 + */ +@Service +@RequiredArgsConstructor +public class RMpPassRateServiceImpl extends ServiceImpl implements RMpPassRateService { + + private final RMpPassRateYMapper rMpPassRateYMapper; + private final RMpPassRateQMapper rMpPassRateQMapper; + private final RMpPassRateMMapper rMpPassRateMMapper; + private final PmsGeneralDeviceInfoClient pmsGeneralDeviceInfoClient; + private final MonitorClient monitorClient; + private final DicDataFeignClient dicDataFeignClient; + + @Override + public List getRMpPassRateInfo(RStatOrgParam param) { + //初始化对象 + List temp = new ArrayList<>(); + //根据部门获取监测点信息 + PmsDeviceInfoParam pms = new PmsDeviceInfoParam(); + pms.setDeptIndex(param.getId()); + pms.setStatisticalType(new SimpleDTO()); + List data = pmsGeneralDeviceInfoClient.getPmsDeviceInfoWithInOrg(pms).getData(); + List addIds = new ArrayList<>(); + data.stream().forEach(e -> addIds.addAll(e.getMonitorIdList())); + + if (CollectionUtil.isNotEmpty(addIds)) { + //根据监测点ids获取监测点相关详细信息(变电站id,电压id,监测点名称) + PmsMonitorParam dto = BeanUtil.copyProperties(param, PmsMonitorParam.class); + dto.setMonitorIds(addIds); + dto.setMonitorName(param.getMonitorName()); + dto.setVoltageLevels(param.getVoltageLevels()); + dto.setPowerrIds(param.getPowerrIds()); + List pmsMonitorDTOS = monitorClient.getMonitorInfoListByCond(dto).getData(); + Map pmsMonitorDTOMap = pmsMonitorDTOS.stream() + .collect(Collectors.toMap(PmsMonitorDTO::getId, Function.identity())); + //获取电压等级 + List devVoltageData = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData(); + Map devVoltageMap = devVoltageData.stream() + .collect(Collectors.toMap(DictData::getId, Function.identity())); + + //获取最新过滤的监测点id + List ids = pmsMonitorDTOS.stream().map(PmsMonitorDTO::getId).collect(Collectors.toList()); + StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class); + baseParam.setIds(ids); + + if (CollectionUtil.isNotEmpty(addIds)) { + // 类型(1年 2季度 3月份 + switch (param.getType().toString()) { + case BizParamConstant.STAT_BIZ_YEAR: + // 获取年稳态指标合格率明细表 + temp = rMpPassRateYMapper.getYearPassRate(baseParam); + break; + case BizParamConstant.STAT_BIZ_QUARTER: + // 获取季稳态指标合格率明细表 + temp = rMpPassRateQMapper.getQuarterPassRate(baseParam); + break; + case BizParamConstant.STAT_BIZ_MONTH: + // 获取月稳态指标合格率明细表 + temp = rMpPassRateMMapper.getMonthPassRate(baseParam); + break; + default: + break; + + } + } + if (CollectionUtil.isNotEmpty(temp)) { + Map collect = temp.stream() + .collect(Collectors.toMap(RStatOrgIndexVO::getMeasurementPointId, Function.identity())); + collect.forEach((Key, value) -> { + if (pmsMonitorDTOMap.containsKey(Key)) { + //根据监测点信息,进行属性赋值 + PmsMonitorDTO dto1 = pmsMonitorDTOMap.get(Key); + value.setOrgNo(dto1.getOrgId()); + value.setOrgName(dto1.getOrgName()); + value.setMeasurementPointName(dto1.getName()); + value.setPowerrName(dto1.getPowerrName()); + //获取电压字典的名称 + if (devVoltageMap.containsKey(dto1.getVoltageLevel())) { + DictData data1 = devVoltageMap.get(dto1.getVoltageLevel()); + value.setMonitorVoltageName(data1.getName()); + } + } + }); + return new ArrayList<>(collect.values()); + } + + } + return new ArrayList<>(); + } +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatHarmonicMServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatHarmonicMServiceImpl.java new file mode 100644 index 000000000..a6bf7a543 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatHarmonicMServiceImpl.java @@ -0,0 +1,608 @@ +package com.njcn.harmonic.service.majornetwork.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.LocalDateTimeUtil; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.harmonic.mapper.majornetwork.RStatHarmonicDMapper; +import com.njcn.harmonic.mapper.majornetwork.RStatHarmonicMMapper; +import com.njcn.harmonic.mapper.majornetwork.RStatHarmonicVoltageMMapper; +import com.njcn.harmonic.pojo.param.RStatHarmonicMParam; +import com.njcn.harmonic.pojo.po.RStatHarmonicD; +import com.njcn.harmonic.pojo.po.RStatHarmonicM; +import com.njcn.harmonic.pojo.po.RStatHarmonicVoltageM; +import com.njcn.harmonic.pojo.vo.RArrayVO; +import com.njcn.harmonic.pojo.vo.RHarmonicPolylineVO; +import com.njcn.harmonic.pojo.vo.RIconVO; +import com.njcn.harmonic.pojo.vo.RStatHarmonicMVO; +import com.njcn.harmonic.service.majornetwork.RStatHarmonicMService; +import com.njcn.device.pq.utils.PublicDateUtil; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataEnum; +import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.pojo.po.DictData; +import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 服务实现类 + *

+ * + * @author rui.wu + * @since 2022-10-09 + */ +@Service +@RequiredArgsConstructor +public class RStatHarmonicMServiceImpl extends ServiceImpl implements RStatHarmonicMService { + + private final RStatHarmonicMMapper rStatHarmonicMMapper; + private final DicDataFeignClient dicDataFeignClient; + private final RStatHarmonicVoltageMMapper rStatHarmonicVoltageMMapper; + private final RStatHarmonicDMapper rStatHarmonicDMapper; + + @Override + public List getRStatHarmonicMAll(StatisticsBizBaseParam param) { + + //子节点 获取所有得干扰源类型(监测点类型) + List interferenceSourceTypeData = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.MONITORING_LABELS.getCode()).getData(); + Map interferenceMap = interferenceSourceTypeData.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); + + //对象主节点 获取所有得指标类型 + List lineTypeData = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + Map lineTypeMap = lineTypeData.stream() + .collect(Collectors.toMap(DictData::getId, Function.identity())); + + //获取主网id信息 + DictData mainnetData = dicDataFeignClient.getDicDataByCode(DicDataEnum.MAINNET_POINT.getCode()).getData(); + + //数据库查询 + List list = rStatHarmonicMMapper.selectList(new LambdaQueryWrapper() + .eq(RStatHarmonicM::getDataType, mainnetData.getId()) + .ge(StrUtil.isNotBlank(param.getStartTime()), RStatHarmonicM::getDataDate, param.getStartTime()) + .le(StrUtil.isNotBlank(param.getEndTime()), RStatHarmonicM::getDataDate, param.getEndTime())); + + //初始化指标类型(横向) + List arrayVOList = new ArrayList<>(); + List rm = new ArrayList<>(); + for (DictData lineTypeDatum : interferenceSourceTypeData) { + RStatHarmonicMVO r = new RStatHarmonicMVO(); + r.setHarmonicName(lineTypeDatum.getName()); + r.setSort(lineTypeDatum.getSort()); + r.setOverLimitMeasurementAverage(0); + r.setOverLimitMeasurementAccrued(0); + r.setAverageOverDay(0.0F); + r.setOverDay(0); + r.setOverLimitMeasurementRatioAverage(0.0F); + r.setOverLimitMeasurementRatioAccrued(0.0F); + rm.add(r); + } + for (DictData lineTypeDatum : lineTypeData) { + RArrayVO r = new RArrayVO(); + r.setRowName(lineTypeDatum.getName()); + r.setSort(lineTypeDatum.getSort()); + r.setColumns(rm); + arrayVOList.add(r); + } + //根据稳态指标分组 + Map> MeasurementTypeClassMap = list.stream().collect(Collectors.groupingBy(RStatHarmonicM::getHarmonicType)); + //重新生成数据结构 + MeasurementTypeClassMap.forEach((key, value) -> { + if (lineTypeMap.containsKey(key)) { + RArrayVO arrayVO = new RArrayVO(); + DictData data = lineTypeMap.get(key); + arrayVO.setRowName(data.getName()); + arrayVO.setSort(data.getSort()); + List b = new ArrayList<>(); + b.addAll(rm); + for (RStatHarmonicM rStatHarmonicM : value) { + if(interferenceMap.containsKey(rStatHarmonicM.getMeasurementTypeClass())){ + RStatHarmonicMVO r = BeanUtil.copyProperties(rStatHarmonicM, RStatHarmonicMVO.class); + DictData data1 = interferenceMap.get(rStatHarmonicM.getMeasurementTypeClass()); + r.setHarmonicName(data1.getName()); + r.setSort(data1.getSort()); + DecimalFormat df = new DecimalFormat("###.00"); + Float averageOverDay = Float.parseFloat( + df.format(r.getOverDay() / (r.getOverLimitMeasurementAccrued() * 1.0))); + r.setAverageOverDay(averageOverDay); + b.add(r); + } + + } + Map linkedHashMap = new LinkedHashMap<>(); + for (RStatHarmonicMVO harmonicMVO : b) { + linkedHashMap.put(harmonicMVO.getHarmonicName(), harmonicMVO); + } + List aa = new ArrayList<>(linkedHashMap.values()); + aa.sort(Comparator.comparing(rStatHarmonicMVO -> rStatHarmonicMVO.getSort())); + arrayVO.setColumns(aa); + arrayVOList.add(arrayVO); + } + }); + Map linkedHashMap = new LinkedHashMap<>(); + for (RArrayVO rStatHarmonicMVO : arrayVOList) { + linkedHashMap.put(rStatHarmonicMVO.getRowName(), rStatHarmonicMVO); + } + List aa = new ArrayList<>(linkedHashMap.values()); + aa.sort(Comparator.comparing(rArrayVO -> rArrayVO.getSort())); + return aa; + } + + @Override + public List getRStatHarmonicIconVoltage(RStatHarmonicMParam param) { + //干扰数据类型(监测对象) + DictData measurementDate = null; + //指标对象类型属性 + DictData harmonicDate = null; + //判断是是否传入检测点信息值(电压) + if (StrUtil.isBlank(param.getStasisID()) && StrUtil.isBlank(param.getMonitorID())) { + //干扰数据类型(监测对象) + List interferenceSourceTypeData = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.MONITORING_LABELS.getCode()).getData(); + interferenceSourceTypeData.sort(Comparator.comparing(data -> data.getSort())); + measurementDate = interferenceSourceTypeData.get(0); + //指标对象类型 + List indicatorTypeDate = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + indicatorTypeDate.sort(Comparator.comparing(data -> data.getSort())); + harmonicDate = indicatorTypeDate.get(0); + } else { + //获取检测点对象(电压) + measurementDate = dicDataFeignClient.getDicDataById( + param.getMonitorID()).getData(); + //获取指标对象(频率偏差) + harmonicDate = dicDataFeignClient.getDicDataById( + param.getStasisID()).getData(); + } + //反防止参数查询数据报错 + Assert.isTrue( + ObjectUtil.isNotNull(measurementDate) || ObjectUtil.isNotNull(harmonicDate) + , "干扰源类型或者指标类型为空,请检查入参是否准确"); + //获取电压字典 + List devVoltageData = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData(); + Map devVoltageMap = devVoltageData.stream() + .collect(Collectors.toMap(DictData::getId, Function.identity())); + //获取主网id信息 + DictData mainnetData = dicDataFeignClient.getDicDataByCode(DicDataEnum.MAINNET_POINT.getCode()).getData(); + + //初始化对象 + List arrayVOList = new ArrayList<>(); + List rStatHarmonicVoltageMS = rStatHarmonicVoltageMMapper.selectList(new LambdaQueryWrapper() + .eq(RStatHarmonicVoltageM::getDataType, mainnetData.getId()) + .eq(RStatHarmonicVoltageM::getMeasurementTypeClass, measurementDate.getId()) + .eq(RStatHarmonicVoltageM::getHarmonicType, harmonicDate.getId()) + .ge(StrUtil.isNotBlank(param.getStartTime()), RStatHarmonicVoltageM::getDataDate, param.getStartTime()) + .le(StrUtil.isNotBlank(param.getEndTime()), RStatHarmonicVoltageM::getDataDate, param.getEndTime()) + ); + //将数据转换为map进行便利 + Map voltageMMap = rStatHarmonicVoltageMS.stream() + .collect(Collectors.toMap(RStatHarmonicVoltageM::getVoltageType, Function.identity())); + //对象 + if (CollUtil.isNotEmpty(rStatHarmonicVoltageMS)) { + voltageMMap.forEach((key, value) -> { + if (devVoltageMap.containsKey(key)) { + DictData data = devVoltageMap.get(key); + RIconVO rIconVO = new RIconVO(); + rIconVO.setRowName(data.getName()); + rIconVO.setSort(data.getSort()); + rIconVO.setOverLimitMeasurementAccrued(value.getOverLimitMeasurementAccrued()); + rIconVO.setOverLimitMeasurementAverage(value.getOverLimitMeasurementAverage()); + rIconVO.setOverLimitMeasurementRatioAccrued(value.getOverLimitMeasurementRatioAccrued()); + rIconVO.setOverLimitMeasurementRatioAverage(value.getOverLimitMeasurementRatioAverage()); + DecimalFormat df = new DecimalFormat("###.00"); + Float averageOverDay = Float.parseFloat( + df.format(value.getOverDay() / (value.getOverLimitMeasurementAccrued() * 1.0))); + rIconVO.setAverageOverDay(averageOverDay); + arrayVOList.add(rIconVO); + } + }); + } + arrayVOList.sort(Comparator.comparing(rIconVO -> rIconVO.getSort())); + return arrayVOList; + } + + @SneakyThrows + @Override + public List getRStatHarmonicIconDate(RStatHarmonicMParam param) { + //初始化对象 + List iconList = new ArrayList<>(); + DictData measurementDate; + //指标对象类型属性 + DictData harmonicDate; + //判断是是否传入检测点信息值(电压) + if (StrUtil.isBlank(param.getStasisID()) && StrUtil.isBlank(param.getMonitorID())) { + //干扰数据类型(监测对象) + List interferenceSourceTypeData = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.MONITORING_LABELS.getCode()).getData(); + interferenceSourceTypeData.sort(Comparator.comparing(data -> data.getSort())); + measurementDate = interferenceSourceTypeData.get(0); + //指标对象类型 + List indicatorTypeDate = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + indicatorTypeDate.sort(Comparator.comparing(data -> data.getSort())); + harmonicDate = indicatorTypeDate.get(0); + } else { + //获取检测点对象(电压) + measurementDate = dicDataFeignClient.getDicDataById( + param.getMonitorID()).getData(); + //获取指标对象(频率偏差) + harmonicDate = dicDataFeignClient.getDicDataById( + param.getStasisID()).getData(); + } + //反防止参数查询数据报错 + Assert.isTrue( + ObjectUtil.isNotNull(measurementDate) || ObjectUtil.isNotNull(harmonicDate) + , "干扰源类型或者指标类型为空,请检查入参是否准确"); + + //获取主网id信息 + DictData mainnetData = dicDataFeignClient.getDicDataByCode(DicDataEnum.MAINNET_POINT.getCode()).getData(); + + List rStatHarmonicVoltageMS = rStatHarmonicDMapper.selectList(new LambdaQueryWrapper() + .eq(RStatHarmonicD::getDataType, mainnetData.getId()) + .eq(RStatHarmonicD::getMeasurementTypeClass, measurementDate.getId()) + .eq(RStatHarmonicD::getHarmonicType, harmonicDate.getId()) + .ge(StrUtil.isNotBlank(param.getStartTime()), RStatHarmonicD::getDataDate, param.getStartTime()) + .le(StrUtil.isNotBlank(param.getEndTime()), RStatHarmonicD::getDataDate, param.getEndTime()) + ); + Map> collect = + rStatHarmonicVoltageMS.stream().collect(Collectors.groupingBy(RStatHarmonicD::getDataDate)); + + //获取月份 + List intervalTime = this.getIntervalTime(param.getStartTime(), param.getEndTime()); + for (String interTime : intervalTime) { + //生成初始时间 + String startTime = PublicDateUtil.getFisrtDayOfMonth(Integer.parseInt(interTime.substring(0, 4)), Integer.parseInt(interTime.substring(5))); + String endTime = PublicDateUtil.getLastDayOfMonth(Integer.parseInt(interTime.substring(0, 4)), Integer.parseInt(interTime.substring(5))); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Date dt = simpleDateFormat.parse(startTime); + Date dtDate = simpleDateFormat.parse(endTime); + Integer year = Integer.valueOf(String.format("%tY", dt)); + Integer mon = Integer.valueOf(String.format("%tm", dt)); + Integer day = Integer.valueOf(String.format("%td", dtDate)); + //生成月份数据 + List dayTime = this.getIntervalDateTime(year, mon, day); + for (String s : dayTime) { + RHarmonicPolylineVO rPolylineVO = new RHarmonicPolylineVO(); + rPolylineVO.setDate(s); + if (collect.containsKey(LocalDateTimeUtil.parseDate(s, "yyyy-MM-dd"))) { + List rSd = collect.get(LocalDateTimeUtil.parseDate(s, "yyyy-MM-dd")); + rPolylineVO.setNum(rSd.get(0).getOverLimitMeasurement()); + rPolylineVO.setOverLimitMeasurementRatioAverage(rSd.get(0).getOverLimitMeasurementRatio()); + rPolylineVO.setAverageOverDay(1); + } else { + rPolylineVO.setNum(0); + rPolylineVO.setAverageOverDay(0); + rPolylineVO.setOverLimitMeasurementRatioAverage(0.0f); + } + iconList.add(rPolylineVO); + } + + } + return iconList; + } + + @Override + public List getPwRStatHarmonicMAll(StatisticsBizBaseParam param) { + //对象主节点 获取所有的稳态类型 + List eventData = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + Map eventMap = eventData.stream() + .collect(Collectors.toMap(DictData::getId, Function.identity())); + + //子节点获取监测点类别 + List lineData = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.LINE_SORT.getCode()).getData(); + Map lineMap = lineData.stream() + .collect(Collectors.toMap(DictData::getId, Function.identity())); + + //获取配网id信息 + DictData distributionData = dicDataFeignClient.getDicDataByCode(DicDataEnum.DISTRIBUTION_POINT.getCode()).getData(); + //初始化指标类型(横向) + List arrayVOList = new ArrayList<>(); + //数据库查询 + List list = rStatHarmonicMMapper.selectList(new LambdaQueryWrapper() + .eq(RStatHarmonicM::getDataType, distributionData.getId()) + .ge(param.getStartTime() != null, RStatHarmonicM::getDataDate, param.getStartTime()) + .le(param.getEndTime() != null, RStatHarmonicM::getDataDate, param.getEndTime())); + + //根据稳态指标分组 + Map> measurementMap = list.stream().collect(Collectors.groupingBy(RStatHarmonicM::getHarmonicType)); + + //判断对象是否为空 + if (CollUtil.isNotEmpty(list)) { + //重新生成数据结构 + measurementMap.forEach((key, value) -> { + List eventVO = new ArrayList<>(); + if (eventMap.containsKey(key)) { + RArrayVO arrayVO = new RArrayVO(); + DictData data = eventMap.get(key); + arrayVO.setRowName(data.getName()); + arrayVO.setSort(data.getSort()); + for (RStatHarmonicM statHarmonic : value) { + if(lineMap.containsKey(statHarmonic.getMeasurementTypeClass())){ + RStatHarmonicMVO r = BeanUtil.copyProperties(statHarmonic, RStatHarmonicMVO.class); + DictData data1 = lineMap.get(statHarmonic.getMeasurementTypeClass()); + r.setHarmonicName(data1.getName()); + r.setSort(data1.getSort()); + DecimalFormat df = new DecimalFormat("###.00"); + Float averageOverDay = Float.parseFloat( + df.format(r.getOverDay() / (r.getOverLimitMeasurementAccrued() * 1.0))); + r.setAverageOverDay(averageOverDay); + eventVO.add(r); + } + } + //根据监测点类别获取差集 + Map> listMap = value.stream().collect(Collectors.groupingBy(RStatHarmonicM::getMeasurementTypeClass)); + List differenceList = lineData.stream().filter(r -> !listMap.containsKey(r.getId())) + .collect(Collectors.toList()); + this.assignDict(differenceList, eventVO, arrayVO); + eventVO.sort(Comparator.comparing(statHarmonic -> statHarmonic.getSort())); + arrayVOList.add(arrayVO); + } + }); + } + //处理主节点不存在的集合 + List notMeasurementList = eventData.stream().filter(r -> !measurementMap.containsKey(r.getId())) + .collect(Collectors.toList()); + for (DictData notData : notMeasurementList) { + List statharmonicVO = new ArrayList<>(); + RArrayVO arrayVO = new RArrayVO(); + arrayVO.setRowName(notData.getName()); + arrayVO.setSort(notData.getSort()); + this.assignDict(lineData, statharmonicVO, arrayVO); + statharmonicVO.sort(Comparator.comparing(statHarmonic -> statHarmonic.getSort())); + arrayVOList.add(arrayVO); + } + arrayVOList.sort(Comparator.comparing(rArrayVO -> rArrayVO.getSort())); + return arrayVOList; + } + + @SneakyThrows + @Override + public List getPwRStatHarmonicIconDate(RStatHarmonicMParam param) { + //初始化对象 + List iconList = new ArrayList<>(); + DictData measurementDate; + //指标对象类型属性 + DictData harmonicDate; + //判断是是否传入检测点信息值(电压) + if (StrUtil.isBlank(param.getStasisID()) && StrUtil.isBlank(param.getMonitorID())) { + //干扰数据类型(监测对象) + List interferenceSourceTypeData = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.LINE_SORT.getCode()).getData(); + interferenceSourceTypeData.sort(Comparator.comparing(data -> data.getSort())); + measurementDate = interferenceSourceTypeData.get(0); + //指标对象类型 + List indicatorTypeDate = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + indicatorTypeDate.sort(Comparator.comparing(data -> data.getSort())); + harmonicDate = indicatorTypeDate.get(0); + } else { + //获取检测点对象(电压) + measurementDate = dicDataFeignClient.getDicDataById( + param.getMonitorID()).getData(); + //获取指标对象(频率偏差) + harmonicDate = dicDataFeignClient.getDicDataById( + param.getStasisID()).getData(); + } + //反防止参数查询数据报错 + Assert.isTrue( + ObjectUtil.isNotNull(measurementDate) || ObjectUtil.isNotNull(harmonicDate) + , "监测点类别或者指标类型为空,请检查入参是否准确"); + //获取配网信息 + DictData distributionData = dicDataFeignClient.getDicDataByCode(DicDataEnum.DISTRIBUTION_POINT.getCode()).getData(); + + List rStatHarmonicVoltageMS = rStatHarmonicDMapper.selectList(new LambdaQueryWrapper() + .eq(RStatHarmonicD::getDataType, distributionData.getId()) + .eq(RStatHarmonicD::getMeasurementTypeClass, measurementDate.getId()) + .eq(RStatHarmonicD::getHarmonicType, harmonicDate.getId()) + .ge(StrUtil.isNotBlank(param.getStartTime()), RStatHarmonicD::getDataDate, param.getStartTime()) + .le(StrUtil.isNotBlank(param.getEndTime()), RStatHarmonicD::getDataDate, param.getEndTime()) + ); + Map> collect = + rStatHarmonicVoltageMS.stream().collect(Collectors.groupingBy(RStatHarmonicD::getDataDate)); + + //获取月份 + List intervalTime = this.getIntervalTime(param.getStartTime(), param.getEndTime()); + for (String interTime : intervalTime) { + //生成初始时间 + String startTime = PublicDateUtil.getFisrtDayOfMonth(Integer.parseInt(interTime.substring(0, 4)), Integer.parseInt(interTime.substring(5))); + String endTime = PublicDateUtil.getLastDayOfMonth(Integer.parseInt(interTime.substring(0, 4)), Integer.parseInt(interTime.substring(5))); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Date dt = simpleDateFormat.parse(startTime); + Date dtDate = simpleDateFormat.parse(endTime); + Integer year = Integer.valueOf(String.format("%tY", dt)); + Integer mon = Integer.valueOf(String.format("%tm", dt)); + Integer day = Integer.valueOf(String.format("%td", dtDate)); + //生成月份数据 + List dayTime = this.getIntervalDateTime(year, mon, day); + for (String s : dayTime) { + RHarmonicPolylineVO rPolylineVO = new RHarmonicPolylineVO(); + rPolylineVO.setDate(s); + if (collect.containsKey(LocalDateTimeUtil.parseDate(s, "yyyy-MM-dd"))) { + List rSd = collect.get(LocalDateTimeUtil.parseDate(s, "yyyy-MM-dd")); + rPolylineVO.setNum(rSd.get(0).getOverLimitMeasurement()); + rPolylineVO.setOverLimitMeasurementRatioAverage(rSd.get(0).getOverLimitMeasurementRatio()); + rPolylineVO.setAverageOverDay(1); + } else { + rPolylineVO.setNum(0); + rPolylineVO.setAverageOverDay(0); + rPolylineVO.setOverLimitMeasurementRatioAverage(0.0f); + } + iconList.add(rPolylineVO); + } + + } + return iconList; + } + + /** + * 便利赋值 + * + * @param DictDataList 稳态指标类型集合 + * @param statharmonicVO 暂态监测点 + * @param arrayVO 初始化对象 + */ + private void assignDict(List DictDataList, List statharmonicVO, RArrayVO arrayVO) { + for (DictData dictData : DictDataList) { + RStatHarmonicMVO notStatHarmonicVO = new RStatHarmonicMVO(); + notStatHarmonicVO.setHarmonicName(dictData.getName()); + notStatHarmonicVO.setSort(dictData.getSort()); + notStatHarmonicVO.setOverLimitMeasurementAverage(0); + notStatHarmonicVO.setOverLimitMeasurementAccrued(0); + notStatHarmonicVO.setOverDay(0); + notStatHarmonicVO.setOverLimitMeasurementRatioAverage(0.0F); + notStatHarmonicVO.setOverLimitMeasurementRatioAccrued(0.0F); + notStatHarmonicVO.setAverageOverDay(0.0F); + statharmonicVO.add(notStatHarmonicVO); + } + arrayVO.setColumns(statharmonicVO); + } + + /** + * 根据用户选择的时间区间返回月份日期 + */ + @SneakyThrows + private List getIntervalTime(String startTime, String endTime) { + List times = new ArrayList<>(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); + Date start = sdf.parse(startTime); + Date end = sdf.parse(endTime); + // 同月 + if (start.getTime() == end.getTime()) { + String time = startTime.substring(0, 7); + times.add(time); + } else if (start.getYear() == end.getYear()) { + // 同年 + int startM = start.getMonth() + 1; + int endM = end.getMonth() + 1; + int temp = endM - startM; + for (int i = 0; i <= temp; i++) { + String time = start.getYear() + 1900 + ""; + int month = startM + i; + if (month < 10) { + time = time + "-0" + month; + } else { + time = time + "-" + month; + } + times.add(time); + } + } else { + // 不同年!!!!这里忽略了年份之间跨年的情况 + int startY = start.getYear() + 1900; + int startM = start.getMonth() + 1; + int endY = end.getYear() + 1900; + int endM = end.getMonth() + 1; + int tempS = 12 - startM; + // 连续的年份 + if (endY - startY == 1) { + // 第一年的时间获取 + for (int i = 0; i <= tempS; i++) { + int month = startM + i; + String time = startY + "-"; + if (month < 10) { + time = time + "0" + month; + } else { + time = time + month; + } + times.add(time); + } + // 第二年的时间获取 + + for (int i = 1; i <= endM; i++) { + String time = endY + "-"; + if (i < 10) { + time = time + "0" + i; + } else { + time = time + i; + } + times.add(time); + } + } else { + // 不连续的年份 + // 第一年的时间获取 + for (int i = 0; i <= tempS; i++) { + int month = startM + i; + String time = startY + "-"; + if (month < 10) { + time = time + "0" + month; + } else { + time = time + month; + } + times.add(time); + } + int tempY = endY - startY; + // 中间年份的时间 + for (int i = 1; i < tempY; i++) { + for (int j = 1; j <= 12; j++) { + String time = startY + i + "-"; + if (j < 10) { + time = time + "0" + j; + } else { + time = time + j; + } + times.add(time); + } + } + // 最后一年的时间获取 + for (int i = 1; i <= endM; i++) { + String time = endY + "-"; + if (i < 10) { + time = time + "0" + i; + } else { + time = time + i; + } + times.add(time); + } + } + + } + return times; + } + + @SneakyThrows + private List getIntervalDateTime(Integer startTime, Integer endTime, Integer dd) { + List list = new ArrayList<>(); + Calendar calendar = Calendar.getInstance(Locale.CHINA); + calendar.set(startTime, endTime - 1, 1); + //年份 + int year = calendar.get(Calendar.YEAR); + //月份 + int month = calendar.get(Calendar.MONTH) + 1; + for (int i = 1; i <= dd; i++) { + String date = null; + if (month < 10 && i < 10) { + date = year + "-0" + month + "-0" + i; + } + if (month < 10 && i >= 10) { + date = year + "-0" + month + "-" + i; + } + if (month >= 10 && i < 10) { + date = year + "-" + month + "-0" + i; + } + if (month >= 10 && i >= 10) { + date = year + "-" + month + "-" + i; + } + + list.add(date); + } + return list; + } + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatHarmonicOrgMServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatHarmonicOrgMServiceImpl.java new file mode 100644 index 000000000..350b19a25 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatHarmonicOrgMServiceImpl.java @@ -0,0 +1,364 @@ +package com.njcn.harmonic.service.majornetwork.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.harmonic.pojo.param.RStatHarmonicMParam; +import com.njcn.harmonic.pojo.po.RStatHarmonicOrgM; +import com.njcn.harmonic.mapper.StatHarmonicOrgMMapper; +import com.njcn.harmonic.pojo.vo.RArrayVO; +import com.njcn.harmonic.pojo.vo.RIconVO; +import com.njcn.harmonic.pojo.vo.RStatHarmonicMVO; +import com.njcn.harmonic.service.majornetwork.RStatHarmonicOrgMService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataEnum; +import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.pojo.po.DictData; +import com.njcn.user.api.DeptFeignClient; +import com.njcn.user.pojo.dto.DeptDTO; +import com.njcn.web.utils.WebUtil; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 服务实现类 + *

+ * + * @author rui.wu + * @since 2022-10-14 + */ +@Service +@RequiredArgsConstructor +public class RStatHarmonicOrgMServiceImpl extends ServiceImpl implements RStatHarmonicOrgMService { + + private final DeptFeignClient deptFeignClient; + private final DicDataFeignClient dicDataFeignClient; + private final StatHarmonicOrgMMapper statHarmonicOrgMMapper; + + @Override + public List getRStatHarmonicMAll(StatisticsBizBaseParam param) { + //子节点 获取所有得各单位类型 + List deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData(); + //获取部门id集合 + List deptIds = deptDTOList.stream().map(DeptDTO::getId).collect(Collectors.toList()); + Map deptMap = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getId, Function.identity())); + + //对象主节点 获取所有得指标类型 + List lineTypeData = dicDataFeignClient.getDicDataByTypeCode + (DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + Map lineTypeMap = lineTypeData.stream() + .collect(Collectors.toMap(DictData::getId, Function.identity())); + //获取主网id信息 + DictData mainnetData = dicDataFeignClient.getDicDataByCode(DicDataEnum.MAINNET_POINT.getCode()).getData(); + + //数据库查询 + List list = statHarmonicOrgMMapper.selectList(new LambdaQueryWrapper() + .eq(RStatHarmonicOrgM::getDataType, mainnetData.getId()) + .in(RStatHarmonicOrgM::getOrgNo, deptIds) + .ge(StrUtil.isNotBlank(param.getStartTime()), RStatHarmonicOrgM::getDataDate, param.getStartTime()) + .le(StrUtil.isNotBlank(param.getEndTime()), RStatHarmonicOrgM::getDataDate, param.getEndTime())); + + //初始化指标类型(横向) + List arrayVOList = new ArrayList<>(); + List rm = new ArrayList<>(); + for (DeptDTO deptDTO : deptDTOList) { + RStatHarmonicMVO r = new RStatHarmonicMVO(); + r.setHarmonicName(deptDTO.getName()); + r.setOverLimitMeasurementAverage(0); + r.setOverLimitMeasurementAccrued(0); + r.setAverageOverDay(0.0F); + r.setOverDay(0); + r.setOverLimitMeasurementRatioAverage(0.0F); + r.setOverLimitMeasurementRatioAccrued(0.0F); + rm.add(r); + } + for (DictData lineTypeDatum : lineTypeData) { + RArrayVO r = new RArrayVO(); + r.setRowName(lineTypeDatum.getName()); + r.setColumns(rm); + r.setSort(lineTypeDatum.getSort()); + arrayVOList.add(r); + } + //根据检测点对象分组 + Map> MeasurementTypeClassMap = list.stream().collect(Collectors.groupingBy(RStatHarmonicOrgM::getHarmonicType)); + //重新生成数据结构 + MeasurementTypeClassMap.forEach((key, value) -> { + if (lineTypeMap.containsKey(key)) { + RArrayVO arrayVO = new RArrayVO(); + DictData data = lineTypeMap.get(key); + arrayVO.setRowName(data.getName()); + arrayVO.setSort(data.getSort()); + List b = new ArrayList<>(); + b.addAll(rm); + for (RStatHarmonicOrgM orgY : value) { + RStatHarmonicMVO r = BeanUtil.copyProperties(orgY, RStatHarmonicMVO.class); + DeptDTO data1 = deptMap.get(orgY.getOrgNo()); + if (ObjectUtil.isNotNull(data1)) { + r.setHarmonicName(data1.getName()); + DecimalFormat df = new DecimalFormat("###.00"); + Float averageOverDay = Float.parseFloat( + df.format(r.getOverDay() / (r.getOverLimitMeasurementAccrued() * 1.0))); + r.setAverageOverDay(averageOverDay); + b.add(r); + } + } + Map linkedHashMap = new LinkedHashMap<>(); + for (RStatHarmonicMVO harmonicMVO : b) { + linkedHashMap.put(harmonicMVO.getHarmonicName(), harmonicMVO); + } + List aa = new ArrayList<>(linkedHashMap.values()); + aa.sort(Comparator.comparing(rStatHarmonicMVO -> rStatHarmonicMVO.getHarmonicName())); + arrayVO.setColumns(aa); + arrayVOList.add(arrayVO); + } + + }); + Map linkedHashMap = new LinkedHashMap<>(); + for (RArrayVO rStatHarmonicMVO : arrayVOList) { + linkedHashMap.put(rStatHarmonicMVO.getRowName(), rStatHarmonicMVO); + } + List aa = new ArrayList<>(linkedHashMap.values()); + arrayVOList.sort(Comparator.comparing(rArrayVO -> rArrayVO.getRowName())); + return aa; + } + + @Override + public List getRStatHarmonicOrgMIcon(RStatHarmonicMParam param) { + //各单位类型 + List deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData(); + Map deptMap = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getId, Function.identity())); + //获取部门id集合 + List deptIds = deptDTOList.stream().map(DeptDTO::getId).collect(Collectors.toList()); + //指标对象类型属性 + DictData harmonicData; + //判断是是否传入检测点信息值(电压) + if (StrUtil.isBlank(param.getStasisID()) && StrUtil.isBlank(param.getMonitorID())) { + //指标对象类型 + List indicatorTypeDate = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + indicatorTypeDate.sort(Comparator.comparing(data -> data.getSort())); + harmonicData = indicatorTypeDate.get(0); + } else { + //获取指标对象(频率偏差) + harmonicData = dicDataFeignClient.getDicDataById( + param.getStasisID()).getData(); + } + //反防止参数查询数据报错 + Assert.isTrue( + CollUtil.isNotEmpty(deptDTOList) || ObjectUtil.isNotNull(harmonicData) + , "各单位或者指标类型为空,请检查入参是否准确"); + //获取主网id信息 + DictData mainnetData = dicDataFeignClient.getDicDataByCode(DicDataEnum.MAINNET_POINT.getCode()).getData(); + + //初始化对象 + List arrayVOList = new ArrayList<>(); + List rStatHarmonicVoltageMS = statHarmonicOrgMMapper.selectList(new LambdaQueryWrapper() + .eq(RStatHarmonicOrgM::getDataType, mainnetData.getId()) + .in(RStatHarmonicOrgM::getOrgNo, deptIds) + .eq(RStatHarmonicOrgM::getHarmonicType, harmonicData.getId()) + .ge(StrUtil.isNotBlank(param.getStartTime()), RStatHarmonicOrgM::getDataDate, param.getStartTime()) + .le(StrUtil.isNotBlank(param.getEndTime()), RStatHarmonicOrgM::getDataDate, param.getEndTime()) + ); + //将数据转换为map进行便利 + Map> voltageMMap = rStatHarmonicVoltageMS.stream() + .collect(Collectors.groupingBy(RStatHarmonicOrgM::getOrgNo)); + //对象 + if (CollUtil.isNotEmpty(rStatHarmonicVoltageMS)) { + voltageMMap.forEach((key, value) -> { + if (deptMap.containsKey(key)) { + DeptDTO data = deptMap.get(key); + for (RStatHarmonicOrgM orgM : value) { + RIconVO rIconVO = new RIconVO(); + rIconVO.setRowName(data.getName()); + rIconVO.setOverLimitMeasurementAccrued(orgM.getOverLimitMeasurementAccrued()); + rIconVO.setOverLimitMeasurementAverage(orgM.getOverLimitMeasurementAverage()); + rIconVO.setOverLimitMeasurementRatioAccrued(orgM.getOverLimitMeasurementRatioAccrued()); + rIconVO.setOverLimitMeasurementRatioAverage(orgM.getOverLimitMeasurementRatioAverage()); + DecimalFormat df = new DecimalFormat("###.00"); + Float averageOverDay = Float.parseFloat( + df.format(orgM.getOverDay() / (orgM.getOverLimitMeasurementAccrued() * 1.0))); + rIconVO.setAverageOverDay(averageOverDay); + arrayVOList.add(rIconVO); + } + + } + }); + } + arrayVOList.sort(Comparator.comparing(rIconVO -> rIconVO.getRowName())); + return arrayVOList; + } + + @Override + public List getPwRStatHarmonicMAll(StatisticsBizBaseParam param) { + //对象主节点 获取所有的稳态类型 + List steadyData = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + Map steadyMap = steadyData.stream() + .collect(Collectors.toMap(DictData::getId, Function.identity())); + + //子节点 获取所有得各单位类型 + List deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData(); + //获取部门id集合 + List deptIds = deptDTOList.stream().map(DeptDTO::getId).collect(Collectors.toList()); + Map deptMap = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getId, Function.identity())); + + //获取配网信息 + DictData distributionData = dicDataFeignClient.getDicDataByCode(DicDataEnum.DISTRIBUTION_POINT.getCode()).getData(); + //初始化指标类型(横向) + List arrayVOList = new ArrayList<>(); + //数据库查询 + List list = statHarmonicOrgMMapper.selectList(new LambdaQueryWrapper() + .eq(RStatHarmonicOrgM::getDataType, distributionData.getId()) + .in(RStatHarmonicOrgM::getOrgNo, deptIds) + .ge(param.getStartTime() != null, RStatHarmonicOrgM::getDataDate, param.getStartTime()) + .le(param.getEndTime() != null, RStatHarmonicOrgM::getDataDate, param.getEndTime())); + //根据稳态指标分组 + Map> measurementMap = list.stream().collect(Collectors.groupingBy(RStatHarmonicOrgM::getHarmonicType)); + //判断对象是否为空 + if (CollUtil.isNotEmpty(list)) { + //重新生成数据结构 + measurementMap.forEach((key, value) -> { + List eventVO = new ArrayList<>(); + if (steadyMap.containsKey(key)) { + RArrayVO arrayVO = new RArrayVO(); + DictData data = steadyMap.get(key); + arrayVO.setRowName(data.getName()); + arrayVO.setSort(data.getSort()); + for (RStatHarmonicOrgM statHarmonic : value) { + if(deptMap.containsKey(statHarmonic.getOrgNo())){ + RStatHarmonicMVO r = BeanUtil.copyProperties(statHarmonic, RStatHarmonicMVO.class); + DeptDTO deptDTO = deptMap.get(statHarmonic.getOrgNo()); + r.setHarmonicName(deptDTO.getName()); + DecimalFormat df = new DecimalFormat("###.00"); + Float averageOverDay = Float.parseFloat( + df.format(r.getOverDay() / (r.getOverLimitMeasurementAccrued() * 1.0))); + r.setAverageOverDay(averageOverDay); + eventVO.add(r); + } + + } + //根据监测点类别获取差集 + Map> listMap = value.stream().collect(Collectors.groupingBy(RStatHarmonicOrgM::getOrgNo)); + List notDeptDTOS = deptDTOList.stream().filter(r -> !listMap.containsKey(r.getId())) + .collect(Collectors.toList()); + this.assignDict(notDeptDTOS, eventVO, arrayVO); + eventVO.sort(Comparator.comparing(statHarmonic -> statHarmonic.getHarmonicName())); + arrayVOList.add(arrayVO); + } + }); + } + //处理主节点不存在的集合 + List notMeasurementList = steadyData.stream().filter(r -> !measurementMap.containsKey(r.getId())) + .collect(Collectors.toList()); + for (DictData notData : notMeasurementList) { + List statharmonicVO = new ArrayList<>(); + RArrayVO arrayVO = new RArrayVO(); + arrayVO.setRowName(notData.getName()); + arrayVO.setSort(notData.getSort()); + this.assignDict(deptDTOList, statharmonicVO, arrayVO); + statharmonicVO.sort(Comparator.comparing(statHarmonic -> statHarmonic.getHarmonicName())); + arrayVOList.add(arrayVO); + } + arrayVOList.sort(Comparator.comparing(rArrayVO -> rArrayVO.getSort())); + return arrayVOList; + } + + @Override + public List getPwRStatHarmonicOrgMIcon(RStatHarmonicMParam param) { + //各单位类型 + List deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData(); + Map deptMap = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getId, Function.identity())); + //获取部门id集合 + List deptIds = deptDTOList.stream().map(DeptDTO::getId).collect(Collectors.toList()); + //指标对象类型属性 + DictData harmonicData; + //判断是是否传入检测点信息值(电压) + if (StrUtil.isBlank(param.getStasisID()) && StrUtil.isBlank(param.getMonitorID())) { + //指标对象类型 + List indicatorTypeDate = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + indicatorTypeDate.sort(Comparator.comparing(data -> data.getSort())); + harmonicData = indicatorTypeDate.get(0); + } else { + //获取指标对象(频率偏差) + harmonicData = dicDataFeignClient.getDicDataById( + param.getStasisID()).getData(); + } + //反防止参数查询数据报错 + Assert.isTrue( + CollUtil.isNotEmpty(deptDTOList) || ObjectUtil.isNotNull(harmonicData) + , "各单位或者指标类型为空,请检查入参是否准确"); + //获取主网id信息 + DictData distributionData = dicDataFeignClient.getDicDataByCode(DicDataEnum.DISTRIBUTION_POINT.getCode()).getData(); + + //初始化对象 + List arrayVOList = new ArrayList<>(); + List rStatHarmonicVoltageMS = statHarmonicOrgMMapper.selectList(new LambdaQueryWrapper() + .eq(RStatHarmonicOrgM::getDataType, distributionData.getId()) + .in(RStatHarmonicOrgM::getOrgNo, deptIds) + .eq(RStatHarmonicOrgM::getHarmonicType, harmonicData.getId()) + .ge(StrUtil.isNotBlank(param.getStartTime()), RStatHarmonicOrgM::getDataDate, param.getStartTime()) + .le(StrUtil.isNotBlank(param.getEndTime()), RStatHarmonicOrgM::getDataDate, param.getEndTime()) + ); + //将数据转换为map进行便利 + Map> voltageMMap = rStatHarmonicVoltageMS.stream() + .collect(Collectors.groupingBy(RStatHarmonicOrgM::getOrgNo)); + //对象 + if (CollUtil.isNotEmpty(rStatHarmonicVoltageMS)) { + voltageMMap.forEach((key, value) -> { + if (deptMap.containsKey(key)) { + DeptDTO data = deptMap.get(key); + for (RStatHarmonicOrgM orgM : value) { + RIconVO rIconVO = new RIconVO(); + rIconVO.setRowName(data.getName()); + rIconVO.setOverLimitMeasurementAccrued(orgM.getOverLimitMeasurementAccrued()); + rIconVO.setOverLimitMeasurementAverage(orgM.getOverLimitMeasurementAverage()); + rIconVO.setOverLimitMeasurementRatioAccrued(orgM.getOverLimitMeasurementRatioAccrued()); + rIconVO.setOverLimitMeasurementRatioAverage(orgM.getOverLimitMeasurementRatioAverage()); + DecimalFormat df = new DecimalFormat("###.00"); + Float averageOverDay = Float.parseFloat( + df.format(orgM.getOverDay() / (orgM.getOverLimitMeasurementAccrued() * 1.0))); + rIconVO.setAverageOverDay(averageOverDay); + arrayVOList.add(rIconVO); + } + + } + }); + } + arrayVOList.sort(Comparator.comparing(rIconVO -> rIconVO.getRowName())); + return arrayVOList; + } + + /** + * 便利赋值 + * + * @param deptDTOList 部门信息集合 + * @param statharmonicVO 暂态监测点 + * @param arrayVO 初始化对象 + */ + private void assignDict(List deptDTOList, List statharmonicVO, RArrayVO arrayVO) { + for (DeptDTO dictData : deptDTOList) { + RStatHarmonicMVO notStatHarmonicVO = new RStatHarmonicMVO(); + notStatHarmonicVO.setHarmonicName(dictData.getName()); + notStatHarmonicVO.setOverLimitMeasurementAverage(0); + notStatHarmonicVO.setOverLimitMeasurementAccrued(0); + notStatHarmonicVO.setOverDay(0); + notStatHarmonicVO.setOverLimitMeasurementRatioAverage(0.0F); + notStatHarmonicVO.setOverLimitMeasurementRatioAccrued(0.0F); + notStatHarmonicVO.setAverageOverDay(0.0F); + statharmonicVO.add(notStatHarmonicVO); + } + arrayVO.setColumns(statharmonicVO); + } +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatHarmonicOrgQServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatHarmonicOrgQServiceImpl.java new file mode 100644 index 000000000..79913a060 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatHarmonicOrgQServiceImpl.java @@ -0,0 +1,350 @@ +package com.njcn.harmonic.service.majornetwork.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.harmonic.pojo.param.RStatHarmonicMParam; +import com.njcn.harmonic.pojo.po.RStatHarmonicOrgQ; +import com.njcn.harmonic.mapper.StatHarmonicOrgQMapper; +import com.njcn.harmonic.pojo.vo.RArrayVO; +import com.njcn.harmonic.pojo.vo.RIconVO; +import com.njcn.harmonic.pojo.vo.RStatHarmonicMVO; +import com.njcn.harmonic.service.majornetwork.RStatHarmonicOrgQService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataEnum; +import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.pojo.po.DictData; +import com.njcn.user.api.DeptFeignClient; +import com.njcn.user.pojo.dto.DeptDTO; +import com.njcn.web.utils.WebUtil; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 服务实现类 + *

+ * + * @author rui.wu + * @since 2022-10-14 + */ +@Service +@RequiredArgsConstructor +public class RStatHarmonicOrgQServiceImpl extends ServiceImpl implements RStatHarmonicOrgQService { + + private final DeptFeignClient deptFeignClient; + private final DicDataFeignClient dicDataFeignClient; + private final StatHarmonicOrgQMapper statHarmonicOrgQMapper; + + @Override + public List getRStatHarmonicQAll(StatisticsBizBaseParam param) { + //子节点 获取所有得各单位类型 + List deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData(); + //获取部门id集合 + List deptIds = deptDTOList.stream().map(DeptDTO::getId).collect(Collectors.toList()); + Map deptMap = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getId, Function.identity())); + + //对象主节点 获取所有得指标类型 + List lineTypeData = dicDataFeignClient.getDicDataByTypeCode + (DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + Map lineTypeMap = lineTypeData.stream() + .collect(Collectors.toMap(DictData::getId, Function.identity())); + //获取主网id信息 + DictData mainnetData = dicDataFeignClient.getDicDataByCode(DicDataEnum.MAINNET_POINT.getCode()).getData(); + + //数据库查询 + List list = statHarmonicOrgQMapper.selectList(new LambdaQueryWrapper() + .eq(RStatHarmonicOrgQ::getDataType, mainnetData.getId()) + .in(RStatHarmonicOrgQ::getOrgNo, deptIds) + .ge(StrUtil.isNotBlank(param.getStartTime()), RStatHarmonicOrgQ::getDataDate, param.getStartTime()) + .le(StrUtil.isNotBlank(param.getEndTime()), RStatHarmonicOrgQ::getDataDate, param.getEndTime())); + + //初始化指标类型(横向) + List arrayVOList = new ArrayList<>(); + List rm = new ArrayList<>(); + for (DeptDTO deptDTO : deptDTOList) { + RStatHarmonicMVO r = new RStatHarmonicMVO(); + r.setHarmonicName(deptDTO.getName()); + r.setOverLimitMeasurementAverage(0); + r.setOverLimitMeasurementAccrued(0); + r.setAverageOverDay(0.0F); + r.setOverDay(0); + r.setOverLimitMeasurementRatioAverage(0.0F); + r.setOverLimitMeasurementRatioAccrued(0.0F); + rm.add(r); + } + for (DictData lineTypeDatum : lineTypeData) { + RArrayVO r = new RArrayVO(); + r.setRowName(lineTypeDatum.getName()); + r.setColumns(rm); + r.setSort(lineTypeDatum.getSort()); + arrayVOList.add(r); + } + //根据检测点对象分组 + Map> MeasurementTypeClassMap = list.stream().collect(Collectors.groupingBy(RStatHarmonicOrgQ::getHarmonicType)); + //重新生成数据结构 + MeasurementTypeClassMap.forEach((key, value) -> { + if (lineTypeMap.containsKey(key)) { + RArrayVO arrayVO = new RArrayVO(); + DictData data = lineTypeMap.get(key); + arrayVO.setRowName(data.getName()); + arrayVO.setSort(data.getSort()); + List b = new ArrayList<>(); + b.addAll(rm); + for (RStatHarmonicOrgQ orgY : value) { + RStatHarmonicMVO r = BeanUtil.copyProperties(orgY, RStatHarmonicMVO.class); + DeptDTO data1 = deptMap.get(orgY.getOrgNo()); + if (ObjectUtil.isNotNull(data1)) { + r.setHarmonicName(data1.getName()); + r.setOverDay(0); + b.add(r); + } + } + Map linkedHashMap = new LinkedHashMap<>(); + for (RStatHarmonicMVO harmonicMVO : b) { + linkedHashMap.put(harmonicMVO.getHarmonicName(), harmonicMVO); + } + List aa = new ArrayList<>(linkedHashMap.values()); + aa.sort(Comparator.comparing(rStatHarmonicMVO -> rStatHarmonicMVO.getHarmonicName())); + arrayVO.setColumns(aa); + arrayVOList.add(arrayVO); + } + + }); + Map linkedHashMap = new LinkedHashMap<>(); + for (RArrayVO rStatHarmonicMVO : arrayVOList) { + linkedHashMap.put(rStatHarmonicMVO.getRowName(), rStatHarmonicMVO); + } + List aa = new ArrayList<>(linkedHashMap.values()); + arrayVOList.sort(Comparator.comparing(rArrayVO -> rArrayVO.getRowName())); + return aa; + } + + @Override + public List getRStatHarmonicOrgQIcon(RStatHarmonicMParam param) { + //各单位类型 + List deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData(); + Map deptMap = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getId, Function.identity())); + //获取部门id集合 + List deptIds = deptDTOList.stream().map(DeptDTO::getId).collect(Collectors.toList()); + //指标对象类型属性 + DictData harmonicData; + //判断是是否传入检测点信息值(电压) + if (StrUtil.isBlank(param.getStasisID()) && StrUtil.isBlank(param.getMonitorID())) { + //指标对象类型 + List indicatorTypeDate = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + indicatorTypeDate.sort(Comparator.comparing(data -> data.getSort())); + harmonicData = indicatorTypeDate.get(0); + } else { + //获取指标对象(频率偏差) + harmonicData = dicDataFeignClient.getDicDataById( + param.getStasisID()).getData(); + } + //反防止参数查询数据报错 + Assert.isTrue( + CollUtil.isNotEmpty(deptDTOList) || ObjectUtil.isNotNull(harmonicData) + , "各单位或者指标类型为空,请检查入参是否准确"); + //获取主网id信息 + DictData mainnetData = dicDataFeignClient.getDicDataByCode(DicDataEnum.MAINNET_POINT.getCode()).getData(); + + //初始化对象 + List arrayVOList = new ArrayList<>(); + List rStatHarmonicVoltageMS = statHarmonicOrgQMapper.selectList(new LambdaQueryWrapper() + .eq(RStatHarmonicOrgQ::getDataType, mainnetData.getId()) + .in(RStatHarmonicOrgQ::getOrgNo, deptIds) + .eq(RStatHarmonicOrgQ::getHarmonicType, harmonicData.getId()) + .ge(StrUtil.isNotBlank(param.getStartTime()), RStatHarmonicOrgQ::getDataDate, param.getStartTime()) + .le(StrUtil.isNotBlank(param.getEndTime()), RStatHarmonicOrgQ::getDataDate, param.getEndTime()) + ); + //将数据转换为map进行便利 + Map> voltageMMap = rStatHarmonicVoltageMS.stream() + .collect(Collectors.groupingBy(RStatHarmonicOrgQ::getOrgNo)); + //对象 + if (CollUtil.isNotEmpty(rStatHarmonicVoltageMS)) { + voltageMMap.forEach((key, value) -> { + if (deptMap.containsKey(key)) { + DeptDTO data = deptMap.get(key); + for (RStatHarmonicOrgQ orgQ : value) { + RIconVO rIconVO = new RIconVO(); + rIconVO.setRowName(data.getName()); + rIconVO.setOverLimitMeasurementAccrued(orgQ.getOverLimitMeasurementAccrued()); + rIconVO.setOverLimitMeasurementAverage(orgQ.getOverLimitMeasurementAverage()); + rIconVO.setOverLimitMeasurementRatioAccrued(orgQ.getOverLimitMeasurementRatioAccrued()); + rIconVO.setOverLimitMeasurementRatioAverage(orgQ.getOverLimitMeasurementRatioAverage()); + rIconVO.setAverageOverDay(orgQ.getAverageOverDay()); + arrayVOList.add(rIconVO); + } + + } + }); + } + arrayVOList.sort(Comparator.comparing(rIconVO -> rIconVO.getRowName())); + return arrayVOList; + } + + @Override + public List getPwRStatHarmonicQAll(StatisticsBizBaseParam param) { + //对象主节点 获取所有的稳态类型 + List steadyData = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + Map steadyMap = steadyData.stream() + .collect(Collectors.toMap(DictData::getId, Function.identity())); + + //子节点 获取所有得各单位类型 + List deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData(); + //获取部门id集合 + List deptIds = deptDTOList.stream().map(DeptDTO::getId).collect(Collectors.toList()); + Map deptMap = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getId, Function.identity())); + + //获取配网信息 + DictData distributionData = dicDataFeignClient.getDicDataByCode(DicDataEnum.DISTRIBUTION_POINT.getCode()).getData(); + //初始化指标类型(横向) + List arrayVOList = new ArrayList<>(); + //数据库查询 + List list = statHarmonicOrgQMapper.selectList(new LambdaQueryWrapper() + .eq(RStatHarmonicOrgQ::getDataType, distributionData.getId()) + .in(RStatHarmonicOrgQ::getOrgNo, deptIds) + .ge(param.getStartTime() != null, RStatHarmonicOrgQ::getDataDate, param.getStartTime()) + .le(param.getEndTime() != null, RStatHarmonicOrgQ::getDataDate, param.getEndTime())); + //根据稳态指标分组 + Map> measurementMap = list.stream().collect(Collectors.groupingBy(RStatHarmonicOrgQ::getHarmonicType)); + //判断对象是否为空 + if (CollUtil.isNotEmpty(list)) { + //重新生成数据结构 + measurementMap.forEach((key, value) -> { + List eventVO = new ArrayList<>(); + if (steadyMap.containsKey(key)) { + RArrayVO arrayVO = new RArrayVO(); + DictData data = steadyMap.get(key); + arrayVO.setRowName(data.getName()); + arrayVO.setSort(data.getSort()); + for (RStatHarmonicOrgQ statHarmonic : value) { + if(deptMap.containsKey(statHarmonic.getOrgNo())){ + RStatHarmonicMVO r = BeanUtil.copyProperties(statHarmonic, RStatHarmonicMVO.class); + DeptDTO deptDTO = deptMap.get(statHarmonic.getOrgNo()); + r.setHarmonicName(deptDTO.getName()); + eventVO.add(r); + } + + } + //根据监测点类别获取差集 + Map> listMap = value.stream().collect(Collectors.groupingBy(RStatHarmonicOrgQ::getOrgNo)); + List notDeptDTOS = deptDTOList.stream().filter(r -> !listMap.containsKey(r.getId())) + .collect(Collectors.toList()); + this.assignDict(notDeptDTOS, eventVO, arrayVO); + eventVO.sort(Comparator.comparing(statHarmonic -> statHarmonic.getHarmonicName())); + arrayVOList.add(arrayVO); + } + }); + } + //处理主节点不存在的集合 + List notMeasurementList = steadyData.stream().filter(r -> !measurementMap.containsKey(r.getId())) + .collect(Collectors.toList()); + for (DictData notData : notMeasurementList) { + List statharmonicVO = new ArrayList<>(); + RArrayVO arrayVO = new RArrayVO(); + arrayVO.setRowName(notData.getName()); + arrayVO.setSort(notData.getSort()); + this.assignDict(deptDTOList, statharmonicVO, arrayVO); + statharmonicVO.sort(Comparator.comparing(statHarmonic -> statHarmonic.getHarmonicName())); + arrayVOList.add(arrayVO); + } + arrayVOList.sort(Comparator.comparing(rArrayVO -> rArrayVO.getSort())); + return arrayVOList; + } + + @Override + public List getPwRStatHarmonicOrgQIcon(RStatHarmonicMParam param) { + //各单位类型 + List deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData(); + Map deptMap = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getId, Function.identity())); + //获取部门id集合 + List deptIds = deptDTOList.stream().map(DeptDTO::getId).collect(Collectors.toList()); + //指标对象类型属性 + DictData harmonicData; + //判断是是否传入检测点信息值(电压) + if (StrUtil.isBlank(param.getStasisID()) && StrUtil.isBlank(param.getMonitorID())) { + //指标对象类型 + List indicatorTypeDate = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + indicatorTypeDate.sort(Comparator.comparing(data -> data.getSort())); + harmonicData = indicatorTypeDate.get(0); + } else { + //获取指标对象(频率偏差) + harmonicData = dicDataFeignClient.getDicDataById( + param.getStasisID()).getData(); + } + //反防止参数查询数据报错 + Assert.isTrue( + CollUtil.isNotEmpty(deptDTOList) || ObjectUtil.isNotNull(harmonicData) + , "各单位或者指标类型为空,请检查入参是否准确"); + //获取配网信息 + DictData distributionData = dicDataFeignClient.getDicDataByCode(DicDataEnum.DISTRIBUTION_POINT.getCode()).getData(); + + //初始化对象 + List arrayVOList = new ArrayList<>(); + List rStatHarmonicVoltageMS = statHarmonicOrgQMapper.selectList(new LambdaQueryWrapper() + .eq(RStatHarmonicOrgQ::getDataType, distributionData.getId()) + .in(RStatHarmonicOrgQ::getOrgNo, deptIds) + .eq(RStatHarmonicOrgQ::getHarmonicType, harmonicData.getId()) + .ge(StrUtil.isNotBlank(param.getStartTime()), RStatHarmonicOrgQ::getDataDate, param.getStartTime()) + .le(StrUtil.isNotBlank(param.getEndTime()), RStatHarmonicOrgQ::getDataDate, param.getEndTime()) + ); + //将数据转换为map进行便利 + Map> voltageMMap = rStatHarmonicVoltageMS.stream() + .collect(Collectors.groupingBy(RStatHarmonicOrgQ::getOrgNo)); + //对象 + if (CollUtil.isNotEmpty(rStatHarmonicVoltageMS)) { + voltageMMap.forEach((key, value) -> { + if (deptMap.containsKey(key)) { + DeptDTO data = deptMap.get(key); + for (RStatHarmonicOrgQ orgQ : value) { + RIconVO rIconVO = new RIconVO(); + rIconVO.setRowName(data.getName()); + rIconVO.setOverLimitMeasurementAccrued(orgQ.getOverLimitMeasurementAccrued()); + rIconVO.setOverLimitMeasurementAverage(orgQ.getOverLimitMeasurementAverage()); + rIconVO.setOverLimitMeasurementRatioAccrued(orgQ.getOverLimitMeasurementRatioAccrued()); + rIconVO.setOverLimitMeasurementRatioAverage(orgQ.getOverLimitMeasurementRatioAverage()); + rIconVO.setAverageOverDay(orgQ.getAverageOverDay()); + arrayVOList.add(rIconVO); + } + + } + }); + } + arrayVOList.sort(Comparator.comparing(rIconVO -> rIconVO.getRowName())); + return arrayVOList; + } + + /** + * 便利赋值 + * + * @param deptDTOList 部门信息集合 + * @param statharmonicVO 暂态监测点 + * @param arrayVO 初始化对象 + */ + private void assignDict(List deptDTOList, List statharmonicVO, RArrayVO arrayVO) { + for (DeptDTO dictData : deptDTOList) { + RStatHarmonicMVO notStatHarmonicVO = new RStatHarmonicMVO(); + notStatHarmonicVO.setHarmonicName(dictData.getName()); + notStatHarmonicVO.setOverLimitMeasurementAverage(0); + notStatHarmonicVO.setOverLimitMeasurementAccrued(0); + notStatHarmonicVO.setOverDay(0); + notStatHarmonicVO.setOverLimitMeasurementRatioAverage(0.0F); + notStatHarmonicVO.setOverLimitMeasurementRatioAccrued(0.0F); + notStatHarmonicVO.setAverageOverDay(0.0F); + statharmonicVO.add(notStatHarmonicVO); + } + arrayVO.setColumns(statharmonicVO); + } +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatHarmonicOrgYServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatHarmonicOrgYServiceImpl.java new file mode 100644 index 000000000..004ca79cc --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatHarmonicOrgYServiceImpl.java @@ -0,0 +1,352 @@ +package com.njcn.harmonic.service.majornetwork.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.harmonic.pojo.param.RStatHarmonicMParam; +import com.njcn.harmonic.pojo.po.RStatHarmonicOrgY; +import com.njcn.harmonic.mapper.StatHarmonicOrgYMapper; +import com.njcn.harmonic.pojo.vo.RArrayVO; +import com.njcn.harmonic.pojo.vo.RIconVO; +import com.njcn.harmonic.pojo.vo.RStatHarmonicMVO; +import com.njcn.harmonic.service.majornetwork.RStatHarmonicOrgYService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataEnum; +import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.pojo.po.DictData; +import com.njcn.user.api.DeptFeignClient; +import com.njcn.user.pojo.dto.DeptDTO; +import com.njcn.web.utils.WebUtil; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 服务实现类 + *

+ * + * @author rui.wu + * @since 2022-10-14 + */ +@Service +@RequiredArgsConstructor +public class RStatHarmonicOrgYServiceImpl extends ServiceImpl implements RStatHarmonicOrgYService { + + private final DicDataFeignClient dicDataFeignClient; + private final DeptFeignClient deptFeignClient; + private final StatHarmonicOrgYMapper statHarmonicOrgYMapper; + + @Override + public List getRStatHarmonicYAll(StatisticsBizBaseParam param) { + //子节点 获取所有得各单位类型 + List deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData(); + //获取部门id集合 + List deptIds = deptDTOList.stream().map(DeptDTO::getId).collect(Collectors.toList()); + Map deptMap = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getId, Function.identity())); + + //对象主节点 获取所有得指标类型 + List lineTypeData = dicDataFeignClient.getDicDataByTypeCode + (DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + Map lineTypeMap = lineTypeData.stream() + .collect(Collectors.toMap(DictData::getId, Function.identity())); + //获取主网id信息 + DictData mainnetData = dicDataFeignClient.getDicDataByCode(DicDataEnum.MAINNET_POINT.getCode()).getData(); + + //数据库查询 + List list = statHarmonicOrgYMapper.selectList(new LambdaQueryWrapper() + .eq(RStatHarmonicOrgY::getDataType,mainnetData.getId()) + .in(RStatHarmonicOrgY::getOrgNo,deptIds) + .ge(StrUtil.isNotBlank(param.getStartTime()), RStatHarmonicOrgY::getDataDate, param.getStartTime()) + .le(StrUtil.isNotBlank(param.getEndTime()), RStatHarmonicOrgY::getDataDate, param.getEndTime())); + + //初始化指标类型(横向) + List arrayVOList=new ArrayList<>(); + List rm=new ArrayList<>(); + for (DeptDTO deptDTO : deptDTOList) { + RStatHarmonicMVO r = new RStatHarmonicMVO(); + r.setHarmonicName(deptDTO.getName()); + r.setOverLimitMeasurementAverage(0); + r.setOverLimitMeasurementAccrued(0); + r.setAverageOverDay(0.0F); + r.setOverDay(0); + r.setOverLimitMeasurementRatioAverage(0.0F); + r.setOverLimitMeasurementRatioAccrued(0.0F); + rm.add(r); + } + for (DictData lineTypeDatum : lineTypeData) { + RArrayVO r = new RArrayVO(); + r.setRowName(lineTypeDatum.getName()); + r.setColumns(rm); + r.setSort(lineTypeDatum.getSort()); + arrayVOList.add(r); + } + //根据检测点对象分组 + Map> MeasurementTypeClassMap = list.stream().collect(Collectors.groupingBy(RStatHarmonicOrgY::getHarmonicType)); + //重新生成数据结构 + MeasurementTypeClassMap.forEach((key, value) -> { + if(lineTypeMap.containsKey(key)){ + RArrayVO arrayVO=new RArrayVO(); + DictData data = lineTypeMap.get(key); + arrayVO.setRowName(data.getName()); + arrayVO.setSort(data.getSort()); + List b=new ArrayList<>(); + b.addAll(rm); + for (RStatHarmonicOrgY orgY : value) { + RStatHarmonicMVO r = BeanUtil.copyProperties(orgY, RStatHarmonicMVO.class); + DeptDTO data1 = deptMap.get(orgY.getOrgNo()); + if (ObjectUtil.isNotNull(data1)){ + r.setHarmonicName(data1.getName()); + r.setOverDay(0); + b.add(r); + } + } + Map linkedHashMap=new LinkedHashMap<>(); + for (RStatHarmonicMVO harmonicMVO : b) { + linkedHashMap.put(harmonicMVO.getHarmonicName(),harmonicMVO); + } + List aa=new ArrayList<>(linkedHashMap.values()); + aa.sort(Comparator.comparing(rStatHarmonicMVO -> rStatHarmonicMVO.getHarmonicName())); + arrayVO.setColumns(aa); + arrayVOList.add(arrayVO); + } + + }); + Map linkedHashMap=new LinkedHashMap<>(); + for (RArrayVO rStatHarmonicMVO : arrayVOList) { + linkedHashMap.put(rStatHarmonicMVO.getRowName(),rStatHarmonicMVO); + } + List aa=new ArrayList<>(linkedHashMap.values()); + arrayVOList.sort(Comparator.comparing(rArrayVO -> rArrayVO.getRowName())); + return aa; + } + + @Override + public List getRStatHarmonicOrgYIcon(RStatHarmonicMParam param) { + //各单位类型 + List deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData(); + Map deptMap = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getId, Function.identity())); + //获取部门id集合 + List deptIds = deptDTOList.stream().map(DeptDTO::getId).collect(Collectors.toList()); + //指标对象类型属性 + DictData harmonicData; + //判断是是否传入检测点信息值(电压) + if(StrUtil.isBlank(param.getStasisID())&&StrUtil.isBlank(param.getMonitorID())){ + //指标对象类型 + List indicatorTypeDate = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + indicatorTypeDate.sort(Comparator.comparing(data -> data.getSort())); + harmonicData =indicatorTypeDate.get(0); + }else{ + //获取指标对象(频率偏差) + harmonicData= dicDataFeignClient.getDicDataById( + param.getStasisID()).getData(); + } + //反防止参数查询数据报错 + Assert.isTrue( + CollUtil.isNotEmpty(deptDTOList)||ObjectUtil.isNotNull(harmonicData) + , "各单位或者指标类型为空,请检查入参是否准确"); + + //获取主网id信息 + DictData mainnetData = dicDataFeignClient.getDicDataByCode(DicDataEnum.MAINNET_POINT.getCode()).getData(); + + //初始化对象 + List arrayVOList=new ArrayList<>(); + List rStatHarmonicVoltageMS = statHarmonicOrgYMapper.selectList(new LambdaQueryWrapper() + .eq(RStatHarmonicOrgY::getDataType,mainnetData.getId()) + .in(RStatHarmonicOrgY::getOrgNo,deptIds) + .eq(RStatHarmonicOrgY::getHarmonicType, harmonicData.getId()) + .ge(StrUtil.isNotBlank(param.getStartTime()), RStatHarmonicOrgY::getDataDate, param.getStartTime()) + .le(StrUtil.isNotBlank(param.getEndTime()), RStatHarmonicOrgY::getDataDate, param.getEndTime()) + ); + //将数据转换为map进行便利 + Map> voltageMMap = rStatHarmonicVoltageMS.stream() + .collect(Collectors.groupingBy(RStatHarmonicOrgY::getOrgNo)); + //对象 + if (CollUtil.isNotEmpty(rStatHarmonicVoltageMS)){ + voltageMMap.forEach((key, value) -> { + if(deptMap.containsKey(key)){ + DeptDTO data = deptMap.get(key); + for (RStatHarmonicOrgY orgY : value) { + RIconVO rIconVO = new RIconVO(); + rIconVO.setRowName(data.getName()); + rIconVO.setOverLimitMeasurementAccrued(orgY.getOverLimitMeasurementAccrued()); + rIconVO.setOverLimitMeasurementAverage(orgY.getOverLimitMeasurementAverage()); + rIconVO.setOverLimitMeasurementRatioAccrued(orgY.getOverLimitMeasurementRatioAccrued()); + rIconVO.setOverLimitMeasurementRatioAverage(orgY.getOverLimitMeasurementRatioAverage()); + rIconVO.setAverageOverDay(orgY.getAverageOverDay()); + arrayVOList.add(rIconVO); + } + + } + }); + } + arrayVOList.sort(Comparator.comparing(rIconVO -> rIconVO.getRowName())); + return arrayVOList; + } + + @Override + public List getPwRStatHarmonicYAll(StatisticsBizBaseParam param) { + //对象主节点 获取所有的稳态类型 + List steadyData = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + Map steadyMap = steadyData.stream() + .collect(Collectors.toMap(DictData::getId, Function.identity())); + + //子节点 获取所有得各单位类型 + List deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData(); + //获取部门id集合 + List deptIds = deptDTOList.stream().map(DeptDTO::getId).collect(Collectors.toList()); + Map deptMap = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getId, Function.identity())); + + //获取配网信息 + DictData distributionData = dicDataFeignClient.getDicDataByCode(DicDataEnum.DISTRIBUTION_POINT.getCode()).getData(); + //初始化指标类型(横向) + List arrayVOList = new ArrayList<>(); + //数据库查询 + List list = statHarmonicOrgYMapper.selectList(new LambdaQueryWrapper() + .eq(RStatHarmonicOrgY::getDataType, distributionData.getId()) + .in(RStatHarmonicOrgY::getOrgNo,deptIds) + .ge(param.getStartTime() != null, RStatHarmonicOrgY::getDataDate, param.getStartTime()) + .le(param.getEndTime() != null, RStatHarmonicOrgY::getDataDate, param.getEndTime())); + //根据稳态指标分组 + Map> measurementMap = list.stream().collect(Collectors.groupingBy(RStatHarmonicOrgY::getHarmonicType)); + //判断对象是否为空 + if(CollUtil.isNotEmpty(list)){ + //重新生成数据结构 + measurementMap.forEach((key, value) -> { + List eventVO = new ArrayList<>(); + if (steadyMap.containsKey(key)) { + RArrayVO arrayVO = new RArrayVO(); + DictData data = steadyMap.get(key); + arrayVO.setRowName(data.getName()); + arrayVO.setSort(data.getSort()); + for (RStatHarmonicOrgY statHarmonic : value) { + if(deptMap.containsKey(statHarmonic.getOrgNo())){ + RStatHarmonicMVO r = BeanUtil.copyProperties(statHarmonic, RStatHarmonicMVO.class); + DeptDTO deptDTO = deptMap.get(statHarmonic.getOrgNo()); + r.setHarmonicName(deptDTO.getName()); + eventVO.add(r); + } + } + //根据监测点类别获取差集 + Map> listMap = value.stream().collect(Collectors.groupingBy(RStatHarmonicOrgY::getOrgNo)); + List notDeptDTOS = deptDTOList.stream().filter(r -> !listMap.containsKey(r.getId())) + .collect(Collectors.toList()); + this.assignDict(notDeptDTOS, eventVO, arrayVO); + eventVO.sort(Comparator.comparing(statHarmonic -> statHarmonic.getHarmonicName())); + arrayVOList.add(arrayVO); + } + }); + } + //处理主节点不存在的集合 + List notMeasurementList = steadyData.stream().filter(r -> !measurementMap.containsKey(r.getId())) + .collect(Collectors.toList()); + for (DictData notData : notMeasurementList) { + List statharmonicVO = new ArrayList<>(); + RArrayVO arrayVO = new RArrayVO(); + arrayVO.setRowName(notData.getName()); + arrayVO.setSort(notData.getSort()); + this.assignDict(deptDTOList, statharmonicVO, arrayVO); + statharmonicVO.sort(Comparator.comparing(statHarmonic -> statHarmonic.getHarmonicName())); + arrayVOList.add(arrayVO); + } + arrayVOList.sort(Comparator.comparing(rArrayVO -> rArrayVO.getSort())); + return arrayVOList; + } + + @Override + public List getPwRStatHarmonicOrgYIcon(RStatHarmonicMParam param) { + //各单位类型 + List deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData(); + Map deptMap = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getId, Function.identity())); + //获取部门id集合 + List deptIds = deptDTOList.stream().map(DeptDTO::getId).collect(Collectors.toList()); + //指标对象类型属性 + DictData harmonicData; + //判断是是否传入检测点信息值(电压) + if(StrUtil.isBlank(param.getStasisID())&&StrUtil.isBlank(param.getMonitorID())){ + //指标对象类型 + List indicatorTypeDate = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + indicatorTypeDate.sort(Comparator.comparing(data -> data.getSort())); + harmonicData =indicatorTypeDate.get(0); + }else{ + //获取指标对象(频率偏差) + harmonicData= dicDataFeignClient.getDicDataById( + param.getStasisID()).getData(); + } + //反防止参数查询数据报错 + Assert.isTrue( + CollUtil.isNotEmpty(deptDTOList)||ObjectUtil.isNotNull(harmonicData) + , "各单位或者指标类型为空,请检查入参是否准确"); + + //获取配网信息 + DictData distributionData = dicDataFeignClient.getDicDataByCode(DicDataEnum.DISTRIBUTION_POINT.getCode()).getData(); + + //初始化对象 + List arrayVOList=new ArrayList<>(); + List rStatHarmonicVoltageMS = statHarmonicOrgYMapper.selectList(new LambdaQueryWrapper() + .eq(RStatHarmonicOrgY::getDataType,distributionData.getId()) + .in(RStatHarmonicOrgY::getOrgNo,deptIds) + .eq(RStatHarmonicOrgY::getHarmonicType, harmonicData.getId()) + .ge(StrUtil.isNotBlank(param.getStartTime()), RStatHarmonicOrgY::getDataDate, param.getStartTime()) + .le(StrUtil.isNotBlank(param.getEndTime()), RStatHarmonicOrgY::getDataDate, param.getEndTime()) + ); + //将数据转换为map进行便利 + Map> voltageMMap = rStatHarmonicVoltageMS.stream() + .collect(Collectors.groupingBy(RStatHarmonicOrgY::getOrgNo)); + //对象 + if (CollUtil.isNotEmpty(rStatHarmonicVoltageMS)){ + voltageMMap.forEach((key, value) -> { + if(deptMap.containsKey(key)){ + DeptDTO data = deptMap.get(key); + for (RStatHarmonicOrgY orgY : value) { + RIconVO rIconVO = new RIconVO(); + rIconVO.setRowName(data.getName()); + rIconVO.setOverLimitMeasurementAccrued(orgY.getOverLimitMeasurementAccrued()); + rIconVO.setOverLimitMeasurementAverage(orgY.getOverLimitMeasurementAverage()); + rIconVO.setOverLimitMeasurementRatioAccrued(orgY.getOverLimitMeasurementRatioAccrued()); + rIconVO.setOverLimitMeasurementRatioAverage(orgY.getOverLimitMeasurementRatioAverage()); + rIconVO.setAverageOverDay(orgY.getAverageOverDay()); + arrayVOList.add(rIconVO); + } + + } + }); + } + arrayVOList.sort(Comparator.comparing(rIconVO -> rIconVO.getRowName())); + return arrayVOList; + } + + /** + * 便利赋值 + * + * @param deptDTOList 部门信息集合 + * @param statharmonicVO 暂态监测点 + * @param arrayVO 初始化对象 + */ + private void assignDict(List deptDTOList, List statharmonicVO, RArrayVO arrayVO) { + for (DeptDTO dictData : deptDTOList) { + RStatHarmonicMVO notStatHarmonicVO = new RStatHarmonicMVO(); + notStatHarmonicVO.setHarmonicName(dictData.getName()); + notStatHarmonicVO.setOverLimitMeasurementAverage(0); + notStatHarmonicVO.setOverLimitMeasurementAccrued(0); + notStatHarmonicVO.setOverDay(0); + notStatHarmonicVO.setOverLimitMeasurementRatioAverage(0.0F); + notStatHarmonicVO.setOverLimitMeasurementRatioAccrued(0.0F); + notStatHarmonicVO.setAverageOverDay(0.0F); + statharmonicVO.add(notStatHarmonicVO); + } + arrayVO.setColumns(statharmonicVO); + } + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatHarmonicQServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatHarmonicQServiceImpl.java new file mode 100644 index 000000000..0829abcd4 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatHarmonicQServiceImpl.java @@ -0,0 +1,222 @@ +package com.njcn.harmonic.service.majornetwork.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.harmonic.mapper.majornetwork.RStatHarmonicQMapper; +import com.njcn.harmonic.pojo.po.RStatHarmonicQ; +import com.njcn.harmonic.pojo.vo.RArrayVO; +import com.njcn.harmonic.pojo.vo.RStatHarmonicMVO; +import com.njcn.harmonic.service.majornetwork.RStatHarmonicQService; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataEnum; +import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.pojo.po.DictData; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 服务实现类 + *

+ * + * @author rui.wu + * @since 2022-10-12 + */ +@Service +@RequiredArgsConstructor +public class RStatHarmonicQServiceImpl extends ServiceImpl implements RStatHarmonicQService { + + private final RStatHarmonicQMapper rStatHarmonicQMapper; + private final DicDataFeignClient dicDataFeignClient; + + @Override + public List getRStatHarmonicQAll(StatisticsBizBaseParam param) { + //子节点 获取所有得干扰源类型(监测点类型) + List interferenceSourceTypeData = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.MONITORING_LABELS.getCode()).getData(); + Map interferenceMap = interferenceSourceTypeData.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); + + //对象主节点 获取所有得指标类型 + List lineTypeData = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + Map lineTypeMap = lineTypeData.stream() + .collect(Collectors.toMap(DictData::getId, Function.identity())); + + //获取主网id信息 + DictData mainnetData = dicDataFeignClient.getDicDataByCode(DicDataEnum.MAINNET_POINT.getCode()).getData(); + + //数据库查询 + List list = rStatHarmonicQMapper.selectList(new LambdaQueryWrapper() + .eq(RStatHarmonicQ::getDataType, mainnetData.getId()) + .ge(StrUtil.isNotBlank(param.getStartTime()), RStatHarmonicQ::getDataDate, param.getStartTime()) + .le(StrUtil.isNotBlank(param.getEndTime()), RStatHarmonicQ::getDataDate, param.getEndTime())); + + //初始化指标类型(横向) + List arrayVOList = new ArrayList<>(); + List rm = new ArrayList<>(); + for (DictData lineTypeDatum : interferenceSourceTypeData) { + RStatHarmonicMVO r = new RStatHarmonicMVO(); + r.setHarmonicName(lineTypeDatum.getName()); + r.setSort(lineTypeDatum.getSort()); + r.setOverLimitMeasurementAverage(0); + r.setOverLimitMeasurementAccrued(0); + r.setAverageOverDay(0.0F); + r.setOverDay(0); + r.setOverLimitMeasurementRatioAverage(0.0F); + r.setOverLimitMeasurementRatioAccrued(0.0F); + rm.add(r); + } + for (DictData lineTypeDatum : lineTypeData) { + RArrayVO r = new RArrayVO(); + r.setRowName(lineTypeDatum.getName()); + r.setSort(lineTypeDatum.getSort()); + r.setColumns(rm); + arrayVOList.add(r); + } + //根据稳态指标分组 + Map> MeasurementTypeClassMap = list.stream().collect(Collectors.groupingBy(RStatHarmonicQ::getHarmonicType)); + //重新生成数据结构 + MeasurementTypeClassMap.forEach((key, value) -> { + + if (lineTypeMap.containsKey(key)) { + RArrayVO arrayVO = new RArrayVO(); + DictData data = lineTypeMap.get(key); + arrayVO.setRowName(data.getName()); + arrayVO.setSort(data.getSort()); + List b = new ArrayList<>(); + b.addAll(rm); + for (RStatHarmonicQ rStatHarmonicQ : value) { + if(interferenceMap.containsKey(rStatHarmonicQ.getMeasurementTypeClass())){ + RStatHarmonicMVO r = BeanUtil.copyProperties(rStatHarmonicQ, RStatHarmonicMVO.class); + DictData data1 = interferenceMap.get(rStatHarmonicQ.getMeasurementTypeClass()); + r.setHarmonicName(data1.getName()); + r.setSort(data1.getSort()); + r.setOverDay(0); + b.add(r); + } + + } + Map linkedHashMap = new LinkedHashMap<>(); + for (RStatHarmonicMVO harmonicMVO : b) { + linkedHashMap.put(harmonicMVO.getHarmonicName(), harmonicMVO); + } + List aa = new ArrayList<>(linkedHashMap.values()); + aa.sort(Comparator.comparing(rStatHarmonicMVO -> rStatHarmonicMVO.getSort())); + arrayVO.setColumns(aa); + arrayVOList.add(arrayVO); + } + + }); + Map linkedHashMap = new LinkedHashMap<>(); + for (RArrayVO rStatHarmonicMVO : arrayVOList) { + linkedHashMap.put(rStatHarmonicMVO.getRowName(), rStatHarmonicMVO); + } + List aa = new ArrayList<>(linkedHashMap.values()); + arrayVOList.sort(Comparator.comparing(rArrayVO -> rArrayVO.getSort())); + return aa; + } + + @Override + public List getPwRStatHarmonicQAll(StatisticsBizBaseParam param) { + //对象主节点 获取所有的稳态类型 + List eventData = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + Map eventMap = eventData.stream() + .collect(Collectors.toMap(DictData::getId, Function.identity())); + + //子节点获取监测点类别 + List lineData = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.LINE_SORT.getCode()).getData(); + Map lineMap = lineData.stream() + .collect(Collectors.toMap(DictData::getId, Function.identity())); + + //获取配网id信息 + DictData distributionData = dicDataFeignClient.getDicDataByCode(DicDataEnum.DISTRIBUTION_POINT.getCode()).getData(); + //初始化指标类型(横向) + List arrayVOList = new ArrayList<>(); + //数据库查询 + List list = rStatHarmonicQMapper.selectList(new LambdaQueryWrapper() + .eq(RStatHarmonicQ::getDataType, distributionData.getId()) + .ge(param.getStartTime() != null, RStatHarmonicQ::getDataDate, param.getStartTime()) + .le(param.getEndTime() != null, RStatHarmonicQ::getDataDate, param.getEndTime())); + + //根据稳态指标分组 + Map> measurementMap = list.stream().collect(Collectors.groupingBy(RStatHarmonicQ::getHarmonicType)); + + //判断对象是否为空 + if (CollUtil.isNotEmpty(list)) { + //重新生成数据结构 + measurementMap.forEach((key, value) -> { + List eventVO = new ArrayList<>(); + if (eventMap.containsKey(key)) { + RArrayVO arrayVO = new RArrayVO(); + DictData data = eventMap.get(key); + arrayVO.setRowName(data.getName()); + arrayVO.setSort(data.getSort()); + for (RStatHarmonicQ statHarmonic : value) { + if(lineMap.containsKey(statHarmonic.getMeasurementTypeClass())){ + RStatHarmonicMVO r = BeanUtil.copyProperties(statHarmonic, RStatHarmonicMVO.class); + DictData data1 = lineMap.get(statHarmonic.getMeasurementTypeClass()); + r.setHarmonicName(data1.getName()); + r.setSort(data1.getSort()); + eventVO.add(r); + } + + } + //根据监测点类别获取差集 + Map> listMap = value.stream().collect(Collectors.groupingBy(RStatHarmonicQ::getMeasurementTypeClass)); + List differenceList = lineData.stream().filter(r -> !listMap.containsKey(r.getId())) + .collect(Collectors.toList()); + this.assignDict(differenceList, eventVO, arrayVO); + eventVO.sort(Comparator.comparing(statHarmonic -> statHarmonic.getSort())); + arrayVOList.add(arrayVO); + } + }); + } + //处理主节点不存在的集合 + List notMeasurementList = eventData.stream().filter(r -> !measurementMap.containsKey(r.getId())) + .collect(Collectors.toList()); + for (DictData notData : notMeasurementList) { + List statharmonicVO = new ArrayList<>(); + RArrayVO arrayVO = new RArrayVO(); + arrayVO.setRowName(notData.getName()); + arrayVO.setSort(notData.getSort()); + this.assignDict(lineData, statharmonicVO, arrayVO); + statharmonicVO.sort(Comparator.comparing(statHarmonic -> statHarmonic.getSort())); + arrayVOList.add(arrayVO); + } + arrayVOList.sort(Comparator.comparing(rArrayVO -> rArrayVO.getSort())); + return arrayVOList; + } + + /** + * 便利赋值 + * + * @param DictDataList 稳态指标类型集合 + * @param statharmonicVO 暂态监测点 + * @param arrayVO 初始化对象 + */ + private void assignDict(List DictDataList, List statharmonicVO, RArrayVO arrayVO) { + for (DictData dictData : DictDataList) { + RStatHarmonicMVO notStatHarmonicVO = new RStatHarmonicMVO(); + notStatHarmonicVO.setHarmonicName(dictData.getName()); + notStatHarmonicVO.setSort(dictData.getSort()); + notStatHarmonicVO.setOverLimitMeasurementAverage(0); + notStatHarmonicVO.setOverLimitMeasurementAccrued(0); + notStatHarmonicVO.setOverDay(0); + notStatHarmonicVO.setOverLimitMeasurementRatioAverage(0.0F); + notStatHarmonicVO.setOverLimitMeasurementRatioAccrued(0.0F); + notStatHarmonicVO.setAverageOverDay(0.0F); + statharmonicVO.add(notStatHarmonicVO); + } + arrayVO.setColumns(statharmonicVO); + } +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatHarmonicYServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatHarmonicYServiceImpl.java new file mode 100644 index 000000000..cc0e368d7 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatHarmonicYServiceImpl.java @@ -0,0 +1,220 @@ +package com.njcn.harmonic.service.majornetwork.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.harmonic.mapper.majornetwork.RStatHarmonicYMapper; +import com.njcn.harmonic.pojo.po.RStatHarmonicY; +import com.njcn.harmonic.pojo.vo.RArrayVO; +import com.njcn.harmonic.pojo.vo.RStatHarmonicMVO; +import com.njcn.harmonic.service.majornetwork.RStatHarmonicYService; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataEnum; +import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.pojo.po.DictData; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 服务实现类 + *

+ * + * @author rui.wu + * @since 2022-10-12 + */ +@Service +@RequiredArgsConstructor +public class RStatHarmonicYServiceImpl extends ServiceImpl implements RStatHarmonicYService { + + private final RStatHarmonicYMapper rStatHarmonicYMapper; + private final DicDataFeignClient dicDataFeignClient; + + @Override + public List getRStatHarmonicYAll(StatisticsBizBaseParam param) { + //子节点 获取所有得干扰源类型(监测点类型) + List interferenceSourceTypeData = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.MONITORING_LABELS.getCode()).getData(); + Map interferenceMap = interferenceSourceTypeData.stream().collect(Collectors.toMap(DictData::getId, Function.identity())); + + //对象主节点 获取所有得指标类型 + List lineTypeData = dicDataFeignClient.getDicDataByTypeCode + (DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + Map lineTypeMap = lineTypeData.stream() + .collect(Collectors.toMap(DictData::getId, Function.identity())); + //获取主网id信息 + DictData mainnetData = dicDataFeignClient.getDicDataByCode(DicDataEnum.MAINNET_POINT.getCode()).getData(); + + //数据库查询 + List list = rStatHarmonicYMapper.selectList(new LambdaQueryWrapper() + .eq(RStatHarmonicY::getDataType, mainnetData.getId()) + .ge(StrUtil.isNotBlank(param.getStartTime()), RStatHarmonicY::getDataDate, param.getStartTime()) + .le(StrUtil.isNotBlank(param.getEndTime()), RStatHarmonicY::getDataDate, param.getEndTime())); + + //初始化指标类型(横向) + List arrayVOList = new ArrayList<>(); + + + List rm = new ArrayList<>(); + for (DictData lineTypeDatum : interferenceSourceTypeData) { + RStatHarmonicMVO r = new RStatHarmonicMVO(); + r.setHarmonicName(lineTypeDatum.getName()); + r.setSort(lineTypeDatum.getSort()); + r.setOverLimitMeasurementAverage(0); + r.setOverLimitMeasurementAccrued(0); + r.setAverageOverDay(0.0F); + r.setOverDay(0); + r.setOverLimitMeasurementRatioAverage(0.0F); + r.setOverLimitMeasurementRatioAccrued(0.0F); + rm.add(r); + } + for (DictData lineTypeDatum : lineTypeData) { + RArrayVO r = new RArrayVO(); + r.setRowName(lineTypeDatum.getName()); + r.setColumns(rm); + r.setSort(lineTypeDatum.getSort()); + arrayVOList.add(r); + } + //根据稳态指标分组 + Map> MeasurementTypeClassMap = list.stream().collect(Collectors.groupingBy(RStatHarmonicY::getHarmonicType)); + //重新生成数据结构 + MeasurementTypeClassMap.forEach((key, value) -> { + if (lineTypeMap.containsKey(key)) { + RArrayVO arrayVO = new RArrayVO(); + DictData data = lineTypeMap.get(key); + arrayVO.setRowName(data.getName()); + arrayVO.setSort(data.getSort()); + List b = new ArrayList<>(); + b.addAll(rm); + for (RStatHarmonicY rStatHarmonicY : value) { + if(interferenceMap.containsKey(rStatHarmonicY.getMeasurementTypeClass())){ + RStatHarmonicMVO r = BeanUtil.copyProperties(rStatHarmonicY, RStatHarmonicMVO.class); + DictData data1 = interferenceMap.get(rStatHarmonicY.getMeasurementTypeClass()); + r.setHarmonicName(data1.getName()); + r.setSort(data1.getSort()); + r.setOverDay(0); + b.add(r); + } + + } + Map linkedHashMap = new LinkedHashMap<>(); + for (RStatHarmonicMVO harmonicMVO : b) { + linkedHashMap.put(harmonicMVO.getHarmonicName(), harmonicMVO); + } + List aa = new ArrayList<>(linkedHashMap.values()); + aa.sort(Comparator.comparing(rStatHarmonicMVO -> rStatHarmonicMVO.getSort())); + arrayVO.setColumns(aa); + arrayVOList.add(arrayVO); + } + + }); + Map linkedHashMap = new LinkedHashMap<>(); + for (RArrayVO rStatHarmonicMVO : arrayVOList) { + linkedHashMap.put(rStatHarmonicMVO.getRowName(), rStatHarmonicMVO); + } + List aa = new ArrayList<>(linkedHashMap.values()); + arrayVOList.sort(Comparator.comparing(rArrayVO -> rArrayVO.getSort())); + return aa; + } + + @Override + public List getPwRStatHarmonicYAll(StatisticsBizBaseParam param) { + //对象主节点 获取所有的稳态类型 + List steadyData = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + Map steadyMap = steadyData.stream() + .collect(Collectors.toMap(DictData::getId, Function.identity())); + + //子节点获取监测点类别 + List lineData = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.LINE_SORT.getCode()).getData(); + Map lineMap = lineData.stream() + .collect(Collectors.toMap(DictData::getId, Function.identity())); + + //获取配网id信息 + DictData distributionData = dicDataFeignClient.getDicDataByCode(DicDataEnum.DISTRIBUTION_POINT.getCode()).getData(); + //初始化指标类型(横向) + List arrayVOList = new ArrayList<>(); + //数据库查询 + List list = rStatHarmonicYMapper.selectList(new LambdaQueryWrapper() + .eq(RStatHarmonicY::getDataType, distributionData.getId()) + .ge(param.getStartTime() != null, RStatHarmonicY::getDataDate, param.getStartTime()) + .le(param.getEndTime() != null, RStatHarmonicY::getDataDate, param.getEndTime())); + //根据稳态指标分组 + Map> measurementMap = list.stream().collect(Collectors.groupingBy(RStatHarmonicY::getHarmonicType)); + + //判断对象是否为空 + if(CollUtil.isNotEmpty(list)){ + //重新生成数据结构 + measurementMap.forEach((key, value) -> { + List eventVO = new ArrayList<>(); + if (steadyMap.containsKey(key)) { + RArrayVO arrayVO = new RArrayVO(); + DictData data = steadyMap.get(key); + arrayVO.setRowName(data.getName()); + arrayVO.setSort(data.getSort()); + for (RStatHarmonicY statHarmonic : value) { + if(lineMap.containsKey(statHarmonic.getMeasurementTypeClass())){ + RStatHarmonicMVO r = BeanUtil.copyProperties(statHarmonic, RStatHarmonicMVO.class); + DictData data1 = lineMap.get(statHarmonic.getMeasurementTypeClass()); + r.setHarmonicName(data1.getName()); + r.setSort(data1.getSort()); + eventVO.add(r); + } + } + //根据监测点类别获取差集 + Map> listMap = value.stream().collect(Collectors.groupingBy(RStatHarmonicY::getMeasurementTypeClass)); + List differenceList = lineData.stream().filter(r -> !listMap.containsKey(r.getId())) + .collect(Collectors.toList()); + this.assignDict(differenceList, eventVO, arrayVO); + eventVO.sort(Comparator.comparing(statHarmonic -> statHarmonic.getSort())); + arrayVOList.add(arrayVO); + } + }); + } + //处理主节点不存在的集合 + List notMeasurementList = steadyData.stream().filter(r -> !measurementMap.containsKey(r.getId())) + .collect(Collectors.toList()); + for (DictData notData : notMeasurementList) { + List statharmonicVO = new ArrayList<>(); + RArrayVO arrayVO = new RArrayVO(); + arrayVO.setRowName(notData.getName()); + arrayVO.setSort(notData.getSort()); + this.assignDict(lineData, statharmonicVO, arrayVO); + statharmonicVO.sort(Comparator.comparing(statHarmonic -> statHarmonic.getSort())); + arrayVOList.add(arrayVO); + } + arrayVOList.sort(Comparator.comparing(rArrayVO -> rArrayVO.getSort())); + return arrayVOList; + } + + /** + * 便利赋值 + * + * @param DictDataList 稳态指标类型集合 + * @param statharmonicVO 暂态监测点 + * @param arrayVO 初始化对象 + */ + private void assignDict(List DictDataList, List statharmonicVO, RArrayVO arrayVO) { + for (DictData dictData : DictDataList) { + RStatHarmonicMVO notStatHarmonicVO = new RStatHarmonicMVO(); + notStatHarmonicVO.setHarmonicName(dictData.getName()); + notStatHarmonicVO.setSort(dictData.getSort()); + notStatHarmonicVO.setOverLimitMeasurementAverage(0); + notStatHarmonicVO.setOverLimitMeasurementAccrued(0); + notStatHarmonicVO.setOverDay(0); + notStatHarmonicVO.setOverLimitMeasurementRatioAverage(0.0F); + notStatHarmonicVO.setOverLimitMeasurementRatioAccrued(0.0F); + notStatHarmonicVO.setAverageOverDay(0.0F); + statharmonicVO.add(notStatHarmonicVO); + } + arrayVO.setColumns(statharmonicVO); + } +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatLoadTypeServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatLoadTypeServiceImpl.java new file mode 100644 index 000000000..4e7a2fce0 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatLoadTypeServiceImpl.java @@ -0,0 +1,138 @@ +package com.njcn.harmonic.service.majornetwork.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; +import com.njcn.common.pojo.constant.BizParamConstant; +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.harmonic.mapper.majornetwork.RStatLoadTypeMMapper; +import com.njcn.harmonic.mapper.majornetwork.RStatLoadTypeQMapper; +import com.njcn.harmonic.mapper.majornetwork.RStatLoadTypeYMapper; +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.*; +import com.njcn.harmonic.pojo.vo.RArrayVO; +import com.njcn.harmonic.pojo.vo.RStatLoadTypeVO; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.harmonic.service.majornetwork.RStatLoadTypeService; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.pojo.po.DictData; +import com.njcn.user.api.DeptFeignClient; +import com.njcn.user.pojo.dto.DeptDTO; +import com.njcn.web.utils.WebUtil; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + *

+ * 服务实现类 + *

+ * + * @author rui.wu + * @since 2022-10-19 + */ +@Service +@RequiredArgsConstructor +public class RStatLoadTypeServiceImpl extends ServiceImpl implements RStatLoadTypeService { + + private final DeptFeignClient deptFeignClient; + private final DicDataFeignClient dicDataFeignClient; + private final RStatLoadTypeYMapper rStatLoadTypeYMapper; + private final RStatLoadTypeQMapper rStatLoadTypeQMapper; + private final RStatLoadTypeMMapper rStatLoadTypeMMapper; + + @Override + public List getRStatLoadType(StatisticsBizBaseParam param) { + //获取部门信息 + List data = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData(); + List deptIds = data.stream().map(DeptDTO::getId).collect(Collectors.toList()); + //获取字典信息 + List data1 = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.MONITORING_LABELS.getCode()).getData(); + List dictData = data1.stream().filter(dictdatas -> dictdatas.getLevel() == 1).collect(Collectors.toList()); + dictData.sort(Comparator.comparing(r -> r.getSort())); + //初始化对象 + List info = new ArrayList<>(); + List temp = new ArrayList<>(); + //根据部门进行筛选 + StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class); + baseParam.setIds(deptIds); + if (CollectionUtil.isNotEmpty(data)) { + // 类型(1年 2季度 3月份 + switch (param.getType().toString()) { + case BizParamConstant.STAT_BIZ_YEAR: + // 获取年区域暂态指标分类统计表 + temp = rStatLoadTypeYMapper.getYearStatLoadType(baseParam); + break; + case BizParamConstant.STAT_BIZ_QUARTER: + // 获取季区域暂态指标分类统计表 + temp = rStatLoadTypeQMapper.getQuarterStatLoadType(baseParam); + break; + case BizParamConstant.STAT_BIZ_MONTH: + // 获取月区域暂态指标分类统计表 + temp = rStatLoadTypeMMapper.getMonthStatLoadType(baseParam); + break; + default: + break; + + } + // 匹配单位名称 + for (DeptDTO dto : data) { + for (RStatLoadTypeVO vo : temp) { + if (dto.getId().equals(vo.getOrgNo())) { + vo.setOrgName(dto.getName()); + } + } + } + //根据部门id进行分组 + Map> map = temp + .stream().collect(Collectors.groupingBy(RStatLoadTypeVO::getOrgNo)); + map.forEach((key, value) -> { + RArrayVO arrayVO = new RArrayVO(); + arrayVO.setRowName(value.get(0).getOrgName()); + //属性赋值监测点名称 + for (DictData dictDatum : dictData) { + for (RStatLoadTypeVO rStatLoadTypeVO : value) { + if (dictDatum.getId().equals(rStatLoadTypeVO.getLoadType())) { + rStatLoadTypeVO.setLoadName(dictDatum.getName()); + rStatLoadTypeVO.setSort(dictDatum.getSort()); + + } + } + } + //获取差集(数据在字典里面没有的集合) + Map> listMap = value.stream().collect(Collectors.groupingBy(RStatLoadTypeVO::getLoadType)); + List differenceList = dictData.stream().filter(r -> !listMap.containsKey(r.getId())) + .collect(Collectors.toList()); + for (DictData data4 : differenceList) { + RStatLoadTypeVO vo = new RStatLoadTypeVO(); + vo.setSort(data4.getSort()); + vo.setOrgNo(key); + vo.setOrgName(value.get(0).getOrgName()); + vo.setLoadType(data4.getId()); + vo.setLoadName(data4.getName()); + vo.setVAverage(0.0f); + vo.setVAccrued(0.0f); + vo.setIAverage(0.0f); + vo.setIAccrued(0.0f); + vo.setUnbalanceAverage(0.0f); + vo.setUnbalanceAccrued(0.0f); + vo.setINegAverage(0.0f); + vo.setINegAccrued(0.0f); + vo.setFlickerAverage(0.0f); + vo.setFlickerAccrued(0.0f); + value.add(vo); + } + value.sort(Comparator.comparing(r -> r.getSort())); + arrayVO.setColumns(value); + info.add(arrayVO); + }); + } + return info; + } +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatOrgBusbarVoltageServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatOrgBusbarVoltageServiceImpl.java new file mode 100644 index 000000000..46c4cd8d7 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatOrgBusbarVoltageServiceImpl.java @@ -0,0 +1,104 @@ +package com.njcn.harmonic.service.majornetwork.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; +import com.njcn.common.pojo.constant.BizParamConstant; +import com.njcn.device.pms.api.PmsGeneratrixClient; +import com.njcn.device.pms.pojo.dto.GeneratrixAndPowerStationDTO; +import com.njcn.device.pms.pojo.param.PmsGeneratrixParam; +import com.njcn.harmonic.mapper.majornetwork.RStatOrgBusbarVoltageQMapper; +import com.njcn.harmonic.mapper.majornetwork.RStatOrgBusbarVoltageYMapper; +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatOrgBusbarVoltageM; +import com.njcn.harmonic.mapper.majornetwork.RStatOrgBusbarVoltageMMapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.harmonic.pojo.vo.RStatOrgBusbarVoltageVO; +import com.njcn.harmonic.service.majornetwork.RStatOrgBusbarVoltageService; +import com.njcn.user.api.DeptFeignClient; +import com.njcn.user.pojo.dto.DeptDTO; +import com.njcn.web.utils.WebUtil; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 服务实现类 + *

+ * + * @author rui.wu + * @since 2022-10-19 + */ +@Service +@RequiredArgsConstructor +public class RStatOrgBusbarVoltageServiceImpl extends ServiceImpl implements RStatOrgBusbarVoltageService { + + private final DeptFeignClient deptFeignClient; + private final RStatOrgBusbarVoltageYMapper rStatOrgBusbarVoltageYMapper; + private final RStatOrgBusbarVoltageQMapper rStatOrgBusbarVoltageQMapper; + private final RStatOrgBusbarVoltageMMapper rStatOrgBusbarVoltageMMapper; + private final PmsGeneratrixClient pmsGeneratrixClient; + + @Override + public List getRStatOrgBusbarVoltage(StatSubstationBizBaseParam param) { + //获取部门信息 + List data = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData(); + Map deptMap = data.stream().collect(Collectors.toMap(DeptDTO::getId, Function.identity())); + + //获取部门id集合 + List deptIds = data.stream().map(DeptDTO::getId).collect(Collectors.toList()); + List info = new ArrayList<>(); + List temp = new ArrayList<>(); + if (CollectionUtil.isNotEmpty(data)) { + StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class); + baseParam.setIds(deptIds); + // 类型(1年 2季度 3月份) + switch (param.getType().toString()) { + case BizParamConstant.STAT_BIZ_YEAR: + // 获取年区域电站母线电压类指标超标计 + temp = rStatOrgBusbarVoltageYMapper.getYstatOrgBusbarVoltageVO(baseParam); + break; + case BizParamConstant.STAT_BIZ_QUARTER: + // 获取季区域电站母线电压类指标超标计 + temp = rStatOrgBusbarVoltageQMapper.getQstatOrgBusbarVoltageVO(baseParam); + break; + case BizParamConstant.STAT_BIZ_MONTH: + // 获取月区域电站母线电压类指标超标计 + temp = rStatOrgBusbarVoltageMMapper.getMstatOrgBusbarVoltageVO(baseParam); + break; + default: + break; + } + } + if (CollectionUtil.isNotEmpty(temp)) { + //获取母线集合 + List busbarIds = temp.stream().map(RStatOrgBusbarVoltageVO::getBusbarId).collect(Collectors.toList()); + PmsGeneratrixParam generatrixParam=new PmsGeneratrixParam(); + generatrixParam.setGeneratrixIds(busbarIds); + generatrixParam.setGeneratrixVoltageLevel(param.getIds()); + List generatrixDTO = pmsGeneratrixClient.getGeneratrixAndPowerStationInfo(generatrixParam).getData(); + Map generatrixMap = generatrixDTO.stream().collect( + Collectors.toMap(GeneratrixAndPowerStationDTO::getGeneratrixId, Function.identity())); + Map orgMap = temp.stream().collect(Collectors.toMap(RStatOrgBusbarVoltageVO::getOrgNo, Function.identity())); + orgMap.forEach((key, value) -> { + if (deptMap.containsKey(key)) { + DeptDTO deptDTO = deptMap.get(key); + value.setOrgName(deptDTO.getName()); + if(generatrixMap.containsKey(value.getBusbarId())){ + GeneratrixAndPowerStationDTO dto = generatrixMap.get(value.getBusbarId()); + value.setBusbarVoltageLevel(dto.getGeneratrixVoltageLevel()); + value.setPowerStationName(dto.getPowerName()); + info.add(value); + } + } + }); + } + return info; + } + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatOrgMServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatOrgMServiceImpl.java new file mode 100644 index 000000000..00fa24de3 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatOrgMServiceImpl.java @@ -0,0 +1,86 @@ +package com.njcn.harmonic.service.majornetwork.impl; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatOrgM; +import com.njcn.harmonic.mapper.majornetwork.RStatOrgMMapper; +import com.njcn.harmonic.pojo.vo.RStatOrgVO; +import com.njcn.harmonic.service.majornetwork.RStatOrgMService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataEnum; +import com.njcn.system.pojo.po.DictData; +import com.njcn.user.api.DeptFeignClient; +import com.njcn.user.pojo.dto.DeptDTO; +import com.njcn.web.utils.WebUtil; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 区域分类统计月表 服务实现类 + *

+ * + * @author rui.wu + * @since 2022-10-17 + */ +@Service +@RequiredArgsConstructor +public class RStatOrgMServiceImpl extends ServiceImpl implements RStatOrgMService { + + private final DeptFeignClient deptFeignClient; + private final DicDataFeignClient dicDataFeignClient; + private final RStatOrgMMapper rStatOrgMMapper; + + @Override + public List getRStatHarmonicMAll(StatisticsBizBaseParam param) { + List deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData(); + //获取部门id集合 + List deptIds = deptDTOList.stream().map(DeptDTO::getId).collect(Collectors.toList()); + Map deptMap = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getId, Function.identity())); + //获取主网id信息 + DictData mainnetData = dicDataFeignClient.getDicDataByCode(DicDataEnum.MAINNET_POINT.getCode()).getData(); + //数据库查询 + List list = rStatOrgMMapper.selectList(new LambdaQueryWrapper() + .eq(RStatOrgM::getDataType, mainnetData.getId()) + .in(RStatOrgM::getOrgNo, deptIds) + .ge(StrUtil.isNotBlank(param.getStartTime()), RStatOrgM::getDataDate, param.getStartTime()) + .le(StrUtil.isNotBlank(param.getEndTime()), RStatOrgM::getDataDate, param.getEndTime())); + Map> collect = list.stream().collect(Collectors.groupingBy(RStatOrgM::getOrgNo)); + + List newList = new ArrayList<>(); + collect.forEach((key, value) -> { + if (deptMap.containsKey(key)) { + for (RStatOrgM rStatOrgM : value) { + DecimalFormat df = new DecimalFormat("###.00"); + DeptDTO deptDTO = deptMap.get(key); + RStatOrgVO rStatOrgVO = new RStatOrgVO(); + rStatOrgVO.setOrgName(deptDTO.getName()); + Float averageOverDay = Float.parseFloat( + df.format(rStatOrgM.getOverDayAccrued() / (rStatOrgM.getEffectiveMeasurementAccrued() * 1.0))); + rStatOrgVO.setAverageOverDay(averageOverDay); + rStatOrgVO.setEffectiveMeasurementAverage(rStatOrgM.getEffectiveMeasurementAverage()); + rStatOrgVO.setEffectiveMeasurementAccrued(rStatOrgM.getEffectiveMeasurementAccrued()); + rStatOrgVO.setOverLimitMeasurementAverage(rStatOrgM.getHarmonicMeasurementAverage()); + rStatOrgVO.setOverLimitMeasurementAccrued(rStatOrgM.getHarmonicMeasurementAccrued()); + Float harmonicMeasurementRatioAverage = Float.parseFloat( + df.format(rStatOrgM.getHarmonicMeasurementAverage() / (rStatOrgM.getEffectiveMeasurementAverage() * 1.0))); + rStatOrgVO.setHarmonicMeasurementRatioAverage(harmonicMeasurementRatioAverage); + Float harmonicMeasurementRatioAccrued = Float.parseFloat( + df.format(rStatOrgM.getHarmonicMeasurementAccrued() / (rStatOrgM.getEffectiveMeasurementAccrued() * 1.0))); + rStatOrgVO.setHarmonicMeasurementRatioAccrued(harmonicMeasurementRatioAccrued); + newList.add(rStatOrgVO); + } + } + }); + return newList; + } +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatOrgQServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatOrgQServiceImpl.java new file mode 100644 index 000000000..827dedc4b --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatOrgQServiceImpl.java @@ -0,0 +1,86 @@ +package com.njcn.harmonic.service.majornetwork.impl; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatOrgQ; +import com.njcn.harmonic.mapper.majornetwork.RStatOrgQMapper; +import com.njcn.harmonic.pojo.vo.RStatOrgVO; +import com.njcn.harmonic.service.majornetwork.RStatOrgQService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataEnum; +import com.njcn.system.pojo.po.DictData; +import com.njcn.user.api.DeptFeignClient; +import com.njcn.user.pojo.dto.DeptDTO; +import com.njcn.web.utils.WebUtil; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 区域分类统计季表 服务实现类 + *

+ * + * @author rui.wu + * @since 2022-10-17 + */ +@Service +@RequiredArgsConstructor +public class RStatOrgQServiceImpl extends ServiceImpl implements RStatOrgQService { + + private final DeptFeignClient deptFeignClient; + private final DicDataFeignClient dicDataFeignClient; + private final RStatOrgQMapper rStatOrgQMapper; + + @Override + public List getRStatHarmonicQAll(StatisticsBizBaseParam param) { + List deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData(); + //获取部门id集合 + List deptIds = deptDTOList.stream().map(DeptDTO::getId).collect(Collectors.toList()); + Map deptMap = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getId, Function.identity())); + + //获取主网id信息 + DictData mainnetData = dicDataFeignClient.getDicDataByCode(DicDataEnum.MAINNET_POINT.getCode()).getData(); + + //数据库查询 + List list = rStatOrgQMapper.selectList(new LambdaQueryWrapper() + .eq(RStatOrgQ::getDataType, mainnetData.getId()) + .in(RStatOrgQ::getOrgNo, deptIds) + .ge(StrUtil.isNotBlank(param.getStartTime()), RStatOrgQ::getDataDate, param.getStartTime()) + .le(StrUtil.isNotBlank(param.getEndTime()), RStatOrgQ::getDataDate, param.getEndTime())); + Map> collect = list.stream().collect(Collectors.groupingBy(RStatOrgQ::getOrgNo)); + + List newList = new ArrayList<>(); + collect.forEach((key, value) -> { + if (deptMap.containsKey(key)) { + for (RStatOrgQ rStatOrgQ : value) { + DeptDTO deptDTO = deptMap.get(key); + RStatOrgVO rStatOrgVO = new RStatOrgVO(); + rStatOrgVO.setOrgName(deptDTO.getName()); + rStatOrgVO.setAverageOverDay(rStatOrgQ.getAverageOverDay()); + rStatOrgVO.setEffectiveMeasurementAverage(rStatOrgQ.getEffectiveMeasurementAverage()); + rStatOrgVO.setEffectiveMeasurementAccrued(rStatOrgQ.getEffectiveMeasurementAccrued()); + rStatOrgVO.setOverLimitMeasurementAverage(rStatOrgQ.getHarmonicMeasurementAverage()); + rStatOrgVO.setOverLimitMeasurementAccrued(rStatOrgQ.getHarmonicMeasurementAccrued()); + DecimalFormat df = new DecimalFormat("###.00"); + Float harmonicMeasurementRatioAverage = Float.parseFloat( + df.format(rStatOrgQ.getHarmonicMeasurementAverage() / (rStatOrgQ.getEffectiveMeasurementAverage() * 1.0))); + rStatOrgVO.setHarmonicMeasurementRatioAverage(harmonicMeasurementRatioAverage); + Float harmonicMeasurementRatioAccrued = Float.parseFloat( + df.format(rStatOrgQ.getHarmonicMeasurementAccrued() / (rStatOrgQ.getEffectiveMeasurementAccrued() * 1.0))); + rStatOrgVO.setHarmonicMeasurementRatioAccrued(harmonicMeasurementRatioAccrued); + newList.add(rStatOrgVO); + } + } + }); + return newList; + } +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatOrgYServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatOrgYServiceImpl.java new file mode 100644 index 000000000..bada302c7 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatOrgYServiceImpl.java @@ -0,0 +1,386 @@ +package com.njcn.harmonic.service.majornetwork.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.njcn.common.pojo.constant.BizParamConstant; +import com.njcn.common.pojo.dto.SimpleDTO; +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.device.pms.api.MonitorClient; +import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient; +import com.njcn.device.pms.pojo.dto.PmsGeneralDeviceDTO; +import com.njcn.device.pms.pojo.dto.PmsMonitorDTO; +import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam; +import com.njcn.device.pms.pojo.param.PmsMonitorParam; +import com.njcn.harmonic.mapper.majornetwork.RStatOrgMMapper; +import com.njcn.harmonic.mapper.majornetwork.RStatOrgQMapper; +import com.njcn.harmonic.mapper.majornetwork.RStatOrgYMapper; +import com.njcn.harmonic.mapper.majornetwork.RStatSubstationMMapper; +import com.njcn.harmonic.mapper.majornetwork.RStatSubstationQMapper; +import com.njcn.harmonic.mapper.majornetwork.RStatSubstationYMapper; +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatOrgY; +import com.njcn.harmonic.pojo.vo.*; +import com.njcn.harmonic.service.majornetwork.RStatOrgYService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataEnum; +import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.pojo.po.DictData; +import com.njcn.user.api.DeptFeignClient; +import com.njcn.user.pojo.dto.DeptDTO; +import com.njcn.web.utils.WebUtil; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 区域分类统计年表 服务实现类 + *

+ * + * @author rui.wu + * @since 2022-10-17 + */ +@Service +@RequiredArgsConstructor +public class RStatOrgYServiceImpl extends ServiceImpl implements RStatOrgYService { + + private final DeptFeignClient deptFeignClient; + private final DicDataFeignClient dicDataFeignClient; + private final RStatOrgYMapper rStatOrgYMapper; + private final RStatOrgQMapper rStatOrgQMapper; + private final RStatOrgMMapper rStatOrgMMapper; + private final RStatSubstationMMapper rStatSubstationMMapper; + private final RStatSubstationQMapper rStatSubstationQMapper; + private final RStatSubstationYMapper rStatSubstationYMapper; + private final MonitorClient monitorClient; + private final PmsGeneralDeviceInfoClient pmsGeneralDeviceInfoClient; + + @Override + public List getRStatHarmonicYAll(StatisticsBizBaseParam param) { + List deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData(); + //获取部门id集合 + List deptIds = deptDTOList.stream().map(DeptDTO::getId).collect(Collectors.toList()); + Map deptMap = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getId, Function.identity())); + + //获取主网id信息 + DictData mainnetData = dicDataFeignClient.getDicDataByCode(DicDataEnum.MAINNET_POINT.getCode()).getData(); + + //数据库查询 + List list = rStatOrgYMapper.selectList(new LambdaQueryWrapper() + .eq(RStatOrgY::getDataType, mainnetData.getId()) + .in(RStatOrgY::getOrgNo, deptIds) + .ge(StrUtil.isNotBlank(param.getStartTime()), RStatOrgY::getDataDate, param.getStartTime()) + .le(StrUtil.isNotBlank(param.getEndTime()), RStatOrgY::getDataDate, param.getEndTime())); + Map> collect = list.stream().collect(Collectors.groupingBy(RStatOrgY::getOrgNo)); + + List newList = new ArrayList<>(); + collect.forEach((key, value) -> { + if (deptMap.containsKey(key)) { + for (RStatOrgY rStatOrgY : value) { + DeptDTO deptDTO = deptMap.get(key); + RStatOrgVO rStatOrgVO = new RStatOrgVO(); + rStatOrgVO.setOrgName(deptDTO.getName()); + rStatOrgVO.setAverageOverDay(rStatOrgY.getAverageOverDay()); + rStatOrgVO.setEffectiveMeasurementAverage(rStatOrgY.getEffectiveMeasurementAverage()); + rStatOrgVO.setEffectiveMeasurementAccrued(rStatOrgY.getEffectiveMeasurementAccrued()); + rStatOrgVO.setOverLimitMeasurementAverage(rStatOrgY.getOverLimitMeasurementAverage()); + rStatOrgVO.setOverLimitMeasurementAccrued(rStatOrgY.getOverLimitMeasurementAccrued()); + DecimalFormat df = new DecimalFormat("###.00"); + Float harmonicMeasurementRatioAverage = Float.parseFloat( + df.format(rStatOrgY.getOverLimitMeasurementAverage() / (rStatOrgY.getEffectiveMeasurementAverage() * 1.0))); + rStatOrgVO.setHarmonicMeasurementRatioAverage(harmonicMeasurementRatioAverage); + Float harmonicMeasurementRatioAccrued = Float.parseFloat( + df.format(rStatOrgY.getOverLimitMeasurementAccrued() / (rStatOrgY.getEffectiveMeasurementAccrued() * 1.0))); + rStatOrgVO.setHarmonicMeasurementRatioAccrued(harmonicMeasurementRatioAccrued); + newList.add(rStatOrgVO); + } + } + }); + return newList; + } + + @Override + public List getRStatSubstationOrg(StatisticsBizBaseParam param) { + // 获取当前用户的部门的子部门信息 + List data = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData(); + List info = new ArrayList<>(); + if (CollectionUtil.isNotEmpty(data)) { + // 根据暂态指标枚举查询暂态指标 + List eventStatis = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + List temp = new ArrayList<>(); + // 过滤出部门id + List deptIds = data.stream().map(DeptDTO::getId).collect(Collectors.toList()); + StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class); + baseParam.setIds(deptIds); + //获取主网id信息 + DictData mainnetData = dicDataFeignClient.getDicDataByCode(DicDataEnum.MAINNET_POINT.getCode()).getData(); + + // 类型(1年 2季度 3月份 4日 + switch (param.getType().toString()) { + case BizParamConstant.STAT_BIZ_YEAR: + // 获取年区域暂态指标分类统计表 + temp = rStatOrgYMapper.getYearRStatHarmonicOrgInfo(baseParam, mainnetData.getId()); + break; + case BizParamConstant.STAT_BIZ_QUARTER: + // 获取季区域暂态指标分类统计表 + temp = rStatOrgQMapper.getQuarterRStatHarmonicOrgInfo(baseParam, mainnetData.getId()); + break; + case BizParamConstant.STAT_BIZ_MONTH: + // 获取月区域暂态指标分类统计表 + temp = rStatOrgMMapper.getMonthRStatHarmonicOrgInfo(baseParam, mainnetData.getId()); + break; + default: + break; + } + Map> map = temp + .stream().collect(Collectors.groupingBy(RStatSubstationOrgVO::getOrgNo)); + map.forEach((key, value) -> { + RStatSubstationOrg2VO vo = new RStatSubstationOrg2VO(); + vo.setOrgNo(value.get(0).getOrgNo()); + vo.setOrgName(value.get(0).getOrgName()); + vo.setDataDate(value.get(0).getDataDate()); + vo.setEffectiveMeasurementAverage(value.get(0).getEffectiveMeasurementAverage()); + vo.setEffectiveMeasurementAccrued(value.get(0).getEffectiveMeasurementAccrued()); + vo.setHarmonicMeasurementAverage(value.get(0).getHarmonicMeasurementAverage()); + vo.setHarmonicMeasurementAccrued(value.get(0).getHarmonicMeasurementAccrued()); + vo.setHarmonicMeasurementRatioAverage(value.get(0).getHarmonicMeasurementRatioAverage()); + vo.setHarmonicMeasurementRatioAccrued(value.get(0).getHarmonicMeasurementRatioAccrued()); + //遍历赋值 + for (RStatSubstationOrgVO orgVO : value) { + for (DictData eventStati : eventStatis) { + if (eventStati.getId().equals(orgVO.getHarmonicType())) { + if (eventStati.getCode().equals(RStatSubstationOrg2VO.FREQUENCY_DEV)) { + vo.setTAverage(orgVO.getOverLimitMeasurementAverage()); + vo.setTAccrued(orgVO.getOverLimitMeasurementAccrued()); + vo.setOAverage(orgVO.getOverLimitMeasurementRatioAverage()); + vo.setOAccrued(orgVO.getOverLimitMeasurementRatioAccrued()); + vo.setChainAverage(orgVO.getChainAverage()); + vo.setChainAccrued(orgVO.getChainAccrued()); + vo.setSameAverage(orgVO.getSameAverage()); + vo.setSameAccrued(orgVO.getSameAccrued()); + vo.setAverageOverDay(orgVO.getAverageOverDay()); + } + if (eventStati.getCode().equals(RStatSubstationOrg2VO.VOLTAGE_DEV)) { + vo.setTAverage1(orgVO.getOverLimitMeasurementAverage()); + vo.setTAccrued1(orgVO.getOverLimitMeasurementAccrued()); + vo.setOAverage1(orgVO.getOverLimitMeasurementRatioAverage()); + vo.setOAccrued1(orgVO.getOverLimitMeasurementRatioAccrued()); + vo.setChainAverage1(orgVO.getChainAverage()); + vo.setChainAccrued1(orgVO.getChainAccrued()); + vo.setSameAverage1(orgVO.getSameAverage()); + vo.setSameAccrued1(orgVO.getSameAccrued()); + vo.setAverageOverDay1(orgVO.getAverageOverDay()); + } + if (eventStati.getCode().equals(RStatSubstationOrg2VO.FLICKER)) { + vo.setTAverage2(orgVO.getOverLimitMeasurementAverage()); + vo.setTAccrued2(orgVO.getOverLimitMeasurementAccrued()); + vo.setOAverage2(orgVO.getOverLimitMeasurementRatioAverage()); + vo.setOAccrued2(orgVO.getOverLimitMeasurementRatioAccrued()); + vo.setChainAverage2(orgVO.getChainAverage()); + vo.setChainAccrued2(orgVO.getChainAccrued()); + vo.setSameAverage2(orgVO.getSameAverage()); + vo.setSameAccrued2(orgVO.getSameAccrued()); + vo.setAverageOverDay2(orgVO.getAverageOverDay()); + } + if (eventStati.getCode().equals(RStatSubstationOrg2VO.HARMONIC_VOLTAGE)) { + vo.setTAverage3(orgVO.getOverLimitMeasurementAverage()); + vo.setTAccrued3(orgVO.getOverLimitMeasurementAccrued()); + vo.setOAverage3(orgVO.getOverLimitMeasurementRatioAverage()); + vo.setOAccrued3(orgVO.getOverLimitMeasurementRatioAccrued()); + vo.setChainAverage3(orgVO.getChainAverage()); + vo.setChainAccrued3(orgVO.getChainAccrued()); + vo.setSameAverage3(orgVO.getSameAverage()); + vo.setSameAccrued3(orgVO.getSameAccrued()); + vo.setAverageOverDay3(orgVO.getAverageOverDay()); + } + if (eventStati.getCode().equals(RStatSubstationOrg2VO.HARMONIC_CURRENT)) { + vo.setTAverage4(orgVO.getOverLimitMeasurementAverage()); + vo.setTAccrued4(orgVO.getOverLimitMeasurementAccrued()); + vo.setOAverage4(orgVO.getOverLimitMeasurementRatioAverage()); + vo.setOAccrued4(orgVO.getOverLimitMeasurementRatioAccrued()); + vo.setChainAverage4(orgVO.getChainAverage()); + vo.setChainAccrued4(orgVO.getChainAccrued()); + vo.setSameAverage4(orgVO.getSameAverage()); + vo.setSameAccrued4(orgVO.getSameAccrued()); + vo.setAverageOverDay4(orgVO.getAverageOverDay()); + } + if (eventStati.getCode().equals(RStatSubstationOrg2VO.INTERHARMONIC_VOLTAGE)) { + vo.setTAverage5(orgVO.getOverLimitMeasurementAverage()); + vo.setTAccrued5(orgVO.getOverLimitMeasurementAccrued()); + vo.setOAverage5(orgVO.getOverLimitMeasurementRatioAverage()); + vo.setOAccrued5(orgVO.getOverLimitMeasurementRatioAccrued()); + vo.setChainAverage5(orgVO.getChainAverage()); + vo.setChainAccrued5(orgVO.getChainAccrued()); + vo.setSameAverage5(orgVO.getSameAverage()); + vo.setSameAccrued5(orgVO.getSameAccrued()); + vo.setAverageOverDay5(orgVO.getAverageOverDay()); + } + if (eventStati.getCode().equals(RStatSubstationOrg2VO.PHASE_VOLTAGE)) { + vo.setTAverage6(orgVO.getOverLimitMeasurementAverage()); + vo.setTAccrued6(orgVO.getOverLimitMeasurementAccrued()); + vo.setOAverage6(orgVO.getOverLimitMeasurementRatioAverage()); + vo.setOAccrued6(orgVO.getOverLimitMeasurementRatioAccrued()); + vo.setChainAverage6(orgVO.getChainAverage()); + vo.setChainAccrued6(orgVO.getChainAccrued()); + vo.setSameAverage6(orgVO.getSameAverage()); + vo.setSameAccrued6(orgVO.getSameAccrued()); + vo.setAverageOverDay6(orgVO.getAverageOverDay()); + } + if (eventStati.getCode().equals(RStatSubstationOrg2VO.NEG_CURRENT)) { + vo.setTAverage7(orgVO.getOverLimitMeasurementAverage()); + vo.setTAccrued7(orgVO.getOverLimitMeasurementAccrued()); + vo.setOAverage7(orgVO.getOverLimitMeasurementRatioAverage()); + vo.setOAccrued7(orgVO.getOverLimitMeasurementRatioAccrued()); + vo.setChainAverage7(orgVO.getChainAverage()); + vo.setChainAccrued7(orgVO.getChainAccrued()); + vo.setSameAverage7(orgVO.getSameAverage()); + vo.setSameAccrued7(orgVO.getSameAccrued()); + vo.setAverageOverDay7(orgVO.getAverageOverDay()); + } + if (eventStati.getCode().equals(RStatSubstationOrg2VO.TOTAL_INDICATOR)) { + vo.setTAverage8(orgVO.getOverLimitMeasurementAverage()); + vo.setTAccrued8(orgVO.getOverLimitMeasurementAccrued()); + vo.setOAverage8(orgVO.getOverLimitMeasurementRatioAverage()); + vo.setOAccrued8(orgVO.getOverLimitMeasurementRatioAccrued()); + vo.setChainAverage8(orgVO.getChainAverage()); + vo.setChainAccrued8(orgVO.getChainAccrued()); + vo.setSameAverage8(orgVO.getSameAverage()); + vo.setSameAccrued8(orgVO.getSameAccrued()); + vo.setAverageOverDay8(orgVO.getAverageOverDay()); + } + + } + + } + } + info.add(vo); + }); + // 匹配单位名称 + for (DeptDTO dto : data) { + for (RStatSubstationOrg2VO vo : info) { + if (dto.getId().equals(vo.getOrgNo())) { + vo.setOrgName(dto.getName()); + } + } + } + } + return info; + } + + @Override + public List getRStatSubstation(StatSubstationBizBaseParam param) { + PmsDeviceInfoParam pms = new PmsDeviceInfoParam(); + pms.setDeptIndex(param.getId()); + pms.setStatisticalType(new SimpleDTO()); + List data = pmsGeneralDeviceInfoClient.getPmsDeviceInfoWithInOrg(pms).getData(); + //生成变电站id集合 + List pAddIds = new ArrayList<>(); + data.stream().forEach(e -> pAddIds.addAll(e.getPowerrIdList())); + List rSubstationIconVO = new ArrayList<>(); + //根据监测点id获取变电站信息 + PmsMonitorParam dto = new PmsMonitorParam(); + List mAddIds = new ArrayList<>(); + data.stream().forEach(e -> mAddIds.addAll(e.getMonitorIdList())); + dto.setMonitorIds(mAddIds); + dto.setPowerrIds(param.getIds()); + //根据变电站分组 + List pmsMonitorDTOS = monitorClient.getMonitorInfoListByCond(dto).getData(); + Map pmsMonitorDTOMap = pmsMonitorDTOS.stream() + .collect(Collectors.toMap(PmsMonitorDTO::getPowerrId, Function.identity())); + + if (CollUtil.isNotEmpty(pmsMonitorDTOS)) { + //获取最新过滤的变电站id + List ids = pmsMonitorDTOS.stream().map(PmsMonitorDTO::getPowerrId).collect(Collectors.toList()); + //根据id进行筛选 + StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class); + baseParam.setIds(ids); + String string = param.getType().toString(); + switch (string) { + //查询变电站稳态指标平均超标天数-年数据 + case BizParamConstant.STAT_BIZ_YEAR: + rSubstationIconVO = rStatSubstationYMapper.getStatSubstationIcon2Y(baseParam); + break; + //查询变电站稳态指标平均超标天数-季数据 + case BizParamConstant.STAT_BIZ_QUARTER: + rSubstationIconVO = rStatSubstationQMapper.getStatSubstationIcon2Q(baseParam); + break; + //查询变电站稳态指标平均超标天数-月数据 + case BizParamConstant.STAT_BIZ_MONTH: + rSubstationIconVO = rStatSubstationMMapper.getStatSubstationIcon2M(baseParam); + break; + default: + break; + } + List rSubstationInfoVOS = BeanUtil.copyToList(rSubstationIconVO, RSubstationIcon2VO.RSubstationInfoVO.class); + if (CollectionUtil.isNotEmpty(rSubstationInfoVOS)) { + Map detailVOMap = rSubstationInfoVOS.stream() + .collect(Collectors.toMap(RSubstationIcon2VO.RSubstationInfoVO::getSubstationId, Function.identity())); + detailVOMap.forEach((Key, value) -> { + if (pmsMonitorDTOMap.containsKey(Key)) { + PmsMonitorDTO dto1 = pmsMonitorDTOMap.get(Key); + value.setCityName(dto1.getOrgName()); + value.setSubstationName(dto1.getPowerrName()); + } + }); + } + return rSubstationInfoVOS; + } + return null; + } + + @Override + public List getRStatOrgIndex(StatisticsBizBaseParam param) { + // 获取当前用户的部门的子部门信息 + List data = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData(); + List info = new ArrayList<>(); + //获取主网id信息 + DictData mainnetData = dicDataFeignClient.getDicDataByCode(DicDataEnum.MAINNET_POINT.getCode()).getData(); + + if (CollectionUtil.isNotEmpty(data)) { + // 过滤出部门id + List deptIds = data.stream().map(DeptDTO::getId).collect(Collectors.toList()); + StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class); + baseParam.setIds(deptIds); + // 类型(1年 2季度 3月份 4日 + switch (param.getType().toString()) { + case BizParamConstant.STAT_BIZ_YEAR: + // 获取年区域稳态指标合格率统计表 + info = rStatOrgYMapper.getYearRStatOrgIndex(baseParam, mainnetData.getId()); + break; + case BizParamConstant.STAT_BIZ_QUARTER: + // 获取季区域稳态指标合格率统计表 + info = rStatOrgQMapper.getQuarterRStatOrgIndex(baseParam, mainnetData.getId()); + break; + case BizParamConstant.STAT_BIZ_MONTH: + // 获取月区域稳态指标合格率统计表 + info = rStatOrgMMapper.getMonthRStatOrgIndex(baseParam, mainnetData.getId()); + break; + default: + break; + } + } + //匹配名称 + for (DeptDTO dto : data) { + for (RStatOrgIndexVO vo : info) { + if (dto.getId().equals(vo.getOrgNo())) { + vo.setOrgNo(dto.getId()); + vo.setOrgName(dto.getName()); + } + } + } + return info; + } + + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatSubstationMServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatSubstationMServiceImpl.java new file mode 100644 index 000000000..d6de4f75a --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatSubstationMServiceImpl.java @@ -0,0 +1,130 @@ +package com.njcn.harmonic.service.majornetwork.impl; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import com.njcn.common.pojo.constant.BizParamConstant; +import com.njcn.common.pojo.dto.SimpleDTO; +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient; +import com.njcn.device.pms.api.StatationStatClient; +import com.njcn.device.pms.pojo.dto.PmsGeneralDeviceDTO; +import com.njcn.device.pms.pojo.dto.PmsStatationStatInfoDTO; +import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam; +import com.njcn.device.pms.pojo.param.PmsStatationStatInfoParam; +import com.njcn.harmonic.mapper.majornetwork.RStatSubstationQMapper; +import com.njcn.harmonic.mapper.majornetwork.RStatSubstationYMapper; +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatSubstationM; +import com.njcn.harmonic.mapper.majornetwork.RStatSubstationMMapper; +import com.njcn.harmonic.pojo.vo.RSubstationIcon2VO; +import com.njcn.harmonic.pojo.vo.RSubstationIconVO; +import com.njcn.harmonic.service.majornetwork.RStatSubstationMService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + *

+ * 服务实现类 + *

+ * + * @author rui.wu + * @since 2022-10-18 + */ +@Service +@RequiredArgsConstructor +public class RStatSubstationMServiceImpl extends ServiceImpl implements RStatSubstationMService { + + private final RStatSubstationMMapper rStatSubstationMMapper; + private final RStatSubstationQMapper rStatSubstationQMapper; + private final RStatSubstationYMapper rStatSubstationYMapper; + private final StatationStatClient statationStatClient; + private final PmsGeneralDeviceInfoClient pmsGeneralDeviceInfoClient; + + @Override + public RSubstationIconVO getStatSubstationIcon(StatisticsBizBaseParam param) { + RSubstationIconVO rSubstationIconVO = new RSubstationIconVO(); + StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class); + //根据部门获取变电站信息 +// baseParam.setIds(this.powerrIdList(param.getId())); + String string = param.getType().toString(); + switch (string) { + //查询变电站稳态指标超标分布(按超标天数)-年数据 + case BizParamConstant.STAT_BIZ_YEAR: + rSubstationIconVO = rStatSubstationYMapper.getStatSubstationIconY(baseParam); + break; + //查询变电站稳态指标超标分布(按超标天数)-季数据 + case BizParamConstant.STAT_BIZ_QUARTER: + rSubstationIconVO = rStatSubstationQMapper.getStatSubstationIconQ(baseParam); + break; + //查询变电站稳态指标超标分布(按超标天数)-月数据 + case BizParamConstant.STAT_BIZ_MONTH: + rSubstationIconVO = rStatSubstationMMapper.getStatSubstationIconM(baseParam); + break; + default: + break; + } + return rSubstationIconVO; + } + + @Override + public List getStatSubstationIcon2(StatisticsBizBaseParam param) { + //生成变电站id集合 + List rSubstationIconVO = new ArrayList<>(); + StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class); + //根据id进行筛选 +// baseParam.setIds(this.powerrIdList(param.getId())); + String string = param.getType().toString(); + switch (string) { + //查询变电站稳态指标平均超标天数-年数据 + case BizParamConstant.STAT_BIZ_YEAR: + rSubstationIconVO = rStatSubstationYMapper.getStatSubstationIcon2Y(baseParam); + break; + //查询变电站稳态指标平均超标天数-季数据 + case BizParamConstant.STAT_BIZ_QUARTER: + rSubstationIconVO = rStatSubstationQMapper.getStatSubstationIcon2Q(baseParam); + break; + //查询变电站稳态指标平均超标天数-月数据 + case BizParamConstant.STAT_BIZ_MONTH: + rSubstationIconVO = rStatSubstationMMapper.getStatSubstationIcon2M(baseParam); + break; + default: + break; + } + + //获取变电站名称属性替换 + if (CollUtil.isNotEmpty(rSubstationIconVO)) { + List ids = rSubstationIconVO.stream().map(RSubstationIcon2VO::getSubstationId).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(ids)) { + PmsStatationStatInfoParam pmsParam = new PmsStatationStatInfoParam(); + pmsParam.setPowerIds(ids); + List data1 = statationStatClient.getStatationStatInfo(pmsParam).getData(); + if (CollUtil.isNotEmpty(data1)) { + for (PmsStatationStatInfoDTO dto : data1) { + for (RSubstationIcon2VO vo : rSubstationIconVO) { + if (dto.getPowerId().equals(vo.getSubstationId())) { + vo.setSubstationName(dto.getPowerName()); + } + } + } + } + } + } + return rSubstationIconVO; + } + + private List powerrIdList(String id) { + //获取部门下面监测点信息 + PmsDeviceInfoParam pms = new PmsDeviceInfoParam(); + pms.setDeptIndex(id); + pms.setStatisticalType(new SimpleDTO()); + List data = pmsGeneralDeviceInfoClient.getPmsDeviceInfoWithInOrg(pms).getData(); + List addids = new ArrayList<>(); + data.stream().forEach(e -> addids.addAll(e.getPowerrIdList())); + return addids; + } +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatSubstationVoltageMServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatSubstationVoltageMServiceImpl.java new file mode 100644 index 000000000..fea309d27 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatSubstationVoltageMServiceImpl.java @@ -0,0 +1,56 @@ +package com.njcn.harmonic.service.majornetwork.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.njcn.common.pojo.dto.SimpleDTO; +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient; +import com.njcn.device.pms.pojo.dto.PmsGeneralDeviceDTO; +import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam; +import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; +import com.njcn.harmonic.pojo.po.RStatSubstationVoltageM; +import com.njcn.harmonic.mapper.majornetwork.RStatSubstationVoltageMMapper; +import com.njcn.harmonic.pojo.vo.RVoltageIconVO; +import com.njcn.harmonic.service.majornetwork.RStatSubstationVoltageMService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.user.api.DeptFeignClient; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author rui.wu + * @since 2022-10-18 + */ +@Service +@RequiredArgsConstructor +public class RStatSubstationVoltageMServiceImpl extends ServiceImpl implements RStatSubstationVoltageMService { + + private final DeptFeignClient deptFeignClient; + private final RStatSubstationVoltageMMapper rStatSubstationVoltageMMapper; + private final PmsGeneralDeviceInfoClient pmsGeneralDeviceInfoClient; + + @Override + public List getStatSubstationIcon(StatisticsBizBaseParam param) { + //获取部门id集合 + StatSubstationBizBaseParam baseParam= BeanUtil.copyProperties(param,StatSubstationBizBaseParam.class); +// baseParam.setIds(this.powerrIdList(param.getId())); + return rStatSubstationVoltageMMapper.getStatSubstationIcon(baseParam); + } + //根据部门获取监测点id信息 + private List powerrIdList(String id){ + //获取部门下面监测点信息 + PmsDeviceInfoParam pms=new PmsDeviceInfoParam(); + pms.setDeptIndex(id); + pms.setStatisticalType(new SimpleDTO()); + List data = pmsGeneralDeviceInfoClient.getPmsDeviceInfoWithInOrg(pms).getData(); + List addids=new ArrayList<>(); + data.stream().forEach(e-> addids.addAll(e.getPowerrIdList())); + return addids; + } +}