82 lines
6.3 KiB
SQL
82 lines
6.3 KiB
SQL
-- 数据导入导出服务初始化脚本
|
||
-- 创建日期: 2026-04-05
|
||
|
||
-- 创建导入任务表
|
||
CREATE TABLE IF NOT EXISTS `import_task` (
|
||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`task_name` VARCHAR(200) NOT NULL COMMENT '任务名称',
|
||
`biz_type` VARCHAR(50) NOT NULL COMMENT '业务类型',
|
||
`file_format` VARCHAR(20) NOT NULL COMMENT '文件格式',
|
||
`original_file_name` VARCHAR(500) NOT NULL COMMENT '原始文件名',
|
||
`file_path` VARCHAR(1000) NOT NULL COMMENT '文件存储路径',
|
||
`file_size` BIGINT DEFAULT 0 COMMENT '文件大小(字节)',
|
||
`total_rows` INT DEFAULT 0 COMMENT '总行数',
|
||
`success_rows` INT DEFAULT 0 COMMENT '成功行数',
|
||
`fail_rows` INT DEFAULT 0 COMMENT '失败行数',
|
||
`skip_rows` INT DEFAULT 0 COMMENT '跳过行数',
|
||
`status` VARCHAR(20) NOT NULL DEFAULT 'pending' COMMENT '任务状态',
|
||
`tenant_id` BIGINT NOT NULL COMMENT '租户ID',
|
||
`creator_id` BIGINT NOT NULL COMMENT '创建人ID',
|
||
`creator_name` VARCHAR(100) DEFAULT '' COMMENT '创建人名称',
|
||
`finish_time` DATETIME DEFAULT NULL COMMENT '处理完成时间',
|
||
`error_summary` TEXT DEFAULT NULL COMMENT '错误信息摘要',
|
||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted_at` DATETIME DEFAULT NULL COMMENT '删除时间(逻辑删除)',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_tenant_id` (`tenant_id`),
|
||
KEY `idx_biz_type` (`biz_type`),
|
||
KEY `idx_status` (`status`),
|
||
KEY `idx_created_at` (`created_at`),
|
||
KEY `idx_creator_id` (`creator_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='导入任务表';
|
||
|
||
-- 创建导入记录表
|
||
CREATE TABLE IF NOT EXISTS `import_record` (
|
||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`task_id` BIGINT NOT NULL COMMENT '导入任务ID',
|
||
`row_number` INT NOT NULL COMMENT '行号',
|
||
`original_data` TEXT DEFAULT NULL COMMENT '原始数据(JSON格式)',
|
||
`processed_data` TEXT DEFAULT NULL COMMENT '处理后数据(JSON格式)',
|
||
`target_id` BIGINT DEFAULT NULL COMMENT '目标表主键值',
|
||
`result` VARCHAR(20) NOT NULL DEFAULT 'success' COMMENT '导入结果',
|
||
`error_message` TEXT DEFAULT NULL COMMENT '错误信息',
|
||
`error_field` VARCHAR(100) DEFAULT NULL COMMENT '错误字段',
|
||
`tenant_id` BIGINT NOT NULL COMMENT '租户ID',
|
||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_task_id` (`task_id`),
|
||
KEY `idx_result` (`result`),
|
||
KEY `idx_row_number` (`row_number`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='导入记录表';
|
||
|
||
-- 创建导入模板表
|
||
CREATE TABLE IF NOT EXISTS `import_template` (
|
||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`template_name` VARCHAR(200) NOT NULL COMMENT '模板名称',
|
||
`template_code` VARCHAR(100) NOT NULL COMMENT '模板编码',
|
||
`biz_type` VARCHAR(50) NOT NULL COMMENT '业务类型',
|
||
`description` VARCHAR(500) DEFAULT NULL COMMENT '模板描述',
|
||
`file_path` VARCHAR(1000) DEFAULT NULL COMMENT '模板文件路径',
|
||
`column_definition` TEXT DEFAULT NULL COMMENT '列定义(JSON格式)',
|
||
`is_default` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否为默认模板',
|
||
`tenant_id` BIGINT NOT NULL COMMENT '租户ID',
|
||
`creator_id` BIGINT NOT NULL COMMENT '创建人ID',
|
||
`creator_name` VARCHAR(100) DEFAULT '' COMMENT '创建人名称',
|
||
`created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
`updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
`deleted_at` DATETIME DEFAULT NULL COMMENT '删除时间(逻辑删除)',
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_tenant_id` (`tenant_id`),
|
||
KEY `idx_biz_type` (`biz_type`),
|
||
KEY `idx_template_code` (`template_code`),
|
||
KEY `idx_is_default` (`is_default`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='导入模板表';
|
||
|
||
-- 插入默认模板数据
|
||
INSERT INTO `import_template` (`template_name`, `template_code`, `biz_type`, `description`, `column_definition`, `is_default`, `tenant_id`, `creator_id`, `creator_name`) VALUES
|
||
('商品导入模板', 'goods_default', 'goods', '商品数据导入模板,包含商品基本信息', '[{"fieldName":"name","headerName":"商品名称","dataType":"string","required":true,"maxLength":200},{"fieldName":"code","headerName":"商品编码","dataType":"string","required":true,"maxLength":50},{"fieldName":"barcode","headerName":"条形码","dataType":"string","required":false,"maxLength":30},{"fieldName":"category","headerName":"商品分类","dataType":"string","required":false,"maxLength":100},{"fieldName":"unit","headerName":"单位","dataType":"string","required":false,"maxLength":20},{"fieldName":"retailPrice","headerName":"零售价","dataType":"decimal","required":false},{"fieldName":"costPrice","headerName":"成本价","dataType":"decimal","required":false}]', 1, 1, 1, '系统管理员'),
|
||
('客户导入模板', 'customer_default', 'customer', '客户数据导入模板,包含客户基本信息', '[{"fieldName":"name","headerName":"客户名称","dataType":"string","required":true,"maxLength":200},{"fieldName":"contact","headerName":"联系人","dataType":"string","required":false,"maxLength":100},{"fieldName":"phone","headerName":"联系电话","dataType":"string","required":false,"maxLength":20},{"fieldName":"address","headerName":"地址","dataType":"string","required":false,"maxLength":500},{"fieldName":"email","headerName":"邮箱","dataType":"string","required":false,"maxLength":100}]', 1, 1, 1, '系统管理员'),
|
||
('供应商导入模板', 'supplier_default', 'supplier', '供应商数据导入模板', '[{"fieldName":"name","headerName":"供应商名称","dataType":"string","required":true,"maxLength":200},{"fieldName":"contact","headerName":"联系人","dataType":"string","required":false,"maxLength":100},{"fieldName":"phone","headerName":"联系电话","dataType":"string","required":false,"maxLength":20},{"fieldName":"address","headerName":"地址","dataType":"string","required":false,"maxLength":500}]', 1, 1, 1, '系统管理员');
|