提交 0510c0aa authored 作者: wangqiang's avatar wangqiang

客户端需求 + 变更设备名称

上级 75c88562
......@@ -51,6 +51,7 @@ apq:
voiceCall: /facility/facility/voiceCall
voiceCallPush: /facility/facility/voiceCallPush
device_info: /facility/facility/pcAdd
deviceUpdateName: /facility/facility/pcUpdateName
install: /ops/install/getClientList?macAddress={}&pageNum={}&pageSize={}
upgrade: /ops/upgrade/getClientList?macAddress={}&pageNum={}&pageSize={}
install-status-upissue: /ops/install/upIssueStatus/{}/{}
......
......@@ -4,6 +4,7 @@ import cn.hutool.core.convert.Convert;
import cn.hutool.core.io.unit.DataSizeUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil;
import cn.hutool.system.oshi.CpuInfo;
import cn.hutool.system.oshi.OshiUtil;
......@@ -14,9 +15,11 @@ import com.priusis.utils.Oshi4NoneSigarUtil;
import com.priusis.utils.sigar.SigarUtil;
import com.priusis.vo.ApqInfoDataVo;
import com.priusis.vo.MqttRpcDataMessage;
import com.priusis.vo.RemoteDeviceVoResult;
import lombok.extern.slf4j.Slf4j;
import org.hyperic.sigar.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
import org.springframework.http.ResponseEntity;
import org.springframework.scheduling.annotation.Scheduled;
......@@ -43,11 +46,24 @@ public class ApqInfoJob {
@Autowired
private RestTemplate restTemplate;
@Value(value = "${apq.iot-gateway}")
private String gateway;
@Value(value = "${apq.client.tenantId}")
private Long tenantId;
@Value(value = "${apq.client.productId}")
private Long productId;
@Value(value = "${apq.url.device_info}")
private String deviceUpdateNameUrl;
private int runningIndex = 0;
Sigar sigar = new Sigar();
private static Map<String, Map<String, String>> hardwareCache = new HashMap<>();
private static Map<String, String> attrCache = new HashMap<>();
// 30秒一次上报
@Scheduled(fixedDelay = 30000L)
......@@ -106,6 +122,9 @@ public class ApqInfoJob {
Map<String, String> hardwareCacheRefresh = JSONUtil.toBean(collectForCheck, Map.class);
checkDiskHardware("hard_disk", hardwareCacheRefresh);
// 设备名称变更
checkFacilityName();
String collect1 = null;
String collect2 = null;
FileSystem[] diskStores;
......@@ -224,6 +243,23 @@ public class ApqInfoJob {
}
}
private void checkFacilityName() {
Map<String, String> map = System.getenv();
String computerName = map.get("COMPUTERNAME");// 获取计算机名
if (attrCache.isEmpty() || !StrUtil.equals(attrCache.get("FacilityName"), computerName)) {
Map<String, Object> params = new HashMap<>();
params.put("tenantId", tenantId);
params.put("productId", productId);
params.put("macAddress", MacAddrUtil.get());
params.put("name", computerName);
String remoteDeviceVoJson = HttpUtil.post(gateway + deviceUpdateNameUrl, JSONUtil.toJsonStr(params), 5000);
RemoteDeviceVoResult remoteDeviceVo = JSONUtil.toBean(remoteDeviceVoJson, RemoteDeviceVoResult.class);
if (remoteDeviceVo.getCode() == 0) {
attrCache.put("FacilityName", computerName);
}
}
}
/**
* 硬盘型号/ID变化后报警
* + 其他
......
package com.priusis.vo;
import lombok.Data;
@Data
public class RemoteDeviceVoResult {
private Integer code;
private String msg;
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论