diff --git a/tongran-api/tongran-api-system/src/main/java/com/tongran/system/api/domain/NetworkInfo.java b/tongran-api/tongran-api-system/src/main/java/com/tongran/system/api/domain/NetworkInfo.java index d47427c..d389cbe 100644 --- a/tongran-api/tongran-api-system/src/main/java/com/tongran/system/api/domain/NetworkInfo.java +++ b/tongran-api/tongran-api-system/src/main/java/com/tongran/system/api/domain/NetworkInfo.java @@ -1,11 +1,13 @@ package com.tongran.system.api.domain; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import java.util.List; @Data +@JsonIgnoreProperties(ignoreUnknown = true) public class NetworkInfo { // 运营商 @JsonProperty("carrier") @@ -36,6 +38,9 @@ public class NetworkInfo { private String publicIp; @JsonProperty("type") private String type; + /** 与外网的连通性(0否,1是) */ + @JsonProperty("status") + private String status; // 如果是子接口,存储父接口名称 @JsonProperty("parentInterface") private String parentInterface; diff --git a/tongran-modules/tongran-system/src/main/java/com/tongran/system/domain/AllInterfaceName.java b/tongran-modules/tongran-system/src/main/java/com/tongran/system/domain/AllInterfaceName.java index a22c0d7..b67e73b 100644 --- a/tongran-modules/tongran-system/src/main/java/com/tongran/system/domain/AllInterfaceName.java +++ b/tongran-modules/tongran-system/src/main/java/com/tongran/system/domain/AllInterfaceName.java @@ -27,7 +27,8 @@ public class AllInterfaceName extends BaseEntity /** 接口名称 */ @Excel(name = "接口名称") private String interfaceName; - + /** 接口名称备注 */ + private String interfaceNameRemark; /** 设备序列号 */ @Excel(name = "设备序列号") private String deviceSn; 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 ac471d9..a28fbb3 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 @@ -8,7 +8,9 @@ import com.tongran.system.api.RemoteRocketMqService; import com.tongran.system.api.domain.RmNetworkInterfaceRemote; import com.tongran.system.domain.AllInterfaceName; import com.tongran.system.domain.RmEpsTopologyManagement; +import com.tongran.system.domain.RmSwitchInterfaceInfo; import com.tongran.system.mapper.AllInterfaceNameMapper; +import com.tongran.system.mapper.RmSwitchInterfaceInfoMapper; import com.tongran.system.service.IAllInterfaceNameService; import com.tongran.system.service.IRmEpsTopologyManagementService; import org.springframework.beans.factory.annotation.Autowired; @@ -35,6 +37,8 @@ public class AllInterfaceNameServiceImpl implements IAllInterfaceNameService private RemoteRocketMqService remoteRocketMqService; @Autowired private IRmEpsTopologyManagementService rmEpsTopologyManagementService; + @Autowired + private RmSwitchInterfaceInfoMapper rmSwitchInterfaceInfoMapper; /** * 查询所有接口名称 @@ -88,6 +92,17 @@ public class AllInterfaceNameServiceImpl implements IAllInterfaceNameService // 使用ID作为键,避免对象相等性问题 Map matchStatusMap = new HashMap<>(); for (AllInterfaceName interfaceName : nonSubInterfaces) { + if ("2".equals(allInterfaceName.getResourceType())) { + // 查询端口备注 + // 查询端口备注信息 + RmSwitchInterfaceInfo queryParam = new RmSwitchInterfaceInfo(); + queryParam.setClientId(allInterfaceName.getClientId()); + queryParam.setInterfaceName(allInterfaceName.getInterfaceName()); + List interfaceInfos = rmSwitchInterfaceInfoMapper.selectRmSwitchInterfaceInfoList(queryParam); + if(interfaceInfos != null && !interfaceInfos.isEmpty()){ + interfaceName.setInterfaceNameRemark(interfaceInfos.get(0).getInterfaceRemark()); + } + } boolean isMatched = isInterfaceMatched(interfaceName); matchStatusMap.put(interfaceName.getId(), isMatched); @@ -138,11 +153,16 @@ public class AllInterfaceNameServiceImpl implements IAllInterfaceNameService } List interfaceRemoteList = netWorkListR.getData(); - boolean isBusiness = interfaceRemoteList.stream() + boolean isBusiness = interfaceRemoteList.stream() .filter(info -> "1".equals(info.getBindIp()) || "3".equals(info.getBindIp())) .anyMatch(internet -> interfaceName.getServerIp() != null && internet.getMacAddress() != null && - interfaceName.getServerIp().equalsIgnoreCase(internet.getMacAddress()) + interfaceName.getServerIp().equalsIgnoreCase(internet.getMacAddress()) && + // 新增:比较网卡名称 + interfaceName.getInterfaceName() != null && internet.getInterfaceName() != null && + getBaseInterfaceName(interfaceName.getInterfaceName()).equalsIgnoreCase( + getBaseInterfaceName(internet.getInterfaceName()) + ) ); return isBusiness; @@ -171,6 +191,17 @@ public class AllInterfaceNameServiceImpl implements IAllInterfaceNameService return false; } + // 提取基础网卡名称 + private String getBaseInterfaceName(String fullName) { + if (fullName == null) return null; + + // 尝试按括号分割 + String[] parts = fullName.split("[(]"); + if (parts.length > 0) { + return parts[0].trim(); + } + return fullName; + } /** * 新增所有接口名称 * diff --git a/tongran-modules/tongran-system/src/main/java/com/tongran/system/service/impl/EpsInitialTrafficDataServiceImpl.java b/tongran-modules/tongran-system/src/main/java/com/tongran/system/service/impl/EpsInitialTrafficDataServiceImpl.java index 23db55a..aedaebb 100644 --- a/tongran-modules/tongran-system/src/main/java/com/tongran/system/service/impl/EpsInitialTrafficDataServiceImpl.java +++ b/tongran-modules/tongran-system/src/main/java/com/tongran/system/service/impl/EpsInitialTrafficDataServiceImpl.java @@ -231,6 +231,7 @@ public class EpsInitialTrafficDataServiceImpl implements EpsInitialTrafficDataSe EpsInitialTrafficData condition = new EpsInitialTrafficData(); condition.setTableName(tableName); condition.setClientId(queryParam.getClientId()); + condition.setMac(queryParam.getMac()); condition.setServiceSn(queryParam.getServiceSn()); condition.setStartTime(queryParam.getStartTime()); condition.setEndTime(queryParam.getEndTime()); @@ -775,8 +776,30 @@ public class EpsInitialTrafficDataServiceImpl implements EpsInitialTrafficDataSe calculateSegment95(queryParam, dailyStartTime, dailyEndTime, calculationMode); } }else{ - queryParam.setBusinessId(null); - calculateNormalDeviceBandwidth(queryParam, dailyStartTime, dailyEndTime, calculationMode); + // 获取所有不同的网卡 + Set names = records.stream() + .map(EpsMethodChangeRecord::getTrafficPort) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); + if(names != null && !names.isEmpty()){ + // 对每个网卡计算全天的95带宽 + for (String name : names) { + // 查询mac + AllInterfaceName allInterfaceName = new AllInterfaceName(); + allInterfaceName.setClientId(queryParam.getClientId()); + allInterfaceName.setInterfaceName(name); + allInterfaceName.setResourceType("1"); + List allInterfaceNameList = allInterfaceNameMapper.selectByNames(allInterfaceName); + if(allInterfaceNameList != null && !allInterfaceNameList.isEmpty()){ + AllInterfaceName interfaceName = allInterfaceNameList.get(0); + queryParam.setMac(interfaceName.getServerIp()); + calculateSegment95(queryParam, dailyStartTime, dailyEndTime, calculationMode); + } + } + }else{ + queryParam.setBusinessId(null); + calculateNormalDeviceBandwidth(queryParam, dailyStartTime, dailyEndTime, calculationMode); + } } }else{ queryParam.setBusinessId(null); diff --git a/tongran-modules/tongran-system/src/main/resources/mapper/system/AllInterfaceNameMapper.xml b/tongran-modules/tongran-system/src/main/resources/mapper/system/AllInterfaceNameMapper.xml index 62474be..cdf9b26 100644 --- a/tongran-modules/tongran-system/src/main/resources/mapper/system/AllInterfaceNameMapper.xml +++ b/tongran-modules/tongran-system/src/main/resources/mapper/system/AllInterfaceNameMapper.xml @@ -48,6 +48,7 @@ and server_ip = #{serverIp} and port_status = #{portStatus} + order by create_time desc diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/RmNetworkInterfaceChild.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/RmNetworkInterfaceChild.java index 7fc4971..a1e1fae 100644 --- a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/RmNetworkInterfaceChild.java +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/RmNetworkInterfaceChild.java @@ -71,4 +71,7 @@ public class RmNetworkInterfaceChild extends BaseEntity /** 是否为新的(0否 1是) */ @Excel(name = "是否为新的(0否 1是)") private Integer newFlag; + /** 是否连通外网(0否,1是) */ + @Excel(name = "是否连通外网(0否,1是)") + private String status; } diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/RmPppoeConfigSub.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/RmPppoeConfigSub.java index 4b35618..5999cdb 100644 --- a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/RmPppoeConfigSub.java +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/domain/RmPppoeConfigSub.java @@ -42,6 +42,8 @@ public class RmPppoeConfigSub extends BaseEntity private String ipv4Gateway; /** 状态(0未连通,1连通) */ private String status; + /** 虚拟网卡连通状态 */ + private String virStatus; /** 上报带宽 */ private BigDecimal bandwidthResult; /** MAC地址 */ 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 676b026..6c24c82 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 @@ -25,7 +25,6 @@ import org.springframework.data.redis.core.RedisOperations; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.SessionCallback; import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; @@ -1279,6 +1278,7 @@ public class MessageHandler { networkInterface.setProvince(networkInfo.getProvince()); networkInterface.setPublicIp(networkInfo.getPublicIp()); networkInterface.setInterfaceType(networkInfo.getType()); + networkInterface.setStatus(networkInfo.getStatus()); } /** diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/mapper/InitialSystemOtherCollectDataMapper.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/mapper/InitialSystemOtherCollectDataMapper.java index 11acb2c..c494808 100644 --- a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/mapper/InitialSystemOtherCollectDataMapper.java +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/mapper/InitialSystemOtherCollectDataMapper.java @@ -1,7 +1,6 @@ package com.tongran.rocketmq.mapper; import com.tongran.rocketmq.domain.InitialSystemOtherCollectData; -import org.apache.ibatis.annotations.Param; import java.util.List; import java.util.Map; @@ -77,8 +76,8 @@ public interface InitialSystemOtherCollectDataMapper int deleteInitialSystemOtherCollectData(InitialSystemOtherCollectData deleteData); /** * 获取总内存 - * @param clientId + * @param otherCollectData * @return */ - String getMemTotalSize(@Param("clientId") String clientId); + String getMemTotalSize(InitialSystemOtherCollectData otherCollectData); } diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/InitialBandwidthTrafficServiceImpl.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/InitialBandwidthTrafficServiceImpl.java index 9913e79..be4b918 100644 --- a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/InitialBandwidthTrafficServiceImpl.java +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/InitialBandwidthTrafficServiceImpl.java @@ -3,6 +3,7 @@ package com.tongran.rocketmq.service.impl; import com.tongran.common.core.utils.*; import com.tongran.rocketmq.domain.InitialBandwidthTraffic; import com.tongran.rocketmq.domain.InitialCpuInfo; +import com.tongran.rocketmq.domain.InitialSystemOtherCollectData; import com.tongran.rocketmq.domain.RmNetworkInterfaceChild; import com.tongran.rocketmq.mapper.InitialBandwidthTrafficMapper; import com.tongran.rocketmq.mapper.InitialCpuInfoMapper; @@ -610,7 +611,10 @@ public class InitialBandwidthTrafficServiceImpl implements IInitialBandwidthTraf sppedMsg = new InitialBandwidthTraffic(); } resultMap.put("speed", sppedMsg.getSpeed()); - String memTotalSize = initialSystemOtherCollectDataMapper.getMemTotalSize(initialBandwidthTraffic.getClientId()); + InitialSystemOtherCollectData memQuery = new InitialSystemOtherCollectData(); + memQuery.setClientId(initialBandwidthTraffic.getClientId()); + memQuery.setTableName(TableSubUtil.getTableName(DateUtils.getNowDate(), "initial_system_other_collect_data")); + String memTotalSize = initialSystemOtherCollectDataMapper.getMemTotalSize(memQuery); resultMap.put("memTotalSize", memTotalSize); // 获取cpu数量 InitialCpuInfo cpuInfo = initialCpuInfoMapper.getCpuInfoByClientId(initialBandwidthTraffic.getClientId()); diff --git a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/RmPppoeConfigMainServiceImpl.java b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/RmPppoeConfigMainServiceImpl.java index c7da02f..58eb71f 100644 --- a/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/RmPppoeConfigMainServiceImpl.java +++ b/tongran-rocketmq/src/main/java/com/tongran/rocketmq/service/impl/RmPppoeConfigMainServiceImpl.java @@ -48,6 +48,13 @@ public class RmPppoeConfigMainServiceImpl implements IRmPppoeConfigMainService RmPppoeConfigSub rmPppoeConfigSub = new RmPppoeConfigSub(); rmPppoeConfigSub.setClientId(rmPppoeConfigMain.getClientId()); List subList = rmPppoeConfigSubMapper.selectRmPppoeConfigSubList(rmPppoeConfigSub); + if(subList != null && !subList.isEmpty()){ + for (RmPppoeConfigSub pppoeConfigSub : subList) { + if(pppoeConfigSub.getStatus() == null){ + pppoeConfigSub.setStatus(pppoeConfigSub.getVirStatus()); + } + } + } pppoeConfigMain.setSubList(subList); return pppoeConfigMain; } diff --git a/tongran-rocketmq/src/main/resources/mapper/rocketmq/InitialSystemOtherCollectDataMapper.xml b/tongran-rocketmq/src/main/resources/mapper/rocketmq/InitialSystemOtherCollectDataMapper.xml index ab36994..b95f0e1 100644 --- a/tongran-rocketmq/src/main/resources/mapper/rocketmq/InitialSystemOtherCollectDataMapper.xml +++ b/tongran-rocketmq/src/main/resources/mapper/rocketmq/InitialSystemOtherCollectDataMapper.xml @@ -126,12 +126,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" @@ -47,6 +48,7 @@ and gateway = #{gateway} and bind_ip = #{bindIp} and new_flag = #{newFlag} + and status = #{status} @@ -76,6 +78,7 @@ update_by, bind_ip, new_flag, + status, #{clientId}, @@ -96,6 +99,7 @@ #{updateBy}, #{bindIp}, #{newFlag}, + #{status}, @@ -120,6 +124,7 @@ update_by = #{updateBy}, bind_ip = #{bindIp}, new_flag = #{newFlag}, + status = #{status}, diff --git a/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmPppoeConfigSubMapper.xml b/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmPppoeConfigSubMapper.xml index e2e00a0..b3aa8a4 100644 --- a/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmPppoeConfigSubMapper.xml +++ b/tongran-rocketmq/src/main/resources/mapper/rocketmq/RmPppoeConfigSubMapper.xml @@ -12,33 +12,34 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + - - select id, client_id, serial_number, vlan_id, ipv4_address, ipv4_mask_bits, ipv4_gateway, create_time, update_time, create_by, update_by, status from rm_pppoe_config_sub + select id, client_id, serial_number, vlan_id, ipv4_address, ipv4_mask_bits, ipv4_gateway, bandwidth_result, create_time, update_time, create_by, update_by, status from rm_pppoe_config_sub - SELECT a.id, - a.client_id, - a.serial_number, - a.vlan_id, - a.ipv4_address, - a.ipv4_mask_bits, - a.ipv4_gateway, - a.create_time, - a.update_time, - a.create_by, - a.update_by, - a.status, - b.mac_address + a.client_id clientId, + a.serial_number serialNumber, + a.vlan_id vlanId, + a.ipv4_address ipv4Address, + a.ipv4_mask_bits ipv4MaskBits, + a.ipv4_gateway ipv4Gateway, + a.create_time createTime, + a.update_time updateTime, + a.create_by createBy, + a.update_by updateBy, + a.status status, + b.mac_address macAddress, + b.status virStatus FROM rm_pppoe_config_sub a LEFT JOIN @@ -70,6 +71,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ipv4_address, ipv4_mask_bits, ipv4_gateway, + bandwidth_result, create_time, update_time, create_by, @@ -83,6 +85,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{ipv4Address}, #{ipv4MaskBits}, #{ipv4Gateway}, + #{bandwidthResult}, #{createTime}, #{updateTime}, #{createBy}, @@ -100,6 +103,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ipv4_address = #{ipv4Address}, ipv4_mask_bits = #{ipv4MaskBits}, ipv4_gateway = #{ipv4Gateway}, + bandwidth_result = #{bandwidthResult}, create_time = #{createTime}, update_time = #{updateTime}, create_by = #{createBy}, @@ -121,7 +125,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" insert into rm_pppoe_config_sub - (client_id, serial_number, vlan_id, ipv4_address, ipv4_mask_bits, ipv4_gateway, create_time, update_time, create_by, update_by) + (client_id, serial_number, vlan_id, ipv4_address, ipv4_mask_bits, ipv4_gateway, + bandwidth_result, create_time, update_time, create_by, update_by) values ( @@ -131,6 +136,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{item.ipv4Address}, #{item.ipv4MaskBits}, #{item.ipv4Gateway}, + #{item.bandwidthResult}, #{item.createTime}, #{item.updateTime}, #{item.createBy},