解决相关数据分页不生效问题,修改交换机计算95值逻辑,使其精确到接口
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package com.ruoyi.system.controller;
|
||||
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.ruoyi.common.core.exception.ServiceException;
|
||||
import com.ruoyi.common.core.utils.DateUtils;
|
||||
import com.ruoyi.common.core.utils.poi.ExcelUtil;
|
||||
@@ -156,13 +157,13 @@ public class EpsNodeBandwidthController extends BaseController
|
||||
* 相关数据
|
||||
*/
|
||||
@RequiresPermissions("system:bandwidth:query")
|
||||
@GetMapping(value = "relatedData/{id}")
|
||||
@GetMapping(value = "relatedData/traffic")
|
||||
/**
|
||||
* 根据ID获取相关数据
|
||||
* @param id 资源ID
|
||||
* @return 表格数据信息
|
||||
*/
|
||||
public TableDataInfo relatedData(@PathVariable("id") Long id) {
|
||||
public TableDataInfo relatedData(Long id,Integer pageNum,Integer pageSize) {
|
||||
// 1. 参数校验
|
||||
if (id == null || id <= 0) {
|
||||
throw new IllegalArgumentException("无效的资源ID");
|
||||
@@ -170,6 +171,8 @@ public class EpsNodeBandwidthController extends BaseController
|
||||
try {
|
||||
// 2. 查询服务器信息
|
||||
EpsNodeBandwidth epsNodeBandwidth = epsNodeBandwidthService.selectEpsNodeBandwidthById(id);
|
||||
epsNodeBandwidth.setPageNum(pageNum);
|
||||
epsNodeBandwidth.setPageSize(pageSize);
|
||||
if (epsNodeBandwidth == null) {
|
||||
log.warn("未找到ID为{}的服务器信息", id);
|
||||
throw new NotFoundException("未找到ID为" + id + "的服务器信息");
|
||||
@@ -181,11 +184,6 @@ public class EpsNodeBandwidthController extends BaseController
|
||||
String dailyStartTime = timeRange.getStart();
|
||||
String dailyEndTime = timeRange.getEnd();
|
||||
|
||||
// 4. 设置分页参数
|
||||
PageDomain pageDomain = new PageDomain();
|
||||
pageDomain.setPageNum(epsNodeBandwidth.getPageNum());
|
||||
pageDomain.setPageSize(epsNodeBandwidth.getPageSize());
|
||||
startPage(pageDomain);
|
||||
|
||||
// 5. 根据资源类型处理不同数据
|
||||
String resourceType = epsNodeBandwidth.getResourceType();
|
||||
@@ -193,15 +191,19 @@ public class EpsNodeBandwidthController extends BaseController
|
||||
|
||||
if ("4".equals(bandwidthType) || "7".equals(bandwidthType)) {
|
||||
// 处理特定带宽类型数据
|
||||
List<EpsNodeBandwidth> nodeBandwidthList = epsNodeBandwidthService.getAvgDetailMsg(id);
|
||||
return getDataTable(nodeBandwidthList);
|
||||
PageInfo<EpsNodeBandwidth> pageInfo = epsNodeBandwidthService.getAvgDetailMsg(id,pageNum,pageSize, dailyStartTime, dailyEndTime);
|
||||
return getDataTable(pageInfo.getList(),pageInfo.getTotal());
|
||||
}
|
||||
if ("1".equals(resourceType)) {
|
||||
// 处理服务器流量数据
|
||||
List<EpsInitialTrafficData> trafficList = epsNodeBandwidthService.relatedData(
|
||||
epsNodeBandwidth, dailyStartTime, dailyEndTime);
|
||||
return getDataTable(trafficList);
|
||||
PageInfo<EpsInitialTrafficData> pageInfo = epsNodeBandwidthService.relatedData(epsNodeBandwidth, dailyStartTime, dailyEndTime);;
|
||||
return getDataTable(pageInfo.getList(), pageInfo.getTotal());
|
||||
} else{
|
||||
// 4. 设置分页参数
|
||||
PageDomain pageDomain = new PageDomain();
|
||||
pageDomain.setPageNum(epsNodeBandwidth.getPageNum());
|
||||
pageDomain.setPageSize(epsNodeBandwidth.getPageSize());
|
||||
startPage(pageDomain);
|
||||
// 处理交换机信息
|
||||
List<InitialSwitchInfoDetails> switchInfoDetails = initialSwitchInfoDetailsService.getRelevantSwitch(
|
||||
epsNodeBandwidth, dailyStartTime, dailyEndTime);
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
package com.ruoyi.system.domain;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.ruoyi.common.core.annotation.Excel;
|
||||
import com.ruoyi.common.core.web.domain.BaseEntity;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -15,7 +13,7 @@ import java.util.List;
|
||||
* 支持按时间自动分表存储(每月分成3个表)
|
||||
*/
|
||||
@Data
|
||||
public class EpsInitialTrafficData {
|
||||
public class EpsInitialTrafficData extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@@ -106,31 +104,6 @@ public class EpsInitialTrafficData {
|
||||
/** 流量统计结束时间 */
|
||||
private String endTime;
|
||||
|
||||
|
||||
/** 数据创建时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/** 创建者 */
|
||||
private String createBy;
|
||||
|
||||
/** 更新者 */
|
||||
private String updateBy;
|
||||
|
||||
/** 更新时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updateTime;
|
||||
|
||||
|
||||
/** 当前记录起始索引 */
|
||||
private Integer pageNum;
|
||||
|
||||
/** 每页显示记录数 */
|
||||
private Integer pageSize;
|
||||
/**
|
||||
* 选中的属性名称
|
||||
*/
|
||||
private String[] properties;
|
||||
/** 资源类型 */
|
||||
private String resourceType;
|
||||
/** 带宽类型 */
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.ruoyi.system.service;
|
||||
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.ruoyi.system.domain.EpsInitialTrafficData;
|
||||
import com.ruoyi.system.domain.EpsNodeBandwidth;
|
||||
|
||||
@@ -28,7 +29,7 @@ public interface IEpsNodeBandwidthService
|
||||
* @param epsNodeBandwidth
|
||||
* @return
|
||||
*/
|
||||
public List<EpsInitialTrafficData> relatedData(EpsNodeBandwidth epsNodeBandwidth, String dailyStartTime, String dailyEndTime);
|
||||
public PageInfo<EpsInitialTrafficData> relatedData(EpsNodeBandwidth epsNodeBandwidth, String dailyStartTime, String dailyEndTime);
|
||||
|
||||
/**
|
||||
* 查询节点带宽信息列表
|
||||
@@ -78,7 +79,7 @@ public interface IEpsNodeBandwidthService
|
||||
*/
|
||||
public int calculateAvg(EpsNodeBandwidth epsNodeBandwidth);
|
||||
|
||||
List<EpsNodeBandwidth> getAvgDetailMsg(Long id);
|
||||
PageInfo<EpsNodeBandwidth> getAvgDetailMsg(Long id, Integer pageNum, Integer pageSize, String dailyStartTime, String dailyEndTime);
|
||||
|
||||
/**
|
||||
* 图形分析
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.ruoyi.system.domain.*;
|
||||
import com.ruoyi.system.mapper.*;
|
||||
import com.ruoyi.system.service.EpsInitialTrafficDataService;
|
||||
import com.ruoyi.system.util.CalculateUtil;
|
||||
import com.ruoyi.system.util.DateUtil;
|
||||
import com.ruoyi.system.util.TableRouterUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
@@ -15,7 +16,6 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -91,9 +91,9 @@ public class EpsInitialTrafficDataServiceImpl implements EpsInitialTrafficDataSe
|
||||
@Transactional
|
||||
public void save(EpsInitialTrafficData data) {
|
||||
if (data.getCreateTime() == null) {
|
||||
data.setCreateTime(LocalDateTime.now());
|
||||
data.setCreateTime(DateUtils.getNowDate());
|
||||
}
|
||||
data.setTableName(TableRouterUtil.getTableName(data.getCreateTime()));
|
||||
data.setTableName(TableRouterUtil.getTableName(DateUtil.dateToLocalDateTime(data.getCreateTime())));
|
||||
epsInitialTrafficDataMapper.insert(data);
|
||||
}
|
||||
|
||||
@@ -118,9 +118,9 @@ public class EpsInitialTrafficDataServiceImpl implements EpsInitialTrafficDataSe
|
||||
EpsInitialTrafficData processed = new EpsInitialTrafficData();
|
||||
BeanUtils.copyProperties(data,processed);
|
||||
if (data.getCreateTime() == null) {
|
||||
data.setCreateTime(LocalDateTime.now());
|
||||
data.setCreateTime(DateUtils.getNowDate());
|
||||
}
|
||||
processed.setTableName(TableRouterUtil.getTableName(data.getCreateTime()));
|
||||
processed.setTableName(TableRouterUtil.getTableName(DateUtil.dateToLocalDateTime(data.getCreateTime())));
|
||||
return processed;
|
||||
} catch (Exception e){
|
||||
log.error("数据处理失败",e.getMessage());
|
||||
@@ -171,9 +171,6 @@ public class EpsInitialTrafficDataServiceImpl implements EpsInitialTrafficDataSe
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
/**
|
||||
* 查询初始流量信息
|
||||
*/
|
||||
@Override
|
||||
public List<EpsInitialTrafficData> getAllTraficMsg(EpsInitialTrafficData queryParam) {
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.ruoyi.system.service.impl;
|
||||
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.ruoyi.common.core.utils.DateUtils;
|
||||
import com.ruoyi.common.core.web.page.PageDomain;
|
||||
import com.ruoyi.system.domain.EpsInitialTrafficData;
|
||||
import com.ruoyi.system.domain.EpsNodeBandwidth;
|
||||
import com.ruoyi.system.domain.EpsServerRevenueConfig;
|
||||
@@ -23,6 +25,8 @@ import java.time.temporal.ChronoUnit;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.ruoyi.common.core.utils.PageUtils.startPage;
|
||||
|
||||
/**
|
||||
* 节点带宽信息Service业务层处理
|
||||
*
|
||||
@@ -59,15 +63,28 @@ public class EpsNodeBandwidthServiceImpl implements IEpsNodeBandwidthService
|
||||
* @return 节点带宽信息
|
||||
*/
|
||||
@Override
|
||||
public List<EpsInitialTrafficData> relatedData(EpsNodeBandwidth epsNodeBandwidth,String dailyStartTime, String dailyEndTime) {
|
||||
public PageInfo<EpsInitialTrafficData> relatedData(EpsNodeBandwidth epsNodeBandwidth, String dailyStartTime, String dailyEndTime) {
|
||||
// 设置查询条件
|
||||
EpsInitialTrafficData queryParams = new EpsInitialTrafficData();
|
||||
queryParams.setServiceSn(epsNodeBandwidth.getHardwareSn());
|
||||
queryParams.setBusinessId(epsNodeBandwidth.getBusinessId());
|
||||
queryParams.setStartTime(dailyStartTime);
|
||||
queryParams.setEndTime(dailyEndTime);
|
||||
// 查询并返回数据
|
||||
return epsInitialTrafficDataService.query(queryParams);
|
||||
// 获取总数
|
||||
List<EpsInitialTrafficData> totalList = epsInitialTrafficDataService.query(queryParams);
|
||||
// 4. 设置分页参数
|
||||
PageDomain pageDomain = new PageDomain();
|
||||
pageDomain.setPageNum(epsNodeBandwidth.getPageNum());
|
||||
pageDomain.setPageSize(epsNodeBandwidth.getPageSize());
|
||||
startPage(pageDomain);
|
||||
List<EpsInitialTrafficData> resultList = epsInitialTrafficDataService.query(queryParams);
|
||||
PageInfo<EpsInitialTrafficData> pageInfo = new PageInfo<>();
|
||||
pageInfo.setList(resultList);
|
||||
pageInfo.setTotal(totalList.size());
|
||||
pageInfo.setPageNum(pageDomain.getPageNum());
|
||||
pageInfo.setPageSize(pageDomain.getPageSize());
|
||||
pageInfo.setPages((int) Math.ceil((double) totalList.size() / pageDomain.getPageSize()));
|
||||
return pageInfo;
|
||||
}
|
||||
/**
|
||||
* 查询节点带宽信息列表
|
||||
@@ -244,13 +261,28 @@ public class EpsNodeBandwidthServiceImpl implements IEpsNodeBandwidthService
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<EpsNodeBandwidth> getAvgDetailMsg(Long id) {
|
||||
public PageInfo<EpsNodeBandwidth> getAvgDetailMsg(Long id, Integer pageNum, Integer pageSize, String dailyStartTime, String dailyEndTime) {
|
||||
// 1. 根据ID查询服务器信息
|
||||
EpsNodeBandwidth epsNodeBandwidth = epsNodeBandwidthMapper.selectEpsNodeBandwidthById(id);
|
||||
if (epsNodeBandwidth == null) {
|
||||
throw new NotFoundException("未找到ID为" + id + "的服务器信息");
|
||||
}
|
||||
return epsNodeBandwidthMapper.getAvgDetailMsg(epsNodeBandwidth);
|
||||
epsNodeBandwidth.setStartTime(dailyStartTime);
|
||||
epsNodeBandwidth.setEndTime(dailyEndTime);
|
||||
List<EpsNodeBandwidth> totalList = epsNodeBandwidthMapper.getAvgDetailMsg(epsNodeBandwidth);
|
||||
// 4. 设置分页参数
|
||||
PageDomain pageDomain = new PageDomain();
|
||||
pageDomain.setPageNum(pageNum);
|
||||
pageDomain.setPageSize(pageSize);
|
||||
startPage(pageDomain);
|
||||
List<EpsNodeBandwidth> nodeBandwidthList = epsNodeBandwidthMapper.getAvgDetailMsg(epsNodeBandwidth);
|
||||
PageInfo<EpsNodeBandwidth> pageInfo = new PageInfo<>();
|
||||
pageInfo.setList(nodeBandwidthList);
|
||||
pageInfo.setTotal(totalList.size());
|
||||
pageInfo.setPageNum(pageDomain.getPageNum());
|
||||
pageInfo.setPageSize(pageDomain.getPageSize());
|
||||
pageInfo.setPages((int) Math.ceil((double) totalList.size() / pageDomain.getPageSize()));
|
||||
return pageInfo;
|
||||
}
|
||||
@Override
|
||||
public Map graphicalAnalysis(EpsNodeBandwidth epsNodeBandwidth, String bandwidthType, ChronoUnit timeUnit){
|
||||
|
||||
@@ -372,25 +372,29 @@ public class InitialSwitchInfoDetailsServiceImpl implements IInitialSwitchInfoDe
|
||||
// 根据交换机sn查询连接的服务器sn
|
||||
RmEpsTopologyManagement management = new RmEpsTopologyManagement();
|
||||
management.setSwitchSn(queryParam.getSwitchSn());
|
||||
management.setSwitchIpAddress(queryParam.getSwitchIp());
|
||||
List<RmEpsTopologyManagement> serverSnList = rmEpsTopologyManagementMapper.selectRmEpsTopologyManagementList(management);
|
||||
if(!serverSnList.isEmpty()){
|
||||
if("1".equals(serverSnList.get(0).getConnectedDeviceType())){
|
||||
queryParam.setServerSn(serverSnList.get(0).getServerSn());
|
||||
// 检查交换机连接的服务器是否有业务变更(如果有相关配置)
|
||||
EpsServerRevenueConfig revenueConfig = new EpsServerRevenueConfig();
|
||||
revenueConfig.setHardwareSn(serverSnList.get(0).getServerSn());
|
||||
List<EpsServerRevenueConfig> changedList = epsServerRevenueConfigMapper
|
||||
.selectEpsServerRevenueConfigList(revenueConfig);
|
||||
// 根据业务变更情况选择计算方式
|
||||
if (hasTrafficMethodChanged(changedList)) {
|
||||
calculateChangedSwitchBandwidth(queryParam, dailyStartTime, dailyEndTime);
|
||||
} else {
|
||||
for (RmEpsTopologyManagement rmEpsTopologyManagement : serverSnList) {
|
||||
queryParam.setName(rmEpsTopologyManagement.getInterfaceName());
|
||||
if("1".equals(rmEpsTopologyManagement.getConnectedDeviceType())){
|
||||
queryParam.setServerSn(rmEpsTopologyManagement.getServerSn());
|
||||
// 检查交换机连接的服务器是否有业务变更(如果有相关配置)
|
||||
EpsServerRevenueConfig revenueConfig = new EpsServerRevenueConfig();
|
||||
revenueConfig.setHardwareSn(rmEpsTopologyManagement.getServerSn());
|
||||
List<EpsServerRevenueConfig> changedList = epsServerRevenueConfigMapper
|
||||
.selectEpsServerRevenueConfigList(revenueConfig);
|
||||
// 根据业务变更情况选择计算方式
|
||||
if (hasTrafficMethodChanged(changedList)) {
|
||||
calculateChangedSwitchBandwidth(queryParam, dailyStartTime, dailyEndTime);
|
||||
} else {
|
||||
calculateNormalSwitchBandwidth(queryParam, dailyStartTime, dailyEndTime);
|
||||
}
|
||||
}
|
||||
if("2".equals(rmEpsTopologyManagement.getConnectedDeviceType())){
|
||||
calculateNormalSwitchBandwidth(queryParam, dailyStartTime, dailyEndTime);
|
||||
}
|
||||
}
|
||||
if("2".equals(serverSnList.get(0).getConnectedDeviceType())){
|
||||
calculateNormalSwitchBandwidth(queryParam, dailyStartTime, dailyEndTime);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -192,6 +192,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="serviceSn != '' and serviceSn != null">
|
||||
and service_sn = #{serviceSn}
|
||||
</if>
|
||||
<if test="businessId != '' and businessId != null">
|
||||
and business_id = #{businessId}
|
||||
</if>
|
||||
<if test="startTime != null">
|
||||
and create_time >= #{startTime}
|
||||
</if>
|
||||
|
||||
@@ -37,7 +37,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<include refid="selectInitialSwitchInfoDetailsVo"/>
|
||||
<where>
|
||||
<if test="clientId != null and clientId != ''"> and client_id = #{clientId}</if>
|
||||
<if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if>
|
||||
<if test="name != null and name != ''"> and name = #{name}</if>
|
||||
<if test="inBytes != null "> and in_bytes = #{inBytes}</if>
|
||||
<if test="outBytes != null "> and out_bytes = #{outBytes}</if>
|
||||
<if test="status != null and status != ''"> and status = #{status}</if>
|
||||
@@ -53,7 +53,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="switchSn != null and switchSn != ''"> and switch_sn = #{switchSn}</if>
|
||||
<if test="businessCode != null and businessCode != ''"> and business_code = #{businessCode}</if>
|
||||
<if test="businessName != null and businessName != ''"> and business_name like concat('%', #{businessName}, '%')</if>
|
||||
<if test="startTime != null">
|
||||
and create_time >= #{startTime}
|
||||
</if>
|
||||
<if test="endTime != null">
|
||||
and create_time <= #{endTime}
|
||||
</if>
|
||||
</where>
|
||||
order by create_time desc
|
||||
</select>
|
||||
|
||||
<select id="selectInitialSwitchInfoDetailsById" parameterType="Long" resultMap="InitialSwitchInfoDetailsResult">
|
||||
|
||||
Reference in New Issue
Block a user