refactored

This commit is contained in:
YevhenBondarenko 2022-11-09 09:58:15 +01:00
parent 71d26ba18b
commit d84fd92f57
2 changed files with 20 additions and 28 deletions

View File

@ -629,23 +629,30 @@ public class SqlDatabaseUpgradeService implements DatabaseEntitiesUpgradeService
conn.createStatement().execute("DELETE FROM asset a WHERE NOT exists(SELECT id FROM tenant WHERE id = a.tenant_id);");
log.info("Creating default asset profiles...");
PageLink pageLink = new PageLink(1000);
PageData<TbPair<UUID, String>> pageData;
List<ListenableFuture<?>> futures = new ArrayList<>();
PageLink pageLink = new PageLink(1000);
PageData<TenantId> tenantIds;
do {
tenantIds = tenantService.findTenantsIds(pageLink);
for (TenantId tenantId : tenantIds.getData()) {
futures.add(dbUpgradeExecutor.submit(() -> {
try {
assetProfileService.createDefaultAssetProfile(tenantId);
} catch (Exception e) {}
}));
}
pageLink = pageLink.nextPageLink();
} while (tenantIds.hasNext());
pageLink = new PageLink(1000);
PageData<TbPair<UUID, String>> pairs;
Set<UUID> tenants = new HashSet<>();
do {
pageData = assetDao.getAllAssetTypes(pageLink);
for (TbPair<UUID, String> pair : pageData.getData()) {
pairs = assetDao.getAllAssetTypes(pageLink);
for (TbPair<UUID, String> pair : pairs.getData()) {
TenantId tenantId = new TenantId(pair.getFirst());
String assetType = pair.getSecond();
if (tenants.add(pair.getFirst())) {
futures.add(dbUpgradeExecutor.submit(() -> {
try {
assetProfileService.createDefaultAssetProfile(tenantId);
} catch (Exception e) {}
}));
}
if (!"default".equals(assetType)) {
futures.add(dbUpgradeExecutor.submit(() -> {
try {
@ -655,17 +662,7 @@ public class SqlDatabaseUpgradeService implements DatabaseEntitiesUpgradeService
}
}
pageLink = pageLink.nextPageLink();
} while (pageData.hasNext());
List<UUID> tenantsWithoutProfiles = tenantRepository.getIdsNotIn(tenants);
tenantsWithoutProfiles.forEach(uuid ->
futures.add(dbUpgradeExecutor.submit(() -> {
try {
assetProfileService.createDefaultAssetProfile(TenantId.fromUUID(uuid));
} catch (Exception e) {}
}))
);
} while (pairs.hasNext());
Futures.allAsList(futures).get();

View File

@ -24,7 +24,6 @@ import org.thingsboard.server.dao.model.sql.TenantEntity;
import org.thingsboard.server.dao.model.sql.TenantInfoEntity;
import java.util.List;
import java.util.Set;
import java.util.UUID;
/**
@ -54,8 +53,4 @@ public interface TenantRepository extends JpaRepository<TenantEntity, UUID> {
@Query("SELECT t.id FROM TenantEntity t where t.tenantProfileId = :tenantProfileId")
List<UUID> findTenantIdsByTenantProfileId(@Param("tenantProfileId") UUID tenantProfileId);
@Query("SELECT t.id FROM TenantEntity t WHERE t.id NOT IN :ids")
List<UUID> getIdsNotIn(@Param("ids")Set<UUID> ids);
}