diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteRocketMqService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteRocketMqService.java index 1a6cf78..dfe854a 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteRocketMqService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteRocketMqService.java @@ -4,6 +4,7 @@ import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.domain.RmAlarmRecordRemote; +import com.ruoyi.system.api.domain.RmMonitorPolicyRemote; import com.ruoyi.system.api.domain.RmNetworkInterfaceRemote; import com.ruoyi.system.api.factory.RemoteRocketMqFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; @@ -52,4 +53,29 @@ public interface RemoteRocketMqService { */ @PostMapping("/networkInterface/getNetworkInterfaceList") public R> getNetworkInterfaceList(@RequestBody RmNetworkInterfaceRemote rmNetworkInterfaceRemote, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + /** + * 下发策略 + * @param id + * @param source + * @return + */ + @GetMapping("/monitorPolicy/innerIssueSwitchPolicy") + public R innerIssueSwitchPolicy(Long id, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + /** + * 查询策略信息 + * @param rmMonitorPolicyRemote + * @param source + * @return + */ + @PostMapping("/monitorPolicy/getPolicyMsgInner") + public R> getPolicyMsgInner(@RequestBody RmMonitorPolicyRemote rmMonitorPolicyRemote, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + /** + * 策略添加新设备 + * @param rmMonitorPolicyRemote + * @param source + * @return + */ + @PostMapping("/monitorPolicy/updatePolicyMsgInner") + public R updatePolicyMsgInner(@RequestBody RmMonitorPolicyRemote rmMonitorPolicyRemote, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/RmMonitorPolicyRemote.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/RmMonitorPolicyRemote.java new file mode 100644 index 0000000..a46426a --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/RmMonitorPolicyRemote.java @@ -0,0 +1,61 @@ +package com.ruoyi.system.api.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.annotation.Excel; +import com.ruoyi.common.core.web.domain.BaseEntity; +import lombok.Data; + +import java.util.Date; +@Data +public class RmMonitorPolicyRemote extends BaseEntity { + + /** 主键ID */ + private Long id; + + + /** 策略名称 */ + @Excel(name = "策略名称") + private String policyName; + + /** 描述 */ + @Excel(name = "描述") + private String description; + + /** 资源组ID */ + private Long resourceGroupId; + /** 资源组名称 */ + @Excel(name = "关联资源组") + private String resourceGroupName; + /** 模板ID */ + private Long templateId; + /** 模板名称 */ + @Excel(name = "关联监控模板") + private String templateName; + + /** 状态:0-待下发,1-已下发 */ + @Excel(name = "策略状态", readConverterExp = "0=待下发,1=已下发") + private String status; + + /** 下发策略时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "下发策略时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date deployTime; + /** 资源类型,linux switch */ + private String resourceType; + /** 查询条件名称 */ + private String queryName; + /** 创建时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "创建时间") + private Date createTime; + /** 修改时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "修改时间") + private Date updateTime; + /** 交换机类型 */ + private String switchType; + /** 部署设备 */ + private String deployDevice; + /** 优先级 */ + private String priority; +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteRocketMqFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteRocketMqFallbackFactory.java index 871c383..b3bb93a 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteRocketMqFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteRocketMqFallbackFactory.java @@ -3,6 +3,7 @@ package com.ruoyi.system.api.factory; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.RemoteRocketMqService; import com.ruoyi.system.api.domain.RmAlarmRecordRemote; +import com.ruoyi.system.api.domain.RmMonitorPolicyRemote; import com.ruoyi.system.api.domain.RmNetworkInterfaceRemote; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -51,6 +52,21 @@ public class RemoteRocketMqFallbackFactory implements FallbackFactory> getNetworkInterfaceList(RmNetworkInterfaceRemote rmNetworkInterfaceRemote, String source) { return R.fail(throwable.getMessage()); } + + @Override + public R innerIssueSwitchPolicy(Long id, String source) { + return R.fail(throwable.getMessage()); + } + + @Override + public R> getPolicyMsgInner(RmMonitorPolicyRemote rmMonitorPolicyRemote, String source) { + return R.fail(throwable.getMessage()); + } + + @Override + public R updatePolicyMsgInner(RmMonitorPolicyRemote rmMonitorPolicyRemote, String source) { + return R.fail(throwable.getMessage()); + } }; } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/InitialSwitchInfoDetailsServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/InitialSwitchInfoDetailsServiceImpl.java index b148a53..4a846be 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/InitialSwitchInfoDetailsServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/InitialSwitchInfoDetailsServiceImpl.java @@ -137,7 +137,7 @@ public class InitialSwitchInfoDetailsServiceImpl implements IInitialSwitchInfoDe String switchSn = details.getSwitchSn(); RmEpsTopologyManagement rmEpsTopologyManagement = new RmEpsTopologyManagement(); rmEpsTopologyManagement.setInterfaceName(interfaceName); - rmEpsTopologyManagement.setSwitchSn(switchSn); + rmEpsTopologyManagement.setSwitchIpAddress(details.getSwitchIp()); List managements = rmEpsTopologyManagementMapper.selectRmEpsTopologyManagementList(rmEpsTopologyManagement); // 赋值 if(!managements.isEmpty()){ diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RmSwitchManagementServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RmSwitchManagementServiceImpl.java index 734a822..1a21e97 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RmSwitchManagementServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RmSwitchManagementServiceImpl.java @@ -1,7 +1,12 @@ package com.ruoyi.system.service.impl; +import com.ruoyi.common.core.constant.SecurityConstants; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.uuid.IdUtils; +import com.ruoyi.system.api.RemoteRocketMqService; +import com.ruoyi.system.api.domain.RmMonitorPolicyRemote; import com.ruoyi.system.domain.RmSwitchInterfaceInfo; import com.ruoyi.system.domain.RmSwitchManagement; import com.ruoyi.system.mapper.RmSwitchInterfaceInfoMapper; @@ -25,6 +30,8 @@ public class RmSwitchManagementServiceImpl implements IRmSwitchManagementService private RmSwitchManagementMapper rmSwitchManagementMapper; @Autowired private RmSwitchInterfaceInfoMapper rmSwitchInterfaceInfoMapper; + @Autowired + private RemoteRocketMqService remoteRocketMqService; /** * 查询交换机管理 @@ -65,11 +72,45 @@ public class RmSwitchManagementServiceImpl implements IRmSwitchManagementService * @return 结果 */ @Override - public int insertRmSwitchManagement(RmSwitchManagement rmSwitchManagement) - { + public int insertRmSwitchManagement(RmSwitchManagement rmSwitchManagement) { + // 初始化交换机信息 rmSwitchManagement.setCreateTime(DateUtils.getNowDate()); - rmSwitchManagement.setClientId(IdUtils.simpleUUID()); - return rmSwitchManagementMapper.insertRmSwitchManagement(rmSwitchManagement); + String clientId= IdUtils.simpleUUID(); + rmSwitchManagement.setClientId(clientId); + rmSwitchManagementMapper.insertRmSwitchManagement(rmSwitchManagement); + + // 查询并更新优先级为0的交换机策略 + R> policyMsgR = remoteRocketMqService.getPolicyMsgInner( + new RmMonitorPolicyRemote() {{ + setPriority("0"); + setResourceType("switch"); + }}, + SecurityConstants.INNER + ); + + if (policyMsgR.getData() != null && !policyMsgR.getData().isEmpty()) { + RmMonitorPolicyRemote policyMsg = policyMsgR.getData().get(0); + + // 构建设备信息字符串 + String newDeviceList = StringUtils.isBlank(policyMsg.getDeployDevice()) + ? clientId + : policyMsg.getDeployDevice() + "\n" + clientId; + + // 更新策略设备列表 + remoteRocketMqService.updatePolicyMsgInner( + new RmMonitorPolicyRemote() {{ + setId(policyMsg.getId()); + setDeployDevice(newDeviceList); + setUpdateTime(DateUtils.getNowDate()); + }}, + SecurityConstants.INNER + ); + + // 下发更新后的策略 + remoteRocketMqService.innerIssueSwitchPolicy(policyMsg.getId(), SecurityConstants.INNER); + } + + return 1; } /** diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/controller/RmMonitorPolicyController.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/controller/RmMonitorPolicyController.java index 735e0bc..9cd219e 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/controller/RmMonitorPolicyController.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/controller/RmMonitorPolicyController.java @@ -1,5 +1,6 @@ package com.ruoyi.rocketmq.controller; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.poi.ExcelUtil; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.core.web.domain.AjaxResult; @@ -7,6 +8,7 @@ import com.ruoyi.common.core.web.page.PageDomain; import com.ruoyi.common.core.web.page.TableDataInfo; import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.security.annotation.InnerAuth; import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.rocketmq.domain.RmMonitorPolicy; import com.ruoyi.rocketmq.service.IRmMonitorPolicyService; @@ -152,4 +154,38 @@ public class RmMonitorPolicyController extends BaseController return toAjax(rows); } + /** + * 策略下发,内部调用 + * @param id + * @return + */ + @Log(title = "issueSwitchPolicy", businessType = BusinessType.UPDATE) + @GetMapping("/innerIssueSwitchPolicy") + @InnerAuth + public R innerIssueSwitchPolicy(Long id) + { + rmMonitorPolicyService.issueSwitchPolicy(id); + return R.ok("优先级0策略下发成功"); + } + /** + * 查询资源监控策略列表 + */ + @PostMapping("/getPolicyMsgInner") + @InnerAuth + public R> getPolicyMsgInner(@RequestBody RmMonitorPolicy rmMonitorPolicy) + { + List list = rmMonitorPolicyService.selectRmMonitorPolicyList(rmMonitorPolicy); + return R.ok(list); + } + /** + * 修改资源监控策略 + */ + @PostMapping("/updatePolicyMsgInner") + @InnerAuth + public R updatePolicyMsgInner(@RequestBody RmMonitorPolicy rmMonitorPolicy) + { + int rows = rmMonitorPolicyService.updatePolicyMsgInner(rmMonitorPolicy); + return R.ok(rows); + } + } diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/domain/vo/CollectDataVo.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/domain/vo/CollectDataVo.java index e76001d..346578a 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/domain/vo/CollectDataVo.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/domain/vo/CollectDataVo.java @@ -8,6 +8,8 @@ public class CollectDataVo { private String type; /** 数据 */ private String value; + /** 交换机ip */ + private String switchIp; /** 时间戳 */ private long timestamp; } diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/IRmMonitorPolicyService.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/IRmMonitorPolicyService.java index 0e04857..7f00bc8 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/IRmMonitorPolicyService.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/IRmMonitorPolicyService.java @@ -76,4 +76,11 @@ public interface IRmMonitorPolicyService int issueSwitchPolicy(Long id); int updateResourcePolicy(RmMonitorPolicy rmMonitorPolicy); + + /** + * 修改资源监控策略内部调用 + * @param rmMonitorPolicy + * @return + */ + int updatePolicyMsgInner(RmMonitorPolicy rmMonitorPolicy); } diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/RmMonitorPolicyServiceImpl.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/RmMonitorPolicyServiceImpl.java index e0783a3..5abc2fb 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/RmMonitorPolicyServiceImpl.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/RmMonitorPolicyServiceImpl.java @@ -353,6 +353,11 @@ public class RmMonitorPolicyServiceImpl implements IRmMonitorPolicyService return 1; } + @Override + public int updatePolicyMsgInner(RmMonitorPolicy rmMonitorPolicy) { + return rmMonitorPolicyMapper.updateRmMonitorPolicy(rmMonitorPolicy); + } + /** * 根据id查询监控策略详情 * @param id diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/snmp/config/SwitchStrategyInitializer.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/snmp/config/SwitchStrategyInitializer.java new file mode 100644 index 0000000..e516bcf --- /dev/null +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/snmp/config/SwitchStrategyInitializer.java @@ -0,0 +1,38 @@ +package com.ruoyi.rocketmq.snmp.config; + +import com.ruoyi.rocketmq.domain.RmMonitorPolicy; +import com.ruoyi.rocketmq.service.IRmMonitorPolicyService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import java.util.List; + +@Component +@Slf4j +public class SwitchStrategyInitializer { + + @Autowired + private IRmMonitorPolicyService rmMonitorPolicyService; + + + // 服务启动时下发默认策略 + @PostConstruct + public void init() { + log.info("开始初始化交换机采集策略..."); + try { + // 下发优先级为0的交换机策略 + RmMonitorPolicy queryParam = new RmMonitorPolicy(); + queryParam.setPriority("0"); + queryParam.setResourceType("switch"); + List defaultPolicy = rmMonitorPolicyService.selectRmMonitorPolicyList(queryParam); + if(!defaultPolicy.isEmpty()){ + rmMonitorPolicyService.issueSwitchPolicy(defaultPolicy.get(0).getId()); + } + } catch (Exception e) { + log.error("初始化交换机采集策略失败", e); + } + } + +} diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/snmp/scheduler/MultiSwitchCollectionScheduler.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/snmp/scheduler/MultiSwitchCollectionScheduler.java index 111b75f..5da8e58 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/snmp/scheduler/MultiSwitchCollectionScheduler.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/snmp/scheduler/MultiSwitchCollectionScheduler.java @@ -28,6 +28,8 @@ import java.util.concurrent.ScheduledFuture; @Slf4j public class MultiSwitchCollectionScheduler { + private static final String PREFIX = "switch"; + private static final String SUFFIX = "Collect"; private final TaskScheduler taskScheduler; private final DynamicOidCollector dynamicOidCollector; private boolean collectorInitialized = false; @@ -95,8 +97,27 @@ public class MultiSwitchCollectionScheduler { // 根据CollectVo配置创建不同的定时任务 for (CollectVo collectVo : collectVos) { - if (collectVo.isCollect()) { //剔除switchVo中的其他oid - ScheduledFuture task = createCollectionTask(switchIp, clientId, switchVo, collectVo); + if (collectVo.isCollect()) { + ScheduledFuture task; + // 剔除switchVo中的其他oid + if (switchVo.getOtherOID() != null) { + Map otherOid = switchOidVo.getOtherOID(); + String type = collectVo.getType(); + + // 创建新的 Map,避免修改原始数据 + Map filteredOid = new HashMap<>(otherOid); + filteredOid.entrySet().removeIf(entry -> + !entry.getValue().equalsIgnoreCase(extractMiddle(type)) + ); + + // 创建新的 SwitchOidDto,避免修改原始 switchVo + SwitchOidDto resultMap = createSwitchMsg(switchVo); + resultMap.setOtherOID(filteredOid); + + task = createCollectionTask(switchIp, clientId, resultMap, collectVo); + } else { + task = createCollectionTask(switchIp, clientId, switchVo, collectVo); + } if (task != null) { switchTasks.put(collectVo.getType(), task); } @@ -112,6 +133,69 @@ public class MultiSwitchCollectionScheduler { switchIp, switchTasks.size()); } + /** + * 赋值oid + * @param switchVo + */ + public SwitchOidDto createSwitchMsg(SwitchOidDto switchVo){ + SwitchOidDto resultMap = new SwitchOidDto(); + resultMap.setIp(switchVo.getIp()); + resultMap.setCommunity(switchVo.getCommunity()); + resultMap.setPort(switchVo.getPort()); + resultMap.setVersion(switchVo.getVersion()); + resultMap.setTimeout(switchVo.getTimeout()); + resultMap.setRetries(switchVo.getRetries()); + + // SNMP v3 特有参数 + resultMap.setSecurityName(switchVo.getSecurityName()); + resultMap.setAuthProtocol(switchVo.getAuthProtocol()); + resultMap.setAuthPassword(switchVo.getAuthPassword()); + resultMap.setPrivProtocol(switchVo.getPrivProtocol()); + resultMap.setPrivPassword(switchVo.getPrivPassword()); + resultMap.setSecurityLevel(switchVo.getSecurityLevel()); + + // OID配置(复制所有OID Map) + resultMap.setNetOID(new LinkedHashMap<>(switchVo.getNetOID())); + resultMap.setEntityOID(new LinkedHashMap<>(switchVo.getEntityOID())); + resultMap.setPwrOID(new LinkedHashMap<>(switchVo.getPwrOID())); + resultMap.setFanOID(new LinkedHashMap<>(switchVo.getFanOID())); + resultMap.setMpuOID(new LinkedHashMap<>(switchVo.getMpuOID())); + resultMap.setModuleOID(new LinkedHashMap<>(switchVo.getModuleOID())); + resultMap.setPowerOID(new LinkedHashMap<>(switchVo.getPowerOID())); + + // 过滤条件 + resultMap.setFilters(new HashMap<>(switchVo.getFilters())); + return resultMap; + } + /** + * 提取字符串的中间部分(去除固定的前缀和后缀) + * @param type 输入字符串(如 "switchAssCollect") + * @return 中间部分(如 "Ass") + */ + public String extractMiddle(String type) { + if (type == null || type.isEmpty()) { + return type; + } + + // 检查是否以 "switch" 开头 + if (!type.startsWith(PREFIX)) { + throw new IllegalArgumentException("Type must start with 'switch'"); + } + + // 检查是否以 "Collect" 结尾 + if (!type.endsWith(SUFFIX)) { + throw new IllegalArgumentException("Type must end with 'Collect'"); + } + + // 计算中间部分的起始和结束位置 + int prefixLength = PREFIX.length(); + int suffixLength = SUFFIX.length(); + int middleStart = prefixLength; + int middleEnd = type.length() - suffixLength; + + // 提取中间部分 + return type.substring(middleStart, middleEnd); + } /** * 启动SNMP v3交换机采集任务 */ diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/snmp/service/ProcessSwitchCollectDataService.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/snmp/service/ProcessSwitchCollectDataService.java index b033ea8..e20aabb 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/snmp/service/ProcessSwitchCollectDataService.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/snmp/service/ProcessSwitchCollectDataService.java @@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSONObject; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.ruoyi.common.core.constant.SecurityConstants; -import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.rocketmq.domain.*; import com.ruoyi.rocketmq.domain.vo.CollectDataVo; @@ -13,7 +12,6 @@ import com.ruoyi.rocketmq.snmp.dto.CollectionResult; import com.ruoyi.rocketmq.utils.SwitchJsonDataParser; import com.ruoyi.system.api.RemoteRevenueConfigService; import com.ruoyi.system.api.domain.InitialSwitchInfoDetailsRemote; -import com.ruoyi.system.api.domain.RmResourceRegistrationRemote; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -58,10 +56,11 @@ public class ProcessSwitchCollectDataService { List> resultData = result.getData(); CollectDataVo switchDataVo = new CollectDataVo(); switchDataVo.setTimestamp(result.getTimestamp()); + switchDataVo.setSwitchIp(result.getSwitchIp()); switchDataVo.setValue(JSONObject.toJSONString(resultData)); switch(result.getDeviceType()){ case "net": -// handleSwitchNetMessage(switchDataVo, clientId); + handleSwitchNetMessage(switchDataVo, clientId); break; case "pwr": handleSwitchPwrMessage(switchDataVo, clientId); @@ -119,7 +118,7 @@ public class ProcessSwitchCollectDataService { insertData.setCollectType(fieldName); if (!"null".equals(fieldValue)) { insertData.setCollectValue(fieldValue); -// insertInitialSwitchOtherInfo.insertInitialSwitchOtherCollectData(insertData); + insertInitialSwitchOtherInfo.insertInitialSwitchOtherCollectData(insertData); } } } @@ -134,8 +133,7 @@ public class ProcessSwitchCollectDataService { insertData.setCollectType(fieldName); if (!"null".equals(fieldValue)) { insertData.setCollectValue(fieldValue); - System.out.println("1"); -// insertInitialSwitchOtherInfo.insertInitialSwitchOtherCollectData(insertData); + insertInitialSwitchOtherInfo.insertInitialSwitchOtherCollectData(insertData); } } } @@ -154,13 +152,6 @@ public class ProcessSwitchCollectDataService { private void handleSwitchNetMessage(CollectDataVo switchDataVo, String clientId) { List switchInfos = SwitchJsonDataParser.parseJsonData(switchDataVo.getValue(), InitialSwitchInfo.class); if(!switchInfos.isEmpty()){ - // 根据clientId查询交换机ip - RmResourceRegistrationRemote queryParam = new RmResourceRegistrationRemote(); - queryParam.setHardwareSn(clientId); - R registMsgR = remoteRevenueConfigService.getListByHardwareSn(queryParam, SecurityConstants.INNER); - if(registMsgR != null){ - RmResourceRegistrationRemote registMsg = registMsgR.getData(); - } // 时间戳转换 long timestamp = switchDataVo.getTimestamp(); long millis = timestamp * 1000; @@ -186,9 +177,7 @@ public class ProcessSwitchCollectDataService { switchInfos.forEach(switchInfo -> { switchInfo.setClientId(clientId); switchInfo.setCreateTime(createTime); - if(registMsgR != null && registMsgR.getData()!=null && registMsgR.getData().getSnmpCollectAddr()!=null){ - switchInfo.setSwitchIp(registMsgR.getData().getSnmpCollectAddr()); - } + switchInfo.setSwitchIp(switchDataVo.getSwitchIp()); InitialSwitchInfoTemp tempInfo = tempMap.get(switchInfo.getName()); if (tempInfo != null) { // 计算inSpeed @@ -212,9 +201,7 @@ public class ProcessSwitchCollectDataService { switchInfos.forEach(switchInfo -> { switchInfo.setClientId(clientId); switchInfo.setCreateTime(createTime); - if(registMsgR != null && registMsgR.getData()!=null && registMsgR.getData().getSnmpCollectAddr()!=null){ - switchInfo.setSwitchIp(registMsgR.getData().getSnmpCollectAddr()); - } + switchInfo.setSwitchIp(switchDataVo.getSwitchIp()); }); } // 清空临时表对应switch信息 diff --git a/ruoyi-rocketmq/src/main/resources/mapper/rocketmq/RmMonitorPolicyMapper.xml b/ruoyi-rocketmq/src/main/resources/mapper/rocketmq/RmMonitorPolicyMapper.xml index a4c5cb2..1f25c60 100644 --- a/ruoyi-rocketmq/src/main/resources/mapper/rocketmq/RmMonitorPolicyMapper.xml +++ b/ruoyi-rocketmq/src/main/resources/mapper/rocketmq/RmMonitorPolicyMapper.xml @@ -19,10 +19,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + - select id, template_id, resource_group_id, policy_name, description, status, deploy_time, create_time, update_time, create_by, update_by, switch_type, deploy_device, resource_type from rm_monitor_policy + select id, template_id, resource_group_id, policy_name, description, status, deploy_time, create_time, update_time, create_by, update_by, switch_type, deploy_device, resource_type, priority from rm_monitor_policy