From 0f906acbadfca29f6501e6bc3a9e05ef58c39c7f Mon Sep 17 00:00:00 2001 From: taojinlong Date: Thu, 22 Sep 2022 16:33:01 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E6=95=B0=E6=8D=AE=E9=9B=86):=20=E6=8A=BD?= =?UTF-8?q?=E5=8F=96=E6=95=B0=E6=8D=AE=E7=B2=BE=E5=BA=A6=E4=B8=A2=E5=A4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/dataease/provider/datasource/JdbcProvider.java | 3 +++ .../io/dataease/provider/engine/doris/DorisDDLProvider.java | 6 +++++- .../io/dataease/service/dataset/DataSetTableService.java | 2 ++ backend/src/main/resources/db/migration/V40__1.15.sql | 2 ++ 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java b/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java index df26854263..8b9dfc825c 100644 --- a/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java +++ b/backend/src/main/java/io/dataease/provider/datasource/JdbcProvider.java @@ -173,6 +173,9 @@ public class JdbcProvider extends DefaultJdbcProvider { } } } + if(StringUtils.isNotEmpty(tableField.getFieldType()) && tableField.getFieldType().equalsIgnoreCase("DECIMAL")){ + tableField.setAccuracy(Integer.valueOf(resultSet.getString("DECIMAL_DIGITS"))); + } return tableField; } diff --git a/backend/src/main/java/io/dataease/provider/engine/doris/DorisDDLProvider.java b/backend/src/main/java/io/dataease/provider/engine/doris/DorisDDLProvider.java index bae7ae9fba..374fa8460f 100644 --- a/backend/src/main/java/io/dataease/provider/engine/doris/DorisDDLProvider.java +++ b/backend/src/main/java/io/dataease/provider/engine/doris/DorisDDLProvider.java @@ -72,7 +72,11 @@ public class DorisDDLProvider extends DDLProviderImpl { Column_Fields.append("bigint").append(",`"); break; case 3: - Column_Fields.append("DOUBLE").append(",`"); + if(datasetTableField.getType().equalsIgnoreCase("DECIMAL") && datasetTableField.getAccuracy() != 0){ + Column_Fields.append("DECIMAL(" + datasetTableField.getSize() + "," + datasetTableField.getAccuracy() + ")").append(",`"); + }else { + Column_Fields.append("DOUBLE").append(",`"); + } break; case 4: Column_Fields.append("TINYINT(length)".replace("length", String.valueOf(size))).append(",`"); 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 7835eada20..0c2a697b5e 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -1947,6 +1947,7 @@ public class DataSetTableService { datasetTableField.setOriginName(filed.getFieldName()); datasetTableField.setType(filed.getFieldType()); datasetTableField.setSize(filed.getFieldSize()); + datasetTableField.setAccuracy(filed.getAccuracy()); if (ObjectUtils.isEmpty(ds)) { datasetTableField.setDeExtractType(transFieldType(filed.getFieldType())); } else { @@ -1972,6 +1973,7 @@ public class DataSetTableService { datasetTableField.setDeExtractType(fieldType); } datasetTableField.setSize(filed.getFieldSize()); + datasetTableField.setAccuracy(filed.getAccuracy()); datasetTableField.setChecked(true); datasetTableField.setLastSyncTime(syncTime); datasetTableField.setExtField(0); diff --git a/backend/src/main/resources/db/migration/V40__1.15.sql b/backend/src/main/resources/db/migration/V40__1.15.sql index b4b31501c6..1a51328486 100644 --- a/backend/src/main/resources/db/migration/V40__1.15.sql +++ b/backend/src/main/resources/db/migration/V40__1.15.sql @@ -121,3 +121,5 @@ ALTER TABLE `sys_user_assist` ADD COLUMN `dingtalk_id` varchar(255) NULL COMMENT '钉钉账号' AFTER `wecom_id`, ADD COLUMN `lark_id` varchar(255) NULL COMMENT '飞书账号' AFTER `dingtalk_id`; + +ALTER TABLE `dataset_table_field` ADD COLUMN `accuracy` INT(11) NULL DEFAULT 0 COMMENT '精度' AFTER `last_sync_time`;