From 23bf338c8f835b2dd4b7ce7e58397bfaf82df0e9 Mon Sep 17 00:00:00 2001 From: gaoyutao Date: Tue, 9 Sep 2025 09:40:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=87=BA=E6=8E=A5=E6=94=B6=E5=8F=82?= =?UTF-8?q?=E6=95=B0=EF=BC=8C=E5=A2=9E=E5=8A=A0=E6=9C=8D=E5=8A=A1=E5=99=A8?= =?UTF-8?q?=E7=A6=BB=E7=BA=BF=E6=97=A5=E5=BF=97=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/RemoteRevenueConfigService.java | 4 + .../domain/RmResourceRegistrationRemote.java | 122 ++++++++++++++++++ .../RemoteRevenueConfigFallbackFactory.java | 6 + .../controller/EpsBusinessController.java | 2 +- .../EpsMethodChangeRecordController.java | 2 +- .../EpsNodeBandwidthController.java | 2 +- .../EpsServerRevenueConfigController.java | 2 +- .../controller/KnowledgeBaseController.java | 1 + .../RmEpsTopologyManagementController.java | 2 +- .../controller/RmResourceGroupController.java | 2 +- .../RmResourceRegistrationController.java | 18 ++- .../mapper/RmResourceRegistrationMapper.java | 7 + .../IRmResourceRegistrationService.java | 8 +- .../EpsInitialTrafficDataServiceImpl.java | 34 +++-- .../InitialSwitchInfoDetailsServiceImpl.java | 21 ++- .../RmResourceRegistrationServiceImpl.java | 12 ++ .../com/ruoyi/system/util/CalculateUtil.java | 14 ++ .../system/RmResourceRegistrationMapper.xml | 35 +++++ .../rocketmq/consumer/RocketMsgListener.java | 84 ++++++++++++ .../InitialHeartbeatListenController.java | 105 +++++++++++++++ .../InitialHeartbeatListenLogController.java | 105 +++++++++++++++ .../domain/InitialHeartbeatListen.java | 25 ++++ .../domain/InitialHeartbeatListenLog.java | 57 ++++++++ .../InitialHeartbeatListenLogMapper.java | 61 +++++++++ .../mapper/InitialHeartbeatListenMapper.java | 61 +++++++++ .../IInitialHeartbeatListenLogService.java | 61 +++++++++ .../IInitialHeartbeatListenService.java | 61 +++++++++ .../InitialHeartbeatListenLogServiceImpl.java | 96 ++++++++++++++ .../InitialHeartbeatListenServiceImpl.java | 96 ++++++++++++++ .../InitialHeartbeatListenLogMapper.xml | 78 +++++++++++ .../rocketmq/InitialHeartbeatListenMapper.xml | 79 ++++++++++++ 31 files changed, 1232 insertions(+), 31 deletions(-) create mode 100644 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/RmResourceRegistrationRemote.java create mode 100644 ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/controller/InitialHeartbeatListenController.java create mode 100644 ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/controller/InitialHeartbeatListenLogController.java create mode 100644 ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/domain/InitialHeartbeatListen.java create mode 100644 ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/domain/InitialHeartbeatListenLog.java create mode 100644 ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/mapper/InitialHeartbeatListenLogMapper.java create mode 100644 ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/mapper/InitialHeartbeatListenMapper.java create mode 100644 ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/IInitialHeartbeatListenLogService.java create mode 100644 ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/IInitialHeartbeatListenService.java create mode 100644 ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialHeartbeatListenLogServiceImpl.java create mode 100644 ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialHeartbeatListenServiceImpl.java create mode 100644 ruoyi-rocketmq/src/main/resources/mapper/rocketmq/InitialHeartbeatListenLogMapper.xml create mode 100644 ruoyi-rocketmq/src/main/resources/mapper/rocketmq/InitialHeartbeatListenMapper.xml diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteRevenueConfigService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteRevenueConfigService.java index de62fb4..d337b4c 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteRevenueConfigService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteRevenueConfigService.java @@ -5,6 +5,7 @@ import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.domain.EpsInitialTrafficDataRemote; import com.ruoyi.system.api.domain.InitialSwitchInfoDetailsRemote; +import com.ruoyi.system.api.domain.RmResourceRegistrationRemote; import com.ruoyi.system.api.factory.RemoteRevenueConfigFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @@ -33,4 +34,7 @@ public interface RemoteRevenueConfigService */ @PostMapping("/switchInfoDetails/autoSaveSwitchTraffic") public R autoSaveSwitchTraffic(@RequestBody InitialSwitchInfoDetailsRemote queryParam, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + @PostMapping("/registration/updateStatusByResource") + public R updateStatusByResource(@RequestBody RmResourceRegistrationRemote queryParam, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); } 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 new file mode 100644 index 0000000..3a5941a --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/RmResourceRegistrationRemote.java @@ -0,0 +1,122 @@ +package com.ruoyi.system.api.domain; + +import com.ruoyi.common.core.annotation.Excel; +import com.ruoyi.common.core.web.domain.BaseEntity; +import lombok.Data; + +/** + * 资源注册对象 rm_resource_registration + * + * @author gyt + * @date 2025-08-12 + */ +@Data +public class RmResourceRegistrationRemote extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** id */ + private Long id; + + /** 硬件SN */ + @Excel(name = "硬件SN") + private String hardwareSn; + + /** 资源类型 + * 1 服务器,2 交换机*/ + @Excel(name = "资源类型",readConverterExp = "1=服务器,2=交换机") + private String resourceType; + + /** 资源名称 */ + @Excel(name = "资源名称") + private String resourceName; + + /** IP地址 */ + @Excel(name = "IP地址") + private String ipAddress; + + /** 端口1.162(SNMP),2.其他 */ + @Excel(name = "端口") + private String resourcePort; + + /**其他端口名称 */ + private String otherPortName; + + /** agent版本 */ + @Excel(name = "agent版本") + private String agentVersion; + + + /** 协议 1.TCP,2.UDP */ + @Excel(name = "协议",readConverterExp = "1=TCP,2=UDP") + private String protocol; + + /** SNMP探测 0=否,1=是 */ + @Excel(name = "",readConverterExp = "0=否,1=是") + private String snmpDetect; + /** 版本(1.SNMPv2,2.SNMPv3) */ + @Excel(name = "SNMP版本",readConverterExp = "1=华为SNMPv2c,2=华为SNMPv3") + private String resourceVersion; + + /** 读写权限(1.RW,2.ReadOnly) */ + @Excel(name = "读写权限",readConverterExp = "1=只读,2=可读可写") + private String rwPermission; + /** 团体名称 */ + @Excel(name = "团体名称") + private String teamName; + + /** SNMP采集地址 */ + @Excel(name = "SNMP采集地址") + private String snmpCollectAddr; + + /** 安全级别(1.authPriv、2.authNoPriv,3.noAuthNoPriv) */ + @Excel(name = "安全级别",readConverterExp = "1=authPriv,2=authNoPriv,3=noAuthNoPriv") + private String securityLevel; + + /** 加密方式 1.md5,2.SHA */ + @Excel(name = "加密方式",readConverterExp = "1=MD5,2=SHA") + private String encryption; + + /** 用户名 */ + @Excel(name = "用户名") + private String resourceUserName; + /** 密码 */ + @Excel(name = "密码") + private String resourcePwd; + + /** 注册状态 0-未注册,1-已注册 */ + @Excel(name = "注册状态",readConverterExp = "0=未注册,1=已注册") + private String registrationStatus; + + /** 在线状态 0-离线,1-在线 */ + @Excel(name = "在线状态",readConverterExp = "0=离线,1=在线") + private String onlineStatus; + + /** 描述 */ + @Excel(name = "描述") + private String description; + + /** 设备业务客户id */ + private Long customerId; + + /** 设备业务客户名称 */ + @Excel(name = "设备业务客户") + private String customerName; + + /** 业务号 */ + @Excel(name = "业务号") + private String serviceNumber; + + /** 创建人id */ + private Long creatorId; + + /** 创建人名称 */ + private String creatorName; + + /** 修改人id */ + private Long updaterId; + + /** 修改人名称 */ + private String updaterName; + +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteRevenueConfigFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteRevenueConfigFallbackFactory.java index 2d26868..643e12c 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteRevenueConfigFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteRevenueConfigFallbackFactory.java @@ -4,6 +4,7 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.RemoteRevenueConfigService; import com.ruoyi.system.api.domain.EpsInitialTrafficDataRemote; import com.ruoyi.system.api.domain.InitialSwitchInfoDetailsRemote; +import com.ruoyi.system.api.domain.RmResourceRegistrationRemote; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; @@ -34,6 +35,11 @@ public class RemoteRevenueConfigFallbackFactory implements FallbackFactory autoSaveSwitchTraffic(InitialSwitchInfoDetailsRemote queryParam, String source) { return R.fail("保存交换机流量数据失败:" + throwable.getMessage()); } + + @Override + public R updateStatusByResource(RmResourceRegistrationRemote queryParam, String source) { + return R.fail("资源状态修改失败:" + throwable.getMessage()); + } }; } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/EpsBusinessController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/EpsBusinessController.java index 02bd5f2..9674ed0 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/EpsBusinessController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/EpsBusinessController.java @@ -62,7 +62,7 @@ public class EpsBusinessController extends BaseController @RequiresPermissions("system:business:export") @Log(title = "业务信息", businessType = BusinessType.EXPORT) @PostMapping("/export") - public void export(HttpServletResponse response, EpsBusiness epsBusiness) + public void export(HttpServletResponse response, @RequestBody EpsBusiness epsBusiness) { List list = epsBusinessService.selectEpsBusinessList(epsBusiness); ExcelUtil util = new ExcelUtil(EpsBusiness.class); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/EpsMethodChangeRecordController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/EpsMethodChangeRecordController.java index 5ef9baa..503fb71 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/EpsMethodChangeRecordController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/EpsMethodChangeRecordController.java @@ -52,7 +52,7 @@ public class EpsMethodChangeRecordController extends BaseController @RequiresPermissions("system:record:export") @Log(title = "收益方式修改记录", businessType = BusinessType.EXPORT) @PostMapping("/export") - public void export(HttpServletResponse response, EpsMethodChangeRecord epsMethodChangeRecord) + public void export(HttpServletResponse response, @RequestBody EpsMethodChangeRecord epsMethodChangeRecord) { List list = epsMethodChangeRecordService.selectEpsMethodChangeRecordList(epsMethodChangeRecord); ExcelUtil util = new ExcelUtil(EpsMethodChangeRecord.class); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/EpsNodeBandwidthController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/EpsNodeBandwidthController.java index fcf2f6a..2346258 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/EpsNodeBandwidthController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/EpsNodeBandwidthController.java @@ -86,7 +86,7 @@ public class EpsNodeBandwidthController extends BaseController @RequiresPermissions("system:bandwidth:export") @Log(title = "节点带宽信息", businessType = BusinessType.EXPORT) @PostMapping("/export") - public void export(HttpServletResponse response, EpsNodeBandwidth epsNodeBandwidth) + public void export(HttpServletResponse response, @RequestBody EpsNodeBandwidth epsNodeBandwidth) { List list = epsNodeBandwidthService.selectEpsNodeBandwidthList(epsNodeBandwidth); ExcelUtil util = new ExcelUtil(EpsNodeBandwidth.class); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/EpsServerRevenueConfigController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/EpsServerRevenueConfigController.java index 66d049c..2fa86ac 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/EpsServerRevenueConfigController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/EpsServerRevenueConfigController.java @@ -52,7 +52,7 @@ public class EpsServerRevenueConfigController extends BaseController @RequiresPermissions("system:config:export") @Log(title = "服务器收益方式配置", businessType = BusinessType.EXPORT) @PostMapping("/export") - public void export(HttpServletResponse response, EpsServerRevenueConfig epsServerRevenueConfig) + public void export(HttpServletResponse response, @RequestBody EpsServerRevenueConfig epsServerRevenueConfig) { List list = epsServerRevenueConfigService.selectEpsServerRevenueConfigList(epsServerRevenueConfig); ExcelUtil util = new ExcelUtil(EpsServerRevenueConfig.class); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/KnowledgeBaseController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/KnowledgeBaseController.java index 3b07131..7924e03 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/KnowledgeBaseController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/KnowledgeBaseController.java @@ -54,6 +54,7 @@ public class KnowledgeBaseController extends BaseController { List list = knowledgeBaseService.selectKnowledgeBaseList(knowledgeBase); ExcelUtil util = new ExcelUtil(KnowledgeBase.class); + util.showColumn(knowledgeBase.getProperties()); util.exportExcel(response, list, "知识库数据"); } 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 78944d4..d8eb98d 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 @@ -60,7 +60,7 @@ public class RmEpsTopologyManagementController extends BaseController @RequiresPermissions("system:management:export") @Log(title = "拓扑管理", businessType = BusinessType.EXPORT) @PostMapping("/export") - public void export(HttpServletResponse response, RmEpsTopologyManagement rmEpsTopologyManagement) + public void export(HttpServletResponse response, @RequestBody RmEpsTopologyManagement rmEpsTopologyManagement) { List list = rmEpsTopologyManagementService.selectRmEpsTopologyManagementList(rmEpsTopologyManagement); ExcelUtil util = new ExcelUtil(RmEpsTopologyManagement.class); 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 f8e428f..e60bfc9 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 @@ -50,7 +50,7 @@ public class RmResourceGroupController extends BaseController @RequiresPermissions("system:group:export") @Log(title = "资源分组", businessType = BusinessType.EXPORT) @PostMapping("/export") - public void export(HttpServletResponse response, RmResourceGroup rmResourceGroup) + public void export(HttpServletResponse response, @RequestBody RmResourceGroup rmResourceGroup) { List list = rmResourceGroupService.selectRmResourceGroupList(rmResourceGroup); ExcelUtil util = new ExcelUtil(RmResourceGroup.class); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/RmResourceRegistrationController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/RmResourceRegistrationController.java index 8cf4f3d..4645aef 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/RmResourceRegistrationController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/RmResourceRegistrationController.java @@ -1,5 +1,6 @@ package com.ruoyi.system.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.system.domain.RmResourceRegistration; import com.ruoyi.system.service.IRmResourceRegistrationService; @@ -51,7 +53,7 @@ public class RmResourceRegistrationController extends BaseController @RequiresPermissions("system:registration:export") @Log(title = "资源注册", businessType = BusinessType.EXPORT) @PostMapping("/export") - public void export(HttpServletResponse response, RmResourceRegistration rmResourceRegistration) + public void export(HttpServletResponse response, @RequestBody RmResourceRegistration rmResourceRegistration) { List list = rmResourceRegistrationService.selectRmResourceRegistrationList(rmResourceRegistration); ExcelUtil util = new ExcelUtil(RmResourceRegistration.class); @@ -129,4 +131,18 @@ public class RmResourceRegistrationController extends BaseController return list; } + /** + * 检测到服务器离线,修改状态为离线 + * @param rmResourceRegistration + * @return + */ + @InnerAuth + @PostMapping("/updateStatusByResource") + public R updateStatusByResource(@RequestBody RmResourceRegistration rmResourceRegistration) + { + R rows = rmResourceRegistrationService.updateStatusByResource(rmResourceRegistration); + return rows; + } + + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/RmResourceRegistrationMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/RmResourceRegistrationMapper.java index 14a9fc1..d7c3890 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/RmResourceRegistrationMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/RmResourceRegistrationMapper.java @@ -77,4 +77,11 @@ public interface RmResourceRegistrationMapper * @return 资源注册集合 */ public List selectAllResourceNameByType(RmResourceRegistration resourceRegistration); + + /** + * 检测到服务器离线,修改状态为离线 + * @param rmResourceRegistration + * @return + */ + Integer updateStatusByResource(RmResourceRegistration rmResourceRegistration); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IRmResourceRegistrationService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IRmResourceRegistrationService.java index 6c517a8..a5b8e35 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IRmResourceRegistrationService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IRmResourceRegistrationService.java @@ -1,5 +1,6 @@ package com.ruoyi.system.service; +import com.ruoyi.common.core.domain.R; import com.ruoyi.system.domain.RmResourceRegistration; import java.util.List; @@ -78,5 +79,10 @@ public interface IRmResourceRegistrationService * @return 资源注册集合 */ public List selectAllResourceNameByType(RmResourceRegistration resourceRegistration); - + /** + * 检测到服务器离线,修改状态为离线 + * @param rmResourceRegistration + * @return + */ + R updateStatusByResource(RmResourceRegistration rmResourceRegistration); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/EpsInitialTrafficDataServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/EpsInitialTrafficDataServiceImpl.java index a10026e..04e492f 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/EpsInitialTrafficDataServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/EpsInitialTrafficDataServiceImpl.java @@ -304,6 +304,8 @@ public class EpsInitialTrafficDataServiceImpl implements EpsInitialTrafficDataSe // 3. 计算各时间段95值 calculateTimeSegments95(queryParam, records, dailyStartTime, dailyEndTime); + }else{ + calculateNormalDeviceBandwidth(queryParam, dailyStartTime, dailyEndTime); } } /** @@ -430,11 +432,20 @@ public class EpsInitialTrafficDataServiceImpl implements EpsInitialTrafficDataSe dailyResult = epsInitialTrafficData.getPackageBandwidth(); epsInitialTrafficData.setBandwidthType("3"); }else{ - if("1".equals(dayOrMonth)){ - epsInitialTrafficData.setBandwidthType("5"); - } - if("2".equals(dayOrMonth)){ - epsInitialTrafficData.setBandwidthType("6"); + if(CalculateUtil.isEff(dataList)){ + if("1".equals(dayOrMonth)){ + epsInitialTrafficData.setBandwidthType("5"); + } + if("2".equals(dayOrMonth)){ + epsInitialTrafficData.setBandwidthType("6"); + } + }else { + if("1".equals(dayOrMonth)){ + epsInitialTrafficData.setBandwidthType("1"); + } + if("2".equals(dayOrMonth)){ + epsInitialTrafficData.setBandwidthType("2"); + } } } saveBandwidthResult(epsInitialTrafficData, dailyResult, startTime); @@ -491,17 +502,4 @@ public class EpsInitialTrafficDataServiceImpl implements EpsInitialTrafficDataSe } } - /** - * 判断是否为有效 - * @param list - * @return - */ - private Boolean isEff(List list){ - if(!list.isEmpty()){ - if(list.size()<288){ - return true; - } - } - return false; - } } 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 25bc86a..9b7ba7a 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 @@ -452,6 +452,8 @@ public class InitialSwitchInfoDetailsServiceImpl implements IInitialSwitchInfoDe // 计算各时间段95值 calculateSwitchTimeSegments95(queryParam, records, dailyStartTime, dailyEndTime); + }else { + calculateNormalSwitchBandwidth(queryParam, dailyStartTime, dailyEndTime); } } @@ -580,11 +582,20 @@ public class InitialSwitchInfoDetailsServiceImpl implements IInitialSwitchInfoDe // 3. 保存结果 InitialSwitchInfoDetails switchInfo = dataList.get(0); switchInfo.setResourceType("2"); - if("1".equals(dayOrMonth)){ - switchInfo.setBandwidthType("5"); - } - if("2".equals(dayOrMonth)){ - switchInfo.setBandwidthType("6"); + if(CalculateUtil.isEff(dataList)){ + if("1".equals(dayOrMonth)){ + switchInfo.setBandwidthType("5"); + } + if("2".equals(dayOrMonth)){ + switchInfo.setBandwidthType("6"); + } + }else { + if("1".equals(dayOrMonth)){ + switchInfo.setBandwidthType("1"); + } + if("2".equals(dayOrMonth)){ + switchInfo.setBandwidthType("2"); + } } saveSwitchBandwidthResult(switchInfo, dailyResult, startTime); } 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 03c1e81..5b77ccf 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 @@ -1,5 +1,6 @@ package com.ruoyi.system.service.impl; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.domain.EpsNodeBandwidth; @@ -229,4 +230,15 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio return rmResourceRegistrationMapper.selectAllResourceNameByType(resourceRegistration); } + /** + * 检测到服务器离线,修改状态为离线 + * @param rmResourceRegistration + * @return + */ + @Override + public R updateStatusByResource(RmResourceRegistration rmResourceRegistration) { + rmResourceRegistrationMapper.updateStatusByResource(rmResourceRegistration); + return R.ok("状态修改成功"); + } + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/util/CalculateUtil.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/util/CalculateUtil.java index c892ead..19b37e9 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/util/CalculateUtil.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/util/CalculateUtil.java @@ -87,4 +87,18 @@ public class CalculateUtil { throw new IllegalArgumentException("不支持的带宽类型: " + bandwidthType); } } + + /** + * 判断是否为有效 + * @param list + * @return + */ + public static Boolean isEff(List list){ + if(!list.isEmpty()){ + if(list.size()<288){ + return true; + } + } + return false; + } } 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 4bbc77a..0c79242 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 @@ -234,4 +234,39 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select count(1) from rm_resource_registration where hardware_sn = #{hardwareSn} + + update rm_resource_registration + + hardware_sn = #{hardwareSn}, + resource_type = #{resourceType}, + resource_name = #{resourceName}, + ip_address = #{ipAddress}, + resource_port = #{resourcePort}, + other_port_name = #{otherPortName}, + agent_version = #{agentVersion}, + protocol = #{protocol}, + resource_version = #{resourceVersion}, + rw_permission = #{rwPermission}, + snmp_detect = #{snmpDetect}, + team_name = #{teamName}, + snmp_collect_addr = #{snmpCollectAddr}, + security_level = #{securityLevel}, + encryption = #{encryption}, + resource_user_name = #{resourceUserName}, + resource_pwd = #{resourcePwd}, + registration_status = #{registrationStatus}, + online_status = #{onlineStatus}, + description = #{description}, + customer_id = #{customerId}, + customer_name = #{customerName}, + service_number = #{serviceNumber}, + create_time = #{createTime}, + update_time = #{updateTime}, + creator_id = #{creatorId}, + creator_name = #{creatorName}, + updater_id = #{updaterId}, + updater_name = #{updaterName}, + + where id = #{id} + \ No newline at end of file diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/consumer/RocketMsgListener.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/consumer/RocketMsgListener.java index b2089a5..1d12370 100644 --- a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/consumer/RocketMsgListener.java +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/consumer/RocketMsgListener.java @@ -17,6 +17,7 @@ import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus; import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently; import org.apache.rocketmq.common.message.MessageExt; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; @@ -26,6 +27,7 @@ import java.math.RoundingMode; import java.util.Date; import java.util.List; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import java.util.function.Function; import java.util.stream.Collectors; @@ -36,6 +38,10 @@ import java.util.stream.Collectors; @Component public class RocketMsgListener implements MessageListenerConcurrently { + // 在类中添加以下成员变量来记录心跳状态 + private final Map heartbeatStatusMap = new ConcurrentHashMap<>(); // 客户端ID -> 连续丢失心跳次数 + private final Map lastHeartbeatTimeMap = new ConcurrentHashMap<>(); // 客户端ID -> 最后心跳时间 + private final IInitialBandwidthTrafficService initialBandwidthTrafficService; private final RemoteRevenueConfigService remoteRevenueConfigService; @@ -56,6 +62,8 @@ public class RocketMsgListener implements MessageListenerConcurrently { @Autowired private IInitialSwitchInfoTempService initialSwitchInfoTempService; @Autowired + private IInitialHeartbeatListenLogService initialHeartbeatListenLog; + @Autowired public RocketMsgListener(IInitialBandwidthTrafficService initialBandwidthTrafficService, RemoteRevenueConfigService remoteRevenueConfigService) { this.initialBandwidthTrafficService = initialBandwidthTrafficService; @@ -120,6 +128,9 @@ public class RocketMsgListener implements MessageListenerConcurrently { case "SWITCHBOARD": handleSwitchMessage(message); break; + case "HEARTBEAT": + handleHeartbeatMessage(message); + break; default: log.warn("未知数据类型:{}",message.getDataType()); } @@ -380,4 +391,77 @@ public class RocketMsgListener implements MessageListenerConcurrently { throw new RuntimeException("系统data数据为空"); } } + /** + * 监听心跳 + * @param message + */ + private void handleHeartbeatMessage(DeviceMessage message) { + try { + List heartbeats = JsonDataParser.parseJsonData(message.getData(), InitialHeartbeatListen.class); + if(!heartbeats.isEmpty()){ + InitialHeartbeatListen heartbeat = heartbeats.get(0); + String clientId = message.getClientId(); + log.info("处理心跳消息,客户端ID: {}, 时间: {}", clientId, heartbeat.getTimestamp()); + + // 更新心跳状态 + heartbeatStatusMap.put(clientId, 0); // 重置为0表示收到心跳 + lastHeartbeatTimeMap.put(clientId, System.currentTimeMillis()); + + // 检查是否之前有丢失心跳的情况 + if (heartbeatStatusMap.getOrDefault(clientId, 0) > 0) { + // 之前有丢失心跳,现在恢复了,记录恢复日志 + log.warn("客户端ID: {} 心跳恢复", clientId); + insertHeartbeatLog(clientId, "2", "心跳恢复,服务器在线"); // 1表示恢复 + } + } + } catch (Exception e) { + log.error("处理心跳消息异常", e); + } + } + + // 添加一个定时任务方法,定期检查心跳状态 + @Scheduled(fixedRate = 60000) // 每分钟检查一次 + public void checkHeartbeatStatus() { + long currentTime = System.currentTimeMillis(); + long heartbeatTimeout = 180000; // 3分钟无心跳认为丢失 + + for (Map.Entry entry : lastHeartbeatTimeMap.entrySet()) { + String clientId = entry.getKey(); + long lastHeartbeatTime = entry.getValue(); + + if (currentTime - lastHeartbeatTime > heartbeatTimeout) { + // 心跳超时 + int lostCount = heartbeatStatusMap.getOrDefault(clientId, 0) + 1; + heartbeatStatusMap.put(clientId, lostCount); + + log.warn("客户端ID: {} 心跳丢失,连续次数: {}", clientId, lostCount); + + if (lostCount == 3) { + // 两次获取不到心跳 + insertHeartbeatLog(clientId, "3", "连续三次心跳丢失,服务器离线"); + // 把资源注册表资源信息改为离线 +// RmResourceRegistrationRemote rmResourceRegistrationRemote = new RmResourceRegistrationRemote(); +// rmResourceRegistrationRemote.setOnlineStatus("0"); +// remoteRevenueConfigService.updateStatusByResource(rmResourceRegistrationRemote, SecurityConstants.INNER); + } + } + } + } + + // 插入心跳日志到数据库 + private void insertHeartbeatLog(String machineId, String status, String remark) { + try { + InitialHeartbeatListenLog listenLog = new InitialHeartbeatListenLog(); + listenLog.setClientId(machineId); + listenLog.setStatus(status); // 0-离线 1-在线 2-恢复 3-三次丢失 + listenLog.setRemark(remark); + listenLog.setCreateTime(new Date()); + + // 调用DAO或Service插入日志 + initialHeartbeatListenLog.insertInitialHeartbeatListenLog(listenLog); + log.info("已记录心跳日志,客户端ID: {}, 状态: {}", machineId, status); + } catch (Exception e) { + log.error("插入心跳日志失败", e); + } + } } diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/controller/InitialHeartbeatListenController.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/controller/InitialHeartbeatListenController.java new file mode 100644 index 0000000..9f22043 --- /dev/null +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/controller/InitialHeartbeatListenController.java @@ -0,0 +1,105 @@ +package com.ruoyi.rocketmq.controller; + +import java.util.List; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.rocketmq.domain.InitialHeartbeatListen; +import com.ruoyi.rocketmq.service.IInitialHeartbeatListenService; +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.utils.poi.ExcelUtil; +import com.ruoyi.common.core.web.page.TableDataInfo; + +/** + * 心跳信息Controller + * + * @author gyt + * @date 2025-09-08 + */ +@RestController +@RequestMapping("/heartbeatListen") +public class InitialHeartbeatListenController extends BaseController +{ + @Autowired + private IInitialHeartbeatListenService initialHeartbeatListenService; + + /** + * 查询心跳信息列表 + */ + @RequiresPermissions("rocketmq:heartbeatListen:list") + @GetMapping("/list") + public TableDataInfo list(InitialHeartbeatListen initialHeartbeatListen) + { + startPage(); + List list = initialHeartbeatListenService.selectInitialHeartbeatListenList(initialHeartbeatListen); + return getDataTable(list); + } + + /** + * 导出心跳信息列表 + */ + @RequiresPermissions("rocketmq:heartbeatListen:export") + @Log(title = "心跳信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, InitialHeartbeatListen initialHeartbeatListen) + { + List list = initialHeartbeatListenService.selectInitialHeartbeatListenList(initialHeartbeatListen); + ExcelUtil util = new ExcelUtil(InitialHeartbeatListen.class); + util.exportExcel(response, list, "心跳信息数据"); + } + + /** + * 获取心跳信息详细信息 + */ + @RequiresPermissions("rocketmq:heartbeatListen:query") + @GetMapping(value = "/{clientId}") + public AjaxResult getInfo(@PathVariable("clientId") String clientId) + { + return success(initialHeartbeatListenService.selectInitialHeartbeatListenByClientId(clientId)); + } + + /** + * 新增心跳信息 + */ + @RequiresPermissions("rocketmq:heartbeatListen:add") + @Log(title = "心跳信息", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody InitialHeartbeatListen initialHeartbeatListen) + { + return toAjax(initialHeartbeatListenService.insertInitialHeartbeatListen(initialHeartbeatListen)); + } + + /** + * 修改心跳信息 + */ + @RequiresPermissions("rocketmq:heartbeatListen:edit") + @Log(title = "心跳信息", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody InitialHeartbeatListen initialHeartbeatListen) + { + return toAjax(initialHeartbeatListenService.updateInitialHeartbeatListen(initialHeartbeatListen)); + } + + /** + * 删除心跳信息 + */ + @RequiresPermissions("rocketmq:heartbeatListen:remove") + @Log(title = "心跳信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{clientIds}") + public AjaxResult remove(@PathVariable String[] clientIds) + { + return toAjax(initialHeartbeatListenService.deleteInitialHeartbeatListenByClientIds(clientIds)); + } +} diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/controller/InitialHeartbeatListenLogController.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/controller/InitialHeartbeatListenLogController.java new file mode 100644 index 0000000..9bc3417 --- /dev/null +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/controller/InitialHeartbeatListenLogController.java @@ -0,0 +1,105 @@ +package com.ruoyi.rocketmq.controller; + +import java.util.List; +import java.io.IOException; +import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.rocketmq.domain.InitialHeartbeatListenLog; +import com.ruoyi.rocketmq.service.IInitialHeartbeatListenLogService; +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.core.utils.poi.ExcelUtil; +import com.ruoyi.common.core.web.page.TableDataInfo; + +/** + * 心跳信息日志Controller + * + * @author gyt + * @date 2025-09-08 + */ +@RestController +@RequestMapping("/log") +public class InitialHeartbeatListenLogController extends BaseController +{ + @Autowired + private IInitialHeartbeatListenLogService initialHeartbeatListenLogService; + + /** + * 查询心跳信息日志列表 + */ + @RequiresPermissions("rocketmq:log:list") + @GetMapping("/list") + public TableDataInfo list(InitialHeartbeatListenLog initialHeartbeatListenLog) + { + startPage(); + List list = initialHeartbeatListenLogService.selectInitialHeartbeatListenLogList(initialHeartbeatListenLog); + return getDataTable(list); + } + + /** + * 导出心跳信息日志列表 + */ + @RequiresPermissions("rocketmq:log:export") + @Log(title = "心跳信息日志", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, InitialHeartbeatListenLog initialHeartbeatListenLog) + { + List list = initialHeartbeatListenLogService.selectInitialHeartbeatListenLogList(initialHeartbeatListenLog); + ExcelUtil util = new ExcelUtil(InitialHeartbeatListenLog.class); + util.exportExcel(response, list, "心跳信息日志数据"); + } + + /** + * 获取心跳信息日志详细信息 + */ + @RequiresPermissions("rocketmq:log:query") + @GetMapping(value = "/{clientId}") + public AjaxResult getInfo(@PathVariable("clientId") String clientId) + { + return success(initialHeartbeatListenLogService.selectInitialHeartbeatListenLogByClientId(clientId)); + } + + /** + * 新增心跳信息日志 + */ + @RequiresPermissions("rocketmq:log:add") + @Log(title = "心跳信息日志", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody InitialHeartbeatListenLog initialHeartbeatListenLog) + { + return toAjax(initialHeartbeatListenLogService.insertInitialHeartbeatListenLog(initialHeartbeatListenLog)); + } + + /** + * 修改心跳信息日志 + */ + @RequiresPermissions("rocketmq:log:edit") + @Log(title = "心跳信息日志", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody InitialHeartbeatListenLog initialHeartbeatListenLog) + { + return toAjax(initialHeartbeatListenLogService.updateInitialHeartbeatListenLog(initialHeartbeatListenLog)); + } + + /** + * 删除心跳信息日志 + */ + @RequiresPermissions("rocketmq:log:remove") + @Log(title = "心跳信息日志", businessType = BusinessType.DELETE) + @DeleteMapping("/{clientIds}") + public AjaxResult remove(@PathVariable String[] clientIds) + { + return toAjax(initialHeartbeatListenLogService.deleteInitialHeartbeatListenLogByClientIds(clientIds)); + } +} diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/domain/InitialHeartbeatListen.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/domain/InitialHeartbeatListen.java new file mode 100644 index 0000000..bbe3a8c --- /dev/null +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/domain/InitialHeartbeatListen.java @@ -0,0 +1,25 @@ +package com.ruoyi.rocketmq.domain; + +import com.ruoyi.common.core.annotation.Excel; +import com.ruoyi.common.core.web.domain.BaseEntity; +import lombok.Data; + +/** + * 心跳信息对象 initial_heartbeat_listen + * + * @author gyt + * @date 2025-09-08 + */ +@Data +public class InitialHeartbeatListen extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 客户端ID */ + private String clientId; + + /** 强度值 */ + @Excel(name = "强度值") + private Long strength; + +} diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/domain/InitialHeartbeatListenLog.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/domain/InitialHeartbeatListenLog.java new file mode 100644 index 0000000..0e6c06d --- /dev/null +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/domain/InitialHeartbeatListenLog.java @@ -0,0 +1,57 @@ +package com.ruoyi.rocketmq.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.core.annotation.Excel; +import com.ruoyi.common.core.web.domain.BaseEntity; + +/** + * 心跳信息日志对象 initial_heartbeat_listen_log + * + * @author gyt + * @date 2025-09-08 + */ +public class InitialHeartbeatListenLog extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 客户端ID */ + private String clientId; + + /** 状态0-正常 1-恢复 2-两次丢失 3-三次丢失 */ + @Excel(name = "状态0-正常 1-恢复 2-两次丢失 3-三次丢失") + private String status; + + public void setClientId(String clientId) + { + this.clientId = clientId; + } + + public String getClientId() + { + return clientId; + } + + public void setStatus(String status) + { + this.status = status; + } + + public String getStatus() + { + return status; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("clientId", getClientId()) + .append("status", getStatus()) + .append("remark", getRemark()) + .append("createTime", getCreateTime()) + .append("updateTime", getUpdateTime()) + .append("createBy", getCreateBy()) + .append("updateBy", getUpdateBy()) + .toString(); + } +} diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/mapper/InitialHeartbeatListenLogMapper.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/mapper/InitialHeartbeatListenLogMapper.java new file mode 100644 index 0000000..e520e01 --- /dev/null +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/mapper/InitialHeartbeatListenLogMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.rocketmq.mapper; + +import java.util.List; +import com.ruoyi.rocketmq.domain.InitialHeartbeatListenLog; + +/** + * 心跳信息日志Mapper接口 + * + * @author gyt + * @date 2025-09-08 + */ +public interface InitialHeartbeatListenLogMapper +{ + /** + * 查询心跳信息日志 + * + * @param clientId 心跳信息日志主键 + * @return 心跳信息日志 + */ + public InitialHeartbeatListenLog selectInitialHeartbeatListenLogByClientId(String clientId); + + /** + * 查询心跳信息日志列表 + * + * @param initialHeartbeatListenLog 心跳信息日志 + * @return 心跳信息日志集合 + */ + public List selectInitialHeartbeatListenLogList(InitialHeartbeatListenLog initialHeartbeatListenLog); + + /** + * 新增心跳信息日志 + * + * @param initialHeartbeatListenLog 心跳信息日志 + * @return 结果 + */ + public int insertInitialHeartbeatListenLog(InitialHeartbeatListenLog initialHeartbeatListenLog); + + /** + * 修改心跳信息日志 + * + * @param initialHeartbeatListenLog 心跳信息日志 + * @return 结果 + */ + public int updateInitialHeartbeatListenLog(InitialHeartbeatListenLog initialHeartbeatListenLog); + + /** + * 删除心跳信息日志 + * + * @param clientId 心跳信息日志主键 + * @return 结果 + */ + public int deleteInitialHeartbeatListenLogByClientId(String clientId); + + /** + * 批量删除心跳信息日志 + * + * @param clientIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteInitialHeartbeatListenLogByClientIds(String[] clientIds); +} diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/mapper/InitialHeartbeatListenMapper.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/mapper/InitialHeartbeatListenMapper.java new file mode 100644 index 0000000..136b5ef --- /dev/null +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/mapper/InitialHeartbeatListenMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.rocketmq.mapper; + +import java.util.List; +import com.ruoyi.rocketmq.domain.InitialHeartbeatListen; + +/** + * 心跳信息Mapper接口 + * + * @author gyt + * @date 2025-09-08 + */ +public interface InitialHeartbeatListenMapper +{ + /** + * 查询心跳信息 + * + * @param clientId 心跳信息主键 + * @return 心跳信息 + */ + public InitialHeartbeatListen selectInitialHeartbeatListenByClientId(String clientId); + + /** + * 查询心跳信息列表 + * + * @param initialHeartbeatListen 心跳信息 + * @return 心跳信息集合 + */ + public List selectInitialHeartbeatListenList(InitialHeartbeatListen initialHeartbeatListen); + + /** + * 新增心跳信息 + * + * @param initialHeartbeatListen 心跳信息 + * @return 结果 + */ + public int insertInitialHeartbeatListen(InitialHeartbeatListen initialHeartbeatListen); + + /** + * 修改心跳信息 + * + * @param initialHeartbeatListen 心跳信息 + * @return 结果 + */ + public int updateInitialHeartbeatListen(InitialHeartbeatListen initialHeartbeatListen); + + /** + * 删除心跳信息 + * + * @param clientId 心跳信息主键 + * @return 结果 + */ + public int deleteInitialHeartbeatListenByClientId(String clientId); + + /** + * 批量删除心跳信息 + * + * @param clientIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteInitialHeartbeatListenByClientIds(String[] clientIds); +} diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/IInitialHeartbeatListenLogService.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/IInitialHeartbeatListenLogService.java new file mode 100644 index 0000000..34ecb12 --- /dev/null +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/IInitialHeartbeatListenLogService.java @@ -0,0 +1,61 @@ +package com.ruoyi.rocketmq.service; + +import java.util.List; +import com.ruoyi.rocketmq.domain.InitialHeartbeatListenLog; + +/** + * 心跳信息日志Service接口 + * + * @author gyt + * @date 2025-09-08 + */ +public interface IInitialHeartbeatListenLogService +{ + /** + * 查询心跳信息日志 + * + * @param clientId 心跳信息日志主键 + * @return 心跳信息日志 + */ + public InitialHeartbeatListenLog selectInitialHeartbeatListenLogByClientId(String clientId); + + /** + * 查询心跳信息日志列表 + * + * @param initialHeartbeatListenLog 心跳信息日志 + * @return 心跳信息日志集合 + */ + public List selectInitialHeartbeatListenLogList(InitialHeartbeatListenLog initialHeartbeatListenLog); + + /** + * 新增心跳信息日志 + * + * @param initialHeartbeatListenLog 心跳信息日志 + * @return 结果 + */ + public int insertInitialHeartbeatListenLog(InitialHeartbeatListenLog initialHeartbeatListenLog); + + /** + * 修改心跳信息日志 + * + * @param initialHeartbeatListenLog 心跳信息日志 + * @return 结果 + */ + public int updateInitialHeartbeatListenLog(InitialHeartbeatListenLog initialHeartbeatListenLog); + + /** + * 批量删除心跳信息日志 + * + * @param clientIds 需要删除的心跳信息日志主键集合 + * @return 结果 + */ + public int deleteInitialHeartbeatListenLogByClientIds(String[] clientIds); + + /** + * 删除心跳信息日志信息 + * + * @param clientId 心跳信息日志主键 + * @return 结果 + */ + public int deleteInitialHeartbeatListenLogByClientId(String clientId); +} diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/IInitialHeartbeatListenService.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/IInitialHeartbeatListenService.java new file mode 100644 index 0000000..6ab0002 --- /dev/null +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/IInitialHeartbeatListenService.java @@ -0,0 +1,61 @@ +package com.ruoyi.rocketmq.service; + +import java.util.List; +import com.ruoyi.rocketmq.domain.InitialHeartbeatListen; + +/** + * 心跳信息Service接口 + * + * @author gyt + * @date 2025-09-08 + */ +public interface IInitialHeartbeatListenService +{ + /** + * 查询心跳信息 + * + * @param clientId 心跳信息主键 + * @return 心跳信息 + */ + public InitialHeartbeatListen selectInitialHeartbeatListenByClientId(String clientId); + + /** + * 查询心跳信息列表 + * + * @param initialHeartbeatListen 心跳信息 + * @return 心跳信息集合 + */ + public List selectInitialHeartbeatListenList(InitialHeartbeatListen initialHeartbeatListen); + + /** + * 新增心跳信息 + * + * @param initialHeartbeatListen 心跳信息 + * @return 结果 + */ + public int insertInitialHeartbeatListen(InitialHeartbeatListen initialHeartbeatListen); + + /** + * 修改心跳信息 + * + * @param initialHeartbeatListen 心跳信息 + * @return 结果 + */ + public int updateInitialHeartbeatListen(InitialHeartbeatListen initialHeartbeatListen); + + /** + * 批量删除心跳信息 + * + * @param clientIds 需要删除的心跳信息主键集合 + * @return 结果 + */ + public int deleteInitialHeartbeatListenByClientIds(String[] clientIds); + + /** + * 删除心跳信息信息 + * + * @param clientId 心跳信息主键 + * @return 结果 + */ + public int deleteInitialHeartbeatListenByClientId(String clientId); +} diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialHeartbeatListenLogServiceImpl.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialHeartbeatListenLogServiceImpl.java new file mode 100644 index 0000000..f16329f --- /dev/null +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialHeartbeatListenLogServiceImpl.java @@ -0,0 +1,96 @@ +package com.ruoyi.rocketmq.service.impl; + +import java.util.List; +import com.ruoyi.common.core.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.rocketmq.mapper.InitialHeartbeatListenLogMapper; +import com.ruoyi.rocketmq.domain.InitialHeartbeatListenLog; +import com.ruoyi.rocketmq.service.IInitialHeartbeatListenLogService; + +/** + * 心跳信息日志Service业务层处理 + * + * @author gyt + * @date 2025-09-08 + */ +@Service +public class InitialHeartbeatListenLogServiceImpl implements IInitialHeartbeatListenLogService +{ + @Autowired + private InitialHeartbeatListenLogMapper initialHeartbeatListenLogMapper; + + /** + * 查询心跳信息日志 + * + * @param clientId 心跳信息日志主键 + * @return 心跳信息日志 + */ + @Override + public InitialHeartbeatListenLog selectInitialHeartbeatListenLogByClientId(String clientId) + { + return initialHeartbeatListenLogMapper.selectInitialHeartbeatListenLogByClientId(clientId); + } + + /** + * 查询心跳信息日志列表 + * + * @param initialHeartbeatListenLog 心跳信息日志 + * @return 心跳信息日志 + */ + @Override + public List selectInitialHeartbeatListenLogList(InitialHeartbeatListenLog initialHeartbeatListenLog) + { + return initialHeartbeatListenLogMapper.selectInitialHeartbeatListenLogList(initialHeartbeatListenLog); + } + + /** + * 新增心跳信息日志 + * + * @param initialHeartbeatListenLog 心跳信息日志 + * @return 结果 + */ + @Override + public int insertInitialHeartbeatListenLog(InitialHeartbeatListenLog initialHeartbeatListenLog) + { + initialHeartbeatListenLog.setCreateTime(DateUtils.getNowDate()); + return initialHeartbeatListenLogMapper.insertInitialHeartbeatListenLog(initialHeartbeatListenLog); + } + + /** + * 修改心跳信息日志 + * + * @param initialHeartbeatListenLog 心跳信息日志 + * @return 结果 + */ + @Override + public int updateInitialHeartbeatListenLog(InitialHeartbeatListenLog initialHeartbeatListenLog) + { + initialHeartbeatListenLog.setUpdateTime(DateUtils.getNowDate()); + return initialHeartbeatListenLogMapper.updateInitialHeartbeatListenLog(initialHeartbeatListenLog); + } + + /** + * 批量删除心跳信息日志 + * + * @param clientIds 需要删除的心跳信息日志主键 + * @return 结果 + */ + @Override + public int deleteInitialHeartbeatListenLogByClientIds(String[] clientIds) + { + return initialHeartbeatListenLogMapper.deleteInitialHeartbeatListenLogByClientIds(clientIds); + } + + /** + * 删除心跳信息日志信息 + * + * @param clientId 心跳信息日志主键 + * @return 结果 + */ + @Override + public int deleteInitialHeartbeatListenLogByClientId(String clientId) + { + return initialHeartbeatListenLogMapper.deleteInitialHeartbeatListenLogByClientId(clientId); + } +} diff --git a/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialHeartbeatListenServiceImpl.java b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialHeartbeatListenServiceImpl.java new file mode 100644 index 0000000..7780ccc --- /dev/null +++ b/ruoyi-rocketmq/src/main/java/com/ruoyi/rocketmq/service/impl/InitialHeartbeatListenServiceImpl.java @@ -0,0 +1,96 @@ +package com.ruoyi.rocketmq.service.impl; + +import java.util.List; +import com.ruoyi.common.core.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.rocketmq.mapper.InitialHeartbeatListenMapper; +import com.ruoyi.rocketmq.domain.InitialHeartbeatListen; +import com.ruoyi.rocketmq.service.IInitialHeartbeatListenService; + +/** + * 心跳信息Service业务层处理 + * + * @author gyt + * @date 2025-09-08 + */ +@Service +public class InitialHeartbeatListenServiceImpl implements IInitialHeartbeatListenService +{ + @Autowired + private InitialHeartbeatListenMapper initialHeartbeatListenMapper; + + /** + * 查询心跳信息 + * + * @param clientId 心跳信息主键 + * @return 心跳信息 + */ + @Override + public InitialHeartbeatListen selectInitialHeartbeatListenByClientId(String clientId) + { + return initialHeartbeatListenMapper.selectInitialHeartbeatListenByClientId(clientId); + } + + /** + * 查询心跳信息列表 + * + * @param initialHeartbeatListen 心跳信息 + * @return 心跳信息 + */ + @Override + public List selectInitialHeartbeatListenList(InitialHeartbeatListen initialHeartbeatListen) + { + return initialHeartbeatListenMapper.selectInitialHeartbeatListenList(initialHeartbeatListen); + } + + /** + * 新增心跳信息 + * + * @param initialHeartbeatListen 心跳信息 + * @return 结果 + */ + @Override + public int insertInitialHeartbeatListen(InitialHeartbeatListen initialHeartbeatListen) + { + initialHeartbeatListen.setCreateTime(DateUtils.getNowDate()); + return initialHeartbeatListenMapper.insertInitialHeartbeatListen(initialHeartbeatListen); + } + + /** + * 修改心跳信息 + * + * @param initialHeartbeatListen 心跳信息 + * @return 结果 + */ + @Override + public int updateInitialHeartbeatListen(InitialHeartbeatListen initialHeartbeatListen) + { + initialHeartbeatListen.setUpdateTime(DateUtils.getNowDate()); + return initialHeartbeatListenMapper.updateInitialHeartbeatListen(initialHeartbeatListen); + } + + /** + * 批量删除心跳信息 + * + * @param clientIds 需要删除的心跳信息主键 + * @return 结果 + */ + @Override + public int deleteInitialHeartbeatListenByClientIds(String[] clientIds) + { + return initialHeartbeatListenMapper.deleteInitialHeartbeatListenByClientIds(clientIds); + } + + /** + * 删除心跳信息信息 + * + * @param clientId 心跳信息主键 + * @return 结果 + */ + @Override + public int deleteInitialHeartbeatListenByClientId(String clientId) + { + return initialHeartbeatListenMapper.deleteInitialHeartbeatListenByClientId(clientId); + } +} diff --git a/ruoyi-rocketmq/src/main/resources/mapper/rocketmq/InitialHeartbeatListenLogMapper.xml b/ruoyi-rocketmq/src/main/resources/mapper/rocketmq/InitialHeartbeatListenLogMapper.xml new file mode 100644 index 0000000..d9c42f1 --- /dev/null +++ b/ruoyi-rocketmq/src/main/resources/mapper/rocketmq/InitialHeartbeatListenLogMapper.xml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + select client_id, status, remark, create_time, update_time, create_by, update_by from initial_heartbeat_listen_log + + + + + + + + insert into initial_heartbeat_listen_log + + client_id, + status, + remark, + create_time, + update_time, + create_by, + update_by, + + + #{clientId}, + #{status}, + #{remark}, + #{createTime}, + #{updateTime}, + #{createBy}, + #{updateBy}, + + + + + update initial_heartbeat_listen_log + + status = #{status}, + remark = #{remark}, + create_time = #{createTime}, + update_time = #{updateTime}, + create_by = #{createBy}, + update_by = #{updateBy}, + + where client_id = #{clientId} + + + + delete from initial_heartbeat_listen_log where client_id = #{clientId} + + + + delete from initial_heartbeat_listen_log where client_id in + + #{clientId} + + + \ No newline at end of file diff --git a/ruoyi-rocketmq/src/main/resources/mapper/rocketmq/InitialHeartbeatListenMapper.xml b/ruoyi-rocketmq/src/main/resources/mapper/rocketmq/InitialHeartbeatListenMapper.xml new file mode 100644 index 0000000..a7dcca9 --- /dev/null +++ b/ruoyi-rocketmq/src/main/resources/mapper/rocketmq/InitialHeartbeatListenMapper.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + select client_id, strength, timestamp, create_time, update_time, create_by, update_by from initial_heartbeat_listen + + + + + + + + insert into initial_heartbeat_listen + + client_id, + strength, + timestamp, + create_time, + update_time, + create_by, + update_by, + + + #{clientId}, + #{strength}, + #{timestamp}, + #{createTime}, + #{updateTime}, + #{createBy}, + #{updateBy}, + + + + + update initial_heartbeat_listen + + strength = #{strength}, + timestamp = #{timestamp}, + create_time = #{createTime}, + update_time = #{updateTime}, + create_by = #{createBy}, + update_by = #{updateBy}, + + where client_id = #{clientId} + + + + delete from initial_heartbeat_listen where client_id = #{clientId} + + + + delete from initial_heartbeat_listen where client_id in + + #{clientId} + + + \ No newline at end of file