diff --git a/tongran-api/tongran-api-system/src/main/java/com/tongran/system/api/domain/RmNetworkInterfaceRemote.java b/tongran-api/tongran-api-system/src/main/java/com/tongran/system/api/domain/RmNetworkInterfaceRemote.java index 1afed71..ea51e6d 100644 --- a/tongran-api/tongran-api-system/src/main/java/com/tongran/system/api/domain/RmNetworkInterfaceRemote.java +++ b/tongran-api/tongran-api-system/src/main/java/com/tongran/system/api/domain/RmNetworkInterfaceRemote.java @@ -54,8 +54,10 @@ public class RmNetworkInterfaceRemote extends BaseEntity { private String bindIp; /** 新旧标识 */ private Integer newFlag; - /** 服务器clientId集合 */ + /** 查询业务网卡或单个网卡的clientId集合 */ private String clientIds; + /** 查询所有网卡的clientId集合 */ + private String allClientIds; // 如果是子接口,存储父接口名称 private String parentInterface; diff --git a/tongran-common/tongran-common-core/src/main/java/com/tongran/common/core/utils/ConvertOtherTypeUtil.java b/tongran-common/tongran-common-core/src/main/java/com/tongran/common/core/utils/ConvertOtherTypeUtil.java index ed2b18f..2638469 100644 --- a/tongran-common/tongran-common-core/src/main/java/com/tongran/common/core/utils/ConvertOtherTypeUtil.java +++ b/tongran-common/tongran-common-core/src/main/java/com/tongran/common/core/utils/ConvertOtherTypeUtil.java @@ -8,12 +8,12 @@ public class ConvertOtherTypeUtil { */ public static String getInterfaceTypeName(int typeCode) { switch (typeCode) { - case 1: return "other"; + case 1: return "其他"; case 2: return "regular1822"; case 3: return "hdh1822"; case 4: return "ddnX25"; case 5: return "rfc877x25"; - case 6: return "ethernetCsmacd"; + case 6: return "以太网"; case 7: return "iso88023Csmacd"; case 8: return "iso88024TokenBus"; case 9: return "iso88025TokenRing"; @@ -31,7 +31,7 @@ public class ConvertOtherTypeUtil { case 21: return "primaryISDN"; case 22: return "propPointToPointSerial"; case 23: return "ppp"; - case 24: return "softwareLoopback"; + case 24: return "软件环回"; case 25: return "eon"; case 26: return "ethernet3Mbit"; case 27: return "nsip"; @@ -60,7 +60,7 @@ public class ConvertOtherTypeUtil { case 50: return "sonetPath"; case 51: return "sonetVT"; case 52: return "smdsIcip"; - case 53: return "propVirtual"; + case 53: return "专有虚拟"; case 54: return "propMultiplexor"; case 55: return "ieee80212"; case 56: return "fibreChannel"; diff --git a/tongran-modules/tongran-system/src/main/java/com/tongran/system/domain/RmResourceRegistration.java b/tongran-modules/tongran-system/src/main/java/com/tongran/system/domain/RmResourceRegistration.java index 58446fa..cf32815 100644 --- a/tongran-modules/tongran-system/src/main/java/com/tongran/system/domain/RmResourceRegistration.java +++ b/tongran-modules/tongran-system/src/main/java/com/tongran/system/domain/RmResourceRegistration.java @@ -255,7 +255,7 @@ public class RmResourceRegistration extends BaseEntity /** 日95带宽值利用率 */ @Excel(name = "日95带宽值利用率") private String bandwidthRate; - /** 昨日95值排序 1正序 2倒叙 3不排序 */ + /** 昨日95值排序 1正序 2倒叙 3不排序 4 cpu内存倒叙*/ private Integer bandwidthResultSort; /** cpu利用率 */ private BigDecimal cpuUtil; diff --git a/tongran-modules/tongran-system/src/main/java/com/tongran/system/service/impl/AllInterfaceNameServiceImpl.java b/tongran-modules/tongran-system/src/main/java/com/tongran/system/service/impl/AllInterfaceNameServiceImpl.java index 0b9f9ae..ac2591a 100644 --- a/tongran-modules/tongran-system/src/main/java/com/tongran/system/service/impl/AllInterfaceNameServiceImpl.java +++ b/tongran-modules/tongran-system/src/main/java/com/tongran/system/service/impl/AllInterfaceNameServiceImpl.java @@ -81,11 +81,11 @@ public class AllInterfaceNameServiceImpl implements IAllInterfaceNameService return nonSubInterfaces; } - // 缓存匹配结果,避免重复计算 - Map matchStatusMap = new HashMap<>(); + // 使用ID作为键,避免对象相等性问题 + Map matchStatusMap = new HashMap<>(); for (AllInterfaceName interfaceName : nonSubInterfaces) { boolean isMatched = isInterfaceMatched(interfaceName); - matchStatusMap.put(interfaceName, isMatched); + matchStatusMap.put(interfaceName.getId(), isMatched); // 只设置服务器类型的businessFlag if ("1".equals(interfaceName.getResourceType())) { @@ -96,12 +96,12 @@ public class AllInterfaceNameServiceImpl implements IAllInterfaceNameService // 使用自定义排序 return nonSubInterfaces.stream() .sorted((a, b) -> { - boolean aMatched = matchStatusMap.get(a); - boolean bMatched = matchStatusMap.get(b); + Boolean aMatched = matchStatusMap.get(a.getId()); + Boolean bMatched = matchStatusMap.get(b.getId()); - if (aMatched && !bMatched) { + if (Boolean.TRUE.equals(aMatched) && !Boolean.TRUE.equals(bMatched)) { return -1; - } else if (!aMatched && bMatched) { + } else if (!Boolean.TRUE.equals(aMatched) && Boolean.TRUE.equals(bMatched)) { return 1; } else { return 0; diff --git a/tongran-modules/tongran-system/src/main/java/com/tongran/system/service/impl/RmResourceRegistrationServiceImpl.java b/tongran-modules/tongran-system/src/main/java/com/tongran/system/service/impl/RmResourceRegistrationServiceImpl.java index e605612..6819a6e 100644 --- a/tongran-modules/tongran-system/src/main/java/com/tongran/system/service/impl/RmResourceRegistrationServiceImpl.java +++ b/tongran-modules/tongran-system/src/main/java/com/tongran/system/service/impl/RmResourceRegistrationServiceImpl.java @@ -354,7 +354,7 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio CompletableFuture> networkFuture = CompletableFuture .supplyAsync(() -> { RmNetworkInterfaceRemote queryParam = new RmNetworkInterfaceRemote(); - queryParam.setClientIds(clientIdsStr); + queryParam.setAllClientIds(clientIdsStr); queryParam.setNewFlag(1); R> result = remoteRocketMqService.getNetworkInterfaceList(queryParam, SecurityConstants.INNER); return result != null ? result.getData() : Collections.emptyList(); @@ -362,9 +362,9 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio CompletableFuture.allOf(cpuFuture, memFuture, networkFuture).join(); - List cpuUtilList = cpuFuture.get(); - List memUtilList = memFuture.get(); - List networkList = networkFuture.get(); + List cpuUtilList = cpuFuture.get() == null ? new ArrayList<>() : cpuFuture.get(); + List memUtilList = memFuture.get() == null ? new ArrayList<>() : memFuture.get(); + List networkList = networkFuture.get() == null ? new ArrayList<>() : networkFuture.get(); // 构建查找Map Map cpuUtilMap = cpuUtilList.stream() @@ -433,6 +433,7 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio int businessIpCount = 1; for (RmNetworkInterfaceRemote network : networkList) { + if ("1".equals(network.getBindIp()) || "3".equals(network.getBindIp())) { // 业务IP处理 if (businessIpCount > 3) { diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/RmNetworkInterface.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/RmNetworkInterface.java index 0187888..698b1be 100644 --- a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/RmNetworkInterface.java +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/RmNetworkInterface.java @@ -65,5 +65,7 @@ public class RmNetworkInterface extends BaseEntity private Integer newFlag; /** 服务器clientId集合 */ private String clientIds; + /** 查询所有网卡的clientId集合 */ + private String allClientIds; } diff --git a/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmNetworkInterfaceMapper.xml b/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmNetworkInterfaceMapper.xml index de58fde..d2e87ea 100644 --- a/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmNetworkInterfaceMapper.xml +++ b/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmNetworkInterfaceMapper.xml @@ -51,6 +51,12 @@ #{clientId} + + and client_id in + + #{clientId} + +