@PostMapping("leave") public R startLeave(String name,Integer days){ //学生发起请假 Map<String, Object> map=new HashMap<>(); map.put("studentUser",name); map.put("day",days); //通过流程ID启动一个流程实例 ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("StudentLeave", map); //根据流程processInstance实例id创建学生的任务,singleResult单个任务 Task studentTask = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult(); //让学生完成任务 taskService.complete(studentTask.getId()); return R.ok("发起请假成功"); }这是学生发起的请假流程,我如何查看被驳回的流程信息
时间: 2024-04-16 12:28:18 浏览: 84
leave_apply.rar_java 请假_sql选课系统_学生请假系统_请假
要查看被驳回的流程信息,你可以通过以下步骤进行操作:
1. 获取所有已完成的流程实例:可以使用 `HistoryService` 的 `createHistoricProcessInstanceQuery` 方法来获取所有已完成的流程实例。
```java
List<HistoricProcessInstance> completedInstances = historyService.createHistoricProcessInstanceQuery()
.finished()
.list();
```
2. 遍历已完成的流程实例,查找被驳回的流程实例:对于每个已完成的流程实例,你可以使用 `HistoricProcessInstance` 对象的 `getProcessDefinitionId` 方法来获取流程定义ID,并使用该ID查询对应的 `ProcessDefinition` 对象。
```java
for (HistoricProcessInstance instance : completedInstances) {
String processDefinitionId = instance.getProcessDefinitionId();
ProcessDefinition processDefinition = repositoryService
.createProcessDefinitionQuery()
.processDefinitionId(processDefinitionId)
.singleResult();
// 判断流程是否被驳回
if (processDefinition.isSuspended()) {
// 这是一个被驳回的流程实例
// 可以根据需要保存或显示相关信息
}
}
```
请注意,上述代码中使用了 `HistoryService`、`ProcessDefinitionQuery` 和 `HistoricProcessInstanceQuery` 这些服务和查询方法。确保在你的代码中正确注入和使用这些服务和查询对象。
阅读全文