From 78caab8f61b9ac6b7edaf986da0332cb7d92a7a8 Mon Sep 17 00:00:00 2001 From: junjun Date: Fri, 10 Jun 2022 13:27:22 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=96=87=E6=9C=AC?= =?UTF-8?q?=E8=BD=AC=E6=95=B0=E5=80=BC=E5=90=8E=E5=81=9A=E7=BB=B4=E5=BA=A6?= =?UTF-8?q?=E7=9A=84=E6=8E=92=E5=BA=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../engine/doris/DorisQueryProvider.java | 9 +++++- .../engine/mysql/MysqlQueryProvider.java | 9 +++++- .../provider/query/ck/CKQueryProvider.java | 9 ++++-- .../provider/query/db2/Db2QueryProvider.java | 31 +++++++++++-------- .../provider/query/es/EsQueryProvider.java | 9 ++++-- .../query/hive/HiveQueryProvider.java | 9 ++++-- .../query/impala/ImpalaQueryProvider.java | 9 ++++-- .../query/mysql/MysqlQueryProvider.java | 20 +++++++----- .../query/oracle/OracleQueryProvider.java | 17 +++++----- .../provider/query/pg/PgQueryProvider.java | 16 +++++++--- .../query/redshift/RedshiftQueryProvider.java | 8 ++++- .../sqlserver/SqlserverQueryProvider.java | 9 ++++-- 12 files changed, 110 insertions(+), 45 deletions(-) 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 7c2e7ec3e0..838a941f99 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 @@ -5,6 +5,7 @@ import io.dataease.plugins.common.base.domain.DatasetTableField; import io.dataease.plugins.common.base.domain.DatasetTableFieldExample; import io.dataease.plugins.common.base.domain.Datasource; import io.dataease.plugins.common.base.mapper.DatasetTableFieldMapper; +import io.dataease.plugins.common.constants.DeTypeConstants; import io.dataease.plugins.common.constants.DorisConstants; import io.dataease.plugins.common.constants.SQLConstants; import io.dataease.plugins.common.dto.chart.ChartCustomFilterItemDTO; @@ -1060,7 +1061,13 @@ public class DorisQueryProvider extends QueryProvider { } else if (x.getDeType() == 0) { fieldName = String.format(DorisConstants.CAST, originField, DorisConstants.VARCHAR); } else { - fieldName = originField; + if (x.getDeType() == DeTypeConstants.DE_INT) { + fieldName = String.format(DorisConstants.CAST, originField, DorisConstants.DEFAULT_INT_FORMAT); + } else if (x.getDeType() == DeTypeConstants.DE_FLOAT) { + fieldName = String.format(DorisConstants.CAST, originField, DorisConstants.DEFAULT_FLOAT_FORMAT); + } else { + fieldName = originField; + } } } return SQLObj.builder() 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 6502e7eefd..d9ceba830f 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 @@ -5,6 +5,7 @@ import io.dataease.plugins.common.base.domain.DatasetTableField; import io.dataease.plugins.common.base.domain.DatasetTableFieldExample; import io.dataease.plugins.common.base.domain.Datasource; import io.dataease.plugins.common.base.mapper.DatasetTableFieldMapper; +import io.dataease.plugins.common.constants.DeTypeConstants; import io.dataease.plugins.common.constants.engine.MysqlConstants; import io.dataease.plugins.common.constants.SQLConstants; import io.dataease.plugins.common.dto.chart.ChartCustomFilterItemDTO; @@ -1066,7 +1067,13 @@ public class MysqlQueryProvider extends QueryProvider { } else if (x.getDeType() == 0 && x.getDeExtractType() == 0) { fieldName = String.format(MysqlConstants.CAST, originField, MysqlConstants.CHAR); } else { - fieldName = originField; + if (x.getDeType() == DeTypeConstants.DE_INT) { + fieldName = String.format(MysqlConstants.CAST, originField, MysqlConstants.DEFAULT_INT_FORMAT); + } else if (x.getDeType() == DeTypeConstants.DE_FLOAT) { + fieldName = String.format(MysqlConstants.CAST, originField, MysqlConstants.DEFAULT_FLOAT_FORMAT); + } else { + fieldName = originField; + } } } return SQLObj.builder() 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 903a93fb51..3fd563b41e 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 @@ -6,7 +6,6 @@ import io.dataease.plugins.common.base.domain.DatasetTableFieldExample; import io.dataease.plugins.common.base.domain.Datasource; import io.dataease.plugins.common.base.mapper.DatasetTableFieldMapper; import io.dataease.plugins.common.constants.CKConstants; -import io.dataease.plugins.common.constants.Db2Constants; import io.dataease.plugins.common.constants.DeTypeConstants; import io.dataease.plugins.common.constants.SQLConstants; import io.dataease.plugins.common.dto.chart.ChartCustomFilterItemDTO; @@ -1115,7 +1114,13 @@ public class CKQueryProvider extends QueryProvider { fieldName = String.format(CKConstants.formatDateTime, String.format(CKConstants.toDateTime, String.format(CKConstants.toFloat64, originField)), format); } } else { - fieldName = originField; + if (x.getDeType() == DeTypeConstants.DE_INT) { + fieldName = String.format(CKConstants.toInt64, originField); + } else if (x.getDeType() == DeTypeConstants.DE_FLOAT) { + fieldName = String.format(CKConstants.toFloat64, originField); + } else { + fieldName = originField; + } } } return SQLObj.builder() 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 0a64fdf0a3..191e769537 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 @@ -1,15 +1,14 @@ package io.dataease.provider.query.db2; import com.google.gson.Gson; +import io.dataease.dto.datasource.Db2Configuration; import io.dataease.plugins.common.base.domain.ChartViewWithBLOBs; import io.dataease.plugins.common.base.domain.DatasetTableField; import io.dataease.plugins.common.base.domain.DatasetTableFieldExample; import io.dataease.plugins.common.base.domain.Datasource; import io.dataease.plugins.common.base.mapper.DatasetTableFieldMapper; -import io.dataease.dto.datasource.Db2Configuration; import io.dataease.plugins.common.constants.Db2Constants; import io.dataease.plugins.common.constants.DeTypeConstants; -import io.dataease.plugins.common.constants.EsSqlLConstants; import io.dataease.plugins.common.constants.SQLConstants; import io.dataease.plugins.common.dto.chart.ChartCustomFilterItemDTO; import io.dataease.plugins.common.dto.chart.ChartFieldCustomFilterDTO; @@ -115,9 +114,9 @@ public class Db2QueryProvider extends QueryProvider { if (f.getDeType() == DeTypeConstants.DE_INT || f.getDeType() == DeTypeConstants.DE_FLOAT) { fieldName = String.format(Db2Constants.UNIX_TIMESTAMP, originField); } else { - if(f.getType().equalsIgnoreCase("TIME")){ + if (f.getType().equalsIgnoreCase("TIME")) { fieldName = String.format(Db2Constants.FORMAT_TIME, originField, Db2Constants.DEFAULT_DATE_FORMAT); - }else { + } else { fieldName = originField; } } @@ -192,9 +191,9 @@ public class Db2QueryProvider extends QueryProvider { if (f.getDeType() == DeTypeConstants.DE_INT || f.getDeType() == DeTypeConstants.DE_FLOAT) { fieldName = String.format(Db2Constants.UNIX_TIMESTAMP, originField); } else { - if(f.getType().equalsIgnoreCase("TIME")){ + if (f.getType().equalsIgnoreCase("TIME")) { fieldName = String.format(Db2Constants.FORMAT_TIME, originField, Db2Constants.DEFAULT_DATE_FORMAT); - }else { + } else { fieldName = originField; } } @@ -855,9 +854,9 @@ public class Db2QueryProvider extends QueryProvider { whereName = String.format(Db2Constants.FROM_UNIXTIME, cast, Db2Constants.DEFAULT_DATE_FORMAT); } if (field.getDeExtractType() == DeTypeConstants.DE_TIME) { - if(field.getType().equalsIgnoreCase("TIME")){ + if (field.getType().equalsIgnoreCase("TIME")) { whereName = String.format(Db2Constants.FORMAT_TIME, originName, Db2Constants.DEFAULT_DATE_FORMAT); - }else { + } else { whereName = originName; } } @@ -963,9 +962,9 @@ public class Db2QueryProvider extends QueryProvider { whereName = String.format(Db2Constants.FROM_UNIXTIME, cast, Db2Constants.DEFAULT_DATE_FORMAT); } if (field.getDeExtractType() == DeTypeConstants.DE_TIME) { - if(field.getType().equalsIgnoreCase("TIME")){ + if (field.getType().equalsIgnoreCase("TIME")) { whereName = String.format(Db2Constants.FORMAT_TIME, originName, Db2Constants.DEFAULT_DATE_FORMAT); - }else { + } else { whereName = originName; } } @@ -1066,9 +1065,9 @@ public class Db2QueryProvider extends QueryProvider { fieldName = String.format(Db2Constants.UNIX_TIMESTAMP, originField) + "*1000"; } else if (x.getDeType() == DeTypeConstants.DE_TIME) { String format = transDateFormat(x.getDateStyle(), x.getDatePattern()); - if(x.getType().equalsIgnoreCase("TIME")){ + if (x.getType().equalsIgnoreCase("TIME")) { fieldName = String.format(Db2Constants.FORMAT_TIME, originField, format); - }else { + } else { fieldName = String.format(Db2Constants.DATE_FORMAT, originField, format); } } else { @@ -1085,7 +1084,13 @@ public class Db2QueryProvider extends QueryProvider { fieldName = String.format(Db2Constants.DATE_FORMAT, from_unixtime, format); } } else { - fieldName = originField; + if (x.getDeType() == DeTypeConstants.DE_INT) { + fieldName = String.format(Db2Constants.CAST, originField, Db2Constants.DEFAULT_INT_FORMAT); + } else if (x.getDeType() == DeTypeConstants.DE_FLOAT) { + fieldName = String.format(Db2Constants.CAST, originField, Db2Constants.DEFAULT_FLOAT_FORMAT); + } else { + fieldName = originField; + } } } return SQLObj.builder() diff --git a/backend/src/main/java/io/dataease/provider/query/es/EsQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/es/EsQueryProvider.java index f2b562252b..2176a0adb5 100644 --- a/backend/src/main/java/io/dataease/provider/query/es/EsQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/es/EsQueryProvider.java @@ -7,7 +7,6 @@ import io.dataease.plugins.common.base.domain.Datasource; import io.dataease.plugins.common.base.mapper.DatasetTableFieldMapper; import io.dataease.plugins.common.constants.DeTypeConstants; import io.dataease.plugins.common.constants.EsSqlLConstants; -import io.dataease.plugins.common.constants.HiveConstants; import io.dataease.plugins.common.constants.SQLConstants; import io.dataease.plugins.common.dto.chart.ChartCustomFilterItemDTO; import io.dataease.plugins.common.dto.chart.ChartFieldCustomFilterDTO; @@ -1105,7 +1104,13 @@ public class EsQueryProvider extends QueryProvider { fieldName = String.format(EsSqlLConstants.DATETIME_FORMAT, cast, format); } } else { - fieldName = originField; + if (x.getDeType() == DeTypeConstants.DE_INT) { + fieldName = String.format(EsSqlLConstants.CAST, originField, "bigint"); + } else if (x.getDeType() == DeTypeConstants.DE_FLOAT) { + fieldName = String.format(EsSqlLConstants.CAST, originField, "double"); + } else { + fieldName = originField; + } } } return SQLObj.builder() 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 0dae80e83d..1ac76b661d 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 @@ -7,7 +7,6 @@ import io.dataease.plugins.common.base.domain.Datasource; import io.dataease.plugins.common.base.mapper.DatasetTableFieldMapper; import io.dataease.plugins.common.constants.DeTypeConstants; import io.dataease.plugins.common.constants.HiveConstants; -import io.dataease.plugins.common.constants.ImpalaConstants; import io.dataease.plugins.common.constants.SQLConstants; import io.dataease.plugins.common.dto.chart.ChartCustomFilterItemDTO; import io.dataease.plugins.common.dto.chart.ChartFieldCustomFilterDTO; @@ -1042,7 +1041,13 @@ public class HiveQueryProvider extends QueryProvider { fieldName = String.format(HiveConstants.DATE_FORMAT, from_unixtime, format); } } else { - fieldName = originField; + if (x.getDeType() == DeTypeConstants.DE_INT) { + fieldName = String.format(HiveConstants.CAST, originField, HiveConstants.DEFAULT_INT_FORMAT); + } else if (x.getDeType() == DeTypeConstants.DE_FLOAT) { + fieldName = String.format(HiveConstants.CAST, originField, HiveConstants.DEFAULT_FLOAT_FORMAT); + } else { + fieldName = originField; + } } } return SQLObj.builder() 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 24530afa3f..b5d44f2b23 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 @@ -7,7 +7,6 @@ import io.dataease.plugins.common.base.domain.Datasource; import io.dataease.plugins.common.base.mapper.DatasetTableFieldMapper; import io.dataease.plugins.common.constants.DeTypeConstants; import io.dataease.plugins.common.constants.ImpalaConstants; -import io.dataease.plugins.common.constants.MongoConstants; import io.dataease.plugins.common.constants.SQLConstants; import io.dataease.plugins.common.dto.chart.ChartCustomFilterItemDTO; import io.dataease.plugins.common.dto.chart.ChartFieldCustomFilterDTO; @@ -1048,7 +1047,13 @@ public class ImpalaQueryProvider extends QueryProvider { fieldName = String.format(ImpalaConstants.DATE_FORMAT, from_unixtime, format); } } else { - fieldName = originField; + if (x.getDeType() == DeTypeConstants.DE_INT) { + fieldName = String.format(ImpalaConstants.CAST, originField, ImpalaConstants.DEFAULT_INT_FORMAT); + } else if (x.getDeType() == DeTypeConstants.DE_FLOAT) { + fieldName = String.format(ImpalaConstants.CAST, originField, ImpalaConstants.DEFAULT_FLOAT_FORMAT); + } else { + fieldName = originField; + } } } return SQLObj.builder() 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 2aaab1e4cd..44cf88f25d 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 @@ -5,9 +5,10 @@ import io.dataease.plugins.common.base.domain.DatasetTableField; import io.dataease.plugins.common.base.domain.DatasetTableFieldExample; import io.dataease.plugins.common.base.domain.Datasource; import io.dataease.plugins.common.base.mapper.DatasetTableFieldMapper; +import io.dataease.plugins.common.constants.DeTypeConstants; import io.dataease.plugins.common.constants.MySQLConstants; -import io.dataease.plugins.common.constants.engine.MysqlConstants; import io.dataease.plugins.common.constants.SQLConstants; +import io.dataease.plugins.common.constants.engine.MysqlConstants; import io.dataease.plugins.common.dto.chart.ChartCustomFilterItemDTO; import io.dataease.plugins.common.dto.chart.ChartFieldCustomFilterDTO; import io.dataease.plugins.common.dto.chart.ChartViewFieldDTO; @@ -194,7 +195,6 @@ public class MysqlQueryProvider extends QueryProvider { } - STGroup stg = new STGroupFile(SQLConstants.SQL_TEMPLATE); ST st_sql = stg.getInstanceOf("previewSql"); st_sql.add("isGroup", isGroup); @@ -368,7 +368,7 @@ public class MysqlQueryProvider extends QueryProvider { originField = String.format(MySQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); } else { 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); + 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()); } @@ -1048,7 +1048,13 @@ public class MysqlQueryProvider extends QueryProvider { fieldName = String.format(MySQLConstants.DATE_FORMAT, from_unixtime, format); } } else { - fieldName = originField; + if (x.getDeType() == DeTypeConstants.DE_INT) { + fieldName = String.format(MySQLConstants.CAST, originField, MySQLConstants.DEFAULT_INT_FORMAT); + } else if (x.getDeType() == DeTypeConstants.DE_FLOAT) { + fieldName = String.format(MySQLConstants.CAST, originField, MySQLConstants.DEFAULT_FLOAT_FORMAT); + } else { + fieldName = originField; + } } } return SQLObj.builder() @@ -1102,11 +1108,9 @@ public class MysqlQueryProvider extends QueryProvider { } else if (SQLConstants.DIMENSION_TYPE.contains(y.getDeType())) { if (StringUtils.equalsIgnoreCase(y.getSummary(), "count_distinct")) { fieldName = String.format(MySQLConstants.AGG_FIELD, "COUNT", "DISTINCT " + originField); - } - else if (StringUtils.equalsIgnoreCase(y.getSummary(), "group_concat")) { + } else if (StringUtils.equalsIgnoreCase(y.getSummary(), "group_concat")) { fieldName = String.format(MySQLConstants.GROUP_CONCAT, originField); - } - else { + } else { fieldName = String.format(MySQLConstants.AGG_FIELD, y.getSummary(), originField); } } else { 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 cdbc5ba4a1..cd9736d4aa 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 @@ -1,13 +1,13 @@ package io.dataease.provider.query.oracle; import com.google.gson.Gson; +import io.dataease.dto.datasource.OracleConfiguration; import io.dataease.plugins.common.base.domain.ChartViewWithBLOBs; import io.dataease.plugins.common.base.domain.DatasetTableField; import io.dataease.plugins.common.base.domain.DatasetTableFieldExample; import io.dataease.plugins.common.base.domain.Datasource; import io.dataease.plugins.common.base.mapper.DatasetTableFieldMapper; -import io.dataease.dto.datasource.OracleConfiguration; -import io.dataease.plugins.common.constants.MySQLConstants; +import io.dataease.plugins.common.constants.DeTypeConstants; import io.dataease.plugins.common.constants.OracleConstants; import io.dataease.plugins.common.constants.SQLConstants; import io.dataease.plugins.common.dto.chart.ChartCustomFilterItemDTO; @@ -109,7 +109,6 @@ public class OracleQueryProvider extends QueryProvider { List xFields = xFields(table, fields); - STGroup stg = new STGroupFile(SQLConstants.SQL_TEMPLATE); ST st_sql = stg.getInstanceOf("previewSql"); st_sql.add("isGroup", isGroup); @@ -136,7 +135,6 @@ public class OracleQueryProvider extends QueryProvider { } - @Override public String createQuerySQL(String table, List fields, boolean isGroup, Datasource ds, List fieldCustomFilter) { return createQuerySQL(table, fields, isGroup, ds, fieldCustomFilter, null); @@ -1122,7 +1120,13 @@ public class OracleQueryProvider extends QueryProvider { fieldName = String.format(OracleConstants.TO_CHAR, date, format); } } else { - fieldName = originField; + if (x.getDeType() == DeTypeConstants.DE_INT) { + fieldName = String.format(OracleConstants.CAST, originField, OracleConstants.DEFAULT_INT_FORMAT); + } else if (x.getDeType() == DeTypeConstants.DE_FLOAT) { + fieldName = String.format(OracleConstants.CAST, originField, OracleConstants.DEFAULT_FLOAT_FORMAT); + } else { + fieldName = originField; + } } } return SQLObj.builder() @@ -1178,8 +1182,7 @@ public class OracleQueryProvider extends QueryProvider { fieldName = String.format(OracleConstants.AGG_FIELD, "COUNT", "DISTINCT " + originField); } else if (StringUtils.equalsIgnoreCase(y.getSummary(), "group_concat")) { fieldName = String.format(OracleConstants.GROUP_CONCAT, originField, originField); - } - else { + } else { fieldName = String.format(OracleConstants.AGG_FIELD, y.getSummary(), originField); } } else { 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 c54c2a761e..705c1f210c 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 @@ -6,7 +6,10 @@ import io.dataease.plugins.common.base.domain.DatasetTableField; import io.dataease.plugins.common.base.domain.DatasetTableFieldExample; import io.dataease.plugins.common.base.domain.Datasource; import io.dataease.plugins.common.base.mapper.DatasetTableFieldMapper; -import io.dataease.plugins.common.constants.*; +import io.dataease.plugins.common.constants.DeTypeConstants; +import io.dataease.plugins.common.constants.PgConstants; +import io.dataease.plugins.common.constants.SQLConstants; +import io.dataease.plugins.common.constants.SqlServerSQLConstants; import io.dataease.plugins.common.dto.chart.ChartCustomFilterItemDTO; import io.dataease.plugins.common.dto.chart.ChartFieldCustomFilterDTO; import io.dataease.plugins.common.dto.chart.ChartViewFieldDTO; @@ -1069,7 +1072,13 @@ public class PgQueryProvider extends QueryProvider { fieldName = String.format(PgConstants.DATE_FORMAT, from_unixtime, format); } } else { - fieldName = originField; + if (x.getDeType() == DeTypeConstants.DE_INT) { + fieldName = String.format(PgConstants.CAST, originField, PgConstants.DEFAULT_INT_FORMAT); + } else if (x.getDeType() == DeTypeConstants.DE_FLOAT) { + fieldName = String.format(PgConstants.CAST, originField, PgConstants.DEFAULT_FLOAT_FORMAT); + } else { + fieldName = originField; + } } } return SQLObj.builder() @@ -1087,8 +1096,7 @@ public class PgQueryProvider extends QueryProvider { fieldName = String.format(PgConstants.AGG_FIELD, "COUNT", "DISTINCT " + originField); } else if (StringUtils.equalsIgnoreCase(y.getSummary(), "group_concat")) { fieldName = String.format(PgConstants.GROUP_CONCAT, originField); - } - else { + } else { fieldName = String.format(PgConstants.AGG_FIELD, y.getSummary(), originField); } } else { diff --git a/backend/src/main/java/io/dataease/provider/query/redshift/RedshiftQueryProvider.java b/backend/src/main/java/io/dataease/provider/query/redshift/RedshiftQueryProvider.java index 49a78170ac..551620b866 100644 --- a/backend/src/main/java/io/dataease/provider/query/redshift/RedshiftQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/query/redshift/RedshiftQueryProvider.java @@ -996,7 +996,13 @@ public class RedshiftQueryProvider extends QueryProvider { fieldName = String.format(PgConstants.DATE_FORMAT, from_unixtime, format); } } else { - fieldName = originField; + if (x.getDeType() == DeTypeConstants.DE_INT) { + fieldName = String.format(PgConstants.CAST, originField, PgConstants.DEFAULT_INT_FORMAT); + } else if (x.getDeType() == DeTypeConstants.DE_FLOAT) { + fieldName = String.format(PgConstants.CAST, originField, PgConstants.DEFAULT_FLOAT_FORMAT); + } else { + fieldName = originField; + } } } return SQLObj.builder() 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 191ce6d589..fbd564d8d6 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 @@ -7,7 +7,6 @@ import io.dataease.plugins.common.base.domain.DatasetTableFieldExample; import io.dataease.plugins.common.base.domain.Datasource; import io.dataease.plugins.common.base.mapper.DatasetTableFieldMapper; import io.dataease.plugins.common.constants.DeTypeConstants; -import io.dataease.plugins.common.constants.ImpalaConstants; import io.dataease.plugins.common.constants.SQLConstants; import io.dataease.plugins.common.constants.SqlServerSQLConstants; import io.dataease.plugins.common.dto.chart.ChartCustomFilterItemDTO; @@ -1121,7 +1120,13 @@ public class SqlserverQueryProvider extends QueryProvider { fieldName = transDateFormat(x.getDateStyle(), x.getDatePattern(), cast); } } else { - fieldName = originField; + if (x.getDeType() == DeTypeConstants.DE_INT) { + fieldName = String.format(SqlServerSQLConstants.CONVERT, originField, SqlServerSQLConstants.DEFAULT_INT_FORMAT); + } else if (x.getDeType() == DeTypeConstants.DE_FLOAT) { + fieldName = String.format(SqlServerSQLConstants.CONVERT, originField, SqlServerSQLConstants.DEFAULT_FLOAT_FORMAT); + } else { + fieldName = originField; + } } } return SQLObj.builder()