Browse Source

优化data-transfer模块中设备指标数据上报mqtt逻辑,增加deviceUuid字段值的判断录入

james 2 weeks ago
parent
commit
02389cfd22

+ 11 - 2
data-transfer/data-transfer-biz/src/main/java/com/usky/transfer/service/impl/QueryInfluxdbDataServiceImpl.java

@@ -178,7 +178,12 @@ public class QueryInfluxdbDataServiceImpl extends AbstractCrudService<QueryInflu
                 dmpDeviceInfo.setCreatedTime(LocalDateTime.now());
                 dmpDeviceInfo.setTenantId(productMapVO.getTenantId());
                 dmpDeviceInfo.setServiceStatus(1);
-                dmpDeviceInfo.setDeviceUuid(UUIDUtils.uuid());
+                if(StringUtils.isBlank(deviceUUId)){
+                    dmpDeviceInfo.setDeviceUuid(UUIDUtils.uuid());
+                }else{
+                    dmpDeviceInfo.setDeviceUuid(deviceUUId);
+                }
+
                 dmpDeviceService.save(dmpDeviceInfo);
                 dmpProductService.deleteDeviceCache(productCode);
 
@@ -212,7 +217,11 @@ public class QueryInfluxdbDataServiceImpl extends AbstractCrudService<QueryInflu
                     dmpDeviceInfo.setCreatedTime(LocalDateTime.now());
                     dmpDeviceInfo.setTenantId(productMapVO.getTenantId());
                     dmpDeviceInfo.setServiceStatus(1);
-                    dmpDeviceInfo.setDeviceUuid(UUIDUtils.uuid());
+                    if(StringUtils.isBlank(deviceUUId)){
+                        dmpDeviceInfo.setDeviceUuid(UUIDUtils.uuid());
+                    }else{
+                        dmpDeviceInfo.setDeviceUuid(deviceUUId);
+                    }
                     dmpDeviceService.save(dmpDeviceInfo);
                     dmpProductService.deleteDeviceCache(productCode);
 

+ 4 - 1
data-transfer/data-transfer-biz/src/main/java/com/usky/transfer/service/mqtt/info/Info.java

@@ -36,12 +36,15 @@ public class Info implements MqttStrategy {
 
     public String disposeMessage(MqttBaseVO mqttBaseVO) {
         try {
+            String[] topics = mqttBaseVO.getTopic().toString().split("/");
+            String topic_deviceUUID = topics[3];
             Map<String, String> tags = new HashMap<>();
             Map<String, Object> fields = new HashMap<>();
             Map map_data = JsonUtils.fromJson(mqttBaseVO.getData().toString(), Map.class);
             String productCode = map_data.get("productCode").toString().toLowerCase();
 
             long timestamp = Long.valueOf(map_data.get("timestamp").toString());
+            String deviceUuid = map_data.get("deviceUuid").toString();
 
             Object tg = JSONObject.toJSONString(map_data.get("tags"));
             JSONObject tag = JSON.parseObject(tg.toString());
@@ -56,7 +59,7 @@ public class Info implements MqttStrategy {
             }
 
             DeviceDataWriteVO deviceDataWriteVO = new DeviceDataWriteVO();
-            deviceDataWriteVO.setDeviceUUId("");
+            deviceDataWriteVO.setDeviceUUId(deviceUuid);
             deviceDataWriteVO.setProductCode(productCode);
             deviceDataWriteVO.setTimestamp(timestamp);
             deviceDataWriteVO.setTags(tags);