diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java index 1a68e0e5..060fb562 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java @@ -148,4 +148,11 @@ public class BpmTaskController { return success(taskService.getChildrenTaskList(parentId)); } + @GetMapping("getCurrentTaskIdByProcessInstanceId") + @Operation(summary = "根据流程实例ID,获取当前处理的taskId") + @Parameter(name = "processInstanceId", description = "流程实例 ID", required = true) + public CommonResult getCurrentTaskIdByProcessInstanceId(@RequestParam("processInstanceId") String processInstanceId) { + return success(taskService.getCurrentTaskIdByProcessInstanceId(processInstanceId)); + } + } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java index 25d17ece..107e2c59 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java @@ -192,4 +192,11 @@ public interface BpmTaskService { */ List getChildrenTaskList(String parentId); + /** + * 根据流程实例ID,获取当前处理的taskId + * @param processInstanceId 流程实例ID + * @return 当前任务的taskId + */ + String getCurrentTaskIdByProcessInstanceId(String processInstanceId) ; + } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java index cc586374..6d8673a8 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java @@ -36,6 +36,7 @@ import org.flowable.engine.HistoryService; import org.flowable.engine.ManagementService; import org.flowable.engine.RuntimeService; import org.flowable.engine.TaskService; +import org.flowable.engine.history.HistoricActivityInstance; import org.flowable.engine.history.HistoricProcessInstance; import org.flowable.engine.runtime.ProcessInstance; import org.flowable.task.api.DelegationState; @@ -1166,4 +1167,20 @@ public class BpmTaskServiceImpl implements BpmTaskService { return BpmTaskConvert.INSTANCE.convertList(taskExtList, userMap, idTaskMap); } + + public String getCurrentTaskIdByProcessInstanceId(String processInstanceId) { + TaskQuery taskQuery = taskService.createTaskQuery().processInstanceId(processInstanceId).active(); + List tasks = taskQuery.list(); + if (!tasks.isEmpty()) { + Task currentTask = tasks.get(0); + System.out.println("当前任务节点ID: " + currentTask.getId()); + System.out.println("当前任务节点名称: " + currentTask.getName()); + System.out.println("当前任务节点创建时间: " + currentTask.getCreateTime()); + System.out.println("当前任务节点分配给: " + currentTask.getAssignee()); + return currentTask.getId() ; + } else { + System.out.println("没有找到当前进行中的任务节点"); + throw exception(TASK_NOT_EXISTS); + } + } }