类 FlowableUtils

java.lang.Object
cn.jrack.flowable.flow.FlowableUtils

public class FlowableUtils extends Object
作者:
XuanXuan
  • 构造器概要

    构造器
    构造器
    说明
     
  • 方法概要

    修饰符和类型
    方法
    说明
    static Set<String>
    dfsFindRejects(org.flowable.bpmn.model.BpmnModel bpmnModel, Set<String> unfinishedTaskSet, Set<String> finishedSequenceFlowSet, Set<String> finishedTaskSet)
    深搜递归获取流程未通过的节点
    static Boolean
    dirtyTargetInChildProcess(org.flowable.bpmn.model.FlowElement source, Set<String> hasSequenceFlow, List<String> targets, Boolean inChildProcess)
    判断脏路线结束节点是否在子流程上
    static Set<String>
    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)
    迭代获取子流程用户任务节点
    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)
    从后向前寻路,获取到达节点的所有路线 不存在直接回退到子流程,但是存在回退到父级流程的情况
    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)
    根据节点,获取出口连线
    static List<String>
    historicTaskInstanceClean(Collection<org.flowable.bpmn.model.FlowElement> allElements, List<org.flowable.task.api.history.HistoricTaskInstance> historicTaskInstanceList)
    历史节点数据清洗,清洗掉又回滚导致的脏数据
    static Boolean
    iteratorCheckSequentialReferTarget(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)
    根据正在运行的任务节点,迭代获取子级任务节点列表,向后找
    static Set<String>
    iteratorFindDirtyRoads(org.flowable.bpmn.model.FlowElement source, List<String> passRoads, Set<String> hasSequenceFlow, List<String> targets, Set<String> dirtyRoads)
    从后向前寻路,获取所有脏线路上的点
    static List<String>
    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)
    迭代获取父级任务节点列表,向前找
    static List<String>
    iteratorFindRejects(org.flowable.bpmn.model.FlowElement source, Set<String> finishedSequenceFlowSet, Set<String> finishedTaskSet, List<String> hasSequenceFlow, List<String> rejectedList)
    根据正在运行的任务节点,迭代获取子级任务节点列表,向后找

    从类继承的方法 java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 构造器详细资料

    • 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 - 未通过的元素
      返回: