From c7f2776204b4d47b71effbf453fed7a318e725c6 Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Tue, 9 Jan 2024 19:04:21 +0800 Subject: [PATCH 1/2] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=90=8E=E7=AB=AF-?= =?UTF-8?q?=E6=8A=BD=E8=B1=A1=E6=A8=A1=E5=9E=8B=E4=B8=8E=E5=AD=90=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E5=85=B3=E7=B3=BB=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1065270540468224]后端-抽象模型与子模型关系调整 http://192.168.0.96:8090/demo/rdm.html#/task-detail/939050947543040/939050947543050/1065270540468224 --- .../process/dto/CiEntitySyncConfigVo.java | 18 +- .../stephandler/CmdbSyncProcessComponent.java | 280 ++++++++++++++++-- .../CmdbSyncProcessUtilHandler.java | 78 ++--- 3 files changed, 307 insertions(+), 69 deletions(-) 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 040655e6..1721402d 100644 --- a/src/main/java/neatlogic/module/cmdb/process/dto/CiEntitySyncConfigVo.java +++ b/src/main/java/neatlogic/module/cmdb/process/dto/CiEntitySyncConfigVo.java @@ -1,7 +1,5 @@ package neatlogic.module.cmdb.process.dto; -import com.alibaba.fastjson.JSONArray; - import java.util.List; public class CiEntitySyncConfigVo { @@ -24,7 +22,7 @@ public class CiEntitySyncConfigVo { /** 同步策略,全局模式或局部模式 **/ private String editMode; /** 子模型配置 **/ - private JSONArray children; +// private JSONArray children; public Long getId() { return id; @@ -122,11 +120,11 @@ public class CiEntitySyncConfigVo { this.editMode = editMode; } - public JSONArray getChildren() { - return children; - } - - public void setChildren(JSONArray children) { - this.children = children; - } +// public JSONArray getChildren() { +// return children; +// } +// +// public void setChildren(JSONArray children) { +// this.children = children; +// } } diff --git a/src/main/java/neatlogic/module/cmdb/process/stephandler/CmdbSyncProcessComponent.java b/src/main/java/neatlogic/module/cmdb/process/stephandler/CmdbSyncProcessComponent.java index 3113fd7c..8c8a8407 100644 --- a/src/main/java/neatlogic/module/cmdb/process/stephandler/CmdbSyncProcessComponent.java +++ b/src/main/java/neatlogic/module/cmdb/process/stephandler/CmdbSyncProcessComponent.java @@ -474,25 +474,25 @@ public class CmdbSyncProcessComponent extends ProcessStepHandlerBase { } } // 遍历configList,将“批量操作”的配置信息根据表单数据转换成多条“单个操作”配置信息 - List ciEntitySyncConfigList = new ArrayList<>(); - ciEntitySyncConfigList.add(startConfigObj); - List ciEntityUuidList = new ArrayList<>(); - JSONArray children = startConfigObj.getChildren(); - if (CollectionUtils.isNotEmpty(children)) { - for (int i = 0; i < children.size(); i++) { - JSONObject child = children.getJSONObject(i); - String ciEntityUuid = child.getString("ciEntityUuid"); - if (StringUtils.isNotBlank(ciEntityUuid)) { - ciEntityUuidList.add(ciEntityUuid); - } - } - } - for (CiEntitySyncConfigVo ciEntitySyncConfig : originalConfigList) { - if (ciEntityUuidList.contains(ciEntitySyncConfig.getUuid())) { - ciEntitySyncConfigList.add(ciEntitySyncConfig); - } - } - handleBatchDataSource(originalConfigList, ciEntitySyncConfigList, formAttributeDataMap, newConfigList, formConfig); +// List ciEntitySyncConfigList = new ArrayList<>(); +// ciEntitySyncConfigList.add(startConfigObj); +// List ciEntityUuidList = new ArrayList<>(); +// JSONArray children = startConfigObj.getChildren(); +// if (CollectionUtils.isNotEmpty(children)) { +// for (int i = 0; i < children.size(); i++) { +// JSONObject child = children.getJSONObject(i); +// String ciEntityUuid = child.getString("ciEntityUuid"); +// if (StringUtils.isNotBlank(ciEntityUuid)) { +// ciEntityUuidList.add(ciEntityUuid); +// } +// } +// } +// for (CiEntitySyncConfigVo ciEntitySyncConfig : originalConfigList) { +// if (ciEntityUuidList.contains(ciEntitySyncConfig.getUuid())) { +// ciEntitySyncConfigList.add(ciEntitySyncConfig); +// } +// } + handleBatchDataSource(originalConfigList, startConfigObj, formAttributeDataMap, newConfigList, formConfig); } return newConfigList; } @@ -996,6 +996,102 @@ public class CmdbSyncProcessComponent extends ProcessStepHandlerBase { return resultList; } + /** + * 遍历configList,将“批量操作”的配置信息根据表单数据转换成多条“单个操作”配置信息 + * @param originalConfigList 原始配置信息列表 + * @param currentConfig 当前要处理的配置信息 + * @param formAttributeDataMap 表单数据信息 + * @param newConfigList 收集新产生的配置信息列表 + * @param formConfig 表单配置信息 + * @return + */ + private JSONArray handleBatchDataSource( + List originalConfigList, + CiEntitySyncConfigVo currentConfig, + Map formAttributeDataMap, + List newConfigList, + String formConfig + ) { +// CiEntitySyncConfigVo currentConfig = currentConfigList.get(0); + Long ciId = currentConfig.getCiId(); + CiVo ciVo = ciMapper.getCiById(ciId); + if (ciVo == null) { + String ciName = currentConfig.getCiName(); + throw new CiNotFoundException(ciName); + } + JSONArray resultList = new JSONArray(); + List batchDataColumnList = new ArrayList<>(); + JSONArray batchDataList = new JSONArray(); + if (Objects.equals(currentConfig.getCreatePolicy(), "batch")) { + // 批量操作配置信息 + CiEntitySyncBatchDataSourceVo batchDataSource = currentConfig.getBatchDataSource(); + String attributeUuid = batchDataSource.getAttributeUuid(); + Object dataObj = formAttributeDataMap.get(attributeUuid); + if (dataObj == null) { + return resultList; + } + if (dataObj instanceof JSONArray) { + JSONArray dataList = (JSONArray) dataObj; + List filterList = batchDataSource.getFilterList(); + batchDataList = filterData(dataList, filterList, formConfig); + if (CollectionUtils.isEmpty(batchDataList)) { + return resultList; + } + JSONObject rowDataObj = batchDataList.getJSONObject(0); + batchDataColumnList.addAll(rowDataObj.keySet()); + } else { + return resultList; + } + } +// Map targetCiConfigMap = new HashMap<>(); +// for (int i = 1; i < currentConfigList.size(); i++) { +// CiEntitySyncConfigVo ciEntitySyncConfig = currentConfigList.get(i); +// targetCiConfigMap.put(ciEntitySyncConfig.getCiId().toString(), ciEntitySyncConfig); +// targetCiConfigMap.put(ciEntitySyncConfig.getCiName(), ciEntitySyncConfig); +// targetCiConfigMap.put(ciEntitySyncConfig.getCiLabel(), ciEntitySyncConfig); +// } + List mappingList = handleMappingFormComponent(currentConfig.getMappingList(), batchDataColumnList, formAttributeDataMap); + if (Objects.equals(currentConfig.getCreatePolicy(), "batch")) { + if (CollectionUtils.isNotEmpty(batchDataList)) { + // 遍历批量操作表格数据 + for (int j = 0; j < batchDataList.size(); j++) { + JSONObject rowDataObj = batchDataList.getJSONObject(j); + if (MapUtils.isEmpty(rowDataObj)) { + continue; + } + List newMappingList = new ArrayList<>(); + newMappingList.addAll(mappingList); + List list = handleMappingFormTableComponent(rowDataObj, batchDataColumnList, currentConfig.getMappingList()); + newMappingList.addAll(list); + CiEntitySyncConfigVo newConfigObj = createCiEntitySyncConfigVo(ciVo, currentConfig, newMappingList); + JSONObject resultObj = new JSONObject(); + resultObj.put("ciEntityUuid", newConfigObj.getUuid()); + resultObj.put("ciEntityName", newConfigObj.getCiName()); + resultObj.put("ciId", newConfigObj.getCiId()); + resultObj.put("type", "new"); + resultList.add(resultObj); + newConfigList.add(newConfigObj); + formAttributeDataMap.putAll(rowDataObj); + Map newFormAttributeDataMap = new HashMap<>(); + newFormAttributeDataMap.putAll(formAttributeDataMap); + newFormAttributeDataMap.putAll(rowDataObj); + handleMappingRelConfig(originalConfigList, newConfigObj, newFormAttributeDataMap, newConfigList, formConfig); + } + } + } else { + CiEntitySyncConfigVo newConfigObj = createCiEntitySyncConfigVo(ciVo, currentConfig, mappingList); + JSONObject resultObj = new JSONObject(); + resultObj.put("ciEntityUuid", newConfigObj.getUuid()); + resultObj.put("ciEntityName", newConfigObj.getCiName()); + resultObj.put("ciId", newConfigObj.getCiId()); + resultObj.put("type", "new"); + resultList.add(resultObj); + newConfigList.add(newConfigObj); + handleMappingRelConfig(originalConfigList, newConfigObj, formAttributeDataMap, newConfigList, formConfig); + } + return resultList; + } + /** * 处理关系的新的配置项数据 * @param originalConfigList 原始配置信息列表 @@ -1004,7 +1100,7 @@ public class CmdbSyncProcessComponent extends ProcessStepHandlerBase { * @param newConfigList 收集新产生的配置信息列表 * @param formConfig 表单配置信息 */ - private void handleMappingRelConfig( + private void oldHandleMappingRelConfig( List originalConfigList, CiEntitySyncConfigVo currentConfig, Map formAttributeDataMap, @@ -1061,6 +1157,72 @@ public class CmdbSyncProcessComponent extends ProcessStepHandlerBase { } } + /** + * 处理关系的新的配置项数据 + * @param originalConfigList 原始配置信息列表 + * @param currentConfig 当前要处理的配置信息 + * @param formAttributeDataMap 表单数据信息 + * @param newConfigList 收集新产生的配置信息列表 + * @param formConfig 表单配置信息 + */ + private void handleMappingRelConfig( + List originalConfigList, + CiEntitySyncConfigVo currentConfig, + Map formAttributeDataMap, + List newConfigList, + String formConfig + ) { + List mappingList = currentConfig.getMappingList(); + for (CiEntitySyncMappingVo mappingObj : mappingList) { + String mappingMode = mappingObj.getMappingMode(); + if (!Objects.equals(mappingMode, "new")) { + continue; + } + JSONArray valueList = mappingObj.getValueList(); + if (CollectionUtils.isEmpty(valueList)) { + continue; + } + JSONArray newValueList = new JSONArray(); + boolean isFrom = false; + List ciEntityUuidList = new ArrayList<>(); + for (int i = 0; i < valueList.size(); i++) { + JSONObject valueObj = valueList.getJSONObject(i); + if (MapUtils.isEmpty(valueObj)) { + continue; + } + String ciEntityUuid = valueObj.getString("ciEntityUuid"); + if (StringUtils.isBlank(ciEntityUuid)) { + continue; + } + ciEntityUuidList.add(ciEntityUuid); + String type = valueObj.getString("type"); + if (Objects.equals(type, "from")) { + JSONObject newValueObj = new JSONObject(); + newValueObj.putAll(valueObj); + newValueList.add(newValueObj); + isFrom = true; + break; + } + } + if (!isFrom) { +// List relConfigObjList = new ArrayList<>(); + for (CiEntitySyncConfigVo originalConfig : originalConfigList) { + if (ciEntityUuidList.contains(originalConfig.getUuid())) { + replaceMappingRelFromCiEntityUuid(originalConfig, currentConfig.getUuid()); + JSONArray list = handleBatchDataSource(originalConfigList, originalConfig, formAttributeDataMap, newConfigList, formConfig); + newValueList.addAll(list); + } + } +// if (CollectionUtils.isNotEmpty(relConfigObjList)) { +// newValueList = handleBatchDataSource(originalConfigList, relConfigObjList, formAttributeDataMap, newConfigList, formConfig); +// } else { +// logger.warn("mappingObj = " + JSONObject.toJSONString(mappingObj)); +// } + } + mappingObj.setValueList(newValueList); + } + } + /** * 替换关系的配置信息中的来源配置项的ciEntityUuid * @param relConfigObj @@ -1283,6 +1445,84 @@ public class CmdbSyncProcessComponent extends ProcessStepHandlerBase { return newConfigObj; } + private CiEntitySyncConfigVo createCiEntitySyncConfigVo( + CiVo ciVo, + CiEntitySyncConfigVo currentConfig, + List newMappingList) { + CiEntitySyncConfigVo newConfigObj = new CiEntitySyncConfigVo(); + newConfigObj.setUuid(UuidUtil.randomUuid()); + if (Objects.equals(ciVo.getIsAbstract(), 1)) { + Optional targetCiIdMappingObj = newMappingList.stream().filter(e -> Objects.equals(e.getKey(), "targetCiId")).findFirst(); + if (!targetCiIdMappingObj.isPresent()) { + throw new AbstractCiTargetCiIdAttrNotFoundException(ciVo); + } + JSONArray valueList = targetCiIdMappingObj.get().getValueList(); + if (CollectionUtils.isEmpty(valueList)) { + throw new AbstractCiTargetCiIdAttrNotFoundException(ciVo); + } + String valueStr = valueList.getString(0); +// CiEntitySyncConfigVo targetCiConfig = targetCiConfigMap.get(valueStr); +// if (targetCiConfig == null) { + CiVo targetCi = null; + List downwardCiList = ciMapper.getDownwardCiListByLR(ciVo.getLft(), ciVo.getRht()); + for (CiVo downwardCi : downwardCiList) { + if (Objects.equals(downwardCi.getId().toString(), valueStr)) { + targetCi = downwardCi; + } else if (Objects.equals(downwardCi.getName(), valueStr)) { + targetCi = downwardCi; + } else if (Objects.equals(downwardCi.getLabel(), valueStr)) { + targetCi = downwardCi; + } + } + if (targetCi == null) { + throw new DownwardCiNotFoundException(ciVo, valueStr); + } else if (Objects.equals(targetCi.getIsAbstract(), 1)) { + throw new CiIsAbstractedException(CiIsAbstractedException.Type.DATA, targetCi.getLabel() + "(" + targetCi.getName() + ")"); + } + newConfigObj.setCiId(targetCi.getId()); + newConfigObj.setCiName(targetCi.getName()); + newConfigObj.setCiLabel(targetCi.getLabel()); + newConfigObj.setIsStart(currentConfig.getIsStart()); + newConfigObj.setCiIcon(targetCi.getIcon()); + newConfigObj.setEditMode(currentConfig.getEditMode()); +// } else { +// List mappingList = targetCiConfig.getMappingList(); +// List list = handleMappingFormComponent(mappingList, batchDataColumnList, formAttributeDataMap); +// newMappingList.addAll(list); +// if (rowDataObj != null) { +// list = handleMappingFormTableComponent(rowDataObj, batchDataColumnList, targetCiConfig.getMappingList()); +// newMappingList.addAll(list); +// } +// for (CiEntitySyncMappingVo mapping : mappingList) { +// if (Objects.equals(mapping.getMappingMode(), "new")) { +// newMappingList.add(new CiEntitySyncMappingVo(mapping)); +// } +// } +// newConfigObj.setCiId(targetCiConfig.getCiId()); +// newConfigObj.setCiName(targetCiConfig.getCiName()); +// newConfigObj.setCiLabel(targetCiConfig.getCiLabel()); +// newConfigObj.setIsStart(currentConfig.getIsStart()); +// newConfigObj.setCiIcon(targetCiConfig.getCiIcon()); +// newConfigObj.setEditMode(targetCiConfig.getEditMode()); +// } + } else { + newConfigObj.setCiId(currentConfig.getCiId()); + newConfigObj.setCiName(currentConfig.getCiName()); + newConfigObj.setCiLabel(currentConfig.getCiLabel()); + newConfigObj.setIsStart(currentConfig.getIsStart()); + newConfigObj.setCiIcon(currentConfig.getCiIcon()); + newConfigObj.setEditMode(currentConfig.getEditMode()); + } + List mappingList = currentConfig.getMappingList(); + for (CiEntitySyncMappingVo mapping : mappingList) { + if (Objects.equals(mapping.getMappingMode(), "new")) { + newMappingList.add(new CiEntitySyncMappingVo(mapping)); + } + } + newConfigObj.setMappingList(newMappingList); + return newConfigObj; + } + /** * 表单数据适配CMDB数据 * @param attributeUuid 表单属性uuid 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 22b3f925..07a1f7b9 100644 --- a/src/main/java/neatlogic/module/cmdb/process/stephandler/CmdbSyncProcessUtilHandler.java +++ b/src/main/java/neatlogic/module/cmdb/process/stephandler/CmdbSyncProcessUtilHandler.java @@ -546,33 +546,33 @@ 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"); - } - } +// 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"); +// } +// } } Set usedUuidList = new HashSet<>(); @@ -582,18 +582,18 @@ public class CmdbSyncProcessUtilHandler extends ProcessStepInternalHandlerBase { String name = ciName; String ciLabel = ciEntitySyncConfigVo.getCiLabel(); name += "(" + ciLabel + ")"; - JSONArray children = ciEntitySyncConfigVo.getChildren(); - if (CollectionUtils.isNotEmpty(children)) { - for (int i = 0; i < children.size(); i++) { - JSONObject child = children.getJSONObject(i); - String ciEntityUuid = child.getString("ciEntityUuid"); - if (!allUuidList.contains(ciEntityUuid)) { - logger.warn("ciEntityConfig.configList[" + name + "].children[i].ciEntityUuid = '" + ciEntityUuid + "' is illegal"); - throw new CiEntityConfigIllegalException("ciEntityConfig.configList[" + name + "].children[i].ciEntityUuid = '" + ciEntityUuid + "' is illegal"); - } - usedUuidList.add(ciEntityUuid); - } - } +// JSONArray children = ciEntitySyncConfigVo.getChildren(); +// if (CollectionUtils.isNotEmpty(children)) { +// for (int i = 0; i < children.size(); i++) { +// JSONObject child = children.getJSONObject(i); +// String ciEntityUuid = child.getString("ciEntityUuid"); +// if (!allUuidList.contains(ciEntityUuid)) { +// logger.warn("ciEntityConfig.configList[" + name + "].children[i].ciEntityUuid = '" + ciEntityUuid + "' is illegal"); +// throw new CiEntityConfigIllegalException("ciEntityConfig.configList[" + name + "].children[i].ciEntityUuid = '" + ciEntityUuid + "' is illegal"); +// } +// usedUuidList.add(ciEntityUuid); +// } +// } List mappingList = ciEntitySyncConfigVo.getMappingList(); if (CollectionUtils.isNotEmpty(mappingList)) { for (CiEntitySyncMappingVo mapping : mappingList) { -- Gitee From d4b39434cd75d9297d56b8b0790fb87df1725360 Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Tue, 9 Jan 2024 19:07:13 +0800 Subject: [PATCH 2/2] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=90=8E=E7=AB=AF-?= =?UTF-8?q?=E6=8A=BD=E8=B1=A1=E6=A8=A1=E5=9E=8B=E4=B8=8E=E5=AD=90=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E5=85=B3=E7=B3=BB=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1065270540468224]后端-抽象模型与子模型关系调整 http://192.168.0.96:8090/demo/rdm.html#/task-detail/939050947543040/939050947543050/1065270540468224 --- .../stephandler/CmdbSyncProcessComponent.java | 78 +++++-------------- 1 file changed, 21 insertions(+), 57 deletions(-) diff --git a/src/main/java/neatlogic/module/cmdb/process/stephandler/CmdbSyncProcessComponent.java b/src/main/java/neatlogic/module/cmdb/process/stephandler/CmdbSyncProcessComponent.java index 8c8a8407..d5dbe780 100644 --- a/src/main/java/neatlogic/module/cmdb/process/stephandler/CmdbSyncProcessComponent.java +++ b/src/main/java/neatlogic/module/cmdb/process/stephandler/CmdbSyncProcessComponent.java @@ -1012,7 +1012,6 @@ public class CmdbSyncProcessComponent extends ProcessStepHandlerBase { List newConfigList, String formConfig ) { -// CiEntitySyncConfigVo currentConfig = currentConfigList.get(0); Long ciId = currentConfig.getCiId(); CiVo ciVo = ciMapper.getCiById(ciId); if (ciVo == null) { @@ -1043,13 +1042,6 @@ public class CmdbSyncProcessComponent extends ProcessStepHandlerBase { return resultList; } } -// Map targetCiConfigMap = new HashMap<>(); -// for (int i = 1; i < currentConfigList.size(); i++) { -// CiEntitySyncConfigVo ciEntitySyncConfig = currentConfigList.get(i); -// targetCiConfigMap.put(ciEntitySyncConfig.getCiId().toString(), ciEntitySyncConfig); -// targetCiConfigMap.put(ciEntitySyncConfig.getCiName(), ciEntitySyncConfig); -// targetCiConfigMap.put(ciEntitySyncConfig.getCiLabel(), ciEntitySyncConfig); -// } List mappingList = handleMappingFormComponent(currentConfig.getMappingList(), batchDataColumnList, formAttributeDataMap); if (Objects.equals(currentConfig.getCreatePolicy(), "batch")) { if (CollectionUtils.isNotEmpty(batchDataList)) { @@ -1205,7 +1197,6 @@ public class CmdbSyncProcessComponent extends ProcessStepHandlerBase { } } if (!isFrom) { -// List relConfigObjList = new ArrayList<>(); for (CiEntitySyncConfigVo originalConfig : originalConfigList) { if (ciEntityUuidList.contains(originalConfig.getUuid())) { replaceMappingRelFromCiEntityUuid(originalConfig, currentConfig.getUuid()); @@ -1213,11 +1204,6 @@ public class CmdbSyncProcessComponent extends ProcessStepHandlerBase { newValueList.addAll(list); } } -// if (CollectionUtils.isNotEmpty(relConfigObjList)) { -// newValueList = handleBatchDataSource(originalConfigList, relConfigObjList, formAttributeDataMap, newConfigList, formConfig); -// } else { -// logger.warn("mappingObj = " + JSONObject.toJSONString(mappingObj)); -// } } mappingObj.setValueList(newValueList); } @@ -1461,50 +1447,28 @@ public class CmdbSyncProcessComponent extends ProcessStepHandlerBase { throw new AbstractCiTargetCiIdAttrNotFoundException(ciVo); } String valueStr = valueList.getString(0); -// CiEntitySyncConfigVo targetCiConfig = targetCiConfigMap.get(valueStr); -// if (targetCiConfig == null) { - CiVo targetCi = null; - List downwardCiList = ciMapper.getDownwardCiListByLR(ciVo.getLft(), ciVo.getRht()); - for (CiVo downwardCi : downwardCiList) { - if (Objects.equals(downwardCi.getId().toString(), valueStr)) { - targetCi = downwardCi; - } else if (Objects.equals(downwardCi.getName(), valueStr)) { - targetCi = downwardCi; - } else if (Objects.equals(downwardCi.getLabel(), valueStr)) { - targetCi = downwardCi; - } - } - if (targetCi == null) { - throw new DownwardCiNotFoundException(ciVo, valueStr); - } else if (Objects.equals(targetCi.getIsAbstract(), 1)) { - throw new CiIsAbstractedException(CiIsAbstractedException.Type.DATA, targetCi.getLabel() + "(" + targetCi.getName() + ")"); + CiVo targetCi = null; + List downwardCiList = ciMapper.getDownwardCiListByLR(ciVo.getLft(), ciVo.getRht()); + for (CiVo downwardCi : downwardCiList) { + if (Objects.equals(downwardCi.getId().toString(), valueStr)) { + targetCi = downwardCi; + } else if (Objects.equals(downwardCi.getName(), valueStr)) { + targetCi = downwardCi; + } else if (Objects.equals(downwardCi.getLabel(), valueStr)) { + targetCi = downwardCi; } - newConfigObj.setCiId(targetCi.getId()); - newConfigObj.setCiName(targetCi.getName()); - newConfigObj.setCiLabel(targetCi.getLabel()); - newConfigObj.setIsStart(currentConfig.getIsStart()); - newConfigObj.setCiIcon(targetCi.getIcon()); - newConfigObj.setEditMode(currentConfig.getEditMode()); -// } else { -// List mappingList = targetCiConfig.getMappingList(); -// List list = handleMappingFormComponent(mappingList, batchDataColumnList, formAttributeDataMap); -// newMappingList.addAll(list); -// if (rowDataObj != null) { -// list = handleMappingFormTableComponent(rowDataObj, batchDataColumnList, targetCiConfig.getMappingList()); -// newMappingList.addAll(list); -// } -// for (CiEntitySyncMappingVo mapping : mappingList) { -// if (Objects.equals(mapping.getMappingMode(), "new")) { -// newMappingList.add(new CiEntitySyncMappingVo(mapping)); -// } -// } -// newConfigObj.setCiId(targetCiConfig.getCiId()); -// newConfigObj.setCiName(targetCiConfig.getCiName()); -// newConfigObj.setCiLabel(targetCiConfig.getCiLabel()); -// newConfigObj.setIsStart(currentConfig.getIsStart()); -// newConfigObj.setCiIcon(targetCiConfig.getCiIcon()); -// newConfigObj.setEditMode(targetCiConfig.getEditMode()); -// } + } + if (targetCi == null) { + throw new DownwardCiNotFoundException(ciVo, valueStr); + } else if (Objects.equals(targetCi.getIsAbstract(), 1)) { + throw new CiIsAbstractedException(CiIsAbstractedException.Type.DATA, targetCi.getLabel() + "(" + targetCi.getName() + ")"); + } + newConfigObj.setCiId(targetCi.getId()); + newConfigObj.setCiName(targetCi.getName()); + newConfigObj.setCiLabel(targetCi.getLabel()); + newConfigObj.setIsStart(currentConfig.getIsStart()); + newConfigObj.setCiIcon(targetCi.getIcon()); + newConfigObj.setEditMode(currentConfig.getEditMode()); } else { newConfigObj.setCiId(currentConfig.getCiId()); newConfigObj.setCiName(currentConfig.getCiName()); -- Gitee