From 03f9609e2837a6a7b4925ad6769a92e9d2330409 Mon Sep 17 00:00:00 2001 From: gaoyutao Date: Tue, 3 Mar 2026 17:44:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=AA=E5=88=AB=E6=9C=BA?= =?UTF-8?q?=E5=99=A8=E5=87=BA=E7=9C=81=E6=B5=81=E9=87=8F=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E9=97=AE=E9=A2=98=E3=80=82=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=97=A595=E5=88=A9=E7=94=A8=E7=8E=87=E6=8E=92?= =?UTF-8?q?=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RmResourceRegistrationServiceImpl.java | 44 +++++++++++++++++-- .../rocketmq/handler/MessageHandler.java | 5 ++- .../InitialMemoryDetailsInfoMapper.xml | 1 + 3 files changed, 45 insertions(+), 5 deletions(-) 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 6e6efc9..16e7b1b 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 @@ -133,7 +133,7 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio childData = rmResourceRegistrationMapper.getRegistrationTableInfoList(rmResourceRegistration); } batchSetNetWorkMsg(allData); - + setBandwidthYestoday(allData); // 1. 过滤 List filteredList = allData; if (hasQueryParam) { @@ -168,7 +168,7 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio List currentPageData = new ArrayList<>(pageList); // 4. 只处理当前页数据 - processCurrentPageData(currentPageData); +// processCurrentPageData(currentPageData); resultMap.put("list", currentPageData); resultMap.put("total", total); @@ -326,7 +326,18 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio RmResourceRegistration::getBandwidthResult, Comparator.nullsLast(Comparator.reverseOrder()) ); - } else if (sortType == 4) { // 告警优先排序 + } else if (sortType == 5) { // 升序:按数值从小到大(如 10.1% < 110.1%) + comparator = Comparator.comparing( + r -> parsePercentage(r.getBandwidthRate()), // 转换为数值 + Comparator.nullsFirst(Comparator.naturalOrder()) + ); + } else if (sortType == 6) { // 降序:按数值从大到小 + comparator = Comparator.comparing( + r -> parsePercentage(r.getBandwidthRate()), // 转换为数值 + Comparator.nullsLast(Comparator.reverseOrder()) + ); + } + else if (sortType == 4) { // 告警优先排序 comparator = (a, b) -> { // 设置告警标志 boolean aAlarm = isAlarm(a); @@ -356,6 +367,17 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio list.sort(comparator); } } + private BigDecimal parsePercentage(String rate) { + if (rate == null || rate.trim().isEmpty()) { + return null; + } + try { + String numericStr = rate.trim().replace("%", ""); + return new BigDecimal(numericStr); + } catch (NumberFormatException e) { + return null; // 转换失败返回 null,后续会被 nullsLast 处理 + } + } private boolean isAlarm(RmResourceRegistration item) { Date delAlarmTime = item.getDelAlarmTime(); boolean alarmFlag = true; @@ -811,6 +833,22 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio } } } + public void setBandwidthYestoday(List registrationList){ + for (RmResourceRegistration registration : registrationList) { + // 查询昨日95值 + BigDecimal bandwidthResult = registration.getBandwidthResult(); + BigDecimal reportedBandwidth = registration.getReportedBandwidth(); + if(reportedBandwidth != null && bandwidthResult != null){ + if(reportedBandwidth.compareTo(BigDecimal.ZERO) == 0){ + registration.setBandwidthRate(null); + }else{ + // 计算日95带宽值利用率 + BigDecimal bandwidthRate = bandwidthResult.multiply(new BigDecimal(100)).divide(reportedBandwidth, 1, RoundingMode.HALF_UP); + registration.setBandwidthRate(bandwidthRate + "%"); + } + } + } + } /** * 新增资源注册 * diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/handler/MessageHandler.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/handler/MessageHandler.java index e306d21..1bfca1c 100644 --- a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/handler/MessageHandler.java +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/handler/MessageHandler.java @@ -287,6 +287,7 @@ public class MessageHandler { // 查询子网卡 RmNetworkInterfaceChild childQuery = new RmNetworkInterfaceChild(); childQuery.setClientId(message.getClientId()); + childQuery.setIpv4Flag(true); List existingChildren = rmNetworkInterfaceChildService.selectRmNetworkInterfaceChildList(childQuery); if(existingChildren != null && !existingChildren.isEmpty()){ RmNetworkInterfaceChild networkInfoChild = existingChildren.get(0); @@ -349,7 +350,7 @@ public class MessageHandler { String stdLocalIsp = localIsp != null ? localIsp.replace("中国", "") : ""; String stdOperator = operator.replace("中国", ""); // 省不一样或者省一样但运营商不一样 - if (!localProvince.equals(province) || !stdLocalIsp.equals(stdOperator)) { + if (!province.equals(localProvince) || !stdLocalIsp.equals(stdOperator)) { String key = province + operator; // 根据图片格式,省份和运营商之间没有空格 double currentCount = v4StatMap.getOrDefault(key, 0.0); v4StatMap.put(key, currentCount + tcpdumpVo.getCount()); @@ -392,7 +393,7 @@ public class MessageHandler { String stdLocalIsp = localIsp != null ? localIsp.replace("中国", "") : ""; String stdOperator = operator.replace("中国", ""); // 省不一样或者省一样但运营商不一样 - if (!localProvince.equals(province) || !stdLocalIsp.equals(stdOperator)) { + if (!province.equals(localProvince) || !stdLocalIsp.equals(stdOperator)) { String key = province + operator; // 根据图片格式,省份和运营商之间没有空格 double currentCount = v6StatMap.getOrDefault(key, 0.0); v6StatMap.put(key, currentCount + tcpdumpVo.getCount()); diff --git a/tongran-rocketmq/src/main/resources/mapper/rocketmq/InitialMemoryDetailsInfoMapper.xml b/tongran-rocketmq/src/main/resources/mapper/rocketmq/InitialMemoryDetailsInfoMapper.xml index b7230f8..bfa678a 100644 --- a/tongran-rocketmq/src/main/resources/mapper/rocketmq/InitialMemoryDetailsInfoMapper.xml +++ b/tongran-rocketmq/src/main/resources/mapper/rocketmq/InitialMemoryDetailsInfoMapper.xml @@ -52,6 +52,7 @@ and part_number = #{partNumber} and health_status = #{healthStatus} + and `name` not like "%not%"