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 c12dfa61ea..ec93eb5051 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 @@ -917,7 +917,7 @@ public class OracleQueryProvider extends QueryProvider { continue; } String originField = String.format(OracleConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); - if (xAxis.get(i).getType().equals("DATE")) { + if(xAxis.get(i).getType().equals("DATE")){ originField = String.format(OracleConstants.TO_CHAR, originField, OracleConstants.DEFAULT_DATE_FORMAT); } String fieldAlias = String.format(OracleConstants.KEYWORD_TABLE, x.getOriginName()); @@ -1210,7 +1210,7 @@ public class OracleQueryProvider extends QueryProvider { if (field.getDeType() == 1) { if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) { - whereName = String.format(OracleConstants.TO_CHAR, String.format(OracleConstants.TO_DATE, originName, StringUtils.isNotEmpty(field.getDateFormat()) ? field.getDateFormat() : OracleConstants.DEFAULT_DATE_FORMAT, format)); + whereName = String.format(OracleConstants.TO_CHAR, String.format(OracleConstants.TO_DATE, originName, StringUtils.isNotEmpty(field.getDateFormat()) ? field.getDateFormat() : OracleConstants.DEFAULT_DATE_FORMAT), format); } else { whereName = String.format(OracleConstants.TO_DATE, originName, StringUtils.isNotEmpty(field.getDateFormat()) ? field.getDateFormat() : OracleConstants.DEFAULT_DATE_FORMAT); } @@ -1231,6 +1231,7 @@ public class OracleQueryProvider extends QueryProvider { whereName = originName; } } + } else if (field.getDeType() == 2 || field.getDeType() == 3) { if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { whereName = String.format(OracleConstants.CAST, originName, OracleConstants.DEFAULT_FLOAT_FORMAT); 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 66d85eca79..4a102bd3d8 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 @@ -801,11 +801,11 @@ public class PgQueryProvider extends QueryProvider { } public String getTotalCount(boolean isTable, String sql, Datasource ds) { - if(isTable){ + if (isTable) { String schema = new Gson().fromJson(ds.getConfiguration(), JdbcConfiguration.class).getSchema(); String tableWithSchema = String.format(PgConstants.KEYWORD_TABLE, schema) + "." + String.format(PgConstants.KEYWORD_TABLE, sql); return "SELECT COUNT(*) from " + tableWithSchema; - }else { + } else { return "SELECT COUNT(*) from ( " + sqlFix(sql) + " ) DE_COUNT_TEMP"; } } @@ -974,7 +974,7 @@ public class PgQueryProvider extends QueryProvider { } if (field.getDeType() == 1) { if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { - whereName = String.format(PgConstants.STR_TO_DATE, originName, StringUtils.isNotEmpty(field.getDateFormat()) ? field.getDateFormat() : PgConstants.DEFAULT_DATE_FORMAT); + whereName = String.format(PgConstants.STR_TO_DATE, originName, StringUtils.isNotEmpty(field.getDateFormat()) ? field.getDateFormat() : PgConstants.DEFAULT_DATE_FORMAT); } if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { String cast = String.format(PgConstants.CAST, originName, "bigint"); @@ -1073,31 +1073,31 @@ public class PgQueryProvider extends QueryProvider { if (field.getDeType() == 1) { String format = transDateFormat(request.getDateStyle(), request.getDatePattern()); - if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { - if(StringUtils.containsIgnoreCase(request.getOperator(), "in")){ - String timestamp = String.format(PgConstants.STR_TO_DATE, originName, StringUtils.isNotEmpty(field.getDateFormat()) ? field.getDateFormat() : PgConstants.DEFAULT_DATE_FORMAT); + if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5 || field.getDeExtractType() == 1) { + if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) { + String timestamp = String.format(PgConstants.STR_TO_DATE, originName, StringUtils.isNotEmpty(field.getDateFormat()) ? field.getDateFormat() : PgConstants.DEFAULT_DATE_FORMAT); whereName = String.format(PgConstants.DATE_FORMAT, timestamp, format); - }else { - whereName = String.format(PgConstants.STR_TO_DATE, originName, StringUtils.isNotEmpty(field.getDateFormat()) ? field.getDateFormat() : PgConstants.DEFAULT_DATE_FORMAT); + } else { + whereName = String.format(PgConstants.STR_TO_DATE, originName, StringUtils.isNotEmpty(field.getDateFormat()) ? field.getDateFormat() : PgConstants.DEFAULT_DATE_FORMAT); } } if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { - if(StringUtils.containsIgnoreCase(request.getOperator(), "in")){ + if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) { String cast = String.format(PgConstants.CAST, originName, "bigint"); String timestamp = String.format(PgConstants.FROM_UNIXTIME, cast); whereName = String.format(PgConstants.DATE_FORMAT, timestamp, format); - }else { + } else { String cast = String.format(PgConstants.CAST, originName, "bigint"); whereName = String.format(PgConstants.FROM_UNIXTIME, cast); } + } if (field.getDeExtractType() == 1) { - if(StringUtils.containsIgnoreCase(request.getOperator(), "in")){ + if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) { whereName = String.format(PgConstants.DATE_FORMAT, originName, format); - }else { + } else { whereName = originName; } - } } else if (field.getDeType() == 2 || field.getDeType() == 3) { if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { @@ -1205,7 +1205,7 @@ public class PgQueryProvider extends QueryProvider { String format = transDateFormat(x.getDateStyle(), x.getDatePattern()); if (x.getDeExtractType() == DeTypeConstants.DE_STRING) { fieldName = String.format(PgConstants.DATE_FORMAT, - String.format(PgConstants.STR_TO_DATE, originField, StringUtils.isNotEmpty(x.getDateFormat()) ? x.getDateFormat() : PgConstants.DEFAULT_DATE_FORMAT), + String.format(PgConstants.STR_TO_DATE, originField, StringUtils.isNotEmpty(x.getDateFormat()) ? x.getDateFormat() : PgConstants.DEFAULT_DATE_FORMAT), format); } else { String cast = String.format(PgConstants.CAST, originField, "bigint"); 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 bdf8674686..8ab6fced1f 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 @@ -1081,24 +1081,23 @@ public class SqlserverQueryProvider extends QueryProvider { if (field.getDeType() == 1) { if (field.getDeExtractType() == 0 || field.getDeExtractType() == 5) { - if(StringUtils.containsIgnoreCase(request.getOperator(), "in")){ - String date = String.format(SqlServerSQLConstants.STRING_TO_DATE, originName, StringUtils.isNotEmpty(field.getDateFormat()) ? field.getDateFormat() : SqlServerSQLConstants.DEFAULT_DATE_FORMAT); - whereName = transDateFormat(request.getDateStyle(), request.getDatePattern(), date); + if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) { + whereName = transDateFormat(request.getDateStyle(), request.getDatePattern(), String.format(SqlServerSQLConstants.STRING_TO_DATE, originName, StringUtils.isNotEmpty(field.getDateFormat()) ? field.getDateFormat() : SqlServerSQLConstants.DEFAULT_DATE_FORMAT)); }else { whereName = String.format(SqlServerSQLConstants.STRING_TO_DATE, originName, StringUtils.isNotEmpty(field.getDateFormat()) ? field.getDateFormat() : SqlServerSQLConstants.DEFAULT_DATE_FORMAT); } } if (field.getDeExtractType() == 2 || field.getDeExtractType() == 3 || field.getDeExtractType() == 4) { - if(StringUtils.containsIgnoreCase(request.getOperator(), "in")){ + if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) { String cast = String.format(SqlServerSQLConstants.LONG_TO_DATE, originName + "/1000"); - whereName = transDateFormat(request.getDateStyle(), request.getDatePattern(), String.format(SqlServerSQLConstants.FROM_UNIXTIME, cast)); + whereName = transDateFormat(request.getDateStyle(), request.getDatePattern(), cast); }else { String cast = String.format(SqlServerSQLConstants.LONG_TO_DATE, originName + "/1000"); whereName = String.format(SqlServerSQLConstants.FROM_UNIXTIME, cast); } } if (field.getDeExtractType() == 1) { - if(StringUtils.containsIgnoreCase(request.getOperator(), "in")){ + if (StringUtils.containsIgnoreCase(request.getOperator(), "in")) { whereName = transDateFormat(request.getDateStyle(), request.getDatePattern(), originName); }else { whereName = originName; diff --git a/frontend/src/utils/conditionUtil.js b/frontend/src/utils/conditionUtil.js index 3b3e0f1240..f5d86e426e 100644 --- a/frontend/src/utils/conditionUtil.js +++ b/frontend/src/utils/conditionUtil.js @@ -16,8 +16,9 @@ export const isChange = (conditions1, conditions2) => { if (conditions1.length !== conditions2.length) return true let arr1 = JSON.parse(JSON.stringify(conditions1)) let arr2 = JSON.parse(JSON.stringify(conditions2)) - arr1 = arr1.sort((s1, s2) => s1.componentId > s2.componentId) - arr2 = arr2.sort((s1, s2) => s1.componentId > s2.componentId) + const strCodeAt = (str) => str[0].charCodeAt() + arr1 = arr1.sort((s1, s2) => strCodeAt(s1.componentId) - strCodeAt(s2.componentId)) + arr2 = arr2.sort((s1, s2) => strCodeAt(s1.componentId) - strCodeAt(s2.componentId)) return JSON.stringify(arr1) !== JSON.stringify(arr2) }