修复图形x轴时间跨界问题、交换机月收益不展示95值问题。
ipv4 ipv6增加子网卡统计
This commit is contained in:
+12
-1
@@ -429,7 +429,18 @@ public class EchartsDataUtils {
|
|||||||
timeSeries.add(calendar.getTime());
|
timeSeries.add(calendar.getTime());
|
||||||
calendar.setTimeInMillis(calendar.getTimeInMillis() + interval);
|
calendar.setTimeInMillis(calendar.getTimeInMillis() + interval);
|
||||||
}
|
}
|
||||||
return timeSeries;
|
// 在generateFullTimeSeriesForMultiInterface方法的最后添加:
|
||||||
|
timeSeries.sort(Date::compareTo);
|
||||||
|
// 去重
|
||||||
|
List<Date> uniqueSeries = new ArrayList<>();
|
||||||
|
Date lastDate = null;
|
||||||
|
for (Date date : timeSeries) {
|
||||||
|
if (lastDate == null || !date.equals(lastDate)) {
|
||||||
|
uniqueSeries.add(date);
|
||||||
|
lastDate = date;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return uniqueSeries;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+12
-2
@@ -214,8 +214,18 @@ public class EchartsMoreDataUtils {
|
|||||||
fullTimeSeries.addAll(afterSeries);
|
fullTimeSeries.addAll(afterSeries);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 在generateFullTimeSeriesForMultiInterface方法的最后添加:
|
||||||
return fullTimeSeries;
|
fullTimeSeries.sort(Date::compareTo);
|
||||||
|
// 去重
|
||||||
|
List<Date> uniqueSeries = new ArrayList<>();
|
||||||
|
Date lastDate = null;
|
||||||
|
for (Date date : fullTimeSeries) {
|
||||||
|
if (lastDate == null || !date.equals(lastDate)) {
|
||||||
|
uniqueSeries.add(date);
|
||||||
|
lastDate = date;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return uniqueSeries;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+1
-1
@@ -936,7 +936,7 @@ public class InitialSwitchInfoDetailsServiceImpl implements IInitialSwitchInfoDe
|
|||||||
// 查询95值
|
// 查询95值
|
||||||
BigDecimal percentile95 = BigDecimal.ZERO;
|
BigDecimal percentile95 = BigDecimal.ZERO;
|
||||||
EpsNodeBandwidth query = new EpsNodeBandwidth();
|
EpsNodeBandwidth query = new EpsNodeBandwidth();
|
||||||
query.setBandwidthType("1");
|
query.setBandwidthType("2");
|
||||||
query.setCreateTime(DateUtils.parseDate(monthStart));
|
query.setCreateTime(DateUtils.parseDate(monthStart));
|
||||||
query.setCalculationMode(initialSwitchInfoDetails.getCalculationMode());
|
query.setCalculationMode(initialSwitchInfoDetails.getCalculationMode());
|
||||||
query.setClientId(clientId);
|
query.setClientId(clientId);
|
||||||
|
|||||||
@@ -674,7 +674,6 @@ public class MessageHandler {
|
|||||||
|
|
||||||
// 交换机在线状态改为在线(只在第3次心跳时执行)
|
// 交换机在线状态改为在线(只在第3次心跳时执行)
|
||||||
if(newHeartbeatCount == 3){
|
if(newHeartbeatCount == 3){
|
||||||
log.info("客户端ID: {} 第3次心跳,更新交换机状态为在线", clientId);
|
|
||||||
RmSwitchManagementRemote rmSwitchManagementRemote = new RmSwitchManagementRemote();
|
RmSwitchManagementRemote rmSwitchManagementRemote = new RmSwitchManagementRemote();
|
||||||
rmSwitchManagementRemote.setClientId(clientId);
|
rmSwitchManagementRemote.setClientId(clientId);
|
||||||
R<List<RmSwitchManagementRemote>> rmSwitchManagementRemoteListR = remoteRevenueConfigService.getSwitchNameByClientId(rmSwitchManagementRemote, SecurityConstants.INNER);
|
R<List<RmSwitchManagementRemote>> rmSwitchManagementRemoteListR = remoteRevenueConfigService.getSwitchNameByClientId(rmSwitchManagementRemote, SecurityConstants.INNER);
|
||||||
|
|||||||
+196
-54
@@ -18,7 +18,6 @@ import org.springframework.transaction.annotation.Isolation;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.ZoneId;
|
import java.time.ZoneId;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -251,7 +250,7 @@ public class InitialBandwidthTrafficServiceImpl implements IInitialBandwidthTraf
|
|||||||
interfaceDataMap.put(name, mainList);
|
interfaceDataMap.put(name, mainList);
|
||||||
showRealation.put(name+"netInTraffic", name+"入站流量");
|
showRealation.put(name+"netInTraffic", name+"入站流量");
|
||||||
showRealation.put(name+"netOutTraffic", name+"出站流量");
|
showRealation.put(name+"netOutTraffic", name+"出站流量");
|
||||||
|
boolean hasSubInterface = false;
|
||||||
// 如果是Ethernet类型,查询子网卡
|
// 如果是Ethernet类型,查询子网卡
|
||||||
if(isEthernetInterface(name)){
|
if(isEthernetInterface(name)){
|
||||||
RmNetworkInterfaceChild query = new RmNetworkInterfaceChild();
|
RmNetworkInterfaceChild query = new RmNetworkInterfaceChild();
|
||||||
@@ -259,6 +258,7 @@ public class InitialBandwidthTrafficServiceImpl implements IInitialBandwidthTraf
|
|||||||
query.setParentInterface(name);
|
query.setParentInterface(name);
|
||||||
List<RmNetworkInterfaceChild> children = rmNetworkInterfaceChildMapper.selectRmNetworkInterfaceChildList(query);
|
List<RmNetworkInterfaceChild> children = rmNetworkInterfaceChildMapper.selectRmNetworkInterfaceChildList(query);
|
||||||
if(children != null && !children.isEmpty()){
|
if(children != null && !children.isEmpty()){
|
||||||
|
hasSubInterface = true;
|
||||||
for (RmNetworkInterfaceChild child : children) {
|
for (RmNetworkInterfaceChild child : children) {
|
||||||
InitialBandwidthTraffic childTraffic = new InitialBandwidthTraffic();
|
InitialBandwidthTraffic childTraffic = new InitialBandwidthTraffic();
|
||||||
BeanUtils.copyProperties(initialBandwidthTraffic, childTraffic);
|
BeanUtils.copyProperties(initialBandwidthTraffic, childTraffic);
|
||||||
@@ -294,7 +294,7 @@ public class InitialBandwidthTrafficServiceImpl implements IInitialBandwidthTraf
|
|||||||
);
|
);
|
||||||
|
|
||||||
resultMap.put("unit", unit);
|
resultMap.put("unit", unit);
|
||||||
if(!showRealation.isEmpty()){
|
if(!showRealation.isEmpty() && hasSubInterface){
|
||||||
showRealation.put("totalNetInTraffic", name+"总入站流量");
|
showRealation.put("totalNetInTraffic", name+"总入站流量");
|
||||||
showRealation.put("totalNetOutTraffic", name+"总出站流量");
|
showRealation.put("totalNetOutTraffic", name+"总出站流量");
|
||||||
}
|
}
|
||||||
@@ -335,67 +335,161 @@ public class InitialBandwidthTrafficServiceImpl implements IInitialBandwidthTraf
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> netInterfaceIpv4TrafficEcharts(InitialBandwidthTraffic initialBandwidthTraffic) {
|
public Map<String, Object> netInterfaceIpv4TrafficEcharts(InitialBandwidthTraffic initialBandwidthTraffic) {
|
||||||
// 流量信息
|
// 主网卡IPv4流量信息
|
||||||
List<InitialBandwidthTraffic> list = getListByTableName(initialBandwidthTraffic);
|
List<InitialBandwidthTraffic> mainList = getListByTableName(initialBandwidthTraffic);
|
||||||
|
String originalName = initialBandwidthTraffic.getName();
|
||||||
|
String name = originalName;
|
||||||
|
|
||||||
|
if (originalName != null && originalName.contains("(")) {
|
||||||
|
int index = originalName.indexOf("(");
|
||||||
|
name = originalName.substring(0, index);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 存储所有网卡的数据
|
||||||
|
Map<String, List<InitialBandwidthTraffic>> interfaceDataMap = new LinkedHashMap<>();
|
||||||
|
// 展示关系
|
||||||
|
Map<String, String> showRealation = new HashMap<>();
|
||||||
|
interfaceDataMap.put(name, mainList);
|
||||||
|
showRealation.put(name + "netInSpeedData", name + "IPv4入站流量");
|
||||||
|
showRealation.put(name + "netOutSpeedData", name + "IPv4出站流量");
|
||||||
|
boolean hasSubInterface = false;
|
||||||
|
|
||||||
|
// 如果是Ethernet类型,查询子网卡
|
||||||
|
if (isEthernetInterface(name)) {
|
||||||
|
RmNetworkInterfaceChild query = new RmNetworkInterfaceChild();
|
||||||
|
query.setClientId(initialBandwidthTraffic.getClientId());
|
||||||
|
query.setParentInterface(name);
|
||||||
|
List<RmNetworkInterfaceChild> children = rmNetworkInterfaceChildMapper.selectRmNetworkInterfaceChildList(query);
|
||||||
|
if (children != null && !children.isEmpty()) {
|
||||||
|
hasSubInterface = true;
|
||||||
|
for (RmNetworkInterfaceChild child : children) {
|
||||||
|
InitialBandwidthTraffic childTraffic = new InitialBandwidthTraffic();
|
||||||
|
BeanUtils.copyProperties(initialBandwidthTraffic, childTraffic);
|
||||||
|
childTraffic.setName(child.getInterfaceName());
|
||||||
|
List<InitialBandwidthTraffic> childTrafficList = getListByTableName(childTraffic);
|
||||||
|
|
||||||
|
if (childTrafficList != null && !childTrafficList.isEmpty()) {
|
||||||
|
interfaceDataMap.put(child.getInterfaceName(), childTrafficList);
|
||||||
|
showRealation.put(child.getInterfaceName() + "netInSpeedData", child.getInterfaceName() + "IPv4入站流量");
|
||||||
|
showRealation.put(child.getInterfaceName() + "netOutSpeedData", child.getInterfaceName() + "IPv4出站流量");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String unit = SpeedUtils.calculateUnitWithStringTraffic(list, "ipv4InSpeed", "ipv4OutSpeed");
|
// 计算单位
|
||||||
|
String unit = SpeedUtils.calculateUnitWithStringTraffic(mainList, "ipv4InSpeed", "ipv4OutSpeed");
|
||||||
if (initialBandwidthTraffic.getUnit() != null) {
|
if (initialBandwidthTraffic.getUnit() != null) {
|
||||||
unit = initialBandwidthTraffic.getUnit();
|
unit = initialBandwidthTraffic.getUnit();
|
||||||
}
|
}
|
||||||
BigDecimal divisor = SpeedUtils.getDivisor(unit);
|
BigDecimal divisor = SpeedUtils.getDivisor(unit);
|
||||||
Map<String, Function<InitialBandwidthTraffic, ?>> extractors = new LinkedHashMap<>();
|
|
||||||
extractors.put("netInSpeedData", info ->
|
|
||||||
info != null && info.getIpv4InSpeed() != null ?
|
|
||||||
new BigDecimal(info.getIpv4InSpeed()).divide(divisor, 2, RoundingMode.HALF_UP) :
|
|
||||||
null);
|
|
||||||
|
|
||||||
extractors.put("netOutSpeedData", info ->
|
// 使用工具类构建多网卡图表数据
|
||||||
info != null && info.getIpv4OutSpeed() != null ?
|
Map<String, Object> resultMap = EchartsMoreDataUtils.buildMultiInterfaceEchartsDataWithTotal(
|
||||||
new BigDecimal(info.getIpv4OutSpeed()).divide(divisor, 2, RoundingMode.HALF_UP) :
|
interfaceDataMap,
|
||||||
null);
|
InitialBandwidthTraffic::getCreateTime,
|
||||||
Map<String, Object> resultMap = EchartsDataUtils.buildEchartsDataAutoPadding(
|
info -> info != null && info.getIpv4InSpeed() != null ?
|
||||||
list, InitialBandwidthTraffic::getCreateTime, extractors,
|
new BigDecimal(info.getIpv4InSpeed()) : null,
|
||||||
initialBandwidthTraffic.getStartTime(), initialBandwidthTraffic.getEndTime()
|
info -> info != null && info.getIpv4OutSpeed() != null ?
|
||||||
|
new BigDecimal(info.getIpv4OutSpeed()) : null,
|
||||||
|
initialBandwidthTraffic.getStartTime(),
|
||||||
|
initialBandwidthTraffic.getEndTime(),
|
||||||
|
divisor
|
||||||
);
|
);
|
||||||
|
|
||||||
resultMap.put("unit", unit);
|
resultMap.put("unit", unit);
|
||||||
|
if (!showRealation.isEmpty() && hasSubInterface) {
|
||||||
|
showRealation.put("totalNetInSpeedData", name + "IPv4总入站流量");
|
||||||
|
showRealation.put("totalNetOutSpeedData", name + "IPv4总出站流量");
|
||||||
|
}
|
||||||
|
resultMap.put("showRealation", showRealation);
|
||||||
return resultMap;
|
return resultMap;
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
|
||||||
return new HashMap<>();
|
return new HashMap<>();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> netInterfaceIpv6TrafficEcharts(InitialBandwidthTraffic initialBandwidthTraffic) {
|
public Map<String, Object> netInterfaceIpv6TrafficEcharts(InitialBandwidthTraffic initialBandwidthTraffic) {
|
||||||
// 流量信息
|
// 主网卡IPv6流量信息
|
||||||
List<InitialBandwidthTraffic> list = getListByTableName(initialBandwidthTraffic);
|
List<InitialBandwidthTraffic> mainList = getListByTableName(initialBandwidthTraffic);
|
||||||
|
String originalName = initialBandwidthTraffic.getName();
|
||||||
|
String name = originalName;
|
||||||
|
|
||||||
|
if (originalName != null && originalName.contains("(")) {
|
||||||
|
int index = originalName.indexOf("(");
|
||||||
|
name = originalName.substring(0, index);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 存储所有网卡的数据
|
||||||
|
Map<String, List<InitialBandwidthTraffic>> interfaceDataMap = new LinkedHashMap<>();
|
||||||
|
// 展示关系
|
||||||
|
Map<String, String> showRealation = new HashMap<>();
|
||||||
|
interfaceDataMap.put(name, mainList);
|
||||||
|
showRealation.put(name + "netInSpeedData", name + "IPv6入站流量");
|
||||||
|
showRealation.put(name + "netOutSpeedData", name + "IPv6出站流量");
|
||||||
|
boolean hasSubInterface = false;
|
||||||
|
|
||||||
|
// 如果是Ethernet类型,查询子网卡
|
||||||
|
if (isEthernetInterface(name)) {
|
||||||
|
RmNetworkInterfaceChild query = new RmNetworkInterfaceChild();
|
||||||
|
query.setClientId(initialBandwidthTraffic.getClientId());
|
||||||
|
query.setParentInterface(name);
|
||||||
|
List<RmNetworkInterfaceChild> children = rmNetworkInterfaceChildMapper.selectRmNetworkInterfaceChildList(query);
|
||||||
|
if (children != null && !children.isEmpty()) {
|
||||||
|
hasSubInterface = true;
|
||||||
|
for (RmNetworkInterfaceChild child : children) {
|
||||||
|
InitialBandwidthTraffic childTraffic = new InitialBandwidthTraffic();
|
||||||
|
BeanUtils.copyProperties(initialBandwidthTraffic, childTraffic);
|
||||||
|
childTraffic.setName(child.getInterfaceName());
|
||||||
|
List<InitialBandwidthTraffic> childTrafficList = getListByTableName(childTraffic);
|
||||||
|
|
||||||
|
if (childTrafficList != null && !childTrafficList.isEmpty()) {
|
||||||
|
interfaceDataMap.put(child.getInterfaceName(), childTrafficList);
|
||||||
|
showRealation.put(child.getInterfaceName() + "netInSpeedData", child.getInterfaceName() + "IPv6入站流量");
|
||||||
|
showRealation.put(child.getInterfaceName() + "netOutSpeedData", child.getInterfaceName() + "IPv6出站流量");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String unit = SpeedUtils.calculateUnitWithStringTraffic(list, "ipv6InSpeed", "ipv6OutSpeed");
|
// 计算单位
|
||||||
|
String unit = SpeedUtils.calculateUnitWithStringTraffic(mainList, "ipv6InSpeed", "ipv6OutSpeed");
|
||||||
if (initialBandwidthTraffic.getUnit() != null) {
|
if (initialBandwidthTraffic.getUnit() != null) {
|
||||||
unit = initialBandwidthTraffic.getUnit();
|
unit = initialBandwidthTraffic.getUnit();
|
||||||
}
|
}
|
||||||
BigDecimal divisor = SpeedUtils.getDivisor(unit);
|
BigDecimal divisor = SpeedUtils.getDivisor(unit);
|
||||||
Map<String, Function<InitialBandwidthTraffic, ?>> extractors = new LinkedHashMap<>();
|
|
||||||
extractors.put("netInSpeedData", info ->
|
|
||||||
info != null && info.getIpv6InSpeed() != null ?
|
|
||||||
new BigDecimal(info.getIpv6InSpeed()).divide(divisor, 2, RoundingMode.HALF_UP) :
|
|
||||||
null);
|
|
||||||
|
|
||||||
extractors.put("netOutSpeedData", info ->
|
// 使用工具类构建多网卡图表数据
|
||||||
info != null && info.getIpv6OutSpeed() != null ?
|
Map<String, Object> resultMap = EchartsMoreDataUtils.buildMultiInterfaceEchartsDataWithTotal(
|
||||||
new BigDecimal(info.getIpv6OutSpeed()).divide(divisor, 2, RoundingMode.HALF_UP) :
|
interfaceDataMap,
|
||||||
null);
|
InitialBandwidthTraffic::getCreateTime,
|
||||||
Map<String, Object> resultMap = EchartsDataUtils.buildEchartsDataAutoPadding(
|
info -> info != null && info.getIpv6InSpeed() != null ?
|
||||||
list, InitialBandwidthTraffic::getCreateTime, extractors,
|
new BigDecimal(info.getIpv6InSpeed()) : null,
|
||||||
initialBandwidthTraffic.getStartTime(), initialBandwidthTraffic.getEndTime()
|
info -> info != null && info.getIpv6OutSpeed() != null ?
|
||||||
|
new BigDecimal(info.getIpv6OutSpeed()) : null,
|
||||||
|
initialBandwidthTraffic.getStartTime(),
|
||||||
|
initialBandwidthTraffic.getEndTime(),
|
||||||
|
divisor
|
||||||
);
|
);
|
||||||
|
|
||||||
resultMap.put("unit", unit);
|
resultMap.put("unit", unit);
|
||||||
|
if (!showRealation.isEmpty() && hasSubInterface) {
|
||||||
|
showRealation.put("totalNetInSpeedData", name + "IPv6总入站流量");
|
||||||
|
showRealation.put("totalNetOutSpeedData", name + "IPv6总出站流量");
|
||||||
|
}
|
||||||
|
resultMap.put("showRealation", showRealation);
|
||||||
return resultMap;
|
return resultMap;
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
|
||||||
return new HashMap<>();
|
return new HashMap<>();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Map<String, Object>> netBatchTrafficEcharts(InitialBandwidthTraffic initialBandwidthTraffic) {
|
public List<Map<String, Object>> netBatchTrafficEcharts(InitialBandwidthTraffic initialBandwidthTraffic) {
|
||||||
@@ -413,7 +507,8 @@ public class InitialBandwidthTrafficServiceImpl implements IInitialBandwidthTraf
|
|||||||
trafficData.setName(interfaceName);
|
trafficData.setName(interfaceName);
|
||||||
trafficData.setStartTime(initialBandwidthTraffic.getStartTime());
|
trafficData.setStartTime(initialBandwidthTraffic.getStartTime());
|
||||||
trafficData.setEndTime(initialBandwidthTraffic.getEndTime());
|
trafficData.setEndTime(initialBandwidthTraffic.getEndTime());
|
||||||
Map<String, Object> resultMap = getEchartsData(trafficData);
|
// 修改为新的支持子网卡的方法
|
||||||
|
Map<String, Object> resultMap = getBatchEchartsData(trafficData);
|
||||||
resultMap.put("interfaceName", interfaceName);
|
resultMap.put("interfaceName", interfaceName);
|
||||||
resultMap.put("clientId", clientId);
|
resultMap.put("clientId", clientId);
|
||||||
resultList.add(resultMap);
|
resultList.add(resultMap);
|
||||||
@@ -423,39 +518,86 @@ public class InitialBandwidthTrafficServiceImpl implements IInitialBandwidthTraf
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构建echarts图表
|
* 构建支持子网卡的批量echarts图表数据
|
||||||
* @param initialBandwidthTraffic
|
* @param initialBandwidthTraffic
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public Map<String, Object> getEchartsData(InitialBandwidthTraffic initialBandwidthTraffic){
|
public Map<String, Object> getBatchEchartsData(InitialBandwidthTraffic initialBandwidthTraffic) {
|
||||||
// 流量信息
|
// 主网卡流量信息
|
||||||
List<InitialBandwidthTraffic> list = getListByTableName(initialBandwidthTraffic);
|
List<InitialBandwidthTraffic> mainList = getListByTableName(initialBandwidthTraffic);
|
||||||
|
String originalName = initialBandwidthTraffic.getName();
|
||||||
|
String name = originalName;
|
||||||
|
|
||||||
|
if (originalName != null && originalName.contains("(")) {
|
||||||
|
int index = originalName.indexOf("(");
|
||||||
|
name = originalName.substring(0, index);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 存储所有网卡的数据
|
||||||
|
Map<String, List<InitialBandwidthTraffic>> interfaceDataMap = new LinkedHashMap<>();
|
||||||
|
// 展示关系
|
||||||
|
Map<String, String> showRealation = new HashMap<>();
|
||||||
|
interfaceDataMap.put(name, mainList);
|
||||||
|
showRealation.put(name + "netInSpeedData", name + "入站流量");
|
||||||
|
showRealation.put(name + "netOutSpeedData", name + "出站流量");
|
||||||
|
boolean hasSubInterface = false;
|
||||||
|
|
||||||
|
// 如果是Ethernet类型,查询子网卡
|
||||||
|
if (isEthernetInterface(name)) {
|
||||||
|
RmNetworkInterfaceChild query = new RmNetworkInterfaceChild();
|
||||||
|
query.setClientId(initialBandwidthTraffic.getClientId());
|
||||||
|
query.setParentInterface(name);
|
||||||
|
List<RmNetworkInterfaceChild> children = rmNetworkInterfaceChildMapper.selectRmNetworkInterfaceChildList(query);
|
||||||
|
if (children != null && !children.isEmpty()) {
|
||||||
|
hasSubInterface = true;
|
||||||
|
for (RmNetworkInterfaceChild child : children) {
|
||||||
|
InitialBandwidthTraffic childTraffic = new InitialBandwidthTraffic();
|
||||||
|
BeanUtils.copyProperties(initialBandwidthTraffic, childTraffic);
|
||||||
|
childTraffic.setName(child.getInterfaceName());
|
||||||
|
List<InitialBandwidthTraffic> childTrafficList = getListByTableName(childTraffic);
|
||||||
|
|
||||||
|
if (childTrafficList != null && !childTrafficList.isEmpty()) {
|
||||||
|
interfaceDataMap.put(child.getInterfaceName(), childTrafficList);
|
||||||
|
showRealation.put(child.getInterfaceName() + "netInSpeedData", child.getInterfaceName() + "入站流量");
|
||||||
|
showRealation.put(child.getInterfaceName() + "netOutSpeedData", child.getInterfaceName() + "出站流量");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String unit = SpeedUtils.calculateUnitWithStringTraffic(list, "inSpeed", "outSpeed");
|
// 计算单位
|
||||||
|
String unit = SpeedUtils.calculateUnitWithStringTraffic(mainList, "inSpeed", "outSpeed");
|
||||||
if (initialBandwidthTraffic.getUnit() != null) {
|
if (initialBandwidthTraffic.getUnit() != null) {
|
||||||
unit = initialBandwidthTraffic.getUnit();
|
unit = initialBandwidthTraffic.getUnit();
|
||||||
}
|
}
|
||||||
BigDecimal divisor = SpeedUtils.getDivisor(unit);
|
BigDecimal divisor = SpeedUtils.getDivisor(unit);
|
||||||
Map<String, Function<InitialBandwidthTraffic, ?>> extractors = new LinkedHashMap<>();
|
|
||||||
extractors.put("netInSpeedData", info ->
|
|
||||||
info != null && info.getInSpeed() != null ?
|
|
||||||
new BigDecimal(info.getInSpeed()).divide(divisor, 2, RoundingMode.HALF_UP) :
|
|
||||||
null);
|
|
||||||
|
|
||||||
extractors.put("netOutSpeedData", info ->
|
// 使用工具类构建多网卡图表数据
|
||||||
info != null && info.getOutSpeed() != null ?
|
Map<String, Object> resultMap = EchartsMoreDataUtils.buildMultiInterfaceEchartsDataWithTotal(
|
||||||
new BigDecimal(info.getOutSpeed()).divide(divisor, 2, RoundingMode.HALF_UP) :
|
interfaceDataMap,
|
||||||
null);
|
InitialBandwidthTraffic::getCreateTime,
|
||||||
Map<String, Object> resultMap = EchartsDataUtils.buildEchartsDataAutoPadding(
|
info -> info != null && info.getInSpeed() != null ?
|
||||||
list, InitialBandwidthTraffic::getCreateTime, extractors,
|
new BigDecimal(info.getInSpeed()) : null,
|
||||||
initialBandwidthTraffic.getStartTime(), initialBandwidthTraffic.getEndTime()
|
info -> info != null && info.getOutSpeed() != null ?
|
||||||
|
new BigDecimal(info.getOutSpeed()) : null,
|
||||||
|
initialBandwidthTraffic.getStartTime(),
|
||||||
|
initialBandwidthTraffic.getEndTime(),
|
||||||
|
divisor
|
||||||
);
|
);
|
||||||
|
|
||||||
resultMap.put("unit", unit);
|
resultMap.put("unit", unit);
|
||||||
|
if (!showRealation.isEmpty() && hasSubInterface) {
|
||||||
|
showRealation.put("totalNetInSpeedData", name + "总入站流量");
|
||||||
|
showRealation.put("totalNetOutSpeedData", name + "总出站流量");
|
||||||
|
}
|
||||||
|
resultMap.put("showRealation", showRealation);
|
||||||
return resultMap;
|
return resultMap;
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
|
||||||
return new HashMap<>();
|
return new HashMap<>();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -56,7 +56,7 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<insert id="insertRmNetworkInterfaceChild" parameterType="RmNetworkInterfaceChild" useGeneratedKeys="true" keyProperty="id">
|
<insert id="insertRmNetworkInterfaceChild" parameterType="RmNetworkInterfaceChild" useGeneratedKeys="true" keyProperty="id">
|
||||||
insert into rm_network_interface_child
|
insert IGNORE into rm_network_interface_child
|
||||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
<if test="clientId != null">client_id,</if>
|
<if test="clientId != null">client_id,</if>
|
||||||
<if test="parentInterface != null">parent_interface,</if>
|
<if test="parentInterface != null">parent_interface,</if>
|
||||||
|
|||||||
Reference in New Issue
Block a user