Explorar o código

优化data-transfer中订阅新增设备代码逻辑,同时在设备类型表类文件中新增设备所属类型和所属网关两个字段

james hai 3 semanas
pai
achega
4faffedb4f

+ 10 - 0
data-transfer/data-transfer-biz/src/main/java/com/usky/transfer/domain/DmpDevice.java

@@ -137,5 +137,15 @@ public class DmpDevice implements Serializable {
      */
     private String latitude;
 
+    /**
+     * 设备所属类型(1、普通设备  2、网关设备  3、网关子设备)
+     */
+    private Integer categoryType;
+
+    /**
+     * 所属网关
+     */
+    private String gatewayUuid;
+
 
 }

+ 14 - 2
data-transfer/data-transfer-biz/src/main/java/com/usky/transfer/service/mqtt/add/Add.java

@@ -37,10 +37,14 @@ public class Add implements MqttStrategy {
     private DmpDeviceStatusService dmpDeviceStatusService;
 
     public String disposeMessage(MqttBaseVO mqttBaseVO){
+        String[] topics = mqttBaseVO.getTopic().toString().split(",");
+        String topic_deviceUUID = topics[3];
         String deviceInfoStr = mqttBaseVO.getData().toString();
         JSONObject deviceInfoJson = JSONObject.parseObject(deviceInfoStr);
         String productCode = deviceInfoJson.get("productCode").toString();
         String deviceId = deviceInfoJson.get("deviceId").toString();
+        String deviceUUID = deviceInfoJson.get("deviceUUID").toString();
+        Integer categoryType = Integer.valueOf(deviceInfoJson.get("categoryType").toString());
 
         //判断上报数据对应产品是否注册,如未注册则为非法
         Map<String, ProductMapVO> productMapList = dmpProductService.getProductMap();
@@ -72,7 +76,11 @@ public class Add implements MqttStrategy {
             dmpDeviceInfo.setCreatedTime(LocalDateTime.now());
             dmpDeviceInfo.setTenantId(productMapVO.getTenantId());
             dmpDeviceInfo.setServiceStatus(1);
-            dmpDeviceInfo.setDeviceUuid(UUIDUtils.uuid());
+            dmpDeviceInfo.setDeviceUuid(deviceUUID);
+            dmpDeviceInfo.setCategoryType(categoryType);
+            if(categoryType == 3){
+                dmpDeviceInfo.setGatewayUuid(topic_deviceUUID);
+            }
             dmpDeviceService.save(dmpDeviceInfo);
 
             DmpDeviceStatus dmpDeviceStatus = new DmpDeviceStatus();
@@ -103,7 +111,11 @@ public class Add implements MqttStrategy {
                 dmpDeviceInfo.setCreatedTime(LocalDateTime.now());
                 dmpDeviceInfo.setTenantId(productMapVO.getTenantId());
                 dmpDeviceInfo.setServiceStatus(1);
-                dmpDeviceInfo.setDeviceUuid(UUIDUtils.uuid());
+                dmpDeviceInfo.setDeviceUuid(deviceUUID);
+                dmpDeviceInfo.setCategoryType(categoryType);
+                if(categoryType == 3){
+                    dmpDeviceInfo.setGatewayUuid(topic_deviceUUID);
+                }
                 dmpDeviceService.save(dmpDeviceInfo);
 
                 DmpDeviceStatus dmpDeviceStatus = new DmpDeviceStatus();

+ 2 - 0
data-transfer/data-transfer-biz/src/main/resources/mapper/transfer/DmpDeviceMapper.xml

@@ -25,6 +25,8 @@
         <result column="service_status" property="serviceStatus" />
         <result column="product_code" property="productCode" />
         <result column="device_uuid" property="deviceUuid" />
+        <result column="category_type" property="categoryType" />
+        <result column="gateway_uuid" property="gatewayUuid" />
     </resultMap>
 
 </mapper>