From a8750cfe608178682eccbfdcf7ff132782b26c0d Mon Sep 17 00:00:00 2001 From: yuanxiangyu Date: Tue, 21 May 2024 08:43:42 +0800 Subject: [PATCH 01/10] =?UTF-8?q?VO=E9=9B=86=E6=88=90=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E9=85=8D=E7=BD=AE=E9=97=AE=E9=A2=98=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../viewmodel/formentity/Attachment.java | 16 ++++++++++ .../viewmodel/formentity/VoFormModel.java | 5 +++ .../VoBuildFormFormatServiceImpl.java | 19 ++++++++--- .../viewmodel/webapi/ViewModelController.java | 32 ++++++++++++------- 4 files changed, 56 insertions(+), 16 deletions(-) create mode 100644 view-object-model/src/main/java/com/inspur/edp/formserver/viewmodel/formentity/Attachment.java diff --git a/view-object-model/src/main/java/com/inspur/edp/formserver/viewmodel/formentity/Attachment.java b/view-object-model/src/main/java/com/inspur/edp/formserver/viewmodel/formentity/Attachment.java new file mode 100644 index 0000000..606f349 --- /dev/null +++ b/view-object-model/src/main/java/com/inspur/edp/formserver/viewmodel/formentity/Attachment.java @@ -0,0 +1,16 @@ +package com.inspur.edp.formserver.viewmodel.formentity; + + +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +@Getter +@Setter +public class Attachment { + private String id; + private String name; + private String type; + private List configurableAttrs; +} diff --git a/view-object-model/src/main/java/com/inspur/edp/formserver/viewmodel/formentity/VoFormModel.java b/view-object-model/src/main/java/com/inspur/edp/formserver/viewmodel/formentity/VoFormModel.java index 2a88d05..4efd5de 100644 --- a/view-object-model/src/main/java/com/inspur/edp/formserver/viewmodel/formentity/VoFormModel.java +++ b/view-object-model/src/main/java/com/inspur/edp/formserver/viewmodel/formentity/VoFormModel.java @@ -18,6 +18,7 @@ public class VoFormModel { private List buttonGroup; private ObjectData objectAuthInfo; private List methodGroup; + private List attachmentGroup; public void setId(String id) { @@ -68,4 +69,8 @@ public class VoFormModel { this.projectPath = projectPath; } + public void setAttachmentGroup(List attachmentGroup) { + this.attachmentGroup = attachmentGroup; + } + } diff --git a/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/buildformformat/VoBuildFormFormatServiceImpl.java b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/buildformformat/VoBuildFormFormatServiceImpl.java index 5917d92..3ff2c60 100644 --- a/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/buildformformat/VoBuildFormFormatServiceImpl.java +++ b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/buildformformat/VoBuildFormFormatServiceImpl.java @@ -1,5 +1,7 @@ package com.inspur.edp.formserver.viewmodel.core.buildformformat; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; import com.inspur.edp.cef.designtime.api.IGspCommonField; import com.inspur.edp.cef.designtime.api.element.GspElementDataType; import com.inspur.edp.cef.designtime.api.variable.CommonVariable; @@ -83,6 +85,16 @@ public class VoBuildFormFormatServiceImpl implements VoBuildFormFormatService { List formMethods = buildMethod(methodGroups, formId); format.setFormMethods(formMethods); } + if(voFormModel.getAttachmentGroup() != null && !voFormModel.getAttachmentGroup().isEmpty()){ + ObjectMapper attachmentMapper = new ObjectMapper(); + try{ + String attachmentJson = attachmentMapper.writeValueAsString(voFormModel.getAttachmentGroup()); + format.setExtendParameters(attachmentJson); + } + catch (JsonProcessingException e){ + throw new ViewModelException("", "NotGetAttachment", "表单传入的附件信息序列化失败", null, ExceptionLevel.Error, false); + } + } //检测已建表单VO内是否存在对应流程自定义变量 checkFormConfigID(voId, voFormModel.getProjectPath()); //调用流程rpc服务推送 @@ -169,15 +181,14 @@ public class VoBuildFormFormatServiceImpl implements VoBuildFormFormatService { */ private FormFieldData buildFieldData(ObjectData objectData, String formFormatId) { FormFieldData formFieldData = createTableData(objectData); - if (objectData.getElements() == null || objectData.getElements().isEmpty()) { - return formFieldData; - } //当前表节点下包含的字段信息 List elements = objectData.getElements(); //建立表单格式上对应的children字段存放表单传递过来的字段信息 List children = new ArrayList<>(); //主表字段信息转换,得到加入主表字段信息的children - elements.forEach(element -> addElementData(element, children, formFormatId, null)); + if (elements != null && !elements.isEmpty()) { + elements.forEach(element -> addElementData(element, children, formFormatId, null)); + } //获取子表数组信息 List childObjects = objectData.getChildObjects(); if (childObjects != null && !childObjects.isEmpty()) { diff --git a/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/webapi/ViewModelController.java b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/webapi/ViewModelController.java index e2ff760..ce76f8d 100644 --- a/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/webapi/ViewModelController.java +++ b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/webapi/ViewModelController.java @@ -59,6 +59,7 @@ import com.inspur.edp.lcm.metadata.api.service.MetadataProjectService; import com.inspur.edp.lcm.metadata.api.service.MetadataService; import com.inspur.edp.lcm.metadata.api.service.RefCommonService; import com.inspur.edp.web.help.metadata.HelpMetadataContent; +import io.iec.edp.caf.boot.context.CAFContext; import io.iec.edp.caf.commons.utils.SpringBeanUtils; import lombok.var; @@ -606,18 +607,25 @@ public class ViewModelController { // 联动vo的关联带出字段枚举信息 LinkBeUtils linkBeUtils = new LinkBeUtils(); linkBeUtils.linkBeRefElements(vm); - if (enableProcessItem.equals("1")) { - CommonVariable variable = new CommonVariable(); - variable.setID(UUID.randomUUID().toString()); - variable.setCode("bffSysFormConfigId"); - variable.setLabelID("bffSysFormConfigId"); - variable.setName("表单流程配置"); - variable.setMDataType(GspElementDataType.forValue(0)); - variable.setLength(36); - vm.getVariables().getContainElements().addField(variable); - } - return new ObjectMapper().writeValueAsString(vm); - } catch (JsonProcessingException e) { + String currentLanguage = CAFContext.current.getLanguage(); + if (enableProcessItem.equals("1")) { + CommonVariable variable = new CommonVariable(); + variable.setID(UUID.randomUUID().toString()); + variable.setCode("bffSysFormConfigId"); + variable.setLabelID("bffSysFormConfigId"); + if (currentLanguage.equals("zh-CHS")){ + variable.setName("表单流程配置"); + } else if (currentLanguage.equals("en")) { + variable.setName("Form Process Configuration"); + }else { + variable.setName("表單流程配置"); + } + variable.setMDataType(GspElementDataType.forValue(0)); + variable.setLength(36); + vm.getVariables().getContainElements().addField(variable); + } + return new ObjectMapper().writeValueAsString(vm); + } catch (JsonProcessingException e) { throw new ViewModelException(VoWebApiErrorCodes.GSP_VIEWOBJECT_WEBAPI_1023, e); } } -- Gitee From e7ec4ba374e7d8804e69e710732fc078fa104c06 Mon Sep 17 00:00:00 2001 From: hanll02 Date: Tue, 21 May 2024 11:07:29 +0800 Subject: [PATCH 02/10] =?UTF-8?q?=E5=BC=82=E5=B8=B8=E5=9B=BD=E9=99=85?= =?UTF-8?q?=E5=8C=96=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../formserver/vmmanager/service/WebControllerService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/service/WebControllerService.java b/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/service/WebControllerService.java index c213946..93d09dc 100644 --- a/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/service/WebControllerService.java +++ b/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/service/WebControllerService.java @@ -182,7 +182,7 @@ public class WebControllerService { } var originVoRefElements = originVoAsso.getRefElementCollection(); - GspMetadata metadata = getMetadata(node, path, refModelPkgName, refModelId); + bGspMetadata metadata = getMetadata(node, path, refModelPkgName, refModelId); GspBusinessEntity be = (GspBusinessEntity) metadata.getContent(); ArrayList bizRefElements = be.getAllElementList(true); GspElementCollection refElements = new GspElementCollection(null); @@ -217,7 +217,7 @@ public class WebControllerService { Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(voElementLabelId.trim()); boolean isMatch = matcher.matches(); - if (!isMatch) { + if (isMatch) { throw new ViewModelException(VoManagerErrorCodes.GSP_VIEWOBJECT_MANAGER_0102,null); } } -- Gitee From 12d000103818a25b41ab35831dadf04ec3febbfd Mon Sep 17 00:00:00 2001 From: hanll02 Date: Tue, 21 May 2024 11:11:43 +0800 Subject: [PATCH 03/10] =?UTF-8?q?=E5=BC=82=E5=B8=B8=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../edp/formserver/vmmanager/service/WebControllerService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/service/WebControllerService.java b/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/service/WebControllerService.java index 93d09dc..cfb37a9 100644 --- a/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/service/WebControllerService.java +++ b/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/service/WebControllerService.java @@ -182,7 +182,7 @@ public class WebControllerService { } var originVoRefElements = originVoAsso.getRefElementCollection(); - bGspMetadata metadata = getMetadata(node, path, refModelPkgName, refModelId); + GspMetadata metadata = getMetadata(node, path, refModelPkgName, refModelId); GspBusinessEntity be = (GspBusinessEntity) metadata.getContent(); ArrayList bizRefElements = be.getAllElementList(true); GspElementCollection refElements = new GspElementCollection(null); -- Gitee From d367bc05733800e9c9574b74c18bffc3b47754c8 Mon Sep 17 00:00:00 2001 From: yuanxiangyu Date: Tue, 21 May 2024 11:46:17 +0800 Subject: [PATCH 04/10] =?UTF-8?q?VO=E9=9B=86=E6=88=90=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E9=85=8D=E7=BD=AE=E9=97=AE=E9=A2=98=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../VoBuildFormFormatServiceImpl.java | 20 ++-------- .../viewmodel/webapi/ViewModelController.java | 38 +++++++++---------- 2 files changed, 23 insertions(+), 35 deletions(-) diff --git a/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/buildformformat/VoBuildFormFormatServiceImpl.java b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/buildformformat/VoBuildFormFormatServiceImpl.java index 3ff2c60..54846ac 100644 --- a/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/buildformformat/VoBuildFormFormatServiceImpl.java +++ b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/buildformformat/VoBuildFormFormatServiceImpl.java @@ -1,7 +1,5 @@ package com.inspur.edp.formserver.viewmodel.core.buildformformat; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; import com.inspur.edp.cef.designtime.api.IGspCommonField; import com.inspur.edp.cef.designtime.api.element.GspElementDataType; import com.inspur.edp.cef.designtime.api.variable.CommonVariable; @@ -85,16 +83,6 @@ public class VoBuildFormFormatServiceImpl implements VoBuildFormFormatService { List formMethods = buildMethod(methodGroups, formId); format.setFormMethods(formMethods); } - if(voFormModel.getAttachmentGroup() != null && !voFormModel.getAttachmentGroup().isEmpty()){ - ObjectMapper attachmentMapper = new ObjectMapper(); - try{ - String attachmentJson = attachmentMapper.writeValueAsString(voFormModel.getAttachmentGroup()); - format.setExtendParameters(attachmentJson); - } - catch (JsonProcessingException e){ - throw new ViewModelException("", "NotGetAttachment", "表单传入的附件信息序列化失败", null, ExceptionLevel.Error, false); - } - } //检测已建表单VO内是否存在对应流程自定义变量 checkFormConfigID(voId, voFormModel.getProjectPath()); //调用流程rpc服务推送 @@ -181,12 +169,12 @@ public class VoBuildFormFormatServiceImpl implements VoBuildFormFormatService { */ private FormFieldData buildFieldData(ObjectData objectData, String formFormatId) { FormFieldData formFieldData = createTableData(objectData); - //当前表节点下包含的字段信息 - List elements = objectData.getElements(); //建立表单格式上对应的children字段存放表单传递过来的字段信息 List children = new ArrayList<>(); - //主表字段信息转换,得到加入主表字段信息的children - if (elements != null && !elements.isEmpty()) { + if (objectData.getElements() != null) { + //当前表节点下包含的字段信息 + List elements = objectData.getElements(); + //主表字段信息转换,得到加入主表字段信息的children elements.forEach(element -> addElementData(element, children, formFormatId, null)); } //获取子表数组信息 diff --git a/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/webapi/ViewModelController.java b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/webapi/ViewModelController.java index ce76f8d..abcce24 100644 --- a/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/webapi/ViewModelController.java +++ b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/webapi/ViewModelController.java @@ -607,25 +607,25 @@ public class ViewModelController { // 联动vo的关联带出字段枚举信息 LinkBeUtils linkBeUtils = new LinkBeUtils(); linkBeUtils.linkBeRefElements(vm); - String currentLanguage = CAFContext.current.getLanguage(); - if (enableProcessItem.equals("1")) { - CommonVariable variable = new CommonVariable(); - variable.setID(UUID.randomUUID().toString()); - variable.setCode("bffSysFormConfigId"); - variable.setLabelID("bffSysFormConfigId"); - if (currentLanguage.equals("zh-CHS")){ - variable.setName("表单流程配置"); - } else if (currentLanguage.equals("en")) { - variable.setName("Form Process Configuration"); - }else { - variable.setName("表單流程配置"); - } - variable.setMDataType(GspElementDataType.forValue(0)); - variable.setLength(36); - vm.getVariables().getContainElements().addField(variable); - } - return new ObjectMapper().writeValueAsString(vm); - } catch (JsonProcessingException e) { + String currentLanguage = CAFContext.current.getLanguage(); + if (enableProcessItem.equals("1")) { + CommonVariable variable = new CommonVariable(); + variable.setID(UUID.randomUUID().toString()); + variable.setCode("bffSysFormConfigId"); + variable.setLabelID("bffSysFormConfigId"); + if (currentLanguage.equals("zh-CHS")){ + variable.setName("表单流程配置"); + } else if (currentLanguage.equals("en")) { + variable.setName("Form Process Configuration"); + }else { + variable.setName("表單流程配置"); + } + variable.setMDataType(GspElementDataType.forValue(0)); + variable.setLength(36); + vm.getVariables().getContainElements().addField(variable); + } + return new ObjectMapper().writeValueAsString(vm); + } catch (JsonProcessingException e) { throw new ViewModelException(VoWebApiErrorCodes.GSP_VIEWOBJECT_WEBAPI_1023, e); } } -- Gitee From 2e2d0133b785816c95b309992b7e32d3517a7f97 Mon Sep 17 00:00:00 2001 From: hanll02 Date: Thu, 6 Jun 2024 13:59:50 +0800 Subject: [PATCH 05/10] =?UTF-8?q?vo=E5=8A=A8=E4=BD=9C=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E8=81=94=E5=8A=A8be=E5=8A=A8=E4=BD=9C=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E6=8A=A5=E9=94=99=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../viewmodel/common/ConvertUtils.java | 2 +- .../viewmodel/common/LinkBeUtils.java | 116 +++++++++++++++--- 2 files changed, 99 insertions(+), 19 deletions(-) diff --git a/view-object-model/src/main/java/com/inspur/edp/formserver/viewmodel/common/ConvertUtils.java b/view-object-model/src/main/java/com/inspur/edp/formserver/viewmodel/common/ConvertUtils.java index 51e766e..2b9d5d2 100644 --- a/view-object-model/src/main/java/com/inspur/edp/formserver/viewmodel/common/ConvertUtils.java +++ b/view-object-model/src/main/java/com/inspur/edp/formserver/viewmodel/common/ConvertUtils.java @@ -768,7 +768,7 @@ public final class ConvertUtils { } private static void transViewModelParameter(ViewModelParameter vmParam, IBizParameter param) { - vmParam.setID(Guid.newGuid().toString()); + vmParam.setID(param.getID()); vmParam.setAssembly(param.getAssembly()); vmParam.setClassName(param.getClassName()); vmParam.setDotnetClassName(((BizParameter) param).getNetClassName()); 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 ed9c68a..c9acbd5 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 @@ -20,10 +20,12 @@ import com.inspur.edp.formserver.viewmodel.DotNetToJavaStringHelper; import com.inspur.edp.formserver.viewmodel.GspViewModel; import com.inspur.edp.formserver.viewmodel.GspViewModelElement; import com.inspur.edp.formserver.viewmodel.GspViewObject; +import com.inspur.edp.formserver.viewmodel.action.IViewModelParameterCollection; import com.inspur.edp.formserver.viewmodel.action.MappedBizAction; import com.inspur.edp.formserver.viewmodel.action.ViewModelAction; import com.inspur.edp.formserver.viewmodel.action.ViewModelActionType; import com.inspur.edp.formserver.viewmodel.action.mappedbiz.MappedBizActionParameter; +import com.inspur.edp.formserver.viewmodel.action.mappedbiz.MappedBizActionParameterCollection; import com.inspur.edp.formserver.viewmodel.action.viewmodelbase.ViewModelReturnValue; import com.inspur.edp.formserver.viewmodel.collection.VMActionCollection; import com.inspur.edp.formserver.viewmodel.collection.ViewObjectCollection; @@ -546,27 +548,27 @@ public class LinkBeUtils { GspBusinessEntity be = null; be = getBizEntity(vm, vm.getMapping().getTargetMetadataId()); if (mappedBeActions.size() > 0) { - for (ViewModelAction action : mappedBeActions) { - ViewModelMapping mapping = action.getMapping(); + for (ViewModelAction voAction : mappedBeActions) { + ViewModelMapping mapping = voAction.getMapping(); if (mapping == null || mapping.getTargetObjId() == null || "".equals(mapping.getTargetObjId())) continue; String actionId = mapping.getTargetObjId(); BizMgrAction mgrAction = (BizMgrAction) be.getBizMgrActions().getItem(item -> actionId.equals(item.getID())); if (mgrAction == null) { - vm.getActions().remove(action); + vm.getActions().remove(voAction); continue; } - MappedBizAction tranAction = ConvertUtils.toMappedAction(mgrAction, action.getMapping().getTargetMetadataId(), null); - linkWithMgrAction(action, tranAction); + MappedBizAction beAction = ConvertUtils.toMappedAction(mgrAction, voAction.getMapping().getTargetMetadataId(), null); + linkWithMgrAction(voAction, beAction); } } } - public void linkWithMgrAction(ViewModelAction targetAction, MappedBizAction sourceAction) { - targetAction.setCode(sourceAction.getCode()); - targetAction.setName(sourceAction.getName()); - linkParameters(targetAction, sourceAction); - linkReturnValue(targetAction, sourceAction); + public void linkWithMgrAction(ViewModelAction voAction, MappedBizAction beAction) { + voAction.setCode(beAction.getCode()); + voAction.setName(beAction.getName()); + linkParameters(voAction, beAction); + linkReturnValue(voAction, beAction); // targetAction.getParameterCollection().clear(); // if (sourceAction.getParameterCollection().getCount() > 0) // for (int i = 0; i < sourceAction.getParameterCollection().getCount(); i++) { @@ -576,17 +578,95 @@ public class LinkBeUtils { // targetAction.setReturnValue(sourceAction.getReturnValue()); } - private void linkParameters(ViewModelAction targetAction, MappedBizAction sourceAction) { - if (targetAction.getParameterCollection().getCount() == 0 && sourceAction.getParameterCollection().getCount() == 0) + /** + * vo上联动be的参数 + * @param voAction + * @param beAction + */ + private void linkParameters(ViewModelAction voAction, MappedBizAction beAction) { + //vo上的业务实体映射操作参数列表 + IViewModelParameterCollection voParams = voAction.getParameterCollection(); + //be上的动作参数列表 + IViewModelParameterCollection beParams = beAction.getParameterCollection(); + //如果be上的参数为空, be上把参数都去掉了,此时vo上的参数需要直接清空 + if (beParams.getCount()==0) { + voParams.clear(); + return; + } + //1、vo上的动作参数和be上的动作参数个数保持一致 + //2、vo上的动作参数比be上的动作参数少 be上新增参数 + if (voParams.getCount()<=beParams.getCount()) { + linkAddedParameter(beParams,voParams); return; - for (int i = 0; i < targetAction.getParameterCollection().getCount(); i++) { - MappedBizActionParameter parameter = (MappedBizActionParameter) sourceAction.getParameterCollection().getItem(i); - parameter.setID(targetAction.getParameterCollection().getItem(i).getID()); } - targetAction.getParameterCollection().clear(); - for (int i = 0; i < sourceAction.getParameterCollection().getCount(); i++) { - targetAction.getParameterCollection().add(sourceAction.getParameterCollection().getItem(i)); + //3、vo上的动作参数比be上的动作参数多 be上删除了参数 + linkDeletedParameter(beParams,voParams); + } + + /** + * 处理be上删除参数以及修改参数编号的场景 + * @param beParams be动作参数集合 + * @param voParams vo动作参数集合 + */ + private void linkDeletedParameter(IViewModelParameterCollection beParams, IViewModelParameterCollection voParams) { + //构造map集合,be和vo上的动作参数编号有哪些保持一致 + Map usedParamDic=new HashMap<>(); + for (int i = 0; i < voParams.getCount(); i++) { + MappedBizActionParameter voParam = (MappedBizActionParameter) voParams.getItem(i); + MappedBizActionParameter beParam = (MappedBizActionParameter) beParams.stream(). + filter(item -> voParam.getParamCode().equals(((MappedBizActionParameter) item).getParamCode())). + findFirst().orElse(null); + if (beParam!=null) { + //vo和be动作参数编号一致的参数 + usedParamDic.put(voParam.getParamCode(), voParam.getID()); + } + } + //vo上的动作参数编号和be上的动作参数编号,完全不一致了,be上修改了所有参数的编号 + //usedParamDic个数为0时,be上修改了所有动作参数的编号,默认按照vo上的参数顺序,重新赋值id + if (usedParamDic.size()==0){ + for (int i = 0; i < voParams.getCount(); i++) { + MappedBizActionParameter voParam = (MappedBizActionParameter) voParams.getItem(i); + MappedBizActionParameter beParam = (MappedBizActionParameter) beParams.getItem(i); + if (beParam!=null) { + beParam.setID(voParam.getID()); + } + } + voParams.clear(); + voParams.addAll(beParams); + return; + } + //vo上的动作参数编号和be上的动作参数编号一致的,按照vo上动作参数编号对应的id赋值 + //vo上的部分动作参数编号和be上的动作参数编号不一致的, be上修改了部分参数的编号,此时按照be上的动作参数id赋值 + for (int i = 0; i < beParams.getCount(); i++) { + MappedBizActionParameter beParam = (MappedBizActionParameter) beParams.getItem(i); + if (usedParamDic.containsKey(beParam.getParamCode())) + beParam.setID(usedParamDic.get(beParam.getParamCode())); + } + voParams.clear(); + voParams.addAll(beParams); + } + + /** + * 处理参数个数一致修改参数编号以及新增参数的场景 + * @param beParams be动作参数集合 + * @param voParams vo动作参数集合 + */ + private void linkAddedParameter(IViewModelParameterCollection beParams, IViewModelParameterCollection voParams) { + IViewModelParameterCollection newVoParams=new MappedBizActionParameterCollection(); + for (int i = 0; i < beParams.getCount(); i++) { + MappedBizActionParameter beParam = (MappedBizActionParameter) beParams.getItem(i); + MappedBizActionParameter voParam = (MappedBizActionParameter) voParams.getItem(i); + //be上新增的动作参数,vo上添加新参数 + if (voParam == null) { + newVoParams.add(beParam); + } else { + //参数个数一致的情况,回写vo上的原动作参数id + beParam.setID(voParam.getID()); + newVoParams.add(beParam); + } } + voParams.clear(); + voParams.addAll(newVoParams); } private void linkReturnValue(ViewModelAction targetAction, MappedBizAction sourceAction) { -- Gitee From 8088281729c9ead2429fa641af8c0d0b92e45d3b Mon Sep 17 00:00:00 2001 From: yuanxiangyu Date: Thu, 27 Jun 2024 08:54:59 +0800 Subject: [PATCH 06/10] =?UTF-8?q?=E8=A1=A8=E5=8D=95=E9=9B=86=E6=88=90?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E9=85=8D=E7=BD=AE=E5=B0=86=E4=BC=A0=E5=85=A5?= =?UTF-8?q?=E7=9A=84=E4=B8=9A=E5=8A=A1=E5=AF=B9=E8=B1=A1=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E4=B8=9A=E5=8A=A1=E7=A7=8D=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- view-object-webapi/pom.xml | 2 +- .../VoBuildFormFormatConfig.java | 5 +++-- .../VoBuildFormFormatServiceImpl.java | 20 +++++++++++++++++-- .../viewmodel/webapi/ViewModelController.java | 6 +++--- 4 files changed, 25 insertions(+), 8 deletions(-) diff --git a/view-object-webapi/pom.xml b/view-object-webapi/pom.xml index b59cac7..2fd8612 100644 --- a/view-object-webapi/pom.xml +++ b/view-object-webapi/pom.xml @@ -61,7 +61,7 @@ com.inspur.edp metadata-businesstype-api - 0.1.2 + 0.1.3 compile diff --git a/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/buildformformat/VoBuildFormFormatConfig.java b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/buildformformat/VoBuildFormFormatConfig.java index e03c870..74d1b87 100644 --- a/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/buildformformat/VoBuildFormFormatConfig.java +++ b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/buildformformat/VoBuildFormFormatConfig.java @@ -2,13 +2,14 @@ package com.inspur.edp.formserver.viewmodel.core.buildformformat; import com.inspur.edp.formserver.vmapi.formconfig.VoBuildFormFormatService; import com.inspur.edp.lcm.metadata.api.service.MetadataService; +import com.inspur.edp.metadata.businesstype.api.MdBizTypeMappingService; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration("com.inspur.edp.formserver.viewmodel.core.buildformformat.VoBuildFormFormatConfig") public class VoBuildFormFormatConfig { @Bean("com.inspur.edp.formserver.vmmanager.config.VMManagerConfig.BuildFormFormat()") - public VoBuildFormFormatService getBuildFormFormat(MetadataService metadataService) { - return new VoBuildFormFormatServiceImpl(metadataService); + public VoBuildFormFormatService getBuildFormFormat(MetadataService metadataService, MdBizTypeMappingService mdBizTypeMappingService) { + return new VoBuildFormFormatServiceImpl(metadataService, mdBizTypeMappingService); } } diff --git a/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/buildformformat/VoBuildFormFormatServiceImpl.java b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/buildformformat/VoBuildFormFormatServiceImpl.java index 54846ac..66583ca 100644 --- a/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/buildformformat/VoBuildFormFormatServiceImpl.java +++ b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/buildformformat/VoBuildFormFormatServiceImpl.java @@ -10,12 +10,17 @@ import com.inspur.edp.formserver.viewmodel.formentity.*; import com.inspur.edp.formserver.vmapi.formconfig.VoBuildFormFormatService; import com.inspur.edp.lcm.metadata.api.entity.GspMetadata; import com.inspur.edp.lcm.metadata.api.service.MetadataService; +import com.inspur.edp.metadata.businesstype.api.MdBizTypeMappingService; import com.inspur.edp.wf.bizprocess.entity.*; import com.inspur.edp.wf.bizprocess.service.FormFormatRpcService; +import com.inspur.lcm.metadata.logging.LoggerDisruptorQueue; +import io.iec.edp.caf.boot.context.CAFContext; import io.iec.edp.caf.commons.exception.ExceptionLevel; import io.iec.edp.caf.commons.utils.SpringBeanUtils; import io.iec.edp.caf.rpc.client.RpcClassHolder; import lombok.NonNull; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.List; @@ -26,8 +31,13 @@ public class VoBuildFormFormatServiceImpl implements VoBuildFormFormatService { private final MetadataService metadataService; - public VoBuildFormFormatServiceImpl(MetadataService metadataService) { + private final MdBizTypeMappingService mdBizTypeMappingService; + + private static final Logger logger = LoggerFactory.getLogger(VoBuildFormFormatServiceImpl.class); + + public VoBuildFormFormatServiceImpl(MetadataService metadataService, MdBizTypeMappingService mdBizTypeMappingService) { this.metadataService = metadataService; + this.mdBizTypeMappingService = mdBizTypeMappingService; } /** @@ -47,7 +57,13 @@ public class VoBuildFormFormatServiceImpl implements VoBuildFormFormatService { String formId = voFormModel.getId(); format.setId(formId); format.setCode(voFormModel.getCode()); - format.setBizCategory(bizCategory); + String bizTypeId = mdBizTypeMappingService.getBizTypeIdsByBoId(bizCategory).get(0); + if(bizTypeId == null || bizTypeId.isEmpty()){ + LoggerDisruptorQueue.publishEvent("[ERROR] 当前表单未获取到对应的业务对象,无法推送表单格式至流程设计", CAFContext.current.getUserId()); + logger.warn("bizTypeId is null"); + return; + } + format.setBizCategory(bizTypeId); format.setName(voFormModel.getName()); format.setFormatType(voFormModel.getFormatType()); if (voFormModel.getUrl() == null || voFormModel.getUrl().isEmpty()) { diff --git a/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/webapi/ViewModelController.java b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/webapi/ViewModelController.java index abcce24..7d95eab 100644 --- a/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/webapi/ViewModelController.java +++ b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/webapi/ViewModelController.java @@ -613,12 +613,12 @@ public class ViewModelController { variable.setID(UUID.randomUUID().toString()); variable.setCode("bffSysFormConfigId"); variable.setLabelID("bffSysFormConfigId"); - if (currentLanguage.equals("zh-CHS")){ - variable.setName("表单流程配置"); + if (currentLanguage.equals("zh-CHT")){ + variable.setName("表單流程配置"); } else if (currentLanguage.equals("en")) { variable.setName("Form Process Configuration"); }else { - variable.setName("表單流程配置"); + variable.setName("表单流程配置"); } variable.setMDataType(GspElementDataType.forValue(0)); variable.setLength(36); -- Gitee From 6bf13f790d68a42bf0c36d9aa41b4def2f6a4687 Mon Sep 17 00:00:00 2001 From: yuanxiangyu Date: Thu, 27 Jun 2024 09:01:22 +0800 Subject: [PATCH 07/10] =?UTF-8?q?=E8=A1=A8=E5=8D=95=E5=90=91=E5=AF=BC?= =?UTF-8?q?=E6=96=B0=E5=BB=BA=E8=A1=A8=E5=8D=95=E8=87=AA=E5=8A=A8=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=AF=B9=E5=BA=94=E4=BA=8B=E4=BB=B6=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../viewmodel/action/MappedBizAction.java | 5 + .../viewmodel/action/MappedCdpAction.java | 5 + .../BffCreateFormConfiguration.java | 22 + .../BffCreateFormServiceImpl.java | 660 ++++++++++++++++++ 4 files changed, 692 insertions(+) create mode 100644 view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addActionWhenCreateFormWithBe/BffCreateFormConfiguration.java create mode 100644 view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addActionWhenCreateFormWithBe/BffCreateFormServiceImpl.java diff --git a/view-object-model/src/main/java/com/inspur/edp/formserver/viewmodel/action/MappedBizAction.java b/view-object-model/src/main/java/com/inspur/edp/formserver/viewmodel/action/MappedBizAction.java index 16dfedd..2ac4ccd 100644 --- a/view-object-model/src/main/java/com/inspur/edp/formserver/viewmodel/action/MappedBizAction.java +++ b/view-object-model/src/main/java/com/inspur/edp/formserver/viewmodel/action/MappedBizAction.java @@ -5,6 +5,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.inspur.edp.formserver.viewmodel.action.mappedbiz.MappedBizActionParameterCollection; +import com.inspur.edp.formserver.viewmodel.action.mappedcdp.MappedCdpActionParameterCollection; import com.inspur.edp.formserver.viewmodel.exception.ViewModelException; import com.inspur.edp.formserver.viewmodel.json.operation.MappedBizActionDeserializer; import com.inspur.edp.formserver.viewmodel.json.operation.MappedBizActionSerializer; @@ -58,4 +59,8 @@ public class MappedBizAction extends ViewModelAction implements Cloneable, Seria return mappedBizActionParams; } ///#endregion + public void setParameters(MappedBizActionParameterCollection params){ + mappedBizActionParams = params; + } + } \ No newline at end of file diff --git a/view-object-model/src/main/java/com/inspur/edp/formserver/viewmodel/action/MappedCdpAction.java b/view-object-model/src/main/java/com/inspur/edp/formserver/viewmodel/action/MappedCdpAction.java index 522f962..f9a73b2 100644 --- a/view-object-model/src/main/java/com/inspur/edp/formserver/viewmodel/action/MappedCdpAction.java +++ b/view-object-model/src/main/java/com/inspur/edp/formserver/viewmodel/action/MappedCdpAction.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.inspur.edp.formserver.viewmodel.action.mappedbiz.MappedBizActionParameterCollection; import com.inspur.edp.formserver.viewmodel.action.mappedcdp.MappedCdpActionParameterCollection; import com.inspur.edp.formserver.viewmodel.exception.ViewModelException; import com.inspur.edp.formserver.viewmodel.json.operation.MappedCdpActionDeserializer; @@ -60,4 +61,8 @@ public class MappedCdpAction extends MappedCdpActionBase implements Cloneable, S return mappedCdpActionParams; } ///#endregion + + public void setParameters(MappedCdpActionParameterCollection params){ + mappedCdpActionParams = params; + } } \ No newline at end of file diff --git a/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addActionWhenCreateFormWithBe/BffCreateFormConfiguration.java b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addActionWhenCreateFormWithBe/BffCreateFormConfiguration.java new file mode 100644 index 0000000..99bf9ca --- /dev/null +++ b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addActionWhenCreateFormWithBe/BffCreateFormConfiguration.java @@ -0,0 +1,22 @@ +package com.inspur.edp.formserver.viewmodel.core.addActionWhenCreateFormWithBe; + +import io.iec.edp.caf.rest.RESTEndpoint; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class BffCreateFormConfiguration { + + @Bean + public BffCreateFormServiceImpl getBefWebApi() { + return new BffCreateFormServiceImpl(); + } + @Bean + public RESTEndpoint getBefWebApiServiceEndpoint(BffCreateFormServiceImpl generateService) { + return new RESTEndpoint( + "/dev/main/v1.0/addActionWhenCreateFormWithBe", + generateService + ); + } + +} diff --git a/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addActionWhenCreateFormWithBe/BffCreateFormServiceImpl.java b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addActionWhenCreateFormWithBe/BffCreateFormServiceImpl.java new file mode 100644 index 0000000..48615d1 --- /dev/null +++ b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addActionWhenCreateFormWithBe/BffCreateFormServiceImpl.java @@ -0,0 +1,660 @@ +package com.inspur.edp.formserver.viewmodel.core.addActionWhenCreateFormWithBe; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.inspur.edp.bef.bizentity.GspBusinessEntity; +import com.inspur.edp.bef.bizentity.operation.BizMgrAction; +import com.inspur.edp.bef.bizentity.operation.BizOperation; +import com.inspur.edp.bef.bizentity.operation.bemgrcomponent.BizMgrActionParamCollection; +import com.inspur.edp.bef.bizentity.operation.bemgrcomponent.BizMgrActionParameter; +import com.inspur.edp.bef.bizentity.operation.collection.BizMgrActionCollection; +import com.inspur.edp.bef.bizentity.operation.componentbase.BizReturnValue; +import com.inspur.edp.bef.bizentity.operation.componentenum.BizCollectionParameterType; +import com.inspur.edp.bef.bizentity.operation.componentenum.BizParameterMode; +import com.inspur.edp.bef.bizentity.operation.componentenum.BizParameterType; +import com.inspur.edp.formserver.viewmodel.GspViewModel; +import com.inspur.edp.formserver.viewmodel.action.MappedBizAction; +import com.inspur.edp.formserver.viewmodel.action.MappedCdpAction; +import com.inspur.edp.formserver.viewmodel.action.ViewModelAction; +import com.inspur.edp.formserver.viewmodel.action.ViewModelActionType; +import com.inspur.edp.formserver.viewmodel.action.mappedbiz.MappedBizActionParameter; +import com.inspur.edp.formserver.viewmodel.action.mappedbiz.MappedBizActionParameterCollection; +import com.inspur.edp.formserver.viewmodel.action.mappedcdp.MappedCdpActionParameter; +import com.inspur.edp.formserver.viewmodel.action.mappedcdp.MappedCdpActionParameterCollection; +import com.inspur.edp.formserver.viewmodel.action.viewmodelbase.ViewModelParActualValue; +import com.inspur.edp.formserver.viewmodel.action.viewmodelbase.ViewModelParActualValueType; +import com.inspur.edp.formserver.viewmodel.action.viewmodelbase.ViewModelReturnValue; +import com.inspur.edp.formserver.viewmodel.collection.VMActionCollection; +import com.inspur.edp.formserver.viewmodel.common.MappingType; +import com.inspur.edp.formserver.viewmodel.common.VMParameterMode; +import com.inspur.edp.formserver.viewmodel.common.VMParameterType; +import com.inspur.edp.formserver.viewmodel.common.ViewModelMapping; +import com.inspur.edp.lcm.metadata.api.entity.GspMetadata; +import com.inspur.edp.lcm.metadata.api.entity.MetadataHeader; +import com.inspur.edp.lcm.metadata.api.entity.MetadataReference; +import com.inspur.edp.lcm.metadata.api.service.MetadataService; +import io.iec.edp.caf.commons.utils.SpringBeanUtils; + +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import java.util.UUID; + +public class BffCreateFormServiceImpl { + @Path("addMethod") + @PUT + public void addMethod(String info) { + ObjectMapper mapper = new ObjectMapper(); + try { + JsonNode node = mapper.readTree(info); + String voId = node.get("voId").textValue(); + String dataRule = node.get("dataRule").textValue(); + String projectPath = node.get("projectPath").textValue(); + addMethod(voId, dataRule, projectPath); + } catch (JsonProcessingException e) { + throw new RuntimeException(); + } + } + + private void addMethod(String voId, String dataRule, String projectPath) { + if (dataRule.length() != 3) { + throw new RuntimeException(); + } + for (int i = 0; i < dataRule.length(); i++) { + char bit = dataRule.charAt(i); + if (bit == '1') { + switch (i) { + case 0: + addImport(voId, projectPath); + break; + case 1: + addPathHierarchyOnBe(voId, projectPath); + addPathHierarchyOnBeWithParent(voId, projectPath); + break; + case 2: + addAttachmentOnBe(voId, projectPath); + break; + } + } + } + } + + private void addImport(String voId, String projectPath) { + GspMetadata metadata = SpringBeanUtils.getBean(MetadataService.class).getRefMetadata(projectPath, voId); + GspViewModel voMetadata = (GspViewModel) metadata.getContent(); + if (checkActionOnVo(voMetadata.getActions(), "DataExportVMAction")) { + addExportAction(metadata, voMetadata); + } + if (checkActionOnVo(voMetadata.getActions(), "DataImportVMAction")) { + addImportAction(metadata, voMetadata); + } + metadata.setContent(voMetadata); + SpringBeanUtils.getBean(MetadataService.class).saveMetadata(metadata, metadata.getRelativePath() + "/" + metadata.getHeader().getFileName()); + } + + private void addImportAction(GspMetadata metadata, GspViewModel voMetadata) { + //VO增加对应refs + MetadataReference importReference = createImportVoRefHeader("f417ce27-0680-486c-b88f-232a04557eb9", + "DataImportVMAction", "数据导入构件"); + metadata.getRefs().add(importReference); + //创建数据导入动作 + MappedCdpAction importAction = createImportVoAction("DataImportVMAction", "数据导入动作"); + //添加参数集合 + addImportParameter(importAction, "dataImportContext", "数据导入上下文"); + //添加返回值 + addImportVoActionReturnValue(importAction, "dataImportContext"); + voMetadata.getActions().add(importAction); + } + + private void addExportAction(GspMetadata metadata, GspViewModel voMetadata) { + //VO增加对应refs + MetadataReference exportReference = createImportVoRefHeader("e3978416-a258-4a1f-b1f2-5416f63638e0", + "DataExportVMAction", "数据导出构件"); + metadata.getRefs().add(exportReference); + //创建数据导出动作 + MappedCdpAction exportAction = createImportVoAction("DataExportVMAction", "数据导出动作"); + //添加参数集合 + addImportParameter(exportAction, "exportContext", "数据导出上下文"); + //添加返回值 + addImportVoActionReturnValue(exportAction, "exportContext"); + voMetadata.getActions().add(exportAction); + } + + private void addPathHierarchyOnBe(String voId, String projectPath) { + //获取VO元数据 + GspMetadata metadata = SpringBeanUtils.getBean(MetadataService.class).getRefMetadata(projectPath, voId); + GspViewModel voMetadata = (GspViewModel) metadata.getContent(); + //获取BE的ID + String beId = voMetadata.getMapping().getTargetMetadataId(); + // 获取BE元数据 + GspMetadata beMetadata = SpringBeanUtils.getBean(MetadataService.class).getRefMetadata(projectPath, beId); + //获取BE + GspBusinessEntity be = (GspBusinessEntity) beMetadata.getContent(); + String siblingActionId; + String childLayerActionId; + if (checkActionOnBe(be.getBizMgrActions(), "PathHierarchyCreateSibling")) { + siblingActionId = addSiblingActionOnBe(beMetadata, be); + } else { + siblingActionId = getActionIdOnBe(be.getBizMgrActions(), "PathHierarchyCreateSibling"); + } + if (checkActionOnBe(be.getBizMgrActions(), "PathHierarchyCreateChildLayer")) { + childLayerActionId = addChildLayerActionOnBe(beMetadata, be); + } else { + childLayerActionId = getActionIdOnBe(be.getBizMgrActions(), "PathHierarchyCreateChildLayer"); + } + beMetadata.setContent(be); + SpringBeanUtils.getBean(MetadataService.class).saveMetadata(beMetadata, beMetadata.getRelativePath() + "/" + beMetadata.getHeader().getFileName()); + addPathHierarchyOnVo(metadata, beId, childLayerActionId, siblingActionId); + } + + private String addSiblingActionOnBe(GspMetadata metadata, GspBusinessEntity be) { + // 分级码新增同级ref创建 + MetadataReference siblingReference = createRefHeader("344519d9-b271-4aa0-8800-48a8762fbe20", + "PathHierarchyCreateSibling", "分级码分级方式新增同级"); + metadata.getRefs().add(siblingReference); + // 新增同级动作 + BizMgrAction createSiblingAction = createBizMgrAction("PathHierarchyCreateSibling", + "分级码分级方式新增同级", "344519d9-b271-4aa0-8800-48a8762fbe20"); + // 添加参数 + addPathHierarchyParameter(createSiblingAction, "b6f39c6d-f42b-4a3e-8bb5-8939b56f4604", "当前焦点dataID"); + //添加返回值 + addPathHierarchyReturnValue(createSiblingAction, "fb86619c-0c76-40e6-998b-2d0c5514d701", "新增的同级树节点信息"); + be.getBizMgrActions().add(createSiblingAction); + return createSiblingAction.getID(); + } + + private String addChildLayerActionOnBe(GspMetadata metadata, GspBusinessEntity be) { + // 分级码新增子级ref创建 + MetadataReference childLayerReference = createRefHeader("2f446058-90be-4cfb-8870-580b82dbc991", + "PathHierarchyCreateChildLayer", "分级码分级方式新增子级"); + metadata.getRefs().add(childLayerReference); + // 新增子级动作 + BizMgrAction createChildLayerAction = createBizMgrAction("PathHierarchyCreateChildLayer", + "分级码分级方式新增子级", "2f446058-90be-4cfb-8870-580b82dbc991"); + //添加参数 + addPathHierarchyParameter(createChildLayerAction, "7606bff4-5531-47ce-bd38-8e14c13339f4", "要新增子级的父节点dataID"); + //添加返回值 + addPathHierarchyReturnValue(createChildLayerAction, "8c083897-3dfa-44a2-94dd-b21f65b4671d", "新增的子级树节点信息"); + be.getBizMgrActions().add(createChildLayerAction); + return createChildLayerAction.getID(); + } + + private void addPathHierarchyOnVo(GspMetadata voMetadata, String beId, String actionId1, String actionId2) { + GspViewModel vo = (GspViewModel) voMetadata.getContent(); + if (checkActionOnVo(vo.getActions(), "PathHierarchyCreateChildLayer")) { + addChildLayerActionOnVo(vo, beId, actionId1); + } + if (checkActionOnVo(vo.getActions(), "PathHierarchyCreateSibling")) { + addSiblingActionOnVo(vo, beId, actionId2); + } + voMetadata.setContent(vo); + SpringBeanUtils.getBean(MetadataService.class).saveMetadata(voMetadata, voMetadata.getRelativePath() + "/" + voMetadata.getHeader().getFileName()); + } + + private void addSiblingActionOnVo(GspViewModel vo, String beId, String actionId) { + //创建新增同级方法 + MappedBizAction addSiblingAction = createVOAction("PathHierarchyCreateSibling", "分级码分级方式新增同级"); + //添加参数集合 + addPathHierarchyParameters(addSiblingAction, "当前焦点dataID"); + //添加返回值 + addVoActionReturnValue(addSiblingAction, "新增的同级树节点信息"); + //增加Mapping + addVoActionMapping(addSiblingAction, beId, actionId); + vo.getActions().add(addSiblingAction); + } + + private void addChildLayerActionOnVo(GspViewModel vo, String beId, String actionId) { + //创建新增子级方法 + MappedBizAction addChildLayerAction = createVOAction("PathHierarchyCreateChildLayer", "分级码分级方式新增子级"); + //添加参数集合 + addPathHierarchyParameters(addChildLayerAction, "要新增子级的父节点dataID"); + //添加返回值 + addVoActionReturnValue(addChildLayerAction, "新增的子级树节点信息"); + //增加Mapping + addVoActionMapping(addChildLayerAction, beId, actionId); + vo.getActions().add(addChildLayerAction); + } + + private void addPathHierarchyOnBeWithParent(String voId, String projectPath) { + //获取VO元数据 + GspMetadata metadata = SpringBeanUtils.getBean(MetadataService.class).getRefMetadata(projectPath, voId); + GspViewModel voMetadata = (GspViewModel) metadata.getContent(); + //获取BE的ID + String beId = voMetadata.getMapping().getTargetMetadataId(); + // 获取BE元数据 + GspMetadata beMetadata = SpringBeanUtils.getBean(MetadataService.class).getRefMetadata(projectPath, beId); + //获取BE + GspBusinessEntity be = (GspBusinessEntity) beMetadata.getContent(); + String siblingActionId; + String childLayerActionId; + if (checkActionOnBe(be.getBizMgrActions(), "ParentHierarchyCreateSibling")) { + siblingActionId = addSiblingActionOnBeWithParent(beMetadata, be); + } else { + siblingActionId = getActionIdOnBe(be.getBizMgrActions(), "ParentHierarchyCreateSibling"); + } + if (checkActionOnBe(be.getBizMgrActions(), "ParentHierarchyCreateChildLayer")) { + childLayerActionId = addChildLayerActionOnBeWithParent(beMetadata, be); + } else { + childLayerActionId = getActionIdOnBe(be.getBizMgrActions(), "ParentHierarchyCreateChildLayer"); + } + beMetadata.setContent(be); + SpringBeanUtils.getBean(MetadataService.class).saveMetadata(beMetadata, beMetadata.getRelativePath() + "/" + beMetadata.getHeader().getFileName()); + addPathHierarchyOnVoWithParent(metadata, beId, childLayerActionId, siblingActionId); + } + + private String addSiblingActionOnBeWithParent(GspMetadata metadata, GspBusinessEntity be) { + // 分级码新增同级ref创建 + MetadataReference siblingReference = createRefHeader("dac98710-78c1-42cd-8954-857f7117ff1e", + "ParentHierarchyCreateSibling", "父节点分级方式新增同级"); + metadata.getRefs().add(siblingReference); + // 新增同级动作 + BizMgrAction createSiblingAction = createBizMgrAction("ParentHierarchyCreateSibling", + "父节点分级方式新增同级", "dac98710-78c1-42cd-8954-857f7117ff1e"); + // 添加参数 + addPathHierarchyParameter(createSiblingAction, "f0f500ef-871b-41d5-9eee-8aae3fad168d", "当前焦点dataID"); + //添加返回值 + addPathHierarchyReturnValue(createSiblingAction, "0c01f601-1ffe-4fc4-aae1-fb40848e1120", "新增的同级树节点信息"); + be.getBizMgrActions().add(createSiblingAction); + return createSiblingAction.getID(); + } + + private String addChildLayerActionOnBeWithParent(GspMetadata metadata, GspBusinessEntity be) { + // 分级码新增子级ref创建 + MetadataReference childLayerReference = createRefHeader("bd5cd392-ce3d-4ad6-b3ce-2616a756a237", + "ParentHierarchyCreateChildLayer", "父节点分级方式新增子级"); + metadata.getRefs().add(childLayerReference); + // 新增子级动作 + BizMgrAction createChildLayerAction = createBizMgrAction("ParentHierarchyCreateChildLayer", + "父节点分级方式新增子级", "bd5cd392-ce3d-4ad6-b3ce-2616a756a237"); + //添加参数 + addPathHierarchyParameter(createChildLayerAction, "6bc42b63-19ed-4d1c-9183-0784d32a7bb7", "要新增子级的父节点dataID"); + //添加返回值 + addPathHierarchyReturnValue(createChildLayerAction, "f9e3ecf9-d309-4344-a23d-ec43bc5eb2a0", "新增的子级树节点信息"); + be.getBizMgrActions().add(createChildLayerAction); + return createChildLayerAction.getID(); + } + + private void addPathHierarchyOnVoWithParent(GspMetadata voMetadata,String beId, String actionId1, String actionId2) { + //获取VO元数据 + GspViewModel vo = (GspViewModel) voMetadata.getContent(); + if (checkActionOnVo(vo.getActions(), "ParentHierarchyCreateChildLayer")) { + addChildLayerActionOnVoWithParent(vo, beId, actionId1); + } + if (checkActionOnVo(vo.getActions(), "ParentHierarchyCreateSibling")) { + addSiblingActionOnVoWithParent(vo, beId, actionId2); + } + voMetadata.setContent(vo); + SpringBeanUtils.getBean(MetadataService.class).saveMetadata(voMetadata, voMetadata.getRelativePath() + "/" + voMetadata.getHeader().getFileName()); + } + + private void addSiblingActionOnVoWithParent(GspViewModel vo, String beId, String actionId) { + //创建新增同级方法 + MappedBizAction addSiblingAction = createVOAction("ParentHierarchyCreateSibling", "父节点分级方式新增同级"); + //添加参数集合 + addPathHierarchyParameters(addSiblingAction, "当前焦点dataID"); + //添加返回值 + addVoActionReturnValue(addSiblingAction, "新增的同级树节点信息"); + //增加Mapping + addVoActionMapping(addSiblingAction, beId, actionId); + vo.getActions().add(addSiblingAction); + } + + private void addChildLayerActionOnVoWithParent(GspViewModel vo, String beId, String actionId) { + //创建新增子级方法 + MappedBizAction addChildLayerAction = createVOAction("ParentHierarchyCreateChildLayer", "父节点分级方式新增子级"); + //添加参数集合 + addPathHierarchyParameters(addChildLayerAction, "要新增子级的父节点dataID"); + //添加返回值 + addVoActionReturnValue(addChildLayerAction, "新增的子级树节点信息"); + //增加Mapping + addVoActionMapping(addChildLayerAction, beId, actionId); + vo.getActions().add(addChildLayerAction); + } + + + private void addAttachmentOnBe(String voId, String projectPath) { + //获取VO元数据 + GspMetadata metadata = SpringBeanUtils.getBean(MetadataService.class).getRefMetadata(projectPath, voId); + GspViewModel voMetadata = (GspViewModel) metadata.getContent(); + //获取BE的ID + String beId = voMetadata.getMapping().getTargetMetadataId(); + GspMetadata beMetadata = SpringBeanUtils.getBean(MetadataService.class).getRefMetadata(projectPath, beId); + //获取BE + GspBusinessEntity be = (GspBusinessEntity) beMetadata.getContent(); + String updateAttachmentActionId; + String batchUploadAttachmentActionId; + if (checkActionOnBe(be.getBizMgrActions(), "UpdateAttachment")) { + updateAttachmentActionId = updateAttachmentActionOnBe(beMetadata, be); + } else { + updateAttachmentActionId = getActionIdOnBe(be.getBizMgrActions(), "UpdateAttachment"); + } + if (checkActionOnBe(be.getBizMgrActions(), "BatchUploadAttachment")) { + batchUploadAttachmentActionId = batchUploadAttachmentActionOnBe(beMetadata, be); + } else { + batchUploadAttachmentActionId = getActionIdOnBe(be.getBizMgrActions(), "BatchUploadAttachment"); + } + beMetadata.setContent(be); + SpringBeanUtils.getBean(MetadataService.class).saveMetadata(beMetadata, beMetadata.getRelativePath() + "/" + beMetadata.getHeader().getFileName()); + //VO上增加方法 + addAttachmentOnVo(metadata, beId, updateAttachmentActionId, batchUploadAttachmentActionId); + } + + private String updateAttachmentActionOnBe(GspMetadata metadata, GspBusinessEntity be) { + MetadataReference updateAttachmentReference = createRefHeader("b5ce8542-7084-4bf1-ab00-eda1412efc5f", + "UpdateAttachment", "更新附件信息"); + metadata.getRefs().add(updateAttachmentReference); + //创建更新附件信息动作 + BizMgrAction updateAttachmentAction = createBizMgrAction("UpdateAttachment", "更新附件信息", "b5ce8542-7084-4bf1-ab00-eda1412efc5f"); + //增加参数 + addAttachmentBizActionParameter(updateAttachmentAction, "a7ff2e59-dba8-4e6a-a5e6-cead4a98f856", "updateAttachInfo", "更新附件信息"); + //增加返回值 + addAttachmentBizActionReturnValue(updateAttachmentAction, "c17137b6-07d5-425c-b192-f4898316b059"); + be.getBizMgrActions().add(updateAttachmentAction); + return updateAttachmentAction.getID(); + } + + private String batchUploadAttachmentActionOnBe(GspMetadata metadata, GspBusinessEntity be) { + MetadataReference batchUploadAttachmentReference = createRefHeader("aa213406-922e-473b-997b-017a82321b4d", + "BatchUploadAttachment", "批量新增附件信息"); + metadata.getRefs().add(batchUploadAttachmentReference); + //创建批量新增附件信息动作 + BizMgrAction batchUploadAttachmentAction = createBizMgrAction("BatchUploadAttachment", "批量新增附件信息", "aa213406-922e-473b-997b-017a82321b4d"); + //增加参数 + addAttachmentBizActionParameter(batchUploadAttachmentAction, "3a97e1ad-6f14-4a09-99fa-e6d37c82b486", "batchUploadInfo", "批量上传参数信息"); + //增加返回值 + addAttachmentBizActionReturnValue(batchUploadAttachmentAction, "ad37d589-0416-4b58-8dc0-09aa6cbe3979"); + be.getBizMgrActions().add(batchUploadAttachmentAction); + return batchUploadAttachmentAction.getID(); + } + + private void addAttachmentOnVo(GspMetadata voMetadata, String beId, String actionId1, String actionId2) { + GspViewModel vo = (GspViewModel) voMetadata.getContent(); + if (checkActionOnVo(vo.getActions(), "UpdateAttachment")) { + updateAttachmentActionOnVo(vo, beId, actionId1); + } + if (checkActionOnVo(vo.getActions(), "BatchUploadAttachment")) { + batchUploadAttachmentActionOnVo(vo, beId, actionId2); + } + voMetadata.setContent(vo); + SpringBeanUtils.getBean(MetadataService.class).saveMetadata(voMetadata, voMetadata.getRelativePath() + "/" + voMetadata.getHeader().getFileName()); + } + + private void updateAttachmentActionOnVo(GspViewModel vo, String beId, String actionId) { + //增加更新附件信息方法 + MappedBizAction updateAttachmentAction = createVOAction("UpdateAttachment", "更新附件信息"); + //添加参数 + addAttachmentParameter(updateAttachmentAction, "updateAttachInfo", "更新附件信息"); + //添加返回值 + addVoActionReturnValue(updateAttachmentAction, null); + //添加mapping + addVoActionMapping(updateAttachmentAction, beId, actionId); + vo.getActions().add(updateAttachmentAction); + } + + private void batchUploadAttachmentActionOnVo(GspViewModel vo, String beId, String actionId) { + //增加批量上传附件信息方法 + MappedBizAction batchUploadAttachmentAction = createVOAction("BatchUploadAttachment", "批量新增附件信息"); + //添加参数 + addAttachmentParameter(batchUploadAttachmentAction, "batchUploadInfo", "批量上传参数信息"); + //添加返回值 + addVoActionReturnValue(batchUploadAttachmentAction, null); + //添加mapping + addVoActionMapping(batchUploadAttachmentAction, beId, actionId); + vo.getActions().add(batchUploadAttachmentAction); + } + + private MetadataReference createImportVoRefHeader(String id, String code, String name) { + MetadataReference reference = new MetadataReference(); + MetadataHeader header = new MetadataHeader(); + header.setId(id); + header.setNameSpace("Inspur.GS.Gsp.Common.DataIE"); + header.setCode(code); + header.setName(name); + header.setType("VMComponent"); + header.setBizobjectID("DataIE"); + reference.setDependentMetadata(header); + return reference; + } + + private MappedCdpAction createImportVoAction(String code, String name) { + MappedCdpAction action = new MappedCdpAction(); + action.setID(UUID.randomUUID().toString()); + action.setCode(code); + action.setName(name); + action.setComponentName(code); + action.setType(ViewModelActionType.VMAction); + if ("DataExportVMAction".equals(code)) { + action.setComponentEntityId("e3978416-a258-4a1f-b1f2-5416f63638e0"); + } else { + action.setComponentEntityId("f417ce27-0680-486c-b88f-232a04557eb9"); + } + action.setComponentPkgName("Inspur.GS.Gsp.Common.DataIE"); + action.setIsGenerateComponent(false); + return action; + } + + private void addImportParameter(MappedCdpAction mappedCdpAction, String paramCode, String paramName) { + MappedCdpActionParameterCollection cdpActionParameters = new MappedCdpActionParameterCollection(); + MappedCdpActionParameter cdpActionParameter = new MappedCdpActionParameter(); + if (("exportContext").equals(paramCode)) { + cdpActionParameter.setID("b1409662-8359-4d2f-9479-a5b7582b0c94"); + cdpActionParameter.setClassName("com.inspur.edp.dataie.context.DataExportContext"); + cdpActionParameter.setDotnetClassName("Inspur.Gsp.Dip.DataIE.Component.DataExportContext"); + } else { + cdpActionParameter.setID("3ec80a12-e803-4f68-8ccc-1611bf6d1c82"); + cdpActionParameter.setClassName("com.inspur.edp.dataie.context.DataImportContext"); + cdpActionParameter.setDotnetClassName("Inspur.Gsp.Dip.DataIE.Component.DataImportContext"); + } + cdpActionParameter.setParamCode(paramCode); + cdpActionParameter.setParamName(paramName); + cdpActionParameter.setParameterType(VMParameterType.Custom); + cdpActionParameter.setAssembly("Inspur.Gsp.Dip.DataIE.Component"); + //添加actualValue + ViewModelParActualValue parActualValue = createParamActualValue(); + cdpActionParameter.setActualValue(parActualValue); + cdpActionParameters.add(cdpActionParameter); + mappedCdpAction.setParameters(cdpActionParameters); + } + + private void addImportVoActionReturnValue(MappedCdpAction mappedCdpAction, String code) { + ViewModelReturnValue viewModelReturnValue = new ViewModelReturnValue(); + if (("exportContext").equals(code)) { + viewModelReturnValue.setID("158ed4a5-0f72-4558-a4ce-0ecb200c5b78"); + } else { + viewModelReturnValue.setID("d93a6028-2ef8-4abc-bc7e-d2150b6f2fdf"); + } + viewModelReturnValue.setParameterType(VMParameterType.Custom); + viewModelReturnValue.setAssembly("Inspur.Gsp.Dip.DataIE.Component"); + viewModelReturnValue.setClassName("com.inspur.edp.dataie.domain.DataIEResult"); + viewModelReturnValue.setDotnetClassName("Inspur.Gsp.Dip.DataIE.Component.DataIEResult"); + viewModelReturnValue.setMode(VMParameterMode.OUT); + ViewModelParActualValue parActualValue = createParamActualValue(); + viewModelReturnValue.setActualValue(parActualValue); + mappedCdpAction.setReturnValue(viewModelReturnValue); + } + + private MetadataReference createRefHeader(String id, String code, String name) { + MetadataReference reference = new MetadataReference(); + MetadataHeader header = new MetadataHeader(); + header.setId(id); + header.setNameSpace("Inspur.Gsp.Common.CommonCmp"); + header.setCode(code); + header.setName(name); + header.setType("BEMgrComponent"); + header.setBizobjectID("CommonCmp"); + reference.setDependentMetadata(header); + return reference; + } + + private BizMgrAction createBizMgrAction(String code, String name, String componentId) { + BizMgrAction action = new BizMgrAction(); + action.setID(UUID.randomUUID().toString()); + action.setCode(code); + action.setName(name); + action.setComponentId(componentId); + action.setComponentName(code); + action.setComponentPkgName("Inspur.Gsp.Common.CommonCmp"); + action.setIsGenerateComponent(false); + return action; + } + + private void addPathHierarchyParameter(BizMgrAction bizMgrAction, String id, String paramDescription) { + BizMgrActionParamCollection parameters = new BizMgrActionParamCollection(); + BizMgrActionParameter parameter = new BizMgrActionParameter(); + parameter.setID(id); + parameter.setParamCode("dataID"); + parameter.setParamName("dataID"); + parameter.setParameterType(BizParameterType.String); + parameter.setAssembly("mscorlib.dll"); + parameter.setNetClassName("System.String"); + parameter.setClassName("java.lang.String"); + parameter.setParamDescription(paramDescription); + parameters.add(parameter); + bizMgrAction.setParameters(parameters); + } + + private void addPathHierarchyReturnValue(BizMgrAction bizMgrAction, String id, String paramDescription) { + BizReturnValue returnValue = new BizReturnValue(); + returnValue.setID(id); + returnValue.setParameterType(BizParameterType.Custom); + returnValue.setAssembly("Inspur.Gsp.Cef.Entity"); + returnValue.setNetClassName("Inspur.Gsp.Cef.Entity.IEntityData"); + returnValue.setClassName("com.inspur.edp.cef.entity.entity.IEntityData"); + returnValue.setMode(BizParameterMode.OUT); + returnValue.setParamDescription(paramDescription); + bizMgrAction.setReturnValue(returnValue); + } + + private MappedBizAction createVOAction(String code, String name) { + MappedBizAction action = new MappedBizAction(); + action.setID(UUID.randomUUID().toString()); + action.setCode(code); + action.setName(name); + action.setComponentName(code); + action.setType(ViewModelActionType.BEAction); + return action; + } + + private void addPathHierarchyParameters(MappedBizAction mappedBizAction, String paramDescription) { + MappedBizActionParameterCollection bizActionParameters = new MappedBizActionParameterCollection(); + MappedBizActionParameter bizActionParameter = new MappedBizActionParameter(); + bizActionParameter.setID(UUID.randomUUID().toString()); + bizActionParameter.setParamCode("dataID"); + bizActionParameter.setParamName("dataID"); + bizActionParameter.setParameterType(VMParameterType.String); + bizActionParameter.setAssembly("mscorlib.dll"); + bizActionParameter.setClassName("java.lang.String"); + bizActionParameter.setDotnetClassName("System.String"); + bizActionParameter.setParamDescription(paramDescription); + //添加actualValue + ViewModelParActualValue parActualValue = createParamActualValue(); + bizActionParameter.setActualValue(parActualValue); + bizActionParameters.add(bizActionParameter); + mappedBizAction.setParameters(bizActionParameters); + } + + private ViewModelParActualValue createParamActualValue() { + ViewModelParActualValue parActualValue = new ViewModelParActualValue(); + parActualValue.setEnable(false); + parActualValue.setHasValue(false); + parActualValue.setValue(""); + parActualValue.setValueType(ViewModelParActualValueType.Constant); + return parActualValue; + } + + private void addVoActionReturnValue(MappedBizAction mappedBizAction, String paramDescription) { + ViewModelReturnValue viewModelReturnValue = new ViewModelReturnValue(); + viewModelReturnValue.setID(UUID.randomUUID().toString()); + viewModelReturnValue.setParameterType(VMParameterType.Custom); + viewModelReturnValue.setAssembly("Inspur.Gsp.Cef.Entity"); + viewModelReturnValue.setClassName("com.inspur.edp.cef.entity.entity.IEntityData"); + viewModelReturnValue.setDotnetClassName("Inspur.Gsp.Cef.Entity.IEntityData"); + viewModelReturnValue.setMode(VMParameterMode.OUT); + if (paramDescription != null) { + viewModelReturnValue.setParamDescription(paramDescription); + } + ViewModelParActualValue parActualValue = createParamActualValue(); + viewModelReturnValue.setActualValue(parActualValue); + mappedBizAction.setReturnValue(viewModelReturnValue); + } + + private void addVoActionMapping(MappedBizAction mappedBizAction, String targetMetadataId, String targetObjId) { + ViewModelMapping addChildLayerActionMapping = new ViewModelMapping(); + addChildLayerActionMapping.setMapType(MappingType.BizOperation); + addChildLayerActionMapping.setTargetMetadataId(targetMetadataId); + addChildLayerActionMapping.setTargetObjId(targetObjId); + mappedBizAction.setMapping(addChildLayerActionMapping); + } + + private void addAttachmentBizActionParameter(BizMgrAction bizMgrAction, String id, String paramCode, String paramName) { + BizMgrActionParamCollection parameters = new BizMgrActionParamCollection(); + BizMgrActionParameter parameter = new BizMgrActionParameter(); + parameter.setID(id); + parameter.setParamCode(paramCode); + parameter.setParamName(paramName); + parameter.setParameterType(BizParameterType.Custom); + parameter.setAssembly("Inspur.Gsp.Common.CommonCmp"); + parameter.setNetClassName("Inspur.Gsp.Common.CommonCmp.Attachment.AttachInfo"); + parameter.setClassName("com.inspur.edp.common.component.attachment.AttachInfo"); + parameters.add(parameter); + bizMgrAction.setParameters(parameters); + } + + private void addAttachmentBizActionReturnValue(BizMgrAction bizMgrAction, String id) { + BizReturnValue returnValue = new BizReturnValue(); + returnValue.setID(id); + returnValue.setParameterType(BizParameterType.Custom); + returnValue.setCollectionParameterType(BizCollectionParameterType.List); + returnValue.setAssembly("Inspur.Gsp.Cef.Entity"); + returnValue.setNetClassName("Inspur.Gsp.Cef.Entity.IEntityData"); + returnValue.setClassName("com.inspur.edp.cef.entity.entity.IEntityData"); + returnValue.setMode(BizParameterMode.OUT); + bizMgrAction.setReturnValue(returnValue); + } + + private void addAttachmentParameter(MappedBizAction mappedBizAction, String paramCode, String paramName) { + MappedBizActionParameterCollection bizActionParameters = new MappedBizActionParameterCollection(); + MappedBizActionParameter bizActionParameter = new MappedBizActionParameter(); + bizActionParameter.setID(UUID.randomUUID().toString()); + bizActionParameter.setParamCode(paramCode); + bizActionParameter.setParamName(paramName); + bizActionParameter.setParameterType(VMParameterType.Custom); + bizActionParameter.setAssembly("Inspur.Gsp.Common.CommonCmp"); + bizActionParameter.setClassName("com.inspur.edp.common.component.attachment.AttachInfo"); + bizActionParameter.setDotnetClassName("Inspur.Gsp.Common.CommonCmp.Attachment.AttachInfo"); + //添加actualValue + ViewModelParActualValue parActualValue = createParamActualValue(); + bizActionParameter.setActualValue(parActualValue); + bizActionParameters.add(bizActionParameter); + mappedBizAction.setParameters(bizActionParameters); + } + + private boolean checkActionOnVo(VMActionCollection actions, String actionCode) { + for (ViewModelAction action : actions) { + if (actionCode.equals(action.getCode())) { + return false; + } + } + return true; + } + + private boolean checkActionOnBe(BizMgrActionCollection actions, String actionCode) { + for (BizOperation action : actions) { + if (actionCode.equals(action.getCode())) { + return false; + } + } + return true; + } + + private String getActionIdOnBe(BizMgrActionCollection actions, String actionCode) { + String id = null; + for (BizOperation action : actions) { + if (actionCode.equals(action.getCode())) { + id = action.getID(); + } + } + return id; + } +} + -- Gitee From 54054f6d2a44fe71953ade9f804262621bb11096 Mon Sep 17 00:00:00 2001 From: yuanxiangyu Date: Fri, 19 Jul 2024 10:55:32 +0800 Subject: [PATCH 08/10] =?UTF-8?q?=E6=8F=90=E4=BE=9B=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=9C=A8=E5=88=9B=E5=BB=BA=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E6=97=B6=E6=A0=B9=E6=8D=AE=E8=A1=A8=E5=8D=95=E7=89=B9=E6=80=A7?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AF=B9=E5=BA=94=E6=9E=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BffCreateFormConfiguration.java | 22 - ...ComponentsByFormFeaturesConfiguration.java | 28 + ...dComponentsByFormFeaturesServiceImpl.java} | 664 +++++++++++++++++- .../main/resources/META-INF/spring.factories | 7 +- 4 files changed, 662 insertions(+), 59 deletions(-) delete mode 100644 view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addActionWhenCreateFormWithBe/BffCreateFormConfiguration.java create mode 100644 view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addComponentsByFormFeatures/BffAddComponentsByFormFeaturesConfiguration.java rename view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/{addActionWhenCreateFormWithBe/BffCreateFormServiceImpl.java => addComponentsByFormFeatures/BffAddComponentsByFormFeaturesServiceImpl.java} (53%) diff --git a/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addActionWhenCreateFormWithBe/BffCreateFormConfiguration.java b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addActionWhenCreateFormWithBe/BffCreateFormConfiguration.java deleted file mode 100644 index 99bf9ca..0000000 --- a/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addActionWhenCreateFormWithBe/BffCreateFormConfiguration.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.inspur.edp.formserver.viewmodel.core.addActionWhenCreateFormWithBe; - -import io.iec.edp.caf.rest.RESTEndpoint; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -@Configuration -public class BffCreateFormConfiguration { - - @Bean - public BffCreateFormServiceImpl getBefWebApi() { - return new BffCreateFormServiceImpl(); - } - @Bean - public RESTEndpoint getBefWebApiServiceEndpoint(BffCreateFormServiceImpl generateService) { - return new RESTEndpoint( - "/dev/main/v1.0/addActionWhenCreateFormWithBe", - generateService - ); - } - -} diff --git a/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addComponentsByFormFeatures/BffAddComponentsByFormFeaturesConfiguration.java b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addComponentsByFormFeatures/BffAddComponentsByFormFeaturesConfiguration.java new file mode 100644 index 0000000..44fcb7e --- /dev/null +++ b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addComponentsByFormFeatures/BffAddComponentsByFormFeaturesConfiguration.java @@ -0,0 +1,28 @@ +package com.inspur.edp.formserver.viewmodel.core.addComponentsByFormFeatures; + +import com.inspur.edp.lcm.metadata.api.service.MetadataService; +import com.inspur.edp.lcm.metadata.core.config.ServiceConfiguration; +import io.iec.edp.caf.rest.RESTEndpoint; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class BffAddComponentsByFormFeaturesConfiguration { + public MetadataService getMetadataService() { + return new ServiceConfiguration().createMetadataService(); + } + + @Bean("com.inspur.edp.formserver.viewmodel.core.addComponentsByFormFeatures.BffAddComponentsByFormFeaturesConfiguration.getBefWebApi") + public BffAddComponentsByFormFeaturesServiceImpl getBffWebApi() { + return new BffAddComponentsByFormFeaturesServiceImpl(getMetadataService()); + } + + @Bean("com.inspur.edp.formserver.viewmodel.core.addComponentsByFormFeatures.BffAddComponentsByFormFeaturesConfiguration.addComponentsByFormFeaturesEndPoint") + public RESTEndpoint addComponentsByFormFeaturesEndPoint(BffAddComponentsByFormFeaturesServiceImpl generateService) { + return new RESTEndpoint( + "/dev/main/v1.0/addComponentsByFormFeatures", + generateService + ); + } + +} diff --git a/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addActionWhenCreateFormWithBe/BffCreateFormServiceImpl.java b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addComponentsByFormFeatures/BffAddComponentsByFormFeaturesServiceImpl.java similarity index 53% rename from view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addActionWhenCreateFormWithBe/BffCreateFormServiceImpl.java rename to view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addComponentsByFormFeatures/BffAddComponentsByFormFeaturesServiceImpl.java index 48615d1..d00bfc6 100644 --- a/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addActionWhenCreateFormWithBe/BffCreateFormServiceImpl.java +++ b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addComponentsByFormFeatures/BffAddComponentsByFormFeaturesServiceImpl.java @@ -1,4 +1,4 @@ -package com.inspur.edp.formserver.viewmodel.core.addActionWhenCreateFormWithBe; +package com.inspur.edp.formserver.viewmodel.core.addComponentsByFormFeatures; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; @@ -13,6 +13,7 @@ import com.inspur.edp.bef.bizentity.operation.componentbase.BizReturnValue; import com.inspur.edp.bef.bizentity.operation.componentenum.BizCollectionParameterType; import com.inspur.edp.bef.bizentity.operation.componentenum.BizParameterMode; import com.inspur.edp.bef.bizentity.operation.componentenum.BizParameterType; +import com.inspur.edp.das.commonmodel.IGspCommonElement; import com.inspur.edp.formserver.viewmodel.GspViewModel; import com.inspur.edp.formserver.viewmodel.action.MappedBizAction; import com.inspur.edp.formserver.viewmodel.action.MappedCdpAction; @@ -27,6 +28,7 @@ import com.inspur.edp.formserver.viewmodel.action.viewmodelbase.ViewModelParActu import com.inspur.edp.formserver.viewmodel.action.viewmodelbase.ViewModelReturnValue; import com.inspur.edp.formserver.viewmodel.collection.VMActionCollection; import com.inspur.edp.formserver.viewmodel.common.MappingType; +import com.inspur.edp.formserver.viewmodel.common.VMCollectionParameterType; import com.inspur.edp.formserver.viewmodel.common.VMParameterMode; import com.inspur.edp.formserver.viewmodel.common.VMParameterType; import com.inspur.edp.formserver.viewmodel.common.ViewModelMapping; @@ -34,29 +36,44 @@ import com.inspur.edp.lcm.metadata.api.entity.GspMetadata; import com.inspur.edp.lcm.metadata.api.entity.MetadataHeader; import com.inspur.edp.lcm.metadata.api.entity.MetadataReference; import com.inspur.edp.lcm.metadata.api.service.MetadataService; -import io.iec.edp.caf.commons.utils.SpringBeanUtils; + import javax.ws.rs.PUT; import javax.ws.rs.Path; +import java.util.ArrayList; import java.util.UUID; -public class BffCreateFormServiceImpl { - @Path("addMethod") +public class BffAddComponentsByFormFeaturesServiceImpl { + + private final MetadataService metadataService; + + public BffAddComponentsByFormFeaturesServiceImpl(MetadataService metadataService) { + this.metadataService = metadataService; + } + + @Path("addComponentMethod") @PUT - public void addMethod(String info) { + public void addComponentMethod(String info) { ObjectMapper mapper = new ObjectMapper(); try { JsonNode node = mapper.readTree(info); String voId = node.get("voId").textValue(); String dataRule = node.get("dataRule").textValue(); String projectPath = node.get("projectPath").textValue(); - addMethod(voId, dataRule, projectPath); + addComponentMethods(voId, dataRule, projectPath); } catch (JsonProcessingException e) { throw new RuntimeException(); } } - private void addMethod(String voId, String dataRule, String projectPath) { + /** + * 根据传入的表单特性标识添加构件方法 + * + * @param voId-VO元数据ID + * @param dataRule-表单特性标识 + * @param projectPath-工程路径 + */ + private void addComponentMethods(String voId, String dataRule, String projectPath) { if (dataRule.length() != 3) { throw new RuntimeException(); } @@ -68,19 +85,24 @@ public class BffCreateFormServiceImpl { addImport(voId, projectPath); break; case 1: - addPathHierarchyOnBe(voId, projectPath); - addPathHierarchyOnBeWithParent(voId, projectPath); + checkPathHierarchyType(voId, projectPath); break; case 2: - addAttachmentOnBe(voId, projectPath); + addAttachmentComp(voId, projectPath); break; } } } } + /** + * 检测VO上是否有导入导出动作,没有添加,无不做处理 + * + * @param voId-VO元数据ID + * @param projectPath-工程路径 + */ private void addImport(String voId, String projectPath) { - GspMetadata metadata = SpringBeanUtils.getBean(MetadataService.class).getRefMetadata(projectPath, voId); + GspMetadata metadata = metadataService.getRefMetadata(projectPath, voId); GspViewModel voMetadata = (GspViewModel) metadata.getContent(); if (checkActionOnVo(voMetadata.getActions(), "DataExportVMAction")) { addExportAction(metadata, voMetadata); @@ -89,9 +111,15 @@ public class BffCreateFormServiceImpl { addImportAction(metadata, voMetadata); } metadata.setContent(voMetadata); - SpringBeanUtils.getBean(MetadataService.class).saveMetadata(metadata, metadata.getRelativePath() + "/" + metadata.getHeader().getFileName()); + metadataService.saveMetadata(metadata, metadata.getRelativePath() + "/" + metadata.getHeader().getFileName()); } + /** + * VO上添加数据导入构件 + * + * @param metadata-元数据,为了往header里添加依赖信息 + * @param voMetadata-VO元数据 + */ private void addImportAction(GspMetadata metadata, GspViewModel voMetadata) { //VO增加对应refs MetadataReference importReference = createImportVoRefHeader("f417ce27-0680-486c-b88f-232a04557eb9", @@ -106,6 +134,12 @@ public class BffCreateFormServiceImpl { voMetadata.getActions().add(importAction); } + /** + * VO上添加数据导出构件 + * + * @param metadata-元数据,为了往header里添加依赖信息 + * @param voMetadata-VO元数据 + */ private void addExportAction(GspMetadata metadata, GspViewModel voMetadata) { //VO增加对应refs MetadataReference exportReference = createImportVoRefHeader("e3978416-a258-4a1f-b1f2-5416f63638e0", @@ -120,14 +154,37 @@ public class BffCreateFormServiceImpl { voMetadata.getActions().add(exportAction); } - private void addPathHierarchyOnBe(String voId, String projectPath) { + /** + * 检测VO上是否有对应的分级码或父节点业务字段,有则添加对应的构件方法 + * + * @param voId-VO元数据ID + * @param projectPath-工程路径 + */ + private void checkPathHierarchyType(String voId, String projectPath) { //获取VO元数据 - GspMetadata metadata = SpringBeanUtils.getBean(MetadataService.class).getRefMetadata(projectPath, voId); + GspMetadata metadata = metadataService.getRefMetadata(projectPath, voId); GspViewModel voMetadata = (GspViewModel) metadata.getContent(); - //获取BE的ID String beId = voMetadata.getMapping().getTargetMetadataId(); + ArrayList eles = voMetadata.getAllElementList(true); + for (IGspCommonElement ele : eles) { + if ("分级码分级信息".equals(ele.getUdtName())) { + addPathHierarchyOnBe(beId, metadata, projectPath); + } else if ("父节点分级信息".equals(ele.getUdtName())) { + addPathHierarchyOnBeWithParent(beId, metadata, projectPath); + } + } + } + + /** + * BE上添加分级码构件方法 + * + * @param beId-BE元数据ID + * @param metadata-VO元数据,后续往直接VO添加方法传参 + * @param projectPath-工程路径 + */ + private void addPathHierarchyOnBe(String beId, GspMetadata metadata, String projectPath) { // 获取BE元数据 - GspMetadata beMetadata = SpringBeanUtils.getBean(MetadataService.class).getRefMetadata(projectPath, beId); + GspMetadata beMetadata = metadataService.getRefMetadata(projectPath, beId); //获取BE GspBusinessEntity be = (GspBusinessEntity) beMetadata.getContent(); String siblingActionId; @@ -143,10 +200,17 @@ public class BffCreateFormServiceImpl { childLayerActionId = getActionIdOnBe(be.getBizMgrActions(), "PathHierarchyCreateChildLayer"); } beMetadata.setContent(be); - SpringBeanUtils.getBean(MetadataService.class).saveMetadata(beMetadata, beMetadata.getRelativePath() + "/" + beMetadata.getHeader().getFileName()); + metadataService.saveMetadata(beMetadata, beMetadata.getRelativePath() + "/" + beMetadata.getHeader().getFileName()); addPathHierarchyOnVo(metadata, beId, childLayerActionId, siblingActionId); } + /** + * BE上添加分级码分级方式新增同级构件方法 + * + * @param metadata-元数据,实际对应的BE,为了向header内添加依赖信息 + * @param be-BE元数据 + * @return 分级码分级方式新增同级的方法ID,为了与VO上对应构件的Mapping内对应 + */ private String addSiblingActionOnBe(GspMetadata metadata, GspBusinessEntity be) { // 分级码新增同级ref创建 MetadataReference siblingReference = createRefHeader("344519d9-b271-4aa0-8800-48a8762fbe20", @@ -163,6 +227,13 @@ public class BffCreateFormServiceImpl { return createSiblingAction.getID(); } + /** + * BE上添加分级码分级方式新增子级构件方法 + * + * @param metadata-元数据,实际对应的BE,为了向header内添加依赖信息 + * @param be-BE元数据 + * @return 分级码分级方式新增子级方法的ID,为了与VO上对应构件的Mapping内对应 + */ private String addChildLayerActionOnBe(GspMetadata metadata, GspBusinessEntity be) { // 分级码新增子级ref创建 MetadataReference childLayerReference = createRefHeader("2f446058-90be-4cfb-8870-580b82dbc991", @@ -179,6 +250,14 @@ public class BffCreateFormServiceImpl { return createChildLayerAction.getID(); } + /** + * 检测VO上是否有分级码构件方法并调用添加 + * + * @param voMetadata-元数据,实际对应的VO,为了向header内添加依赖信息 + * @param beId-BE的ID,VO上构件方法的Mapping需要 + * @param actionId1-新增子级方法的ID,为了与BE上对应构件的Mapping内对应 + * @param actionId2-新增同级方法的ID,为了与BE上对应构件的Mapping内对应 + */ private void addPathHierarchyOnVo(GspMetadata voMetadata, String beId, String actionId1, String actionId2) { GspViewModel vo = (GspViewModel) voMetadata.getContent(); if (checkActionOnVo(vo.getActions(), "PathHierarchyCreateChildLayer")) { @@ -188,9 +267,16 @@ public class BffCreateFormServiceImpl { addSiblingActionOnVo(vo, beId, actionId2); } voMetadata.setContent(vo); - SpringBeanUtils.getBean(MetadataService.class).saveMetadata(voMetadata, voMetadata.getRelativePath() + "/" + voMetadata.getHeader().getFileName()); + metadataService.saveMetadata(voMetadata, voMetadata.getRelativePath() + "/" + voMetadata.getHeader().getFileName()); } + /** + * VO上添加分级码新增同级构件方法 + * + * @param vo-VO元数据 + * @param beId-BE的ID,VO上构件方法的Mapping需要 + * @param actionId-新增同级方法的ID,为了与BE上对应构件的Mapping内对应 + */ private void addSiblingActionOnVo(GspViewModel vo, String beId, String actionId) { //创建新增同级方法 MappedBizAction addSiblingAction = createVOAction("PathHierarchyCreateSibling", "分级码分级方式新增同级"); @@ -203,6 +289,13 @@ public class BffCreateFormServiceImpl { vo.getActions().add(addSiblingAction); } + /** + * VO上添加分级码新增子级构件方法 + * + * @param vo-VO元数据 + * @param beId-BE的ID,VO上构件方法的Mapping需要 + * @param actionId-新增子级方法的ID,为了与BE上对应构件的Mapping内对应 + */ private void addChildLayerActionOnVo(GspViewModel vo, String beId, String actionId) { //创建新增子级方法 MappedBizAction addChildLayerAction = createVOAction("PathHierarchyCreateChildLayer", "分级码分级方式新增子级"); @@ -215,14 +308,16 @@ public class BffCreateFormServiceImpl { vo.getActions().add(addChildLayerAction); } - private void addPathHierarchyOnBeWithParent(String voId, String projectPath) { - //获取VO元数据 - GspMetadata metadata = SpringBeanUtils.getBean(MetadataService.class).getRefMetadata(projectPath, voId); - GspViewModel voMetadata = (GspViewModel) metadata.getContent(); - //获取BE的ID - String beId = voMetadata.getMapping().getTargetMetadataId(); + /** + * BE上添加父节点构件方法 + * + * @param beId-BE元数据ID + * @param metadata-VO元数据,后续往直接VO添加方法传参 + * @param projectPath-工程路径 + */ + private void addPathHierarchyOnBeWithParent(String beId, GspMetadata metadata, String projectPath) { // 获取BE元数据 - GspMetadata beMetadata = SpringBeanUtils.getBean(MetadataService.class).getRefMetadata(projectPath, beId); + GspMetadata beMetadata = metadataService.getRefMetadata(projectPath, beId); //获取BE GspBusinessEntity be = (GspBusinessEntity) beMetadata.getContent(); String siblingActionId; @@ -238,10 +333,17 @@ public class BffCreateFormServiceImpl { childLayerActionId = getActionIdOnBe(be.getBizMgrActions(), "ParentHierarchyCreateChildLayer"); } beMetadata.setContent(be); - SpringBeanUtils.getBean(MetadataService.class).saveMetadata(beMetadata, beMetadata.getRelativePath() + "/" + beMetadata.getHeader().getFileName()); + metadataService.saveMetadata(beMetadata, beMetadata.getRelativePath() + "/" + beMetadata.getHeader().getFileName()); addPathHierarchyOnVoWithParent(metadata, beId, childLayerActionId, siblingActionId); } + /** + * BE上添加父节点新增同级构件方法 + * + * @param metadata-元数据,实际对应的BE,为了向header内添加依赖信息 + * @param be-BE元数据 + * @return -父节点分级方式新增同级方法的ID,为了与VO上对应构件的Mapping内对应 + */ private String addSiblingActionOnBeWithParent(GspMetadata metadata, GspBusinessEntity be) { // 分级码新增同级ref创建 MetadataReference siblingReference = createRefHeader("dac98710-78c1-42cd-8954-857f7117ff1e", @@ -258,6 +360,13 @@ public class BffCreateFormServiceImpl { return createSiblingAction.getID(); } + /** + * BE上添加父节点新增子级构件方法 + * + * @param metadata-元数据,实际对应的BE,为了向header内添加依赖信息 + * @param be-BE元数据 + * @return -父节点分级方式新增子级方法的ID,为了与VO上对应构件的Mapping内对应 + */ private String addChildLayerActionOnBeWithParent(GspMetadata metadata, GspBusinessEntity be) { // 分级码新增子级ref创建 MetadataReference childLayerReference = createRefHeader("bd5cd392-ce3d-4ad6-b3ce-2616a756a237", @@ -274,7 +383,15 @@ public class BffCreateFormServiceImpl { return createChildLayerAction.getID(); } - private void addPathHierarchyOnVoWithParent(GspMetadata voMetadata,String beId, String actionId1, String actionId2) { + /** + * VO上检测原来是否有父节点对应构件方法,没有添加 + * + * @param voMetadata-VO元数据 + * @param beId-BE的ID,VO上构件方法的Mapping需要 + * @param actionId1-新增子级方法的ID,为了与VO上对应构件的Mapping内对应 + * @param actionId2-新增同级方法的ID,为了与VO上对应构件的Mapping内对应 + */ + private void addPathHierarchyOnVoWithParent(GspMetadata voMetadata, String beId, String actionId1, String actionId2) { //获取VO元数据 GspViewModel vo = (GspViewModel) voMetadata.getContent(); if (checkActionOnVo(vo.getActions(), "ParentHierarchyCreateChildLayer")) { @@ -284,9 +401,16 @@ public class BffCreateFormServiceImpl { addSiblingActionOnVoWithParent(vo, beId, actionId2); } voMetadata.setContent(vo); - SpringBeanUtils.getBean(MetadataService.class).saveMetadata(voMetadata, voMetadata.getRelativePath() + "/" + voMetadata.getHeader().getFileName()); + metadataService.saveMetadata(voMetadata, voMetadata.getRelativePath() + "/" + voMetadata.getHeader().getFileName()); } + /** + * VO上添加父节点分级方式新增同级构件 + * + * @param vo-VO元数据 + * @param beId-BE的ID,VO上构件方法的Mapping需要 + * @param actionId-新增同级方法的ID,为了与VO上对应构件的Mapping内对应 + */ private void addSiblingActionOnVoWithParent(GspViewModel vo, String beId, String actionId) { //创建新增同级方法 MappedBizAction addSiblingAction = createVOAction("ParentHierarchyCreateSibling", "父节点分级方式新增同级"); @@ -299,6 +423,13 @@ public class BffCreateFormServiceImpl { vo.getActions().add(addSiblingAction); } + /** + * VO上添加父节点分级方式新增子级构件 + * + * @param vo-VO元数据 + * @param beId-BE的ID,VO上构件方法的Mapping需要 + * @param actionId-新增子级方法的ID,为了与VO上对应构件的Mapping内对应 + */ private void addChildLayerActionOnVoWithParent(GspViewModel vo, String beId, String actionId) { //创建新增子级方法 MappedBizAction addChildLayerAction = createVOAction("ParentHierarchyCreateChildLayer", "父节点分级方式新增子级"); @@ -311,18 +442,25 @@ public class BffCreateFormServiceImpl { vo.getActions().add(addChildLayerAction); } - - private void addAttachmentOnBe(String voId, String projectPath) { + /** + * 检测BE上是否有附件相关构件方法,没有则添加,并获取对应方法的ID给VO使用 + * + * @param voId-VO的ID + * @param projectPath-工程路径 + */ + private void addAttachmentComp(String voId, String projectPath) { //获取VO元数据 - GspMetadata metadata = SpringBeanUtils.getBean(MetadataService.class).getRefMetadata(projectPath, voId); + GspMetadata metadata = metadataService.getRefMetadata(projectPath, voId); GspViewModel voMetadata = (GspViewModel) metadata.getContent(); //获取BE的ID String beId = voMetadata.getMapping().getTargetMetadataId(); - GspMetadata beMetadata = SpringBeanUtils.getBean(MetadataService.class).getRefMetadata(projectPath, beId); + GspMetadata beMetadata = metadataService.getRefMetadata(projectPath, beId); //获取BE GspBusinessEntity be = (GspBusinessEntity) beMetadata.getContent(); String updateAttachmentActionId; String batchUploadAttachmentActionId; + String updateAttachmentWithPropertyActionId; + String batchUploadAttachmentWithPropertyActionId; if (checkActionOnBe(be.getBizMgrActions(), "UpdateAttachment")) { updateAttachmentActionId = updateAttachmentActionOnBe(beMetadata, be); } else { @@ -333,12 +471,29 @@ public class BffCreateFormServiceImpl { } else { batchUploadAttachmentActionId = getActionIdOnBe(be.getBizMgrActions(), "BatchUploadAttachment"); } + if (checkActionOnBe(be.getBizMgrActions(), "UpdateAttachmentWithProptyName")) { + updateAttachmentWithPropertyActionId = updateAttachmentWithPropertyNameOnBe(beMetadata, be); + } else { + updateAttachmentWithPropertyActionId = getActionIdOnBe(be.getBizMgrActions(), "UpdateAttachmentWithProptyName"); + } + if (checkActionOnBe(be.getBizMgrActions(), "BatchUploadAttachmentWithProptyName")) { + batchUploadAttachmentWithPropertyActionId = batchUploadAttachmentWithPropertyNameOnBe(beMetadata, be); + } else { + batchUploadAttachmentWithPropertyActionId = getActionIdOnBe(be.getBizMgrActions(), "BatchUploadAttachmentWithProptyName"); + } beMetadata.setContent(be); - SpringBeanUtils.getBean(MetadataService.class).saveMetadata(beMetadata, beMetadata.getRelativePath() + "/" + beMetadata.getHeader().getFileName()); + metadataService.saveMetadata(beMetadata, beMetadata.getRelativePath() + "/" + beMetadata.getHeader().getFileName()); //VO上增加方法 - addAttachmentOnVo(metadata, beId, updateAttachmentActionId, batchUploadAttachmentActionId); + addAttachmentOnVo(metadata, beId, updateAttachmentActionId, batchUploadAttachmentActionId, updateAttachmentWithPropertyActionId, batchUploadAttachmentWithPropertyActionId); } + /** + * BE添加更新附件信息方法 + * + * @param metadata-元数据,实际对应BE,为了header内添加对应依赖 + * @param be-BE元数据 + * @return -更新附件信息方法ID + */ private String updateAttachmentActionOnBe(GspMetadata metadata, GspBusinessEntity be) { MetadataReference updateAttachmentReference = createRefHeader("b5ce8542-7084-4bf1-ab00-eda1412efc5f", "UpdateAttachment", "更新附件信息"); @@ -353,6 +508,13 @@ public class BffCreateFormServiceImpl { return updateAttachmentAction.getID(); } + /** + * BE添加批量新增附件信息方法 + * + * @param metadata-元数据,实际对应BE,为了header内添加对应依赖 + * @param be-BE元数据 + * @return -批量新增附件信息方法ID + */ private String batchUploadAttachmentActionOnBe(GspMetadata metadata, GspBusinessEntity be) { MetadataReference batchUploadAttachmentReference = createRefHeader("aa213406-922e-473b-997b-017a82321b4d", "BatchUploadAttachment", "批量新增附件信息"); @@ -367,7 +529,59 @@ public class BffCreateFormServiceImpl { return batchUploadAttachmentAction.getID(); } - private void addAttachmentOnVo(GspMetadata voMetadata, String beId, String actionId1, String actionId2) { + /** + * BE添加根据附件字段标签更新附件信息 + * + * @param metadata-元数据,实际对应BE,为了header内添加对应依赖 + * @param be-BE元数据 + * @return -根据附件字段标签更新附件信息方法ID + */ + private String updateAttachmentWithPropertyNameOnBe(GspMetadata metadata, GspBusinessEntity be) { + MetadataReference updateAttachmentWithProptyNameReference = createRefHeader("d4e5e036-08dc-469e-a9d9-18506bddb9fe", + "UpdateAttachmentWithProptyName", "根据附件字段标签更新附件信息"); + metadata.getRefs().add(updateAttachmentWithProptyNameReference); + //创建更新附件信息动作 + BizMgrAction updateAttachmentAction = createBizMgrAction("UpdateAttachmentWithProptyName", "根据附件字段标签更新附件信息", "d4e5e036-08dc-469e-a9d9-18506bddb9fe"); + //增加参数 + addAttachmentPropertyBizActionParameters(updateAttachmentAction); + //增加返回值 + addAttachmentPropertyBizActionReturnValue(updateAttachmentAction); + be.getBizMgrActions().add(updateAttachmentAction); + return updateAttachmentAction.getID(); + } + + /** + * BE添加根据附件字段标签新增附件信息 + * + * @param metadata-元数据,实际对应BE,为了header内添加对应依赖 + * @param be-BE元数据 + * @return -根据附件字段标签新增附件信息方法ID + */ + private String batchUploadAttachmentWithPropertyNameOnBe(GspMetadata metadata, GspBusinessEntity be) { + MetadataReference batchUploadAttachmentWithPropertyNameReference = createRefHeader("c5f9be27-1995-4bbf-a482-4771e14150e6", + "BatchUploadAttachmentWithProptyName", "根据附件字段标签新增附件信息"); + metadata.getRefs().add(batchUploadAttachmentWithPropertyNameReference); + //创建更新附件信息动作 + BizMgrAction batchUploadAction = createBizMgrAction("BatchUploadAttachmentWithProptyName", "根据附件字段标签新增附件信息", "c5f9be27-1995-4bbf-a482-4771e14150e6"); + //增加参数 + batchUploadAttachmentPropertyBizActionParameters(batchUploadAction); + //增加返回值 + addAttachmentBizActionReturnValue(batchUploadAction, "bea95edd-7e46-4bf9-b705-249aefdafc64"); + be.getBizMgrActions().add(batchUploadAction); + return batchUploadAction.getID(); + } + + /** + * VO上增加附件对应构件 + * + * @param voMetadata-VO元数据 + * @param beId-BE元数据ID + * @param actionId1-更新附件信息方法ID + * @param actionId2-批量新增附件信息方法ID + * @param actionId3-根据附件字段标签新增附件信息方法ID + * @param actionId4-根据附件字段标签更新附件信息方法ID + */ + private void addAttachmentOnVo(GspMetadata voMetadata, String beId, String actionId1, String actionId2, String actionId3, String actionId4) { GspViewModel vo = (GspViewModel) voMetadata.getContent(); if (checkActionOnVo(vo.getActions(), "UpdateAttachment")) { updateAttachmentActionOnVo(vo, beId, actionId1); @@ -375,10 +589,23 @@ public class BffCreateFormServiceImpl { if (checkActionOnVo(vo.getActions(), "BatchUploadAttachment")) { batchUploadAttachmentActionOnVo(vo, beId, actionId2); } + if (checkActionOnVo(vo.getActions(), "UpdateAttachmentWithProptyName")) { + updateAttachmentWithPropertyNameOnVo(vo, beId, actionId3); + } + if (checkActionOnVo(vo.getActions(), "BatchUploadAttachmentWithProptyName")) { + batchUploadAttachmentWithPropertyNameOnVo(vo, beId, actionId4); + } voMetadata.setContent(vo); - SpringBeanUtils.getBean(MetadataService.class).saveMetadata(voMetadata, voMetadata.getRelativePath() + "/" + voMetadata.getHeader().getFileName()); + metadataService.saveMetadata(voMetadata, voMetadata.getRelativePath() + "/" + voMetadata.getHeader().getFileName()); } + /** + * VO上增加更新附件信息方法 + * + * @param vo-VO元数据 + * @param beId-BE元数据ID + * @param actionId-更新附件信息方法ID + */ private void updateAttachmentActionOnVo(GspViewModel vo, String beId, String actionId) { //增加更新附件信息方法 MappedBizAction updateAttachmentAction = createVOAction("UpdateAttachment", "更新附件信息"); @@ -391,6 +618,13 @@ public class BffCreateFormServiceImpl { vo.getActions().add(updateAttachmentAction); } + /** + * VO上增加批量上传附件信息方法 + * + * @param vo-VO元数据 + * @param beId-BE元数据ID + * @param actionId-批量上传附件信息方法ID + */ private void batchUploadAttachmentActionOnVo(GspViewModel vo, String beId, String actionId) { //增加批量上传附件信息方法 MappedBizAction batchUploadAttachmentAction = createVOAction("BatchUploadAttachment", "批量新增附件信息"); @@ -403,6 +637,52 @@ public class BffCreateFormServiceImpl { vo.getActions().add(batchUploadAttachmentAction); } + /** + * VO上增加根据附件字段标签更新附件信息方法 + * + * @param vo-VO元数据 + * @param beId-BE元数据ID + * @param actionId-根据附件字段标签更新附件信息方法ID + */ + private void updateAttachmentWithPropertyNameOnVo(GspViewModel vo, String beId, String actionId) { + //增加批量上传附件信息方法 + MappedBizAction updateAttachmentWithProptyNameAction = createVOAction("UpdateAttachmentWithProptyName", "根据附件字段标签更新附件信息"); + //添加参数 + addUpdateAttachmentWithPropertyNameParameters(updateAttachmentWithProptyNameAction); + //添加返回值 + addUpdateVoActionReturnValue(updateAttachmentWithProptyNameAction); + //添加mapping + addVoActionMapping(updateAttachmentWithProptyNameAction, beId, actionId); + vo.getActions().add(updateAttachmentWithProptyNameAction); + } + + /** + * VO上增加根据附件字段标签新增附件信息方法 + * + * @param vo-VO元数据 + * @param beId-BE元数据ID + * @param actionId-根据附件字段标签新增附件信息方法ID + */ + private void batchUploadAttachmentWithPropertyNameOnVo(GspViewModel vo, String beId, String actionId) { + //增加批量上传附件信息方法 + MappedBizAction batchUploadAttachmentWithProptyNameAction = createVOAction("BatchUploadAttachmentWithProptyName", "根据附件字段标签新增附件信息"); + //添加参数 + addBatchUploadAttachmentWithPropertyNameParameters(batchUploadAttachmentWithProptyNameAction); + //添加返回值 + addBatchUploadVoActionReturnValue(batchUploadAttachmentWithProptyNameAction); + //添加mapping + addVoActionMapping(batchUploadAttachmentWithProptyNameAction, beId, actionId); + vo.getActions().add(batchUploadAttachmentWithProptyNameAction); + } + + /** + * 增加VO上引用的导入导出header依赖,其内的ID、code、name为固定值 + * + * @param id-依赖信息ID + * @param code-依赖信息code + * @param name-依赖信息name + * @return 返回添加对应依赖信息后的refs + */ private MetadataReference createImportVoRefHeader(String id, String code, String name) { MetadataReference reference = new MetadataReference(); MetadataHeader header = new MetadataHeader(); @@ -416,6 +696,13 @@ public class BffCreateFormServiceImpl { return reference; } + /** + * 增加VO上导入导出action,其内的code、name决定创建的是导入还是导出动作 + * + * @param code-导入或导出动作编号 + * @param name-导入或导出动作名称 + * @return -返回对应导入导出动作方法构件 + */ private MappedCdpAction createImportVoAction(String code, String name) { MappedCdpAction action = new MappedCdpAction(); action.setID(UUID.randomUUID().toString()); @@ -433,6 +720,13 @@ public class BffCreateFormServiceImpl { return action; } + /** + * 增加VO上导入导出action的参数 + * + * @param mappedCdpAction-导入导出action构件 + * @param paramCode-参数编号 + * @param paramName-参数名称 + */ private void addImportParameter(MappedCdpAction mappedCdpAction, String paramCode, String paramName) { MappedCdpActionParameterCollection cdpActionParameters = new MappedCdpActionParameterCollection(); MappedCdpActionParameter cdpActionParameter = new MappedCdpActionParameter(); @@ -456,6 +750,12 @@ public class BffCreateFormServiceImpl { mappedCdpAction.setParameters(cdpActionParameters); } + /** + * 增加VO上导入导出action的返回值 + * + * @param mappedCdpAction-导入导出action构件 + * @param code-返回值编号 + */ private void addImportVoActionReturnValue(MappedCdpAction mappedCdpAction, String code) { ViewModelReturnValue viewModelReturnValue = new ViewModelReturnValue(); if (("exportContext").equals(code)) { @@ -473,6 +773,14 @@ public class BffCreateFormServiceImpl { mappedCdpAction.setReturnValue(viewModelReturnValue); } + /** + * 增加BE上引用的组件header依赖,其内的ID、code、name为固定值,由传入值决定创建的是何种依赖 + * + * @param id-依赖信息ID + * @param code-依赖信息code + * @param name-依赖信息name + * @return -返回添加对应依赖信息后的refs + */ private MetadataReference createRefHeader(String id, String code, String name) { MetadataReference reference = new MetadataReference(); MetadataHeader header = new MetadataHeader(); @@ -486,6 +794,14 @@ public class BffCreateFormServiceImpl { return reference; } + /** + * 增加BE上引用的组件action,其内的code、name决定创建的是何种action + * + * @param code-action编号 + * @param name-action名称 + * @param componentId-action对应的构件ID + * @return -返回对应方法的构件动作 + */ private BizMgrAction createBizMgrAction(String code, String name, String componentId) { BizMgrAction action = new BizMgrAction(); action.setID(UUID.randomUUID().toString()); @@ -498,6 +814,13 @@ public class BffCreateFormServiceImpl { return action; } + /** + * 增加BE上分级码相关方法的参数 + * + * @param bizMgrAction-分级码相关方法 + * @param id-参数ID,为定值 + * @param paramDescription-参数描述,为定值 + */ private void addPathHierarchyParameter(BizMgrAction bizMgrAction, String id, String paramDescription) { BizMgrActionParamCollection parameters = new BizMgrActionParamCollection(); BizMgrActionParameter parameter = new BizMgrActionParameter(); @@ -513,6 +836,13 @@ public class BffCreateFormServiceImpl { bizMgrAction.setParameters(parameters); } + /** + * 增加BE上分级码相关方法的返回值 + * + * @param bizMgrAction-分级码相关方法 + * @param id-返回值ID,为定值 + * @param paramDescription-返回值描述,为定值 + */ private void addPathHierarchyReturnValue(BizMgrAction bizMgrAction, String id, String paramDescription) { BizReturnValue returnValue = new BizReturnValue(); returnValue.setID(id); @@ -525,6 +855,13 @@ public class BffCreateFormServiceImpl { bizMgrAction.setReturnValue(returnValue); } + /** + * 创建VO上的构件结构 + * + * @param code-action编号 + * @param name-action名称 + * @return -返回创建的对应action构件,例如分级码新增同级构件 + */ private MappedBizAction createVOAction(String code, String name) { MappedBizAction action = new MappedBizAction(); action.setID(UUID.randomUUID().toString()); @@ -535,6 +872,12 @@ public class BffCreateFormServiceImpl { return action; } + /** + * 增加VO上分级码相关方法的参数 + * + * @param mappedBizAction-VO分级码相关方法 + * @param paramDescription-参数描述,为定值 + */ private void addPathHierarchyParameters(MappedBizAction mappedBizAction, String paramDescription) { MappedBizActionParameterCollection bizActionParameters = new MappedBizActionParameterCollection(); MappedBizActionParameter bizActionParameter = new MappedBizActionParameter(); @@ -553,6 +896,11 @@ public class BffCreateFormServiceImpl { mappedBizAction.setParameters(bizActionParameters); } + /** + * 创建VO上分级码相关方法的ParamActualValue集合 + * + * @return -返回创建的对应ParamActualValue集合 + */ private ViewModelParActualValue createParamActualValue() { ViewModelParActualValue parActualValue = new ViewModelParActualValue(); parActualValue.setEnable(false); @@ -562,6 +910,12 @@ public class BffCreateFormServiceImpl { return parActualValue; } + /** + * 增加VO上方法的返回值 + * + * @param mappedBizAction-VO方法 + * @param paramDescription-返回值参数描述,为定值 + */ private void addVoActionReturnValue(MappedBizAction mappedBizAction, String paramDescription) { ViewModelReturnValue viewModelReturnValue = new ViewModelReturnValue(); viewModelReturnValue.setID(UUID.randomUUID().toString()); @@ -578,6 +932,50 @@ public class BffCreateFormServiceImpl { mappedBizAction.setReturnValue(viewModelReturnValue); } + /** + * 增加VO上批量上传附件相关方法的返回值 + * + * @param mappedBizAction-VO方法 + */ + private void addBatchUploadVoActionReturnValue(MappedBizAction mappedBizAction) { + ViewModelReturnValue viewModelReturnValue = new ViewModelReturnValue(); + viewModelReturnValue.setID(UUID.randomUUID().toString()); + viewModelReturnValue.setParameterType(VMParameterType.Custom); + viewModelReturnValue.setAssembly("Inspur.Gsp.Cef.Entity"); + viewModelReturnValue.setClassName("com.inspur.edp.cef.entity.entity.IEntityData"); + viewModelReturnValue.setDotnetClassName("Inspur.Gsp.Cef.Entity.IEntityData"); + viewModelReturnValue.setMode(VMParameterMode.OUT); + viewModelReturnValue.setCollectionParameterType(VMCollectionParameterType.List); + ViewModelParActualValue parActualValue = createParamActualValue(); + viewModelReturnValue.setActualValue(parActualValue); + mappedBizAction.setReturnValue(viewModelReturnValue); + } + + /** + * 增加VO上更新附件相关方法的返回值 + * + * @param mappedBizAction-VO方法 + */ + private void addUpdateVoActionReturnValue(MappedBizAction mappedBizAction) { + ViewModelReturnValue viewModelReturnValue = new ViewModelReturnValue(); + viewModelReturnValue.setID(UUID.randomUUID().toString()); + viewModelReturnValue.setParameterType(VMParameterType.Custom); + viewModelReturnValue.setAssembly("nope"); + viewModelReturnValue.setClassName("com.inspur.edp.cef.entity.entity.IEntityData"); + viewModelReturnValue.setDotnetClassName("nope"); + viewModelReturnValue.setMode(VMParameterMode.OUT); + ViewModelParActualValue parActualValue = createParamActualValue(); + viewModelReturnValue.setActualValue(parActualValue); + mappedBizAction.setReturnValue(viewModelReturnValue); + } + + /** + * 增加VO方法与BE方法之间的ID映射 + * + * @param mappedBizAction-VO方法 + * @param targetMetadataId-BE的ID + * @param targetObjId-BE方法的ID + */ private void addVoActionMapping(MappedBizAction mappedBizAction, String targetMetadataId, String targetObjId) { ViewModelMapping addChildLayerActionMapping = new ViewModelMapping(); addChildLayerActionMapping.setMapType(MappingType.BizOperation); @@ -586,6 +984,14 @@ public class BffCreateFormServiceImpl { mappedBizAction.setMapping(addChildLayerActionMapping); } + /** + * BE附件方法添加对应方法参数 + * + * @param bizMgrAction-BE方法 + * @param id-参数ID + * @param paramCode-参数编号 + * @param paramName-参数名称 + */ private void addAttachmentBizActionParameter(BizMgrAction bizMgrAction, String id, String paramCode, String paramName) { BizMgrActionParamCollection parameters = new BizMgrActionParamCollection(); BizMgrActionParameter parameter = new BizMgrActionParameter(); @@ -600,6 +1006,90 @@ public class BffCreateFormServiceImpl { bizMgrAction.setParameters(parameters); } + /** + * 增加BE根据附件字段标签更新附件信息方法参数 + * + * @param bizMgrAction-BE方法 + */ + private void addAttachmentPropertyBizActionParameters(BizMgrAction bizMgrAction) { + BizMgrActionParamCollection parameters = new BizMgrActionParamCollection(); + + BizMgrActionParameter updateParameter = new BizMgrActionParameter(); + updateParameter.setID("8fed7de9-e54d-4f60-82c3-0405ee6b83d4"); + updateParameter.setParamCode("updateAttachInfo"); + updateParameter.setParamName("更新附件信息"); + updateParameter.setParameterType(BizParameterType.Custom); + updateParameter.setAssembly("nope"); + updateParameter.setNetClassName("nope"); + updateParameter.setClassName("com.inspur.edp.common.component.attachment.AttachInfo"); + + BizMgrActionParameter propertyNameParameter = new BizMgrActionParameter(); + propertyNameParameter.setID("466b0a98-7ea7-4b23-8ea2-bfc120dc924b"); + propertyNameParameter.setParamCode("propertyName"); + propertyNameParameter.setParamName("附件业务字段标签"); + propertyNameParameter.setParameterType(BizParameterType.String); + propertyNameParameter.setAssembly("mscorlib.dll"); + propertyNameParameter.setNetClassName("System.String"); + propertyNameParameter.setClassName("java.lang.String"); + + parameters.add(updateParameter); + parameters.add(propertyNameParameter); + bizMgrAction.setParameters(parameters); + } + + /** + * 增加BE根据附件字段标签新增附件信息方法参数 + * + * @param bizMgrAction-BE方法 + */ + private void batchUploadAttachmentPropertyBizActionParameters(BizMgrAction bizMgrAction) { + BizMgrActionParamCollection parameters = new BizMgrActionParamCollection(); + + BizMgrActionParameter batchUploadParameter = new BizMgrActionParameter(); + batchUploadParameter.setID("26fb5ca7-83bb-4c4b-b230-0e43e9581bb6"); + batchUploadParameter.setParamCode("batchUploadInfo"); + batchUploadParameter.setParamName("附件上传参数"); + batchUploadParameter.setParameterType(BizParameterType.Custom); + batchUploadParameter.setAssembly("nope"); + batchUploadParameter.setNetClassName("nope"); + batchUploadParameter.setClassName("com.inspur.edp.common.component.attachment.AttachInfo"); + + BizMgrActionParameter propertyNameParameter = new BizMgrActionParameter(); + propertyNameParameter.setID("58e41c3b-5f2a-451a-bae9-e1af32459a25"); + propertyNameParameter.setParamCode("propertyName"); + propertyNameParameter.setParamName("附件业务字段名称"); + propertyNameParameter.setParameterType(BizParameterType.String); + propertyNameParameter.setAssembly("mscorlib.dll"); + propertyNameParameter.setNetClassName("System.String"); + propertyNameParameter.setClassName("java.lang.String"); + + parameters.add(batchUploadParameter); + parameters.add(propertyNameParameter); + bizMgrAction.setParameters(parameters); + } + + /** + * 增加BE根据附件字段标签更新附件信息方法返回值 + * + * @param bizMgrAction -BE方法 + */ + private void addAttachmentPropertyBizActionReturnValue(BizMgrAction bizMgrAction) { + BizReturnValue returnValue = new BizReturnValue(); + returnValue.setID("9d09d1b3-59a2-4543-a886-67f6f05e5072"); + returnValue.setParameterType(BizParameterType.Custom); + returnValue.setAssembly("nope"); + returnValue.setNetClassName("nope"); + returnValue.setClassName("com.inspur.edp.cef.entity.entity.IEntityData"); + returnValue.setMode(BizParameterMode.OUT); + bizMgrAction.setReturnValue(returnValue); + } + + /** + * 增加BE附件方法返回值 + * + * @param bizMgrAction-BE方法 + * @param id-返回值ID + */ private void addAttachmentBizActionReturnValue(BizMgrAction bizMgrAction, String id) { BizReturnValue returnValue = new BizReturnValue(); returnValue.setID(id); @@ -612,6 +1102,13 @@ public class BffCreateFormServiceImpl { bizMgrAction.setReturnValue(returnValue); } + /** + * 增加VO附件方法参数 + * + * @param mappedBizAction-VO构件方法 + * @param paramCode-参数编号 + * @param paramName-参数名称 + */ private void addAttachmentParameter(MappedBizAction mappedBizAction, String paramCode, String paramName) { MappedBizActionParameterCollection bizActionParameters = new MappedBizActionParameterCollection(); MappedBizActionParameter bizActionParameter = new MappedBizActionParameter(); @@ -629,6 +1126,87 @@ public class BffCreateFormServiceImpl { mappedBizAction.setParameters(bizActionParameters); } + /** + * 增加VO根据附件字段标签新增附件信息方法参数 + * + * @param mappedBizAction-VO构件方法 + */ + private void addBatchUploadAttachmentWithPropertyNameParameters(MappedBizAction mappedBizAction) { + MappedBizActionParameterCollection bizActionParameters = new MappedBizActionParameterCollection(); + + MappedBizActionParameter batchUploadActionParameter = new MappedBizActionParameter(); + batchUploadActionParameter.setID(UUID.randomUUID().toString()); + batchUploadActionParameter.setParamCode("batchUploadInfo"); + batchUploadActionParameter.setParamName("附件上传参数"); + batchUploadActionParameter.setParameterType(VMParameterType.Custom); + batchUploadActionParameter.setAssembly("nope"); + batchUploadActionParameter.setClassName("com.inspur.edp.common.component.attachment.AttachInfo"); + batchUploadActionParameter.setDotnetClassName("nope"); + //添加actualValue + ViewModelParActualValue parActualValue = createParamActualValue(); + batchUploadActionParameter.setActualValue(parActualValue); + bizActionParameters.add(batchUploadActionParameter); + + MappedBizActionParameter propertyNameActionParameter = new MappedBizActionParameter(); + propertyNameActionParameter.setID(UUID.randomUUID().toString()); + propertyNameActionParameter.setParamCode("propertyName"); + propertyNameActionParameter.setParamName("附件业务字段名称"); + propertyNameActionParameter.setParameterType(VMParameterType.String); + propertyNameActionParameter.setAssembly("mscorlib.dll"); + propertyNameActionParameter.setClassName("java.lang.String"); + propertyNameActionParameter.setDotnetClassName("System.String"); + //添加actualValue + ViewModelParActualValue parActualValue1 = createParamActualValue(); + batchUploadActionParameter.setActualValue(parActualValue1); + bizActionParameters.add(propertyNameActionParameter); + + mappedBizAction.setParameters(bizActionParameters); + } + + /** + * 增加VO根据附件字段标签更新附件信息方法参数 + * + * @param mappedBizAction-VO构件方法 + */ + private void addUpdateAttachmentWithPropertyNameParameters(MappedBizAction mappedBizAction) { + MappedBizActionParameterCollection bizActionParameters = new MappedBizActionParameterCollection(); + + MappedBizActionParameter batchUploadActionParameter = new MappedBizActionParameter(); + batchUploadActionParameter.setID(UUID.randomUUID().toString()); + batchUploadActionParameter.setParamCode("updateAttachInfo"); + batchUploadActionParameter.setParamName("更新附件信息"); + batchUploadActionParameter.setParameterType(VMParameterType.Custom); + batchUploadActionParameter.setAssembly("nope"); + batchUploadActionParameter.setClassName("com.inspur.edp.common.component.attachment.AttachInfo"); + batchUploadActionParameter.setDotnetClassName("nope"); + //添加actualValue + ViewModelParActualValue parActualValue = createParamActualValue(); + batchUploadActionParameter.setActualValue(parActualValue); + bizActionParameters.add(batchUploadActionParameter); + + MappedBizActionParameter propertyNameActionParameter = new MappedBizActionParameter(); + propertyNameActionParameter.setID(UUID.randomUUID().toString()); + propertyNameActionParameter.setParamCode("propertyName"); + propertyNameActionParameter.setParamName("附件业务字段标签"); + propertyNameActionParameter.setParameterType(VMParameterType.String); + propertyNameActionParameter.setAssembly("mscorlib.dll"); + propertyNameActionParameter.setClassName("java.lang.String"); + propertyNameActionParameter.setDotnetClassName("System.String"); + //添加actualValue + ViewModelParActualValue parActualValue1 = createParamActualValue(); + batchUploadActionParameter.setActualValue(parActualValue1); + bizActionParameters.add(propertyNameActionParameter); + + mappedBizAction.setParameters(bizActionParameters); + } + + /** + * 检查VO上是否存在对应构件方法 + * + * @param actions-VO构件方法集合 + * @param actionCode-要检查的构件方法编号 + * @return 存在返回false,不存在返回true + */ private boolean checkActionOnVo(VMActionCollection actions, String actionCode) { for (ViewModelAction action : actions) { if (actionCode.equals(action.getCode())) { @@ -638,6 +1216,13 @@ public class BffCreateFormServiceImpl { return true; } + /** + * 检查BE上是否存在对应方法 + * + * @param actions-BE构件方法集合 + * @param actionCode-要检查的方法编号 + * @return -存在返回false,不存在返回true + */ private boolean checkActionOnBe(BizMgrActionCollection actions, String actionCode) { for (BizOperation action : actions) { if (actionCode.equals(action.getCode())) { @@ -647,6 +1232,13 @@ public class BffCreateFormServiceImpl { return true; } + /** + * 获取BE上对应方法的ID + * + * @param actions-BE构件方法集合 + * @param actionCode-要获取的方法编号 + * @return -方法ID + */ private String getActionIdOnBe(BizMgrActionCollection actions, String actionCode) { String id = null; for (BizOperation action : actions) { diff --git a/view-object-webapi/src/main/resources/META-INF/spring.factories b/view-object-webapi/src/main/resources/META-INF/spring.factories index c27de2f..96b969f 100644 --- a/view-object-webapi/src/main/resources/META-INF/spring.factories +++ b/view-object-webapi/src/main/resources/META-INF/spring.factories @@ -1 +1,6 @@ -org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.inspur.edp.formserver.viewmodel.webapi.BffWebApiServiceAutoConfig,com.inspur.edp.formserver.viewmodel.webapi.BffWebApiServiceConfig,com.inspur.edp.formserver.viewmodel.core.buildformformat.VoBuildFormFormatConfig \ No newline at end of file +org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.inspur.edp.formserver.viewmodel.webapi.BffWebApiServiceAutoConfig,\ + com.inspur.edp.formserver.viewmodel.webapi.BffWebApiServiceConfig,\ + com.inspur.edp.formserver.viewmodel.core.buildformformat.VoBuildFormFormatConfig,\ + com.inspur.edp.formserver.viewmodel.core.addComponentsByFormFeatures.BffAddComponentsByFormFeaturesConfiguration + + -- Gitee From b45e99bd011e1e771c41036c8840f2b226b4ccf4 Mon Sep 17 00:00:00 2001 From: yuanxiangyu Date: Fri, 19 Jul 2024 14:17:54 +0800 Subject: [PATCH 09/10] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=86=85=E5=BC=82=E5=B8=B8=E6=8F=90=E7=A4=BA=E4=B8=BA=E5=9B=BD?= =?UTF-8?q?=E9=99=85=E5=8C=96=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/en/viewobject_model_designtime.en.properties | 2 ++ resources/viewobject_model_designtime.properties | 2 ++ .../zh-CHT/viewobject_model_designtime.zh-CHT.properties | 2 ++ .../AddComponentsErrorCodes.java | 6 ++++++ .../BffAddComponentsByFormFeaturesServiceImpl.java | 7 +++++-- 5 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addComponentsByFormFeatures/AddComponentsErrorCodes.java diff --git a/resources/en/viewobject_model_designtime.en.properties b/resources/en/viewobject_model_designtime.en.properties index 1d4efef..e0bf732 100644 --- a/resources/en/viewobject_model_designtime.en.properties +++ b/resources/en/viewobject_model_designtime.en.properties @@ -220,6 +220,8 @@ GSP_VIEWOBJECT_FORMFORMAT_1003=The Url parameter passed in from the form is empt GSP_VIEWOBJECT_FORMFORMAT_1004=The URL type passed in from the form is empty GSP_VIEWOBJECT_FORMFORMAT_1005=metadata is empty when obtaining the corresponding view object for the form GSP_VIEWOBJECT_FORMFORMAT_1006=Error saving view object corresponding to form +GSP_VIEWOBJECT_ADDCOMP_1001=Error serializing the input JSON data when adding components based on form features. +GSP_VIEWOBJECT_ADDCOMP_1002=Error in the input form property identifier when adding components based on form features. GSP_VIEWOBJECT_MSGTEMP_VIEWMODEL=View object GSP_VIEWOBJECT_MSGTEMP_RULE_FIELD_NAME=Name GSP_VIEWOBJECT_MSGTEMP_RULE_FIELD_NAME_DESCRIPTION=Field Name diff --git a/resources/viewobject_model_designtime.properties b/resources/viewobject_model_designtime.properties index ea1bd3e..846810c 100644 --- a/resources/viewobject_model_designtime.properties +++ b/resources/viewobject_model_designtime.properties @@ -220,6 +220,8 @@ GSP_VIEWOBJECT_FORMFORMAT_1003=\u8868\u5355\u4F20\u5165\u7684Url\u53C2\u6570\u4E GSP_VIEWOBJECT_FORMFORMAT_1004=\u8868\u5355\u4F20\u5165\u7684Url\u7C7B\u578B\u4E3A\u7A7A GSP_VIEWOBJECT_FORMFORMAT_1005=\u83B7\u53D6\u8868\u5355\u5BF9\u5E94\u7684\u89C6\u56FE\u5BF9\u8C61\u65F6\u5143\u6570\u636E\u4E3A\u7A7A GSP_VIEWOBJECT_FORMFORMAT_1006=\u4FDD\u5B58\u8868\u5355\u5BF9\u5E94\u7684\u89C6\u56FE\u5BF9\u8C61\u65F6\u51FA\u9519 +GSP_VIEWOBJECT_ADDCOMP_1001=\u6839\u636E\u8868\u5355\u7279\u6027\u6DFB\u52A0\u6784\u4EF6\u65B9\u6CD5\u65F6\uFF0C\u5E8F\u5217\u5316\u4F20\u5165\u7684json\u6570\u636E\u51FA\u9519 +GSP_VIEWOBJECT_ADDCOMP_1002=\u6839\u636E\u8868\u5355\u7279\u6027\u6DFB\u52A0\u6784\u4EF6\u65B9\u6CD5\u65F6\uFF0C\u4F20\u5165\u7684\u8868\u5355\u7279\u6027\u6807\u8BC6\u51FA\u9519 GSP_VIEWOBJECT_MSGTEMP_VIEWMODEL=\u89C6\u56FE\u5BF9\u8C61 GSP_VIEWOBJECT_MSGTEMP_RULE_FIELD_NAME=\u540D\u79F0 GSP_VIEWOBJECT_MSGTEMP_RULE_FIELD_NAME_DESCRIPTION=\u5B57\u6BB5\u540D\u79F0 diff --git a/resources/zh-CHT/viewobject_model_designtime.zh-CHT.properties b/resources/zh-CHT/viewobject_model_designtime.zh-CHT.properties index 7f0cea8..83dd226 100644 --- a/resources/zh-CHT/viewobject_model_designtime.zh-CHT.properties +++ b/resources/zh-CHT/viewobject_model_designtime.zh-CHT.properties @@ -220,6 +220,8 @@ GSP_VIEWOBJECT_FORMFORMAT_1003=\u8868\u55AE\u50B3\u5165\u7684Url\u53C3\u6578\u70 GSP_VIEWOBJECT_FORMFORMAT_1004=\u8868\u55AE\u50B3\u5165\u7684Url\u985E\u578B\u70BA\u7A7A GSP_VIEWOBJECT_FORMFORMAT_1005=\u7372\u53D6\u8868\u55AE\u5C0D\u61C9\u7684\u8996\u5716\u5C0D\u8C61\u6642\u5143\u6578\u64DA\u70BA\u7A7A GSP_VIEWOBJECT_FORMFORMAT_1006=\u4FDD\u5B58\u8868\u55AE\u5C0D\u61C9\u7684\u8996\u5716\u5C0D\u8C61\u6642\u51FA\u932F +GSP_VIEWOBJECT_ADDCOMP_1001=\u6839\u64DA\u8868\u55AE\u7279\u6027\u6DFB\u52A0\u69CB\u4EF6\u65B9\u6CD5\u6642\uFF0C\u5E8F\u5217\u5316\u50B3\u5165\u7684json\u6578\u64DA\u51FA\u932F +GSP_VIEWOBJECT_ADDCOMP_1002=\u6839\u64DA\u8868\u55AE\u7279\u6027\u6DFB\u52A0\u69CB\u4EF6\u65B9\u6CD5\u6642\uFF0C\u50B3\u5165\u7684\u8868\u55AE\u7279\u6027\u6A19\u8B58\u51FA\u932F GSP_VIEWOBJECT_MSGTEMP_VIEWMODEL=\u8996\u5716\u5C0D\u8C61 GSP_VIEWOBJECT_MSGTEMP_RULE_FIELD_NAME=\u540D\u7A31 GSP_VIEWOBJECT_MSGTEMP_RULE_FIELD_NAME_DESCRIPTION=\u6B04\u4F4D\u540D\u7A31 diff --git a/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addComponentsByFormFeatures/AddComponentsErrorCodes.java b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addComponentsByFormFeatures/AddComponentsErrorCodes.java new file mode 100644 index 0000000..8ae9f91 --- /dev/null +++ b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addComponentsByFormFeatures/AddComponentsErrorCodes.java @@ -0,0 +1,6 @@ +package com.inspur.edp.formserver.viewmodel.core.addComponentsByFormFeatures; + +public class AddComponentsErrorCodes { + public final static String GSP_VIEWOBJECT_ADDCOMP_1001 = "GSP_VIEWOBJECT_ADDCOMP_1001"; + public final static String GSP_VIEWOBJECT_ADDCOMP_1002 = "GSP_VIEWOBJECT_ADDCOMP_1002"; +} diff --git a/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addComponentsByFormFeatures/BffAddComponentsByFormFeaturesServiceImpl.java b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addComponentsByFormFeatures/BffAddComponentsByFormFeaturesServiceImpl.java index d00bfc6..2c87b67 100644 --- a/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addComponentsByFormFeatures/BffAddComponentsByFormFeaturesServiceImpl.java +++ b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addComponentsByFormFeatures/BffAddComponentsByFormFeaturesServiceImpl.java @@ -32,10 +32,13 @@ import com.inspur.edp.formserver.viewmodel.common.VMCollectionParameterType; import com.inspur.edp.formserver.viewmodel.common.VMParameterMode; import com.inspur.edp.formserver.viewmodel.common.VMParameterType; import com.inspur.edp.formserver.viewmodel.common.ViewModelMapping; +import com.inspur.edp.formserver.viewmodel.core.buildformformat.FormFormatErrorCodes; +import com.inspur.edp.formserver.viewmodel.exception.ViewModelException; import com.inspur.edp.lcm.metadata.api.entity.GspMetadata; import com.inspur.edp.lcm.metadata.api.entity.MetadataHeader; import com.inspur.edp.lcm.metadata.api.entity.MetadataReference; import com.inspur.edp.lcm.metadata.api.service.MetadataService; +import io.iec.edp.caf.commons.exception.ExceptionLevel; import javax.ws.rs.PUT; @@ -62,7 +65,7 @@ public class BffAddComponentsByFormFeaturesServiceImpl { String projectPath = node.get("projectPath").textValue(); addComponentMethods(voId, dataRule, projectPath); } catch (JsonProcessingException e) { - throw new RuntimeException(); + throw new ViewModelException(AddComponentsErrorCodes.GSP_VIEWOBJECT_ADDCOMP_1001, null, ExceptionLevel.Error, false); } } @@ -75,7 +78,7 @@ public class BffAddComponentsByFormFeaturesServiceImpl { */ private void addComponentMethods(String voId, String dataRule, String projectPath) { if (dataRule.length() != 3) { - throw new RuntimeException(); + throw new ViewModelException(AddComponentsErrorCodes.GSP_VIEWOBJECT_ADDCOMP_1002, null, ExceptionLevel.Error, false); } for (int i = 0; i < dataRule.length(); i++) { char bit = dataRule.charAt(i); -- Gitee From 4b13ce74731663b2c58eae107987eb0251d11e88 Mon Sep 17 00:00:00 2001 From: yuanxiangyu Date: Fri, 19 Jul 2024 14:44:47 +0800 Subject: [PATCH 10/10] =?UTF-8?q?core=E5=86=85bean=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E7=B1=BB=E5=90=88=E5=B9=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ComponentsByFormFeaturesConfiguration.java | 28 ------------------- .../VoBuildFormFormatConfig.java | 22 +++++++++++++++ .../main/resources/META-INF/spring.factories | 4 +-- 3 files changed, 23 insertions(+), 31 deletions(-) delete mode 100644 view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addComponentsByFormFeatures/BffAddComponentsByFormFeaturesConfiguration.java diff --git a/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addComponentsByFormFeatures/BffAddComponentsByFormFeaturesConfiguration.java b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addComponentsByFormFeatures/BffAddComponentsByFormFeaturesConfiguration.java deleted file mode 100644 index 44fcb7e..0000000 --- a/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/addComponentsByFormFeatures/BffAddComponentsByFormFeaturesConfiguration.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.inspur.edp.formserver.viewmodel.core.addComponentsByFormFeatures; - -import com.inspur.edp.lcm.metadata.api.service.MetadataService; -import com.inspur.edp.lcm.metadata.core.config.ServiceConfiguration; -import io.iec.edp.caf.rest.RESTEndpoint; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -@Configuration -public class BffAddComponentsByFormFeaturesConfiguration { - public MetadataService getMetadataService() { - return new ServiceConfiguration().createMetadataService(); - } - - @Bean("com.inspur.edp.formserver.viewmodel.core.addComponentsByFormFeatures.BffAddComponentsByFormFeaturesConfiguration.getBefWebApi") - public BffAddComponentsByFormFeaturesServiceImpl getBffWebApi() { - return new BffAddComponentsByFormFeaturesServiceImpl(getMetadataService()); - } - - @Bean("com.inspur.edp.formserver.viewmodel.core.addComponentsByFormFeatures.BffAddComponentsByFormFeaturesConfiguration.addComponentsByFormFeaturesEndPoint") - public RESTEndpoint addComponentsByFormFeaturesEndPoint(BffAddComponentsByFormFeaturesServiceImpl generateService) { - return new RESTEndpoint( - "/dev/main/v1.0/addComponentsByFormFeatures", - generateService - ); - } - -} diff --git a/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/buildformformat/VoBuildFormFormatConfig.java b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/buildformformat/VoBuildFormFormatConfig.java index 74d1b87..8194dcb 100644 --- a/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/buildformformat/VoBuildFormFormatConfig.java +++ b/view-object-webapi/src/main/java/com/inspur/edp/formserver/viewmodel/core/buildformformat/VoBuildFormFormatConfig.java @@ -1,15 +1,37 @@ package com.inspur.edp.formserver.viewmodel.core.buildformformat; +import com.inspur.edp.formserver.viewmodel.core.addComponentsByFormFeatures.BffAddComponentsByFormFeaturesServiceImpl; import com.inspur.edp.formserver.vmapi.formconfig.VoBuildFormFormatService; import com.inspur.edp.lcm.metadata.api.service.MetadataService; +import com.inspur.edp.lcm.metadata.core.config.ServiceConfiguration; import com.inspur.edp.metadata.businesstype.api.MdBizTypeMappingService; +import io.iec.edp.caf.rest.RESTEndpoint; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration("com.inspur.edp.formserver.viewmodel.core.buildformformat.VoBuildFormFormatConfig") public class VoBuildFormFormatConfig { + + public MetadataService getMetadataService() { + return new ServiceConfiguration().createMetadataService(); + } + + @Bean("com.inspur.edp.formserver.viewmodel.core.addComponentsByFormFeatures.BffAddComponentsByFormFeaturesConfiguration.getBefWebApi") + public BffAddComponentsByFormFeaturesServiceImpl getBffWebApi() { + return new BffAddComponentsByFormFeaturesServiceImpl(getMetadataService()); + } + + @Bean("com.inspur.edp.formserver.viewmodel.core.addComponentsByFormFeatures.BffAddComponentsByFormFeaturesConfiguration.addComponentsByFormFeaturesEndPoint") + public RESTEndpoint addComponentsByFormFeaturesEndPoint(BffAddComponentsByFormFeaturesServiceImpl generateService) { + return new RESTEndpoint( + "/dev/main/v1.0/addComponentsByFormFeatures", + generateService + ); + } + @Bean("com.inspur.edp.formserver.vmmanager.config.VMManagerConfig.BuildFormFormat()") public VoBuildFormFormatService getBuildFormFormat(MetadataService metadataService, MdBizTypeMappingService mdBizTypeMappingService) { return new VoBuildFormFormatServiceImpl(metadataService, mdBizTypeMappingService); } + } diff --git a/view-object-webapi/src/main/resources/META-INF/spring.factories b/view-object-webapi/src/main/resources/META-INF/spring.factories index 96b969f..ad1c763 100644 --- a/view-object-webapi/src/main/resources/META-INF/spring.factories +++ b/view-object-webapi/src/main/resources/META-INF/spring.factories @@ -1,6 +1,4 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.inspur.edp.formserver.viewmodel.webapi.BffWebApiServiceAutoConfig,\ com.inspur.edp.formserver.viewmodel.webapi.BffWebApiServiceConfig,\ - com.inspur.edp.formserver.viewmodel.core.buildformformat.VoBuildFormFormatConfig,\ - com.inspur.edp.formserver.viewmodel.core.addComponentsByFormFeatures.BffAddComponentsByFormFeaturesConfiguration - + com.inspur.edp.formserver.viewmodel.core.buildformformat.VoBuildFormFormatConfig -- Gitee