zbj//大屏暂降事件负荷类型
This commit is contained in:
@@ -6,6 +6,7 @@ import com.njcn.device.pq.pojo.param.DeviceInfoParam;
|
||||
import com.njcn.device.pq.pojo.param.LargeScreenParam;
|
||||
import com.njcn.device.pq.pojo.param.MonitoringPointScaleParam;
|
||||
import com.njcn.device.pq.pojo.vo.AreaDownVO;
|
||||
import com.njcn.device.pq.pojo.vo.LoadTypeVO;
|
||||
import com.njcn.device.pq.pojo.vo.MonitoringPointScaleVO;
|
||||
import com.njcn.event.mapper.majornetwork.LargeScreenMapper;
|
||||
import com.njcn.event.service.majornetwork.LargeScreenService;
|
||||
@@ -14,9 +15,12 @@ import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.njcn.device.pq.api.GeneralDeviceInfoClient;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @version 1.0.0
|
||||
@@ -33,7 +37,7 @@ public class LargeScreenServiceImpl implements LargeScreenService {
|
||||
private final LargeScreenMapper largeScreenMapper;
|
||||
|
||||
/**
|
||||
* 区域暂降统计
|
||||
* 暂降事件区域
|
||||
*/
|
||||
@Override
|
||||
public AreaDownVO getAreaDownStatistics(LargeScreenParam largeScreenParam) {
|
||||
@@ -56,14 +60,14 @@ public class LargeScreenServiceImpl implements LargeScreenService {
|
||||
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceInfoClient.getPracticalAllDeviceInfo(deviceInfoParam).getData();
|
||||
|
||||
for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) {
|
||||
if (generalDeviceDTO.getLineIndexes().size() == 0){
|
||||
if (generalDeviceDTO.getLineIndexes().size() == 0) {
|
||||
MonitoringPointScaleParam param = new MonitoringPointScaleParam();
|
||||
param.setName(generalDeviceDTO.getName());
|
||||
param.setIndex(generalDeviceDTO.getIndex());
|
||||
param.setCount(0);
|
||||
list.add(param);
|
||||
}else{
|
||||
Map<String, Object> map = largeScreenMapper.selectDownCount(generalDeviceDTO.getLineIndexes(),largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime());
|
||||
} else {
|
||||
Map<String, Object> map = largeScreenMapper.selectDownCount(generalDeviceDTO.getLineIndexes(), largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime());
|
||||
MonitoringPointScaleParam param = new MonitoringPointScaleParam();
|
||||
param.setName(generalDeviceDTO.getName());
|
||||
param.setIndex(generalDeviceDTO.getIndex());
|
||||
@@ -97,4 +101,65 @@ public class LargeScreenServiceImpl implements LargeScreenService {
|
||||
}*/
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 暂降事件负荷类型
|
||||
*/
|
||||
@Override
|
||||
public List<LoadTypeVO> getLoadType(LargeScreenParam largeScreenParam) {
|
||||
//创建返回VO
|
||||
List<LoadTypeVO> result = new ArrayList<>();
|
||||
DeviceInfoParam.BusinessParam deviceInfoParam = new DeviceInfoParam.BusinessParam();
|
||||
//部门索引
|
||||
deviceInfoParam.setDeptIndex(largeScreenParam.getDeptIndex());
|
||||
//统计类型
|
||||
SimpleDTO simpleDTO = new SimpleDTO();
|
||||
simpleDTO.setCode(String.valueOf(StatisticsEnum.LOAD_TYPE));
|
||||
deviceInfoParam.setStatisticalType(simpleDTO);
|
||||
//添加时间
|
||||
deviceInfoParam.setSearchBeginTime(largeScreenParam.getSearchBeginTime());
|
||||
deviceInfoParam.setSearchEndTime(largeScreenParam.getSearchEndTime());
|
||||
//添加服务名
|
||||
deviceInfoParam.setServerName("event-boot");
|
||||
// 获取所有数据
|
||||
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceInfoClient.getPracticalAllDeviceInfo(deviceInfoParam).getData();
|
||||
|
||||
//获取所有监测点集合
|
||||
List<String> lineIds = generalDeviceDTOList.stream().flatMap(dto -> dto.getLineIndexes().stream()).collect(Collectors.toList());
|
||||
|
||||
List<Map<String, Object>> maps = largeScreenMapper.selectLoadTypeCount(lineIds, largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime());
|
||||
|
||||
Map<String, Integer> countMap = new HashMap<>();
|
||||
for (Map<String, Object> map : maps) {
|
||||
for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) {
|
||||
for (String lineIndex : generalDeviceDTO.getLineIndexes()) {
|
||||
if (map.get("id").equals(lineIndex)) {
|
||||
if (countMap.containsKey(generalDeviceDTO.getName())) {
|
||||
int id = Integer.parseInt(map.get("count").toString());
|
||||
countMap.put(generalDeviceDTO.getName(), countMap.get(generalDeviceDTO.getName()) + id);
|
||||
break;
|
||||
} else {
|
||||
int id = Integer.parseInt(map.get("count").toString());
|
||||
countMap.put(generalDeviceDTO.getName(), id);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
List<String> nameList = generalDeviceDTOList.stream().map(GeneralDeviceDTO::getName).collect(Collectors.toList());
|
||||
for (String s : nameList) {
|
||||
if (!countMap.containsKey(s)) {
|
||||
countMap.put(s, 0);
|
||||
}
|
||||
}
|
||||
for (String s : countMap.keySet()) {
|
||||
LoadTypeVO loadTypeVO = new LoadTypeVO();
|
||||
loadTypeVO.setName(s);
|
||||
loadTypeVO.setCount(countMap.get(s));
|
||||
result.add(loadTypeVO);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,9 @@ package com.njcn.event.service.majornetwork;
|
||||
|
||||
import com.njcn.device.pq.pojo.param.LargeScreenParam;
|
||||
import com.njcn.device.pq.pojo.vo.AreaDownVO;
|
||||
import com.njcn.device.pq.pojo.vo.LoadTypeVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
@@ -13,4 +16,6 @@ public interface LargeScreenService {
|
||||
|
||||
AreaDownVO getAreaDownStatistics(LargeScreenParam largeScreenParam);
|
||||
|
||||
List<LoadTypeVO> getLoadType(LargeScreenParam largeScreenParam);
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user