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/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 d97a57efdf..0baac40d72 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -1768,16 +1768,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()); @@ -1939,44 +1939,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.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.setSize(field.getFieldSize()); + datasetTableField.setAccuracy(field.getAccuracy()); datasetTableField.setChecked(true); datasetTableField.setLastSyncTime(syncTime); datasetTableField.setExtField(0); @@ -2094,8 +2096,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()); @@ -2114,7 +2116,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) { 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 350a53fcd2..49592eca7a 100644 --- a/backend/src/main/resources/db/migration/V40__1.15.sql +++ b/backend/src/main/resources/db/migration/V40__1.15.sql @@ -119,6 +119,8 @@ 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`; + INSERT INTO `sys_auth_detail` (`id`, `auth_id`, `privilege_name`, `privilege_type`, `privilege_value`, `privilege_extend`, `remark`, `create_user`, `create_time`, `update_time`, `copy_from`, `copy_id`) VALUES ('d55c4585-3b0a-11ed-8009-0242ac130005', '379c3124-7a30-4c1b-8ae4-de23eaf34b71', 'i18n_auth_grant', 15, 0, 'grant', '基础权限-授权', 'admin', 1663915323000, NULL, NULL, NULL); INSERT INTO `sys_auth_detail` (`id`, `auth_id`, `privilege_name`, `privilege_type`, `privilege_value`, `privilege_extend`, `remark`, `create_user`, `create_time`, `update_time`, `copy_from`, `copy_id`) VALUES ('d55c4c0d-3b0a-11ed-8009-0242ac130005', '379c3124-7a30-4c1b-8ae4-de23eaf34b71', 'i18n_auth_manage', 3, 0, 'manage', '基础权限-管理', 'admin', 1663915323000, NULL, NULL, NULL); INSERT INTO `sys_auth_detail` (`id`, `auth_id`, `privilege_name`, `privilege_type`, `privilege_value`, `privilege_extend`, `remark`, `create_user`, `create_time`, `update_time`, `copy_from`, `copy_id`) VALUES ('d55c4d88-3b0a-11ed-8009-0242ac130005', '379c3124-7a30-4c1b-8ae4-de23eaf34b71', 'i18n_auth_use', 1, 1, 'use', '基础权限-使用', 'admin', 1663915323000, NULL, NULL, NULL); diff --git a/frontend/src/assets/datasource/StarRocks.jpg b/frontend/src/assets/datasource/StarRocks.jpg new file mode 100644 index 0000000000..60764d2fa4 Binary files /dev/null and b/frontend/src/assets/datasource/StarRocks.jpg differ diff --git a/frontend/src/assets/datasource/TiDB.jpg b/frontend/src/assets/datasource/TiDB.jpg new file mode 100644 index 0000000000..7ab43f2a13 Binary files /dev/null and b/frontend/src/assets/datasource/TiDB.jpg differ diff --git a/frontend/src/assets/datasource/api.jpg b/frontend/src/assets/datasource/api.jpg new file mode 100644 index 0000000000..8526d245bd Binary files /dev/null and b/frontend/src/assets/datasource/api.jpg differ diff --git a/frontend/src/assets/datasource/ck.jpg b/frontend/src/assets/datasource/ck.jpg new file mode 100644 index 0000000000..ee80f1a7bd Binary files /dev/null and b/frontend/src/assets/datasource/ck.jpg differ diff --git a/frontend/src/assets/datasource/db2.jpg b/frontend/src/assets/datasource/db2.jpg new file mode 100644 index 0000000000..f094daa022 Binary files /dev/null and b/frontend/src/assets/datasource/db2.jpg differ diff --git a/frontend/src/assets/datasource/ds_doris.jpg b/frontend/src/assets/datasource/ds_doris.jpg new file mode 100644 index 0000000000..5fcc515a31 Binary files /dev/null and b/frontend/src/assets/datasource/ds_doris.jpg differ diff --git a/frontend/src/assets/datasource/es.jpg b/frontend/src/assets/datasource/es.jpg new file mode 100644 index 0000000000..2251cf4473 Binary files /dev/null and b/frontend/src/assets/datasource/es.jpg differ diff --git a/frontend/src/assets/datasource/hive.jpg b/frontend/src/assets/datasource/hive.jpg new file mode 100644 index 0000000000..60e5cfe130 Binary files /dev/null and b/frontend/src/assets/datasource/hive.jpg differ diff --git a/frontend/src/assets/datasource/impala.jpg b/frontend/src/assets/datasource/impala.jpg new file mode 100644 index 0000000000..556309b018 Binary files /dev/null and b/frontend/src/assets/datasource/impala.jpg differ diff --git a/frontend/src/assets/datasource/mariadb.jpg b/frontend/src/assets/datasource/mariadb.jpg new file mode 100644 index 0000000000..7d2bcf44db Binary files /dev/null and b/frontend/src/assets/datasource/mariadb.jpg differ diff --git a/frontend/src/assets/datasource/mongo.jpg b/frontend/src/assets/datasource/mongo.jpg new file mode 100644 index 0000000000..08c15580f9 Binary files /dev/null and b/frontend/src/assets/datasource/mongo.jpg differ diff --git a/frontend/src/assets/datasource/mysql.jpg b/frontend/src/assets/datasource/mysql.jpg new file mode 100644 index 0000000000..be0e90e1b1 Binary files /dev/null and b/frontend/src/assets/datasource/mysql.jpg differ diff --git a/frontend/src/assets/datasource/oracle.jpg b/frontend/src/assets/datasource/oracle.jpg new file mode 100644 index 0000000000..3397b63159 Binary files /dev/null and b/frontend/src/assets/datasource/oracle.jpg differ diff --git a/frontend/src/assets/datasource/pg.jpg b/frontend/src/assets/datasource/pg.jpg new file mode 100644 index 0000000000..ebcb628b89 Binary files /dev/null and b/frontend/src/assets/datasource/pg.jpg differ diff --git a/frontend/src/assets/datasource/redshift.jpg b/frontend/src/assets/datasource/redshift.jpg new file mode 100644 index 0000000000..3a62522f24 Binary files /dev/null and b/frontend/src/assets/datasource/redshift.jpg differ diff --git a/frontend/src/assets/datasource/sqlServel.jpg b/frontend/src/assets/datasource/sqlServel.jpg new file mode 100644 index 0000000000..0832e68adf Binary files /dev/null and b/frontend/src/assets/datasource/sqlServel.jpg differ diff --git a/frontend/src/components/canvas/components/Editor/fieldsList.vue b/frontend/src/components/canvas/components/Editor/fieldsList.vue index 1129437514..f6dd8dda9a 100644 --- a/frontend/src/components/canvas/components/Editor/fieldsList.vue +++ b/frontend/src/components/canvas/components/Editor/fieldsList.vue @@ -1,6 +1,6 @@