1.大屏重要测点暂降发生次数接口

This commit is contained in:
cdf
2024-11-26 08:42:29 +08:00
parent 5b4b756fc3
commit 92ffdb1931
10 changed files with 131 additions and 39 deletions

View File

@@ -14,6 +14,7 @@ import com.njcn.device.biz.pojo.po.Overlimit;
import com.njcn.device.pq.pojo.po.line.LineInfoVO;
import com.njcn.device.pq.pojo.vo.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
@@ -274,12 +275,12 @@ public interface LineFeignClient {
HttpResult<List<OnlineLineDTO>> getOnLineDevLine(@RequestBody List<String> lineIds);
/**
* @Description: 获取变电站和监测点的关系(分稳态暂态)
* @Param: [devDataType] 0暂态 1稳态
* @return: com.njcn.common.pojo.response.HttpResult<java.util.Map<java.lang.String,java.util.List<java.lang.String>>>
* @Author: clam
* @Date: 2022/10/20
*/
* @Description: 获取变电站和监测点的关系(分稳态暂态)
* @Param: [devDataType] 0暂态 1稳态
* @return: com.njcn.common.pojo.response.HttpResult<java.util.Map<java.lang.String,java.util.List<java.lang.String>>>
* @Author: clam
* @Date: 2022/10/20
*/
@PostMapping("getLineBySubstationRelation")
HttpResult<Map<String,List<String>>> getLineBySubstationRelation(@RequestParam("devDataType") Integer devDataType);
@@ -356,4 +357,8 @@ public interface LineFeignClient {
*/
@PostMapping("/getByName")
HttpResult<List<LineDetail>> getByName(@RequestBody LineBaseQueryParam param);
@GetMapping("/getLevelMonitorIdByDept")
HttpResult<List<String>> getLevelMonitorIdByDept(@RequestParam("level") String level,@RequestParam("deptId")String deptId);
}

View File

@@ -288,6 +288,12 @@ public class LineFeignClientFallbackFactory implements FallbackFactory<LineFeign
log.error("{}异常,降级处理,异常为:{}", "根据监测点名称和电网侧变电站名称模糊搜索: ", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<String>> getLevelMonitorIdByDept(String level, String deptId) {
log.error("{}异常,降级处理,异常为:{}", "根据部门查询重要测点id: ", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -545,4 +545,14 @@ public class LineController extends BaseController {
List<DevAndLine> list = lineService.getByDeptDevLine(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("根据部门获取所有指定等级的监测点id")
@GetMapping("/getLevelMonitorIdByDept")
HttpResult<List<String>> getLevelMonitorIdByDept(@RequestParam("level") String level,@RequestParam("deptId")String deptId){
String methodDescribe = getMethodDescribe("getLevelMonitorIdByDept");
List<String> list = lineService.getLevelMonitorByDept(level,deptId);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
}

View File

@@ -13,6 +13,7 @@ import com.njcn.device.biz.pojo.po.Overlimit;
import com.njcn.device.pq.pojo.po.LineDetail;
import com.njcn.device.pq.pojo.po.TopMsgPO;
import com.njcn.device.pq.pojo.vo.*;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
import java.util.Map;
@@ -137,19 +138,19 @@ public interface LineService extends IService<Line> {
/**
* @Description: 通过部门索引查询其下监测点数
* @Param: [deviceInfoParam] 监测点查询条件
* @return: java.util.List<com.njcn.device.pq.pojo.vo.DeptLineCountVO>
* @Author: clam
* @Date: 2022/10/10
*/
* @return: java.util.List<com.njcn.device.pq.pojo.vo.DeptLineCountVO>
* @Author: clam
* @Date: 2022/10/10
*/
List<DeptLineCountVO> getDeptLineCount(DeviceInfoParam deviceInfoParam);
/**
* @Description: 获取变电站和监测点的关系(分稳态暂态)
* @Param: [devDataType]
* @return: java.util.Map<java.lang.String,java.util.List<java.lang.String>>
* @Author: clam
* @Date: 2022/10/20
*/
* @Description: 获取变电站和监测点的关系(分稳态暂态)
* @Param: [devDataType]
* @return: java.util.Map<java.lang.String,java.util.List<java.lang.String>>
* @Author: clam
* @Date: 2022/10/20
*/
Map<String, List<String>> getLineBySubstationRelation(Integer devDataType);
/**
@@ -161,20 +162,20 @@ public interface LineService extends IService<Line> {
*/
List<LineDetailDataVO> getLineDetailList(List<String> lineIds);
/**
* @Description: 获取变电站下终端数
* @Param: [subIndex]
* @return: java.lang.Integer
* @Author: clam
* @Date: 2022/11/9
*/
* @Description: 获取变电站下终端数
* @Param: [subIndex]
* @return: java.lang.Integer
* @Author: clam
* @Date: 2022/11/9
*/
Integer getDeviceCountBySubstation(String subIndex);
/**
* @Description: 获取变电站下监测点数
* @Description: 获取变电站下监测点数
* @Param: [subIndex]
* @return: java.lang.Integer
* @Author: clam
* @Date: 2022/11/9
*/
* @return: java.lang.Integer
* @Author: clam
* @Date: 2022/11/9
*/
Integer getLineCountBySubstation(String subIndex);
Page<LineFlowMealDetailVO>getNewDeviceRunStatistics(PqsParam deviceInfoParam);
@@ -187,7 +188,7 @@ public interface LineService extends IService<Line> {
/**
* @Description: 根据监测点获取监测点信息
* @param id
* @param id
* @return: com.njcn.device.biz.pojo.dto.LineDTO
* @Author: wr
* @Date: 2023/9/22 10:46
@@ -230,4 +231,7 @@ public interface LineService extends IService<Line> {
* @return
*/
List<DevAndLine> getByDeptDevLine(String id);
List<String> getLevelMonitorByDept(@RequestParam("level") String level, @RequestParam("deptId")String deptId);
}

View File

@@ -37,6 +37,7 @@ import com.njcn.influx.pojo.po.PqsCommunicate;
import com.njcn.influx.query.InfluxQueryWrapper;
import com.njcn.system.api.AreaFeignClient;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.Area;
import com.njcn.system.pojo.po.DictData;
@@ -92,7 +93,7 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
private final TopMsgMapper topMsgMapper;
private final PqsCommunicateMapper pqsCommunicateMapper;
private final PqsCommunicateMapper pqsCommunicateMapper;
private final TerminalMaintainMapper terminalMaintainMapper;
private final DeptFeignClient deptFeignClient;
@@ -398,7 +399,7 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
LineStateVO lineStateVO;
//获取状态
// lineStateVO = lineMapper.getLineStatisticsDetail(generalDeviceDTO.getLineIndexes());
// lineStateVO = lineMapper.getLineStatisticsDetail(generalDeviceDTO.getLineIndexes());
lineStateVO = lineMapper.getDeviceStatus(generalDeviceDTO.getDeviceIndexes());
BeanUtil.copyProperties(lineStateVO, lineStatisticsDetail);
normalStateTail += lineStateVO.getNormalStateNum();
@@ -587,7 +588,7 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
LineDetailDataVO lineDetailDataVO = new LineDetailDataVO();
String areaId = "",gdId="",subStationId = "", devId = "", voId = "",lineId="",
areaName = "",gdName="",subStationName = "", devName = "", voName = "",lineName="";
areaName = "",gdName="",subStationName = "", devName = "", voName = "",lineName="";
for (LineDataVO lineDataVO : lineDataVOList) {
switch (lineDataVO.getLevel()) {
case 1:
@@ -647,7 +648,7 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
LineALLInfoDTO.LineSubStationDTO lineSubStationDTO = new LineALLInfoDTO.LineSubStationDTO();
lineSubStationDTO.setSubStationId(subStationId);
lineSubStationDTO.setSubStationName(subStationName);
lineALLInfoDTO.setLineSubStationDTO(lineSubStationDTO);
//todo 处理部门信息后续需要部门信息在添加
@@ -729,6 +730,14 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
return info;
}
@Override
public List<String> getLevelMonitorByDept(String level, String deptId) {
List<String> deptIds = deptFeignClient.getDepSonIdtByDeptId(deptId).getData();
List<String> lineIds = deptLineService.list(new LambdaQueryWrapper<DeptLine>().in(DeptLine::getId,deptIds)).stream().map(DeptLine::getLineId).distinct().collect(Collectors.toList());
List<String> result = lineDetailMapper.selectList(new LambdaQueryWrapper<LineDetail>().select(LineDetail::getId).in(LineDetail::getId,lineIds).eq(LineDetail::getLineGrade,level)).stream().map(LineDetail::getId).distinct().collect(Collectors.toList());
return result;
}
@Override
public List<Overlimit> getOverLimitByList(PollutionParamDTO pollutionParamDTO) {
return overlimitMapper.selectBatchIds(pollutionParamDTO.getLineList());
@@ -799,10 +808,10 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
/**
* @Description: 通过部门索引查询其下监测点数
* @Param: [deviceInfoParam] 监测点查询条件
* @return: java.util.List<com.njcn.device.pq.pojo.vo.DeptLineCountVO>
* @Author: clam
* @Date: 2022/10/10
*/
* @return: java.util.List<com.njcn.device.pq.pojo.vo.DeptLineCountVO>
* @Author: clam
* @Date: 2022/10/10
*/
@Override
public List<DeptLineCountVO> getDeptLineCount(DeviceInfoParam deviceInfoParam) {
List<DeptLineCountVO> deptLineCountVOList = new ArrayList<> ();

View File

@@ -25,6 +25,8 @@ public class EventBaseParam extends BaseParam implements Serializable {
@ApiModelProperty(name = "lineId", value = "监测点索引")
private String lineId;
private String deptId;

View File

@@ -1,12 +1,14 @@
package com.njcn.event.controller.majornetwork;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.event.pojo.param.EventBaseParam;
import com.njcn.event.pojo.param.UniversalFrontEndParam;
import com.njcn.event.pojo.po.RmpEventDetailPO;
import com.njcn.event.pojo.vo.AdvanceEventDetailVO;
@@ -24,6 +26,7 @@ import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
@@ -129,4 +132,18 @@ public class RmpEventDetailController extends BaseController {
}
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe);
}
/**
* 查询重要监测点指定时间发生的暂降次数
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getImMonitorEvents")
@ApiOperation("暂降事件记录")
public HttpResult<List<Map<String,Object>>> getImMonitorEvents(@RequestBody EventBaseParam param) {
String methodDescribe = getMethodDescribe("getImMonitorEvents");
List<Map<String,Object>> result = rmpEventDetailService.getImMonitorEvents(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
}

View File

@@ -8,6 +8,7 @@ import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.dto.SimpleDTO;
@@ -30,11 +31,13 @@ import com.njcn.device.pq.api.GeneralDeviceInfoClient;
import com.njcn.device.pq.api.LineFeignClient;
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
import com.njcn.device.pq.pojo.param.GridDiagramParam;
import com.njcn.device.pq.pojo.po.Line;
import com.njcn.device.pq.pojo.vo.AreaLineInfoVO;
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
import com.njcn.event.enums.EventResponseEnum;
import com.njcn.event.mapper.majornetwork.RMpEventDetailMMapper;
import com.njcn.event.mapper.majornetwork.RmpEventDetailMapper;
import com.njcn.event.pojo.param.EventBaseParam;
import com.njcn.event.pojo.param.UniversalFrontEndParam;
import com.njcn.event.pojo.po.RmpEventDetailPO;
import com.njcn.event.pojo.vo.*;
@@ -87,10 +90,12 @@ public class RmpEventDetailServiceImpl extends ServiceImpl<RmpEventDetailMapper,
private final DistributionMonitorClient distributionMonitorClient;
private final GeneralDeviceInfoClient generalDeviceInfoClient;
private final CommTerminalGeneralClient commTerminalGeneralClient;
private final RMpEventDetailMMapper eventDetailMMapper;
/**
* 获取暂态事件明细
*
@@ -392,6 +397,36 @@ public class RmpEventDetailServiceImpl extends ServiceImpl<RmpEventDetailMapper,
return rMpEventDetailM;
}
@Override
public List<Map<String, Object>> getImMonitorEvents(EventBaseParam param) {
DictData eventDic = dicDataFeignClient.getDicDataByCodeAndType(DicDataEnum.VOLTAGE_DIP.getCode(),DicDataTypeEnum.EVENT_STATIS.getCode()).getData();
DictData dictData = dicDataFeignClient.getDicDataByCodeAndType(DicDataEnum.MOST_IMPORMENT.getCode(),DicDataTypeEnum.DEV_GRADE.getCode()).getData();
QueryWrapper<RmpEventDetailPO> queryWrapper = new QueryWrapper<>();
if(StrUtil.isNotBlank(param.getLineId())){
queryWrapper.eq("measurement_point_id",param.getSearchValue());
}else {
List<String> lineIds = lineFeignClient.getLevelMonitorIdByDept(dictData.getId(),param.getDeptId()).getData();
queryWrapper.in("measurement_point_id",lineIds);
}
//lineFeignClient.getLevelMonitorIdByDept(dictData.getId(),)
queryWrapper.select("measurement_point_id as lineId","count(event_id) as eventCount").between("start_time",param.getSearchBeginTime(),param.getSearchEndTime())
.eq("event_type",eventDic.getId())
.groupBy("measurement_point_id");
List<Map<String,Object>> mapList = this.baseMapper.selectMaps(queryWrapper);
List<String> ids = mapList.stream().map(it->it.get("lineId").toString()).distinct().collect(Collectors.toList());
List<Line> lineList = lineFeignClient.getBaseLineList(ids).getData();
Map<String,Line> lineMap = lineList.stream().collect(Collectors.toMap(Line::getId,Function.identity()));
mapList.forEach(item->{
item.put("lineName",lineMap.get(item.get("lineId")).getName());
});
return mapList;
}
private List<Double> setData(List<String> gwLineAllIds, List<RmpEventDetailPO> list) {
List<Double> info=new ArrayList<>();

View File

@@ -3,8 +3,10 @@ package com.njcn.event.service.majornetwork;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.device.pq.pojo.param.GridDiagramParam;
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
import com.njcn.event.pojo.param.EventBaseParam;
import com.njcn.event.pojo.param.UniversalFrontEndParam;
import com.njcn.event.pojo.po.RmpEventDetailPO;
import com.njcn.event.pojo.vo.AdvanceEventDetailVO;
@@ -14,8 +16,10 @@ import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
import com.njcn.event.pojo.po.RMpEventDetailM;
import com.njcn.system.pojo.po.DictData;
import com.njcn.web.pojo.param.BaseParam;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.Map;
/**
* 暂态事件明细
@@ -73,4 +77,7 @@ public interface RmpEventDetailService extends IService<RmpEventDetailPO> {
* @Date: 2024/5/4 17:08
*/
RMpEventDetailM getEventDetailByLine(StatisticsBizBaseParam param);
List<Map<String,Object>> getImMonitorEvents(EventBaseParam param);
}

View File

@@ -9,9 +9,6 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.harmonic.pojo.dto.upload.RUploadMainMonitorDataDTO;
import com.njcn.harmonic.pojo.param.UploadDataParam;
import com.njcn.harmonic.pojo.po.upload.RUploadCommPointBus;
import com.njcn.harmonic.pojo.po.upload.RUploadMainMonitorData;
import com.njcn.harmonic.service.upload.RUploadCommPointBusService;
import com.njcn.harmonic.service.upload.RUploadMainMonitorService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.ApiImplicitParam;