优化
This commit is contained in:
@@ -7,12 +7,12 @@ USE baiyue_order;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ord_order (
|
||||
id BIGINT UNSIGNED NOT NULL COMMENT '订单ID(雪花ID)',
|
||||
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '数据所属租户ID',
|
||||
order_no VARCHAR(32) NOT NULL COMMENT '租户内唯一订单号',
|
||||
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '客户ID和数据隔离键',
|
||||
order_no VARCHAR(32) NOT NULL COMMENT '客户范围内唯一订单号',
|
||||
inbound_code VARCHAR(40) NULL COMMENT '客户提交后生成的入仓码,草稿为空',
|
||||
customer_id BIGINT UNSIGNED NULL COMMENT '客户逻辑ID',
|
||||
customer_name VARCHAR(128) NOT NULL COMMENT '下单时客户名称快照',
|
||||
status VARCHAR(24) NOT NULL DEFAULT 'DRAFT' COMMENT '订单业务状态',
|
||||
status VARCHAR(24) NOT NULL DEFAULT 'DRAFT' COMMENT '订单业务状态:DRAFT草稿、SUBMITTED已提交、APPROVED审核通过、ACCEPTED已接单、REJECTED审核驳回、PROCESSING履约中、COMPLETED已完成、CANCELLED已取消',
|
||||
transport_mode VARCHAR(16) NOT NULL COMMENT '运输方式',
|
||||
trade_term VARCHAR(16) NULL COMMENT '贸易条款',
|
||||
destination_country_code CHAR(2) NOT NULL COMMENT '目的国家二字码',
|
||||
@@ -33,10 +33,10 @@ CREATE TABLE IF NOT EXISTS ord_order (
|
||||
pricing_tax_mode VARCHAR(16) NULL COMMENT '报价包税维度:TAX_INCLUDED或TAX_EXCLUDED;独立于tax_mode',
|
||||
container_mode VARCHAR(24) NULL COMMENT '整柜或散货',
|
||||
customs_inspection TINYINT(1) NULL COMMENT '是否商检',
|
||||
destination_type VARCHAR(24) NULL COMMENT 'FBA/OVERSEAS/PRIVATE',
|
||||
destination_type VARCHAR(24) NULL COMMENT '目的仓类型:FBA亚马逊仓、OVERSEAS海外仓、PRIVATE私人地址',
|
||||
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',
|
||||
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',
|
||||
@@ -61,25 +61,25 @@ CREATE TABLE IF NOT EXISTS ord_order (
|
||||
|
||||
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,
|
||||
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '客户ID和数据隔离键',
|
||||
parent_order_id BIGINT UNSIGNED NOT NULL COMMENT '直属父订单ID;主订单作为拆分根',
|
||||
source_order_id BIGINT UNSIGNED NOT NULL COMMENT '本次实际消费的主订单或余量子订单ID',
|
||||
child_order_id BIGINT UNSIGNED NOT NULL,
|
||||
split_role VARCHAR(12) NOT NULL COMMENT '本台账子片:LOADED或REMAINDER',
|
||||
child_order_id BIGINT UNSIGNED NOT NULL COMMENT '本次分片承接的子订单ID',
|
||||
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_package_count INT UNSIGNED NOT NULL COMMENT '来源订单本次分片前的总包装件数',
|
||||
loaded_package_count INT UNSIGNED NOT NULL COMMENT '本次已装柜分片包装件数',
|
||||
remaining_package_count INT UNSIGNED NOT NULL COMMENT '本次分片后剩余包装件数',
|
||||
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,
|
||||
operation_id VARCHAR(64) NOT NULL COMMENT '履约分片业务操作ID',
|
||||
idempotency_key VARCHAR(128) NOT NULL COMMENT '客户端幂等键',
|
||||
request_hash CHAR(64) NOT NULL COMMENT '规范化请求内容SHA-256摘要',
|
||||
expected_parent_version INT NOT NULL COMMENT '执行前预期父订单乐观锁版本号',
|
||||
created_by BIGINT UNSIGNED NOT NULL COMMENT '创建该分片台账的用户ID',
|
||||
created_by_name VARCHAR(64) NULL COMMENT '创建人名称快照',
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '台账创建时间',
|
||||
version INT NOT NULL DEFAULT 0 COMMENT '台账乐观锁版本号',
|
||||
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),
|
||||
@@ -127,7 +127,7 @@ DELIMITER ;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ord_order_party (
|
||||
id BIGINT UNSIGNED NOT NULL COMMENT '参与方快照ID',
|
||||
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '数据所属租户ID',
|
||||
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '客户ID和数据隔离键',
|
||||
order_id BIGINT UNSIGNED NOT NULL COMMENT '所属订单ID',
|
||||
party_type VARCHAR(16) NOT NULL COMMENT '参与方类型:SHIPPER或CONSIGNEE',
|
||||
company_name VARCHAR(128) NOT NULL COMMENT '公司名称快照',
|
||||
@@ -153,7 +153,7 @@ CREATE TABLE IF NOT EXISTS ord_order_party (
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ord_order_cargo (
|
||||
id BIGINT UNSIGNED NOT NULL COMMENT '货物明细ID',
|
||||
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '数据所属租户ID',
|
||||
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '客户ID和数据隔离键',
|
||||
order_id BIGINT UNSIGNED NOT NULL COMMENT '所属订单ID',
|
||||
item_no INT NOT NULL COMMENT '订单内明细序号',
|
||||
cargo_name VARCHAR(128) NOT NULL COMMENT '货物名称',
|
||||
@@ -169,8 +169,8 @@ CREATE TABLE IF NOT EXISTS ord_order_cargo (
|
||||
currency CHAR(3) NULL COMMENT '币种三字码',
|
||||
dangerous_goods TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否危险品',
|
||||
cargo_remark VARCHAR(500) NULL COMMENT '货物备注',
|
||||
sku_no VARCHAR(64) NULL COMMENT 'SKU',
|
||||
upc_no VARCHAR(64) NULL COMMENT 'UPC',
|
||||
sku_no VARCHAR(64) NULL COMMENT '货物SKU编码',
|
||||
upc_no VARCHAR(64) NULL COMMENT '货物UPC条码',
|
||||
cargo_name_en VARCHAR(128) NULL COMMENT '英文品名',
|
||||
customs_hs_code VARCHAR(20) NULL COMMENT '目的国清关HS CODE',
|
||||
units_per_package INT UNSIGNED NULL COMMENT '每箱件数',
|
||||
@@ -201,7 +201,7 @@ CREATE TABLE IF NOT EXISTS ord_order_cargo (
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ord_order_internal_note (
|
||||
id BIGINT UNSIGNED NOT NULL COMMENT '内部备注ID',
|
||||
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '数据所属租户ID',
|
||||
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '客户ID和数据隔离键',
|
||||
order_id BIGINT UNSIGNED NOT NULL COMMENT '所属订单ID',
|
||||
content VARCHAR(2000) NOT NULL COMMENT '仅内部人员可见的备注内容',
|
||||
created_by BIGINT UNSIGNED NOT NULL COMMENT '创建人ID',
|
||||
@@ -217,7 +217,7 @@ CREATE TABLE IF NOT EXISTS ord_order_internal_note (
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ord_order_status_history (
|
||||
id BIGINT UNSIGNED NOT NULL COMMENT '状态历史ID',
|
||||
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '数据所属租户ID',
|
||||
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '客户ID和数据隔离键',
|
||||
order_id BIGINT UNSIGNED NOT NULL COMMENT '所属订单ID',
|
||||
from_status VARCHAR(24) NULL COMMENT '变更前状态,首次创建可为空',
|
||||
to_status VARCHAR(24) NOT NULL COMMENT '变更后状态',
|
||||
@@ -233,12 +233,12 @@ CREATE TABLE IF NOT EXISTS ord_order_status_history (
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ord_outbox_event (
|
||||
id BIGINT UNSIGNED NOT NULL COMMENT '领域事件全局ID,同时作为消费幂等键',
|
||||
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '事件所属租户ID',
|
||||
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '事件所属客户ID和数据隔离键',
|
||||
aggregate_type VARCHAR(32) NOT NULL COMMENT '聚合类型,例如 ORDER',
|
||||
aggregate_id BIGINT UNSIGNED NOT NULL COMMENT '发生变更的聚合根ID,例如订单ID',
|
||||
event_type VARCHAR(64) NOT NULL COMMENT '领域事件类型,例如 ORDER_SUBMITTED',
|
||||
payload_json JSON NOT NULL COMMENT '供下游消费的事件负载快照',
|
||||
publish_status VARCHAR(16) NOT NULL DEFAULT 'PENDING' COMMENT '发布状态:PENDING、PUBLISHED或FAILED',
|
||||
publish_status VARCHAR(16) NOT NULL DEFAULT 'PENDING' COMMENT '发布状态:PENDING待发布、PUBLISHED已发布、FAILED发布失败',
|
||||
retry_count INT NOT NULL DEFAULT 0 COMMENT '投递失败后的累计重试次数',
|
||||
next_retry_at DATETIME(3) NULL COMMENT '允许再次投递的最早时间',
|
||||
published_at DATETIME(3) NULL COMMENT '成功发布到消息中间件的时间',
|
||||
@@ -249,13 +249,13 @@ CREATE TABLE IF NOT EXISTS ord_outbox_event (
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ord_idempotency_record (
|
||||
id BIGINT UNSIGNED NOT NULL COMMENT '幂等记录ID',
|
||||
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '租户ID',
|
||||
tenant_id BIGINT UNSIGNED NOT NULL COMMENT '客户ID和数据隔离键',
|
||||
operator_id BIGINT UNSIGNED NOT NULL COMMENT '操作者ID',
|
||||
operation VARCHAR(32) NOT NULL COMMENT '幂等操作类型',
|
||||
resource_id BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '资源ID,创建草稿时为0',
|
||||
idempotency_key VARCHAR(128) NOT NULL COMMENT '客户端幂等键',
|
||||
request_hash CHAR(64) NOT NULL COMMENT '请求内容SHA-256摘要',
|
||||
status VARCHAR(16) NOT NULL COMMENT '处理状态:PROCESSING或COMPLETED',
|
||||
status VARCHAR(16) NOT NULL COMMENT '处理状态:PROCESSING处理中、COMPLETED已完成',
|
||||
result_order_id BIGINT UNSIGNED NULL COMMENT '成功结果订单ID',
|
||||
completed_at DATETIME(3) NULL COMMENT '处理完成时间',
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
|
||||
|
||||
Reference in New Issue
Block a user