类 WorkflowService
java.lang.Object
net.sohelp.boot.engine.web.service.WorkflowService
工作流服务
- 从以下版本开始:
- 2025/11/7 17:12
- 作者:
- AaronFung
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明getActorByCC(Object instanceId) 根据实例ID查询特定类型任务的抄送人信息getActorByFirst(Object instanceId) 根据实例ID获取第一个任务发起人信息getActorByNext(Object instanceId) 获取下一个任务处理人IDgetProcessName(long instanceId) 根据实例 ID 查询对应的流程名称 该方法通过 SQL 查询从历史实例表和当前实例表中获取指定实例 ID 关联的流程名称getTaskIdByInstanceId(long instanceId) 根据实例 ID 获取当前的任务 IDgetWorkflow(String datasource, String entityName) 根据数据源和实体名称获取对应的工作流配置booleanisLastTask(long instanceId, String taskKey) 判断指定任务是否为流程的最后一个任务 通过检查当前实例的活动任务数量来确定,如果当前只有一个活动任务, 并且该任务与传入的任务ID匹配,则认为是最后一个任务booleanisLastTaskById(long instanceId, long taskId) 判断指定任务是否为流程的最后一个任务(根据任务ID) 通过检查当前实例的活动任务数量来确定,如果当前只有一个活动任务, 并且该任务与传入的任务ID匹配,则认为是最后一个任务booleanisProcessEnded(long instanceId) 判断流程是否结束 通过检查当前实例是否存在于活动实例表中以及是否存在于历史实例表中来确定流程状态 如果在当前实例表中找不到,但在历史实例表中能找到,则认为流程已结束listWorkflow(ModuleVO moduleVO) 根据模块信息获取关联的工作流列表voidsaveWorkflow(String datasource, String entityName, com.alibaba.fastjson.JSONObject jsonObject) 保存实体的工作流信息
-
构造器详细资料
-
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
根据实例ID查询特定类型任务的抄送人信息查询条件:任务类型为2的历史任务记录及其关联的处理人信息 排序规则:按任务ID降序排列
- 参数:
instanceId- 流程实例ID,用于筛选对应实例的任务记录- 返回:
- 包含任务类型、任务名称、处理人ID和处理人名称的映射列表 每个列表元素是一个Map,键包括:task_type(任务类型)、task_name(任务名称)、 actor_id(处理人ID)、actor_name(处理人名称)
-
getActorByFirst
根据实例ID获取第一个任务发起人信息查询条件为:任务类型为0的已完成任务,按任务ID降序排列,返回第一条记录的任务类型、任务名称、执行者ID和执行者名称
- 参数:
instanceId- 流程实例ID- 返回:
- 包含任务信息的Map,键包括:task_type(任务类型)、task_name(任务名称)、actor_id(执行者ID)、actor_name(执行者名称)
-
listWorkflow
根据模块信息获取关联的工作流列表- 参数:
moduleVO- 模块信息对象,包含需要查询的实体引用信息 若为null则返回空列表- 返回:
- 包含所有有效工作流的对象列表
- 抛出:
BusiException- 业务异常SQLException- 数据库操作异常
-
isProcessEnded
public boolean isProcessEnded(long instanceId) 判断流程是否结束 通过检查当前实例是否存在于活动实例表中以及是否存在于历史实例表中来确定流程状态 如果在当前实例表中找不到,但在历史实例表中能找到,则认为流程已结束- 参数:
instanceId- 流程实例ID- 返回:
- 流程已结束返回true,否则返回false
-
isLastTask
判断指定任务是否为流程的最后一个任务 通过检查当前实例的活动任务数量来确定,如果当前只有一个活动任务, 并且该任务与传入的任务ID匹配,则认为是最后一个任务- 参数:
instanceId- 流程实例IDtaskKey- 当前任务的key- 返回:
- 如果是最后一个任务返回true,否则返回false
-
isLastTaskById
public boolean isLastTaskById(long instanceId, long taskId) 判断指定任务是否为流程的最后一个任务(根据任务ID) 通过检查当前实例的活动任务数量来确定,如果当前只有一个活动任务, 并且该任务与传入的任务ID匹配,则认为是最后一个任务- 参数:
instanceId- 流程实例IDtaskId- 当前任务ID- 返回:
- 如果是最后一个任务返回true,否则返回false
-
getProcessName
根据实例 ID 查询对应的流程名称 该方法通过 SQL 查询从历史实例表和当前实例表中获取指定实例 ID 关联的流程名称- 参数:
instanceId- 流程实例 ID,用于查询关联的流程名称- 返回:
- 返回查询到的流程名称字符串,如果未找到则返回 null
-
getTaskIdByInstanceId
根据实例 ID 获取当前的任务 ID从当前活动任务表中查询指定实例 ID 关联的任务 ID
- 参数:
instanceId- 流程实例 ID,用于查询关联的任务 ID- 返回:
- 返回查询到的任务 ID,如果未找到有效任务则抛出 BusiException
- 抛出:
BusiException- 当未找到有效任务时抛出
-