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

This commit is contained in:
YunaiV 2024-12-15 12:03:01 +08:00
parent a86d1f8bf6
commit b67c2d5ef5
1 changed files with 15 additions and 7 deletions

View File

@ -755,8 +755,8 @@ public class BpmTaskServiceImpl implements BpmTaskService {
runtimeService.setVariable(currentTask.getProcessInstanceId(),
String.format(PROCESS_INSTANCE_VARIABLE_RETURN_FLAG, reqVO.getTargetTaskDefinitionKey()), Boolean.TRUE);
// 4. 执行驳回
// 使用 moveExecutionsToSingleActivityId 替换 moveExecutionsToSingleActivityId 原因
// 当多实例任务回退的时候有问题 相关 issue: https://github.com/flowable/flowable-engine/issues/3944
// 使用 moveExecutionsToSingleActivityId 替换 moveActivityIdsToSingleActivityId 原因
// 当多实例任务回退的时候有问题相关 issue: https://github.com/flowable/flowable-engine/issues/3944
List<String> runExecutionIds = convertList(taskList, Task::getExecutionId);
runtimeService.createChangeActivityStateBuilder()
.processInstanceId(currentTask.getProcessInstanceId())
@ -1045,14 +1045,18 @@ public class BpmTaskServiceImpl implements BpmTaskService {
Integer assignEmptyHandlerType = BpmnModelUtils.parseAssignEmptyHandlerType(userTaskElement);
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
/**
* 特殊情况部分情况下TransactionSynchronizationManager 注册 afterCommit 监听时不会被调用但是 afterCompletion 可以
* 例如说第一个 task 就是配置自动通过或者自动拒绝
* 参见 <a href="https://gitee.com/zhijiantianya/yudao-cloud/issues/IB7V7Q">issue</a> 反馈
*/
@Override
public void afterCompletion(int transactionStatus) {
// 特殊情况部分情况下TransactionSynchronizationManager 注册 afterCommit 监听时不会被调用但是 afterCompletion 可以
// 例如说第一个 task 就是配置自动通过或者自动拒绝
// 回滚情况直接返回
if (ObjectUtil.equal(transactionStatus, TransactionSynchronization.STATUS_ROLLED_BACK)) {
return;
}
// 特殊情况第一个 task 自动通过第二个任务创建事件 transactionStatus 会为 STATUS_UNKNOWN不知道啥原因
// 特殊情况第一个 task 自动通过第二个任务设置审批人 transactionStatus 会为 STATUS_UNKNOWN不知道啥原因
if (ObjectUtil.equal(transactionStatus, TransactionSynchronization.STATUS_UNKNOWN)
&& getTask(task.getId()) == null) {
return;
@ -1114,8 +1118,12 @@ public class BpmTaskServiceImpl implements BpmTaskService {
public void processTaskAssigned(Task task) {
// 发送通知在事务提交时批量执行操作所以直接查询会无法查询到 ProcessInstance所以这里是通过监听事务的提交来实现
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
// 特殊情况部分情况下TransactionSynchronizationManager 注册 afterCommit 监听时不会被调用但是 afterCompletion 可以
// 例如说第一个 task 就是配置自动通过或者自动拒绝
/**
* 特殊情况部分情况下TransactionSynchronizationManager 注册 afterCommit 监听时不会被调用但是 afterCompletion 可以
* 例如说第一个 task 就是配置自动通过或者自动拒绝
* 参见 <a href="https://gitee.com/zhijiantianya/yudao-cloud/issues/IB7V7Q">issue</a> 反馈
*/
@Override
public void afterCompletion(int transactionStatus) {
// 回滚情况直接返回