diff --git a/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/BffMetadataEventListener.java b/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/BffMetadataEventListener.java index ca672d4d7c58c67a86bc9d72328e31210ad01311..395d33df3a38f7952e3d0061e61633d07b39f11a 100644 --- a/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/BffMetadataEventListener.java +++ b/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/BffMetadataEventListener.java @@ -26,20 +26,20 @@ import com.inspur.edp.lcm.metadata.spi.event.MetadataEventArgs; import com.inspur.edp.lcm.metadata.spi.event.MetadataEventListener; public class BffMetadataEventListener implements MetadataEventListener { - /** - 业务实体元数据保存前事件 - @param e + /** + * 业务实体元数据保存前事件 + * + * @param e */ - public final void fireMetadataSavingEvent(MetadataEventArgs e) - { + public final void fireMetadataSavingEvent(MetadataEventArgs e) { // 类型判断 - if (!(e.getMetadata().getContent() instanceof GspViewModel)) - { + if (!(e.getMetadata().getContent() instanceof GspViewModel)) { return; } - GspViewModel vm = (GspViewModel)((e.getMetadata().getContent() instanceof GspViewModel) ? e.getMetadata().getContent() : null); + GspViewModel vm = (GspViewModel) ((e.getMetadata().getContent() instanceof GspViewModel) ? e + .getMetadata().getContent() : null); //保存前校验 ViewModelValidator validator = new ViewModelValidator(); @@ -52,9 +52,9 @@ public class BffMetadataEventListener implements MetadataEventListener { } /** - 视图对象元数据保存后事件 - - @param e + * 视图对象元数据保存后事件 + * + * @param e */ public final void fireMetadataSavedEvent(MetadataEventArgs e) { @@ -69,18 +69,22 @@ public class BffMetadataEventListener implements MetadataEventListener { public void fireMetadataDeletedEvent(MetadataEventArgs metadataEventArgs) { } + @Override - public void fireMetadataAchievedEvent(MetadataEventArgs args) { - GspMetadata metadata=args.getMetadata(); + public void fireMetadataAchievedEvent(MetadataEventArgs args) { + GspMetadata metadata = args.getMetadata(); - if (!(metadata.getContent() instanceof GspViewModel)){ + if (!(metadata.getContent() instanceof GspViewModel)) { return; } - GspViewModel viewModel= (GspViewModel) metadata.getContent(); - if (viewModel.getIsVirtual()) + GspViewModel viewModel = (GspViewModel) metadata.getContent(); + if (viewModel.getIsVirtual()) { return; - if(viewModel.getMainObject().getMapping() != null && viewModel.getMainObject().getMapping().getSourceType() == GspVoObjectSourceType.BeObject){ - LinkBeUtils utils=new LinkBeUtils(false); + } + if (viewModel.getMainObject().getMapping() != null + && viewModel.getMainObject().getMapping().getSourceType() + == GspVoObjectSourceType.BeObject) { + LinkBeUtils utils = new LinkBeUtils(false); utils.linkWithBe(viewModel); } } diff --git a/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/ContentSerializer.java b/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/ContentSerializer.java index 8b7eacd94a569799a8441383a57fa64247756468..9c1e42e17c2ffc0c8fa413fc99a5b8db60d004b5 100644 --- a/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/ContentSerializer.java +++ b/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/ContentSerializer.java @@ -16,8 +16,6 @@ package com.inspur.edp.formserver.vmmanager; - -import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.inspur.edp.formserver.viewmodel.Context; @@ -36,7 +34,6 @@ public class ContentSerializer implements MetadataContentSerializer { @Override public JsonNode Serialize(IMetadataContent iMetadataContent) { -// throw new RuntimeException("vo未实现序列化"); Context context = new Context(); context.setfull(false); VoThreadLoacl.set(context); @@ -44,12 +41,10 @@ public class ContentSerializer implements MetadataContentSerializer { String json = new ObjectMapper().writeValueAsString(iMetadataContent); JsonNode jsonNode = new ObjectMapper().readTree(json); return jsonNode; - } catch (JsonProcessingException e) { - throw new RuntimeException(e); } catch (IOException e) { throw new RuntimeException(e); } catch (RuntimeException e) { - throw new RuntimeException(e + ((GspViewModel) iMetadataContent).getGeneratingAssembly()); + throw new RuntimeException(e + ((GspViewModel) iMetadataContent).getGeneratingAssembly(), e); }finally { VoThreadLoacl.unset(); } diff --git a/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/PushChangeSetListener.java b/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/PushChangeSetListener.java index d691ccc979efc86851a5ef0490fd942a7bb86dda..70547f63ed669f5afd0b49f30bf3a004f380b4ed 100644 --- a/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/PushChangeSetListener.java +++ b/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/PushChangeSetListener.java @@ -28,7 +28,6 @@ import com.inspur.edp.formserver.vmmanager.util.PushChangeSets; import com.inspur.edp.lcm.metadata.api.entity.GspMetadata; import com.inspur.edp.lcm.metadata.api.service.MetadataService; import io.iec.edp.caf.commons.utils.SpringBeanUtils; - import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -38,8 +37,9 @@ public class PushChangeSetListener implements IPushChangeSetListener { @Override public void bePushChangeSet(PushChangeSetArgs args) { PushChangeSet changeSet = args.getPushChangeSet(); - List metadataList = getRelatedMetadataList(changeSet.getMetadataInfo(), changeSet.getRelatedMetadatas()); - if(metadataList == null && metadataList.size() == 0) { + List metadataList = getRelatedMetadataList(changeSet.getMetadataInfo(), + changeSet.getRelatedMetadatas()); + if (metadataList == null && metadataList.isEmpty()) { return; } metadataList.forEach(metadata -> { @@ -50,40 +50,46 @@ public class PushChangeSetListener implements IPushChangeSetListener { /** * 过滤需要推送的元数据 + * * @param metadataInfo * @param relatedMetadataInfo * @return */ - private List getRelatedMetadataList(MetadataInfo metadataInfo, List relatedMetadataInfo) { + private List getRelatedMetadataList(MetadataInfo metadataInfo, + List relatedMetadataInfo) { if (metadataInfo == null | relatedMetadataInfo == null) { return null; - }; - MetadataService metadataService = SpringBeanUtils.getBean(com.inspur.edp.lcm.metadata.api.service.MetadataService.class); - List gspMetadataList = metadataService.getMetadataListByRefedMetadataId(metadataInfo.getPath(),metadataInfo.getEntityId()); - List selectMetadata = gspMetadataList.stream().filter(item -> - relatedMetadataInfo.stream().anyMatch( - metadata -> metadata.getContentCode().equals(item.getHeader().getCode()) && metadata.getNameSpace().equals(item.getHeader().getNameSpace())) + } + ; + MetadataService metadataService = SpringBeanUtils + .getBean(com.inspur.edp.lcm.metadata.api.service.MetadataService.class); + List gspMetadataList = metadataService + .getMetadataListByRefedMetadataId(metadataInfo.getPath(), metadataInfo.getEntityId()); + List selectMetadata = gspMetadataList.stream().filter(item -> + relatedMetadataInfo.stream().anyMatch( + metadata -> metadata.getContentCode().equals(item.getHeader().getCode()) && metadata + .getNameSpace().equals(item.getHeader().getNameSpace())) ).collect(Collectors.toList()); return getMetadataListWithContent(selectMetadata, metadataService); } - private List getMetadataListWithContent(List metadataList, MetadataService service) { - List newMetadataList = new ArrayList<>(); + private List getMetadataListWithContent(List metadataList, + MetadataService service) { + List newMetadataList = new ArrayList<>(metadataList.size()); metadataList.forEach(metadata -> { - newMetadataList.add(service.getRefMetadata(metadata.getRelativePath(),metadata.getHeader().getId())); + newMetadataList + .add(service.getRefMetadata(metadata.getRelativePath(), metadata.getHeader().getId())); }); return newMetadataList; } private void pushVmChangeSet(List metadataList) { - PushVmChangeSetEventBroker pushEventBroker = SpringBeanUtils.getBean(PushVmChangeSetEventBroker.class); + PushVmChangeSetEventBroker pushEventBroker = SpringBeanUtils + .getBean(PushVmChangeSetEventBroker.class); VmPushChangeSet vmPushChangeSet = new VmPushChangeSet(metadataList); pushEventBroker.firePushChangeSet(new VmPushChangeSetArgs(vmPushChangeSet)); } - - - } diff --git a/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/TransferSerializer.java b/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/TransferSerializer.java index 0d30f8e3f382bc01aef01e27d5950fbb94c420dd..17a8185ab2d95277d5efe144912982aae34997c8 100644 --- a/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/TransferSerializer.java +++ b/view-object-manager/src/main/java/com/inspur/edp/formserver/vmmanager/TransferSerializer.java @@ -44,107 +44,119 @@ import io.iec.edp.caf.commons.utils.SpringBeanUtils; public class TransferSerializer implements MetadataTransferSerializer { + //region getMapper + + private ObjectMapper getMapper() { + ObjectMapper mapper = new ObjectMapper(); + SimpleModule module = new SimpleModule(); + module.addDeserializer(IGspCommonModel.class, new ViewModelDeserializer()); + module.addSerializer(IGspCommonModel.class, new ViewModelSerializer()); + mapper.registerModule(module); + return mapper; + } + + //endregion + + //region 序列化 + public final String serialize(IMetadataContent metadataContent) { + GspViewModel viewModel = (GspViewModel) ((metadataContent instanceof GspViewModel) + ? metadataContent : null); +// dealContent(viewModel); + String modelJson = null; + try { + modelJson = getMapper().writeValueAsString(viewModel); + } catch (JsonProcessingException e) { + throw new RuntimeException("ViewModel序列化失败!"); + } + return modelJson; + } - //region getMapper + private void dealContent(GspViewModel viewModel) { + dealObject(viewModel.getMainObject()); + } - private ObjectMapper getMapper() { - ObjectMapper mapper = new ObjectMapper(); - SimpleModule module = new SimpleModule(); - module.addDeserializer(IGspCommonModel.class, new ViewModelDeserializer()); - module.addSerializer(IGspCommonModel.class, new ViewModelSerializer()); - mapper.registerModule(module); - return mapper; - } + private void dealObject(GspViewObject viewObject) { - //endregion + ViewObjectCollection childObjs = viewObject.getContainChildObjects(); + if (childObjs != null && childObjs.size() > 0) { + childObjs.forEach((childObj) -> { + dealObject((GspViewObject) childObj); + }); + } - //region 序列化 - public final String serialize(IMetadataContent metadataContent) { - GspViewModel viewModel = (GspViewModel) ((metadataContent instanceof GspViewModel) ? metadataContent : null); -// dealContent(viewModel); - String modelJson = null; - try { - modelJson = getMapper().writeValueAsString(viewModel); - } catch (JsonProcessingException e) { - throw new RuntimeException("ViewModel序列化失败!"); - } - return modelJson; + VMElementCollection eles = viewObject.getContainElements(); + if (eles != null && eles.size() > 0) { + eles.forEach((ele) -> { + dealElement(ele); + }); } + } - private void dealContent(GspViewModel viewModel) { - dealObject(viewModel.getMainObject()); + private void dealElement(IGspCommonField element) { + if (element.getObjectType() != GspElementObjectType.Association) { + return; } - private void dealObject(GspViewObject viewObject){ - - ViewObjectCollection childObjs = viewObject.getContainChildObjects(); - if(childObjs != null && childObjs.size() > 0){ - childObjs.forEach((childObj) -> { - dealObject((GspViewObject)childObj); - }); - } - - VMElementCollection eles = viewObject.getContainElements(); - if(eles != null && eles.size() > 0){ - eles.forEach((ele) -> { - dealElement(ele); - }); - } + GspAssociationCollection assos = element.getChildAssociations(); + if (assos != null && assos.size() > 0) { + assos.forEach((asso) -> { + dealAssociation(asso); + }); } + } - private void dealElement(IGspCommonField element){ - if(element.getObjectType() != GspElementObjectType.Association) - return; + private void dealAssociation(GspAssociation association) { - GspAssociationCollection assos = element.getChildAssociations(); - if(assos != null && assos.size() > 0){ - assos.forEach((asso) -> { - dealAssociation(asso); - }); - } + GspFieldCollection refEles = association.getRefElementCollection(); + if (refEles != null && refEles.size() > 0) { + refEles.forEach((refEle) -> { + dealRefElement(association, refEle); + }); } + } - private void dealAssociation(GspAssociation association){ - - GspFieldCollection refEles = association.getRefElementCollection(); - if(refEles != null && refEles.size() > 0){ - refEles.forEach((refEle) -> { - dealRefElement(association, refEle); - }); - } + private void dealRefElement(GspAssociation association, IGspCommonField refElement) { + if (refElement.getObjectType() != GspElementObjectType.Association) { + return; + } + RefCommonService service = SpringBeanUtils.getBean(RefCommonService.class); + GspMetadata refMetadata = service.getRefMetadata(association.getRefModelID()); + if (refMetadata == null) { + throw new VmManagerException("", "", + "关联be[" + association.getRefModelID() + "] [" + association.getRefModelCode() + + "]没有获取到。", + null, ExceptionLevel.Error, false); + } + GspBusinessEntity refBe = (GspBusinessEntity) refMetadata.getContent(); + IGspCommonObject refObj = refBe.findObjectById(association.getRefObjectID()); + if (refObj == null) { + throw new VmManagerException("", "", + "关联be[" + association.getRefModelCode() + "]中没有获取到节点[" + association.getRefObjectID() + + "] [" + association.getRefObjectCode() + "]。", null, ExceptionLevel.Error, + false); } - private void dealRefElement(GspAssociation association, IGspCommonField refElement){ - if(refElement.getObjectType() != GspElementObjectType.Association) - return ; - RefCommonService service= SpringBeanUtils.getBean(RefCommonService.class); - GspMetadata refMetadata = service.getRefMetadata(association.getRefModelID()); - if(refMetadata == null) - throw new VmManagerException("","", "关联be["+association.getRefModelID()+"] ["+association.getRefModelCode()+"]没有获取到。",null, ExceptionLevel.Error,false); - GspBusinessEntity refBe= (GspBusinessEntity) refMetadata.getContent(); - IGspCommonObject refObj = refBe.findObjectById(association.getRefObjectID()); - if(refObj == null) - throw new VmManagerException("","", "关联be["+association.getRefModelCode()+"]中没有获取到节点["+association.getRefObjectID()+"] ["+association.getRefObjectCode()+"]。",null, ExceptionLevel.Error,false); - - IGspCommonElement element = refObj.findElement(refElement.getRefElementId()); - if(element == null) - throw new VmManagerException("","", "关联be["+association.getRefModelCode()+"]中没有获取到字段["+refElement.getRefElementId()+"] ["+refElement.getLabelID()+"]。",null, ExceptionLevel.Error,false); - - refElement.getChildAssociations().addAll(element.getChildAssociations().clone()); - - dealElement(refElement); + IGspCommonElement element = refObj.findElement(refElement.getRefElementId()); + if (element == null) { + throw new VmManagerException("", "", + "关联be[" + association.getRefModelCode() + "]中没有获取到字段[" + refElement.getRefElementId() + + "] [" + refElement.getLabelID() + "]。", null, ExceptionLevel.Error, false); } - //endregion + + refElement.getChildAssociations().addAll(element.getChildAssociations().clone()); + + dealElement(refElement); + } + //endregion - public final IMetadataContent deserialize(String contentString) { - GspViewModel viewModel = new GspViewModel(); - try { - viewModel = getMapper().readValue(contentString, GspViewModel.class); - } catch (JsonProcessingException e) { - throw new VmManagerException("","", "vo反序列化失败" + contentString ,null, ExceptionLevel.Error,false); + public final IMetadataContent deserialize(String contentString) { + try { + return getMapper().readValue(contentString, GspViewModel.class); + } catch (JsonProcessingException e) { + throw new VmManagerException("", "", "vo反序列化失败" + contentString, null, ExceptionLevel.Error, + false); - } - return viewModel; } + } }