From b3fec2c72dfec7e883f87f2baf16b48b4659764b Mon Sep 17 00:00:00 2001 From: taojinlong Date: Wed, 2 Jun 2021 16:40:14 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=A2=84=E8=A7=88=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=87=BA=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datasource/provider/JdbcProvider.java | 2 +- .../provider/mysql/MysqlQueryProvider.java | 52 +++++++++---------- .../sqlserver/SqlserverQueryProvider.java | 50 +++++++++--------- .../service/dataset/ExtractDataService.java | 4 +- 4 files changed, 54 insertions(+), 54 deletions(-) diff --git a/backend/src/main/java/io/dataease/datasource/provider/JdbcProvider.java b/backend/src/main/java/io/dataease/datasource/provider/JdbcProvider.java index cfc122406b..6a5fdd24d8 100644 --- a/backend/src/main/java/io/dataease/datasource/provider/JdbcProvider.java +++ b/backend/src/main/java/io/dataease/datasource/provider/JdbcProvider.java @@ -186,7 +186,7 @@ public class JdbcProvider extends DatasourceProvider { try { connection = getConnectionFromPool(datasourceRequest); DatabaseMetaData databaseMetaData = connection.getMetaData(); - ResultSet resultSet = databaseMetaData.getColumns(null, "%", datasourceRequest.getTable().toUpperCase(), "%"); + ResultSet resultSet = databaseMetaData.getColumns(null, "%", datasourceRequest.getTable(), "%"); while (resultSet.next()) { String tableName = resultSet.getString("TABLE_NAME"); String database = resultSet.getString("TABLE_CAT"); diff --git a/backend/src/main/java/io/dataease/provider/mysql/MysqlQueryProvider.java b/backend/src/main/java/io/dataease/provider/mysql/MysqlQueryProvider.java index 066204f1f2..9e78fe9863 100644 --- a/backend/src/main/java/io/dataease/provider/mysql/MysqlQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/mysql/MysqlQueryProvider.java @@ -78,21 +78,21 @@ public class MysqlQueryProvider extends QueryProvider { // 如果原始类型为时间 if (f.getDeExtractType() == 1) { if (f.getDeType() == 2 || f.getDeType() == 3) { - stringBuilder.append("unix_timestamp(").append(f.getDataeaseName()).append(")*1000 as ").append(f.getDataeaseName()); + stringBuilder.append("unix_timestamp(").append(f.getOriginName()).append(")*1000 as ").append(f.getOriginName()); } else { - stringBuilder.append(f.getDataeaseName()); + stringBuilder.append(f.getOriginName()); } } else { if (f.getDeType() == 1) { - stringBuilder.append("FROM_UNIXTIME(cast(").append(f.getDataeaseName()).append(" as decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') as ").append(f.getDataeaseName()); + stringBuilder.append("FROM_UNIXTIME(cast(").append(f.getOriginName()).append(" as decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') as ").append(f.getOriginName()); } else { - stringBuilder.append(f.getDataeaseName()); + stringBuilder.append(f.getOriginName()); } } return stringBuilder.toString(); }).toArray(String[]::new); - return MessageFormat.format("SELECT {0} FROM {1} ORDER BY " + (fields.size() > 0 ? fields.get(0).getDataeaseName() : "null"), StringUtils.join(array, ","), table); + return MessageFormat.format("SELECT {0} FROM {1} ORDER BY " + (fields.size() > 0 ? fields.get(0).getOriginName() : "null"), StringUtils.join(array, ","), table); } @Override @@ -115,21 +115,21 @@ public class MysqlQueryProvider extends QueryProvider { // 字段汇总 排序等 String[] field = yAxis.stream().map(y -> { StringBuilder f = new StringBuilder(); - if (StringUtils.equalsIgnoreCase(y.getDataeaseName(), "*")) { - f.append(y.getSummary()).append("(").append(y.getDataeaseName()).append(")"); + if (StringUtils.equalsIgnoreCase(y.getOriginName(), "*")) { + f.append(y.getSummary()).append("(").append(y.getOriginName()).append(")"); } else { if (StringUtils.equalsIgnoreCase(y.getSummary(), "avg") || StringUtils.containsIgnoreCase(y.getSummary(), "pop")) { f.append("CAST(") .append(y.getSummary()).append("(") - .append("CAST(").append(y.getDataeaseName()).append(" AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")") + .append("CAST(").append(y.getOriginName()).append(" AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")") .append(") AS DECIMAL(20,2)").append(")"); } else { f.append(y.getSummary()).append("(") - .append("CAST(").append(y.getDataeaseName()).append(" AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")") + .append("CAST(").append(y.getOriginName()).append(" AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")") .append(")"); } } - f.append(" AS _").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getDataeaseName(), "*") ? "" : y.getDataeaseName()); + f.append(" AS _").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()); return f.toString(); }).toArray(String[]::new); String[] groupField = xAxis.stream().map(x -> { @@ -137,28 +137,28 @@ public class MysqlQueryProvider extends QueryProvider { // 如果原始类型为时间 if (x.getDeExtractType() == 1) { if (x.getDeType() == 2 || x.getDeType() == 3) { - stringBuilder.append("unix_timestamp(").append(x.getDataeaseName()).append(")*1000 as _").append(x.getDataeaseName()); + stringBuilder.append("unix_timestamp(").append(x.getOriginName()).append(")*1000 as _").append(x.getOriginName()); } else if (x.getDeType() == 1) { String format = transDateFormat(x.getDateStyle(), x.getDatePattern()); - stringBuilder.append("DATE_FORMAT(").append(x.getDataeaseName()).append(",'").append(format).append("') as _").append(x.getDataeaseName()); + stringBuilder.append("DATE_FORMAT(").append(x.getOriginName()).append(",'").append(format).append("') as _").append(x.getOriginName()); } else { - stringBuilder.append(x.getDataeaseName()).append(" as _").append(x.getDataeaseName()); + stringBuilder.append(x.getOriginName()).append(" as _").append(x.getOriginName()); } } else { if (x.getDeType() == 1) { String format = transDateFormat(x.getDateStyle(), x.getDatePattern()); - stringBuilder.append("DATE_FORMAT(").append("FROM_UNIXTIME(cast(").append(x.getDataeaseName()).append(" as decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S')").append(",'").append(format).append("') as _").append(x.getDataeaseName()); + stringBuilder.append("DATE_FORMAT(").append("FROM_UNIXTIME(cast(").append(x.getOriginName()).append(" as decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S')").append(",'").append(format).append("') as _").append(x.getOriginName()); } else { - stringBuilder.append(x.getDataeaseName()).append(" as _").append(x.getDataeaseName()); + stringBuilder.append(x.getOriginName()).append(" as _").append(x.getOriginName()); } } return stringBuilder.toString(); }).toArray(String[]::new); - String[] group = xAxis.stream().map(x -> "_" + x.getDataeaseName()).toArray(String[]::new); + String[] group = xAxis.stream().map(x -> "_" + x.getOriginName()).toArray(String[]::new); String[] xOrder = xAxis.stream().filter(f -> StringUtils.isNotEmpty(f.getSort()) && !StringUtils.equalsIgnoreCase(f.getSort(), "none")) - .map(f -> "_" + f.getDataeaseName() + " " + f.getSort()).toArray(String[]::new); + .map(f -> "_" + f.getOriginName() + " " + f.getSort()).toArray(String[]::new); String[] yOrder = yAxis.stream().filter(f -> StringUtils.isNotEmpty(f.getSort()) && !StringUtils.equalsIgnoreCase(f.getSort(), "none")) - .map(f -> "_" + f.getSummary() + "_" + (StringUtils.equalsIgnoreCase(f.getDataeaseName(), "*") ? "" : f.getDataeaseName()) + " " + f.getSort()).toArray(String[]::new); + .map(f -> "_" + f.getSummary() + "_" + (StringUtils.equalsIgnoreCase(f.getOriginName(), "*") ? "" : f.getOriginName()) + " " + f.getSort()).toArray(String[]::new); String[] order = Arrays.copyOf(xOrder, xOrder.length + yOrder.length); System.arraycopy(yOrder, 0, order, xOrder.length, yOrder.length); @@ -168,10 +168,10 @@ public class MysqlQueryProvider extends QueryProvider { StringBuilder filter = new StringBuilder(); if (x.getDeType() == 1 && x.getDeExtractType() != 1) { filter.append(" AND FROM_UNIXTIME(cast(") - .append(x.getDataeaseName()) + .append(x.getOriginName()) .append(" AS decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') "); } else { - filter.append(" AND ").append(x.getDataeaseName()); + filter.append(" AND ").append(x.getOriginName()); } filter.append(transMysqlFilterTerm(f.getTerm())); if (StringUtils.containsIgnoreCase(f.getTerm(), "null")) { @@ -205,10 +205,10 @@ public class MysqlQueryProvider extends QueryProvider { // 原始类型不是时间,在de中被转成时间的字段做处理 if (y.getDeType() == 1 && y.getDeExtractType() != 1) { filter.append(" AND FROM_UNIXTIME(cast(_") - .append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getDataeaseName(), "*") ? "" : y.getDataeaseName()) + .append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()) .append(" AS decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') "); } else { - filter.append(" AND _").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getDataeaseName(), "*") ? "" : y.getDataeaseName()); + filter.append(" AND _").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()); } filter.append(transMysqlFilterTerm(f.getTerm())); if (StringUtils.containsIgnoreCase(f.getTerm(), "null")) { @@ -286,10 +286,10 @@ public class MysqlQueryProvider extends QueryProvider { DatasetTableField field = request.getField(); if (field.getDeType() == 1 && field.getDeExtractType() != 1) { filter.append(" AND FROM_UNIXTIME(cast(") - .append(field.getDataeaseName()) + .append(field.getOriginName()) .append(" AS decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') "); } else { - filter.append(" AND ").append(field.getDataeaseName()); + filter.append(" AND ").append(field.getOriginName()); } filter.append(" ") .append(transMysqlFilterTerm(request.getTerm())) @@ -318,10 +318,10 @@ public class MysqlQueryProvider extends QueryProvider { DatasetTableField field = request.getDatasetTableField(); if (field.getDeType() == 1 && field.getDeExtractType() != 1) { filter.append(" AND FROM_UNIXTIME(cast(") - .append(field.getDataeaseName()) + .append(field.getOriginName()) .append(" AS decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') "); } else { - filter.append(" AND ").append(field.getDataeaseName()); + filter.append(" AND ").append(field.getOriginName()); } filter.append(" ") .append(transMysqlFilterTerm(request.getOperator())) diff --git a/backend/src/main/java/io/dataease/provider/sqlserver/SqlserverQueryProvider.java b/backend/src/main/java/io/dataease/provider/sqlserver/SqlserverQueryProvider.java index 1f1d0d8956..dbfba64d43 100644 --- a/backend/src/main/java/io/dataease/provider/sqlserver/SqlserverQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/sqlserver/SqlserverQueryProvider.java @@ -79,21 +79,21 @@ public class SqlserverQueryProvider extends QueryProvider { // 如果原始类型为时间 if (f.getDeExtractType() == 1) { if (f.getDeType() == 2 || f.getDeType() == 3) { - stringBuilder.append("unix_timestamp(").append(f.getDataeaseName()).append(")*1000 as ").append(f.getDataeaseName()); + stringBuilder.append("unix_timestamp(").append(f.getOriginName()).append(")*1000 as ").append(f.getOriginName()); } else { - stringBuilder.append(f.getDataeaseName()); + stringBuilder.append(f.getOriginName()); } } else { if (f.getDeType() == 1) { - stringBuilder.append("FROM_UNIXTIME(cast(").append(f.getDataeaseName()).append(" as decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') as ").append(f.getDataeaseName()); + stringBuilder.append("FROM_UNIXTIME(cast(").append(f.getOriginName()).append(" as decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') as ").append(f.getOriginName()); } else { - stringBuilder.append(f.getDataeaseName()); + stringBuilder.append(f.getOriginName()); } } return stringBuilder.toString(); }).toArray(String[]::new); - return MessageFormat.format("SELECT {0} FROM {1} ORDER BY " + (fields.size() > 0 ? fields.get(0).getDataeaseName() : "null"), StringUtils.join(array, ","), table); + return MessageFormat.format("SELECT {0} FROM {1} ORDER BY " + (fields.size() > 0 ? fields.get(0).getOriginName() : "null"), StringUtils.join(array, ","), table); } @Override @@ -116,21 +116,21 @@ public class SqlserverQueryProvider extends QueryProvider { // 字段汇总 排序等 String[] field = yAxis.stream().map(y -> { StringBuilder f = new StringBuilder(); - if (StringUtils.equalsIgnoreCase(y.getDataeaseName(), "*")) { - f.append(y.getSummary()).append("(").append(y.getDataeaseName()).append(")"); + if (StringUtils.equalsIgnoreCase(y.getOriginName(), "*")) { + f.append(y.getSummary()).append("(").append(y.getOriginName()).append(")"); } else { if (StringUtils.equalsIgnoreCase(y.getSummary(), "avg") || StringUtils.containsIgnoreCase(y.getSummary(), "pop")) { f.append("CAST(") .append(y.getSummary()).append("(") - .append("CAST(").append(y.getDataeaseName()).append(" AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")") + .append("CAST(").append(y.getOriginName()).append(" AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")") .append(") AS DECIMAL(20,2)").append(")"); } else { f.append(y.getSummary()).append("(") - .append("CAST(").append(y.getDataeaseName()).append(" AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")") + .append("CAST(").append(y.getOriginName()).append(" AS ").append(y.getDeType() == 2 ? "DECIMAL(20,0)" : "DECIMAL(20,2)").append(")") .append(")"); } } - f.append(" AS _").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getDataeaseName(), "*") ? "" : y.getDataeaseName()); + f.append(" AS _").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()); return f.toString(); }).toArray(String[]::new); String[] groupField = xAxis.stream().map(x -> { @@ -138,24 +138,24 @@ public class SqlserverQueryProvider extends QueryProvider { // 如果原始类型为时间 if (x.getDeExtractType() == 1) { if (x.getDeType() == 2 || x.getDeType() == 3) { - stringBuilder.append("unix_timestamp(").append(x.getDataeaseName()).append(")*1000 as ").append(x.getDataeaseName()); + stringBuilder.append("unix_timestamp(").append(x.getOriginName()).append(")*1000 as ").append(x.getOriginName()); } else { - stringBuilder.append(x.getDataeaseName()); + stringBuilder.append(x.getOriginName()); } } else { if (x.getDeType() == 1) { - stringBuilder.append("FROM_UNIXTIME(cast(").append(x.getDataeaseName()).append(" as decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') as ").append(x.getDataeaseName()); + stringBuilder.append("FROM_UNIXTIME(cast(").append(x.getOriginName()).append(" as decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') as ").append(x.getOriginName()); } else { - stringBuilder.append(x.getDataeaseName()); + stringBuilder.append(x.getOriginName()); } } return stringBuilder.toString(); }).toArray(String[]::new); - String[] group = xAxis.stream().map(ChartViewFieldDTO::getDataeaseName).toArray(String[]::new); + String[] group = xAxis.stream().map(ChartViewFieldDTO::getOriginName).toArray(String[]::new); String[] xOrder = xAxis.stream().filter(f -> StringUtils.isNotEmpty(f.getSort()) && !StringUtils.equalsIgnoreCase(f.getSort(), "none")) - .map(f -> f.getDataeaseName() + " " + f.getSort()).toArray(String[]::new); + .map(f -> f.getOriginName() + " " + f.getSort()).toArray(String[]::new); String[] yOrder = yAxis.stream().filter(f -> StringUtils.isNotEmpty(f.getSort()) && !StringUtils.equalsIgnoreCase(f.getSort(), "none")) - .map(f -> "_" + f.getSummary() + "_" + (StringUtils.equalsIgnoreCase(f.getDataeaseName(), "*") ? "" : f.getDataeaseName()) + " " + f.getSort()).toArray(String[]::new); + .map(f -> "_" + f.getSummary() + "_" + (StringUtils.equalsIgnoreCase(f.getOriginName(), "*") ? "" : f.getOriginName()) + " " + f.getSort()).toArray(String[]::new); String[] order = Arrays.copyOf(xOrder, xOrder.length + yOrder.length); System.arraycopy(yOrder, 0, order, xOrder.length, yOrder.length); @@ -165,10 +165,10 @@ public class SqlserverQueryProvider extends QueryProvider { StringBuilder filter = new StringBuilder(); if (x.getDeType() == 1 && x.getDeExtractType() != 1) { filter.append(" AND FROM_UNIXTIME(cast(") - .append(x.getDataeaseName()) + .append(x.getOriginName()) .append(" AS decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') "); } else { - filter.append(" AND ").append(x.getDataeaseName()); + filter.append(" AND ").append(x.getOriginName()); } filter.append(transMysqlFilterTerm(f.getTerm())); if (StringUtils.containsIgnoreCase(f.getTerm(), "null")) { @@ -202,10 +202,10 @@ public class SqlserverQueryProvider extends QueryProvider { // 原始类型不是时间,在de中被转成时间的字段做处理 if (y.getDeType() == 1 && y.getDeExtractType() != 1) { filter.append(" AND FROM_UNIXTIME(cast(_") - .append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getDataeaseName(), "*") ? "" : y.getDataeaseName()) + .append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()) .append(" AS decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') "); } else { - filter.append(" AND _").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getDataeaseName(), "*") ? "" : y.getDataeaseName()); + filter.append(" AND _").append(y.getSummary()).append("_").append(StringUtils.equalsIgnoreCase(y.getOriginName(), "*") ? "" : y.getOriginName()); } filter.append(transMysqlFilterTerm(f.getTerm())); if (StringUtils.containsIgnoreCase(f.getTerm(), "null")) { @@ -281,10 +281,10 @@ public class SqlserverQueryProvider extends QueryProvider { DatasetTableField field = request.getField(); if (field.getDeType() == 1 && field.getDeExtractType() != 1) { filter.append(" AND FROM_UNIXTIME(cast(") - .append(field.getDataeaseName()) + .append(field.getOriginName()) .append(" AS decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') "); } else { - filter.append(" AND ").append(field.getDataeaseName()); + filter.append(" AND ").append(field.getOriginName()); } filter.append(" ") .append(transMysqlFilterTerm(request.getTerm())) @@ -313,10 +313,10 @@ public class SqlserverQueryProvider extends QueryProvider { DatasetTableField field = request.getDatasetTableField(); if (field.getDeType() == 1 && field.getDeExtractType() != 1) { filter.append(" AND FROM_UNIXTIME(cast(") - .append(field.getDataeaseName()) + .append(field.getOriginName()) .append(" AS decimal(20,0))/1000,'%Y-%m-%d %H:%i:%S') "); } else { - filter.append(" AND ").append(field.getDataeaseName()); + filter.append(" AND ").append(field.getOriginName()); } filter.append(" ") .append(transMysqlFilterTerm(request.getOperator())) diff --git a/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java b/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java index b28d14cc2c..f63a937c87 100644 --- a/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java +++ b/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java @@ -208,8 +208,8 @@ public class ExtractDataService { LogUtil.error("Can not find DatasetTable: " + datasetTableId); } DatasetTableTask datasetTableTask = datasetTableTaskMapper.selectByPrimaryKey(taskId); - boolean isSIMPLEJob = (datasetTableTask != null && datasetTableTask.getRate().equalsIgnoreCase(ScheduleType.SIMPLE.toString())); - if(updateSyncStatus(datasetTable) && !isSIMPLEJob){ + boolean isCronJob = (datasetTableTask != null && datasetTableTask.getRate().equalsIgnoreCase(ScheduleType.CRON.toString())); + if(updateSyncStatus(datasetTable) && isCronJob){ LogUtil.info("Skip synchronization task for table : " + datasetTableId); return; }