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
|
@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);
|
return assetService.saveAsset(asset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -64,6 +64,7 @@ import java.util.Map;
|
|||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@ -104,7 +105,7 @@ public abstract class BaseEntityImportService<I extends EntityId, E extends Expo
|
|||||||
}
|
}
|
||||||
|
|
||||||
// sw.startNew("prepareAndSave");
|
// sw.startNew("prepareAndSave");
|
||||||
E savedEntity = prepareAndSave(ctx, entity, exportData, idProvider);
|
E savedEntity = prepareAndSave(ctx, entity, existingEntity, exportData, idProvider);
|
||||||
|
|
||||||
importResult.setSavedEntity(savedEntity);
|
importResult.setSavedEntity(savedEntity);
|
||||||
importResult.setOldEntity(existingEntity);
|
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 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 {
|
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.springframework.stereotype.Service;
|
||||||
import org.thingsboard.server.common.data.Customer;
|
import org.thingsboard.server.common.data.Customer;
|
||||||
import org.thingsboard.server.common.data.EntityType;
|
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.edge.EdgeEventActionType;
|
||||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
||||||
import org.thingsboard.server.common.data.id.CustomerId;
|
import org.thingsboard.server.common.data.id.CustomerId;
|
||||||
@ -45,7 +46,7 @@ public class CustomerImportService extends BaseEntityImportService<CustomerId, C
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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()) {
|
if (!customer.isPublic()) {
|
||||||
return customerService.saveCustomer(customer);
|
return customerService.saveCustomer(customer);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -24,6 +24,7 @@ import org.thingsboard.common.util.JacksonUtil;
|
|||||||
import org.thingsboard.server.common.data.Dashboard;
|
import org.thingsboard.server.common.data.Dashboard;
|
||||||
import org.thingsboard.server.common.data.EntityType;
|
import org.thingsboard.server.common.data.EntityType;
|
||||||
import org.thingsboard.server.common.data.ShortCustomerInfo;
|
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.edge.EdgeEventActionType;
|
||||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
||||||
import org.thingsboard.server.common.data.id.CustomerId;
|
import org.thingsboard.server.common.data.id.CustomerId;
|
||||||
@ -71,7 +72,7 @@ public class DashboardImportService extends BaseEntityImportService<DashboardId,
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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();
|
var tenantId = ctx.getTenantId();
|
||||||
JsonNode configuration = dashboard.getConfiguration();
|
JsonNode configuration = dashboard.getConfiguration();
|
||||||
JsonNode entityAliases = configuration.get("entityAliases");
|
JsonNode entityAliases = configuration.get("entityAliases");
|
||||||
|
|||||||
@ -19,6 +19,7 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.thingsboard.server.common.data.Device;
|
import org.thingsboard.server.common.data.Device;
|
||||||
import org.thingsboard.server.common.data.EntityType;
|
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.exception.ThingsboardException;
|
||||||
import org.thingsboard.server.common.data.id.DeviceId;
|
import org.thingsboard.server.common.data.id.DeviceId;
|
||||||
import org.thingsboard.server.common.data.id.TenantId;
|
import org.thingsboard.server.common.data.id.TenantId;
|
||||||
@ -43,10 +44,10 @@ public class DeviceImportService extends BaseEntityImportService<DeviceId, Devic
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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.setDeviceProfileId(idProvider.getInternalId(device.getDeviceProfileId()));
|
||||||
device.setFirmwareId(idProvider.getInternalId(device.getFirmwareId()));
|
device.setFirmwareId(getOldEntityField(old, Device::getFirmwareId));
|
||||||
device.setSoftwareId(idProvider.getInternalId(device.getSoftwareId()));
|
device.setSoftwareId(getOldEntityField(old, Device::getSoftwareId));
|
||||||
if (exportData.getCredentials() != null && ctx.isSaveCredentials()) {
|
if (exportData.getCredentials() != null && ctx.isSaveCredentials()) {
|
||||||
exportData.getCredentials().setId(null);
|
exportData.getCredentials().setId(null);
|
||||||
exportData.getCredentials().setDeviceId(null);
|
exportData.getCredentials().setDeviceId(null);
|
||||||
|
|||||||
@ -19,9 +19,11 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.thingsboard.server.common.data.DeviceProfile;
|
import org.thingsboard.server.common.data.DeviceProfile;
|
||||||
import org.thingsboard.server.common.data.EntityType;
|
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.edge.EdgeEventActionType;
|
||||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
||||||
import org.thingsboard.server.common.data.id.DeviceProfileId;
|
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.id.TenantId;
|
||||||
import org.thingsboard.server.common.data.plugin.ComponentLifecycleEvent;
|
import org.thingsboard.server.common.data.plugin.ComponentLifecycleEvent;
|
||||||
import org.thingsboard.server.common.data.sync.ie.EntityImportSettings;
|
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 org.thingsboard.server.service.sync.vc.data.EntitiesImportCtx;
|
||||||
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@TbCoreComponent
|
@TbCoreComponent
|
||||||
@ -48,11 +51,11 @@ public class DeviceProfileImportService extends BaseEntityImportService<DevicePr
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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.setDefaultRuleChainId(idProvider.getInternalId(deviceProfile.getDefaultRuleChainId()));
|
||||||
deviceProfile.setDefaultDashboardId(idProvider.getInternalId(deviceProfile.getDefaultDashboardId()));
|
deviceProfile.setDefaultDashboardId(idProvider.getInternalId(deviceProfile.getDefaultDashboardId()));
|
||||||
deviceProfile.setFirmwareId(idProvider.getInternalId(deviceProfile.getFirmwareId()));
|
deviceProfile.setFirmwareId(getOldEntityField(old, DeviceProfile::getFirmwareId));
|
||||||
deviceProfile.setSoftwareId(idProvider.getInternalId(deviceProfile.getSoftwareId()));
|
deviceProfile.setSoftwareId(getOldEntityField(old, DeviceProfile::getSoftwareId));
|
||||||
return deviceProfileService.saveDeviceProfile(deviceProfile);
|
return deviceProfileService.saveDeviceProfile(deviceProfile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -21,6 +21,7 @@ import org.springframework.context.annotation.Lazy;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.thingsboard.server.common.data.EntityType;
|
import org.thingsboard.server.common.data.EntityType;
|
||||||
import org.thingsboard.server.common.data.EntityView;
|
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.audit.ActionType;
|
||||||
import org.thingsboard.server.common.data.edge.EdgeEventActionType;
|
import org.thingsboard.server.common.data.edge.EdgeEventActionType;
|
||||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
||||||
@ -51,7 +52,7 @@ public class EntityViewImportService extends BaseEntityImportService<EntityViewI
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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()));
|
entityView.setEntityId(idProvider.getInternalId(entityView.getEntityId()));
|
||||||
return entityViewService.saveEntityView(entityView);
|
return entityViewService.saveEntityView(entityView);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,9 +17,12 @@ package org.thingsboard.server.service.sync.ie.importing.impl;
|
|||||||
|
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.thingsboard.common.util.JacksonUtil;
|
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.EntityType;
|
||||||
|
import org.thingsboard.server.common.data.asset.Asset;
|
||||||
import org.thingsboard.server.common.data.edge.EdgeEventActionType;
|
import org.thingsboard.server.common.data.edge.EdgeEventActionType;
|
||||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
||||||
import org.thingsboard.server.common.data.id.RuleChainId;
|
import org.thingsboard.server.common.data.id.RuleChainId;
|
||||||
@ -41,6 +44,7 @@ import java.util.LinkedHashSet;
|
|||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@TbCoreComponent
|
@TbCoreComponent
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@ -65,7 +69,8 @@ public class RuleChainImportService extends BaseEntityImportService<RuleChainId,
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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();
|
RuleChainMetaData metaData = exportData.getMetaData();
|
||||||
Optional.ofNullable(metaData.getNodes()).orElse(Collections.emptyList())
|
Optional.ofNullable(metaData.getNodes()).orElse(Collections.emptyList())
|
||||||
.forEach(ruleNode -> {
|
.forEach(ruleNode -> {
|
||||||
@ -87,10 +92,19 @@ public class RuleChainImportService extends BaseEntityImportService<RuleChainId,
|
|||||||
});
|
});
|
||||||
ruleChain.setFirstRuleNodeId(null);
|
ruleChain.setFirstRuleNodeId(null);
|
||||||
|
|
||||||
|
sw.startNew("save");
|
||||||
ruleChain = ruleChainService.saveRuleChain(ruleChain);
|
ruleChain = ruleChainService.saveRuleChain(ruleChain);
|
||||||
exportData.getMetaData().setRuleChainId(ruleChain.getId());
|
exportData.getMetaData().setRuleChainId(ruleChain.getId());
|
||||||
|
sw.startNew("save metadata");
|
||||||
ruleChainService.saveRuleChainMetaData(ctx.getTenantId(), exportData.getMetaData());
|
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
|
@Override
|
||||||
|
|||||||
@ -18,6 +18,7 @@ package org.thingsboard.server.service.sync.ie.importing.impl;
|
|||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.thingsboard.server.common.data.EntityType;
|
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.edge.EdgeEventActionType;
|
||||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
||||||
import org.thingsboard.server.common.data.id.TenantId;
|
import org.thingsboard.server.common.data.id.TenantId;
|
||||||
@ -51,7 +52,7 @@ public class WidgetsBundleImportService extends BaseEntityImportService<WidgetsB
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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);
|
WidgetsBundle savedWidgetsBundle = widgetsBundleService.saveWidgetsBundle(widgetsBundle);
|
||||||
if (widgetsBundle.getId() == null) {
|
if (widgetsBundle.getId() == null) {
|
||||||
for (WidgetTypeDetails widget : exportData.getWidgets()) {
|
for (WidgetTypeDetails widget : exportData.getWidgets()) {
|
||||||
|
|||||||
@ -26,6 +26,9 @@
|
|||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
<logger name="org.thingsboard.server" level="INFO" />
|
<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.queue" level="TRACE" />-->
|
||||||
<!-- <logger name="org.thingsboard.server.service.transport" level="TRACE" />-->
|
<!-- <logger name="org.thingsboard.server.service.transport" level="TRACE" />-->
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user