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,16 +35,16 @@ public interface BpmTaskService {
35 PageResult<Task> getTaskTodoPage(Long userId, BpmTaskPageReqVO pageReqVO); 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 * @param userId 用户编号 42 * @param userId 用户编号
43 - * @param id 任务编号 43 + * @param taskId 任务编号
44 * @param processInstanceId 流程实例编号 44 * @param processInstanceId 流程实例编号
45 * @return 待办任务 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,18 +137,18 @@ public class BpmTaskServiceImpl implements BpmTaskService {
137 } 137 }
138 138
139 @Override 139 @Override
140 - public BpmTaskRespVO getTodoTask(Long userId, String id, String processInstanceId) { 140 + public BpmTaskRespVO getTodoTask(Long userId, String taskId, String processInstanceId) {
141 // 1.1 获取指定的用户待办任务 141 // 1.1 获取指定的用户待办任务
142 - Task todoTask = getMyTodoTask(userId, id); 142 + Task todoTask = getMyTodoTask(userId, taskId);
  143 + // 1.2 获取不到,则获取该流程实例下,第一个用户的待办任务
143 if (todoTask == null) { 144 if (todoTask == null) {
144 - // 1.2 获取不到,则获取该流程实例下,第一个用户的待办任务  
145 - todoTask = getFirstMyTodoTask(userId, processInstanceId); 145 + todoTask = getMyFirstTodoTask(userId, processInstanceId);
146 } 146 }
147 if (todoTask == null) { 147 if (todoTask == null) {
148 return null; 148 return null;
149 } 149 }
150 150
151 - // 2.查询该任务的子任务 151 + // 2. 查询该任务的子任务
152 List<Task> childrenTasks = getAllChildrenTaskListByParentTaskId(todoTask.getId(), CollUtil.newArrayList(todoTask)); 152 List<Task> childrenTasks = getAllChildrenTaskListByParentTaskId(todoTask.getId(), CollUtil.newArrayList(todoTask));
153 153
154 // 3. 转换返回 154 // 3. 转换返回
@@ -169,11 +169,18 @@ public class BpmTaskServiceImpl implements BpmTaskService { @@ -169,11 +169,18 @@ public class BpmTaskServiceImpl implements BpmTaskService {
169 .setNodeType(nodeType).setSignEnable(signEnable).setReasonRequire(reasonRequire); 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 return null; 181 return null;
175 } 182 }
176 - Task task = getTask(id); 183 + Task task = getTask(taskId);
177 if (task == null) { 184 if (task == null) {
178 return null; 185 return null;
179 } 186 }
@@ -183,7 +190,14 @@ public class BpmTaskServiceImpl implements BpmTaskService { @@ -183,7 +190,14 @@ public class BpmTaskServiceImpl implements BpmTaskService {
183 return task; 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 if (processInstanceId == null) { 201 if (processInstanceId == null) {
188 return null; 202 return null;
189 } 203 }