diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/dto/PwPmsMonitorDTO.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/dto/PwPmsMonitorDTO.java index 81c33f159..dd73c36f4 100644 --- a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/dto/PwPmsMonitorDTO.java +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/dto/PwPmsMonitorDTO.java @@ -123,13 +123,13 @@ public class PwPmsMonitorDTO implements Serializable { /** * 关联的监测终端编号(外键) */ - @ApiModelProperty(name = "terminalId", value = "更新时间") + @ApiModelProperty(name = "terminalId", value = "关联的监测终端编号") private String terminalId; /** * 监测终端接线方式(字典) */ - @ApiModelProperty(name = "terminalWiringMethod", value = "更新时间") + @ApiModelProperty(name = "terminalWiringMethod", value = "监测终端接线方式") private String terminalWiringMethod; } diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/vo/PVCapacity.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/vo/PVCapacity.java new file mode 100644 index 000000000..a02c24dad --- /dev/null +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/vo/PVCapacity.java @@ -0,0 +1,55 @@ +package com.njcn.device.pms.pojo.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author wr + * @description + * @date 2023/5/8 14:58 + */ +@Data +public class PVCapacity implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(name = "sumCount", value = "光伏总容量") + private Float sumCount; + + @ApiModelProperty(name = "sumOrgCount", value = "已安装容量") + private Float sumOrgCount; + + @ApiModelProperty(name = "sumOrgTheYear", value = "当年接入容量") + private Float sumOrgTheYear; + + @Data + public static class PVCapacityCount{ + @ApiModelProperty(name = "num1", value = "0-25") + private Integer num1; + + @ApiModelProperty(name = "num2;", value = "25-50") + private Integer num2; + + @ApiModelProperty(name = "num3", value = "50-75") + private Integer num3; + + @ApiModelProperty(name = "num4", value = "75-100") + private Integer num4; + + @ApiModelProperty(name = "num5", value = ">100") + private Integer num5; + } + @Data + public static class Absorptive{ + @ApiModelProperty(name = "org", value = "部门") + private String org; + + @ApiModelProperty(name = "capacity;", value = "已安装容量") + private Double capacity; + + @ApiModelProperty(name = "consumption", value = "可安装容量") + private Double consumption; + + } +} diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/distribution/PwMonitorController.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/distribution/PwMonitorController.java index c2347cad8..92fab8cb2 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/distribution/PwMonitorController.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/distribution/PwMonitorController.java @@ -4,18 +4,15 @@ import cn.hutool.core.collection.CollectionUtil; 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.device.pms.pojo.dto.PmsGeneralDeviceDTO; import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO; -import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam; import com.njcn.device.pms.pojo.param.PwPmsMonitorParam; -import com.njcn.device.pms.pojo.vo.DoubleUserVO; import com.njcn.device.pms.service.distribution.IPwMonitorService; import com.njcn.web.controller.BaseController; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -100,6 +97,15 @@ public class PwMonitorController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, monitorList, methodDescribe); } } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getPVCompositeIndicators") + @ApiOperation("冀北分布式光伏获取综合指标") + public HttpResult>> getPVCompositeIndicators(@RequestBody StatisticsBizBaseParam param) { + String methodDescribe = getMethodDescribe("getPVCompositeIndicators"); + List> compositeIndicators = iPwMonitorService.getCompositeIndicators(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, compositeIndicators, methodDescribe); + } + } diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsPowerDistributionareaController.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsPowerDistributionareaController.java index c4d1e1d33..08cc4904c 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsPowerDistributionareaController.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsPowerDistributionareaController.java @@ -6,14 +6,14 @@ import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.constant.OperateType; import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.param.StatisticsBizBaseParam; import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.HttpResultUtil; import com.njcn.common.utils.LogUtil; import com.njcn.device.pms.annotation.TerminalOperationLogDesc; -import com.njcn.device.pms.pojo.param.PmsBaseParam; import com.njcn.device.pms.pojo.param.PowerDistributionareaParam; import com.njcn.device.pms.pojo.po.PowerDistributionarea; -import com.njcn.device.pms.pojo.vo.PowerDistributionareaVO; +import com.njcn.device.pms.pojo.vo.PVCapacity; import com.njcn.device.pms.service.majornetwork.IPowerDistributionareaService; import com.njcn.web.pojo.param.BaseParam; import io.swagger.annotations.Api; @@ -143,5 +143,30 @@ public class PmsPowerDistributionareaController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); } } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getPVCapacity") + @ApiOperation("冀北分布式光伏获取分布式光伏容量") + public HttpResult getPVCapacity(@RequestBody StatisticsBizBaseParam param) { + String methodDescribe = getMethodDescribe("getPVCapacity"); + PVCapacity pvCapacity = iPowerDistributionareaService.getPVCapacity(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, pvCapacity, methodDescribe); + } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getPVPermeability") + @ApiOperation("冀北分布式光伏获取分布式光伏渗透率") + public HttpResult getPVPermeability(@RequestBody StatisticsBizBaseParam param) { + String methodDescribe = getMethodDescribe("getPVPermeability"); + PVCapacity.PVCapacityCount pvCapacityCount = iPowerDistributionareaService.getPVPermeability(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, pvCapacityCount, methodDescribe); + } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getPVAbsorptiveCapacity") + @ApiOperation("冀北分布式光伏获取消纳能力") + public HttpResult> getPVAbsorptiveCapacity(@RequestBody StatisticsBizBaseParam param) { + String methodDescribe = getMethodDescribe("getPVAbsorptiveCapacity"); + List absorptiveCapacity = iPowerDistributionareaService.getAbsorptiveCapacity(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, absorptiveCapacity, methodDescribe); + } } diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/SubstationRelationController.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/SubstationRelationController.java index 1b6fb704b..c72e7dd00 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/SubstationRelationController.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/SubstationRelationController.java @@ -45,7 +45,7 @@ public class SubstationRelationController extends BaseController { @OperateInfo(info = LogEnum.BUSINESS_COMMON) @PostMapping("/saveSubstationRelation") @ApiOperation("配置变电站拓扑图") - @ApiImplicitParam(name = "saveSubstationRelation", value = "配置变电站拓扑图", required = true) + @ApiImplicitParam(name = "param", value = "配置变电站拓扑图", required = true) public HttpResult saveSubstationRelation(@RequestBody SubstationRelation param) { String methodDescribe = getMethodDescribe("saveSubstationRelation"); Boolean result = substationRelationService.saveSubstationRelation(param); diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/PowerDistributionareaMapper.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/PowerDistributionareaMapper.java index 74a252075..92daa013e 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/PowerDistributionareaMapper.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/PowerDistributionareaMapper.java @@ -1,14 +1,13 @@ package com.njcn.device.pms.mapper.majornetwork; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.njcn.device.pms.pojo.po.GeneratrixWire; import com.njcn.device.pms.pojo.po.PowerDistributionarea; -import com.njcn.device.pms.pojo.vo.PowerDistributionareaVO; +import com.njcn.device.pms.pojo.vo.PVCapacity; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** *

* Mapper 台区 @@ -20,5 +19,24 @@ import org.apache.ibatis.annotations.Param; public interface PowerDistributionareaMapper extends BaseMapper { + /** + * 冀北分布式光伏获取分布式光伏容量 + * @param orgId + * @return + */ + PVCapacity selectPVCapacity(@Param("orgIds") List orgId); + /** + * 冀北分布式光伏获取分布式光伏渗透率 + * @param deptCode + * @return + */ + PVCapacity.PVCapacityCount selectPPVPermeability(@Param("orgIds")List deptCode); + + /** + * 冀北分布式光伏获取消纳能力 + * @param deptCode + * @return + */ + List selectAbsorptiveCapacity(@Param("orgIds")List deptCode); } diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/PowerDistributionareaMapper.xml b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/PowerDistributionareaMapper.xml index 4ae8d031d..4387ce575 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/PowerDistributionareaMapper.xml +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/PowerDistributionareaMapper.xml @@ -3,6 +3,63 @@ + + + diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/distribution/IPwMonitorService.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/distribution/IPwMonitorService.java index dd74648e1..0f638c177 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/distribution/IPwMonitorService.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/distribution/IPwMonitorService.java @@ -1,5 +1,6 @@ package com.njcn.device.pms.service.distribution; +import com.njcn.common.pojo.param.StatisticsBizBaseParam; import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO; import com.njcn.device.pms.pojo.param.PwPmsMonitorParam; @@ -33,4 +34,11 @@ public interface IPwMonitorService { * @return */ List getPwSubsetMonitorList(PwPmsMonitorParam pwPmsMonitorParam); + + /** + * 冀北分布式光伏获取综合指标 + * @return + */ + List> getCompositeIndicators(StatisticsBizBaseParam param); + } diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/distribution/impl/IPwMonitorServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/distribution/impl/IPwMonitorServiceImpl.java index 19933de80..88f4429dd 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/distribution/impl/IPwMonitorServiceImpl.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/distribution/impl/IPwMonitorServiceImpl.java @@ -1,21 +1,25 @@ package com.njcn.device.pms.service.distribution.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; +import com.njcn.common.pojo.param.StatisticsBizBaseParam; import com.njcn.device.pms.mapper.distribution.PwMonitorMapper; import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO; import com.njcn.device.pms.pojo.param.PwPmsMonitorParam; import com.njcn.device.pms.service.distribution.IPwMonitorService; +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.user.pojo.po.Dept; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; +import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -35,6 +39,8 @@ public class IPwMonitorServiceImpl implements IPwMonitorService { private final PwMonitorMapper pwMonitorMapper; + private final DicDataFeignClient dicDataFeignClient; + /** * 获取配网所有监测点信息 * @@ -130,5 +136,46 @@ public class IPwMonitorServiceImpl implements IPwMonitorService { } return pwPmsMonitorDTOS; } + + @Override + public List> getCompositeIndicators(StatisticsBizBaseParam param) { + List> info=new ArrayList<>(2); + List monitorType = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData(); + Map dictDataMap = monitorType.stream() + .collect(Collectors.toMap(DictData::getId, Function.identity())); + PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam(); + pwPmsMonitorParam.setOrgId(param.getId()); //单位id + List pwMonitorList = this.getPwMonitorList(pwPmsMonitorParam); + Map> collect = pwMonitorList.stream().collect(Collectors.groupingBy(PwPmsMonitorDTO::getMonitorSort)); + //初始化对象 + List monitorList=new ArrayList<>(3); + monitorList.add(0); + monitorList.add(0); + monitorList.add(0); + List terminalList= BeanUtil.copyToList(monitorList,Integer.class); + collect.forEach((key,value)->{ + if (dictDataMap.containsKey(key)) { + DictData dictData = dictDataMap.get(key); + //一类监测点 + if(DicDataEnum.ONE_LINE.getCode().equals(dictData.getCode())){ + monitorList.set(0,value.size()); + terminalList.set(0,value.stream().map(PwPmsMonitorDTO::getTerminalId).distinct().collect(Collectors.toList()).size()); + } + //二类监测点 + if(DicDataEnum.TWO_LINE.getCode().equals(dictData.getCode())){ + monitorList.set(1,value.size()); + terminalList.set(1,value.stream().map(PwPmsMonitorDTO::getTerminalId).distinct().collect(Collectors.toList()).size()); + } + //三类监测点 + if(DicDataEnum.THREE_LINE.getCode().equals(dictData.getCode())){ + monitorList.set(2,value.size()); + terminalList.set(2,value.stream().map(PwPmsMonitorDTO::getTerminalId).distinct().collect(Collectors.toList()).size()); + } + } + }); + info.add(monitorList); + info.add(terminalList); + return info; + } } diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IPowerDistributionareaService.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IPowerDistributionareaService.java index 59f406e08..a5e35815a 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IPowerDistributionareaService.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IPowerDistributionareaService.java @@ -2,13 +2,10 @@ package com.njcn.device.pms.service.majornetwork; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; -import com.njcn.device.pms.pojo.param.PmsBaseParam; +import com.njcn.common.pojo.param.StatisticsBizBaseParam; import com.njcn.device.pms.pojo.param.PowerDistributionareaParam; import com.njcn.device.pms.pojo.po.PowerDistributionarea; -import com.njcn.device.pms.pojo.vo.PowerDistributionareaVO; -import com.njcn.system.pojo.param.EventTemplateParam; -import com.njcn.system.pojo.po.EventTemplate; -import com.njcn.system.pojo.vo.EventTemplateVO; +import com.njcn.device.pms.pojo.vo.PVCapacity; import com.njcn.web.pojo.param.BaseParam; import java.util.List; @@ -58,4 +55,25 @@ public interface IPowerDistributionareaService extends IService ids); + + /** + * 冀北分布式光伏获取分布式光伏容量 + * @param param + * @return + */ + PVCapacity getPVCapacity(StatisticsBizBaseParam param); + + /** + * 冀北分布式光伏获取分布式光伏渗透率 + * @param param + * @return + */ + PVCapacity.PVCapacityCount getPVPermeability(StatisticsBizBaseParam param); + + /** + * 冀北分布式光伏获取消纳能力 + * @param param + * @return + */ + List getAbsorptiveCapacity(StatisticsBizBaseParam param); } diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/PowerDistributionareaServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/PowerDistributionareaServiceImpl.java index 3cfbe7e4c..381e9ddc5 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/PowerDistributionareaServiceImpl.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/PowerDistributionareaServiceImpl.java @@ -1,38 +1,40 @@ package com.njcn.device.pms.service.majornetwork.impl; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.common.pojo.enums.common.DataStateEnum; import com.njcn.common.pojo.exception.BusinessException; -import com.njcn.db.bo.BaseEntity; +import com.njcn.common.pojo.param.StatisticsBizBaseParam; import com.njcn.device.pms.enums.PmsDeviceResponseEnum; import com.njcn.device.pms.mapper.majornetwork.PowerDistributionareaMapper; -import com.njcn.device.pms.pojo.param.PmsBaseParam; import com.njcn.device.pms.pojo.param.PowerDistributionareaParam; -import com.njcn.device.pms.pojo.po.PowerClient; import com.njcn.device.pms.pojo.po.PowerDistributionarea; -import com.njcn.device.pms.pojo.po.PowerGenerationUser; import com.njcn.device.pms.pojo.po.StatationStat; -import com.njcn.device.pms.pojo.vo.PowerDistributionareaVO; +import com.njcn.device.pms.pojo.vo.PVCapacity; import com.njcn.device.pms.service.majornetwork.IDistributionMonitorService; -import com.njcn.device.pms.service.majornetwork.IGeneratrixWireService; import com.njcn.device.pms.service.majornetwork.IPowerDistributionareaService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.device.pms.service.majornetwork.IStatationStatService; -import com.njcn.system.api.DicDataFeignClient; +import com.njcn.event.pojo.vo.DeptLevelVO; +import com.njcn.event.utils.DeptUtil; import com.njcn.user.api.DeptFeignClient; +import com.njcn.user.pojo.dto.DeptDTO; import com.njcn.user.pojo.po.Dept; import com.njcn.web.factory.PageFactory; import com.njcn.web.pojo.param.BaseParam; +import com.njcn.web.utils.WebUtil; import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** *

@@ -163,6 +165,47 @@ public class PowerDistributionareaServiceImpl extends ServiceImpl data = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData(); + List deptCode = data.stream().map(DeptDTO::getCode).collect(Collectors.toList()); + return this.baseMapper.selectPVCapacity(deptCode); + } + + @Override + public PVCapacity.PVCapacityCount getPVPermeability(StatisticsBizBaseParam param) { + List data = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData(); + List deptCode = data.stream().map(DeptDTO::getCode).collect(Collectors.toList()); + return this.baseMapper.selectPPVPermeability(deptCode); + } + + @Override + public List getAbsorptiveCapacity(StatisticsBizBaseParam param) { + List info=new ArrayList<>(); + List data = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData(); + List deptCode = data.stream().map(DeptDTO::getCode).collect(Collectors.toList()); + //获取所有的数据信息 + List list= this.baseMapper.selectAbsorptiveCapacity(deptCode); + List deptLevelVOList = DeptUtil.getDeptLevelVOList(data, param.getId()); + PVCapacity.Absorptive absorptive; + for (DeptLevelVO deptLevelVO : deptLevelVOList) { + absorptive=new PVCapacity.Absorptive(); + absorptive.setOrg(deptLevelVO.getName()); + if(CollUtil.isNotEmpty(list)){ + List subsetDept= deptLevelVO.getDeptList().stream().map(DeptLevelVO::getCode).collect(Collectors.toList()); + List collect = list.stream().filter(x -> x.getOrg().equals(deptLevelVO.getCode()) || + subsetDept.contains(x.getOrg())).collect(Collectors.toList()); + absorptive.setCapacity(NumberUtil.round(collect.stream().mapToDouble(PVCapacity.Absorptive::getCapacity).sum(),2).doubleValue()); + absorptive.setConsumption(NumberUtil.round(collect.stream().mapToDouble(PVCapacity.Absorptive::getConsumption).sum(),2).doubleValue()); + }else{ + absorptive.setCapacity(0.0); + absorptive.setConsumption(0.0); + } + info.add(absorptive); + } + return info; + } + /** * 名称重复校验 */ diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/PollutionLineDTO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/PollutionLineDTO.java index a8ce0e9e6..940db75b1 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/PollutionLineDTO.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/PollutionLineDTO.java @@ -35,4 +35,11 @@ public class PollutionLineDTO { @ApiModelProperty("数据") private Double data = -1.0; + + @Data + public static class PVPollution extends PollutionLineDTO{ + @ApiModelProperty("变电站电压等级") + private String powerVoltageLevel; + } + } diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/TransientServiceImpl.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/TransientServiceImpl.java index d714cc0cd..808347c74 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/TransientServiceImpl.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/TransientServiceImpl.java @@ -299,6 +299,9 @@ public class TransientServiceImpl implements TransientService { } // 获取按终端分类的监测点索引集合 List lineList = generalDeviceDTOList.stream().flatMap(dto -> dto.getLineIndexes().stream()).collect(Collectors.toList()); + if(CollUtil.isEmpty(lineList)){ + return new Page<>(); + } List lineInfoVOList = lineFeignClient.getBaseLineAreaInfo(lineList).getData(); List filteredLines = lineInfoVOList.stream().filter(item -> filterSearchValue(item, transientParam.getSearchValue())).collect(Collectors.toList()); List lines = filteredLines.stream().map(AreaLineInfoVO::getLineId).collect(Collectors.toList()); diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/PVOverviewParam.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/PVOverviewParam.java new file mode 100644 index 000000000..aad75120d --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/PVOverviewParam.java @@ -0,0 +1,20 @@ +package com.njcn.harmonic.pojo.param; + +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 冀北自定义条数 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class PVOverviewParam extends StatisticsBizBaseParam { + + @ApiModelProperty(name = "sum", value = "自定义条数") + private Integer sum; + + @ApiModelProperty(name = "steadyStatis", value = "稳态指标类型") + private String steadyStatis; +} diff --git a/pqs-harmonic/harmonic-boot/pom.xml b/pqs-harmonic/harmonic-boot/pom.xml index 50cfdd39d..f363b0aa1 100644 --- a/pqs-harmonic/harmonic-boot/pom.xml +++ b/pqs-harmonic/harmonic-boot/pom.xml @@ -27,20 +27,20 @@ com.njcn common-web ${project.version} - - - org.apache.logging.log4j - log4j-to-slf4j - - - org.slf4j - jul-to-slf4j - - - ch.qos.logback - logback-classic - - + + + + + + + + + + + + + + com.njcn diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/PVOverviewController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/PVOverviewController.java new file mode 100644 index 000000000..9077b697d --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/PVOverviewController.java @@ -0,0 +1,56 @@ +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.device.pq.pojo.dto.PollutionLineDTO; +import com.njcn.harmonic.pojo.param.PVOverviewParam; +import com.njcn.harmonic.service.majornetwork.PVOverviewService; +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; + +/** + * @author wr + * @description + * @date 2023/5/10 9:25 + */ +@RestController +@RequiredArgsConstructor +@Api(tags = "冀北分布式光伏-主网监测点") +@RequestMapping("/JbOverview") +public class PVOverviewController extends BaseController { + + private final PVOverviewService pvOverviewService; + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getPVSynthesisCount") + @ApiOperation("冀北分布式光伏获取综合统计") + public HttpResult> getPVSynthesisCount(@RequestBody StatisticsBizBaseParam param) { + String methodDescribe = getMethodDescribe("getPVSynthesisCount"); + List pvSynthesisCount = pvOverviewService.getPVSynthesisCount(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, pvSynthesisCount, methodDescribe); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getPVPollution") + @ApiOperation("冀北分布式光伏获取污染指数统计") + public HttpResult> getPVPollution(@RequestBody PVOverviewParam param) { + String methodDescribe = getMethodDescribe("getPVPollution"); + List pvPollution = pvOverviewService.getPVPollution(param); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, pvPollution, methodDescribe); + } + + + +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/PVOverviewMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/PVOverviewMapper.java new file mode 100644 index 000000000..6d33a77e8 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/PVOverviewMapper.java @@ -0,0 +1,17 @@ +package com.njcn.harmonic.mapper.majornetwork; + +import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @version 1.0.0 + * @author: wr + * @date: 2023/05/10 + */ +public interface PVOverviewMapper { + + List selectPVSynthesisCount(@Param("param") StatisticsBizBaseParam param, + @Param("id") List id); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/PVOverviewMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/PVOverviewMapper.xml new file mode 100644 index 000000000..57d8b9463 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/PVOverviewMapper.xml @@ -0,0 +1,69 @@ + + + + + + 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 index 3e04130ab..59ae1009d 100644 --- 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 @@ -17,15 +17,15 @@