|
|
|
@ -25,6 +25,7 @@ import org.thingsboard.common.util.JacksonUtil; |
|
|
|
import org.thingsboard.server.common.data.EdgeUtils; |
|
|
|
import org.thingsboard.server.common.data.EntityType; |
|
|
|
import org.thingsboard.server.common.data.cf.CalculatedField; |
|
|
|
import org.thingsboard.server.common.data.cf.CalculatedFieldType; |
|
|
|
import org.thingsboard.server.common.data.edge.Edge; |
|
|
|
import org.thingsboard.server.common.data.edge.EdgeEvent; |
|
|
|
import org.thingsboard.server.common.data.edge.EdgeEventActionType; |
|
|
|
@ -47,6 +48,9 @@ import org.thingsboard.server.service.edge.EdgeMsgConstructorUtils; |
|
|
|
|
|
|
|
import java.util.UUID; |
|
|
|
|
|
|
|
import static org.thingsboard.server.common.data.cf.CalculatedFieldType.SCRIPT; |
|
|
|
import static org.thingsboard.server.common.data.cf.CalculatedFieldType.SIMPLE; |
|
|
|
|
|
|
|
@Slf4j |
|
|
|
@Component |
|
|
|
@TbCoreComponent |
|
|
|
@ -91,7 +95,7 @@ public class CalculatedFieldEdgeProcessor extends BaseCalculatedFieldProcessor i |
|
|
|
switch (edgeEvent.getAction()) { |
|
|
|
case ADDED, UPDATED -> { |
|
|
|
CalculatedField calculatedField = edgeCtx.getCalculatedFieldService().findById(edgeEvent.getTenantId(), calculatedFieldId); |
|
|
|
if (calculatedField != null) { |
|
|
|
if (calculatedField != null && isValidCfToSend(calculatedField.getType(), edgeVersion)) { |
|
|
|
UpdateMsgType msgType = getUpdateMsgType(edgeEvent.getAction()); |
|
|
|
CalculatedFieldUpdateMsg calculatedFieldUpdateMsg = EdgeMsgConstructorUtils.constructCalculatedFieldUpdatedMsg(msgType, calculatedField); |
|
|
|
return DownlinkMsg.newBuilder() |
|
|
|
@ -111,6 +115,10 @@ public class CalculatedFieldEdgeProcessor extends BaseCalculatedFieldProcessor i |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
private boolean isValidCfToSend(CalculatedFieldType type, EdgeVersion edgeVersion) { |
|
|
|
return edgeVersion.getNumber() >= EdgeVersion.V_4_3_0.getNumber() || (type == SIMPLE || type == SCRIPT); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public EdgeEventType getEdgeEventType() { |
|
|
|
return EdgeEventType.CALCULATED_FIELD; |
|
|
|
|