1、优化告警信息展示。

2、搜索栏增加备注搜索模糊查询。
This commit is contained in:
gaoyutao
2026-03-09 18:11:17 +08:00
parent bbb50ba56f
commit d4902a488d
5 changed files with 39 additions and 42 deletions
@@ -189,5 +189,7 @@ public class RmResourceRegistrationRemote extends BaseEntity
private String frpcServerAddr; private String frpcServerAddr;
/** 出省流量占比 */ /** 出省流量占比 */
private BigDecimal outboundRate; private BigDecimal outboundRate;
/** 公网ip */
private String ip1PublicIp;
} }
@@ -279,9 +279,11 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio
// 优化检查顺序,先检查最可能匹配的字段 // 优化检查顺序,先检查最可能匹配的字段
String clientId = item.getClientId(); String clientId = item.getClientId();
String hardwareSn = item.getHardwareSn(); String hardwareSn = item.getHardwareSn();
String remark = item.getRemark();
if ((clientId != null && clientId.toLowerCase().contains(queryValue)) || if ((clientId != null && clientId.toLowerCase().contains(queryValue)) ||
(hardwareSn != null && hardwareSn.toLowerCase().contains(queryValue))) { (hardwareSn != null && hardwareSn.toLowerCase().contains(queryValue)) ||
(remark != null && remark.toLowerCase().contains(queryValue))) {
return true; return true;
} }
@@ -1697,28 +1697,15 @@ public class MessageHandler {
rmAlarmLog.setAlarmType("2"); rmAlarmLog.setAlarmType("2");
alarmContent = switchName + "下线"; alarmContent = switchName + "下线";
} else { } else {
// 查询管理网公网ip // 查询服务器信息
RmNetworkInterface rmNetworkInterface = new RmNetworkInterface();
rmNetworkInterface.setClientId(clientId);
rmNetworkInterface.setNewFlag(1);
List<RmNetworkInterface> interfaceList = rmNetworkInterfaceService.selectRmNetworkInterfaceList(rmNetworkInterface);
if (interfaceList != null && !interfaceList.isEmpty()) {
interfaceList.stream()
.filter(info -> "2".equals(info.getBindIp()) || "3".equals(info.getBindIp()))
.findFirst()
.ifPresent(networkInterface -> {
rmAlarmLog.setMgmPublicIp(networkInterface.getPublicIp());
});
}
// 查询业务名称
RmResourceRegistrationRemote query = new RmResourceRegistrationRemote(); RmResourceRegistrationRemote query = new RmResourceRegistrationRemote();
query.setClientId(clientId); query.setClientId(clientId);
R<RmResourceRegistrationRemote> registrationR = remoteRevenueConfigService.getListByHardwareSn(query, SecurityConstants.INNER); R<RmResourceRegistrationRemote> registerMsgR = remoteRevenueConfigService.getListByHardwareSn(query, SecurityConstants.INNER);
if(registrationR != null){ if(registerMsgR != null && registerMsgR.getData() != null){
RmResourceRegistrationRemote registrationMsg = registrationR.getData(); RmResourceRegistrationRemote serverMsg = registerMsgR.getData();
if(registrationMsg != null){ rmAlarmLog.setMgmPublicIp(serverMsg.getIp1PublicIp());
rmAlarmLog.setBusinessName(registrationMsg.getBusinessName()); rmAlarmLog.setBusinessName(serverMsg.getBusinessName());
} rmAlarmLog.setRemark(serverMsg.getRemark());
} }
rmAlarmLog.setClientId(clientId); rmAlarmLog.setClientId(clientId);
rmAlarmLog.setAlarmType("1"); rmAlarmLog.setAlarmType("1");
@@ -1,12 +1,14 @@
package com.tongran.rocketmq.utils; package com.tongran.rocketmq.utils;
import com.tongran.common.core.constant.SecurityConstants;
import com.tongran.common.core.domain.R;
import com.tongran.rocketmq.domain.RmAlarmLog; import com.tongran.rocketmq.domain.RmAlarmLog;
import com.tongran.rocketmq.domain.RmAlarmPushConfig; import com.tongran.rocketmq.domain.RmAlarmPushConfig;
import com.tongran.rocketmq.domain.RmNetworkInterface;
import com.tongran.rocketmq.enums.PushMethodEnum; import com.tongran.rocketmq.enums.PushMethodEnum;
import com.tongran.rocketmq.service.IRmAlarmLogService; import com.tongran.rocketmq.service.IRmAlarmLogService;
import com.tongran.rocketmq.service.IRmAlarmPushConfigService; import com.tongran.rocketmq.service.IRmAlarmPushConfigService;
import com.tongran.rocketmq.service.IRmNetworkInterfaceService; import com.tongran.system.api.RemoteRevenueConfigService;
import com.tongran.system.api.domain.RmResourceRegistrationRemote;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -25,7 +27,7 @@ public class SendAlarmPushUtil {
@Autowired @Autowired
private IRmAlarmPushConfigService rmAlarmPushConfigService; private IRmAlarmPushConfigService rmAlarmPushConfigService;
@Autowired @Autowired
private IRmNetworkInterfaceService rmNetworkInterfaceService; private RemoteRevenueConfigService remoteRevenueConfigService;
@Autowired @Autowired
private SmsAlarmUtil smsAlarmUtil; private SmsAlarmUtil smsAlarmUtil;
/** /**
@@ -42,18 +44,15 @@ public class SendAlarmPushUtil {
updateData.setId(rmAlarmLog.getId()); updateData.setId(rmAlarmLog.getId());
if (alarmConfigList != null && !alarmConfigList.isEmpty()) { if (alarmConfigList != null && !alarmConfigList.isEmpty()) {
try { try {
// 查询管理网公网ip // 查询服务器信息
RmNetworkInterface rmNetworkInterface = new RmNetworkInterface(); RmResourceRegistrationRemote query = new RmResourceRegistrationRemote();
rmNetworkInterface.setClientId(rmAlarmLog.getClientId()); query.setClientId(clientId);
rmNetworkInterface.setNewFlag(1); R<RmResourceRegistrationRemote> registerMsgR = remoteRevenueConfigService.getListByHardwareSn(query, SecurityConstants.INNER);
List<RmNetworkInterface> interfaceList = rmNetworkInterfaceService.selectRmNetworkInterfaceList(rmNetworkInterface); if(registerMsgR != null && registerMsgR.getData() != null){
if (interfaceList != null && !interfaceList.isEmpty()) { RmResourceRegistrationRemote serverMsg = registerMsgR.getData();
interfaceList.stream() rmAlarmLog.setMgmPublicIp(serverMsg.getIp1PublicIp());
.filter(info -> "2".equals(info.getBindIp()) || "3".equals(info.getBindIp())) rmAlarmLog.setBusinessName(serverMsg.getBusinessName());
.findFirst() rmAlarmLog.setRemark(serverMsg.getRemark());
.ifPresent(networkInterface -> {
rmAlarmLog.setMgmPublicIp(networkInterface.getPublicIp());
});
} }
Map<String, Object> alarmMap = new HashMap<>(); Map<String, Object> alarmMap = new HashMap<>();
alarmMap.put("告警时间", rmAlarmLog.getAlarmTime()); alarmMap.put("告警时间", rmAlarmLog.getAlarmTime());
@@ -61,6 +60,8 @@ public class SendAlarmPushUtil {
alarmMap.put("告警类型", alarmTypeMsg); alarmMap.put("告警类型", alarmTypeMsg);
alarmMap.put("告警设备", clientId.substring(clientId.length() - 8)); alarmMap.put("告警设备", clientId.substring(clientId.length() - 8));
alarmMap.put("告警内容", rmAlarmLog.getAlarmContent()); alarmMap.put("告警内容", rmAlarmLog.getAlarmContent());
alarmMap.put("标签", rmAlarmLog.getRemark());
alarmMap.put("业务名称", rmAlarmLog.getBusinessName());
for (RmAlarmPushConfig alarmPushConfig : alarmConfigList) { for (RmAlarmPushConfig alarmPushConfig : alarmConfigList) {
if(PushMethodEnum.企业微信.getCode().equals(alarmPushConfig.getPushMethod())){ if(PushMethodEnum.企业微信.getCode().equals(alarmPushConfig.getPushMethod())){
updateData.setPushFlag(processWeComPush(alarmPushConfig, alarmMap)); updateData.setPushFlag(processWeComPush(alarmPushConfig, alarmMap));
@@ -89,7 +90,7 @@ public class SendAlarmPushUtil {
String webhookUrl = alarmPushConfig.getPushAddress(); String webhookUrl = alarmPushConfig.getPushAddress();
if (alarmPushConfig.getContactPhones() != null) { if (alarmPushConfig.getContactPhones() != null) {
String[] phones = alarmPushConfig.getContactPhones().split(","); String[] phones = alarmPushConfig.getContactPhones().split(",");
WeChatWorkBot.sendTemplateMessage(webhookUrl, contentTemplate, alarmMap, alarmMap.get("告警内容"), phones, false); WeChatWorkBot.sendTemplateMessage(webhookUrl, contentTemplate, alarmMap, "", phones, false);
} else { } else {
WeChatWorkBot.sendTemplateMessage(webhookUrl, contentTemplate, alarmMap); WeChatWorkBot.sendTemplateMessage(webhookUrl, contentTemplate, alarmMap);
} }
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.tongran.rocketmq.mapper.RmAlarmLogMapper"> <mapper namespace="com.tongran.rocketmq.mapper.RmAlarmLogMapper">
<resultMap type="RmAlarmLog" id="RmAlarmLogResult"> <resultMap type="RmAlarmLog" id="RmAlarmLogResult">
@@ -13,6 +13,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="alarmContent" column="alarm_content" /> <result property="alarmContent" column="alarm_content" />
<result property="businessName" column="business_name" /> <result property="businessName" column="business_name" />
<result property="pushFlag" column="push_flag" /> <result property="pushFlag" column="push_flag" />
<result property="remark" column="remark" />
<result property="createTime" column="create_time" /> <result property="createTime" column="create_time" />
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
<result property="createBy" column="create_by" /> <result property="createBy" column="create_by" />
@@ -20,7 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectRmAlarmLogVo"> <sql id="selectRmAlarmLogVo">
select id, client_id, alarm_time, mgm_public_ip, alarm_type, alarm_content, business_name, push_flag, create_time, update_time, create_by, update_by from rm_alarm_log select id, client_id, alarm_time, mgm_public_ip, alarm_type, alarm_content, business_name, push_flag, remark, create_time, update_time, create_by, update_by from rm_alarm_log
</sql> </sql>
<select id="selectRmAlarmLogList" parameterType="RmAlarmLog" resultMap="RmAlarmLogResult"> <select id="selectRmAlarmLogList" parameterType="RmAlarmLog" resultMap="RmAlarmLogResult">
@@ -33,6 +34,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="alarmContent != null and alarmContent != ''"> and alarm_content = #{alarmContent}</if> <if test="alarmContent != null and alarmContent != ''"> and alarm_content = #{alarmContent}</if>
<if test="businessName != null and businessName != ''"> and business_name like concat('%', #{businessName}, '%')</if> <if test="businessName != null and businessName != ''"> and business_name like concat('%', #{businessName}, '%')</if>
<if test="pushFlag != null "> and push_flag = #{pushFlag}</if> <if test="pushFlag != null "> and push_flag = #{pushFlag}</if>
<if test="remark != null and remark != ''"> and remark = #{remark}</if>
</where> </where>
order by alarm_time desc order by alarm_time desc
</select> </select>
@@ -52,6 +54,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="alarmContent != null">alarm_content,</if> <if test="alarmContent != null">alarm_content,</if>
<if test="businessName != null">business_name,</if> <if test="businessName != null">business_name,</if>
<if test="pushFlag != null">push_flag,</if> <if test="pushFlag != null">push_flag,</if>
<if test="remark != null">remark,</if>
<if test="createTime != null">create_time,</if> <if test="createTime != null">create_time,</if>
<if test="updateTime != null">update_time,</if> <if test="updateTime != null">update_time,</if>
<if test="createBy != null">create_by,</if> <if test="createBy != null">create_by,</if>
@@ -65,6 +68,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="alarmContent != null">#{alarmContent},</if> <if test="alarmContent != null">#{alarmContent},</if>
<if test="businessName != null">#{businessName},</if> <if test="businessName != null">#{businessName},</if>
<if test="pushFlag != null">#{pushFlag},</if> <if test="pushFlag != null">#{pushFlag},</if>
<if test="remark != null">#{remark},</if>
<if test="createTime != null">#{createTime},</if> <if test="createTime != null">#{createTime},</if>
<if test="updateTime != null">#{updateTime},</if> <if test="updateTime != null">#{updateTime},</if>
<if test="createBy != null">#{createBy},</if> <if test="createBy != null">#{createBy},</if>
@@ -82,6 +86,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="alarmContent != null">alarm_content = #{alarmContent},</if> <if test="alarmContent != null">alarm_content = #{alarmContent},</if>
<if test="businessName != null">business_name = #{businessName},</if> <if test="businessName != null">business_name = #{businessName},</if>
<if test="pushFlag != null">push_flag = #{pushFlag},</if> <if test="pushFlag != null">push_flag = #{pushFlag},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="createTime != null">create_time = #{createTime},</if> <if test="createTime != null">create_time = #{createTime},</if>
<if test="updateTime != null">update_time = #{updateTime},</if> <if test="updateTime != null">update_time = #{updateTime},</if>
<if test="createBy != null">create_by = #{createBy},</if> <if test="createBy != null">create_by = #{createBy},</if>