曲靖表格数据提供

This commit is contained in:
2026-01-09 11:42:17 +08:00
parent e7daf05670
commit c1d933467e
8 changed files with 319 additions and 1 deletions

View File

@@ -0,0 +1,47 @@
package com.njcn.harmonic.pojo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
public class THDistortionDetailVO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("地市")
private String city;
@ApiModelProperty("供电公司")
private String company;
@ApiModelProperty("变电站")
private String subStation;
@ApiModelProperty("终端ID")
private String deviceId;
@ApiModelProperty("终端名称")
private String deviceName;
@ApiModelProperty("终端厂家")
private String manufacturer;
@ApiModelProperty("终端IP")
private String ip;
/**
* 监测点名称
*/
@ApiModelProperty("监测点名称")
private String lineName;
/**
* 总畸变率
*/
@ApiModelProperty("总畸变率")
private Double distortion = 3.14159;
}

View File

@@ -0,0 +1,97 @@
package com.njcn.harmonic.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
* @author: hongawen
*/
@Data
public class SteadyQualifyDetailVO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("地市")
private String city;
@ApiModelProperty("供电公司")
private String company;
@ApiModelProperty("变电站")
private String subStation;
@ApiModelProperty("终端ID")
private String deviceId;
@ApiModelProperty("终端名称")
private String deviceName;
@ApiModelProperty("终端厂家")
private String manufacturer;
@ApiModelProperty("终端IP")
private String ip;
/**
* 监测点名称
*/
@ApiModelProperty("监测点名称")
private String lineName;
// @ApiModelProperty("终端运行状态0运行1检修2停运3调试4退运")
// private String runFlag;
//
// @ApiModelProperty("终端通讯状态0中断1正常")
// private String comFlag;
//
// @ApiModelProperty("最新数据时间")
// private LocalDateTime timeID;
/**
* 谐波电压
*/
@ApiModelProperty("谐波电压")
private Double harmonicVoltage =3.14159;
/**
* 电压偏差
*/
@ApiModelProperty("电压偏差")
private Double voltageOffset =3.14159;
/**
* 相电压不平衡度
*/
@ApiModelProperty("相电压不平衡度")
private Double voltageUnbalance =3.14159;
/**
* 间谐波电压含有率
*/
@ApiModelProperty("间谐波电压含有率")
private Double interHarmonic =3.14159;
/**
* 谐波电流
*/
@ApiModelProperty("谐波电流")
private Double harmonicCurrent =3.14159;
/**
* 负序电流
*/
@ApiModelProperty("负序电流")
private Double negativeCurrent =3.14159;
/**
* 频率偏差
*/
@ApiModelProperty("频率偏差")
private Double freqOffset =3.14159;
/**
* 闪变
*/
@ApiModelProperty("闪变")
private Double flicker =3.14159;
}

View File

@@ -7,6 +7,7 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.harmonic.pojo.vo.SteadyQualifyCensusVO;
import com.njcn.harmonic.pojo.vo.SteadyQualifyDetailVO;
import com.njcn.harmonic.pojo.vo.SteadyQualifyVO;
import com.njcn.harmonic.service.SteadyQualifyService;
import com.njcn.web.controller.BaseController;
@@ -69,4 +70,14 @@ public class SteadyQualifyController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getSteadyQualifyTableData")
@ApiOperation("稳态合格率列表(曲靖)")
@ApiImplicitParam(name = "steadyParam", value = "稳态列表参数", required = true)
public HttpResult<List<SteadyQualifyDetailVO>> getSteadyQualifyTableData(@RequestBody @Validated DeviceInfoParam.BusinessParam steadyParam){
String methodDescribe = getMethodDescribe("getSteadyQualifyTableData");
List<SteadyQualifyDetailVO> list = steadyQualifyService.getSteadyQualifyTableData(steadyParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
}

View File

@@ -7,7 +7,9 @@ import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.harmonic.pojo.THDistortionDetailVO;
import com.njcn.harmonic.pojo.vo.RMpVThdVO;
import com.njcn.harmonic.pojo.vo.SteadyQualifyDetailVO;
import com.njcn.harmonic.pojo.vo.THDistortionCensusVO;
import com.njcn.harmonic.pojo.vo.THDistortionVO;
import com.njcn.harmonic.service.THDistortionService;
@@ -48,6 +50,18 @@ public class THDController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getTHDistortionTableData")
@ApiOperation("谐波总畸变率列表(曲靖)")
@ApiImplicitParam(name = "steadyParam", value = "稳态列表参数", required = true)
public HttpResult<List<THDistortionDetailVO>> getTHDistortionTableData(@RequestBody @Validated DeviceInfoParam.BusinessParam steadyParam){
String methodDescribe = getMethodDescribe("getTHDistortionTableData");
List<THDistortionDetailVO> list = thDistortionService.getTHDistortionTableData(steadyParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getNodeTHDistortionData")
@ApiOperation("谐波总畸变率节点图")

View File

@@ -2,6 +2,7 @@ package com.njcn.harmonic.service;
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.harmonic.pojo.vo.SteadyQualifyCensusVO;
import com.njcn.harmonic.pojo.vo.SteadyQualifyDetailVO;
import com.njcn.harmonic.pojo.vo.SteadyQualifyVO;
import java.util.List;
@@ -36,4 +37,10 @@ public interface SteadyQualifyService {
* @date 2022/03/20 20:34
*/
List<SteadyQualifyVO> getEnterpriseSteadyQualify(DeviceInfoParam.BusinessParam steadyParam);
/**
* 稳态合格率查询表格数据,注:非树表
* @param steadyParam 查询参数
*/
List<SteadyQualifyDetailVO> getSteadyQualifyTableData(DeviceInfoParam.BusinessParam steadyParam);
}

View File

@@ -2,6 +2,7 @@ package com.njcn.harmonic.service;
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.harmonic.pojo.THDistortionDetailVO;
import com.njcn.harmonic.pojo.vo.RMpVThdVO;
import com.njcn.harmonic.pojo.vo.THDistortionCensusVO;
import com.njcn.harmonic.pojo.vo.THDistortionVO;
@@ -40,4 +41,10 @@ public interface THDistortionService {
* @Date: 2022/11/7
*/
List<RMpVThdVO> getTHDTopTenData(StatisticsBizBaseParam statisticsBizBaseParam, Integer topNum);
/**
* 获取畸变率的数据表格展示
* @param steadyParam 查询参数
*/
List<THDistortionDetailVO> getTHDistortionTableData(DeviceInfoParam.BusinessParam steadyParam);
}

View File

@@ -8,12 +8,15 @@ import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.device.pq.api.GeneralDeviceInfoClient;
import com.njcn.device.pq.api.LineFeignClient;
import com.njcn.device.pq.enums.LineBaseEnum;
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.device.pq.pojo.vo.LineDetailVO;
import com.njcn.harmonic.mapper.SteadyQualifyMapper;
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
import com.njcn.harmonic.pojo.vo.SteadyQualifyCensusVO;
import com.njcn.harmonic.pojo.vo.SteadyQualifyDetailVO;
import com.njcn.harmonic.pojo.vo.SteadyQualifyVO;
import com.njcn.harmonic.rstatlimitrate.service.IRStatLimitRateDService;
import com.njcn.harmonic.service.SteadyQualifyService;
@@ -46,6 +49,8 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
private final UserLedgerFeignClient userLedgerFeignClient;
private final LineFeignClient lineFeignClient;
@Override
public List<SteadyQualifyVO> getSteadyQualifyData(DeviceInfoParam.BusinessParam steadyParam) {
List<SteadyQualifyVO> steadyQualifyList = new ArrayList<>();
@@ -190,6 +195,73 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
return steadyQualifyList;
}
@Override
public List<SteadyQualifyDetailVO> getSteadyQualifyTableData(DeviceInfoParam.BusinessParam steadyParam) {
List<SteadyQualifyDetailVO> steadyQualifyDetailVOList = new ArrayList<>();
//获取终端台账类信息
List<GeneralDeviceDTO> deviceDataList = generalDeviceInfoClient.getPracticalRunDeviceInfo(steadyParam).getData();
//收集所有lineIndexes并去重
List<String> lineIdList = deviceDataList.stream()
.filter(generalDeviceDTO -> CollectionUtil.isNotEmpty(generalDeviceDTO.getLineIndexes()))
.flatMap(generalDeviceDTO -> generalDeviceDTO.getLineIndexes().stream())
.distinct()
.collect(Collectors.toList());
if (CollectionUtil.isEmpty(lineIdList)) {
return steadyQualifyDetailVOList;
}
//获取稳态合格率数据
List<RStatLimitRateDPO> qualifiesRate = getQualifiesRate(lineIdList, steadyParam.getSearchBeginTime(), steadyParam.getSearchEndTime());
//获取监测点集合
List<SteadyQualifyVO> monitorList = steadyQualifyMapper.getSteadyQualifyData(lineIdList);
//获取所有监测点信息信息
List<LineDetailVO.Detail> lineInfoByIds = lineFeignClient.getLineDetailByIds(lineIdList).getData();
Map<String, LineDetailVO.Detail> lineDetailMap = lineInfoByIds.stream()
.collect(Collectors.toMap(LineDetailVO.Detail::getLineId, Function.identity()));
//组装列表数据
for (SteadyQualifyVO monitor : monitorList) {
SteadyQualifyDetailVO detailVO = new SteadyQualifyDetailVO();
//填充监测点详细信息
LineDetailVO.Detail lineDetail = lineDetailMap.get(monitor.getId());
if (lineDetail != null) {
detailVO.setCity(lineDetail.getDeptName());
detailVO.setCompany(lineDetail.getGdName());
detailVO.setSubStation(lineDetail.getSubName());
detailVO.setDeviceId(lineDetail.getDevId());
detailVO.setDeviceName(lineDetail.getDevName());
detailVO.setManufacturer(lineDetail.getManufacturer());
detailVO.setIp(lineDetail.getIp());
detailVO.setLineName(lineDetail.getLineName());
}
//计算单个监测点的合格率
SteadyQualifyVO dataSingleMonitorMoreDay = getDataSingleMonitorMoreDay(qualifiesRate, monitor.getId());
detailVO.setFlicker(PubUtils.dataLimits(dataSingleMonitorMoreDay.getFlicker()));
detailVO.setFreqOffset(PubUtils.dataLimits(dataSingleMonitorMoreDay.getFreqOffset()));
detailVO.setVoltageOffset(PubUtils.dataLimits(dataSingleMonitorMoreDay.getVoltageOffset()));
detailVO.setVoltageUnbalance(PubUtils.dataLimits(dataSingleMonitorMoreDay.getVoltageUnbalance()));
detailVO.setNegativeCurrent(PubUtils.dataLimits(dataSingleMonitorMoreDay.getNegativeCurrent()));
detailVO.setHarmonicVoltage(PubUtils.dataLimits(dataSingleMonitorMoreDay.getHarmonicVoltage()));
detailVO.setHarmonicCurrent(PubUtils.dataLimits(dataSingleMonitorMoreDay.getHarmonicCurrent()));
detailVO.setInterHarmonic(PubUtils.dataLimits(dataSingleMonitorMoreDay.getInterHarmonic()));
steadyQualifyDetailVOList.add(detailVO);
}
//先按变电站排序,再按地市排序
steadyQualifyDetailVOList.sort(Comparator
.comparing(SteadyQualifyDetailVO::getSubStation, Comparator.nullsLast(String::compareTo))
.thenComparing(SteadyQualifyDetailVO::getCity, Comparator.nullsLast(String::compareTo)));
return steadyQualifyDetailVOList;
}
/**
* 获取父级每层数据
*/

View File

@@ -17,10 +17,10 @@ import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.device.pq.pojo.vo.LineDetailVO;
import com.njcn.harmonic.mapper.RMpVThdMapper;
import com.njcn.harmonic.mapper.THDistortionMapper;
import com.njcn.harmonic.pojo.THDistortionDetailVO;
import com.njcn.harmonic.pojo.dto.PublicDTO;
import com.njcn.harmonic.pojo.po.RMpVThd;
import com.njcn.harmonic.pojo.vo.RMpVThdVO;
import com.njcn.harmonic.pojo.vo.SteadyQualifyVO;
import com.njcn.harmonic.pojo.vo.THDistortionCensusVO;
import com.njcn.harmonic.pojo.vo.THDistortionVO;
import com.njcn.harmonic.service.THDistortionService;
@@ -188,6 +188,69 @@ public class THDistortionServiceImpl implements THDistortionService {
return rMpVThdVOList;
}
@Override
public List<THDistortionDetailVO> getTHDistortionTableData(DeviceInfoParam.BusinessParam steadyParam) {
List<THDistortionDetailVO> thDistortionDetailVOList = new ArrayList<>();
//获取终端台账类信息
List<GeneralDeviceDTO> deviceDataList = generalDeviceInfoClient.getPracticalRunDeviceInfo(steadyParam).getData();
//收集所有lineIndexes并去重
List<String> lineIdList = deviceDataList.stream()
.filter(generalDeviceDTO -> CollectionUtil.isNotEmpty(generalDeviceDTO.getLineIndexes()))
.flatMap(generalDeviceDTO -> generalDeviceDTO.getLineIndexes().stream())
.distinct()
.collect(Collectors.toList());
if (CollectionUtil.isEmpty(lineIdList)) {
return thDistortionDetailVOList;
}
//获取畸变率数据
List<PublicDTO> distortionData = getCondition(lineIdList, steadyParam.getSearchBeginTime(), steadyParam.getSearchEndTime());
Map<String, PublicDTO> distortionMap = distortionData.stream()
.collect(Collectors.toMap(PublicDTO::getId, Function.identity()));
//获取监测点集合
List<THDistortionVO> monitorList = thDistortionMapper.getLineData(lineIdList);
//获取所有监测点信息信息
List<LineDetailVO.Detail> lineInfoByIds = lineFeignClient.getLineDetailByIds(lineIdList).getData();
Map<String, LineDetailVO.Detail> lineDetailMap = lineInfoByIds.stream()
.collect(Collectors.toMap(LineDetailVO.Detail::getLineId, Function.identity()));
//组装列表数据
for (THDistortionVO monitor : monitorList) {
THDistortionDetailVO detailVO = new THDistortionDetailVO();
//填充监测点详细信息
LineDetailVO.Detail lineDetail = lineDetailMap.get(monitor.getId());
if (lineDetail != null) {
detailVO.setCity(lineDetail.getDeptName());
detailVO.setCompany(lineDetail.getGdName());
detailVO.setSubStation(lineDetail.getSubName());
detailVO.setDeviceId(lineDetail.getDevId());
detailVO.setDeviceName(lineDetail.getDevName());
detailVO.setManufacturer(lineDetail.getManufacturer());
detailVO.setIp(lineDetail.getIp());
detailVO.setLineName(lineDetail.getLineName());
}
//填充畸变率数据
if (distortionMap.containsKey(monitor.getId())) {
detailVO.setDistortion(distortionMap.get(monitor.getId()).getData());
}
thDistortionDetailVOList.add(detailVO);
}
//先按变电站排序,再按地市排序
thDistortionDetailVOList.sort(Comparator
.comparing(THDistortionDetailVO::getSubStation, Comparator.nullsLast(String::compareTo))
.thenComparing(THDistortionDetailVO::getCity, Comparator.nullsLast(String::compareTo)));
return thDistortionDetailVOList;
}
/**
* 计算父级畸变率