1.冀北电网一张图
This commit is contained in:
@@ -35,6 +35,9 @@ public class LineDetailDataVO {
|
|||||||
@ApiModelProperty(name = "manufacturer",value = "厂家")
|
@ApiModelProperty(name = "manufacturer",value = "厂家")
|
||||||
private String manufacturer;
|
private String manufacturer;
|
||||||
|
|
||||||
|
@ApiModelProperty(name = "devId",value = "终端Id")
|
||||||
|
private String devId;
|
||||||
|
|
||||||
@ApiModelProperty(name = "devName",value = "终端名称")
|
@ApiModelProperty(name = "devName",value = "终端名称")
|
||||||
private String devName;
|
private String devName;
|
||||||
|
|
||||||
|
|||||||
@@ -3,9 +3,12 @@ package com.njcn.device.pq.controller;
|
|||||||
import com.njcn.common.pojo.annotation.OperateInfo;
|
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||||
import com.njcn.common.pojo.enums.common.LogEnum;
|
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||||
|
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
|
||||||
import com.njcn.common.pojo.response.HttpResult;
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
import com.njcn.common.utils.HttpResultUtil;
|
import com.njcn.common.utils.HttpResultUtil;
|
||||||
import com.njcn.device.pq.pojo.param.GridDiagramParam;
|
import com.njcn.device.pq.pojo.param.GridDiagramParam;
|
||||||
|
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
|
||||||
|
import com.njcn.device.pq.pojo.po.RStatOnlinerateD;
|
||||||
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
||||||
import com.njcn.device.pq.service.GridDiagramService;
|
import com.njcn.device.pq.service.GridDiagramService;
|
||||||
import com.njcn.web.controller.BaseController;
|
import com.njcn.web.controller.BaseController;
|
||||||
@@ -90,4 +93,22 @@ public class GridDiagramController extends BaseController {
|
|||||||
List<String> gridDiagramCityDev = gridDiagramService.getGridDiagramCityDev(param);
|
List<String> gridDiagramCityDev = gridDiagramService.getGridDiagramCityDev(param);
|
||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, gridDiagramCityDev, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, gridDiagramCityDev, methodDescribe);
|
||||||
}
|
}
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
|
@PostMapping("/getGridDiagramIntegrityD")
|
||||||
|
@ApiOperation("监测点完整性")
|
||||||
|
public HttpResult<List<RStatIntegrityD>> getGridDiagramIntegrityD(@RequestBody StatisticsBizBaseParam param){
|
||||||
|
String methodDescribe = getMethodDescribe("getGridDiagramIntegrityD");
|
||||||
|
List<RStatIntegrityD> gridDiagramIntegrityD = gridDiagramService.getGridDiagramIntegrityD(param);
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, gridDiagramIntegrityD, methodDescribe);
|
||||||
|
}
|
||||||
|
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
|
@PostMapping("/getGridDiagramOnLineRateD")
|
||||||
|
@ApiOperation("终端在线率列表")
|
||||||
|
public HttpResult<List<RStatOnlinerateD>> getGridDiagramOnLineRateD(@RequestBody StatisticsBizBaseParam param){
|
||||||
|
String methodDescribe = getMethodDescribe("getGridDiagramOnLineRateD");
|
||||||
|
List<RStatOnlinerateD> gridDiagramOnLineRateD = gridDiagramService.getGridDiagramOnLineRateD(param);
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, gridDiagramOnLineRateD, methodDescribe);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
package com.njcn.device.pq.service;
|
package com.njcn.device.pq.service;
|
||||||
|
|
||||||
|
|
||||||
|
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
|
||||||
import com.njcn.device.pq.pojo.param.GridDiagramParam;
|
import com.njcn.device.pq.pojo.param.GridDiagramParam;
|
||||||
|
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
|
||||||
|
import com.njcn.device.pq.pojo.po.RStatOnlinerateD;
|
||||||
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -56,5 +59,18 @@ public interface GridDiagramService {
|
|||||||
|
|
||||||
List<String> getGridDiagramCityDev(GridDiagramParam param);
|
List<String> getGridDiagramCityDev(GridDiagramParam param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 监测点完整性
|
||||||
|
* @Author: wr
|
||||||
|
* @Date: 2024/5/4 18:34
|
||||||
|
*/
|
||||||
|
List<RStatIntegrityD> getGridDiagramIntegrityD(StatisticsBizBaseParam param);
|
||||||
|
/**
|
||||||
|
* @Description: 终端在线率
|
||||||
|
* @param param
|
||||||
|
* @return: java.util.List<com.njcn.device.pq.pojo.po.RStatOnlinerateD>
|
||||||
|
* @Author: wr
|
||||||
|
* @Date: 2024/5/4 18:35
|
||||||
|
*/
|
||||||
|
List<RStatOnlinerateD> getGridDiagramOnLineRateD(StatisticsBizBaseParam param);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import cn.hutool.core.util.StrUtil;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.njcn.common.pojo.enums.common.DataStateEnum;
|
import com.njcn.common.pojo.enums.common.DataStateEnum;
|
||||||
|
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
|
||||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
||||||
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
||||||
@@ -184,7 +185,9 @@ public class GridDiagramServiceImpl implements GridDiagramService {
|
|||||||
private void gwStatisticsDataList(List<GridDiagramVO.LineStatisticsData> statisticsData, List<LineDevGetDTO> lineBaseList, String value, List<RStatOnlinerateD> onlineRateByDevIds, List<RStatIntegrityD> onIntegrityByIds) {
|
private void gwStatisticsDataList(List<GridDiagramVO.LineStatisticsData> statisticsData, List<LineDevGetDTO> lineBaseList, String value, List<RStatOnlinerateD> onlineRateByDevIds, List<RStatIntegrityD> onIntegrityByIds) {
|
||||||
//监测点集合
|
//监测点集合
|
||||||
List<String> lineIds = lineBaseList.stream().filter(x -> value.equals(x.getVoltageLevel())).filter(x -> 1 == x.getIsUpToGrid()).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList());
|
List<String> lineIds = lineBaseList.stream().filter(x -> value.equals(x.getVoltageLevel())).filter(x -> 1 == x.getIsUpToGrid()).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList());
|
||||||
List<String> onLineNumIds = lineBaseList.stream().filter(x -> value.equals(x.getVoltageLevel()) && 1 == x.getComFlag()).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList());
|
List<String> onLineNumIds = lineBaseList.stream().filter(x -> value.equals(x.getVoltageLevel()) && 1 == x.getComFlag())
|
||||||
|
.filter(x->1 == x.getIsUpToGrid())
|
||||||
|
.map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList());
|
||||||
//终端id集合
|
//终端id集合
|
||||||
List<String> devIds = lineBaseList.stream().filter(x -> value.equals(x.getVoltageLevel())).filter(x -> 1 == x.getIsUpToGrid()).map(LineDevGetDTO::getDevId).distinct().collect(Collectors.toList());
|
List<String> devIds = lineBaseList.stream().filter(x -> value.equals(x.getVoltageLevel())).filter(x -> 1 == x.getIsUpToGrid()).map(LineDevGetDTO::getDevId).distinct().collect(Collectors.toList());
|
||||||
|
|
||||||
@@ -362,7 +365,11 @@ public class GridDiagramServiceImpl implements GridDiagramService {
|
|||||||
public List<String> getGridDiagramCityDev(GridDiagramParam param) {
|
public List<String> getGridDiagramCityDev(GridDiagramParam param) {
|
||||||
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceService.getDeviceInfoAsDept(param.getDeviceInfoParam(), null, Stream.of(1).collect(Collectors.toList()));
|
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceService.getDeviceInfoAsDept(param.getDeviceInfoParam(), null, Stream.of(1).collect(Collectors.toList()));
|
||||||
List<String> devIds = generalDeviceDTOList.stream().flatMap(x -> x.getDeviceIndexes().stream()).collect(Collectors.toList());
|
List<String> devIds = generalDeviceDTOList.stream().flatMap(x -> x.getDeviceIndexes().stream()).collect(Collectors.toList());
|
||||||
List<Device> devList = deviceService.list(new LambdaQueryWrapper<Device>().in(CollUtil.isNotEmpty(devIds), Device::getId, devIds));
|
//终端信息
|
||||||
|
List<Device> devList =new ArrayList<>();
|
||||||
|
if(CollUtil.isNotEmpty(devIds)){
|
||||||
|
devList = deviceService.list(new LambdaQueryWrapper<Device>().in(CollUtil.isNotEmpty(devIds), Device::getId, devIds));
|
||||||
|
}
|
||||||
OnlineRateParam onlineRateParam = new OnlineRateParam();
|
OnlineRateParam onlineRateParam = new OnlineRateParam();
|
||||||
onlineRateParam.setStartTime(param.getSearchBeginTime());
|
onlineRateParam.setStartTime(param.getSearchBeginTime());
|
||||||
onlineRateParam.setEndTime(param.getSearchEndTime());
|
onlineRateParam.setEndTime(param.getSearchEndTime());
|
||||||
@@ -383,40 +390,53 @@ public class GridDiagramServiceImpl implements GridDiagramService {
|
|||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<RStatIntegrityD> getGridDiagramIntegrityD(StatisticsBizBaseParam param) {
|
||||||
|
return integrityDMapper.selectList(new LambdaQueryWrapper<RStatIntegrityD>()
|
||||||
|
.eq(RStatIntegrityD::getLineIndex, param.getId())
|
||||||
|
.ge(StrUtil.isNotBlank(param.getStartTime()), RStatIntegrityD::getTimeId, DateUtil.beginOfDay(DateUtil.parse(param.getStartTime())))
|
||||||
|
.le(StrUtil.isNotBlank(param.getEndTime()), RStatIntegrityD::getTimeId, DateUtil.endOfDay(DateUtil.parse(param.getEndTime())))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<RStatOnlinerateD> getGridDiagramOnLineRateD(StatisticsBizBaseParam param) {
|
||||||
|
return onLineRateDMapper.selectList(new LambdaQueryWrapper<RStatOnlinerateD>()
|
||||||
|
.eq(RStatOnlinerateD::getDevIndex, param.getId())
|
||||||
|
.ge(StrUtil.isNotBlank(param.getStartTime()), RStatOnlinerateD::getTimeId, DateUtil.beginOfDay(DateUtil.parse(param.getStartTime())))
|
||||||
|
.le(StrUtil.isNotBlank(param.getEndTime()), RStatOnlinerateD::getTimeId, DateUtil.endOfDay(DateUtil.parse(param.getEndTime())))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void getDevStatisticsData(List<GridDiagramVO.StatisticsData> statisticsData, List<GridDiagramVO.StatisticsData> gwStatisticsData, List<LineDevGetDTO> lineBaseList, List<String> voltageIds) {
|
private void getDevStatisticsData(List<GridDiagramVO.StatisticsData> statisticsData, List<GridDiagramVO.StatisticsData> gwStatisticsData, List<LineDevGetDTO> lineBaseList, List<String> voltageIds) {
|
||||||
long countOne = 0;
|
|
||||||
long countTow = 0;
|
|
||||||
long gwCountOne = 0;
|
|
||||||
long gwCountTow = 0;
|
|
||||||
GridDiagramVO.StatisticsData data;
|
GridDiagramVO.StatisticsData data;
|
||||||
for (String voltageId : voltageIds) {
|
for (String voltageId : voltageIds) {
|
||||||
for (int i = 0; i < 2; i++) {
|
for (int i = 0; i < 2; i++) {
|
||||||
data = new GridDiagramVO.StatisticsData();
|
data = new GridDiagramVO.StatisticsData();
|
||||||
int finalI = i;
|
int finalI = i;
|
||||||
//todo 0
|
//todo 1国网信息
|
||||||
long count = lineBaseList.stream().filter(x -> getIsUpToGrid(finalI, x, voltageId)).map(LineDevGetDTO::getDevId).distinct().count();
|
long count = lineBaseList.stream().filter(x -> getIsUpToGrid(finalI, x, voltageId)).map(LineDevGetDTO::getDevId).distinct().count();
|
||||||
data.setNumOne(count);
|
data.setNumOne(count);
|
||||||
long count1 = lineBaseList.stream().filter(x -> getIsUpToGrid(finalI, x, voltageId)).filter(x -> 1 == x.getComFlag()).map(LineDevGetDTO::getDevId).distinct().count();
|
long count1 = lineBaseList.stream().filter(x -> getIsUpToGrid(finalI, x, voltageId)).filter(x -> 1 == x.getComFlag()).map(LineDevGetDTO::getDevId).distinct().count();
|
||||||
data.setNumTwo(count1);
|
data.setNumTwo(count1);
|
||||||
if (i == 0) {
|
if (i == 0) {
|
||||||
countOne += count;
|
|
||||||
countTow += count1;
|
|
||||||
statisticsData.add(data);
|
statisticsData.add(data);
|
||||||
} else {
|
} else {
|
||||||
gwCountOne += count;
|
|
||||||
gwCountTow += count1;
|
|
||||||
gwStatisticsData.add(data);
|
gwStatisticsData.add(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
data = new GridDiagramVO.StatisticsData();
|
data = new GridDiagramVO.StatisticsData();
|
||||||
data.setNumOne(countOne);
|
data.setNumOne(lineBaseList.stream().map(LineDevGetDTO::getDevId).distinct().count());
|
||||||
data.setNumTwo(countTow);
|
data.setNumTwo(lineBaseList.stream()
|
||||||
|
.filter(x -> 1 == x.getComFlag()).map(LineDevGetDTO::getDevId).distinct().count());
|
||||||
statisticsData.add(data);
|
statisticsData.add(data);
|
||||||
data = new GridDiagramVO.StatisticsData();
|
data = new GridDiagramVO.StatisticsData();
|
||||||
data.setNumOne(gwCountOne);
|
data.setNumOne(lineBaseList.stream()
|
||||||
data.setNumTwo(gwCountTow);
|
.filter(x -> 1==x.getIsUpToGrid()).map(LineDevGetDTO::getDevId).distinct().count());
|
||||||
|
data.setNumTwo(lineBaseList.stream()
|
||||||
|
.filter(x -> 1 == x.getComFlag()&&1==x.getIsUpToGrid()).map(LineDevGetDTO::getDevId).distinct().count());
|
||||||
gwStatisticsData.add(data);
|
gwStatisticsData.add(data);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -138,6 +138,7 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
|
|||||||
lineDetailDataVO.setRunFlag(PubUtils.runFlag(device.getRunFlag()));
|
lineDetailDataVO.setRunFlag(PubUtils.runFlag(device.getRunFlag()));
|
||||||
lineDetailDataVO.setIp(device.getIp());
|
lineDetailDataVO.setIp(device.getIp());
|
||||||
lineDetailDataVO.setLoginTime(device.getLoginTime());
|
lineDetailDataVO.setLoginTime(device.getLoginTime());
|
||||||
|
lineDetailDataVO.setDevId(device.getId());
|
||||||
lineDetailDataVO.setBusinessType(dicDataFeignClient.getDicDataById(lineDetail.getBusinessType()).getData().getName());
|
lineDetailDataVO.setBusinessType(dicDataFeignClient.getDicDataById(lineDetail.getBusinessType()).getData().getName());
|
||||||
lineDetailDataVO.setLoadType(dicDataFeignClient.getDicDataById(lineDetail.getLoadType()).getData().getName());
|
lineDetailDataVO.setLoadType(dicDataFeignClient.getDicDataById(lineDetail.getLoadType()).getData().getName());
|
||||||
lineDetailDataVO.setObjName(lineDetail.getObjName());
|
lineDetailDataVO.setObjName(lineDetail.getObjName());
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.njcn.event.controller.majornetwork;
|
|||||||
import com.njcn.common.pojo.annotation.OperateInfo;
|
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||||
import com.njcn.common.pojo.enums.common.LogEnum;
|
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||||
|
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
|
||||||
import com.njcn.common.pojo.response.HttpResult;
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
import com.njcn.common.utils.HttpResultUtil;
|
import com.njcn.common.utils.HttpResultUtil;
|
||||||
import com.njcn.device.pq.pojo.param.GridDiagramParam;
|
import com.njcn.device.pq.pojo.param.GridDiagramParam;
|
||||||
@@ -10,6 +11,7 @@ import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
|||||||
import com.njcn.event.pojo.vo.EventDetailVO;
|
import com.njcn.event.pojo.vo.EventDetailVO;
|
||||||
import com.njcn.event.service.majornetwork.RmpEventDetailService;
|
import com.njcn.event.service.majornetwork.RmpEventDetailService;
|
||||||
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
|
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
|
||||||
|
import com.njcn.harmonic.pojo.po.RMpEventDetailMPO;
|
||||||
import com.njcn.web.controller.BaseController;
|
import com.njcn.web.controller.BaseController;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
@@ -51,4 +53,13 @@ public class GridDiagramEventController extends BaseController {
|
|||||||
List<EventDetailVO> eventDetailByList = rmpEventDetailService.getEventDetailByList(param);
|
List<EventDetailVO> eventDetailByList = rmpEventDetailService.getEventDetailByList(param);
|
||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, eventDetailByList, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, eventDetailByList, methodDescribe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
|
@PostMapping("/getEventDetailByLineId")
|
||||||
|
@ApiOperation("根据监测点获取暂态短时中断和暂态赞升暂降")
|
||||||
|
public HttpResult<RMpEventDetailMPO> getEventDetailByLineId(@RequestBody StatisticsBizBaseParam param) {
|
||||||
|
String methodDescribe = getMethodDescribe("getEventDetailByLineId");
|
||||||
|
RMpEventDetailMPO eventDetailByLine = rmpEventDetailService.getEventDetailByLine(param);
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, eventDetailByLine, methodDescribe);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.njcn.event.mapper.majornetwork;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.njcn.harmonic.pojo.po.RMpEventDetailMPO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 监测点暂态指标超标明细月表 Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author wr
|
||||||
|
* @since 2024-05-04
|
||||||
|
*/
|
||||||
|
public interface RMpEventDetailMMapper extends BaseMapper<RMpEventDetailMPO> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.njcn.event.mapper.majornetwork.RMpEventDetailMMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@@ -163,7 +163,8 @@ public class ReportServiceImpl implements ReportService {
|
|||||||
//查区域
|
//查区域
|
||||||
List<GeneralDeviceDTO> data = generalDeviceInfoClient.getPracticalAllDeviceInfo(businessParam).getData();
|
List<GeneralDeviceDTO> data = generalDeviceInfoClient.getPracticalAllDeviceInfo(businessParam).getData();
|
||||||
List<String> lineIds = data.stream().flatMap(dto -> dto.getLineIndexes().stream()).collect(Collectors.toList());
|
List<String> lineIds = data.stream().flatMap(dto -> dto.getLineIndexes().stream()).collect(Collectors.toList());
|
||||||
|
List<GeneralVO> generalVOS = new ArrayList<>();
|
||||||
|
if(CollUtil.isNotEmpty(lineIds)){
|
||||||
HashMap<String, Object> condMap = new HashMap<>();
|
HashMap<String, Object> condMap = new HashMap<>();
|
||||||
condMap.put("startTime", DateUtil.beginOfDay(DateUtil.parse(businessParam.getSearchBeginTime())).toString());
|
condMap.put("startTime", DateUtil.beginOfDay(DateUtil.parse(businessParam.getSearchBeginTime())).toString());
|
||||||
condMap.put("endTime", DateUtil.endOfDay(DateUtil.parse(businessParam.getSearchEndTime())).toString());
|
condMap.put("endTime", DateUtil.endOfDay(DateUtil.parse(businessParam.getSearchEndTime())).toString());
|
||||||
@@ -171,9 +172,10 @@ public class ReportServiceImpl implements ReportService {
|
|||||||
condMap.put(DicDataEnum.VOLTAGE_DIP.getCode(), dictMap.get(DicDataEnum.VOLTAGE_DIP.getCode())); //电压暂降
|
condMap.put(DicDataEnum.VOLTAGE_DIP.getCode(), dictMap.get(DicDataEnum.VOLTAGE_DIP.getCode())); //电压暂降
|
||||||
condMap.put(DicDataEnum.SHORT_INTERRUPTIONS.getCode(), dictMap.get(DicDataEnum.SHORT_INTERRUPTIONS.getCode())); //短时中断
|
condMap.put(DicDataEnum.SHORT_INTERRUPTIONS.getCode(), dictMap.get(DicDataEnum.SHORT_INTERRUPTIONS.getCode())); //短时中断
|
||||||
condMap.put(DicDataEnum.VOLTAGE_RISE.getCode(), dictMap.get(DicDataEnum.VOLTAGE_RISE.getCode())); //电压暂升
|
condMap.put(DicDataEnum.VOLTAGE_RISE.getCode(), dictMap.get(DicDataEnum.VOLTAGE_RISE.getCode())); //电压暂升
|
||||||
|
|
||||||
//根据id把所有的数据查询出来
|
//根据id把所有的数据查询出来
|
||||||
List<GeneralVO> generalVOS = eventDetailMapper.ListEventType(condMap);
|
generalVOS = eventDetailMapper.ListEventType(condMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
GeneralVO generalVO;
|
GeneralVO generalVO;
|
||||||
List<GeneralVO> list = new ArrayList<>();
|
List<GeneralVO> list = new ArrayList<>();
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.njcn.common.pojo.dto.SimpleDTO;
|
import com.njcn.common.pojo.dto.SimpleDTO;
|
||||||
import com.njcn.common.pojo.exception.BusinessException;
|
import com.njcn.common.pojo.exception.BusinessException;
|
||||||
|
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
|
||||||
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
|
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
|
||||||
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
|
||||||
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
||||||
@@ -32,6 +33,7 @@ import com.njcn.device.pq.pojo.param.GridDiagramParam;
|
|||||||
import com.njcn.device.pq.pojo.vo.AreaLineInfoVO;
|
import com.njcn.device.pq.pojo.vo.AreaLineInfoVO;
|
||||||
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
||||||
import com.njcn.event.enums.EventResponseEnum;
|
import com.njcn.event.enums.EventResponseEnum;
|
||||||
|
import com.njcn.event.mapper.majornetwork.RMpEventDetailMMapper;
|
||||||
import com.njcn.event.mapper.majornetwork.RmpEventDetailMapper;
|
import com.njcn.event.mapper.majornetwork.RmpEventDetailMapper;
|
||||||
import com.njcn.event.pojo.param.UniversalFrontEndParam;
|
import com.njcn.event.pojo.param.UniversalFrontEndParam;
|
||||||
import com.njcn.event.pojo.po.RmpEventDetailPO;
|
import com.njcn.event.pojo.po.RmpEventDetailPO;
|
||||||
@@ -39,6 +41,7 @@ import com.njcn.event.pojo.vo.*;
|
|||||||
import com.njcn.event.service.majornetwork.EventDetailService;
|
import com.njcn.event.service.majornetwork.EventDetailService;
|
||||||
import com.njcn.event.service.majornetwork.RmpEventDetailService;
|
import com.njcn.event.service.majornetwork.RmpEventDetailService;
|
||||||
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
|
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
|
||||||
|
import com.njcn.harmonic.pojo.po.RMpEventDetailMPO;
|
||||||
import com.njcn.system.api.DicDataFeignClient;
|
import com.njcn.system.api.DicDataFeignClient;
|
||||||
import com.njcn.system.enums.DicDataEnum;
|
import com.njcn.system.enums.DicDataEnum;
|
||||||
import com.njcn.system.enums.DicDataTypeEnum;
|
import com.njcn.system.enums.DicDataTypeEnum;
|
||||||
@@ -86,6 +89,9 @@ public class RmpEventDetailServiceImpl extends ServiceImpl<RmpEventDetailMapper,
|
|||||||
|
|
||||||
private final GeneralDeviceInfoClient generalDeviceInfoClient;
|
private final GeneralDeviceInfoClient generalDeviceInfoClient;
|
||||||
private final CommTerminalGeneralClient commTerminalGeneralClient;
|
private final CommTerminalGeneralClient commTerminalGeneralClient;
|
||||||
|
|
||||||
|
private final RMpEventDetailMMapper eventDetailMMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取暂态事件明细
|
* 获取暂态事件明细
|
||||||
*
|
*
|
||||||
@@ -378,6 +384,16 @@ public class RmpEventDetailServiceImpl extends ServiceImpl<RmpEventDetailMapper,
|
|||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RMpEventDetailMPO getEventDetailByLine(StatisticsBizBaseParam param) {
|
||||||
|
RMpEventDetailMPO rMpEventDetailMPO = eventDetailMMapper.selectOne(new LambdaQueryWrapper<RMpEventDetailMPO>()
|
||||||
|
.eq(RMpEventDetailMPO::getMeasurementPointId, param.getId())
|
||||||
|
.ge(StrUtil.isNotBlank(param.getStartTime()), RMpEventDetailMPO::getDataDate, DateUtil.beginOfDay(DateUtil.parse(param.getStartTime())))
|
||||||
|
.le(StrUtil.isNotBlank(param.getEndTime()), RMpEventDetailMPO::getDataDate, DateUtil.endOfDay(DateUtil.parse(param.getEndTime())))
|
||||||
|
);
|
||||||
|
return rMpEventDetailMPO;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private Double setData(GridDiagramVO gridDiagramVO, List<String> gwLineAllIds, List<RmpEventDetailPO> list) {
|
private Double setData(GridDiagramVO gridDiagramVO, List<String> gwLineAllIds, List<RmpEventDetailPO> list) {
|
||||||
List<Double> asGwDouble = list.stream()
|
List<Double> asGwDouble = list.stream()
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.njcn.event.service.majornetwork;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
|
||||||
import com.njcn.device.pq.pojo.param.GridDiagramParam;
|
import com.njcn.device.pq.pojo.param.GridDiagramParam;
|
||||||
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
||||||
import com.njcn.event.pojo.param.UniversalFrontEndParam;
|
import com.njcn.event.pojo.param.UniversalFrontEndParam;
|
||||||
@@ -10,6 +11,7 @@ import com.njcn.event.pojo.vo.AdvanceEventDetailVO;
|
|||||||
import com.njcn.event.pojo.vo.EventDetailVO;
|
import com.njcn.event.pojo.vo.EventDetailVO;
|
||||||
import com.njcn.event.pojo.vo.RmpEventDetailVO;
|
import com.njcn.event.pojo.vo.RmpEventDetailVO;
|
||||||
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
|
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
|
||||||
|
import com.njcn.harmonic.pojo.po.RMpEventDetailMPO;
|
||||||
import com.njcn.system.pojo.po.DictData;
|
import com.njcn.system.pojo.po.DictData;
|
||||||
import com.njcn.web.pojo.param.BaseParam;
|
import com.njcn.web.pojo.param.BaseParam;
|
||||||
|
|
||||||
@@ -62,4 +64,13 @@ public interface RmpEventDetailService extends IService<RmpEventDetailPO> {
|
|||||||
GridDiagramVO getEventLevelEvaluation(StatSubstationBizBaseParam param);
|
GridDiagramVO getEventLevelEvaluation(StatSubstationBizBaseParam param);
|
||||||
|
|
||||||
List<EventDetailVO> getEventDetailByList(GridDiagramParam param);
|
List<EventDetailVO> getEventDetailByList(GridDiagramParam param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 根据监测点获取暂态短时中断和暂态赞升暂降
|
||||||
|
* @param param
|
||||||
|
* @return: java.util.List<java.lang.String>
|
||||||
|
* @Author: wr
|
||||||
|
* @Date: 2024/5/4 17:08
|
||||||
|
*/
|
||||||
|
RMpEventDetailMPO getEventDetailByLine(StatisticsBizBaseParam param);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
|
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
|
||||||
import com.njcn.device.biz.pojo.dto.DeptGetSubStationDTO;
|
import com.njcn.device.biz.pojo.dto.DeptGetSubStationDTO;
|
||||||
|
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
|
||||||
import com.njcn.device.biz.pojo.dto.SubGetBase;
|
import com.njcn.device.biz.pojo.dto.SubGetBase;
|
||||||
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
|
||||||
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
|
||||||
@@ -118,10 +119,6 @@ public class RMpTargetWarnDServiceImpl extends ServiceImpl<RMpTargetWarnDMapper,
|
|||||||
List<String> voltageIds,
|
List<String> voltageIds,
|
||||||
List<RMpTargetWarnDPO> list
|
List<RMpTargetWarnDPO> list
|
||||||
) {
|
) {
|
||||||
long countOne= 0;
|
|
||||||
long countTow= 0;
|
|
||||||
long gwCountOne= 0;
|
|
||||||
long gwCountTow= 0;
|
|
||||||
GridDiagramVO.StatisticsData data;
|
GridDiagramVO.StatisticsData data;
|
||||||
for (String voltageId : voltageIds) {
|
for (String voltageId : voltageIds) {
|
||||||
for (int i = 0; i < 2; i++) {
|
for (int i = 0; i < 2; i++) {
|
||||||
@@ -129,6 +126,7 @@ public class RMpTargetWarnDServiceImpl extends ServiceImpl<RMpTargetWarnDMapper,
|
|||||||
int finalI = i;
|
int finalI = i;
|
||||||
long count = subBaseList.stream()
|
long count = subBaseList.stream()
|
||||||
.filter(x -> getIsUpToGrid(finalI,x,voltageId))
|
.filter(x -> getIsUpToGrid(finalI,x,voltageId))
|
||||||
|
.map(SubGetBase::getId)
|
||||||
.distinct()
|
.distinct()
|
||||||
.count();
|
.count();
|
||||||
data.setNumOne(count);
|
data.setNumOne(count);
|
||||||
@@ -136,6 +134,7 @@ public class RMpTargetWarnDServiceImpl extends ServiceImpl<RMpTargetWarnDMapper,
|
|||||||
AtomicLong num= new AtomicLong();
|
AtomicLong num= new AtomicLong();
|
||||||
subBaseList.stream().filter(x -> getIsUpToGrid(finalI, x, voltageId)).forEach(x -> {
|
subBaseList.stream().filter(x -> getIsUpToGrid(finalI, x, voltageId)).forEach(x -> {
|
||||||
List<String> line=new ArrayList<>();
|
List<String> line=new ArrayList<>();
|
||||||
|
//0:全部 1:国网
|
||||||
if(finalI==0){
|
if(finalI==0){
|
||||||
line.addAll(x.getUnitChildrenList());
|
line.addAll(x.getUnitChildrenList());
|
||||||
}else{
|
}else{
|
||||||
@@ -148,25 +147,43 @@ public class RMpTargetWarnDServiceImpl extends ServiceImpl<RMpTargetWarnDMapper,
|
|||||||
});
|
});
|
||||||
data.setNumTwo(num.get());
|
data.setNumTwo(num.get());
|
||||||
if(i==0){
|
if(i==0){
|
||||||
countOne+=count;
|
|
||||||
countTow+=num.get();
|
|
||||||
statisticsData.add(data);
|
statisticsData.add(data);
|
||||||
}else{
|
}else{
|
||||||
gwCountOne+=count;
|
|
||||||
gwCountTow+=num.get();
|
|
||||||
gwStatisticsData.add(data);
|
gwStatisticsData.add(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
data = new GridDiagramVO.StatisticsData();
|
data = new GridDiagramVO.StatisticsData();
|
||||||
data.setNumOne(countOne);
|
data.setNumOne( subBaseList.stream()
|
||||||
data.setNumTwo(countTow);
|
.map(SubGetBase::getId)
|
||||||
|
.distinct()
|
||||||
|
.count());
|
||||||
|
AtomicLong num= new AtomicLong();
|
||||||
|
subBaseList.stream().forEach(x -> {
|
||||||
|
List<String> line=x.getUnitChildrenList();
|
||||||
|
int sum = list.stream().filter(d -> line.contains(d.getMeasurementPointId())).mapToInt(RMpTargetWarnDPO::getIsWarn).sum();
|
||||||
|
if (sum > 0) {
|
||||||
|
num.getAndIncrement();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
data.setNumTwo(num.get());
|
||||||
statisticsData.add(data);
|
statisticsData.add(data);
|
||||||
data = new GridDiagramVO.StatisticsData();
|
data = new GridDiagramVO.StatisticsData();
|
||||||
data.setNumOne(gwCountOne);
|
data.setNumOne(subBaseList.stream()
|
||||||
data.setNumTwo(gwCountTow);
|
.filter(x -> 1 == x.getIsUpToGrid())
|
||||||
|
.map(SubGetBase::getId)
|
||||||
|
.distinct()
|
||||||
|
.count());
|
||||||
|
AtomicLong gwNum= new AtomicLong();
|
||||||
|
subBaseList.stream().filter(x -> 1 == x.getIsUpToGrid()).forEach(x -> {
|
||||||
|
List<String> line=x.getUnitChildrenList();
|
||||||
|
int sum = list.stream().filter(d -> line.contains(d.getMeasurementPointId())).mapToInt(RMpTargetWarnDPO::getIsWarn).sum();
|
||||||
|
if (sum > 0) {
|
||||||
|
gwNum.getAndIncrement();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
data.setNumTwo(gwNum.get());
|
||||||
gwStatisticsData.add(data);
|
gwStatisticsData.add(data);
|
||||||
|
|
||||||
}
|
}
|
||||||
private Boolean getIsUpToGrid(Integer type, SubGetBase subGetBase, String voltageId) {
|
private Boolean getIsUpToGrid(Integer type, SubGetBase subGetBase, String voltageId) {
|
||||||
//0:全部 1:国网上送监测点
|
//0:全部 1:国网上送监测点
|
||||||
|
|||||||
@@ -68,19 +68,25 @@ public class RStatLimitServiceImpl implements RStatLimitService {
|
|||||||
//监测点总数量
|
//监测点总数量
|
||||||
List<String> lineIds = list.stream().flatMap(x -> x.getLineIndexes().stream()).distinct().collect(Collectors.toList());
|
List<String> lineIds = list.stream().flatMap(x -> x.getLineIndexes().stream()).distinct().collect(Collectors.toList());
|
||||||
//超标监测点信息
|
//超标监测点信息
|
||||||
List<RStatLimitTargetDPO> limitTargetList = rStatLimitTargetDMapper.selectList(new LambdaQueryWrapper<RStatLimitTargetDPO>()
|
List<RStatLimitTargetDPO> limitTargetList =new ArrayList<>();
|
||||||
|
List<RStatIntegrityD> integrityList =new ArrayList<>();
|
||||||
|
if(CollUtil.isNotEmpty(lineIds)){
|
||||||
|
limitTargetList = rStatLimitTargetDMapper.selectList(new LambdaQueryWrapper<RStatLimitTargetDPO>()
|
||||||
.select(RStatLimitTargetDPO::getLineId, RStatLimitTargetDPO::getAllTime, RStatLimitTargetDPO::getFlickerAllTime)
|
.select(RStatLimitTargetDPO::getLineId, RStatLimitTargetDPO::getAllTime, RStatLimitTargetDPO::getFlickerAllTime)
|
||||||
.in(RStatLimitTargetDPO::getLineId, lineIds)
|
.in(RStatLimitTargetDPO::getLineId, lineIds)
|
||||||
.ge(StrUtil.isNotBlank(deviceInfoParam.getSearchBeginTime()), RStatLimitTargetDPO::getTime, DateUtil.beginOfDay(DateUtil.parse(deviceInfoParam.getSearchBeginTime())))
|
.ge(StrUtil.isNotBlank(deviceInfoParam.getSearchBeginTime()), RStatLimitTargetDPO::getTime, DateUtil.beginOfDay(DateUtil.parse(deviceInfoParam.getSearchBeginTime())))
|
||||||
.le(StrUtil.isNotBlank(deviceInfoParam.getSearchEndTime()), RStatLimitTargetDPO::getTime, DateUtil.endOfDay(DateUtil.parse(deviceInfoParam.getSearchEndTime()))));
|
.le(StrUtil.isNotBlank(deviceInfoParam.getSearchEndTime()), RStatLimitTargetDPO::getTime, DateUtil.endOfDay(DateUtil.parse(deviceInfoParam.getSearchEndTime()))));
|
||||||
|
integrityList = lineIntegrityClient.getIntegrityByLineIds(lineIds, deviceInfoParam.getSearchBeginTime(), deviceInfoParam.getSearchEndTime()).getData();
|
||||||
|
}
|
||||||
//终端在线率
|
//终端在线率
|
||||||
|
List<RStatOnlinerateVO> onlineRateList =new ArrayList<>();
|
||||||
|
if(CollUtil.isNotEmpty(devIds)){
|
||||||
OnlineRateParam param=new OnlineRateParam();
|
OnlineRateParam param=new OnlineRateParam();
|
||||||
param.setIds(devIds);
|
param.setIds(devIds);
|
||||||
param.setStartTime(deviceInfoParam.getSearchBeginTime());
|
param.setStartTime(deviceInfoParam.getSearchBeginTime());
|
||||||
param.setEndTime(deviceInfoParam.getSearchEndTime());
|
param.setEndTime(deviceInfoParam.getSearchEndTime());
|
||||||
List<RStatOnlinerateVO> onlineRateList = generalDeviceInfoClient.getOnlineRateByDevIds(param).getData();
|
onlineRateList = generalDeviceInfoClient.getOnlineRateByDevIds(param).getData();
|
||||||
List<RStatIntegrityD> integrityList = lineIntegrityClient.getIntegrityByLineIds(lineIds, deviceInfoParam.getSearchBeginTime(), deviceInfoParam.getSearchEndTime()).getData();
|
}
|
||||||
List<GeneralDeviceDTO> topList=new ArrayList<>();
|
List<GeneralDeviceDTO> topList=new ArrayList<>();
|
||||||
List<GeneralDeviceDTO> otherList=new ArrayList<>();
|
List<GeneralDeviceDTO> otherList=new ArrayList<>();
|
||||||
if(list.size()>4){
|
if(list.size()>4){
|
||||||
@@ -116,7 +122,6 @@ public class RStatLimitServiceImpl implements RStatLimitService {
|
|||||||
onLineAndIntegrity(otherLineIds, integrityList, otherDevIds, onlineRateList,limitTargetList, lineData);
|
onLineAndIntegrity(otherLineIds, integrityList, otherDevIds, onlineRateList,limitTargetList, lineData);
|
||||||
info.add(lineData);
|
info.add(lineData);
|
||||||
|
|
||||||
|
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user