diff --git a/backend/src/main/java/io/dataease/controller/datasource/request/UpdataDsRequest.java b/backend/src/main/java/io/dataease/controller/datasource/request/UpdataDsRequest.java new file mode 100644 index 0000000000..8c33eb1135 --- /dev/null +++ b/backend/src/main/java/io/dataease/controller/datasource/request/UpdataDsRequest.java @@ -0,0 +1,18 @@ +package io.dataease.controller.datasource.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class UpdataDsRequest { + @ApiModelProperty(value = "ID",required = true) + private String id; + @ApiModelProperty(value = "名称",required = true) + private String name; + @ApiModelProperty("描述") + private String desc; + @ApiModelProperty(value = "类型", required = true) + private String type; + @ApiModelProperty(value = "配置详情", required = true) + private String configuration; +} diff --git a/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java b/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java index 2e071eb093..94cf5ba8f6 100644 --- a/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/engine/doris/DorisQueryProvider.java @@ -297,7 +297,11 @@ public class DorisQueryProvider extends QueryProvider { } else if (ObjectUtils.isNotEmpty(x.getExtField()) && x.getExtField() == 1) { originField = String.format(DorisConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getDataeaseName()); } else { - originField = String.format(DorisConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getDataeaseName()); + if (x.getDeType() == 2 || x.getDeType() == 3) { + originField = String.format(DorisConstants.CAST, String.format(DorisConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getDataeaseName()), DorisConstants.DEFAULT_FLOAT_FORMAT); + } else { + originField = String.format(DorisConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getDataeaseName()); + } } String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, i); // 处理横轴字段 diff --git a/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlQueryProvider.java b/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlQueryProvider.java index 03e8cb85f1..58ddbdaf45 100644 --- a/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlQueryProvider.java @@ -297,7 +297,11 @@ public class MysqlQueryProvider extends QueryProvider { } else if (ObjectUtils.isNotEmpty(x.getExtField()) && x.getExtField() == 1) { originField = String.format(MysqlConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getDataeaseName()); } else { - originField = String.format(MysqlConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getDataeaseName()); + if (x.getDeType() == 2 || x.getDeType() == 3) { + originField = String.format(MysqlConstants.CAST, String.format(MysqlConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getDataeaseName()), MysqlConstants.DEFAULT_FLOAT_FORMAT); + } else { + originField = String.format(MysqlConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getDataeaseName()); + } } String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, i); // 处理横轴字段 diff --git a/backend/src/main/java/io/dataease/provider/query/ck/CKQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/ck/CKQueryProvider.java index bfd9e3726e..f3cb75fcf2 100644 --- a/backend/src/main/java/io/dataease/provider/query/ck/CKQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/ck/CKQueryProvider.java @@ -326,7 +326,11 @@ public class CKQueryProvider extends QueryProvider { } else if (ObjectUtils.isNotEmpty(x.getExtField()) && x.getExtField() == 1) { originField = String.format(CKConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); } else { - originField = String.format(CKConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); + if (x.getDeType() == 2 || x.getDeType() == 3) { + originField = String.format(CKConstants.toDecimal, String.format(CKConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName())); + } else { + originField = String.format(CKConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); + } } String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, i); // 处理横轴字段 diff --git a/backend/src/main/java/io/dataease/provider/query/db2/Db2QueryProvider.java b/backend/src/main/java/io/dataease/provider/query/db2/Db2QueryProvider.java index 7daae940a5..2acf8ac7a5 100644 --- a/backend/src/main/java/io/dataease/provider/query/db2/Db2QueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/db2/Db2QueryProvider.java @@ -300,7 +300,12 @@ public class Db2QueryProvider extends QueryProvider { } else if (ObjectUtils.isNotEmpty(x.getExtField()) && x.getExtField() == 1) { originField = String.format(Db2Constants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); } else { - originField = String.format(Db2Constants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); + if (x.getDeType() == 2 || x.getDeType() == 3) { + originField = String.format(Db2Constants.CAST, String.format(Db2Constants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()), Db2Constants.DEFAULT_FLOAT_FORMAT); + } else { + originField = String.format(Db2Constants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); + } + } String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, i); // 处理横轴字段 @@ -685,10 +690,10 @@ public class Db2QueryProvider extends QueryProvider { stringBuilder.append(" \"").append(f.getOriginName()).append("\""); return stringBuilder.toString(); }).toArray(String[]::new); - if(ds!= null){ + if (ds != null) { Db2Configuration db2Configuration = new Gson().fromJson(ds.getConfiguration(), Db2Configuration.class); return MessageFormat.format("SELECT {0} FROM {1}", StringUtils.join(array, ","), db2Configuration.getSchema() + ".\"" + table + "\""); - }else { + } else { return MessageFormat.format("SELECT {0} FROM {1}", StringUtils.join(array, ","), table); } } diff --git a/backend/src/main/java/io/dataease/provider/query/hive/HiveQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/hive/HiveQueryProvider.java index 8252f6d444..2faed23435 100644 --- a/backend/src/main/java/io/dataease/provider/query/hive/HiveQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/hive/HiveQueryProvider.java @@ -286,7 +286,11 @@ public class HiveQueryProvider extends QueryProvider { } else if (ObjectUtils.isNotEmpty(x.getExtField()) && x.getExtField() == 1) { originField = String.format(HiveConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); } else { - originField = String.format(HiveConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); + if (x.getDeType() == 2 || x.getDeType() == 3) { + originField = String.format(HiveConstants.CAST, String.format(HiveConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()), HiveConstants.DEFAULT_FLOAT_FORMAT); + } else { + originField = String.format(HiveConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); + } } String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, i); // 处理横轴字段 diff --git a/backend/src/main/java/io/dataease/provider/query/impala/ImpalaQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/impala/ImpalaQueryProvider.java index 2a432454f4..2998fafe94 100644 --- a/backend/src/main/java/io/dataease/provider/query/impala/ImpalaQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/impala/ImpalaQueryProvider.java @@ -283,7 +283,11 @@ public class ImpalaQueryProvider extends QueryProvider { } else if (ObjectUtils.isNotEmpty(x.getExtField()) && x.getExtField() == 1) { originField = String.format(ImpalaConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); } else { - originField = String.format(ImpalaConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); + if (x.getDeType() == 2 || x.getDeType() == 3) { + originField = String.format(ImpalaConstants.CAST, String.format(ImpalaConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()), ImpalaConstants.DEFAULT_FLOAT_FORMAT); + } else { + originField = String.format(ImpalaConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); + } } String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, i); // 处理横轴字段 @@ -792,9 +796,9 @@ public class ImpalaQueryProvider extends QueryProvider { } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "like")) { whereValue = "'%" + value + "%'"; } else { - if(field.getDeExtractType() == DeTypeConstants.DE_INT || field.getDeExtractType() == DeTypeConstants.DE_FLOAT|| field.getDeExtractType() == DeTypeConstants.DE_BOOL){ + if (field.getDeExtractType() == DeTypeConstants.DE_INT || field.getDeExtractType() == DeTypeConstants.DE_FLOAT || field.getDeExtractType() == DeTypeConstants.DE_BOOL) { whereValue = String.format(ImpalaConstants.WHERE_NUMBER_VALUE_VALUE, value); - }else { + } else { whereValue = String.format(ImpalaConstants.WHERE_VALUE_VALUE, value); } } @@ -879,9 +883,9 @@ public class ImpalaQueryProvider extends QueryProvider { whereValue = String.format(ImpalaConstants.WHERE_BETWEEN, value.get(0), value.get(1)); } } else { - if(field.getDeExtractType() == DeTypeConstants.DE_INT || field.getDeExtractType() == DeTypeConstants.DE_FLOAT|| field.getDeExtractType() == DeTypeConstants.DE_BOOL){ + if (field.getDeExtractType() == DeTypeConstants.DE_INT || field.getDeExtractType() == DeTypeConstants.DE_FLOAT || field.getDeExtractType() == DeTypeConstants.DE_BOOL) { whereValue = String.format(ImpalaConstants.WHERE_NUMBER_VALUE_VALUE, value.get(0)); - }else { + } else { whereValue = String.format(ImpalaConstants.WHERE_VALUE_VALUE, value.get(0)); } } @@ -1007,9 +1011,9 @@ public class ImpalaQueryProvider extends QueryProvider { } else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) { whereValue = "'%" + f.getValue() + "%'"; } else { - if(y.getDeExtractType() == DeTypeConstants.DE_INT || y.getDeExtractType() == DeTypeConstants.DE_FLOAT|| y.getDeExtractType() == DeTypeConstants.DE_BOOL){ + if (y.getDeExtractType() == DeTypeConstants.DE_INT || y.getDeExtractType() == DeTypeConstants.DE_FLOAT || y.getDeExtractType() == DeTypeConstants.DE_BOOL) { whereValue = String.format(ImpalaConstants.WHERE_NUMBER_VALUE_VALUE, f.getValue()); - }else { + } else { whereValue = String.format(ImpalaConstants.WHERE_VALUE_VALUE, f.getValue()); } } diff --git a/backend/src/main/java/io/dataease/provider/query/mongodb/MongoQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/mongodb/MongoQueryProvider.java index d7569fc37d..9c7cd32eb9 100644 --- a/backend/src/main/java/io/dataease/provider/query/mongodb/MongoQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/mongodb/MongoQueryProvider.java @@ -277,7 +277,11 @@ public class MongoQueryProvider extends QueryProvider { } else if (ObjectUtils.isNotEmpty(x.getExtField()) && x.getExtField() == DeTypeConstants.DE_TIME) { originField = String.format(MongoConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); } else { - originField = String.format(MongoConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); + if (x.getDeType() == 2 || x.getDeType() == 3) { + originField = String.format(MongoConstants.toDecimal, String.format(MongoConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName())); + } else { + originField = String.format(MongoConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); + } } String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, i); // 处理横轴字段 @@ -777,7 +781,7 @@ public class MongoQueryProvider extends QueryProvider { } else if (StringUtils.containsIgnoreCase(filterItemDTO.getTerm(), "like")) { whereValue = "'%" + value + "%'"; } else { - if(field.getDeType() == DeTypeConstants.DE_STRING){ + if (field.getDeType() == DeTypeConstants.DE_STRING) { whereValue = String.format(MongoConstants.WHERE_VALUE_VALUE, value); } } @@ -838,9 +842,9 @@ public class MongoQueryProvider extends QueryProvider { whereValue = String.format(MongoConstants.WHERE_BETWEEN, value.get(0), value.get(1)); } } else { - if(field.getDeType() == DeTypeConstants.DE_STRING){ + if (field.getDeType() == DeTypeConstants.DE_STRING) { whereValue = String.format(MongoConstants.WHERE_VALUE_VALUE, value.get(0)); - }else { + } else { whereValue = value.get(0); } } @@ -941,9 +945,9 @@ public class MongoQueryProvider extends QueryProvider { } else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) { whereValue = "'%" + f.getValue() + "%'"; } else { - if(y.getDeType() == DeTypeConstants.DE_STRING){ + if (y.getDeType() == DeTypeConstants.DE_STRING) { whereValue = String.format(MongoConstants.WHERE_VALUE_VALUE, f.getValue()); - }else { + } else { whereValue = f.getValue(); } } diff --git a/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java index 96b7208690..7b17313000 100644 --- a/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/mysql/MysqlQueryProvider.java @@ -11,6 +11,7 @@ import io.dataease.dto.chart.ChartFieldCustomFilterDTO; import io.dataease.dto.chart.ChartViewFieldDTO; import io.dataease.dto.sqlObj.SQLObj; import io.dataease.plugins.common.constants.MySQLConstants; +import io.dataease.plugins.common.constants.engine.MysqlConstants; import io.dataease.provider.QueryProvider; import io.dataease.plugins.common.constants.SQLConstants; import org.apache.commons.collections4.CollectionUtils; @@ -294,7 +295,11 @@ public class MysqlQueryProvider extends QueryProvider { } else if (ObjectUtils.isNotEmpty(x.getExtField()) && x.getExtField() == 1) { originField = String.format(MySQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); } else { - originField = String.format(MySQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); + if (x.getDeType() == 2 || x.getDeType() == 3) { + originField = String.format(MySQLConstants.CAST, String.format(MySQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()), MysqlConstants.DEFAULT_FLOAT_FORMAT); + } else { + originField = String.format(MySQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); + } } String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, i); // 处理横轴字段 diff --git a/backend/src/main/java/io/dataease/provider/query/oracle/OracleQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/oracle/OracleQueryProvider.java index 941c45aa1f..1e70a085fb 100644 --- a/backend/src/main/java/io/dataease/provider/query/oracle/OracleQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/oracle/OracleQueryProvider.java @@ -341,7 +341,11 @@ public class OracleQueryProvider extends QueryProvider { } else if (ObjectUtils.isNotEmpty(x.getExtField()) && x.getExtField() == 1) { originField = String.format(OracleConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); } else { - originField = String.format(OracleConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); + if (x.getDeType() == 2 || x.getDeType() == 3) { + originField = String.format(OracleConstants.CAST, String.format(OracleConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()), OracleConstants.DEFAULT_FLOAT_FORMAT); + } else { + originField = String.format(OracleConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); + } } String fieldAlias = String.format(OracleConstants.ALIAS_FIX, String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, i)); // 处理横轴字段 diff --git a/backend/src/main/java/io/dataease/provider/query/pg/PgQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/pg/PgQueryProvider.java index 6b970abb72..c1276f8a8b 100644 --- a/backend/src/main/java/io/dataease/provider/query/pg/PgQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/pg/PgQueryProvider.java @@ -315,7 +315,11 @@ public class PgQueryProvider extends QueryProvider { } else if (ObjectUtils.isNotEmpty(x.getExtField()) && x.getExtField() == 1) { originField = String.format(PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); } else { - originField = String.format(PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); + if (x.getDeType() == 2 || x.getDeType() == 3) { + originField = String.format(PgConstants.CAST, String.format(PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()), PgConstants.DEFAULT_FLOAT_FORMAT); + } else { + originField = String.format(PgConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); + } } String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, i); // 处理横轴字段 diff --git a/backend/src/main/java/io/dataease/provider/query/sqlserver/SqlserverQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/sqlserver/SqlserverQueryProvider.java index c6cc4bcbec..913e1f5590 100644 --- a/backend/src/main/java/io/dataease/provider/query/sqlserver/SqlserverQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/sqlserver/SqlserverQueryProvider.java @@ -313,7 +313,11 @@ public class SqlserverQueryProvider extends QueryProvider { } else if (ObjectUtils.isNotEmpty(x.getExtField()) && x.getExtField() == 1) { originField = String.format(SqlServerSQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); } else { - originField = String.format(SqlServerSQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); + if (x.getDeType() == 2 || x.getDeType() == 3) { + originField = String.format(SqlServerSQLConstants.CONVERT, SqlServerSQLConstants.DEFAULT_FLOAT_FORMAT, String.format(SqlServerSQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName())); + } else { + originField = String.format(SqlServerSQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); + } } String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, i); // 处理横轴字段 diff --git a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java index 02c11d0164..8ba30de0d4 100644 --- a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -784,6 +784,7 @@ public class ChartViewService { PluginViewParam pluginViewParam = new PluginViewParam(); PluginViewSet pluginViewSet = BeanUtils.copyBean(new PluginViewSet(), table); pluginViewSet.setDsType(ds.getType()); + pluginViewSet.setTabelId(table.getId()); PluginViewLimit pluginViewLimit = BeanUtils.copyBean(new PluginViewLimit(), view); diff --git a/backend/src/main/java/io/dataease/service/chart/ViewPluginBaseServiceImpl.java b/backend/src/main/java/io/dataease/service/chart/ViewPluginBaseServiceImpl.java index f86de14af9..2b7bb783ee 100644 --- a/backend/src/main/java/io/dataease/service/chart/ViewPluginBaseServiceImpl.java +++ b/backend/src/main/java/io/dataease/service/chart/ViewPluginBaseServiceImpl.java @@ -93,29 +93,35 @@ public class ViewPluginBaseServiceImpl implements ViewPluginBaseService { public PluginViewSQL getTableObj(PluginViewSet pluginViewSet) { String tableName = null; DataTableInfoDTO dataTableInfoDTO = new Gson().fromJson(pluginViewSet.getInfo(), DataTableInfoDTO.class); - switch (pluginViewSet.getType()) { - case "db": - tableName = dataTableInfoDTO.getTable(); - break; - case "sql": - tableName = dataTableInfoDTO.getSql(); - break; - case "custom": - List list = dataSetTableUnionService.listByTableId(dataTableInfoDTO.getList().get(0).getTableId()); - Datasource ds = new Datasource(); - ds.setType(pluginViewSet.getDsType()); - tableName = dataSetTableService.getCustomSQLDatasource(dataTableInfoDTO, list, ds); - break; - case "union": - Datasource datasource = new Datasource(); - datasource.setType(pluginViewSet.getDsType()); - Map sqlMap = dataSetTableService.getUnionSQLDatasource(dataTableInfoDTO, datasource); - tableName = (String) sqlMap.get("sql"); - break; - default: - break; - } + if (ObjectUtils.isNotEmpty(pluginViewSet.getMode()) && 1 == pluginViewSet.getMode()) { + tableName = "ds_" + pluginViewSet.getTabelId().replaceAll("-", "_"); + + }else { + switch (pluginViewSet.getType()) { + case "db": + tableName = dataTableInfoDTO.getTable(); + break; + case "sql": + tableName = dataTableInfoDTO.getSql(); + break; + case "custom": + List list = dataSetTableUnionService.listByTableId(dataTableInfoDTO.getList().get(0).getTableId()); + Datasource ds = new Datasource(); + ds.setType(pluginViewSet.getDsType()); + tableName = dataSetTableService.getCustomSQLDatasource(dataTableInfoDTO, list, ds); + break; + case "union": + Datasource datasource = new Datasource(); + datasource.setType(pluginViewSet.getDsType()); + Map sqlMap = dataSetTableService.getUnionSQLDatasource(dataTableInfoDTO, datasource); + tableName = (String) sqlMap.get("sql"); + break; + default: + tableName = dataTableInfoDTO.getTable(); + break; + } + } String keyword = ConstantsUtil.constantsValue(pluginViewSet.getDsType(), "KEYWORD_TABLE"); String tabelName = (tableName.startsWith("(") && tableName.endsWith(")")) ? tableName : String.format(keyword, tableName); String tabelAlias = String.format(TABLE_ALIAS_PREFIX, 0); diff --git a/frontend/src/store/index.js b/frontend/src/store/index.js index a403048b7d..dc7ff1a1ce 100644 --- a/frontend/src/store/index.js +++ b/frontend/src/store/index.js @@ -260,6 +260,43 @@ const data = { } for (let index = 0; index < state.componentData.length; index++) { const element = state.componentData[index] + if (element.type && element.type === 'de-tabs') { + for (let idx = 0; idx < element.options.tabList.length; idx++) { + const ele = element.options.tabList[idx].content + if (!ele.type || ele.type !== 'view') continue + + const currentFilters = [] + + data.dimensionList.forEach(dimension => { + const sourceInfo = viewId + '#' + dimension.id + // 获取所有目标联动信息 + const targetInfoList = trackInfo[sourceInfo] || [] + targetInfoList.forEach(targetInfo => { + const targetInfoArray = targetInfo.split('#') + const targetViewId = targetInfoArray[0] // 目标视图 + if (ele.propValue.viewId === targetViewId) { // 如果目标视图 和 当前循环组件id相等 则进行条件增减 + const targetFieldId = targetInfoArray[1] // 目标视图列ID + const condition = new Condition('', targetFieldId, 'eq', [dimension.value], [targetViewId]) + condition.sourceViewId = viewId + let j = currentFilters.length + while (j--) { + const filter = currentFilters[j] + // 兼容性准备 viewIds 只会存放一个值 + if (targetFieldId === filter.fieldId && filter.viewIds.includes(targetViewId)) { + currentFilters.splice(j, 1) + } + } + // 不存在该条件 且 条件有效 直接保存该条件 + // !filterExist && vValid && currentFilters.push(condition) + currentFilters.push(condition) + } + }) + }) + + ele.linkageFilters = currentFilters + } + state.componentData[index] = element + } if (!element.type || element.type !== 'view') continue // const currentFilters = element.linkageFilters || [] // 当前联动filter // 联动的视图情况历史条件