Commit b67c2d5ef5ab0ead988515ada45182d0c512d15f

Authored by YunaiV
1 parent a86d1f8b

【代码评审】Bpm:完善相关注释

yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java
@@ -755,8 +755,8 @@ public class BpmTaskServiceImpl implements BpmTaskService { @@ -755,8 +755,8 @@ public class BpmTaskServiceImpl implements BpmTaskService {
755 runtimeService.setVariable(currentTask.getProcessInstanceId(), 755 runtimeService.setVariable(currentTask.getProcessInstanceId(),
756 String.format(PROCESS_INSTANCE_VARIABLE_RETURN_FLAG, reqVO.getTargetTaskDefinitionKey()), Boolean.TRUE); 756 String.format(PROCESS_INSTANCE_VARIABLE_RETURN_FLAG, reqVO.getTargetTaskDefinitionKey()), Boolean.TRUE);
757 // 4. 执行驳回 757 // 4. 执行驳回
758 - // 使用 moveExecutionsToSingleActivityId 替换 moveExecutionsToSingleActivityId 原因:  
759 - // 当多实例任务回退的时候有问题。 相关 issue: https://github.com/flowable/flowable-engine/issues/3944 758 + // 使用 moveExecutionsToSingleActivityId 替换 moveActivityIdsToSingleActivityId 原因:
  759 + // 当多实例任务回退的时候有问题。相关 issue: https://github.com/flowable/flowable-engine/issues/3944
760 List<String> runExecutionIds = convertList(taskList, Task::getExecutionId); 760 List<String> runExecutionIds = convertList(taskList, Task::getExecutionId);
761 runtimeService.createChangeActivityStateBuilder() 761 runtimeService.createChangeActivityStateBuilder()
762 .processInstanceId(currentTask.getProcessInstanceId()) 762 .processInstanceId(currentTask.getProcessInstanceId())
@@ -1045,14 +1045,18 @@ public class BpmTaskServiceImpl implements BpmTaskService { @@ -1045,14 +1045,18 @@ public class BpmTaskServiceImpl implements BpmTaskService {
1045 Integer assignEmptyHandlerType = BpmnModelUtils.parseAssignEmptyHandlerType(userTaskElement); 1045 Integer assignEmptyHandlerType = BpmnModelUtils.parseAssignEmptyHandlerType(userTaskElement);
1046 TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() { 1046 TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
1047 1047
  1048 + /**
  1049 + * 特殊情况:部分情况下,TransactionSynchronizationManager 注册 afterCommit 监听时,不会被调用,但是 afterCompletion 可以
  1050 + * 例如说:第一个 task 就是配置【自动通过】或者【自动拒绝】时
  1051 + * 参见 <a href="https://gitee.com/zhijiantianya/yudao-cloud/issues/IB7V7Q">issue</a> 反馈
  1052 + */
1048 @Override 1053 @Override
1049 public void afterCompletion(int transactionStatus) { 1054 public void afterCompletion(int transactionStatus) {
1050 - // 特殊情况:部分情况下,TransactionSynchronizationManager 注册 afterCommit 监听时,不会被调用,但是 afterCompletion 可以  
1051 - // 例如说:第一个 task 就是配置【自动通过】或者【自动拒绝】时 1055 + // 回滚情况,直接返回
1052 if (ObjectUtil.equal(transactionStatus, TransactionSynchronization.STATUS_ROLLED_BACK)) { 1056 if (ObjectUtil.equal(transactionStatus, TransactionSynchronization.STATUS_ROLLED_BACK)) {
1053 return; 1057 return;
1054 } 1058 }
1055 - // 特殊情况:第一个 task 【自动通过】时,第二个任务创建事件时 transactionStatus 会为 STATUS_UNKNOWN,不知道啥原因 1059 + // 特殊情况:第一个 task 【自动通过】时,第二个任务设置审批人时 transactionStatus 会为 STATUS_UNKNOWN,不知道啥原因
1056 if (ObjectUtil.equal(transactionStatus, TransactionSynchronization.STATUS_UNKNOWN) 1060 if (ObjectUtil.equal(transactionStatus, TransactionSynchronization.STATUS_UNKNOWN)
1057 && getTask(task.getId()) == null) { 1061 && getTask(task.getId()) == null) {
1058 return; 1062 return;
@@ -1114,8 +1118,12 @@ public class BpmTaskServiceImpl implements BpmTaskService { @@ -1114,8 +1118,12 @@ public class BpmTaskServiceImpl implements BpmTaskService {
1114 public void processTaskAssigned(Task task) { 1118 public void processTaskAssigned(Task task) {
1115 // 发送通知。在事务提交时,批量执行操作,所以直接查询会无法查询到 ProcessInstance,所以这里是通过监听事务的提交来实现。 1119 // 发送通知。在事务提交时,批量执行操作,所以直接查询会无法查询到 ProcessInstance,所以这里是通过监听事务的提交来实现。
1116 TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() { 1120 TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
1117 - // 特殊情况:部分情况下,TransactionSynchronizationManager 注册 afterCommit 监听时,不会被调用,但是 afterCompletion 可以  
1118 - // 例如说:第一个 task 就是配置【自动通过】或者【自动拒绝】时 1121 +
  1122 + /**
  1123 + * 特殊情况:部分情况下,TransactionSynchronizationManager 注册 afterCommit 监听时,不会被调用,但是 afterCompletion 可以
  1124 + * 例如说:第一个 task 就是配置【自动通过】或者【自动拒绝】时
  1125 + * 参见 <a href="https://gitee.com/zhijiantianya/yudao-cloud/issues/IB7V7Q">issue</a> 反馈
  1126 + */
1119 @Override 1127 @Override
1120 public void afterCompletion(int transactionStatus) { 1128 public void afterCompletion(int transactionStatus) {
1121 // 回滚情况,直接返回 1129 // 回滚情况,直接返回