具体的实现代码如下:
/**
* @Title: getDefFormIdByTaskId
* @Description: TODO(根据任务id获取该节点配置的表单id)
* @param taskId 任务id
* @return
* @return String (当前任务节点配置的表单id)
*/
public String getDefFormIdByTaskId(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");
DefaultTaskFormHandler fh = (DefaultTaskFormHandler)taskDef.getTaskFormHandler();
List<FormPropertyHandler> flList = fh == null?null: (List<FormPropertyHandler>)fh.getFormPropertyHandlers();
String formKey = "";
if (flList != null && flList.size() > 0) {
formKey = ((FormPropertyHandler)flList.get(0)).getId();
}
return formKey;
}