/**二:已知任务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;
}