From 34d4cdea1eecaa43306e737d8967b412f6dafb8e Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Mon, 22 Dec 2025 10:40:06 +0800 Subject: [PATCH] =?UTF-8?q?feat(REQ-5965)=20-=20=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E5=8D=95=E9=80=89=E5=A4=8D=E7=8E=B0=E6=9D=A1=E4=BB=B6=E7=9A=84?= =?UTF-8?q?=E5=AD=98=E5=82=A8=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/constant/BpmnConstants.java | 2 +- .../request/bpmn/BpmnFieldOptionConf.java | 6 ++--- .../common/utils/BpmnJsonConverterUtil.java | 22 +++++-------------- .../common/utils/BpmnMetaParserHelper.java | 15 +++++-------- 4 files changed, 14 insertions(+), 31 deletions(-) diff --git a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/constant/BpmnConstants.java b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/constant/BpmnConstants.java index f86508f1d..d80694d0c 100644 --- a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/constant/BpmnConstants.java +++ b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/constant/BpmnConstants.java @@ -118,7 +118,7 @@ public interface BpmnConstants { String CONFIG_FIELD_META = "field"; String CONFIG_FIELD_PERMISSION = "fieldPermission"; String CONFIG_CONDITION_PERMISSION = "conditionPermission"; - String CONFIG_FIELD_OPTION = "option"; + String CONFIG_FIELD_OPTIONS = "options"; String CONFIG_NODE_TYPE = "nodeType"; String CONFIG_BUTTON_TYPE_INITIATOR = "initiator"; String CONFIG_BUTTON_TYPE_CURRENT = "current"; diff --git a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/bpmn/BpmnFieldOptionConf.java b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/bpmn/BpmnFieldOptionConf.java index f2f3285a0..9ae48ceed 100644 --- a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/bpmn/BpmnFieldOptionConf.java +++ b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/bpmn/BpmnFieldOptionConf.java @@ -27,7 +27,7 @@ public class BpmnFieldOptionConf implements Serializable { * 选项的值 */ @ApiModelProperty(value = "选项的值", example = "1") - private String value; + private Object value; public String getName() { return name; @@ -37,11 +37,11 @@ public class BpmnFieldOptionConf implements Serializable { this.name = name; } - public String getValue() { + public Object getValue() { return value; } - public void setValue(String value) { + public void setValue(Object value) { this.value = value; } } diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/utils/BpmnJsonConverterUtil.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/utils/BpmnJsonConverterUtil.java index b6eb47d7c..96edea1c4 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/utils/BpmnJsonConverterUtil.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/utils/BpmnJsonConverterUtil.java @@ -90,7 +90,7 @@ import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_BUTTON_TYPE_ import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_BUTTON_TYPE_INITIATOR; 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; +import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_FIELD_OPTIONS; import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_NOTICE; import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_SIGN; import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_SIGN_TYPE; @@ -346,22 +346,10 @@ public final class BpmnJsonConverterUtil { field.addAttribute(fieldCode); if (!CollectionUtils.isEmpty(i.getOptions())) { - i.getOptions().forEach(j -> { - ExtensionElement option = new ExtensionElement(); - option.setName(CONFIG_FIELD_OPTION); - - ExtensionAttribute optionName = new ExtensionAttribute(); - optionName.setName(ELEMENT_ATTRIBUTE_NAME); - optionName.setValue(j.getName()); - option.addAttribute(optionName); - - ExtensionAttribute optionValue = new ExtensionAttribute(); - optionValue.setName(ELEMENT_ATTRIBUTE_VALUE); - optionValue.setValue(j.getValue()); - option.addAttribute(optionValue); - - field.addChildElement(option); - }); + ExtensionAttribute fieldOptions = new ExtensionAttribute(); + fieldCode.setName(CONFIG_FIELD_OPTIONS); + fieldCode.setValue(JSON.toJSONString(i.getOptions())); + field.addAttribute(fieldOptions); } fieldConfigElement.addChildElement(field); }); diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/utils/BpmnMetaParserHelper.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/utils/BpmnMetaParserHelper.java index af85769b5..0547a97d1 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/utils/BpmnMetaParserHelper.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/utils/BpmnMetaParserHelper.java @@ -86,7 +86,7 @@ import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_CARBON_COPY_ import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_CONDITION_PERMISSION; 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; +import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_FIELD_OPTIONS; import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_FIELD_PERMISSION; import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_INITIATOR_LEADER_RANGE_UNIT; import static cn.axzo.workflow.common.constant.BpmnConstants.CONFIG_INITIATOR_SPECIFIED_EXCLUDE_COOPERATE_TYPES; @@ -433,15 +433,9 @@ public final class BpmnMetaParserHelper { conf.setName(i.getAttributeValue(null, ELEMENT_ATTRIBUTE_NAME)); conf.setCode(i.getAttributeValue(null, ELEMENT_ATTRIBUTE_CODE)); - List options = new ArrayList<>(); - if (!CollectionUtils.isEmpty(i.getChildElements())) { - i.getChildElements().get(CONFIG_FIELD_OPTION).forEach(j -> { - BpmnFieldOptionConf option = new BpmnFieldOptionConf(); - option.setName(j.getAttributeValue(null, ELEMENT_ATTRIBUTE_NAME)); - option.setValue(j.getAttributeValue(null, ELEMENT_ATTRIBUTE_VALUE)); - options.add(option); - }); - conf.setOptions(options); + String fieldOptionsJsonStr = i.getAttributeValue(null, CONFIG_FIELD_OPTIONS); + if (StringUtils.hasText(fieldOptionsJsonStr)) { + conf.setOptions(JSON.parseArray(fieldOptionsJsonStr, BpmnFieldOptionConf.class)); } fields.add(conf); @@ -703,6 +697,7 @@ public final class BpmnMetaParserHelper { return defaultValid(flowElement, CONFIG_CONDITION_PERMISSION).map(element -> JSON.parseObject(element.getElementText(), new TypeReference>() { }.getType())); } + public static Optional> getFormFieldPermissionForCalc(FlowElement flowElement) { List fieldMetaInfos = getFormFieldPermissionConf(flowElement).orElse(new ArrayList<>()); return getFormFieldPermissionForModel(fieldMetaInfos);