合并代码

This commit is contained in:
2022-10-18 11:17:20 +08:00
parent 1efdfa5cd6
commit 7b790e6dc2
93 changed files with 5045 additions and 555 deletions

View File

@@ -35,4 +35,4 @@ public interface EventDetailService {
* 根据监测点集合以及分页信息获取暂降事件
*/
List<EventDetail> getEventDetailLimit(List<String> lineIndexes, String startTime, String endTime, Integer pageSize, Integer pageNum);
}
}

View File

@@ -5,6 +5,7 @@ import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.abel533.echarts.code.X;
import com.njcn.common.config.GeneralInfo;
import com.njcn.common.pojo.dto.wave.WaveDataDTO;
import com.njcn.common.pojo.exception.BusinessException;

View File

@@ -0,0 +1,71 @@
package com.njcn.event.service.Impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.event.mapper.PmsMonitorMapper;
import com.njcn.event.mapper.RmpEventDetailMapper;
import com.njcn.event.pojo.param.UniversalFrontEndParam;
import com.njcn.event.pojo.po.PmsMonitorPO;
import com.njcn.event.pojo.vo.RStatOrgVO;
import com.njcn.event.pojo.vo.RStatSubstationVO;
import com.njcn.event.pojo.vo.RmpEventDetailVO;
import com.njcn.event.service.RmpEventDetailService;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.dto.DeptDTO;
import com.njcn.web.utils.WebUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* 暂态事件明细
*
* @author yzh
* @date 2022/10/12
*/
@Service
@Slf4j
@RequiredArgsConstructor
public class RmpEventDetailServiceImpl extends ServiceImpl<RmpEventDetailMapper, RmpEventDetailVO> implements RmpEventDetailService {
private final RmpEventDetailMapper rmpEventDetailMapper;
private final DeptFeignClient deptFeignClient;
private final PmsMonitorMapper pmsMonitorMapper;
/**
* 获取暂态事件明细
*
* @param param 前端参数
* @return 暂态事件明细
*/
@Override
public List<RmpEventDetailVO> getRmpEventDetail(UniversalFrontEndParam param) {
// 获取当前用户的部门的子部门信息
List<DeptDTO> data = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
if (CollectionUtil.isNotEmpty(data)) {
//创建返回集合
List<RmpEventDetailVO> info = new ArrayList<>();
// 过滤出部门id
List<String> deptIds = data.stream().map(DeptDTO::getId).collect(Collectors.toList());
// 根据部门id查询监测点id
List<PmsMonitorPO> monitorInfo = pmsMonitorMapper.getMonitorInfo(deptIds);
return info;
} else {
return new ArrayList<>();
}
}
}

View File

@@ -0,0 +1,334 @@
package com.njcn.event.service.Impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.njcn.event.mapper.PmsMonitorMapper;
import com.njcn.event.mapper.RStatEventOrgMapper;
import com.njcn.event.mapper.RStatOrgMapper;
import com.njcn.event.mapper.RStatSubstationMapper;
import com.njcn.event.pojo.param.UniversalFrontEndParam;
import com.njcn.event.pojo.po.PmsMonitorPO;
import com.njcn.event.pojo.vo.RStatEventOrgVO;
import com.njcn.event.pojo.vo.RStatOrgVO;
import com.njcn.event.pojo.vo.RStatSubstationVO;
import com.njcn.event.service.StatisticsOfTransientIndicatorssService;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.DictData;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.dto.DeptDTO;
import com.njcn.web.utils.WebUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
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 yzh
* @date 2022/10/10
*/
@Service
@Slf4j
@RequiredArgsConstructor
public class StatisticsOfTransientIndicatorssServiceImpl implements StatisticsOfTransientIndicatorssService {
private final DeptFeignClient deptFeignClient;
private final DicDataFeignClient dicDataFeignClient;
private final RStatOrgMapper rStatOrgMapper;
private final RStatEventOrgMapper rStatEventOrgMapper;
private final RStatSubstationMapper rStatSubstationMapper;
private final PmsMonitorMapper pmsMonitorMapper;
/**
* 获取区域暂态指标统计
*
* @param param 前端参数
* @return 区域暂态指标统计
*/
@Override
public List<RStatOrgVO> getRStatOrg(UniversalFrontEndParam param) {
// 获取当前用户的部门的子部门信息
List<DeptDTO> data = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
if (CollectionUtil.isNotEmpty(data)) {
// 创建返回集合
List<RStatOrgVO> info = new ArrayList<>();
// 过滤出部门id
List<String> deptIds = data.stream().map(DeptDTO::getId).collect(Collectors.toList());
// 类型1年 2季度 3月份 4日
switch (param.getType()) {
case 1:
// 获取年区域暂态指标统计
info = rStatOrgMapper.getYearRStatOrgInfo(deptIds, param.getStartTime(), param.getEndTime());
break;
case 2:
// 获取季区域暂态指标统计
info = rStatOrgMapper.getQuarterRStatOrgInfo(deptIds, param.getStartTime(), param.getEndTime());
break;
case 3:
// 获取月区域暂态指标统计
info = rStatOrgMapper.getMonthRStatOrgInfo(deptIds, param.getStartTime(), param.getEndTime());
break;
default:
break;
}
for (RStatOrgVO rStatOrgVO : info) {
rStatOrgVO.setEventMeasurementRatioAverage(rStatOrgVO.getEventMeasurementAverage() / rStatOrgVO.getEffectiveMeasurementAverage());
rStatOrgVO.setEventMeasurementRatioAccrued(rStatOrgVO.getEventMeasurementAccrued() / rStatOrgVO.getEffectiveMeasurementAccrued());
}
// 匹配单位名称
for (DeptDTO dto : data) {
for (RStatOrgVO vo : info) {
if (dto.getId().equals(vo.getOrgNo())) {
vo.setOrgName(dto.getName());
}
}
}
return info;
} else {
return new ArrayList<>();
}
}
/**
* 获取区域暂态指标分类统计表
*
* @param param 前端参数
* @return 区域暂态指标分类统计表
*/
@Override
public List<RStatEventOrgVO> getRStatEventOrg(UniversalFrontEndParam param) {
// 获取当前用户的部门的子部门信息
List<DeptDTO> data = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
if (CollectionUtil.isNotEmpty(data)) {
//创建返回集合
List<RStatEventOrgVO> info = new ArrayList<>();
// 根据暂态指标枚举查询暂态指标
List<DictData> eventStatis = dicDataFeignClient.getDicDataByTypeCode(
DicDataTypeEnum.EVENT_STATIS.getCode()).getData();
List<RStatEventOrgVO> temp = new ArrayList<>();
// 过滤出部门id
List<String> deptIds = data.stream().map(DeptDTO::getId).collect(Collectors.toList());
// 类型1年 2季度 3月份 4日
switch (param.getType()) {
case 1:
// 获取年区域暂态指标分类统计表
temp = rStatEventOrgMapper.getYearRStatEventOrgInfo(deptIds, param.getStartTime(), param.getEndTime());
break;
case 2:
// 获取季区域暂态指标分类统计表
temp = rStatEventOrgMapper.getQuarterRStatEventOrgInfo(deptIds, param.getStartTime(), param.getEndTime());
break;
case 3:
// 获取月区域暂态指标分类统计表
temp = rStatEventOrgMapper.getMonthRStatEventOrgInfoInfo(deptIds, param.getStartTime(), param.getEndTime());
break;
default:
break;
}
Map<String, List<RStatEventOrgVO>> map = temp
.stream().collect(Collectors.groupingBy(RStatEventOrgVO::getOrgNo));
map.forEach((orgOn, rStatEventOrgVOs) -> {
RStatEventOrgVO rStatEventOrgVO = new RStatEventOrgVO();
// 基础属性赋值
for (RStatEventOrgVO tmp : rStatEventOrgVOs) {
if (rStatEventOrgVO.getOrgNo() == null) {
rStatEventOrgVO.setOrgNo(tmp.getOrgNo());
rStatEventOrgVO.setDataDate(tmp.getDataDate());
rStatEventOrgVO.setEffectiveMeasurementAverage(tmp.getEffectiveMeasurementAverage());
rStatEventOrgVO.setEffectiveMeasurementAccrued(tmp.getEffectiveMeasurementAccrued());
rStatEventOrgVO.setEventMeasurementAverage(tmp.getEventMeasurementAverage());
rStatEventOrgVO.setEventMeasurementAccrued(tmp.getEventMeasurementAccrued());
rStatEventOrgVO.setEventMeasurementRatioAverage(tmp.getEventMeasurementAverage() / tmp.getEffectiveMeasurementAverage());
rStatEventOrgVO.setEventMeasurementRatioAccrued(tmp.getEventMeasurementAccrued() / tmp.getEffectiveMeasurementAccrued());
}
}
for (RStatEventOrgVO tmp : rStatEventOrgVOs) {
// 暂态指标赋值
for (DictData eventStati : eventStatis) {
if (eventStati.getId().equals(tmp.getEventType())) {
if (eventStati.getCode().equals(RStatEventOrgVO.SHORT_INTERRUPTIONS)) {
// 日均短时中断
rStatEventOrgVO.setDayShortInterruptions(tmp.getEEventMeasurementAverage());
// 累计短时中断
rStatEventOrgVO.setCumulativeShortInterruptions(tmp.getEventMeasurementAccrued());
// 日均短时中断占比
rStatEventOrgVO.setDayShortInterruptionsProportion(tmp.getEEventMeasurementRatioAverage());
// 累计短时中断占比
rStatEventOrgVO.setCumulativeShortInterruptionsProportion(tmp.getEEventMeasurementRatioAccrued());
// 短时中断监测点数
rStatEventOrgVO.setShortInterruptionsMonitor(314159);
// 短时中断占比
rStatEventOrgVO.setShortInterruptionsProportion(3.14159);
// 短时中断次数
rStatEventOrgVO.setShortInterruptionsCount(tmp.getEEventCount());
// 短时中断频次
rStatEventOrgVO.setShortInterruptionsFrequency(tmp.getEEventFreq());
} else if (eventStati.getCode().equals(RStatEventOrgVO.VOLTAGE_RISE)) {
// 日均电压暂升
rStatEventOrgVO.setDayVoltageRise(tmp.getEEventMeasurementAverage());
// 累计电压暂升
rStatEventOrgVO.setCumulativeVoltageRise(tmp.getEventMeasurementAccrued());
// 日均电压暂升占比
rStatEventOrgVO.setDayVoltageRiseProportion(tmp.getEEventMeasurementRatioAverage());
// 累计电压暂升占比
rStatEventOrgVO.setCumulativeVoltageRiseProportion(tmp.getEEventMeasurementRatioAccrued());
// 电压暂升占比
rStatEventOrgVO.setVoltageRiseProportion(3.14159);
// 电压暂升次数
rStatEventOrgVO.setVoltageRiseCount(tmp.getEEventCount());
// 电压暂升频次
rStatEventOrgVO.setVoltageRiseFrequency(tmp.getEEventFreq());
} else if (eventStati.getCode().equals(RStatEventOrgVO.VOLTAGE_DIP)) {
// 日均电压暂降
rStatEventOrgVO.setDayVoltageDip(tmp.getEEventMeasurementAverage());
// 累计电压暂降
rStatEventOrgVO.setCumulativeVoltageDip(tmp.getEventMeasurementAccrued());
// 日均电压暂降占比
rStatEventOrgVO.setDayVoltageDipProportion(tmp.getEEventMeasurementRatioAverage());
// 累计电压暂降占比
rStatEventOrgVO.setCumulativeVoltageDipProportion(tmp.getEEventMeasurementRatioAccrued());
// 电压暂升占比
rStatEventOrgVO.setVoltageDipProportion(3.14159);
// 电压暂降次数
rStatEventOrgVO.setVoltageDipCount(tmp.getEEventCount());
// 电压暂降频次
rStatEventOrgVO.setVoltageDipFrequency(tmp.getEEventFreq());
}
}
}
}
info.add(rStatEventOrgVO);
});
// 匹配单位名称
for (DeptDTO dto : data) {
for (RStatEventOrgVO vo : info) {
if (dto.getId().equals(vo.getOrgNo())) {
vo.setOrgName(dto.getName());
}
}
}
return info;
} else {
return new ArrayList<>();
}
}
/**
* 获取变电站暂态指标分类统计表
*
* @param param 前端传入参数
* @return 变电站暂态指标分类统计表
*/
@Override
public List<RStatSubstationVO> getRStatSubstation
(UniversalFrontEndParam param) {
// 获取当前用户的部门的子部门信息
List<DeptDTO> data = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
if (CollectionUtil.isNotEmpty(data)) {
//创建返回集合
List<RStatSubstationVO> info = new ArrayList<>();
// 过滤出部门id
List<String> deptIds = data.stream().map(DeptDTO::getId).collect(Collectors.toList());
// 创建集合用于封装查询出的监测点信息
List<PmsMonitorPO> mInfo = new ArrayList<>();
// 根据部门id查询监测点id
List<PmsMonitorPO> monitorInfo = pmsMonitorMapper.getMonitorInfo(deptIds);
// 过滤出变电站id
List<String> powerrIds = new ArrayList<>();
// 判断前端参数是否传入的变电站名称
if (param.getSubName() != null) {
for (PmsMonitorPO po : monitorInfo) {
if (po.getPowerrName().contains(param.getSubName())) {
PmsMonitorPO pmsMonitor = new PmsMonitorPO();
BeanUtils.copyProperties(po,pmsMonitor);
mInfo.add(pmsMonitor);
}
}
powerrIds = mInfo.stream().map(PmsMonitorPO::getPowerrId).collect(Collectors.toList());
}else {
powerrIds = monitorInfo.stream().map(PmsMonitorPO::getPowerrId).collect(Collectors.toList());
}
// 类型1年 2季度 3月份 4日
switch (param.getType()) {
case 1:
// 获取年变电站暂态指标分类统计表
info = rStatSubstationMapper.getYearInfo(powerrIds, param.getStartTime(), param.getEndTime());
break;
case 2:
// 获取季变电站暂态指标分类统计表
info = rStatSubstationMapper.getQuarterInfo(powerrIds, param.getStartTime(), param.getEndTime());
break;
case 3:
// 获取月变电站暂态指标分类统计表
info = rStatSubstationMapper.getMonthInfo(powerrIds, param.getStartTime(), param.getEndTime());
break;
default:
break;
}
// 匹配单位名称
for (RStatSubstationVO vo : info) {
for (PmsMonitorPO pmsMonitor : monitorInfo) {
if (vo.getSubstationId().equals(pmsMonitor.getPowerrId())) {
vo.setDeptId(pmsMonitor.getOrgId());
vo.setDeptName(pmsMonitor.getOrgName());
vo.setSubstationName(pmsMonitor.getPowerrName());
}
}
}
return info;
} else {
return new ArrayList<>();
}
}
}

View File

@@ -0,0 +1,25 @@
package com.njcn.event.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.event.pojo.param.UniversalFrontEndParam;
import com.njcn.event.pojo.vo.RmpEventDetailVO;
import java.util.List;
/**
* 暂态事件明细
*
* @author yzh
* @date 2022/10/12
*/
public interface RmpEventDetailService extends IService<RmpEventDetailVO> {
/**
* 获取暂态事件明细
* @param param 前端参数
* @return 暂态事件明细
*/
List<RmpEventDetailVO> getRmpEventDetail(UniversalFrontEndParam param);
}

View File

@@ -0,0 +1,41 @@
package com.njcn.event.service;
import com.njcn.event.pojo.param.UniversalFrontEndParam;
import com.njcn.event.pojo.vo.RStatEventOrgVO;
import com.njcn.event.pojo.vo.RStatOrgVO;
import com.njcn.event.pojo.vo.RStatSubstationVO;
import java.util.List;
/**
* 暂态指标统计
*
* @author yzh
* @date 2022/10/10
*/
public interface StatisticsOfTransientIndicatorssService{
/**
* 获取区域暂态指标统计
*
* @param param 前端参数
* @return 获取区域暂态指标统计
*/
List<RStatOrgVO> getRStatOrg(UniversalFrontEndParam param);
/**
* 获取区域暂态指标分类统计表
* @param param 前端参数
* @return 区域暂态指标分类统计表
*/
List<RStatEventOrgVO> getRStatEventOrg(UniversalFrontEndParam param);
/**
* 获取变电站暂态指标分类统计表
*
* @param param 前端传入参数
* @return 变电站暂态指标分类统计表
*/
List<RStatSubstationVO> getRStatSubstation(UniversalFrontEndParam param);
}