交换机收益图形分析、服务器注册优化
This commit is contained in:
		@@ -115,4 +115,14 @@ public interface RemoteRevenueConfigService
 | 
				
			|||||||
    @PostMapping("/registration/innerUpdateRegist")
 | 
					    @PostMapping("/registration/innerUpdateRegist")
 | 
				
			||||||
    public R<Integer> innerUpdateRegist(@RequestBody RmResourceRegistrationRemote rmResourceRegistrationRemote, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 | 
					    public R<Integer> innerUpdateRegist(@RequestBody RmResourceRegistrationRemote rmResourceRegistrationRemote, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 获取95值列表
 | 
				
			||||||
 | 
					     * @param epsNodeBandwidthRemote
 | 
				
			||||||
 | 
					     * @param source
 | 
				
			||||||
 | 
					     * @return
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @PostMapping("/bandwidth/getEpsNodeBandWidthList")
 | 
				
			||||||
 | 
					    public R<List<EpsNodeBandwidthRemote>> getEpsNodeBandWidthList(@RequestBody EpsNodeBandwidthRemote epsNodeBandwidthRemote, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,6 +4,7 @@ import com.ruoyi.common.core.constant.SecurityConstants;
 | 
				
			|||||||
import com.ruoyi.common.core.constant.ServiceNameConstants;
 | 
					import com.ruoyi.common.core.constant.ServiceNameConstants;
 | 
				
			||||||
import com.ruoyi.common.core.domain.R;
 | 
					import com.ruoyi.common.core.domain.R;
 | 
				
			||||||
import com.ruoyi.system.api.domain.RmAlarmRecordRemote;
 | 
					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.RmMonitorPolicyRemote;
 | 
				
			||||||
import com.ruoyi.system.api.domain.RmNetworkInterfaceRemote;
 | 
					import com.ruoyi.system.api.domain.RmNetworkInterfaceRemote;
 | 
				
			||||||
import com.ruoyi.system.api.factory.RemoteRocketMqFallbackFactory;
 | 
					import com.ruoyi.system.api.factory.RemoteRocketMqFallbackFactory;
 | 
				
			||||||
@@ -95,4 +96,6 @@ public interface RemoteRocketMqService {
 | 
				
			|||||||
     */
 | 
					     */
 | 
				
			||||||
    @GetMapping("/monitorPolicy/issueDefaultPolicyByClientId")
 | 
					    @GetMapping("/monitorPolicy/issueDefaultPolicyByClientId")
 | 
				
			||||||
    public R<Integer> issueDefaultPolicyByClientId(String clientId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 | 
					    public R<Integer> issueDefaultPolicyByClientId(String clientId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 | 
				
			||||||
 | 
					    @PostMapping("policy/addDeployScript")
 | 
				
			||||||
 | 
					    R<Integer> addDeployScript(@RequestBody RmDeployScriptRemote addData, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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<String> nodeNames;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private List<String> switchNames;
 | 
				
			||||||
 | 
					    /** 计算方式 */
 | 
				
			||||||
 | 
					    private String calculationMode;
 | 
				
			||||||
 | 
					    /** 客户端id */
 | 
				
			||||||
 | 
					    private String clientId;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -29,4 +29,6 @@ public class NetworkInfo {
 | 
				
			|||||||
    // 公网 IP
 | 
					    // 公网 IP
 | 
				
			||||||
    @JsonProperty("publicIp")
 | 
					    @JsonProperty("publicIp")
 | 
				
			||||||
    private String publicIp;
 | 
					    private String publicIp;
 | 
				
			||||||
 | 
					    @JsonProperty("type")
 | 
				
			||||||
 | 
					    private String type;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -50,4 +50,6 @@ public class RmNetworkInterfaceRemote extends BaseEntity {
 | 
				
			|||||||
    private String gateway;
 | 
					    private String gateway;
 | 
				
			||||||
    /** 绑定ip 1业务IP,2管理ip */
 | 
					    /** 绑定ip 1业务IP,2管理ip */
 | 
				
			||||||
    private String bindIp;
 | 
					    private String bindIp;
 | 
				
			||||||
 | 
					    /** 新旧标识 */
 | 
				
			||||||
 | 
					    private Integer newFlag;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,12 @@
 | 
				
			|||||||
package com.ruoyi.system.api.domain;
 | 
					package com.ruoyi.system.api.domain;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.fasterxml.jackson.annotation.JsonFormat;
 | 
				
			||||||
import com.ruoyi.common.core.annotation.Excel;
 | 
					import com.ruoyi.common.core.annotation.Excel;
 | 
				
			||||||
import com.ruoyi.common.core.web.domain.BaseEntity;
 | 
					import com.ruoyi.common.core.web.domain.BaseEntity;
 | 
				
			||||||
import lombok.Data;
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * 资源注册对象 rm_resource_registration
 | 
					 * 资源注册对象 rm_resource_registration
 | 
				
			||||||
 * 
 | 
					 * 
 | 
				
			||||||
@@ -171,5 +174,9 @@ public class RmResourceRegistrationRemote extends BaseEntity
 | 
				
			|||||||
     * 心跳周期(单位:秒)
 | 
					     * 心跳周期(单位:秒)
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    private Integer heartbeatInterval;
 | 
					    private Integer heartbeatInterval;
 | 
				
			||||||
 | 
					    /** 上机时间 */
 | 
				
			||||||
 | 
					    @Excel(name = "上机时间")
 | 
				
			||||||
 | 
					    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 | 
				
			||||||
 | 
					    private Date onboardTime;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -81,6 +81,11 @@ public class RemoteRevenueConfigFallbackFactory implements FallbackFactory<Remot
 | 
				
			|||||||
            public R<Integer> innerUpdateRegist(RmResourceRegistrationRemote rmResourceRegistrationRemote, String source) {
 | 
					            public R<Integer> innerUpdateRegist(RmResourceRegistrationRemote rmResourceRegistrationRemote, String source) {
 | 
				
			||||||
                return R.fail("修改服务器注册信息失败:" + throwable.getMessage());
 | 
					                return R.fail("修改服务器注册信息失败:" + throwable.getMessage());
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            @Override
 | 
				
			||||||
 | 
					            public R<List<EpsNodeBandwidthRemote>> getEpsNodeBandWidthList(EpsNodeBandwidthRemote epsNodeBandwidthRemote, String source) {
 | 
				
			||||||
 | 
					                return R.fail("获取95值列表失败:" + throwable.getMessage());
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,6 +3,7 @@ package com.ruoyi.system.api.factory;
 | 
				
			|||||||
import com.ruoyi.common.core.domain.R;
 | 
					import com.ruoyi.common.core.domain.R;
 | 
				
			||||||
import com.ruoyi.system.api.RemoteRocketMqService;
 | 
					import com.ruoyi.system.api.RemoteRocketMqService;
 | 
				
			||||||
import com.ruoyi.system.api.domain.RmAlarmRecordRemote;
 | 
					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.RmMonitorPolicyRemote;
 | 
				
			||||||
import com.ruoyi.system.api.domain.RmNetworkInterfaceRemote;
 | 
					import com.ruoyi.system.api.domain.RmNetworkInterfaceRemote;
 | 
				
			||||||
import org.slf4j.Logger;
 | 
					import org.slf4j.Logger;
 | 
				
			||||||
@@ -77,6 +78,11 @@ public class RemoteRocketMqFallbackFactory implements FallbackFactory<RemoteRock
 | 
				
			|||||||
            public R<Integer> issueDefaultPolicyByClientId(String clientId, String source) {
 | 
					            public R<Integer> issueDefaultPolicyByClientId(String clientId, String source) {
 | 
				
			||||||
                return R.fail(throwable.getMessage());
 | 
					                return R.fail(throwable.getMessage());
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            @Override
 | 
				
			||||||
 | 
					            public R<Integer> addDeployScript(RmDeployScriptRemote addData, String source) {
 | 
				
			||||||
 | 
					                return R.fail(throwable.getMessage());
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,7 +13,7 @@ import lombok.NoArgsConstructor;
 | 
				
			|||||||
@NoArgsConstructor
 | 
					@NoArgsConstructor
 | 
				
			||||||
public enum MsgEnum {
 | 
					public enum MsgEnum {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    多公网IP探测("PUBLICIPDETECT"),
 | 
					    多公网IP探测("NETWORK_DETECT"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    获取最新策略("GET_POLICY"),
 | 
					    获取最新策略("GET_POLICY"),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,4 @@
 | 
				
			|||||||
package com.ruoyi.rocketmq.utils;
 | 
					package com.ruoyi.common.core.utils;
 | 
				
			||||||
 | 
					 | 
				
			||||||
import com.ruoyi.common.core.utils.DateUtils;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.*;
 | 
					import java.util.*;
 | 
				
			||||||
import java.util.function.Function;
 | 
					import java.util.function.Function;
 | 
				
			||||||
@@ -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;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
package com.ruoyi.system.controller;
 | 
					package com.ruoyi.system.controller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.github.pagehelper.PageInfo;
 | 
					import com.github.pagehelper.PageInfo;
 | 
				
			||||||
 | 
					import com.ruoyi.common.core.domain.R;
 | 
				
			||||||
import com.ruoyi.common.core.exception.ServiceException;
 | 
					import com.ruoyi.common.core.exception.ServiceException;
 | 
				
			||||||
import com.ruoyi.common.core.utils.DateUtils;
 | 
					import com.ruoyi.common.core.utils.DateUtils;
 | 
				
			||||||
import com.ruoyi.common.core.utils.poi.ExcelUtil;
 | 
					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.core.web.page.TableDataInfo;
 | 
				
			||||||
import com.ruoyi.common.log.annotation.Log;
 | 
					import com.ruoyi.common.log.annotation.Log;
 | 
				
			||||||
import com.ruoyi.common.log.enums.BusinessType;
 | 
					import com.ruoyi.common.log.enums.BusinessType;
 | 
				
			||||||
 | 
					import com.ruoyi.common.security.annotation.InnerAuth;
 | 
				
			||||||
import com.ruoyi.common.security.annotation.RequiresPermissions;
 | 
					import com.ruoyi.common.security.annotation.RequiresPermissions;
 | 
				
			||||||
import com.ruoyi.system.domain.EpsInitialTrafficData;
 | 
					import com.ruoyi.system.domain.EpsInitialTrafficData;
 | 
				
			||||||
import com.ruoyi.system.domain.EpsNodeBandwidth;
 | 
					import com.ruoyi.system.domain.EpsNodeBandwidth;
 | 
				
			||||||
@@ -316,4 +318,15 @@ public class EpsNodeBandwidthController extends BaseController
 | 
				
			|||||||
        List<Map> list = epsNodeBandwidthService.graphicalAnalysis(epsNodeBandwidth, "7", ChronoUnit.MONTHS);
 | 
					        List<Map> list = epsNodeBandwidthService.graphicalAnalysis(epsNodeBandwidth, "7", ChronoUnit.MONTHS);
 | 
				
			||||||
        return success(list);
 | 
					        return success(list);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 查询节点带宽信息列表
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @PostMapping("/getEpsNodeBandWidthList")
 | 
				
			||||||
 | 
					    @InnerAuth
 | 
				
			||||||
 | 
					    public R<List<EpsNodeBandwidth>> getEpsNodeBandWidthList(@RequestBody EpsNodeBandwidth epsNodeBandwidth)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        List<EpsNodeBandwidth> list = epsNodeBandwidthService.selectEpsNodeBandwidthList(epsNodeBandwidth);
 | 
				
			||||||
 | 
					        return R.ok(list);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.*;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import javax.servlet.http.HttpServletResponse;
 | 
					import javax.servlet.http.HttpServletResponse;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * 交换机监控信息Controller
 | 
					 * 交换机监控信息Controller
 | 
				
			||||||
@@ -105,4 +106,24 @@ public class InitialSwitchInfoDetailsController extends BaseController
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
        return initialSwitchInfoDetailsService.autoSaveSwitchTraffic(initialSwitchInfoDetails);
 | 
					        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);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -212,5 +212,16 @@ public class RmResourceRegistrationController extends BaseController
 | 
				
			|||||||
        int rows = rmResourceRegistrationService.bindBusinessPublicIp(rmResourceRegistration);
 | 
					        int rows = rmResourceRegistrationService.bindBusinessPublicIp(rmResourceRegistration);
 | 
				
			||||||
        return toAjax(rows);
 | 
					        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 */
 | 
					    /** 客户端id */
 | 
				
			||||||
    private String clientId;
 | 
					    private String clientId;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -110,4 +110,6 @@ public class InitialSwitchInfoDetails extends BaseEntity
 | 
				
			|||||||
    private String ifOutErrors;
 | 
					    private String ifOutErrors;
 | 
				
			||||||
    /** 端口索引 */
 | 
					    /** 端口索引 */
 | 
				
			||||||
    private String ifIndex;
 | 
					    private String ifIndex;
 | 
				
			||||||
 | 
					    /** 计算方式 */
 | 
				
			||||||
 | 
					    public String calculationMode;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -281,6 +281,8 @@ public class RmResourceRegistration extends BaseEntity
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @Excel(name = "管理网-IPv4地址")
 | 
					    @Excel(name = "管理网-IPv4地址")
 | 
				
			||||||
    private String mgmtIpv4Address; // 管理网-IPv4地址
 | 
					    private String mgmtIpv4Address; // 管理网-IPv4地址
 | 
				
			||||||
 | 
					    @Excel(name = "管理网-网关")
 | 
				
			||||||
 | 
					    private String mgmtGateway; // 管理网-IPv4地址
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /** 多条件查询 */
 | 
					    /** 多条件查询 */
 | 
				
			||||||
    private String queryParam;
 | 
					    private String queryParam;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -93,4 +93,10 @@ public interface RmResourceRegistrationMapper
 | 
				
			|||||||
     * @return
 | 
					     * @return
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    RmResourceRegistration selectRegistMsgByClientId(RmResourceRegistration rmResourceRegistration);
 | 
					    RmResourceRegistration selectRegistMsgByClientId(RmResourceRegistration rmResourceRegistration);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 获取所有逻辑节点标识
 | 
				
			||||||
 | 
					     * @return
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    List<Map> getAllLogicalNodeId();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,6 +6,7 @@ import com.ruoyi.system.domain.InitialSwitchInfoDetails;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import java.math.BigDecimal;
 | 
					import java.math.BigDecimal;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * 交换机监控信息Service接口
 | 
					 * 交换机监控信息Service接口
 | 
				
			||||||
@@ -94,4 +95,18 @@ public interface IInitialSwitchInfoDetailsService
 | 
				
			|||||||
     * @return
 | 
					     * @return
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    BigDecimal sumTrafficBySwitch();
 | 
					    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);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -113,4 +113,10 @@ public interface IRmResourceRegistrationService
 | 
				
			|||||||
     * @return
 | 
					     * @return
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    int bindBusinessPublicIp(RmResourceRegistration rmResourceRegistration);
 | 
					    int bindBusinessPublicIp(RmResourceRegistration rmResourceRegistration);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 查询所有逻辑节点标识
 | 
				
			||||||
 | 
					     * @return
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    List<Map> getAllLogicalNodeId();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,12 +4,13 @@ import com.ruoyi.common.core.constant.SecurityConstants;
 | 
				
			|||||||
import com.ruoyi.common.core.utils.DateUtils;
 | 
					import com.ruoyi.common.core.utils.DateUtils;
 | 
				
			||||||
import com.ruoyi.common.core.utils.StringUtils;
 | 
					import com.ruoyi.common.core.utils.StringUtils;
 | 
				
			||||||
import com.ruoyi.common.security.utils.SecurityUtils;
 | 
					import com.ruoyi.common.security.utils.SecurityUtils;
 | 
				
			||||||
import com.ruoyi.system.enums.ReviewEnum;
 | 
					 | 
				
			||||||
import com.ruoyi.system.api.RemoteRocketMqService;
 | 
					import com.ruoyi.system.api.RemoteRocketMqService;
 | 
				
			||||||
 | 
					import com.ruoyi.system.api.domain.RmDeployScriptRemote;
 | 
				
			||||||
import com.ruoyi.system.api.domain.RmNetworkInterfaceRemote;
 | 
					import com.ruoyi.system.api.domain.RmNetworkInterfaceRemote;
 | 
				
			||||||
import com.ruoyi.system.domain.EpsBusinessDeploy;
 | 
					import com.ruoyi.system.domain.EpsBusinessDeploy;
 | 
				
			||||||
import com.ruoyi.system.domain.EpsMethodChangeRecord;
 | 
					import com.ruoyi.system.domain.EpsMethodChangeRecord;
 | 
				
			||||||
import com.ruoyi.system.domain.RmResourceRegistration;
 | 
					import com.ruoyi.system.domain.RmResourceRegistration;
 | 
				
			||||||
 | 
					import com.ruoyi.system.enums.ReviewEnum;
 | 
				
			||||||
import com.ruoyi.system.mapper.EpsBusinessDeployMapper;
 | 
					import com.ruoyi.system.mapper.EpsBusinessDeployMapper;
 | 
				
			||||||
import com.ruoyi.system.mapper.EpsMethodChangeRecordMapper;
 | 
					import com.ruoyi.system.mapper.EpsMethodChangeRecordMapper;
 | 
				
			||||||
import com.ruoyi.system.mapper.RmResourceRegistrationMapper;
 | 
					import com.ruoyi.system.mapper.RmResourceRegistrationMapper;
 | 
				
			||||||
@@ -165,6 +166,16 @@ public class EpsBusinessDeployServiceImpl implements IEpsBusinessDeployService
 | 
				
			|||||||
            String businessCode = businessMsg.getBusinessCode();
 | 
					            String businessCode = businessMsg.getBusinessCode();
 | 
				
			||||||
            String businessName = businessMsg.getBusinessName();
 | 
					            String businessName = businessMsg.getBusinessName();
 | 
				
			||||||
            String clientIdStr = businessMsg.getDeployDevice();
 | 
					            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");
 | 
					            String[] clientIds = clientIdStr.split("\n");
 | 
				
			||||||
            // 保存业务修改记录
 | 
					            // 保存业务修改记录
 | 
				
			||||||
            for (String clientId : clientIds) {
 | 
					            for (String clientId : clientIds) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,8 +4,9 @@ import com.github.pagehelper.PageInfo;
 | 
				
			|||||||
import com.ruoyi.common.core.utils.DateUtils;
 | 
					import com.ruoyi.common.core.utils.DateUtils;
 | 
				
			||||||
import com.ruoyi.common.core.web.page.PageDomain;
 | 
					import com.ruoyi.common.core.web.page.PageDomain;
 | 
				
			||||||
import com.ruoyi.system.domain.EpsInitialTrafficData;
 | 
					import com.ruoyi.system.domain.EpsInitialTrafficData;
 | 
				
			||||||
 | 
					import com.ruoyi.system.domain.EpsMethodChangeRecord;
 | 
				
			||||||
import com.ruoyi.system.domain.EpsNodeBandwidth;
 | 
					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.EpsNodeBandwidthMapper;
 | 
				
			||||||
import com.ruoyi.system.mapper.EpsServerRevenueConfigMapper;
 | 
					import com.ruoyi.system.mapper.EpsServerRevenueConfigMapper;
 | 
				
			||||||
import com.ruoyi.system.service.EpsInitialTrafficDataService;
 | 
					import com.ruoyi.system.service.EpsInitialTrafficDataService;
 | 
				
			||||||
@@ -43,6 +44,8 @@ public class EpsNodeBandwidthServiceImpl implements IEpsNodeBandwidthService
 | 
				
			|||||||
    private  EpsInitialTrafficDataService epsInitialTrafficDataService;
 | 
					    private  EpsInitialTrafficDataService epsInitialTrafficDataService;
 | 
				
			||||||
    @Autowired
 | 
					    @Autowired
 | 
				
			||||||
    private EpsServerRevenueConfigMapper epsServerRevenueConfigMapper;
 | 
					    private EpsServerRevenueConfigMapper epsServerRevenueConfigMapper;
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private EpsMethodChangeRecordMapper epsMethodChangeRecordMapper;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 查询节点带宽信息
 | 
					     * 查询节点带宽信息
 | 
				
			||||||
@@ -178,7 +181,15 @@ public class EpsNodeBandwidthServiceImpl implements IEpsNodeBandwidthService
 | 
				
			|||||||
                log.warn("参数为空,无法计算月均日95值");
 | 
					                log.warn("参数为空,无法计算月均日95值");
 | 
				
			||||||
                return 0;
 | 
					                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. 获取计算数据(防止空指针)
 | 
					            // 3. 获取计算数据(防止空指针)
 | 
				
			||||||
            EpsNodeBandwidth calculatedData = epsNodeBandwidthMapper.calculateAvg(epsNodeBandwidth);
 | 
					            EpsNodeBandwidth calculatedData = epsNodeBandwidthMapper.calculateAvg(epsNodeBandwidth);
 | 
				
			||||||
            if (calculatedData == null) {
 | 
					            if (calculatedData == null) {
 | 
				
			||||||
@@ -212,48 +223,7 @@ public class EpsNodeBandwidthServiceImpl implements IEpsNodeBandwidthService
 | 
				
			|||||||
                return 0;
 | 
					                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. 计算平均值
 | 
					            // 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());
 | 
					 | 
				
			||||||
                }else{
 | 
					 | 
				
			||||||
                    if(epsNodeBandwidth.getStartTime() == null){
 | 
					 | 
				
			||||||
                        epsNodeBandwidth.setCreateTime(DateUtils.parseDate(monthTime));
 | 
					 | 
				
			||||||
                    }else{
 | 
					 | 
				
			||||||
                        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");
 | 
					            epsNodeBandwidth.setBandwidthType("4");
 | 
				
			||||||
            // 2. 验证是否已经存在记录
 | 
					            // 2. 验证是否已经存在记录
 | 
				
			||||||
            List<EpsNodeBandwidth> existingRecords = epsNodeBandwidthMapper.selectEpsNodeBandwidthList(epsNodeBandwidth);
 | 
					            List<EpsNodeBandwidth> existingRecords = epsNodeBandwidthMapper.selectEpsNodeBandwidthList(epsNodeBandwidth);
 | 
				
			||||||
@@ -275,7 +245,6 @@ public class EpsNodeBandwidthServiceImpl implements IEpsNodeBandwidthService
 | 
				
			|||||||
            return existingRecords.isEmpty() ?
 | 
					            return existingRecords.isEmpty() ?
 | 
				
			||||||
                    epsNodeBandwidthMapper.insertEpsNodeBandwidth(epsNodeBandwidth) :
 | 
					                    epsNodeBandwidthMapper.insertEpsNodeBandwidth(epsNodeBandwidth) :
 | 
				
			||||||
                    epsNodeBandwidthMapper.updateEpsNodeBandwidth(epsNodeBandwidth);
 | 
					                    epsNodeBandwidthMapper.updateEpsNodeBandwidth(epsNodeBandwidth);
 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        } catch (Exception e) {
 | 
					        } catch (Exception e) {
 | 
				
			||||||
            log.error("计算月均日95值失败", e);
 | 
					            log.error("计算月均日95值失败", e);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,12 +2,15 @@ package com.ruoyi.system.service.impl;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import com.ruoyi.common.core.domain.R;
 | 
					import com.ruoyi.common.core.domain.R;
 | 
				
			||||||
import com.ruoyi.common.core.utils.DateUtils;
 | 
					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.common.core.utils.StringUtils;
 | 
				
			||||||
import com.ruoyi.system.domain.*;
 | 
					import com.ruoyi.system.domain.*;
 | 
				
			||||||
import com.ruoyi.system.mapper.*;
 | 
					import com.ruoyi.system.mapper.*;
 | 
				
			||||||
import com.ruoyi.system.service.IInitialSwitchInfoDetailsService;
 | 
					import com.ruoyi.system.service.IInitialSwitchInfoDetailsService;
 | 
				
			||||||
import com.ruoyi.system.util.CalculateUtil;
 | 
					import com.ruoyi.system.util.CalculateUtil;
 | 
				
			||||||
import lombok.extern.slf4j.Slf4j;
 | 
					import lombok.extern.slf4j.Slf4j;
 | 
				
			||||||
 | 
					import org.springframework.beans.BeanUtils;
 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.dao.DuplicateKeyException;
 | 
					import org.springframework.dao.DuplicateKeyException;
 | 
				
			||||||
import org.springframework.stereotype.Service;
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
@@ -16,11 +19,12 @@ import org.springframework.transaction.annotation.Transactional;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import java.math.BigDecimal;
 | 
					import java.math.BigDecimal;
 | 
				
			||||||
import java.math.RoundingMode;
 | 
					import java.math.RoundingMode;
 | 
				
			||||||
 | 
					import java.time.LocalDate;
 | 
				
			||||||
import java.time.LocalDateTime;
 | 
					import java.time.LocalDateTime;
 | 
				
			||||||
 | 
					import java.time.YearMonth;
 | 
				
			||||||
import java.time.format.DateTimeFormatter;
 | 
					import java.time.format.DateTimeFormatter;
 | 
				
			||||||
import java.util.ArrayList;
 | 
					import java.util.*;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.function.Function;
 | 
				
			||||||
import java.util.Objects;
 | 
					 | 
				
			||||||
import java.util.stream.Collectors;
 | 
					import java.util.stream.Collectors;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@@ -694,4 +698,123 @@ public class InitialSwitchInfoDetailsServiceImpl implements IInitialSwitchInfoDe
 | 
				
			|||||||
            epsNodeBandwidthMapper.insertEpsNodeBandwidth(bandwidth);
 | 
					            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<>();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -119,6 +119,7 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio
 | 
				
			|||||||
        // 根据clientId查询网卡信息
 | 
					        // 根据clientId查询网卡信息
 | 
				
			||||||
        RmNetworkInterfaceRemote queryParam = new RmNetworkInterfaceRemote();
 | 
					        RmNetworkInterfaceRemote queryParam = new RmNetworkInterfaceRemote();
 | 
				
			||||||
        queryParam.setClientId(clientId);
 | 
					        queryParam.setClientId(clientId);
 | 
				
			||||||
 | 
					        queryParam.setNewFlag(1);
 | 
				
			||||||
        // 安全获取网络接口列表
 | 
					        // 安全获取网络接口列表
 | 
				
			||||||
        R<List<RmNetworkInterfaceRemote>> result = remoteRocketMqService.getNetworkInterfaceList(queryParam, SecurityConstants.INNER);
 | 
					        R<List<RmNetworkInterfaceRemote>> result = remoteRocketMqService.getNetworkInterfaceList(queryParam, SecurityConstants.INNER);
 | 
				
			||||||
        // 多层安全判断
 | 
					        // 多层安全判断
 | 
				
			||||||
@@ -137,7 +138,7 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio
 | 
				
			|||||||
        int businessIpCount = 1;
 | 
					        int businessIpCount = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (RmNetworkInterfaceRemote network : networkList) {
 | 
					        for (RmNetworkInterfaceRemote network : networkList) {
 | 
				
			||||||
            if ("1".equals(network.getBindIp())) {
 | 
					            if ("1".equals(network.getBindIp()) || "3".equals(network.getBindIp())) {
 | 
				
			||||||
                // 业务IP处理
 | 
					                // 业务IP处理
 | 
				
			||||||
                if (businessIpCount > 3) {
 | 
					                if (businessIpCount > 3) {
 | 
				
			||||||
                    continue; // 最多只处理3个业务IP
 | 
					                    continue; // 最多只处理3个业务IP
 | 
				
			||||||
@@ -181,7 +182,8 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                businessIpCount++;
 | 
					                businessIpCount++;
 | 
				
			||||||
            } else if ("2".equals(network.getBindIp())) {
 | 
					            }
 | 
				
			||||||
 | 
					            if ("2".equals(network.getBindIp())  || "3".equals(network.getBindIp())) {
 | 
				
			||||||
                // 管理网IP处理
 | 
					                // 管理网IP处理
 | 
				
			||||||
                registration.setMgmtIsp(network.getIsp());
 | 
					                registration.setMgmtIsp(network.getIsp());
 | 
				
			||||||
                registration.setMgmtProvince(network.getProvince());
 | 
					                registration.setMgmtProvince(network.getProvince());
 | 
				
			||||||
@@ -191,6 +193,7 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio
 | 
				
			|||||||
                registration.setMgmtMacAddress(network.getMacAddress());
 | 
					                registration.setMgmtMacAddress(network.getMacAddress());
 | 
				
			||||||
                registration.setMgmtInterfaceType(network.getInterfaceType());
 | 
					                registration.setMgmtInterfaceType(network.getInterfaceType());
 | 
				
			||||||
                registration.setMgmtIpv4Address(network.getIpv4Address());
 | 
					                registration.setMgmtIpv4Address(network.getIpv4Address());
 | 
				
			||||||
 | 
					                registration.setMgmtGateway(network.getGateway());
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        // 设置金山machineCode
 | 
					        // 设置金山machineCode
 | 
				
			||||||
@@ -549,6 +552,8 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio
 | 
				
			|||||||
                        insertData.setMultiPublicIpStatus("0");
 | 
					                        insertData.setMultiPublicIpStatus("0");
 | 
				
			||||||
                        insertData.setResourceType("1");
 | 
					                        insertData.setResourceType("1");
 | 
				
			||||||
                        insertData.setCreateTime(createTime);
 | 
					                        insertData.setCreateTime(createTime);
 | 
				
			||||||
 | 
					                        insertData.setHeartbeatCount(3);
 | 
				
			||||||
 | 
					                        insertData.setHeartbeatInterval(30);
 | 
				
			||||||
                        rmResourceRegistrationMapper.insertRmResourceRegistration(insertData);
 | 
					                        rmResourceRegistrationMapper.insertRmResourceRegistration(insertData);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }catch (Exception e){
 | 
					                }catch (Exception e){
 | 
				
			||||||
@@ -665,5 +670,14 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio
 | 
				
			|||||||
        return 1;
 | 
					        return 1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 查询所有逻辑节点标识
 | 
				
			||||||
 | 
					     * @return
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public List<Map> getAllLogicalNodeId() {
 | 
				
			||||||
 | 
					        return rmResourceRegistrationMapper.getAllLogicalNodeId();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -339,6 +339,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 | 
				
			|||||||
            <if test="creatorName != null">creator_name = #{creatorName},</if>
 | 
					            <if test="creatorName != null">creator_name = #{creatorName},</if>
 | 
				
			||||||
            <if test="updaterId != null">updater_id = #{updaterId},</if>
 | 
					            <if test="updaterId != null">updater_id = #{updaterId},</if>
 | 
				
			||||||
            <if test="updaterName != null">updater_name = #{updaterName},</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>
 | 
					            <if test="onboardTime != null">onboard_time = #{onboardTime},</if>
 | 
				
			||||||
        </trim>
 | 
					        </trim>
 | 
				
			||||||
        <where>
 | 
					        <where>
 | 
				
			||||||
@@ -370,4 +379,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 | 
				
			|||||||
        </where>
 | 
					        </where>
 | 
				
			||||||
        order by create_time desc
 | 
					        order by create_time desc
 | 
				
			||||||
    </select>
 | 
					    </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>
 | 
					</mapper>
 | 
				
			||||||
@@ -1,5 +1,6 @@
 | 
				
			|||||||
package com.ruoyi.rocketmq.controller;
 | 
					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.utils.poi.ExcelUtil;
 | 
				
			||||||
import com.ruoyi.common.core.web.controller.BaseController;
 | 
					import com.ruoyi.common.core.web.controller.BaseController;
 | 
				
			||||||
import com.ruoyi.common.core.web.domain.AjaxResult;
 | 
					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.core.web.page.TableDataInfo;
 | 
				
			||||||
import com.ruoyi.common.log.annotation.Log;
 | 
					import com.ruoyi.common.log.annotation.Log;
 | 
				
			||||||
import com.ruoyi.common.log.enums.BusinessType;
 | 
					import com.ruoyi.common.log.enums.BusinessType;
 | 
				
			||||||
 | 
					import com.ruoyi.common.security.annotation.InnerAuth;
 | 
				
			||||||
import com.ruoyi.common.security.annotation.RequiresPermissions;
 | 
					import com.ruoyi.common.security.annotation.RequiresPermissions;
 | 
				
			||||||
import com.ruoyi.rocketmq.domain.RmDeploymentPolicy;
 | 
					import com.ruoyi.rocketmq.domain.RmDeploymentPolicy;
 | 
				
			||||||
import com.ruoyi.rocketmq.service.IRmDeploymentPolicyService;
 | 
					import com.ruoyi.rocketmq.service.IRmDeploymentPolicyService;
 | 
				
			||||||
@@ -109,4 +111,14 @@ public class RmDeploymentPolicyController extends BaseController
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
        return success(rmDeploymentPolicyService.issueDeploymentPolicy(id));
 | 
					        return success(rmDeploymentPolicyService.issueDeploymentPolicy(id));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 新增服务器脚本策略
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @InnerAuth
 | 
				
			||||||
 | 
					    @PostMapping("/addDeployScript")
 | 
				
			||||||
 | 
					    public R<Integer> addDeployScript(@RequestBody RmDeploymentPolicy rmDeploymentPolicy)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return R.ok(rmDeploymentPolicyService.insertRmDeploymentPolicy(rmDeploymentPolicy));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -65,6 +65,8 @@ public class InitialSwitchInfo extends BaseEntity
 | 
				
			|||||||
    private String startTime;
 | 
					    private String startTime;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private String endTime;
 | 
					    private String endTime;
 | 
				
			||||||
 | 
					    /** 计算方式 */
 | 
				
			||||||
 | 
					    private String calculationMode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -90,6 +90,8 @@ public class RmDeploymentPolicy extends BaseEntity
 | 
				
			|||||||
    private String scriptPath;
 | 
					    private String scriptPath;
 | 
				
			||||||
    /** 业务脚本参数 */
 | 
					    /** 业务脚本参数 */
 | 
				
			||||||
    private String defaultParams;
 | 
					    private String defaultParams;
 | 
				
			||||||
 | 
					    /** 业务下发名称 */
 | 
				
			||||||
 | 
					    private String taskName;
 | 
				
			||||||
    /** 不在线数量 */
 | 
					    /** 不在线数量 */
 | 
				
			||||||
    private Integer offlineNum;
 | 
					    private Integer offlineNum;
 | 
				
			||||||
    /** 执行成功数量 */
 | 
					    /** 执行成功数量 */
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -105,6 +105,213 @@ public class MessageHandler {
 | 
				
			|||||||
        registerHandler(MsgEnum.挂载上报.getValue(), this::handleMountPointMessage);
 | 
					        registerHandler(MsgEnum.挂载上报.getValue(), this::handleMountPointMessage);
 | 
				
			||||||
        registerHandler(MsgEnum.系统其他上报.getValue(), this::handleOtherSystemMessage);
 | 
					        registerHandler(MsgEnum.系统其他上报.getValue(), this::handleOtherSystemMessage);
 | 
				
			||||||
        registerHandler(MsgEnum.心跳上报.getValue(), this::handleHeartbeatMessage);
 | 
					        registerHandler(MsgEnum.心跳上报.getValue(), this::handleHeartbeatMessage);
 | 
				
			||||||
 | 
					        registerHandler(MsgEnum.多公网IP探测.getValue(), this::handleNetWorkDelectMessage);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 保存网卡信息
 | 
				
			||||||
 | 
					     * @param message
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private void handleNetWorkDelectMessage(DeviceMessage message) {
 | 
				
			||||||
 | 
					        List<RegisterMsgVo> 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<NetworkInfo> 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<RmNetworkInterface> 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<RmNetworkInterface> 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<RmNetworkInterface> 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<RmNetworkInterface> 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.setMacAddress(networkInfo.getMac());
 | 
				
			||||||
                        insertData.setProvince(networkInfo.getProvince());
 | 
					                        insertData.setProvince(networkInfo.getProvince());
 | 
				
			||||||
                        insertData.setPublicIp(networkInfo.getPublicIp());
 | 
					                        insertData.setPublicIp(networkInfo.getPublicIp());
 | 
				
			||||||
 | 
					                        insertData.setInterfaceType(networkInfo.getType());
 | 
				
			||||||
                        insertData.setCreateTime(createTime);
 | 
					                        insertData.setCreateTime(createTime);
 | 
				
			||||||
                        rmNetworkInterfaceService.insertRmNetworkInterface(insertData);
 | 
					                        rmNetworkInterfaceService.insertRmNetworkInterface(insertData);
 | 
				
			||||||
                    }else{
 | 
					                    }else{
 | 
				
			||||||
@@ -201,6 +409,7 @@ public class MessageHandler {
 | 
				
			|||||||
                            insertData.setMacAddress(networkInfo.getMac());
 | 
					                            insertData.setMacAddress(networkInfo.getMac());
 | 
				
			||||||
                            insertData.setProvince(networkInfo.getProvince());
 | 
					                            insertData.setProvince(networkInfo.getProvince());
 | 
				
			||||||
                            insertData.setPublicIp(networkInfo.getPublicIp());
 | 
					                            insertData.setPublicIp(networkInfo.getPublicIp());
 | 
				
			||||||
 | 
					                            insertData.setInterfaceType(networkInfo.getType());
 | 
				
			||||||
                            rmNetworkInterfaceService.insertRmNetworkInterface(insertData);
 | 
					                            rmNetworkInterfaceService.insertRmNetworkInterface(insertData);
 | 
				
			||||||
                        }else {
 | 
					                        }else {
 | 
				
			||||||
                            RmNetworkInterface updateData = new RmNetworkInterface();
 | 
					                            RmNetworkInterface updateData = new RmNetworkInterface();
 | 
				
			||||||
@@ -227,6 +436,10 @@ public class MessageHandler {
 | 
				
			|||||||
                                updateData.setIsp(networkInfo.getCarrier());
 | 
					                                updateData.setIsp(networkInfo.getCarrier());
 | 
				
			||||||
                                needUpdate = true;
 | 
					                                needUpdate = true;
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
 | 
					                            if (!StringUtils.equals(networkInfo.getType(), oldInterfaceMsg.getInterfaceType())) {
 | 
				
			||||||
 | 
					                                updateData.setInterfaceType(networkInfo.getType());
 | 
				
			||||||
 | 
					                                needUpdate = true;
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
                            // 只有有字段变化时才执行更新
 | 
					                            // 只有有字段变化时才执行更新
 | 
				
			||||||
                            if (needUpdate) {
 | 
					                            if (needUpdate) {
 | 
				
			||||||
                                rmNetworkInterfaceService.updateRmNetworkInterfaceByMac(updateData);
 | 
					                                rmNetworkInterfaceService.updateRmNetworkInterfaceByMac(updateData);
 | 
				
			||||||
@@ -252,6 +465,7 @@ public class MessageHandler {
 | 
				
			|||||||
                            insertData.setMacAddress(networkInfo.getMac());
 | 
					                            insertData.setMacAddress(networkInfo.getMac());
 | 
				
			||||||
                            insertData.setProvince(networkInfo.getProvince());
 | 
					                            insertData.setProvince(networkInfo.getProvince());
 | 
				
			||||||
                            insertData.setPublicIp(networkInfo.getPublicIp());
 | 
					                            insertData.setPublicIp(networkInfo.getPublicIp());
 | 
				
			||||||
 | 
					                            insertData.setInterfaceType(networkInfo.getType());
 | 
				
			||||||
                            insertData.setCreateTime(createTime);
 | 
					                            insertData.setCreateTime(createTime);
 | 
				
			||||||
                            rmNetworkInterfaceService.insertRmNetworkInterface(insertData);
 | 
					                            rmNetworkInterfaceService.insertRmNetworkInterface(insertData);
 | 
				
			||||||
                        }else{
 | 
					                        }else{
 | 
				
			||||||
@@ -284,6 +498,7 @@ public class MessageHandler {
 | 
				
			|||||||
                                insertData.setMacAddress(networkInfo.getMac());
 | 
					                                insertData.setMacAddress(networkInfo.getMac());
 | 
				
			||||||
                                insertData.setProvince(networkInfo.getProvince());
 | 
					                                insertData.setProvince(networkInfo.getProvince());
 | 
				
			||||||
                                insertData.setPublicIp(networkInfo.getPublicIp());
 | 
					                                insertData.setPublicIp(networkInfo.getPublicIp());
 | 
				
			||||||
 | 
					                                insertData.setInterfaceType(networkInfo.getType());
 | 
				
			||||||
                                rmNetworkInterfaceService.insertRmNetworkInterface(insertData);
 | 
					                                rmNetworkInterfaceService.insertRmNetworkInterface(insertData);
 | 
				
			||||||
                            }else {
 | 
					                            }else {
 | 
				
			||||||
                                RmNetworkInterface updateData = new RmNetworkInterface();
 | 
					                                RmNetworkInterface updateData = new RmNetworkInterface();
 | 
				
			||||||
@@ -316,6 +531,10 @@ public class MessageHandler {
 | 
				
			|||||||
                                    updateData.setIsp(networkInfo.getCarrier());
 | 
					                                    updateData.setIsp(networkInfo.getCarrier());
 | 
				
			||||||
                                    needUpdate = true;
 | 
					                                    needUpdate = true;
 | 
				
			||||||
                                }
 | 
					                                }
 | 
				
			||||||
 | 
					                                if (!StringUtils.equals(networkInfo.getType(), oldInterfaceMsg.getInterfaceType())) {
 | 
				
			||||||
 | 
					                                    updateData.setInterfaceType(networkInfo.getType());
 | 
				
			||||||
 | 
					                                    needUpdate = true;
 | 
				
			||||||
 | 
					                                }
 | 
				
			||||||
                                // 只有有字段变化时才执行更新
 | 
					                                // 只有有字段变化时才执行更新
 | 
				
			||||||
                                if (needUpdate) {
 | 
					                                if (needUpdate) {
 | 
				
			||||||
                                    rmNetworkInterfaceService.updateRmNetworkInterfaceByMac(updateData);
 | 
					                                    rmNetworkInterfaceService.updateRmNetworkInterfaceByMac(updateData);
 | 
				
			||||||
@@ -325,7 +544,6 @@ public class MessageHandler {
 | 
				
			|||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -566,6 +784,8 @@ public class MessageHandler {
 | 
				
			|||||||
            RmResourceRegistrationRemote updateData = new RmResourceRegistrationRemote();
 | 
					            RmResourceRegistrationRemote updateData = new RmResourceRegistrationRemote();
 | 
				
			||||||
            updateData.setClientId(message.getClientId());
 | 
					            updateData.setClientId(message.getClientId());
 | 
				
			||||||
            updateData.setLogicalNodeId(heartbeat.getLogicalNode());
 | 
					            updateData.setLogicalNodeId(heartbeat.getLogicalNode());
 | 
				
			||||||
 | 
					            updateData.setAgentVersion(version);
 | 
				
			||||||
 | 
					            updateData.setOnboardTime(DateUtils.getNowDate());
 | 
				
			||||||
            remoteRevenueConfigService.innerUpdateRegist(updateData, SecurityConstants.INNER);
 | 
					            remoteRevenueConfigService.innerUpdateRegist(updateData, SecurityConstants.INNER);
 | 
				
			||||||
            // agent更新结果存储
 | 
					            // agent更新结果存储
 | 
				
			||||||
            RmAgentManagement query = new RmAgentManagement();
 | 
					            RmAgentManagement query = new RmAgentManagement();
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -102,4 +102,5 @@ public interface IInitialSwitchInfoService
 | 
				
			|||||||
     * @return
 | 
					     * @return
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    Map<String, Object> switchNetErrDiscardsEcharts(InitialSwitchInfo initialSwitchInfo);
 | 
					    Map<String, Object> switchNetErrDiscardsEcharts(InitialSwitchInfo initialSwitchInfo);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,10 @@
 | 
				
			|||||||
package com.ruoyi.rocketmq.service.impl;
 | 
					package com.ruoyi.rocketmq.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.ruoyi.common.core.utils.DateUtils;
 | 
					import com.ruoyi.common.core.utils.DateUtils;
 | 
				
			||||||
 | 
					import com.ruoyi.common.core.utils.EchartsDataUtils;
 | 
				
			||||||
import com.ruoyi.rocketmq.domain.InitialBandwidthTraffic;
 | 
					import com.ruoyi.rocketmq.domain.InitialBandwidthTraffic;
 | 
				
			||||||
import com.ruoyi.rocketmq.mapper.InitialBandwidthTrafficMapper;
 | 
					import com.ruoyi.rocketmq.mapper.InitialBandwidthTrafficMapper;
 | 
				
			||||||
import com.ruoyi.rocketmq.service.IInitialBandwidthTrafficService;
 | 
					import com.ruoyi.rocketmq.service.IInitialBandwidthTrafficService;
 | 
				
			||||||
import com.ruoyi.rocketmq.utils.EchartsDataUtils;
 | 
					 | 
				
			||||||
import com.ruoyi.rocketmq.utils.TableRouterUtil;
 | 
					import com.ruoyi.rocketmq.utils.TableRouterUtil;
 | 
				
			||||||
import lombok.extern.slf4j.Slf4j;
 | 
					import lombok.extern.slf4j.Slf4j;
 | 
				
			||||||
import org.springframework.beans.BeanUtils;
 | 
					import org.springframework.beans.BeanUtils;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,10 @@
 | 
				
			|||||||
package com.ruoyi.rocketmq.service.impl;
 | 
					package com.ruoyi.rocketmq.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.ruoyi.common.core.utils.DateUtils;
 | 
					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.InitialCpuInfo;
 | 
				
			||||||
import com.ruoyi.rocketmq.mapper.InitialCpuInfoMapper;
 | 
					import com.ruoyi.rocketmq.mapper.InitialCpuInfoMapper;
 | 
				
			||||||
import com.ruoyi.rocketmq.service.IInitialCpuInfoService;
 | 
					import com.ruoyi.rocketmq.service.IInitialCpuInfoService;
 | 
				
			||||||
import com.ruoyi.rocketmq.utils.EchartsDataUtils;
 | 
					 | 
				
			||||||
import lombok.extern.slf4j.Slf4j;
 | 
					import lombok.extern.slf4j.Slf4j;
 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.stereotype.Service;
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
@@ -16,7 +16,8 @@ import java.util.List;
 | 
				
			|||||||
import java.util.Map;
 | 
					import java.util.Map;
 | 
				
			||||||
import java.util.function.Function;
 | 
					import java.util.function.Function;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import static com.ruoyi.rocketmq.utils.EchartsDataUtils.convertMicrosecondsToSeconds;
 | 
					import static com.ruoyi.common.core.utils.EchartsDataUtils.convertMicrosecondsToSeconds;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * CPU监控信息Service业务层处理
 | 
					 * CPU监控信息Service业务层处理
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,10 @@
 | 
				
			|||||||
package com.ruoyi.rocketmq.service.impl;
 | 
					package com.ruoyi.rocketmq.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.ruoyi.common.core.utils.DateUtils;
 | 
					import com.ruoyi.common.core.utils.DateUtils;
 | 
				
			||||||
 | 
					import com.ruoyi.common.core.utils.EchartsDataUtils;
 | 
				
			||||||
import com.ruoyi.rocketmq.domain.InitialDiskInfo;
 | 
					import com.ruoyi.rocketmq.domain.InitialDiskInfo;
 | 
				
			||||||
import com.ruoyi.rocketmq.mapper.InitialDiskInfoMapper;
 | 
					import com.ruoyi.rocketmq.mapper.InitialDiskInfoMapper;
 | 
				
			||||||
import com.ruoyi.rocketmq.service.IInitialDiskInfoService;
 | 
					import com.ruoyi.rocketmq.service.IInitialDiskInfoService;
 | 
				
			||||||
import com.ruoyi.rocketmq.utils.EchartsDataUtils;
 | 
					 | 
				
			||||||
import lombok.extern.slf4j.Slf4j;
 | 
					import lombok.extern.slf4j.Slf4j;
 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.stereotype.Service;
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,10 @@
 | 
				
			|||||||
package com.ruoyi.rocketmq.service.impl;
 | 
					package com.ruoyi.rocketmq.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.ruoyi.common.core.utils.DateUtils;
 | 
					import com.ruoyi.common.core.utils.DateUtils;
 | 
				
			||||||
 | 
					import com.ruoyi.common.core.utils.EchartsDataUtils;
 | 
				
			||||||
import com.ruoyi.rocketmq.domain.InitialDockerInfo;
 | 
					import com.ruoyi.rocketmq.domain.InitialDockerInfo;
 | 
				
			||||||
import com.ruoyi.rocketmq.mapper.InitialDockerInfoMapper;
 | 
					import com.ruoyi.rocketmq.mapper.InitialDockerInfoMapper;
 | 
				
			||||||
import com.ruoyi.rocketmq.service.IInitialDockerInfoService;
 | 
					import com.ruoyi.rocketmq.service.IInitialDockerInfoService;
 | 
				
			||||||
import com.ruoyi.rocketmq.utils.EchartsDataUtils;
 | 
					 | 
				
			||||||
import lombok.extern.slf4j.Slf4j;
 | 
					import lombok.extern.slf4j.Slf4j;
 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.stereotype.Service;
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,10 @@
 | 
				
			|||||||
package com.ruoyi.rocketmq.service.impl;
 | 
					package com.ruoyi.rocketmq.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.ruoyi.common.core.utils.DateUtils;
 | 
					import com.ruoyi.common.core.utils.DateUtils;
 | 
				
			||||||
 | 
					import com.ruoyi.common.core.utils.EchartsDataUtils;
 | 
				
			||||||
import com.ruoyi.rocketmq.domain.InitialMemoryInfo;
 | 
					import com.ruoyi.rocketmq.domain.InitialMemoryInfo;
 | 
				
			||||||
import com.ruoyi.rocketmq.mapper.InitialMemoryInfoMapper;
 | 
					import com.ruoyi.rocketmq.mapper.InitialMemoryInfoMapper;
 | 
				
			||||||
import com.ruoyi.rocketmq.service.IInitialMemoryInfoService;
 | 
					import com.ruoyi.rocketmq.service.IInitialMemoryInfoService;
 | 
				
			||||||
import com.ruoyi.rocketmq.utils.EchartsDataUtils;
 | 
					 | 
				
			||||||
import lombok.extern.slf4j.Slf4j;
 | 
					import lombok.extern.slf4j.Slf4j;
 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.stereotype.Service;
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,10 @@
 | 
				
			|||||||
package com.ruoyi.rocketmq.service.impl;
 | 
					package com.ruoyi.rocketmq.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.ruoyi.common.core.utils.DateUtils;
 | 
					import com.ruoyi.common.core.utils.DateUtils;
 | 
				
			||||||
 | 
					import com.ruoyi.common.core.utils.EchartsDataUtils;
 | 
				
			||||||
import com.ruoyi.rocketmq.domain.InitialMountPointInfo;
 | 
					import com.ruoyi.rocketmq.domain.InitialMountPointInfo;
 | 
				
			||||||
import com.ruoyi.rocketmq.mapper.InitialMountPointInfoMapper;
 | 
					import com.ruoyi.rocketmq.mapper.InitialMountPointInfoMapper;
 | 
				
			||||||
import com.ruoyi.rocketmq.service.IInitialMountPointInfoService;
 | 
					import com.ruoyi.rocketmq.service.IInitialMountPointInfoService;
 | 
				
			||||||
import com.ruoyi.rocketmq.utils.EchartsDataUtils;
 | 
					 | 
				
			||||||
import lombok.extern.slf4j.Slf4j;
 | 
					import lombok.extern.slf4j.Slf4j;
 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.stereotype.Service;
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,12 @@
 | 
				
			|||||||
package com.ruoyi.rocketmq.service.impl;
 | 
					package com.ruoyi.rocketmq.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.ruoyi.common.core.utils.DateUtils;
 | 
					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.domain.InitialSwitchInfo;
 | 
				
			||||||
import com.ruoyi.rocketmq.mapper.InitialSwitchInfoMapper;
 | 
					import com.ruoyi.rocketmq.mapper.InitialSwitchInfoMapper;
 | 
				
			||||||
import com.ruoyi.rocketmq.service.IInitialSwitchInfoService;
 | 
					import com.ruoyi.rocketmq.service.IInitialSwitchInfoService;
 | 
				
			||||||
import com.ruoyi.rocketmq.utils.EchartsDataUtils;
 | 
					import com.ruoyi.system.api.RemoteRevenueConfigService;
 | 
				
			||||||
import lombok.extern.slf4j.Slf4j;
 | 
					import lombok.extern.slf4j.Slf4j;
 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.stereotype.Service;
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
@@ -12,6 +14,8 @@ import org.springframework.transaction.annotation.Isolation;
 | 
				
			|||||||
import org.springframework.transaction.annotation.Transactional;
 | 
					import org.springframework.transaction.annotation.Transactional;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.math.BigDecimal;
 | 
					import java.math.BigDecimal;
 | 
				
			||||||
 | 
					import java.math.RoundingMode;
 | 
				
			||||||
 | 
					import java.util.HashMap;
 | 
				
			||||||
import java.util.LinkedHashMap;
 | 
					import java.util.LinkedHashMap;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
import java.util.Map;
 | 
					import java.util.Map;
 | 
				
			||||||
@@ -29,6 +33,8 @@ public class InitialSwitchInfoServiceImpl implements IInitialSwitchInfoService
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    @Autowired
 | 
					    @Autowired
 | 
				
			||||||
    private InitialSwitchInfoMapper initialSwitchInfoMapper;
 | 
					    private InitialSwitchInfoMapper initialSwitchInfoMapper;
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private RemoteRevenueConfigService remoteRevenueConfigService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 查询交换机流量监控信息
 | 
					     * 查询交换机流量监控信息
 | 
				
			||||||
@@ -140,10 +146,26 @@ public class InitialSwitchInfoServiceImpl implements IInitialSwitchInfoService
 | 
				
			|||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public Map<String, Object> switchNetSpeedEcharts(InitialSwitchInfo initialSwitchInfo) {
 | 
					    public Map<String, Object> switchNetSpeedEcharts(InitialSwitchInfo initialSwitchInfo) {
 | 
				
			||||||
        List<InitialSwitchInfo> list = initialSwitchInfoMapper.selectInitialSwitchInfoList(initialSwitchInfo);
 | 
					        List<InitialSwitchInfo> list = initialSwitchInfoMapper.selectInitialSwitchInfoList(initialSwitchInfo);
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            String unit = SpeedUtils.calculateUnit(list, "inSpeed", "outSpeed");
 | 
				
			||||||
 | 
					            BigDecimal divisor = SpeedUtils.getDivisor(unit);
 | 
				
			||||||
            Map<String, Function<InitialSwitchInfo, ?>> extractors = new LinkedHashMap<>();
 | 
					            Map<String, Function<InitialSwitchInfo, ?>> extractors = new LinkedHashMap<>();
 | 
				
			||||||
        extractors.put("netInSpeedData", info -> info.getInSpeed());
 | 
					            extractors.put("netInSpeedData", info ->
 | 
				
			||||||
        extractors.put("netOutSpeedData", info -> info.getOutSpeed());
 | 
					                    info != null && info.getInSpeed() != null ?
 | 
				
			||||||
        return EchartsDataUtils.buildEchartsData(list, InitialSwitchInfo::getCreateTime, extractors);
 | 
					                            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, InitialSwitchInfo::getCreateTime, extractors);
 | 
				
			||||||
 | 
					            resultMap.put("unit", unit);
 | 
				
			||||||
 | 
					            return resultMap;
 | 
				
			||||||
 | 
					        } catch (Exception e){
 | 
				
			||||||
 | 
					            e.printStackTrace();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return new HashMap<>();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,10 @@
 | 
				
			|||||||
package com.ruoyi.rocketmq.service.impl;
 | 
					package com.ruoyi.rocketmq.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.ruoyi.common.core.utils.DateUtils;
 | 
					import com.ruoyi.common.core.utils.DateUtils;
 | 
				
			||||||
 | 
					import com.ruoyi.common.core.utils.EchartsDataUtils;
 | 
				
			||||||
import com.ruoyi.rocketmq.domain.InitialSwitchMpuInfo;
 | 
					import com.ruoyi.rocketmq.domain.InitialSwitchMpuInfo;
 | 
				
			||||||
import com.ruoyi.rocketmq.mapper.InitialSwitchMpuInfoMapper;
 | 
					import com.ruoyi.rocketmq.mapper.InitialSwitchMpuInfoMapper;
 | 
				
			||||||
import com.ruoyi.rocketmq.service.IInitialSwitchMpuInfoService;
 | 
					import com.ruoyi.rocketmq.service.IInitialSwitchMpuInfoService;
 | 
				
			||||||
import com.ruoyi.rocketmq.utils.EchartsDataUtils;
 | 
					 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.stereotype.Service;
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,10 @@
 | 
				
			|||||||
package com.ruoyi.rocketmq.service.impl;
 | 
					package com.ruoyi.rocketmq.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.ruoyi.common.core.utils.DateUtils;
 | 
					import com.ruoyi.common.core.utils.DateUtils;
 | 
				
			||||||
 | 
					import com.ruoyi.common.core.utils.EchartsDataUtils;
 | 
				
			||||||
import com.ruoyi.rocketmq.domain.InitialSwitchOpticalModule;
 | 
					import com.ruoyi.rocketmq.domain.InitialSwitchOpticalModule;
 | 
				
			||||||
import com.ruoyi.rocketmq.mapper.InitialSwitchOpticalModuleMapper;
 | 
					import com.ruoyi.rocketmq.mapper.InitialSwitchOpticalModuleMapper;
 | 
				
			||||||
import com.ruoyi.rocketmq.service.IInitialSwitchOpticalModuleService;
 | 
					import com.ruoyi.rocketmq.service.IInitialSwitchOpticalModuleService;
 | 
				
			||||||
import com.ruoyi.rocketmq.utils.EchartsDataUtils;
 | 
					 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.stereotype.Service;
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,11 +1,11 @@
 | 
				
			|||||||
package com.ruoyi.rocketmq.service.impl;
 | 
					package com.ruoyi.rocketmq.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.ruoyi.common.core.utils.DateUtils;
 | 
					import com.ruoyi.common.core.utils.DateUtils;
 | 
				
			||||||
 | 
					import com.ruoyi.common.core.utils.EchartsDataUtils;
 | 
				
			||||||
import com.ruoyi.rocketmq.domain.InitialSwitchOtherCollectData;
 | 
					import com.ruoyi.rocketmq.domain.InitialSwitchOtherCollectData;
 | 
				
			||||||
import com.ruoyi.rocketmq.enums.SwitchLogo;
 | 
					import com.ruoyi.rocketmq.enums.SwitchLogo;
 | 
				
			||||||
import com.ruoyi.rocketmq.mapper.InitialSwitchOtherCollectDataMapper;
 | 
					import com.ruoyi.rocketmq.mapper.InitialSwitchOtherCollectDataMapper;
 | 
				
			||||||
import com.ruoyi.rocketmq.service.IInitialSwitchOtherCollectDataService;
 | 
					import com.ruoyi.rocketmq.service.IInitialSwitchOtherCollectDataService;
 | 
				
			||||||
import com.ruoyi.rocketmq.utils.EchartsDataUtils;
 | 
					 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.stereotype.Service;
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,10 @@
 | 
				
			|||||||
package com.ruoyi.rocketmq.service.impl;
 | 
					package com.ruoyi.rocketmq.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.ruoyi.common.core.utils.DateUtils;
 | 
					import com.ruoyi.common.core.utils.DateUtils;
 | 
				
			||||||
 | 
					import com.ruoyi.common.core.utils.EchartsDataUtils;
 | 
				
			||||||
import com.ruoyi.rocketmq.domain.InitialSwitchPowerSupply;
 | 
					import com.ruoyi.rocketmq.domain.InitialSwitchPowerSupply;
 | 
				
			||||||
import com.ruoyi.rocketmq.mapper.InitialSwitchPowerSupplyMapper;
 | 
					import com.ruoyi.rocketmq.mapper.InitialSwitchPowerSupplyMapper;
 | 
				
			||||||
import com.ruoyi.rocketmq.service.IInitialSwitchPowerSupplyService;
 | 
					import com.ruoyi.rocketmq.service.IInitialSwitchPowerSupplyService;
 | 
				
			||||||
import com.ruoyi.rocketmq.utils.EchartsDataUtils;
 | 
					 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.stereotype.Service;
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
package com.ruoyi.rocketmq.service.impl;
 | 
					package com.ruoyi.rocketmq.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.ruoyi.common.core.utils.DateUtils;
 | 
					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.InitialCpuInfo;
 | 
				
			||||||
import com.ruoyi.rocketmq.domain.InitialMemoryInfo;
 | 
					import com.ruoyi.rocketmq.domain.InitialMemoryInfo;
 | 
				
			||||||
import com.ruoyi.rocketmq.domain.InitialSystemInfo;
 | 
					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.InitialMemoryInfoMapper;
 | 
				
			||||||
import com.ruoyi.rocketmq.mapper.InitialSystemInfoMapper;
 | 
					import com.ruoyi.rocketmq.mapper.InitialSystemInfoMapper;
 | 
				
			||||||
import com.ruoyi.rocketmq.service.IInitialSystemInfoService;
 | 
					import com.ruoyi.rocketmq.service.IInitialSystemInfoService;
 | 
				
			||||||
import com.ruoyi.rocketmq.utils.EchartsDataUtils;
 | 
					 | 
				
			||||||
import lombok.extern.slf4j.Slf4j;
 | 
					import lombok.extern.slf4j.Slf4j;
 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.stereotype.Service;
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,13 +1,13 @@
 | 
				
			|||||||
package com.ruoyi.rocketmq.service.impl;
 | 
					package com.ruoyi.rocketmq.service.impl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.ruoyi.common.core.utils.DateUtils;
 | 
					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.InitialCpuInfo;
 | 
				
			||||||
import com.ruoyi.rocketmq.domain.InitialSystemOtherCollectData;
 | 
					import com.ruoyi.rocketmq.domain.InitialSystemOtherCollectData;
 | 
				
			||||||
import com.ruoyi.rocketmq.enums.ServerLogoEnum;
 | 
					import com.ruoyi.rocketmq.enums.ServerLogoEnum;
 | 
				
			||||||
import com.ruoyi.rocketmq.mapper.InitialCpuInfoMapper;
 | 
					import com.ruoyi.rocketmq.mapper.InitialCpuInfoMapper;
 | 
				
			||||||
import com.ruoyi.rocketmq.mapper.InitialSystemOtherCollectDataMapper;
 | 
					import com.ruoyi.rocketmq.mapper.InitialSystemOtherCollectDataMapper;
 | 
				
			||||||
import com.ruoyi.rocketmq.service.IInitialSystemOtherCollectDataService;
 | 
					import com.ruoyi.rocketmq.service.IInitialSystemOtherCollectDataService;
 | 
				
			||||||
import com.ruoyi.rocketmq.utils.EchartsDataUtils;
 | 
					 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.stereotype.Service;
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -77,6 +77,7 @@ public class RmDeploymentPolicyServiceImpl implements IRmDeploymentPolicyService
 | 
				
			|||||||
        List<RmDeploymentPolicy> deploymentPolicyList = rmDeploymentPolicyMapper.selectRmDeploymentPolicyList(rmDeploymentPolicy);
 | 
					        List<RmDeploymentPolicy> deploymentPolicyList = rmDeploymentPolicyMapper.selectRmDeploymentPolicyList(rmDeploymentPolicy);
 | 
				
			||||||
        // 包含设备名称赋值
 | 
					        // 包含设备名称赋值
 | 
				
			||||||
        deploymentPolicyList.forEach(policy -> {
 | 
					        deploymentPolicyList.forEach(policy -> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            getIncludeNameById(policy);
 | 
					            getIncludeNameById(policy);
 | 
				
			||||||
            // 不在线数量赋值
 | 
					            // 不在线数量赋值
 | 
				
			||||||
            String deviceMsg = policy.getDeployDevice();
 | 
					            String deviceMsg = policy.getDeployDevice();
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -109,8 +109,10 @@ public class RmResourceRemoteServiceImpl implements IRmResourceRemoteService
 | 
				
			|||||||
        RmResourceRegistrationRemote queryParam = new RmResourceRegistrationRemote();
 | 
					        RmResourceRegistrationRemote queryParam = new RmResourceRegistrationRemote();
 | 
				
			||||||
        queryParam.setHardwareSn(rmResourceRemote.getHardwareSn());
 | 
					        queryParam.setHardwareSn(rmResourceRemote.getHardwareSn());
 | 
				
			||||||
        R<RmResourceRegistrationRemote> registrationRemote = remoteRevenueConfigService.getListByHardwareSn(queryParam, SecurityConstants.INNER);
 | 
					        R<RmResourceRegistrationRemote> registrationRemote = remoteRevenueConfigService.getListByHardwareSn(queryParam, SecurityConstants.INNER);
 | 
				
			||||||
 | 
					        if(registrationRemote != null && registrationRemote.getData() != null){
 | 
				
			||||||
            RmResourceRegistrationRemote resourceMsg = registrationRemote.getData();
 | 
					            RmResourceRegistrationRemote resourceMsg = registrationRemote.getData();
 | 
				
			||||||
            resultMap.put("resourceMsg", resourceMsg);
 | 
					            resultMap.put("resourceMsg", resourceMsg);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        // 脚本执行结果构建
 | 
					        // 脚本执行结果构建
 | 
				
			||||||
        List<Map<String, Object>> scriptList = new ArrayList<>();
 | 
					        List<Map<String, Object>> scriptList = new ArrayList<>();
 | 
				
			||||||
        List<RmResourceRemote> reslutList = rmResourceRemoteMapper.selectRmResourceRemoteList(rmResourceRemote);
 | 
					        List<RmResourceRemote> reslutList = rmResourceRemoteMapper.selectRmResourceRemoteList(rmResourceRemote);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -35,7 +35,7 @@
 | 
				
			|||||||
        <include refid="selectInitialSwitchInfoVo"/>
 | 
					        <include refid="selectInitialSwitchInfoVo"/>
 | 
				
			||||||
        <where>
 | 
					        <where>
 | 
				
			||||||
            <if test="clientId != null  and clientId != ''"> and client_id = #{clientId}</if>
 | 
					            <if test="clientId != null  and clientId != ''"> and client_id = #{clientId}</if>
 | 
				
			||||||
            <if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if>
 | 
					            <if test="name != null  and name != ''"> and name = #{name}</if>
 | 
				
			||||||
            <if test="inBytes != null "> and in_bytes = #{inBytes}</if>
 | 
					            <if test="inBytes != null "> and in_bytes = #{inBytes}</if>
 | 
				
			||||||
            <if test="outBytes != null "> and out_bytes = #{outBytes}</if>
 | 
					            <if test="outBytes != null "> and out_bytes = #{outBytes}</if>
 | 
				
			||||||
            <if test="status != null  and status != ''"> and status = #{status}</if>
 | 
					            <if test="status != null  and status != ''"> and status = #{status}</if>
 | 
				
			||||||
@@ -178,7 +178,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    <select id="getSwitchNetDetailsMsg" parameterType="String" resultMap="InitialSwitchInfoResult">
 | 
					    <select id="getSwitchNetDetailsMsg" parameterType="String" resultMap="InitialSwitchInfoResult">
 | 
				
			||||||
        <include refid="selectInitialSwitchInfoVo"/>
 | 
					        <include refid="selectInitialSwitchInfoVo"/>
 | 
				
			||||||
        where client_id = #{clientId}
 | 
					        where client_id = #{clientId} and name = #{name}
 | 
				
			||||||
        limit 1
 | 
					        limit 1
 | 
				
			||||||
    </select>
 | 
					    </select>
 | 
				
			||||||
</mapper>
 | 
					</mapper>
 | 
				
			||||||
@@ -23,17 +23,15 @@
 | 
				
			|||||||
        <result property="updateTime"    column="update_time"    />
 | 
					        <result property="updateTime"    column="update_time"    />
 | 
				
			||||||
        <result property="createBy"    column="create_by"    />
 | 
					        <result property="createBy"    column="create_by"    />
 | 
				
			||||||
        <result property="updateBy"    column="update_by"    />
 | 
					        <result property="updateBy"    column="update_by"    />
 | 
				
			||||||
 | 
					        <result property="deployDevice"    column="deploy_device"    />
 | 
				
			||||||
        <result property="scriptName"    column="script_name"    />
 | 
					        <result property="scriptName"    column="script_name"    />
 | 
				
			||||||
        <result property="scriptPath"    column="script_path"    />
 | 
					        <result property="scriptPath"    column="script_path"    />
 | 
				
			||||||
        <result property="defaultParams"    column="default_params"    />
 | 
					        <result property="defaultParams"    column="default_params"    />
 | 
				
			||||||
        <result property="deployDevice"    column="deploy_device"    />
 | 
					        <result property="taskName"    column="task_name"    />
 | 
				
			||||||
    </resultMap>
 | 
					    </resultMap>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <sql id="selectRmDeploymentPolicyVo">
 | 
					    <sql id="selectRmDeploymentPolicyVo">
 | 
				
			||||||
        select id, policy_name, description, resource_group_id, included_devices_id, source_file_path_type,
 | 
					        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
 | 
				
			||||||
               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
 | 
					 | 
				
			||||||
    </sql>
 | 
					    </sql>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <select id="selectRmDeploymentPolicyList" parameterType="RmDeploymentPolicy" resultMap="RmDeploymentPolicyResult">
 | 
					    <select id="selectRmDeploymentPolicyList" parameterType="RmDeploymentPolicy" resultMap="RmDeploymentPolicyResult">
 | 
				
			||||||
@@ -48,13 +46,15 @@
 | 
				
			|||||||
            <if test="targetDirectory != null  and targetDirectory != ''"> and target_directory = #{targetDirectory}</if>
 | 
					            <if test="targetDirectory != null  and targetDirectory != ''"> and target_directory = #{targetDirectory}</if>
 | 
				
			||||||
            <if test="commandContent != null  and commandContent != ''"> and command_content = #{commandContent}</if>
 | 
					            <if test="commandContent != null  and commandContent != ''"> and command_content = #{commandContent}</if>
 | 
				
			||||||
            <if test="executionMethod != null "> and execution_method = #{executionMethod}</if>
 | 
					            <if test="executionMethod != null "> and execution_method = #{executionMethod}</if>
 | 
				
			||||||
            <if test="scheduledTime != null  and scheduledTime != ''"> and scheduled_time = #{scheduledTime}</if>
 | 
					            <if test="scheduledTime != null "> and scheduled_time = #{scheduledTime}</if>
 | 
				
			||||||
            <if test="policyStatus != null  and policyStatus != ''"> and policy_status = #{policyStatus}</if>
 | 
					            <if test="policyStatus != null  and policyStatus != ''"> and policy_status = #{policyStatus}</if>
 | 
				
			||||||
            <if test="deployTime != null "> and deploy_time = #{deployTime}</if>
 | 
					            <if test="deployTime != null "> and deploy_time = #{deployTime}</if>
 | 
				
			||||||
            <if test="scriptType != null  and scriptType != ''"> and script_type = #{scriptType}</if>
 | 
					            <if test="scriptType != null  and scriptType != ''"> and script_type = #{scriptType}</if>
 | 
				
			||||||
            <if test="scriptName != null  and scriptName != ''"> and script_name = #{scriptName}</if>
 | 
					            <if test="deployDevice != null  and deployDevice != ''"> and deploy_device = #{deployDevice}</if>
 | 
				
			||||||
 | 
					            <if test="scriptName != null  and scriptName != ''"> and script_name like concat('%', #{scriptName}, '%')</if>
 | 
				
			||||||
            <if test="scriptPath != null  and scriptPath != ''"> and script_path = #{scriptPath}</if>
 | 
					            <if test="scriptPath != null  and scriptPath != ''"> and script_path = #{scriptPath}</if>
 | 
				
			||||||
            <if test="defaultParams != null  and defaultParams != ''"> and default_params = #{defaultParams}</if>
 | 
					            <if test="defaultParams != null  and defaultParams != ''"> and default_params = #{defaultParams}</if>
 | 
				
			||||||
 | 
					            <if test="taskName != null  and taskName != ''"> and task_name like concat('%', #{taskName}, '%')</if>
 | 
				
			||||||
        </where>
 | 
					        </where>
 | 
				
			||||||
    </select>
 | 
					    </select>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -83,10 +83,11 @@
 | 
				
			|||||||
            <if test="updateTime != null">update_time,</if>
 | 
					            <if test="updateTime != null">update_time,</if>
 | 
				
			||||||
            <if test="createBy != null">create_by,</if>
 | 
					            <if test="createBy != null">create_by,</if>
 | 
				
			||||||
            <if test="updateBy != null">update_by,</if>
 | 
					            <if test="updateBy != null">update_by,</if>
 | 
				
			||||||
 | 
					            <if test="deployDevice != null">deploy_device,</if>
 | 
				
			||||||
            <if test="scriptName != null">script_name,</if>
 | 
					            <if test="scriptName != null">script_name,</if>
 | 
				
			||||||
            <if test="scriptPath != null">script_path,</if>
 | 
					            <if test="scriptPath != null">script_path,</if>
 | 
				
			||||||
            <if test="defaultParams != null">default_params,</if>
 | 
					            <if test="defaultParams != null">default_params,</if>
 | 
				
			||||||
            <if test="deployDevice != null">deploy_device,</if>
 | 
					            <if test="taskName != null">task_name,</if>
 | 
				
			||||||
        </trim>
 | 
					        </trim>
 | 
				
			||||||
        <trim prefix="values (" suffix=")" suffixOverrides=",">
 | 
					        <trim prefix="values (" suffix=")" suffixOverrides=",">
 | 
				
			||||||
            <if test="policyName != null and policyName != ''">#{policyName},</if>
 | 
					            <if test="policyName != null and policyName != ''">#{policyName},</if>
 | 
				
			||||||
@@ -106,10 +107,11 @@
 | 
				
			|||||||
            <if test="updateTime != null">#{updateTime},</if>
 | 
					            <if test="updateTime != null">#{updateTime},</if>
 | 
				
			||||||
            <if test="createBy != null">#{createBy},</if>
 | 
					            <if test="createBy != null">#{createBy},</if>
 | 
				
			||||||
            <if test="updateBy != null">#{updateBy},</if>
 | 
					            <if test="updateBy != null">#{updateBy},</if>
 | 
				
			||||||
 | 
					            <if test="deployDevice != null">#{deployDevice},</if>
 | 
				
			||||||
            <if test="scriptName != null">#{scriptName},</if>
 | 
					            <if test="scriptName != null">#{scriptName},</if>
 | 
				
			||||||
            <if test="scriptPath != null">#{scriptPath},</if>
 | 
					            <if test="scriptPath != null">#{scriptPath},</if>
 | 
				
			||||||
            <if test="defaultParams != null">#{defaultParams},</if>
 | 
					            <if test="defaultParams != null">#{defaultParams},</if>
 | 
				
			||||||
            <if test="deployDevice != null">#{deployDevice},</if>
 | 
					            <if test="taskName != null">#{taskName},</if>
 | 
				
			||||||
        </trim>
 | 
					        </trim>
 | 
				
			||||||
    </insert>
 | 
					    </insert>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -119,7 +121,6 @@
 | 
				
			|||||||
            <if test="policyName != null and policyName != ''">policy_name = #{policyName},</if>
 | 
					            <if test="policyName != null and policyName != ''">policy_name = #{policyName},</if>
 | 
				
			||||||
            <if test="description != null">description = #{description},</if>
 | 
					            <if test="description != null">description = #{description},</if>
 | 
				
			||||||
            <if test="resourceGroupId != null">resource_group_id = #{resourceGroupId},</if>
 | 
					            <if test="resourceGroupId != null">resource_group_id = #{resourceGroupId},</if>
 | 
				
			||||||
            <if test="resourceGroupIdNull != null">resource_group_id = null,</if>
 | 
					 | 
				
			||||||
            <if test="includedDevicesId != null">included_devices_id = #{includedDevicesId},</if>
 | 
					            <if test="includedDevicesId != null">included_devices_id = #{includedDevicesId},</if>
 | 
				
			||||||
            <if test="sourceFilePathType != null">source_file_path_type = #{sourceFilePathType},</if>
 | 
					            <if test="sourceFilePathType != null">source_file_path_type = #{sourceFilePathType},</if>
 | 
				
			||||||
            <if test="sourceFilePath != null and sourceFilePath != ''">source_file_path = #{sourceFilePath},</if>
 | 
					            <if test="sourceFilePath != null and sourceFilePath != ''">source_file_path = #{sourceFilePath},</if>
 | 
				
			||||||
@@ -134,10 +135,11 @@
 | 
				
			|||||||
            <if test="updateTime != null">update_time = #{updateTime},</if>
 | 
					            <if test="updateTime != null">update_time = #{updateTime},</if>
 | 
				
			||||||
            <if test="createBy != null">create_by = #{createBy},</if>
 | 
					            <if test="createBy != null">create_by = #{createBy},</if>
 | 
				
			||||||
            <if test="updateBy != null">update_by = #{updateBy},</if>
 | 
					            <if test="updateBy != null">update_by = #{updateBy},</if>
 | 
				
			||||||
 | 
					            <if test="deployDevice != null">deploy_device = #{deployDevice},</if>
 | 
				
			||||||
            <if test="scriptName != null">script_name = #{scriptName},</if>
 | 
					            <if test="scriptName != null">script_name = #{scriptName},</if>
 | 
				
			||||||
            <if test="scriptPath != null">script_path = #{scriptPath},</if>
 | 
					            <if test="scriptPath != null">script_path = #{scriptPath},</if>
 | 
				
			||||||
            <if test="defaultParams != null">default_params = #{defaultParams},</if>
 | 
					            <if test="defaultParams != null">default_params = #{defaultParams},</if>
 | 
				
			||||||
            <if test="deployDevice != null">deploy_device = #{deployDevice},</if>
 | 
					            <if test="taskName != null">task_name = #{taskName},</if>
 | 
				
			||||||
        </trim>
 | 
					        </trim>
 | 
				
			||||||
        where id = #{id}
 | 
					        where id = #{id}
 | 
				
			||||||
    </update>
 | 
					    </update>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user