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