|
|
@ -46,25 +46,16 @@ import org.thingsboard.server.gen.transport.TransportProtos; |
|
|
import org.thingsboard.server.queue.util.TbCoreComponent; |
|
|
import org.thingsboard.server.queue.util.TbCoreComponent; |
|
|
import org.thingsboard.server.service.edge.EdgeMsgConstructorUtils; |
|
|
import org.thingsboard.server.service.edge.EdgeMsgConstructorUtils; |
|
|
|
|
|
|
|
|
import java.util.Map; |
|
|
|
|
|
import java.util.Set; |
|
|
|
|
|
import java.util.UUID; |
|
|
import java.util.UUID; |
|
|
|
|
|
|
|
|
import static org.thingsboard.server.common.data.cf.CalculatedFieldType.ALARM; |
|
|
import static org.thingsboard.server.common.data.cf.CalculatedFieldType.SCRIPT; |
|
|
import static org.thingsboard.server.common.data.cf.CalculatedFieldType.ENTITY_AGGREGATION; |
|
|
import static org.thingsboard.server.common.data.cf.CalculatedFieldType.SIMPLE; |
|
|
import static org.thingsboard.server.common.data.cf.CalculatedFieldType.GEOFENCING; |
|
|
|
|
|
import static org.thingsboard.server.common.data.cf.CalculatedFieldType.PROPAGATION; |
|
|
|
|
|
import static org.thingsboard.server.common.data.cf.CalculatedFieldType.RELATED_ENTITIES_AGGREGATION; |
|
|
|
|
|
|
|
|
|
|
|
@Slf4j |
|
|
@Slf4j |
|
|
@Component |
|
|
@Component |
|
|
@TbCoreComponent |
|
|
@TbCoreComponent |
|
|
public class CalculatedFieldEdgeProcessor extends BaseCalculatedFieldProcessor implements CalculatedFieldProcessor { |
|
|
public class CalculatedFieldEdgeProcessor extends BaseCalculatedFieldProcessor implements CalculatedFieldProcessor { |
|
|
|
|
|
|
|
|
private static final Map<EdgeVersion, Set<CalculatedFieldType>> NEW_CF_TYPES_PER_EDGE_VERSION = Map.of( |
|
|
|
|
|
EdgeVersion.V_4_3_0, Set.of(GEOFENCING, ALARM, PROPAGATION, RELATED_ENTITIES_AGGREGATION, ENTITY_AGGREGATION) |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public ListenableFuture<Void> processCalculatedFieldMsgFromEdge(TenantId tenantId, Edge edge, CalculatedFieldUpdateMsg calculatedFieldUpdateMsg) { |
|
|
public ListenableFuture<Void> processCalculatedFieldMsgFromEdge(TenantId tenantId, Edge edge, CalculatedFieldUpdateMsg calculatedFieldUpdateMsg) { |
|
|
CalculatedFieldId calculatedFieldId = new CalculatedFieldId(new UUID(calculatedFieldUpdateMsg.getIdMSB(), calculatedFieldUpdateMsg.getIdLSB())); |
|
|
CalculatedFieldId calculatedFieldId = new CalculatedFieldId(new UUID(calculatedFieldUpdateMsg.getIdMSB(), calculatedFieldUpdateMsg.getIdLSB())); |
|
|
@ -125,11 +116,7 @@ public class CalculatedFieldEdgeProcessor extends BaseCalculatedFieldProcessor i |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private boolean isValidCfToSend(CalculatedFieldType type, EdgeVersion edgeVersion) { |
|
|
private boolean isValidCfToSend(CalculatedFieldType type, EdgeVersion edgeVersion) { |
|
|
return NEW_CF_TYPES_PER_EDGE_VERSION.entrySet().stream().noneMatch(entry -> { |
|
|
return edgeVersion.getNumber() >= EdgeVersion.V_4_3_0.getNumber() || (type == SIMPLE || type == SCRIPT); |
|
|
EdgeVersion v = entry.getKey(); |
|
|
|
|
|
Set<CalculatedFieldType> newCfTypes = entry.getValue(); |
|
|
|
|
|
return edgeVersion.getNumber() < v.getNumber() && newCfTypes.contains(type); |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
|