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);");
 | 
			
		||||
 | 
			
		||||
                        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();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -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);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user