update - 兼容一个发起人的变量

This commit is contained in:
wangli 2023-12-11 16:25:10 +08:00
parent e0cf547f27
commit ea62693a6e
5 changed files with 19 additions and 4 deletions

View File

@ -10,6 +10,8 @@ public interface BpmnConstants {
*/
String FLOWABLE_SKIP_EXPRESSION_ENABLE = "[_FLOWABLE_SKIP_EXPRESSION_ENABLED_]";
String INTERNAL_INITIATOR = "[_INTERNAL_INITIATOR_]";
@Deprecated
String OLD_INTERNAL_INITIATOR = "_INTERNAL_INITIATOR";
String INTERNAL_END_USER_ID = "[_INTERNAL_END_USER_ID_]";
String INTERNAL_END_TENANT_ID = "[_INTERNAL_END_TENANT_ID_]";
String INTERNAL_END_USER_NAME = "[_INTERNAL_END_USER_NAME_]";

View File

@ -22,7 +22,7 @@ public class CustomActivityBehaviorFactory extends DefaultActivityBehaviorFactor
@Override
public ParallelMultiInstanceBehavior createParallelMultiInstanceBehavior(Activity activity,
AbstractBpmnActivityBehavior innerActivityBehavior) {
return new CustomParallelMultiInstanceActivityBehavior(activity, innerActivityBehavior);
return new CustomParallelMultiInstanceBehavior(activity, innerActivityBehavior);
}
@Override

View File

@ -20,9 +20,9 @@ import java.util.Iterator;
* @author wangli
* @since 2023/7/29 00:25
*/
public class CustomParallelMultiInstanceActivityBehavior extends ParallelMultiInstanceBehavior {
public CustomParallelMultiInstanceActivityBehavior(Activity activity,
AbstractBpmnActivityBehavior originalActivityBehavior) {
public class CustomParallelMultiInstanceBehavior extends ParallelMultiInstanceBehavior {
public CustomParallelMultiInstanceBehavior(Activity activity,
AbstractBpmnActivityBehavior originalActivityBehavior) {
super(activity, originalActivityBehavior);
}

View File

@ -64,6 +64,11 @@ public class EngineActivityEventListener extends AbstractFlowableEngineEventList
getOrderedListeners().forEach(i -> i.onCompleted(event));
}
/**
* 多实例 UserTask 通过,
*
* @param event
*/
@Override
protected void multiInstanceActivityCompletedWithCondition(FlowableMultiInstanceActivityCompletedEvent event) {
log.info("activityCompleted: activityId: {} activityName: {}", event.getActivityId(), event.getActivityName());

View File

@ -75,6 +75,7 @@ import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_END_USER_N
import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_INITIATOR;
import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_PROCESS_TYPE_CANCEL;
import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_SPECIFY_NEXT_APPROVER;
import static cn.axzo.workflow.common.constant.BpmnConstants.OLD_INTERNAL_INITIATOR;
import static cn.axzo.workflow.common.enums.BpmnFlowNodeMode.AND;
import static cn.axzo.workflow.common.enums.BpmnFlowNodeMode.OR;
import static cn.axzo.workflow.core.common.enums.BpmnErrorCode.PROCESS_DEFINITION_ID_NOT_EXISTS;
@ -367,9 +368,16 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic
BpmnTaskDelegateAssigner assigner;
if (dto.getHasVariable()) {
assigner = (BpmnTaskDelegateAssigner) processInstance.getProcessVariables().get(INTERNAL_INITIATOR);
if (Objects.isNull(assigner)) {
assigner = (BpmnTaskDelegateAssigner) processInstance.getProcessVariables().get(OLD_INTERNAL_INITIATOR);
}
} else {
assigner = (BpmnTaskDelegateAssigner) runtimeService.getVariable(processInstance.getId(),
INTERNAL_INITIATOR);
if (Objects.isNull(assigner)) {
assigner = (BpmnTaskDelegateAssigner) runtimeService.getVariable(processInstance.getId(),
OLD_INTERNAL_INITIATOR);
}
}
return instanceConverter.toVo(processInstance, processDefinition, assigner);