1.冀北分布式光伏代码提交

2.审计日志管理代码提交修改
3.暂降推送日志,筛选添加
This commit is contained in:
wr
2023-05-26 08:52:00 +08:00
parent 376aab019d
commit c7e063a6ae
29 changed files with 434 additions and 219 deletions

View File

@@ -428,4 +428,12 @@ public interface LineMapper extends BaseMapper<Line> {
* @date 2023/5/10
*/
List<LineDevGetDTO> getLineBySubStation(@Param("subId")String subId);
/**
* 根据条件进行监测筛选出监测点id
* @author wr
* @date 2023/5/25
*/
List<String> getLineByIDs(@Param("searchValue")String searchValue);
}

View File

@@ -1084,5 +1084,29 @@
</select>
<select id="getLineByIDs" resultType="java.lang.String">
SELECT DISTINCT
line.id
FROM
pq_line line,
pq_line voltage,
pq_line device,
pq_line substation,
pq_line gd
<where>
line.pid = voltage.id
AND voltage.pid = device.id
AND device.pid = substation.id
AND substation.pid = gd.id
<if test="searchValue!=null and searchValue!=''">
and (
gd.name like CONCAT('%', #{searchValue}, '%')
or substation.name like CONCAT('%', #{searchValue}, '%')
or line.NAME like CONCAT('%', #{searchValue},'%')
)
</if>
</where>
</select>
</mapper>

View File

@@ -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());
LambdaQueryWrapper<EventPushLogs> wrapper = new LambdaQueryWrapper<>();
wrapper.between(EventPushLogs::getTimeId,DateUtil.beginOfDay(DateUtil.parse(eventLogParam.getSearchBeginTime())),DateUtil.endOfDay(DateUtil.parse(eventLogParam.getSearchEndTime())));
wrapper.eq(EventPushLogs::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(eventLogParam.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::getLineId).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::getMeasurementPointId).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.getLineId()).get(0)) || Objects.isNull(eventDetailMap.get(rawLog.getLineId()).get(0))) {
if (Objects.isNull(areaMap.get(rawLog.getMeasurementPointId()).get(0)) || Objects.isNull(eventDetailMap.get(rawLog.getMeasurementPointId()).get(0))) {
continue;
}
EventLogVO eventLogVO = new EventLogVO();
eventLogVO.setLineId(rawLog.getLineId());
eventLogVO.setTime(dateTimeFormatter.format(rawLog.getTimeId()));
eventLogVO.setLine(areaMap.get(rawLog.getLineId()).get(0).getLineName());
eventLogVO.setSubstation(areaMap.get(rawLog.getLineId()).get(0).getSubName());
eventLogVO.setPowerCompany(areaMap.get(rawLog.getLineId()).get(0).getGdName());
Double e=eventDetailMap.get(rawLog.getLineId()).get(0).getFeatureAmplitude();
eventLogVO.setLineId(rawLog.getMeasurementPointId());
eventLogVO.setTime(dateTimeFormatter.format(rawLog.getStartTime()));
eventLogVO.setLine(areaMap.get(rawLog.getMeasurementPointId()).get(0).getLineName());
eventLogVO.setSubstation(areaMap.get(rawLog.getMeasurementPointId()).get(0).getSubName());
eventLogVO.setPowerCompany(areaMap.get(rawLog.getMeasurementPointId()).get(0).getGdName());
Double e=eventDetailMap.get(rawLog.getMeasurementPointId()).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.getLineId()).get(0).getDuration();
double i = eventDetailMap.get(rawLog.getMeasurementPointId()).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.getLineId().equals(eventDetail.getLineId()) && evenDetailTime.equals(logTime)) {
String logTime = log.getStartTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
if (log.getMeasurementPointId().equals(eventDetail.getLineId())&& log.getEventId().equals(eventDetail.getEventId())&& evenDetailTime.equals(logTime)) {
flag = true;
}
}