From a9270027f4a35c20d13c4b688a33245519c6e82f Mon Sep 17 00:00:00 2001 From: gaoyutao Date: Mon, 22 Sep 2025 21:24:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8Eagent=E4=BA=A4=E4=BA=92=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=E6=9B=B4=E6=94=B9=EF=BC=8C=E7=94=9F=E4=BA=A7=E8=80=85?= =?UTF-8?q?=EF=BC=8C=E6=B6=88=E8=B4=B9=E8=80=85=E6=9B=B4=E6=94=B9=EF=BC=8C?= =?UTF-8?q?=E7=9B=91=E6=8E=A7=E6=A8=A1=E6=9D=BF=E7=AD=96=E7=95=A5=E5=BE=AE?= =?UTF-8?q?=E8=B0=83=EF=BC=8C=E6=8B=93=E6=89=91=E7=AE=A1=E7=90=86=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E6=8E=A5=E5=8F=A3=EF=BC=8C=E8=B5=84=E6=BA=90=E7=BB=84?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=9F=A5=E9=87=8D=E6=8E=A5=E5=8F=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/RmResourceRegistrationRemote.java | 11 +- .../RmEpsTopologyManagementController.java | 10 + .../controller/RmResourceGroupController.java | 11 + .../domain/RmEpsTopologyManagement.java | 2 + .../ruoyi/system/domain/RmResourceGroup.java | 2 + .../system/domain/RmResourceRegistration.java | 3 + .../system/mapper/RmResourceGroupMapper.java | 2 + .../service/IRmResourceGroupService.java | 2 + .../impl/RmResourceGroupServiceImpl.java | 14 + .../RmResourceRegistrationServiceImpl.java | 14 +- .../system/RmEpsTopologyManagementMapper.xml | 1 + .../mapper/system/RmResourceGroupMapper.xml | 5 + .../system/RmResourceRegistrationMapper.xml | 8 +- .../ruoyi/rocketmq/config/ConsumerConfig.java | 2 +- .../ruoyi/rocketmq/config/ProducerConfig.java | 2 +- .../rocketmq/consumer/RocketMsgListener.java | 50 +- .../domain/InitialHeartbeatListen.java | 6 + .../rocketmq/domain/RmMonitorPolicy.java | 2 + .../rocketmq/domain/vo/RegisterSwitchVo.java | 18 + .../com/ruoyi/rocketmq/domain/vo/RspVo.java | 19 + .../rocketmq/domain/vo/SwitchDataVo.java | 13 + .../ruoyi/rocketmq/domain/vo/SwitchOidVo.java | 19 + .../ruoyi/rocketmq/enums/MessageCodeEnum.java | 2 + .../ruoyi/rocketmq/enums/MessageTopic.java | 3 +- .../handler/DeviceMessageHandler.java | 567 ++++++++++++++++++ .../ruoyi/rocketmq/model/ConsumerMode.java | 4 +- .../impl/RmMonitorPolicyServiceImpl.java | 179 +++++- 27 files changed, 948 insertions(+), 23 deletions(-) create mode 100644 ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/domain/vo/RegisterSwitchVo.java create mode 100644 ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/domain/vo/RspVo.java create mode 100644 ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/domain/vo/SwitchDataVo.java create mode 100644 ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/domain/vo/SwitchOidVo.java create mode 100644 ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/handler/DeviceMessageHandler.java diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/RmResourceRegistrationRemote.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/RmResourceRegistrationRemote.java index 3a5941a..4402ffb 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/RmResourceRegistrationRemote.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/RmResourceRegistrationRemote.java @@ -68,6 +68,9 @@ public class RmResourceRegistrationRemote extends BaseEntity /** SNMP采集地址 */ @Excel(name = "SNMP采集地址") private String snmpCollectAddr; + /** SNMP采集端口 */ + @Excel(name = "SNMP采集端口") + private String snmpCollectPort; /** 安全级别(1.authPriv、2.authNoPriv,3.noAuthNoPriv) */ @Excel(name = "安全级别",readConverterExp = "1=authPriv,2=authNoPriv,3=noAuthNoPriv") @@ -80,7 +83,7 @@ public class RmResourceRegistrationRemote extends BaseEntity /** 用户名 */ @Excel(name = "用户名") private String resourceUserName; - /** 密码 */ + /** 密码 */ @Excel(name = "密码") private String resourcePwd; @@ -91,6 +94,8 @@ public class RmResourceRegistrationRemote extends BaseEntity /** 在线状态 0-离线,1-在线 */ @Excel(name = "在线状态",readConverterExp = "0=离线,1=在线") private String onlineStatus; + @Excel(name = "交换机在线状态",readConverterExp = "0=离线,1=在线") + private String switchOnlineStatus; /** 描述 */ @Excel(name = "描述") @@ -118,5 +123,9 @@ public class RmResourceRegistrationRemote extends BaseEntity /** 修改人名称 */ private String updaterName; + /** 监控项 */ + private String monitorItems; + /** 自动发现项 */ + private String discoveryRules; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/RmEpsTopologyManagementController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/RmEpsTopologyManagementController.java index d8eb98d..22d2e9d 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/RmEpsTopologyManagementController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/RmEpsTopologyManagementController.java @@ -53,6 +53,16 @@ public class RmEpsTopologyManagementController extends BaseController List list = rmEpsTopologyManagementService.selectRmEpsTopologyManagementList(rmEpsTopologyManagement); return getDataTable(list); } + /** + * 查询拓扑管理图形 + */ + @RequiresPermissions("system:management:list") + @PostMapping("/getListChart") + public AjaxResult getListChart(@RequestBody RmEpsTopologyManagement rmEpsTopologyManagement) + { + List list = rmEpsTopologyManagementService.selectRmEpsTopologyManagementList(rmEpsTopologyManagement); + return success(list); + } /** * 导出拓扑管理列表 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/RmResourceGroupController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/RmResourceGroupController.java index 4169ed5..2a3c4e8 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/RmResourceGroupController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/RmResourceGroupController.java @@ -112,4 +112,15 @@ public class RmResourceGroupController extends BaseController { return R.ok(rmResourceGroupService.selectRmResourceGroupById(id)); } + /** + * 获取资源分组详细信息 + */ + @RequiresPermissions("system:group:query") + @PostMapping(value = "/exitsResourceById") + public AjaxResult exitsResourceById(@RequestBody RmResourceGroup rmResourceGroup) + { + // 根据资源id查询该资源是否已经在资源组中 + String exits = rmResourceGroupService.exitsResourceById(rmResourceGroup); + return success(exits); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/RmEpsTopologyManagement.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/RmEpsTopologyManagement.java index dea2dc9..780dce2 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/RmEpsTopologyManagement.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/RmEpsTopologyManagement.java @@ -73,4 +73,6 @@ public class RmEpsTopologyManagement extends BaseEntity private String updaterName; /** 交换机ip */ private String switchIpAddress; + /** 资源名称 */ + private String resourceName; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/RmResourceGroup.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/RmResourceGroup.java index e80300c..c86ed4f 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/RmResourceGroup.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/RmResourceGroup.java @@ -60,5 +60,7 @@ public class RmResourceGroup extends BaseEntity private String monitorItems; /** 自动发现项 */ private String discoveryRules; + /** 资源id */ + private String resourceIds; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/RmResourceRegistration.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/RmResourceRegistration.java index 6d16ea0..2def466 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/RmResourceRegistration.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/RmResourceRegistration.java @@ -68,6 +68,9 @@ public class RmResourceRegistration extends BaseEntity /** SNMP采集地址 */ @Excel(name = "SNMP采集地址") private String snmpCollectAddr; + /** SNMP采集端口 */ + @Excel(name = "SNMP采集端口") + private String snmpCollectPort; /** 安全级别(1.authPriv、2.authNoPriv,3.noAuthNoPriv) */ @Excel(name = "安全级别",readConverterExp = "1=authPriv,2=authNoPriv,3=noAuthNoPriv") diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/RmResourceGroupMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/RmResourceGroupMapper.java index 2f1fd1d..d4dfbea 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/RmResourceGroupMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/RmResourceGroupMapper.java @@ -66,4 +66,6 @@ public interface RmResourceGroupMapper * @return */ public RmResourceGroup selectMonitorMsgAndGroupMsg(Long id); + + int exitsResourceById(RmResourceGroup rmResourceGroup); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IRmResourceGroupService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IRmResourceGroupService.java index b32a5fe..67d93af 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IRmResourceGroupService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IRmResourceGroupService.java @@ -62,4 +62,6 @@ public interface IRmResourceGroupService public int deleteRmResourceGroupById(Long id); List getRegisterList(RmResourceGroup rmResourceGroup); + + String exitsResourceById(RmResourceGroup rmResourceGroup); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RmResourceGroupServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RmResourceGroupServiceImpl.java index c8d46fd..eab79bf 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RmResourceGroupServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RmResourceGroupServiceImpl.java @@ -124,4 +124,18 @@ public class RmResourceGroupServiceImpl implements IRmResourceGroupService return rmResourceRegistrationList; } } + + @Override + public String exitsResourceById(RmResourceGroup rmResourceGroup) { + String ids = rmResourceGroup.getResourceIds(); + StringBuilder resultStr = new StringBuilder(); + String[] idArray = ids.split(","); + for (String s : idArray) { + int rows = rmResourceGroupMapper.exitsResourceById(rmResourceGroup); + if(rows > 0){ + resultStr.append(s); + } + } + return resultStr.toString(); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RmResourceRegistrationServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RmResourceRegistrationServiceImpl.java index 5783bfd..3fbce3f 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RmResourceRegistrationServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/RmResourceRegistrationServiceImpl.java @@ -221,7 +221,6 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio private void sendRegistrationMessage(RmResourceRegistration registration) { String messageType = "1".equals(registration.getRegistrationStatus()) ? MsgEnum.注册.getValue() : MsgEnum.断开.getValue(); ResourceVo resourceVo = createResourceVo(registration); - MessageVo messageVo = new MessageVo(); messageVo.setClientId(registration.getHardwareSn()); messageVo.setDataType(messageType); @@ -240,13 +239,14 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio resourceVo.setClientPort(Integer.valueOf(registration.getResourcePort())); if (!"1".equals(registration.getResourceType())) { - Map switchMap = new HashMap<>(); - switchMap.put("community", registration.getTeamName()); - switchMap.put("ip", registration.getIpAddress()); - switchMap.put("port", registration.getResourcePort()); - resourceVo.setSwitchBoard(JSONObject.toJSONString(switchMap)); + if("1".equals(registration.getSnmpDetect())){ + Map switchMap = new HashMap<>(); + switchMap.put("community", registration.getTeamName()); + switchMap.put("ip", registration.getSnmpCollectAddr()); + switchMap.put("port", registration.getSnmpCollectPort()); + resourceVo.setSwitchBoard(JSONObject.toJSONString(switchMap)); + } } - return resourceVo; } diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/RmEpsTopologyManagementMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/RmEpsTopologyManagementMapper.xml index 996190c..94adc27 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/RmEpsTopologyManagementMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/RmEpsTopologyManagementMapper.xml @@ -41,6 +41,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and updater_id = #{updaterId} and updater_name like concat('%', #{updaterName}, '%') and switch_ip_address = #{switchIpAddress} + and (switch_name like concat('%', #{resourceName}, '%') or server_name like concat('%', #{resourceName}, '%')) diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/RmResourceGroupMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/RmResourceGroupMapper.xml index ed14b57..b6f6f7c 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/RmResourceGroupMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/RmResourceGroupMapper.xml @@ -101,4 +101,9 @@ select b.monitor_items monitorItems,b.discovery_rules discoveryRules from rm_resource_group a left join rm_monitor_template b on a.id=b.resource_group_id where FIND_IN_SET(#{id}, a.included_devices_id) > 0 + + \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/RmResourceRegistrationMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/RmResourceRegistrationMapper.xml index a166203..32c4463 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/RmResourceRegistrationMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/RmResourceRegistrationMapper.xml @@ -19,6 +19,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -39,7 +40,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, hardware_sn, resource_type, resource_name, ip_address, resource_port, other_port_name, agent_version, protocol, resource_version, rw_permission, snmp_detect, team_name, snmp_collect_addr, security_level, encryption, resource_user_name, resource_pwd, registration_status, online_status, switch_online_status, description, customer_id, customer_name, service_number, create_time, update_time, creator_id, creator_name, updater_id, updater_name from rm_resource_registration + select id, hardware_sn, resource_type, resource_name, ip_address, resource_port, other_port_name, agent_version, protocol, resource_version, rw_permission, snmp_detect, team_name, snmp_collect_addr, snmp_collect_port, security_level, encryption, resource_user_name, resource_pwd, registration_status, online_status, switch_online_status, description, customer_id, customer_name, service_number, create_time, update_time, creator_id, creator_name, updater_id, updater_name from rm_resource_registration