activiti7获取上一任务节点task
时间: 2023-12-06 15:04:58 浏览: 309
在 Activiti 7 中,获取上一个任务节点的任务可以通过历史任务查询实现。可以通过以下步骤来获取上一个任务节点的任务:
1. 首先,获取当前任务的 ID。可以使用以下代码获取当前任务的 ID:
```java
String currentTaskId = runtimeService.createProcessInstanceQuery()
.processInstanceId(processInstanceId)
.singleResult()
.getId();
```
其中,`processInstanceId` 是当前流程实例的 ID。
2. 然后,使用当前任务 ID 查询历史任务。可以使用以下代码查询历史任务:
```java
List<HistoricTaskInstance> historicTasks = historyService.createHistoricTaskInstanceQuery()
.processInstanceId(processInstanceId)
.orderByHistoricTaskInstanceEndTime()
.desc()
.list();
```
其中,`processInstanceId` 是当前流程实例的 ID。使用 `orderByHistoricTaskInstanceEndTime().desc()` 可以按照任务结束时间倒序排列历史任务。
3. 最后,找到上一个任务节点的任务。可以遍历历史任务列表,找到上一个任务节点的任务。可以使用以下代码实现:
```java
String previousTaskId = null;
for (HistoricTaskInstance historicTask : historicTasks) {
if (!historicTask.getId().equals(currentTaskId)) {
previousTaskId = historicTask.getId();
break;
}
}
```
在循环中,判断当前任务的 ID 是否与当前任务 ID 相等,如果不相等,则认为是上一个任务节点的任务。
通过上述步骤,你可以获取上一个任务节点的任务 ID(`previousTaskId`),然后可以根据需要进行进一步的操作。
阅读全文