Commit ab7d9fdf72f96135efcdc21205d8eee1ba1a9149

Authored by YunaiV
1 parent e07fb6c8

fix:【bpm 工作流】委派、转办时,owner 不重复设置

yudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java
@@ -947,7 +947,10 @@ public class BpmTaskServiceImpl implements BpmTaskService { @@ -947,7 +947,10 @@ public class BpmTaskServiceImpl implements BpmTaskService {
947 BpmCommentTypeEnum.DELEGATE_START.formatComment(currentUser.getNickname(), delegateUser.getNickname(), reqVO.getReason())); 947 BpmCommentTypeEnum.DELEGATE_START.formatComment(currentUser.getNickname(), delegateUser.getNickname(), reqVO.getReason()));
948 948
949 // 3.1 设置任务所有人 (owner) 为原任务的处理人 (assignee) 949 // 3.1 设置任务所有人 (owner) 为原任务的处理人 (assignee)
950 - taskService.setOwner(taskId, task.getAssignee()); 950 + // 特殊:如果已经被委派(owner 非空),则不需要更新 owner:https://gitee.com/zhijiantianya/yudao-cloud/issues/ICJ153
  951 + if (StrUtil.isEmpty(task.getOwner())) {
  952 + taskService.setOwner(taskId, task.getAssignee());
  953 + }
951 // 3.2 执行委派,将任务委派给 delegateUser 954 // 3.2 执行委派,将任务委派给 delegateUser
952 taskService.delegateTask(taskId, reqVO.getDelegateUserId().toString()); 955 taskService.delegateTask(taskId, reqVO.getDelegateUserId().toString());
953 // 补充说明:委托不单独设置状态。如果需要,可通过 Task 的 DelegationState 字段,判断是否为 DelegationState.PENDING 委托中 956 // 补充说明:委托不单独设置状态。如果需要,可通过 Task 的 DelegationState 字段,判断是否为 DelegationState.PENDING 委托中
@@ -973,7 +976,10 @@ public class BpmTaskServiceImpl implements BpmTaskService { @@ -973,7 +976,10 @@ public class BpmTaskServiceImpl implements BpmTaskService {
973 BpmCommentTypeEnum.TRANSFER.formatComment(currentUser.getNickname(), assigneeUser.getNickname(), reqVO.getReason())); 976 BpmCommentTypeEnum.TRANSFER.formatComment(currentUser.getNickname(), assigneeUser.getNickname(), reqVO.getReason()));
974 977
975 // 3.1 设置任务所有人 (owner) 为原任务的处理人 (assignee) 978 // 3.1 设置任务所有人 (owner) 为原任务的处理人 (assignee)
976 - taskService.setOwner(taskId, task.getAssignee()); 979 + // 特殊:如果已经被转派(owner 非空),则不需要更新 owner:https://gitee.com/zhijiantianya/yudao-cloud/issues/ICJ153
  980 + if (StrUtil.isEmpty(task.getOwner())) {
  981 + taskService.setOwner(taskId, task.getAssignee());
  982 + }
977 // 3.2 执行转派(审批人),将任务转派给 assigneeUser 983 // 3.2 执行转派(审批人),将任务转派给 assigneeUser
978 // 委托( delegate)和转派(transfer)的差别,就在这块的调用!!!! 984 // 委托( delegate)和转派(transfer)的差别,就在这块的调用!!!!
979 taskService.setAssignee(taskId, reqVO.getAssigneeUserId().toString()); 985 taskService.setAssignee(taskId, reqVO.getAssigneeUserId().toString());