diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/controller/BaseController.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/controller/BaseController.java index f8afe4c..fce3b39 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/controller/BaseController.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/controller/BaseController.java @@ -96,6 +96,15 @@ public class BaseController rspData.setTotal(new PageInfo(list).getTotal()); return rspData; } + protected TableDataInfo getDataTable(List list, long total) + { + TableDataInfo rspData = new TableDataInfo(); + rspData.setCode(HttpStatus.SUCCESS); + rspData.setRows(list); + rspData.setMsg("查询成功"); + rspData.setTotal(total); + return rspData; + } /** * 返回成功 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/EpsNodeBandwidthController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/EpsNodeBandwidthController.java index a5925d9..a7d6af1 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/EpsNodeBandwidthController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/EpsNodeBandwidthController.java @@ -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 nodeBandwidthList = epsNodeBandwidthService.getAvgDetailMsg(id); - return getDataTable(nodeBandwidthList); + PageInfo pageInfo = epsNodeBandwidthService.getAvgDetailMsg(id,pageNum,pageSize, dailyStartTime, dailyEndTime); + return getDataTable(pageInfo.getList(),pageInfo.getTotal()); } if ("1".equals(resourceType)) { // 处理服务器流量数据 - List trafficList = epsNodeBandwidthService.relatedData( - epsNodeBandwidth, dailyStartTime, dailyEndTime); - return getDataTable(trafficList); + PageInfo 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 switchInfoDetails = initialSwitchInfoDetailsService.getRelevantSwitch( epsNodeBandwidth, dailyStartTime, dailyEndTime); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/EpsInitialTrafficData.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/EpsInitialTrafficData.java index b2d3beb..4301491 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/EpsInitialTrafficData.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/EpsInitialTrafficData.java @@ -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; /** 带宽类型 */ diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IEpsNodeBandwidthService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IEpsNodeBandwidthService.java index 581d05c..94aef8b 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IEpsNodeBandwidthService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IEpsNodeBandwidthService.java @@ -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 relatedData(EpsNodeBandwidth epsNodeBandwidth, String dailyStartTime, String dailyEndTime); + public PageInfo relatedData(EpsNodeBandwidth epsNodeBandwidth, String dailyStartTime, String dailyEndTime); /** * 查询节点带宽信息列表 @@ -78,7 +79,7 @@ public interface IEpsNodeBandwidthService */ public int calculateAvg(EpsNodeBandwidth epsNodeBandwidth); - List getAvgDetailMsg(Long id); + PageInfo getAvgDetailMsg(Long id, Integer pageNum, Integer pageSize, String dailyStartTime, String dailyEndTime); /** * 图形分析 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/EpsInitialTrafficDataServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/EpsInitialTrafficDataServiceImpl.java index 4bf5150..5caf104 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/EpsInitialTrafficDataServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/EpsInitialTrafficDataServiceImpl.java @@ -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 getAllTraficMsg(EpsInitialTrafficData queryParam) { diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/EpsNodeBandwidthServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/EpsNodeBandwidthServiceImpl.java index 75dbda9..0ca1770 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/EpsNodeBandwidthServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/EpsNodeBandwidthServiceImpl.java @@ -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 relatedData(EpsNodeBandwidth epsNodeBandwidth,String dailyStartTime, String dailyEndTime) { + public PageInfo 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 totalList = epsInitialTrafficDataService.query(queryParams); + // 4. 设置分页参数 + PageDomain pageDomain = new PageDomain(); + pageDomain.setPageNum(epsNodeBandwidth.getPageNum()); + pageDomain.setPageSize(epsNodeBandwidth.getPageSize()); + startPage(pageDomain); + List resultList = epsInitialTrafficDataService.query(queryParams); + PageInfo 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 getAvgDetailMsg(Long id) { + public PageInfo 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 totalList = epsNodeBandwidthMapper.getAvgDetailMsg(epsNodeBandwidth); + // 4. 设置分页参数 + PageDomain pageDomain = new PageDomain(); + pageDomain.setPageNum(pageNum); + pageDomain.setPageSize(pageSize); + startPage(pageDomain); + List nodeBandwidthList = epsNodeBandwidthMapper.getAvgDetailMsg(epsNodeBandwidth); + PageInfo 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){ diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/InitialSwitchInfoDetailsServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/InitialSwitchInfoDetailsServiceImpl.java index 09c0766..aa9def6 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/InitialSwitchInfoDetailsServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/InitialSwitchInfoDetailsServiceImpl.java @@ -372,25 +372,29 @@ public class InitialSwitchInfoDetailsServiceImpl implements IInitialSwitchInfoDe // 根据交换机sn查询连接的服务器sn RmEpsTopologyManagement management = new RmEpsTopologyManagement(); management.setSwitchSn(queryParam.getSwitchSn()); + management.setSwitchIpAddress(queryParam.getSwitchIp()); List 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 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 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); - } } } diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/EpsInitialTrafficDataMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/EpsInitialTrafficDataMapper.xml index 8249960..cd863c9 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/EpsInitialTrafficDataMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/EpsInitialTrafficDataMapper.xml @@ -192,6 +192,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and service_sn = #{serviceSn} + + and business_id = #{businessId} + and create_time >= #{startTime} diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/InitialSwitchInfoDetailsMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/InitialSwitchInfoDetailsMapper.xml index 8f2be72..47ac3da 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/InitialSwitchInfoDetailsMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/InitialSwitchInfoDetailsMapper.xml @@ -37,7 +37,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and client_id = #{clientId} - and name like concat('%', #{name}, '%') + and name = #{name} and in_bytes = #{inBytes} and out_bytes = #{outBytes} and status = #{status} @@ -53,7 +53,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and switch_sn = #{switchSn} and business_code = #{businessCode} and business_name like concat('%', #{businessName}, '%') + + and create_time >= #{startTime} + + + and create_time <= #{endTime} + + order by create_time desc