电压暂降:地图概览修改

This commit is contained in:
wr
2023-04-14 11:12:57 +08:00
parent 975f8af044
commit c8ed7001ec
3 changed files with 37 additions and 44 deletions

View File

@@ -6,7 +6,6 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil; import com.njcn.common.utils.HttpResultUtil;
import com.njcn.device.pq.pojo.param.DeviceInfoParam; import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.device.pq.pojo.vo.TerminalBaseVO;
import com.njcn.event.pojo.po.EventDetailNew; import com.njcn.event.pojo.po.EventDetailNew;
import com.njcn.event.pojo.vo.AreaSubLineVO; import com.njcn.event.pojo.vo.AreaSubLineVO;
import com.njcn.event.service.majornetwork.AreaInfoService; import com.njcn.event.service.majornetwork.AreaInfoService;
@@ -60,7 +59,7 @@ public class AreaInfoController extends BaseController {
@PostMapping("/getNoDealEvents") @PostMapping("/getNoDealEvents")
@ApiOperation("获取区域未处理暂态事件") @ApiOperation("获取区域未处理暂态事件")
@ApiImplicitParam(name = "deviceInfoParam", value = "参数体", required = true) @ApiImplicitParam(name = "deviceInfoParam", value = "参数体", required = true)
public HttpResult<List<EventDetailNew>> getNoDealEvents(@RequestBody @Validated DeviceInfoParam deviceInfoParam) { public HttpResult<List<EventDetailNew>> getNoDealEvents(@RequestBody @Validated DeviceInfoParam.BusinessParam deviceInfoParam) {
String methodDescribe = getMethodDescribe("getNoDealEvents"); String methodDescribe = getMethodDescribe("getNoDealEvents");
List<EventDetailNew> res = areaInfoService.getNoDealEvents(deviceInfoParam); List<EventDetailNew> res = areaInfoService.getNoDealEvents(deviceInfoParam);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, res, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, res, methodDescribe);
@@ -76,9 +75,12 @@ public class AreaInfoController extends BaseController {
@GetMapping("/getNoDealEventsByLineId") @GetMapping("/getNoDealEventsByLineId")
@ApiOperation("获取监测点下未处理的暂降事件") @ApiOperation("获取监测点下未处理的暂降事件")
@ApiImplicitParam(name = "id", value = "监测点id", required = true) @ApiImplicitParam(name = "id", value = "监测点id", required = true)
public HttpResult<List<EventDetailNew>> getNoDealEventsByLineId(@RequestParam("id") @NotBlank(message = "监测点id不可为空") String id) { public HttpResult<List<EventDetailNew>> getNoDealEventsByLineId(@RequestParam("id") @NotBlank(message = "监测点id不可为空") String id,
@RequestParam("searchBeginTime") @NotBlank(message = "开始时间不可为空") String searchBeginTime,
@RequestParam("searchEndTime") @NotBlank(message = "结束时间不可为空") String searchEndTime
) {
String methodDescribe = getMethodDescribe("getNoDealEventsByLineId"); String methodDescribe = getMethodDescribe("getNoDealEventsByLineId");
List<EventDetailNew> res = areaInfoService.getNoDealEventsByLineId(id); List<EventDetailNew> res = areaInfoService.getNoDealEventsByLineId(id,searchBeginTime,searchEndTime);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, res, methodDescribe); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, res, methodDescribe);
} }

View File

@@ -1,7 +1,6 @@
package com.njcn.event.service.majornetwork; package com.njcn.event.service.majornetwork;
import com.njcn.device.pq.pojo.param.DeviceInfoParam; import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.device.pq.pojo.vo.TerminalBaseVO;
import com.njcn.event.pojo.po.EventDetailNew; import com.njcn.event.pojo.po.EventDetailNew;
import com.njcn.event.pojo.vo.AreaSubLineVO; import com.njcn.event.pojo.vo.AreaSubLineVO;
@@ -17,25 +16,26 @@ public interface AreaInfoService {
/** /**
* 获取区域监测点地理信息 * 获取区域监测点地理信息
*
* @author cdf * @author cdf
* @date 2022/6/29 * @date 2022/6/29
*/ */
List<AreaSubLineVO> getAreaLineInfo(DeviceInfoParam.BusinessParam deviceInfoParam); List<AreaSubLineVO> getAreaLineInfo(DeviceInfoParam.BusinessParam deviceInfoParam);
/** /**
* 获取区域监测点地理信息 * 获取区域监测点地理信息
*
* @author cdf * @author cdf
* @date 2022/6/29 * @date 2022/6/29
*/ */
List<EventDetailNew> getNoDealEvents(DeviceInfoParam deviceInfoParam); List<EventDetailNew> getNoDealEvents(DeviceInfoParam.BusinessParam deviceInfoParam);
/** /**
* 获取监测点下未处理的暂降事件 * 获取监测点下未处理的暂降事件
*
* @author cdf * @author cdf
* @date 2022/6/29 * @date 2022/6/29
*/ */
List<EventDetailNew> getNoDealEventsByLineId(String id); List<EventDetailNew> getNoDealEventsByLineId(String id, String searchBeginTime, String searchEndTime);
} }

View File

@@ -39,13 +39,11 @@ import java.util.stream.Stream;
@Slf4j @Slf4j
@RequiredArgsConstructor @RequiredArgsConstructor
public class AreaInfoServiceImpl implements AreaInfoService { public class AreaInfoServiceImpl implements AreaInfoService {
private final InfluxDbUtils influxDbUtils;
private final GeneralDeviceInfoClient generalDeviceInfoClient; private final GeneralDeviceInfoClient generalDeviceInfoClient;
private final LineFeignClient lineFeignClient; private final LineFeignClient lineFeignClient;
private final TerminalBaseClient terminalBaseClient;
private final EventDetailService eventDetailService; private final EventDetailService eventDetailService;
@Override @Override
@@ -60,30 +58,21 @@ public class AreaInfoServiceImpl implements AreaInfoService {
//查询监测点未处理暂态事件 //查询监测点未处理暂态事件
List<RmpEventDetailPO> eventDetails = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>() List<RmpEventDetailPO> eventDetails = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
.in(RmpEventDetailPO::getMeasurementPointId, lineIds) .in(RmpEventDetailPO::getMeasurementPointId, lineIds)
.ge(StringUtils.isNotBlank(deviceInfoParam.getSearchBeginTime()), RmpEventDetailPO::getStartTime,DateUtil.beginOfDay(DateUtil.parse(deviceInfoParam.getSearchBeginTime()))) .ge(StringUtils.isNotBlank(deviceInfoParam.getSearchBeginTime()), RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(deviceInfoParam.getSearchBeginTime())))
.le(StringUtils.isNotBlank(deviceInfoParam.getSearchEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(deviceInfoParam.getSearchBeginTime()))) .le(StringUtils.isNotBlank(deviceInfoParam.getSearchEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(deviceInfoParam.getSearchEndTime())))
); );
//根据监测点分组统计数量 //根据监测点分组统计数量
Map<String, Long> count = eventDetails.stream().collect(Collectors.groupingBy(RmpEventDetailPO::getMeasurementPointId, Collectors.counting())); Map<String, Long> count = eventDetails.stream().collect(Collectors.groupingBy(RmpEventDetailPO::getMeasurementPointId, Collectors.counting()));
for (AreaLineInfoVO areaLineInfoVO : resList) { for (AreaLineInfoVO areaLineInfoVO : resList) {
boolean flag = false;
if(CollectionUtil.isNotEmpty(count)) {
for (String s : count.keySet()) {
if (count.containsKey(areaLineInfoVO.getLineId())) {
Long aLong = count.get(s);
areaLineInfoVO.setNoDealCount(Math.toIntExact(aLong));
flag = true;
break;
}
}
}
if (!flag) {
areaLineInfoVO.setNoDealCount(0); areaLineInfoVO.setNoDealCount(0);
if (CollectionUtil.isNotEmpty(count)) {
if (count.containsKey(areaLineInfoVO.getLineId())) {
Long aLong = count.get(areaLineInfoVO.getLineId());
areaLineInfoVO.setNoDealCount(Math.toIntExact(aLong));
}
} }
} }
//组装成变电站 //组装成变电站
if (CollectionUtil.isNotEmpty(resList)) { if (CollectionUtil.isNotEmpty(resList)) {
@@ -103,9 +92,8 @@ public class AreaInfoServiceImpl implements AreaInfoService {
} }
@Override @Override
public List<EventDetailNew> getNoDealEvents(DeviceInfoParam deviceInfoParam) { public List<EventDetailNew> getNoDealEvents(DeviceInfoParam.BusinessParam deviceInfoParam) {
List<EventDetailNew> resList = new ArrayList<>(); List<EventDetailNew> resList = new ArrayList<>();
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceInfoClient.getPracticalAllDeviceInfo(deviceInfoParam).getData(); List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceInfoClient.getPracticalAllDeviceInfo(deviceInfoParam).getData();
List<String> lineIds = generalDeviceDTOList.stream().flatMap(dto -> dto.getLineIndexes().stream()).collect(Collectors.toList()); List<String> lineIds = generalDeviceDTOList.stream().flatMap(dto -> dto.getLineIndexes().stream()).collect(Collectors.toList());
@@ -116,17 +104,20 @@ public class AreaInfoServiceImpl implements AreaInfoService {
//查询监测点未处理暂态事件 //查询监测点未处理暂态事件
List<RmpEventDetailPO> eventDetails = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>() List<RmpEventDetailPO> eventDetails = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
.in(RmpEventDetailPO::getMeasurementPointId, lineIds).orderByDesc(RmpEventDetailPO::getStartTime)); .in(RmpEventDetailPO::getMeasurementPointId, lineIds)
.ge(StringUtils.isNotBlank(deviceInfoParam.getSearchBeginTime()), RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(deviceInfoParam.getSearchBeginTime())))
.le(StringUtils.isNotBlank(deviceInfoParam.getSearchEndTime()), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(deviceInfoParam.getSearchEndTime())))
.orderByDesc(RmpEventDetailPO::getStartTime));
EventDetailNew eventDetailNew; EventDetailNew eventDetailNew;
for (RmpEventDetailPO eventDetail : eventDetails) { for (RmpEventDetailPO eventDetail : eventDetails) {
eventDetailNew= BeanUtil.copyProperties(eventDetail,EventDetailNew.class); eventDetailNew = BeanUtil.copyProperties(eventDetail, EventDetailNew.class);
//监测点id //监测点id
eventDetailNew.setLineId(eventDetail.getMeasurementPointId()); eventDetailNew.setLineId(eventDetail.getMeasurementPointId());
//持续时间 //持续时间
eventDetailNew.setDuration(eventDetail.getDuration()); eventDetailNew.setDuration(eventDetail.getDuration());
//特征幅值 //特征幅值
eventDetailNew.setFeatureAmplitude(eventDetail.getFeatureAmplitude()); eventDetailNew.setFeatureAmplitude(eventDetail.getFeatureAmplitude());
if(lineMap.containsKey(eventDetail.getMeasurementPointId())){ if (lineMap.containsKey(eventDetail.getMeasurementPointId())) {
AreaLineInfoVO areaLineInfoVO = lineMap.get(eventDetail.getMeasurementPointId()); AreaLineInfoVO areaLineInfoVO = lineMap.get(eventDetail.getMeasurementPointId());
eventDetailNew.setLineName(areaLineInfoVO.getLineName()); eventDetailNew.setLineName(areaLineInfoVO.getLineName());
eventDetailNew.setLng(areaLineInfoVO.getLng()); eventDetailNew.setLng(areaLineInfoVO.getLng());
@@ -139,33 +130,33 @@ public class AreaInfoServiceImpl implements AreaInfoService {
} }
@Override @Override
public List<EventDetailNew> getNoDealEventsByLineId(String id) { public List<EventDetailNew> getNoDealEventsByLineId(String id, String searchBeginTime, String searchEndTime) {
List<AreaLineInfoVO> lineList = lineFeignClient.getBaseLineAreaInfo(Stream.of(id).collect(Collectors.toList())).getData(); List<AreaLineInfoVO> lineList = lineFeignClient.getBaseLineAreaInfo(Stream.of(id).collect(Collectors.toList())).getData();
List<EventDetailNew> resList = new ArrayList<>(); List<EventDetailNew> resList = new ArrayList<>();
//查询监测点未处理暂态事件 //查询监测点未处理暂态事件
List<RmpEventDetailPO> eventDetails = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>() List<RmpEventDetailPO> eventDetails = eventDetailService.list(new LambdaQueryWrapper<RmpEventDetailPO>()
.eq(RmpEventDetailPO::getMeasurementPointId, id)); .eq(RmpEventDetailPO::getMeasurementPointId, id)
.ge(StringUtils.isNotBlank(searchBeginTime), RmpEventDetailPO::getStartTime, DateUtil.beginOfDay(DateUtil.parse(searchBeginTime)))
.le(StringUtils.isNotBlank(searchEndTime), RmpEventDetailPO::getStartTime, DateUtil.endOfDay(DateUtil.parse(searchEndTime)))
);
EventDetailNew eventDetailNew; EventDetailNew eventDetailNew;
for (RmpEventDetailPO eventDetail : eventDetails) { for (RmpEventDetailPO eventDetail : eventDetails) {
eventDetailNew= BeanUtil.copyProperties(eventDetail,EventDetailNew.class); eventDetailNew = BeanUtil.copyProperties(eventDetail, EventDetailNew.class);
//监测点id //监测点id
eventDetailNew.setLineId(eventDetail.getMeasurementPointId()); eventDetailNew.setLineId(eventDetail.getMeasurementPointId());
//持续时间 //持续时间
eventDetailNew.setDuration(eventDetail.getDuration()); eventDetailNew.setDuration(eventDetail.getDuration());
//特征幅值 //特征幅值
eventDetailNew.setFeatureAmplitude(eventDetail.getFeatureAmplitude()); eventDetailNew.setFeatureAmplitude(eventDetail.getFeatureAmplitude());
if(CollectionUtil.isNotEmpty(lineList)){ if (CollectionUtil.isNotEmpty(lineList)) {
resList = resList.stream().peek(item->{ eventDetailNew.setGdName(lineList.get(0).getGdName());
item.setGdName(lineList.get(0).getGdName()); eventDetailNew.setSubName(lineList.get(0).getSubName());
item.setSubName(lineList.get(0).getSubName()); eventDetailNew.setLineName(lineList.get(0).getLineName());
item.setLineName(lineList.get(0).getLineName()); }
}).collect(Collectors.toList());
resList.add(eventDetailNew); resList.add(eventDetailNew);
} }
}
return resList; return resList;
} }