activiti版本:6.0.0
接口路径:org.activiti.engine.TaskService
方法描述:
/**
* 将任务委托给另一个人,修改act_ru_task表记录
* 如果没有任务所有者(owner_),则将该字段置为任务的当前受理人
* 委托状态(delegation_)变更为PENDING
* 当前审批人(assignee_)变更为被委托人
*
* @param taskId 需要转交的任务节点ID
* @param userId 被委托人
* @throws ActivitiObjectNotFoundException 无法找到任务节点ID
*/
void delegateTask(String taskId, String userId);
/**
* 被加签人处理完毕,节点处理人回转到委托人
* 只有在委托状态(delegation_)为PENDING才能执行
* 委托状态(delegation_)变更为RESOLVED
* 当前审批人(assignee_)变更为 委托人
*
* @param taskId 任务节点ID
* @throws ActivitiObjectNotFoundException 无法找到任务节点ID
*/
void resolveTask(String taskId);
执行效果:该节点的审批人变更为被委托人,在被委托人审批之后,无论同意还是拒绝,都会返回给委托人再次处理
业务场景:委托人无法判断如何审批,向被委托人征询意见,但是最终决定权保留在委托人手上
数据库变更:
委托执行前:owner_与 delegation_均为null
委托执行后(执行delegateTask方法):owner_ 置为委托人 delegation_ 置为 PENDING
被委托人审批后(执行resolve方法):assignee_置回委托人 delegation_ 置为 RESOLVED