Commit f088fdff84ca3eff266e034d63b13d1f7df5e6ec

Authored by YunaiV
1 parent 8649b285

code review:委托逻辑

yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/ErrorCodeConstants.java
@@ -43,15 +43,13 @@ public interface ErrorCodeConstants { @@ -43,15 +43,13 @@ public interface ErrorCodeConstants {
43 ErrorCode PROCESS_INSTANCE_CANCEL_FAIL_NOT_SELF = new ErrorCode(1_009_004_002, "流程取消失败,该流程不是你发起的"); 43 ErrorCode PROCESS_INSTANCE_CANCEL_FAIL_NOT_SELF = new ErrorCode(1_009_004_002, "流程取消失败,该流程不是你发起的");
44 44
45 // ========== 流程任务 1-009-005-000 ========== 45 // ========== 流程任务 1-009-005-000 ==========
46 - ErrorCode TASK_COMPLETE_FAIL_NOT_EXISTS = new ErrorCode(1_009_005_000, "审批任务失败,原因:该任务不处于未审批");  
47 - ErrorCode TASK_COMPLETE_FAIL_ASSIGN_NOT_SELF = new ErrorCode(1_009_005_001, "审批任务失败,原因:该任务的审批人不是你"); 46 + ErrorCode TASK_OPERATE_FAIL_ASSIGN_NOT_SELF = new ErrorCode(1_009_005_001, "操作失败,原因:该任务的审批人不是你");
48 ErrorCode TASK_NOT_EXISTS = new ErrorCode(1_009_005_002, "流程任务不存在"); 47 ErrorCode TASK_NOT_EXISTS = new ErrorCode(1_009_005_002, "流程任务不存在");
49 ErrorCode TASK_IS_PENDING = new ErrorCode(1_009_005_003, "当前任务处于挂起状态,不能操作"); 48 ErrorCode TASK_IS_PENDING = new ErrorCode(1_009_005_003, "当前任务处于挂起状态,不能操作");
50 ErrorCode TASK_TARGET_NODE_NOT_EXISTS = new ErrorCode(1_009_005_004, " 目标节点不存在"); 49 ErrorCode TASK_TARGET_NODE_NOT_EXISTS = new ErrorCode(1_009_005_004, " 目标节点不存在");
51 - ErrorCode TASK_RETURN_FAIL_NO_RETURN_TASK = new ErrorCode(1_009_005_005, "回退任务失败,选择回退的节点没有需要回滚的任务!请重新选择其他任务节点");  
52 ErrorCode TASK_RETURN_FAIL_SOURCE_TARGET_ERROR = new ErrorCode(1_009_005_006, "回退任务失败,目标节点是在并行网关上或非同一路线上,不可跳转"); 50 ErrorCode TASK_RETURN_FAIL_SOURCE_TARGET_ERROR = new ErrorCode(1_009_005_006, "回退任务失败,目标节点是在并行网关上或非同一路线上,不可跳转");
53 - ErrorCode TASK_DELEGATE_USER_REPEAT = new ErrorCode(1_009_005_007, "任务委派失败,委派人和当前审批人为同一人");  
54 - ErrorCode TASK_DELEGATE_USER_NULL = new ErrorCode(1_009_005_008, "任务委派失败,被委派人不存在"); 51 + ErrorCode TASK_DELEGATE_FAIL_USER_REPEAT = new ErrorCode(1_009_005_007, "任务委派失败,委派人和当前审批人为同一人");
  52 + ErrorCode TASK_DELEGATE_FAIL_USER_NOT_EXISTS = new ErrorCode(1_009_005_008, "任务委派失败,被委派人不存在");
55 53
56 // ========== 流程任务分配规则 1-009-006-000 ========== 54 // ========== 流程任务分配规则 1-009-006-000 ==========
57 ErrorCode TASK_ASSIGN_RULE_EXISTS = new ErrorCode(1_009_006_000, "流程({}) 的任务({}) 已经存在分配规则"); 55 ErrorCode TASK_ASSIGN_RULE_EXISTS = new ErrorCode(1_009_006_000, "流程({}) 的任务({}) 已经存在分配规则");
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmProcessInstanceResultEnum.java
@@ -20,8 +20,7 @@ public enum BpmProcessInstanceResultEnum { @@ -20,8 +20,7 @@ public enum BpmProcessInstanceResultEnum {
20 20
21 // ========== 流程任务独有的状态 ========== 21 // ========== 流程任务独有的状态 ==========
22 22
23 - BACK(5, "退回/驳回"),  
24 - 23 + BACK(5, "驳回"), // 退回
25 DELEGATE(6, "委派"); 24 DELEGATE(6, "委派");
26 25
27 /** 26 /**
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/BpmTaskController.java
@@ -87,14 +87,15 @@ public class BpmTaskController { @@ -87,14 +87,15 @@ public class BpmTaskController {
87 @Operation(summary = "回退任务", description = "用于【流程详情】的【回退】按钮") 87 @Operation(summary = "回退任务", description = "用于【流程详情】的【回退】按钮")
88 @PreAuthorize("@ss.hasPermission('bpm:task:update')") 88 @PreAuthorize("@ss.hasPermission('bpm:task:update')")
89 public CommonResult<Boolean> returnTask(@Valid @RequestBody BpmTaskReturnReqVO reqVO) { 89 public CommonResult<Boolean> returnTask(@Valid @RequestBody BpmTaskReturnReqVO reqVO) {
90 - taskService.returnTask(reqVO); 90 + taskService.returnTask(getLoginUserId(), reqVO);
91 return success(true); 91 return success(true);
92 } 92 }
93 93
94 @PutMapping("/delegate") 94 @PutMapping("/delegate")
95 - @Operation(summary = "委派任务", description = "用于【流程详情】的【委派】按钮,和向前加签有点像,和向前加签的唯一的区别是没有单独创立任务")  
96 - @PreAuthorize("@ss.hasPermission('bpm:task:delegate')") 95 + @Operation(summary = "委派任务", description = "用于【流程详情】的【委派】按钮。和向前【加签】有点像,唯一区别是【委托】没有单独创立任务")
  96 + @PreAuthorize("@ss.hasPermission('bpm:task:update')")
97 public CommonResult<Boolean> delegateTask(@Valid @RequestBody BpmTaskDelegateReqVO reqVO) { 97 public CommonResult<Boolean> delegateTask(@Valid @RequestBody BpmTaskDelegateReqVO reqVO) {
  98 + // TODO @海:, 后面要有空格
98 taskService.delegateTask(reqVO,getLoginUserId()); 99 taskService.delegateTask(reqVO,getLoginUserId());
99 return success(true); 100 return success(true);
100 } 101 }
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskDelegateReqVO.java
@@ -14,11 +14,12 @@ public class BpmTaskDelegateReqVO { @@ -14,11 +14,12 @@ public class BpmTaskDelegateReqVO {
14 @NotEmpty(message = "任务编号不能为空") 14 @NotEmpty(message = "任务编号不能为空")
15 private String id; 15 private String id;
16 16
17 - @Schema(description = "被委派人ID", requiredMode = Schema.RequiredMode.REQUIRED,example = "1")  
18 - @NotNull(message = "被委派人ID不能为空") 17 + @Schema(description = "被委派人 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
  18 + @NotNull(message = "被委派人 ID 不能为空")
19 private Long delegateUserId; 19 private Long delegateUserId;
20 20
21 - @Schema(description = "委派原因", requiredMode = Schema.RequiredMode.REQUIRED,example = "做不了决定,需要你先帮忙瞅瞅") 21 + @Schema(description = "委派原因", requiredMode = Schema.RequiredMode.REQUIRED, example = "做不了决定,需要你先帮忙瞅瞅")
22 @NotEmpty(message = "委派原因不能为空") 22 @NotEmpty(message = "委派原因不能为空")
23 private String reason; 23 private String reason;
  24 +
24 } 25 }
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskService.java
@@ -133,15 +133,18 @@ public interface BpmTaskService { @@ -133,15 +133,18 @@ public interface BpmTaskService {
133 /** 133 /**
134 * 将任务回退到指定的 targetDefinitionKey 位置 134 * 将任务回退到指定的 targetDefinitionKey 位置
135 * 135 *
  136 + * @param userId 用户编号
136 * @param reqVO 回退的任务key和当前所在的任务ID 137 * @param reqVO 回退的任务key和当前所在的任务ID
137 */ 138 */
138 - void returnTask(BpmTaskReturnReqVO reqVO); 139 + void returnTask(Long userId, BpmTaskReturnReqVO reqVO);
139 140
  141 + // TODO @海:userId 放前面
140 /** 142 /**
141 * 将指定任务委派给其他人处理,等接收人处理后再回到原审批人手中审批 143 * 将指定任务委派给其他人处理,等接收人处理后再回到原审批人手中审批
142 * 144 *
143 * @param reqVO 被委派人和被委派的任务编号理由参数 145 * @param reqVO 被委派人和被委派的任务编号理由参数
144 - * @param userId 委派人ID 146 + * @param userId 用户编号
145 */ 147 */
146 void delegateTask(BpmTaskDelegateReqVO reqVO, Long userId); 148 void delegateTask(BpmTaskDelegateReqVO reqVO, Long userId);
  149 +
147 } 150 }
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java
@@ -189,25 +189,27 @@ public class BpmTaskServiceImpl implements BpmTaskService { @@ -189,25 +189,27 @@ public class BpmTaskServiceImpl implements BpmTaskService {
189 @Override 189 @Override
190 @Transactional(rollbackFor = Exception.class) 190 @Transactional(rollbackFor = Exception.class)
191 public void approveTask(Long userId, @Valid BpmTaskApproveReqVO reqVO) { 191 public void approveTask(Long userId, @Valid BpmTaskApproveReqVO reqVO) {
192 - // 校验任务存在  
193 - Task task = checkTask(userId, reqVO.getId());  
194 - // 校验流程实例存在 192 + // 1.1 校验任务存在
  193 + Task task = validateTask(userId, reqVO.getId());
  194 + // 1.2 校验流程实例存在
195 ProcessInstance instance = processInstanceService.getProcessInstance(task.getProcessInstanceId()); 195 ProcessInstance instance = processInstanceService.getProcessInstance(task.getProcessInstanceId());
196 if (instance == null) { 196 if (instance == null) {
197 throw exception(PROCESS_INSTANCE_NOT_EXISTS); 197 throw exception(PROCESS_INSTANCE_NOT_EXISTS);
198 } 198 }
199 - //被委派的任务,不调用 complete 去完成任务 199 +
  200 + // 情况一:被委派的任务,不调用 complete 去完成任务
200 if (DelegationState.PENDING.equals(task.getDelegationState())) { 201 if (DelegationState.PENDING.equals(task.getDelegationState())) {
201 - this.approveDelegateTask(reqVO, task);  
202 - } else {  
203 - // 完成任务,审批通过  
204 - taskService.complete(task.getId(), instance.getProcessVariables());  
205 -  
206 - // 更新任务拓展表为通过  
207 - taskExtMapper.updateByTaskId(  
208 - new BpmTaskExtDO().setTaskId(task.getId()).setResult(BpmProcessInstanceResultEnum.APPROVE.getResult())  
209 - .setReason(reqVO.getReason())); 202 + approveDelegateTask(reqVO, task);
  203 + return;
210 } 204 }
  205 +
  206 + // 情况二:自己审批的任务,调用 complete 去完成任务
  207 + // 完成任务,审批通过
  208 + taskService.complete(task.getId(), instance.getProcessVariables());
  209 + // 更新任务拓展表为通过
  210 + taskExtMapper.updateByTaskId(
  211 + new BpmTaskExtDO().setTaskId(task.getId()).setResult(BpmProcessInstanceResultEnum.APPROVE.getResult())
  212 + .setReason(reqVO.getReason()));
211 } 213 }
212 214
213 /** 215 /**
@@ -217,19 +219,19 @@ public class BpmTaskServiceImpl implements BpmTaskService { @@ -217,19 +219,19 @@ public class BpmTaskServiceImpl implements BpmTaskService {
217 * @param task 当前被审批的任务 219 * @param task 当前被审批的任务
218 */ 220 */
219 private void approveDelegateTask(BpmTaskApproveReqVO reqVO, Task task) { 221 private void approveDelegateTask(BpmTaskApproveReqVO reqVO, Task task) {
220 - // 添加审批意见 222 + // 1. 添加审批意见
221 AdminUserRespDTO currentUser = adminUserApi.getUser(WebFrameworkUtils.getLoginUserId()); 223 AdminUserRespDTO currentUser = adminUserApi.getUser(WebFrameworkUtils.getLoginUserId());
222 - //原审批人  
223 AdminUserRespDTO sourceApproveUser = adminUserApi.getUser(NumberUtils.parseLong(task.getOwner())); 224 AdminUserRespDTO sourceApproveUser = adminUserApi.getUser(NumberUtils.parseLong(task.getOwner()));
224 Assert.notNull(sourceApproveUser, "委派任务找不到原审批人,需要检查数据"); 225 Assert.notNull(sourceApproveUser, "委派任务找不到原审批人,需要检查数据");
225 - //添加审批意见  
226 String comment = StrUtil.format("[{}]完成委派任务,任务重新回到[{}]手中,审批意见为:{}", currentUser.getNickname(), 226 String comment = StrUtil.format("[{}]完成委派任务,任务重新回到[{}]手中,审批意见为:{}", currentUser.getNickname(),
227 sourceApproveUser.getNickname(), reqVO.getReason()); 227 sourceApproveUser.getNickname(), reqVO.getReason());
228 - taskService.addComment(reqVO.getId(), task.getProcessInstanceId(), BpmProcessInstanceResultEnum.DELEGATE.getResult().toString(), comment);  
229 - //调用 resolveTask 完成任务,底层调用 TaskHelper.changeTaskAssignee(task, task.getOwner());  
230 - //将 owner 设置为 assignee 228 + taskService.addComment(reqVO.getId(), task.getProcessInstanceId(),
  229 + BpmProcessInstanceResultEnum.DELEGATE.getResult().toString(), comment);
  230 +
  231 + // 2.1 调用 resolveTask 完成任务。
  232 + // 底层调用 TaskHelper.changeTaskAssignee(task, task.getOwner()):将 owner 设置为 assignee
231 taskService.resolveTask(task.getId()); 233 taskService.resolveTask(task.getId());
232 - // 更新任务拓展表为【处理中】 234 + // 2.2 更新任务拓展表为【处理中】
233 taskExtMapper.updateByTaskId( 235 taskExtMapper.updateByTaskId(
234 new BpmTaskExtDO().setTaskId(task.getId()).setResult(BpmProcessInstanceResultEnum.PROCESS.getResult()) 236 new BpmTaskExtDO().setTaskId(task.getId()).setResult(BpmProcessInstanceResultEnum.PROCESS.getResult())
235 .setReason(reqVO.getReason())); 237 .setReason(reqVO.getReason()));
@@ -238,7 +240,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { @@ -238,7 +240,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
238 @Override 240 @Override
239 @Transactional(rollbackFor = Exception.class) 241 @Transactional(rollbackFor = Exception.class)
240 public void rejectTask(Long userId, @Valid BpmTaskRejectReqVO reqVO) { 242 public void rejectTask(Long userId, @Valid BpmTaskRejectReqVO reqVO) {
241 - Task task = checkTask(userId, reqVO.getId()); 243 + Task task = validateTask(userId, reqVO.getId());
242 // 校验流程实例存在 244 // 校验流程实例存在
243 ProcessInstance instance = processInstanceService.getProcessInstance(task.getProcessInstanceId()); 245 ProcessInstance instance = processInstanceService.getProcessInstance(task.getProcessInstanceId());
244 if (instance == null) { 246 if (instance == null) {
@@ -257,7 +259,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { @@ -257,7 +259,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
257 @Override 259 @Override
258 public void updateTaskAssignee(Long userId, BpmTaskUpdateAssigneeReqVO reqVO) { 260 public void updateTaskAssignee(Long userId, BpmTaskUpdateAssigneeReqVO reqVO) {
259 // 校验任务存在 261 // 校验任务存在
260 - Task task = checkTask(userId, reqVO.getId()); 262 + Task task = validateTask(userId, reqVO.getId());
261 // 更新负责人 263 // 更新负责人
262 updateTaskAssignee(task.getId(), reqVO.getAssigneeUserId()); 264 updateTaskAssignee(task.getId(), reqVO.getAssigneeUserId());
263 } 265 }
@@ -273,13 +275,13 @@ public class BpmTaskServiceImpl implements BpmTaskService { @@ -273,13 +275,13 @@ public class BpmTaskServiceImpl implements BpmTaskService {
273 * @param userId 用户 id 275 * @param userId 用户 id
274 * @param taskId task id 276 * @param taskId task id
275 */ 277 */
276 - private Task checkTask(Long userId, String taskId) { 278 + private Task validateTask(Long userId, String taskId) {
277 Task task = getTask(taskId); 279 Task task = getTask(taskId);
278 if (task == null) { 280 if (task == null) {
279 - throw exception(TASK_COMPLETE_FAIL_NOT_EXISTS); 281 + throw exception(TASK_NOT_EXISTS);
280 } 282 }
281 if (!Objects.equals(userId, NumberUtils.parseLong(task.getAssignee()))) { 283 if (!Objects.equals(userId, NumberUtils.parseLong(task.getAssignee()))) {
282 - throw exception(TASK_COMPLETE_FAIL_ASSIGN_NOT_SELF); 284 + throw exception(TASK_OPERATE_FAIL_ASSIGN_NOT_SELF);
283 } 285 }
284 return task; 286 return task;
285 } 287 }
@@ -358,24 +360,6 @@ public class BpmTaskServiceImpl implements BpmTaskService { @@ -358,24 +360,6 @@ public class BpmTaskServiceImpl implements BpmTaskService {
358 return task; 360 return task;
359 } 361 }
360 362
361 - /**  
362 - * 校验任务是否合法  
363 - *  
364 - * @param taskId 任务编号  
365 - * @return 任务  
366 - */  
367 - private Task validateTask(String taskId) {  
368 - // 当前任务 task  
369 - Task task = getTask(taskId);  
370 - if (task == null) {  
371 - throw exception(TASK_NOT_EXISTS);  
372 - }  
373 - if (task.isSuspended()) {  
374 - throw exception(TASK_IS_PENDING);  
375 - }  
376 - return task;  
377 - }  
378 -  
379 private HistoricTaskInstance getHistoricTask(String id) { 363 private HistoricTaskInstance getHistoricTask(String id) {
380 return historyService.createHistoricTaskInstanceQuery().taskId(id).singleResult(); 364 return historyService.createHistoricTaskInstanceQuery().taskId(id).singleResult();
381 } 365 }
@@ -406,9 +390,12 @@ public class BpmTaskServiceImpl implements BpmTaskService { @@ -406,9 +390,12 @@ public class BpmTaskServiceImpl implements BpmTaskService {
406 390
407 @Override 391 @Override
408 @Transactional(rollbackFor = Exception.class) 392 @Transactional(rollbackFor = Exception.class)
409 - public void returnTask(BpmTaskReturnReqVO reqVO) { 393 + public void returnTask(Long userId, BpmTaskReturnReqVO reqVO) {
410 // 1.1 当前任务 task 394 // 1.1 当前任务 task
411 - Task task = validateTask(reqVO.getId()); 395 + Task task = validateTask(userId, reqVO.getId());
  396 + if (task.isSuspended()) {
  397 + throw exception(TASK_IS_PENDING);
  398 + }
412 // 1.2 校验源头和目标节点的关系,并返回目标元素 399 // 1.2 校验源头和目标节点的关系,并返回目标元素
413 FlowElement targetElement = validateTargetTaskCanReturn(task.getTaskDefinitionKey(), reqVO.getTargetDefinitionKey(), task.getProcessDefinitionId()); 400 FlowElement targetElement = validateTargetTaskCanReturn(task.getTaskDefinitionKey(), reqVO.getTargetDefinitionKey(), task.getProcessDefinitionId());
414 401
@@ -484,24 +471,29 @@ public class BpmTaskServiceImpl implements BpmTaskService { @@ -484,24 +471,29 @@ public class BpmTaskServiceImpl implements BpmTaskService {
484 471
485 @Override 472 @Override
486 @Transactional(rollbackFor = Exception.class) 473 @Transactional(rollbackFor = Exception.class)
487 - public void delegateTask(BpmTaskDelegateReqVO reqVO,Long userId) {  
488 - // 校验任务  
489 - Task task = this.validateTaskDelegate(reqVO);  
490 - // 添加审批意见  
491 - AdminUserRespDTO currentUser = adminUserApi.getUser(userId); 474 + public void delegateTask(BpmTaskDelegateReqVO reqVO, Long userId) {
  475 + // 1.1 校验任务
  476 + Task task = validateTaskCanDelegate(userId, reqVO);
  477 + // 1.2 校验目标用户存在
492 AdminUserRespDTO delegateUser = adminUserApi.getUser(reqVO.getDelegateUserId()); 478 AdminUserRespDTO delegateUser = adminUserApi.getUser(reqVO.getDelegateUserId());
493 if (delegateUser == null) { 479 if (delegateUser == null) {
494 - throw exception(TASK_DELEGATE_USER_NULL); 480 + throw exception(TASK_DELEGATE_FAIL_USER_NOT_EXISTS);
495 } 481 }
  482 +
  483 + // 2. 添加审批意见
  484 + AdminUserRespDTO currentUser = adminUserApi.getUser(userId);
496 String comment = StrUtil.format("[{}]将任务委派给[{}],委派理由为:{}", currentUser.getNickname(), 485 String comment = StrUtil.format("[{}]将任务委派给[{}],委派理由为:{}", currentUser.getNickname(),
497 delegateUser.getNickname(), reqVO.getReason()); 486 delegateUser.getNickname(), reqVO.getReason());
498 String taskId = reqVO.getId(); 487 String taskId = reqVO.getId();
499 - taskService.addComment(taskId, task.getProcessInstanceId(), BpmProcessInstanceResultEnum.DELEGATE.getResult().toString(), comment);  
500 - // 设置任务所有人 (owner) 为原任务的处理人 (assignee) 488 + // TODO 海:后面改;感觉 comment 应该 type 做个枚举;不和 result 耦合在一起;
  489 + taskService.addComment(taskId, task.getProcessInstanceId(),
  490 + BpmProcessInstanceResultEnum.DELEGATE.getResult().toString(), comment);
  491 +
  492 + // 3.1 设置任务所有人 (owner) 为原任务的处理人 (assignee)
501 taskService.setOwner(taskId, task.getAssignee()); 493 taskService.setOwner(taskId, task.getAssignee());
502 - // 执行委派,将任务委派给 receiveId 494 + // 3.2 执行委派,将任务委派给 receiveId
503 taskService.delegateTask(taskId, reqVO.getDelegateUserId().toString()); 495 taskService.delegateTask(taskId, reqVO.getDelegateUserId().toString());
504 - // 更新任务拓展表为【委派】 496 + // 3.3 更新任务拓展表为【委派】
505 taskExtMapper.updateByTaskId( 497 taskExtMapper.updateByTaskId(
506 new BpmTaskExtDO().setTaskId(task.getId()).setResult(BpmProcessInstanceResultEnum.DELEGATE.getResult()) 498 new BpmTaskExtDO().setTaskId(task.getId()).setResult(BpmProcessInstanceResultEnum.DELEGATE.getResult())
507 .setReason(reqVO.getReason())); 499 .setReason(reqVO.getReason()));
@@ -510,16 +502,18 @@ public class BpmTaskServiceImpl implements BpmTaskService { @@ -510,16 +502,18 @@ public class BpmTaskServiceImpl implements BpmTaskService {
510 /** 502 /**
511 * 校验任务委派参数 503 * 校验任务委派参数
512 * 504 *
  505 + * @param userId 用户编号
513 * @param reqVO 任务编号,接收人ID 506 * @param reqVO 任务编号,接收人ID
514 * @return 当前任务信息 507 * @return 当前任务信息
515 */ 508 */
516 - private Task validateTaskDelegate(BpmTaskDelegateReqVO reqVO) { 509 + private Task validateTaskCanDelegate(Long userId, BpmTaskDelegateReqVO reqVO) {
517 // 校验任务 510 // 校验任务
518 - Task task = checkTask(WebFrameworkUtils.getLoginUserId(), reqVO.getId());  
519 - //校验当前审批人和被委派人不是同一人 511 + Task task = validateTask(userId, reqVO.getId());
  512 + // 校验当前审批人和被委派人不是同一人
520 if (task.getAssignee().equals(reqVO.getDelegateUserId().toString())) { 513 if (task.getAssignee().equals(reqVO.getDelegateUserId().toString())) {
521 - throw exception(TASK_DELEGATE_USER_REPEAT); 514 + throw exception(TASK_DELEGATE_FAIL_USER_REPEAT);
522 } 515 }
523 return task; 516 return task;
524 } 517 }
  518 +
525 } 519 }