1.pms谐波模块保留俩位小数
2.冀北分布式光伏概览代码提交
This commit is contained in:
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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<List<List<Integer>>> getPVCompositeIndicators(@RequestBody StatisticsBizBaseParam param) {
|
||||
String methodDescribe = getMethodDescribe("getPVCompositeIndicators");
|
||||
List<List<Integer>> compositeIndicators = iPwMonitorService.getCompositeIndicators(param);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, compositeIndicators, methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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<PVCapacity> 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<PVCapacity.PVCapacityCount> 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<List<PVCapacity.Absorptive>> getPVAbsorptiveCapacity(@RequestBody StatisticsBizBaseParam param) {
|
||||
String methodDescribe = getMethodDescribe("getPVAbsorptiveCapacity");
|
||||
List<PVCapacity.Absorptive> absorptiveCapacity = iPowerDistributionareaService.getAbsorptiveCapacity(param);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, absorptiveCapacity, methodDescribe);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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<Boolean> saveSubstationRelation(@RequestBody SubstationRelation param) {
|
||||
String methodDescribe = getMethodDescribe("saveSubstationRelation");
|
||||
Boolean result = substationRelationService.saveSubstationRelation(param);
|
||||
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 台区
|
||||
@@ -20,5 +19,24 @@ import org.apache.ibatis.annotations.Param;
|
||||
public interface PowerDistributionareaMapper extends BaseMapper<PowerDistributionarea> {
|
||||
|
||||
|
||||
/**
|
||||
* 冀北分布式光伏获取分布式光伏容量
|
||||
* @param orgId
|
||||
* @return
|
||||
*/
|
||||
PVCapacity selectPVCapacity(@Param("orgIds") List<String> orgId);
|
||||
|
||||
/**
|
||||
* 冀北分布式光伏获取分布式光伏渗透率
|
||||
* @param deptCode
|
||||
* @return
|
||||
*/
|
||||
PVCapacity.PVCapacityCount selectPPVPermeability(@Param("orgIds")List<String> deptCode);
|
||||
|
||||
/**
|
||||
* 冀北分布式光伏获取消纳能力
|
||||
* @param deptCode
|
||||
* @return
|
||||
*/
|
||||
List<PVCapacity.Absorptive> selectAbsorptiveCapacity(@Param("orgIds")List<String> deptCode);
|
||||
}
|
||||
|
||||
@@ -3,6 +3,63 @@
|
||||
<mapper namespace="com.njcn.device.pms.mapper.majornetwork.PowerDistributionareaMapper">
|
||||
|
||||
|
||||
<select id="selectPVCapacity" resultType="com.njcn.device.pms.pojo.vo.PVCapacity">
|
||||
SELECT
|
||||
sum( P_Capacity ) AS sumCount,
|
||||
( SELECT sum( `Photovoltaic_Capacity` ) FROM pms_power_distributionarea
|
||||
<where>
|
||||
org_id IN
|
||||
<foreach collection="orgIds" item="item" open="(" close=")" separator=",">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND STATUS = 1
|
||||
</where>
|
||||
) AS sumOrgCount,
|
||||
( SELECT sum( `Photovoltaic_Capacity` ) FROM pms_power_distributionarea
|
||||
<where>
|
||||
org_id IN
|
||||
<foreach collection="orgIds" item="item" open="(" close=")" separator=",">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND Year(Create_Time)=Year(now())
|
||||
AND STATUS = 1
|
||||
</where>
|
||||
) AS sumOrgTheYear
|
||||
FROM
|
||||
pms_power_distributionarea
|
||||
|
||||
|
||||
</select>
|
||||
<select id="selectPPVPermeability" resultType="com.njcn.device.pms.pojo.vo.PVCapacity$PVCapacityCount">
|
||||
SELECT
|
||||
COALESCE( sum( CASE WHEN 0<=num and num<=25 THEN 1 ELSE 0 END ), 0 ) "num_1",
|
||||
COALESCE ( sum( CASE WHEN 25<num and num<=50 THEN 1 ELSE 0 END ), 0 ) "num_2",
|
||||
COALESCE ( sum( CASE WHEN 50<num and num<=75 THEN 1 ELSE 0 END ), 0 ) "num_3",
|
||||
COALESCE ( sum( CASE WHEN 75<num and num<=100 THEN 1 ELSE 0 END ), 0 ) "num_4" ,
|
||||
COALESCE ( sum( CASE WHEN 100<num THEN 1 ELSE 0 END ), 0 ) "num_5"
|
||||
FROM
|
||||
( SELECT round( Photovoltaic_Capacity / P_Capacity, 4 )* 100 AS num FROM pms_power_distributionarea
|
||||
<where>
|
||||
org_id IN
|
||||
<foreach collection="orgIds" item="item" open="(" close=")" separator=",">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND STATUS = 1
|
||||
</where>
|
||||
) x
|
||||
</select>
|
||||
<select id="selectAbsorptiveCapacity" resultType="com.njcn.device.pms.pojo.vo.PVCapacity$Absorptive">
|
||||
SELECT
|
||||
Org_Id as org,
|
||||
Photovoltaic_Capacity as capacity,
|
||||
CASE WHEN 0<=P_Capacity * 0.8 - Photovoltaic_Capacity THEN P_Capacity * 0.8 - Photovoltaic_Capacity ELSE 0 END as Consumption
|
||||
FROM
|
||||
pms_power_distributionarea
|
||||
<where>
|
||||
org_id IN
|
||||
<foreach collection="orgIds" item="item" open="(" close=")" separator=",">
|
||||
#{item}
|
||||
</foreach>
|
||||
AND STATUS = 1
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -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<PwPmsMonitorDTO> getPwSubsetMonitorList(PwPmsMonitorParam pwPmsMonitorParam);
|
||||
|
||||
/**
|
||||
* 冀北分布式光伏获取综合指标
|
||||
* @return
|
||||
*/
|
||||
List<List<Integer>> getCompositeIndicators(StatisticsBizBaseParam param);
|
||||
|
||||
}
|
||||
|
||||
@@ -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<List<Integer>> getCompositeIndicators(StatisticsBizBaseParam param) {
|
||||
List<List<Integer>> info=new ArrayList<>(2);
|
||||
List<DictData> monitorType = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||
Map<String, DictData> dictDataMap = monitorType.stream()
|
||||
.collect(Collectors.toMap(DictData::getId, Function.identity()));
|
||||
PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam();
|
||||
pwPmsMonitorParam.setOrgId(param.getId()); //单位id
|
||||
List<PwPmsMonitorDTO> pwMonitorList = this.getPwMonitorList(pwPmsMonitorParam);
|
||||
Map<String, List<PwPmsMonitorDTO>> collect = pwMonitorList.stream().collect(Collectors.groupingBy(PwPmsMonitorDTO::getMonitorSort));
|
||||
//初始化对象
|
||||
List<Integer> monitorList=new ArrayList<>(3);
|
||||
monitorList.add(0);
|
||||
monitorList.add(0);
|
||||
monitorList.add(0);
|
||||
List<Integer> 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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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<PowerDistributio
|
||||
* @param ids ids
|
||||
*/
|
||||
boolean delete(List<String> ids);
|
||||
|
||||
/**
|
||||
* 冀北分布式光伏获取分布式光伏容量
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
PVCapacity getPVCapacity(StatisticsBizBaseParam param);
|
||||
|
||||
/**
|
||||
* 冀北分布式光伏获取分布式光伏渗透率
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
PVCapacity.PVCapacityCount getPVPermeability(StatisticsBizBaseParam param);
|
||||
|
||||
/**
|
||||
* 冀北分布式光伏获取消纳能力
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
List<PVCapacity.Absorptive> getAbsorptiveCapacity(StatisticsBizBaseParam param);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -163,6 +165,47 @@ public class PowerDistributionareaServiceImpl extends ServiceImpl<PowerDistribut
|
||||
return this.removeByIds(ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PVCapacity getPVCapacity(StatisticsBizBaseParam param) {
|
||||
List<DeptDTO> data = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
|
||||
List<String> deptCode = data.stream().map(DeptDTO::getCode).collect(Collectors.toList());
|
||||
return this.baseMapper.selectPVCapacity(deptCode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PVCapacity.PVCapacityCount getPVPermeability(StatisticsBizBaseParam param) {
|
||||
List<DeptDTO> data = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
|
||||
List<String> deptCode = data.stream().map(DeptDTO::getCode).collect(Collectors.toList());
|
||||
return this.baseMapper.selectPPVPermeability(deptCode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PVCapacity.Absorptive> getAbsorptiveCapacity(StatisticsBizBaseParam param) {
|
||||
List<PVCapacity.Absorptive> info=new ArrayList<>();
|
||||
List<DeptDTO> data = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
|
||||
List<String> deptCode = data.stream().map(DeptDTO::getCode).collect(Collectors.toList());
|
||||
//获取所有的数据信息
|
||||
List<PVCapacity.Absorptive> list= this.baseMapper.selectAbsorptiveCapacity(deptCode);
|
||||
List<DeptLevelVO> 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<String> subsetDept= deptLevelVO.getDeptList().stream().map(DeptLevelVO::getCode).collect(Collectors.toList());
|
||||
List<PVCapacity.Absorptive> 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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 名称重复校验
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user