Delta Calculation Node improvement
This commit is contained in:
		
							parent
							
								
									a15e991d23
								
							
						
					
					
						commit
						bfd0ed5d04
					
				@ -45,11 +45,13 @@ import java.util.concurrent.ConcurrentHashMap;
 | 
			
		||||
 | 
			
		||||
@Slf4j
 | 
			
		||||
@RuleNode(type = ComponentType.ENRICHMENT,
 | 
			
		||||
        name = "calculate delta",
 | 
			
		||||
        name = "calculate delta", relationTypes = {"Success", "Failure", "Other"},
 | 
			
		||||
        configClazz = CalculateDeltaNodeConfiguration.class,
 | 
			
		||||
        nodeDescription = "Calculates and adds 'delta' value into message based on the incoming and previous value",
 | 
			
		||||
        nodeDetails = "Calculates delta and period based on the previous time-series reading and current data. " +
 | 
			
		||||
                "Delta calculation is done in scope of the message originator, e.g. device, asset or customer.",
 | 
			
		||||
                "Delta calculation is done in scope of the message originator, e.g. device, asset or customer. " +
 | 
			
		||||
                "If there is input key, the output relation will be 'Success' unless delta is negative and corresponding configuration parameter is set. " +
 | 
			
		||||
                "If there is no input value key in the incoming message, the output relation will be 'Other'.",
 | 
			
		||||
        uiResources = {"static/rulenode/rulenode-core-config.js"},
 | 
			
		||||
        configDirective = "tbEnrichmentNodeCalculateDeltaConfig")
 | 
			
		||||
public class CalculateDeltaNode implements TbNode {
 | 
			
		||||
@ -112,13 +114,11 @@ public class CalculateDeltaNode implements TbNode {
 | 
			
		||||
                            ctx.tellSuccess(TbMsg.transformMsg(msg, msg.getType(), msg.getOriginator(), msg.getMetaData(), JacksonUtil.toString(result)));
 | 
			
		||||
                        },
 | 
			
		||||
                        t -> ctx.tellFailure(msg, t), ctx.getDbCallbackExecutor());
 | 
			
		||||
            } else if (config.isTellFailureIfInputValueKeyIsAbsent()) {
 | 
			
		||||
                ctx.tellNext(msg, TbRelationTypes.FAILURE);
 | 
			
		||||
            } else {
 | 
			
		||||
                ctx.tellSuccess(msg);
 | 
			
		||||
                ctx.tellNext(msg, "Other");
 | 
			
		||||
            }
 | 
			
		||||
        } else {
 | 
			
		||||
            ctx.tellSuccess(msg);
 | 
			
		||||
            ctx.tellNext(msg, "Other");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -26,7 +26,6 @@ public class CalculateDeltaNodeConfiguration implements NodeConfiguration<Calcul
 | 
			
		||||
    private boolean addPeriodBetweenMsgs;
 | 
			
		||||
    private String periodValueKey;
 | 
			
		||||
    private Integer round;
 | 
			
		||||
    private boolean tellFailureIfInputValueKeyIsAbsent;
 | 
			
		||||
    private boolean tellFailureIfDeltaIsNegative;
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
@ -37,7 +36,6 @@ public class CalculateDeltaNodeConfiguration implements NodeConfiguration<Calcul
 | 
			
		||||
        configuration.setUseCache(true);
 | 
			
		||||
        configuration.setAddPeriodBetweenMsgs(false);
 | 
			
		||||
        configuration.setPeriodValueKey("periodInMs");
 | 
			
		||||
        configuration.setTellFailureIfInputValueKeyIsAbsent(true);
 | 
			
		||||
        configuration.setTellFailureIfDeltaIsNegative(true);
 | 
			
		||||
        return configuration;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user