Browse Source

修复已禁用设备会被自动注册问题

zhou-hao 3 years ago
parent
commit
07b3028e67

+ 3 - 0
jetlinks-manager/device-manager/src/main/java/org/jetlinks/community/device/service/AutoDiscoverDeviceRegistry.java

@@ -3,6 +3,7 @@ package org.jetlinks.community.device.service;
 import org.hswebframework.ezorm.rdb.mapping.ReactiveRepository;
 import org.jetlinks.community.device.entity.DeviceInstanceEntity;
 import org.jetlinks.community.device.entity.DeviceProductEntity;
+import org.jetlinks.community.device.enums.DeviceState;
 import org.jetlinks.core.device.*;
 import org.springframework.util.StringUtils;
 import reactor.core.publisher.Mono;
@@ -32,6 +33,7 @@ public class AutoDiscoverDeviceRegistry implements DeviceRegistry {
             .getDevice(deviceId)
             .switchIfEmpty(Mono.defer(() -> deviceRepository
                 .findById(deviceId)
+                .filter(instance -> instance.getState() != DeviceState.notActive)
                 .flatMap(instance -> parent.register(instance.toDeviceInfo())))
             )
         );
@@ -46,6 +48,7 @@ public class AutoDiscoverDeviceRegistry implements DeviceRegistry {
             .getProduct(productId)
             .switchIfEmpty(Mono.defer(() -> productRepository
                 .findById(productId)
+                .filter(product -> product.getState() == 1)
                 .flatMap(product -> parent.register(product.toProductInfo()))));
     }