sqlList, String typeCode) {
+ if (file.isDirectory()) {
+ File[] files = file.listFiles();
+ if (files == null) {
+ return;
+ }
+ for (File subFile : files) {
+ String subRelativePath = relativePath + "/" + file.getName();
+ handleFile(subFile, subRelativePath, sqlList, typeCode);
+ }
+ return;
+ }
+ // 原始文件名
+ String originalName = file.getName();
+ // 文件后缀
+ String extension = getFileExtension(originalName);
+ // 新文件名
+ String newFileName = IdWorker.getIdStr()+ "." + extension;
+ // 新文件路径
+ String newPath = FOLDER_PATH + "_重命名" + relativePath + "/" + newFileName;
+ // 复制文件
+ Path sourcePath = file.toPath();
+ Path targetPath = new File(newPath).toPath();
+ try {
+ // 创建文件夹
+ Files.createDirectories(targetPath.getParent());
+ Files.copy(sourcePath, targetPath, StandardCopyOption.REPLACE_EXISTING);
+ } catch (Exception e) {
+ log.error(ExceptionUtils.getStackTrace(e));
+ }
+ // 在服务器上的文件路径
+ String path = FILE_BASE_PATH + relativePath;
+ // 文件访问地址
+ String url = FILE_URL_PREFIX + relativePath + "/" + newFileName;
+ // 替换可能存在的反斜杠
+ url = url.replace("\\", "/");
+ // 文件大小
+ long size = file.length();
+ // 创建时间
+ String currentDate = getCurrentDateTime();
+ // 生成sql
+ String sql = String.format("INSERT INTO big_screen_file (module, original_name, new_name, extension, path, url, size, download_count, create_date, update_date, del_flag) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', '%s', %d);",
+ typeCode, originalName, newFileName, extension, path, url, size, 0, currentDate, currentDate, 0);
+ sqlList.add(sql);
+ }
+
+
+ /**
+ * 获取文件后缀
+ * @param fileName
+ * @return
+ */
+ private static String getFileExtension(String fileName) {
+ int dotIndex = fileName.lastIndexOf('.');
+ if (dotIndex > 0 && dotIndex < fileName.length() - 1) {
+ return fileName.substring(dotIndex + 1);
+ }
+ return "";
+ }
+
+
+ /**
+ * 获取当前时间
+ * @return
+ */
+ private static String getCurrentDateTime() {
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ Date currentDate = new Date();
+ return dateFormat.format(currentDate);
+ }
+}
+
diff --git a/DataRoom/doc/update.sql b/DataRoom/doc/update.sql
index 13362695..8d683b9d 100644
--- a/DataRoom/doc/update.sql
+++ b/DataRoom/doc/update.sql
@@ -1,2 +1,60 @@
-UPDATE big_screen_page SET config = REPLACE(config, '"className":"com.gccloud.bigscreen', '"className":"com.gccloud.dataroom') WHERE type = 'bigScreen';
-UPDATE big_screen_page SET config = REPLACE(config, '"className":"com.gccloud.dataroom.core.module.manage.dto.BigScreenPageDTO', '"className":"com.gccloud.dataroom.core.module.manage.dto.DataRoomPageDTO') WHERE type = 'bigScreen';
\ No newline at end of file
+
+-- 更新大屏配置的类名
+UPDATE big_screen_page SET config = REPLACE(config, '"className":"com.gccloud.bigscreen', '"className":"com.gccloud.dataroom');
+UPDATE big_screen_page SET config = REPLACE(config, '"className":"com.gccloud.dataroom.core.module.manage.dto.BigScreenPageDTO', '"className":"com.gccloud.dataroom.core.module.manage.dto.DataRoomPageDTO');
+
+-- 新增数据集相关的表
+
+DROP TABLE IF EXISTS `ds_category_tree`;
+CREATE TABLE `ds_category_tree` (
+ `id` bigint(64) NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `ids` text COMMENT 'id序列',
+ `name` varchar(255) DEFAULT NULL COMMENT '名称',
+ `parent_id` bigint(64) DEFAULT NULL COMMENT '父级ID',
+ `type` varchar(255) NOT NULL,
+ `module_code` varchar(255) DEFAULT NULL,
+ `update_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
+ `create_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+ `del_flag` tinyint(2) NOT NULL DEFAULT '0' COMMENT '删除标识',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='数据集种类树';
+
+
+DROP TABLE IF EXISTS `ds_datasource`;
+CREATE TABLE `ds_datasource` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `source_name` varchar(255) DEFAULT NULL COMMENT '数据源名称',
+ `source_type` varchar(255) DEFAULT NULL COMMENT '数据源类型',
+ `driver_class_name` varchar(255) DEFAULT NULL COMMENT '连接驱动',
+ `url` varchar(255) DEFAULT NULL COMMENT '连接url',
+ `host` varchar(255) DEFAULT NULL COMMENT '主机',
+ `port` int(16) DEFAULT NULL COMMENT '端口',
+ `username` varchar(255) DEFAULT NULL COMMENT '用户名',
+ `password` text COMMENT '密码',
+ `module_code` varchar(255) DEFAULT NULL COMMENT '模块编码',
+ `editable` tinyint(2) DEFAULT '0' COMMENT '是否可编辑,0 不可编辑 1 可编辑',
+ `remark` varchar(255) DEFAULT NULL,
+ `update_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
+ `create_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+ `del_flag` tinyint(2) NOT NULL DEFAULT '0' COMMENT '删除标识',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='数据源配置表';
+
+DROP TABLE IF EXISTS `ds_dataset`;
+CREATE TABLE `ds_dataset` (
+ `id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '主键',
+ `name` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT '名称',
+ `code` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT '编码',
+ `type_id` varchar(255) DEFAULT NULL COMMENT '种类ID',
+ `remark` text CHARACTER SET utf8 COMMENT '描述',
+ `dataset_type` varchar(64) CHARACTER SET utf8 NOT NULL COMMENT '数据集类型(自定义数据集 custom、模型数据集model、原始数据集original、API数据集api、JSON数据集 json)',
+ `module_code` varchar(255) COLLATE utf8_general_mysql500_ci DEFAULT NULL COMMENT '模块编码',
+ `editable` tinyint(2) NOT NULL DEFAULT '0' COMMENT '是否可编辑,0 不可编辑 1 可编辑',
+ `source_id` bigint(32) DEFAULT NULL COMMENT '数据源ID',
+ `cache` tinyint(1) DEFAULT 0 NOT NULL COMMENT '是否对执行结构缓存 0 不缓存 1 缓存',
+ `config` longtext COMMENT '数据集配置',
+ `update_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
+ `create_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+ `del_flag` tinyint(2) NOT NULL DEFAULT '0' COMMENT '删除标识',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_mysql500_ci COMMENT='数据集表';
\ No newline at end of file
diff --git a/data-room-ui/example/customDatasetComponents/jsDataSet/OutputFieldDialog.vue b/data-room-ui/example/customDatasetComponents/jsDataSet/OutputFieldDialog.vue
index ef98dfc8..ed9495ea 100644
--- a/data-room-ui/example/customDatasetComponents/jsDataSet/OutputFieldDialog.vue
+++ b/data-room-ui/example/customDatasetComponents/jsDataSet/OutputFieldDialog.vue
@@ -11,7 +11,7 @@
>
{
+ this.insideFieldList.forEach(key => {
this.fieldDesc[key.fieldName] = key.fieldDesc
})
+ this.$emit('setFieldList', this.insideFieldList)
} else {
this.fieldDesc = null
}
diff --git a/data-room-ui/example/customDatasetComponents/jsDataSet/index.vue b/data-room-ui/example/customDatasetComponents/jsDataSet/index.vue
index 4cd2a851..8eb25c49 100644
--- a/data-room-ui/example/customDatasetComponents/jsDataSet/index.vue
+++ b/data-room-ui/example/customDatasetComponents/jsDataSet/index.vue
@@ -9,7 +9,7 @@