Преглед изворни кода

fixed 物模型更新失效

18339543638 пре 4 година
родитељ
комит
83aed01426

+ 2 - 14
jetlinks-manager/device-manager/src/main/java/org/jetlinks/community/device/web/DeviceInstanceController.java

@@ -49,7 +49,6 @@ import org.jetlinks.core.message.Message;
 import org.jetlinks.core.message.MessageType;
 import org.jetlinks.core.message.RepayableDeviceMessage;
 import org.jetlinks.core.metadata.*;
-import org.jetlinks.core.metadata.types.GeoType;
 import org.springframework.core.io.buffer.DataBufferFactory;
 import org.springframework.core.io.buffer.DefaultDataBufferFactory;
 import org.springframework.dao.DuplicateKeyException;
@@ -812,24 +811,13 @@ public class DeviceInstanceController implements
     public Mono<Void> updateMetadata(@PathVariable String id,
                                      @RequestBody Mono<String> metadata) {
         return metadata
-            .doOnNext(metadata_ -> service
+            .flatMap(metadata_ -> service
                 .createUpdate()
                 .set(DeviceInstanceEntity::getDeriveMetadata, metadata_)
                 .where(DeviceInstanceEntity::getId, id)
                 .execute()
                 .then(registry.getDevice(id))
-                .doOnNext(device -> device.updateMetadata(metadata_))
-                .flatMap(DeviceOperator::getMetadata)
-                .doOnNext(metadataMono -> {
-                    //查看是否存在地理位置
-                    List<PropertyMetadata> properties = metadataMono.getProperties();
-                    List<PropertyMetadata> tags = metadataMono.getTags();
-                    //属性中存在地理位置
-                    Set<PropertyMetadata> proCollection =
-                        properties.stream().filter(propertyMetadata -> propertyMetadata.getValueType().getType().equals(GeoType.ID)).collect(Collectors.toSet());
-                    //标签中存在地理位置
-                    Set<PropertyMetadata> tagCollection = tags.stream().filter(propertyMetadata -> propertyMetadata.getValueType().getType().equals(GeoType.ID)).collect(Collectors.toSet());
-                }))
+                .flatMap(device -> device.updateMetadata(metadata_)))
             .then();
     }