diff --git a/view-object-model/src/main/java/com/inspur/edp/formserver/viewmodel/common/ConvertVoUtils.java b/view-object-model/src/main/java/com/inspur/edp/formserver/viewmodel/common/ConvertVoUtils.java index e79c0cd0f117e878f549e9cbeba00b188410cd47..6864c4e4521820080471d4662fe8a1ba898d9635 100644 --- a/view-object-model/src/main/java/com/inspur/edp/formserver/viewmodel/common/ConvertVoUtils.java +++ b/view-object-model/src/main/java/com/inspur/edp/formserver/viewmodel/common/ConvertVoUtils.java @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2020 - present, Inspur Genersoft Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.inspur.edp.formserver.viewmodel.common; import com.inspur.edp.bef.bizentity.GspBizEntityObject; @@ -12,6 +28,7 @@ import com.inspur.edp.formserver.viewmodel.GspViewObject; import com.inspur.edp.formserver.viewmodel.collection.ViewObjectCollection; import com.inspur.edp.formserver.viewmodel.common.mapping.GspVoElementSourceType; import com.inspur.edp.formserver.viewmodel.common.mapping.GspVoObjectSourceType; +import io.iec.edp.caf.commons.utils.CollectionUtils; import java.util.ArrayList; import java.util.Iterator; @@ -39,7 +56,7 @@ public class ConvertVoUtils { utils.linkActions(model); } - public static void dealObject(GspBusinessEntity be, GspBizEntityObject bizObject, GspViewObject viewObject) { + private static void dealObject(GspBusinessEntity be, GspBizEntityObject bizObject, GspViewObject viewObject) { dealObjectBasicInfo(bizObject, viewObject); dealElements(be, bizObject, viewObject); @@ -47,37 +64,40 @@ public class ConvertVoUtils { dealObjectSelfInfo(bizObject, viewObject); //联动中处理 // dealModifyChildObjects(be,bizObject,viewObject); - dealAddChildObjects(bizObject, viewObject); + dealAddChildObjects(be, bizObject, viewObject); } - public static void dealAddChildObjects(GspBizEntityObject bizObject, GspViewObject viewObject) { - if (bizObject == null || bizObject.getContainChildObjects() == null || bizObject.getContainChildObjects().size() == 0) + private static void dealAddChildObjects(GspBusinessEntity be, GspBizEntityObject bizObject, GspViewObject viewObject) { + if (bizObject == null || CollectionUtils.isEmpty(bizObject.getContainChildObjects())) return; GspObjectCollection beObjectCollection = bizObject.getContainChildObjects(); for (IGspCommonObject beObj : beObjectCollection) { - if (isExistBizChildObject(viewObject, beObj.getID())) + // VO中查询对应子对象 + GspViewObject gspViewObject = getExistBizChildObject(viewObject, beObj.getID()); + // 若存在对应子对象, 则递归同步 + if (gspViewObject != null) { + dealObject(be, (GspBizEntityObject) beObj, gspViewObject); continue; + } + // 子对象不存在则新增 IGspCommonObject newViewObject = ConvertUtils.toObject(beObj, viewObject.getMapping().getTargetMetadataPkgName(), viewObject.getMapping().getTargetMetadataId(), viewObject.getIDElement().getID(), GspVoObjectSourceType.BeObject); viewObject.getContainChildObjects().add(newViewObject); } } - public static boolean isExistedBizObject(GspBusinessEntity be, String objId) { - GspBizEntityObject bizObj = (GspBizEntityObject) be.getNode(node -> node.getID().equals(objId)); - if (bizObj == null) - return false; - return true; + private static boolean isExistedBizObject(GspBusinessEntity be, String objId) { + GspBizEntityObject bizObj = be.getNode(node -> node.getID().equals(objId)); + return bizObj != null; } - public static GspBizEntityObject getBizObject(GspBusinessEntity be, String objId) { - GspBizEntityObject bizObj = (GspBizEntityObject) be.getNode(node -> node.getID().equals(objId)); - return bizObj; + private static GspBizEntityObject getBizObject(GspBusinessEntity be, String objId) { + return be.getNode(node -> node.getID().equals(objId)); } - public static void dealModifyChildObjects(GspBusinessEntity be, GspBizEntityObject bizObject, GspViewObject viewObject) { - if (viewObject.getContainChildObjects() == null || viewObject.getContainChildObjects().size() == 0) + private static void dealModifyChildObjects(GspBusinessEntity be, GspBizEntityObject bizObject, GspViewObject viewObject) { + if (viewObject == null || CollectionUtils.isEmpty(viewObject.getContainChildObjects())) return; ViewObjectCollection childObjList = viewObject.getContainChildObjects(); Iterator iterators = childObjList.iterator(); @@ -86,28 +106,29 @@ public class ConvertVoUtils { if (childObj.getIsVirtual()) { continue; } - String beChildObjId = ((GspViewObject) childObj).getMapping().getTargetObjId(); + String beChildObjId = childObj.getMapping().getTargetObjId(); if (!isExistedBizObject(be, beChildObjId)) { iterators.remove(); continue; } GspBizEntityObject childBizObject = getBizObject(be, beChildObjId); - dealObject(be, childBizObject, (GspViewObject) childObj); + dealObject(be, childBizObject, childObj); } } - public static void dealObjectSelfInfo(GspBizEntityObject bizObject, GspViewObject viewObject) { + private static void dealObjectSelfInfo(GspBizEntityObject bizObject, GspViewObject viewObject) { } - public static void dealElements(GspBusinessEntity be, GspBizEntityObject bizObject, GspViewObject viewObject) { + private static void dealElements(GspBusinessEntity be, GspBizEntityObject bizObject, GspViewObject viewObject) { dealBeAddElements(bizObject, viewObject); } - public static void dealBeAddElements(GspBizEntityObject bizObject, GspViewObject viewObject) { - ArrayList bizElemens = bizObject.getContainElements().getAllItems(item -> item.getIsVirtual() == false); - if (bizElemens == null || bizElemens.size() == 0) + private static void dealBeAddElements(GspBizEntityObject bizObject, GspViewObject viewObject) { + ArrayList bizElemens = bizObject.getContainElements().getAllItems(item -> !item.getIsVirtual()); + if (CollectionUtils.isEmpty(bizElemens)) { return; + } for (IGspCommonField beEle : bizElemens) { if (isExistBizElement(viewObject, beEle.getID())) continue; @@ -118,7 +139,7 @@ public class ConvertVoUtils { } - public static boolean isExistBizElement(GspViewObject bizObject, String elementId) { + private static boolean isExistBizElement(GspViewObject bizObject, String elementId) { ArrayList list = bizObject.getAllElementList(false); for (IGspCommonElement ele : list) { String beIdInView = ((GspViewModelElement) ele).getMapping().getTargetElementId(); @@ -129,17 +150,17 @@ public class ConvertVoUtils { return false; } - public static boolean isExistBizChildObject(GspViewObject bizObject, String objectId) { + private static GspViewObject getExistBizChildObject(GspViewObject bizObject, String objectId) { ViewObjectCollection viewObjectCollection = bizObject.getContainChildObjects(); for (IGspCommonObject ele : viewObjectCollection) { String objectIdInView = ((GspViewObject) ele).getMapping().getTargetObjId(); if (objectId.equals(objectIdInView)) { - return true; + return (GspViewObject) ele; } } - return false; + return null; } - public static void dealObjectBasicInfo(GspBizEntityObject bizObject, GspViewObject viewObject) { + private static void dealObjectBasicInfo(GspBizEntityObject bizObject, GspViewObject viewObject) { } }