Procházet zdrojové kódy

介于条件表达式支持

caixiaofeng před 6 měsíci
rodič
revize
d5304e7aaa

+ 2 - 0
flow-common/flow-common-flowable-starter/src/main/java/com/flow/flowable/configure/FlowableConfigure.java

@@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import com.flow.flowable.converter.CopyServiceTaskXMLConverter;
 import com.flow.flowable.converter.CustomServiceTaskXMLConverter;
 import com.flow.flowable.converter.JumpServiceTaskXMLConverter;
+import com.flow.flowable.expression.VariableBetweenExpressionFunction;
 import com.flow.flowable.expression.VariableContainsAllExpressionFunction;
 import com.flow.flowable.parser.factory.CustomDefaultActivityBehaviorFactory;
 import com.flow.flowable.parser.handler.CopyServiceTaskParseHandler;
@@ -49,6 +50,7 @@ public class FlowableConfigure implements EngineConfigurationConfigurer<SpringPr
         engineConfiguration.setActivityBehaviorFactory(new CustomDefaultActivityBehaviorFactory());
         List<FlowableFunctionDelegate> customFlowableFunctionDelegates = new ArrayList<>();
         customFlowableFunctionDelegates.add(new VariableContainsAllExpressionFunction());
+        customFlowableFunctionDelegates.add(new VariableBetweenExpressionFunction());
         engineConfiguration.setCustomFlowableFunctionDelegates(customFlowableFunctionDelegates);
         BpmnXMLConverter.addConverter(new JumpServiceTaskXMLConverter());
         BpmnXMLConverter.addConverter(new CopyServiceTaskXMLConverter());

+ 21 - 0
flow-common/flow-common-flowable-starter/src/main/java/com/flow/flowable/expression/VariableBetweenExpressionFunction.java

@@ -0,0 +1,21 @@
+package com.flow.flowable.expression;
+
+import org.flowable.common.engine.api.variable.VariableContainer;
+import org.flowable.common.engine.impl.el.function.AbstractFlowableVariableExpressionFunction;
+import org.flowable.common.engine.impl.el.function.VariableGreaterThanExpressionFunction;
+import org.flowable.common.engine.impl.el.function.VariableLowerThanExpressionFunction;
+
+import java.util.Collections;
+
+public class VariableBetweenExpressionFunction extends AbstractFlowableVariableExpressionFunction {
+
+    public VariableBetweenExpressionFunction() {
+        super(Collections.singletonList("bt"), "between");
+    }
+
+    public static boolean between(VariableContainer variableContainer, String variableName, Object value1, Object value2) {
+        return VariableGreaterThanExpressionFunction.greaterThan(variableContainer, variableName, value1)
+                && VariableLowerThanExpressionFunction.lowerThan(variableContainer, variableName, value2);
+    }
+
+}