refactored
This commit is contained in:
parent
71d26ba18b
commit
d84fd92f57
@ -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);");
|
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...");
|
log.info("Creating default asset profiles...");
|
||||||
PageLink pageLink = new PageLink(1000);
|
|
||||||
PageData<TbPair<UUID, String>> pageData;
|
|
||||||
List<ListenableFuture<?>> futures = new ArrayList<>();
|
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<>();
|
Set<UUID> tenants = new HashSet<>();
|
||||||
do {
|
do {
|
||||||
pageData = assetDao.getAllAssetTypes(pageLink);
|
pairs = assetDao.getAllAssetTypes(pageLink);
|
||||||
for (TbPair<UUID, String> pair : pageData.getData()) {
|
for (TbPair<UUID, String> pair : pairs.getData()) {
|
||||||
TenantId tenantId = new TenantId(pair.getFirst());
|
TenantId tenantId = new TenantId(pair.getFirst());
|
||||||
String assetType = pair.getSecond();
|
String assetType = pair.getSecond();
|
||||||
if (tenants.add(pair.getFirst())) {
|
|
||||||
futures.add(dbUpgradeExecutor.submit(() -> {
|
|
||||||
try {
|
|
||||||
assetProfileService.createDefaultAssetProfile(tenantId);
|
|
||||||
} catch (Exception e) {}
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!"default".equals(assetType)) {
|
if (!"default".equals(assetType)) {
|
||||||
futures.add(dbUpgradeExecutor.submit(() -> {
|
futures.add(dbUpgradeExecutor.submit(() -> {
|
||||||
try {
|
try {
|
||||||
@ -655,17 +662,7 @@ public class SqlDatabaseUpgradeService implements DatabaseEntitiesUpgradeService
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
pageLink = pageLink.nextPageLink();
|
pageLink = pageLink.nextPageLink();
|
||||||
} while (pageData.hasNext());
|
} while (pairs.hasNext());
|
||||||
|
|
||||||
List<UUID> tenantsWithoutProfiles = tenantRepository.getIdsNotIn(tenants);
|
|
||||||
|
|
||||||
tenantsWithoutProfiles.forEach(uuid ->
|
|
||||||
futures.add(dbUpgradeExecutor.submit(() -> {
|
|
||||||
try {
|
|
||||||
assetProfileService.createDefaultAssetProfile(TenantId.fromUUID(uuid));
|
|
||||||
} catch (Exception e) {}
|
|
||||||
}))
|
|
||||||
);
|
|
||||||
|
|
||||||
Futures.allAsList(futures).get();
|
Futures.allAsList(futures).get();
|
||||||
|
|
||||||
|
|||||||
@ -24,7 +24,6 @@ import org.thingsboard.server.dao.model.sql.TenantEntity;
|
|||||||
import org.thingsboard.server.dao.model.sql.TenantInfoEntity;
|
import org.thingsboard.server.dao.model.sql.TenantInfoEntity;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
|
||||||
import java.util.UUID;
|
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")
|
@Query("SELECT t.id FROM TenantEntity t where t.tenantProfileId = :tenantProfileId")
|
||||||
List<UUID> findTenantIdsByTenantProfileId(@Param("tenantProfileId") UUID 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);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user