forked from github/dataease
commit
3f2ab03880
@ -56,11 +56,7 @@ public class MysqlDDLProvider extends DDLProviderImpl {
|
||||
Integer size = datasetTableField.getSize() * 4;
|
||||
switch (datasetTableField.getDeExtractType()) {
|
||||
case 0:
|
||||
if (size < 65533) {
|
||||
Column_Fields.append("varchar(length)".replace("length", String.valueOf(datasetTableField.getSize()))).append(",`");
|
||||
}else {
|
||||
Column_Fields.append("longtext").append(",`");
|
||||
}
|
||||
Column_Fields.append("longtext").append(",`");
|
||||
break;
|
||||
case 1:
|
||||
size = size < 50? 50 : size;
|
||||
|
@ -71,6 +71,8 @@ import java.math.RoundingMode;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.locks.ReentrantLock;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@ -1795,8 +1797,7 @@ public class ChartViewService {
|
||||
}
|
||||
|
||||
private String handleVariable(String sql, ChartExtRequest requestList, QueryProvider qp, DataSetTableDTO table, Datasource ds) throws Exception {
|
||||
List<SqlVariableDetails> sqlVariables = new Gson().fromJson(table.getSqlVariableDetails(), new TypeToken<List<SqlVariableDetails>>() {
|
||||
}.getType());
|
||||
List<SqlVariableDetails> sqlVariables = new Gson().fromJson(table.getSqlVariableDetails(), new TypeToken<List<SqlVariableDetails>>() {}.getType());
|
||||
if (requestList != null && CollectionUtils.isNotEmpty(requestList.getFilter())) {
|
||||
for (ChartExtFilterRequest chartExtFilterRequest : requestList.getFilter()) {
|
||||
if (CollectionUtils.isEmpty(chartExtFilterRequest.getValue())) {
|
||||
@ -1845,7 +1846,7 @@ public class ChartViewService {
|
||||
}
|
||||
}
|
||||
}
|
||||
sql = dataSetTableService.removeVariables(sql, ds.getType());
|
||||
sql = dataSetTableService.handleVariableDefaultValue(sql, table.getSqlVariableDetails(), ds.getType());
|
||||
return sql;
|
||||
}
|
||||
|
||||
|
@ -123,7 +123,6 @@ public class ViewPluginBaseServiceImpl implements ViewPluginBaseService {
|
||||
case SQL:
|
||||
String sql = dataTableInfoDTO.isBase64Encryption() ? new String(java.util.Base64.getDecoder().decode(dataTableInfoDTO.getSql())) : dataTableInfoDTO.getSql();
|
||||
tableName = dataSetTableService.handleVariableDefaultValue(sql, null, pluginViewSet.getDsType());
|
||||
|
||||
tableName = "(" + sqlFix(tableName) + ")";
|
||||
break;
|
||||
case CUSTOM:
|
||||
|
@ -144,7 +144,7 @@ public class DataSetTableService {
|
||||
private static boolean isUpdatingDatasetTableStatus = false;
|
||||
private static final String lastUpdateTime = "${__last_update_time__}";
|
||||
private static final String currentUpdateTime = "${__current_update_time__}";
|
||||
private static final String regex = "\\$\\{(.*?)\\}";
|
||||
public static final String regex = "\\$\\{(.*?)\\}";
|
||||
private static final String SubstitutedParams = "DATAEASE_PATAMS_BI";
|
||||
private static final String SubstitutedSql = " 'BI' = 'BI' ";
|
||||
|
||||
@ -701,7 +701,7 @@ public class DataSetTableService {
|
||||
datasourceRequest.setDatasource(ds);
|
||||
DataTableInfoDTO dataTableInfo = new Gson().fromJson(datasetTable.getInfo(), DataTableInfoDTO.class);
|
||||
String sql = dataTableInfo.isBase64Encryption() ? new String(java.util.Base64.getDecoder().decode(dataTableInfo.getSql())) : dataTableInfo.getSql();
|
||||
sql = handleVariableDefaultValue(sql, null, ds.getType());
|
||||
sql = handleVariableDefaultValue(sql, datasetTable.getSqlVariableDetails(), ds.getType());
|
||||
QueryProvider qp = ProviderFactory.getQueryProvider(ds.getType());
|
||||
datasourceRequest.setQuery(
|
||||
qp.createQuerySQLWithPage(sql, fields, page, pageSize, realSize, false, null, rowPermissionsTree));
|
||||
@ -1058,15 +1058,15 @@ public class DataSetTableService {
|
||||
Matcher matcher = pattern.matcher(sql);
|
||||
while (matcher.find()) {
|
||||
SqlVariableDetails defaultsSqlVariableDetail = null;
|
||||
List<SqlVariableDetails> defaultsSqlVariableDetails = new Gson().fromJson(sqlVariableDetails, new TypeToken<List<SqlVariableDetails>>() {
|
||||
}.getType());
|
||||
List<SqlVariableDetails> defaultsSqlVariableDetails = new Gson().fromJson(sqlVariableDetails, new TypeToken<List<SqlVariableDetails>>() {}.getType());
|
||||
for (SqlVariableDetails sqlVariableDetail : defaultsSqlVariableDetails) {
|
||||
if (matcher.group().substring(2, matcher.group().length() - 1).equalsIgnoreCase(sqlVariableDetail.getVariableName())) {
|
||||
defaultsSqlVariableDetail = sqlVariableDetail;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (defaultsSqlVariableDetail != null && StringUtils.isNotEmpty(defaultsSqlVariableDetail.getDefaultValue())) {
|
||||
if (defaultsSqlVariableDetail != null && defaultsSqlVariableDetail.getDefaultValueScope() != null &&
|
||||
defaultsSqlVariableDetail.getDefaultValueScope().equals(SqlVariableDetails.DefaultValueScope.ALLSCOPE) && StringUtils.isNotEmpty(defaultsSqlVariableDetail.getDefaultValue())) {
|
||||
sql = sql.replace(matcher.group(), defaultsSqlVariableDetail.getDefaultValue());
|
||||
}
|
||||
}
|
||||
|
@ -70,6 +70,7 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.*;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@ -741,6 +742,33 @@ public class ExtractDataService {
|
||||
totalSheets = excelXlsxReader.totalSheets;
|
||||
}
|
||||
|
||||
if (StringUtils.equalsIgnoreCase(suffix, "csv")) {
|
||||
List<TableField> fields = new ArrayList<>();
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(excelSheetData.getPath()), StandardCharsets.UTF_8));
|
||||
String s = reader.readLine();// first line
|
||||
String[] split = s.split(",");
|
||||
for (String s1 : split) {
|
||||
TableField tableFiled = new TableField();
|
||||
tableFiled.setFieldName(s1);
|
||||
tableFiled.setRemarks(s1);
|
||||
tableFiled.setFieldType("TEXT");
|
||||
fields.add(tableFiled);
|
||||
}
|
||||
List<List<String>> csvData = new ArrayList<>();
|
||||
String line;
|
||||
while ((line = reader.readLine()) != null) {
|
||||
csvData.add(Arrays.asList(line.split(",")));
|
||||
}
|
||||
ExcelSheetData csvSheetData = new ExcelSheetData();
|
||||
String[] fieldArray = fields.stream().map(TableField::getFieldName).toArray(String[]::new);
|
||||
csvSheetData.setFields(fields);
|
||||
csvSheetData.setData(csvData);
|
||||
csvSheetData.setExcelLabel(excelSheetData.getExcelLabel());
|
||||
csvSheetData.setFieldsMd5(Md5Utils.md5(StringUtils.join(fieldArray, ",")));
|
||||
totalSheets = Arrays.asList(csvSheetData);
|
||||
}
|
||||
|
||||
|
||||
for (ExcelSheetData sheet : totalSheets) {
|
||||
if (sheet.getExcelLabel().equalsIgnoreCase(excelSheetData.getExcelLabel())) {
|
||||
for (List<String> dataItem : sheet.getData()) {
|
||||
|
@ -171,7 +171,7 @@ public class DirectFieldService implements DataSetFieldService {
|
||||
if (dataTableInfoDTO.isBase64Encryption()) {
|
||||
sql = new String(java.util.Base64.getDecoder().decode(sql));
|
||||
}
|
||||
sql = dataSetTableService.removeVariables(sql, ds.getType());
|
||||
sql = dataSetTableService.handleVariableDefaultValue(sql, datasetTable.getSqlVariableDetails(), ds.getType());
|
||||
datasourceRequest.setQuery(qp.createQuerySQLAsTmp(sql, permissionFields, !needSort, customFilter, rowPermissionsTree, deSortFields));
|
||||
} else if (StringUtils.equalsIgnoreCase(datasetTable.getType(), DatasetType.CUSTOM.toString())) {
|
||||
DataTableInfoDTO dt = new Gson().fromJson(datasetTable.getInfo(), DataTableInfoDTO.class);
|
||||
|
@ -1519,6 +1519,8 @@ export default {
|
||||
p_center: 'Center'
|
||||
},
|
||||
dataset: {
|
||||
scope_edit: 'Effective only when editing',
|
||||
scope_all: 'Global effective',
|
||||
spend_time: 'Spend',
|
||||
sql: 'SQL',
|
||||
sql_result: 'Result',
|
||||
|
@ -1513,6 +1513,8 @@ export default {
|
||||
p_center: '居中'
|
||||
},
|
||||
dataset: {
|
||||
scope_edit: '僅編輯時生效',
|
||||
scope_all: '全域生效',
|
||||
spend_time: '耗時',
|
||||
sql: 'SQL 語句',
|
||||
sql_result: '運行結果',
|
||||
|
@ -1512,6 +1512,8 @@ export default {
|
||||
p_center: '居中'
|
||||
},
|
||||
dataset: {
|
||||
scope_edit: '仅编辑时生效',
|
||||
scope_all: '全局生效',
|
||||
spend_time: '耗时',
|
||||
sql: 'SQL 语句',
|
||||
sql_result: '运行结果',
|
||||
|
@ -478,8 +478,21 @@
|
||||
v-model="scope.row.defaultValue"
|
||||
size="small"
|
||||
type="text"
|
||||
:placeholder="$t('fu.search_bar.please_input')"
|
||||
/>
|
||||
:placeholder="$t('fu.search_bar.please_input')">
|
||||
<el-select
|
||||
slot="prepend"
|
||||
v-model="scope.row.defaultValueScope"
|
||||
style="width: 100px"
|
||||
size="small"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in defaultValueScopeList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-input>
|
||||
<el-input
|
||||
v-if="
|
||||
scope.row.type[0] === 'LONG' ||
|
||||
@ -489,7 +502,21 @@
|
||||
size="small"
|
||||
:placeholder="$t('fu.search_bar.please_input')"
|
||||
type="number"
|
||||
/>
|
||||
>
|
||||
<el-select
|
||||
slot="prepend"
|
||||
v-model="scope.row.defaultValueScope"
|
||||
style="width: 100px"
|
||||
size="small"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in defaultValueScopeList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-input>
|
||||
|
||||
<el-date-picker
|
||||
v-if="scope.row.type[0] === 'DATETIME-YEAR'"
|
||||
@ -498,7 +525,21 @@
|
||||
size="small"
|
||||
value-format="yyyy"
|
||||
:placeholder="$t('dataset.select_year')"
|
||||
/>
|
||||
>
|
||||
<el-select
|
||||
slot="prepend"
|
||||
v-model="scope.row.defaultValueScope"
|
||||
style="width: 100px"
|
||||
size="small"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in defaultValueScopeList"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-date-picker>
|
||||
|
||||
<el-date-picker
|
||||
v-if="scope.row.type[0] === 'DATETIME-YEAR-MONTH'"
|
||||
@ -653,6 +694,9 @@ export default {
|
||||
dialogTitle: '',
|
||||
variables: [],
|
||||
variablesTmp: [],
|
||||
defaultValueScopeList: [
|
||||
{ label: this.$t('dataset.scope_edit'), value: 'EDIT' },
|
||||
{ label: this.$t('dataset.scope_all'), value: 'ALLSCOPE' }],
|
||||
fieldOptions: [
|
||||
{ label: this.$t('dataset.text'), value: 'TEXT' },
|
||||
{ label: this.$t('dataset.value'), value: 'LONG' },
|
||||
@ -1038,6 +1082,9 @@ export default {
|
||||
for (let i = 0; i < this.variables.length; i++) {
|
||||
if (this.variables[i].variableName === name) {
|
||||
obj = this.variables[i]
|
||||
if(!obj.hasOwnProperty("defaultValueScope")){
|
||||
obj.defaultValueScope = 'EDIT'
|
||||
}
|
||||
}
|
||||
}
|
||||
if (obj === undefined) {
|
||||
@ -1047,7 +1094,8 @@ export default {
|
||||
type: [],
|
||||
required: false,
|
||||
defaultValue: '',
|
||||
details: ''
|
||||
details: '',
|
||||
defaultValueScope: 'EDIT'
|
||||
}
|
||||
obj.type.push('TEXT')
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user