完成新需求

This commit is contained in:
super
2026-03-20 14:26:34 +08:00
parent 43d508f527
commit 92d3fc965b
71 changed files with 3265 additions and 540 deletions

View File

@@ -0,0 +1,76 @@
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'
);

View File

@@ -0,0 +1,17 @@
UPDATE biz_convert_template
SET required_source_columns_json = JSON_ARRAY('ASIN', '价格'),
header_columns_json = 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'
),
field_mapping_json = JSON_OBJECT('price', '价格', 'product-id', 'ASIN'),
defaults_json = JSON_OBJECT('quantity', '100', 'product-id-type', 'ASIN', 'condition-type', 'new', 'leadtime-to-ship', '4'),
preamble_lines_json = JSON_ARRAY('TemplateType=Offer\tVersion=1.4'),
blank_header_rows_after_schema = 1,
output_filename = '英国.txt',
template_name = '英国模板',
built_in = 1,
enabled = 1,
updated_at = CURRENT_TIMESTAMP
WHERE template_code = 'uk_offer';