获取获得节点列表

@RequestMapping(value = "getActivitiList")
public R getActivitiList(String actDefId){
	ProcessDefinitionEntity def = (ProcessDefinitionEntity) ((RepositoryServiceImpl)repositoryService).getDeployedProcessDefinition(actDefId);
	List<ActivityImpl> activitiList = def.getActivities();
	for(ActivityImpl act : activitiList){
		System.out.println("活动节点:" + act.getProperty("name")+","+act.getId());
	}
	return R.ok();
}
Activiti 6 中,可以通过以下步骤获取可退回节点列表: 1. 获取当前任务的历史流程实例列表。 ```java List<HistoricProcessInstance> historicProcessInstances = historyService.createHistoricProcessInstanceQuery() .processInstanceId(processInstanceId) .list(); ``` 2. 遍历历史流程实例列表获取每个实例的历史任务列表。 ```java for (HistoricProcessInstance historicProcessInstance : historicProcessInstances) { List<HistoricTaskInstance> historicTaskInstances = historyService.createHistoricTaskInstanceQuery() .processInstanceId(historicProcessInstance.getId()) .orderByHistoricTaskInstanceEndTime() .desc() .list(); } ``` 3. 对于每个历史任务,获取其流程定义的所有流程节点,并找到可退回的节点。 ```java for (HistoricTaskInstance historicTaskInstance : historicTaskInstances) { // 获取任务对应的流程定义 ProcessDefinition processDefinition = repositoryService.getProcessDefinition(historicTaskInstance.getProcessDefinitionId()); // 获取流程定义的所有节点 List<FlowElement> flowElements = ((Process) ((BpmnModel) repositoryService.getBpmnModel(processDefinition.getId())).getMainProcess()).getFlowElements(); // 找到可退回的节点 for (FlowElement flowElement : flowElements) { if (flowElement instanceof UserTask) { UserTask userTask = (UserTask) flowElement; // 判断是否可退回 if (userTask.getOutgoingFlows().size() == 1 && userTask.getIncomingFlows().size() == 1) { // 可退回的节点 String taskId = userTask.getId(); String taskName = userTask.getName(); // ... } } } } ``` 注意,上述代码只是一个简单的示例,实际使用中还需要根据具体业务场景进行适当调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值