交换机收益图形分析、服务器注册优化
This commit is contained in:
+13
@@ -1,6 +1,7 @@
|
||||
package com.ruoyi.system.controller;
|
||||
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.exception.ServiceException;
|
||||
import com.ruoyi.common.core.utils.DateUtils;
|
||||
import com.ruoyi.common.core.utils.poi.ExcelUtil;
|
||||
@@ -10,6 +11,7 @@ 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;
|
||||
import com.ruoyi.common.security.annotation.InnerAuth;
|
||||
import com.ruoyi.common.security.annotation.RequiresPermissions;
|
||||
import com.ruoyi.system.domain.EpsInitialTrafficData;
|
||||
import com.ruoyi.system.domain.EpsNodeBandwidth;
|
||||
@@ -316,4 +318,15 @@ public class EpsNodeBandwidthController extends BaseController
|
||||
List<Map> list = epsNodeBandwidthService.graphicalAnalysis(epsNodeBandwidth, "7", ChronoUnit.MONTHS);
|
||||
return success(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询节点带宽信息列表
|
||||
*/
|
||||
@PostMapping("/getEpsNodeBandWidthList")
|
||||
@InnerAuth
|
||||
public R<List<EpsNodeBandwidth>> getEpsNodeBandWidthList(@RequestBody EpsNodeBandwidth epsNodeBandwidth)
|
||||
{
|
||||
List<EpsNodeBandwidth> list = epsNodeBandwidthService.selectEpsNodeBandwidthList(epsNodeBandwidth);
|
||||
return R.ok(list);
|
||||
}
|
||||
}
|
||||
|
||||
+21
@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 交换机监控信息Controller
|
||||
@@ -105,4 +106,24 @@ public class InitialSwitchInfoDetailsController extends BaseController
|
||||
{
|
||||
return initialSwitchInfoDetailsService.autoSaveSwitchTraffic(initialSwitchInfoDetails);
|
||||
}
|
||||
/**
|
||||
* 图形分析-95带宽值mbps/日 v1.1
|
||||
*/
|
||||
@RequiresPermissions("system:bandwidth:list")
|
||||
@PostMapping("/getGraphicalAnalysisDaily")
|
||||
public AjaxResult getGraphicalAnalysisDaily(@RequestBody InitialSwitchInfoDetails initialSwitchInfoDetails)
|
||||
{
|
||||
List<Map<String, Object>> echartsData = initialSwitchInfoDetailsService.getGraphicalAnalysisDaily(initialSwitchInfoDetails);
|
||||
return success(echartsData);
|
||||
}
|
||||
/**
|
||||
* 图形分析-95带宽值mbps/月 v1.1
|
||||
*/
|
||||
@RequiresPermissions("system:bandwidth:list")
|
||||
@PostMapping("/getGraphicalAnalysisMonthy")
|
||||
public AjaxResult getGraphicalAnalysisMonthy(@RequestBody InitialSwitchInfoDetails initialSwitchInfoDetails)
|
||||
{
|
||||
List<Map<String, Object>> echartsData = initialSwitchInfoDetailsService.getGraphicalAnalysisMonthy(initialSwitchInfoDetails);
|
||||
return success(echartsData);
|
||||
}
|
||||
}
|
||||
|
||||
+11
@@ -212,5 +212,16 @@ public class RmResourceRegistrationController extends BaseController
|
||||
int rows = rmResourceRegistrationService.bindBusinessPublicIp(rmResourceRegistration);
|
||||
return toAjax(rows);
|
||||
}
|
||||
/**
|
||||
* 查询所有逻辑标识节点
|
||||
* @return 资源注册集合
|
||||
*/
|
||||
@RequiresPermissions("system:group:list")
|
||||
@GetMapping("/getAllLogicalNodeId")
|
||||
public List<Map> getAllLogicalNodeId()
|
||||
{
|
||||
List<Map> list = rmResourceRegistrationService.getAllLogicalNodeId();
|
||||
return list;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -143,4 +143,5 @@ public class EpsNodeBandwidth extends BaseEntity
|
||||
/** 客户端id */
|
||||
private String clientId;
|
||||
|
||||
|
||||
}
|
||||
|
||||
+2
@@ -110,4 +110,6 @@ public class InitialSwitchInfoDetails extends BaseEntity
|
||||
private String ifOutErrors;
|
||||
/** 端口索引 */
|
||||
private String ifIndex;
|
||||
/** 计算方式 */
|
||||
public String calculationMode;
|
||||
}
|
||||
|
||||
+2
@@ -281,6 +281,8 @@ public class RmResourceRegistration extends BaseEntity
|
||||
|
||||
@Excel(name = "管理网-IPv4地址")
|
||||
private String mgmtIpv4Address; // 管理网-IPv4地址
|
||||
@Excel(name = "管理网-网关")
|
||||
private String mgmtGateway; // 管理网-IPv4地址
|
||||
|
||||
/** 多条件查询 */
|
||||
private String queryParam;
|
||||
|
||||
+6
@@ -93,4 +93,10 @@ public interface RmResourceRegistrationMapper
|
||||
* @return
|
||||
*/
|
||||
RmResourceRegistration selectRegistMsgByClientId(RmResourceRegistration rmResourceRegistration);
|
||||
|
||||
/**
|
||||
* 获取所有逻辑节点标识
|
||||
* @return
|
||||
*/
|
||||
List<Map> getAllLogicalNodeId();
|
||||
}
|
||||
|
||||
+15
@@ -6,6 +6,7 @@ import com.ruoyi.system.domain.InitialSwitchInfoDetails;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 交换机监控信息Service接口
|
||||
@@ -94,4 +95,18 @@ public interface IInitialSwitchInfoDetailsService
|
||||
* @return
|
||||
*/
|
||||
BigDecimal sumTrafficBySwitch();
|
||||
|
||||
/**
|
||||
* 图形分析-95带宽值mbps/日 v1.1
|
||||
* @param initialSwitchInfoDetails
|
||||
* @return
|
||||
*/
|
||||
List<Map<String, Object>> getGraphicalAnalysisDaily(InitialSwitchInfoDetails initialSwitchInfoDetails);
|
||||
|
||||
/**
|
||||
* 图形分析-95带宽值mbps/月 v1.1
|
||||
* @param initialSwitchInfoDetails
|
||||
* @return
|
||||
*/
|
||||
List<Map<String, Object>> getGraphicalAnalysisMonthy(InitialSwitchInfoDetails initialSwitchInfoDetails);
|
||||
}
|
||||
|
||||
+6
@@ -113,4 +113,10 @@ public interface IRmResourceRegistrationService
|
||||
* @return
|
||||
*/
|
||||
int bindBusinessPublicIp(RmResourceRegistration rmResourceRegistration);
|
||||
|
||||
/**
|
||||
* 查询所有逻辑节点标识
|
||||
* @return
|
||||
*/
|
||||
List<Map> getAllLogicalNodeId();
|
||||
}
|
||||
|
||||
+12
-1
@@ -4,12 +4,13 @@ import com.ruoyi.common.core.constant.SecurityConstants;
|
||||
import com.ruoyi.common.core.utils.DateUtils;
|
||||
import com.ruoyi.common.core.utils.StringUtils;
|
||||
import com.ruoyi.common.security.utils.SecurityUtils;
|
||||
import com.ruoyi.system.enums.ReviewEnum;
|
||||
import com.ruoyi.system.api.RemoteRocketMqService;
|
||||
import com.ruoyi.system.api.domain.RmDeployScriptRemote;
|
||||
import com.ruoyi.system.api.domain.RmNetworkInterfaceRemote;
|
||||
import com.ruoyi.system.domain.EpsBusinessDeploy;
|
||||
import com.ruoyi.system.domain.EpsMethodChangeRecord;
|
||||
import com.ruoyi.system.domain.RmResourceRegistration;
|
||||
import com.ruoyi.system.enums.ReviewEnum;
|
||||
import com.ruoyi.system.mapper.EpsBusinessDeployMapper;
|
||||
import com.ruoyi.system.mapper.EpsMethodChangeRecordMapper;
|
||||
import com.ruoyi.system.mapper.RmResourceRegistrationMapper;
|
||||
@@ -165,6 +166,16 @@ public class EpsBusinessDeployServiceImpl implements IEpsBusinessDeployService
|
||||
String businessCode = businessMsg.getBusinessCode();
|
||||
String businessName = businessMsg.getBusinessName();
|
||||
String clientIdStr = businessMsg.getDeployDevice();
|
||||
// 添加服务器脚本执行策略
|
||||
RmDeployScriptRemote addData = new RmDeployScriptRemote();
|
||||
addData.setDeployDevice(clientIdStr);
|
||||
addData.setPolicyStatus("0");
|
||||
addData.setTaskName(businessMsg.getTaskName());
|
||||
addData.setScriptName(businessMsg.getScriptName());
|
||||
addData.setScriptPath(businessMsg.getScriptPath());
|
||||
addData.setDefaultParams(businessMsg.getScriptParams());
|
||||
addData.setPolicyName("策略"+ DateUtils.dateTimeNow());
|
||||
remoteRocketMqService.addDeployScript(addData, SecurityConstants.INNER);
|
||||
String[] clientIds = clientIdStr.split("\n");
|
||||
// 保存业务修改记录
|
||||
for (String clientId : clientIds) {
|
||||
|
||||
+30
-61
@@ -4,8 +4,9 @@ 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.EpsMethodChangeRecord;
|
||||
import com.ruoyi.system.domain.EpsNodeBandwidth;
|
||||
import com.ruoyi.system.domain.EpsServerRevenueConfig;
|
||||
import com.ruoyi.system.mapper.EpsMethodChangeRecordMapper;
|
||||
import com.ruoyi.system.mapper.EpsNodeBandwidthMapper;
|
||||
import com.ruoyi.system.mapper.EpsServerRevenueConfigMapper;
|
||||
import com.ruoyi.system.service.EpsInitialTrafficDataService;
|
||||
@@ -43,6 +44,8 @@ public class EpsNodeBandwidthServiceImpl implements IEpsNodeBandwidthService
|
||||
private EpsInitialTrafficDataService epsInitialTrafficDataService;
|
||||
@Autowired
|
||||
private EpsServerRevenueConfigMapper epsServerRevenueConfigMapper;
|
||||
@Autowired
|
||||
private EpsMethodChangeRecordMapper epsMethodChangeRecordMapper;
|
||||
|
||||
/**
|
||||
* 查询节点带宽信息
|
||||
@@ -178,7 +181,15 @@ public class EpsNodeBandwidthServiceImpl implements IEpsNodeBandwidthService
|
||||
log.warn("参数为空,无法计算月均日95值");
|
||||
return 0;
|
||||
}
|
||||
EpsMethodChangeRecord query = new EpsMethodChangeRecord();
|
||||
query.setClientId(epsNodeBandwidth.getClientId());
|
||||
query.setTrafficPort(epsNodeBandwidth.getInterfaceName());
|
||||
query.setBusinessName(epsNodeBandwidth.getBusinessName());
|
||||
query.setBusinessCode(epsNodeBandwidth.getBusinessId());
|
||||
List<EpsMethodChangeRecord> records = epsMethodChangeRecordMapper.selectEpsMethodChangeRecordList(query);
|
||||
if(!records.isEmpty()){
|
||||
|
||||
}
|
||||
// 3. 获取计算数据(防止空指针)
|
||||
EpsNodeBandwidth calculatedData = epsNodeBandwidthMapper.calculateAvg(epsNodeBandwidth);
|
||||
if (calculatedData == null) {
|
||||
@@ -212,70 +223,28 @@ public class EpsNodeBandwidthServiceImpl implements IEpsNodeBandwidthService
|
||||
return 0;
|
||||
}
|
||||
|
||||
// 6. 检查业务变动
|
||||
boolean hasBusinessChange = false;
|
||||
if (epsNodeBandwidth.getHardwareSn() != null) {
|
||||
EpsServerRevenueConfig revenueConfig = new EpsServerRevenueConfig();
|
||||
revenueConfig.setHardwareSn(epsNodeBandwidth.getHardwareSn());
|
||||
List<EpsServerRevenueConfig> changedList = epsServerRevenueConfigMapper.selectEpsServerRevenueConfigList(revenueConfig);
|
||||
|
||||
if (!changedList.isEmpty() && changedList.size() == 1) {
|
||||
EpsServerRevenueConfig epsServerRevenueConfig = changedList.get(0);
|
||||
if (epsServerRevenueConfig.getUpdateTime() != null &&
|
||||
epsNodeBandwidth.getStartTime() != null &&
|
||||
"1".equals(epsServerRevenueConfig.getChanged())) {
|
||||
|
||||
String configTime = DateUtils.parseDateToStr("yyyy-MM", epsServerRevenueConfig.getUpdateTime());
|
||||
hasBusinessChange = epsNodeBandwidth.getStartTime().equals(configTime);
|
||||
}
|
||||
}
|
||||
}
|
||||
// 7. 计算平均值
|
||||
if (hasBusinessChange) {
|
||||
epsNodeBandwidth.setBandwidthType("7");
|
||||
// 2. 验证是否已经存在记录
|
||||
List<EpsNodeBandwidth> existingRecords = epsNodeBandwidthMapper.selectEpsNodeBandwidthList(epsNodeBandwidth);
|
||||
if(!existingRecords.isEmpty()){
|
||||
epsNodeBandwidth.setId(existingRecords.get(0).getId());
|
||||
epsNodeBandwidth.setUpdateTime(DateUtils.getNowDate());
|
||||
epsNodeBandwidth.setBandwidthType("4");
|
||||
// 2. 验证是否已经存在记录
|
||||
List<EpsNodeBandwidth> existingRecords = epsNodeBandwidthMapper.selectEpsNodeBandwidthList(epsNodeBandwidth);
|
||||
if(!existingRecords.isEmpty()){
|
||||
epsNodeBandwidth.setId(existingRecords.get(0).getId());
|
||||
epsNodeBandwidth.setUpdateTime(DateUtils.getNowDate());
|
||||
}else{
|
||||
if(epsNodeBandwidth.getStartTime() == null){
|
||||
epsNodeBandwidth.setCreateTime(DateUtils.parseDate(monthTime));
|
||||
}else{
|
||||
if(epsNodeBandwidth.getStartTime() == null){
|
||||
epsNodeBandwidth.setCreateTime(DateUtils.parseDate(monthTime));
|
||||
}else{
|
||||
epsNodeBandwidth.setCreateTime(DateUtils.parseDate(epsNodeBandwidth.getStartTime()));
|
||||
}
|
||||
epsNodeBandwidth.setCreateTime(DateUtils.parseDate(epsNodeBandwidth.getStartTime()));
|
||||
}
|
||||
// 有效-月均日95值
|
||||
BigDecimal effectiveAvg = sumEffectiveBandwidth95Daily.divide(BigDecimal.valueOf(daysInMonth), 2, RoundingMode.HALF_UP);
|
||||
epsNodeBandwidth.setEffectiveAvgMonthlyBandwidth95(effectiveAvg);
|
||||
epsNodeBandwidth.setBandwidthResult(effectiveAvg);
|
||||
// 8. 执行插入或更新操作
|
||||
return existingRecords.isEmpty() ?
|
||||
epsNodeBandwidthMapper.insertEpsNodeBandwidth(epsNodeBandwidth) :
|
||||
epsNodeBandwidthMapper.updateEpsNodeBandwidth(epsNodeBandwidth);
|
||||
} else {
|
||||
epsNodeBandwidth.setBandwidthType("4");
|
||||
// 2. 验证是否已经存在记录
|
||||
List<EpsNodeBandwidth> existingRecords = epsNodeBandwidthMapper.selectEpsNodeBandwidthList(epsNodeBandwidth);
|
||||
if(!existingRecords.isEmpty()){
|
||||
epsNodeBandwidth.setId(existingRecords.get(0).getId());
|
||||
epsNodeBandwidth.setUpdateTime(DateUtils.getNowDate());
|
||||
}else{
|
||||
if(epsNodeBandwidth.getStartTime() == null){
|
||||
epsNodeBandwidth.setCreateTime(DateUtils.parseDate(monthTime));
|
||||
}else{
|
||||
epsNodeBandwidth.setCreateTime(DateUtils.parseDate(epsNodeBandwidth.getStartTime()));
|
||||
}
|
||||
}
|
||||
// 月均日95值
|
||||
BigDecimal avgMonthly = sum95Daily.divide(BigDecimal.valueOf(daysInMonth), 2, RoundingMode.HALF_UP);
|
||||
epsNodeBandwidth.setAvgMonthlyBandwidth95(avgMonthly);
|
||||
epsNodeBandwidth.setBandwidthResult(avgMonthly);
|
||||
// 8. 执行插入或更新操作
|
||||
return existingRecords.isEmpty() ?
|
||||
epsNodeBandwidthMapper.insertEpsNodeBandwidth(epsNodeBandwidth) :
|
||||
epsNodeBandwidthMapper.updateEpsNodeBandwidth(epsNodeBandwidth);
|
||||
}
|
||||
// 月均日95值
|
||||
BigDecimal avgMonthly = sum95Daily.divide(BigDecimal.valueOf(daysInMonth), 2, RoundingMode.HALF_UP);
|
||||
epsNodeBandwidth.setAvgMonthlyBandwidth95(avgMonthly);
|
||||
epsNodeBandwidth.setBandwidthResult(avgMonthly);
|
||||
// 8. 执行插入或更新操作
|
||||
return existingRecords.isEmpty() ?
|
||||
epsNodeBandwidthMapper.insertEpsNodeBandwidth(epsNodeBandwidth) :
|
||||
epsNodeBandwidthMapper.updateEpsNodeBandwidth(epsNodeBandwidth);
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("计算月均日95值失败", e);
|
||||
|
||||
+126
-3
@@ -2,12 +2,15 @@ package com.ruoyi.system.service.impl;
|
||||
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.utils.DateUtils;
|
||||
import com.ruoyi.common.core.utils.EchartsDataUtils;
|
||||
import com.ruoyi.common.core.utils.SpeedUtils;
|
||||
import com.ruoyi.common.core.utils.StringUtils;
|
||||
import com.ruoyi.system.domain.*;
|
||||
import com.ruoyi.system.mapper.*;
|
||||
import com.ruoyi.system.service.IInitialSwitchInfoDetailsService;
|
||||
import com.ruoyi.system.util.CalculateUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.dao.DuplicateKeyException;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -16,11 +19,12 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.YearMonth;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -694,4 +698,123 @@ public class InitialSwitchInfoDetailsServiceImpl implements IInitialSwitchInfoDe
|
||||
epsNodeBandwidthMapper.insertEpsNodeBandwidth(bandwidth);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 图形分析 - 日95
|
||||
* @param initialSwitchInfoDetails
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<Map<String, Object>> getGraphicalAnalysisDaily(InitialSwitchInfoDetails initialSwitchInfoDetails) {
|
||||
// 拿到时间范围
|
||||
String startTime = initialSwitchInfoDetails.getStartTime();
|
||||
String endTime = initialSwitchInfoDetails.getEndTime();
|
||||
List<Map<String, Object>> resultList = new ArrayList<>();
|
||||
// 2. 解析日期范围
|
||||
LocalDate startDate = LocalDate.parse(startTime);
|
||||
LocalDate endDate = LocalDate.parse(endTime);
|
||||
// 3. 循环处理每一天
|
||||
for (LocalDate date = startDate; !date.isAfter(endDate); date = date.plusDays(1)) {
|
||||
// 构造当天的开始和结束时间(精确到秒)
|
||||
String dayStart = date.atStartOfDay().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||
String dayEnd = date.atTime(23, 59, 59).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||
|
||||
// 创建当天的查询条件
|
||||
InitialSwitchInfoDetails dailyQuery = new InitialSwitchInfoDetails();
|
||||
BeanUtils.copyProperties(initialSwitchInfoDetails, dailyQuery); // 复制原有属性
|
||||
dailyQuery.setStartTime(dayStart);
|
||||
dailyQuery.setEndTime(dayEnd);
|
||||
try {
|
||||
Map<String, Object> resultMap = switchNetSpeedEcharts(dailyQuery);
|
||||
// 查询95值
|
||||
EpsNodeBandwidth query = new EpsNodeBandwidth();
|
||||
query.setBandwidthType("1");
|
||||
query.setCreateTime(DateUtils.parseDate(date));
|
||||
query.setCalculationMode(initialSwitchInfoDetails.getCalculationMode());
|
||||
query.setClientId(initialSwitchInfoDetails.getClientId());
|
||||
List<EpsNodeBandwidth> epsNodeBandwidthList = epsNodeBandwidthMapper.selectEpsNodeBandwidthList(query);
|
||||
if(!epsNodeBandwidthList.isEmpty()){
|
||||
EpsNodeBandwidth nodeBandwidth = epsNodeBandwidthList.get(0);
|
||||
resultMap.put("95value", nodeBandwidth.getBandwidthResult());
|
||||
}
|
||||
resultList.add(resultMap);
|
||||
} catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return resultList.isEmpty() ? new ArrayList<>() : resultList;
|
||||
}
|
||||
/**
|
||||
* 图形分析 - 月95
|
||||
* @param initialSwitchInfoDetails
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<Map<String, Object>> getGraphicalAnalysisMonthy(InitialSwitchInfoDetails initialSwitchInfoDetails) {
|
||||
// 拿到时间范围
|
||||
String startTime = initialSwitchInfoDetails.getStartTime();
|
||||
String endTime = initialSwitchInfoDetails.getEndTime();
|
||||
List<Map<String, Object>> resultList = new ArrayList<>();
|
||||
// 2. 解析月份范围
|
||||
YearMonth start = YearMonth.parse(startTime);
|
||||
YearMonth end = YearMonth.parse(endTime);
|
||||
// 3. 循环处理每个月
|
||||
for (YearMonth month = start; !month.isAfter(end); month = month.plusMonths(1)) {
|
||||
// 获取当月的第一天和最后一天(精确到秒)
|
||||
String monthStart = month.atDay(1).atStartOfDay().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||
String monthEnd = month.atEndOfMonth().atTime(23, 59, 59)
|
||||
.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||
|
||||
// 创建当天的查询条件
|
||||
InitialSwitchInfoDetails dailyQuery = new InitialSwitchInfoDetails();
|
||||
BeanUtils.copyProperties(initialSwitchInfoDetails, dailyQuery); // 复制原有属性
|
||||
dailyQuery.setStartTime(monthStart);
|
||||
dailyQuery.setEndTime(monthStart);
|
||||
try {
|
||||
Map<String, Object> resultMap = switchNetSpeedEcharts(dailyQuery);
|
||||
// 查询95值
|
||||
EpsNodeBandwidth query = new EpsNodeBandwidth();
|
||||
query.setBandwidthType("1");
|
||||
query.setCreateTime(DateUtils.parseDate(monthStart));
|
||||
query.setCalculationMode(initialSwitchInfoDetails.getCalculationMode());
|
||||
query.setClientId(initialSwitchInfoDetails.getClientId());
|
||||
List<EpsNodeBandwidth> epsNodeBandwidthList = epsNodeBandwidthMapper.selectEpsNodeBandwidthList(query);
|
||||
if(!epsNodeBandwidthList.isEmpty()){
|
||||
EpsNodeBandwidth nodeBandwidth = epsNodeBandwidthList.get(0);
|
||||
resultMap.put("95value", nodeBandwidth.getBandwidthResult());
|
||||
}
|
||||
resultList.add(resultMap);
|
||||
} catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return resultList.isEmpty() ? new ArrayList<>() : resultList;
|
||||
}
|
||||
/**
|
||||
* 获取交换机网口网络速率
|
||||
* @param initialSwitchInfoDetails
|
||||
* @return
|
||||
*/
|
||||
public Map<String, Object> switchNetSpeedEcharts(InitialSwitchInfoDetails initialSwitchInfoDetails) {
|
||||
List<InitialSwitchInfoDetails> list = initialSwitchInfoDetailsMapper.selectInitialSwitchInfoDetailsList(initialSwitchInfoDetails);
|
||||
try {
|
||||
SpeedUtils.SpeedResult result = SpeedUtils.calculateWithAverageBasedUnit(list, "inSpeed", "outSpeed");
|
||||
BigDecimal divisor = SpeedUtils.getDivisor(result.getRecommendedUnit());
|
||||
Map<String, Function<InitialSwitchInfoDetails, ?>> extractors = new LinkedHashMap<>();
|
||||
extractors.put("netInSpeedData", info ->
|
||||
info != null && info.getInSpeed() != null ?
|
||||
info.getInSpeed().divide(divisor, 0, RoundingMode.HALF_UP) :
|
||||
0);
|
||||
|
||||
extractors.put("netOutSpeedData", info ->
|
||||
info != null && info.getOutSpeed() != null ?
|
||||
info.getOutSpeed().divide(divisor, 0, RoundingMode.HALF_UP) :
|
||||
0);
|
||||
Map<String, Object> resultMap = EchartsDataUtils.buildEchartsData(list, InitialSwitchInfoDetails::getCreateTime, extractors);
|
||||
resultMap.put("other", result);
|
||||
return resultMap;
|
||||
} catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
return new HashMap<>();
|
||||
}
|
||||
}
|
||||
|
||||
+16
-2
@@ -119,6 +119,7 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio
|
||||
// 根据clientId查询网卡信息
|
||||
RmNetworkInterfaceRemote queryParam = new RmNetworkInterfaceRemote();
|
||||
queryParam.setClientId(clientId);
|
||||
queryParam.setNewFlag(1);
|
||||
// 安全获取网络接口列表
|
||||
R<List<RmNetworkInterfaceRemote>> result = remoteRocketMqService.getNetworkInterfaceList(queryParam, SecurityConstants.INNER);
|
||||
// 多层安全判断
|
||||
@@ -137,7 +138,7 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio
|
||||
int businessIpCount = 1;
|
||||
|
||||
for (RmNetworkInterfaceRemote network : networkList) {
|
||||
if ("1".equals(network.getBindIp())) {
|
||||
if ("1".equals(network.getBindIp()) || "3".equals(network.getBindIp())) {
|
||||
// 业务IP处理
|
||||
if (businessIpCount > 3) {
|
||||
continue; // 最多只处理3个业务IP
|
||||
@@ -181,7 +182,8 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio
|
||||
}
|
||||
|
||||
businessIpCount++;
|
||||
} else if ("2".equals(network.getBindIp())) {
|
||||
}
|
||||
if ("2".equals(network.getBindIp()) || "3".equals(network.getBindIp())) {
|
||||
// 管理网IP处理
|
||||
registration.setMgmtIsp(network.getIsp());
|
||||
registration.setMgmtProvince(network.getProvince());
|
||||
@@ -191,6 +193,7 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio
|
||||
registration.setMgmtMacAddress(network.getMacAddress());
|
||||
registration.setMgmtInterfaceType(network.getInterfaceType());
|
||||
registration.setMgmtIpv4Address(network.getIpv4Address());
|
||||
registration.setMgmtGateway(network.getGateway());
|
||||
}
|
||||
}
|
||||
// 设置金山machineCode
|
||||
@@ -549,6 +552,8 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio
|
||||
insertData.setMultiPublicIpStatus("0");
|
||||
insertData.setResourceType("1");
|
||||
insertData.setCreateTime(createTime);
|
||||
insertData.setHeartbeatCount(3);
|
||||
insertData.setHeartbeatInterval(30);
|
||||
rmResourceRegistrationMapper.insertRmResourceRegistration(insertData);
|
||||
}
|
||||
}catch (Exception e){
|
||||
@@ -665,5 +670,14 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询所有逻辑节点标识
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<Map> getAllLogicalNodeId() {
|
||||
return rmResourceRegistrationMapper.getAllLogicalNodeId();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
+13
@@ -339,6 +339,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="creatorName != null">creator_name = #{creatorName},</if>
|
||||
<if test="updaterId != null">updater_id = #{updaterId},</if>
|
||||
<if test="updaterName != null">updater_name = #{updaterName},</if>
|
||||
<if test="clientId != null">client_id = #{clientId},</if>
|
||||
<if test="operator != null">operator = #{operator},</if>
|
||||
<if test="province != null">province = #{province},</if>
|
||||
<if test="publicIp != null">public_ip = #{publicIp},</if>
|
||||
<if test="businessName != null">business_name = #{businessName},</if>
|
||||
<if test="logicalNodeId != null">logical_node_id = #{logicalNodeId},</if>
|
||||
<if test="multiPublicIpStatus != null">multi_public_ip_status = #{multiPublicIpStatus},</if>
|
||||
<if test="heartbeatCount != null">heartbeat_count = #{heartbeatCount},</if>
|
||||
<if test="heartbeatInterval != null">heartbeat_interval = #{heartbeatInterval},</if>
|
||||
<if test="onboardTime != null">onboard_time = #{onboardTime},</if>
|
||||
</trim>
|
||||
<where>
|
||||
@@ -370,4 +379,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
</where>
|
||||
order by create_time desc
|
||||
</select>
|
||||
<select id="getAllLogicalNodeId" parameterType="RmResourceRegistration" resultType="java.util.Map">
|
||||
select logical_node_id logicalNodeId from rm_resource_registration where logical_node_id != ''
|
||||
group by logical_node_id
|
||||
</select>
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user