合并代码
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
package com.njcn.harmonic.service.specialanalysis;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.njcn.harmonic.pojo.param.StreamReverseParam;
|
||||
import com.njcn.harmonic.pojo.vo.PermeabilityVO;
|
||||
|
||||
/**
|
||||
* @Title PermeabilityService
|
||||
* @Package com.njcn.harmonic.service.specialanalysis
|
||||
* @Author jianghaifei
|
||||
* @Date 2022-11-28 11:27
|
||||
* @Version V1.0
|
||||
*/
|
||||
public interface PermeabilityService {
|
||||
Page<PermeabilityVO> getPermeabilityList(StreamReverseParam streamReverseParam);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.njcn.harmonic.service.specialanalysis;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.harmonic.pojo.po.RMpEmissionIExcessRateM;
|
||||
|
||||
/**
|
||||
* @author jianghf
|
||||
* @description 针对表【r_mp__emission_i_excess_rate_m(风电场发射特性-月表/各次谐波电流超标占比)】的数据库操作Service
|
||||
* @createDate 2022-11-30 18:55:11
|
||||
*/
|
||||
public interface RMpEmissionIExcessRateMService extends IService<RMpEmissionIExcessRateM> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.njcn.harmonic.service.specialanalysis;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.harmonic.pojo.po.RMpEmissionIM;
|
||||
|
||||
/**
|
||||
* @author jianghf
|
||||
* @description 针对表【r_mp__emission_i_m(风电场发射特性-月表/各次谐波电流含有率)】的数据库操作Service
|
||||
* @createDate 2022-11-30 18:55:11
|
||||
*/
|
||||
public interface RMpEmissionIMService extends IService<RMpEmissionIM> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.njcn.harmonic.service.specialanalysis;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.harmonic.pojo.param.RMpEmissionParam;
|
||||
import com.njcn.harmonic.pojo.po.RMpEmissionM;
|
||||
import com.njcn.harmonic.pojo.vo.RMpEmissionChartVO;
|
||||
import com.njcn.harmonic.pojo.vo.RMpEmissionVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jianghf
|
||||
* @description 针对表【r_mp__emission_m(风电场发射特性-月表)】的数据库操作Service
|
||||
* @createDate 2022-11-30 18:55:11
|
||||
*/
|
||||
public interface RMpEmissionMService extends IService<RMpEmissionM> {
|
||||
|
||||
List<RMpEmissionVO> getRMpEmissionList(RMpEmissionParam rMpEmissionParam);
|
||||
|
||||
RMpEmissionChartVO getRMpEmissionChart(RMpEmissionParam rMpEmissionParam);
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.njcn.harmonic.service.specialanalysis;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.harmonic.pojo.param.RMpInfluenceParam;
|
||||
import com.njcn.harmonic.pojo.po.RMpInfluenceM;
|
||||
import com.njcn.harmonic.pojo.vo.RMpInfluenceChartVO;
|
||||
import com.njcn.harmonic.pojo.vo.RMpInfluenceVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jianghf
|
||||
* @description 针对表【r_mp__influence_m(风电场影响特性-月表)】的数据库操作Service
|
||||
* @createDate 2022-12-01 19:28:15
|
||||
*/
|
||||
public interface RMpInfluenceMService extends IService<RMpInfluenceM> {
|
||||
|
||||
List<RMpInfluenceVO> getRMpInfluenceList(RMpInfluenceParam rMpInfluenceParam);
|
||||
|
||||
RMpInfluenceChartVO getRMpInfluenceChart(RMpInfluenceParam rMpInfluenceParam);
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.njcn.harmonic.service.specialanalysis;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.harmonic.pojo.po.RMpInfluenceVExcessRateM;
|
||||
|
||||
/**
|
||||
* @author jianghf
|
||||
* @description 针对表【r_mp__influence_v_excess_rate_m(风电场影响特性-月表/各次谐波电压超标占比)】的数据库操作Service
|
||||
* @createDate 2022-12-01 19:28:15
|
||||
*/
|
||||
public interface RMpInfluenceVExcessRateMService extends IService<RMpInfluenceVExcessRateM> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.njcn.harmonic.service.specialanalysis;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.harmonic.pojo.po.RMpInfluenceVM;
|
||||
|
||||
/**
|
||||
* @author jianghf
|
||||
* @description 针对表【r_mp__influence_v_m(风电场影响特性-月表/各次谐波电压含有率)】的数据库操作Service
|
||||
* @createDate 2022-12-01 19:28:15
|
||||
*/
|
||||
public interface RMpInfluenceVMService extends IService<RMpInfluenceVM> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.njcn.harmonic.service.specialanalysis;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.harmonic.pojo.po.RStatOrgPvPermeabilityM;
|
||||
|
||||
/**
|
||||
* @author jianghf
|
||||
* @description 针对表【r_stat_org_pv_permeability_m(分布式光伏-台区渗透率统计月表)】的数据库操作Service
|
||||
* @createDate 2022-11-28 16:14:21
|
||||
*/
|
||||
public interface RStatOrgPvPermeabilityMService extends IService<RStatOrgPvPermeabilityM> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.njcn.harmonic.service.specialanalysis;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.njcn.harmonic.pojo.param.StreamReverseParam;
|
||||
import com.njcn.harmonic.pojo.vo.StreamReverseCountyVO;
|
||||
import com.njcn.harmonic.pojo.vo.StreamReverseOrgVO;
|
||||
|
||||
/**
|
||||
* @Title StreamReverseService
|
||||
* @Package com.njcn.harmonic.service.specialanalysis
|
||||
* @Author jianghaifei
|
||||
* @Date 2022-11-25 11:26
|
||||
* @Version V1.0
|
||||
*/
|
||||
public interface StreamReverseService {
|
||||
/**
|
||||
* 潮流倒送分析-单位
|
||||
* @param streamReverseParam
|
||||
* @return
|
||||
*/
|
||||
Page<StreamReverseOrgVO> streamReverseByOrg(StreamReverseParam streamReverseParam);
|
||||
|
||||
Page<StreamReverseCountyVO> streamReverseByCounty(StreamReverseParam streamReverseParam);
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.njcn.harmonic.service.specialanalysis;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.harmonic.pojo.po.WfOfOverviewPO;
|
||||
|
||||
/**
|
||||
* @author yzh
|
||||
* @description 针对表【wf_of_overview(风电场概况)】的数据库操作Service
|
||||
* @createDate 2022-12-05 14:17:26
|
||||
*/
|
||||
public interface WfOfOverviewService extends IService<WfOfOverviewPO> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.njcn.harmonic.service.specialanalysis;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.harmonic.pojo.po.WfOfOverviewVoltagePO;
|
||||
|
||||
/**
|
||||
* @author yzh
|
||||
* @description 针对表【wf_of_overview_voltage(风电场概况-按电压等级)】的数据库操作Service
|
||||
* @createDate 2022-12-05 14:22:44
|
||||
*/
|
||||
public interface WfOfOverviewVoltageService extends IService<WfOfOverviewVoltagePO> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
package com.njcn.harmonic.service.specialanalysis;
|
||||
|
||||
import com.njcn.harmonic.pojo.param.RMpInfluenceParam;
|
||||
import com.njcn.harmonic.pojo.vo.RStatOrgWfIndexOverviewVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 专项分析-风电场-指标总览
|
||||
*
|
||||
* @author yzh
|
||||
* @date 2022/11/30
|
||||
*/
|
||||
|
||||
public interface WindFarmIndexOverview {
|
||||
|
||||
/**
|
||||
* 获取风电场指标总览-电流指标
|
||||
*
|
||||
* @param param 条件参数
|
||||
* @return com.njcn.common.pojo.response.HttpResult<java.util.List < com.njcn.harmonic.pojo.vo.RMpPvPowerDetailVO>>
|
||||
* @author yzh
|
||||
* @date 2022/11/30
|
||||
*/
|
||||
List<RStatOrgWfIndexOverviewVO> getHarmonicCurrent(RMpInfluenceParam param);
|
||||
|
||||
/**
|
||||
* 获取风电场指标总览-电压指标
|
||||
*
|
||||
* @param param 条件参数
|
||||
* @return com.njcn.common.pojo.response.HttpResult<java.util.List < com.njcn.harmonic.pojo.vo.RMpPvPowerDetailVO>>
|
||||
* @author yzh
|
||||
* @date 2022/11/30
|
||||
*/
|
||||
List<RStatOrgWfIndexOverviewVO> getHarmonicVoltage(RMpInfluenceParam param);
|
||||
|
||||
/**
|
||||
* 获取风电场指标总览-各单位指标
|
||||
*
|
||||
* @param param 条件参数
|
||||
* @return com.njcn.common.pojo.response.HttpResult<java.util.List < com.njcn.harmonic.pojo.vo.RStatOrgWfIndexOverviewVO>>
|
||||
* @author yzh
|
||||
* @date 2022/11/30
|
||||
*/
|
||||
List<RStatOrgWfIndexOverviewVO> getUnitCurrent(RMpInfluenceParam param);
|
||||
|
||||
/**
|
||||
* 获取风电场指标总览-各单位电压
|
||||
*
|
||||
* @param param 条件参数
|
||||
* @return com.njcn.common.pojo.response.HttpResult<java.util.List < com.njcn.harmonic.pojo.vo.RStatOrgWfIndexOverviewVO>>
|
||||
* @author yzh
|
||||
* @date 2022/12/1
|
||||
*/
|
||||
List<RStatOrgWfIndexOverviewVO> getUnitVoltage(RMpInfluenceParam param);
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.njcn.harmonic.service.specialanalysis;
|
||||
|
||||
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
|
||||
import com.njcn.harmonic.pojo.vo.WfOfOverviewVO;
|
||||
import com.njcn.harmonic.pojo.vo.WfOfOverviewVoltageVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 专项分析-风电场-概述
|
||||
*
|
||||
* @author yzh
|
||||
* @date 2022/11/30
|
||||
*/
|
||||
|
||||
public interface WindFarmOverviewService {
|
||||
|
||||
/**
|
||||
* 获取风电场概述地图
|
||||
*
|
||||
* @param param 条件参数
|
||||
* @return java.util.List<com.njcn.harmonic.pojo.vo.RMpPvPowerDetailVO>
|
||||
* @author yzh
|
||||
* @date 2022/12/5
|
||||
*/
|
||||
List<?> getWindFarmOverviewMap(StatisticsBizBaseParam param);
|
||||
|
||||
/**
|
||||
* 获取风电场概述数值
|
||||
*
|
||||
* @param param 条件参数
|
||||
* @return com.njcn.common.pojo.response.HttpResult<java.util.List < com.njcn.harmonic.pojo.vo.RMpPvPowerDetailVO>>
|
||||
* @author yzh
|
||||
* @date 2022/11/30
|
||||
*/
|
||||
WfOfOverviewVO getWindFarmOverviewValues(StatisticsBizBaseParam param);
|
||||
|
||||
/**
|
||||
* 获取风电场概述环形图
|
||||
*
|
||||
* @param param 条件参数
|
||||
* @return com.njcn.common.pojo.response.HttpResult<java.util.List < com.njcn.harmonic.pojo.vo.RMpPvPowerDetailVO>>
|
||||
* @author yzh
|
||||
* @date 2022/12/5
|
||||
*/
|
||||
List<WfOfOverviewVoltageVO> getWindFarmOverviewCircularGraph(StatisticsBizBaseParam param);
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
package com.njcn.harmonic.service.specialanalysis.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.njcn.harmonic.mapper.specialanalysis.RStatOrgPvPermeabilityMMapper;
|
||||
import com.njcn.harmonic.pojo.param.StreamReverseParam;
|
||||
import com.njcn.harmonic.pojo.vo.PermeabilityVO;
|
||||
import com.njcn.harmonic.service.specialanalysis.PermeabilityService;
|
||||
import com.njcn.system.api.DicDataFeignClient;
|
||||
import com.njcn.system.enums.DicDataTypeEnum;
|
||||
import com.njcn.system.pojo.po.DictData;
|
||||
import com.njcn.user.api.DeptFeignClient;
|
||||
import com.njcn.user.pojo.po.Dept;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Title PermeabilityServiceImpl
|
||||
* @Package com.njcn.harmonic.service.specialanalysis.impl
|
||||
* @Author jianghaifei
|
||||
* @Date 2022-11-28 11:29
|
||||
* @Version V1.0
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class PermeabilityServiceImpl implements PermeabilityService {
|
||||
|
||||
private final RStatOrgPvPermeabilityMMapper rStatOrgPvPermeabilityMMapper;
|
||||
|
||||
private final DeptFeignClient deptFeignClient;
|
||||
|
||||
private final DicDataFeignClient dicDataFeignClient;
|
||||
/***
|
||||
* 渗透率分析
|
||||
* @author jianghaifei
|
||||
* @date 2022-11-28 16:22
|
||||
* @param streamReverseParam
|
||||
* @return com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.njcn.harmonic.pojo.vo.PermeabilityVO>
|
||||
*/
|
||||
@Override
|
||||
public Page<PermeabilityVO> getPermeabilityList(StreamReverseParam streamReverseParam) {
|
||||
//提取参数
|
||||
String id = streamReverseParam.getId(); //单位
|
||||
String startTime = streamReverseParam.getStartTime(); //开始时间
|
||||
String endTime = streamReverseParam.getEndTime(); //结束时间
|
||||
Integer pageNum = streamReverseParam.getPageNum() != null && streamReverseParam.getPageNum() != 0 ? streamReverseParam.getPageNum() : 1; //页码
|
||||
Integer pageSize = streamReverseParam.getPageSize() != null && streamReverseParam.getPageSize() != 0 ? streamReverseParam.getPageSize() : 10; //页面尺寸
|
||||
|
||||
//获取部门信息
|
||||
// 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());
|
||||
//获取各渗透率字典
|
||||
List<DictData> rateList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.PERMEABILITY_TYPE.getCode()).getData();
|
||||
//将渗透率字典转换为查询条件
|
||||
Map<String, Object> condMap = rateList.stream().collect(Collectors.toMap(DictData::getCode, DictData::getId));
|
||||
condMap.put("orgIdList", deptCodes);
|
||||
condMap.put("startTime", startTime);
|
||||
condMap.put("endTime", endTime);
|
||||
Page<PermeabilityVO> permeabilityList = rStatOrgPvPermeabilityMMapper.getPermeabilityList(new Page<>(pageNum, pageSize), condMap);
|
||||
List<PermeabilityVO> records = permeabilityList.getRecords();
|
||||
records.forEach(item -> {
|
||||
item.setOrgName(deptMap.get(item.getOrgId()).getName());
|
||||
});
|
||||
return permeabilityList;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.njcn.harmonic.service.specialanalysis.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.harmonic.mapper.specialanalysis.RMpEmissionIExcessRateMMapper;
|
||||
import com.njcn.harmonic.pojo.po.RMpEmissionIExcessRateM;
|
||||
import com.njcn.harmonic.service.specialanalysis.RMpEmissionIExcessRateMService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @author jianghf
|
||||
* @description 针对表【r_mp__emission_i_excess_rate_m(风电场发射特性-月表/各次谐波电流超标占比)】的数据库操作Service实现
|
||||
* @createDate 2022-11-30 18:55:11
|
||||
*/
|
||||
@Service
|
||||
public class RMpEmissionIExcessRateMServiceImpl extends ServiceImpl<RMpEmissionIExcessRateMMapper, RMpEmissionIExcessRateM>
|
||||
implements RMpEmissionIExcessRateMService{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.njcn.harmonic.service.specialanalysis.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.harmonic.mapper.specialanalysis.RMpEmissionIMMapper;
|
||||
import com.njcn.harmonic.pojo.po.RMpEmissionIM;
|
||||
import com.njcn.harmonic.service.specialanalysis.RMpEmissionIMService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @author jianghf
|
||||
* @description 针对表【r_mp__emission_i_m(风电场发射特性-月表/各次谐波电流含有率)】的数据库操作Service实现
|
||||
* @createDate 2022-11-30 18:55:11
|
||||
*/
|
||||
@Service
|
||||
public class RMpEmissionIMServiceImpl extends ServiceImpl<RMpEmissionIMMapper, RMpEmissionIM>
|
||||
implements RMpEmissionIMService{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,162 @@
|
||||
package com.njcn.harmonic.service.specialanalysis.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.device.pms.api.MonitorClient;
|
||||
import com.njcn.harmonic.mapper.specialanalysis.RMpEmissionMMapper;
|
||||
import com.njcn.harmonic.pojo.param.RMpEmissionParam;
|
||||
import com.njcn.harmonic.pojo.po.RMpEmissionIExcessRateM;
|
||||
import com.njcn.harmonic.pojo.po.RMpEmissionIM;
|
||||
import com.njcn.harmonic.pojo.po.RMpEmissionM;
|
||||
import com.njcn.harmonic.pojo.vo.RMpEmissionChartVO;
|
||||
import com.njcn.harmonic.pojo.vo.RMpEmissionIExcessRateMVO;
|
||||
import com.njcn.harmonic.pojo.vo.RMpEmissionIMVO;
|
||||
import com.njcn.harmonic.pojo.vo.RMpEmissionVO;
|
||||
import com.njcn.harmonic.service.specialanalysis.RMpEmissionIExcessRateMService;
|
||||
import com.njcn.harmonic.service.specialanalysis.RMpEmissionIMService;
|
||||
import com.njcn.harmonic.service.specialanalysis.RMpEmissionMService;
|
||||
import com.njcn.user.api.DeptFeignClient;
|
||||
import com.njcn.user.pojo.po.Dept;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author jianghf
|
||||
* @description 针对表【r_mp__emission_m(风电场发射特性-月表)】的数据库操作Service实现
|
||||
* @createDate 2022-11-30 18:55:11
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class RMpEmissionMServiceImpl extends ServiceImpl<RMpEmissionMMapper, RMpEmissionM>
|
||||
implements RMpEmissionMService{
|
||||
|
||||
private final DeptFeignClient deptFeignClient;
|
||||
|
||||
private final RMpEmissionIMService rMpEmissionIMService;
|
||||
|
||||
private final RMpEmissionIExcessRateMService rMpEmissionIExcessRateMService;
|
||||
|
||||
private final MonitorClient monitorClient;
|
||||
|
||||
/***
|
||||
* 风电场发射特性
|
||||
* @author jianghaifei
|
||||
* @date 2022-11-30 20:05
|
||||
* @param rMpEmissionParam
|
||||
* @return java.util.List<com.njcn.harmonic.pojo.vo.RMpEmissionVO>
|
||||
*/
|
||||
@Override
|
||||
public List<RMpEmissionVO> getRMpEmissionList(RMpEmissionParam rMpEmissionParam) {
|
||||
//提取参数
|
||||
String id = rMpEmissionParam.getId(); //单位id
|
||||
String startTime = rMpEmissionParam.getStartTime(); //开始时间
|
||||
String endTime = rMpEmissionParam.getEndTime(); //结束时间
|
||||
String monitorTag = rMpEmissionParam.getMonitorTag(); //监测点标签
|
||||
if (StringUtils.isBlank(id)) {
|
||||
throw new BusinessException(CommonResponseEnum.NO_DATA, "单位id不可为空");
|
||||
}
|
||||
//获取当前部门和子部门信息
|
||||
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());
|
||||
|
||||
//查询风电场信息
|
||||
// PmsMonitorParam pmsMonitorParam = new PmsMonitorParam();
|
||||
// pmsMonitorParam.setMonitorTag("风电场");
|
||||
// pmsMonitorParam.setOrgIds(deptCodes);
|
||||
// List<PmsMonitorDTO> monitorList = monitorClient.getMonitorInfoListByCond(pmsMonitorParam).getData();
|
||||
// if (CollUtil.isEmpty(monitorList)) {
|
||||
// new ArrayList<>();
|
||||
// }
|
||||
|
||||
//查询风电场发射特性信息
|
||||
LambdaQueryWrapper<RMpEmissionM> emissionWrapper = new LambdaQueryWrapper<>();
|
||||
emissionWrapper.in(RMpEmissionM::getOrgNo, deptCodes)
|
||||
.eq(StringUtils.isNotBlank(monitorTag), RMpEmissionM::getMonitorTag, monitorTag)
|
||||
// .in(RMpEmissionM::getMeasurementPointId, monitorList)
|
||||
.ge(StringUtils.isNotBlank(startTime), RMpEmissionM::getDataDate, startTime)
|
||||
.le(StringUtils.isNotBlank(endTime), RMpEmissionM::getDataDate, endTime);
|
||||
List<RMpEmissionM> emissionList = this.list(emissionWrapper);
|
||||
|
||||
if (CollUtil.isEmpty(emissionList)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
|
||||
//封装返回数据
|
||||
List<RMpEmissionVO> resultList = emissionList.stream().map(item -> {
|
||||
RMpEmissionVO rMpEmissionVO = new RMpEmissionVO();
|
||||
//单位ID、单位名称、负序电流不平衡度、负序电流不平衡度平均超标天数、负序电流不平衡度超标占比、各次谐波电流平均超标天数
|
||||
BeanUtils.copyProperties(item, rMpEmissionVO);
|
||||
rMpEmissionVO.setOrgName(deptMap.get(item.getOrgNo()).getName()); //单位名称
|
||||
|
||||
return rMpEmissionVO;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
return resultList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 发射特性-折线图
|
||||
* @param rMpEmissionParam
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public RMpEmissionChartVO getRMpEmissionChart(RMpEmissionParam rMpEmissionParam) {
|
||||
//提取参数
|
||||
String id = rMpEmissionParam.getId(); //单位id
|
||||
String monitorTag = rMpEmissionParam.getMonitorTag(); //监测点标签
|
||||
String startTime = rMpEmissionParam.getStartTime(); //开始时间
|
||||
String endTime = rMpEmissionParam.getEndTime(); //结束时间
|
||||
|
||||
if (StringUtils.isBlank(id)) {
|
||||
throw new BusinessException(CommonResponseEnum.NO_DATA, "单位id不可为空");
|
||||
}
|
||||
//获取当前部门
|
||||
Dept data = deptFeignClient.getDeptById(id).getData();
|
||||
|
||||
//查询风电场发射特性/各次谐波电流含有率信息
|
||||
LambdaQueryWrapper<RMpEmissionIM> emissionIWrapper = new LambdaQueryWrapper<>();
|
||||
emissionIWrapper.eq(RMpEmissionIM::getOrgNo, data.getCode())
|
||||
// .in(RMpEmissionIM::getMeasurementPointId, monitorList)
|
||||
.eq(StringUtils.isNotBlank(monitorTag), RMpEmissionIM::getMonitorTag, monitorTag)
|
||||
.ge(StringUtils.isNotBlank(startTime), RMpEmissionIM::getDataDate, startTime)
|
||||
.le(StringUtils.isNotBlank(endTime), RMpEmissionIM::getDataDate, endTime);
|
||||
RMpEmissionIM emissionI = rMpEmissionIMService.list(emissionIWrapper).get(0);
|
||||
|
||||
//查询风电场发射特性/各次谐波电流超标占比
|
||||
LambdaQueryWrapper<RMpEmissionIExcessRateM> emissionIExcessRateWrapper = new LambdaQueryWrapper<>();
|
||||
emissionIExcessRateWrapper.eq(RMpEmissionIExcessRateM::getOrgNo, data.getCode())
|
||||
// .in(RMpEmissionIExcessRateM::getMeasurementPointId, monitorList)
|
||||
.eq(StringUtils.isNotBlank(monitorTag), RMpEmissionIExcessRateM::getMonitorTag, monitorTag)
|
||||
.ge(StringUtils.isNotBlank(startTime), RMpEmissionIExcessRateM::getDataDate, startTime)
|
||||
.le(StringUtils.isNotBlank(endTime), RMpEmissionIExcessRateM::getDataDate, endTime);
|
||||
RMpEmissionIExcessRateM rate = rMpEmissionIExcessRateMService.list(emissionIExcessRateWrapper).get(0);
|
||||
|
||||
RMpEmissionChartVO rMpEmissionChartVO = new RMpEmissionChartVO();
|
||||
RMpEmissionIMVO rMpEmissionIMVO = new RMpEmissionIMVO();
|
||||
BeanUtils.copyProperties(emissionI, rMpEmissionIMVO);
|
||||
rMpEmissionChartVO.setRMpEmissionIMVO(rMpEmissionIMVO);
|
||||
|
||||
RMpEmissionIExcessRateMVO rMpEmissionIExcessRateMVO = new RMpEmissionIExcessRateMVO();
|
||||
BeanUtils.copyProperties(rate, rMpEmissionIExcessRateMVO);
|
||||
rMpEmissionChartVO.setRMpEmissionIExcessRateMVO(rMpEmissionIExcessRateMVO);
|
||||
|
||||
return rMpEmissionChartVO;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,155 @@
|
||||
package com.njcn.harmonic.service.specialanalysis.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.device.pms.api.MonitorClient;
|
||||
import com.njcn.harmonic.mapper.specialanalysis.RMpInfluenceMMapper;
|
||||
import com.njcn.harmonic.pojo.param.RMpInfluenceParam;
|
||||
import com.njcn.harmonic.pojo.po.RMpInfluenceM;
|
||||
import com.njcn.harmonic.pojo.po.RMpInfluenceVExcessRateM;
|
||||
import com.njcn.harmonic.pojo.po.RMpInfluenceVM;
|
||||
import com.njcn.harmonic.pojo.vo.RMpInfluenceChartVO;
|
||||
import com.njcn.harmonic.pojo.vo.RMpInfluenceVExcessRateMVO;
|
||||
import com.njcn.harmonic.pojo.vo.RMpInfluenceVMVO;
|
||||
import com.njcn.harmonic.pojo.vo.RMpInfluenceVO;
|
||||
import com.njcn.harmonic.service.specialanalysis.RMpInfluenceMService;
|
||||
import com.njcn.harmonic.service.specialanalysis.RMpInfluenceVExcessRateMService;
|
||||
import com.njcn.harmonic.service.specialanalysis.RMpInfluenceVMService;
|
||||
import com.njcn.user.api.DeptFeignClient;
|
||||
import com.njcn.user.pojo.po.Dept;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author jianghf
|
||||
* @description 针对表【r_mp__influence_m(风电场影响特性-月表)】的数据库操作Service实现
|
||||
* @createDate 2022-12-01 19:28:15
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class RMpInfluenceMServiceImpl extends ServiceImpl<RMpInfluenceMMapper, RMpInfluenceM>
|
||||
implements RMpInfluenceMService{
|
||||
|
||||
private final DeptFeignClient deptFeignClient;
|
||||
|
||||
private final RMpInfluenceVMService rMpInfluenceVMService;
|
||||
|
||||
private final RMpInfluenceVExcessRateMService rMpInfluenceVExcessRateMService;
|
||||
|
||||
private final MonitorClient monitorClient;
|
||||
|
||||
@Override
|
||||
public List<RMpInfluenceVO> getRMpInfluenceList(RMpInfluenceParam rMpInfluenceParam) {
|
||||
//提取参数
|
||||
String id = rMpInfluenceParam.getId(); //单位id
|
||||
String startTime = rMpInfluenceParam.getStartTime(); //开始时间
|
||||
String endTime = rMpInfluenceParam.getEndTime(); //结束时间
|
||||
String monitorTag = rMpInfluenceParam.getMonitorTag(); //监测点标签
|
||||
if (StringUtils.isBlank(id)) {
|
||||
throw new BusinessException(CommonResponseEnum.NO_DATA, "单位id不可为空");
|
||||
}
|
||||
//获取当前部门和子部门信息
|
||||
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());
|
||||
|
||||
//查询风电场信息
|
||||
// PmsMonitorParam pmsMonitorParam = new PmsMonitorParam();
|
||||
// pmsMonitorParam.setMonitorTag("风电场");
|
||||
// pmsMonitorParam.setOrgIds(deptCodes);
|
||||
// List<PmsMonitorDTO> monitorList = monitorClient.getMonitorInfoListByCond(pmsMonitorParam).getData();
|
||||
// if (CollUtil.isEmpty(monitorList)) {
|
||||
// new ArrayList<>();
|
||||
// }
|
||||
|
||||
//查询风电场发射特性信息
|
||||
LambdaQueryWrapper<RMpInfluenceM> emissionWrapper = new LambdaQueryWrapper<>();
|
||||
emissionWrapper.in(RMpInfluenceM::getOrgNo, deptCodes)
|
||||
.eq(StringUtils.isNotBlank(monitorTag), RMpInfluenceM::getMonitorTag, monitorTag)
|
||||
// .in(RMpInfluenceM::getMeasurementPointId, monitorList)
|
||||
.ge(StringUtils.isNotBlank(startTime), RMpInfluenceM::getDataDate, startTime)
|
||||
.le(StringUtils.isNotBlank(endTime), RMpInfluenceM::getDataDate, endTime);
|
||||
List<RMpInfluenceM> emissionList = this.list(emissionWrapper);
|
||||
|
||||
if (CollUtil.isEmpty(emissionList)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
//封装返回数
|
||||
List<RMpInfluenceVO> resultList = emissionList.stream().map(item -> {
|
||||
RMpInfluenceVO rMpInfluenceVO = new RMpInfluenceVO();
|
||||
//单位ID、单位名称、负序电压不平衡度、负序电压不平衡度平均超标天数、负序电压不平衡度超标占比、各次谐波电压平均超标天数
|
||||
BeanUtils.copyProperties(item, rMpInfluenceVO);
|
||||
rMpInfluenceVO.setOrgName(deptMap.get(item.getOrgNo()).getName()); //单位名称
|
||||
|
||||
return rMpInfluenceVO;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
return resultList;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 影响特性-图表
|
||||
* @param rMpInfluenceParam
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public RMpInfluenceChartVO getRMpInfluenceChart(RMpInfluenceParam rMpInfluenceParam) {
|
||||
//提取参数
|
||||
String id = rMpInfluenceParam.getId(); //单位id
|
||||
String monitorTag = rMpInfluenceParam.getMonitorTag(); //监测点标签
|
||||
String startTime = rMpInfluenceParam.getStartTime(); //开始时间
|
||||
String endTime = rMpInfluenceParam.getEndTime(); //结束时间
|
||||
|
||||
if (StringUtils.isBlank(id)) {
|
||||
throw new BusinessException(CommonResponseEnum.NO_DATA, "单位id不可为空");
|
||||
}
|
||||
//获取当前部门
|
||||
Dept data = deptFeignClient.getDeptById(id).getData();
|
||||
|
||||
//查询风电场发射特性/各次谐波电压含有率信息
|
||||
LambdaQueryWrapper<RMpInfluenceVM> emissionIWrapper = new LambdaQueryWrapper<>();
|
||||
emissionIWrapper.eq(RMpInfluenceVM::getOrgNo, data.getCode())
|
||||
// .in(RMpInfluenceVM::getMeasurementPointId, monitorList)
|
||||
.eq(StringUtils.isNotBlank(monitorTag), RMpInfluenceVM::getMonitorTag, monitorTag)
|
||||
.ge(StringUtils.isNotBlank(startTime), RMpInfluenceVM::getDataDate, startTime)
|
||||
.le(StringUtils.isNotBlank(endTime), RMpInfluenceVM::getDataDate, endTime);
|
||||
RMpInfluenceVM emissionI = rMpInfluenceVMService.list(emissionIWrapper).get(0);
|
||||
|
||||
//查询风电场发射特性/各次谐波电压超标占比
|
||||
LambdaQueryWrapper<RMpInfluenceVExcessRateM> emissionIExcessRateWrapper = new LambdaQueryWrapper<>();
|
||||
emissionIExcessRateWrapper.eq(RMpInfluenceVExcessRateM::getOrgNo, data.getCode())
|
||||
// .in(RMpInfluenceVExcessRateM::getMeasurementPointId, monitorList)
|
||||
.eq(StringUtils.isNotBlank(monitorTag), RMpInfluenceVExcessRateM::getMonitorTag, monitorTag)
|
||||
.ge(StringUtils.isNotBlank(startTime), RMpInfluenceVExcessRateM::getDataDate, startTime)
|
||||
.le(StringUtils.isNotBlank(endTime), RMpInfluenceVExcessRateM::getDataDate, endTime);
|
||||
RMpInfluenceVExcessRateM rate = rMpInfluenceVExcessRateMService.list(emissionIExcessRateWrapper).get(0);
|
||||
|
||||
RMpInfluenceChartVO rMpInfluenceChartVO = new RMpInfluenceChartVO();
|
||||
|
||||
RMpInfluenceVMVO rMpInfluenceVMVO = new RMpInfluenceVMVO();
|
||||
BeanUtils.copyProperties(emissionI, rMpInfluenceVMVO);
|
||||
rMpInfluenceChartVO.setRMpInfluenceVMVO(rMpInfluenceVMVO);
|
||||
|
||||
RMpInfluenceVExcessRateMVO rMpInfluenceVExcessRateMVO = new RMpInfluenceVExcessRateMVO();
|
||||
BeanUtils.copyProperties(rate, rMpInfluenceVExcessRateMVO);
|
||||
rMpInfluenceChartVO.setRMpInfluenceVExcessRateMVO(rMpInfluenceVExcessRateMVO);
|
||||
|
||||
return rMpInfluenceChartVO;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.njcn.harmonic.service.specialanalysis.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.harmonic.mapper.specialanalysis.RMpInfluenceVExcessRateMMapper;
|
||||
import com.njcn.harmonic.pojo.po.RMpInfluenceVExcessRateM;
|
||||
import com.njcn.harmonic.service.specialanalysis.RMpInfluenceVExcessRateMService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @author jianghf
|
||||
* @description 针对表【r_mp__influence_v_excess_rate_m(风电场影响特性-月表/各次谐波电压超标占比)】的数据库操作Service实现
|
||||
* @createDate 2022-12-01 19:28:15
|
||||
*/
|
||||
@Service
|
||||
public class RMpInfluenceVExcessRateMServiceImpl extends ServiceImpl<RMpInfluenceVExcessRateMMapper, RMpInfluenceVExcessRateM>
|
||||
implements RMpInfluenceVExcessRateMService{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.njcn.harmonic.service.specialanalysis.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.harmonic.mapper.specialanalysis.RMpInfluenceVMMapper;
|
||||
import com.njcn.harmonic.pojo.po.RMpInfluenceVM;
|
||||
import com.njcn.harmonic.service.specialanalysis.RMpInfluenceVMService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @author jianghf
|
||||
* @description 针对表【r_mp__influence_v_m(风电场影响特性-月表/各次谐波电压含有率)】的数据库操作Service实现
|
||||
* @createDate 2022-12-01 19:28:15
|
||||
*/
|
||||
@Service
|
||||
public class RMpInfluenceVMServiceImpl extends ServiceImpl<RMpInfluenceVMMapper, RMpInfluenceVM>
|
||||
implements RMpInfluenceVMService{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.njcn.harmonic.service.specialanalysis.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.harmonic.mapper.specialanalysis.RStatOrgPvPermeabilityMMapper;
|
||||
import com.njcn.harmonic.pojo.po.RStatOrgPvPermeabilityM;
|
||||
import com.njcn.harmonic.service.specialanalysis.RStatOrgPvPermeabilityMService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @author jianghf
|
||||
* @description 针对表【r_stat_org_pv_permeability_m(分布式光伏-台区渗透率统计月表)】的数据库操作Service实现
|
||||
* @createDate 2022-11-28 16:14:21
|
||||
*/
|
||||
@Service
|
||||
public class RStatOrgPvPermeabilityMServiceImpl extends ServiceImpl<RStatOrgPvPermeabilityMMapper, RStatOrgPvPermeabilityM>
|
||||
implements RStatOrgPvPermeabilityMService{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,136 @@
|
||||
package com.njcn.harmonic.service.specialanalysis.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.njcn.device.pms.api.PwMonitorClient;
|
||||
import com.njcn.device.pms.pojo.dto.PwPmsMonitorDTO;
|
||||
import com.njcn.device.pms.pojo.param.PwPmsMonitorParam;
|
||||
import com.njcn.harmonic.mapper.specialanalysis.RStatOrgPvPowerQualityMMapper;
|
||||
import com.njcn.harmonic.pojo.param.StreamReverseParam;
|
||||
import com.njcn.harmonic.pojo.vo.StreamReverseCountyVO;
|
||||
import com.njcn.harmonic.pojo.vo.StreamReverseOrgVO;
|
||||
import com.njcn.harmonic.service.specialanalysis.StreamReverseService;
|
||||
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.po.Dept;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Title StreamReverseServiceImpl
|
||||
* @Package com.njcn.harmonic.service.specialanalysis.impl
|
||||
* @Author jianghaifei
|
||||
* @Date 2022-11-25 11:27
|
||||
* @Version V1.0
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class StreamReverseServiceImpl implements StreamReverseService {
|
||||
|
||||
private final DeptFeignClient deptFeignClient;
|
||||
|
||||
private final DicDataFeignClient dicDataFeignClient;
|
||||
|
||||
private final RStatOrgPvPowerQualityMMapper rStatOrgPvPowerQualityMMapper;
|
||||
|
||||
private final PwMonitorClient pwMonitorClient;
|
||||
/***
|
||||
* 潮流倒送分析-单位
|
||||
* @author jianghaifei
|
||||
* @date 2022-11-25 14:02
|
||||
* @param streamReverseParam
|
||||
* @return com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.njcn.harmonic.pojo.vo.StreamReverseOrgVO>
|
||||
*/
|
||||
@Override
|
||||
public Page<StreamReverseOrgVO> streamReverseByOrg(StreamReverseParam streamReverseParam) {
|
||||
//提取参数
|
||||
String id = streamReverseParam.getId(); //单位
|
||||
String startTime = streamReverseParam.getStartTime(); //开始时间
|
||||
String endTime = streamReverseParam.getEndTime(); //结束时间
|
||||
Integer pageNum = streamReverseParam.getPageNum() != null && streamReverseParam.getPageNum() != 0 ? streamReverseParam.getPageNum() : 1; //页码
|
||||
Integer pageSize = streamReverseParam.getPageSize() != null && streamReverseParam.getPageSize() != 0 ? streamReverseParam.getPageSize() : 10; //页面尺寸
|
||||
|
||||
//获取台区电能质量事件类型字典
|
||||
List<DictData> eventTypeDictList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.AREA_PQ_EVENT_TYPE.getCode()).getData();
|
||||
//将台区电能质量事件类型信息转成map,key:code value:id
|
||||
Map<String, String> eventTypeDictMap = eventTypeDictList.stream().collect(Collectors.toMap(DictData::getCode, DictData::getId));
|
||||
|
||||
// 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());
|
||||
|
||||
// if (!id.equals(orgIdList.get(0))) {
|
||||
// orgIdList.add(id); //把父单位的id传进去
|
||||
// }
|
||||
|
||||
HashMap<String, Object> condMap = new HashMap<>();
|
||||
condMap.put("startTime", startTime);
|
||||
condMap.put("endTime", endTime);
|
||||
condMap.put("orgIdList", deptCodes);
|
||||
condMap.put(DicDataEnum.EVENT_TYPE_U.getCode(), eventTypeDictMap.get(DicDataEnum.EVENT_TYPE_U.getCode())); //潮流倒送
|
||||
condMap.put(DicDataEnum.EVENT_TYPE_A.getCode(), eventTypeDictMap.get(DicDataEnum.EVENT_TYPE_A.getCode())); //潮流倒送导致设备重载
|
||||
condMap.put(DicDataEnum.EVENT_TYPE_S.getCode(), eventTypeDictMap.get(DicDataEnum.EVENT_TYPE_S.getCode())); //潮流倒送导致设备过载
|
||||
Page<StreamReverseOrgVO> page = rStatOrgPvPowerQualityMMapper.getStreamReverseByOrg(new Page<>(pageNum, pageSize), condMap);
|
||||
List<StreamReverseOrgVO> records = page.getRecords();
|
||||
DecimalFormat df = new DecimalFormat("###.00");
|
||||
List<StreamReverseOrgVO> resultList = records.stream().peek(item -> {
|
||||
item.setOrgName(deptMap.get(item.getOrgId()).getName()); //单位名称
|
||||
|
||||
int streamOverloadNum = item.getStreamOverloadNum(); //过载数
|
||||
int streamReloadNum = item.getStreamReloadNum(); //重载数
|
||||
int streamNum = item.getStreamNum(); //潮流倒送数
|
||||
if (streamNum != 0) {
|
||||
item.setStreamLoadRate(Double.parseDouble(df.format((streamOverloadNum + streamReloadNum) * 1.0 / (streamNum * 1.0))));
|
||||
} else {
|
||||
item.setStreamLoadRate(0.0);
|
||||
}
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
page.setRecords(resultList);
|
||||
|
||||
return page;
|
||||
}
|
||||
|
||||
/***
|
||||
* 潮流倒送分析-整县
|
||||
* @author jianghaifei
|
||||
* @date 2022-11-28 15:00
|
||||
* @param streamReverseParam
|
||||
* @return com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.njcn.harmonic.pojo.vo.StreamReverseCountyVO>
|
||||
*/
|
||||
@Override
|
||||
public Page<StreamReverseCountyVO> streamReverseByCounty(StreamReverseParam streamReverseParam) {
|
||||
//提取参数
|
||||
String id = streamReverseParam.getId(); //单位
|
||||
String startTime = streamReverseParam.getStartTime(); //开始时间
|
||||
String endTime = streamReverseParam.getEndTime(); //结束时间
|
||||
Integer pageNum = streamReverseParam.getPageNum() != null && streamReverseParam.getPageNum() != 0 ? streamReverseParam.getPageNum() : 1; //页码
|
||||
Integer pageSize = streamReverseParam.getPageSize() != null && streamReverseParam.getPageSize() != 0 ? streamReverseParam.getPageSize() : 10; //页面尺寸
|
||||
|
||||
//根据条件查询单位下面的所有配网监测点
|
||||
PwPmsMonitorParam pwPmsMonitorParam = new PwPmsMonitorParam();
|
||||
pwPmsMonitorParam.setOrgId(id); //单位id
|
||||
List<PwPmsMonitorDTO> pwMonitorList = pwMonitorClient.getPwMonitorList(pwPmsMonitorParam).getData();
|
||||
if (CollUtil.isEmpty(pwMonitorList)) {
|
||||
return new Page<>();
|
||||
}
|
||||
//监测点id集合
|
||||
List<String> monitorIdList = pwMonitorList.stream().map(PwPmsMonitorDTO::getMonitorId).collect(Collectors.toList());
|
||||
//监测点map key:监测点id value:监测点实体
|
||||
Map<String, PwPmsMonitorDTO> monitorMap = pwMonitorList.stream().collect(Collectors.toMap(PwPmsMonitorDTO::getMonitorId, monitor -> monitor));
|
||||
|
||||
// todo: 潮流倒送时设备负载率只有月表,没法展示曲线
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.njcn.harmonic.service.specialanalysis.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.harmonic.mapper.specialanalysis.WfOfOverviewMapper;
|
||||
import com.njcn.harmonic.pojo.po.WfOfOverviewPO;
|
||||
import com.njcn.harmonic.service.specialanalysis.WfOfOverviewService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @author yzh
|
||||
* @description 针对表【wf_of_overview(风电场概况)】的数据库操作Service实现
|
||||
* @createDate 2022-12-05 14:17:26
|
||||
*/
|
||||
@Service
|
||||
public class WfOfOverviewServiceImpl extends ServiceImpl<WfOfOverviewMapper, WfOfOverviewPO>
|
||||
implements WfOfOverviewService {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.njcn.harmonic.service.specialanalysis.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.harmonic.mapper.specialanalysis.WfOfOverviewVoltageMapper;
|
||||
import com.njcn.harmonic.pojo.po.WfOfOverviewVoltagePO;
|
||||
import com.njcn.harmonic.service.specialanalysis.WfOfOverviewVoltageService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @author yzh
|
||||
* @description 针对表【wf_of_overview_voltage(风电场概况-按电压等级)】的数据库操作Service实现
|
||||
* @createDate 2022-12-05 14:22:44
|
||||
*/
|
||||
@Service
|
||||
public class WfOfOverviewVoltageServiceImpl extends ServiceImpl<WfOfOverviewVoltageMapper, WfOfOverviewVoltagePO>
|
||||
implements WfOfOverviewVoltageService {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,152 @@
|
||||
package com.njcn.harmonic.service.specialanalysis.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.njcn.harmonic.mapper.specialanalysis.WindFarmIndexOverviewMapper;
|
||||
import com.njcn.harmonic.pojo.param.RMpInfluenceParam;
|
||||
import com.njcn.harmonic.pojo.po.WindFarmIndexOverviewPO;
|
||||
import com.njcn.harmonic.pojo.vo.RStatOrgWfIndexOverviewVO;
|
||||
import com.njcn.harmonic.service.specialanalysis.WindFarmIndexOverview;
|
||||
import com.njcn.user.api.DeptFeignClient;
|
||||
import com.njcn.user.pojo.po.Dept;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 专项分析-风电场-指标总览
|
||||
*
|
||||
* @author yzh
|
||||
* @date 2022/11/30
|
||||
*/
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class WindFarmIndexOverviewServiceImpl implements WindFarmIndexOverview {
|
||||
|
||||
private final WindFarmIndexOverviewMapper windFarmIndexOverviewMapper;
|
||||
|
||||
private final DeptFeignClient deptFeignClient;
|
||||
|
||||
/**
|
||||
* 获取风电场指标总览-电流指标
|
||||
*
|
||||
* @param param 条件参数
|
||||
* @return com.njcn.common.pojo.response.HttpResult<java.util.List < com.njcn.harmonic.pojo.vo.RMpPvPowerDetailVO>>
|
||||
* @author yzh
|
||||
* @date 2022/11/30
|
||||
*/
|
||||
@Override
|
||||
public List<RStatOrgWfIndexOverviewVO> getHarmonicCurrent(RMpInfluenceParam param) {
|
||||
return getResult(param, "1");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取风电场指标总览-电压指标
|
||||
*
|
||||
* @param param 条件参数
|
||||
* @return com.njcn.common.pojo.response.HttpResult<java.util.List < com.njcn.harmonic.pojo.vo.RMpPvPowerDetailVO>>
|
||||
* @author yzh
|
||||
* @date 2022/11/30
|
||||
*/
|
||||
@Override
|
||||
public List<RStatOrgWfIndexOverviewVO> getHarmonicVoltage(RMpInfluenceParam param) {
|
||||
return getResult(param, "2");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取风电场指标总览-各单位指标
|
||||
*
|
||||
* @param param 条件参数
|
||||
* @return com.njcn.common.pojo.response.HttpResult<java.util.List < com.njcn.harmonic.pojo.vo.RStatOrgWfIndexOverviewVO>>
|
||||
* @author yzh
|
||||
* @date 2022/11/30
|
||||
*/
|
||||
@Override
|
||||
public List<RStatOrgWfIndexOverviewVO> getUnitCurrent(RMpInfluenceParam param) {
|
||||
return getResult(param, "3");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取风电场指标总览-各单位电压
|
||||
*
|
||||
* @param param 条件参数
|
||||
* @return com.njcn.common.pojo.response.HttpResult<java.util.List < com.njcn.harmonic.pojo.vo.RStatOrgWfIndexOverviewVO>>
|
||||
* @author yzh
|
||||
* @date 2022/12/1
|
||||
*/
|
||||
@Override
|
||||
public List<RStatOrgWfIndexOverviewVO> getUnitVoltage(RMpInfluenceParam param) {
|
||||
return getResult(param, "4");
|
||||
}
|
||||
|
||||
/**
|
||||
* 业务逻辑
|
||||
*
|
||||
* @param param 条件参数
|
||||
* @param tag 标记
|
||||
* @return RStatOrgWfIndexOverviewVO
|
||||
*/
|
||||
private List<RStatOrgWfIndexOverviewVO> getResult(RMpInfluenceParam param, String tag) {
|
||||
// 获取单位信息
|
||||
List<Dept> data = deptFeignClient.getDirectSonSelf(param.getId()).getData();
|
||||
if (CollUtil.isEmpty(data)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
// 获取单位code
|
||||
List<String> deptCode = data.stream().map(Dept::getCode).collect(Collectors.toList());
|
||||
if (CollUtil.isEmpty(deptCode)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
// 获取风电场指标总览-电流指标
|
||||
List<WindFarmIndexOverviewPO> pos = getDataInfo(deptCode, param, tag);
|
||||
if (CollUtil.isEmpty(pos)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
// 将单位信息转换成map集合
|
||||
Map<String, String> dataMap = data.stream().collect(Collectors.toMap(Dept::getCode, Dept::getName));
|
||||
return pos.stream().map(po -> {
|
||||
RStatOrgWfIndexOverviewVO vo = new RStatOrgWfIndexOverviewVO();
|
||||
vo.setMonitorNum(po.getMonitorNum());
|
||||
vo.setType(dataMap.get(po.getOrgNo()));
|
||||
vo.setHistograms(po.getAvgExcessiveDays().toString());
|
||||
vo.setLineCharts(po.getMonitorNum().toString());
|
||||
vo.setMonitorTag(po.getMonitorTag());
|
||||
return vo;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询数据库
|
||||
*
|
||||
* @param deptCode 单位code
|
||||
* @param param 条件参数
|
||||
* @param tag 标记
|
||||
* @return 数据库信息
|
||||
*/
|
||||
private List<WindFarmIndexOverviewPO> getDataInfo(List<String> deptCode, RMpInfluenceParam param, String tag) {
|
||||
List<WindFarmIndexOverviewPO> info = new ArrayList<>();
|
||||
switch (tag) {
|
||||
case "1":
|
||||
info = windFarmIndexOverviewMapper.getWindFarmIndexOverviewHarmonicCurrent(deptCode, param);
|
||||
break;
|
||||
case "2":
|
||||
info = windFarmIndexOverviewMapper.getWindFarmIndexOverviewHarmonicVoltage(deptCode, param);
|
||||
break;
|
||||
case "3":
|
||||
info = windFarmIndexOverviewMapper.getWindFarmIndexOverviewUnitCurrent(deptCode, param);
|
||||
break;
|
||||
case "4":
|
||||
info = windFarmIndexOverviewMapper.getWindFarmIndexOverviewUnitVoltage(deptCode, param);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return info;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,151 @@
|
||||
package com.njcn.harmonic.service.specialanalysis.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
|
||||
import com.njcn.harmonic.pojo.po.WfOfOverviewPO;
|
||||
import com.njcn.harmonic.pojo.po.WfOfOverviewVoltagePO;
|
||||
import com.njcn.harmonic.pojo.vo.WfOfOverviewVO;
|
||||
import com.njcn.harmonic.pojo.vo.WfOfOverviewVoltageVO;
|
||||
import com.njcn.harmonic.service.specialanalysis.WfOfOverviewService;
|
||||
import com.njcn.harmonic.service.specialanalysis.WfOfOverviewVoltageService;
|
||||
import com.njcn.harmonic.service.specialanalysis.WindFarmOverviewService;
|
||||
import com.njcn.system.api.DicDataFeignClient;
|
||||
import com.njcn.system.enums.DicDataEnum;
|
||||
import com.njcn.system.pojo.po.DictData;
|
||||
import com.njcn.user.api.DeptFeignClient;
|
||||
import com.njcn.user.pojo.po.Dept;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 专项分析-风电场-概述
|
||||
*
|
||||
* @author yzh
|
||||
* @date 2022/11/30
|
||||
*/
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class WindFarmOverviewServiceImpl implements WindFarmOverviewService {
|
||||
|
||||
private final DeptFeignClient deptFeignClient;
|
||||
|
||||
private final WfOfOverviewService wfOfOverviewService;
|
||||
|
||||
private final WfOfOverviewVoltageService wfOfOverviewVoltageService;
|
||||
|
||||
private final DicDataFeignClient dicDataFeignClient;
|
||||
|
||||
/**
|
||||
* 获取风电场概述地图
|
||||
*
|
||||
* @param param 条件参数
|
||||
* @return java.util.List<com.njcn.harmonic.pojo.vo.RMpPvPowerDetailVO>
|
||||
* @author yzh
|
||||
* @date 2022/12/5
|
||||
*/
|
||||
@Override
|
||||
public List<?> getWindFarmOverviewMap(StatisticsBizBaseParam param) {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取风电场概述数值
|
||||
*
|
||||
* @param param 条件参数
|
||||
* @return com.njcn.common.pojo.response.HttpResult<java.util.List < com.njcn.harmonic.pojo.vo.RMpPvPowerDetailVO>>
|
||||
* @author yzh
|
||||
* @date 2022/11/30
|
||||
*/
|
||||
@Override
|
||||
public WfOfOverviewVO getWindFarmOverviewValues(StatisticsBizBaseParam param) {
|
||||
// 获取单位信息
|
||||
Dept data = deptFeignClient.getDeptById(param.getId()).getData();
|
||||
if (StringUtils.isEmpty(data)) {
|
||||
return new WfOfOverviewVO();
|
||||
}
|
||||
// 获取单位code
|
||||
String code = data.getCode();
|
||||
// 获取风电场概述数值
|
||||
LambdaQueryWrapper<WfOfOverviewPO> lqw = new LambdaQueryWrapper<>();
|
||||
lqw.eq(WfOfOverviewPO::getOrgNo, code);
|
||||
WfOfOverviewPO po = wfOfOverviewService.getOne(lqw);
|
||||
if (StringUtils.isEmpty(po)) {
|
||||
return new WfOfOverviewVO();
|
||||
}
|
||||
WfOfOverviewVO vo = new WfOfOverviewVO();
|
||||
BeanUtils.copyProperties(po, vo);
|
||||
return vo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取风电场概述环形图
|
||||
*
|
||||
* @param param 条件参数
|
||||
* @return com.njcn.common.pojo.response.HttpResult<java.util.List < com.njcn.harmonic.pojo.vo.RMpPvPowerDetailVO>>
|
||||
* @author yzh
|
||||
* @date 2022/12/5
|
||||
*/
|
||||
@Override
|
||||
public List<WfOfOverviewVoltageVO> getWindFarmOverviewCircularGraph(StatisticsBizBaseParam param) {
|
||||
// 获取单位信息
|
||||
Dept data = deptFeignClient.getDeptById(param.getId()).getData();
|
||||
if (StringUtils.isEmpty(data)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
// 获取单位code
|
||||
String code = data.getCode();
|
||||
// 获取风电场概述数值
|
||||
LambdaQueryWrapper<WfOfOverviewVoltagePO> lqw = new LambdaQueryWrapper<>();
|
||||
lqw.eq(WfOfOverviewVoltagePO::getOrgNo, code);
|
||||
List<WfOfOverviewVoltagePO> pos = wfOfOverviewVoltageService.list(lqw);
|
||||
if (CollUtil.isEmpty(pos)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
// 获取电压等级字典
|
||||
DictData tenKv
|
||||
= dicDataFeignClient.getDicDataByCode(DicDataEnum.DY_10KV.getCode()).getData();
|
||||
DictData thirtyFiveKv
|
||||
= dicDataFeignClient.getDicDataByCode(DicDataEnum.DY_35KV.getCode()).getData();
|
||||
DictData oneHundredAndTenKv
|
||||
= dicDataFeignClient.getDicDataByCode(DicDataEnum.DY_110KV.getCode()).getData();
|
||||
// 属性赋值
|
||||
List<WfOfOverviewVoltageVO> result = new ArrayList<>();
|
||||
int count = 0;
|
||||
for (WfOfOverviewVoltagePO po : pos) {
|
||||
WfOfOverviewVoltageVO vo = new WfOfOverviewVoltageVO();
|
||||
BeanUtils.copyProperties(po,vo);
|
||||
if (po.getVoltageLevel().equals(tenKv.getId())){
|
||||
vo.setVoltageLevel(po.getVoltageLevel());
|
||||
vo.setWfSum(po.getWfSum());
|
||||
result.add(vo);
|
||||
}else if (po.getVoltageLevel().equals(thirtyFiveKv.getId())){
|
||||
vo.setVoltageLevel(po.getVoltageLevel());
|
||||
vo.setWfSum(po.getWfSum());
|
||||
result.add(vo);
|
||||
}else if (po.getVoltageLevel().equals(oneHundredAndTenKv.getId())){
|
||||
vo.setVoltageLevel(po.getVoltageLevel());
|
||||
vo.setWfSum(po.getWfSum());
|
||||
result.add(vo);
|
||||
}else {
|
||||
count=count+po.getWfSum();
|
||||
}
|
||||
}
|
||||
WfOfOverviewVoltageVO vo = new WfOfOverviewVoltageVO();
|
||||
vo.setVoltageLevel("22OKV以上");
|
||||
vo.setWfSum(count);
|
||||
result.add(vo);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user