区域暂态列表优化

This commit is contained in:
zhuxinyu
2023-04-27 17:07:10 +08:00
parent f292b3101e
commit 2f98232cfa
6 changed files with 217 additions and 83 deletions

View File

@@ -420,8 +420,9 @@ public class ReportServiceImpl implements ReportService {
if (count.get(s) == info.size()) {
result.add(new ReasonsVO(s, info.size(), "100"));
} else {
String s1 = String.format("%.4f", (count.get(s).doubleValue() / info.size()));
result.add(new ReasonsVO(s, count.get(s), s1.substring(2, 4) + "." + s1.substring(4, 6)));
String s2 = BigDecimal.valueOf((double) count.get(s) * 100 / info.size()).setScale(2, RoundingMode.HALF_UP).toString();
// String s1 = String.format("%.4f", (count.get(s).doubleValue() / info.size()));
result.add(new ReasonsVO(s, count.get(s), s2));
}
}
}

View File

@@ -53,6 +53,7 @@ import org.springframework.util.CollectionUtils;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.time.Instant;
import java.time.LocalDateTime;
@@ -249,7 +250,6 @@ public class TransientServiceImpl implements TransientService {
waveDataDTO.setPt(monitorVO.getPt1() / monitorVO.getPt2());
waveDataDTO.setCt(monitorVO.getCt1() / monitorVO.getCt2());
return waveDataDTO;
}
@@ -293,90 +293,110 @@ public class TransientServiceImpl implements TransientService {
Page<EventDetailNew> page = new Page<>();
page.setSize(transientParam.getPageSize());
page.setCurrent(transientParam.getPageNum());
//按部门分类的实际运行终端综合信息
// 按部门分类的实际运行终端综合信息
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceInfoClient.getPracticalRunDeviceInfo(transientParam).getData();
if (!CollectionUtils.isEmpty(generalDeviceDTOList)) {
//获取按终端分类的监测点索引集合
if (Objects.nonNull(transientParam.getEventValueMin())) {
transientParam.setEventValueMin(transientParam.getEventValueMin().divide(new BigDecimal(100), 2, BigDecimal.ROUND_UP));
}
if (Objects.nonNull(transientParam.getEventValueMax())) {
transientParam.setEventValueMax(transientParam.getEventValueMax().divide(new BigDecimal(100), 2, BigDecimal.ROUND_UP));
}
// 获取按终端分类的监测点索引集合
List<String> lineList = generalDeviceDTOList.stream().flatMap(dto -> dto.getLineIndexes().stream()).collect(Collectors.toList());
if(CollUtil.isNotEmpty(lineList)){
LambdaQueryWrapper<RmpEventDetailPO> wrapper = new LambdaQueryWrapper<RmpEventDetailPO>()
.in(RmpEventDetailPO::getMeasurementPointId, lineList)
.ge(StringUtils.isNotBlank(transientParam.getSearchBeginTime()), RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(transientParam.getSearchBeginTime())))
.le(StringUtils.isNotBlank(transientParam.getSearchEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(transientParam.getSearchEndTime())))
//事件
.in(CollUtil.isNotEmpty(transientParam.getWaveType()), RmpEventDetailPO::getEventType, transientParam.getWaveType())
.in(CollUtil.isNotEmpty(transientParam.getEventReason()), RmpEventDetailPO::getAdvanceReason, transientParam.getEventReason())
.in(CollUtil.isNotEmpty(transientParam.getEventType()), RmpEventDetailPO::getAdvanceType, transientParam.getEventType())
.orderByDesc(RmpEventDetailPO::getStartTime);
//暂态幅值
if (Objects.nonNull(transientParam.getEventValueMin())) {
wrapper.ge(RmpEventDetailPO::getFeatureAmplitude, transientParam.getEventValueMin().divide(new BigDecimal(100), 2, BigDecimal.ROUND_UP));
}
if (Objects.nonNull(transientParam.getEventValueMax())) {
wrapper.le(RmpEventDetailPO::getFeatureAmplitude, transientParam.getEventValueMax().divide(new BigDecimal(100), 2, BigDecimal.ROUND_UP));
}
if (Objects.nonNull(transientParam.getPersistMin()) && Objects.nonNull(transientParam.getSeverityMax())) {
wrapper.ge(RmpEventDetailPO::getDuration, transientParam.getPersistMin()).le(RmpEventDetailPO::getDuration, transientParam.getPersistMax());
}
//严重度
if (Objects.nonNull(transientParam.getSeverityMin()) && Objects.nonNull(transientParam.getSeverityMax())) {
wrapper.ge(RmpEventDetailPO::getSeverity, transientParam.getSeverityMin()).le(Objects.nonNull(transientParam.getSeverityMax()), RmpEventDetailPO::getSeverity, transientParam.getSeverityMax());
}
//波形文件
if (Objects.nonNull(transientParam.getFileFlag())) {
wrapper.eq(Objects.nonNull(transientParam.getFileFlag()), RmpEventDetailPO::getFileFlag, transientParam.getFileFlag());
}
// Page<RmpEventDetailPO> pageInfo = eventDetailService.page(new Page<>(transientParam.getPageNum(), transientParam.getPageSize()),wrapper);
Page<RmpEventDetailPO> pageInfo = pwRmpEventDetailMapper.selectPage(new Page<>(transientParam.getPageNum(), transientParam.getPageSize()), wrapper);
if (CollUtil.isNotEmpty(lineList)) {
page = pwRmpEventDetailMapper.selectByIdAndValue(
page,
lineList,
DateUtil.beginOfDay(DateUtil.parse(transientParam.getSearchBeginTime())),
DateUtil.endOfDay(DateUtil.parse(transientParam.getSearchEndTime())),
transientParam.getWaveType(),
transientParam.getEventReason(),
transientParam.getEventType(),
transientParam.getEventValueMin(),
transientParam.getEventValueMax(),
transientParam.getPersistMin(),
transientParam.getPersistMax(),
transientParam.getSeverityMin(),
transientParam.getSeverityMax(),
transientParam.getFileFlag(),
transientParam.getSearchValue()
);
List<EventDetailNew> eventDetailData=BeanUtil.copyToList(pageInfo.getRecords(),EventDetailNew.class);
page= BeanUtil.copyProperties(pageInfo,Page.class);
if (CollUtil.isNotEmpty(eventDetailData)) {
List<String> lineIds = eventDetailData.stream().map(EventDetailNew::getLineId).distinct().collect(Collectors.toList());
List<AreaLineInfoVO> r = lineFeignClient.getBaseLineAreaInfo(lineIds).getData();
List<DictData> reasonList = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.EVENT_REASON.getName()).getData();
List<DictData> typeList = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.EVENT_TYPE.getName()).getData();
for (EventDetailNew eventDetail : eventDetailData) {
for (AreaLineInfoVO areaLineInfoVO : r) {
if (eventDetail.getLineId().equals(areaLineInfoVO.getLineId())) {
eventDetail.setLineId(areaLineInfoVO.getLineId());
eventDetail.setLineName(areaLineInfoVO.getLineName());
eventDetail.setGdName(areaLineInfoVO.getGdName());
eventDetail.setSubName(areaLineInfoVO.getSubName());
eventDetail.setIp(areaLineInfoVO.getIp());
eventDetail.setScale(areaLineInfoVO.getVoltageScale());
eventDetail.setIp(areaLineInfoVO.getIp());
break;
}
}
if(StrUtil.isNotBlank(eventDetail.getAdvanceReason())) {
for (DictData dictData : reasonList) {
if (eventDetail.getAdvanceReason().equals(dictData.getId())) {
eventDetail.setAdvanceReason(dictData.getName());
break;
}
}
}
if(StrUtil.isNotBlank(eventDetail.getAdvanceType())) {
for (DictData dictData : typeList) {
if (eventDetail.getAdvanceType().equals(dictData.getId())) {
eventDetail.setAdvanceType(dictData.getName());
break;
}
}
}
}
//当前页数据
page.setRecords(eventDetailData);
}
// LambdaQueryWrapper<RmpEventDetailPO> wrapper = new LambdaQueryWrapper<RmpEventDetailPO>()
// .in(RmpEventDetailPO::getMeasurementPointId, lineList)
// .ge(StringUtils.isNotBlank(transientParam.getSearchBeginTime()), RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(transientParam.getSearchBeginTime())))
// .le(StringUtils.isNotBlank(transientParam.getSearchEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(transientParam.getSearchEndTime())))
// // 事件
// .in(CollUtil.isNotEmpty(transientParam.getWaveType()), RmpEventDetailPO::getEventType, transientParam.getWaveType())
// .in(CollUtil.isNotEmpty(transientParam.getEventReason()), RmpEventDetailPO::getAdvanceReason, transientParam.getEventReason())
// .in(CollUtil.isNotEmpty(transientParam.getEventType()), RmpEventDetailPO::getAdvanceType, transientParam.getEventType())
// .orderByDesc(RmpEventDetailPO::getStartTime);
// //暂态幅值
// if (Objects.nonNull(transientParam.getEventValueMin())) {
// wrapper.ge(RmpEventDetailPO::getFeatureAmplitude, transientParam.getEventValueMin().divide(new BigDecimal(100), 2, BigDecimal.ROUND_UP));
// }
// if (Objects.nonNull(transientParam.getEventValueMax())) {
// wrapper.le(RmpEventDetailPO::getFeatureAmplitude, transientParam.getEventValueMax().divide(new BigDecimal(100), 2, BigDecimal.ROUND_UP));
// }
// if (Objects.nonNull(transientParam.getPersistMin()) && Objects.nonNull(transientParam.getSeverityMax())) {
// wrapper.ge(RmpEventDetailPO::getDuration, transientParam.getPersistMin()).le(RmpEventDetailPO::getDuration, transientParam.getPersistMax());
// }
// //严重度
// if (Objects.nonNull(transientParam.getSeverityMin()) && Objects.nonNull(transientParam.getSeverityMax())) {
// wrapper.ge(RmpEventDetailPO::getSeverity, transientParam.getSeverityMin()).le(Objects.nonNull(transientParam.getSeverityMax()), RmpEventDetailPO::getSeverity, transientParam.getSeverityMax());
// }
// //波形文件
// if (Objects.nonNull(transientParam.getFileFlag())) {
// wrapper.eq(Objects.nonNull(transientParam.getFileFlag()), RmpEventDetailPO::getFileFlag, transientParam.getFileFlag());
// }
// // Page<RmpEventDetailPO> pageInfo = eventDetailService.page(new Page<>(transientParam.getPageNum(), transientParam.getPageSize()),wrapper);
// Page<RmpEventDetailPO> pageInfo = pwRmpEventDetailMapper.selectPage(new Page<>(transientParam.getPageNum(), transientParam.getPageSize()), wrapper);
// List<EventDetailNew> eventDetailData=BeanUtil.copyToList(pageInfo.getRecords(),EventDetailNew.class);
// page= BeanUtil.copyProperties(pageInfo,Page.class);
// if (CollUtil.isNotEmpty(eventDetailData)) {
// List<String> lineIds = eventDetailData.stream().map(EventDetailNew::getLineId).distinct().collect(Collectors.toList());
// List<AreaLineInfoVO> r = lineFeignClient.getBaseLineAreaInfo(lineIds).getData();
// List<DictData> reasonList = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.EVENT_REASON.getName()).getData();
// List<DictData> typeList = dicDataFeignClient.getDicDataByTypeName(DicDataTypeEnum.EVENT_TYPE.getName()).getData();
// for (EventDetailNew eventDetail : eventDetailData) {
// DecimalFormat df = new DecimalFormat("#0.000");
// eventDetail.setSeverity(Double.parseDouble(df.format(eventDetail.getSeverity())));
// for (AreaLineInfoVO areaLineInfoVO : r) {
// if (eventDetail.getLineId().equals(areaLineInfoVO.getLineId())) {
// eventDetail.setLineId(areaLineInfoVO.getLineId());
// eventDetail.setLineName(areaLineInfoVO.getLineName());
// eventDetail.setGdName(areaLineInfoVO.getGdName());
// eventDetail.setSubName(areaLineInfoVO.getSubName());
// eventDetail.setIp(areaLineInfoVO.getIp());
// eventDetail.setScale(areaLineInfoVO.getVoltageScale());
// eventDetail.setIp(areaLineInfoVO.getIp());
// break;
// }
// }
//
// if(StrUtil.isNotBlank(eventDetail.getAdvanceReason())) {
// for (DictData dictData : reasonList) {
// if (eventDetail.getAdvanceReason().equals(dictData.getId())) {
// eventDetail.setAdvanceReason(dictData.getName());
// break;
// }
// }
// }
//
// if(StrUtil.isNotBlank(eventDetail.getAdvanceType())) {
// for (DictData dictData : typeList) {
// if (eventDetail.getAdvanceType().equals(dictData.getId())) {
// eventDetail.setAdvanceType(dictData.getName());
// break;
// }
// }
// }
// }
// //当前页数据
// page.setRecords(eventDetailData);
// }
}