From 0f906acbadfca29f6501e6bc3a9e05ef58c39c7f Mon Sep 17 00:00:00 2001 From: taojinlong Date: Thu, 22 Sep 2022 16:33:01 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix(=E6=95=B0=E6=8D=AE=E9=9B=86):=20?= =?UTF-8?q?=E6=8A=BD=E5=8F=96=E6=95=B0=E6=8D=AE=E7=B2=BE=E5=BA=A6=E4=B8=A2?= =?UTF-8?q?=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`; From 2f18c6d8a6c4b3917294bf253d47ecabaf4f1301 Mon Sep 17 00:00:00 2001 From: taojinlong Date: Mon, 26 Sep 2022 10:42:25 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix(=E6=95=B0=E6=8D=AE=E9=9B=86):=20?= =?UTF-8?q?=E6=8B=BC=E5=86=99=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/dataease/commons/utils/TableUtils.java | 4 +- .../service/dataset/DataSetTableService.java | 60 +++++++++---------- .../service/dataset/ExtractDataService.java | 16 ++--- .../impl/direct/DirectFieldService.java | 12 ++-- 4 files changed, 46 insertions(+), 46 deletions(-) diff --git a/backend/src/main/java/io/dataease/commons/utils/TableUtils.java b/backend/src/main/java/io/dataease/commons/utils/TableUtils.java index b2bdfafb2b..24ee83e270 100644 --- a/backend/src/main/java/io/dataease/commons/utils/TableUtils.java +++ b/backend/src/main/java/io/dataease/commons/utils/TableUtils.java @@ -26,7 +26,7 @@ public class TableUtils { return "f_" + Md5Utils.md5(dorisName).substring(8, 24); } - public static String columnName(String filedName) { - return "C_" + Md5Utils.md5(filedName); + public static String columnName(String fieldName) { + return "C_" + Md5Utils.md5(fieldName); } } 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 0c2a697b5e..0cb6ba19b0 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -1763,16 +1763,16 @@ public class DataSetTableService { List datasetTableFields = new ArrayList<>(); if (CollectionUtils.isNotEmpty(fields)) { for (int i = 0; i < fields.size(); i++) { - TableField filed = fields.get(i); + TableField field = fields.get(i); DatasetTableField datasetTableField = DatasetTableField.builder().build(); datasetTableField.setTableId(datasetTableId); - datasetTableField.setOriginName(filed.getFieldName()); - datasetTableField.setName(filed.getRemarks()); - datasetTableField.setDataeaseName(TableUtils.columnName(filed.getFieldName())); - datasetTableField.setType(filed.getFieldType()); - datasetTableField.setDeType(transFieldType(filed.getFieldType())); - datasetTableField.setDeExtractType(transFieldType(filed.getFieldType())); - datasetTableField.setSize(filed.getFieldSize()); + datasetTableField.setOriginName(field.getFieldName()); + datasetTableField.setName(field.getRemarks()); + datasetTableField.setDataeaseName(TableUtils.columnName(field.getFieldName())); + datasetTableField.setType(field.getFieldType()); + datasetTableField.setDeType(transFieldType(field.getFieldType())); + datasetTableField.setDeExtractType(transFieldType(field.getFieldType())); + datasetTableField.setSize(field.getFieldSize()); datasetTableField.setChecked(true); datasetTableField.setColumnIndex(i); datasetTableField.setLastSyncTime(System.currentTimeMillis()); @@ -1934,46 +1934,46 @@ public class DataSetTableService { if (CollectionUtils.isNotEmpty(fields)) { List originNameList = new ArrayList<>(); for (int i = 0; i < fields.size(); i++) { - TableField filed = fields.get(i); - originNameList.add(filed.getFieldName()); + TableField field = fields.get(i); + originNameList.add(field.getFieldName()); DatasetTableField datasetTableField = DatasetTableField.builder().build(); // 物理字段名设定为唯一,查询当前数据集下是否已存在该字段,存在则update,不存在则insert DatasetTableFieldExample datasetTableFieldExample = new DatasetTableFieldExample(); // 字段名一致,认为字段没有改变 - datasetTableFieldExample.createCriteria().andTableIdEqualTo(datasetTable.getId()).andOriginNameEqualTo(filed.getFieldName()); + datasetTableFieldExample.createCriteria().andTableIdEqualTo(datasetTable.getId()).andOriginNameEqualTo(field.getFieldName()); List datasetTableFields = datasetTableFieldMapper.selectByExample(datasetTableFieldExample); if (CollectionUtils.isNotEmpty(datasetTableFields)) { datasetTableField.setId(datasetTableFields.get(0).getId()); - datasetTableField.setOriginName(filed.getFieldName()); - datasetTableField.setType(filed.getFieldType()); - datasetTableField.setSize(filed.getFieldSize()); - datasetTableField.setAccuracy(filed.getAccuracy()); + datasetTableField.setOriginName(field.getFieldName()); + datasetTableField.setType(field.getFieldType()); + datasetTableField.setSize(field.getFieldSize()); + datasetTableField.setAccuracy(field.getAccuracy()); if (ObjectUtils.isEmpty(ds)) { - datasetTableField.setDeExtractType(transFieldType(filed.getFieldType())); + datasetTableField.setDeExtractType(transFieldType(field.getFieldType())); } else { - Integer fieldType = qp.transFieldType(filed.getFieldType()); + Integer fieldType = qp.transFieldType(field.getFieldType()); datasetTableField.setDeExtractType(fieldType); } } else { datasetTableField.setTableId(datasetTable.getId()); - datasetTableField.setOriginName(filed.getFieldName()); - datasetTableField.setName(filed.getRemarks()); + datasetTableField.setOriginName(field.getFieldName()); + datasetTableField.setName(field.getRemarks()); if (datasetTable.getMode() == 1 && StringUtils.equalsIgnoreCase("union", datasetTable.getType())) { - datasetTableField.setDataeaseName(filed.getFieldName()); + datasetTableField.setDataeaseName(field.getFieldName()); } else { - datasetTableField.setDataeaseName(TableUtils.columnName(filed.getFieldName())); + datasetTableField.setDataeaseName(TableUtils.columnName(field.getFieldName())); } - datasetTableField.setType(filed.getFieldType()); + datasetTableField.setType(field.getFieldType()); if (ObjectUtils.isEmpty(ds)) { - datasetTableField.setDeType(transFieldType(filed.getFieldType())); - datasetTableField.setDeExtractType(transFieldType(filed.getFieldType())); + datasetTableField.setDeType(transFieldType(field.getFieldType())); + datasetTableField.setDeExtractType(transFieldType(field.getFieldType())); } else { - Integer fieldType = qp.transFieldType(filed.getFieldType()); + Integer fieldType = qp.transFieldType(field.getFieldType()); datasetTableField.setDeType(fieldType == 4 ? 2 : (fieldType == 6 ? 0 : fieldType)); datasetTableField.setDeExtractType(fieldType); } - datasetTableField.setSize(filed.getFieldSize()); - datasetTableField.setAccuracy(filed.getAccuracy()); + datasetTableField.setSize(field.getFieldSize()); + datasetTableField.setAccuracy(field.getAccuracy()); datasetTableField.setChecked(true); datasetTableField.setLastSyncTime(syncTime); datasetTableField.setExtField(0); @@ -2091,8 +2091,8 @@ public class DataSetTableService { List sqlFileds = new ArrayList<>(); try { datasourceProvider.fetchResultField(datasourceRequest).stream().map(TableField::getFieldName) - .forEach(filed -> { - sqlFileds.add(filed); + .forEach(field -> { + sqlFileds.add(field); }); } catch (Exception e) { DataEaseException.throwException(Translator.get("i18n_check_sql_error") + e.getMessage()); @@ -2111,7 +2111,7 @@ public class DataSetTableService { List sqlFileds = new ArrayList<>(); try { datasourceProvider.fetchResultField(datasourceRequest).stream().map(TableField::getFieldName) - .forEach(filed -> sqlFileds.add(filed)); + .forEach(field -> sqlFileds.add(field)); } catch (Exception e) { DataEaseException.throwException(Translator.get("i18n_check_sql_error") + e.getMessage()); } 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 c2f70eddb8..c6c7a6d2fa 100644 --- a/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java +++ b/backend/src/main/java/io/dataease/service/dataset/ExtractDataService.java @@ -198,25 +198,25 @@ public class ExtractDataService { saveSuccessLog(datasetTableTaskLog, false); updateTableStatus(datasetTableId, JobStatus.Completed, execTime); if (ops.equalsIgnoreCase("替换")) { - List oldFileds = getDatasetTableFields(datasetTable.getId()); + List oldFields = getDatasetTableFields(datasetTable.getId()); List toAdd = new ArrayList<>(); List toDelete = new ArrayList<>(); - for (DatasetTableField oldFiled : oldFileds) { + for (DatasetTableField oldField : oldFields) { boolean delete = true; for (DatasetTableField datasetTableField : datasetTableFields) { - if (oldFiled.getDataeaseName().equalsIgnoreCase(datasetTableField.getDataeaseName()) && oldFiled.getDeExtractType().equals(datasetTableField.getDeExtractType())) { + if (oldField.getDataeaseName().equalsIgnoreCase(datasetTableField.getDataeaseName()) && oldField.getDeExtractType().equals(datasetTableField.getDeExtractType())) { delete = false; } } if (delete) { - toDelete.add(oldFiled); + toDelete.add(oldField); } } for (DatasetTableField datasetTableField : datasetTableFields) { boolean add = true; - for (DatasetTableField oldFiled : oldFileds) { - if (oldFiled.getDataeaseName().equalsIgnoreCase(datasetTableField.getDataeaseName()) && oldFiled.getDeExtractType().equals(datasetTableField.getDeExtractType())) { + for (DatasetTableField oldField : oldFields) { + if (oldField.getDataeaseName().equalsIgnoreCase(datasetTableField.getDataeaseName()) && oldField.getDeExtractType().equals(datasetTableField.getDeExtractType())) { add = false; } } @@ -887,8 +887,8 @@ public class ExtractDataService { datasourceRequest.setDatasource(ds); datasourceRequest.setQuery(qp.wrapSql(sql)); List dorisFields = new ArrayList<>(); - datasourceProvider.fetchResultField(datasourceRequest).stream().map(TableField::getFieldName).forEach(filed -> { - dorisFields.add(TableUtils.columnName(filed)); + datasourceProvider.fetchResultField(datasourceRequest).stream().map(TableField::getFieldName).forEach(field -> { + dorisFields.add(TableUtils.columnName(field)); }); return String.join(",", dorisFields); } diff --git a/backend/src/main/java/io/dataease/service/dataset/impl/direct/DirectFieldService.java b/backend/src/main/java/io/dataease/service/dataset/impl/direct/DirectFieldService.java index b7a9fb503c..8834cce94e 100644 --- a/backend/src/main/java/io/dataease/service/dataset/impl/direct/DirectFieldService.java +++ b/backend/src/main/java/io/dataease/service/dataset/impl/direct/DirectFieldService.java @@ -54,16 +54,16 @@ public class DirectFieldService implements DataSetFieldService { @Override public List fieldValues(String fieldId, Long userId, Boolean userPermissions, Boolean rowAndColumnMgm) throws Exception { - List filedIds = new ArrayList<>(); - filedIds.add(fieldId); - return fieldValues(filedIds, null, userId, userPermissions, false, rowAndColumnMgm); + List fieldIds = new ArrayList<>(); + fieldIds.add(fieldId); + return fieldValues(fieldIds, null, userId, userPermissions, false, rowAndColumnMgm); } @Override public List fieldValues(String fieldId, DeSortDTO sortDTO, Long userId, Boolean userPermissions, Boolean rowAndColumnMgm) throws Exception { - List filedIds = new ArrayList<>(); - filedIds.add(fieldId); - return fieldValues(filedIds, sortDTO, userId, userPermissions, false, rowAndColumnMgm); + List fieldIds = new ArrayList<>(); + fieldIds.add(fieldId); + return fieldValues(fieldIds, sortDTO, userId, userPermissions, false, rowAndColumnMgm); } public List buildSorts(List allFields, DeSortDTO sortDTO) {