agent接收数据类型调整匹配,完善资源模板管理、资源监控策略逻辑。

This commit is contained in:
gaoyutao
2025-09-24 17:40:53 +08:00
parent d5f232e295
commit 543b51ca6f
20 changed files with 419 additions and 101 deletions
@@ -1,5 +1,6 @@
package com.ruoyi.rocketmq.handler;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ruoyi.common.core.constant.SecurityConstants;
@@ -85,6 +86,8 @@ public class DeviceMessageHandler {
private IInitialSwitchOtherCollectDataService insertInitialSwitchOtherInfo;
@Autowired
private IInitialSystemOtherCollectDataService iInitialSystemOtherCollectDataService;
@Autowired
private IRmResourceRemoteService rmResourceRemoteService;
// 在类中添加
private static final ObjectMapper objectMapper = new ObjectMapper();
@@ -102,7 +105,7 @@ public class DeviceMessageHandler {
registerHandler(MsgEnum.开启交换机采集应答.getValue(), this::handleResponseMessage);
registerHandler(MsgEnum.关闭交换机采集应答.getValue(), this::handleResponseMessage);
registerHandler(MsgEnum.告警设置应答.getValue(), this::handleResponseMessage);
registerHandler(MsgEnum.执行脚本策略应答.getValue(), this::handleResponseMessage);
registerHandler(MsgEnum.执行脚本策略应答.getValue(), this::handleScriptRspMessage);
registerHandler(MsgEnum.Agent版本更新应答.getValue(), this::handleResponseMessage);
// 其他类型消息可以单独注册处理器
@@ -798,14 +801,39 @@ public class DeviceMessageHandler {
* 脚本策略应答信息
* @param message
*/
private RspVo handleScriptRspMessage(DeviceMessage message) {
private void handleScriptRspMessage(DeviceMessage message) {
List<RspVo> rspVoList = JsonDataParser.parseJsonData(message.getData(), RspVo.class);
if (!rspVoList.isEmpty()) {
RspVo rsp = rspVoList.get(0);
log.info("应答信息:{}",rsp);
return rsp;
// 时间戳转换
long timestamp = rsp.getTimestamp();
long millis = timestamp * 1000;
Date createTime = new Date(millis / 1000 * 1000); // 去除毫秒
// 查询资源信息
RmResourceRegistrationRemote queryParam = new RmResourceRegistrationRemote();
queryParam.setHardwareSn(message.getClientId());
R<RmResourceRegistrationRemote> resourceMsg = remoteRevenueConfigService.getListByHardwareSn(queryParam, SecurityConstants.INNER);
RmResourceRegistrationRemote resourceMsgData = resourceMsg.getData();
if(rsp.getResCode() == 1){
if(rsp.getResult() != null){
// 构建脚本执行结果实体类
RmResourceRemote insertData = new RmResourceRemote();
insertData.setHardwareSn(message.getClientId());
insertData.setResourceName(resourceMsgData.getResourceName());
insertData.setExternalIp(resourceMsgData.getIpAddress());
insertData.setManagementPort(22);
insertData.setConnectionMethod("1");
insertData.setResourceType(resourceMsgData.getResourceType());
insertData.setDescription(rsp.getResult());
insertData.setCreateTime(createTime);
// 执行插入sql
rmResourceRemoteService.insertRmResourceRemote(insertData);
log.info("脚本执行结果入库成功:{}",rsp);
}
}else{
log.error("脚本执行失败:{}", rsp);
}
}
return null;
}
/**
* 注册应答处理