|
|
@@ -1,5 +1,6 @@
|
|
|
package org.jetlinks.community.device.service;
|
|
|
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import org.hswebframework.ezorm.rdb.mapping.ReactiveRepository;
|
|
|
import org.hswebframework.ezorm.rdb.mapping.defaults.SaveResult;
|
|
|
@@ -26,8 +27,8 @@ public class DeviceTagsService extends GenericReactiveCrudService<DeviceTagEnti
|
|
|
private final LocalDeviceInstanceService instanceService;
|
|
|
private final LocalDeviceProductService productService;
|
|
|
private final ReactiveRepository<GeoProperty, String> propertyRepository;
|
|
|
- @Override
|
|
|
- public Mono<SaveResult> save(Publisher<DeviceTagEntity> entityPublisher) {
|
|
|
+
|
|
|
+ public Mono<Void> saveOrUpdate(Publisher<DeviceTagEntity> entityPublisher) {
|
|
|
return Mono.from(entityPublisher)
|
|
|
//判断地理位置
|
|
|
.doOnNext(entity->{
|
|
|
@@ -72,7 +73,13 @@ public class DeviceTagsService extends GenericReactiveCrudService<DeviceTagEnti
|
|
|
});
|
|
|
}
|
|
|
})
|
|
|
- .flatMap(entity->this.getRepository().save(entity));
|
|
|
+ .flatMap(entity->{
|
|
|
+ if(StrUtil.isNotEmpty(entity.getId())){
|
|
|
+ return this.updateById(entity.getId(),Mono.just(entity));
|
|
|
+ }
|
|
|
+ return this.getRepository().save(entity);
|
|
|
+ })
|
|
|
+ .then();
|
|
|
}
|
|
|
|
|
|
//判断是否为设备坐标标签
|