-- 报关两文件流程:回执与真实报关完税文件分离。 -- 仅在已确认目标测试库后执行;所有 DDL 可重复执行,不创建数据库、不写业务数据。 USE baiyue_firstleg; SET @ddl = IF(NOT EXISTS ( SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='fl_customs_container' AND column_name='broker_submitted_at' ), 'ALTER TABLE fl_customs_container ADD COLUMN broker_submitted_by BIGINT UNSIGNED NULL COMMENT ''发送报关行执行的操作人ID'' AFTER completed_at, ADD COLUMN broker_submitted_by_name VARCHAR(64) NULL COMMENT ''发送报关行执行的操作人名称'' AFTER broker_submitted_by, ADD COLUMN broker_submitted_at DATETIME(3) NULL COMMENT ''发送报关行执行时间'' AFTER broker_submitted_by_name', 'SELECT 1'); PREPARE customs_container_broker_submit_stmt FROM @ddl; EXECUTE customs_container_broker_submit_stmt; DEALLOCATE PREPARE customs_container_broker_submit_stmt; CREATE TABLE IF NOT EXISTS fl_customs_final_document ( id BIGINT UNSIGNED NOT NULL COMMENT '真实报关完税文件ID', source_document_id BIGINT UNSIGNED NOT NULL COMMENT '对应冻结客户资料ID', file_id BIGINT UNSIGNED NOT NULL COMMENT 'File服务文件ID', file_name VARCHAR(255) NOT NULL COMMENT '真实报关完税文件名称快照', file_hash CHAR(64) NOT NULL COMMENT '真实报关完税文件SHA-256摘要', content_type VARCHAR(128) NULL COMMENT '真实报关完税文件媒体类型', size_bytes BIGINT UNSIGNED NOT NULL COMMENT '真实报关完税文件大小(字节)', uploaded_by BIGINT UNSIGNED NOT NULL COMMENT '上传操作人ID', uploaded_by_name VARCHAR(64) NULL COMMENT '上传操作人名称快照', uploaded_at DATETIME(3) NOT NULL COMMENT '上传时间', version INT UNSIGNED NOT NULL DEFAULT 1 COMMENT '完税文件版本号', created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间', updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间', PRIMARY KEY(id), UNIQUE KEY uk_customs_final_source(source_document_id), CONSTRAINT fk_customs_final_source FOREIGN KEY(source_document_id) REFERENCES fl_customs_customer_document(id) ) ENGINE=InnoDB COMMENT='真实报关完税文件当前版本';