Fix bugs.
This commit is contained in:
		
							parent
							
								
									1960af7818
								
							
						
					
					
						commit
						75c0c5b3d0
					
				@ -33,9 +33,7 @@ public class TenantRuleChainManager extends RuleChainManager {
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void init(ActorContext context) {
 | 
			
		||||
        if (systemContext.isTenantComponentsInitEnabled()) {
 | 
			
		||||
            super.init(context);
 | 
			
		||||
        }
 | 
			
		||||
        super.init(context);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
 | 
			
		||||
@ -19,16 +19,15 @@ import lombok.extern.slf4j.Slf4j;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
import org.springframework.context.annotation.Profile;
 | 
			
		||||
import org.springframework.stereotype.Service;
 | 
			
		||||
import org.thingsboard.server.common.data.SearchTextBased;
 | 
			
		||||
import org.thingsboard.server.common.data.Tenant;
 | 
			
		||||
import org.thingsboard.server.common.data.id.IdBased;
 | 
			
		||||
import org.thingsboard.server.common.data.id.UUIDBased;
 | 
			
		||||
import org.thingsboard.server.common.data.page.TextPageData;
 | 
			
		||||
import org.thingsboard.server.common.data.page.TextPageLink;
 | 
			
		||||
import org.thingsboard.server.common.data.rule.RuleChain;
 | 
			
		||||
import org.thingsboard.server.dao.rule.RuleChainService;
 | 
			
		||||
import org.thingsboard.server.dao.tenant.TenantService;
 | 
			
		||||
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.UUID;
 | 
			
		||||
 | 
			
		||||
@Service
 | 
			
		||||
@Profile("install")
 | 
			
		||||
@Slf4j
 | 
			
		||||
@ -59,8 +58,8 @@ public class DefaultDataUpdateService implements DataUpdateService {
 | 
			
		||||
            new PaginatedUpdater<String, Tenant>() {
 | 
			
		||||
 | 
			
		||||
                @Override
 | 
			
		||||
                protected List<Tenant> findEntities(String region, TextPageLink pageLink) {
 | 
			
		||||
                    return tenantService.findTenants(pageLink).getData();
 | 
			
		||||
                protected TextPageData<Tenant> findEntities(String region, TextPageLink pageLink) {
 | 
			
		||||
                    return tenantService.findTenants(pageLink);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                @Override
 | 
			
		||||
@ -76,7 +75,7 @@ public class DefaultDataUpdateService implements DataUpdateService {
 | 
			
		||||
                }
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
    public abstract class PaginatedUpdater<I, D extends IdBased<?>> {
 | 
			
		||||
    public abstract class PaginatedUpdater<I, D extends SearchTextBased<? extends UUIDBased>> {
 | 
			
		||||
 | 
			
		||||
        private static final int DEFAULT_LIMIT = 100;
 | 
			
		||||
 | 
			
		||||
@ -84,20 +83,18 @@ public class DefaultDataUpdateService implements DataUpdateService {
 | 
			
		||||
            TextPageLink pageLink = new TextPageLink(DEFAULT_LIMIT);
 | 
			
		||||
            boolean hasNext = true;
 | 
			
		||||
            while (hasNext) {
 | 
			
		||||
                List<D> entities = findEntities(id, pageLink);
 | 
			
		||||
                for (D entity : entities) {
 | 
			
		||||
                TextPageData<D> entities = findEntities(id, pageLink);
 | 
			
		||||
                for (D entity : entities.getData()) {
 | 
			
		||||
                    updateEntity(entity);
 | 
			
		||||
                }
 | 
			
		||||
                hasNext = entities.size() == pageLink.getLimit();
 | 
			
		||||
                hasNext = entities.hasNext();
 | 
			
		||||
                if (hasNext) {
 | 
			
		||||
                    int index = entities.size() - 1;
 | 
			
		||||
                    UUID idOffset = entities.get(index).getUuidId();
 | 
			
		||||
                    pageLink.setIdOffset(idOffset);
 | 
			
		||||
                    pageLink = entities.getNextPageLink();
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        protected abstract List<D> findEntities(I id, TextPageLink pageLink);
 | 
			
		||||
        protected abstract TextPageData<D> findEntities(I id, TextPageLink pageLink);
 | 
			
		||||
 | 
			
		||||
        protected abstract void updateEntity(D entity);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -16,7 +16,10 @@
 | 
			
		||||
package org.thingsboard.rule.engine.rpc;
 | 
			
		||||
 | 
			
		||||
import com.datastax.driver.core.utils.UUIDs;
 | 
			
		||||
import com.fasterxml.jackson.databind.ObjectMapper;
 | 
			
		||||
import com.fasterxml.jackson.databind.JsonNode;
 | 
			
		||||
import com.google.gson.Gson;
 | 
			
		||||
import com.google.gson.JsonElement;
 | 
			
		||||
import com.google.gson.JsonObject;
 | 
			
		||||
import com.google.gson.JsonParser;
 | 
			
		||||
import lombok.extern.slf4j.Slf4j;
 | 
			
		||||
@ -35,6 +38,7 @@ import org.thingsboard.server.common.data.id.DeviceId;
 | 
			
		||||
import org.thingsboard.server.common.data.plugin.ComponentType;
 | 
			
		||||
import org.thingsboard.server.common.msg.TbMsg;
 | 
			
		||||
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.util.Random;
 | 
			
		||||
import java.util.UUID;
 | 
			
		||||
import java.util.concurrent.TimeUnit;
 | 
			
		||||
@ -86,10 +90,18 @@ public class TbSendRPCRequestNode implements TbNode {
 | 
			
		||||
            tmp = msg.getMetaData().getValue("expirationTime");
 | 
			
		||||
            long expirationTime = !StringUtils.isEmpty(tmp) ? Long.parseLong(tmp) : (System.currentTimeMillis() + TimeUnit.SECONDS.toMillis(config.getTimeoutInSeconds()));
 | 
			
		||||
 | 
			
		||||
            String params;
 | 
			
		||||
            JsonElement paramsEl = json.get("params");
 | 
			
		||||
            if (paramsEl.isJsonPrimitive()) {
 | 
			
		||||
                params = paramsEl.getAsString();
 | 
			
		||||
            } else {
 | 
			
		||||
                params = gson.toJson(paramsEl);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            RuleEngineDeviceRpcRequest request = RuleEngineDeviceRpcRequest.builder()
 | 
			
		||||
                    .oneway(oneway)
 | 
			
		||||
                    .method(json.get("method").getAsString())
 | 
			
		||||
                    .body(gson.toJson(json.get("params")))
 | 
			
		||||
                    .body(params)
 | 
			
		||||
                    .deviceId(new DeviceId(msg.getOriginator().getId()))
 | 
			
		||||
                    .requestId(requestId)
 | 
			
		||||
                    .requestUUID(requestUUID)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user