add - 添加抄送的元数据配置
This commit is contained in:
parent
0962cca8a9
commit
0f1cb771df
@ -3,6 +3,7 @@ package cn.axzo.workflow.core.common.utils;
|
||||
import cn.axzo.workflow.common.enums.ApprovalMethodEnum;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.BpmnButtonConf;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.BpmnButtonMetaInfo;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.BpmnCarbonCopyConf;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.BpmnFieldConf;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.BpmnJsonModel;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.BpmnJsonNode;
|
||||
@ -58,6 +59,7 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_BUTTON;
|
||||
@ -561,6 +563,9 @@ public final class BpmnJsonConverterUtil {
|
||||
|
||||
convertToJson(bpmnModel);
|
||||
|
||||
ServiceTask serviceTask = (ServiceTask) bpmnModel.getFlowElement("node_197955885847");
|
||||
Optional<List<BpmnCarbonCopyConf>> carbonCopyConfigs = BpmnMetaParserHelper.getCarbonCopyConfigs(serviceTask);
|
||||
|
||||
transformBytes(bpmnModel);
|
||||
generateImage(bpmnModel);
|
||||
}
|
||||
|
||||
@ -5,8 +5,10 @@ import cn.axzo.workflow.common.enums.ApproverEmptyHandleTypeEnum;
|
||||
import cn.axzo.workflow.common.enums.ApproverScopeEnum;
|
||||
import cn.axzo.workflow.common.enums.ApproverSpecifyEnum;
|
||||
import cn.axzo.workflow.common.enums.BpmnFlowNodeType;
|
||||
import cn.axzo.workflow.common.enums.CarbonCopyObjectType;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.BpmnButtonConf;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.BpmnButtonMetaInfo;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.BpmnCarbonCopyConf;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.BpmnFieldConf;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.BpmnFieldOptionConf;
|
||||
import cn.axzo.workflow.common.model.request.bpmn.BpmnNoticeConf;
|
||||
@ -42,6 +44,11 @@ import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_BUTTON_TYPE_
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_BUTTON_TYPE_CURRENT;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_BUTTON_TYPE_HISTORY;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_BUTTON_TYPE_INITIATOR;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_CARBON_COPIES;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_CARBON_COPY;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_CARBON_COPY_OBJECT;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_CARBON_COPY_SPECIFY;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_CARBON_COPY_TEMPLATE_CODE;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_FIELD;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_FIELD_META;
|
||||
import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_FIELD_OPTION;
|
||||
@ -73,6 +80,12 @@ public final class BpmnMetaParserHelper {
|
||||
return Optional.ofNullable(process.getAttributeValue(null, FLOW_SERVER_VERSION));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取流程模型全局兜底的消息模板相关配置
|
||||
*
|
||||
* @param process
|
||||
* @return
|
||||
*/
|
||||
public static Optional<BpmnNoticeConf> getNoticeConfig(Process process) {
|
||||
List<ExtensionElement> elements = process.getExtensionElements().getOrDefault(CONFIG_NOTICE,
|
||||
Collections.emptyList());
|
||||
@ -116,6 +129,47 @@ public final class BpmnMetaParserHelper {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取抄送节点(ServiceTask) 下的抄送配置元数据
|
||||
* <p>
|
||||
* 目前抄送统一使用 ServiceTask 来实现
|
||||
*
|
||||
* @param serviceTask
|
||||
* @return
|
||||
*/
|
||||
public static Optional<List<BpmnCarbonCopyConf>> getCarbonCopyConfigs(ServiceTask serviceTask) {
|
||||
return parseCarbonCopyConfig(serviceTask.getExtensionElements().getOrDefault(CONFIG_CARBON_COPIES,
|
||||
Collections.emptyList()));
|
||||
}
|
||||
|
||||
private static Optional<List<BpmnCarbonCopyConf>> parseCarbonCopyConfig(List<ExtensionElement> elements) {
|
||||
if (CollectionUtils.isEmpty(elements) || CollectionUtils.isEmpty(elements.get(0).getChildElements())) {
|
||||
return Optional.empty();
|
||||
}
|
||||
List<BpmnCarbonCopyConf> confs = new ArrayList<>();
|
||||
elements.get(0).getChildElements().get(CONFIG_CARBON_COPY).forEach(e -> {
|
||||
BpmnCarbonCopyConf bpmnCarbonCopyConf = new BpmnCarbonCopyConf();
|
||||
buildCarbonCopyConfig(e, bpmnCarbonCopyConf);
|
||||
confs.add(bpmnCarbonCopyConf);
|
||||
});
|
||||
return Optional.of(confs);
|
||||
}
|
||||
|
||||
private static void buildCarbonCopyConfig(ExtensionElement element, BpmnCarbonCopyConf bpmnCarbonCopyConf) {
|
||||
String carbonCopyObject =
|
||||
element.getChildElements().get(CONFIG_CARBON_COPY_OBJECT).get(0).getAttributeValue(null,
|
||||
ELEMENT_ATTRIBUTE_VALUE);
|
||||
bpmnCarbonCopyConf.setCarbonCopyObjectType(CarbonCopyObjectType.valueOfType(carbonCopyObject));
|
||||
|
||||
String carbonCopySpecify = element.getChildElements().get(CONFIG_CARBON_COPY_SPECIFY).get(0).getElementText();
|
||||
bpmnCarbonCopyConf.setSpecifyValue(carbonCopySpecify);
|
||||
|
||||
String carbonCopyTemplateCode =
|
||||
element.getChildElements().get(CONFIG_CARBON_COPY_TEMPLATE_CODE).get(0).getAttributeValue(null,
|
||||
ELEMENT_ATTRIBUTE_VALUE);
|
||||
bpmnCarbonCopyConf.setTemplateCode(carbonCopyTemplateCode);
|
||||
}
|
||||
|
||||
public static Optional<BpmnButtonConf> getButtonConfig(Process process) {
|
||||
return parseButtonConfig(process.getExtensionElements().getOrDefault(CONFIG_BUTTON, Collections.emptyList()));
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user