update - 优化拒绝功能的内部逻辑

This commit is contained in:
王军 2024-06-24 17:11:09 +08:00
parent 3f9cf39b97
commit d6c651d6b0
2 changed files with 12 additions and 2 deletions

View File

@ -16,7 +16,7 @@
<name>workflow-engine</name>
<properties>
<revision>1.0.6-RELEASE</revision>
<revision>1.0.7-SNAPSHOT</revision>
<axzo-bom.version>2.0.0-SNAPSHOT</axzo-bom.version>
<axzo-dependencies.version>2.0.0-SNAPSHOT</axzo-dependencies.version>
<lombok.version>1.18.22</lombok.version>

View File

@ -308,7 +308,7 @@ public class BpmnTaskServiceImpl implements BpmnTaskService {
runtimeService.setVariable(task.getExecutionId(), TASK_COMPLETE_OPERATION_TYPE + task.getId(), REJECTED);
// 多实例
Activity activity;
if (isMultiInstance(activity = getActivity((TaskEntity) task))) {
if (isMultiInstance(activity = getActivity((TaskEntity) task)) && !isModeOr(activity)) {
Integer lastActiveInstance = (Integer) runtimeService.getVariable(task.getExecutionId(),
NUMBER_OF_ACTIVE_INSTANCES);
// 不能与 deleteMultiInstanceExecution 换执行顺序
@ -519,6 +519,16 @@ public class BpmnTaskServiceImpl implements BpmnTaskService {
return false;
}
/**
* 判断节点是否是或签
*
* ${nrOfCompletedInstances > 0}
* @return
*/
private boolean isModeOr(Activity activity) {
return Objects.nonNull(activity) && Objects.equals( "${nrOfCompletedInstances > 0}", activity.getLoopCharacteristics().getCompletionCondition());
}
private boolean isSequentialMultiInstance(Activity activity) {
if (Objects.nonNull(activity) && Objects.nonNull(activity.getLoopCharacteristics())) {
return activity.getLoopCharacteristics().isSequential();