From ab6b49791abc956d5b75b61c8dc7563b22a28bfa Mon Sep 17 00:00:00 2001 From: ulleo Date: Tue, 13 Aug 2024 14:46:39 +0800 Subject: [PATCH] =?UTF-8?q?feat(X-Pack):=20=E6=95=B0=E6=8D=AE=E5=A1=AB?= =?UTF-8?q?=E6=8A=A5=E6=89=B9=E9=87=8F=E4=B8=8A=E4=BC=A0=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/dataease/config/CommonConfig.java | 2 +- .../datasource/provider/CalciteProvider.java | 6 +- .../datasource/server/DatasourceServer.java | 1 - core/core-frontend/src/api/data-filling.ts | 226 ------------------ core/core-frontend/src/locales/en.ts | 1 + core/core-frontend/src/locales/tw.ts | 1 + core/core-frontend/src/locales/zh-CN.ts | 1 + .../src/store/modules/interactive.ts | 5 +- .../visualized/data/datasource/ExcelInfo.vue | 18 +- de-xpack | 2 +- .../api/xpack/dataFilling/DataFillingApi.java | 14 +- .../dto/DatasourceOptionsRequest.java | 6 +- .../xpack/dataFilling/dto/DfExcelData.java | 26 ++ .../xpack/dataFilling/dto/ExtTableField.java | 155 ++++++++++++ .../xpack/dataFilling/dto/RowDataDatum.java | 23 ++ .../io/dataease/exception/DEException.java | 2 + .../io/dataease}/utils/CommonThreadPool.java | 3 +- 17 files changed, 241 insertions(+), 251 deletions(-) delete mode 100644 core/core-frontend/src/api/data-filling.ts create mode 100644 sdk/api/api-base/src/main/java/io/dataease/api/xpack/dataFilling/dto/DfExcelData.java create mode 100644 sdk/api/api-base/src/main/java/io/dataease/api/xpack/dataFilling/dto/ExtTableField.java create mode 100644 sdk/api/api-base/src/main/java/io/dataease/api/xpack/dataFilling/dto/RowDataDatum.java rename {core/core-backend/src/main/java/io/dataease/commons => sdk/common/src/main/java/io/dataease}/utils/CommonThreadPool.java (97%) diff --git a/core/core-backend/src/main/java/io/dataease/config/CommonConfig.java b/core/core-backend/src/main/java/io/dataease/config/CommonConfig.java index 99e61a3ebb..7ed3a3833d 100644 --- a/core/core-backend/src/main/java/io/dataease/config/CommonConfig.java +++ b/core/core-backend/src/main/java/io/dataease/config/CommonConfig.java @@ -1,7 +1,7 @@ package io.dataease.config; import com.fit2cloud.autoconfigure.QuartzAutoConfiguration; -import io.dataease.commons.utils.CommonThreadPool; +import io.dataease.utils.CommonThreadPool; import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/core/core-backend/src/main/java/io/dataease/datasource/provider/CalciteProvider.java b/core/core-backend/src/main/java/io/dataease/datasource/provider/CalciteProvider.java index 0c90d960e1..e038611fbb 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/provider/CalciteProvider.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/provider/CalciteProvider.java @@ -1,7 +1,6 @@ package io.dataease.datasource.provider; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import io.dataease.commons.utils.CommonThreadPool; import io.dataease.dataset.utils.FieldUtils; import io.dataease.datasource.dao.auto.entity.CoreDatasource; import io.dataease.datasource.dao.auto.entity.CoreDriver; @@ -16,10 +15,7 @@ import io.dataease.extensions.datasource.provider.ExtendedJdbcClassLoader; import io.dataease.extensions.datasource.provider.Provider; import io.dataease.extensions.datasource.vo.DatasourceConfiguration; import io.dataease.i18n.Translator; -import io.dataease.utils.BeanUtils; -import io.dataease.utils.CommonBeanFactory; -import io.dataease.utils.JsonUtil; -import io.dataease.utils.LogUtil; +import io.dataease.utils.*; import jakarta.annotation.PostConstruct; import jakarta.annotation.Resource; import org.apache.calcite.adapter.jdbc.JdbcSchema; diff --git a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java index e57cc64e7c..101a58d36e 100644 --- a/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java +++ b/core/core-backend/src/main/java/io/dataease/datasource/server/DatasourceServer.java @@ -14,7 +14,6 @@ import io.dataease.api.ds.vo.CoreDatasourceTaskLogDTO; import io.dataease.api.ds.vo.ExcelFileData; import io.dataease.api.ds.vo.ExcelSheetData; import io.dataease.commons.constants.TaskStatus; -import io.dataease.commons.utils.CommonThreadPool; import io.dataease.constant.LogOT; import io.dataease.constant.LogST; import io.dataease.dataset.manage.DatasetDataManage; diff --git a/core/core-frontend/src/api/data-filling.ts b/core/core-frontend/src/api/data-filling.ts deleted file mode 100644 index ff017ecf1d..0000000000 --- a/core/core-frontend/src/api/data-filling.ts +++ /dev/null @@ -1,226 +0,0 @@ -import request from '@/config/axios' -import dayjs from 'dayjs' - -export function formatDate(value, dateType) { - if (!value) { - return value - } - switch (dateType) { - case 'year': - return dayjs(value).format('YYYY') - case 'month': - case 'monthrange': - return dayjs(value).format('YYYY-MM') - case 'datetime': - case 'datetimerange': - return dayjs(value).format('YYYY-MM-DD HH:mm:ss') - default: - return dayjs(value).format('YYYY-MM-DD') - } -} -export interface ColumnItem { - props: string - label: string - date: boolean - dateType?: string - type: string - multiple: boolean - rangeIndex?: number - disabled?: boolean -} -export interface DataFillingOrFolder { - name: string - action?: string - id?: number | string - pid?: number | string - nodeType: 'folder' | 'data-filling' - union?: Array<{}> - allFields?: Array<{}> -} - -export interface Tree { - name: string - value?: string | number - id: string | number - nodeType: string - createBy?: string - level: number - leaf?: boolean - pid: string | number - type?: string - createTime: number - children?: Tree[] - request: any -} - -export interface DfFormSetting { - id?: string - name?: string - pid?: string - datasource?: string - tableName?: string - forms: Array - createIndex: boolean - tableIndexes: Array - - creator?: string - updater?: string - createTime?: number - updateTime?: number - weight?: number -} - -export interface DfFormItem { - type: string - typeName: string - icon: string - order?: number - value?: any - id?: string - settings: FormItemSetting - old?: boolean - removed?: boolean -} - -export interface FormItemSetting { - name?: string - placeholder?: string - required?: boolean - unique?: boolean - inputType?: string - optionSourceType?: 1 | 2 - optionDatasource?: number - optionTable?: string - optionColumn?: string - optionOrder?: string - multiple?: boolean - dateType?: 'date' | 'daterange' - rangeSeparator?: string - startPlaceholder?: string - endPlaceholder?: string - options?: Array - mapping: { - columnName?: string - columnName1?: string - columnName2?: string - type?: string - } -} - -export interface FormItemSettingOptions { - name: string - value: string -} - -export interface SimpleDatasource { - id: string - pid: string - name: string - type: string - typeAlias: string - status: string - enableDataFill: boolean -} - -export const listDataFillingForms = async (data): Promise => { - return request - .post({ url: '/data-filling/tree', data: { ...data, ...{ busiFlag: 'data-filling' } } }) - .then(res => { - return res?.data - }) -} - -export const createFolder = (data = {}): Promise => { - return request - .post({ url: '/data-filling/save', data: { ...data, nodeType: 'folder' } }) - .then(res => { - return res?.data - }) -} -export const save = (data = {}): Promise => { - return request.post({ url: '/data-filling/save', data }).then(res => { - return res?.data - }) -} - -export const move = (data = {}): Promise => { - return request.post({ url: '/data-filling/move', data }).then(res => { - return res?.data - }) -} - -export const reName = (data = {}): Promise => { - return request.post({ url: '/data-filling/rename', data }).then(res => { - return res?.data - }) -} -export const listDatasourceList = (): Promise> => { - return request.get({ url: '/data-filling/datasource/list' }).then(res => { - return res?.data - }) -} - -export const getDataFilling = async (id: string): Promise => { - return request.get({ url: `/data-filling/get/${id}` }).then(res => { - return res?.data - }) -} - -export const deleteById = (id: string): Promise => { - return request.get({ url: '/data-filling/delete/' + id }) -} - -export const deleteRowData = (formId: string, id: number): Promise => { - return request.get({ url: `/data-filling/form/${formId}/delete/${id}` }) -} - -export const batchDeleteRowData = (formId: string, data: Array): Promise => { - return request.post({ url: `/data-filling/form/${formId}/batch-delete`, data }) -} - -export const getTableColumnData = ( - optionDatasource, - optionTable, - optionColumn, - optionOrder -): Promise => { - return request.post({ - url: `/data-filling/form/${optionDatasource}/options`, - data: { - optionTable: optionTable, - optionColumn: optionColumn, - optionOrder: optionOrder - } - }) -} - -export const searchTable = (id, data): Promise => { - return request.post({ - url: '/data-filling/form/' + id + '/tableData', - data - }) -} - -export const saveFormRowData = (formId, data): Promise => { - return request - .post({ - url: '/data-filling/form/' + formId + '/rowData/save', - data - }) - .then(res => { - return res?.data - }) -} - -export const saveTask = (data): Promise => { - return request.post({ - url: `/data-filling/task/save`, - data - }) -} - -export const getTaskInfo = (taskId): Promise => { - return request.get({ - url: `/data-filling/task/info/${taskId}` - }) -} diff --git a/core/core-frontend/src/locales/en.ts b/core/core-frontend/src/locales/en.ts index e670b1b9c2..20bf288728 100644 --- a/core/core-frontend/src/locales/en.ts +++ b/core/core-frontend/src/locales/en.ts @@ -376,6 +376,7 @@ export default { commit_time: 'Commit Time', confirm_delete: 'Confirm delete?', add_data: 'Add Data', + batch_upload: 'Upload Data', download_template: 'Download Template', insert_data: 'Insert Data', update_data: 'Update Data', diff --git a/core/core-frontend/src/locales/tw.ts b/core/core-frontend/src/locales/tw.ts index 26131b7306..f405d7d45d 100644 --- a/core/core-frontend/src/locales/tw.ts +++ b/core/core-frontend/src/locales/tw.ts @@ -277,6 +277,7 @@ export default { commit_time: '提交時間', confirm_delete: '確認刪除?', add_data: '添加數據', + batch_upload: '批量上傳', download_template: '下載模板', insert_data: '插入數據', update_data: '更新數據', diff --git a/core/core-frontend/src/locales/zh-CN.ts b/core/core-frontend/src/locales/zh-CN.ts index 458c726f2a..1e2930737e 100644 --- a/core/core-frontend/src/locales/zh-CN.ts +++ b/core/core-frontend/src/locales/zh-CN.ts @@ -2707,6 +2707,7 @@ export default { commit_time: '提交时间', confirm_delete: '确认删除?', add_data: '添加数据', + batch_upload: '批量上传', download_template: '下载模板', insert_data: '插入数据', update_data: '更新数据', diff --git a/core/core-frontend/src/store/modules/interactive.ts b/core/core-frontend/src/store/modules/interactive.ts index c1e8292a02..43343ca89b 100644 --- a/core/core-frontend/src/store/modules/interactive.ts +++ b/core/core-frontend/src/store/modules/interactive.ts @@ -7,7 +7,6 @@ import type { BusiTreeRequest, BusiTreeNode } from '@/models/tree/TreeNode' import { pathValid } from '@/store/modules/permission' import { useCache } from '@/hooks/web/useCache' import { useAppStoreWithOut } from '@/store/modules/app' -import { listDataFillingForms } from '@/api/data-filling' const appStore = useAppStoreWithOut() const { wsCache } = useCache() export interface InnerInteractive { @@ -22,9 +21,9 @@ interface InteractiveState { data: Record } -const apiMap = [queryTreeApi, queryTreeApi, getDatasetTree, listDatasources, listDataFillingForms] +const apiMap = [queryTreeApi, queryTreeApi, getDatasetTree, listDatasources] -const busiFlagMap = ['dashboard', 'dataV', 'dataset', 'datasource', 'data-filling'] +const busiFlagMap = ['dashboard', 'dataV', 'dataset', 'datasource'] export const interactiveStore = defineStore('interactive', { state: (): InteractiveState => ({ diff --git a/core/core-frontend/src/views/visualized/data/datasource/ExcelInfo.vue b/core/core-frontend/src/views/visualized/data/datasource/ExcelInfo.vue index 1c27fd0ff7..d09846577c 100644 --- a/core/core-frontend/src/views/visualized/data/datasource/ExcelInfo.vue +++ b/core/core-frontend/src/views/visualized/data/datasource/ExcelInfo.vue @@ -1,10 +1,16 @@