Fix refEntity import-export
This commit is contained in:
parent
44a7bf82c4
commit
4daf4ba988
@ -19,6 +19,7 @@ import org.springframework.stereotype.Service;
|
||||
import org.thingsboard.server.common.data.EntityType;
|
||||
import org.thingsboard.server.common.data.cf.CalculatedField;
|
||||
import org.thingsboard.server.common.data.id.CalculatedFieldId;
|
||||
import org.thingsboard.server.common.data.id.EntityId;
|
||||
import org.thingsboard.server.common.data.sync.ie.EntityExportData;
|
||||
import org.thingsboard.server.queue.util.TbCoreComponent;
|
||||
import org.thingsboard.server.service.sync.vc.data.EntitiesExportCtx;
|
||||
@ -32,6 +33,12 @@ public class CalculatedFieldExportService extends BaseEntityExportService<Calcul
|
||||
@Override
|
||||
protected void setRelatedEntities(EntitiesExportCtx<?> ctx, CalculatedField calculatedField, EntityExportData<CalculatedField> exportData) {
|
||||
calculatedField.setEntityId(getExternalIdOrElseInternal(ctx, calculatedField.getEntityId()));
|
||||
calculatedField.getConfiguration().getArguments().values().forEach(argument -> {
|
||||
if (argument.getRefEntityId() != null) {
|
||||
EntityId internalEntityId = getExternalIdOrElseInternal(ctx, argument.getRefEntityId());
|
||||
argument.setRefEntityId(internalEntityId);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -23,6 +23,7 @@ import org.thingsboard.server.common.data.audit.ActionType;
|
||||
import org.thingsboard.server.common.data.cf.CalculatedField;
|
||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
||||
import org.thingsboard.server.common.data.id.CalculatedFieldId;
|
||||
import org.thingsboard.server.common.data.id.EntityId;
|
||||
import org.thingsboard.server.common.data.id.TenantId;
|
||||
import org.thingsboard.server.common.data.sync.ie.EntityExportData;
|
||||
import org.thingsboard.server.dao.cf.CalculatedFieldService;
|
||||
@ -45,6 +46,12 @@ public class CalculatedFieldImportService extends BaseEntityImportService<Calcul
|
||||
@Override
|
||||
protected CalculatedField prepare(EntitiesImportCtx ctx, CalculatedField calculatedField, CalculatedField oldEntity, EntityExportData<CalculatedField> exportData, IdProvider idProvider) {
|
||||
calculatedField.setEntityId(idProvider.getInternalId(calculatedField.getEntityId()));
|
||||
calculatedField.getConfiguration().getArguments().values().forEach(argument -> {
|
||||
if (argument.getRefEntityId() != null) {
|
||||
EntityId internalEntityId = idProvider.getInternalId(argument.getRefEntityId());
|
||||
argument.setRefEntityId(internalEntityId);
|
||||
}
|
||||
});
|
||||
return calculatedField;
|
||||
}
|
||||
|
||||
|
||||
@ -204,7 +204,7 @@ public class ExportImportServiceSqlTest extends AbstractControllerTest {
|
||||
Asset asset = createAsset(tenantId1, null, assetProfile.getId(), "Asset 1");
|
||||
DeviceProfile deviceProfile = createDeviceProfile(tenantId1, ruleChain.getId(), dashboard.getId(), "Device profile 1");
|
||||
Device device = createDevice(tenantId1, null, deviceProfile.getId(), "Device 1");
|
||||
CalculatedField calculatedField = createCalculatedField(tenantId1, device.getId(), device.getId());
|
||||
CalculatedField calculatedField = createCalculatedField(tenantId1, device.getId(), asset.getId());
|
||||
|
||||
Map<EntityType, EntityExportData> entitiesExportData = Stream.of(customer.getId(), asset.getId(), device.getId(),
|
||||
ruleChain.getId(), dashboard.getId(), assetProfile.getId(), deviceProfile.getId(), calculatedField.getId())
|
||||
@ -364,6 +364,7 @@ public class ExportImportServiceSqlTest extends AbstractControllerTest {
|
||||
CalculatedField exportedCalculatedField = (CalculatedField) exportEntity(tenantAdmin2, (CalculatedFieldId) ids.get(calculatedField.getId())).getEntity();
|
||||
assertThat(exportedCalculatedField.getName()).isEqualTo(calculatedField.getName());
|
||||
assertThat(exportedCalculatedField.getEntityId()).isEqualTo(device.getId());
|
||||
assertThat(exportedCalculatedField.getConfiguration().getReferencedEntities()).isEqualTo(calculatedField.getConfiguration().getReferencedEntities());
|
||||
|
||||
deviceProfile.setDefaultDashboardId(null);
|
||||
deviceProfileService.saveDeviceProfile(deviceProfile);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user