diff --git a/src/main/java/neatlogic/module/cmdb/service/resourcecenter/resource/ResourceBuildSqlServiceImpl.java b/src/main/java/neatlogic/module/cmdb/service/resourcecenter/resource/ResourceBuildSqlServiceImpl.java index b7669782e5f79ea10702d021736b2984c2346720..436665bbc51f62f23c04f4f5e024760f95635613 100644 --- a/src/main/java/neatlogic/module/cmdb/service/resourcecenter/resource/ResourceBuildSqlServiceImpl.java +++ b/src/main/java/neatlogic/module/cmdb/service/resourcecenter/resource/ResourceBuildSqlServiceImpl.java @@ -93,6 +93,7 @@ public class ResourceBuildSqlServiceImpl implements ResourceBuildSqlService, IRe @Override public String buildResourceView(ResourceEntityVo resourceEntityVo) { String viewName = resourceEntityVo.getName(); + ResourceEntityConfigVo originalConfig = resourceEntityVo.getConfig(); String select = null; String error = StringUtils.EMPTY; try { @@ -145,6 +146,12 @@ public class ResourceBuildSqlServiceImpl implements ResourceBuildSqlService, IRe EscapeTransactionJob.State s = new EscapeTransactionJob(() -> { schemaMapper.deleteView(TenantContext.get().getDataDbName() + "." + viewName); List fieldNameList = ResourceEntityFactory.getFieldNameListByViewName(viewName); + if (CollectionUtils.isEmpty(fieldNameList)) { + String sceneTemplateName = originalConfig.getSceneTemplateName(); + if (StringUtils.isNotBlank(sceneTemplateName)) { + fieldNameList = ResourceEntityFactory.getFieldNameListByViewName(sceneTemplateName); + } + } Table table = new Table(); table.setName(viewName); table.setSchemaName(TenantContext.get().getDataDbName()); @@ -2087,6 +2094,22 @@ public class ResourceBuildSqlServiceImpl implements ResourceBuildSqlService, IRe if (StringUtils.isNotBlank(toCi)) { ciNameSet.add(toCi); } + String ciName = fieldMappingVo.getCiName(); + if (StringUtils.isNotBlank(ciName)) { + ciNameSet.add(ciName); + } + } + if (CollectionUtils.isNotEmpty(config.getRelLinkList())) { + for (ResourceEntityRelLinkVo relLinkVo : config.getRelLinkList()) { + String leftCi = relLinkVo.getLeftCi(); + if (StringUtils.isNotBlank(leftCi)) { + ciNameSet.add(leftCi); + } + String rightCi = relLinkVo.getRightCi(); + if (StringUtils.isNotBlank(rightCi)) { + ciNameSet.add(rightCi); + } + } } Map> ciId2AttrListMap = new HashMap<>(); Map name2CiMap = new HashMap<>();