diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteRevenueConfigService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteRevenueConfigService.java index 1ca8583..0c79b37 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteRevenueConfigService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteRevenueConfigService.java @@ -115,4 +115,14 @@ public interface RemoteRevenueConfigService @PostMapping("/registration/innerUpdateRegist") public R innerUpdateRegist(@RequestBody RmResourceRegistrationRemote rmResourceRegistrationRemote, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + /** + * 获取95值列表 + * @param epsNodeBandwidthRemote + * @param source + * @return + */ + @PostMapping("/bandwidth/getEpsNodeBandWidthList") + public R> getEpsNodeBandWidthList(@RequestBody EpsNodeBandwidthRemote epsNodeBandwidthRemote, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteRocketMqService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteRocketMqService.java index 796af36..0a731f9 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteRocketMqService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteRocketMqService.java @@ -4,6 +4,7 @@ import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.domain.RmAlarmRecordRemote; +import com.ruoyi.system.api.domain.RmDeployScriptRemote; import com.ruoyi.system.api.domain.RmMonitorPolicyRemote; import com.ruoyi.system.api.domain.RmNetworkInterfaceRemote; import com.ruoyi.system.api.factory.RemoteRocketMqFallbackFactory; @@ -95,4 +96,6 @@ public interface RemoteRocketMqService { */ @GetMapping("/monitorPolicy/issueDefaultPolicyByClientId") public R issueDefaultPolicyByClientId(String clientId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + @PostMapping("policy/addDeployScript") + R addDeployScript(@RequestBody RmDeployScriptRemote addData, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/EpsNodeBandwidthRemote.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/EpsNodeBandwidthRemote.java new file mode 100644 index 0000000..9a41a02 --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/EpsNodeBandwidthRemote.java @@ -0,0 +1,136 @@ +package com.ruoyi.system.api.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.util.Date; +import java.util.List; + +@Data +public class EpsNodeBandwidthRemote extends BaseEntity { + /** id */ + private Long id; + + /** 节点名称 */ + @Excel(name = "节点名称") + private String nodeName; + + /** 硬件SN */ + @Excel(name = "硬件SN") + private String hardwareSn; + /** 带宽值类型 + * 1-95带宽值Mbps/日 + * 2-95带宽值Mbps/月 + * 3-包端带宽值Mbps/日 + * 4-月均日95值Mbps + * 5-有效-95带宽值Mbps/日 + * 6-有效-95带宽值Mbps/月 + * 7-有效-月均日95值 + * */ + private String bandwidthType; + + /** 带宽值结果 */ + private BigDecimal bandwidthResult; + + /** 95带宽值Mbps/日 */ + @Excel(name = "95带宽值Mbps/日") + private BigDecimal bandwidth95Daily; + + /** 95带宽值Mbps/月 */ + @Excel(name = "95带宽值Mbps/月") + private BigDecimal bandwidth95Monthly; + + /** 月均日95值 */ + @Excel(name = "月均日95值") + private BigDecimal avgMonthlyBandwidth95; + + /** 包端带宽值Mbps/日 */ + @Excel(name = "包端带宽值Mbps/日") + private BigDecimal packageBandwidthDaily; + + /** 有效-95带宽值Mbps/日 */ + @Excel(name = "有效-95带宽值Mbps/日") + private BigDecimal effectiveBandwidth95Daily; + + /** 有效-95带宽值Mbps/月 */ + @Excel(name = "有效-95带宽值Mbps/月") + private BigDecimal effectiveBandwidth95Monthly; + + /** 有效-月均95值 */ + @Excel(name = "有效-月均95值") + private BigDecimal effectiveAvgMonthlyBandwidth95; + /** 金山流量Mbps/日 */ + private BigDecimal machineFlow; + + /** 设备业务客户id */ + @Excel(name = "设备业务客户id") + private String customerId; + + /** 设备业务客户名称 */ + @Excel(name = "设备业务客户名称") + private String customerName; + + /** 业务号 */ + @Excel(name = "业务号") + private String serviceNumber; + + /** 上联交换机 */ + @Excel(name = "上联交换机") + private String uplinkSwitch; + + /** 创建人id */ + @Excel(name = "创建人id") + private Long creatorId; + + /** 创建人名称 */ + @Excel(name = "创建人名称") + private String creatorName; + + /** 交换机sn */ + @Excel(name = "交换机sn") + private String switchSn; + + /** 接口名称 */ + @Excel(name = "接口名称") + private String interfaceName; + + /** 资源类型(1服务器,2交换机) */ + @Excel(name = "资源类型") + private String resourceType; + + /** 接口连接设备类型(1服务器,2机房出口) */ + @Excel(name = "接口连接设备类型") + private String interfaceLinkDeviceType; + /** 业务名称 */ + @Excel(name = "业务名称") + private String businessName; + + /** 业务代码 */ + @Excel(name = "业务代码") + private String businessId; + /** 创建时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date createTime; + /** 开始时间 */ + private String startTime; + /** 结束时间 */ + private String endTime; + /** 月份 */ + private String monthTime; + /** 备注 */ + private String remark1; + /** 创建时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createDatetime; + + private List nodeNames; + + private List switchNames; + /** 计算方式 */ + private String calculationMode; + /** 客户端id */ + private String clientId; +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/NetworkInfo.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/NetworkInfo.java index 002f6d7..e29765b 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/NetworkInfo.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/NetworkInfo.java @@ -29,4 +29,6 @@ public class NetworkInfo { // 公网 IP @JsonProperty("publicIp") private String publicIp; + @JsonProperty("type") + private String type; } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/RmDeployScriptRemote.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/RmDeployScriptRemote.java new file mode 100644 index 0000000..b8bb30f --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/RmDeployScriptRemote.java @@ -0,0 +1,84 @@ +package com.ruoyi.system.api.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.annotation.Excel; +import lombok.Data; + +import java.util.Date; + +@Data +public class RmDeployScriptRemote { + /** 策略ID */ + private Long id; + + /** 策略名称 */ + @Excel(name = "策略名称") + private String policyName; + + /** 策略描述 */ + @Excel(name = "策略描述") + private String description; + + /** 关联资源组ID */ + @Excel(name = "关联资源组ID") + private Long resourceGroupId; + + /** 包含的设备ID列表(逗号分隔) */ + private String includedDevicesId; + /** 包含设备 */ + @Excel(name = "包含设备") + private String includedDevicesName; + + /** 源文件地址格式 */ + @Excel(name = "源文件地址格式") + private String sourceFilePathType; + /** 源文件路径 */ + @Excel(name = "源文件路径") + private String sourceFilePath; + + /** 目标目录 */ + @Excel(name = "目标目录") + private String targetDirectory; + + /** 命令执行内容 */ + @Excel(name = "命令执行内容") + private String commandContent; + + /** 0=立即执行,1=定时执行 */ + @Excel(name = "执行方式", readConverterExp = "0=立即执行,1=定时执行") + private Integer executionMethod; + + /** 定时执行时间 */ + @Excel(name = "定时执行时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date scheduledTime; + /** 定时执行时间(时间戳秒) */ + private Long policyTime; + + /** 策略状态:0-未下发,1-已下发 */ + @Excel(name = "策略状态:0-未下发,1-已下发") + private String policyStatus; + + /** 策略下发时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "策略下发时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date deployTime; + + /** 脚本类型 */ + @Excel(name = "脚本类型") + private String scriptType; + /** 资源组名称 */ + private String resourceGroupName; + /** 资源组置空 */ + private Boolean resourceGroupIdNull; + /** 部署设备 */ + private String deployDevice; + /** 业务脚本名称 */ + private String scriptName; + /** 业务脚本文件地址 */ + private String scriptPath; + /** 业务脚本参数 */ + private String defaultParams; + /** 业务下发名称 */ + private String taskName; +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/RmNetworkInterfaceRemote.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/RmNetworkInterfaceRemote.java index 8082f7b..2f9a621 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/RmNetworkInterfaceRemote.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/RmNetworkInterfaceRemote.java @@ -50,4 +50,6 @@ public class RmNetworkInterfaceRemote extends BaseEntity { private String gateway; /** 绑定ip 1业务IP,2管理ip */ private String bindIp; + /** 新旧标识 */ + private Integer newFlag; } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/RmResourceRegistrationRemote.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/RmResourceRegistrationRemote.java index 25e2f9f..401e5b6 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/RmResourceRegistrationRemote.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/RmResourceRegistrationRemote.java @@ -1,9 +1,12 @@ package com.ruoyi.system.api.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.util.Date; + /** * 资源注册对象 rm_resource_registration * @@ -171,5 +174,9 @@ public class RmResourceRegistrationRemote extends BaseEntity * 心跳周期(单位:秒) */ private Integer heartbeatInterval; + /** 上机时间 */ + @Excel(name = "上机时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date onboardTime; } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteRevenueConfigFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteRevenueConfigFallbackFactory.java index 2f89dab..36882c4 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteRevenueConfigFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteRevenueConfigFallbackFactory.java @@ -81,6 +81,11 @@ public class RemoteRevenueConfigFallbackFactory implements FallbackFactory innerUpdateRegist(RmResourceRegistrationRemote rmResourceRegistrationRemote, String source) { return R.fail("修改服务器注册信息失败:" + throwable.getMessage()); } + + @Override + public R> getEpsNodeBandWidthList(EpsNodeBandwidthRemote epsNodeBandwidthRemote, String source) { + return R.fail("获取95值列表失败:" + throwable.getMessage()); + } }; } } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteRocketMqFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteRocketMqFallbackFactory.java index 7185800..741c51e 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteRocketMqFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteRocketMqFallbackFactory.java @@ -3,6 +3,7 @@ package com.ruoyi.system.api.factory; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.RemoteRocketMqService; import com.ruoyi.system.api.domain.RmAlarmRecordRemote; +import com.ruoyi.system.api.domain.RmDeployScriptRemote; import com.ruoyi.system.api.domain.RmMonitorPolicyRemote; import com.ruoyi.system.api.domain.RmNetworkInterfaceRemote; import org.slf4j.Logger; @@ -77,6 +78,11 @@ public class RemoteRocketMqFallbackFactory implements FallbackFactory issueDefaultPolicyByClientId(String clientId, String source) { return R.fail(throwable.getMessage()); } + + @Override + public R addDeployScript(RmDeployScriptRemote addData, String source) { + return R.fail(throwable.getMessage()); + } }; } } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/MsgEnum.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/MsgEnum.java index a00654d..daa3482 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/MsgEnum.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/MsgEnum.java @@ -13,7 +13,7 @@ import lombok.NoArgsConstructor; @NoArgsConstructor public enum MsgEnum { - 多公网IP探测("PUBLICIPDETECT"), + 多公网IP探测("NETWORK_DETECT"), 获取最新策略("GET_POLICY"), diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/utils/EchartsDataUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/EchartsDataUtils.java similarity index 95% rename from ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/utils/EchartsDataUtils.java rename to ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/EchartsDataUtils.java index f23a199..0545489 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/utils/EchartsDataUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/EchartsDataUtils.java @@ -1,6 +1,4 @@ -package com.ruoyi.rocketmq.utils; - -import com.ruoyi.common.core.utils.DateUtils; +package com.ruoyi.common.core.utils; import java.util.*; import java.util.function.Function; diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/SpeedUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/SpeedUtils.java new file mode 100644 index 0000000..bedb8c1 --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/SpeedUtils.java @@ -0,0 +1,206 @@ +package com.ruoyi.common.core.utils; + + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.List; + +public class SpeedUtils { + + public static class SpeedResult { + private BigDecimal avgInSpeedGb; // 平均输入速度 (Gb) + private BigDecimal avgOutSpeedGb; // 平均输出速度 (Gb) + private BigDecimal maxInSpeedGb; // 最大输入速度 (Gb) + private BigDecimal maxOutSpeedGb; // 最大输出速度 (Gb) + private BigDecimal lastInSpeedGb; // 最后一个输入速度 (Gb) + private BigDecimal lastOutSpeedGb;// 最后一个输出速度 (Gb) + private String recommendedUnit; // 基于平均值推荐的单位 + + public SpeedResult(BigDecimal avgInSpeedGb, BigDecimal avgOutSpeedGb, + BigDecimal maxInSpeedGb, BigDecimal maxOutSpeedGb, + BigDecimal lastInSpeedGb, BigDecimal lastOutSpeedGb, + String recommendedUnit) { + this.avgInSpeedGb = avgInSpeedGb; + this.avgOutSpeedGb = avgOutSpeedGb; + this.maxInSpeedGb = maxInSpeedGb; + this.maxOutSpeedGb = maxOutSpeedGb; + this.lastInSpeedGb = lastInSpeedGb; + this.lastOutSpeedGb = lastOutSpeedGb; + this.recommendedUnit = recommendedUnit; + } + + // Getters + public BigDecimal getAvgInSpeedGb() { return avgInSpeedGb; } + public BigDecimal getAvgOutSpeedGb() { return avgOutSpeedGb; } + public BigDecimal getMaxInSpeedGb() { return maxInSpeedGb; } + public BigDecimal getMaxOutSpeedGb() { return maxOutSpeedGb; } + public BigDecimal getLastInSpeedGb() { return lastInSpeedGb; } + public BigDecimal getLastOutSpeedGb() { return lastOutSpeedGb; } + public String getRecommendedUnit() { return recommendedUnit; } + + @Override + public String toString() { + return String.format( + "平均输入速度: %s Gb, 平均输出速度: %s Gb\n" + + "最大输入速度: %s Gb, 最大输出速度: %s Gb\n" + + "最后输入速度: %s Gb, 最后输出速度: %s Gb\n" + + "推荐单位(基于平均值): %s", + avgInSpeedGb.setScale(2, RoundingMode.HALF_UP), + avgOutSpeedGb.setScale(2, RoundingMode.HALF_UP), + maxInSpeedGb.setScale(2, RoundingMode.HALF_UP), + maxOutSpeedGb.setScale(2, RoundingMode.HALF_UP), + lastInSpeedGb.setScale(2, RoundingMode.HALF_UP), + lastOutSpeedGb.setScale(2, RoundingMode.HALF_UP), + recommendedUnit + ); + } + } + + public static SpeedResult calculateWithAverageBasedUnit(List list, + String inSpeedField, String outSpeedField) + throws NoSuchFieldException, IllegalAccessException { + + if (list == null || list.isEmpty()) { + return new SpeedResult( + BigDecimal.ZERO, BigDecimal.ZERO, + BigDecimal.ZERO, BigDecimal.ZERO, + BigDecimal.ZERO, BigDecimal.ZERO, + "bit" + ); + } + + BigDecimal totalInSpeedBit = BigDecimal.ZERO; + BigDecimal totalOutSpeedBit = BigDecimal.ZERO; + BigDecimal maxInSpeedGb = BigDecimal.ZERO; + BigDecimal maxOutSpeedGb = BigDecimal.ZERO; + BigDecimal lastInSpeedGb = BigDecimal.ZERO; + BigDecimal lastOutSpeedGb = BigDecimal.ZERO; + + final BigDecimal GB_DIVISOR = new BigDecimal("1000000000"); + + // 计算总和(bit)和Gb值 + for (Object obj : list) { + try { + java.lang.reflect.Field inField = obj.getClass().getDeclaredField(inSpeedField); + java.lang.reflect.Field outField = obj.getClass().getDeclaredField(outSpeedField); + + inField.setAccessible(true); + outField.setAccessible(true); + + BigDecimal inSpeedBit = (BigDecimal) inField.get(obj) == null ? BigDecimal.ZERO : (BigDecimal) inField.get(obj); + BigDecimal outSpeedBit = (BigDecimal) outField.get(obj) == null ? BigDecimal.ZERO : (BigDecimal) outField.get(obj); + + // 累加bit值(用于计算平均值) + totalInSpeedBit = totalInSpeedBit.add(inSpeedBit); + totalOutSpeedBit = totalOutSpeedBit.add(outSpeedBit); + + // 转换为Gb并更新最大值 + BigDecimal inSpeedGb = inSpeedBit.divide(GB_DIVISOR, 10, RoundingMode.HALF_UP); + BigDecimal outSpeedGb = outSpeedBit.divide(GB_DIVISOR, 10, RoundingMode.HALF_UP); + + maxInSpeedGb = maxInSpeedGb.max(inSpeedGb); + maxOutSpeedGb = maxOutSpeedGb.max(outSpeedGb); + + // 记录最后一个值 + lastInSpeedGb = inSpeedGb; + lastOutSpeedGb = outSpeedGb; + } catch (Exception e) { + throw new RuntimeException("无法获取速度字段值", e); + } + } + + // 计算Gb平均值 + BigDecimal size = new BigDecimal(list.size()); + BigDecimal avgInSpeedGb = totalInSpeedBit.divide(GB_DIVISOR, 10, RoundingMode.HALF_UP) + .divide(size, 2, RoundingMode.HALF_UP); + BigDecimal avgOutSpeedGb = totalOutSpeedBit.divide(GB_DIVISOR, 10, RoundingMode.HALF_UP) + .divide(size, 2, RoundingMode.HALF_UP); + + // 基于平均值的较大值确定推荐单位 + BigDecimal maxAvgBit = avgInSpeedGb.compareTo(avgOutSpeedGb) > 0 ? + avgInSpeedGb.multiply(GB_DIVISOR) : + avgOutSpeedGb.multiply(GB_DIVISOR); + + String recommendedUnit; + if (maxAvgBit.compareTo(new BigDecimal("1000000000")) >= 0) { + recommendedUnit = "Gb"; + } else if (maxAvgBit.compareTo(new BigDecimal("1000000")) >= 0) { + recommendedUnit = "Mb"; + } else{ + recommendedUnit = "Kb"; + } + + return new SpeedResult( + avgInSpeedGb, avgOutSpeedGb, + maxInSpeedGb, maxOutSpeedGb, + lastInSpeedGb, lastOutSpeedGb, + recommendedUnit + ); + } + // 工具方法:获取单位换算除数 + public static BigDecimal getDivisor(String unit) { + switch (unit) { + case "Gb": return new BigDecimal("1000000000"); + case "Mb": return new BigDecimal("1000000"); + case "Kb": return new BigDecimal("1000"); + default: return BigDecimal.ONE; // bit + } + } + public static String calculateUnit(List list, + String inSpeedField, String outSpeedField) + throws NoSuchFieldException, IllegalAccessException { + + if (list == null || list.isEmpty()) { + return null; + } + + BigDecimal totalInSpeedBit = BigDecimal.ZERO; + BigDecimal totalOutSpeedBit = BigDecimal.ZERO; + BigDecimal maxInSpeedGb = BigDecimal.ZERO; + BigDecimal maxOutSpeedGb = BigDecimal.ZERO; + BigDecimal lastInSpeedGb = BigDecimal.ZERO; + BigDecimal lastOutSpeedGb = BigDecimal.ZERO; + + final BigDecimal GB_DIVISOR = new BigDecimal("1000000000"); + + // 计算总和(bit)和Gb值 + for (Object obj : list) { + try { + java.lang.reflect.Field inField = obj.getClass().getDeclaredField(inSpeedField); + java.lang.reflect.Field outField = obj.getClass().getDeclaredField(outSpeedField); + + inField.setAccessible(true); + outField.setAccessible(true); + + BigDecimal inSpeedBit = (BigDecimal) inField.get(obj) == null ? BigDecimal.ZERO : (BigDecimal) inField.get(obj); + BigDecimal outSpeedBit = (BigDecimal) outField.get(obj) == null ? BigDecimal.ZERO : (BigDecimal) outField.get(obj); + + // 累加bit值(用于计算平均值) + totalInSpeedBit = totalInSpeedBit.add(inSpeedBit); + totalOutSpeedBit = totalOutSpeedBit.add(outSpeedBit); + } catch (Exception e) { + throw new RuntimeException("无法获取速度字段值", e); + } + } + + // 计算Gb平均值 + BigDecimal size = new BigDecimal(list.size()); + BigDecimal avgInSpeedGb = totalInSpeedBit.divide(size, 2, RoundingMode.HALF_UP); + BigDecimal avgOutSpeedGb = totalOutSpeedBit.divide(size, 2, RoundingMode.HALF_UP); + + // 基于平均值的较大值确定推荐单位 + BigDecimal maxAvgBit = avgInSpeedGb.compareTo(avgOutSpeedGb) > 0 ? + avgInSpeedGb : avgOutSpeedGb; + + String recommendedUnit; + if (maxAvgBit.compareTo(new BigDecimal("1000000000")) >= 0) { + recommendedUnit = "Gb"; + } else if (maxAvgBit.compareTo(new BigDecimal("1000000")) >= 0) { + recommendedUnit = "Mb"; + } else{ + recommendedUnit = "Kb"; + } + + return recommendedUnit; + } +} \ No newline at end of file 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 896b73a..79b092f 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,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 list = epsNodeBandwidthService.graphicalAnalysis(epsNodeBandwidth, "7", ChronoUnit.MONTHS); return success(list); } + + /** + * 查询节点带宽信息列表 + */ + @PostMapping("/getEpsNodeBandWidthList") + @InnerAuth + public R> getEpsNodeBandWidthList(@RequestBody EpsNodeBandwidth epsNodeBandwidth) + { + List list = epsNodeBandwidthService.selectEpsNodeBandwidthList(epsNodeBandwidth); + return R.ok(list); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/InitialSwitchInfoDetailsController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/InitialSwitchInfoDetailsController.java index 56c0d18..115758e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/InitialSwitchInfoDetailsController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/InitialSwitchInfoDetailsController.java @@ -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> echartsData = initialSwitchInfoDetailsService.getGraphicalAnalysisDaily(initialSwitchInfoDetails); + return success(echartsData); + } + /** + * 图形分析-95带宽值mbps/月 v1.1 + */ + @RequiresPermissions("system:bandwidth:list") + @PostMapping("/getGraphicalAnalysisMonthy") + public AjaxResult getGraphicalAnalysisMonthy(@RequestBody InitialSwitchInfoDetails initialSwitchInfoDetails) + { + List> echartsData = initialSwitchInfoDetailsService.getGraphicalAnalysisMonthy(initialSwitchInfoDetails); + return success(echartsData); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/RmResourceRegistrationController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/RmResourceRegistrationController.java index 669e204..8afd72d 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/RmResourceRegistrationController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/RmResourceRegistrationController.java @@ -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 getAllLogicalNodeId() + { + List list = rmResourceRegistrationService.getAllLogicalNodeId(); + return list; + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/EpsNodeBandwidth.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/EpsNodeBandwidth.java index dda7723..5b73af2 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/EpsNodeBandwidth.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/EpsNodeBandwidth.java @@ -143,4 +143,5 @@ public class EpsNodeBandwidth extends BaseEntity /** 客户端id */ private String clientId; + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/InitialSwitchInfoDetails.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/InitialSwitchInfoDetails.java index 5738105..4fcde01 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/InitialSwitchInfoDetails.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/InitialSwitchInfoDetails.java @@ -110,4 +110,6 @@ public class InitialSwitchInfoDetails extends BaseEntity private String ifOutErrors; /** 端口索引 */ private String ifIndex; + /** 计算方式 */ + public String calculationMode; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/RmResourceRegistration.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/RmResourceRegistration.java index 6322044..5f856b1 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/RmResourceRegistration.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/RmResourceRegistration.java @@ -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; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/RmResourceRegistrationMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/RmResourceRegistrationMapper.java index 2513bdd..c1c1cca 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/RmResourceRegistrationMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/RmResourceRegistrationMapper.java @@ -93,4 +93,10 @@ public interface RmResourceRegistrationMapper * @return */ RmResourceRegistration selectRegistMsgByClientId(RmResourceRegistration rmResourceRegistration); + + /** + * 获取所有逻辑节点标识 + * @return + */ + List getAllLogicalNodeId(); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IInitialSwitchInfoDetailsService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IInitialSwitchInfoDetailsService.java index a6791ad..95016be 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IInitialSwitchInfoDetailsService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IInitialSwitchInfoDetailsService.java @@ -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> getGraphicalAnalysisDaily(InitialSwitchInfoDetails initialSwitchInfoDetails); + + /** + * 图形分析-95带宽值mbps/月 v1.1 + * @param initialSwitchInfoDetails + * @return + */ + List> getGraphicalAnalysisMonthy(InitialSwitchInfoDetails initialSwitchInfoDetails); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IRmResourceRegistrationService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IRmResourceRegistrationService.java index 0f4bce5..2ba53ac 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IRmResourceRegistrationService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IRmResourceRegistrationService.java @@ -113,4 +113,10 @@ public interface IRmResourceRegistrationService * @return */ int bindBusinessPublicIp(RmResourceRegistration rmResourceRegistration); + + /** + * 查询所有逻辑节点标识 + * @return + */ + List getAllLogicalNodeId(); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/EpsBusinessDeployServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/EpsBusinessDeployServiceImpl.java index 86aedfa..a086ed9 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/EpsBusinessDeployServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/EpsBusinessDeployServiceImpl.java @@ -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) { 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 3debe99..1c9d180 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 @@ -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 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 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 existingRecords = epsNodeBandwidthMapper.selectEpsNodeBandwidthList(epsNodeBandwidth); - if(!existingRecords.isEmpty()){ - epsNodeBandwidth.setId(existingRecords.get(0).getId()); - epsNodeBandwidth.setUpdateTime(DateUtils.getNowDate()); + epsNodeBandwidth.setBandwidthType("4"); + // 2. 验证是否已经存在记录 + List 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 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); 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 ab5bdc1..0ea0e10 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 @@ -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> getGraphicalAnalysisDaily(InitialSwitchInfoDetails initialSwitchInfoDetails) { + // 拿到时间范围 + String startTime = initialSwitchInfoDetails.getStartTime(); + String endTime = initialSwitchInfoDetails.getEndTime(); + List> 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 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 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> getGraphicalAnalysisMonthy(InitialSwitchInfoDetails initialSwitchInfoDetails) { + // 拿到时间范围 + String startTime = initialSwitchInfoDetails.getStartTime(); + String endTime = initialSwitchInfoDetails.getEndTime(); + List> 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 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 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 switchNetSpeedEcharts(InitialSwitchInfoDetails initialSwitchInfoDetails) { + List list = initialSwitchInfoDetailsMapper.selectInitialSwitchInfoDetailsList(initialSwitchInfoDetails); + try { + SpeedUtils.SpeedResult result = SpeedUtils.calculateWithAverageBasedUnit(list, "inSpeed", "outSpeed"); + BigDecimal divisor = SpeedUtils.getDivisor(result.getRecommendedUnit()); + Map> 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 resultMap = EchartsDataUtils.buildEchartsData(list, InitialSwitchInfoDetails::getCreateTime, extractors); + resultMap.put("other", result); + return resultMap; + } catch (Exception e){ + e.printStackTrace(); + } + return new HashMap<>(); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RmResourceRegistrationServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RmResourceRegistrationServiceImpl.java index 178bfab..095e5e2 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RmResourceRegistrationServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RmResourceRegistrationServiceImpl.java @@ -119,6 +119,7 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio // 根据clientId查询网卡信息 RmNetworkInterfaceRemote queryParam = new RmNetworkInterfaceRemote(); queryParam.setClientId(clientId); + queryParam.setNewFlag(1); // 安全获取网络接口列表 R> 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 getAllLogicalNodeId() { + return rmResourceRegistrationMapper.getAllLogicalNodeId(); + } + } diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/RmResourceRegistrationMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/RmResourceRegistrationMapper.xml index 866b91d..f52a143 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/RmResourceRegistrationMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/RmResourceRegistrationMapper.xml @@ -339,6 +339,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" creator_name = #{creatorName}, updater_id = #{updaterId}, updater_name = #{updaterName}, + client_id = #{clientId}, + operator = #{operator}, + province = #{province}, + public_ip = #{publicIp}, + business_name = #{businessName}, + logical_node_id = #{logicalNodeId}, + multi_public_ip_status = #{multiPublicIpStatus}, + heartbeat_count = #{heartbeatCount}, + heartbeat_interval = #{heartbeatInterval}, onboard_time = #{onboardTime}, @@ -370,4 +379,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by create_time desc + \ No newline at end of file diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/controller/RmDeploymentPolicyController.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/controller/RmDeploymentPolicyController.java index b599bc8..4488d1c 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/controller/RmDeploymentPolicyController.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/controller/RmDeploymentPolicyController.java @@ -1,5 +1,6 @@ package com.ruoyi.rocketmq.controller; +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; @@ -7,6 +8,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.rocketmq.domain.RmDeploymentPolicy; import com.ruoyi.rocketmq.service.IRmDeploymentPolicyService; @@ -109,4 +111,14 @@ public class RmDeploymentPolicyController extends BaseController { return success(rmDeploymentPolicyService.issueDeploymentPolicy(id)); } + + /** + * 新增服务器脚本策略 + */ + @InnerAuth + @PostMapping("/addDeployScript") + public R addDeployScript(@RequestBody RmDeploymentPolicy rmDeploymentPolicy) + { + return R.ok(rmDeploymentPolicyService.insertRmDeploymentPolicy(rmDeploymentPolicy)); + } } diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/domain/InitialSwitchInfo.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/domain/InitialSwitchInfo.java index 2b5eca5..1cd27aa 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/domain/InitialSwitchInfo.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/domain/InitialSwitchInfo.java @@ -65,6 +65,8 @@ public class InitialSwitchInfo extends BaseEntity private String startTime; private String endTime; + /** 计算方式 */ + private String calculationMode; } diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/domain/RmDeploymentPolicy.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/domain/RmDeploymentPolicy.java index feac5c7..2a21367 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/domain/RmDeploymentPolicy.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/domain/RmDeploymentPolicy.java @@ -90,6 +90,8 @@ public class RmDeploymentPolicy extends BaseEntity private String scriptPath; /** 业务脚本参数 */ private String defaultParams; + /** 业务下发名称 */ + private String taskName; /** 不在线数量 */ private Integer offlineNum; /** 执行成功数量 */ diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/handler/MessageHandler.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/handler/MessageHandler.java index d7173ca..eff5cf7 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/handler/MessageHandler.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/handler/MessageHandler.java @@ -105,6 +105,213 @@ public class MessageHandler { registerHandler(MsgEnum.挂载上报.getValue(), this::handleMountPointMessage); registerHandler(MsgEnum.系统其他上报.getValue(), this::handleOtherSystemMessage); registerHandler(MsgEnum.心跳上报.getValue(), this::handleHeartbeatMessage); + registerHandler(MsgEnum.多公网IP探测.getValue(), this::handleNetWorkDelectMessage); + } + + /** + * 保存网卡信息 + * @param message + */ + private void handleNetWorkDelectMessage(DeviceMessage message) { + List interfaces = JsonDataParser.parseJsonData(message.getData(), RegisterMsgVo.class); + if(!interfaces.isEmpty()) { + RegisterMsgVo registerMsg = interfaces.get(0); + // 时间戳转换 + long timestamp = registerMsg.getTimestamp(); + long millis = timestamp * 1000; + Date createTime = new Date(millis / 1000 * 1000); // 去除毫秒 + List networkInfoList = registerMsg.getNetworkInfo(); + if(!networkInfoList.isEmpty()){ + if(networkInfoList.size()==1){ + NetworkInfo networkInfo = networkInfoList.get(0); + // 查询该网卡信息是否存在 + RmNetworkInterface queryParam = new RmNetworkInterface(); + queryParam.setMacAddress(networkInfo.getMac()); + queryParam.setNewFlag(1); + List exits = rmNetworkInterfaceService.selectRmNetworkInterfaceList(queryParam); + if(exits.isEmpty()){ + // 保存网卡信息 + RmNetworkInterface insertData = new RmNetworkInterface(); + // 业务ip和管理网ip + insertData.setBindIp("3"); + insertData.setClientId(registerMsg.getClientId()); + insertData.setIsp(networkInfo.getCarrier()); + insertData.setCity(networkInfo.getCity()); + insertData.setGateway(networkInfo.getGateway()); + insertData.setInterfaceName(networkInfo.getName()); + insertData.setIpv4Address(networkInfo.getIpv4()); + insertData.setMacAddress(networkInfo.getMac()); + insertData.setProvince(networkInfo.getProvince()); + insertData.setPublicIp(networkInfo.getPublicIp()); + insertData.setInterfaceType(networkInfo.getType()); + insertData.setCreateTime(createTime); + rmNetworkInterfaceService.insertRmNetworkInterface(insertData); + }else{ + RmNetworkInterface oldInterfaceMsg = exits.get(0); + if(!StringUtils.equals(networkInfo.getName(),oldInterfaceMsg.getInterfaceName()) + || !StringUtils.equals(networkInfo.getGateway(),oldInterfaceMsg.getGateway())){ + // 查询该网卡信息是否旧数据 + RmNetworkInterface query = new RmNetworkInterface(); + query.setMacAddress(networkInfo.getMac()); + query.setNewFlag(999); + List oldExits = rmNetworkInterfaceService.selectRmNetworkInterfaceList(queryParam); + if(!oldExits.isEmpty()){ + // 先删除旧数据 + oldExits.forEach(oldMsg ->{ + rmNetworkInterfaceService.deleteRmNetworkInterfaceById(oldMsg.getId()); + }); + } + // 先将已存在的改为旧数据 + RmNetworkInterface oldData = new RmNetworkInterface(); + oldData.setNewFlag(0); + oldData.setMacAddress(networkInfo.getMac()); + rmNetworkInterfaceService.updateRmNetworkInterfaceByMac(oldData); + RmNetworkInterface insertData = new RmNetworkInterface(); + insertData.setMacAddress(networkInfo.getMac()); + insertData.setIsp(networkInfo.getCarrier()); + insertData.setCity(networkInfo.getCity()); + insertData.setGateway(networkInfo.getGateway()); + insertData.setInterfaceName(networkInfo.getName()); + insertData.setIpv4Address(networkInfo.getIpv4()); + insertData.setMacAddress(networkInfo.getMac()); + insertData.setProvince(networkInfo.getProvince()); + insertData.setPublicIp(networkInfo.getPublicIp()); + insertData.setInterfaceType(networkInfo.getType()); + rmNetworkInterfaceService.insertRmNetworkInterface(insertData); + }else { + RmNetworkInterface updateData = new RmNetworkInterface(); + // 检查其他字段是否需要更新 + boolean needUpdate = false; + // 逐个字段比较是否需要更新 + if (!StringUtils.equals(networkInfo.getCity(), oldInterfaceMsg.getCity())) { + updateData.setCity(networkInfo.getCity()); + needUpdate = true; + } + if (!StringUtils.equals(networkInfo.getIpv4(), oldInterfaceMsg.getIpv4Address())) { + updateData.setIpv4Address(networkInfo.getIpv4()); + needUpdate = true; + } + if (!StringUtils.equals(networkInfo.getProvince(), oldInterfaceMsg.getProvince())) { + updateData.setProvince(networkInfo.getProvince()); + needUpdate = true; + } + if (!StringUtils.equals(networkInfo.getPublicIp(), oldInterfaceMsg.getPublicIp())) { + updateData.setPublicIp(networkInfo.getPublicIp()); + needUpdate = true; + } + if (!StringUtils.equals(networkInfo.getCarrier(), oldInterfaceMsg.getIsp())) { + updateData.setIsp(networkInfo.getCarrier()); + needUpdate = true; + } + if (!StringUtils.equals(networkInfo.getType(), oldInterfaceMsg.getInterfaceType())) { + updateData.setInterfaceType(networkInfo.getType()); + needUpdate = true; + } + // 只有有字段变化时才执行更新 + if (needUpdate) { + rmNetworkInterfaceService.updateRmNetworkInterfaceByMac(updateData); + } + } + } + }else{ + for (NetworkInfo networkInfo : networkInfoList) { + // 查询该网卡信息是否存在 + RmNetworkInterface queryParam = new RmNetworkInterface(); + queryParam.setMacAddress(networkInfo.getMac()); + List exits = rmNetworkInterfaceService.selectRmNetworkInterfaceList(queryParam); + if(exits.isEmpty()){ + // 保存网卡信息 + RmNetworkInterface insertData = new RmNetworkInterface(); + // 业务ip和管理网ip + insertData.setClientId(registerMsg.getClientId()); + insertData.setIsp(networkInfo.getCarrier()); + insertData.setCity(networkInfo.getCity()); + insertData.setGateway(networkInfo.getGateway()); + insertData.setInterfaceName(networkInfo.getName()); + insertData.setIpv4Address(networkInfo.getIpv4()); + insertData.setMacAddress(networkInfo.getMac()); + insertData.setProvince(networkInfo.getProvince()); + insertData.setPublicIp(networkInfo.getPublicIp()); + insertData.setInterfaceType(networkInfo.getType()); + insertData.setCreateTime(createTime); + rmNetworkInterfaceService.insertRmNetworkInterface(insertData); + }else{ + RmNetworkInterface oldInterfaceMsg = exits.get(0); + if(!StringUtils.equals(networkInfo.getName(),oldInterfaceMsg.getInterfaceName()) + || !StringUtils.equals(networkInfo.getGateway(),oldInterfaceMsg.getGateway())){ + // 查询该网卡信息是否旧数据 + RmNetworkInterface query = new RmNetworkInterface(); + query.setMacAddress(networkInfo.getMac()); + query.setNewFlag(999); + List oldExits = rmNetworkInterfaceService.selectRmNetworkInterfaceList(queryParam); + if(!oldExits.isEmpty()){ + // 先删除旧数据 + oldExits.forEach(oldMsg ->{ + rmNetworkInterfaceService.deleteRmNetworkInterfaceById(oldMsg.getId()); + }); + } + // 先将已存在的改为旧数据 + RmNetworkInterface oldData = new RmNetworkInterface(); + oldData.setNewFlag(0); + oldData.setMacAddress(networkInfo.getMac()); + rmNetworkInterfaceService.updateRmNetworkInterfaceByMac(oldData); + RmNetworkInterface insertData = new RmNetworkInterface(); + insertData.setMacAddress(networkInfo.getMac()); + insertData.setIsp(networkInfo.getCarrier()); + insertData.setCity(networkInfo.getCity()); + insertData.setGateway(networkInfo.getGateway()); + insertData.setInterfaceName(networkInfo.getName()); + insertData.setIpv4Address(networkInfo.getIpv4()); + insertData.setMacAddress(networkInfo.getMac()); + insertData.setProvince(networkInfo.getProvince()); + insertData.setPublicIp(networkInfo.getPublicIp()); + insertData.setInterfaceType(networkInfo.getType()); + rmNetworkInterfaceService.insertRmNetworkInterface(insertData); + }else { + RmNetworkInterface updateData = new RmNetworkInterface(); + // 检查其他字段是否需要更新 + boolean needUpdate = false; + // 逐个字段比较是否需要更新 + if (!StringUtils.equals(networkInfo.getCity(), oldInterfaceMsg.getCity())) { + updateData.setCity(networkInfo.getCity()); + needUpdate = true; + } + if (!StringUtils.equals(networkInfo.getIpv4(), oldInterfaceMsg.getIpv4Address())) { + updateData.setIpv4Address(networkInfo.getIpv4()); + needUpdate = true; + } + if (!StringUtils.equals(networkInfo.getProvince(), oldInterfaceMsg.getProvince())) { + updateData.setProvince(networkInfo.getProvince()); + needUpdate = true; + } + if (!StringUtils.equals(networkInfo.getPublicIp(), oldInterfaceMsg.getPublicIp())) { + updateData.setPublicIp(networkInfo.getPublicIp()); + needUpdate = true; + updateData.setBindIp("0"); + // 修改绑定公网ip状态 + RmResourceRegistrationRemote updateParam = new RmResourceRegistrationRemote(); + updateParam.setClientId(registerMsg.getClientId()); + updateParam.setMultiPublicIpStatus("0"); + remoteRevenueConfigService.updateStatusByResource(updateParam, SecurityConstants.INNER); + } + if (!StringUtils.equals(networkInfo.getCarrier(), oldInterfaceMsg.getIsp())) { + updateData.setIsp(networkInfo.getCarrier()); + needUpdate = true; + } + if (!StringUtils.equals(networkInfo.getType(), oldInterfaceMsg.getInterfaceType())) { + updateData.setInterfaceType(networkInfo.getType()); + needUpdate = true; + } + // 只有有字段变化时才执行更新 + if (needUpdate) { + rmNetworkInterfaceService.updateRmNetworkInterfaceByMac(updateData); + } + } + } + } + } + } + } } /** @@ -169,6 +376,7 @@ public class MessageHandler { insertData.setMacAddress(networkInfo.getMac()); insertData.setProvince(networkInfo.getProvince()); insertData.setPublicIp(networkInfo.getPublicIp()); + insertData.setInterfaceType(networkInfo.getType()); insertData.setCreateTime(createTime); rmNetworkInterfaceService.insertRmNetworkInterface(insertData); }else{ @@ -201,6 +409,7 @@ public class MessageHandler { insertData.setMacAddress(networkInfo.getMac()); insertData.setProvince(networkInfo.getProvince()); insertData.setPublicIp(networkInfo.getPublicIp()); + insertData.setInterfaceType(networkInfo.getType()); rmNetworkInterfaceService.insertRmNetworkInterface(insertData); }else { RmNetworkInterface updateData = new RmNetworkInterface(); @@ -227,6 +436,10 @@ public class MessageHandler { updateData.setIsp(networkInfo.getCarrier()); needUpdate = true; } + if (!StringUtils.equals(networkInfo.getType(), oldInterfaceMsg.getInterfaceType())) { + updateData.setInterfaceType(networkInfo.getType()); + needUpdate = true; + } // 只有有字段变化时才执行更新 if (needUpdate) { rmNetworkInterfaceService.updateRmNetworkInterfaceByMac(updateData); @@ -252,6 +465,7 @@ public class MessageHandler { insertData.setMacAddress(networkInfo.getMac()); insertData.setProvince(networkInfo.getProvince()); insertData.setPublicIp(networkInfo.getPublicIp()); + insertData.setInterfaceType(networkInfo.getType()); insertData.setCreateTime(createTime); rmNetworkInterfaceService.insertRmNetworkInterface(insertData); }else{ @@ -284,6 +498,7 @@ public class MessageHandler { insertData.setMacAddress(networkInfo.getMac()); insertData.setProvince(networkInfo.getProvince()); insertData.setPublicIp(networkInfo.getPublicIp()); + insertData.setInterfaceType(networkInfo.getType()); rmNetworkInterfaceService.insertRmNetworkInterface(insertData); }else { RmNetworkInterface updateData = new RmNetworkInterface(); @@ -316,6 +531,10 @@ public class MessageHandler { updateData.setIsp(networkInfo.getCarrier()); needUpdate = true; } + if (!StringUtils.equals(networkInfo.getType(), oldInterfaceMsg.getInterfaceType())) { + updateData.setInterfaceType(networkInfo.getType()); + needUpdate = true; + } // 只有有字段变化时才执行更新 if (needUpdate) { rmNetworkInterfaceService.updateRmNetworkInterfaceByMac(updateData); @@ -325,7 +544,6 @@ public class MessageHandler { } } } - } } @@ -566,6 +784,8 @@ public class MessageHandler { RmResourceRegistrationRemote updateData = new RmResourceRegistrationRemote(); updateData.setClientId(message.getClientId()); updateData.setLogicalNodeId(heartbeat.getLogicalNode()); + updateData.setAgentVersion(version); + updateData.setOnboardTime(DateUtils.getNowDate()); remoteRevenueConfigService.innerUpdateRegist(updateData, SecurityConstants.INNER); // agent更新结果存储 RmAgentManagement query = new RmAgentManagement(); diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/IInitialSwitchInfoService.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/IInitialSwitchInfoService.java index 59ac73d..0086263 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/IInitialSwitchInfoService.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/IInitialSwitchInfoService.java @@ -102,4 +102,5 @@ public interface IInitialSwitchInfoService * @return */ Map switchNetErrDiscardsEcharts(InitialSwitchInfo initialSwitchInfo); + } diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialBandwidthTrafficServiceImpl.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialBandwidthTrafficServiceImpl.java index 4b11ff4..54af082 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialBandwidthTrafficServiceImpl.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialBandwidthTrafficServiceImpl.java @@ -1,10 +1,10 @@ package com.ruoyi.rocketmq.service.impl; import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.common.core.utils.EchartsDataUtils; import com.ruoyi.rocketmq.domain.InitialBandwidthTraffic; import com.ruoyi.rocketmq.mapper.InitialBandwidthTrafficMapper; import com.ruoyi.rocketmq.service.IInitialBandwidthTrafficService; -import com.ruoyi.rocketmq.utils.EchartsDataUtils; import com.ruoyi.rocketmq.utils.TableRouterUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialCpuInfoServiceImpl.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialCpuInfoServiceImpl.java index 0cd96ab..e29b381 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialCpuInfoServiceImpl.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialCpuInfoServiceImpl.java @@ -1,10 +1,10 @@ package com.ruoyi.rocketmq.service.impl; import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.common.core.utils.EchartsDataUtils; import com.ruoyi.rocketmq.domain.InitialCpuInfo; import com.ruoyi.rocketmq.mapper.InitialCpuInfoMapper; import com.ruoyi.rocketmq.service.IInitialCpuInfoService; -import com.ruoyi.rocketmq.utils.EchartsDataUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -16,7 +16,8 @@ import java.util.List; import java.util.Map; import java.util.function.Function; -import static com.ruoyi.rocketmq.utils.EchartsDataUtils.convertMicrosecondsToSeconds; +import static com.ruoyi.common.core.utils.EchartsDataUtils.convertMicrosecondsToSeconds; + /** * CPU监控信息Service业务层处理 diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialDiskInfoServiceImpl.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialDiskInfoServiceImpl.java index 9adf560..dcb8d12 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialDiskInfoServiceImpl.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialDiskInfoServiceImpl.java @@ -1,10 +1,10 @@ package com.ruoyi.rocketmq.service.impl; import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.common.core.utils.EchartsDataUtils; import com.ruoyi.rocketmq.domain.InitialDiskInfo; import com.ruoyi.rocketmq.mapper.InitialDiskInfoMapper; import com.ruoyi.rocketmq.service.IInitialDiskInfoService; -import com.ruoyi.rocketmq.utils.EchartsDataUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialDockerInfoServiceImpl.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialDockerInfoServiceImpl.java index d95d52d..7351f1a 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialDockerInfoServiceImpl.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialDockerInfoServiceImpl.java @@ -1,10 +1,10 @@ package com.ruoyi.rocketmq.service.impl; import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.common.core.utils.EchartsDataUtils; import com.ruoyi.rocketmq.domain.InitialDockerInfo; import com.ruoyi.rocketmq.mapper.InitialDockerInfoMapper; import com.ruoyi.rocketmq.service.IInitialDockerInfoService; -import com.ruoyi.rocketmq.utils.EchartsDataUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialMemoryInfoServiceImpl.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialMemoryInfoServiceImpl.java index dd46548..a9d4e6d 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialMemoryInfoServiceImpl.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialMemoryInfoServiceImpl.java @@ -1,10 +1,10 @@ package com.ruoyi.rocketmq.service.impl; import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.common.core.utils.EchartsDataUtils; import com.ruoyi.rocketmq.domain.InitialMemoryInfo; import com.ruoyi.rocketmq.mapper.InitialMemoryInfoMapper; import com.ruoyi.rocketmq.service.IInitialMemoryInfoService; -import com.ruoyi.rocketmq.utils.EchartsDataUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialMountPointInfoServiceImpl.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialMountPointInfoServiceImpl.java index 983def2..df56a8f 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialMountPointInfoServiceImpl.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialMountPointInfoServiceImpl.java @@ -1,10 +1,10 @@ package com.ruoyi.rocketmq.service.impl; import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.common.core.utils.EchartsDataUtils; import com.ruoyi.rocketmq.domain.InitialMountPointInfo; import com.ruoyi.rocketmq.mapper.InitialMountPointInfoMapper; import com.ruoyi.rocketmq.service.IInitialMountPointInfoService; -import com.ruoyi.rocketmq.utils.EchartsDataUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialSwitchInfoServiceImpl.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialSwitchInfoServiceImpl.java index d4fe34c..f98ef3d 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialSwitchInfoServiceImpl.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialSwitchInfoServiceImpl.java @@ -1,10 +1,12 @@ package com.ruoyi.rocketmq.service.impl; import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.common.core.utils.EchartsDataUtils; +import com.ruoyi.common.core.utils.SpeedUtils; import com.ruoyi.rocketmq.domain.InitialSwitchInfo; import com.ruoyi.rocketmq.mapper.InitialSwitchInfoMapper; import com.ruoyi.rocketmq.service.IInitialSwitchInfoService; -import com.ruoyi.rocketmq.utils.EchartsDataUtils; +import com.ruoyi.system.api.RemoteRevenueConfigService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -12,6 +14,8 @@ import org.springframework.transaction.annotation.Isolation; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -29,6 +33,8 @@ public class InitialSwitchInfoServiceImpl implements IInitialSwitchInfoService { @Autowired private InitialSwitchInfoMapper initialSwitchInfoMapper; + @Autowired + private RemoteRevenueConfigService remoteRevenueConfigService; /** * 查询交换机流量监控信息 @@ -140,10 +146,26 @@ public class InitialSwitchInfoServiceImpl implements IInitialSwitchInfoService @Override public Map switchNetSpeedEcharts(InitialSwitchInfo initialSwitchInfo) { List list = initialSwitchInfoMapper.selectInitialSwitchInfoList(initialSwitchInfo); - Map> extractors = new LinkedHashMap<>(); - extractors.put("netInSpeedData", info -> info.getInSpeed()); - extractors.put("netOutSpeedData", info -> info.getOutSpeed()); - return EchartsDataUtils.buildEchartsData(list, InitialSwitchInfo::getCreateTime, extractors); + try { + String unit = SpeedUtils.calculateUnit(list, "inSpeed", "outSpeed"); + BigDecimal divisor = SpeedUtils.getDivisor(unit); + Map> 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 resultMap = EchartsDataUtils.buildEchartsData(list, InitialSwitchInfo::getCreateTime, extractors); + resultMap.put("unit", unit); + return resultMap; + } catch (Exception e){ + e.printStackTrace(); + } + return new HashMap<>(); } /** diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialSwitchMpuInfoServiceImpl.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialSwitchMpuInfoServiceImpl.java index 4f4116d..7d5559e 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialSwitchMpuInfoServiceImpl.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialSwitchMpuInfoServiceImpl.java @@ -1,10 +1,10 @@ package com.ruoyi.rocketmq.service.impl; import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.common.core.utils.EchartsDataUtils; import com.ruoyi.rocketmq.domain.InitialSwitchMpuInfo; import com.ruoyi.rocketmq.mapper.InitialSwitchMpuInfoMapper; import com.ruoyi.rocketmq.service.IInitialSwitchMpuInfoService; -import com.ruoyi.rocketmq.utils.EchartsDataUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialSwitchOpticalModuleServiceImpl.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialSwitchOpticalModuleServiceImpl.java index c28ff26..c583ed4 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialSwitchOpticalModuleServiceImpl.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialSwitchOpticalModuleServiceImpl.java @@ -1,10 +1,10 @@ package com.ruoyi.rocketmq.service.impl; import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.common.core.utils.EchartsDataUtils; import com.ruoyi.rocketmq.domain.InitialSwitchOpticalModule; import com.ruoyi.rocketmq.mapper.InitialSwitchOpticalModuleMapper; import com.ruoyi.rocketmq.service.IInitialSwitchOpticalModuleService; -import com.ruoyi.rocketmq.utils.EchartsDataUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialSwitchOtherCollectDataServiceImpl.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialSwitchOtherCollectDataServiceImpl.java index 992d540..5a4c211 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialSwitchOtherCollectDataServiceImpl.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialSwitchOtherCollectDataServiceImpl.java @@ -1,11 +1,11 @@ package com.ruoyi.rocketmq.service.impl; import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.common.core.utils.EchartsDataUtils; import com.ruoyi.rocketmq.domain.InitialSwitchOtherCollectData; import com.ruoyi.rocketmq.enums.SwitchLogo; import com.ruoyi.rocketmq.mapper.InitialSwitchOtherCollectDataMapper; import com.ruoyi.rocketmq.service.IInitialSwitchOtherCollectDataService; -import com.ruoyi.rocketmq.utils.EchartsDataUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialSwitchPowerSupplyServiceImpl.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialSwitchPowerSupplyServiceImpl.java index 4f7037b..a73f089 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialSwitchPowerSupplyServiceImpl.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialSwitchPowerSupplyServiceImpl.java @@ -1,10 +1,10 @@ package com.ruoyi.rocketmq.service.impl; import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.common.core.utils.EchartsDataUtils; import com.ruoyi.rocketmq.domain.InitialSwitchPowerSupply; import com.ruoyi.rocketmq.mapper.InitialSwitchPowerSupplyMapper; import com.ruoyi.rocketmq.service.IInitialSwitchPowerSupplyService; -import com.ruoyi.rocketmq.utils.EchartsDataUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialSystemInfoServiceImpl.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialSystemInfoServiceImpl.java index 618336c..8f01102 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialSystemInfoServiceImpl.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialSystemInfoServiceImpl.java @@ -1,6 +1,7 @@ package com.ruoyi.rocketmq.service.impl; import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.common.core.utils.EchartsDataUtils; import com.ruoyi.rocketmq.domain.InitialCpuInfo; import com.ruoyi.rocketmq.domain.InitialMemoryInfo; import com.ruoyi.rocketmq.domain.InitialSystemInfo; @@ -9,7 +10,6 @@ import com.ruoyi.rocketmq.mapper.InitialCpuInfoMapper; import com.ruoyi.rocketmq.mapper.InitialMemoryInfoMapper; import com.ruoyi.rocketmq.mapper.InitialSystemInfoMapper; import com.ruoyi.rocketmq.service.IInitialSystemInfoService; -import com.ruoyi.rocketmq.utils.EchartsDataUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialSystemOtherCollectDataServiceImpl.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialSystemOtherCollectDataServiceImpl.java index 887ef68..e9106f4 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialSystemOtherCollectDataServiceImpl.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialSystemOtherCollectDataServiceImpl.java @@ -1,13 +1,13 @@ package com.ruoyi.rocketmq.service.impl; import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.common.core.utils.EchartsDataUtils; import com.ruoyi.rocketmq.domain.InitialCpuInfo; import com.ruoyi.rocketmq.domain.InitialSystemOtherCollectData; import com.ruoyi.rocketmq.enums.ServerLogoEnum; import com.ruoyi.rocketmq.mapper.InitialCpuInfoMapper; import com.ruoyi.rocketmq.mapper.InitialSystemOtherCollectDataMapper; import com.ruoyi.rocketmq.service.IInitialSystemOtherCollectDataService; -import com.ruoyi.rocketmq.utils.EchartsDataUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/RmDeploymentPolicyServiceImpl.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/RmDeploymentPolicyServiceImpl.java index f6332f1..00b0e41 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/RmDeploymentPolicyServiceImpl.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/RmDeploymentPolicyServiceImpl.java @@ -77,6 +77,7 @@ public class RmDeploymentPolicyServiceImpl implements IRmDeploymentPolicyService List deploymentPolicyList = rmDeploymentPolicyMapper.selectRmDeploymentPolicyList(rmDeploymentPolicy); // 包含设备名称赋值 deploymentPolicyList.forEach(policy -> { + getIncludeNameById(policy); // 不在线数量赋值 String deviceMsg = policy.getDeployDevice(); diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/RmResourceRemoteServiceImpl.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/RmResourceRemoteServiceImpl.java index 392234e..57f76d8 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/RmResourceRemoteServiceImpl.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/RmResourceRemoteServiceImpl.java @@ -109,8 +109,10 @@ public class RmResourceRemoteServiceImpl implements IRmResourceRemoteService RmResourceRegistrationRemote queryParam = new RmResourceRegistrationRemote(); queryParam.setHardwareSn(rmResourceRemote.getHardwareSn()); R registrationRemote = remoteRevenueConfigService.getListByHardwareSn(queryParam, SecurityConstants.INNER); - RmResourceRegistrationRemote resourceMsg = registrationRemote.getData(); - resultMap.put("resourceMsg", resourceMsg); + if(registrationRemote != null && registrationRemote.getData() != null){ + RmResourceRegistrationRemote resourceMsg = registrationRemote.getData(); + resultMap.put("resourceMsg", resourceMsg); + } // 脚本执行结果构建 List> scriptList = new ArrayList<>(); List reslutList = rmResourceRemoteMapper.selectRmResourceRemoteList(rmResourceRemote); diff --git a/ruoyi-rocketmq/src/main/resources/mapper/rocketmq/InitialSwitchInfoMapper.xml b/ruoyi-rocketmq/src/main/resources/mapper/rocketmq/InitialSwitchInfoMapper.xml index cccedc2..a2303bd 100644 --- a/ruoyi-rocketmq/src/main/resources/mapper/rocketmq/InitialSwitchInfoMapper.xml +++ b/ruoyi-rocketmq/src/main/resources/mapper/rocketmq/InitialSwitchInfoMapper.xml @@ -35,7 +35,7 @@ and client_id = #{clientId} - and name like concat('%', #{name}, '%') + and name = #{name} and in_bytes = #{inBytes} and out_bytes = #{outBytes} and status = #{status} @@ -178,7 +178,7 @@ \ No newline at end of file diff --git a/ruoyi-rocketmq/src/main/resources/mapper/rocketmq/RmDeploymentPolicyMapper.xml b/ruoyi-rocketmq/src/main/resources/mapper/rocketmq/RmDeploymentPolicyMapper.xml index 94d338e..aaa5d5e 100644 --- a/ruoyi-rocketmq/src/main/resources/mapper/rocketmq/RmDeploymentPolicyMapper.xml +++ b/ruoyi-rocketmq/src/main/resources/mapper/rocketmq/RmDeploymentPolicyMapper.xml @@ -23,17 +23,15 @@ + - + - select id, policy_name, description, resource_group_id, included_devices_id, source_file_path_type, - source_file_path, target_directory, command_content, execution_method, scheduled_time, policy_status, - deploy_time, script_type, create_time, update_time, create_by, update_by, script_name, script_path, - default_params, deploy_device from rm_deployment_policy + select id, policy_name, description, resource_group_id, included_devices_id, source_file_path_type, source_file_path, target_directory, command_content, execution_method, scheduled_time, policy_status, deploy_time, script_type, create_time, update_time, create_by, update_by, deploy_device, script_name, script_path, default_params, task_name from rm_deployment_policy @@ -83,10 +83,11 @@ update_time, create_by, update_by, + deploy_device, script_name, script_path, default_params, - deploy_device, + task_name, #{policyName}, @@ -106,10 +107,11 @@ #{updateTime}, #{createBy}, #{updateBy}, + #{deployDevice}, #{scriptName}, #{scriptPath}, #{defaultParams}, - #{deployDevice}, + #{taskName}, @@ -119,7 +121,6 @@ policy_name = #{policyName}, description = #{description}, resource_group_id = #{resourceGroupId}, - resource_group_id = null, included_devices_id = #{includedDevicesId}, source_file_path_type = #{sourceFilePathType}, source_file_path = #{sourceFilePath}, @@ -134,10 +135,11 @@ update_time = #{updateTime}, create_by = #{createBy}, update_by = #{updateBy}, + deploy_device = #{deployDevice}, script_name = #{scriptName}, script_path = #{scriptPath}, default_params = #{defaultParams}, - deploy_device = #{deployDevice}, + task_name = #{taskName}, where id = #{id}