test(db): align customs baseline and relabel contracts

This commit is contained in:
2026-09-28 15:06:01 +08:00
parent f380d4ecb0
commit 7a4486b1bc
5 changed files with 73 additions and 10 deletions
@@ -1833,10 +1833,10 @@ CREATE TABLE fl_customs_customer_document (
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='客户整份退税报送资料逻辑根';
CREATE TABLE fl_customs_completion_document (
id bigint unsigned NOT NULL COMMENT '报关完成文件ID',
id bigint unsigned NOT NULL COMMENT '报关行回执文件ID',
source_document_id bigint unsigned NOT NULL COMMENT '一份冻结客户资料严格对应一份完成文件逻辑根',
file_id bigint unsigned NOT NULL COMMENT 'File服务文件ID',
file_name varchar(255) NOT NULL COMMENT '完成文件名称快照',
file_name varchar(255) NOT NULL COMMENT '回执文件名称快照',
file_hash char(64) NOT NULL COMMENT '完成文件SHA-256摘要',
content_type varchar(128) DEFAULT NULL COMMENT '完成文件媒体类型',
size_bytes bigint unsigned NOT NULL COMMENT '完成文件大小(字节)',
@@ -1844,6 +1844,11 @@ CREATE TABLE fl_customs_completion_document (
uploaded_by_name varchar(64) DEFAULT NULL COMMENT '上传操作人名称快照',
uploaded_at datetime(3) NOT NULL COMMENT '上传时间',
version int unsigned NOT NULL DEFAULT '1' COMMENT '完成文件版本号',
customer_confirm_status varchar(20) NOT NULL DEFAULT 'PENDING' COMMENT '客户回执确认状态:PENDING/CONFIRMED/REJECTED',
customer_confirmed_by bigint unsigned DEFAULT NULL COMMENT '客户确认人ID',
customer_confirmed_by_name varchar(64) DEFAULT NULL COMMENT '客户确认人名称快照',
customer_confirmed_at datetime(3) DEFAULT NULL COMMENT '客户确认时间',
customer_reject_reason varchar(500) DEFAULT NULL 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),
@@ -1944,6 +1949,56 @@ CREATE TABLE fl_customs_frozen_document_inbound (
CONSTRAINT fk_customs_frozen_document FOREIGN KEY (document_id) REFERENCES fl_customs_customer_document (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='开始报关时冻结的客户资料覆盖范围';
CREATE TABLE fl_customs_declaration_batch (
id BIGINT UNSIGNED NOT NULL COMMENT '正式申报批次ID',
customs_container_id BIGINT UNSIGNED NOT NULL COMMENT '所属整柜报关聚合ID',
loading_plan_id BIGINT UNSIGNED NOT NULL COMMENT '装柜计划ID快照',
batch_no VARCHAR(64) NULL COMMENT '平台正式申报批次号',
status VARCHAR(32) NOT NULL COMMENT '批次状态:READY/SUBMITTED/ACKNOWLEDGED/RESULT_PENDING/CLOSED/CANCELLED',
source_version INT UNSIGNED NOT NULL COMMENT '创建时整柜报关聚合版本',
source_snapshot_json JSON NOT NULL COMMENT '提交时资料、回执和确认版本快照',
customs_entry_no VARCHAR(64) NULL COMMENT '报关单号',
submitted_by BIGINT UNSIGNED NULL COMMENT '正式申报提交人',
submitted_by_name VARCHAR(64) NULL COMMENT '正式申报提交人名称快照',
submitted_at DATETIME(3) NULL COMMENT '正式申报提交时间',
acknowledged_by BIGINT UNSIGNED NULL COMMENT '报关行确认受理人',
acknowledged_by_name VARCHAR(64) NULL COMMENT '报关行确认受理人名称快照',
acknowledged_at DATETIME(3) NULL COMMENT '报关行确认受理时间',
remark VARCHAR(500) NULL COMMENT '批次说明',
version INT UNSIGNED NOT NULL DEFAULT 0 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_declaration_batch_container(customs_container_id, id),
KEY idx_customs_declaration_batch_plan(loading_plan_id,status,created_at),
CONSTRAINT fk_customs_declaration_batch_container FOREIGN KEY(customs_container_id) REFERENCES fl_customs_container(id),
CONSTRAINT chk_customs_declaration_batch_status CHECK(status IN ('READY','SUBMITTED','ACKNOWLEDGED','RESULT_PENDING','CLOSED','CANCELLED'))
) ENGINE=InnoDB COMMENT='整柜正式申报批次事实';
CREATE TABLE fl_customs_clearance_result (
id BIGINT UNSIGNED NOT NULL COMMENT '海关结果事实ID',
declaration_batch_id BIGINT UNSIGNED NOT NULL COMMENT '所属正式申报批次ID',
customs_container_id BIGINT UNSIGNED NOT NULL COMMENT '所属整柜报关聚合ID',
result_type VARCHAR(32) NOT NULL COMMENT '结果类型:INSPECTION/SUPPLEMENT_REQUIRED/RELEASED/DETAINED/OTHER',
result_status VARCHAR(16) NOT NULL DEFAULT 'OPEN' COMMENT '结果状态:OPEN/RESOLVED/CANCELLED',
customs_entry_no VARCHAR(64) NULL COMMENT '报关单号快照',
occurred_at DATETIME(3) NOT NULL COMMENT '海关事实发生时间',
resolution VARCHAR(1000) NULL COMMENT '处理结果或异常说明',
evidence_file_id BIGINT UNSIGNED NULL COMMENT '结果凭证File文件ID',
recorded_by BIGINT UNSIGNED NOT NULL COMMENT '平台录入人',
recorded_by_name VARCHAR(64) NULL COMMENT '平台录入人名称快照',
recorded_at DATETIME(3) NOT NULL COMMENT '平台录入时间',
previous_result_id BIGINT UNSIGNED NULL COMMENT '前序结果事实ID',
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),
KEY idx_customs_clearance_result_batch(declaration_batch_id,occurred_at,id),
KEY idx_customs_clearance_result_container(customs_container_id, result_type, result_status),
CONSTRAINT fk_customs_clearance_result_batch FOREIGN KEY(declaration_batch_id) REFERENCES fl_customs_declaration_batch(id),
CONSTRAINT chk_customs_clearance_result_type CHECK(result_type IN ('INSPECTION','SUPPLEMENT_REQUIRED','RELEASED','DETAINED','OTHER')),
CONSTRAINT chk_customs_clearance_result_status CHECK(result_status IN ('OPEN','RESOLVED','CANCELLED'))
) ENGINE=InnoDB COMMENT='正式申报后的海关结果不可变事实';
CREATE TABLE fl_document_sequence (
sequence_key varchar(32) NOT NULL COMMENT '单据序列键;日序列如CB:20260818,柜次长期序列固定为CABINET',
current_value int unsigned NOT NULL COMMENT '该类型当日已分配的最大序号',
@@ -8087,4 +8142,4 @@ CREATE TABLE fl_sailing_booking_link (
CONSTRAINT chk_sailing_booking_released CHECK (booking_status_snapshot='RELEASED')
) ENGINE=InnoDB COMMENT='船期计划与已放舱订舱的最小关联及历史';
SELECT 'PASS' AS initialization_status, 'CN' AS region, 221 AS initialized_tables;
SELECT 'PASS' AS initialization_status, 'CN' AS region, 223 AS initialized_tables;