diff --git a/src/main/java/neatlogic/module/cmdb/process/dto/CiEntitySyncConfigVo.java b/src/main/java/neatlogic/module/cmdb/process/dto/CiEntitySyncConfigVo.java index 7a2e46d7e5b6c1cbb60046c941dd3195b6980cf2..040655e610383cc40a5976eb8ccdcc96c2d4123e 100644 --- a/src/main/java/neatlogic/module/cmdb/process/dto/CiEntitySyncConfigVo.java +++ b/src/main/java/neatlogic/module/cmdb/process/dto/CiEntitySyncConfigVo.java @@ -1,5 +1,7 @@ package neatlogic.module.cmdb.process.dto; +import com.alibaba.fastjson.JSONArray; + import java.util.List; public class CiEntitySyncConfigVo { @@ -21,6 +23,8 @@ public class CiEntitySyncConfigVo { private List mappingList; /** 同步策略,全局模式或局部模式 **/ private String editMode; + /** 子模型配置 **/ + private JSONArray children; public Long getId() { return id; @@ -117,4 +121,12 @@ public class CiEntitySyncConfigVo { public void setEditMode(String editMode) { this.editMode = editMode; } + + public JSONArray getChildren() { + return children; + } + + public void setChildren(JSONArray children) { + this.children = children; + } } diff --git a/src/main/java/neatlogic/module/cmdb/process/stephandler/CmdbSyncProcessUtilHandler.java b/src/main/java/neatlogic/module/cmdb/process/stephandler/CmdbSyncProcessUtilHandler.java index 382f8b667b8c861a43975cb14b10cb75698c0d74..2cc8460da6433781cf35a5b5edb9854f86754fad 100644 --- a/src/main/java/neatlogic/module/cmdb/process/stephandler/CmdbSyncProcessUtilHandler.java +++ b/src/main/java/neatlogic/module/cmdb/process/stephandler/CmdbSyncProcessUtilHandler.java @@ -547,6 +547,34 @@ public class CmdbSyncProcessUtilHandler extends ProcessStepInternalHandlerBase { } } } + + JSONArray children = configObj.getChildren(); + if (CollectionUtils.isEmpty(children)) { + continue; + } + for (int i = children.size() - 1; i >= 0; i--) { + JSONObject child = children.getJSONObject(i); + if (MapUtils.isEmpty(child)) { + logger.warn("ciEntityConfig.configList[" + name + "].children[i] is null"); + children.remove(i); + continue; + } + String ciEntityUuid = child.getString("ciEntityUuid"); + if (StringUtils.isBlank(ciEntityUuid)) { + logger.warn("ciEntityConfig.configList[" + name + "].children[i].ciEntityUuid is null"); + throw new CiEntityConfigIllegalException("ciEntityConfig.configList[" + name + "].children[i].ciEntityUuid is null"); + } + String ciEntityName = child.getString("ciEntityName"); + if (StringUtils.isBlank(ciEntityName)) { + logger.warn("ciEntityConfig.configList[" + name + "].children[i].ciEntityName is null"); + throw new CiEntityConfigIllegalException("ciEntityConfig.configList[" + name + "].children[i].ciEntityName is null"); + } + Long ciId = child.getLong("ciId"); + if (ciId == null) { + logger.warn("ciEntityConfig.configList[" + name + "].children[i].ciId is null"); + throw new CiEntityConfigIllegalException("ciEntityConfig.configList[" + name + "].children[i].ciId is null"); + } + } } return ciEntitySyncVo; }