Class FlowSession

java.lang.Object
com.codingapi.flow.session.FlowSession

public class FlowSession extends Object
流程会话对象
  • Constructor Details

  • Method Details

    • isMock

      public boolean isMock()
      是否是mock
    • loadPreviousNodeOperatorIds

      public List<Long> loadPreviousNodeOperatorIds()
      获取上一节点的审批人员Id列表。

      以当前流程记录所在节点作为上一节点,按 fromId 查询该节点的流程记录, 提取实际审批过的人员Id并去重、排序后返回。

      多人审批(或签/并签)场景下,节点完成后其他候选人的待办会被自动置为已办 (自动跳过,FlowRecord.isAutoDone()),但他们并未实际审批,取数时排除, 确保下游节点取到的是真实审批人(issue #188)。

      仅当该节点为当前节点的直接前驱节点时才返回数据;流程预览等场景下 当前记录可能尚未流转到当前节点(如停留在更早的节点),此时返回空列表,避免误读。

      Returns:
      上一节点的审批人员Id列表,无法确定时返回空列表
    • loadFinalForwardOperator

      public IFlowOperator loadFinalForwardOperator(IFlowOperator currentOperator)
      获取转交之后的审批人
      Parameters:
      currentOperator - 当前操作者
      Returns:
      转交之后的审批人
    • startSession

      public static FlowSession startSession(IRepositoryHolder repositoryHolder, IFlowOperator currentOperator, Workflow workflow, IFlowNode currentNode, IFlowAction currentAction, FormData formData, long backupId)
      构建开始会话
      Parameters:
      currentOperator - 当前操作者
      workflow - 流程设计
      currentNode - 当前节点
      currentAction - 当前动作
      formData - 表单数据
      backupId - 流程备份id
      Returns:
      新的会话
    • toCreateRequest

      public FlowCreateRequest toCreateRequest()
      创建流程请求,用于自流程的创建
    • toCreateRequest

      public FlowCreateRequest toCreateRequest(String workCode, long operatorId, String actionId, String formData)
      创建流程请求,用于自流程的创建
      Parameters:
      workCode - 流程Code
      actionId - 动作类型
      formData - 流程数据
    • toCreateRequest

      public FlowCreateRequest toCreateRequest(String workCode, long operatorId, String actionId, Map<String,Object> formData)
      创建流程请求,用于自流程的创建
      Parameters:
      workCode - 流程Code
      actionId - 动作类型
      formData - 流程数据
    • toActionRequest

      public FlowActionRequest toActionRequest()
      创建流程动作请求,用于自定义脚本的执行
    • getStartNode

      public IFlowNode getStartNode()
      获取流程开始节点
    • getSubmitOperatorId

      public long getSubmitOperatorId()
      获取流程的提交者Id
    • getSubmitOperatorName

      public String getSubmitOperatorName()
      获取流程的提交者名称
    • getWorkCode

      public String getWorkCode()
      获取流程设计编号
    • getCurrentNodeId

      public String getCurrentNodeId()
    • getCurrentNodeType

      public String getCurrentNodeType()
    • getCurrentNodeName

      public String getCurrentNodeName()
    • matchNextNodes

      public List<IFlowNode> matchNextNodes()
      获取下一节点列表
      Returns:
      下一节点列表
    • getFormData

      public Object getFormData(String fieldCode)
      获取表单数据
      Parameters:
      fieldCode - 字段名称
      Returns:
      表单数据
    • updateSession

      public FlowSession updateSession(IFlowNode currentNode)
      更新会话
      Parameters:
      currentNode - 当前节点
      Returns:
      新的会话
    • updateSession

      public FlowSession updateSession(IFlowAction currentAction)
      更新会话
      Parameters:
      currentAction - 当前动作
      Returns:
      新的会话
    • updateSession

      public FlowSession updateSession(IFlowOperator currentOperator)
      更新会话
      Parameters:
      currentOperator - 当前操作者
      Returns:
      新的会话
    • findSubProcessRecords

      public List<FlowRecord> findSubProcessRecords(String subProcessNodeId)
      查询当前主流程中指定子流程节点已经结束的最终记录。
      Parameters:
      subProcessNodeId - 子流程节点 ID
      Returns:
      每个已结束子流程实例的最终业务记录
    • getSubProcessTotal

      public int getSubProcessTotal()
      获取本次子流程节点创建的实例总数。
    • getCurrentSubProcessRecord

      public FlowRecord getCurrentSubProcessRecord()
      获取本次刚结束的子流程最终记录。
    • getNode

      public IFlowNode getNode(String nodeId)
      获取节点
      Parameters:
      nodeId - 节点id
    • verifyFormData

      public void verifyFormData()
      校验表单字段