合并代码
This commit is contained in:
@@ -35,4 +35,4 @@ public interface EventDetailService {
|
||||
* 根据监测点集合以及分页信息获取暂降事件
|
||||
*/
|
||||
List<EventDetail> getEventDetailLimit(List<String> lineIndexes, String startTime, String endTime, Integer pageSize, Integer pageNum);
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -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<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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<>();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user