Merge remote-tracking branch 'origin/main' into main

This commit is contained in:
wangjiahao 2021-06-02 16:46:53 +08:00
commit 1255d33d35
8 changed files with 69 additions and 61 deletions

View File

@ -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");

View File

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

View File

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

View File

@ -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;
}

View File

@ -228,11 +228,11 @@ i18n_auth_manage=Manage
i18n_auth_grant=Grant
i18n_template_system=System Template
i18n_template_self=Self Template
i18n_name_cant_repeat_same_group=Name is already exists in the same group
i18n_name_cant_repeat_same_group=Name is already used in the same group
i18n_chart_count=Count*
i18n_excel_have_merge_region=Excel has merged region
i18n_cron_expression_error=Cron expression error
i18n_same_folder_can_not_repeat=Same Folder Can Not Repeat
i18n_same_folder_can_not_repeat=Name is already used in the same folder
i18n_default_panel=Default Dashboard
i18n_panel_list=Dashboard
i18n_processing_data=Processing data now, Refresh later

View File

@ -230,11 +230,11 @@ i18n_auth_manage=管理
i18n_auth_grant=授权
i18n_template_system=系统模板
i18n_template_self=用户模板
i18n_name_cant_repeat_same_group=同一分组下名称不能重复
i18n_name_cant_repeat_same_group=同一分组下该名称已被使用
i18n_chart_count=记录数*
i18n_excel_have_merge_region=Excel 存在合并单元格
i18n_cron_expression_error=Cron 表达式校验错误
i18n_same_folder_can_not_repeat=相同的目录下名称不能重复
i18n_same_folder_can_not_repeat=同一目录下该名称已被使用
i18n_default_panel=默认仪表板
i18n_panel_list=仪表板
i18n_processing_data=正在处理数据,稍后刷新

View File

@ -230,11 +230,11 @@ i18n_auth_manage=管理
i18n_auth_grant=授權
i18n_template_system=系統模板
i18n_template_self=用戶模板
i18n_name_cant_repeat_same_group=同一分組下名稱不能重復
i18n_name_cant_repeat_same_group=同一分組下該名稱已被使用
i18n_chart_count=記錄數*
i18n_excel_have_merge_region=Excel存在合並單元格
i18n_cron_expression_error=Cron表達式校驗錯誤
i18n_same_folder_can_not_repeat=相同的目錄下名稱不能重復
i18n_same_folder_can_not_repeat=同一目錄下該名稱已被使用
i18n_default_panel=默認儀表板
i18n_panel_list=儀表板
i18n_processing_data=正在處理數據,稍後刷新

View File

@ -309,8 +309,16 @@ export default {
methods: {
sortChange({ column, prop, order }) {
this.orderConditions = []
if (!order) {
this.search(this.last_condition)
return
}
if (prop === 'dept') {
prop = 'deptId'
prop = 'u.deptId'
}
if (prop === 'status') {
prop = 'u.enabled'
}
this.orderConditions = []
addOrder({ field: prop, value: order }, this.orderConditions)