BPM:支持多表单,每个流程任务都可以绑定流程表单

This commit is contained in:
YunaiV
2024-03-20 12:50:51 +08:00
parent ed83b912e4
commit 29a0fbfc43
11 changed files with 117 additions and 41 deletions

View File

@ -4,8 +4,14 @@ import org.flowable.common.engine.api.delegate.Expression;
import org.flowable.common.engine.api.variable.VariableContainer;
import org.flowable.common.engine.impl.el.ExpressionManager;
import org.flowable.common.engine.impl.identity.Authentication;
import org.flowable.engine.history.HistoricProcessInstance;
import org.flowable.engine.impl.cfg.ProcessEngineConfigurationImpl;
import org.flowable.engine.impl.util.CommandContextUtil;
import org.flowable.engine.runtime.ProcessInstance;
import org.flowable.task.api.TaskInfo;
import java.util.HashMap;
import java.util.Map;
/**
* Flowable 相关的工具方法
@ -34,6 +40,56 @@ public class FlowableUtils {
return activityId + "_assignee";
}
// ========== ProcessInstance 相关的工具方法 ==========
public static Integer getProcessInstanceStatus(ProcessInstance processInstance) {
return getProcessInstanceStatus(processInstance.getProcessVariables());
}
public static Integer getProcessInstanceStatus(HistoricProcessInstance processInstance) {
return getProcessInstanceStatus(processInstance.getProcessVariables());
}
// TODO 芋艿:需要再搞搞
private static Integer getProcessInstanceStatus(Map<String, Object> processVariables) {
return (Integer) processVariables.get("PROCESS_STATUS");
}
public static Map<String, Object> getProcessInstanceFormVariable(ProcessInstance processInstance) {
Map<String, Object> formVariables = new HashMap<>(processInstance.getProcessVariables());
filterProcessInstanceFormVariable(formVariables);
return formVariables;
}
public static Map<String, Object> filterProcessInstanceFormVariable(Map<String, Object> processVariables) {
processVariables.remove("PROCESS_STATUS");
return processVariables;
}
// ========== Task 相关的工具方法 ==========
// TODO 芋艿:需要再搞搞
public static Integer getTaskStatus(TaskInfo task) {
return (Integer) task.getTaskLocalVariables().get("TASK_STATUS");
}
public static String getTaskReason(TaskInfo task) {
return (String) task.getTaskLocalVariables().get("TASK_REASON");
}
public static Map<String, Object> getTaskFormVariable(TaskInfo task) {
Map<String, Object> formVariables = new HashMap<>(task.getTaskLocalVariables());
filterTaskFormVariable(formVariables);
return formVariables;
}
public static Map<String, Object> filterTaskFormVariable(Map<String, Object> taskLocalVariables) {
taskLocalVariables.remove("TASK_STATUS");
taskLocalVariables.remove("TASK_REASON");
return taskLocalVariables;
}
// ========== Expression 相关的工具方法 ==========
public static Object getExpressionValue(VariableContainer variableContainer, String expressionString) {