fix: 修复文本转数值后做维度的排序问题

This commit is contained in:
junjun 2022-06-10 13:27:22 +08:00
parent 2873c861e5
commit 78caab8f61
12 changed files with 110 additions and 45 deletions

View File

@ -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()

View File

@ -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()

View File

@ -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()

View File

@ -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()

View File

@ -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()

View File

@ -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()

View File

@ -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()

View File

@ -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 {

View File

@ -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<SQLObj> 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<DatasetTableField> fields, boolean isGroup, Datasource ds, List<ChartFieldCustomFilterDTO> 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 {

View File

@ -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 {

View File

@ -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()

View File

@ -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()