diff --git a/backend/src/main/java/io/dataease/datasource/dto/JdbcDTO.java b/backend/src/main/java/io/dataease/datasource/dto/JdbcDTO.java index 4f5c6b822a..e22657cdf0 100644 --- a/backend/src/main/java/io/dataease/datasource/dto/JdbcDTO.java +++ b/backend/src/main/java/io/dataease/datasource/dto/JdbcDTO.java @@ -12,5 +12,6 @@ public class JdbcDTO { private String username; private String password; private String dataBase; + private String schema; private String dataSourceType = "jdbc"; } diff --git a/backend/src/main/java/io/dataease/datasource/dto/OracleConfigration.java b/backend/src/main/java/io/dataease/datasource/dto/OracleConfigration.java index 6cebb06f13..6323791f90 100644 --- a/backend/src/main/java/io/dataease/datasource/dto/OracleConfigration.java +++ b/backend/src/main/java/io/dataease/datasource/dto/OracleConfigration.java @@ -9,7 +9,6 @@ public class OracleConfigration extends JdbcDTO { private String driver = "oracle.jdbc.driver.OracleDriver"; private String connectionType; - private String schema; public String getJdbc() { // 连接参数先写死,后边要把编码、时区等参数放到数据源的设置中 diff --git a/backend/src/main/java/io/dataease/datasource/dto/PgConfigration.java b/backend/src/main/java/io/dataease/datasource/dto/PgConfigration.java index 4ce5db6c4f..3258c575c0 100644 --- a/backend/src/main/java/io/dataease/datasource/dto/PgConfigration.java +++ b/backend/src/main/java/io/dataease/datasource/dto/PgConfigration.java @@ -9,8 +9,6 @@ public class PgConfigration extends JdbcDTO { private String driver = "org.postgresql.Driver"; - private String schema; - public String getJdbc() { // 连接参数先写死,后边要把编码、时区等参数放到数据源的设置中 return "jdbc:postgresql://HOSTNAME:PORT/DATABASE" diff --git a/backend/src/main/java/io/dataease/datasource/dto/SqlServerConfigration.java b/backend/src/main/java/io/dataease/datasource/dto/SqlServerConfigration.java index 1cbe90c83a..7282704586 100644 --- a/backend/src/main/java/io/dataease/datasource/dto/SqlServerConfigration.java +++ b/backend/src/main/java/io/dataease/datasource/dto/SqlServerConfigration.java @@ -8,7 +8,6 @@ import lombok.Setter; @Setter public class SqlServerConfigration extends JdbcDTO { private String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - private String schema; public String getJdbc(){ return "jdbc:sqlserver://HOSTNAME:PORT;DatabaseName=DATABASE".replace("HOSTNAME", getHost()).replace("PORT", getPort().toString()).replace("DATABASE", getDataBase()); 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 dff85bc0e4..e53caacbc9 100644 --- a/backend/src/main/java/io/dataease/datasource/provider/JdbcProvider.java +++ b/backend/src/main/java/io/dataease/datasource/provider/JdbcProvider.java @@ -219,10 +219,8 @@ public class JdbcProvider extends DatasourceProvider { public List getSchema(DatasourceRequest datasourceRequest) throws Exception { List schemas = new ArrayList<>(); String queryStr = getSchemaSql(datasourceRequest); - System.out.println(queryStr); Connection con = null; try { - System.out.println(new Gson().toJson(datasourceRequest)); con = getConnection(datasourceRequest); Statement statement = con.createStatement(); ResultSet resultSet = statement.executeQuery(queryStr); diff --git a/backend/src/main/java/io/dataease/dto/chart/ChartViewDTO.java b/backend/src/main/java/io/dataease/dto/chart/ChartViewDTO.java index 035e916527..81629da981 100644 --- a/backend/src/main/java/io/dataease/dto/chart/ChartViewDTO.java +++ b/backend/src/main/java/io/dataease/dto/chart/ChartViewDTO.java @@ -1,11 +1,9 @@ package io.dataease.dto.chart; import io.dataease.base.domain.ChartViewWithBLOBs; -import io.dataease.controller.request.chart.ChartDrillRequest; import lombok.Getter; import lombok.Setter; -import java.util.List; import java.util.Map; /** diff --git a/backend/src/main/java/io/dataease/provider/QueryProvider.java b/backend/src/main/java/io/dataease/provider/QueryProvider.java index 4c56399036..b3f4ad5a8a 100644 --- a/backend/src/main/java/io/dataease/provider/QueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/QueryProvider.java @@ -1,10 +1,15 @@ package io.dataease.provider; +import com.google.gson.Gson; import io.dataease.base.domain.DatasetTableField; import io.dataease.base.domain.Datasource; import io.dataease.controller.request.chart.ChartExtFilterRequest; +import io.dataease.datasource.dto.JdbcDTO; +import io.dataease.datasource.dto.SqlServerConfigration; import io.dataease.dto.chart.ChartCustomFilterDTO; import io.dataease.dto.chart.ChartViewFieldDTO; +import io.dataease.dto.sqlObj.SQLObj; +import io.dataease.provider.pg.PgConstants; import java.util.List; @@ -30,15 +35,15 @@ public abstract class QueryProvider { public abstract String createQuerySQLAsTmpWithPage(String sql, List fields, Integer page, Integer pageSize, Integer realSize, boolean isGroup); - public abstract String getSQL(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList); + public abstract String getSQL(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, Datasource ds); public abstract String getSQLAsTmp(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList); - public abstract String getSQLStack(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extStack); + public abstract String getSQLStack(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extStack, Datasource ds); public abstract String getSQLAsTmpStack(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extStack); - public abstract String getSQLScatter(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extBubble); + public abstract String getSQLScatter(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extBubble, Datasource ds); public abstract String getSQLAsTmpScatter(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extBubble); @@ -59,7 +64,15 @@ public abstract class QueryProvider { public abstract String wrapSql(String sql); - public abstract String createRawQuerySQL(String table, List fields); + public abstract String createRawQuerySQL(String table, List fields, Datasource ds); public abstract String createRawQuerySQLAsTmp(String sql, List fields); + + public void setSchema(SQLObj tableObj, Datasource ds){ + if(ds != null){ + String schema = new Gson().fromJson(ds.getConfiguration(), JdbcDTO.class).getSchema(); + schema = String.format( PgConstants.KEYWORD_TABLE, schema); + tableObj.setTableName(schema + "." + tableObj.getTableName()); + } + } } diff --git a/backend/src/main/java/io/dataease/provider/doris/DorisQueryProvider.java b/backend/src/main/java/io/dataease/provider/doris/DorisQueryProvider.java index 8a411a6de6..f7638fe8c9 100644 --- a/backend/src/main/java/io/dataease/provider/doris/DorisQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/doris/DorisQueryProvider.java @@ -174,7 +174,7 @@ public class DorisQueryProvider extends QueryProvider { } @Override - public String getSQL(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList) { + public String getSQL(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, Datasource ds) { SQLObj tableObj = SQLObj.builder() .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(DorisConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) @@ -281,11 +281,11 @@ public class DorisQueryProvider extends QueryProvider { @Override public String getSQLAsTmp(String sql, List xAxis, List yAxis, List customFilter, List extFilterRequestList) { - return getSQL("(" + sql + ")", xAxis, yAxis, customFilter, extFilterRequestList); + return getSQL("(" + sql + ")", xAxis, yAxis, customFilter, extFilterRequestList, null); } @Override - public String getSQLStack(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extStack) { + public String getSQLStack(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extStack, Datasource ds) { SQLObj tableObj = SQLObj.builder() .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(DorisConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) @@ -395,11 +395,11 @@ public class DorisQueryProvider extends QueryProvider { @Override public String getSQLAsTmpStack(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extStack) { - return getSQLStack("(" + table + ")", xAxis, yAxis, customFilter, extFilterRequestList, extStack); + return getSQLStack("(" + table + ")", xAxis, yAxis, customFilter, extFilterRequestList, extStack, null); } @Override - public String getSQLScatter(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extBubble) { + public String getSQLScatter(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extBubble, Datasource ds) { SQLObj tableObj = SQLObj.builder() .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(DorisConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) @@ -509,7 +509,7 @@ public class DorisQueryProvider extends QueryProvider { @Override public String getSQLAsTmpScatter(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extBubble) { - return getSQLScatter("(" + table + ")", xAxis, yAxis, customFilter, extFilterRequestList, extBubble); + return getSQLScatter("(" + table + ")", xAxis, yAxis, customFilter, extFilterRequestList, extBubble, null); } @Override @@ -605,7 +605,7 @@ public class DorisQueryProvider extends QueryProvider { } @Override - public String createRawQuerySQL(String table, List fields) { + public String createRawQuerySQL(String table, List fields, Datasource ds) { String[] array = fields.stream().map(f -> { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("`").append(f.getDataeaseName()).append("` AS ").append(f.getDataeaseName()); @@ -616,7 +616,7 @@ public class DorisQueryProvider extends QueryProvider { @Override public String createRawQuerySQLAsTmp(String sql, List fields) { - return createRawQuerySQL(" (" + sqlFix(sql) + ") AS tmp ", fields); + return createRawQuerySQL(" (" + sqlFix(sql) + ") AS tmp ", fields, null); } private String sqlFix(String sql) { 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 5702a9a68d..7d95965a19 100644 --- a/backend/src/main/java/io/dataease/provider/mysql/MysqlQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/mysql/MysqlQueryProvider.java @@ -165,7 +165,7 @@ public class MysqlQueryProvider extends QueryProvider { } @Override - public String getSQL(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList) { + public String getSQL(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, Datasource ds) { SQLObj tableObj = SQLObj.builder() .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(MySQLConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) @@ -273,11 +273,11 @@ public class MysqlQueryProvider extends QueryProvider { @Override public String getSQLAsTmp(String sql, List xAxis, List yAxis, List customFilter, List extFilterRequestList) { - return getSQL("(" + sqlFix(sql) + ")", xAxis, yAxis, customFilter, extFilterRequestList); + return getSQL("(" + sqlFix(sql) + ")", xAxis, yAxis, customFilter, extFilterRequestList, null); } @Override - public String getSQLStack(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extStack) { + public String getSQLStack(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extStack, Datasource ds) { SQLObj tableObj = SQLObj.builder() .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(MySQLConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) @@ -387,11 +387,11 @@ public class MysqlQueryProvider extends QueryProvider { @Override public String getSQLAsTmpStack(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extStack) { - return getSQLStack("(" + sqlFix(table) + ")", xAxis, yAxis, customFilter, extFilterRequestList, extStack); + return getSQLStack("(" + sqlFix(table) + ")", xAxis, yAxis, customFilter, extFilterRequestList, extStack, null); } @Override - public String getSQLScatter(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extBubble) { + public String getSQLScatter(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extBubble, Datasource ds) { SQLObj tableObj = SQLObj.builder() .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(MySQLConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) @@ -501,7 +501,7 @@ public class MysqlQueryProvider extends QueryProvider { @Override public String getSQLAsTmpScatter(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extBubble) { - return getSQLScatter("(" + sqlFix(table) + ")", xAxis, yAxis, customFilter, extFilterRequestList, extBubble); + return getSQLScatter("(" + sqlFix(table) + ")", xAxis, yAxis, customFilter, extFilterRequestList, extBubble, null); } @Override @@ -597,7 +597,7 @@ public class MysqlQueryProvider extends QueryProvider { } @Override - public String createRawQuerySQL(String table, List fields) { + public String createRawQuerySQL(String table, List fields, Datasource ds) { String[] array = fields.stream().map(f -> { StringBuilder stringBuilder = new StringBuilder(); if (f.getDeExtractType() == 4) { // 处理 tinyint @@ -612,7 +612,7 @@ public class MysqlQueryProvider extends QueryProvider { @Override public String createRawQuerySQLAsTmp(String sql, List fields) { - return createRawQuerySQL(" (" + sqlFix(sql) + ") AS tmp ", fields); + return createRawQuerySQL(" (" + sqlFix(sql) + ") AS tmp ", fields, null); } public String transMysqlFilterTerm(String term) { diff --git a/backend/src/main/java/io/dataease/provider/oracle/OracleQueryProvider.java b/backend/src/main/java/io/dataease/provider/oracle/OracleQueryProvider.java index 02af808450..138a2cac52 100644 --- a/backend/src/main/java/io/dataease/provider/oracle/OracleQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/oracle/OracleQueryProvider.java @@ -199,7 +199,7 @@ public class OracleQueryProvider extends QueryProvider { } @Override - public String getSQL(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList) { + public String getSQL(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, Datasource ds) { SQLObj tableObj = SQLObj.builder() .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(OracleConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(OracleConstants.ALIAS_FIX, String.format(TABLE_ALIAS_PREFIX, 0))) @@ -306,11 +306,11 @@ public class OracleQueryProvider extends QueryProvider { @Override public String getSQLAsTmp(String sql, List xAxis, List yAxis, List customFilter, List extFilterRequestList) { - return getSQL("(" + sqlFix(sql) + ")", xAxis, yAxis, customFilter, extFilterRequestList); + return getSQL("(" + sqlFix(sql) + ")", xAxis, yAxis, customFilter, extFilterRequestList, null); } @Override - public String getSQLStack(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extStack) { + public String getSQLStack(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extStack, Datasource ds) { SQLObj tableObj = SQLObj.builder() .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(OracleConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(OracleConstants.ALIAS_FIX, String.format(TABLE_ALIAS_PREFIX, 0))) @@ -420,11 +420,11 @@ public class OracleQueryProvider extends QueryProvider { @Override public String getSQLAsTmpStack(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extStack) { - return getSQLStack("(" + sqlFix(table) + ")", xAxis, yAxis, customFilter, extFilterRequestList, extStack); + return getSQLStack("(" + sqlFix(table) + ")", xAxis, yAxis, customFilter, extFilterRequestList, extStack, null); } @Override - public String getSQLScatter(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extBubble) { + public String getSQLScatter(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extBubble, Datasource ds) { SQLObj tableObj = SQLObj.builder() .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(OracleConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(OracleConstants.ALIAS_FIX, String.format(TABLE_ALIAS_PREFIX, 0))) @@ -534,7 +534,7 @@ public class OracleQueryProvider extends QueryProvider { @Override public String getSQLAsTmpScatter(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extBubble) { - return getSQLScatter("(" + sqlFix(table) + ")", xAxis, yAxis, customFilter, extFilterRequestList, extBubble); + return getSQLScatter("(" + sqlFix(table) + ")", xAxis, yAxis, customFilter, extFilterRequestList, extBubble, null); } @Override @@ -629,7 +629,7 @@ public class OracleQueryProvider extends QueryProvider { } @Override - public String createRawQuerySQL(String table, List fields) { + public String createRawQuerySQL(String table, List fields, Datasource ds) { String[] array = fields.stream().map(f -> { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append(" \"").append(f.getOriginName()).append("\""); @@ -640,7 +640,7 @@ public class OracleQueryProvider extends QueryProvider { @Override public String createRawQuerySQLAsTmp(String sql, List fields) { - return createRawQuerySQL(" (" + sqlFix(sql) + ") DE_TMP ", fields); + return createRawQuerySQL(" (" + sqlFix(sql) + ") DE_TMP ", fields, null); } public String transMysqlFilterTerm(String term) { diff --git a/backend/src/main/java/io/dataease/provider/pg/PgQueryProvider.java b/backend/src/main/java/io/dataease/provider/pg/PgQueryProvider.java index 9610d2bc8a..eecb57b2d2 100644 --- a/backend/src/main/java/io/dataease/provider/pg/PgQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/pg/PgQueryProvider.java @@ -1,16 +1,21 @@ package io.dataease.provider.pg; +import com.google.gson.Gson; import io.dataease.base.domain.DatasetTableField; import io.dataease.base.domain.DatasetTableFieldExample; import io.dataease.base.domain.Datasource; import io.dataease.base.mapper.DatasetTableFieldMapper; import io.dataease.commons.constants.DeTypeConstants; import io.dataease.controller.request.chart.ChartExtFilterRequest; +import io.dataease.datasource.dto.JdbcDTO; +import io.dataease.datasource.dto.PgConfigration; +import io.dataease.datasource.dto.SqlServerConfigration; import io.dataease.dto.chart.ChartCustomFilterDTO; import io.dataease.dto.chart.ChartViewFieldDTO; import io.dataease.dto.sqlObj.SQLObj; import io.dataease.provider.QueryProvider; import io.dataease.provider.SQLConstants; +import io.dataease.provider.sqlserver.SqlServerSQLConstants; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; @@ -61,12 +66,12 @@ public class PgQueryProvider extends QueryProvider { case "point": case "polygon": case "bool": + case "interval": return DeTypeConstants.DE_STRING;// 文本 case "date": case "time": case "timestamp": case "timestamptz": - case "interval": return DeTypeConstants.DE_TIME;// 时间 case "int2": case "int4": @@ -100,6 +105,8 @@ public class PgQueryProvider extends QueryProvider { .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format( PgConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) .build(); + + setSchema(tableObj,ds); List xFields = new ArrayList<>(); if (CollectionUtils.isNotEmpty(fields)) { for (int i = 0; i < fields.size(); i++) { @@ -183,11 +190,12 @@ public class PgQueryProvider extends QueryProvider { } @Override - public String getSQL(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList) { + public String getSQL(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, Datasource ds) { SQLObj tableObj = SQLObj.builder() .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format( PgConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) .build(); + setSchema(tableObj,ds); List xFields = new ArrayList<>(); List xWheres = new ArrayList<>(); List xOrders = new ArrayList<>(); @@ -291,15 +299,16 @@ public class PgQueryProvider extends QueryProvider { @Override public String getSQLAsTmp(String sql, List xAxis, List yAxis, List customFilter, List extFilterRequestList) { - return getSQL("(" + sqlFix(sql) + ")", xAxis, yAxis, customFilter, extFilterRequestList); + return getSQL("(" + sqlFix(sql) + ")", xAxis, yAxis, customFilter, extFilterRequestList, null); } @Override - public String getSQLStack(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extStack) { + public String getSQLStack(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extStack, Datasource ds) { SQLObj tableObj = SQLObj.builder() .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format( PgConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) .build(); + setSchema(tableObj,ds); List xFields = new ArrayList<>(); List xWheres = new ArrayList<>(); List xOrders = new ArrayList<>(); @@ -405,15 +414,16 @@ public class PgQueryProvider extends QueryProvider { @Override public String getSQLAsTmpStack(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extStack) { - return getSQLStack("(" + sqlFix(table) + ")", xAxis, yAxis, customFilter, extFilterRequestList, extStack); + return getSQLStack("(" + sqlFix(table) + ")", xAxis, yAxis, customFilter, extFilterRequestList, extStack, null); } @Override - public String getSQLScatter(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extBubble) { + public String getSQLScatter(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extBubble, Datasource ds) { SQLObj tableObj = SQLObj.builder() .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format( PgConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) .build(); + setSchema(tableObj,ds); List xFields = new ArrayList<>(); List xWheres = new ArrayList<>(); List xOrders = new ArrayList<>(); @@ -519,7 +529,7 @@ public class PgQueryProvider extends QueryProvider { @Override public String getSQLAsTmpScatter(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extBubble) { - return getSQLScatter("(" + sqlFix(table) + ")", xAxis, yAxis, customFilter, extFilterRequestList, extBubble); + return getSQLScatter("(" + sqlFix(table) + ")", xAxis, yAxis, customFilter, extFilterRequestList, extBubble, null); } @Override @@ -615,23 +625,24 @@ public class PgQueryProvider extends QueryProvider { } @Override - public String createRawQuerySQL(String table, List fields) { + public String createRawQuerySQL(String table, List fields, Datasource ds) { String[] array = fields.stream().map(f -> { StringBuilder stringBuilder = new StringBuilder(); -// if (f.getDeExtractType() == 4) { // 处理 tinyint -// stringBuilder.append("concat(`").append(f.getOriginName()).append("`,'') AS ").append(f.getDataeaseName()); -// } else { -// stringBuilder.append("`").append(f.getOriginName()).append("` AS ").append(f.getDataeaseName()); -// } stringBuilder.append("\"").append(f.getOriginName()).append("\" AS ").append(f.getDataeaseName()); return stringBuilder.toString(); }).toArray(String[]::new); - return MessageFormat.format("SELECT {0} FROM {1} ", StringUtils.join(array, ","), table); + if(ds != null){ + String schema = new Gson().fromJson(ds.getConfiguration(), JdbcDTO.class).getSchema(); + String tableWithSchema = String.format(SqlServerSQLConstants.KEYWORD_TABLE, schema) + "." + String.format(SqlServerSQLConstants.KEYWORD_TABLE, table); + return MessageFormat.format("SELECT {0} FROM {1} ", StringUtils.join(array, ","), tableWithSchema); + }else { + return MessageFormat.format("SELECT {0} FROM {1} ", StringUtils.join(array, ","), table); + } } @Override public String createRawQuerySQLAsTmp(String sql, List fields) { - return createRawQuerySQL(" (" + sqlFix(sql) + ") AS tmp ", fields); + return createRawQuerySQL(" (" + sqlFix(sql) + ") AS tmp ", fields, null); } public String transMysqlFilterTerm(String term) { @@ -798,7 +809,7 @@ public class PgQueryProvider extends QueryProvider { case "y_M_d_H_m": return "'YYYY" + split + "MM" + split + "DD" + " HH24:MI'"; case "y_M_d_H_m_s": - return "'YYYY" + split + "MM" + split + "DD" + " %H:%i:%S'"; + return "'YYYY" + split + "MM" + split + "DD" + " HH24:MI:SS'"; default: return "'YYYY-MM-DD HH24:MI:SS'"; } 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 2c8d0254ba..6820889473 100644 --- a/backend/src/main/java/io/dataease/provider/sqlserver/SqlserverQueryProvider.java +++ b/backend/src/main/java/io/dataease/provider/sqlserver/SqlserverQueryProvider.java @@ -7,13 +7,13 @@ import io.dataease.base.domain.Datasource; import io.dataease.base.mapper.DatasetTableFieldMapper; import io.dataease.commons.constants.DeTypeConstants; import io.dataease.controller.request.chart.ChartExtFilterRequest; +import io.dataease.datasource.dto.JdbcDTO; import io.dataease.datasource.dto.SqlServerConfigration; import io.dataease.dto.chart.ChartCustomFilterDTO; import io.dataease.dto.chart.ChartViewFieldDTO; import io.dataease.dto.sqlObj.SQLObj; import io.dataease.provider.QueryProvider; import io.dataease.provider.SQLConstants; -import io.dataease.provider.mysql.MySQLConstants; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; @@ -91,10 +91,7 @@ public class SqlserverQueryProvider extends QueryProvider { .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(SqlServerSQLConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) .build(); - if(ds != null){ - String schema = new Gson().fromJson(ds.getConfiguration(), SqlServerConfigration.class).getSchema(); - tableObj.setTableName(schema + "." + tableObj.getTableName()); - } + setSchema(tableObj,ds); List xFields = new ArrayList<>(); if (CollectionUtils.isNotEmpty(fields)) { @@ -171,11 +168,12 @@ public class SqlserverQueryProvider extends QueryProvider { } @Override - public String getSQL(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList) { + public String getSQL(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, Datasource ds) { SQLObj tableObj = SQLObj.builder() .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(SqlServerSQLConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) .build(); + setSchema(tableObj,ds); List xFields = new ArrayList<>(); List xWheres = new ArrayList<>(); List xOrders = new ArrayList<>(); @@ -263,15 +261,16 @@ public class SqlserverQueryProvider extends QueryProvider { @Override public String getSQLAsTmp(String sql, List xAxis, List yAxis, List customFilter, List extFilterRequestList) { - return getSQL("(" + sqlFix(sql) + ")", xAxis, yAxis, customFilter, extFilterRequestList); + return getSQL("(" + sqlFix(sql) + ")", xAxis, yAxis, customFilter, extFilterRequestList, null); } @Override - public String getSQLStack(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extStack) { + public String getSQLStack(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extStack, Datasource ds) { SQLObj tableObj = SQLObj.builder() .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(SqlServerSQLConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) .build(); + setSchema(tableObj,ds); List xFields = new ArrayList<>(); List xWheres = new ArrayList<>(); List xOrders = new ArrayList<>(); @@ -380,15 +379,16 @@ public class SqlserverQueryProvider extends QueryProvider { @Override public String getSQLAsTmpStack(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extStack) { - return getSQLStack("(" + sqlFix(table) + ")", xAxis, yAxis, customFilter, extFilterRequestList, extStack); + return getSQLStack("(" + sqlFix(table) + ")", xAxis, yAxis, customFilter, extFilterRequestList, extStack, null); } @Override - public String getSQLScatter(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extBubble) { + public String getSQLScatter(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extBubble, Datasource ds) { SQLObj tableObj = SQLObj.builder() - .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(MySQLConstants.KEYWORD_TABLE, table)) + .tableName((table.startsWith("(") && table.endsWith(")")) ? table : String.format(SqlServerSQLConstants.KEYWORD_TABLE, table)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) .build(); + setSchema(tableObj,ds); List xFields = new ArrayList<>(); List xWheres = new ArrayList<>(); List xOrders = new ArrayList<>(); @@ -400,9 +400,9 @@ public class SqlserverQueryProvider extends QueryProvider { // 解析origin name中有关联的字段生成sql表达式 originField = calcFieldRegex(x.getOriginName(), tableObj); } else if (ObjectUtils.isNotEmpty(x.getExtField()) && x.getExtField() == 1) { - originField = String.format(MySQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); + originField = String.format(SqlServerSQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); } else { - originField = String.format(MySQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); + originField = String.format(SqlServerSQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), x.getOriginName()); } String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_X_PREFIX, i); // 处理横轴字段 @@ -433,9 +433,9 @@ public class SqlserverQueryProvider extends QueryProvider { // 解析origin name中有关联的字段生成sql表达式 originField = calcFieldRegex(y.getOriginName(), tableObj); } else if (ObjectUtils.isNotEmpty(y.getExtField()) && y.getExtField() == 1) { - originField = String.format(MySQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName()); + originField = String.format(SqlServerSQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName()); } else { - originField = String.format(MySQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName()); + originField = String.format(SqlServerSQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), y.getOriginName()); } String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_Y_PREFIX, i); // 处理纵轴字段 @@ -483,7 +483,7 @@ public class SqlserverQueryProvider extends QueryProvider { ST st = stg.getInstanceOf("querySql"); SQLObj tableSQL = SQLObj.builder() - .tableName(String.format(MySQLConstants.BRACKETS, sql)) + .tableName(String.format(SqlServerSQLConstants.BRACKETS, sql)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 1)) .build(); if (CollectionUtils.isNotEmpty(aggWheres)) st.add("filters", aggWheres); @@ -494,7 +494,7 @@ public class SqlserverQueryProvider extends QueryProvider { @Override public String getSQLAsTmpScatter(String table, List xAxis, List yAxis, List customFilter, List extFilterRequestList, List extBubble) { - return getSQLScatter("(" + sqlFix(table) + ")", xAxis, yAxis, customFilter, extFilterRequestList, extBubble); + return getSQLScatter("(" + sqlFix(table) + ")", xAxis, yAxis, customFilter, extFilterRequestList, extBubble, null); } @Override @@ -582,23 +582,24 @@ public class SqlserverQueryProvider extends QueryProvider { } @Override - public String createRawQuerySQL(String table, List fields) { + public String createRawQuerySQL(String table, List fields, Datasource ds) { String[] array = fields.stream().map(f -> { StringBuilder stringBuilder = new StringBuilder(); -// if (f.getDeExtractType() == 4) { // 处理 tinyint -// stringBuilder.append("concat(`").append(f.getOriginName()).append("`,'') AS ").append(f.getDataeaseName()); -// } else { -// stringBuilder.append("`").append(f.getOriginName()).append("` AS ").append(f.getDataeaseName()); -// } stringBuilder.append("\"").append(f.getOriginName()).append("\" AS ").append(f.getDataeaseName()); return stringBuilder.toString(); }).toArray(String[]::new); - return MessageFormat.format("SELECT {0} FROM {1}", StringUtils.join(array, ","), table); + if(ds != null){ + String schema = new Gson().fromJson(ds.getConfiguration(), JdbcDTO.class).getSchema(); + String tableWithSchema = String.format(SqlServerSQLConstants.KEYWORD_TABLE, schema) + "." + String.format(SqlServerSQLConstants.KEYWORD_TABLE, table); + return MessageFormat.format("SELECT {0} FROM {1} ", StringUtils.join(array, ","), tableWithSchema); + }else { + return MessageFormat.format("SELECT {0} FROM {1} ", StringUtils.join(array, ","), table); + } } @Override public String createRawQuerySQLAsTmp(String sql, List fields) { - return createRawQuerySQL(" (" + sqlFix(sql) + ") AS tmp ", fields); + return createRawQuerySQL(" (" + sqlFix(sql) + ") AS tmp ", fields, null); } public String transMysqlFilterTerm(String term) { @@ -773,47 +774,6 @@ public class SqlserverQueryProvider extends QueryProvider { } } - private String transStringToDateFormat(String dateStyle, String datePattern, String originField) { - String split = "-"; - if (StringUtils.equalsIgnoreCase(datePattern, "date_sub")) { - split = "-"; - } else if (StringUtils.equalsIgnoreCase(datePattern, "date_split")) { - split = "/"; - } - switch (dateStyle) { - case "y": - return "CONVERT(varchar(100), datepart(yy, " + "SELECT CONVERT(datetime, " + originField + " ,120)" + "))"; - case "y_M": - if(split.equalsIgnoreCase("-")){ - return "substring( convert(varchar," + "SELECT CONVERT(datetime, " + originField + " ,120)" + ",120),1,7)"; - }else { - return "replace("+ "substring( convert(varchar," + "SELECT CONVERT(datetime, " + originField + " ,120)" + ",120),1,7), '-','/')"; - } - case "y_M_d": - if(split.equalsIgnoreCase("-")){ - return "CONVERT(varchar(100), " + "SELECT CONVERT(datetime, " + originField + " ,120)" + ", 23)"; - }else { - return "CONVERT(varchar(100), " + "SELECT CONVERT(datetime, " + originField + " ,120)" + ", 111)"; - } - case "H_m_s": - return "CONVERT(varchar(100), " + "SELECT CONVERT(datetime, " + originField + " ,120)" + ", 24)"; - case "y_M_d_H_m": - if(split.equalsIgnoreCase("-")){ - return "substring( convert(varchar," + "SELECT CONVERT(datetime, " + originField + " ,120)" + ",120),1,16)"; - }else { - return "replace("+ "substring( convert(varchar," + "SELECT CONVERT(datetime, " + originField + " ,120)" + ",120),1,16), '-','/')"; - } - case "y_M_d_H_m_s": - if(split.equalsIgnoreCase("-")){ - return "convert(varchar," + "SELECT CONVERT(datetime, " + originField + " ,120)" + ",120)"; - }else { - return "replace("+ "convert(varchar," + "SELECT CONVERT(datetime, " + originField + " ,120)" + ",120), '-','/')"; - } - default: - return "convert(varchar," + "SELECT CONVERT(datetime, " + originField + " ,120)" + ",120)"; - } - } - private SQLObj getXFields(ChartViewFieldDTO x, String originField, String fieldAlias) { String fieldName = ""; if (x.getDeExtractType() == DeTypeConstants.DE_TIME) { @@ -912,7 +872,7 @@ public class SqlserverQueryProvider extends QueryProvider { List calcFields = datasetTableFieldMapper.selectByExample(datasetTableFieldExample); for (DatasetTableField ele : calcFields) { originField = originField.replaceAll("\\[" + ele.getId() + "]", - String.format(MySQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), ele.getOriginName())); + String.format(SqlServerSQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), ele.getOriginName())); } return originField; } 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 cc80f9d81e..69d632ecf1 100644 --- a/backend/src/main/java/io/dataease/service/chart/ChartViewService.java +++ b/backend/src/main/java/io/dataease/service/chart/ChartViewService.java @@ -309,11 +309,11 @@ public class ChartViewService { if (StringUtils.equalsIgnoreCase("text", view.getType()) || StringUtils.equalsIgnoreCase("gauge", view.getType())) { datasourceRequest.setQuery(qp.getSQLSummary(dataTableInfoDTO.getTable(), yAxis, customFilter, extFilterList)); } else if (StringUtils.containsIgnoreCase(view.getType(), "stack")) { - datasourceRequest.setQuery(qp.getSQLStack(dataTableInfoDTO.getTable(), xAxis, yAxis, customFilter, extFilterList, extStack)); + datasourceRequest.setQuery(qp.getSQLStack(dataTableInfoDTO.getTable(), xAxis, yAxis, customFilter, extFilterList, extStack, ds)); } else if (StringUtils.containsIgnoreCase(view.getType(), "scatter")) { - datasourceRequest.setQuery(qp.getSQLScatter(dataTableInfoDTO.getTable(), xAxis, yAxis, customFilter, extFilterList, extBubble)); + datasourceRequest.setQuery(qp.getSQLScatter(dataTableInfoDTO.getTable(), xAxis, yAxis, customFilter, extFilterList, extBubble, ds)); } else { - datasourceRequest.setQuery(qp.getSQL(dataTableInfoDTO.getTable(), xAxis, yAxis, customFilter, extFilterList)); + datasourceRequest.setQuery(qp.getSQL(dataTableInfoDTO.getTable(), xAxis, yAxis, customFilter, extFilterList, ds)); } } else if (StringUtils.equalsIgnoreCase(table.getType(), "sql")) { if (StringUtils.equalsIgnoreCase("text", view.getType()) || StringUtils.equalsIgnoreCase("gauge", view.getType())) { @@ -362,11 +362,11 @@ public class ChartViewService { if (StringUtils.equalsIgnoreCase("text", view.getType()) || StringUtils.equalsIgnoreCase("gauge", view.getType())) { datasourceRequest.setQuery(qp.getSQLSummary(tableName, yAxis, customFilter, extFilterList)); } else if (StringUtils.containsIgnoreCase(view.getType(), "stack")) { - datasourceRequest.setQuery(qp.getSQLStack(tableName, xAxis, yAxis, customFilter, extFilterList, extStack)); + datasourceRequest.setQuery(qp.getSQLStack(tableName, xAxis, yAxis, customFilter, extFilterList, extStack, ds)); } else if (StringUtils.containsIgnoreCase(view.getType(), "scatter")) { - datasourceRequest.setQuery(qp.getSQLScatter(tableName, xAxis, yAxis, customFilter, extFilterList, extBubble)); + datasourceRequest.setQuery(qp.getSQLScatter(tableName, xAxis, yAxis, customFilter, extFilterList, extBubble, ds)); } else { - datasourceRequest.setQuery(qp.getSQL(tableName, xAxis, yAxis, customFilter, extFilterList)); + datasourceRequest.setQuery(qp.getSQL(tableName, xAxis, yAxis, customFilter, extFilterList, ds)); } /*// 定时抽取使用缓存 Object cache; diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java index 54f5018b93..080882493f 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -379,7 +379,6 @@ public class DataSetTableService { QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType()); datasourceRequest.setQuery(qp.createQuerySQLWithPage(table, fields, page, pageSize, realSize, false, ds)); map.put("sql", datasourceRequest.getQuery()); - System.out.println(datasourceRequest.getQuery()); try { data.addAll(datasourceProvider.getData(datasourceRequest)); } catch (Exception e) { @@ -904,9 +903,7 @@ public class DataSetTableService { datasetTableField.setDeType(transFieldType(filed.getFieldType())); datasetTableField.setDeExtractType(transFieldType(filed.getFieldType())); } else { - System.out.println(new Gson().toJson(filed)); Integer fieldType = qp.transFieldType(filed.getFieldType()); - System.out.println(fieldType); datasetTableField.setDeType(fieldType == 4 ? 2 : fieldType); datasetTableField.setDeExtractType(fieldType); } @@ -1090,8 +1087,6 @@ public class DataSetTableService { List fields = (List) fileMap.get("fields"); List newFields = fields.stream().map(TableFiled::getRemarks).collect(Collectors.toList()); List oldFields = datasetTableFields.stream().map(DatasetTableField::getOriginName).collect(Collectors.toList()); - System.out.println("oldFields: " + oldFields); - System.out.println("newFields: "+ newFields); if (!oldFields.equals(newFields)) { DataEaseException.throwException(Translator.get("i18n_excel_colume_change")); } 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 54667b4468..c2bb860bb3 100644 --- a/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java +++ b/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java @@ -437,28 +437,28 @@ public class ExtractDataService { String Column_Fields = "dataease_uuid varchar(50), `"; for (DatasetTableField datasetTableField : datasetTableFields) { Column_Fields = Column_Fields + datasetTableField.getDataeaseName() + "` "; + Integer size = datasetTableField.getSize() * 3; + if (datasetTableField.getSize() > 65533 || datasetTableField.getSize() * 3 > 65533) { + size = 65533; + } switch (datasetTableField.getDeExtractType()) { case 0: - if (datasetTableField.getSize() > 65533 || datasetTableField.getSize() * 3 > 65533) { - Column_Fields = Column_Fields + "varchar(65533)" + ",`"; - } else { - Column_Fields = Column_Fields + "varchar(lenth)".replace("lenth", String.valueOf(datasetTableField.getSize() * 3)) + ",`"; - } + Column_Fields = Column_Fields + "varchar(lenth)".replace("lenth", String.valueOf(size)) + ",`"; break; case 1: - Column_Fields = Column_Fields + "varchar(lenth)".replace("lenth", String.valueOf(datasetTableField.getSize())) + ",`"; + Column_Fields = Column_Fields + "varchar(lenth)".replace("lenth", String.valueOf(size)) + ",`"; break; case 2: - Column_Fields = Column_Fields + "bigint(lenth)".replace("lenth", String.valueOf(datasetTableField.getSize())) + ",`"; + Column_Fields = Column_Fields + "bigint(lenth)".replace("lenth", String.valueOf(size)) + ",`"; break; case 3: Column_Fields = Column_Fields + "DOUBLE" + ",`"; break; case 4: - Column_Fields = Column_Fields + "TINYINT(lenth)".replace("lenth", String.valueOf(datasetTableField.getSize())) + ",`"; + Column_Fields = Column_Fields + "TINYINT(lenth)".replace("lenth", String.valueOf(size)) + ",`"; break; default: - Column_Fields = Column_Fields + "varchar(lenth)".replace("lenth", String.valueOf(datasetTableField.getSize())) + ",`"; + Column_Fields = Column_Fields + "varchar(lenth)".replace("lenth", String.valueOf(size)) + ",`"; break; } } @@ -735,6 +735,14 @@ public class ExtractDataService { inputStep = inputStep(transMeta, selectSQL); udjcStep = udjc(datasetTableFields, DatasourceTypes.sqlServer); break; + case pg: + PgConfigration pgConfigration = new Gson().fromJson(datasource.getConfiguration(), PgConfigration.class); + dataMeta = new DatabaseMeta("db", "POSTGRESQL", "Native", pgConfigration.getHost(), pgConfigration.getDataBase(), pgConfigration.getPort().toString(), pgConfigration.getUsername(), pgConfigration.getPassword()); + transMeta.addDatabase(dataMeta); + selectSQL = getSelectSQL(extractType, datasetTable, datasource, datasetTableFields, selectSQL); + inputStep = inputStep(transMeta, selectSQL); + udjcStep = udjc(datasetTableFields, DatasourceTypes.pg); + break; case oracle: OracleConfigration oracleConfigration = new Gson().fromJson(datasource.getConfiguration(), OracleConfigration.class); if (oracleConfigration.getConnectionType().equalsIgnoreCase("serviceName")) { @@ -795,7 +803,7 @@ public class ExtractDataService { if (extractType.equalsIgnoreCase("all_scope") && datasetTable.getType().equalsIgnoreCase("db")) { String tableName = new Gson().fromJson(datasetTable.getInfo(), DataTableInfoDTO.class).getTable(); QueryProvider qp = ProviderFactory.getQueryProvider(datasource.getType()); - selectSQL = qp.createRawQuerySQL(tableName, datasetTableFields); + selectSQL = qp.createRawQuerySQL(tableName, datasetTableFields, datasource); } if (extractType.equalsIgnoreCase("all_scope") && datasetTable.getType().equalsIgnoreCase("sql")) { @@ -879,12 +887,18 @@ public class ExtractDataService { outputFields[datasetTableFields.size()] = textFileField; textFileOutputMeta.setOutputFields(outputFields); - }else if (datasource.getType().equalsIgnoreCase(DatasourceTypes.sqlServer.name())){ + }else if (datasource.getType().equalsIgnoreCase(DatasourceTypes.sqlServer.name()) || datasource.getType().equalsIgnoreCase(DatasourceTypes.pg.name())){ TextFileField[] outputFields = new TextFileField[datasetTableFields.size() + 1]; for(int i=0;i< datasetTableFields.size();i++){ TextFileField textFileField = new TextFileField(); textFileField.setName(datasetTableFields.get(i).getDataeaseName()); - textFileField.setType("String"); + if (datasetTableFields.get(i).getDeExtractType() == 1) { + textFileField.setType("String"); + textFileField.setFormat("yyyy-MM-dd HH:mm:ss"); + } else { + textFileField.setType("String"); + } + outputFields[i] = textFileField; } TextFileField textFileField = new TextFileField(); @@ -930,15 +944,12 @@ public class ExtractDataService { } if (datasourceType.equals(DatasourceTypes.excel)) { - System.out.println(Column_Fields); tmp_code = tmp_code.replace("handleExcelIntColumn", handleExcelIntColumn).replace("Column_Fields", Column_Fields); } else { tmp_code = tmp_code.replace("handleExcelIntColumn", "").replace("Column_Fields", Column_Fields); } tmp_code = tmp_code.replace("handleBinaryType", handleBinaryTypeCode); - - System.out.println(tmp_code); UserDefinedJavaClassDef userDefinedJavaClassDef = new UserDefinedJavaClassDef(UserDefinedJavaClassDef.ClassType.TRANSFORM_CLASS, "Processor", tmp_code); userDefinedJavaClassDef.setActive(true); diff --git a/frontend/src/views/system/datasource/DsTree.vue b/frontend/src/views/system/datasource/DsTree.vue index 6b4e026daa..ae60457ecb 100644 --- a/frontend/src/views/system/datasource/DsTree.vue +++ b/frontend/src/views/system/datasource/DsTree.vue @@ -156,6 +156,8 @@ export default { return 'SQL Server' } else if (type === 'oracle') { return 'Oracle' + }else if (type === 'pg') { + return 'PostgreSQL' } }, diff --git a/frontend/src/views/system/datasource/form.vue b/frontend/src/views/system/datasource/form.vue index a35918376e..1916bbe5a5 100644 --- a/frontend/src/views/system/datasource/form.vue +++ b/frontend/src/views/system/datasource/form.vue @@ -63,23 +63,6 @@ - - - - - - - - - - - - - - - - -