add - 新增通知管理配置、全局默认按钮配置从 JSON 转 BPMN 的实现

This commit is contained in:
wangli 2023-11-15 00:06:28 +08:00
parent 3902878c15
commit a0ebb821c7
6 changed files with 1085 additions and 812 deletions

View File

@ -77,37 +77,4 @@ public class BpmnButtonConf {
this.carbonCopy = carbonCopy;
}
@Data
@Accessors(chain = true)
static class BpmnButtonMetaInfo {
private String btnKey;
private String btnName;
private Boolean enabled;
public String getBtnKey() {
return btnKey;
}
public void setBtnKey(String btnKey) {
this.btnKey = btnKey;
}
public String getBtnName() {
return btnName;
}
public void setBtnName(String btnName) {
this.btnName = btnName;
}
public Boolean getEnabled() {
return enabled;
}
public void setEnabled(Boolean enabled) {
this.enabled = enabled;
}
}
}

View File

@ -0,0 +1,44 @@
package cn.axzo.workflow.common.model.request.bpmn;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* TODO
*
* @author wangli
* @since 2023/11/14 23:53
*/
@Data
@Accessors(chain = true)
public class BpmnButtonMetaInfo {
private String btnKey;
private String btnName;
private Boolean enabled;
public String getBtnKey() {
return btnKey;
}
public void setBtnKey(String btnKey) {
this.btnKey = btnKey;
}
public String getBtnName() {
return btnName;
}
public void setBtnName(String btnName) {
this.btnName = btnName;
}
public Boolean getEnabled() {
return enabled;
}
public void setEnabled(Boolean enabled) {
this.enabled = enabled;
}
}

View File

@ -11,41 +11,27 @@ 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.SequenceFlow;
import org.flowable.bpmn.model.ServiceTask;
import org.flowable.bpmn.model.StartEvent;
import org.flowable.bpmn.model.UserTask;
import org.flowable.bpmn.model.*;
import org.flowable.engine.delegate.TaskListener;
import org.flowable.engine.repository.Model;
import java.lang.reflect.InvocationTargetException;
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.*;
import java.util.stream.Collectors;
import static cn.axzo.workflow.common.constant.BpmnConstants.AND_SIGN_EXPRESSION;
import static cn.axzo.workflow.common.constant.BpmnConstants.END_EVENT_ID;
import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_TASK_RELATION_ASSIGNEE_LIST_INFO;
import static cn.axzo.workflow.common.constant.BpmnConstants.OR_SIGN_EXPRESSION;
import static cn.axzo.workflow.common.constant.BpmnConstants.*;
import static cn.axzo.workflow.core.common.enums.BpmnErrorCode.CONVERTOR_META_DATA_FORMAT_ERROR;
import static cn.axzo.workflow.core.common.enums.BpmnErrorCode.CONVERTOR_UNKNOW_NODE_TYPE;
import static org.flowable.bpmn.model.ImplementationType.IMPLEMENTATION_TYPE_DELEGATEEXPRESSION;
import static org.flowable.engine.delegate.BaseExecutionListener.EVENTNAME_END;
import static org.flowable.engine.delegate.BaseExecutionListener.EVENTNAME_START;
/**
* 该工具是以前枢智版本使用候选迭代都通过 BpmnJsonConverterUtil 该工具操作
*/
@Slf4j
@Deprecated
public class BpmTransformUtil {
public static byte[] transformBpmnJsonToXml(BpmnJsonNode bpmnJson, Model model) {
return transformBpmnJsonToXml(bpmnJson, model, null);

View File

@ -1,37 +1,15 @@
package cn.axzo.workflow.core.common.utils;
import cn.axzo.workflow.common.model.request.bpmn.BpmnButtonConf;
import cn.axzo.workflow.common.model.request.bpmn.BpmnFieldConf;
import cn.axzo.workflow.common.model.request.bpmn.BpmnJsonNode;
import cn.axzo.workflow.common.model.request.bpmn.BpmnNoticeConf;
import cn.axzo.workflow.common.model.request.bpmn.*;
import cn.axzo.workflow.common.model.request.bpmn.model.BpmnModelCreateDTO;
import cn.axzo.workflow.core.common.exception.WorkflowEngineException;
import cn.axzo.workflow.core.converter.json.AbstractBpmnJsonConverter;
import cn.axzo.workflow.core.converter.json.EndEventJsonConverter;
import cn.axzo.workflow.core.converter.json.ExclusiveGatewayJsonConverter;
import cn.axzo.workflow.core.converter.json.NotSupportConverter;
import cn.axzo.workflow.core.converter.json.ParallelGatewayJsonConverter;
import cn.axzo.workflow.core.converter.json.SequenceFlowJsonConverter;
import cn.axzo.workflow.core.converter.json.ServiceTaskJsonConverter;
import cn.axzo.workflow.core.converter.json.StartEventJsonConverter;
import cn.axzo.workflow.core.converter.json.UserTaskJsonConverter;
import cn.axzo.workflow.core.converter.json.*;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.Lists;
import org.flowable.bpmn.BpmnAutoLayout;
import org.flowable.bpmn.converter.BpmnXMLConverter;
import org.flowable.bpmn.model.BaseElement;
import org.flowable.bpmn.model.BpmnModel;
import org.flowable.bpmn.model.EndEvent;
import org.flowable.bpmn.model.ExclusiveGateway;
import org.flowable.bpmn.model.ExtensionAttribute;
import org.flowable.bpmn.model.FlowElement;
import org.flowable.bpmn.model.Gateway;
import org.flowable.bpmn.model.ParallelGateway;
import org.flowable.bpmn.model.Process;
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.bpmn.model.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.CollectionUtils;
@ -41,17 +19,9 @@ import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.UUID;
import java.util.*;
import static cn.axzo.workflow.common.constant.BpmnConstants.END_EVENT_ID;
import static cn.axzo.workflow.common.constant.BpmnConstants.FLOW_NODE_JSON;
import static cn.axzo.workflow.common.constant.BpmnConstants.SEQUENCE_FLOW_ID;
import static cn.axzo.workflow.common.constant.BpmnConstants.START_EVENT_ID;
import static cn.axzo.workflow.common.constant.BpmnConstants.*;
import static cn.axzo.workflow.common.enums.BpmnFlowNodeType.NODE_EMPTY;
import static cn.axzo.workflow.core.common.enums.BpmnErrorCode.CONVERTOR_COMMON_ERROR;
@ -116,6 +86,11 @@ public class BpmnJsonConverterUtil {
mainProcess.setDocumentation(documentation);
mainProcess.addAttribute(extensionAttribute);
setProcessNoticeConfig(noticeConf, mainProcess);
setProcessButtonConfig(buttonConf, mainProcess);
setProcessFieldConfig(fieldConf, mainProcess);
bpmnModel.addProcess(mainProcess);
// 创建固定的开始节点
@ -136,6 +111,68 @@ public class BpmnJsonConverterUtil {
return bpmnModel;
}
private static void setProcessFieldConfig(List<BpmnFieldConf> fieldConf, Process mainProcess) {
// TODO
}
private static void setProcessButtonConfig(BpmnButtonConf buttonConf, Process mainProcess) {
ExtensionElement buttonConfigElement = new ExtensionElement();
buttonConfigElement.setName("buttonConfigElement");
buildMetaButton(buttonConf.getInitiator(), "initiator", buttonConfigElement);
buildMetaButton(buttonConf.getCurrent(), "current", buttonConfigElement);
buildMetaButton(buttonConf.getHistory(), "history", buttonConfigElement);
buildMetaButton(buttonConf.getCarbonCopy(), "carbonCopy", buttonConfigElement);
mainProcess.addExtensionElement(buttonConfigElement);
}
private static void buildMetaButton(List<BpmnButtonMetaInfo> buttonMetaInfos, String buttonType,
ExtensionElement buttonConfigElement) {
if (!CollectionUtils.isEmpty(buttonMetaInfos)) {
ExtensionElement initiator = new ExtensionElement();
initiator.setName(buttonType);
buttonMetaInfos.forEach(i -> {
ExtensionElement button = new ExtensionElement();
button.setName(i.getBtnKey());
ExtensionAttribute attribute = new ExtensionAttribute();
attribute.setName("name");
attribute.setValue(i.getBtnName());
button.addAttribute(attribute);
button.setElementText(String.valueOf(i.getEnabled()));
initiator.addChildElement(button);
});
buttonConfigElement.addChildElement(initiator);
}
}
private static void setProcessNoticeConfig(BpmnNoticeConf noticeConf, Process mainProcess) {
ExtensionElement noticeConfigElement = new ExtensionElement();
noticeConfigElement.setName("noticeConfigElement");
// 通知消息模板配置
ExtensionElement noticeMessage = new ExtensionElement();
noticeMessage.setName("noticeMessageId");
noticeMessage.setElementText(noticeConf.getNoticeMessageId());
noticeConfigElement.addChildElement(noticeMessage);
// 代办消息模板配置
ExtensionElement pendingMessage = new ExtensionElement();
pendingMessage.setName("pendingMessageId");
pendingMessage.setElementText(noticeConf.getPendingMessageId());
noticeConfigElement.addChildElement(pendingMessage);
// 短信模板配置
if (Objects.nonNull(noticeConf.getSmsId())) {
ExtensionElement smsMessage = new ExtensionElement();
smsMessage.setName("smsMessageId");
smsMessage.setElementText(noticeConf.getSmsId());
noticeConfigElement.addChildElement(smsMessage);
}
mainProcess.addExtensionElement(noticeConfigElement);
}
public static byte[] transformBytes(BpmnModel bpmnModel) {
byte[] xmlMeta = new BpmnXMLConverter().convertToXML(bpmnModel);
String xmlResult = new String(xmlMeta);
@ -291,5 +328,7 @@ public class BpmnJsonConverterUtil {
BpmnModel bpmnModel = convertToBpmn(model.getNode(), "id", "测试", "remark", model.getNoticeConf(),
model.getButtonConf(), model.getFieldConf());
System.out.println("bpmnModel = " + bpmnModel);
transformBytes(bpmnModel);
}
}

View File

@ -0,0 +1,958 @@
{
"key": "new_model",
"name": "新模型",
"noticeConf": {
"pendingMessageId": "41",
"noticeMessageId": "64",
"smsId": "40"
},
"description": "极引非东活已运王点越组油门展总想立。年深江亲联热制者条济它部即月。号线信平和者京两马何标这。",
"fieldConf": [
{
"name": "价格",
"code": "price",
"type": "number"
},
{
"name": "标题",
"code": "title",
"type": "string"
},
{
"name": "性别",
"code": "age",
"type": "radio",
"options": [
{
"name": "男",
"value": "1"
},
{
"name": "女",
"value": "2"
}
]
},
{
"name": "颜色",
"code": "color",
"type": "checkbox",
"options": [
{
"name": "红色",
"value": "read"
},
{
"name": "蓝色",
"value": "blue"
},
{
"name": "绿色",
"value": "green"
}
]
}
],
"category": "customCategory",
"buttonConf": {
"initiator": [
{
"btnKey": "BPMN_APPROVE",
"enabled": true,
"btnName": "同意"
},
{
"btnKey": "BPMN_REJECT",
"btnName": "拒绝",
"enabled": true
},
{
"btnKey": "BPMN_REVOCATION",
"btnName": "撤回",
"enabled": true
},
{
"btnKey": "BPMN_FORWARD",
"btnName": "转交",
"enabled": true
},
{
"btnKey": "BPMN_COUNTERSIGN",
"btnName": "加签",
"enabled": true
},
{
"btnKey": "BPMN_COMMENT",
"btnName": "评论",
"enabled": true
},
{
"btnKey": "BPMN_ROLLBACK",
"btnName": "回退",
"enabled": true
},
{
"btnKey": "BPMN_COPY",
"btnName": "抄送",
"enabled": true
}
],
"carbonCopy": [
{
"btnKey": "BPMN_APPROVE",
"enabled": true,
"btnName": "同意"
},
{
"btnKey": "BPMN_REJECT",
"btnName": "拒绝",
"enabled": true
},
{
"btnKey": "BPMN_REVOCATION",
"btnName": "撤回",
"enabled": true
},
{
"btnKey": "BPMN_FORWARD",
"btnName": "转交",
"enabled": true
},
{
"btnKey": "BPMN_COUNTERSIGN",
"btnName": "加签",
"enabled": true
},
{
"btnKey": "BPMN_COMMENT",
"btnName": "评论",
"enabled": true
},
{
"btnKey": "BPMN_ROLLBACK",
"btnName": "回退",
"enabled": true
},
{
"btnKey": "BPMN_COPY",
"btnName": "抄送",
"enabled": true
}
],
"history": [
{
"btnKey": "BPMN_APPROVE",
"enabled": true,
"btnName": "同意"
},
{
"btnKey": "BPMN_REJECT",
"btnName": "拒绝",
"enabled": true
},
{
"btnKey": "BPMN_REVOCATION",
"btnName": "撤回",
"enabled": true
},
{
"btnKey": "BPMN_FORWARD",
"btnName": "转交",
"enabled": true
},
{
"btnKey": "BPMN_COUNTERSIGN",
"btnName": "加签",
"enabled": true
},
{
"btnKey": "BPMN_COMMENT",
"btnName": "评论",
"enabled": true
},
{
"btnKey": "BPMN_ROLLBACK",
"btnName": "回退",
"enabled": true
},
{
"btnKey": "BPMN_COPY",
"btnName": "抄送",
"enabled": true
}
],
"current": [
{
"btnKey": "BPMN_APPROVE",
"enabled": true,
"btnName": "同意"
},
{
"btnKey": "BPMN_REJECT",
"btnName": "拒绝",
"enabled": true
},
{
"btnKey": "BPMN_REVOCATION",
"btnName": "撤回",
"enabled": true
},
{
"btnKey": "BPMN_FORWARD",
"btnName": "转交",
"enabled": true
},
{
"btnKey": "BPMN_COUNTERSIGN",
"btnName": "加签",
"enabled": true
},
{
"btnKey": "BPMN_COMMENT",
"btnName": "评论",
"enabled": true
},
{
"btnKey": "BPMN_ROLLBACK",
"btnName": "回退",
"enabled": true
},
{
"btnKey": "BPMN_COPY",
"btnName": "抄送",
"enabled": true
}
]
},
"node": {
"id": "1",
"parentId": "0",
"type": "NODE_STARTER",
"name": "发起人",
"children": {
"id": "2",
"parentId": "1",
"type": "NODE_TASK",
"name": "一级审批",
"children": {
"id": "3",
"parentId": "2",
"type": "NODE_EXCLUSIVE_GATEWAY",
"name": "排它网关",
"children": {
"id": "11",
"parentId": "3",
"type": "NODE_CARBON_COPY",
"name": "主流程抄送节点",
"children": {
"id": "12",
"parentId": "11",
"type": "NODE_EMPTY",
"name": "结束",
"children": null,
"property": {},
"branches": null
},
"property": null,
"branches": null
},
"branches": [
{
"id": "4",
"parentId": "3",
"type": "NODE_CONDITION",
"name": "条件1",
"property": {
"groups": [
{
"conditionsType": "and",
"conditions": [
{
"fieldDataType": "string",
"fieldCode": "title",
"operator": "contains",
"defaultValue": "测试"
},
{
"fieldDataType": "number",
"fieldCode": "price",
"operator": "eq",
"defaultValue": "2"
}
]
}
],
"defaultBranch": false,
"groupsType": "and"
},
"children": {
"id": "7",
"parentId": "4",
"type": "NODE_TASK",
"name": "条件1审核节点",
"children": {
"id": "8",
"parentId": "7",
"type": "NODE_CARBON_COPY",
"name": "条件1抄送节点",
"children": null,
"property": null,
"branches": null
},
"property": {
"approvalMethod": "autoPassed",
"approverScope": "entWorkspace",
"approverSpecify": "position",
"specifyValue": [
"job1",
"job2"
],
"isMultiTask": "true",
"multiMode": "AND",
"approverEmptyHandleType": "autoPassed",
"fieldPermission": null,
"buttonPermission": {
"initiator": [
{
"btnKey": "BPMN_APPROVE",
"enabled": true,
"btnName": "同意"
},
{
"btnKey": "BPMN_REJECT",
"btnName": "拒绝",
"enabled": true
},
{
"btnKey": "BPMN_REVOCATION",
"btnName": "撤回",
"enabled": true
},
{
"btnKey": "BPMN_FORWARD",
"btnName": "转交",
"enabled": true
},
{
"btnKey": "BPMN_COUNTERSIGN",
"btnName": "加签",
"enabled": true
},
{
"btnKey": "BPMN_COMMENT",
"btnName": "评论",
"enabled": true
},
{
"btnKey": "BPMN_ROLLBACK",
"btnName": "回退",
"enabled": true
},
{
"btnKey": "BPMN_COPY",
"btnName": "抄送",
"enabled": true
}
],
"carbonCopy": [
{
"btnKey": "BPMN_APPROVE",
"enabled": true,
"btnName": "同意"
},
{
"btnKey": "BPMN_REJECT",
"btnName": "拒绝",
"enabled": true
},
{
"btnKey": "BPMN_REVOCATION",
"btnName": "撤回",
"enabled": true
},
{
"btnKey": "BPMN_FORWARD",
"btnName": "转交",
"enabled": true
},
{
"btnKey": "BPMN_COUNTERSIGN",
"btnName": "加签",
"enabled": true
},
{
"btnKey": "BPMN_COMMENT",
"btnName": "评论",
"enabled": true
},
{
"btnKey": "BPMN_ROLLBACK",
"btnName": "回退",
"enabled": true
},
{
"btnKey": "BPMN_COPY",
"btnName": "抄送",
"enabled": true
}
],
"history": [
{
"btnKey": "BPMN_APPROVE",
"enabled": true,
"btnName": "同意"
},
{
"btnKey": "BPMN_REJECT",
"btnName": "拒绝",
"enabled": true
},
{
"btnKey": "BPMN_REVOCATION",
"btnName": "撤回",
"enabled": true
},
{
"btnKey": "BPMN_FORWARD",
"btnName": "转交",
"enabled": true
},
{
"btnKey": "BPMN_COUNTERSIGN",
"btnName": "加签",
"enabled": true
},
{
"btnKey": "BPMN_COMMENT",
"btnName": "评论",
"enabled": true
},
{
"btnKey": "BPMN_ROLLBACK",
"btnName": "回退",
"enabled": true
},
{
"btnKey": "BPMN_COPY",
"btnName": "抄送",
"enabled": true
}
],
"current": [
{
"btnKey": "BPMN_APPROVE",
"enabled": true,
"btnName": "同意"
},
{
"btnKey": "BPMN_REJECT",
"btnName": "拒绝",
"enabled": true
},
{
"btnKey": "BPMN_REVOCATION",
"btnName": "撤回",
"enabled": true
},
{
"btnKey": "BPMN_FORWARD",
"btnName": "转交",
"enabled": true
},
{
"btnKey": "BPMN_COUNTERSIGN",
"btnName": "加签",
"enabled": true
},
{
"btnKey": "BPMN_COMMENT",
"btnName": "评论",
"enabled": true
},
{
"btnKey": "BPMN_ROLLBACK",
"btnName": "回退",
"enabled": true
},
{
"btnKey": "BPMN_COPY",
"btnName": "抄送",
"enabled": true
}
]
}
},
"branches": null
},
"branches": null
},
{
"id": "5",
"parentId": "3",
"type": "NODE_CONDITION",
"name": "条件2",
"property": {
"groups": [
{
"conditionsType": "and",
"conditions": [
{
"fieldDataType": "number",
"fieldCode": "size",
"operator": "between",
"leftValue": "31",
"leftOperator": "le",
"rightValue": "34",
"rightOperator": "gt"
},
{
"fieldDataType": "radio",
"fieldCode": "sex",
"operator": "eq",
"defaultValue": "2"
},
{
"fieldDataType": "checkbox",
"fieldCode": "color",
"operator": "in",
"defaultValues": [
"red",
"blue"
]
}
]
}
],
"defaultBranch": false,
"groupsType": "and"
},
"children": {
"id": "9",
"parentId": "5",
"type": "NODE_BUSINESS",
"name": "条件2业务节点",
"children": {
"id": "10",
"parentId": "9",
"type": "NODE_TASK",
"name": "条件2审批节点",
"children": {
"id": "13",
"parentId": "10",
"type": "NODE_BUSINESS",
"name": "业务节点有审批人",
"property": {
"approvalMethod": "human",
"approverScope": "projectWorkspace",
"approverSpecify": "identity",
"specifyValue": [
"worker",
"team_worker"
],
"isMultiTask": "true",
"multiMode": "AND",
"approverEmptyHandleType": "transferToAdmin",
"fieldPermission": null,
"buttonPermission": null
},
"children": null,
"branches": null
},
"property": {
"approvalMethod": "human",
"approverScope": "projectWorkspace",
"approverSpecify": "position",
"specifyValue": [
"job1",
"job2"
],
"isMultiTask": "true",
"multiMode": "AND",
"approverEmptyHandleType": "autoPassed",
"fieldPermission": null,
"buttonPermission": null
},
"branches": null
},
"property": {
"approvalMethod": "nobody"
},
"branches": null
},
"branches": null
},
{
"id": "6",
"parentId": "3",
"type": "NODE_CONDITION",
"name": "默认条件",
"property": {
"defaultBranch": true
},
"children": null,
"branches": null
}
],
"property": null
},
"branches": null,
"property": {
"approvalMethod": "human",
"approverScope": "projectWorkspace",
"approverSpecify": "position",
"specifyValue": [
"job1",
"job2"
],
"isMultiTask": "true",
"multiMode": "AND",
"approverEmptyHandleType": "autoPassed",
"fieldPermission": null,
"buttonPermission": {
"initiator": [
{
"btnKey": "BPMN_APPROVE",
"enabled": true,
"btnName": "同意"
},
{
"btnKey": "BPMN_REJECT",
"btnName": "拒绝",
"enabled": true
},
{
"btnKey": "BPMN_REVOCATION",
"btnName": "撤回",
"enabled": true
},
{
"btnKey": "BPMN_FORWARD",
"btnName": "转交",
"enabled": true
},
{
"btnKey": "BPMN_COUNTERSIGN",
"btnName": "加签",
"enabled": true
},
{
"btnKey": "BPMN_COMMENT",
"btnName": "评论",
"enabled": true
},
{
"btnKey": "BPMN_ROLLBACK",
"btnName": "回退",
"enabled": true
},
{
"btnKey": "BPMN_COPY",
"btnName": "抄送",
"enabled": true
}
],
"carbonCopy": [
{
"btnKey": "BPMN_APPROVE",
"enabled": true,
"btnName": "同意"
},
{
"btnKey": "BPMN_REJECT",
"btnName": "拒绝",
"enabled": true
},
{
"btnKey": "BPMN_REVOCATION",
"btnName": "撤回",
"enabled": true
},
{
"btnKey": "BPMN_FORWARD",
"btnName": "转交",
"enabled": true
},
{
"btnKey": "BPMN_COUNTERSIGN",
"btnName": "加签",
"enabled": true
},
{
"btnKey": "BPMN_COMMENT",
"btnName": "评论",
"enabled": true
},
{
"btnKey": "BPMN_ROLLBACK",
"btnName": "回退",
"enabled": true
},
{
"btnKey": "BPMN_COPY",
"btnName": "抄送",
"enabled": true
}
],
"history": [
{
"btnKey": "BPMN_APPROVE",
"enabled": true,
"btnName": "同意"
},
{
"btnKey": "BPMN_REJECT",
"btnName": "拒绝",
"enabled": true
},
{
"btnKey": "BPMN_REVOCATION",
"btnName": "撤回",
"enabled": true
},
{
"btnKey": "BPMN_FORWARD",
"btnName": "转交",
"enabled": true
},
{
"btnKey": "BPMN_COUNTERSIGN",
"btnName": "加签",
"enabled": true
},
{
"btnKey": "BPMN_COMMENT",
"btnName": "评论",
"enabled": true
},
{
"btnKey": "BPMN_ROLLBACK",
"btnName": "回退",
"enabled": true
},
{
"btnKey": "BPMN_COPY",
"btnName": "抄送",
"enabled": true
}
],
"current": [
{
"btnKey": "BPMN_APPROVE",
"enabled": true,
"btnName": "同意"
},
{
"btnKey": "BPMN_REJECT",
"btnName": "拒绝",
"enabled": true
},
{
"btnKey": "BPMN_REVOCATION",
"btnName": "撤回",
"enabled": true
},
{
"btnKey": "BPMN_FORWARD",
"btnName": "转交",
"enabled": true
},
{
"btnKey": "BPMN_COUNTERSIGN",
"btnName": "加签",
"enabled": true
},
{
"btnKey": "BPMN_COMMENT",
"btnName": "评论",
"enabled": true
},
{
"btnKey": "BPMN_ROLLBACK",
"btnName": "回退",
"enabled": true
},
{
"btnKey": "BPMN_COPY",
"btnName": "抄送",
"enabled": true
}
]
}
}
},
"branches": null,
"property": {
"buttonPermission": {
"initiator": [
{
"btnKey": "BPMN_APPROVE",
"enabled": true,
"btnName": "同意"
},
{
"btnKey": "BPMN_REJECT",
"btnName": "拒绝",
"enabled": true
},
{
"btnKey": "BPMN_REVOCATION",
"btnName": "撤回",
"enabled": true
},
{
"btnKey": "BPMN_FORWARD",
"btnName": "转交",
"enabled": true
},
{
"btnKey": "BPMN_COUNTERSIGN",
"btnName": "加签",
"enabled": true
},
{
"btnKey": "BPMN_COMMENT",
"btnName": "评论",
"enabled": true
},
{
"btnKey": "BPMN_ROLLBACK",
"btnName": "回退",
"enabled": true
},
{
"btnKey": "BPMN_COPY",
"btnName": "抄送",
"enabled": true
}
],
"carbonCopy": [
{
"btnKey": "BPMN_APPROVE",
"enabled": true,
"btnName": "同意"
},
{
"btnKey": "BPMN_REJECT",
"btnName": "拒绝",
"enabled": true
},
{
"btnKey": "BPMN_REVOCATION",
"btnName": "撤回",
"enabled": true
},
{
"btnKey": "BPMN_FORWARD",
"btnName": "转交",
"enabled": true
},
{
"btnKey": "BPMN_COUNTERSIGN",
"btnName": "加签",
"enabled": true
},
{
"btnKey": "BPMN_COMMENT",
"btnName": "评论",
"enabled": true
},
{
"btnKey": "BPMN_ROLLBACK",
"btnName": "回退",
"enabled": true
},
{
"btnKey": "BPMN_COPY",
"btnName": "抄送",
"enabled": true
}
],
"history": [
{
"btnKey": "BPMN_APPROVE",
"enabled": true,
"btnName": "同意"
},
{
"btnKey": "BPMN_REJECT",
"btnName": "拒绝",
"enabled": true
},
{
"btnKey": "BPMN_REVOCATION",
"btnName": "撤回",
"enabled": true
},
{
"btnKey": "BPMN_FORWARD",
"btnName": "转交",
"enabled": true
},
{
"btnKey": "BPMN_COUNTERSIGN",
"btnName": "加签",
"enabled": true
},
{
"btnKey": "BPMN_COMMENT",
"btnName": "评论",
"enabled": true
},
{
"btnKey": "BPMN_ROLLBACK",
"btnName": "回退",
"enabled": true
},
{
"btnKey": "BPMN_COPY",
"btnName": "抄送",
"enabled": true
}
],
"current": [
{
"btnKey": "BPMN_APPROVE",
"enabled": true,
"btnName": "同意"
},
{
"btnKey": "BPMN_REJECT",
"btnName": "拒绝",
"enabled": true
},
{
"btnKey": "BPMN_REVOCATION",
"btnName": "撤回",
"enabled": true
},
{
"btnKey": "BPMN_FORWARD",
"btnName": "转交",
"enabled": true
},
{
"btnKey": "BPMN_COUNTERSIGN",
"btnName": "加签",
"enabled": true
},
{
"btnKey": "BPMN_COMMENT",
"btnName": "评论",
"enabled": true
},
{
"btnKey": "BPMN_ROLLBACK",
"btnName": "回退",
"enabled": true
},
{
"btnKey": "BPMN_COPY",
"btnName": "抄送",
"enabled": true
}
]
}
}
},
"tenantId": "296"
}

View File

@ -229,730 +229,9 @@
"parentId": "0",
"type": "NODE_STARTER",
"name": "发起人",
"children": {
"id": "2",
"parentId": "1",
"type": "NODE_TASK",
"name": "一级审批",
"children": {
"id": "3",
"parentId": "2",
"type": "NODE_EXCLUSIVE_GATEWAY",
"name": "排它网关",
"children": {
"id": "11",
"parentId": "3",
"type": "NODE_CARBON_COPY",
"name": "主流程抄送节点",
"children": {
"id": "12",
"parentId": "11",
"type": "NODE_EMPTY",
"name": "结束",
"children": null,
"property": {},
"branches": null
},
"property": null,
"branches": null
},
"branches": [
{
"id": "4",
"parentId": "3",
"type": "NODE_CONDITION",
"name": "条件1",
"property": {
"groups": [
{
"conditionsType": "and",
"conditions": [
{
"fieldDataType": "string",
"fieldCode": "title",
"operator": "contains",
"defaultValue": "测试"
},
{
"fieldDataType": "number",
"fieldCode": "price",
"operator": "eq",
"defaultValue": "2"
}
]
}
],
"defaultBranch": false,
"groupsType": "and"
},
"children": {
"id": "7",
"parentId": "4",
"type": "NODE_TASK",
"name": "条件1审核节点",
"children": {
"id": "8",
"parentId": "7",
"type": "NODE_CARBON_COPY",
"name": "条件1抄送节点",
"children": null,
"property": null,
"branches": null
},
"property": {
"approvalMethod": "autoPassed",
"approverScope": "entWorkspace",
"approverSpecify": "position",
"specifyValue": [
"job1",
"job2"
],
"isMultiTask": "true",
"multiMode": "AND",
"approverEmptyHandleType": "autoPassed",
"fieldPermission": null,
"buttonPermission": {
"initiator": [
{
"btnKey": "BPMN_APPROVE",
"enabled": true,
"btnName": "同意"
},
{
"btnKey": "BPMN_REJECT",
"btnName": "拒绝",
"enabled": true
},
{
"btnKey": "BPMN_REVOCATION",
"btnName": "撤回",
"enabled": true
},
{
"btnKey": "BPMN_FORWARD",
"btnName": "转交",
"enabled": true
},
{
"btnKey": "BPMN_COUNTERSIGN",
"btnName": "加签",
"enabled": true
},
{
"btnKey": "BPMN_COMMENT",
"btnName": "评论",
"enabled": true
},
{
"btnKey": "BPMN_ROLLBACK",
"btnName": "回退",
"enabled": true
},
{
"btnKey": "BPMN_COPY",
"btnName": "抄送",
"enabled": true
}
],
"carbonCopy": [
{
"btnKey": "BPMN_APPROVE",
"enabled": true,
"btnName": "同意"
},
{
"btnKey": "BPMN_REJECT",
"btnName": "拒绝",
"enabled": true
},
{
"btnKey": "BPMN_REVOCATION",
"btnName": "撤回",
"enabled": true
},
{
"btnKey": "BPMN_FORWARD",
"btnName": "转交",
"enabled": true
},
{
"btnKey": "BPMN_COUNTERSIGN",
"btnName": "加签",
"enabled": true
},
{
"btnKey": "BPMN_COMMENT",
"btnName": "评论",
"enabled": true
},
{
"btnKey": "BPMN_ROLLBACK",
"btnName": "回退",
"enabled": true
},
{
"btnKey": "BPMN_COPY",
"btnName": "抄送",
"enabled": true
}
],
"history": [
{
"btnKey": "BPMN_APPROVE",
"enabled": true,
"btnName": "同意"
},
{
"btnKey": "BPMN_REJECT",
"btnName": "拒绝",
"enabled": true
},
{
"btnKey": "BPMN_REVOCATION",
"btnName": "撤回",
"enabled": true
},
{
"btnKey": "BPMN_FORWARD",
"btnName": "转交",
"enabled": true
},
{
"btnKey": "BPMN_COUNTERSIGN",
"btnName": "加签",
"enabled": true
},
{
"btnKey": "BPMN_COMMENT",
"btnName": "评论",
"enabled": true
},
{
"btnKey": "BPMN_ROLLBACK",
"btnName": "回退",
"enabled": true
},
{
"btnKey": "BPMN_COPY",
"btnName": "抄送",
"enabled": true
}
],
"current": [
{
"btnKey": "BPMN_APPROVE",
"enabled": true,
"btnName": "同意"
},
{
"btnKey": "BPMN_REJECT",
"btnName": "拒绝",
"enabled": true
},
{
"btnKey": "BPMN_REVOCATION",
"btnName": "撤回",
"enabled": true
},
{
"btnKey": "BPMN_FORWARD",
"btnName": "转交",
"enabled": true
},
{
"btnKey": "BPMN_COUNTERSIGN",
"btnName": "加签",
"enabled": true
},
{
"btnKey": "BPMN_COMMENT",
"btnName": "评论",
"enabled": true
},
{
"btnKey": "BPMN_ROLLBACK",
"btnName": "回退",
"enabled": true
},
{
"btnKey": "BPMN_COPY",
"btnName": "抄送",
"enabled": true
}
]
}
},
"branches": null
},
"branches": null
},
{
"id": "5",
"parentId": "3",
"type": "NODE_CONDITION",
"name": "条件2",
"property": {
"groups": [
{
"conditionsType": "and",
"conditions": [
{
"fieldDataType": "number",
"fieldCode": "size",
"operator": "between",
"leftValue": "31",
"leftOperator": "le",
"rightValue": "34",
"rightOperator": "gt"
},
{
"fieldDataType": "radio",
"fieldCode": "sex",
"operator": "eq",
"defaultValue": "2"
},
{
"fieldDataType": "checkbox",
"fieldCode": "color",
"operator": "in",
"defaultValues": [
"red",
"blue"
]
}
]
}
],
"defaultBranch": false,
"groupsType": "and"
},
"children": {
"id": "9",
"parentId": "5",
"type": "NODE_BUSINESS",
"name": "条件2业务节点",
"children": {
"id": "10",
"parentId": "9",
"type": "NODE_TASK",
"name": "条件2审批节点",
"children": {
"id": "13",
"parentId": "10",
"type": "NODE_BUSINESS",
"name": "业务节点有审批人",
"property": {
"approvalMethod": "human",
"approverScope": "projectWorkspace",
"approverSpecify": "identity",
"specifyValue": [
"worker",
"team_worker"
],
"isMultiTask": "true",
"multiMode": "AND",
"approverEmptyHandleType": "transferToAdmin",
"fieldPermission": null,
"buttonPermission": null
},
"children": null,
"branches": null
},
"property": {
"approvalMethod": "human",
"approverScope": "projectWorkspace",
"approverSpecify": "position",
"specifyValue": [
"job1",
"job2"
],
"isMultiTask": "true",
"multiMode": "AND",
"approverEmptyHandleType": "autoPassed",
"fieldPermission": null,
"buttonPermission": null
},
"branches": null
},
"property": {
"approvalMethod": "nobody"
},
"branches": null
},
"branches": null
},
{
"id": "6",
"parentId": "3",
"type": "NODE_CONDITION",
"name": "默认条件",
"property": {
"defaultBranch": true
},
"children": null,
"branches": null
}
],
"property": null
},
"branches": null,
"property": {
"approvalMethod": "human",
"approverScope": "projectWorkspace",
"approverSpecify": "position",
"specifyValue": [
"job1",
"job2"
],
"isMultiTask": "true",
"multiMode": "AND",
"approverEmptyHandleType": "autoPassed",
"fieldPermission": null,
"buttonPermission": {
"initiator": [
{
"btnKey": "BPMN_APPROVE",
"enabled": true,
"btnName": "同意"
},
{
"btnKey": "BPMN_REJECT",
"btnName": "拒绝",
"enabled": true
},
{
"btnKey": "BPMN_REVOCATION",
"btnName": "撤回",
"enabled": true
},
{
"btnKey": "BPMN_FORWARD",
"btnName": "转交",
"enabled": true
},
{
"btnKey": "BPMN_COUNTERSIGN",
"btnName": "加签",
"enabled": true
},
{
"btnKey": "BPMN_COMMENT",
"btnName": "评论",
"enabled": true
},
{
"btnKey": "BPMN_ROLLBACK",
"btnName": "回退",
"enabled": true
},
{
"btnKey": "BPMN_COPY",
"btnName": "抄送",
"enabled": true
}
],
"carbonCopy": [
{
"btnKey": "BPMN_APPROVE",
"enabled": true,
"btnName": "同意"
},
{
"btnKey": "BPMN_REJECT",
"btnName": "拒绝",
"enabled": true
},
{
"btnKey": "BPMN_REVOCATION",
"btnName": "撤回",
"enabled": true
},
{
"btnKey": "BPMN_FORWARD",
"btnName": "转交",
"enabled": true
},
{
"btnKey": "BPMN_COUNTERSIGN",
"btnName": "加签",
"enabled": true
},
{
"btnKey": "BPMN_COMMENT",
"btnName": "评论",
"enabled": true
},
{
"btnKey": "BPMN_ROLLBACK",
"btnName": "回退",
"enabled": true
},
{
"btnKey": "BPMN_COPY",
"btnName": "抄送",
"enabled": true
}
],
"history": [
{
"btnKey": "BPMN_APPROVE",
"enabled": true,
"btnName": "同意"
},
{
"btnKey": "BPMN_REJECT",
"btnName": "拒绝",
"enabled": true
},
{
"btnKey": "BPMN_REVOCATION",
"btnName": "撤回",
"enabled": true
},
{
"btnKey": "BPMN_FORWARD",
"btnName": "转交",
"enabled": true
},
{
"btnKey": "BPMN_COUNTERSIGN",
"btnName": "加签",
"enabled": true
},
{
"btnKey": "BPMN_COMMENT",
"btnName": "评论",
"enabled": true
},
{
"btnKey": "BPMN_ROLLBACK",
"btnName": "回退",
"enabled": true
},
{
"btnKey": "BPMN_COPY",
"btnName": "抄送",
"enabled": true
}
],
"current": [
{
"btnKey": "BPMN_APPROVE",
"enabled": true,
"btnName": "同意"
},
{
"btnKey": "BPMN_REJECT",
"btnName": "拒绝",
"enabled": true
},
{
"btnKey": "BPMN_REVOCATION",
"btnName": "撤回",
"enabled": true
},
{
"btnKey": "BPMN_FORWARD",
"btnName": "转交",
"enabled": true
},
{
"btnKey": "BPMN_COUNTERSIGN",
"btnName": "加签",
"enabled": true
},
{
"btnKey": "BPMN_COMMENT",
"btnName": "评论",
"enabled": true
},
{
"btnKey": "BPMN_ROLLBACK",
"btnName": "回退",
"enabled": true
},
{
"btnKey": "BPMN_COPY",
"btnName": "抄送",
"enabled": true
}
]
}
}
},
"children": null,
"branches": null,
"property": {
"buttonPermission": {
"initiator": [
{
"btnKey": "BPMN_APPROVE",
"enabled": true,
"btnName": "同意"
},
{
"btnKey": "BPMN_REJECT",
"btnName": "拒绝",
"enabled": true
},
{
"btnKey": "BPMN_REVOCATION",
"btnName": "撤回",
"enabled": true
},
{
"btnKey": "BPMN_FORWARD",
"btnName": "转交",
"enabled": true
},
{
"btnKey": "BPMN_COUNTERSIGN",
"btnName": "加签",
"enabled": true
},
{
"btnKey": "BPMN_COMMENT",
"btnName": "评论",
"enabled": true
},
{
"btnKey": "BPMN_ROLLBACK",
"btnName": "回退",
"enabled": true
},
{
"btnKey": "BPMN_COPY",
"btnName": "抄送",
"enabled": true
}
],
"carbonCopy": [
{
"btnKey": "BPMN_APPROVE",
"enabled": true,
"btnName": "同意"
},
{
"btnKey": "BPMN_REJECT",
"btnName": "拒绝",
"enabled": true
},
{
"btnKey": "BPMN_REVOCATION",
"btnName": "撤回",
"enabled": true
},
{
"btnKey": "BPMN_FORWARD",
"btnName": "转交",
"enabled": true
},
{
"btnKey": "BPMN_COUNTERSIGN",
"btnName": "加签",
"enabled": true
},
{
"btnKey": "BPMN_COMMENT",
"btnName": "评论",
"enabled": true
},
{
"btnKey": "BPMN_ROLLBACK",
"btnName": "回退",
"enabled": true
},
{
"btnKey": "BPMN_COPY",
"btnName": "抄送",
"enabled": true
}
],
"history": [
{
"btnKey": "BPMN_APPROVE",
"enabled": true,
"btnName": "同意"
},
{
"btnKey": "BPMN_REJECT",
"btnName": "拒绝",
"enabled": true
},
{
"btnKey": "BPMN_REVOCATION",
"btnName": "撤回",
"enabled": true
},
{
"btnKey": "BPMN_FORWARD",
"btnName": "转交",
"enabled": true
},
{
"btnKey": "BPMN_COUNTERSIGN",
"btnName": "加签",
"enabled": true
},
{
"btnKey": "BPMN_COMMENT",
"btnName": "评论",
"enabled": true
},
{
"btnKey": "BPMN_ROLLBACK",
"btnName": "回退",
"enabled": true
},
{
"btnKey": "BPMN_COPY",
"btnName": "抄送",
"enabled": true
}
],
"current": [
{
"btnKey": "BPMN_APPROVE",
"enabled": true,
"btnName": "同意"
},
{
"btnKey": "BPMN_REJECT",
"btnName": "拒绝",
"enabled": true
},
{
"btnKey": "BPMN_REVOCATION",
"btnName": "撤回",
"enabled": true
},
{
"btnKey": "BPMN_FORWARD",
"btnName": "转交",
"enabled": true
},
{
"btnKey": "BPMN_COUNTERSIGN",
"btnName": "加签",
"enabled": true
},
{
"btnKey": "BPMN_COMMENT",
"btnName": "评论",
"enabled": true
},
{
"btnKey": "BPMN_ROLLBACK",
"btnName": "回退",
"enabled": true
},
{
"btnKey": "BPMN_COPY",
"btnName": "抄送",
"enabled": true
}
]
}
}
"property": null
},
"tenantId": "296"
}