Commit 40b3c49495ddda45f2afe537c8b478bac7d4a9bc

Authored by YunaiV
1 parent 9ff56403

【问题修复】 同一个人多个待办任务,获取待办任务,优先查询传递的 taskId

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 {
35 35 PageResult<Task> getTaskTodoPage(Long userId, BpmTaskPageReqVO pageReqVO);
36 36  
37 37 /**
38   - * 获得用户(待办)的任务。
39   - * 1、根据 id 查询待办任务
40   - * 2、如果任务不存在,获取指定流程下,首个需要处理任务
  38 + * 获得用户(待办)的任务:
  39 + * 1. 根据 taskId 查询待办任务
  40 + * 2. 如果任务不存在(或者已审核),获取指定流程下,首个需要处理任务
41 41 *
42 42 * @param userId 用户编号
43   - * @param id 任务编号
  43 + * @param taskId 任务编号
44 44 * @param processInstanceId 流程实例编号
45 45 * @return 待办任务
46 46 */
47   - BpmTaskRespVO getTodoTask(Long userId, String id, String processInstanceId);
  47 + BpmTaskRespVO getTodoTask(Long userId, String taskId, String processInstanceId);
48 48  
49 49 /**
50 50 * 获得已办的流程任务分页
... ...
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 {
137 137 }
138 138  
139 139 @Override
140   - public BpmTaskRespVO getTodoTask(Long userId, String id, String processInstanceId) {
  140 + public BpmTaskRespVO getTodoTask(Long userId, String taskId, String processInstanceId) {
141 141 // 1.1 获取指定的用户待办任务
142   - Task todoTask = getMyTodoTask(userId, id);
  142 + Task todoTask = getMyTodoTask(userId, taskId);
  143 + // 1.2 获取不到,则获取该流程实例下,第一个用户的待办任务
143 144 if (todoTask == null) {
144   - // 1.2 获取不到,则获取该流程实例下,第一个用户的待办任务
145   - todoTask = getFirstMyTodoTask(userId, processInstanceId);
  145 + todoTask = getMyFirstTodoTask(userId, processInstanceId);
146 146 }
147 147 if (todoTask == null) {
148 148 return null;
149 149 }
150 150  
151   - // 2.查询该任务的子任务
  151 + // 2. 查询该任务的子任务
152 152 List<Task> childrenTasks = getAllChildrenTaskListByParentTaskId(todoTask.getId(), CollUtil.newArrayList(todoTask));
153 153  
154 154 // 3. 转换返回
... ... @@ -169,11 +169,18 @@ public class BpmTaskServiceImpl implements BpmTaskService {
169 169 .setNodeType(nodeType).setSignEnable(signEnable).setReasonRequire(reasonRequire);
170 170 }
171 171  
172   - private Task getMyTodoTask(Long userId, String id) {
173   - if (StrUtil.isEmpty(id)) {
  172 + /**
  173 + * 获得用户指定 taskId 任务编号的“待办”(未审批、且可审核)的任务
  174 + *
  175 + * @param userId 用户编号
  176 + * @param taskId 任务编号
  177 + * @return 任务
  178 + */
  179 + private Task getMyTodoTask(Long userId, String taskId) {
  180 + if (StrUtil.isEmpty(taskId)) {
174 181 return null;
175 182 }
176   - Task task = getTask(id);
  183 + Task task = getTask(taskId);
177 184 if (task == null) {
178 185 return null;
179 186 }
... ... @@ -183,7 +190,14 @@ public class BpmTaskServiceImpl implements BpmTaskService {
183 190 return task;
184 191 }
185 192  
186   - private Task getFirstMyTodoTask(Long userId, String processInstanceId) {
  193 + /**
  194 + * 获得用户指定 processInstanceId 流程编号下的首个“待办”(未审批、且可审核)的任务
  195 + *
  196 + * @param userId 用户编号
  197 + * @param processInstanceId 流程编号
  198 + * @return 任务
  199 + */
  200 + private Task getMyFirstTodoTask(Long userId, String processInstanceId) {
187 201 if (processInstanceId == null) {
188 202 return null;
189 203 }
... ...