CREATE TABLE IF NOT EXISTS biz_file_task ( id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键', task_no VARCHAR(64) NOT NULL COMMENT '任务编号', module_type VARCHAR(32) NOT NULL COMMENT '模块类型:DEDUPE/CONVERT/SPLIT', task_mode VARCHAR(32) DEFAULT 'IMMEDIATE' COMMENT '任务模式:IMMEDIATE/TASK', status VARCHAR(32) NOT NULL COMMENT '任务状态:PENDING/RUNNING/SUCCESS/FAILED/CANCELLED', source_file_count INT DEFAULT 0 COMMENT '源文件数量', success_file_count INT DEFAULT 0 COMMENT '成功文件数量', failed_file_count INT DEFAULT 0 COMMENT '失败文件数量', request_json JSON NULL COMMENT '请求参数快照', result_json JSON NULL COMMENT '结果快照', error_message VARCHAR(1000) NULL COMMENT '错误信息', created_by VARCHAR(64) DEFAULT 'system' COMMENT '创建人', created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', finished_at DATETIME NULL COMMENT '完成时间', UNIQUE KEY uk_task_no (task_no), KEY idx_module_status (module_type, status), KEY idx_created_at (created_at) ) COMMENT='文件处理任务表'; CREATE TABLE IF NOT EXISTS biz_file_result ( id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键', task_id BIGINT NOT NULL COMMENT '任务ID', module_type VARCHAR(32) NOT NULL COMMENT '模块类型:DEDUPE/CONVERT/SPLIT', source_filename VARCHAR(255) NULL COMMENT '源文件名', source_file_url VARCHAR(1000) NULL COMMENT '源文件地址', result_filename VARCHAR(255) NULL COMMENT '结果文件名', result_file_url VARCHAR(1000) NULL COMMENT '结果文件地址', result_file_size BIGINT NULL COMMENT '结果文件大小', result_content_type VARCHAR(128) NULL COMMENT '结果文件类型', row_count INT NULL COMMENT '结果行数', success TINYINT(1) NOT NULL DEFAULT 1 COMMENT '是否成功', error_message VARCHAR(1000) NULL COMMENT '错误信息', created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', KEY idx_task_id (task_id), KEY idx_module_type (module_type) ) COMMENT='文件处理结果表'; CREATE TABLE IF NOT EXISTS biz_convert_template ( id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键', template_code VARCHAR(64) NOT NULL COMMENT '模板编码', template_name VARCHAR(128) NOT NULL COMMENT '模板名称', output_filename VARCHAR(255) NOT NULL COMMENT '输出文件名', required_source_columns_json JSON NOT NULL COMMENT '源文件必需列', header_columns_json JSON NOT NULL COMMENT '输出表头列', field_mapping_json JSON NOT NULL COMMENT '源字段映射', defaults_json JSON NULL COMMENT '默认值配置', preamble_lines_json JSON NULL COMMENT '前导说明行', blank_header_rows_after_schema INT DEFAULT 0 COMMENT '表头后空白行数', is_default TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否默认模板', built_in TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否内置模板', enabled TINYINT(1) NOT NULL DEFAULT 1 COMMENT '是否启用', created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', UNIQUE KEY uk_template_code (template_code) ) COMMENT='格式转换模板表'; INSERT INTO biz_convert_template ( template_code, template_name, output_filename, required_source_columns_json, header_columns_json, field_mapping_json, defaults_json, preamble_lines_json, blank_header_rows_after_schema, is_default, built_in, enabled ) SELECT 'uk_offer', '英国模板', '英国.txt', JSON_ARRAY('ASIN', '价格'), JSON_ARRAY('sku', 'price', 'quantity', 'product-id', 'product-id-type', 'condition-type', 'condition-note', 'ASIN-hint', 'title', 'product-tax-code', 'operation-type', 'sale-price', 'sale-start-date', 'sale-end-date', 'leadtime-to-ship', 'launch-date', 'is-giftwrap-available', 'is-gift-message-available'), JSON_OBJECT('price', '价格', 'product-id', 'ASIN'), JSON_OBJECT('quantity', '100', 'product-id-type', 'ASIN', 'condition-type', 'new', 'leadtime-to-ship', '4'), JSON_ARRAY('TemplateType=Offer\tVersion=1.4'), 1, 1, 1, 1 WHERE NOT EXISTS ( SELECT 1 FROM biz_convert_template WHERE template_code = 'uk_offer' );