Fix Ota Package Ids
This commit is contained in:
		
							parent
							
								
									c0e84e2242
								
							
						
					
					
						commit
						ad20b5d866
					
				@ -44,7 +44,7 @@ public class AssetImportService extends BaseEntityImportService<AssetId, Asset,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    protected Asset prepareAndSave(EntitiesImportCtx ctx, Asset asset, EntityExportData<Asset> exportData, IdProvider idProvider) {
 | 
			
		||||
    protected Asset prepareAndSave(EntitiesImportCtx ctx, Asset asset, Asset old, EntityExportData<Asset> exportData, IdProvider idProvider) {
 | 
			
		||||
        return assetService.saveAsset(asset);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -64,6 +64,7 @@ import java.util.Map;
 | 
			
		||||
import java.util.Optional;
 | 
			
		||||
import java.util.Set;
 | 
			
		||||
import java.util.UUID;
 | 
			
		||||
import java.util.function.Function;
 | 
			
		||||
import java.util.stream.Collectors;
 | 
			
		||||
 | 
			
		||||
@Slf4j
 | 
			
		||||
@ -104,7 +105,7 @@ public abstract class BaseEntityImportService<I extends EntityId, E extends Expo
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
//        sw.startNew("prepareAndSave");
 | 
			
		||||
        E savedEntity = prepareAndSave(ctx, entity, exportData, idProvider);
 | 
			
		||||
        E savedEntity = prepareAndSave(ctx, entity, existingEntity, exportData, idProvider);
 | 
			
		||||
 | 
			
		||||
        importResult.setSavedEntity(savedEntity);
 | 
			
		||||
        importResult.setOldEntity(existingEntity);
 | 
			
		||||
@ -129,7 +130,7 @@ public abstract class BaseEntityImportService<I extends EntityId, E extends Expo
 | 
			
		||||
 | 
			
		||||
    protected abstract void setOwner(TenantId tenantId, E entity, IdProvider idProvider);
 | 
			
		||||
 | 
			
		||||
    protected abstract E prepareAndSave(EntitiesImportCtx ctx, E entity, D exportData, IdProvider idProvider);
 | 
			
		||||
    protected abstract E prepareAndSave(EntitiesImportCtx ctx, E entity, E oldEntity, D exportData, IdProvider idProvider);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    protected void processAfterSaved(EntitiesImportCtx ctx, EntityImportResult<E> importResult, D exportData, IdProvider idProvider) throws ThingsboardException {
 | 
			
		||||
@ -346,4 +347,8 @@ public abstract class BaseEntityImportService<I extends EntityId, E extends Expo
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected <T extends EntityId, O> T getOldEntityField(O oldEntity, Function<O,T> getter){
 | 
			
		||||
        return oldEntity == null ? null : getter.apply(oldEntity);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -19,6 +19,7 @@ import lombok.RequiredArgsConstructor;
 | 
			
		||||
import org.springframework.stereotype.Service;
 | 
			
		||||
import org.thingsboard.server.common.data.Customer;
 | 
			
		||||
import org.thingsboard.server.common.data.EntityType;
 | 
			
		||||
import org.thingsboard.server.common.data.asset.Asset;
 | 
			
		||||
import org.thingsboard.server.common.data.edge.EdgeEventActionType;
 | 
			
		||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
 | 
			
		||||
import org.thingsboard.server.common.data.id.CustomerId;
 | 
			
		||||
@ -45,7 +46,7 @@ public class CustomerImportService extends BaseEntityImportService<CustomerId, C
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    protected Customer prepareAndSave(EntitiesImportCtx ctx, Customer customer, EntityExportData<Customer> exportData, IdProvider idProvider) {
 | 
			
		||||
    protected Customer prepareAndSave(EntitiesImportCtx ctx, Customer customer, Customer old, EntityExportData<Customer> exportData, IdProvider idProvider) {
 | 
			
		||||
        if (!customer.isPublic()) {
 | 
			
		||||
            return customerService.saveCustomer(customer);
 | 
			
		||||
        } else {
 | 
			
		||||
 | 
			
		||||
@ -24,6 +24,7 @@ import org.thingsboard.common.util.JacksonUtil;
 | 
			
		||||
import org.thingsboard.server.common.data.Dashboard;
 | 
			
		||||
import org.thingsboard.server.common.data.EntityType;
 | 
			
		||||
import org.thingsboard.server.common.data.ShortCustomerInfo;
 | 
			
		||||
import org.thingsboard.server.common.data.asset.Asset;
 | 
			
		||||
import org.thingsboard.server.common.data.edge.EdgeEventActionType;
 | 
			
		||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
 | 
			
		||||
import org.thingsboard.server.common.data.id.CustomerId;
 | 
			
		||||
@ -71,7 +72,7 @@ public class DashboardImportService extends BaseEntityImportService<DashboardId,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    protected Dashboard prepareAndSave(EntitiesImportCtx ctx, Dashboard dashboard, EntityExportData<Dashboard> exportData, IdProvider idProvider) {
 | 
			
		||||
    protected Dashboard prepareAndSave(EntitiesImportCtx ctx, Dashboard dashboard, Dashboard old, EntityExportData<Dashboard> exportData, IdProvider idProvider) {
 | 
			
		||||
        var tenantId = ctx.getTenantId();
 | 
			
		||||
        JsonNode configuration = dashboard.getConfiguration();
 | 
			
		||||
        JsonNode entityAliases = configuration.get("entityAliases");
 | 
			
		||||
 | 
			
		||||
@ -19,6 +19,7 @@ import lombok.RequiredArgsConstructor;
 | 
			
		||||
import org.springframework.stereotype.Service;
 | 
			
		||||
import org.thingsboard.server.common.data.Device;
 | 
			
		||||
import org.thingsboard.server.common.data.EntityType;
 | 
			
		||||
import org.thingsboard.server.common.data.asset.Asset;
 | 
			
		||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
 | 
			
		||||
import org.thingsboard.server.common.data.id.DeviceId;
 | 
			
		||||
import org.thingsboard.server.common.data.id.TenantId;
 | 
			
		||||
@ -43,10 +44,10 @@ public class DeviceImportService extends BaseEntityImportService<DeviceId, Devic
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    protected Device prepareAndSave(EntitiesImportCtx ctx, Device device, DeviceExportData exportData, IdProvider idProvider) {
 | 
			
		||||
    protected Device prepareAndSave(EntitiesImportCtx ctx, Device device, Device old, DeviceExportData exportData, IdProvider idProvider) {
 | 
			
		||||
        device.setDeviceProfileId(idProvider.getInternalId(device.getDeviceProfileId()));
 | 
			
		||||
        device.setFirmwareId(idProvider.getInternalId(device.getFirmwareId()));
 | 
			
		||||
        device.setSoftwareId(idProvider.getInternalId(device.getSoftwareId()));
 | 
			
		||||
        device.setFirmwareId(getOldEntityField(old, Device::getFirmwareId));
 | 
			
		||||
        device.setSoftwareId(getOldEntityField(old, Device::getSoftwareId));
 | 
			
		||||
        if (exportData.getCredentials() != null && ctx.isSaveCredentials()) {
 | 
			
		||||
            exportData.getCredentials().setId(null);
 | 
			
		||||
            exportData.getCredentials().setDeviceId(null);
 | 
			
		||||
 | 
			
		||||
@ -19,9 +19,11 @@ import lombok.RequiredArgsConstructor;
 | 
			
		||||
import org.springframework.stereotype.Service;
 | 
			
		||||
import org.thingsboard.server.common.data.DeviceProfile;
 | 
			
		||||
import org.thingsboard.server.common.data.EntityType;
 | 
			
		||||
import org.thingsboard.server.common.data.asset.Asset;
 | 
			
		||||
import org.thingsboard.server.common.data.edge.EdgeEventActionType;
 | 
			
		||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
 | 
			
		||||
import org.thingsboard.server.common.data.id.DeviceProfileId;
 | 
			
		||||
import org.thingsboard.server.common.data.id.EntityId;
 | 
			
		||||
import org.thingsboard.server.common.data.id.TenantId;
 | 
			
		||||
import org.thingsboard.server.common.data.plugin.ComponentLifecycleEvent;
 | 
			
		||||
import org.thingsboard.server.common.data.sync.ie.EntityImportSettings;
 | 
			
		||||
@ -33,6 +35,7 @@ import org.thingsboard.server.common.data.sync.ie.EntityExportData;
 | 
			
		||||
import org.thingsboard.server.service.sync.vc.data.EntitiesImportCtx;
 | 
			
		||||
 | 
			
		||||
import java.util.Objects;
 | 
			
		||||
import java.util.function.Function;
 | 
			
		||||
 | 
			
		||||
@Service
 | 
			
		||||
@TbCoreComponent
 | 
			
		||||
@ -48,11 +51,11 @@ public class DeviceProfileImportService extends BaseEntityImportService<DevicePr
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    protected DeviceProfile prepareAndSave(EntitiesImportCtx ctx, DeviceProfile deviceProfile, EntityExportData<DeviceProfile> exportData, IdProvider idProvider) {
 | 
			
		||||
    protected DeviceProfile prepareAndSave(EntitiesImportCtx ctx, DeviceProfile deviceProfile, DeviceProfile old, EntityExportData<DeviceProfile> exportData, IdProvider idProvider) {
 | 
			
		||||
        deviceProfile.setDefaultRuleChainId(idProvider.getInternalId(deviceProfile.getDefaultRuleChainId()));
 | 
			
		||||
        deviceProfile.setDefaultDashboardId(idProvider.getInternalId(deviceProfile.getDefaultDashboardId()));
 | 
			
		||||
        deviceProfile.setFirmwareId(idProvider.getInternalId(deviceProfile.getFirmwareId()));
 | 
			
		||||
        deviceProfile.setSoftwareId(idProvider.getInternalId(deviceProfile.getSoftwareId()));
 | 
			
		||||
        deviceProfile.setFirmwareId(getOldEntityField(old, DeviceProfile::getFirmwareId));
 | 
			
		||||
        deviceProfile.setSoftwareId(getOldEntityField(old, DeviceProfile::getSoftwareId));
 | 
			
		||||
        return deviceProfileService.saveDeviceProfile(deviceProfile);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -21,6 +21,7 @@ import org.springframework.context.annotation.Lazy;
 | 
			
		||||
import org.springframework.stereotype.Service;
 | 
			
		||||
import org.thingsboard.server.common.data.EntityType;
 | 
			
		||||
import org.thingsboard.server.common.data.EntityView;
 | 
			
		||||
import org.thingsboard.server.common.data.asset.Asset;
 | 
			
		||||
import org.thingsboard.server.common.data.audit.ActionType;
 | 
			
		||||
import org.thingsboard.server.common.data.edge.EdgeEventActionType;
 | 
			
		||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
 | 
			
		||||
@ -51,7 +52,7 @@ public class EntityViewImportService extends BaseEntityImportService<EntityViewI
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    protected EntityView prepareAndSave(EntitiesImportCtx ctx, EntityView entityView, EntityExportData<EntityView> exportData, IdProvider idProvider) {
 | 
			
		||||
    protected EntityView prepareAndSave(EntitiesImportCtx ctx, EntityView entityView, EntityView old, EntityExportData<EntityView> exportData, IdProvider idProvider) {
 | 
			
		||||
        entityView.setEntityId(idProvider.getInternalId(entityView.getEntityId()));
 | 
			
		||||
        return entityViewService.saveEntityView(entityView);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -17,9 +17,12 @@ package org.thingsboard.server.service.sync.ie.importing.impl;
 | 
			
		||||
 | 
			
		||||
import com.fasterxml.jackson.databind.JsonNode;
 | 
			
		||||
import lombok.RequiredArgsConstructor;
 | 
			
		||||
import lombok.extern.slf4j.Slf4j;
 | 
			
		||||
import org.springframework.stereotype.Service;
 | 
			
		||||
import org.thingsboard.common.util.JacksonUtil;
 | 
			
		||||
import org.thingsboard.common.util.TbStopWatch;
 | 
			
		||||
import org.thingsboard.server.common.data.EntityType;
 | 
			
		||||
import org.thingsboard.server.common.data.asset.Asset;
 | 
			
		||||
import org.thingsboard.server.common.data.edge.EdgeEventActionType;
 | 
			
		||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
 | 
			
		||||
import org.thingsboard.server.common.data.id.RuleChainId;
 | 
			
		||||
@ -41,6 +44,7 @@ import java.util.LinkedHashSet;
 | 
			
		||||
import java.util.Optional;
 | 
			
		||||
import java.util.UUID;
 | 
			
		||||
 | 
			
		||||
@Slf4j
 | 
			
		||||
@Service
 | 
			
		||||
@TbCoreComponent
 | 
			
		||||
@RequiredArgsConstructor
 | 
			
		||||
@ -65,7 +69,8 @@ public class RuleChainImportService extends BaseEntityImportService<RuleChainId,
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    protected RuleChain prepareAndSave(EntitiesImportCtx ctx, RuleChain ruleChain, RuleChainExportData exportData, IdProvider idProvider) {
 | 
			
		||||
    protected RuleChain prepareAndSave(EntitiesImportCtx ctx, RuleChain ruleChain, RuleChain old, RuleChainExportData exportData, IdProvider idProvider) {
 | 
			
		||||
        TbStopWatch sw = TbStopWatch.create("prepare");
 | 
			
		||||
        RuleChainMetaData metaData = exportData.getMetaData();
 | 
			
		||||
        Optional.ofNullable(metaData.getNodes()).orElse(Collections.emptyList())
 | 
			
		||||
                .forEach(ruleNode -> {
 | 
			
		||||
@ -87,10 +92,19 @@ public class RuleChainImportService extends BaseEntityImportService<RuleChainId,
 | 
			
		||||
                });
 | 
			
		||||
        ruleChain.setFirstRuleNodeId(null);
 | 
			
		||||
 | 
			
		||||
        sw.startNew("save");
 | 
			
		||||
        ruleChain = ruleChainService.saveRuleChain(ruleChain);
 | 
			
		||||
        exportData.getMetaData().setRuleChainId(ruleChain.getId());
 | 
			
		||||
        sw.startNew("save metadata");
 | 
			
		||||
        ruleChainService.saveRuleChainMetaData(ctx.getTenantId(), exportData.getMetaData());
 | 
			
		||||
        return ruleChainService.findRuleChainById(ctx.getTenantId(), ruleChain.getId());
 | 
			
		||||
        sw.startNew("find");
 | 
			
		||||
        var result = ruleChainService.findRuleChainById(ctx.getTenantId(), ruleChain.getId());
 | 
			
		||||
        sw.stop();
 | 
			
		||||
        for (var task : sw.getTaskInfo()) {
 | 
			
		||||
            log.info("[{}] Executed: {} in {}ms", ctx.getTenantId(), task.getTaskName(), task.getTimeMillis());
 | 
			
		||||
        }
 | 
			
		||||
        log.info("[{}] Total time: {}ms", ctx.getTenantId(), sw.getTotalTimeMillis());
 | 
			
		||||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
 | 
			
		||||
@ -18,6 +18,7 @@ package org.thingsboard.server.service.sync.ie.importing.impl;
 | 
			
		||||
import lombok.RequiredArgsConstructor;
 | 
			
		||||
import org.springframework.stereotype.Service;
 | 
			
		||||
import org.thingsboard.server.common.data.EntityType;
 | 
			
		||||
import org.thingsboard.server.common.data.asset.Asset;
 | 
			
		||||
import org.thingsboard.server.common.data.edge.EdgeEventActionType;
 | 
			
		||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
 | 
			
		||||
import org.thingsboard.server.common.data.id.TenantId;
 | 
			
		||||
@ -51,7 +52,7 @@ public class WidgetsBundleImportService extends BaseEntityImportService<WidgetsB
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    protected WidgetsBundle prepareAndSave(EntitiesImportCtx ctx, WidgetsBundle widgetsBundle, WidgetsBundleExportData exportData, IdProvider idProvider) {
 | 
			
		||||
    protected WidgetsBundle prepareAndSave(EntitiesImportCtx ctx, WidgetsBundle widgetsBundle, WidgetsBundle old, WidgetsBundleExportData exportData, IdProvider idProvider) {
 | 
			
		||||
        WidgetsBundle savedWidgetsBundle = widgetsBundleService.saveWidgetsBundle(widgetsBundle);
 | 
			
		||||
        if (widgetsBundle.getId() == null) {
 | 
			
		||||
            for (WidgetTypeDetails widget : exportData.getWidgets()) {
 | 
			
		||||
 | 
			
		||||
@ -26,6 +26,9 @@
 | 
			
		||||
    </appender>
 | 
			
		||||
 | 
			
		||||
    <logger name="org.thingsboard.server" level="INFO" />
 | 
			
		||||
    <logger name="org.springframework.jdbc.core" level="TRACE" />
 | 
			
		||||
    <logger name="org.hibernate.SQL" level="DEBUG" />
 | 
			
		||||
    <logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" />
 | 
			
		||||
 | 
			
		||||
<!--    <logger name="org.thingsboard.server.service.queue" level="TRACE" />-->
 | 
			
		||||
<!--    <logger name="org.thingsboard.server.service.transport" level="TRACE" />-->
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user