类 WorkflowService

java.lang.Object
net.sohelp.boot.engine.web.service.WorkflowService

@Component public class WorkflowService extends Object
工作流服务
从以下版本开始:
2025/11/7 17:12
作者:
AaronFung
  • 构造器概要

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

    修饰符和类型
    方法
    说明
    getActorByCC(Object instanceId)
    根据实例ID查询特定类型任务的抄送人信息
    getActorByFirst(Object instanceId)
    根据实例ID获取第一个任务发起人信息
    getActorByNext(Object instanceId)
    获取下一个任务处理人ID
    getProcessName(long instanceId)
    根据实例 ID 查询对应的流程名称 该方法通过 SQL 查询从历史实例表和当前实例表中获取指定实例 ID 关联的流程名称
    getTaskIdByInstanceId(long instanceId)
    根据实例 ID 获取当前的任务 ID
    getWorkflow(String datasource, String entityName)
    根据数据源和实体名称获取对应的工作流配置
    boolean
    isLastTask(long instanceId, String taskKey)
    判断指定任务是否为流程的最后一个任务 通过检查当前实例的活动任务数量来确定,如果当前只有一个活动任务, 并且该任务与传入的任务ID匹配,则认为是最后一个任务
    boolean
    isLastTaskById(long instanceId, long taskId)
    判断指定任务是否为流程的最后一个任务(根据任务ID) 通过检查当前实例的活动任务数量来确定,如果当前只有一个活动任务, 并且该任务与传入的任务ID匹配,则认为是最后一个任务
    boolean
    isProcessEnded(long instanceId)
    判断流程是否结束 通过检查当前实例是否存在于活动实例表中以及是否存在于历史实例表中来确定流程状态 如果在当前实例表中找不到,但在历史实例表中能找到,则认为流程已结束
    根据模块信息获取关联的工作流列表
    void
    saveWorkflow(String datasource, String entityName, com.alibaba.fastjson.JSONObject jsonObject)
    保存实体的工作流信息

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

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

    • WorkflowService

      public WorkflowService()
  • 方法详细资料

    • saveWorkflow

      public void saveWorkflow(String datasource, String entityName, com.alibaba.fastjson.JSONObject jsonObject) throws BusiException, SQLException
      保存实体的工作流信息
      参数:
      datasource - 数据源名称
      entityName - 实体名称
      jsonObject - 实体工作流信息的 JSON 对象
      抛出:
      BusiException - 业务异常
      SQLException - SQL 异常
    • getWorkflow

      public WorkflowVO getWorkflow(String datasource, String entityName) throws BusiException, SQLException
      根据数据源和实体名称获取对应的工作流配置
      参数:
      datasource - 数据源标识,用于定位工作流文件所在的数据源目录
      entityName - 实体名称,用于定位具体的工作流配置文件
      返回:
      返回包含工作流配置的WorkflowVO对象
      抛出:
      BusiException - 当业务处理出现异常时抛出
      SQLException - 当数据库操作出现异常时抛出
    • getActorByNext

      public List<Map<String,Object>> getActorByNext(Object instanceId) throws BusiException, SQLException
      获取下一个任务处理人ID
      参数:
      instanceId - 流程实例ID,用于标识当前流程实例
      返回:
      下一个任务处理人的ID,当前实现返回0作为占位
      抛出:
      BusiException - 业务异常
      SQLException - 数据库访问异常
    • getActorByCC

      public List<Map<String,Object>> getActorByCC(Object instanceId)
      根据实例ID查询特定类型任务的抄送人信息

      查询条件:任务类型为2的历史任务记录及其关联的处理人信息 排序规则:按任务ID降序排列

      参数:
      instanceId - 流程实例ID,用于筛选对应实例的任务记录
      返回:
      包含任务类型、任务名称、处理人ID和处理人名称的映射列表 每个列表元素是一个Map,键包括:task_type(任务类型)、task_name(任务名称)、 actor_id(处理人ID)、actor_name(处理人名称)
    • getActorByFirst

      public Map<String,Object> getActorByFirst(Object instanceId)
      根据实例ID获取第一个任务发起人信息

      查询条件为:任务类型为0的已完成任务,按任务ID降序排列,返回第一条记录的任务类型、任务名称、执行者ID和执行者名称

      参数:
      instanceId - 流程实例ID
      返回:
      包含任务信息的Map,键包括:task_type(任务类型)、task_name(任务名称)、actor_id(执行者ID)、actor_name(执行者名称)
    • listWorkflow

      public List<WorkflowVO> listWorkflow(ModuleVO moduleVO) throws BusiException, SQLException
      根据模块信息获取关联的工作流列表
      参数:
      moduleVO - 模块信息对象,包含需要查询的实体引用信息 若为null则返回空列表
      返回:
      包含所有有效工作流的对象列表
      抛出:
      BusiException - 业务异常
      SQLException - 数据库操作异常
    • isProcessEnded

      public boolean isProcessEnded(long instanceId)
      判断流程是否结束 通过检查当前实例是否存在于活动实例表中以及是否存在于历史实例表中来确定流程状态 如果在当前实例表中找不到,但在历史实例表中能找到,则认为流程已结束
      参数:
      instanceId - 流程实例ID
      返回:
      流程已结束返回true,否则返回false
    • isLastTask

      public boolean isLastTask(long instanceId, String taskKey)
      判断指定任务是否为流程的最后一个任务 通过检查当前实例的活动任务数量来确定,如果当前只有一个活动任务, 并且该任务与传入的任务ID匹配,则认为是最后一个任务
      参数:
      instanceId - 流程实例ID
      taskKey - 当前任务的key
      返回:
      如果是最后一个任务返回true,否则返回false
    • isLastTaskById

      public boolean isLastTaskById(long instanceId, long taskId)
      判断指定任务是否为流程的最后一个任务(根据任务ID) 通过检查当前实例的活动任务数量来确定,如果当前只有一个活动任务, 并且该任务与传入的任务ID匹配,则认为是最后一个任务
      参数:
      instanceId - 流程实例ID
      taskId - 当前任务ID
      返回:
      如果是最后一个任务返回true,否则返回false
    • getProcessName

      public String getProcessName(long instanceId)
      根据实例 ID 查询对应的流程名称 该方法通过 SQL 查询从历史实例表和当前实例表中获取指定实例 ID 关联的流程名称
      参数:
      instanceId - 流程实例 ID,用于查询关联的流程名称
      返回:
      返回查询到的流程名称字符串,如果未找到则返回 null
    • getTaskIdByInstanceId

      public Long getTaskIdByInstanceId(long instanceId) throws BusiException
      根据实例 ID 获取当前的任务 ID

      从当前活动任务表中查询指定实例 ID 关联的任务 ID

      参数:
      instanceId - 流程实例 ID,用于查询关联的任务 ID
      返回:
      返回查询到的任务 ID,如果未找到有效任务则抛出 BusiException
      抛出:
      BusiException - 当未找到有效任务时抛出