From b67645140957a0b78ab91d04621a68ad5b1ece12 Mon Sep 17 00:00:00 2001 From: Echo <4759156@qq.com> Date: Fri, 22 Mar 2024 19:24:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E6=B5=81=E7=A8=8B=E5=AE=9E?= =?UTF-8?q?=E4=BE=8BID=EF=BC=8C=E8=8E=B7=E5=8F=96=E5=BD=93=E5=89=8D?= =?UTF-8?q?=E5=A4=84=E7=90=86=E7=9A=84taskId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/task/BpmTaskController.java | 7 +++++++ .../module/bpm/service/task/BpmTaskService.java | 7 +++++++ .../bpm/service/task/BpmTaskServiceImpl.java | 17 +++++++++++++++++ 3 files changed, 31 insertions(+) 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); + } + } }