Merge branch 'feature/REQ-1309' into dev
This commit is contained in:
commit
ad4a31c046
@ -1,15 +1,15 @@
|
||||
package cn.axzo.workflow.common.enums;
|
||||
|
||||
|
||||
public enum BpmFlowMultiMode {
|
||||
|
||||
//0 发起人 1审批 2抄送 3条件 4路由
|
||||
public enum BpmnFlowNodeMode {
|
||||
GENERAL("GENERAL", "普通"),
|
||||
OR("OR", "或签"),
|
||||
AND("AND", "会签");
|
||||
|
||||
private String type;
|
||||
private String desc;
|
||||
BpmFlowMultiMode(String type, String desc) {
|
||||
|
||||
BpmnFlowNodeMode(String type, String desc) {
|
||||
this.type = type;
|
||||
this.desc = desc;
|
||||
}
|
||||
@ -1,6 +1,6 @@
|
||||
package cn.axzo.workflow.common.model.request.bpmn;
|
||||
|
||||
import cn.axzo.workflow.common.enums.BpmFlowMultiMode;
|
||||
import cn.axzo.workflow.common.enums.BpmnFlowNodeMode;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
@ -22,7 +22,7 @@ public class BpmnJsonNodeProperty {
|
||||
* Task 多实例模式;OR:"或签",AND:"会签"
|
||||
*/
|
||||
@ApiModelProperty(value = "Task 多实例模式;OR:或签,AND:会签")
|
||||
private BpmFlowMultiMode multiMode;
|
||||
private BpmnFlowNodeMode multiMode;
|
||||
|
||||
/**
|
||||
* 审批人为空是否允许自动跳过
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
package cn.axzo.workflow.core.common.utils;
|
||||
|
||||
import cn.axzo.workflow.common.enums.BpmFlowMultiMode;
|
||||
import cn.axzo.workflow.common.enums.BpmFlowNodeType;
|
||||
import cn.axzo.workflow.common.enums.BpmnFlowNodeMode;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.BpmnJsonNode;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.BpmnJsonNodeProperty;
|
||||
import cn.axzo.workflow.core.common.exception.WorkflowEngineException;
|
||||
@ -11,13 +11,28 @@ import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.flowable.bpmn.BpmnAutoLayout;
|
||||
import org.flowable.bpmn.converter.BpmnXMLConverter;
|
||||
import org.flowable.bpmn.model.BpmnModel;
|
||||
import org.flowable.bpmn.model.EndEvent;
|
||||
import org.flowable.bpmn.model.ExclusiveGateway;
|
||||
import org.flowable.bpmn.model.FlowElement;
|
||||
import org.flowable.bpmn.model.FlowableListener;
|
||||
import org.flowable.bpmn.model.MultiInstanceLoopCharacteristics;
|
||||
import org.flowable.bpmn.model.Process;
|
||||
import org.flowable.bpmn.model.*;
|
||||
import org.flowable.bpmn.model.SequenceFlow;
|
||||
import org.flowable.bpmn.model.ServiceTask;
|
||||
import org.flowable.bpmn.model.StartEvent;
|
||||
import org.flowable.bpmn.model.UserTask;
|
||||
import org.flowable.engine.delegate.TaskListener;
|
||||
import org.flowable.engine.repository.Model;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.axzo.workflow.common.constant.BpmConstants.BPM_ALLOW_SKIP_USER_TASK;
|
||||
@ -351,7 +366,7 @@ public class BpmTransformUtil {
|
||||
|
||||
if (!ObjectUtils.isEmpty(flowNode.getProperty()) && Boolean.TRUE.equals(flowNode.getProperty().getIsMultiTask())) {
|
||||
BpmnJsonNodeProperty property = flowNode.getProperty();
|
||||
BpmFlowMultiMode mode = property.getMultiMode();
|
||||
BpmnFlowNodeMode mode = property.getMultiMode();
|
||||
|
||||
MultiInstanceLoopCharacteristics multiInstanceLoopCharacteristics =
|
||||
new MultiInstanceLoopCharacteristics();
|
||||
@ -364,9 +379,9 @@ public class BpmTransformUtil {
|
||||
userTask.setAssignee("${assigneeName}");
|
||||
// 设置多实例属性
|
||||
userTask.setLoopCharacteristics(multiInstanceLoopCharacteristics);
|
||||
if (BpmFlowMultiMode.OR.getType().equals(mode.getType())) {
|
||||
if (BpmnFlowNodeMode.OR.getType().equals(mode.getType())) {
|
||||
multiInstanceLoopCharacteristics.setCompletionCondition("${nrOfCompletedInstances > 0}");
|
||||
} else if (BpmFlowMultiMode.AND.getType().equals(mode.getType())) {
|
||||
} else if (BpmnFlowNodeMode.AND.getType().equals(mode.getType())) {
|
||||
multiInstanceLoopCharacteristics.setCompletionCondition("${nrOfInstances == " +
|
||||
"nrOfCompletedInstances}");
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user