From 4c64698e7f6a7eda65bda7c1bfcba090b4e2161f Mon Sep 17 00:00:00 2001 From: sunhongfei01 Date: Fri, 10 Apr 2026 17:25:37 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix(vmmanager):=20=E8=A7=A3=E5=86=B3?= =?UTF-8?q?=E9=9B=B6=E4=BB=A3=E7=A0=81=E6=97=A0=E5=85=83=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E8=B7=AF=E5=BE=84=E5=9C=BA=E6=99=AF=E4=B8=8B=E7=9A=84=E5=8C=85?= =?UTF-8?q?=E5=89=8D=E7=BC=80=E8=8E=B7=E5=8F=96=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加对gspMetadata.getRelativePath()为空的判断逻辑 - 在元数据无路径时不获取包前缀,避免空指针异常 - 确保GeneratingAssembly设置的稳定性 - 兼容零代码项目无元数据路径的特殊情况 --- .../vmmanager/metadatacopy/VoMetadataCopyProvider.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/metadatacopy/VoMetadataCopyProvider.java b/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/metadatacopy/VoMetadataCopyProvider.java index 304c741..2aaeaff 100644 --- a/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/metadatacopy/VoMetadataCopyProvider.java +++ b/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/metadatacopy/VoMetadataCopyProvider.java @@ -107,8 +107,9 @@ public class VoMetadataCopyProvider implements MetadataCopySpi { vo.setAuthConfig(null); // 设置新的程序集名称,仅更新命名空间部分 vo.setDotnetGeneratingAssembly(updatedNamespace + suffix); - // 获取包前缀并设置生成的程序集 - String packagePrefix = MetadataProjectUtil.getPackagePrefix(gspMetadata.getRelativePath()); + // 获取包前缀并设置生成的程序集,兼容零代码无元数据路径场景,在元数据无路径时不获取包前缀 + String packagePrefix = StringUtils.isBlank(gspMetadata.getRelativePath())? null : + MetadataProjectUtil.getPackagePrefix(gspMetadata.getRelativePath()); vo.setGeneratingAssembly(HandleAssemblyNameUtil.convertToJavaPackageName(packagePrefix, vo.getDotnetGeneratingAssembly())); // 清除国际化资源信息前缀 this.erasureI18nResourceInfoPrefix(vo); -- Gitee From 48dd3bf377f35c9a8145b22a37610079a8174ffe Mon Sep 17 00:00:00 2001 From: sunhongfei01 Date: Fri, 10 Apr 2026 17:29:11 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix(voguide):=20=E7=A7=BB=E9=99=A4=E6=9C=AA?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E7=9A=84=E4=BB=A3=E7=A0=81=E5=92=8C=E7=AE=80?= =?UTF-8?q?=E5=8C=96=E6=96=B9=E6=B3=95=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 删除了 saveGspVoExtendInfo 调用,元数据框架已提供支持,重复调用会抛出异常 --- .../vmmanager/voguide/VoGuideUtil.java | 35 +++++++++++++------ 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/voguide/VoGuideUtil.java b/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/voguide/VoGuideUtil.java index 54f1259..6bf7363 100644 --- a/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/voguide/VoGuideUtil.java +++ b/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/voguide/VoGuideUtil.java @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2020 - present, Inspur Genersoft Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.inspur.edp.formserver.vmmanager.voguide; import com.fasterxml.jackson.core.JsonProcessingException; @@ -19,6 +35,7 @@ import com.inspur.edp.lcm.metadata.api.entity.MetadataHeader; import com.inspur.edp.metadata.rtcustomization.api.CustomizationService; import io.iec.edp.caf.boot.context.CAFContext; import io.iec.edp.caf.commons.utils.SpringBeanUtils; + import java.util.ArrayList; import java.util.Date; import java.util.HashMap; @@ -38,8 +55,8 @@ public class VoGuideUtil { return instance; } - private String VOGUIDE_VO_METADATATYPE = "GSPViewModel"; - private String VOGUIDE_EXTEND_CONFIG_APPROVAL = "APPROVAL_LOG"; + private final String VOGUIDE_VO_METADATATYPE = "GSPViewModel"; + private final String VOGUIDE_EXTEND_CONFIG_APPROVAL = "APPROVAL_LOG"; // region 服务工具 private AccessoryService accessoryService; @@ -101,8 +118,6 @@ public class VoGuideUtil { MetadataHeader header = createMetadataHeader(vo, bizObjectId, nameSpace); metadata.setHeader(header); getCustomizationService().save(metadata); - // todo:LCM提供保存后扩展前,自行调用 - this.saveGspVoExtendInfo(metadata); return vo.getID(); } @@ -110,8 +125,7 @@ public class VoGuideUtil { * 根据BEMeta获取VOGeneratingAssembly属性 */ public String getVoMetaGeneratingAssembly(GspMetadata beMetadata) { - String beNameSpace = beMetadata.getHeader().getNameSpace(); - return beNameSpace; + return beMetadata.getHeader().getNameSpace(); } /** @@ -122,7 +136,7 @@ public class VoGuideUtil { //提示信息用于前端显示, 用户可以理解编号但很难理解configId, GspVoExtendInfo info = this.getGspVoExtendInfoService().getVoExtendInfoByConfigId(configId); - Boolean checkResult = info == null || info.getId().equals(id); + boolean checkResult = info == null || info.getId().equals(id); if (!checkResult) { throw new ViewModelException(VoManagerErrorCodes.GSP_VIEWOBJECT_MANAGER_0092, null, configId); } @@ -136,7 +150,7 @@ public class VoGuideUtil { //提示信息用于前端显示, 用户可以理解编号但很难理解configId, GspVoExtendInfo info = this.getGspVoExtendInfoService().getVoExtendInfoByConfigId(configId); - Boolean checkResult = info == null || info.getId().equals(id); + boolean checkResult = info == null || info.getId().equals(id); if (!checkResult) { throw new ViewModelException(VoManagerErrorCodes.GSP_VIEWOBJECT_MANAGER_0093, null, code); } @@ -166,7 +180,7 @@ public class VoGuideUtil { if (enableNode == null) { return; } - Boolean enable = enableNode.booleanValue(); + boolean enable = enableNode.booleanValue(); if (!enable) { return; } @@ -203,8 +217,7 @@ public class VoGuideUtil { if (!configs.containsKey(key)) { return ""; } - String config = configs.get(key); - return config; + return configs.get(key); } private MetadataHeader createMetadataHeader(GspViewModel vo, String bizObjectId, -- Gitee From 599de7b296ccb16f849fb45480b65b2502f80282 Mon Sep 17 00:00:00 2001 From: sunhongfei01 Date: Fri, 10 Apr 2026 17:30:06 +0800 Subject: [PATCH 3/3] =?UTF-8?q?feat(LinkBeUtils):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E7=A9=BA=E5=B1=9E=E6=80=A7=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - LinkBE添加了对业务元素默认空属性的同步,此属性对VO无意义,但是需要支持表单对此属性的变更 --- .../inspur/edp/formserver/viewmodel/common/LinkBeUtils.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/view-object-model/src/main/java/com/inspur/edp/formserver/viewmodel/common/LinkBeUtils.java b/view-object-model/src/main/java/com/inspur/edp/formserver/viewmodel/common/LinkBeUtils.java index 69eddaf..d1c28b0 100644 --- a/view-object-model/src/main/java/com/inspur/edp/formserver/viewmodel/common/LinkBeUtils.java +++ b/view-object-model/src/main/java/com/inspur/edp/formserver/viewmodel/common/LinkBeUtils.java @@ -381,6 +381,9 @@ public class LinkBeUtils { ele.setUdtName(bizElement.getUdtName()); ele.setUdtPkgName(bizElement.getUdtPkgName()); + // 是否默认为空属性,VO字段本身不使用此属性.运行时定制场景需要支持表单获取BE字段实际配置。 + ele.setIsDefaultNull(bizElement.getIsDefaultNull()); + GspFieldCollection beChildEles = bizElement.getChildElements(); GspFieldCollection voChildEles = ele.getChildElements(); if (beChildEles.size() != voChildEles.size()) { -- Gitee