Commit b67c2d5ef5ab0ead988515ada45182d0c512d15f
1 parent
a86d1f8b
【代码评审】Bpm:完善相关注释
Showing
1 changed file
with
15 additions
and
7 deletions
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 | // 回滚情况,直接返回 |