@@ -2,9 +2,12 @@ package com.njcn.device.pq.service.impl;
import cn.hutool.core.collection.CollectionUtil ;
import cn.hutool.core.date.DateUtil ;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper ;
import cn.hutool.core.util.ObjectUtil ;
import cn.hutool.core.util.StrUtil ;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper ;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page ;
import com.google.common.collect.Lists ;
import com.njcn.db.constant.DbConstant ;
import com.njcn.device.pq.mapper.EventPushLogsMapper ;
import com.njcn.device.pq.mapper.LineMapper ;
import com.njcn.device.pq.mapper.LogManageMapper ;
@@ -97,6 +100,10 @@ public class LogManageServiceImpl implements LogManageService {
@Override
public Page < EventLogVO > getEventLogData ( EventLogParam eventLogParam ) {
//查询全部时间
List < String > lineByIDs = lineMapper . getLineByIDs ( eventLogParam . getSearchValue ( ) ) ;
Page < EventLogVO > page = new Page < > ( ) ;
page . setSize ( eventLogParam . getPageSize ( ) ) ;
page . setCurrent ( eventLogParam . getPageNum ( ) ) ;
@@ -105,35 +112,44 @@ public class LogManageServiceImpl implements LogManageService {
Page < EventPushLogs > p = new Page < > ( ) ;
p . setSize ( eventLogParam . getPageSize ( ) ) ;
p . setCurrent ( eventLogParam . getPageNum ( ) ) ;
Lambda QueryWrapper< EventPushLogs > wrapper = new Lambda QueryWrapper< > ( ) ;
wrapper . between ( EventPushLogs : : getTimeId , DateUtil . beginOfDay ( DateUtil . parse ( eventLogParam . getSearchBeginTime ( ) ) ) , DateUtil . endOfDay ( DateUtil . parse ( eventLogParam . getSearchEndTime ( ) ) ) ) ;
wrapper . eq ( E ventPushLogs : : getResult , eventLogParam . getResult ( ) ) ;
QueryWrapper < EventPushLogs > wrapper = new QueryWrapper < > ( ) ;
wrapper . between ( " start_time " , DateUtil . beginOfDay ( DateUtil . parse ( eventLogParam . getSearchBeginTime ( ) ) ) , DateUtil . endOfDay ( DateUtil . parse ( eventLogParam . getSearchEndTime ( ) ) ) ) ;
wrapper . eq ( e ventLogParam . getResult ( ) ! = null , " Result " , eventLogParam . getResult ( ) ) ;
wrapper . in ( " measurement_point_id " , lineByIDs ) ;
if ( ObjectUtil . isAllNotEmpty ( eventLogParam . getSortBy ( ) , eventLogParam . getOrderBy ( ) ) ) {
wrapper . orderBy ( true , eventLogParam . getOrderBy ( ) . equals ( DbConstant . ASC ) , StrUtil . toUnderlineCase ( eventLogParam . getSortBy ( ) ) ) ;
} else {
//没有排序参数, 默认根据sort字段排序, 没有排序字段的, 根据updateTime更新时间排序
wrapper . orderBy ( true , false , " start_time " ) ;
}
Page < EventPushLogs > rawPage = eventPushLogsMapper . selectPage ( p , wrapper ) ;
List < EventPushLogs > rawLogs = rawPage . getRecords ( ) ;
if ( CollectionUtil . isNotEmpty ( rawLogs ) ) {
List < String > lineIndexes = rawLogs . stream ( ) . map ( EventPushLogs : : getL ine Id ) . distinct ( ) . collect ( Collectors . toList ( ) ) ;
List < EventDetail > rawEventDetailData = eventDetailFeignClient . getEventDetailLimit ( lineIndexes , eventLogParam . getSearchBeginTime ( ) , eventLogParam . getSearchEndTime ( ) , eventLogParam . getPageSize ( ) , eventLogParam . getPageNum ( ) ) . getData ( ) ;
List < String > lineIndexes = rawLogs . stream ( ) . map ( EventPushLogs : : getMeasurementPo int Id ) . distinct ( ) . collect ( Collectors . toList ( ) ) ;
List < EventDetail > rawEventDetailData = eventDetailFeignClient . getEventDetail ( lineIndexes , eventLogParam . getSearchBeginTime ( ) , eventLogParam . getSearchEndTime ( ) ) . getData ( ) ;
List < EventDetail > eventDetails = rawEventDetailData . stream ( ) . filter ( eventDetail - > filterLineIdAndTime ( eventDetail , rawLogs ) ) . collect ( Collectors . toList ( ) ) ;
Map < String , List < EventDetail > > eventDetailMap = eventDetails . stream ( ) . collect ( Collectors . groupingBy ( EventDetail : : getLineId ) ) ;
List < String > lineList = eventDetails . stream ( ) . map ( EventDetail : : getLineId ) . collect ( Collectors . toList ( ) ) ;
List < AreaLineInfoVO > lineAreaInfos = lineMapper . getBaseLineAreaInfo ( lineList , null , null ) ;
Map < String , List < AreaLineInfoVO > > areaMap = lineAreaInfos . stream ( ) . collect ( Collectors . groupingBy ( AreaLineInfoVO : : getLineId ) ) ;
DateTimeFormatter dateTimeFormatter = DateTimeFormatter . ofPattern ( " yyyy-MM-dd HH:mm:ss.SSS " ) ;
for ( EventPushLogs rawLog : rawLogs ) {
if ( Objects . isNull ( areaMap . get ( rawLog . getL ine Id ( ) ) . get ( 0 ) ) | | Objects . isNull ( eventDetailMap . get ( rawLog . getL ine Id ( ) ) . get ( 0 ) ) ) {
if ( Objects . isNull ( areaMap . get ( rawLog . getMeasurementPo int Id ( ) ) . get ( 0 ) ) | | Objects . isNull ( eventDetailMap . get ( rawLog . getMeasurementPo int Id ( ) ) . get ( 0 ) ) ) {
continue ;
}
EventLogVO eventLogVO = new EventLogVO ( ) ;
eventLogVO . setLineId ( rawLog . getL ine Id ( ) ) ;
eventLogVO . setTime ( dateTimeFormatter . format ( rawLog . getTimeId ( ) ) ) ;
eventLogVO . setLine ( areaMap . get ( rawLog . getL ine Id ( ) ) . get ( 0 ) . getLineName ( ) ) ;
eventLogVO . setSubstation ( areaMap . get ( rawLog . getL ine Id ( ) ) . get ( 0 ) . getSubName ( ) ) ;
eventLogVO . setPowerCompany ( areaMap . get ( rawLog . getL ine Id ( ) ) . get ( 0 ) . getGdName ( ) ) ;
Double e = eventDetailMap . get ( rawLog . getL ine Id ( ) ) . get ( 0 ) . getFeatureAmplitude ( ) ;
eventLogVO . setLineId ( rawLog . getMeasurementPo int Id ( ) ) ;
eventLogVO . setTime ( dateTimeFormatter . format ( rawLog . getStart Time ( ) ) ) ;
eventLogVO . setLine ( areaMap . get ( rawLog . getMeasurementPo int Id ( ) ) . get ( 0 ) . getLineName ( ) ) ;
eventLogVO . setSubstation ( areaMap . get ( rawLog . getMeasurementPo int Id ( ) ) . get ( 0 ) . getSubName ( ) ) ;
eventLogVO . setPowerCompany ( areaMap . get ( rawLog . getMeasurementPo int Id ( ) ) . get ( 0 ) . getGdName ( ) ) ;
Double e = eventDetailMap . get ( rawLog . getMeasurementPo int Id ( ) ) . get ( 0 ) . getFeatureAmplitude ( ) ;
BigDecimal bd = new BigDecimal ( e ) ;
e = bd . setScale ( 2 , BigDecimal . ROUND_DOWN ) . doubleValue ( ) ;
eventLogVO . setEventValue ( String . valueOf ( e * 100 ) ) ;
double i = eventDetailMap . get ( rawLog . getL ine Id ( ) ) . get ( 0 ) . getDuration ( ) ;
double i = eventDetailMap . get ( rawLog . getMeasurementPo int Id ( ) ) . get ( 0 ) . getDuration ( ) ;
eventLogVO . setPersistTime ( String . valueOf ( i ) ) ;
eventLogVO . setCreatTime ( dateTimeFormatter . format ( rawLog . getCreateTime ( ) ) ) ;
eventLogVO . setCreatTimed ( dateTimeFormatter . format ( rawLog . getCreateTime ( ) ) ) ;
@@ -155,72 +171,14 @@ public class LogManageServiceImpl implements LogManageService {
page . setRecords ( list ) ;
}
return page ;
// /** 查询event_push_logs表数据*/
// List<EventPushLogs> eventPushLogs = getEventPushLogs(eventLogParam.getSearchBeginTime(), eventLogParam.getSearchEndTime(), eventLogParam.getResult());
// //待分页数据总量
// page.setTotal(eventPushLogs.size());
// //分页总页数
// int pages = (int)Math.ceil(eventPushLogs.size()*1.0/eventLogParam.getPageSize());
// page.setPages(pages);
// if (!CollectionUtils.isEmpty(eventPushLogs)) {
// List<String> lineIndexes = eventPushLogs.stream().map(EventPushLogs::getLineId).collect(Collectors.toList());
// lineIndexes = lineIndexes.stream().distinct().collect(Collectors.toList());
// /** 分页查询pqs_eventdetail表数据*/
// List<EventDetail> eventDetailData = eventDetailFeignClient.getEventDetailLimit(lineIndexes, eventLogParam.getSearchBeginTime(), eventLogParam.getSearchEndTime(), eventLogParam.getPageSize(), eventLogParam.getPageNum()).getData();
// if (!CollectionUtils.isEmpty(eventDetailData)) {
// for (EventPushLogs pushLogs: eventPushLogs) {
// for (EventDetail eventDetail: eventDetailData) {
// if (pushLogs.getLineId().equals(eventDetail.getLineId()) && pushLogs.getTimeId().equals(eventDetail.getStartTime())) {
// EventLogVO event = logManageMapper.getEventLogData(pushLogs.getLineId());
// if (Objects.isNull(event)) {
// continue;
// }
// EventLogVO eventLogVO = new EventLogVO();
// eventLogVO.setLineId(pushLogs.getLineId());
// LocalDateTime localDateTime = LocalDateTime.ofInstant(pushLogs.getTimeId(), ZoneId.systemDefault());
// DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
// String format = dateTimeFormatter.format(localDateTime);
// eventLogVO.setTime(format);
// eventLogVO.setLine(event.getLine());
// eventLogVO.setSubstation(event.getSubstation());
// eventLogVO.setPowerCompany(event.getPowerCompany());
// Double e = eventDetail.getFeatureAmplitude();
// BigDecimal bd = new BigDecimal(e);
// e= bd.setScale(2, BigDecimal.ROUND_DOWN).doubleValue();
// eventLogVO.setEventValue(String.valueOf(e*100));
// double i = eventDetail.getDuration() / 1000;
// eventLogVO.setPersistTime(String.valueOf(i));
// eventLogVO.setCreatTime(pushLogs.getCreateTime());
// eventLogVO.setCreatTimed(pushLogs.getCreateTime());
// eventLogVO.setPushFailed(pushLogs.getPushFailed());
// if (pushLogs.getResult()==0) {
// eventLogVO.setResult("失败");
// eventLogVO.setState("未推送");
// } else {
// eventLogVO.setResult("成功");
// eventLogVO.setState("已推送");
// }
// eventLogVO.setUpdateTime(pushLogs.getUpdateTime());
//
// list.add(eventLogVO);
// }
// }
// }
// }
// //当前页数据
// page.setRecords(list);
// }
// return page;
}
private boolean filterLineIdAndTime ( EventDetail eventDetail , List < EventPushLogs > eventPushLogs ) {
boolean flag = false ;
String evenDetailTime = eventDetail . getStartTime ( ) . format ( DateTimeFormatter . ofPattern ( " yyyy-MM-dd " ) ) ;
for ( EventPushLogs log : eventPushLogs ) {
String logTime = log . getTimeId ( ) . format ( DateTimeFormatter . ofPattern ( " yyyy-MM-dd " ) ) ;
if ( log . getL ine Id ( ) . equals ( eventDetail . getLineId ( ) ) & & evenDetailTime . equals ( logTime ) ) {
String logTime = log . getStart Time ( ) . format ( DateTimeFormatter . ofPattern ( " yyyy-MM-dd " ) ) ;
if ( log . getMeasurementPo int Id ( ) . equals ( eventDetail . getLineId ( ) ) & & log . getEventId ( ) . equals ( eventDetail . getEventId ( ) ) & & evenDetailTime . equals ( logTime ) ) {
flag = true ;
}
}