类 FlowableUtils
java.lang.Object
cn.jrack.flowable.flow.FlowableUtils
- 作者:
- XuanXuan
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明dfsFindRejects(org.flowable.bpmn.model.BpmnModel bpmnModel, Set<String> unfinishedTaskSet, Set<String> finishedSequenceFlowSet, Set<String> finishedTaskSet) 深搜递归获取流程未通过的节点static BooleandirtyTargetInChildProcess(org.flowable.bpmn.model.FlowElement source, Set<String> hasSequenceFlow, List<String> targets, Boolean inChildProcess) 判断脏路线结束节点是否在子流程上findChildProcessAllDirtyRoad(org.flowable.bpmn.model.FlowElement source, Set<String> hasSequenceFlow, Set<String> dirtyRoads) 迭代获取子流程脏路线 说明,假如回退的点就是子流程,那么也肯定会回退到子流程最初的用户任务节点,因此子流程中的节点全是脏路线static List<org.flowable.bpmn.model.UserTask>findChildProcessUserTasks(org.flowable.bpmn.model.FlowElement source, Set<String> hasSequenceFlow, List<org.flowable.bpmn.model.UserTask> userTaskList) 迭代获取子流程用户任务节点findRoad(org.flowable.bpmn.model.FlowElement source, List<org.flowable.bpmn.model.UserTask> passRoads, Set<String> hasSequenceFlow, List<List<org.flowable.bpmn.model.UserTask>> roads) 从后向前寻路,获取到达节点的所有路线 不存在直接回退到子流程,但是存在回退到父级流程的情况static Collection<org.flowable.bpmn.model.FlowElement>getAllElements(Collection<org.flowable.bpmn.model.FlowElement> flowElements, Collection<org.flowable.bpmn.model.FlowElement> allElements) 获取全部节点列表,包含子流程节点static List<org.flowable.bpmn.model.SequenceFlow>getElementIncomingFlows(org.flowable.bpmn.model.FlowElement source) 根据节点,获取入口连线static List<org.flowable.bpmn.model.SequenceFlow>getElementOutgoingFlows(org.flowable.bpmn.model.FlowElement source) 根据节点,获取出口连线historicTaskInstanceClean(Collection<org.flowable.bpmn.model.FlowElement> allElements, List<org.flowable.task.api.history.HistoricTaskInstance> historicTaskInstanceList) 历史节点数据清洗,清洗掉又回滚导致的脏数据static BooleaniteratorCheckSequentialReferTarget(org.flowable.bpmn.model.FlowElement source, String targetKsy, Set<String> hasSequenceFlow, Boolean isSequential) 迭代从后向前扫描,判断目标节点相对于当前节点是否是串行 不存在直接回退到子流程中的情况,但存在从子流程出去到父流程情况static List<org.flowable.bpmn.model.UserTask>iteratorFindChildUserTasks(org.flowable.bpmn.model.FlowElement source, List<String> runTaskKeyList, Set<String> hasSequenceFlow, List<org.flowable.bpmn.model.UserTask> userTaskList) 根据正在运行的任务节点,迭代获取子级任务节点列表,向后找iteratorFindDirtyRoads(org.flowable.bpmn.model.FlowElement source, List<String> passRoads, Set<String> hasSequenceFlow, List<String> targets, Set<String> dirtyRoads) 从后向前寻路,获取所有脏线路上的点iteratorFindFinishes(org.flowable.bpmn.model.FlowElement source, List<String> hasSequenceFlow) 迭代获取父级节点列表,向前找static List<org.flowable.bpmn.model.UserTask>iteratorFindParentUserTasks(org.flowable.bpmn.model.FlowElement source, Set<String> hasSequenceFlow, List<org.flowable.bpmn.model.UserTask> userTaskList) 迭代获取父级任务节点列表,向前找iteratorFindRejects(org.flowable.bpmn.model.FlowElement source, Set<String> finishedSequenceFlowSet, Set<String> finishedTaskSet, List<String> hasSequenceFlow, List<String> rejectedList) 根据正在运行的任务节点,迭代获取子级任务节点列表,向后找
-
构造器详细资料
-
FlowableUtils
public FlowableUtils()
-
-
方法详细资料
-
getElementIncomingFlows
public static List<org.flowable.bpmn.model.SequenceFlow> getElementIncomingFlows(org.flowable.bpmn.model.FlowElement source) 根据节点,获取入口连线- 参数:
source-- 返回:
-
getElementOutgoingFlows
public static List<org.flowable.bpmn.model.SequenceFlow> getElementOutgoingFlows(org.flowable.bpmn.model.FlowElement source) 根据节点,获取出口连线- 参数:
source-- 返回:
-
getAllElements
public static Collection<org.flowable.bpmn.model.FlowElement> getAllElements(Collection<org.flowable.bpmn.model.FlowElement> flowElements, Collection<org.flowable.bpmn.model.FlowElement> allElements) 获取全部节点列表,包含子流程节点- 参数:
flowElements-allElements-- 返回:
-
iteratorFindParentUserTasks
public static List<org.flowable.bpmn.model.UserTask> iteratorFindParentUserTasks(org.flowable.bpmn.model.FlowElement source, Set<String> hasSequenceFlow, List<org.flowable.bpmn.model.UserTask> userTaskList) 迭代获取父级任务节点列表,向前找- 参数:
source- 起始节点hasSequenceFlow- 已经经过的连线的 ID,用于判断线路是否重复userTaskList- 已找到的用户任务节点- 返回:
-
iteratorFindChildUserTasks
public static List<org.flowable.bpmn.model.UserTask> iteratorFindChildUserTasks(org.flowable.bpmn.model.FlowElement source, List<String> runTaskKeyList, Set<String> hasSequenceFlow, List<org.flowable.bpmn.model.UserTask> userTaskList) 根据正在运行的任务节点,迭代获取子级任务节点列表,向后找- 参数:
source- 起始节点runTaskKeyList- 正在运行的任务 Key,用于校验任务节点是否是正在运行的节点hasSequenceFlow- 已经经过的连线的 ID,用于判断线路是否重复userTaskList- 需要撤回的用户任务列表- 返回:
-
findChildProcessUserTasks
public static List<org.flowable.bpmn.model.UserTask> findChildProcessUserTasks(org.flowable.bpmn.model.FlowElement source, Set<String> hasSequenceFlow, List<org.flowable.bpmn.model.UserTask> userTaskList) 迭代获取子流程用户任务节点- 参数:
source- 起始节点hasSequenceFlow- 已经经过的连线的 ID,用于判断线路是否重复userTaskList- 需要撤回的用户任务列表- 返回:
-
iteratorFindDirtyRoads
public static Set<String> iteratorFindDirtyRoads(org.flowable.bpmn.model.FlowElement source, List<String> passRoads, Set<String> hasSequenceFlow, List<String> targets, Set<String> dirtyRoads) 从后向前寻路,获取所有脏线路上的点- 参数:
source- 起始节点passRoads- 已经经过的点集合hasSequenceFlow- 已经经过的连线的 ID,用于判断线路是否重复targets- 目标脏线路终点dirtyRoads- 确定为脏数据的点,因为不需要重复,因此使用 set 存储- 返回:
-
findChildProcessAllDirtyRoad
public static Set<String> findChildProcessAllDirtyRoad(org.flowable.bpmn.model.FlowElement source, Set<String> hasSequenceFlow, Set<String> dirtyRoads) 迭代获取子流程脏路线 说明,假如回退的点就是子流程,那么也肯定会回退到子流程最初的用户任务节点,因此子流程中的节点全是脏路线- 参数:
source- 起始节点hasSequenceFlow- 已经经过的连线的 ID,用于判断线路是否重复dirtyRoads- 确定为脏数据的点,因为不需要重复,因此使用 set 存储- 返回:
-
dirtyTargetInChildProcess
public static Boolean dirtyTargetInChildProcess(org.flowable.bpmn.model.FlowElement source, Set<String> hasSequenceFlow, List<String> targets, Boolean inChildProcess) 判断脏路线结束节点是否在子流程上- 参数:
source- 起始节点hasSequenceFlow- 已经经过的连线的 ID,用于判断线路是否重复targets- 判断脏路线节点是否存在子流程上,只要存在一个,说明脏路线只到子流程为止inChildProcess- 是否存在子流程上,true 是,false 否- 返回:
-
iteratorCheckSequentialReferTarget
public static Boolean iteratorCheckSequentialReferTarget(org.flowable.bpmn.model.FlowElement source, String targetKsy, Set<String> hasSequenceFlow, Boolean isSequential) 迭代从后向前扫描,判断目标节点相对于当前节点是否是串行 不存在直接回退到子流程中的情况,但存在从子流程出去到父流程情况- 参数:
source- 起始节点isSequential- 是否串行hasSequenceFlow- 已经经过的连线的 ID,用于判断线路是否重复targetKsy- 目标节点- 返回:
-
findRoad
public static List<List<org.flowable.bpmn.model.UserTask>> findRoad(org.flowable.bpmn.model.FlowElement source, List<org.flowable.bpmn.model.UserTask> passRoads, Set<String> hasSequenceFlow, List<List<org.flowable.bpmn.model.UserTask>> roads) 从后向前寻路,获取到达节点的所有路线 不存在直接回退到子流程,但是存在回退到父级流程的情况- 参数:
source- 起始节点passRoads- 已经经过的点集合roads- 路线- 返回:
-
historicTaskInstanceClean
public static List<String> historicTaskInstanceClean(Collection<org.flowable.bpmn.model.FlowElement> allElements, List<org.flowable.task.api.history.HistoricTaskInstance> historicTaskInstanceList) 历史节点数据清洗,清洗掉又回滚导致的脏数据- 参数:
allElements- 全部节点信息historicTaskInstanceList- 历史任务实例信息,数据采用开始时间升序- 返回:
-
dfsFindRejects
public static Set<String> dfsFindRejects(org.flowable.bpmn.model.BpmnModel bpmnModel, Set<String> unfinishedTaskSet, Set<String> finishedSequenceFlowSet, Set<String> finishedTaskSet) 深搜递归获取流程未通过的节点- 参数:
bpmnModel- 流程模型unfinishedTaskSet- 未结束的任务节点finishedSequenceFlowSet- 已经完成的连线finishedTaskSet- 已完成的任务节点- 返回:
-
iteratorFindFinishes
public static List<String> iteratorFindFinishes(org.flowable.bpmn.model.FlowElement source, List<String> hasSequenceFlow) 迭代获取父级节点列表,向前找- 参数:
source- 起始节点hasSequenceFlow- 已经经过的连线的ID,用于判断线路是否重复- 返回:
-
iteratorFindRejects
public static List<String> iteratorFindRejects(org.flowable.bpmn.model.FlowElement source, Set<String> finishedSequenceFlowSet, Set<String> finishedTaskSet, List<String> hasSequenceFlow, List<String> rejectedList) 根据正在运行的任务节点,迭代获取子级任务节点列表,向后找- 参数:
source- 起始节点finishedSequenceFlowSet- 已经完成的连线finishedTaskSet- 已经完成的任务节点hasSequenceFlow- 已经经过的连线的 ID,用于判断线路是否重复rejectedList- 未通过的元素- 返回:
-