From 40b3c49495ddda45f2afe537c8b478bac7d4a9bc Mon Sep 17 00:00:00 2001 From: YunaiV Date: Thu, 6 Mar 2025 08:01:23 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E3=80=91=20=E5=90=8C=E4=B8=80=E4=B8=AA=E4=BA=BA=E5=A4=9A?= =?UTF-8?q?=E4=B8=AA=E5=BE=85=E5=8A=9E=E4=BB=BB=E5=8A=A1=EF=BC=8C=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=BE=85=E5=8A=9E=E4=BB=BB=E5=8A=A1=EF=BC=8C=E4=BC=98?= =?UTF-8?q?=E5=85=88=E6=9F=A5=E8=AF=A2=E4=BC=A0=E9=80=92=E7=9A=84=20taskId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bpm/service/task/BpmTaskService.java | 10 +++--- .../bpm/service/task/BpmTaskServiceImpl.java | 32 +++++++++++++------ 2 files changed, 28 insertions(+), 14 deletions(-) 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 d95e226d59..e99d974356 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 @@ -35,16 +35,16 @@ public interface BpmTaskService { PageResult getTaskTodoPage(Long userId, BpmTaskPageReqVO pageReqVO); /** - * 获得用户(待办)的任务。 - * 1、根据 id 查询待办任务 - * 2、如果任务不存在,获取指定流程下,首个需要处理任务 + * 获得用户(待办)的任务: + * 1. 根据 taskId 查询待办任务 + * 2. 如果任务不存在(或者已审核),获取指定流程下,首个需要处理任务 * * @param userId 用户编号 - * @param id 任务编号 + * @param taskId 任务编号 * @param processInstanceId 流程实例编号 * @return 待办任务 */ - BpmTaskRespVO getTodoTask(Long userId, String id, String processInstanceId); + BpmTaskRespVO getTodoTask(Long userId, String taskId, 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 11f219850b..e26b58e793 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 @@ -137,18 +137,18 @@ public class BpmTaskServiceImpl implements BpmTaskService { } @Override - public BpmTaskRespVO getTodoTask(Long userId, String id, String processInstanceId) { + public BpmTaskRespVO getTodoTask(Long userId, String taskId, String processInstanceId) { // 1.1 获取指定的用户待办任务 - Task todoTask = getMyTodoTask(userId, id); + Task todoTask = getMyTodoTask(userId, taskId); + // 1.2 获取不到,则获取该流程实例下,第一个用户的待办任务 if (todoTask == null) { - // 1.2 获取不到,则获取该流程实例下,第一个用户的待办任务 - todoTask = getFirstMyTodoTask(userId, processInstanceId); + todoTask = getMyFirstTodoTask(userId, processInstanceId); } if (todoTask == null) { return null; } - // 2.查询该任务的子任务 + // 2. 查询该任务的子任务 List childrenTasks = getAllChildrenTaskListByParentTaskId(todoTask.getId(), CollUtil.newArrayList(todoTask)); // 3. 转换返回 @@ -169,11 +169,18 @@ public class BpmTaskServiceImpl implements BpmTaskService { .setNodeType(nodeType).setSignEnable(signEnable).setReasonRequire(reasonRequire); } - private Task getMyTodoTask(Long userId, String id) { - if (StrUtil.isEmpty(id)) { + /** + * 获得用户指定 taskId 任务编号的“待办”(未审批、且可审核)的任务 + * + * @param userId 用户编号 + * @param taskId 任务编号 + * @return 任务 + */ + private Task getMyTodoTask(Long userId, String taskId) { + if (StrUtil.isEmpty(taskId)) { return null; } - Task task = getTask(id); + Task task = getTask(taskId); if (task == null) { return null; } @@ -183,7 +190,14 @@ public class BpmTaskServiceImpl implements BpmTaskService { return task; } - private Task getFirstMyTodoTask(Long userId, String processInstanceId) { + /** + * 获得用户指定 processInstanceId 流程编号下的首个“待办”(未审批、且可审核)的任务 + * + * @param userId 用户编号 + * @param processInstanceId 流程编号 + * @return 任务 + */ + private Task getMyFirstTodoTask(Long userId, String processInstanceId) { if (processInstanceId == null) { return null; }