优化常用单位、交换机心跳上报优化、agent更新列表优化
This commit is contained in:
@@ -106,6 +106,9 @@ public class UnitChangeUtil {
|
||||
}
|
||||
|
||||
try {
|
||||
if("NaN".equals(numberStr)){
|
||||
numberStr = "0";
|
||||
}
|
||||
BigDecimal number = new BigDecimal(numberStr);
|
||||
return number.setScale(1, RoundingMode.HALF_UP).toString();
|
||||
} catch (NumberFormatException e) {
|
||||
|
||||
@@ -65,8 +65,8 @@ public class RmAgentManagement extends BaseEntity
|
||||
private String lastUpdateResult;
|
||||
|
||||
/** 最后一次更新时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "最后一次更新时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "最后一次更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date lastUpdateTime;
|
||||
/** 生效服务器id */
|
||||
private String includeIds;
|
||||
|
||||
@@ -356,6 +356,17 @@ public class MessageHandler {
|
||||
if(rows == 2){
|
||||
// 注册成功,下发优先级为0的策略
|
||||
rmMonitorPolicyService.issueDefaultPolicyByClientId(message.getClientId());
|
||||
// agent更新表插入数据
|
||||
// 存储更新结果
|
||||
// agent更新结果存储
|
||||
RmAgentManagement query = new RmAgentManagement();
|
||||
query.setClientId(clientId);
|
||||
List<RmAgentManagement> agentManagements = rmAgentManagementService.selectRmAgentManagementList(query);
|
||||
if(agentManagements == null || agentManagements.isEmpty()) {
|
||||
RmAgentManagement insertAgentUpdateData = new RmAgentManagement();
|
||||
insertAgentUpdateData.setClientId(clientId);
|
||||
rmAgentManagementService.insertRmAgentManagement(insertAgentUpdateData);
|
||||
}
|
||||
}
|
||||
// 时间戳转换
|
||||
long timestamp = registerMsg.getTimestamp();
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package com.ruoyi.rocketmq.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.ruoyi.common.core.constant.SecurityConstants;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.enums.MsgEnum;
|
||||
import com.ruoyi.common.core.utils.DateUtils;
|
||||
import com.ruoyi.rocketmq.domain.DeviceMessage;
|
||||
@@ -15,6 +17,8 @@ import com.ruoyi.rocketmq.mapper.RmNetworkInterfaceMapper;
|
||||
import com.ruoyi.rocketmq.model.ProducerMode;
|
||||
import com.ruoyi.rocketmq.producer.MessageProducer;
|
||||
import com.ruoyi.rocketmq.service.IRmAgentManagementService;
|
||||
import com.ruoyi.system.api.RemoteRevenueConfigService;
|
||||
import com.ruoyi.system.api.domain.RmResourceRegistrationRemote;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -39,6 +43,8 @@ public class RmAgentManagementServiceImpl implements IRmAgentManagementService
|
||||
@Autowired
|
||||
private RmAgentManagementMapper rmAgentManagementMapper;
|
||||
@Autowired
|
||||
private RemoteRevenueConfigService remoteRevenueConfigService;
|
||||
@Autowired
|
||||
private RmNetworkInterfaceMapper rmNetworkInterfaceMapper;
|
||||
@Value("${fileDictory.filePath}")
|
||||
private String filePath;
|
||||
@@ -57,7 +63,14 @@ public class RmAgentManagementServiceImpl implements IRmAgentManagementService
|
||||
@Override
|
||||
public RmAgentManagement selectRmAgentManagementById(Long id)
|
||||
{
|
||||
return rmAgentManagementMapper.selectRmAgentManagementById(id);
|
||||
RmAgentManagement agentManagement = rmAgentManagementMapper.selectRmAgentManagementById(id);
|
||||
if(agentManagement != null){
|
||||
if(agentManagement.getClientId() != null){
|
||||
// 赋其他值
|
||||
setPropties(agentManagement);
|
||||
}
|
||||
}
|
||||
return agentManagement;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -72,24 +85,43 @@ public class RmAgentManagementServiceImpl implements IRmAgentManagementService
|
||||
List<RmAgentManagement> managementList = rmAgentManagementMapper.selectRmAgentManagementList(rmAgentManagement);
|
||||
for (RmAgentManagement agentManagement : managementList) {
|
||||
if(agentManagement.getClientId()!=null){
|
||||
// 设置管理网公网ip
|
||||
RmNetworkInterface queryParam = new RmNetworkInterface();
|
||||
queryParam.setClientId(agentManagement.getClientId());
|
||||
// 使用Optional处理可能的NPE,并筛选bindIp为2或3的接口
|
||||
RmNetworkInterface networkInterface = Optional.ofNullable(rmNetworkInterfaceMapper.selectRmNetworkInterfaceList(queryParam))
|
||||
.map(list -> list.stream()
|
||||
.filter(ni -> "2".equals(ni.getBindIp()) || "3".equals(ni.getBindIp()))
|
||||
.findFirst()
|
||||
.orElse(null))
|
||||
.orElseGet(() -> {
|
||||
return new RmNetworkInterface(); // 返回空对象避免NPE
|
||||
});
|
||||
agentManagement.setManagePublicIp(networkInterface.getPublicIp());
|
||||
// 查询注册表信息赋值
|
||||
setPropties(agentManagement);
|
||||
}
|
||||
}
|
||||
return managementList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据注册表赋值
|
||||
* @param agentManagement
|
||||
*/
|
||||
public void setPropties(RmAgentManagement agentManagement){
|
||||
String clientId = agentManagement.getClientId();
|
||||
// 设置管理网公网ip
|
||||
RmNetworkInterface queryParam = new RmNetworkInterface();
|
||||
queryParam.setClientId(clientId);
|
||||
// 使用Optional处理可能的NPE,并筛选bindIp为2或3的接口
|
||||
RmNetworkInterface networkInterface = Optional.ofNullable(rmNetworkInterfaceMapper.selectRmNetworkInterfaceList(queryParam))
|
||||
.map(list -> list.stream()
|
||||
.filter(ni -> "2".equals(ni.getBindIp()) || "3".equals(ni.getBindIp()))
|
||||
.findFirst()
|
||||
.orElse(null))
|
||||
.orElseGet(() -> {
|
||||
return new RmNetworkInterface(); // 返回空对象避免NPE
|
||||
});
|
||||
agentManagement.setManagePublicIp(networkInterface.getPublicIp());
|
||||
// 设置其他信息
|
||||
RmResourceRegistrationRemote queryRegist = new RmResourceRegistrationRemote();
|
||||
queryRegist.setClientId(clientId);
|
||||
R<RmResourceRegistrationRemote> registMsgR = remoteRevenueConfigService.getListByHardwareSn(queryRegist, SecurityConstants.INNER);
|
||||
if(registMsgR != null && registMsgR.getData() != null){
|
||||
RmResourceRegistrationRemote registMsg = registMsgR.getData();
|
||||
agentManagement.setStatus(registMsg.getOnlineStatus());
|
||||
agentManagement.setHardwareSn(registMsg.getHardwareSn());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增Agent管理
|
||||
*
|
||||
|
||||
@@ -286,7 +286,7 @@ public class MultiSwitchCollectionScheduler {
|
||||
|
||||
// 设置检测时间戳
|
||||
result.setTimestamp(checkTimestamp);
|
||||
if(result != null && result.isSuccess()){
|
||||
if(result != null && result.isSuccess() && !result.getData().isEmpty()){
|
||||
// 构建心跳消息
|
||||
DeviceMessage message = new DeviceMessage();
|
||||
message.setClientId(clientId);
|
||||
|
||||
@@ -46,6 +46,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
)
|
||||
</if>
|
||||
</where>
|
||||
order by create_time desc
|
||||
</select>
|
||||
|
||||
<select id="selectRmMonitorPolicyById" parameterType="Long" resultMap="RmMonitorPolicyResult">
|
||||
|
||||
Reference in New Issue
Block a user