具体的实现代码如下:
/**
* @Title: getDefUsersByTaskId
* @Description: TODO(根据任务id获取该节点的配置用户或者角色id)
* @param taskId 任务id
* @return
* @return List<String> (当前任务节点配置的用户id列表)
*/
public List<String> getDefUsersByTaskId(String taskId){
Task task=processEngine.getTaskService().createTaskQuery() // 创建任务查询
.taskId(taskId) // 根据任务id查询
.singleResult();
String processDefinitionId=task.getProcessDefinitionId(); // 获取流程定义id
ProcessDefinitionEntity processDefinitionEntity=(ProcessDefinitionEntity) processEngine.getRepositoryService()
.getProcessDefinition(processDefinitionId);
ActivityImpl activityImpl=processDefinitionEntity.findActivity(task.getTaskDefinitionKey()); // 根据活动id获取活动实例
TaskDefinition taskDef = (TaskDefinition)activityImpl.getProperties().get("taskDefinition");
Set<Expression> userCodes = taskDef.getCandidateUserIdExpressions();//候选人
Set<Expression> roleCodes = taskDef.getCandidateGroupIdExpressions();//候选组
}