|
@@ -60,6 +60,7 @@ public class LocalDeviceInstanceService extends GenericReactiveCrudService<Devic
|
|
public LocalDeviceInstanceService(DeviceRegistry registry,
|
|
public LocalDeviceInstanceService(DeviceRegistry registry,
|
|
LocalDeviceProductService deviceProductService,
|
|
LocalDeviceProductService deviceProductService,
|
|
DeviceConfigMetadataManager metadataManager,
|
|
DeviceConfigMetadataManager metadataManager,
|
|
|
|
+ @SuppressWarnings("all")
|
|
ReactiveRepository<DeviceTagEntity, String> tagRepository) {
|
|
ReactiveRepository<DeviceTagEntity, String> tagRepository) {
|
|
this.registry = registry;
|
|
this.registry = registry;
|
|
this.deviceProductService = deviceProductService;
|
|
this.deviceProductService = deviceProductService;
|
|
@@ -327,20 +328,20 @@ public class LocalDeviceInstanceService extends GenericReactiveCrudService<Devic
|
|
.collect(Collectors.groupingBy(Tuple2::getT1))
|
|
.collect(Collectors.groupingBy(Tuple2::getT1))
|
|
.flatMapIterable(Map::entrySet)
|
|
.flatMapIterable(Map::entrySet)
|
|
.flatMap(group -> {
|
|
.flatMap(group -> {
|
|
- List<String> deviceId = group
|
|
|
|
|
|
+ List<String> deviceIdList = group
|
|
.getValue()
|
|
.getValue()
|
|
.stream()
|
|
.stream()
|
|
.map(Tuple3::getT2)
|
|
.map(Tuple3::getT2)
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
DeviceState state = DeviceState.of(group.getKey());
|
|
DeviceState state = DeviceState.of(group.getKey());
|
|
- return Mono
|
|
|
|
- .zip(
|
|
|
|
|
|
+ return Flux
|
|
|
|
+ .concat(
|
|
//批量修改设备状态
|
|
//批量修改设备状态
|
|
- this.getRepository()
|
|
|
|
|
|
+ getRepository()
|
|
.createUpdate()
|
|
.createUpdate()
|
|
.set(DeviceInstanceEntity::getState, state)
|
|
.set(DeviceInstanceEntity::getState, state)
|
|
.where()
|
|
.where()
|
|
- .in(DeviceInstanceEntity::getId, deviceId)
|
|
|
|
|
|
+ .in(DeviceInstanceEntity::getId, deviceIdList)
|
|
.execute()
|
|
.execute()
|
|
.thenReturn(group.getValue().size()),
|
|
.thenReturn(group.getValue().size()),
|
|
//修改子设备状态
|
|
//修改子设备状态
|
|
@@ -355,6 +356,8 @@ public class LocalDeviceInstanceService extends GenericReactiveCrudService<Devic
|
|
.set(DeviceInstanceEntity::getState, state)
|
|
.set(DeviceInstanceEntity::getState, state)
|
|
.where()
|
|
.where()
|
|
.in(DeviceInstanceEntity::getParentId, parents)
|
|
.in(DeviceInstanceEntity::getParentId, parents)
|
|
|
|
+ //不修改未激活的状态
|
|
|
|
+ .not(DeviceInstanceEntity::getState, DeviceState.notActive)
|
|
.nest()
|
|
.nest()
|
|
/* */.accept(DeviceInstanceEntity::getFeatures, Terms.Enums.notInAny, DeviceFeature.selfManageState)
|
|
/* */.accept(DeviceInstanceEntity::getFeatures, Terms.Enums.notInAny, DeviceFeature.selfManageState)
|
|
/* */.or()
|
|
/* */.or()
|
|
@@ -363,10 +366,12 @@ public class LocalDeviceInstanceService extends GenericReactiveCrudService<Devic
|
|
.execute())
|
|
.execute())
|
|
.defaultIfEmpty(0)
|
|
.defaultIfEmpty(0)
|
|
)
|
|
)
|
|
- .thenReturn(deviceId
|
|
|
|
- .stream()
|
|
|
|
- .map(id -> DeviceStateInfo.of(id, state))
|
|
|
|
- .collect(Collectors.toList()));
|
|
|
|
|
|
+ .then(Mono.just(
|
|
|
|
+ deviceIdList
|
|
|
|
+ .stream()
|
|
|
|
+ .map(id -> DeviceStateInfo.of(id, state))
|
|
|
|
+ .collect(Collectors.toList())
|
|
|
|
+ ));
|
|
}));
|
|
}));
|
|
}
|
|
}
|
|
|
|
|