代码合并谐波

This commit is contained in:
2023-01-17 13:37:40 +08:00
parent 9e42ad84fa
commit 9b9ab96582
102 changed files with 936 additions and 371 deletions

View File

@@ -8,6 +8,8 @@ import com.njcn.common.utils.HttpResultUtil;
import com.njcn.harmonic.pojo.param.OverviewParam;
import com.njcn.harmonic.pojo.vo.OverviewVO;
import com.njcn.harmonic.service.majornetwork.RStatHarmonicOrgMService;
import com.njcn.harmonic.service.majornetwork.RStatOrgMService;
import com.njcn.harmonic.service.specialanalysis.RStatOrgPvPowerQualityService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -20,6 +22,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
/**
* <分布式光伏概览>
@@ -35,15 +38,58 @@ import java.util.List;
public class PwOverviewController extends BaseController {
private final RStatHarmonicOrgMService rStatHarmonicOrgMService;
private final RStatOrgPvPowerQualityService rStatOrgPvPowerQualityService;
private final RStatOrgMService rStatOrgMService;
@PostMapping("/getAlarmProportion")
@PostMapping("/getExcessiveProportion")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("告警监测点数占比")
@ApiOperation("稳态指标超标占比")
@ApiImplicitParam(name = "param", value = "条件参数", required = true)
public HttpResult<List<OverviewVO.GroupVO>> getAlarmProportion(@RequestBody OverviewParam param) {
String methodDescribe = getMethodDescribe("getAlarmProportion");
List<OverviewVO.GroupVO> monitorYoY = rStatHarmonicOrgMService.getExcessiveProportion(param);
public HttpResult<List<OverviewVO.ExcessiveVO>> getExcessiveProportion(@RequestBody OverviewParam param) {
String methodDescribe = getMethodDescribe("getExcessiveProportion");
List<OverviewVO.ExcessiveVO> monitorYoY = rStatHarmonicOrgMService.getExcessiveProportion(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, monitorYoY, methodDescribe);
}
@PostMapping("/getVoltage")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("电压问题")
@ApiImplicitParam(name = "param", value = "条件参数", required = true)
public HttpResult<List<OverviewVO.IcoVO>> getVoltage(@RequestBody OverviewParam.OverviewVoltageParam param) {
String methodDescribe = getMethodDescribe("getVoltage");
List<OverviewVO.IcoVO> groupVOS = rStatOrgPvPowerQualityService.getVoltage(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, groupVOS, methodDescribe);
}
@PostMapping("/getPowerFactor")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("功率因数问题")
@ApiImplicitParam(name = "param", value = "条件参数", required = true)
public HttpResult<List<OverviewVO.NumVO> > getPowerFactor(@RequestBody OverviewParam param) {
String methodDescribe = getMethodDescribe("getPowerFactor");
List<OverviewVO.NumVO> groupVOS = rStatOrgPvPowerQualityService.getPowerFactor(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, groupVOS, methodDescribe);
}
@PostMapping("/getBackTheTide")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("潮流倒送与重过载问题")
@ApiImplicitParam(name = "param", value = "条件参数", required = true)
public HttpResult<List<OverviewVO.IcoVO> > getBackTheTide(@RequestBody OverviewParam param) {
String methodDescribe = getMethodDescribe("getBackTheTide");
List<OverviewVO.IcoVO> groupVOS = rStatOrgPvPowerQualityService.getBackTheTide(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, groupVOS, methodDescribe);
}
@PostMapping("/getExceedMonitor")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("超标监测点数量")
@ApiImplicitParam(name = "param", value = "条件参数", required = true)
public HttpResult<List<OverviewVO.GroupVO>> getExceedMonitor(@RequestBody OverviewParam.OverviewDateParam param) {
String methodDescribe = getMethodDescribe("getExceedMonitor");
List<OverviewVO.GroupVO> groupVOS = rStatOrgMService.getExceedMonitor(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, groupVOS, methodDescribe);
}
}

View File

@@ -45,5 +45,6 @@ public interface StatHarmonicOrgMMapper extends BaseMapper<RStatHarmonicOrgM> {
*/
List<OverviewVO> selectYoY(@Param("param") OverviewParam param,
@Param("ids") List<String> ids,
@Param("types") List<String> types,
@Param("dataType") String dataType);
}

View File

@@ -81,6 +81,12 @@ FROM (
#{item}
</foreach>
</if>
<if test="types != null and types.size > 0">
AND measurement_type_class IN
<foreach collection='types' item='item' index="index" open='(' separator=',' close=')'>
#{item}
</foreach>
</if>
</where>
GROUP BY t.measurement_type_class,t.harmonic_type,yy,mm
) ta
@@ -103,6 +109,12 @@ LEFT JOIN (
#{item}
</foreach>
</if>
<if test="types != null and types.size > 0">
AND measurement_type_class IN
<foreach collection='types' item='item' index="index" open='(' separator=',' close=')'>
#{item}
</foreach>
</if>
</where>
GROUP BY t.measurement_type_class,t.harmonic_type,yy,mm
) tb
@@ -127,6 +139,12 @@ LEFT JOIN (
#{item}
</foreach>
</if>
<if test="types != null and types.size > 0">
AND measurement_type_class IN
<foreach collection='types' item='item' index="index" open='(' separator=',' close=')'>
#{item}
</foreach>
</if>
</where>
GROUP BY t.measurement_type_class,t.harmonic_type,yy,mm
) tc
@@ -147,8 +165,6 @@ ON ( (tc.yy = ta.yy and tc.mm = ta.mm - 1 and tc.measurement_type_class = ta.me
</if>
</where>
</select>
</mapper>

View File

@@ -3,6 +3,7 @@ package com.njcn.harmonic.mapper.specialanalysis;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.harmonic.pojo.param.OverviewParam;
import com.njcn.harmonic.pojo.po.RStatOrgPvPowerQualityMPO;
import com.njcn.harmonic.pojo.vo.OverviewVO;
import com.njcn.harmonic.pojo.vo.StreamReverseOrgVO;
@@ -28,7 +29,8 @@ public interface RStatOrgPvPowerQualityMMapper extends BaseMapper<RStatOrgPvPowe
* @return
*/
List<OverviewVO.VoltageVO> selectVoltage(@Param("deptCodes") List<String> deptCodes,
@Param("ids") List<String> ids);
@Param("ids") List<String> ids,
@Param("param") OverviewParam param);
}

View File

@@ -63,13 +63,15 @@
#{item}
</foreach>
</if>
<!-- <if test="param!=null and param.startTime != null and param.startTime !=''">-->
<!-- AND data_date >= #{param.startTime}-->
<!-- </if>-->
<!-- <if test="param!=null and param.endTime != null and param.endTime != ''">-->
<!-- AND data_date &lt;= #{param.endTime}-->
<!-- </if>-->
<if test="param!=null and param.year != null and param.year != ''">
and YEAR(data_date)=#{param.year}
</if>
<if test="param != null and param.month!=null and param.month.size > 0">
AND MONTH(data_date) IN
<foreach collection='param.month' item='item' index="index" open='(' separator=',' close=')'>
#{item}
</foreach>
</if>
</where>
GROUP BY
monitoring_object,

View File

@@ -14,6 +14,7 @@ import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
import com.njcn.harmonic.pojo.po.RStatOrgQ;
import com.njcn.harmonic.pojo.vo.*;
import com.njcn.harmonic.service.distribution.PwRStatOrgService;
import com.njcn.harmonic.utils.DeptUtil;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum;
@@ -60,7 +61,10 @@ public class PwRStatOrgServiceImpl extends ServiceImpl<PwRStatOrgMapper, RStatOr
@Override
public List<RStatOrgVO.PwRStatOrgVO> getRStatHarmonicAll(StatSubstationBizBaseParam param) {
//获取当前部门下所有部门信息
List<DeptDTO> deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptDTOList = DeptUtil.getDeptSubsetVOList(deptList, param.getId());
Map<String, DeptDTO> deptMap = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getCode, Function.identity()));
List<String> deptIds = deptDTOList.stream().map(DeptDTO::getCode).collect(Collectors.toList());
@@ -104,12 +108,9 @@ public class PwRStatOrgServiceImpl extends ServiceImpl<PwRStatOrgMapper, RStatOr
@Override
public List<PwRStatOrgVO> getRStatOrgIndex(StatSubstationBizBaseParam param) {
// 获取当前用户的部门的子部门信息
// PwPmsMonitorParam pwPmsMonitorParam=new PwPmsMonitorParam();
// pwPmsMonitorParam.setOrgId(param.getId());
// pwPmsMonitorParam.setMonitorSort(param.getIds());
// List<PwPmsMonitorDTO> data = pwMonitorClient.getPwMonitorList(pwPmsMonitorParam).getData();
List<DeptDTO> deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptDTOList = DeptUtil.getDeptSubsetVOList(deptList, param.getId());
List<String> deptIds = deptDTOList.stream().map(DeptDTO::getCode).collect(Collectors.toList());
//获取配网信息
@@ -224,7 +225,9 @@ public class PwRStatOrgServiceImpl extends ServiceImpl<PwRStatOrgMapper, RStatOr
@Override
public List<RStatSubstationOrg2VO.PwRStatSubstationOrgVO> getRStatSubstationOrg(StatSubstationBizBaseParam param) {
//获取当前部门下所有部门信息
List<DeptDTO> deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptDTOList = DeptUtil.getDeptSubsetVOList(deptList, param.getId());
Map<String, DeptDTO> deptMap = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getCode, Function.identity()));
List<String> deptIds = deptDTOList.stream().map(DeptDTO::getCode).collect(Collectors.toList());
//初始化

View File

@@ -60,5 +60,5 @@ public interface RStatHarmonicOrgMService extends IService<RStatHarmonicOrgM> {
* @param param
* @return
*/
List<OverviewVO.GroupVO> getExcessiveProportion(OverviewParam param);
List<OverviewVO.ExcessiveVO> getExcessiveProportion(OverviewParam param);
}

View File

@@ -1,8 +1,10 @@
package com.njcn.harmonic.service.majornetwork;
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import com.njcn.harmonic.pojo.param.OverviewParam;
import com.njcn.harmonic.pojo.po.RStatOrgM;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.harmonic.pojo.vo.OverviewVO;
import com.njcn.harmonic.pojo.vo.RStatOrgVO;
import java.util.List;
@@ -24,4 +26,13 @@ public interface RStatOrgMService extends IService<RStatOrgM> {
* @return
*/
List<RStatOrgVO> getRStatHarmonicMAll(StatisticsBizBaseParam param);
/**
* 分布式光伏概览-超标监测点数量
* @param param
* @return
*/
List<OverviewVO.GroupVO> getExceedMonitor(OverviewParam.OverviewDateParam param);
}

View File

@@ -100,6 +100,6 @@ public class RMpPartHarmonicDetailMServiceImpl extends ServiceImpl<RMpPartHarmon
}
return rMpPartHarmonicDetail;
}
return null;
return new ArrayList<>();
}
}

View File

@@ -22,6 +22,7 @@ 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.harmonic.utils.DeptUtil;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum;
@@ -77,7 +78,8 @@ public class RStatHarmonicMServiceImpl extends ServiceImpl<RStatHarmonicMMapper,
//获取当前部门下所有部门信息
List<DeptDTO> deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptDTOList = DeptUtil.getDeptSubsetVOList(deptList, param.getId());
List<String> deptIds = deptDTOList.stream().map(DeptDTO::getCode).collect(Collectors.toList());
StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class);
@@ -193,7 +195,8 @@ public class RStatHarmonicMServiceImpl extends ServiceImpl<RStatHarmonicMMapper,
List<RIconVO> arrayVOList = new ArrayList<>();
//获取当前部门下所有部门信息
List<DeptDTO> deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptDTOList = DeptUtil.getDeptSubsetVOList(deptList, param.getId());
List<String> deptIds = deptDTOList.stream().map(DeptDTO::getCode).collect(Collectors.toList());
StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class);
@@ -280,7 +283,8 @@ public class RStatHarmonicMServiceImpl extends ServiceImpl<RStatHarmonicMMapper,
DictData mainnetData = dicDataFeignClient.getDicDataByCode(DicDataEnum.MAINNET_POINT.getCode()).getData();
//获取当前部门下所有部门信息
List<DeptDTO> deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptDTOList = DeptUtil.getDeptSubsetVOList(deptList, param.getId());
List<String> deptIds = deptDTOList.stream().map(DeptDTO::getCode).collect(Collectors.toList());
StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class);
@@ -346,7 +350,8 @@ public class RStatHarmonicMServiceImpl extends ServiceImpl<RStatHarmonicMMapper,
List<RArrayVO> arrayVOList = new ArrayList<>();
//获取当前部门下所有部门信息
List<DeptDTO> deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptDTOList = DeptUtil.getDeptSubsetVOList(deptList, param.getId());
List<String> deptIds = deptDTOList.stream().map(DeptDTO::getCode).collect(Collectors.toList());
StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class);
@@ -442,7 +447,8 @@ public class RStatHarmonicMServiceImpl extends ServiceImpl<RStatHarmonicMMapper,
DictData distributionData = dicDataFeignClient.getDicDataByCode(DicDataEnum.DISTRIBUTION_POINT.getCode()).getData();
//获取当前部门下所有部门信息
List<DeptDTO> deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptDTOList = DeptUtil.getDeptSubsetVOList(deptList, param.getId());
List<String> deptIds = deptDTOList.stream().map(DeptDTO::getCode).collect(Collectors.toList());
StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class);

View File

@@ -12,7 +12,6 @@ import com.njcn.harmonic.pojo.param.OverviewParam;
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.po.RStatHarmonicOrgQ;
import com.njcn.harmonic.pojo.vo.OverviewVO;
import com.njcn.harmonic.pojo.vo.RArrayVO;
import com.njcn.harmonic.pojo.vo.RIconVO;
@@ -26,12 +25,11 @@ 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 com.njcn.web.utils.WebUtil;
import lombok.RequiredArgsConstructor;
import org.checkerframework.checker.units.qual.K;
import org.springframework.stereotype.Service;
import java.security.Key;
import java.text.DecimalFormat;
import java.util.*;
import java.util.function.Function;
@@ -389,78 +387,83 @@ public class RStatHarmonicOrgMServiceImpl extends ServiceImpl<StatHarmonicOrgMMa
}
@Override
public List<OverviewVO.GroupVO> getExcessiveProportion(OverviewParam param) {
List<OverviewVO.GroupVO> info=new ArrayList<>();
public List<OverviewVO.ExcessiveVO> getExcessiveProportion(OverviewParam param) {
List<OverviewVO.ExcessiveVO> info =new ArrayList<>();
//指标类型
List<DictData> steadyData = dicDataFeignClient.getDicDataByTypeCode
(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
List<DictData> steadyTypeData = steadyData.stream().filter(dictData ->
DicDataEnum.VOLTAGE_DEV.getCode().equals(dictData.getCode()) ||
DicDataEnum.FLICKER.getCode().equals(dictData.getCode()) ||
DicDataEnum.HARMONIC_VOLTAGE.getCode().equals(dictData.getCode())
).collect(Collectors.toList());
Map<String, DictData> steadyTypeMap = steadyTypeData.stream().collect(Collectors.toMap(DictData::getId, Function.identity()));
//监测点类型
List<DictData> lineData = dicDataFeignClient.getDicDataByTypeCode
(DicDataTypeEnum.LINE_SORT.getCode()).getData();
List<String> lineDataIds = lineData.stream().map(DictData::getId).collect(Collectors.toList());
//获取部门数据
List<DeptDTO> deptDTOS = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
if(CollectionUtil.isNotEmpty(deptDTOS)){
List<String> collect = deptDTOS.stream().map(DeptDTO::getCode).collect(Collectors.toList());
//获取配网数据类型
DictData data = dicDataFeignClient.getDicDataByCode(DicDataEnum.DISTRIBUTION_POINT.getCode()).getData();
List<OverviewVO> overviewVOS = statHarmonicOrgMMapper.selectYoY(param, collect, data.getId());
List<String> deptCodes = getDeptListCode(param.getId());
Map<String, List<OverviewVO>> overviewVOMap = overviewVOS.stream().collect(
Collectors.groupingBy(OverviewVO::getMonitorSort));
//获取配网数据类型
DictData data = dicDataFeignClient.getDicDataByCode(DicDataEnum.DISTRIBUTION_POINT.getCode()).getData();
List<OverviewVO> overviewVOS = statHarmonicOrgMMapper.selectYoY(param, deptCodes,lineDataIds, data.getId());
overviewVOMap.forEach((key,value)->{
OverviewVO.GroupVO groupVO = new OverviewVO.GroupVO();
Map<String, List<OverviewVO>> overviewVOMap = overviewVOS.stream().collect(
Collectors.groupingBy(OverviewVO::getMonitorSort));
Map<String, List<OverviewVO>> listMap = value.stream().collect(Collectors.groupingBy(OverviewVO::getHarmonicType));
List<DictData> notDict = steadyData.stream().filter(r -> !listMap.containsKey(r.getId()))
.collect(Collectors.toList());
//生成默认值
if(CollectionUtil.isNotEmpty(notDict)){
groupVO.setMonitorSort(key);
OverviewVO overviewVO;
for (DictData dictData : notDict) {
overviewVO=new OverviewVO();
overviewVO.setMonitorSort(key);
overviewVO.setHarmonicType(dictData.getId());
overviewVO.setSumNum("0");
overviewVO.setYtbSumNum("0");
overviewVO.setYhbSumNum("0");
overviewVO.setSameNum("0");
overviewVO.setRingNum("0");
value.add(overviewVO);
}
groupVO.setSubset(value);
}
info.add(groupVO);
});
List<DictData> notDict = lineData.stream().filter(r -> !overviewVOMap.containsKey(r.getId()))
.collect(Collectors.toList());
if(CollectionUtil.isNotEmpty(notDict)){
OverviewVO.GroupVO overviewVO;
OverviewVO vo;
for (DictData dictData : notDict) {
overviewVO=new OverviewVO.GroupVO();
overviewVO.setMonitorSort(dictData.getId());
List<OverviewVO> vos=new ArrayList<>();
for (DictData lineDatum : steadyData) {
vo=new OverviewVO();
vo.setMonitorSort(dictData.getId());
vo.setHarmonicType(lineDatum.getId());
vo.setSumNum("0");
vo.setYtbSumNum("0");
vo.setYhbSumNum("0");
vo.setSameNum("0");
vo.setRingNum("0");
vos.add(vo);
overviewVOMap.forEach((key,value)->{
OverviewVO.ExcessiveVO excessiveVO=new OverviewVO.ExcessiveVO();
excessiveVO.setMonitorSort(key);
excessiveVO.setHarmonic("0.0");
excessiveVO.setHarmonicTb("0.0");
excessiveVO.setVoltage("0.0");
excessiveVO.setVoltageTb("0.0");
excessiveVO.setFlicker("0.0");
excessiveVO.setFlickerTb("0.0");
for (OverviewVO overviewVO : value) {
if(steadyTypeMap.containsKey(overviewVO.getHarmonicType())){
DictData dictData = steadyTypeMap.get(overviewVO.getHarmonicType());
if(DicDataEnum.HARMONIC_VOLTAGE.getCode().equals(dictData.getCode())){
excessiveVO.setHarmonic(overviewVO.getSumNum());
excessiveVO.setHarmonicTb(overviewVO.getSameNum());
}
if(DicDataEnum.FLICKER.getCode().equals(dictData.getCode())){
excessiveVO.setFlicker(overviewVO.getSumNum());
excessiveVO.setFlickerTb(overviewVO.getSameNum());
}
if(DicDataEnum.VOLTAGE_DEV.getCode().equals(dictData.getCode())){
excessiveVO.setVoltage(overviewVO.getSumNum());
excessiveVO.setVoltageTb(overviewVO.getSameNum());
}
overviewVO.setSubset(vos);
info.add(overviewVO);
}
}
info.add(excessiveVO);
});
Map<String, List<OverviewVO.ExcessiveVO>> excessiveMap= info.stream().collect(Collectors.groupingBy(OverviewVO.ExcessiveVO::getMonitorSort));
List<DictData> notDict = lineData.stream().filter(r -> !excessiveMap.containsKey(r.getId()))
.collect(Collectors.toList());
if(CollectionUtil.isNotEmpty(notDict)){
OverviewVO.ExcessiveVO excessiveVO;
for (DictData dictData : notDict) {
excessiveVO=new OverviewVO.ExcessiveVO();
excessiveVO.setMonitorSort(dictData.getId());
excessiveVO.setHarmonic("0.0");
excessiveVO.setHarmonicTb("0.0");
excessiveVO.setVoltage("0.0");
excessiveVO.setVoltageTb("0.0");
excessiveVO.setFlicker("0.0");
excessiveVO.setFlickerTb("0.0");
info.add(excessiveVO);
}
}
return info;
return info;
}
/**
@@ -485,4 +488,18 @@ public class RStatHarmonicOrgMServiceImpl extends ServiceImpl<StatHarmonicOrgMMa
}
arrayVO.setColumns(statharmonicVO);
}
/**
* 部门通用方法
* @param id
* @return
*/
public List<String> getDeptListCode(String id){
//获取部门数据
Dept data = deptFeignClient.getDeptById(id).getData();
if(ObjectUtil.isNotNull(data)){
return Arrays.asList(data.getCode());
}
return new ArrayList<>();
}
}

View File

@@ -10,6 +10,7 @@ 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.harmonic.utils.DeptUtil;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum;
@@ -57,7 +58,8 @@ public class RStatHarmonicQServiceImpl extends ServiceImpl<RStatHarmonicQMapper,
DictData mainnetData = dicDataFeignClient.getDicDataByCode(DicDataEnum.MAINNET_POINT.getCode()).getData();
//获取当前部门下所有部门信息
List<DeptDTO> deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptDTOList = DeptUtil.getDeptSubsetVOList(deptList, param.getId());
List<String> deptIds = deptDTOList.stream().map(DeptDTO::getCode).collect(Collectors.toList());
StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class);
@@ -149,7 +151,8 @@ public class RStatHarmonicQServiceImpl extends ServiceImpl<RStatHarmonicQMapper,
//初始化指标类型(横向)
List<RArrayVO> arrayVOList = new ArrayList<>();
//获取当前部门下所有部门信息
List<DeptDTO> deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptDTOList = DeptUtil.getDeptSubsetVOList(deptList, param.getId());
List<String> deptIds = deptDTOList.stream().map(DeptDTO::getCode).collect(Collectors.toList());
StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class);

View File

@@ -10,6 +10,7 @@ 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.harmonic.utils.DeptUtil;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum;
@@ -56,7 +57,9 @@ public class RStatHarmonicYServiceImpl extends ServiceImpl<RStatHarmonicYMapper,
DictData mainnetData = dicDataFeignClient.getDicDataByCode(DicDataEnum.MAINNET_POINT.getCode()).getData();
//获取当前部门下所有部门信息
List<DeptDTO> deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptDTOList = DeptUtil.getDeptSubsetVOList(deptList, param.getId());
List<String> deptIds = deptDTOList.stream().map(DeptDTO::getCode).collect(Collectors.toList());
StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class);
@@ -150,7 +153,8 @@ public class RStatHarmonicYServiceImpl extends ServiceImpl<RStatHarmonicYMapper,
List<RArrayVO> arrayVOList = new ArrayList<>();
//获取当前部门下所有部门信息
List<DeptDTO> deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptDTOList = DeptUtil.getDeptSubsetVOList(deptList, param.getId());
List<String> deptIds = deptDTOList.stream().map(DeptDTO::getCode).collect(Collectors.toList());
StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class);

View File

@@ -13,6 +13,7 @@ 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.harmonic.utils.DeptUtil;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.DictData;
@@ -49,7 +50,10 @@ public class RStatLoadTypeServiceImpl extends ServiceImpl<RStatLoadTypeMMapper,
@Override
public List<RArrayVO> getRStatLoadType(StatisticsBizBaseParam param) {
//获取部门信息
List<DeptDTO> data = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> data = DeptUtil.getDeptSubsetVOList(deptList, param.getId());
List<String> deptIds = data.stream().map(DeptDTO::getCode).collect(Collectors.toList());
//获取字典信息
List<DictData> data1 = dicDataFeignClient.getDicDataByTypeCode(

View File

@@ -14,6 +14,7 @@ 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.harmonic.utils.DeptUtil;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.dto.DeptDTO;
import com.njcn.web.utils.WebUtil;
@@ -47,7 +48,9 @@ public class RStatOrgBusbarVoltageServiceImpl extends ServiceImpl<RStatOrgBusbar
@Override
public List<RStatOrgBusbarVoltageVO> getRStatOrgBusbarVoltage(StatSubstationBizBaseParam param) {
//获取部门信息
List<DeptDTO> data = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> data = DeptUtil.getDeptSubsetVOList(deptList, param.getId());
Map<String, DeptDTO> deptMap = data.stream().collect(Collectors.toMap(DeptDTO::getCode, Function.identity()));
//获取部门id集合

View File

@@ -1,13 +1,17 @@
package com.njcn.harmonic.service.majornetwork.impl;
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.param.StatisticsBizBaseParam;
import com.njcn.harmonic.pojo.param.OverviewParam;
import com.njcn.harmonic.pojo.po.RStatOrgM;
import com.njcn.harmonic.mapper.majornetwork.RStatOrgMMapper;
import com.njcn.harmonic.pojo.vo.OverviewVO;
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.harmonic.utils.DeptUtil;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.pojo.po.DictData;
@@ -15,6 +19,7 @@ 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.lang.StringUtils;
import org.springframework.stereotype.Service;
import java.text.DecimalFormat;
@@ -42,9 +47,10 @@ public class RStatOrgMServiceImpl extends ServiceImpl<RStatOrgMMapper, RStatOrgM
@Override
public List<RStatOrgVO> getRStatHarmonicMAll(StatisticsBizBaseParam param) {
List<DeptDTO> deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
//获取部门id集合
List<DeptDTO> deptList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptDTOList = DeptUtil.getDeptSubsetVOList(deptList, param.getId());
List<String> deptIds = deptDTOList.stream().map(DeptDTO::getCode).collect(Collectors.toList());
Map<String, DeptDTO> deptMap = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getCode, Function.identity()));
//获取主网id信息
DictData mainnetData = dicDataFeignClient.getDicDataByCode(DicDataEnum.MAINNET_POINT.getCode()).getData();
@@ -83,4 +89,67 @@ public class RStatOrgMServiceImpl extends ServiceImpl<RStatOrgMMapper, RStatOrgM
});
return newList;
}
@Override
public List<OverviewVO.GroupVO> getExceedMonitor(OverviewParam.OverviewDateParam param) {
List<OverviewVO.GroupVO> info =new ArrayList<>();
//查询配网信息
DictData dictData = dicDataFeignClient.getDicDataByCode(DicDataEnum.DISTRIBUTION_POINT.getCode()).getData();
//获取部门数据
List<DeptDTO> subDeptListCode = getSubDeptListCode(param.getId());
List<String> deptListCode = subDeptListCode.stream().map(DeptDTO::getCode).collect(Collectors.toList());
Map<String, DeptDTO> deptMap = subDeptListCode.stream().collect(Collectors.toMap(DeptDTO::getCode, Function.identity()));
List<RStatOrgM> list = this.list(new LambdaQueryWrapper<RStatOrgM>()
.in(RStatOrgM::getOrgNo, deptListCode)
.eq(RStatOrgM::getDataType, dictData.getId())
.ge(StringUtils.isNotBlank(param.getStartTime()), RStatOrgM::getDataDate, param.getStartTime())
.le(StringUtils.isNotBlank(param.getEndTime()), RStatOrgM::getDataDate, param.getEndTime())
);
//根据部门进行分组
Map<String, List<RStatOrgM>> orgNoMap = list.stream().collect(Collectors.groupingBy(RStatOrgM::getOrgNo));
orgNoMap.forEach((key,value)->{
if(deptMap.containsKey(key)){
OverviewVO.GroupVO groupVO=new OverviewVO.GroupVO();
String name = deptMap.get(key).getName();
groupVO.setMonitorSort(name.replace("供电公司",""));
List<OverviewVO.StatOrgVO> statOrgVOS =new ArrayList<>();
OverviewVO.StatOrgVO statOrgVO;
for (RStatOrgM statOrgM : value) {
statOrgVO=new OverviewVO.StatOrgVO();
statOrgVO.setMeasurementTypeClass(statOrgM.getMeasurementTypeClass());
statOrgVO.setEffectiveMeasurementAccrued(statOrgM.getEffectiveMeasurementAccrued());
statOrgVOS.add(statOrgVO);
}
groupVO.setSubset(statOrgVOS);
info.add(groupVO);
}
});
return info;
}
/**
* 当前部门下子部门通用方法
* @param deptId
* @return
*/
public List<DeptDTO> getSubDeptListCode(String deptId){
List<DeptDTO> deptDTOList = deptFeignClient.getDeptDescendantIndexes(deptId, WebUtil.filterDeptType()).getData();
//获取子部门
List<DeptDTO> directDeptInfos = deptDTOList.stream()
.filter(deptDTO -> deptDTO.getPid().equals(deptId))
.collect(Collectors.toList());
if (CollectionUtil.isEmpty(directDeptInfos)) {
//没有直接子部门,获取当前部门所有信息
List<DeptDTO> dept = deptDTOList.stream()
.filter(deptDTO -> deptDTO.getId().equals(deptId))
.collect(Collectors.toList());
return dept;
}
return directDeptInfos;
}
}

View File

@@ -8,6 +8,7 @@ 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.harmonic.utils.DeptUtil;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.pojo.po.DictData;
@@ -42,9 +43,11 @@ public class RStatOrgQServiceImpl extends ServiceImpl<RStatOrgQMapper, RStatOrgQ
@Override
public List<RStatOrgVO> getRStatHarmonicQAll(StatisticsBizBaseParam param) {
List<DeptDTO> deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
//获取部门id集合
//获取部门信息
List<DeptDTO> deptList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptDTOList = DeptUtil.getDeptSubsetVOList(deptList, param.getId());
List<String> deptIds = deptDTOList.stream().map(DeptDTO::getCode).collect(Collectors.toList());
Map<String, DeptDTO> deptMap = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getCode, Function.identity()));
//获取主网id信息

View File

@@ -25,6 +25,7 @@ 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.harmonic.utils.DeptUtil;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum;
@@ -67,9 +68,11 @@ public class RStatOrgYServiceImpl extends ServiceImpl<RStatOrgYMapper, RStatOrgY
@Override
public List<RStatOrgVO> getRStatHarmonicYAll(StatisticsBizBaseParam param) {
List<DeptDTO> deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
//获取部门id集合
//获取部门信息
List<DeptDTO> deptList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptDTOList = DeptUtil.getDeptSubsetVOList(deptList, param.getId());
List<String> deptIds = deptDTOList.stream().map(DeptDTO::getCode).collect(Collectors.toList());
Map<String, DeptDTO> deptMap = deptDTOList.stream().collect(Collectors.toMap(DeptDTO::getCode, Function.identity()));
//获取主网id信息
@@ -112,7 +115,11 @@ public class RStatOrgYServiceImpl extends ServiceImpl<RStatOrgYMapper, RStatOrgY
@Override
public List<RStatSubstationOrg2VO> getRStatSubstationOrg(StatisticsBizBaseParam param) {
// 获取当前用户的部门的子部门信息
List<DeptDTO> data = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> data = DeptUtil.getDeptSubsetVOList(deptList, param.getId());
List<RStatSubstationOrg2VO> info = new ArrayList<>();
if (CollectionUtil.isNotEmpty(data)) {
// 根据暂态指标枚举查询暂态指标
@@ -356,7 +363,9 @@ public class RStatOrgYServiceImpl extends ServiceImpl<RStatOrgYMapper, RStatOrgY
@Override
public List<RStatOrgIndexVO.RStatOrgIndexInfoVO> getRStatOrgIndex(StatisticsBizBaseParam param) {
// 获取当前用户的部门的子部门信息
List<DeptDTO> data = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> data = DeptUtil.getDeptSubsetVOList(deptList, param.getId());
List<RStatOrgIndexVO.RStatOrgIndexInfoVO> info = new ArrayList<>();
//获取主网id信息
DictData mainnetData = dicDataFeignClient.getDicDataByCode(DicDataEnum.MAINNET_POINT.getCode()).getData();

View File

@@ -9,6 +9,7 @@ import com.njcn.harmonic.pojo.vo.RIconVO;
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.harmonic.utils.DeptUtil;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.DictData;
@@ -43,8 +44,10 @@ public class RStatSubstationVoltageMServiceImpl extends ServiceImpl<RStatSubstat
@Override
public List<RVoltageIconVO> getStatSubstationIcon(StatisticsBizBaseParam param) {
//获取当前部门下所有部门信息
List<DeptDTO> deptDTOList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptList = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<DeptDTO> deptDTOList = DeptUtil.getDeptSubsetVOList(deptList, param.getId());
List<String> deptIds = deptDTOList.stream().map(DeptDTO::getCode).collect(Collectors.toList());
StatSubstationBizBaseParam baseParam= BeanUtil.copyProperties(param,StatSubstationBizBaseParam.class);
baseParam.setIds(deptIds);
//获取电压信息

View File

@@ -10,6 +10,7 @@ import com.njcn.harmonic.pojo.vo.RStatOrgPvDetailVO;
import com.njcn.harmonic.pojo.vo.RStatOrgPvPowerStreamVO;
import java.util.List;
import java.util.Map;
/**
* 分布式光伏_台区电能质量明细
@@ -41,5 +42,19 @@ public interface RStatOrgPvPowerQualityService extends IService<RStatOrgPvPowerQ
* @param param
* @return
*/
List<OverviewVO.GroupVO> getVoltage(OverviewParam param);
List<OverviewVO.IcoVO> getVoltage(OverviewParam.OverviewVoltageParam param);
/**
* 分布式光伏概览-功率因数问题
* @param param
* @return
*/
List<OverviewVO.NumVO> getPowerFactor(OverviewParam param);
/**
* 分布式光伏概览-潮流到送与重过载问题
* @param param
* @return
*/
List<OverviewVO.IcoVO> getBackTheTide(OverviewParam param);
}

View File

@@ -307,8 +307,9 @@ public class DistributedPvOverviewServiceImpl implements DistributedPvOverviewSe
* @param param 条件参数
*/
private List<PwPmsMonitorDTO> getMonitorDtoList(StatisticsBizBaseParam param) {
//分布式光伏-(监测店标签-主配网)等演示完更新
PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam();
pwPmsMonitorParam.setOrgId(param.getId());
return monitorClient.getPwMonitorList(pwPmsMonitorParam).getData();
return monitorClient.getPwPhotovoltaicMonitorList(pwPmsMonitorParam).getData();
}
}

View File

@@ -49,7 +49,7 @@ public class DistributedPvVolOverServiceImpl implements DistributedPvVolOverServ
// 获取当前单位下的监测点信息
PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam();
pwPmsMonitorParam.setOrgId(param.getId());
List<PwPmsMonitorDTO> pwMonitorList = monitorClient.getPwMonitorList(pwPmsMonitorParam).getData();
List<PwPmsMonitorDTO> pwMonitorList = monitorClient.getPwPhotovoltaicMonitorList(pwPmsMonitorParam).getData();
if (CollUtil.isEmpty(pwMonitorList)) {
return new Page<>();
}

View File

@@ -52,8 +52,9 @@ public class PermeabilityServiceImpl implements PermeabilityService {
//获取部门信息
// List<DeptDTO> data = deptFeignClient.getDeptDescendantIndexes(id, WebUtil.filterDeptType()).getData();
List<Dept> data = deptFeignClient.getDirectSonSelf(id).getData(); //获取当前部门和子部门信息
Map<String, Dept> deptMap = data.stream().collect(Collectors.toMap(Dept::getCode, dept -> dept));
List<String> deptCodes = data.stream().map(Dept::getCode).collect(Collectors.toList());
//剔除本部
Map<String, Dept> deptMap = data.stream().filter(r-> !r.getId().equals(id)).collect(Collectors.toMap(Dept::getCode, dept -> dept));
List<String> deptCodes = data.stream().filter(r-> !r.getId().equals(id)).map(Dept::getCode).collect(Collectors.toList());
//获取各渗透率字典
List<DictData> rateList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.PERMEABILITY_TYPE.getCode()).getData();
//将渗透率字典转换为查询条件

View File

@@ -68,8 +68,9 @@ public class RMpEmissionMServiceImpl extends ServiceImpl<RMpEmissionMMapper, RMp
}
//获取当前部门和子部门信息
List<Dept> data = deptFeignClient.getDirectSonSelf(id).getData();
Map<String, Dept> deptMap = data.stream().collect(Collectors.toMap(Dept::getCode, dept -> dept));
List<String> deptCodes = data.stream().map(Dept::getCode).collect(Collectors.toList());
//剔除本部门
Map<String, Dept> deptMap = data.stream().filter(r-> !r.getId().equals(id)).collect(Collectors.toMap(Dept::getCode, dept -> dept));
List<String> deptCodes = data.stream().filter(r-> !r.getId().equals(id)).map(Dept::getCode).collect(Collectors.toList());
//查询风电场信息
// PmsMonitorParam pmsMonitorParam = new PmsMonitorParam();

View File

@@ -62,8 +62,8 @@ public class RMpInfluenceMServiceImpl extends ServiceImpl<RMpInfluenceMMapper, R
}
//获取当前部门和子部门信息
List<Dept> data = deptFeignClient.getDirectSonSelf(id).getData();
Map<String, Dept> deptMap = data.stream().collect(Collectors.toMap(Dept::getCode, dept -> dept));
List<String> deptCodes = data.stream().map(Dept::getCode).collect(Collectors.toList());
Map<String, Dept> deptMap = data.stream().filter(r-> !r.getId().equals(id)).collect(Collectors.toMap(Dept::getCode, dept -> dept));
List<String> deptCodes = data.stream().filter(r-> !r.getId().equals(id)).map(Dept::getCode).collect(Collectors.toList());
//查询风电场信息
// PmsMonitorParam pmsMonitorParam = new PmsMonitorParam();

View File

@@ -55,7 +55,7 @@ public class RMpWpPowerDetailMServiceImpl extends ServiceImpl<RMpWpPowerDetailMM
public Page<RMpWpPowerDetailVO> getWindFarmDetailInfo(PowerQualityParam.PowerQualityInfoParam param) {
//获取部门id集合
List<Dept> deptDTOS = deptFeignClient.getDirectSonSelf(param.getId()).getData();
List<String> deptIds = deptDTOS.stream().map(Dept::getCode).collect(Collectors.toList());
List<String> deptIds = deptDTOS.stream().filter(r-> !r.getId().equals(param.getId())).map(Dept::getCode).collect(Collectors.toList());
//根据条件查询单位下面的所有配网监测点
PmsMonitorParam pmsMonitorParam = new PmsMonitorParam();
@@ -134,7 +134,7 @@ public class RMpWpPowerDetailMServiceImpl extends ServiceImpl<RMpWpPowerDetailMM
public Page<RMpRailwayTractionDetailVO> getRailwayDetailInfo(PowerQualityParam param) {
//获取部门id集合
List<Dept> deptDTOS = deptFeignClient.getDirectSonSelf(param.getId()).getData();
List<String> deptIds = deptDTOS.stream().map(Dept::getCode).collect(Collectors.toList());
List<String> deptIds = deptDTOS.stream().filter(r-> !r.getId().equals(param.getId())).map(Dept::getCode).collect(Collectors.toList());
//根据部门信息,获取牵引站信息
PmsTractionStationParam stationParam = new PmsTractionStationParam();

View File

@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Console;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -66,9 +67,10 @@ public class RStatOrgPvPowerQualityServiceImpl extends ServiceImpl<RStatOrgPvPow
if (CollectionUtil.isEmpty(deptDTOS)) {
throw new BusinessException(CommonResponseEnum.NO_DATA, "获取部门信息为空");
}
Map<String, Dept> deptDTOMap = deptDTOS.stream().collect
//剔除本部门
Map<String, Dept> deptDTOMap = deptDTOS.stream().filter(r-> !r.getId().equals(param.getId())).collect
(Collectors.toMap(Dept::getCode, Function.identity(), (key, key2) -> key2));
List<String> OrgNOS = deptDTOS.stream().map(Dept::getCode).collect(Collectors.toList());
List<String> OrgNOS = deptDTOS.stream().filter(r-> !r.getId().equals(param.getId())).map(Dept::getCode).collect(Collectors.toList());
//根据字典Code取出字典id拼入sql中
dictDataList.stream().forEach(dictData -> {
if (DicDataEnum.EVENT_TYPE_L.getCode().equals(dictData.getCode())) {
@@ -132,56 +134,338 @@ public class RStatOrgPvPowerQualityServiceImpl extends ServiceImpl<RStatOrgPvPow
}
@Override
public List<OverviewVO.GroupVO> getVoltage(OverviewParam param) {
List<OverviewVO.GroupVO> vos=new ArrayList<>();
//获取部门信息
List<DeptDTO> deptDTOS = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
public List<OverviewVO.IcoVO> getVoltage(OverviewParam.OverviewVoltageParam param) {
List<OverviewVO.IcoVO> vos=new ArrayList<>();
//获取部门信息
Dept dept = deptFeignClient.getDeptById(param.getId()).getData();
if(ObjectUtil.isNotNull(dept)){
//获取监测对象
List<DictData> monitorType = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.MONITOR_OBJ.getCode()).getData();
Map<String, DictData> dictDataMap = monitorType.stream()
.collect(Collectors.toMap(DictData::getId, Function.identity()));
//初始化对象
OverviewVO.IcoVO vo;
for (DictData dictData : monitorType) {
vo=new OverviewVO.IcoVO();
vo.setNumOne(0);
vo.setNumTwo(0);
vos.add(vo);
}
if(CollectionUtil.isNotEmpty(deptDTOS)){
//获取台区电能质量事件类型
List<DictData> areaType = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.AREA_PQ_EVENT_TYPE.getCode()).getData();
if(CollectionUtil.isNotEmpty(deptDTOS)){
List<String> typeID=new ArrayList<>();
//取出电压相关的字典
for (DictData dictData : areaType) {
Map<String, DictData> areaMap = areaType.stream()
.collect(Collectors.toMap(DictData::getId, Function.identity()));
List<String> typeID=new ArrayList<>();
//取出电压相关的字典
for (DictData dictData : areaType) {
//1高压 0是低压
if (param.getType() == 1) {
//电压 电压越上限15%以上
if(DicDataEnum.EVENT_TYPE_T.getCode().equals(dictData.getCode())){
if (DicDataEnum.EVENT_TYPE_T.getCode().equals(dictData.getCode())) {
typeID.add(dictData.getId());
}
//电压 电压越上限7%-15%
if(DicDataEnum.EVENT_TYPE_R.getCode().equals(dictData.getCode())){
if (DicDataEnum.EVENT_TYPE_R.getCode().equals(dictData.getCode())) {
typeID.add(dictData.getId());
}
} else {
//电压 超标3%-10%
if(DicDataEnum.EVENT_TYPE_Z.getCode().equals(dictData.getCode())){
if (DicDataEnum.EVENT_TYPE_Z.getCode().equals(dictData.getCode())) {
typeID.add(dictData.getId());
}
//电压 超标10%以下
if(DicDataEnum.EVENT_TYPE_X.getCode().equals(dictData.getCode())){
if (DicDataEnum.EVENT_TYPE_X.getCode().equals(dictData.getCode())) {
typeID.add(dictData.getId());
}
}
}
//数据库查询
List<OverviewVO.VoltageVO> voltageVOS = rStatOrgPvPowerQualityMMapper.selectVoltage(Arrays.asList(dept.getCode()), typeID,param);
Map<String, List<OverviewVO.VoltageVO>> voltageMap = voltageVOS.stream().collect(
Collectors.groupingBy(OverviewVO.VoltageVO::getMonitoringObject));
if(CollectionUtil.isNotEmpty(voltageMap)){
//初始化对象
voltageMap.forEach((key,value)-> {
OverviewVO.IcoVO typeVO = new OverviewVO.IcoVO();
typeVO.setNumOne(0);
typeVO.setNumTwo(0);
if (dictDataMap.containsKey(key)) {
DictData dictData = dictDataMap.get(key);
//一类监测点
if(DicDataEnum.MAIN_CHANGE.getCode().equals(dictData.getCode())){
getArea(areaMap, value, typeVO,param.getType());
vos.set(0,typeVO);
}
//二类监测点
if(DicDataEnum.PHOTOVOLT.getCode().equals(dictData.getCode())){
getArea(areaMap, value, typeVO,param.getType());
vos.set(1,typeVO);
}
//三类监测点
if(DicDataEnum.FEEDER_TENKV.getCode().equals(dictData.getCode())){
getArea(areaMap, value, typeVO,param.getType());
vos.set(2,typeVO);
}
}
});
}
}
return vos;
}
/**
* 电压问题对象赋值
* @param areaMap 台区事件字典
* @param value 存在的台区事件
* @param typeVO 对象赋值
* @param type 区分高低压
*/
private void getArea(Map<String, DictData> areaMap, List<OverviewVO.VoltageVO> value, OverviewVO.IcoVO typeVO,
Integer type) {
for (OverviewVO.VoltageVO voltageVO : value) {
if (areaMap.containsKey(voltageVO.getAreaPqEventType())) {
DictData areaData = areaMap.get(voltageVO.getAreaPqEventType());
//1高压 0是低压
if(type==1){
//电压 电压越上限7%-15%
if(DicDataEnum.EVENT_TYPE_R.getCode().equals(areaData.getCode())){
typeVO.setNumOne(voltageVO.getTotalMonitorNum());
}
//电压 电压越上限15%以上
if(DicDataEnum.EVENT_TYPE_T.getCode().equals(areaData.getCode())){
typeVO.setNumTwo(voltageVO.getTotalMonitorNum());
}
}else{
//电压 超标-3%- -10%
if(DicDataEnum.EVENT_TYPE_Z.getCode().equals(areaData.getCode())){
typeVO.setNumOne(voltageVO.getTotalMonitorNum());
}
//电压 超标 -10%
if(DicDataEnum.EVENT_TYPE_X.getCode().equals(areaData.getCode())){
typeVO.setNumTwo(voltageVO.getTotalMonitorNum());
}
}
}
}
}
@Override
public List<OverviewVO.NumVO> getPowerFactor(OverviewParam param) {
List<OverviewVO.NumVO> info=new ArrayList<>();
//获取部门信息
Dept dept = deptFeignClient.getDeptById(param.getId()).getData();
if(ObjectUtil.isNotNull(dept)){
//获取监测对象
List<DictData> monitorType = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.MONITOR_OBJ.getCode()).getData();
Map<String, DictData> dictDataMap = monitorType.stream()
.collect(Collectors.toMap(DictData::getId, Function.identity()));
//初始化对象
OverviewVO.NumVO vo;
for (DictData dictData : monitorType) {
vo=new OverviewVO.NumVO();
vo.setNumOne(0);
vo.setNumTwo(0);
vo.setNumThree(0);
info.add(vo);
}
//获取台区电能质量事件类型
List<DictData> areaType = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.AREA_PQ_EVENT_TYPE.getCode()).getData();
Map<String, DictData> areaMap = areaType.stream()
.collect(Collectors.toMap(DictData::getId, Function.identity()));
if(CollectionUtil.isNotEmpty(areaType)){
List<String> typeID=new ArrayList<>();
//取出电压相关的字典
for (DictData dictData : areaType) {
//功率因数 低功率因数0.8-0.9
if(DicDataEnum.EVENT_TYPE_L.getCode().equals(dictData.getCode())){
typeID.add(dictData.getId());
}
//功率因数 低功率因数0.7-0.8
if(DicDataEnum.EVENT_TYPE_P.getCode().equals(dictData.getCode())){
typeID.add(dictData.getId());
}
//功率因数 低功率因数0.7以下
if(DicDataEnum.EVENT_TYPE_O.getCode().equals(dictData.getCode())){
typeID.add(dictData.getId());
}
}
//数据库查询
List<String> deptCodes = deptDTOS.stream().map(DeptDTO::getCode).collect(Collectors.toList());
List<OverviewVO.VoltageVO> voltageVOS = rStatOrgPvPowerQualityMMapper.selectVoltage(deptCodes, typeID);
if(CollectionUtil.isNotEmpty(voltageVOS)){
Map<String, List<OverviewVO.VoltageVO>> voltageMap = voltageVOS.stream().collect(
Collectors.groupingBy(OverviewVO.VoltageVO::getMonitoringObject));
List<OverviewVO.VoltageVO> factorVOS = rStatOrgPvPowerQualityMMapper.selectVoltage(Arrays.asList(dept.getCode()), typeID,param);
Map<String, List<OverviewVO.VoltageVO>> voltageMap = factorVOS.stream().collect(
Collectors.groupingBy(OverviewVO.VoltageVO::getMonitoringObject));
if(CollectionUtil.isNotEmpty(voltageMap)){
//初始化对象
voltageMap.forEach((key,value)->{
OverviewVO.NumVO numVO = new OverviewVO.NumVO();
numVO.setNumOne(0);
numVO.setNumTwo(0);
numVO.setNumThree(0);
if (dictDataMap.containsKey(key)) {
DictData dictData = dictDataMap.get(key);
//一类监测点
if(DicDataEnum.MAIN_CHANGE.getCode().equals(dictData.getCode())){
getAreaFactor(areaMap, value, numVO);
info.set(0,numVO);
}
//二类监测点
if(DicDataEnum.PHOTOVOLT.getCode().equals(dictData.getCode())){
getAreaFactor(areaMap, value, numVO);
info.set(1,numVO);
}
//三类监测点
if(DicDataEnum.FEEDER_TENKV.getCode().equals(dictData.getCode())){
getAreaFactor(areaMap, value, numVO);
info.set(2,numVO);
}
}
});
}
}
}
return info;
}
/**
* 功率因数
* @param areaMap
* @param value
* @param numVO
*/
private void getAreaFactor(Map<String, DictData> areaMap, List<OverviewVO.VoltageVO> value, OverviewVO.NumVO numVO) {
for (OverviewVO.VoltageVO voltageVO : value) {
if (areaMap.containsKey(voltageVO.getAreaPqEventType())) {
DictData areaData = areaMap.get(voltageVO.getAreaPqEventType());
//功率因数 低功率因数0.8-0.9
if(DicDataEnum.EVENT_TYPE_L.getCode().equals(areaData.getCode())){
numVO.setNumOne(voltageVO.getTotalMonitorNum());
}
//功率因数 低功率因数0.7-0.8
if(DicDataEnum.EVENT_TYPE_P.getCode().equals(areaData.getCode())){
numVO.setNumTwo(voltageVO.getTotalMonitorNum());
}
//功率因数 低功率因数0.7以下
if(DicDataEnum.EVENT_TYPE_O.getCode().equals(areaData.getCode())){
numVO.setNumThree(voltageVO.getTotalMonitorNum());
}
}
}
}
@Override
public List<OverviewVO.IcoVO> getBackTheTide(OverviewParam param) {
List<OverviewVO.IcoVO> vos=new ArrayList<>();
//获取部门信息
Dept dept = deptFeignClient.getDeptById(param.getId()).getData();
if(ObjectUtil.isNotNull(dept)) {
//获取监测对象
List<DictData> monitorType = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.MONITOR_OBJ.getCode()).getData();
Map<String, DictData> dictDataMap = monitorType.stream()
.collect(Collectors.toMap(DictData::getId, Function.identity()));
//初始化对象
OverviewVO.IcoVO vo;
for (DictData dictData : monitorType) {
vo = new OverviewVO.IcoVO();
vo.setNumOne(0);
vo.setNumTwo(0);
vos.add(vo);
}
//获取台区电能质量事件类型
List<DictData> areaType = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.AREA_PQ_EVENT_TYPE.getCode()).getData();
Map<String, DictData> areaMap = areaType.stream()
.collect(Collectors.toMap(DictData::getId, Function.identity()));
if (CollectionUtil.isNotEmpty(areaType)) {
List<String> typeID = new ArrayList<>();
//取出电压相关的字典
for (DictData dictData : areaType) {
//潮流倒送
if (DicDataEnum.EVENT_TYPE_U.getCode().equals(dictData.getCode())) {
typeID.add(dictData.getId());
}
//重过载
if (DicDataEnum.EVENT_TYPE_C.getCode().equals(dictData.getCode())) {
typeID.add(dictData.getId());
}
}
//数据库查询
List<OverviewVO.VoltageVO> voltageVOS = rStatOrgPvPowerQualityMMapper.selectVoltage(Arrays.asList(dept.getCode()), typeID, param);
Map<String, List<OverviewVO.VoltageVO>> voltageMap = voltageVOS.stream().collect(
Collectors.groupingBy(OverviewVO.VoltageVO::getMonitoringObject));
if (CollectionUtil.isNotEmpty(voltageMap)) {
//初始化对象
voltageMap.forEach((key, value) -> {
OverviewVO.IcoVO typeVO = new OverviewVO.IcoVO();
typeVO.setNumOne(0);
typeVO.setNumTwo(0);
if (dictDataMap.containsKey(key)) {
DictData dictData = dictDataMap.get(key);
//一类监测点
if (DicDataEnum.MAIN_CHANGE.getCode().equals(dictData.getCode())) {
getAreaBackTheTide(areaMap, value, typeVO);
vos.set(0, typeVO);
}
//二类监测点
if (DicDataEnum.PHOTOVOLT.getCode().equals(dictData.getCode())) {
getAreaBackTheTide(areaMap, value, typeVO);
vos.set(1, typeVO);
}
//三类监测点
if (DicDataEnum.FEEDER_TENKV.getCode().equals(dictData.getCode())) {
getAreaBackTheTide(areaMap, value, typeVO);
vos.set(2, typeVO);
}
}
});
}
}
}
return vos;
}
/**
* 潮流倒送对象赋值
* @param areaMap
* @param value
* @param typeVO
*/
private void getAreaBackTheTide(Map<String, DictData> areaMap, List<OverviewVO.VoltageVO> value, OverviewVO.IcoVO typeVO) {
for (OverviewVO.VoltageVO voltageVO : value) {
if (areaMap.containsKey(voltageVO.getAreaPqEventType())) {
DictData areaData = areaMap.get(voltageVO.getAreaPqEventType());
//潮流倒送
if (DicDataEnum.EVENT_TYPE_U.getCode().equals(areaData.getCode())) {
typeVO.setNumOne(voltageVO.getTotalMonitorNum());
}
//重过载
if (DicDataEnum.EVENT_TYPE_C.getCode().equals(areaData.getCode())) {
typeVO.setNumTwo(voltageVO.getTotalMonitorNum());
}
}
}
return null;
}
}

View File

@@ -98,7 +98,7 @@ public class WindFarmIndexOverviewServiceImpl implements WindFarmIndexOverview {
return Collections.emptyList();
}
// 获取单位code
List<String> deptCode = data.stream().map(Dept::getCode).collect(Collectors.toList());
List<String> deptCode = data.stream().filter(r-> !r.getId().equals(param.getId())).map(Dept::getCode).collect(Collectors.toList());
if (CollUtil.isEmpty(deptCode)) {
return Collections.emptyList();
}
@@ -108,7 +108,7 @@ public class WindFarmIndexOverviewServiceImpl implements WindFarmIndexOverview {
return Collections.emptyList();
}
// 将单位信息转换成map集合
Map<String, String> dataMap = data.stream().collect(Collectors.toMap(Dept::getCode, Dept::getName));
Map<String, String> dataMap = data.stream().filter(r-> !r.getId().equals(param.getId())).collect(Collectors.toMap(Dept::getCode, Dept::getName));
return pos.stream().map(po -> {
RStatOrgWfIndexOverviewVO vo = new RStatOrgWfIndexOverviewVO();
vo.setMonitorNum(po.getMonitorNum());