Activity工作流筆記之——根據任務ID獲取當前活動物件的連線名稱集合
阿新 • • 發佈:2018-12-31
/**二:已知任務ID,查詢ProcessDefinitionEntity物件,從而獲取當前任務完成之後的連線名稱,並放置到List<String>集合中*/ @Override public List<String> findOutComeListByTaskId(String taskId) { //返回存放連線的名稱集合 List<String> list = new ArrayList<String>(); //1:使用任務ID,查詢任務物件 Task task = taskService.createTaskQuery() .taskId(taskId) .singleResult(); //2:獲取流程定義ID String processDefinitionId = task.getProcessDefinitionId(); //3:查詢ProcessDefinitionEntity物件 ProcessDefinitionEntity processDefinitionEntity = (ProcessDefinitionEntity) repositoryService.getProcessDefinition(processDefinitionId); //獲取流程例項ID String processInstanceId = task.getProcessInstanceId(); //獲取流程例項 ProcessInstance pi = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); //獲取當前活動ID String activityId = pi.getActivityId(); //4:獲取當前的活動 ActivityImpl activityImpl = processDefinitionEntity.findActivity(activityId); //5:獲取當前活動完成之後連線的名稱 List<PvmTransition> pvmList = activityImpl.getOutgoingTransitions(); if(pvmList != null && pvmList.size()>0) { for(PvmTransition pvm:pvmList) { String name = (String) pvm.getProperty("name"); if(StringUtils.isNotBlank(name)) { list.add(name); }else { list.add("預設提交"); } } } return list; }