erp-java/services/data-import-export-service/init.sql

82 lines
6.3 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 数据导入导出服务初始化脚本
-- 创建日期: 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, '系统管理员');