From 64a4bc124c0f2626276d742bee6e0e09b25ea509 Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Tue, 12 Dec 2023 20:09:35 +0800 Subject: [PATCH 1/3] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=90=8E=E7=AB=AF-?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E6=B8=85=E5=8D=95=E4=B8=AD=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E7=9A=84=E5=8F=96=E5=80=BC=EF=BC=8C=E7=94=B1=E8=BD=AF=E4=BB=B6?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E6=A8=A1=E5=9E=8B=E7=9A=84=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E6=94=B9=E6=88=90=E5=85=A8=E5=B1=80=E5=8F=98?= =?UTF-8?q?=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1045002732404736]后端-应用清单中环境的取值,由软件服务模型的环境属性改成全局变量 http://192.168.0.96:8090/demo/rdm.html#/task-detail/939050947543040/939050947543050/1045002732404736 --- .../utils/ResourceViewGenerateSqlUtil.java | 62 +++++++++++++++++-- 1 file changed, 58 insertions(+), 4 deletions(-) diff --git a/src/main/java/neatlogic/framework/cmdb/utils/ResourceViewGenerateSqlUtil.java b/src/main/java/neatlogic/framework/cmdb/utils/ResourceViewGenerateSqlUtil.java index 3b9df20..7ec6654 100644 --- a/src/main/java/neatlogic/framework/cmdb/utils/ResourceViewGenerateSqlUtil.java +++ b/src/main/java/neatlogic/framework/cmdb/utils/ResourceViewGenerateSqlUtil.java @@ -21,10 +21,7 @@ import neatlogic.framework.cmdb.dto.ci.CiVo; import neatlogic.framework.cmdb.dto.resourcecenter.config.ResourceEntityConfigVo; import neatlogic.framework.cmdb.dto.resourcecenter.config.ResourceEntityFieldMappingVo; import neatlogic.framework.cmdb.enums.RelDirectionType; -import net.sf.jsqlparser.expression.Alias; -import net.sf.jsqlparser.expression.Expression; -import net.sf.jsqlparser.expression.Function; -import net.sf.jsqlparser.expression.LongValue; +import net.sf.jsqlparser.expression.*; import net.sf.jsqlparser.expression.operators.conditional.AndExpression; import net.sf.jsqlparser.expression.operators.relational.*; import net.sf.jsqlparser.schema.Column; @@ -389,6 +386,63 @@ public class ResourceViewGenerateSqlUtil { return column; } } + } else if (Objects.equals(type, "globalAttr")) { + Table resourceCiTable = getTableByAlias("cientity_" + fromCi); + if (resourceCiTable == null) { + resourceCiTable = new Table("cmdb_cientity").withAlias(new Alias("cientity_" + fromCi).withUseAs(false)); + Column resourceCiTableIdColumn = new Column(resourceCiTable, "id"); + Column mainTableIdColumn = new Column(mainTable, "id"); + EqualsTo equalsTo = new EqualsTo(resourceCiTableIdColumn, mainTableIdColumn); + Join join = new Join().withLeft(left).withRightItem(resourceCiTable).addOnExpression(equalsTo); + plainSelect.addJoins(join); + addJoinTable(resourceCiTable); + addEqualColumn(resourceCiTableIdColumn, mainTableIdColumn); + } + Table cmdbCientityGlobalattritemTable = getTableByAlias("globalattritem_" + fromAttr); + if (cmdbCientityGlobalattritemTable == null) { + cmdbCientityGlobalattritemTable = new Table("cmdb_cientity_globalattritem").withAlias(new Alias("globalattritem_" + fromAttr).withUseAs(false)); + Column cmdbCientityGlobalattritemTableCiEntityIdColumn = new Column(cmdbCientityGlobalattritemTable, "cientity_id"); + Column resourceCiTableIdColumn = new Column(resourceCiTable, "id"); + EqualsTo equalsTo = new EqualsTo(cmdbCientityGlobalattritemTableCiEntityIdColumn, resourceCiTableIdColumn); + Join join = new Join().withLeft(left).withRightItem(cmdbCientityGlobalattritemTable).addOnExpression(equalsTo); + plainSelect.addJoins(join); + addJoinTable(cmdbCientityGlobalattritemTable); + addEqualColumn(cmdbCientityGlobalattritemTableCiEntityIdColumn, resourceCiTableIdColumn); + } + Table globalAttrTable = getTableByAlias("global_attr_" + fromAttr); + if (globalAttrTable == null) { + globalAttrTable = new Table("cmdb_global_attr").withAlias(new Alias("global_attr_" + fromAttr).withUseAs(false)); + Column globalAttrTableIdColumn = new Column(globalAttrTable, "id"); + Column cmdbCientityGlobalattritemTableAttrIdColumn = new Column(cmdbCientityGlobalattritemTable, "attr_id"); + EqualsTo equalsTo = new EqualsTo(globalAttrTableIdColumn, cmdbCientityGlobalattritemTableAttrIdColumn); + Column globalAttrTableNameColumn = new Column(globalAttrTable, "name"); + EqualsTo equalsTo2 = new EqualsTo(globalAttrTableNameColumn, new StringValue(fromAttr)); + Join join = new Join().withLeft(left).withRightItem(globalAttrTable).addOnExpression(new AndExpression(equalsTo, equalsTo2)); + plainSelect.addJoins(join); + addJoinTable(globalAttrTable); + addEqualColumn(globalAttrTableIdColumn, cmdbCientityGlobalattritemTableAttrIdColumn); + } + Table globalAttritemTable = getTableByAlias("global_attritem_" + fromAttr); + if (globalAttritemTable == null) { + globalAttritemTable = new Table("cmdb_global_attritem").withAlias(new Alias("global_attritem_" + fromAttr).withUseAs(false)); + Column globalAttritemTableIdColumn = new Column(globalAttritemTable, "id"); + Column cmdbCientityGlobalattritemTableItemIdColumn = new Column(cmdbCientityGlobalattritemTable, "item_id"); + EqualsTo equalsTo = new EqualsTo(globalAttritemTableIdColumn, cmdbCientityGlobalattritemTableItemIdColumn); + Column globalAttritemTableAttrIdColumn = new Column(globalAttritemTable, "attr_id"); + Column cmdbCientityGlobalattritemTableAttrIdColumn = new Column(cmdbCientityGlobalattritemTable, "attr_id"); + EqualsTo equalsTo2 = new EqualsTo(globalAttritemTableAttrIdColumn, cmdbCientityGlobalattritemTableAttrIdColumn); + Join join = new Join().withLeft(left).withRightItem(globalAttritemTable).addOnExpression(new AndExpression(equalsTo, equalsTo2)); + plainSelect.addJoins(join); + addJoinTable(globalAttritemTable); + addEqualColumn(globalAttritemTableIdColumn, cmdbCientityGlobalattritemTableItemIdColumn); + addEqualColumn(globalAttritemTableAttrIdColumn, cmdbCientityGlobalattritemTableAttrIdColumn); + } + Column column = new Column(globalAttritemTable, toAttr); + plainSelect.addSelectItems(new SelectExpressionItem(column).withAlias(new Alias(field))); + return column; + } else if (Objects.equals(type, "empty")) { + plainSelect.addSelectItems(new SelectExpressionItem(new NullValue()).withAlias(new Alias(field))); + return null; } else { //非下拉框属性 if ("_id".equals(fromAttr)) { -- Gitee From 9340a734ebc4a89e8eb1809bd25f8a31006a3870 Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Tue, 12 Dec 2023 23:08:43 +0800 Subject: [PATCH 2/3] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=90=8E=E7=AB=AF-?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E6=B8=85=E5=8D=95=E4=B8=AD=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E7=9A=84=E5=8F=96=E5=80=BC=EF=BC=8C=E7=94=B1=E8=BD=AF=E4=BB=B6?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E6=A8=A1=E5=9E=8B=E7=9A=84=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E6=94=B9=E6=88=90=E5=85=A8=E5=B1=80=E5=8F=98?= =?UTF-8?q?=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1045002732404736]后端-应用清单中环境的取值,由软件服务模型的环境属性改成全局变量 http://192.168.0.96:8090/demo/rdm.html#/task-detail/939050947543040/939050947543050/1045002732404736 --- .../ResourceViewGenerateSqlUtilForTiDB.java | 62 +++++++++++++++++-- 1 file changed, 58 insertions(+), 4 deletions(-) diff --git a/src/main/java/neatlogic/framework/cmdb/utils/ResourceViewGenerateSqlUtilForTiDB.java b/src/main/java/neatlogic/framework/cmdb/utils/ResourceViewGenerateSqlUtilForTiDB.java index 6b3329c..c1cbe01 100644 --- a/src/main/java/neatlogic/framework/cmdb/utils/ResourceViewGenerateSqlUtilForTiDB.java +++ b/src/main/java/neatlogic/framework/cmdb/utils/ResourceViewGenerateSqlUtilForTiDB.java @@ -21,10 +21,7 @@ import neatlogic.framework.cmdb.dto.ci.CiVo; import neatlogic.framework.cmdb.dto.resourcecenter.config.ResourceEntityConfigVo; import neatlogic.framework.cmdb.dto.resourcecenter.config.ResourceEntityFieldMappingVo; import neatlogic.framework.cmdb.enums.RelDirectionType; -import net.sf.jsqlparser.expression.Alias; -import net.sf.jsqlparser.expression.Expression; -import net.sf.jsqlparser.expression.Function; -import net.sf.jsqlparser.expression.LongValue; +import net.sf.jsqlparser.expression.*; import net.sf.jsqlparser.expression.operators.conditional.AndExpression; import net.sf.jsqlparser.expression.operators.conditional.OrExpression; import net.sf.jsqlparser.expression.operators.relational.EqualsTo; @@ -407,6 +404,63 @@ public class ResourceViewGenerateSqlUtilForTiDB { return column; } } + } else if (Objects.equals(type, "globalAttr")) { + SubSelect resourceCiTable = joinedSubSelectMap.get("cientity_" + fromCi); + if (resourceCiTable == null) { +// resourceCiTable = new Table("cmdb_cientity").withAlias(new Alias("cientity_" + fromCi).withUseAs(false)); + Column resourceCiTableIdColumn = new Column(resourceCiTable.getAlias().getName() + ".id"); + Column mainTableIdColumn = new Column(mainTable.getAlias().getName() + ".id"); + EqualsTo equalsTo = new EqualsTo(resourceCiTableIdColumn, mainTableIdColumn); + Join join = new Join().withLeft(left).withRightItem(resourceCiTable).addOnExpression(equalsTo); + plainSelect.addJoins(join); + addJoinSubSelect(resourceCiTable); + addEqualColumn(resourceCiTableIdColumn, mainTableIdColumn); + } + Table cmdbCientityGlobalattritemTable = joinedTableMap.get("globalattritem_" + fromAttr); + if (cmdbCientityGlobalattritemTable == null) { + cmdbCientityGlobalattritemTable = new Table("cmdb_cientity_globalattritem").withAlias(new Alias("globalattritem_" + fromAttr).withUseAs(false)); + Column cmdbCientityGlobalattritemTableCiEntityIdColumn = new Column(cmdbCientityGlobalattritemTable, "cientity_id"); + Column resourceCiTableIdColumn = new Column(resourceCiTable.getAlias().getName() + ".id"); + EqualsTo equalsTo = new EqualsTo(cmdbCientityGlobalattritemTableCiEntityIdColumn, resourceCiTableIdColumn); + Join join = new Join().withLeft(left).withRightItem(cmdbCientityGlobalattritemTable).addOnExpression(equalsTo); + plainSelect.addJoins(join); + addJoinTable(cmdbCientityGlobalattritemTable); + addEqualColumn(cmdbCientityGlobalattritemTableCiEntityIdColumn, resourceCiTableIdColumn); + } + Table globalAttrTable = joinedTableMap.get("global_attr_" + fromAttr); + if (globalAttrTable == null) { + globalAttrTable = new Table("cmdb_global_attr").withAlias(new Alias("global_attr_" + fromAttr).withUseAs(false)); + Column globalAttrTableIdColumn = new Column(globalAttrTable, "id"); + Column cmdbCientityGlobalattritemTableAttrIdColumn = new Column(cmdbCientityGlobalattritemTable, "attr_id"); + EqualsTo equalsTo = new EqualsTo(globalAttrTableIdColumn, cmdbCientityGlobalattritemTableAttrIdColumn); + Column globalAttrTableNameColumn = new Column(globalAttrTable, "name"); + EqualsTo equalsTo2 = new EqualsTo(globalAttrTableNameColumn, new StringValue(fromAttr)); + Join join = new Join().withLeft(left).withRightItem(globalAttrTable).addOnExpression(new AndExpression(equalsTo, equalsTo2)); + plainSelect.addJoins(join); + addJoinTable(globalAttrTable); + addEqualColumn(globalAttrTableIdColumn, cmdbCientityGlobalattritemTableAttrIdColumn); + } + Table globalAttritemTable = joinedTableMap.get("global_attritem_" + fromAttr); + if (globalAttritemTable == null) { + globalAttritemTable = new Table("cmdb_global_attritem").withAlias(new Alias("global_attritem_" + fromAttr).withUseAs(false)); + Column globalAttritemTableIdColumn = new Column(globalAttritemTable, "id"); + Column cmdbCientityGlobalattritemTableItemIdColumn = new Column(cmdbCientityGlobalattritemTable, "item_id"); + EqualsTo equalsTo = new EqualsTo(globalAttritemTableIdColumn, cmdbCientityGlobalattritemTableItemIdColumn); + Column globalAttritemTableAttrIdColumn = new Column(globalAttritemTable, "attr_id"); + Column cmdbCientityGlobalattritemTableAttrIdColumn = new Column(cmdbCientityGlobalattritemTable, "attr_id"); + EqualsTo equalsTo2 = new EqualsTo(globalAttritemTableAttrIdColumn, cmdbCientityGlobalattritemTableAttrIdColumn); + Join join = new Join().withLeft(left).withRightItem(globalAttritemTable).addOnExpression(new AndExpression(equalsTo, equalsTo2)); + plainSelect.addJoins(join); + addJoinTable(globalAttritemTable); + addEqualColumn(globalAttritemTableIdColumn, cmdbCientityGlobalattritemTableItemIdColumn); + addEqualColumn(globalAttritemTableAttrIdColumn, cmdbCientityGlobalattritemTableAttrIdColumn); + } + Column column = new Column(globalAttritemTable, toAttr); + plainSelect.addSelectItems(new SelectExpressionItem(column).withAlias(new Alias(field))); + return column; + } else if (Objects.equals(type, "empty")) { + plainSelect.addSelectItems(new SelectExpressionItem(new NullValue()).withAlias(new Alias(field))); + return null; } else { //非下拉框属性 if ("_id".equals(fromAttr)) { -- Gitee From 8327c3731ff74d8ad6d987c526f0817cc76aef37 Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Tue, 12 Dec 2023 23:23:47 +0800 Subject: [PATCH 3/3] =?UTF-8?q?[=E5=8A=9F=E8=83=BD]=20=E5=90=8E=E7=AB=AF-?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E6=B8=85=E5=8D=95=E4=B8=AD=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E7=9A=84=E5=8F=96=E5=80=BC=EF=BC=8C=E7=94=B1=E8=BD=AF=E4=BB=B6?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E6=A8=A1=E5=9E=8B=E7=9A=84=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E6=94=B9=E6=88=90=E5=85=A8=E5=B1=80=E5=8F=98?= =?UTF-8?q?=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1045002732404736]后端-应用清单中环境的取值,由软件服务模型的环境属性改成全局变量 http://192.168.0.96:8090/demo/rdm.html#/task-detail/939050947543040/939050947543050/1045002732404736 --- .../framework/cmdb/utils/ResourceViewGenerateSqlUtilForTiDB.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/neatlogic/framework/cmdb/utils/ResourceViewGenerateSqlUtilForTiDB.java b/src/main/java/neatlogic/framework/cmdb/utils/ResourceViewGenerateSqlUtilForTiDB.java index c1cbe01..6b81ddd 100644 --- a/src/main/java/neatlogic/framework/cmdb/utils/ResourceViewGenerateSqlUtilForTiDB.java +++ b/src/main/java/neatlogic/framework/cmdb/utils/ResourceViewGenerateSqlUtilForTiDB.java @@ -407,7 +407,6 @@ public class ResourceViewGenerateSqlUtilForTiDB { } else if (Objects.equals(type, "globalAttr")) { SubSelect resourceCiTable = joinedSubSelectMap.get("cientity_" + fromCi); if (resourceCiTable == null) { -// resourceCiTable = new Table("cmdb_cientity").withAlias(new Alias("cientity_" + fromCi).withUseAs(false)); Column resourceCiTableIdColumn = new Column(resourceCiTable.getAlias().getName() + ".id"); Column mainTableIdColumn = new Column(mainTable.getAlias().getName() + ".id"); EqualsTo equalsTo = new EqualsTo(resourceCiTableIdColumn, mainTableIdColumn); -- Gitee