代码调整

This commit is contained in:
2022-11-08 09:48:02 +08:00
parent 7b0c2435fc
commit 3abd49707f
290 changed files with 13772 additions and 1639 deletions

View File

@@ -9,7 +9,7 @@ import java.util.List;
/**
* <p>
* 服务类
* 服务类
* </p>
*
* @author rui.wu
@@ -19,6 +19,7 @@ public interface RMpPartHarmonicDetailDService extends IService<RMpPartHarmonicD
/**
* 稳态指标超标明细表-指标趋势图
*
* @param param
* @return
*/

View File

@@ -11,7 +11,7 @@ import java.util.List;
/**
* <p>
* 服务类
* 服务类
* </p>
*
* @author rui.wu
@@ -21,6 +21,7 @@ public interface RMpPartHarmonicDetailMService extends IService<RMpPartHarmonicD
/**
* 稳态指标超标明细表
*
* @param param
* @return
*/

View File

@@ -11,7 +11,7 @@ import java.util.List;
/**
* <p>
* 服务类
* 服务类
* </p>
*
* @author rui.wu
@@ -21,6 +21,7 @@ public interface RMpPassRateService extends IService<RMpPassRateQ> {
/**
* 稳态指标合格率明细表
*
* @param param
* @return
*/

View File

@@ -21,22 +21,37 @@ import java.util.List;
public interface RStatHarmonicMService extends IService<RStatHarmonicM> {
/**
* 查询查询监测点稳态指标 日/月点数
* 主网查询查询监测点稳态指标 日/月点数
* @param param
* @return
*/
List<RArrayVO> getRStatHarmonicMAll(StatisticsBizBaseParam param);
/**
* 稳态电铁-频率偏差-电压统计图
* 主网稳态电铁-频率偏差-电压统计图
* @param param
* @return
*/
List<RIconVO> getRStatHarmonicIcon(RStatHarmonicMParam param);
List<RIconVO> getRStatHarmonicIconVoltage(RStatHarmonicMParam param);
/**
* 稳态电铁-频率偏差-越线日期统计图
* 主网稳态电铁-频率偏差-越线日期统计图
* @param param
* @return
*/
List<RHarmonicPolylineVO> getRStatHarmonicIcon2(RStatHarmonicMParam param);
List<RHarmonicPolylineVO> getRStatHarmonicIconDate(RStatHarmonicMParam param);
/**
* 配网查询监测点稳态指标(月)
* @param param
* @return
*/
List<RArrayVO> getPwRStatHarmonicMAll(StatisticsBizBaseParam param);
/**
* 配网监测点-频率偏差-越线日期统计图
* @param param
* @return
*/
List<RHarmonicPolylineVO> getPwRStatHarmonicIconDate(RStatHarmonicMParam param);
}

View File

@@ -18,10 +18,16 @@ import java.util.List;
public interface RStatHarmonicQService extends IService<RStatHarmonicQ> {
/**
* 查询查询监测点稳态指标 日/月点数
* 主网查询监测点稳态指标(季)
* @param param
* @return
*/
List<RArrayVO> getRStatHarmonicQAll(StatisticsBizBaseParam param);
/**
* 配网查询监测点稳态指标(季)
* @param param
* @return
*/
List<RArrayVO> getPwRStatHarmonicQAll(StatisticsBizBaseParam param);
}

View File

@@ -9,7 +9,7 @@ import java.util.List;
/**
* <p>
* 服务类
* 服务类
* </p>
*
* @author rui.wu
@@ -18,9 +18,19 @@ import java.util.List;
public interface RStatHarmonicYService extends IService<RStatHarmonicY> {
/**
* 查询查询监测点稳态指标 日/月点数
* 主网查询监测点稳态指标(年)
*
* @param param
* @return
*/
List<RArrayVO> getRStatHarmonicYAll(StatisticsBizBaseParam param);
/**
* 配网查询监测点稳态指标(年)
*
* @param param
* @return
*/
List<RArrayVO> getPwRStatHarmonicYAll(StatisticsBizBaseParam param);
}

View File

@@ -1,6 +1,6 @@
package com.njcn.harmonic.service;
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
import com.njcn.harmonic.pojo.po.RStatOrgBusbarVoltageM;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.harmonic.pojo.vo.RStatOrgBusbarVoltageVO;
@@ -9,7 +9,7 @@ import java.util.List;
/**
* <p>
* 服务类
* 服务类
* </p>
*
* @author rui.wu
@@ -19,8 +19,9 @@ public interface RStatOrgBusbarVoltageService extends IService<RStatOrgBusbarVol
/**
* 区域电站母线电压类指标超标计
*
* @param param
* @return
*/
List<RStatOrgBusbarVoltageVO> getRStatOrgBusbarVoltage(StatisticsBizBaseParam param);
List<RStatOrgBusbarVoltageVO> getRStatOrgBusbarVoltage(StatSubstationBizBaseParam param);
}

View File

@@ -20,6 +20,7 @@ public interface RStatOrgYService extends IService<RStatOrgY> {
/**
* 查询区域超标统计-年数据
*
* @param param
* @return
*/
@@ -27,6 +28,7 @@ public interface RStatOrgYService extends IService<RStatOrgY> {
/**
* 区域稳态指标超标分类统计表
*
* @param param
* @return
*/
@@ -34,6 +36,7 @@ public interface RStatOrgYService extends IService<RStatOrgY> {
/**
* 变电站(换流站)稳态指标超标分类统计表
*
* @param param
* @return
*/
@@ -41,6 +44,7 @@ public interface RStatOrgYService extends IService<RStatOrgY> {
/**
* 区域稳态指标合格率统计表
*
* @param param
* @return
*/

View File

@@ -10,7 +10,7 @@ import java.util.List;
/**
* <p>
* 服务类
* 服务类
* </p>
*
* @author rui.wu
@@ -20,6 +20,7 @@ public interface RStatSubstationMService extends IService<RStatSubstationM> {
/**
* 变电站稳态指标超标分布(按超标天数)
*
* @param param
* @return
*/
@@ -27,6 +28,7 @@ public interface RStatSubstationMService extends IService<RStatSubstationM> {
/**
* 变电站稳态指标平均超标天数
*
* @param param
* @return
*/

View File

@@ -29,12 +29,12 @@ public interface THDistortionService {
* @return
*/
THDistortionCensusVO getTHDistortionCensus(DeviceInfoParam.BusinessParam thDistortionCensusParam);
/**
* @Description: 谐波总畸变率前列表
* @Param: [statisticsBizBaseParam]
* @return: java.util.List<com.njcn.harmonic.pojo.vo.RMpVThdVO>
/**
* @Description: 谐波总畸变率前topNum列表
* @Param: [statisticsBizBaseParam]
* @return: java.util.List<com.njcn.harmonic.pojo.vo.RMpVThdVO>
* @Author: clam
* @Date: 2022/10/10
*/
List<RMpVThdVO> getTHDTopTenData(StatisticsBizBaseParam statisticsBizBaseParam);
* @Date: 2022/11/7
*/
List<RMpVThdVO> getTHDTopTenData(StatisticsBizBaseParam statisticsBizBaseParam,Integer topNum);
}

View File

@@ -54,6 +54,7 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile;
import javax.annotation.Resource;
import java.io.*;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -62,11 +63,10 @@ import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* pqs
* 自定义报表
*
* @author cdf
* @date 2022/8/16
* @author qijian
* @date 2022/10/15
*/
@Service
@RequiredArgsConstructor
@@ -104,13 +104,14 @@ public class CustomReportServiceImpl implements CustomReportService {
//检验模板json数据规范
try {
new JSONArray(reportTemplateParam.getContent());
String content = MultipartFileToString(reportTemplateParam.getFileContent());
new JSONArray(content);
} catch (Exception e) {
throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_JSON);
}
//文件上传到Minio服务器存入文件名
MinIoUploadResDTO minIoUploadResDTO = contentToMinio(reportTemplateParam.getContent());
MinIoUploadResDTO minIoUploadResDTO = contentToMinio(reportTemplateParam.getFileContent());
reportTemplateParam.setContent(minIoUploadResDTO.getMinFileName());
//新增模板表
@@ -139,7 +140,8 @@ public class CustomReportServiceImpl implements CustomReportService {
//检验模板json数据规范
try {
new JSONArray(reportTemplateParam.getContent());
String content = MultipartFileToString(reportTemplateParam.getFileContent());
new JSONArray(content);
} catch (Exception e) {
throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_JSON);
}
@@ -149,7 +151,7 @@ public class CustomReportServiceImpl implements CustomReportService {
minIoUtils.removeObject(minIoProperties.getBucket(), excelRptTempOld.getContent());
//文件上传到Minio服务器存入文件名
MinIoUploadResDTO minIoUploadResDTO = contentToMinio(reportTemplateParam.getContent());
MinIoUploadResDTO minIoUploadResDTO = contentToMinio(reportTemplateParam.getFileContent());
reportTemplateParam.setContent(minIoUploadResDTO.getMinFileName());
//修改模板数据
@@ -331,8 +333,10 @@ public class CustomReportServiceImpl implements CustomReportService {
}
//文件上传到Minio服务器存入文件名
MinIoUploadResDTO minIoUploadResDTO = contentToMinio(jsonArray.toString());
String content = minIoUploadResDTO.getMinFileName();
File newFile = stringToFile(jsonArray.toString());
MultipartFile newMultipartFile = getMultipartFile(newFile);
MinIoUploadResDTO minIoUploadResDTO = contentToMinio(newMultipartFile);
String newContent = minIoUploadResDTO.getMinFileName();
//根据模板激活状态,判断是否进库(未激活不进库,已激活进库)
if (DataStateEnum.ENABLE.getCode().equals(reportSearchParam.getActivation())) {
//存入报表库
@@ -341,13 +345,13 @@ public class CustomReportServiceImpl implements CustomReportService {
excelRpt.setLineId(reportSearchParam.getLineId());
excelRpt.setDataDate(DateUtil.parse(reportSearchParam.getStartTime()));
excelRpt.setTempId(excelRptTemp.getId());
excelRpt.setContent(content);
excelRpt.setContent(newContent);
excelRpt.setType(reportSearchParam.getType());
excelRpt.setState(DataStateEnum.ENABLE.getCode());
excelRptMapper.insert(excelRpt);
}
return minIoUtils.getObjectUrl(minIoProperties.getBucket(), content, 7 * 24 * 60 * 60);
return minIoUtils.getObjectUrl(minIoProperties.getBucket(), newContent, 7 * 24 * 60 * 60);
}
@Override
@@ -496,7 +500,7 @@ public class CustomReportServiceImpl implements CustomReportService {
for (List<Object> columnValue : values) {
for (int i = 0; i < columnValue.size(); i++) {
if (columns.get(i).equals("value")) {
data.setValue(columnValue.get(i).toString());
data.setValue(String.format("%.3f", columnValue.get(i)));
}
}
}
@@ -509,17 +513,13 @@ public class CustomReportServiceImpl implements CustomReportService {
/**
* 上传文件到Minio
*
* @param content 文件
* @param file 文件
* @return 成功标记
*/
private MinIoUploadResDTO contentToMinio(String content) {
//上传到minio
String businessTempPath = generalInfo.getBusinessTempPath();
File file = stringToFile(content, businessTempPath + File.separator + "a.json");
MultipartFile multiFile = getMultipartFile(file);
private MinIoUploadResDTO contentToMinio(MultipartFile file) {
try {
//把名称存入数据
MinIoUploadResDTO upload = minIoUtils.upload(multiFile, minIoProperties.getBucket(), "report/");
MinIoUploadResDTO upload = minIoUtils.upload(file, minIoProperties.getBucket(), "report/");
return upload;
} catch (Exception e) {
throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_FILE);
@@ -527,24 +527,37 @@ public class CustomReportServiceImpl implements CustomReportService {
}
/**
* 将字符串写入指定文件
* 文件Url 转 String
*
* @param res 原字符串
* @param filePath 文件路径
* @param objectUrl 文件url
* @return 成功标记
*/
public File stringToFile(String res, String filePath) {
boolean flag = true;
private String urlToString(String objectUrl) throws IOException {
URL url = new URL(objectUrl);
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
StringBuffer buffer = new StringBuffer();
String line = " ";
while ((line = in.readLine()) != null){
buffer.append(line);
}
return buffer.toString();
}
/**
* 字符串写入指定文件
*
* @param res 原字符串
* @return 成功标记
*/
public File stringToFile(String res) {
BufferedReader bufferedReader = null;
BufferedWriter bufferedWriter = null;
File distFile = new File(filePath);
String businessTempPath = generalInfo.getBusinessTempPath();
File distFile = new File(businessTempPath + File.separator + "temp.json");
try {
if (!distFile.getParentFile().exists()){
distFile.getParentFile().mkdirs();
}
if (!distFile.getParentFile().exists()) distFile.getParentFile().mkdirs();
bufferedReader = new BufferedReader(new StringReader(res));
bufferedWriter = new BufferedWriter(new FileWriter(distFile));
//先清空
bufferedWriter.write("");
char buf[] = new char[1024]; //字符缓冲区
int len;
@@ -569,12 +582,38 @@ public class CustomReportServiceImpl implements CustomReportService {
}
/**
* 将文件转成Multipart
* MultipartFile 转 String
*
* @param file 文件
* @param multipartFile 原字符串
* @return 成功标记
*/
private MultipartFile getMultipartFile(File file) {
private String MultipartFileToString(MultipartFile multipartFile) {
InputStreamReader isr;
BufferedReader br;
StringBuilder txtResult = new StringBuilder();
try {
isr = new InputStreamReader(multipartFile.getInputStream(), StandardCharsets.UTF_8);
br = new BufferedReader(isr);
String lineTxt;
while ((lineTxt = br.readLine()) != null) {
txtResult.append(lineTxt);
}
isr.close();
br.close();
return txtResult.toString();
} catch (IOException e) {
e.printStackTrace();
return "";
}
}
/**
* File 转 MultipartFile
*
* @param file 原字符串
* @return 成功标记
*/
public static MultipartFile getMultipartFile(File file) {
FileItem item = new DiskFileItemFactory().createItem("file"
, MediaType.MULTIPART_FORM_DATA_VALUE
, true
@@ -590,21 +629,4 @@ public class CustomReportServiceImpl implements CustomReportService {
return new CommonsMultipartFile(item);
}
/**
* 将文件Url转成String
*
* @param objectUrl 文件url
* @return 成功标记
*/
private String urlToString(String objectUrl) throws IOException {
URL url = new URL(objectUrl);
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
StringBuffer buffer = new StringBuffer();
String line = " ";
while ((line = in.readLine()) != null){
buffer.append(line);
}
return buffer.toString();
}
}

View File

@@ -146,7 +146,7 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
List<PollutionLineDTO> lineInfo = new ArrayList<>();
PollutionParamDTO paramDTO = new PollutionParamDTO();
String pollutionType = harmonicPublicParam.getStatisticalType ( ).getCode ( );
String pollutionType = harmonicPublicParam.getStatisticalType ( ).getId ();
String searchBeginTime = harmonicPublicParam.getSearchBeginTime ( ).substring (0,7);
if (StringUtils.isBlank(RequestUtil.getDeptIndex())){
@@ -212,7 +212,7 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
List<PollutionSubstationDTO> list = new ArrayList<>();
List<GeneralDeviceDTO> sub = generalDeviceInfoClient.getPracticalRunDeviceInfoAsSubstation(deptParam).getData();
String pollutionType = deptParam.getStatisticalType ( ).getCode ( );
String pollutionType = deptParam.getStatisticalType ( ).getId ();
SimpleDateFormat s = new SimpleDateFormat();
String searchBeginTime = deptParam.getSearchBeginTime ( ).substring (0,7);
sub.forEach(item->{
@@ -248,7 +248,8 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
List<String> line = new ArrayList<>();
String pollutionType = harmonicPublicParam.getStatisticalType ( ).getCode ( );
String pollutionType = harmonicPublicParam.getStatisticalType ( ).getId ();
String code = harmonicPublicParam.getStatisticalType ( ).getCode ();
String searchBeginTime = harmonicPublicParam.getSearchBeginTime ( ).substring (0,7);
PollutionParamDTO paramDTO = new PollutionParamDTO();
@@ -266,12 +267,10 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
if (!CollectionUtils.isEmpty(line)){
paramDTO.setLineList(line);
list = lineFeignClient.getLineInfo(paramDTO).getData();
List<RMpPollutionDPO> lineData = rMpPollutionDPOMapper.selectMaxList ( line,pollutionType,searchBeginTime);
if (!CollectionUtils.isEmpty(lineData)){
list.stream().map(list1->lineData.stream().filter(list2-> Objects.equals(list1.getId(),list2.getLineId ())).findAny().map(m->{
/*todo 根据 pollutionType映射lineData取哪个字段目前先取一个值测试 */
list1.setData(m.getVDev ());
list1.setData (m.getValue ());
return list1;
})).collect(Collectors.toList());
}
@@ -280,4 +279,6 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
}
return list.stream().sorted(Comparator.comparing(PollutionLineDTO::getData).reversed().thenComparing(PollutionLineDTO::getName)).collect(Collectors.toList());
}
}

View File

@@ -13,7 +13,7 @@ import java.util.List;
/**
* <p>
* 服务实现类
* 服务实现类
* </p>
*
* @author rui.wu

View File

@@ -32,7 +32,7 @@ import java.util.stream.Collectors;
/**
* <p>
* 服务实现类
* 服务实现类
* </p>
*
* @author rui.wu
@@ -50,16 +50,16 @@ public class RMpPartHarmonicDetailMServiceImpl extends ServiceImpl<RMpPartHarmon
@Override
public List<RMpPartHarmonicDetailVO> getRMpPartHarmonicDetail(RStatOrgParam param) {
//根据部门获取监测点信息(根据部门过滤基本信息)
PmsDeviceInfoParam pms=new PmsDeviceInfoParam();
PmsDeviceInfoParam pms = new PmsDeviceInfoParam();
pms.setDeptIndex(param.getId());
pms.setStatisticalType(new SimpleDTO());
List<PmsGeneralDeviceDTO> data = pmsGeneralDeviceInfoClient.getPmsDeviceInfoWithInOrg(pms).getData();
List<String> addIds=new ArrayList<>();
data.stream().forEach(e-> addIds.addAll(e.getMonitorIdList()));
List<String> addIds = new ArrayList<>();
data.stream().forEach(e -> addIds.addAll(e.getMonitorIdList()));
if(CollectionUtil.isNotEmpty(addIds)){
if (CollectionUtil.isNotEmpty(addIds)) {
//根据监测点ids获取监测点相关详细信息(变电站id电压id监测点名称)
PmsMonitorParam dto=BeanUtil.copyProperties(param,PmsMonitorParam.class);
PmsMonitorParam dto = BeanUtil.copyProperties(param, PmsMonitorParam.class);
dto.setMonitorIds(addIds);
dto.setMonitorName(param.getMonitorName());
dto.setVoltageLevels(param.getVoltageLevels());
@@ -71,26 +71,26 @@ public class RMpPartHarmonicDetailMServiceImpl extends ServiceImpl<RMpPartHarmon
List<DictData> devVoltageData = dicDataFeignClient.getDicDataByTypeCode(
DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData();
Map<String, DictData> devVoltageMap = devVoltageData.stream()
.collect(Collectors.toMap(DictData::getId, Function.identity()));
.collect(Collectors.toMap(DictData::getId, Function.identity()));
//获取最新过滤的监测点id
List<String> ids = pmsMonitorDTOS.stream().map(PmsMonitorDTO::getId).collect(Collectors.toList());
//筛选出数据库对应监测点
StatSubstationBizBaseParam baseParam= BeanUtil.copyProperties(param,StatSubstationBizBaseParam.class);
StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class);
baseParam.setIds(ids);
List<RMpPartHarmonicDetailVO> rMpPartHarmonicDetail = rMpSurplusHarmonicDetailMMapper.getRMpPartHarmonicDetail(baseParam);
if(CollectionUtil.isNotEmpty(rMpPartHarmonicDetail)){
if (CollectionUtil.isNotEmpty(rMpPartHarmonicDetail)) {
//因为只有月表,数据进行查询可能出现重复数据。进行分组
Map<String, List<RMpPartHarmonicDetailVO>> detailVOMap = rMpPartHarmonicDetail.stream()
.collect(Collectors.groupingBy(RMpPartHarmonicDetailVO::getMeasurementPointId));
detailVOMap.forEach((Key,value)->{
if(pmsMonitorDTOMap.containsKey(Key)){
detailVOMap.forEach((Key, value) -> {
if (pmsMonitorDTOMap.containsKey(Key)) {
PmsMonitorDTO dto1 = pmsMonitorDTOMap.get(Key);
for (RMpPartHarmonicDetailVO rmp : value) {
rmp.setOrgName(dto1.getOrgName());
rmp.setPowerrName(dto1.getPowerrName());
rmp.setMeasurementPointName(dto1.getName());
//获取字典电压等级名称
if(devVoltageMap.containsKey(dto1.getVoltageLevel())){
if (devVoltageMap.containsKey(dto1.getVoltageLevel())) {
DictData data1 = devVoltageMap.get(dto1.getVoltageLevel());
rmp.setMonitorVoltageName(data1.getName());
}
@@ -98,7 +98,7 @@ public class RMpPartHarmonicDetailMServiceImpl extends ServiceImpl<RMpPartHarmon
}
});
}
}
return rMpPartHarmonicDetail;
}
return null;

View File

@@ -34,7 +34,7 @@ import java.util.stream.Collectors;
/**
* <p>
* 服务实现类
* 服务实现类
* </p>
*
* @author rui.wu
@@ -54,18 +54,18 @@ public class RMpPassRateServiceImpl extends ServiceImpl<RMpPassRateQMapper, RMpP
@Override
public List<RStatOrgIndexVO> getRMpPassRateInfo(RStatOrgParam param) {
//初始化对象
List<RStatOrgIndexVO> temp=new ArrayList<>();
List<RStatOrgIndexVO> temp = new ArrayList<>();
//根据部门获取监测点信息
PmsDeviceInfoParam pms=new PmsDeviceInfoParam();
PmsDeviceInfoParam pms = new PmsDeviceInfoParam();
pms.setDeptIndex(param.getId());
pms.setStatisticalType(new SimpleDTO());
List<PmsGeneralDeviceDTO> data = pmsGeneralDeviceInfoClient.getPmsDeviceInfoWithInOrg(pms).getData();
List<String> addIds=new ArrayList<>();
data.stream().forEach(e-> addIds.addAll(e.getMonitorIdList()));
List<String> addIds = new ArrayList<>();
data.stream().forEach(e -> addIds.addAll(e.getMonitorIdList()));
if(CollectionUtil.isNotEmpty(addIds)){
if (CollectionUtil.isNotEmpty(addIds)) {
//根据监测点ids获取监测点相关详细信息(变电站id电压id监测点名称)
PmsMonitorParam dto=BeanUtil.copyProperties(param,PmsMonitorParam.class);
PmsMonitorParam dto = BeanUtil.copyProperties(param, PmsMonitorParam.class);
dto.setMonitorIds(addIds);
dto.setMonitorName(param.getMonitorName());
dto.setVoltageLevels(param.getVoltageLevels());
@@ -77,11 +77,11 @@ public class RMpPassRateServiceImpl extends ServiceImpl<RMpPassRateQMapper, RMpP
List<DictData> devVoltageData = dicDataFeignClient.getDicDataByTypeCode(
DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData();
Map<String, DictData> devVoltageMap = devVoltageData.stream()
.collect(Collectors.toMap(DictData::getId, Function.identity()));
.collect(Collectors.toMap(DictData::getId, Function.identity()));
//获取最新过滤的监测点id
List<String> ids = pmsMonitorDTOS.stream().map(PmsMonitorDTO::getId).collect(Collectors.toList());
StatSubstationBizBaseParam baseParam= BeanUtil.copyProperties(param,StatSubstationBizBaseParam.class);
StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class);
baseParam.setIds(ids);
if (CollectionUtil.isNotEmpty(addIds)) {
@@ -104,11 +104,11 @@ public class RMpPassRateServiceImpl extends ServiceImpl<RMpPassRateQMapper, RMpP
}
}
if(CollectionUtil.isNotEmpty(temp)){
if (CollectionUtil.isNotEmpty(temp)) {
Map<String, RStatOrgIndexVO> collect = temp.stream()
.collect(Collectors.toMap(RStatOrgIndexVO::getMeasurementPointId, Function.identity()));
collect.forEach((Key,value)->{
if(pmsMonitorDTOMap.containsKey(Key)){
collect.forEach((Key, value) -> {
if (pmsMonitorDTOMap.containsKey(Key)) {
//根据监测点信息,进行属性赋值
PmsMonitorDTO dto1 = pmsMonitorDTOMap.get(Key);
value.setOrgNo(dto1.getOrgId());
@@ -116,7 +116,7 @@ public class RMpPassRateServiceImpl extends ServiceImpl<RMpPassRateQMapper, RMpP
value.setMeasurementPointName(dto1.getName());
value.setPowerrName(dto1.getPowerrName());
//获取电压字典的名称
if(devVoltageMap.containsKey(dto1.getVoltageLevel())){
if (devVoltageMap.containsKey(dto1.getVoltageLevel())) {
DictData data1 = devVoltageMap.get(dto1.getVoltageLevel());
value.setMonitorVoltageName(data1.getName());
}

View File

@@ -16,6 +16,7 @@ import com.njcn.harmonic.pojo.param.RStatHarmonicMParam;
import com.njcn.harmonic.pojo.po.RStatHarmonicD;
import com.njcn.harmonic.pojo.po.RStatHarmonicM;
import com.njcn.harmonic.pojo.po.RStatHarmonicVoltageM;
import com.njcn.harmonic.pojo.po.RStatHarmonicY;
import com.njcn.harmonic.pojo.vo.RArrayVO;
import com.njcn.harmonic.pojo.vo.RHarmonicPolylineVO;
import com.njcn.harmonic.pojo.vo.RIconVO;
@@ -99,7 +100,7 @@ public class RStatHarmonicMServiceImpl extends ServiceImpl<RStatHarmonicMMapper,
r.setColumns(rm);
arrayVOList.add(r);
}
//根据检测点对象分组
//根据稳态指标分组
Map<String, List<RStatHarmonicM>> MeasurementTypeClassMap = list.stream().collect(Collectors.groupingBy(RStatHarmonicM::getHarmonicType));
//重新生成数据结构
MeasurementTypeClassMap.forEach((key, value) -> {
@@ -141,7 +142,7 @@ public class RStatHarmonicMServiceImpl extends ServiceImpl<RStatHarmonicMMapper,
}
@Override
public List<RIconVO> getRStatHarmonicIcon(RStatHarmonicMParam param) {
public List<RIconVO> getRStatHarmonicIconVoltage(RStatHarmonicMParam param) {
//干扰数据类型(监测对象)
DictData measurementDate =null;
//指标对象类型属性
@@ -216,12 +217,12 @@ public class RStatHarmonicMServiceImpl extends ServiceImpl<RStatHarmonicMMapper,
@SneakyThrows
@Override
public List<RHarmonicPolylineVO> getRStatHarmonicIcon2(RStatHarmonicMParam param) {
public List<RHarmonicPolylineVO> getRStatHarmonicIconDate(RStatHarmonicMParam param) {
//初始化对象
List<RHarmonicPolylineVO> iconList=new ArrayList<>();
DictData measurementDate =null;
DictData measurementDate;
//指标对象类型属性
DictData harmonicDate =null;
DictData harmonicDate;
//判断是是否传入检测点信息值(电压)
if(StrUtil.isBlank(param.getStasisID())&&StrUtil.isBlank(param.getMonitorID())){
//干扰数据类型(监测对象)
@@ -294,6 +295,177 @@ public class RStatHarmonicMServiceImpl extends ServiceImpl<RStatHarmonicMMapper,
return iconList;
}
@Override
public List<RArrayVO> getPwRStatHarmonicMAll(StatisticsBizBaseParam param) {
//对象主节点 获取所有的稳态类型
List<DictData> eventData = dicDataFeignClient.getDicDataByTypeCode(
DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
Map<String, DictData> eventMap = eventData.stream()
.collect(Collectors.toMap(DictData::getId, Function.identity()));
//子节点获取监测点类别
List<DictData> lineData = dicDataFeignClient.getDicDataByTypeCode(
DicDataTypeEnum.LINE_SORT.getCode()).getData();
Map<String, DictData> lineMap = lineData.stream()
.collect(Collectors.toMap(DictData::getId, Function.identity()));
//获取配网id信息
DictData distributionData = dicDataFeignClient.getDicDataByCode(DicDataEnum.DISTRIBUTION_POINT.getCode()).getData();
//初始化指标类型(横向)
List<RArrayVO> arrayVOList=new ArrayList<>();
//数据库查询
List<RStatHarmonicM> list = rStatHarmonicMMapper.selectList(new LambdaQueryWrapper<RStatHarmonicM>()
.eq(RStatHarmonicM::getDataType,distributionData.getId())
.ge(param.getStartTime()!=null, RStatHarmonicM::getDataDate, param.getStartTime())
.le(param.getEndTime() != null, RStatHarmonicM::getDataDate, param.getEndTime()));
//根据稳态指标分组
Map<String, List<RStatHarmonicM>> measurementMap = list.stream().collect(Collectors.groupingBy(RStatHarmonicM::getHarmonicType));
//重新生成数据结构
measurementMap.forEach((key, value) -> {
List<RStatHarmonicMVO> eventVO=new ArrayList<>();
if(eventMap.containsKey(key)){
RArrayVO arrayVO=new RArrayVO();
DictData data = eventMap.get(key);
arrayVO.setRowName(data.getName());
arrayVO.setSort(data.getSort());
for (RStatHarmonicM statHarmonic : value) {
RStatHarmonicMVO r = BeanUtil.copyProperties(statHarmonic, RStatHarmonicMVO.class);
DictData data1 = lineMap.get(statHarmonic.getMeasurementTypeClass());
r.setHarmonicName(data1.getName());
r.setSort(data1.getSort());
DecimalFormat df = new DecimalFormat("###.00");
Float averageOverDay = Float.parseFloat(
df.format(r.getOverDay()/(r.getOverLimitMeasurementAccrued()*1.0)));
r.setAverageOverDay(averageOverDay);
eventVO.add(r);
}
//根据监测点类别获取差集
Map<String, List<RStatHarmonicM>> listMap = value.stream().collect(Collectors.groupingBy(RStatHarmonicM::getMeasurementTypeClass));
List<DictData> differenceList = lineData.stream().filter(r -> !listMap.containsKey(r.getId()))
.collect(Collectors.toList());
this.assignDict(differenceList, eventVO, arrayVO);
arrayVO.setColumns(eventVO);
eventVO.sort(Comparator.comparing(statHarmonic -> statHarmonic.getSort()));
arrayVOList.add(arrayVO);
}
});
//处理主节点不存在的集合
List<DictData> notMeasurementList = eventData.stream().filter(r -> !measurementMap.containsKey(r.getId()))
.collect(Collectors.toList());
for (DictData notData : notMeasurementList) {
List<RStatHarmonicMVO> statharmonicVO=new ArrayList<>();
RArrayVO arrayVO=new RArrayVO();
arrayVO.setRowName(notData.getName());
arrayVO.setSort(notData.getSort());
this.assignDict(lineData, statharmonicVO, arrayVO);
statharmonicVO.sort(Comparator.comparing(statHarmonic -> statHarmonic.getSort()));
arrayVOList.add(arrayVO);
}
arrayVOList.sort(Comparator.comparing(rArrayVO -> rArrayVO.getSort()));
return arrayVOList;
}
@SneakyThrows
@Override
public List<RHarmonicPolylineVO> getPwRStatHarmonicIconDate(RStatHarmonicMParam param) {
//初始化对象
List<RHarmonicPolylineVO> iconList=new ArrayList<>();
DictData measurementDate;
//指标对象类型属性
DictData harmonicDate;
//判断是是否传入检测点信息值(电压)
if(StrUtil.isBlank(param.getStasisID())&&StrUtil.isBlank(param.getMonitorID())){
//干扰数据类型(监测对象)
List<DictData> interferenceSourceTypeData = dicDataFeignClient.getDicDataByTypeCode(
DicDataTypeEnum.LINE_SORT.getCode()).getData();
interferenceSourceTypeData.sort(Comparator.comparing(data -> data.getSort()));
measurementDate =interferenceSourceTypeData.get(0);
//指标对象类型
List<DictData> indicatorTypeDate = dicDataFeignClient.getDicDataByTypeCode(
DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
indicatorTypeDate.sort(Comparator.comparing(data -> data.getSort()));
harmonicDate =indicatorTypeDate.get(0);
}else{
//获取检测点对象(电压)
measurementDate = dicDataFeignClient.getDicDataById(
param.getMonitorID()).getData();
//获取指标对象(频率偏差)
harmonicDate= dicDataFeignClient.getDicDataById(
param.getStasisID()).getData();
}
//反防止参数查询数据报错
Assert.isTrue(
ObjectUtil.isNotNull(measurementDate)||ObjectUtil.isNotNull(harmonicDate)
, "监测点类别或者指标类型为空,请检查入参是否准确");
//获取配网信息
DictData distributionData = dicDataFeignClient.getDicDataByCode(DicDataEnum.DISTRIBUTION_POINT.getCode()).getData();
List<RStatHarmonicD> rStatHarmonicVoltageMS = rStatHarmonicDMapper.selectList(new LambdaQueryWrapper<RStatHarmonicD>()
.eq(RStatHarmonicD::getDataType,distributionData.getId())
.eq(RStatHarmonicD::getMeasurementTypeClass, measurementDate.getId())
.eq(RStatHarmonicD::getHarmonicType, harmonicDate.getId())
.ge(StrUtil.isNotBlank(param.getStartTime()), RStatHarmonicD::getDataDate, param.getStartTime())
.le(StrUtil.isNotBlank(param.getEndTime()), RStatHarmonicD::getDataDate, param.getEndTime())
);
Map<LocalDate, List<RStatHarmonicD>> collect =
rStatHarmonicVoltageMS.stream().collect(Collectors.groupingBy(RStatHarmonicD::getDataDate));
//获取月份
List<String> intervalTime = this.getIntervalTime(param.getStartTime(), param.getEndTime());
for (String interTime : intervalTime) {
//生成初始时间
String startTime = PublicDateUtil.getFisrtDayOfMonth(Integer.parseInt(interTime.substring(0, 4)), Integer.parseInt(interTime.substring(5)));
String endTime = PublicDateUtil.getLastDayOfMonth(Integer.parseInt(interTime.substring(0, 4)), Integer.parseInt(interTime.substring(5)));
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date dt = simpleDateFormat.parse(startTime);
Date dtDate = simpleDateFormat.parse(endTime);
Integer year = Integer.valueOf(String.format("%tY", dt));
Integer mon = Integer.valueOf(String.format("%tm", dt));
Integer day = Integer.valueOf(String.format("%td", dtDate));
//生成月份数据
List<String> dayTime = this.getIntervalDateTime(year, mon,day);
for (String s : dayTime) {
RHarmonicPolylineVO rPolylineVO=new RHarmonicPolylineVO();
rPolylineVO.setDate(s);
if(collect.containsKey(LocalDateTimeUtil.parseDate(s,"yyyy-MM-dd"))){
List<RStatHarmonicD> rSd = collect.get(LocalDateTimeUtil.parseDate(s, "yyyy-MM-dd"));
rPolylineVO.setNum(rSd.get(0).getOverLimitMeasurement());
rPolylineVO.setOverLimitMeasurementRatioAverage(rSd.get(0).getOverLimitMeasurementRatio());
rPolylineVO.setAverageOverDay(1);
}else{
rPolylineVO.setNum(0);
rPolylineVO.setAverageOverDay(0);
rPolylineVO.setOverLimitMeasurementRatioAverage(0.0f);
}
iconList.add(rPolylineVO);
}
}
return iconList;
}
/**
* 便利赋值
* @param DictDataList 稳态指标类型集合
* @param statharmonicVO 暂态监测点
* @param arrayVO 初始化对象
*/
private void assignDict(List<DictData> DictDataList, List<RStatHarmonicMVO> statharmonicVO, RArrayVO arrayVO) {
for (DictData dictData : DictDataList) {
RStatHarmonicMVO notStatHarmonicVO=new RStatHarmonicMVO();
notStatHarmonicVO.setHarmonicName(dictData.getName());
notStatHarmonicVO.setSort(dictData.getSort());
notStatHarmonicVO.setOverLimitMeasurementAverage(0);
notStatHarmonicVO.setOverLimitMeasurementAccrued(0);
notStatHarmonicVO.setOverDay(0);
notStatHarmonicVO.setOverLimitMeasurementRatioAverage(0.0F);
notStatHarmonicVO.setOverLimitMeasurementRatioAccrued(0.0F);
notStatHarmonicVO.setAverageOverDay(0.0F);
statharmonicVO.add(notStatHarmonicVO);
}
arrayVO.setColumns(statharmonicVO);
}
/**
* 根据用户选择的时间区间返回月份日期
*/

View File

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import com.njcn.harmonic.mapper.RStatHarmonicQMapper;
import com.njcn.harmonic.pojo.po.RStatHarmonicQ;
import com.njcn.harmonic.pojo.po.RStatHarmonicY;
import com.njcn.harmonic.pojo.vo.RArrayVO;
import com.njcn.harmonic.pojo.vo.RStatHarmonicMVO;
import com.njcn.harmonic.service.RStatHarmonicQService;
@@ -80,7 +81,7 @@ public class RStatHarmonicQServiceImpl extends ServiceImpl<RStatHarmonicQMapper,
r.setColumns(rm);
arrayVOList.add(r);
}
//根据检测点对象分组
//根据稳态指标分组
Map<String, List<RStatHarmonicQ>> MeasurementTypeClassMap = list.stream().collect(Collectors.groupingBy(RStatHarmonicQ::getHarmonicType));
//重新生成数据结构
MeasurementTypeClassMap.forEach((key, value) -> {
@@ -119,4 +120,92 @@ public class RStatHarmonicQServiceImpl extends ServiceImpl<RStatHarmonicQMapper,
arrayVOList.sort(Comparator.comparing(rArrayVO -> rArrayVO.getSort()));
return aa;
}
@Override
public List<RArrayVO> getPwRStatHarmonicQAll(StatisticsBizBaseParam param) {
//对象主节点 获取所有的稳态类型
List<DictData> eventData = dicDataFeignClient.getDicDataByTypeCode(
DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
Map<String, DictData> eventMap = eventData.stream()
.collect(Collectors.toMap(DictData::getId, Function.identity()));
//子节点获取监测点类别
List<DictData> lineData = dicDataFeignClient.getDicDataByTypeCode(
DicDataTypeEnum.LINE_SORT.getCode()).getData();
Map<String, DictData> lineMap = lineData.stream()
.collect(Collectors.toMap(DictData::getId, Function.identity()));
//获取配网id信息
DictData distributionData = dicDataFeignClient.getDicDataByCode(DicDataEnum.DISTRIBUTION_POINT.getCode()).getData();
//初始化指标类型(横向)
List<RArrayVO> arrayVOList=new ArrayList<>();
//数据库查询
List<RStatHarmonicQ> list = rStatHarmonicQMapper.selectList(new LambdaQueryWrapper<RStatHarmonicQ>()
.eq(RStatHarmonicQ::getDataType,distributionData.getId())
.ge(param.getStartTime()!=null, RStatHarmonicQ::getDataDate, param.getStartTime())
.le(param.getEndTime() != null, RStatHarmonicQ::getDataDate, param.getEndTime()));
//根据稳态指标分组
Map<String, List<RStatHarmonicQ>> measurementMap = list.stream().collect(Collectors.groupingBy(RStatHarmonicQ::getHarmonicType));
//重新生成数据结构
measurementMap.forEach((key, value) -> {
List<RStatHarmonicMVO> eventVO=new ArrayList<>();
if(eventMap.containsKey(key)){
RArrayVO arrayVO=new RArrayVO();
DictData data = eventMap.get(key);
arrayVO.setRowName(data.getName());
arrayVO.setSort(data.getSort());
for (RStatHarmonicQ statHarmonic : value) {
RStatHarmonicMVO r = BeanUtil.copyProperties(statHarmonic, RStatHarmonicMVO.class);
DictData data1 = lineMap.get(statHarmonic.getMeasurementTypeClass());
r.setHarmonicName(data1.getName());
r.setSort(data1.getSort());
eventVO.add(r);
}
//根据监测点类别获取差集
Map<String, List<RStatHarmonicQ>> listMap = value.stream().collect(Collectors.groupingBy(RStatHarmonicQ::getMeasurementTypeClass));
List<DictData> differenceList = lineData.stream().filter(r -> !listMap.containsKey(r.getId()))
.collect(Collectors.toList());
this.assignDict(differenceList, eventVO, arrayVO);
arrayVO.setColumns(eventVO);
eventVO.sort(Comparator.comparing(statHarmonic -> statHarmonic.getSort()));
arrayVOList.add(arrayVO);
}
});
//处理主节点不存在的集合
List<DictData> notMeasurementList = eventData.stream().filter(r -> !measurementMap.containsKey(r.getId()))
.collect(Collectors.toList());
for (DictData notData : notMeasurementList) {
List<RStatHarmonicMVO> statharmonicVO=new ArrayList<>();
RArrayVO arrayVO=new RArrayVO();
arrayVO.setRowName(notData.getName());
arrayVO.setSort(notData.getSort());
this.assignDict(lineData, statharmonicVO, arrayVO);
statharmonicVO.sort(Comparator.comparing(statHarmonic -> statHarmonic.getSort()));
arrayVOList.add(arrayVO);
}
arrayVOList.sort(Comparator.comparing(rArrayVO -> rArrayVO.getSort()));
return arrayVOList;
}
/**
* 便利赋值
* @param DictDataList 稳态指标类型集合
* @param statharmonicVO 暂态监测点
* @param arrayVO 初始化对象
*/
private void assignDict(List<DictData> DictDataList, List<RStatHarmonicMVO> statharmonicVO, RArrayVO arrayVO) {
for (DictData dictData : DictDataList) {
RStatHarmonicMVO notStatHarmonicVO=new RStatHarmonicMVO();
notStatHarmonicVO.setHarmonicName(dictData.getName());
notStatHarmonicVO.setSort(dictData.getSort());
notStatHarmonicVO.setOverLimitMeasurementAverage(0);
notStatHarmonicVO.setOverLimitMeasurementAccrued(0);
notStatHarmonicVO.setOverDay(0);
notStatHarmonicVO.setOverLimitMeasurementRatioAverage(0.0F);
notStatHarmonicVO.setOverLimitMeasurementRatioAccrued(0.0F);
notStatHarmonicVO.setAverageOverDay(0.0F);
statharmonicVO.add(notStatHarmonicVO);
}
arrayVO.setColumns(statharmonicVO);
}
}

View File

@@ -23,7 +23,7 @@ import java.util.stream.Collectors;
/**
* <p>
* 服务实现类
* 服务实现类
* </p>
*
* @author rui.wu
@@ -53,13 +53,15 @@ public class RStatHarmonicYServiceImpl extends ServiceImpl<RStatHarmonicYMapper,
//数据库查询
List<RStatHarmonicY> list = rStatHarmonicYMapper.selectList(new LambdaQueryWrapper<RStatHarmonicY>()
.eq(RStatHarmonicY::getDataType,mainnetData.getId())
.eq(RStatHarmonicY::getDataType, mainnetData.getId())
.ge(StrUtil.isNotBlank(param.getStartTime()), RStatHarmonicY::getDataDate, param.getStartTime())
.le(StrUtil.isNotBlank(param.getEndTime()), RStatHarmonicY::getDataDate, param.getEndTime()));
//初始化指标类型(横向)
List<RArrayVO> arrayVOList=new ArrayList<>();
List<RStatHarmonicMVO> rm=new ArrayList<>();
List<RArrayVO> arrayVOList = new ArrayList<>();
List<RStatHarmonicMVO> rm = new ArrayList<>();
for (DictData lineTypeDatum : interferenceSourceTypeData) {
RStatHarmonicMVO r = new RStatHarmonicMVO();
r.setHarmonicName(lineTypeDatum.getName());
@@ -79,16 +81,16 @@ public class RStatHarmonicYServiceImpl extends ServiceImpl<RStatHarmonicYMapper,
r.setSort(lineTypeDatum.getSort());
arrayVOList.add(r);
}
//根据检测点对象分组
//根据稳态指标分组
Map<String, List<RStatHarmonicY>> MeasurementTypeClassMap = list.stream().collect(Collectors.groupingBy(RStatHarmonicY::getHarmonicType));
//重新生成数据结构
MeasurementTypeClassMap.forEach((key, value) -> {
if(lineTypeMap.containsKey(key)){
RArrayVO arrayVO=new RArrayVO();
if (lineTypeMap.containsKey(key)) {
RArrayVO arrayVO = new RArrayVO();
DictData data = lineTypeMap.get(key);
arrayVO.setRowName(data.getName());
arrayVO.setSort(data.getSort());
List<RStatHarmonicMVO> b=new ArrayList<>();
List<RStatHarmonicMVO> b = new ArrayList<>();
b.addAll(rm);
for (RStatHarmonicY rStatHarmonicY : value) {
RStatHarmonicMVO r = BeanUtil.copyProperties(rStatHarmonicY, RStatHarmonicMVO.class);
@@ -98,23 +100,112 @@ public class RStatHarmonicYServiceImpl extends ServiceImpl<RStatHarmonicYMapper,
r.setOverDay(0);
b.add(r);
}
Map<String,RStatHarmonicMVO> linkedHashMap=new LinkedHashMap<>();
Map<String, RStatHarmonicMVO> linkedHashMap = new LinkedHashMap<>();
for (RStatHarmonicMVO harmonicMVO : b) {
linkedHashMap.put(harmonicMVO.getHarmonicName(),harmonicMVO);
linkedHashMap.put(harmonicMVO.getHarmonicName(), harmonicMVO);
}
List<RStatHarmonicMVO> aa=new ArrayList<>(linkedHashMap.values());
List<RStatHarmonicMVO> aa = new ArrayList<>(linkedHashMap.values());
aa.sort(Comparator.comparing(rStatHarmonicMVO -> rStatHarmonicMVO.getSort()));
arrayVO.setColumns(aa);
arrayVOList.add(arrayVO);
}
});
Map<String,RArrayVO> linkedHashMap=new LinkedHashMap<>();
Map<String, RArrayVO> linkedHashMap = new LinkedHashMap<>();
for (RArrayVO rStatHarmonicMVO : arrayVOList) {
linkedHashMap.put(rStatHarmonicMVO.getRowName(),rStatHarmonicMVO);
linkedHashMap.put(rStatHarmonicMVO.getRowName(), rStatHarmonicMVO);
}
List<RArrayVO> aa=new ArrayList<>(linkedHashMap.values());
List<RArrayVO> aa = new ArrayList<>(linkedHashMap.values());
arrayVOList.sort(Comparator.comparing(rArrayVO -> rArrayVO.getSort()));
return aa;
}
@Override
public List<RArrayVO> getPwRStatHarmonicYAll(StatisticsBizBaseParam param) {
//对象主节点 获取所有的稳态类型
List<DictData> eventData = dicDataFeignClient.getDicDataByTypeCode(
DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
Map<String, DictData> eventMap = eventData.stream()
.collect(Collectors.toMap(DictData::getId, Function.identity()));
//子节点获取监测点类别
List<DictData> lineData = dicDataFeignClient.getDicDataByTypeCode(
DicDataTypeEnum.LINE_SORT.getCode()).getData();
Map<String, DictData> lineMap = lineData.stream()
.collect(Collectors.toMap(DictData::getId, Function.identity()));
//获取配网id信息
DictData distributionData = dicDataFeignClient.getDicDataByCode(DicDataEnum.DISTRIBUTION_POINT.getCode()).getData();
//初始化指标类型(横向)
List<RArrayVO> arrayVOList = new ArrayList<>();
//数据库查询
List<RStatHarmonicY> list = rStatHarmonicYMapper.selectList(new LambdaQueryWrapper<RStatHarmonicY>()
.eq(RStatHarmonicY::getDataType, distributionData.getId())
.ge(param.getStartTime() != null, RStatHarmonicY::getDataDate, param.getStartTime())
.le(param.getEndTime() != null, RStatHarmonicY::getDataDate, param.getEndTime()));
//根据稳态指标分组
Map<String, List<RStatHarmonicY>> measurementMap = list.stream().collect(Collectors.groupingBy(RStatHarmonicY::getHarmonicType));
//重新生成数据结构
measurementMap.forEach((key, value) -> {
List<RStatHarmonicMVO> eventVO = new ArrayList<>();
if (eventMap.containsKey(key)) {
RArrayVO arrayVO = new RArrayVO();
DictData data = eventMap.get(key);
arrayVO.setRowName(data.getName());
arrayVO.setSort(data.getSort());
for (RStatHarmonicY statHarmonic : value) {
RStatHarmonicMVO r = BeanUtil.copyProperties(statHarmonic, RStatHarmonicMVO.class);
DictData data1 = lineMap.get(statHarmonic.getMeasurementTypeClass());
r.setHarmonicName(data1.getName());
r.setSort(data1.getSort());
eventVO.add(r);
}
//根据监测点类别获取差集
Map<String, List<RStatHarmonicY>> listMap = value.stream().collect(Collectors.groupingBy(RStatHarmonicY::getMeasurementTypeClass));
List<DictData> differenceList = lineData.stream().filter(r -> !listMap.containsKey(r.getId()))
.collect(Collectors.toList());
this.assignDict(differenceList, eventVO, arrayVO);
arrayVO.setColumns(eventVO);
eventVO.sort(Comparator.comparing(statHarmonic -> statHarmonic.getSort()));
arrayVOList.add(arrayVO);
}
});
//处理主节点不存在的集合
List<DictData> notMeasurementList = eventData.stream().filter(r -> !measurementMap.containsKey(r.getId()))
.collect(Collectors.toList());
for (DictData notData : notMeasurementList) {
List<RStatHarmonicMVO> statharmonicVO = new ArrayList<>();
RArrayVO arrayVO = new RArrayVO();
arrayVO.setRowName(notData.getName());
arrayVO.setSort(notData.getSort());
this.assignDict(lineData, statharmonicVO, arrayVO);
statharmonicVO.sort(Comparator.comparing(statHarmonic -> statHarmonic.getSort()));
arrayVOList.add(arrayVO);
}
arrayVOList.sort(Comparator.comparing(rArrayVO -> rArrayVO.getSort()));
return arrayVOList;
}
/**
* 便利赋值
*
* @param DictDataList 稳态指标类型集合
* @param statharmonicVO 暂态监测点
* @param arrayVO 初始化对象
*/
private void assignDict(List<DictData> DictDataList, List<RStatHarmonicMVO> statharmonicVO, RArrayVO arrayVO) {
for (DictData dictData : DictDataList) {
RStatHarmonicMVO notStatHarmonicVO = new RStatHarmonicMVO();
notStatHarmonicVO.setHarmonicName(dictData.getName());
notStatHarmonicVO.setSort(dictData.getSort());
notStatHarmonicVO.setOverLimitMeasurementAverage(0);
notStatHarmonicVO.setOverLimitMeasurementAccrued(0);
notStatHarmonicVO.setOverDay(0);
notStatHarmonicVO.setOverLimitMeasurementRatioAverage(0.0F);
notStatHarmonicVO.setOverLimitMeasurementRatioAccrued(0.0F);
notStatHarmonicVO.setAverageOverDay(0.0F);
statharmonicVO.add(notStatHarmonicVO);
}
arrayVO.setColumns(statharmonicVO);
}
}

View File

@@ -28,7 +28,7 @@ import java.util.stream.Collectors;
/**
* <p>
* 服务实现类
* 服务实现类
* </p>
*
* @author rui.wu
@@ -52,13 +52,13 @@ public class RStatLoadTypeServiceImpl extends ServiceImpl<RStatLoadTypeMMapper,
//获取字典信息
List<DictData> data1 = dicDataFeignClient.getDicDataByTypeCode(
DicDataTypeEnum.MONITORING_LABELS.getCode()).getData();
List<DictData> dictData = data1.stream().filter(dictdatas -> dictdatas.getLevel() == 1).collect(Collectors.toList());
dictData.sort(Comparator.comparing(r ->r.getSort()));
List<DictData> dictData = data1.stream().filter(dictdatas -> dictdatas.getLevel() == 1).collect(Collectors.toList());
dictData.sort(Comparator.comparing(r -> r.getSort()));
//初始化对象
List<RArrayVO> info = new ArrayList<>();
List<RStatLoadTypeVO> temp = new ArrayList<>();
//根据部门进行筛选
StatSubstationBizBaseParam baseParam=BeanUtil.copyProperties(param,StatSubstationBizBaseParam.class);
StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class);
baseParam.setIds(deptIds);
if (CollectionUtil.isNotEmpty(data)) {
// 类型1年 2季度 3月份
@@ -91,12 +91,12 @@ public class RStatLoadTypeServiceImpl extends ServiceImpl<RStatLoadTypeMMapper,
Map<String, List<RStatLoadTypeVO>> map = temp
.stream().collect(Collectors.groupingBy(RStatLoadTypeVO::getOrgNo));
map.forEach((key, value) -> {
RArrayVO arrayVO=new RArrayVO();
RArrayVO arrayVO = new RArrayVO();
arrayVO.setRowName(value.get(0).getOrgName());
//属性赋值监测点名称
for (DictData dictDatum : dictData) {
for (RStatLoadTypeVO rStatLoadTypeVO : value) {
if(dictDatum.getId().equals(rStatLoadTypeVO.getLoadType())){
if (dictDatum.getId().equals(rStatLoadTypeVO.getLoadType())) {
rStatLoadTypeVO.setLoadName(dictDatum.getName());
rStatLoadTypeVO.setSort(dictDatum.getSort());
@@ -108,7 +108,7 @@ public class RStatLoadTypeServiceImpl extends ServiceImpl<RStatLoadTypeMMapper,
List<DictData> differenceList = dictData.stream().filter(r -> !listMap.containsKey(r.getId()))
.collect(Collectors.toList());
for (DictData data4 : differenceList) {
RStatLoadTypeVO vo=new RStatLoadTypeVO();
RStatLoadTypeVO vo = new RStatLoadTypeVO();
vo.setSort(data4.getSort());
vo.setOrgNo(key);
vo.setOrgName(value.get(0).getOrgName());
@@ -126,7 +126,7 @@ public class RStatLoadTypeServiceImpl extends ServiceImpl<RStatLoadTypeMMapper,
vo.setFlickerAccrued(0.0f);
value.add(vo);
}
value.sort(Comparator.comparing(r ->r.getSort()));
value.sort(Comparator.comparing(r -> r.getSort()));
arrayVO.setColumns(value);
info.add(arrayVO);
});

View File

@@ -2,25 +2,18 @@ package com.njcn.harmonic.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.common.pojo.constant.BizParamConstant;
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import com.njcn.device.pms.api.PmsGeneratrixClient;
import com.njcn.device.pms.pojo.dto.GeneratrixAndPowerStationDTO;
import com.njcn.device.pms.pojo.param.PmsGeneratrixParam;
import com.njcn.harmonic.mapper.RStatOrgBusbarVoltageQMapper;
import com.njcn.harmonic.mapper.RStatOrgBusbarVoltageYMapper;
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
import com.njcn.harmonic.pojo.po.RStatHarmonicOrgQ;
import com.njcn.harmonic.pojo.po.RStatOrgBusbarVoltageM;
import com.njcn.harmonic.mapper.RStatOrgBusbarVoltageMMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.harmonic.pojo.po.RStatOrgBusbarVoltageQ;
import com.njcn.harmonic.pojo.po.RStatOrgBusbarVoltageY;
import com.njcn.harmonic.pojo.vo.RStatOrgBusbarVoltageVO;
import com.njcn.harmonic.pojo.vo.RStatSubstationOrg2VO;
import com.njcn.harmonic.pojo.vo.RStatSubstationOrgVO;
import com.njcn.harmonic.service.RStatOrgBusbarVoltageService;
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;
@@ -30,11 +23,12 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* <p>
* 服务实现类
* 服务实现类
* </p>
*
* @author rui.wu
@@ -48,53 +42,63 @@ public class RStatOrgBusbarVoltageServiceImpl extends ServiceImpl<RStatOrgBusbar
private final RStatOrgBusbarVoltageYMapper rStatOrgBusbarVoltageYMapper;
private final RStatOrgBusbarVoltageQMapper rStatOrgBusbarVoltageQMapper;
private final RStatOrgBusbarVoltageMMapper rStatOrgBusbarVoltageMMapper;
private final PmsGeneratrixClient pmsGeneratrixClient;
@Override
public List<RStatOrgBusbarVoltageVO> getRStatOrgBusbarVoltage(StatisticsBizBaseParam param) {
public List<RStatOrgBusbarVoltageVO> getRStatOrgBusbarVoltage(StatSubstationBizBaseParam param) {
//获取部门信息
List<DeptDTO> data = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
List<String> deptIds = data.stream().map(DeptDTO::getId).collect(Collectors.toList());
Map<String, DeptDTO> deptMap = data.stream().collect(Collectors.toMap(DeptDTO::getId, Function.identity()));
//获取部门id集合
List<String> deptIds = data.stream().map(DeptDTO::getId).collect(Collectors.toList());
List<RStatOrgBusbarVoltageVO> info = new ArrayList<>();
List<RStatOrgBusbarVoltageVO> temp = new ArrayList<>();
if (CollectionUtil.isNotEmpty(data)) {
// List<RStatOrgBusbarVoltageVO> temp = new ArrayList<>();
// 类型1年 2季度 3月份
StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class);
baseParam.setIds(deptIds);
// 类型1年 2季度 3月份)
switch (param.getType().toString()) {
case BizParamConstant.STAT_BIZ_YEAR:
// 获取年区域暂态指标分类统计表
List<RStatOrgBusbarVoltageY> rStatOrgBusbarVoltageYS = rStatOrgBusbarVoltageYMapper.selectList(new LambdaQueryWrapper<RStatOrgBusbarVoltageY>()
.in(RStatOrgBusbarVoltageY::getOrgNo, deptIds)
.ge(StrUtil.isNotBlank(param.getStartTime()), RStatOrgBusbarVoltageY::getDataDate, param.getStartTime())
.le(StrUtil.isNotBlank(param.getEndTime()), RStatOrgBusbarVoltageY::getDataDate, param.getEndTime()));
temp=BeanUtil.copyToList(rStatOrgBusbarVoltageYS, RStatOrgBusbarVoltageVO.class);
// 获取年区域电站母线电压类指标超标计
temp = rStatOrgBusbarVoltageYMapper.getYstatOrgBusbarVoltageVO(baseParam);
break;
case BizParamConstant.STAT_BIZ_QUARTER:
// 获取季区域暂态指标分类统计表
List<RStatOrgBusbarVoltageQ> rStatOrgBusbarVoltageQS = rStatOrgBusbarVoltageQMapper.selectList(new LambdaQueryWrapper<RStatOrgBusbarVoltageQ>()
.in(RStatOrgBusbarVoltageQ::getOrgNo, deptIds)
.ge(StrUtil.isNotBlank(param.getStartTime()), RStatOrgBusbarVoltageQ::getDataDate, param.getStartTime())
.le(StrUtil.isNotBlank(param.getEndTime()), RStatOrgBusbarVoltageQ::getDataDate, param.getEndTime()));
temp=BeanUtil.copyToList(rStatOrgBusbarVoltageQS, RStatOrgBusbarVoltageVO.class);
// 获取季区域电站母线电压类指标超标计
temp = rStatOrgBusbarVoltageQMapper.getQstatOrgBusbarVoltageVO(baseParam);
break;
case BizParamConstant.STAT_BIZ_MONTH:
// 获取月区域暂态指标分类统计表
List<RStatOrgBusbarVoltageM> rStatOrgBusbarVoltageMS = rStatOrgBusbarVoltageMMapper.selectList(new LambdaQueryWrapper<RStatOrgBusbarVoltageM>()
.in(RStatOrgBusbarVoltageM::getOrgNo, deptIds)
.ge(StrUtil.isNotBlank(param.getStartTime()), RStatOrgBusbarVoltageM::getDataDate, param.getStartTime())
.le(StrUtil.isNotBlank(param.getEndTime()), RStatOrgBusbarVoltageM::getDataDate, param.getEndTime()));
temp=BeanUtil.copyToList(rStatOrgBusbarVoltageMS, RStatOrgBusbarVoltageVO.class);
// 获取月区域电站母线电压类指标超标计
temp = rStatOrgBusbarVoltageMMapper.getMstatOrgBusbarVoltageVO(baseParam);
break;
default:
break;
}
// Map<String, List<RStatSubstationOrgVO>> map = temp
// .stream().collect(Collectors.groupingBy(RStatSubstationOrgVO::getOrgNo));
}
return temp;
if (CollectionUtil.isNotEmpty(temp)) {
//获取母线集合
List<String> busbarIds = temp.stream().map(RStatOrgBusbarVoltageVO::getBusbarId).collect(Collectors.toList());
PmsGeneratrixParam generatrixParam=new PmsGeneratrixParam();
generatrixParam.setGeneratrixIds(busbarIds);
generatrixParam.setGeneratrixVoltageLevel(param.getIds());
List<GeneratrixAndPowerStationDTO> generatrixDTO = pmsGeneratrixClient.getGeneratrixAndPowerStationInfo(generatrixParam).getData();
Map<String, GeneratrixAndPowerStationDTO> generatrixMap = generatrixDTO.stream().collect(
Collectors.toMap(GeneratrixAndPowerStationDTO::getGeneratrixId, Function.identity()));
Map<String, RStatOrgBusbarVoltageVO> orgMap = temp.stream().collect(Collectors.toMap(RStatOrgBusbarVoltageVO::getOrgNo, Function.identity()));
orgMap.forEach((key, value) -> {
if (deptMap.containsKey(key)) {
DeptDTO deptDTO = deptMap.get(key);
value.setOrgName(deptDTO.getName());
if(generatrixMap.containsKey(value.getBusbarId())){
GeneratrixAndPowerStationDTO dto = generatrixMap.get(value.getBusbarId());
value.setBusbarVoltageLevel(dto.getGeneratrixVoltageLevel());
value.setPowerStationName(dto.getPowerName());
info.add(value);
}
}
});
}
return info;
}
}

View File

@@ -51,32 +51,32 @@ public class RStatOrgMServiceImpl extends ServiceImpl<RStatOrgMMapper, RStatOrgM
DictData mainnetData = dicDataFeignClient.getDicDataByCode(DicDataEnum.MAINNET_POINT.getCode()).getData();
//数据库查询
List<RStatOrgM> list = rStatOrgMMapper.selectList(new LambdaQueryWrapper<RStatOrgM>()
.eq(RStatOrgM::getDataType,mainnetData.getId())
.in(RStatOrgM::getOrgNo,deptIds)
.eq(RStatOrgM::getDataType, mainnetData.getId())
.in(RStatOrgM::getOrgNo, deptIds)
.ge(StrUtil.isNotBlank(param.getStartTime()), RStatOrgM::getDataDate, param.getStartTime())
.le(StrUtil.isNotBlank(param.getEndTime()), RStatOrgM::getDataDate, param.getEndTime()));
Map<String, List<RStatOrgM>> collect = list.stream().collect(Collectors.groupingBy(RStatOrgM::getOrgNo));
List<RStatOrgVO> newList=new ArrayList<>();
List<RStatOrgVO> newList = new ArrayList<>();
collect.forEach((key, value) -> {
if(deptMap.containsKey(key)){
if (deptMap.containsKey(key)) {
for (RStatOrgM rStatOrgM : value) {
DecimalFormat df = new DecimalFormat("###.00");
DeptDTO deptDTO = deptMap.get(key);
RStatOrgVO rStatOrgVO = new RStatOrgVO();
rStatOrgVO.setOrgName(deptDTO.getName());
Float averageOverDay = Float.parseFloat(
df.format(rStatOrgM.getOverDayAccrued() / (rStatOrgM.getEffectiveMeasurementAccrued()*1.0)));
df.format(rStatOrgM.getOverDayAccrued() / (rStatOrgM.getEffectiveMeasurementAccrued() * 1.0)));
rStatOrgVO.setAverageOverDay(averageOverDay);
rStatOrgVO.setEffectiveMeasurementAverage(rStatOrgM.getEffectiveMeasurementAverage());
rStatOrgVO.setEffectiveMeasurementAccrued(rStatOrgM.getEffectiveMeasurementAccrued());
rStatOrgVO.setOverLimitMeasurementAverage(rStatOrgM.getHarmonicMeasurementAverage());
rStatOrgVO.setOverLimitMeasurementAccrued(rStatOrgM.getHarmonicMeasurementAccrued());
Float harmonicMeasurementRatioAverage = Float.parseFloat(
df.format(rStatOrgM.getHarmonicMeasurementAverage() / (rStatOrgM.getEffectiveMeasurementAverage()*1.0)));
df.format(rStatOrgM.getHarmonicMeasurementAverage() / (rStatOrgM.getEffectiveMeasurementAverage() * 1.0)));
rStatOrgVO.setHarmonicMeasurementRatioAverage(harmonicMeasurementRatioAverage);
Float harmonicMeasurementRatioAccrued = Float.parseFloat(
df.format(rStatOrgM.getHarmonicMeasurementAccrued() / (rStatOrgM.getEffectiveMeasurementAccrued()*1.0)));
df.format(rStatOrgM.getHarmonicMeasurementAccrued() / (rStatOrgM.getEffectiveMeasurementAccrued() * 1.0)));
rStatOrgVO.setHarmonicMeasurementRatioAccrued(harmonicMeasurementRatioAccrued);
newList.add(rStatOrgVO);
}

View File

@@ -52,15 +52,15 @@ public class RStatOrgQServiceImpl extends ServiceImpl<RStatOrgQMapper, RStatOrgQ
//数据库查询
List<RStatOrgQ> list = rStatOrgQMapper.selectList(new LambdaQueryWrapper<RStatOrgQ>()
.eq(RStatOrgQ::getDataType,mainnetData.getId())
.in(RStatOrgQ::getOrgNo,deptIds)
.eq(RStatOrgQ::getDataType, mainnetData.getId())
.in(RStatOrgQ::getOrgNo, deptIds)
.ge(StrUtil.isNotBlank(param.getStartTime()), RStatOrgQ::getDataDate, param.getStartTime())
.le(StrUtil.isNotBlank(param.getEndTime()), RStatOrgQ::getDataDate, param.getEndTime()));
Map<String, List<RStatOrgQ>> collect = list.stream().collect(Collectors.groupingBy(RStatOrgQ::getOrgNo));
List<RStatOrgVO> newList=new ArrayList<>();
List<RStatOrgVO> newList = new ArrayList<>();
collect.forEach((key, value) -> {
if(deptMap.containsKey(key)){
if (deptMap.containsKey(key)) {
for (RStatOrgQ rStatOrgQ : value) {
DeptDTO deptDTO = deptMap.get(key);
RStatOrgVO rStatOrgVO = new RStatOrgVO();
@@ -72,10 +72,10 @@ public class RStatOrgQServiceImpl extends ServiceImpl<RStatOrgQMapper, RStatOrgQ
rStatOrgVO.setOverLimitMeasurementAccrued(rStatOrgQ.getHarmonicMeasurementAccrued());
DecimalFormat df = new DecimalFormat("###.00");
Float harmonicMeasurementRatioAverage = Float.parseFloat(
df.format(rStatOrgQ.getHarmonicMeasurementAverage() / (rStatOrgQ.getEffectiveMeasurementAverage()*1.0)));
df.format(rStatOrgQ.getHarmonicMeasurementAverage() / (rStatOrgQ.getEffectiveMeasurementAverage() * 1.0)));
rStatOrgVO.setHarmonicMeasurementRatioAverage(harmonicMeasurementRatioAverage);
Float harmonicMeasurementRatioAccrued = Float.parseFloat(
df.format(rStatOrgQ.getHarmonicMeasurementAccrued() / (rStatOrgQ.getEffectiveMeasurementAccrued()*1.0)));
df.format(rStatOrgQ.getHarmonicMeasurementAccrued() / (rStatOrgQ.getEffectiveMeasurementAccrued() * 1.0)));
rStatOrgVO.setHarmonicMeasurementRatioAccrued(harmonicMeasurementRatioAccrued);
newList.add(rStatOrgVO);
}

View File

@@ -76,15 +76,15 @@ public class RStatOrgYServiceImpl extends ServiceImpl<RStatOrgYMapper, RStatOrgY
//数据库查询
List<RStatOrgY> list = rStatOrgYMapper.selectList(new LambdaQueryWrapper<RStatOrgY>()
.eq(RStatOrgY::getDataType,mainnetData.getId())
.in(RStatOrgY::getOrgNo,deptIds)
.eq(RStatOrgY::getDataType, mainnetData.getId())
.in(RStatOrgY::getOrgNo, deptIds)
.ge(StrUtil.isNotBlank(param.getStartTime()), RStatOrgY::getDataDate, param.getStartTime())
.le(StrUtil.isNotBlank(param.getEndTime()), RStatOrgY::getDataDate, param.getEndTime()));
Map<String, List<RStatOrgY>> collect = list.stream().collect(Collectors.groupingBy(RStatOrgY::getOrgNo));
List<RStatOrgVO> newList=new ArrayList<>();
List<RStatOrgVO> newList = new ArrayList<>();
collect.forEach((key, value) -> {
if(deptMap.containsKey(key)){
if (deptMap.containsKey(key)) {
for (RStatOrgY rStatOrgY : value) {
DeptDTO deptDTO = deptMap.get(key);
RStatOrgVO rStatOrgVO = new RStatOrgVO();
@@ -96,10 +96,10 @@ public class RStatOrgYServiceImpl extends ServiceImpl<RStatOrgYMapper, RStatOrgY
rStatOrgVO.setOverLimitMeasurementAccrued(rStatOrgY.getOverLimitMeasurementAccrued());
DecimalFormat df = new DecimalFormat("###.00");
Float harmonicMeasurementRatioAverage = Float.parseFloat(
df.format(rStatOrgY.getOverLimitMeasurementAverage() / (rStatOrgY.getEffectiveMeasurementAverage()*1.0)));
df.format(rStatOrgY.getOverLimitMeasurementAverage() / (rStatOrgY.getEffectiveMeasurementAverage() * 1.0)));
rStatOrgVO.setHarmonicMeasurementRatioAverage(harmonicMeasurementRatioAverage);
Float harmonicMeasurementRatioAccrued = Float.parseFloat(
df.format(rStatOrgY.getOverLimitMeasurementAccrued() / (rStatOrgY.getEffectiveMeasurementAccrued()*1.0)));
df.format(rStatOrgY.getOverLimitMeasurementAccrued() / (rStatOrgY.getEffectiveMeasurementAccrued() * 1.0)));
rStatOrgVO.setHarmonicMeasurementRatioAccrued(harmonicMeasurementRatioAccrued);
newList.add(rStatOrgVO);
}
@@ -120,7 +120,7 @@ public class RStatOrgYServiceImpl extends ServiceImpl<RStatOrgYMapper, RStatOrgY
List<RStatSubstationOrgVO> temp = new ArrayList<>();
// 过滤出部门id
List<String> deptIds = data.stream().map(DeptDTO::getId).collect(Collectors.toList());
StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param,StatSubstationBizBaseParam.class);
StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class);
baseParam.setIds(deptIds);
//获取主网id信息
DictData mainnetData = dicDataFeignClient.getDicDataByCode(DicDataEnum.MAINNET_POINT.getCode()).getData();
@@ -129,15 +129,15 @@ public class RStatOrgYServiceImpl extends ServiceImpl<RStatOrgYMapper, RStatOrgY
switch (param.getType().toString()) {
case BizParamConstant.STAT_BIZ_YEAR:
// 获取年区域暂态指标分类统计表
temp = rStatOrgYMapper.getYearRStatHarmonicOrgInfo(baseParam,mainnetData.getId());
temp = rStatOrgYMapper.getYearRStatHarmonicOrgInfo(baseParam, mainnetData.getId());
break;
case BizParamConstant.STAT_BIZ_QUARTER:
case BizParamConstant.STAT_BIZ_QUARTER:
// 获取季区域暂态指标分类统计表
temp = rStatOrgQMapper.getQuarterRStatHarmonicOrgInfo(baseParam,mainnetData.getId());
temp = rStatOrgQMapper.getQuarterRStatHarmonicOrgInfo(baseParam, mainnetData.getId());
break;
case BizParamConstant.STAT_BIZ_MONTH:
case BizParamConstant.STAT_BIZ_MONTH:
// 获取月区域暂态指标分类统计表
temp = rStatOrgMMapper.getMonthRStatHarmonicOrgInfo(baseParam,mainnetData.getId());
temp = rStatOrgMMapper.getMonthRStatHarmonicOrgInfo(baseParam, mainnetData.getId());
break;
default:
break;
@@ -145,7 +145,7 @@ public class RStatOrgYServiceImpl extends ServiceImpl<RStatOrgYMapper, RStatOrgY
Map<String, List<RStatSubstationOrgVO>> map = temp
.stream().collect(Collectors.groupingBy(RStatSubstationOrgVO::getOrgNo));
map.forEach((key, value) -> {
RStatSubstationOrg2VO vo=new RStatSubstationOrg2VO();
RStatSubstationOrg2VO vo = new RStatSubstationOrg2VO();
vo.setOrgNo(value.get(0).getOrgNo());
vo.setOrgName(value.get(0).getOrgName());
vo.setDataDate(value.get(0).getDataDate());
@@ -279,18 +279,18 @@ public class RStatOrgYServiceImpl extends ServiceImpl<RStatOrgYMapper, RStatOrgY
@Override
public List<RSubstationIcon2VO.RSubstationInfoVO> getRStatSubstation(StatSubstationBizBaseParam param) {
PmsDeviceInfoParam pms=new PmsDeviceInfoParam();
PmsDeviceInfoParam pms = new PmsDeviceInfoParam();
pms.setDeptIndex(param.getId());
pms.setStatisticalType(new SimpleDTO());
List<PmsGeneralDeviceDTO> data = pmsGeneralDeviceInfoClient.getPmsDeviceInfoWithInOrg(pms).getData();
//生成变电站id集合
List<String> pAddIds=new ArrayList<>();
data.stream().forEach(e-> pAddIds.addAll(e.getPowerrIdList()));
List<String> pAddIds = new ArrayList<>();
data.stream().forEach(e -> pAddIds.addAll(e.getPowerrIdList()));
List<RSubstationIcon2VO> rSubstationIconVO = new ArrayList<>();
//根据监测点id获取变电站信息
PmsMonitorParam dto=new PmsMonitorParam();
List<String> mAddIds=new ArrayList<>();
data.stream().forEach(e-> mAddIds.addAll(e.getMonitorIdList()));
PmsMonitorParam dto = new PmsMonitorParam();
List<String> mAddIds = new ArrayList<>();
data.stream().forEach(e -> mAddIds.addAll(e.getMonitorIdList()));
dto.setMonitorIds(mAddIds);
dto.setPowerrIds(param.getIds());
//根据变电站分组
@@ -298,17 +298,17 @@ public class RStatOrgYServiceImpl extends ServiceImpl<RStatOrgYMapper, RStatOrgY
Map<String, PmsMonitorDTO> pmsMonitorDTOMap = pmsMonitorDTOS.stream()
.collect(Collectors.toMap(PmsMonitorDTO::getPowerrId, Function.identity()));
if(CollUtil.isNotEmpty(pmsMonitorDTOS)){
if (CollUtil.isNotEmpty(pmsMonitorDTOS)) {
//获取最新过滤的变电站id
List<String> ids = pmsMonitorDTOS.stream().map(PmsMonitorDTO::getPowerrId).collect(Collectors.toList());
//根据id进行筛选
StatSubstationBizBaseParam baseParam= BeanUtil.copyProperties(param,StatSubstationBizBaseParam.class);
StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class);
baseParam.setIds(ids);
String string = param.getType().toString();
switch (string) {
//查询变电站稳态指标平均超标天数-年数据
case BizParamConstant.STAT_BIZ_YEAR:
rSubstationIconVO =rStatSubstationYMapper.getStatSubstationIcon2Y(baseParam);
rSubstationIconVO = rStatSubstationYMapper.getStatSubstationIcon2Y(baseParam);
break;
//查询变电站稳态指标平均超标天数-季数据
case BizParamConstant.STAT_BIZ_QUARTER:
@@ -322,20 +322,18 @@ public class RStatOrgYServiceImpl extends ServiceImpl<RStatOrgYMapper, RStatOrgY
break;
}
List<RSubstationIcon2VO.RSubstationInfoVO> rSubstationInfoVOS = BeanUtil.copyToList(rSubstationIconVO, RSubstationIcon2VO.RSubstationInfoVO.class);
if(CollectionUtil.isNotEmpty(rSubstationInfoVOS)){
if (CollectionUtil.isNotEmpty(rSubstationInfoVOS)) {
Map<String, RSubstationIcon2VO.RSubstationInfoVO> detailVOMap = rSubstationInfoVOS.stream()
.collect(Collectors.toMap(RSubstationIcon2VO.RSubstationInfoVO::getSubstationId,Function.identity()));
detailVOMap.forEach((Key,value)->{
if(pmsMonitorDTOMap.containsKey(Key)){
.collect(Collectors.toMap(RSubstationIcon2VO.RSubstationInfoVO::getSubstationId, Function.identity()));
detailVOMap.forEach((Key, value) -> {
if (pmsMonitorDTOMap.containsKey(Key)) {
PmsMonitorDTO dto1 = pmsMonitorDTOMap.get(Key);
value.setCityName(dto1.getOrgName());
value.setSubstationName(dto1.getPowerrName());
//获取省级公司
// value.setProvinceName(deptFeignClient.getAreaIdByDeptId());
}
});
}
return rSubstationInfoVOS;
return rSubstationInfoVOS;
}
return null;
}
@@ -357,15 +355,15 @@ public class RStatOrgYServiceImpl extends ServiceImpl<RStatOrgYMapper, RStatOrgY
switch (param.getType().toString()) {
case BizParamConstant.STAT_BIZ_YEAR:
// 获取年区域稳态指标合格率统计表
info = rStatOrgYMapper.getYearRStatOrgIndex(baseParam,mainnetData.getId());
info = rStatOrgYMapper.getYearRStatOrgIndex(baseParam, mainnetData.getId());
break;
case BizParamConstant.STAT_BIZ_QUARTER:
// 获取季区域稳态指标合格率统计表
info = rStatOrgQMapper.getQuarterRStatOrgIndex(baseParam,mainnetData.getId());
info = rStatOrgQMapper.getQuarterRStatOrgIndex(baseParam, mainnetData.getId());
break;
case BizParamConstant.STAT_BIZ_MONTH:
// 获取月区域稳态指标合格率统计表
info = rStatOrgMMapper.getMonthRStatOrgIndex(baseParam,mainnetData.getId());
info = rStatOrgMMapper.getMonthRStatOrgIndex(baseParam, mainnetData.getId());
break;
default:
break;

View File

@@ -30,7 +30,7 @@ import java.util.stream.Collectors;
/**
* <p>
* 服务实现类
* 服务实现类
* </p>
*
* @author rui.wu
@@ -49,7 +49,7 @@ public class RStatSubstationMServiceImpl extends ServiceImpl<RStatSubstationMMap
@Override
public RSubstationIconVO getStatSubstationIcon(StatisticsBizBaseParam param) {
RSubstationIconVO rSubstationIconVO = new RSubstationIconVO();
StatSubstationBizBaseParam baseParam= BeanUtil.copyProperties(param,StatSubstationBizBaseParam.class);
StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class);
//根据部门获取变电站信息
// baseParam.setIds(this.powerrIdList(param.getId()));
String string = param.getType().toString();
@@ -76,7 +76,7 @@ public class RStatSubstationMServiceImpl extends ServiceImpl<RStatSubstationMMap
public List<RSubstationIcon2VO> getStatSubstationIcon2(StatisticsBizBaseParam param) {
//生成变电站id集合
List<RSubstationIcon2VO> rSubstationIconVO = new ArrayList<>();
StatSubstationBizBaseParam baseParam= BeanUtil.copyProperties(param,StatSubstationBizBaseParam.class);
StatSubstationBizBaseParam baseParam = BeanUtil.copyProperties(param, StatSubstationBizBaseParam.class);
//根据id进行筛选
// baseParam.setIds(this.powerrIdList(param.getId()));
String string = param.getType().toString();
@@ -98,13 +98,13 @@ public class RStatSubstationMServiceImpl extends ServiceImpl<RStatSubstationMMap
}
//获取变电站名称属性替换
if(CollUtil.isNotEmpty(rSubstationIconVO)){
if (CollUtil.isNotEmpty(rSubstationIconVO)) {
List<String> ids = rSubstationIconVO.stream().map(RSubstationIcon2VO::getSubstationId).collect(Collectors.toList());
if(CollUtil.isNotEmpty(ids)){
PmsStatationStatInfoParam pmsParam=new PmsStatationStatInfoParam();
if (CollUtil.isNotEmpty(ids)) {
PmsStatationStatInfoParam pmsParam = new PmsStatationStatInfoParam();
pmsParam.setPowerIds(ids);
List<PmsStatationStatInfoDTO> data1 = statationStatClient.getStatationStatInfo(pmsParam).getData();
if (CollUtil.isNotEmpty(data1)){
if (CollUtil.isNotEmpty(data1)) {
for (PmsStatationStatInfoDTO dto : data1) {
for (RSubstationIcon2VO vo : rSubstationIconVO) {
if (dto.getPowerId().equals(vo.getSubstationId())) {
@@ -118,14 +118,14 @@ public class RStatSubstationMServiceImpl extends ServiceImpl<RStatSubstationMMap
return rSubstationIconVO;
}
private List<String> powerrIdList(String id){
private List<String> powerrIdList(String id) {
//获取部门下面监测点信息
PmsDeviceInfoParam pms=new PmsDeviceInfoParam();
PmsDeviceInfoParam pms = new PmsDeviceInfoParam();
pms.setDeptIndex(id);
pms.setStatisticalType(new SimpleDTO());
List<PmsGeneralDeviceDTO> data = pmsGeneralDeviceInfoClient.getPmsDeviceInfoWithInOrg(pms).getData();
List<String> addids=new ArrayList<>();
data.stream().forEach(e-> addids.addAll(e.getPowerrIdList()));
List<String> addids = new ArrayList<>();
data.stream().forEach(e -> addids.addAll(e.getPowerrIdList()));
return addids;
}
}

View File

@@ -114,7 +114,7 @@ public class THDistortionServiceImpl implements THDistortionService {
* @Date: 2022/10/10
*/
@Override
public List<RMpVThdVO> getTHDTopTenData(StatisticsBizBaseParam statisticsBizBaseParam) {
public List<RMpVThdVO> getTHDTopTenData(StatisticsBizBaseParam statisticsBizBaseParam,Integer topNum) {
List<RMpVThdVO> rMpVThdVOList = new ArrayList<> ();
DeviceInfoParam deviceInfoParam = new DeviceInfoParam ();
@@ -129,10 +129,9 @@ public class THDistortionServiceImpl implements THDistortionService {
List<String> collect = deviceList.stream ( ).map (GeneralDeviceDTO::getLineIndexes).flatMap (Collection::stream).distinct ( ).collect (Collectors.toList ( ));
QueryWrapper<RMpVThd> wrapper = new QueryWrapper<>();
wrapper.in ("measurement_point_id",collect).
eq ("data_type", statisticsBizBaseParam.getType ()).
between ("data_date", statisticsBizBaseParam.getStartTime (), statisticsBizBaseParam.getEndTime ()).
orderByDesc ("v_thd").
last (" limit 10");
last (" limit "+topNum);
List<RMpVThd> rMpVThdList = rMpVThdMapper.selectList (wrapper);
rMpVThdVOList = rMpVThdList.stream ( ).map (rMpVThd -> {
RMpVThdVO rMpVThdVO = new RMpVThdVO ( );