agent更新按最后一次更新时间排序、服务器管理多条件分页查询优化、服务器底层流量科学计数法优化

This commit is contained in:
gaoyutao
2025-11-10 12:00:50 +08:00
parent 4d1503e988
commit 4137028deb
9 changed files with 139 additions and 21 deletions
@@ -4,7 +4,6 @@ import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.PageDomain;
import com.ruoyi.common.core.web.page.TableDataInfo;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
@@ -41,12 +40,11 @@ public class RmResourceRegistrationController extends BaseController
@PostMapping("/list")
public TableDataInfo list(@RequestBody RmResourceRegistration rmResourceRegistration)
{
PageDomain pageDomain = new PageDomain();
pageDomain.setPageNum(rmResourceRegistration.getPageNum());
pageDomain.setPageSize(rmResourceRegistration.getPageSize());
startPage(pageDomain);
List<RmResourceRegistration> list = rmResourceRegistrationService.selectRmResourceRegistrationList(rmResourceRegistration);
return getDataTable(list);
Map<String, Object> resultMap = rmResourceRegistrationService.getRegistrationTableInfoList(rmResourceRegistration);
if(rmResourceRegistration.getQueryParam() != null){
return getDataTable((List<RmResourceRegistration>) resultMap.get("list"), (int) resultMap.get("total"));
}
return getDataTable((List<RmResourceRegistration>) resultMap.get("list"));
}
/**
@@ -99,4 +99,11 @@ public interface RmResourceRegistrationMapper
* @return
*/
List<Map> getAllLogicalNodeId();
/**
* 关联查询machinecode
* @param rmResourceRegistration
* @return
*/
List<RmResourceRegistration> getRegistrationTableInfoList(RmResourceRegistration rmResourceRegistration);
}
@@ -31,6 +31,8 @@ public interface IRmResourceRegistrationService
* @param rmResourceRegistration 资源注册
* @return 资源注册集合
*/
public Map<String, Object> getRegistrationTableInfoList(RmResourceRegistration rmResourceRegistration);
public List<RmResourceRegistration> selectRmResourceRegistrationList(RmResourceRegistration rmResourceRegistration);
/**
@@ -183,11 +183,6 @@ public class EpsInitialTrafficDataServiceImpl implements EpsInitialTrafficDataSe
*/
@Override
public List<EpsInitialTrafficData> query(EpsInitialTrafficData queryParam) {
// 参数校验
// if (StringUtils.isBlank(queryParam.getDeviceSn())) {
// throw new IllegalArgumentException("设备序列号不能为空");
// }
// 获取涉及的表名
Set<String> tableNames = TableRouterUtil.getTableNamesBetween(queryParam.getStartTime(), queryParam.getEndTime());
@@ -7,6 +7,7 @@ import com.ruoyi.common.core.enums.MsgEnum;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.PageDomain;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.api.RemoteRocketMqService;
import com.ruoyi.system.api.domain.*;
@@ -25,6 +26,8 @@ import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
import static com.ruoyi.common.core.utils.PageUtils.startPage;
/**
* 资源注册Service业务层处理
*
@@ -63,10 +66,68 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio
if(rmResourceRegistration.getClientId()!= null){
// set网卡信息
setNetWorkMsg(rmResourceRegistration);
// set金山machineCode
setMachineMsg(rmResourceRegistration);
}
return rmResourceRegistration;
}
/**
* 查询资源注册列表
*
* @param rmResourceRegistration 资源注册
* @return 资源注册
*/
@Override
public Map<String, Object> getRegistrationTableInfoList(RmResourceRegistration rmResourceRegistration)
{
Map<String, Object> resultMap = new HashMap();
if(rmResourceRegistration.getQueryParam() == null){
PageDomain pageDomain = new PageDomain();
pageDomain.setPageNum(rmResourceRegistration.getPageNum());
pageDomain.setPageSize(rmResourceRegistration.getPageSize());
startPage(pageDomain);
}
List<RmResourceRegistration> rmResourceRegistrationList = rmResourceRegistrationMapper.getRegistrationTableInfoList(rmResourceRegistration);
for (RmResourceRegistration resourceRegistration : rmResourceRegistrationList) {
if(resourceRegistration.getClientId() != null){
// 网卡信息
setNetWorkMsg(resourceRegistration);
}
}
if(rmResourceRegistration.getQueryParam() != null){
String queryValue = rmResourceRegistration.getQueryParam().trim();
// 筛选公网IP私网IP设备SN相等的数据
// 从rmResourceRegistrationList列表中筛选符合条件的数据
List<RmResourceRegistration> filteredList = rmResourceRegistrationList.stream()
.filter(item -> item != null)
.filter(item ->
// 检查公网IP (IP1-3和管理网)
queryValue.equals(item.getIp1PublicIp()) ||
queryValue.equals(item.getIp2PublicIp()) ||
queryValue.equals(item.getIp3PublicIp()) ||
queryValue.equals(item.getMgmtPublicIp()) ||
// 检查私网IP (IP1-3和管理网)
queryValue.equals(item.getIp1Ipv4Address()) ||
queryValue.equals(item.getIp2Ipv4Address()) ||
queryValue.equals(item.getIp3Ipv4Address()) ||
queryValue.equals(item.getMgmtIpv4Address()) ||
// 检查设备SN
queryValue.equals(item.getHardwareSn()) ||
queryValue.equals(item.getClientId())
)
.collect(Collectors.toList());
List<RmResourceRegistration> pageInfo = applyPagination(filteredList, rmResourceRegistration.getPageNum(), rmResourceRegistration.getPageSize());
resultMap.put("list", pageInfo);
resultMap.put("total", filteredList.size());
return resultMap;
}else{
resultMap.put("list", rmResourceRegistrationList);
}
return resultMap;
}
/**
* 查询资源注册列表
*
@@ -76,7 +137,7 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio
@Override
public List<RmResourceRegistration> selectRmResourceRegistrationList(RmResourceRegistration rmResourceRegistration)
{
List<RmResourceRegistration> rmResourceRegistrationList = rmResourceRegistrationMapper.selectRmResourceRegistrationList(rmResourceRegistration);
List<RmResourceRegistration> rmResourceRegistrationList = rmResourceRegistrationMapper.getRegistrationTableInfoList(rmResourceRegistration);
for (RmResourceRegistration resourceRegistration : rmResourceRegistrationList) {
if(resourceRegistration.getClientId() != null){
// 网卡信息
@@ -111,6 +172,22 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio
}
return rmResourceRegistrationList;
}
/**
* 内存分页
*/
private List<RmResourceRegistration> applyPagination(List<RmResourceRegistration> list, int pageNum, int pageSize) {
if (list == null || list.isEmpty()) {
return new ArrayList<>();
}
int fromIndex = (pageNum - 1) * pageSize;
if (fromIndex >= list.size()) {
return new ArrayList<>();
}
int toIndex = Math.min(fromIndex + pageSize, list.size());
return list.subList(fromIndex, toIndex);
}
/**
* 网卡信息赋值
@@ -198,15 +275,21 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio
registration.setMgmtGateway(network.getGateway());
}
}
}
/**
* 设置金山machineCode
* @param registration
*/
public void setMachineMsg(RmResourceRegistration registration){
// 设置金山machineCode
RmRegistrationMachine rmRegistrationMachine = new RmRegistrationMachine();
rmRegistrationMachine.setClientId(clientId);
rmRegistrationMachine.setClientId(registration.getClientId());
List<RmRegistrationMachine> machineList = rmRegistrationMachineMapper.selectRmRegistrationMachineList(rmRegistrationMachine);
if(!machineList.isEmpty()){
RmRegistrationMachine machineMsg = machineList.get(0);
registration.setMachineCode(machineMsg.getMachineCode());
}
}
/**
* 新增资源注册
@@ -189,10 +189,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
`ipV4` AS ipV4,
`in_dropped` AS inDropped,
`out_dropped` AS outDropped,
sum(ifnull(`in_speed`,0)) AS inSpeed,
sum(ifnull(`out_speed`,0)) AS outSpeed,
sum(ifnull(`total_in_speed`,0)) AS totalInSpeed,
sum(ifnull(`total_out_speed`,0)) AS totalOutSpeed,
CAST(sum(ifnull(`in_speed`,0)) AS DECIMAL(20,0)) AS inSpeed,
CAST(sum(ifnull(`out_speed`,0)) AS DECIMAL(20,0)) AS outSpeed,
CAST(sum(ifnull(`total_in_speed`,0)) AS DECIMAL(20,0)) AS totalInSpeed,
CAST(sum(ifnull(`total_out_speed`,0)) AS DECIMAL(20,0)) AS totalOutSpeed,
`machine_flow` AS machineFlow,
`speed` AS speed,
`duplex` AS duplex,
@@ -383,4 +383,36 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select logical_node_id logicalNodeId from rm_resource_registration where logical_node_id != ''
group by logical_node_id
</select>
<select id="getRegistrationTableInfoList" parameterType="RmResourceRegistration" resultType="RmResourceRegistration">
select
a.id,
a.hardware_sn as hardwareSn,
a.agent_version as agentVersion,
a.registration_status as registrationStatus,
a.online_status as onlineStatus,
a.create_time as createTime,
a.update_time as updateTime,
a.client_id as clientId,
a.business_name as businessName,
a.logical_node_id as logicalNodeId,
a.multi_public_ip_status as multiPublicIpStatus,
a.heartbeat_count as heartbeatCount,
a.heartbeat_interval as heartbeatInterval,
a.onboard_time as onboardTime,
b.machine_code as machineCode
from rm_resource_registration a
left join rm_registration_machine b on a.client_id = b.client_id
<where>
<if test="hardwareSn != null and hardwareSn != ''"> and a.hardware_sn = #{hardwareSn}</if>
<if test="resourceType != null and resourceType != ''"> and a.resource_type = #{resourceType}</if>
<if test="agentVersion != null and agentVersion != ''"> and a.agent_version = #{agentVersion}</if>
<if test="registrationStatus != null and registrationStatus != ''"> and a.registration_status = #{registrationStatus}</if>
<if test="onlineStatus != null and onlineStatus != ''"> and a.online_status = #{onlineStatus}</if>
<if test="clientId != null and clientId != ''"> and a.client_id = #{clientId}</if>
<if test="businessName != null and businessName != ''"> and a.business_name like concat('%', #{businessName}, '%')</if>
<if test="logicalNodeId != null and logicalNodeId != ''"> and a.logical_node_id = #{logicalNodeId}</if>
<if test="multiPublicIpStatus != null and multiPublicIpStatus != ''"> and a.multi_public_ip_status = #{multiPublicIpStatus}</if>
</where>
order by a.create_time desc
</select>
</mapper>