diff --git a/core/backend/src/main/java/io/dataease/commons/utils/ExcelXlsReader.java b/core/backend/src/main/java/io/dataease/commons/utils/ExcelXlsReader.java index 862a399f19..089c0dc378 100644 --- a/core/backend/src/main/java/io/dataease/commons/utils/ExcelXlsReader.java +++ b/core/backend/src/main/java/io/dataease/commons/utils/ExcelXlsReader.java @@ -331,6 +331,11 @@ public class ExcelXlsReader implements HSSFListener { if (flag && curRow != 0) { //该行不为空行且该行不是第一行,发送(第一行为列名,不需要) if (!totalSheets.stream().map(ExcelSheetData::getExcelLabel).collect(Collectors.toList()).contains(sheetName)) { + if(cellList.size() < fields.size()){ + for (int i = 0; i < fields.size() - cellList.size(); i++) { + cellList.add(""); + } + } ExcelSheetData excelSheetData = new ExcelSheetData(); excelSheetData.setData(new ArrayList<>(data)); excelSheetData.setExcelLabel(sheetName); diff --git a/core/backend/src/main/java/io/dataease/provider/engine/doris/DorisDDLProvider.java b/core/backend/src/main/java/io/dataease/provider/engine/doris/DorisDDLProvider.java index 2fa7fd4add..79378adcc3 100644 --- a/core/backend/src/main/java/io/dataease/provider/engine/doris/DorisDDLProvider.java +++ b/core/backend/src/main/java/io/dataease/provider/engine/doris/DorisDDLProvider.java @@ -66,7 +66,7 @@ public class DorisDDLProvider extends DDLProviderImpl { sql = sql.replace("`UNIQUE_KEY`", "`" + String.join("`, `", keys) + "`") .replace("DISTRIBUTED_BY_HASH", keys.get(0)).replace("Column_Fields", createDorisTableColumnSql(datasetTableFields, version, keys)); } else { - if(!datasetTableFields.stream().map(DatasetTableField::getDataeaseName).collect(Collectors.toList()).contains("dataease_uuid")){ + if (!datasetTableFields.stream().map(DatasetTableField::getDataeaseName).collect(Collectors.toList()).contains("dataease_uuid")) { List tempList = new ArrayList<>(); DatasetTableField datasetTableField = new DatasetTableField(); datasetTableField.setDeExtractType(0); @@ -80,7 +80,7 @@ public class DorisDDLProvider extends DDLProviderImpl { tempList.add(datasetTableFields.get(i)); } sql = sql.replace("UNIQUE_KEY", "dataease_uuid").replace("DISTRIBUTED_BY_HASH", "dataease_uuid").replace("Column_Fields", createDorisTableColumnSql(tempList, version, null)); - }else { + } else { sql = sql.replace("UNIQUE_KEY", "dataease_uuid").replace("DISTRIBUTED_BY_HASH", "dataease_uuid").replace("Column_Fields", createDorisTableColumnSql(datasetTableFields, version, null)); } @@ -114,7 +114,8 @@ public class DorisDDLProvider extends DDLProviderImpl { case 3: if (datasetTableField.getType().equalsIgnoreCase("DECIMAL") && datasetTableField.getAccuracy() != 0) { if (Integer.valueOf(version.split("5.7.")[1]) < 99) { - Column_Fields.append("DECIMAL(" + datasetTableField.getSize() + "," + datasetTableField.getAccuracy() + ")").append(",`"); + Integer p = datasetTableField.getAccuracy() > 9 ? 9 : datasetTableField.getAccuracy(); + Column_Fields.append("DECIMAL(" + datasetTableField.getSize() + "," + p + ")").append(",`"); } else { Column_Fields.append("DecimalV3(" + datasetTableField.getSize() + "," + datasetTableField.getAccuracy() + ")").append(",`"); } diff --git a/core/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlDDLProvider.java b/core/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlDDLProvider.java index 67f6111b91..61790adbf3 100644 --- a/core/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlDDLProvider.java +++ b/core/backend/src/main/java/io/dataease/provider/engine/mysql/MysqlDDLProvider.java @@ -78,7 +78,7 @@ public class MysqlDDLProvider extends DDLProviderImpl { } private String createDorisTableColumnSql(final List datasetTableFields) { - StringBuilder Column_Fields = new StringBuilder("`"); + StringBuilder Column_Fields = new StringBuilder("dataease_uuid varchar(50), `"); for (DatasetTableField datasetTableField : datasetTableFields) { Column_Fields.append(datasetTableField.getDataeaseName()).append("` "); Integer size = datasetTableField.getSize() * 4; diff --git a/core/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/core/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java index 1cb70a0468..4e66473900 100644 --- a/core/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/core/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -189,9 +189,9 @@ public class DataSetTableService { } else { dt.getKeys().remove(datasetTableField.getOriginName()); } - if(CollectionUtils.isNotEmpty(dt.getKeys())){ + if (CollectionUtils.isNotEmpty(dt.getKeys())) { dt.setSetKey(true); - }else { + } else { dt.setSetKey(false); } DatasetTable record = new DatasetTable(); @@ -1304,10 +1304,10 @@ public class DataSetTableService { String[] fieldArray = fields.stream().map(TableField::getFieldName).toArray(String[]::new); checkIsRepeat(fieldArray); - if(!realData && dataTableInfo.isSetKey()){ + if (!realData && dataTableInfo.isSetKey()) { for (String key : dataTableInfo.getKeys()) { - if(!fields.stream().map(TableField::getFieldName).collect(Collectors.toList()).contains(key)){ - DataEaseException.throwException(Translator.get("i18n_dont_contian_key") + "" + key); + if (!fields.stream().map(TableField::getFieldName).collect(Collectors.toList()).contains(key)) { + DataEaseException.throwException(Translator.get("i18n_dont_contain_key") + key); } } } diff --git a/core/backend/src/main/resources/i18n/messages_en_US.properties b/core/backend/src/main/resources/i18n/messages_en_US.properties index 196ee46c32..7648cb59c8 100644 --- a/core/backend/src/main/resources/i18n/messages_en_US.properties +++ b/core/backend/src/main/resources/i18n/messages_en_US.properties @@ -94,7 +94,7 @@ i18n_sql_delete_not_matching=The data column of incremental delete SQL does not i18n_cst_ds_tb_or_field_deleted=Custom dataset union data is deleted or field changed,can not display i18n_no_all_delete_privilege_folder=This folder have sources which have no manage or view privilege,Can Not Be Deleted. i18n_excel_field_repeat=Duplicate fields exist: -i18n_dont_contian_key=The current SQL doesn't include this key: +i18n_dont_contain_key=The current SQL doesn't include this key: i18n_schema_is_empty=Database schema is empty \u7AD9\u5185\u6D88\u606F=Messages Center \u6240\u6709\u6D88\u606F=All Messages diff --git a/core/backend/src/main/resources/i18n/messages_zh_CN.properties b/core/backend/src/main/resources/i18n/messages_zh_CN.properties index 2499fef047..5a01acb2cf 100644 --- a/core/backend/src/main/resources/i18n/messages_zh_CN.properties +++ b/core/backend/src/main/resources/i18n/messages_zh_CN.properties @@ -94,7 +94,7 @@ i18n_sql_delete_not_matching=\u589E\u91CF\u5220\u9664 SQL \u7684\u6570\u636E\u52 i18n_cst_ds_tb_or_field_deleted=\u81EA\u5B9A\u4E49\u6570\u636E\u96C6\u6240\u5173\u8054\u6570\u636E\u88AB\u5220\u9664\u6216\u5B57\u6BB5\u53D1\u751F\u53D8\u5316\uFF0C\u65E0\u6CD5\u6B63\u5E38\u663E\u793A i18n_no_all_delete_privilege_folder=\u8BE5\u76EE\u5F55\u4E0B\u5B58\u5728\u6CA1\u6709\u7BA1\u7406\u6743\u9650\u6216\u67E5\u770B\u6743\u9650\u7684\u8D44\u6E90\uFF0C\u65E0\u6CD5\u5220\u9664 i18n_excel_field_repeat=\u5B58\u5728\u91CD\u590D\u5B57\u6BB5\uFF1A -i18n_dont_contian_key=\u5f53\u524d\u7684sql\u4e0d\u5305\u542b\u8fd9\u4e2a\u952e\uff1a +i18n_dont_contain_key=\u5f53\u524d\u7684sql\u4e0d\u5305\u542b\u8fd9\u4e2a\u952e\uff1a i18n_schema_is_empty=\u6570\u636E\u5E93 Schema \u4E3A\u7A7A \u7AD9\u5185\u6D88\u606F=\u6D88\u606F\u4E2D\u5FC3 \u6240\u6709\u6D88\u606F=\u6240\u6709\u6D88\u606F diff --git a/core/backend/src/main/resources/i18n/messages_zh_TW.properties b/core/backend/src/main/resources/i18n/messages_zh_TW.properties index 0bba9d6de4..07f7382d4d 100644 --- a/core/backend/src/main/resources/i18n/messages_zh_TW.properties +++ b/core/backend/src/main/resources/i18n/messages_zh_TW.properties @@ -94,7 +94,7 @@ i18n_sql_delete_not_matching=\u589E\u91CF\u522A\u9664 sql \u7684\u6578\u64DA\u52 i18n_cst_ds_tb_or_field_deleted=\u81EA\u5B9A\u7FA9\u6578\u64DA\u96C6\u6240\u95DC\u806F\u6578\u64DA\u88AB\u522A\u9664\u6216\u5B57\u6BB5\u767C\u751F\u8B8A\u5316\uFF0C\u7121\u6CD5\u6B63\u5E38\u986F\u793A i18n_no_all_delete_privilege_folder=\u8A72\u76EE\u9304\u4E0B\u5B58\u5728\u6C92\u6709\u7BA1\u7406\u6B0A\u9650\u6216\u67E5\u770B\u6B0A\u9650\u7684\u8CC7\u6E90\uFF0C\u7121\u6CD5\u522A\u9664 i18n_excel_field_repeat=\u5B58\u5728\u91CD\u5FA9\u5B57\u6BB5\uFF1A -i18n_dont_contian_key=\u7576\u524d\u7684sql\u4e0d\u5305\u542b\u9019\u500b\u9375\uff1a +i18n_dont_contain_key=\u7576\u524d\u7684sql\u4e0d\u5305\u542b\u9019\u500b\u9375\uff1a i18n_schema_is_empty=\u6578\u64DA\u5EAB Schema \u70BA\u7A7A \u7AD9\u5185\u6D88\u606F=\u6D88\u606F\u4E2D\u5FC3 \u6240\u6709\u6D88\u606F=\u6240\u6709\u6D88\u606F diff --git a/core/frontend/src/views/dataset/add/AddSQL.vue b/core/frontend/src/views/dataset/add/AddSQL.vue index 6c91d75b69..22eb2b493c 100644 --- a/core/frontend/src/views/dataset/add/AddSQL.vue +++ b/core/frontend/src/views/dataset/add/AddSQL.vue @@ -966,6 +966,10 @@ export default { table.info.replace(/\n/g, '\\n').replace(/\r/g, '\\r') ).sql } + if(JSON.parse(table.info).hasOwnProperty("setKey")){ + this.param.setKey = JSON.parse(table.info).setKey + this.param.keys = JSON.parse(table.info).keys + } this.variables = JSON.parse(table.sqlVariableDetails) }).finally(() => { this.$emit('setSaveDisabled', false) diff --git a/core/frontend/src/views/dataset/data/FieldEdit.vue b/core/frontend/src/views/dataset/data/FieldEdit.vue index 042fe5c6eb..177d662385 100644 --- a/core/frontend/src/views/dataset/data/FieldEdit.vue +++ b/core/frontend/src/views/dataset/data/FieldEdit.vue @@ -231,7 +231,7 @@ v-if="table.mode === 1 && (table.type === 'db' || table.type === 'sql')" >