曲靖表格数据提供
This commit is contained in:
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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("谐波总畸变率节点图")
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取父级每层数据
|
||||
*/
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 计算父级畸变率
|
||||
|
||||
Reference in New Issue
Block a user