feat(phase3): 收口父子单与全链路验收
This commit is contained in:
@@ -37,6 +37,10 @@ CREATE TABLE IF NOT EXISTS ord_order (
|
||||
amazon_warehouse_code VARCHAR(32) NULL COMMENT '亚马逊仓库编码',
|
||||
shipment_id VARCHAR(64) NULL COMMENT 'Amazon Shipment ID',
|
||||
reference_id VARCHAR(64) NULL COMMENT 'Amazon Reference ID',
|
||||
order_role VARCHAR(12) NOT NULL DEFAULT 'MASTER' COMMENT '订单层级:MASTER主订单、CHILD子订单',
|
||||
parent_order_id BIGINT UNSIGNED NULL COMMENT '直属父订单ID;主订单为空;禁止子订单嵌套',
|
||||
root_order_id BIGINT UNSIGNED NULL COMMENT '根主订单ID',
|
||||
split_sequence INT UNSIGNED NULL COMMENT '同一父订单下的同级子订单顺序',
|
||||
express_company VARCHAR(64) NULL COMMENT '履约快递公司名称快照',
|
||||
express_tracking_no VARCHAR(128) NULL COMMENT '履约快递单号',
|
||||
submitted_at DATETIME(3) NULL COMMENT '提交时间',
|
||||
@@ -55,6 +59,40 @@ CREATE TABLE IF NOT EXISTS ord_order (
|
||||
KEY idx_order_tenant_warehouse (tenant_id, destination_warehouse_id)
|
||||
) ENGINE=InnoDB COMMENT='头程订单主表:保存商户委托、目的仓、运输方式和订单当前状态';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ord_order_fulfillment_split (
|
||||
id BIGINT UNSIGNED NOT NULL COMMENT '拆分台账ID',
|
||||
tenant_id BIGINT UNSIGNED NOT NULL,
|
||||
parent_order_id BIGINT UNSIGNED NOT NULL,
|
||||
child_order_id BIGINT UNSIGNED NOT NULL,
|
||||
split_role VARCHAR(12) NOT NULL COMMENT '本台账子片:LOADED或REMAINDER',
|
||||
loading_plan_id BIGINT UNSIGNED NULL COMMENT 'Firstleg装柜计划逻辑ID',
|
||||
container_booking_id BIGINT UNSIGNED NULL COMMENT 'Firstleg柜次逻辑ID',
|
||||
source_package_count INT UNSIGNED NOT NULL,
|
||||
loaded_package_count INT UNSIGNED NOT NULL,
|
||||
remaining_package_count INT UNSIGNED NOT NULL,
|
||||
source_detail_json JSON NULL COMMENT '来源货物明细及箱数快照',
|
||||
operation_id VARCHAR(64) NOT NULL,
|
||||
idempotency_key VARCHAR(128) NOT NULL,
|
||||
request_hash CHAR(64) NOT NULL,
|
||||
expected_parent_version INT NOT NULL,
|
||||
created_by BIGINT UNSIGNED NOT NULL,
|
||||
created_by_name VARCHAR(64) NULL,
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
||||
version INT NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_order_split_operation (tenant_id, operation_id, split_role),
|
||||
UNIQUE KEY uk_order_split_idempotency (tenant_id, parent_order_id, idempotency_key, split_role),
|
||||
UNIQUE KEY uk_order_split_child (tenant_id, child_order_id),
|
||||
KEY idx_order_split_parent (tenant_id, parent_order_id, created_at, id),
|
||||
KEY idx_order_split_container (tenant_id, container_booking_id, created_at, id),
|
||||
CONSTRAINT fk_order_split_parent FOREIGN KEY (parent_order_id) REFERENCES ord_order(id),
|
||||
CONSTRAINT fk_order_split_child FOREIGN KEY (child_order_id) REFERENCES ord_order(id),
|
||||
CONSTRAINT chk_order_split_quantity CHECK (
|
||||
source_package_count > 0 AND loaded_package_count > 0
|
||||
AND loaded_package_count + remaining_package_count = source_package_count
|
||||
)
|
||||
) ENGINE=InnoDB COMMENT='父订单到子订单的装柜数量及柜次关联台账';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ord_order_party (
|
||||
id BIGINT UNSIGNED NOT NULL COMMENT '参与方快照ID',
|
||||
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '数据所属租户ID',
|
||||
|
||||
Reference in New Issue
Block a user