2026-09-16 16:42:05 +08:00
-- OVERSEAS 当前纯空库初始化入口(文件名沿用原入口,不提供增量升级语义)。
2026-09-29 18:47:37 +08:00
-- MySQL 8.0+;只允许目标测试环境的服务 schema 为空,已有表立即报错;禁止 --force/遇错继续。
2026-09-16 16:42:05 +08:00
-- 字段、索引、约束及注释直接定义在 CREATE TABLE 内;不回填、不清理、不改造存量。
-- 国内 IAM 管理两区域权限;海外不访问国内库。执行方法及系统种子清单见同目录 README.md。
-- DDL 隐式提交;失败后停止,不从中间续跑,也不把部分初始化当成成功。
SET NAMES utf8mb4 COLLATE utf8mb4_0900_ai_ci ;
SET SESSION sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' ;
2026-08-26 11:06:24 +08:00
2026-09-16 16:42:05 +08:00
-- 服务 schema: baiyue_lastleg
2026-09-09 23:46:21 +08:00
CREATE DATABASE IF NOT EXISTS baiyue_lastleg DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ;
USE baiyue_lastleg ;
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_cargo_discard_application (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
2026-10-08 15:55:47 +08:00
customer_confirmed_at datetime ( 3 ) DEFAULT NULL COMMENT '客户确认完成时间' ,
2026-09-16 16:42:05 +08:00
discard_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '废弃申请单号' ,
overseas_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '海外仓ID' ,
overseas_warehouse_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '海外仓名称快照' ,
inbound_codes varchar ( 2000 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '入仓单号集合' ,
total_packages int NOT NULL COMMENT '总箱数' ,
fee_per_package decimal ( 18 , 2 ) NOT NULL COMMENT '每箱处理费用' ,
total_fee decimal ( 18 , 2 ) NOT NULL COMMENT '费用合计' ,
currency char ( 3 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'USD' COMMENT '币种' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING_REVIEW' COMMENT '业务状态' ,
remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注' ,
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务幂等键' ,
request_hash char ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求内容哈希' ,
created_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建人ID' ,
reviewed_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '审核人ID' ,
review_remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '审核备注' ,
review_idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '审核幂等键' ,
review_request_hash char ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '审核请求内容哈希' ,
reviewed_at datetime ( 3 ) 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 ),
UNIQUE KEY uk_ll_cargo_discard_no ( customer_id , discard_no ),
UNIQUE KEY uk_ll_cargo_discard_key ( customer_id , idempotency_key ),
KEY idx_ll_cargo_discard_list ( customer_id , status , created_at ),
KEY idx_ll_cargo_discard_warehouse ( customer_id , overseas_warehouse_id , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '货物废弃申请单' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_cargo_discard_carton (
id bigint NOT NULL COMMENT '主键ID' ,
application_id bigint NOT NULL COMMENT '申请单ID' ,
item_id bigint NOT NULL COMMENT '明细ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
carton_id bigint NOT NULL COMMENT '箱唛记录ID' ,
carton_mark varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '箱唛' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_cargo_discard_carton ( application_id , carton_id ),
KEY idx_ll_cargo_discard_carton_application ( customer_id , application_id , item_id ),
KEY idx_ll_cargo_discard_carton_identity ( customer_id , carton_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '货物废弃锁定箱明细' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_cargo_discard_item (
id bigint NOT NULL COMMENT '主键ID' ,
application_id bigint NOT NULL COMMENT '申请单ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
2026-09-28 11:59:08 +08:00
order_id bigint DEFAULT NULL COMMENT '一件代发订单ID' ,
source_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'DROPSHIP' COMMENT '库存来源:一件代发DROPSHIP、退货箱RETURN_CARTON' ,
return_carton_id bigint DEFAULT NULL COMMENT '退货库存箱ID' ,
2026-09-16 16:42:05 +08:00
inbound_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '入仓单号快照' ,
2026-09-28 11:59:08 +08:00
profile_id bigint DEFAULT NULL COMMENT '托盘档案ID' ,
sku_inventory_id bigint DEFAULT NULL COMMENT 'SKU库存记录ID' ,
2026-09-16 16:42:05 +08:00
sku_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'SKU编码' ,
product_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '产品名称' ,
available_packages_snapshot int NOT NULL COMMENT '可用箱数快照' ,
discard_packages int NOT NULL COMMENT '申请废弃箱数' ,
2026-10-08 15:55:47 +08:00
completion_photo_file_ids text COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'PDA完工照片文件ID JSON数组' ,
2026-09-16 16:42:05 +08:00
actual_discard_packages int DEFAULT NULL COMMENT 'PDA确认实际废弃箱数' ,
pda_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING' COMMENT 'PDA处理状态:待处理PENDING、已完成COMPLETED' ,
pda_operator_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'PDA操作人' ,
pda_completed_at datetime ( 3 ) DEFAULT NULL COMMENT 'PDA完成时间' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_cargo_discard_item ( application_id , profile_id , sku_code ),
KEY idx_ll_cargo_discard_item_list ( customer_id , application_id ),
KEY idx_ll_cargo_discard_item_inbound ( customer_id , inbound_code , sku_code )
2026-09-28 11:59:08 +08:00
, KEY idx_ll_cargo_discard_return_carton ( customer_id , return_carton_id )
2026-09-16 16:42:05 +08:00
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '货物废弃SKU明细' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_cargo_discard_status_history (
id bigint NOT NULL COMMENT '主键ID' ,
application_id bigint NOT NULL COMMENT '申请单ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
from_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '变更前状态' ,
to_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '变更后状态' ,
operator_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作人ID' ,
remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
PRIMARY KEY ( id ),
KEY idx_ll_cargo_discard_history ( customer_id , application_id , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '货物废弃审批历史' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_container_arrival_time_operation (
id bigint NOT NULL COMMENT '柜级预计到仓时间修改操作ID' ,
source_container_booking_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '稳定来源柜预订ID' ,
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '平台请求幂等键' ,
request_hash varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '规范化修改请求SHA-256摘要' ,
result_version int NOT NULL COMMENT '修改成功后的柜级时间版本' ,
operator_name varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '平台操作人名称' ,
remark varchar ( 500 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '预计到仓时间修改备注' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '操作时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_container_arrival_time_idempotency ( idempotency_key ),
KEY idx_ll_container_arrival_time_container ( source_container_booking_id , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '柜级预计到仓时间修改幂等审计记录' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_container_loading_evidence (
id bigint NOT NULL COMMENT '海外整柜装柜照片投影ID' ,
source_container_booking_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '国内稳定来源柜预订ID' ,
evidence_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PHOTO_STEP_1至PHOTO_STEP_4或SEAL' ,
source_file_id bigint NOT NULL COMMENT '国内File服务文件ID' ,
file_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '国内文件名快照' ,
created_at datetime ( 3 ) NOT NULL COMMENT '投影创建时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_container_loading_evidence_type ( source_container_booking_id , evidence_type ),
UNIQUE KEY uk_ll_container_loading_evidence_file ( source_container_booking_id , source_file_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '海外拆柜只读国内装柜照片引用' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_container_plan_conversion_command (
id bigint NOT NULL COMMENT '柜级转换命令ID' ,
source_container_booking_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '稳定来源柜预订ID' ,
idempotency_key varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '调用方幂等键' ,
request_hash char ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '确认请求SHA-256摘要' ,
snapshot_version bigint NOT NULL COMMENT '确认的柜级快照版本' ,
snapshot_hash char ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '确认的柜级快照SHA-256' ,
warehouse_id bigint NOT NULL COMMENT '海外接柜仓ID' ,
batch_key varchar ( 160 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '海外仓托盘批次幂等键' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '命令状态:PREPARED/APPLYING/FAILED/LOCAL_COMMITTED/COMPLETED' ,
lease_token varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '当前执行租约令牌,用于陈旧执行者隔离' ,
preparation_json json NOT NULL COMMENT '稳定计划号与托盘业务键快照' ,
result_json json DEFAULT NULL COMMENT '本地计划提交结果' ,
last_error varchar ( 1000 ) COLLATE utf8mb4_unicode_ci 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 ),
UNIQUE KEY uk_ll_container_conversion_command ( source_container_booking_id ),
UNIQUE KEY uk_ll_container_conversion_batch ( warehouse_id , batch_key ),
KEY idx_ll_container_conversion_status ( status , updated_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '柜级入库计划转换Saga与幂等命令' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_container_shipping_gate (
container_booking_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源头程柜预订ID' ,
ocean_booking_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源海运订舱ID;货柜未关联订舱时为空' ,
container_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '实际集装箱号' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'AWAITING_PICKUP_READY' COMMENT '海外收货门禁状态:AWAITING_PICKUP_READY、RECEIVING_AVAILABLE' ,
standard_node varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '最新有效标准船节点' ,
node_sequence int NOT NULL DEFAULT '0' COMMENT '最新有效节点单调序号' ,
observed_at datetime ( 3 ) DEFAULT NULL COMMENT '供应商节点观测时间' ,
actual_at datetime ( 3 ) DEFAULT NULL COMMENT '节点实际发生时间' ,
location_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '节点地点编码' ,
location_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '节点地点名称' ,
provider_code varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '船节点供应商编码' ,
provider_event_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '供应商事件ID' ,
provider_node_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '供应商原始节点编码' ,
source_reference varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '供应商来源引用' ,
raw_payload_hash varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '供应商原始负载SHA-256' ,
aggregate_version bigint NOT NULL DEFAULT '0' COMMENT '来源查询聚合版本' ,
handover_version bigint NOT NULL DEFAULT '1' COMMENT '跨区交接版本' ,
last_event_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '最近采纳的跨区事件ID' ,
payload_hash varchar ( 71 ) COLLATE utf8mb4_unicode_ci 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 ( container_booking_id ),
KEY idx_ll_shipping_gate_version ( container_booking_id , aggregate_version , node_sequence ),
KEY idx_ll_shipping_gate_candidate ( container_no , status )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '海外PDA柜号船节点收货资格快照' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_customer_visit (
id bigint NOT NULL COMMENT '客户回访记录ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键' ,
delivery_order_id bigint NOT NULL COMMENT '关联派送单ID' ,
delivery_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '关联派送单号' ,
customer_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户名称快照' ,
contact_name varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户联系人姓名快照' ,
contact_phone varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户联系人电话快照' ,
destination varchar ( 500 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '派送目的仓编码汇总快照' ,
delivery_completed_at datetime ( 3 ) NOT NULL COMMENT '派送完成时间' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING' COMMENT '回访状态:PENDING待回访或COMPLETED已回访' ,
selected_last_mile_order_id bigint DEFAULT NULL COMMENT '本次回访选择的尾程订单ID' ,
selected_last_mile_order_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本次回访选择的尾程订单号' ,
selected_inbound_order_id bigint DEFAULT NULL COMMENT '本次回访选择的入仓单ID' ,
selected_inbound_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本次回访选择的入仓码' ,
visit_result varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '最近一次回访结果' ,
customer_feedback varchar ( 2000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '最近一次客户反馈' ,
remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '最近一次回访备注' ,
attachment_json json DEFAULT NULL COMMENT '当前回访资料文件元数据列表' ,
visited_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '最近一次回访操作人ID' ,
visited_at datetime ( 3 ) DEFAULT NULL COMMENT '最近一次回访时间' ,
visit_count int 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_ll_customer_visit_delivery ( customer_id , delivery_order_id ),
KEY idx_ll_customer_visit_list ( customer_id , status , delivery_completed_at ),
KEY idx_ll_customer_visit_delivery_no ( customer_id , delivery_no )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '派送单维度客户回访记录' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_delivery_document_revision (
id bigint NOT NULL COMMENT '派送资料历史ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '派送所属客户隔离键' ,
delivery_order_id bigint NOT NULL COMMENT '派送单ID' ,
version bigint NOT NULL COMMENT '保存成功时派送单版本' ,
idempotency_key varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '资料保存幂等键' ,
request_hash varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '完整保存请求哈希' ,
snapshot_json json NOT NULL COMMENT '不可变三类资料及BOL号结果快照' ,
operator_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '保存操作人ID' ,
created_at datetime ( 3 ) NOT NULL COMMENT '资料保存时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_delivery_document_command ( customer_id , delivery_order_id , idempotency_key ),
UNIQUE KEY uk_delivery_document_version ( customer_id , delivery_order_id , version )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '派送资料版本历史与幂等保存记录' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_delivery_operation (
id bigint NOT NULL COMMENT '派送操作主键' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键' ,
delivery_order_id bigint NOT NULL COMMENT '派送单ID' ,
operation_node varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作节点' ,
operator_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作人ID' ,
operator_name varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作人名称' ,
result varchar ( 500 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '处理结果' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '操作时间' ,
PRIMARY KEY ( id ),
KEY idx_ll_delivery_operation_order ( customer_id , delivery_order_id , created_at , id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '派送单操作记录' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_delivery_order (
id bigint NOT NULL COMMENT '派送单主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键' ,
delivery_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '派送单号' ,
outbound_order_id bigint NOT NULL COMMENT '关联出库单ID' ,
outbound_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '关联出库单号' ,
2026-09-17 17:37:29 +08:00
dispatch_order_id bigint DEFAULT NULL COMMENT '关联派车单ID,仓储转运直接出库时为空' ,
dispatch_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '关联派车单号,仓储转运直接出库时为空' ,
2026-09-16 16:42:05 +08:00
overseas_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '海外仓ID' ,
overseas_warehouse_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '海外仓名称快照' ,
customer_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户名称快照' ,
destination_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本派送单目的FBA仓ID快照' ,
2026-09-17 17:37:29 +08:00
destination_warehouse_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本派送单目的FBA仓编码快照,私人仓为空' ,
2026-09-16 16:42:05 +08:00
destination_warehouse_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本派送单目的FBA仓名称快照' ,
2026-09-17 17:37:29 +08:00
destination_type varchar ( 16 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的地类型:FBA或PRIVATE' ,
delivery_address varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓派送地址' ,
postal_code varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓邮编' ,
contact_name varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓联系人' ,
contact_phone varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓联系电话' ,
2026-09-16 16:42:05 +08:00
delivery_group_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '同一出库单内按目的FBA仓拆单的稳定分组键' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'WAIT_DELIVERY' COMMENT '派送状态:WAIT_DELIVERY待派送及后续正式状态' ,
waybill_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '承运运单号' ,
bol_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '派送资料BOL号,不作为文件归属标识' ,
documents_json json DEFAULT NULL COMMENT '派送三类资料当前绑定及权威文件元数据快照' ,
delivery_method varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '派送方式' ,
carrier_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '派送承运商' ,
pickup_method varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '提货方式' ,
loading_type varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '装车类型' ,
vehicle_type varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '车辆类型' ,
vehicle_size varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '车辆大小' ,
vehicle_plate varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '车牌号' ,
driver_name varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '司机或车队名称' ,
driver_phone varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '车队联系电话' ,
appointment_account varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '预约账号' ,
seller_name varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '卖家姓名' ,
package_count int NOT NULL DEFAULT '0' COMMENT '派送箱数' ,
pallet_count int NOT NULL DEFAULT '0' COMMENT '派送托盘数' ,
2026-10-03 04:18:52 +08:00
total_weight_kg DECIMAL ( 18 , 4 ) NULL COMMENT '总重量(千克),任一来源未确认时为空' ,
2026-09-16 16:42:05 +08:00
total_volume_cbm decimal ( 18 , 4 ) NOT NULL DEFAULT '0.0000' COMMENT '总体积(立方米)' ,
planned_delivery_at datetime ( 3 ) DEFAULT NULL COMMENT '预计派送时间' ,
dispatched_at datetime ( 3 ) DEFAULT NULL COMMENT '实际派送时间' ,
expected_arrival_at datetime ( 3 ) DEFAULT NULL COMMENT '预计到达时间' ,
signed_at datetime ( 3 ) DEFAULT NULL COMMENT '签收时间' ,
remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '派送备注' ,
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务幂等键' ,
created_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建人ID' ,
version bigint 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 '更新时间' ,
2026-10-03 13:32:55 +08:00
signed_packages INT NULL COMMENT '保存签收资料时冻结的实际签收箱数,不含此前已退回量' ,
CONSTRAINT chk_delivery_signed_packages CHECK ( signed_packages IS NULL OR ( signed_packages >= 0 AND signed_packages <= package_count )),
2026-09-09 23:46:21 +08:00
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_delivery_no ( customer_id , delivery_no ),
UNIQUE KEY uk_ll_delivery_idempotency ( customer_id , idempotency_key ),
2026-09-15 11:54:14 +08:00
UNIQUE KEY uk_ll_delivery_outbound_destination ( customer_id , outbound_order_id , delivery_group_key ),
2026-09-09 23:46:21 +08:00
KEY idx_ll_delivery_list ( customer_id , status , created_at )
2026-09-16 16:42:05 +08:00
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '尾程派送单' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_destuff_pallet_cost (
id bigint NOT NULL COMMENT '主键ID' ,
source_container_booking_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源柜次业务ID' ,
container_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '集装箱号' ,
warehouse_id bigint DEFAULT NULL COMMENT '海外仓ID' ,
pallet_count int NOT NULL COMMENT '实际打托数' ,
total_actual_volume_cbm decimal ( 20 , 6 ) NOT NULL COMMENT '客户实收总体积' ,
total_cost decimal ( 20 , 2 ) NOT NULL COMMENT '打托总成本' ,
currency char ( 3 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'CNY' COMMENT '成本币种' ,
status varchar ( 16 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '生成状态' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
2026-09-09 23:46:21 +08:00
PRIMARY KEY ( id ),
2026-09-16 16:42:05 +08:00
UNIQUE KEY uk_ll_destuff_cost_booking ( source_container_booking_id ),
CONSTRAINT chk_ll_destuff_cost CHECK ((( pallet_count > 0 ) and ( total_actual_volume_cbm > 0 ) and ( total_cost > 0 ) and ( currency = _utf8mb4 'CNY' )))
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '拆柜打托实际成本汇总' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_destuff_pallet_cost_allocation (
id bigint NOT NULL COMMENT '主键ID' ,
cost_id bigint NOT NULL COMMENT '打托成本汇总ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户ID' ,
actual_volume_cbm decimal ( 20 , 6 ) NOT NULL COMMENT '客户实收体积' ,
allocated_amount decimal ( 20 , 2 ) NOT NULL COMMENT '客户分摊金额' ,
fee_source_id bigint NOT NULL COMMENT '海外费用来源ID' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
2026-09-09 23:46:21 +08:00
PRIMARY KEY ( id ),
2026-09-16 16:42:05 +08:00
UNIQUE KEY uk_ll_destuff_customer ( cost_id , customer_id ),
UNIQUE KEY uk_ll_destuff_fee_source ( fee_source_id ),
CONSTRAINT chk_ll_destuff_allocation CHECK ((( actual_volume_cbm > 0 ) and ( allocated_amount >= 0 )))
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '拆柜打托成本按客户实收体积分摊' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_dispatch_draft (
id bigint NOT NULL COMMENT '主键ID' ,
draft_token varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '智能排车草稿随机标识' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户租户ID' ,
operator_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '草稿操作人ID' ,
plan_ids_json varchar ( 4000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '所选入仓计划ID列表JSON' ,
containers_json longtext COLLATE utf8mb4_unicode_ci COMMENT '草稿装车布局JSON快照' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'ACTIVE' COMMENT '草稿状态' ,
expires_at datetime ( 3 ) DEFAULT NULL COMMENT '草稿失效时间' ,
released_at datetime ( 3 ) 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 '更新时间' ,
2026-09-09 23:46:21 +08:00
PRIMARY KEY ( id ),
2026-09-16 16:42:05 +08:00
UNIQUE KEY uk_ll_dispatch_draft_token ( draft_token ),
KEY idx_ll_dispatch_draft_operator ( operator_id , status )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '智能排车草稿' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_dispatch_draft_container (
id bigint NOT NULL COMMENT '主键ID' ,
draft_id bigint NOT NULL COMMENT '智能排车草稿ID' ,
draft_token varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '智能排车草稿随机标识' ,
sequence_no int NOT NULL COMMENT '草稿车厢顺序号' ,
capacity int NOT 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 '更新时间' ,
2026-09-09 23:46:21 +08:00
PRIMARY KEY ( id ),
2026-09-16 16:42:05 +08:00
KEY idx_ll_dispatch_draft_container_token ( draft_token )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '智能排车草稿装车托盘' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_dispatch_item (
id bigint NOT NULL COMMENT '主键ID' ,
dispatch_order_id bigint NOT NULL COMMENT '派车单ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
plan_id bigint DEFAULT NULL COMMENT '入仓计划ID' ,
plan_pallet_id bigint DEFAULT NULL COMMENT '计划托盘ID' ,
warehouse_pallet_id bigint DEFAULT NULL COMMENT '仓库实物托盘ID' ,
order_id bigint DEFAULT NULL COMMENT '订单ID' ,
order_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '订单号' ,
order_refs varchar ( 2000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '关联订单信息' ,
inbound_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '入仓单号快照' ,
pallet_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '托盘号' ,
overseas_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '海外仓ID' ,
overseas_warehouse_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '海外仓名称快照' ,
destination_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓ID' ,
destination_warehouse_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓编码快照' ,
destination_warehouse_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓名称快照' ,
fba_warehouse_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'FBA仓库编码' ,
2026-09-17 17:37:29 +08:00
destination_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的类型:FBA或PRIVATE' ,
delivery_address varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓目的地址快照' ,
postal_code varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓邮编快照' ,
contact_name varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓联系人快照' ,
contact_phone varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓联系电话快照' ,
2026-09-16 16:42:05 +08:00
package_count int NOT NULL DEFAULT '0' COMMENT '箱数' ,
2026-10-03 04:18:52 +08:00
gross_weight_kg DECIMAL ( 18 , 3 ) NULL COMMENT '毛重(千克),未知为NULL,不以材积重代替' ,
2026-09-18 14:58:40 +08:00
volume_weight_kg decimal ( 18 , 3 ) NOT NULL DEFAULT '0.000' COMMENT '材积重(千克)' ,
2026-09-16 16:42:05 +08:00
volume_cbm decimal ( 18 , 4 ) NOT NULL DEFAULT '0.0000' COMMENT '体积(立方米)' ,
source_stage varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '数据来源阶段' ,
carton_marks varchar ( 4000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '换标箱唛映射快照' ,
source_business_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源业务类型' ,
source_business_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源业务单号' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
2026-10-03 16:06:54 +08:00
return_receipt_id BIGINT NULL COMMENT '明确选用的真实退回入仓来源' ,
2026-09-09 23:46:21 +08:00
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_dispatch_item_source ( dispatch_order_id , plan_pallet_id , warehouse_pallet_id ),
KEY idx_ll_dispatch_item_order ( customer_id , order_id ),
KEY idx_ll_dispatch_item_inbound ( customer_id , inbound_code ),
KEY idx_ll_dispatch_item_pallet ( customer_id , plan_pallet_id , warehouse_pallet_id )
2026-09-16 16:42:05 +08:00
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '派车货物冻结明细' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_dispatch_order (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
dispatch_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '派车单号' ,
overseas_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '海外仓ID' ,
overseas_warehouse_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '海外仓名称快照' ,
vehicle_plate varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '车牌号' ,
driver_name varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '司机姓名' ,
driver_phone varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '司机电话' ,
carrier_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '承运商名称' ,
route varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '运输路线' ,
depart_at datetime ( 3 ) DEFAULT NULL COMMENT '发车时间' ,
fba_appointment_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'FBA预约号' ,
fba_appointment_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING' COMMENT 'FBA预约状态' ,
vehicle_appointment_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING' COMMENT '车辆预约状态' ,
estimated_arrival_at datetime ( 3 ) DEFAULT NULL COMMENT '预计到达时间' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING_DEPARTURE' COMMENT '业务状态' ,
item_count int NOT NULL DEFAULT '0' COMMENT '明细数量' ,
pallet_count int NOT NULL DEFAULT '0' COMMENT '托盘数' ,
package_count int NOT NULL DEFAULT '0' COMMENT '箱数' ,
picked_package_count int NOT NULL DEFAULT '0' COMMENT 'PDA累计已拣箱数' ,
shipped_package_count int NOT NULL DEFAULT '0' COMMENT '累计已出库箱数' ,
partial_completion_reason varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '部分完成原因' ,
created_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT 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 ),
UNIQUE KEY uk_ll_dispatch_order_no ( dispatch_no ),
KEY idx_ll_dispatch_order_list ( customer_id , status , depart_at ),
KEY idx_ll_dispatch_order_vehicle ( customer_id , vehicle_plate )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '尾程派车单' ;
2026-09-10 22:43:11 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_dispatch_pallet_lock (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
source_pallet_key varchar ( 160 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源托盘业务键' ,
active_key varchar ( 160 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '生效中的资源排他键' ,
plan_id bigint DEFAULT NULL COMMENT '入仓计划ID' ,
plan_pallet_id bigint DEFAULT NULL COMMENT '计划托盘ID' ,
warehouse_pallet_id bigint DEFAULT NULL COMMENT '仓库实物托盘ID' ,
dispatch_order_id bigint DEFAULT NULL COMMENT '正式派车单ID,草稿锁阶段为空' ,
draft_container_id bigint DEFAULT NULL COMMENT '智能排车草稿装车托盘ID' ,
draft_token varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '智能排车草稿随机标识' ,
operator_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '草稿锁操作人ID' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'ACTIVE' COMMENT '业务状态' ,
locked_at datetime ( 3 ) NOT NULL COMMENT '锁定时间' ,
expires_at datetime ( 3 ) DEFAULT NULL COMMENT '草稿锁失效时间,正式派车锁为空' ,
released_at datetime ( 3 ) 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 '更新时间' ,
2026-10-03 16:06:54 +08:00
return_receipt_id BIGINT NULL COMMENT '明确选用的真实退回入仓来源' ,
2026-09-09 23:46:21 +08:00
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_dispatch_active_pallet ( customer_id , active_key ),
KEY idx_ll_dispatch_pallet_lock_order ( customer_id , dispatch_order_id , status ),
KEY idx_ll_dispatch_pallet_lock_source ( customer_id , source_pallet_key , status )
2026-09-16 16:42:05 +08:00
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '派车托盘排他锁' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_dispatch_pda_operation (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
task_id bigint DEFAULT NULL COMMENT 'PDA任务ID' ,
operation_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PDA操作类型' ,
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务幂等键' ,
request_hash char ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求内容哈希' ,
result_json longtext COLLATE utf8mb4_unicode_ci COMMENT '处理结果JSON' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PDA操作处理状态' ,
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_ll_dispatch_pda_operation_key ( customer_id , idempotency_key )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '派车PDA操作幂等记录' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_dispatch_pda_pick (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
task_id bigint NOT NULL COMMENT 'PDA任务ID' ,
dispatch_item_id bigint NOT NULL COMMENT '派车明细ID' ,
inventory_position_id bigint NOT NULL COMMENT '库存仓位记录ID' ,
packages bigint NOT NULL COMMENT '本次操作箱数' ,
product_quantity bigint NOT NULL DEFAULT '0' COMMENT '产品数量' ,
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务幂等键' ,
picked_at datetime ( 3 ) NOT NULL COMMENT '拣货时间' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_dispatch_pda_pick_key ( customer_id , idempotency_key ),
2026-09-09 23:46:21 +08:00
KEY idx_ll_dispatch_pda_pick_item ( customer_id , task_id , dispatch_item_id )
2026-09-16 16:42:05 +08:00
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '派车PDA拣货记录' ;
2026-09-09 23:46:21 +08:00
2026-10-03 16:06:54 +08:00
CREATE TABLE ll_return_stock_receipt (
id BIGINT NOT NULL COMMENT '退回入仓实收凭据ID' ,
customer_id VARCHAR ( 128 ) NOT NULL COMMENT '客户数据归属' ,
receipt_no VARCHAR ( 64 ) NOT NULL COMMENT '退回实收业务编号' ,
inventory_ledger_id BIGINT NOT NULL COMMENT '唯一实际退回入账流水' ,
exception_order_id BIGINT NOT NULL COMMENT '退回异常订单' ,
order_id BIGINT NOT NULL COMMENT '原尾程订单' ,
inbound_order_id BIGINT NOT NULL COMMENT '原入仓单' ,
source_outbound_no VARCHAR ( 64 ) NOT NULL COMMENT '原发运出库业务编号' ,
source_outbound_pallet_item_id BIGINT NOT NULL COMMENT '原出库托盘明细' ,
source_inventory_position_id BIGINT NOT NULL COMMENT '原拣货库存位置' ,
inventory_balance_id BIGINT NOT NULL COMMENT '实际退回库存余额' ,
inventory_position_id BIGINT NOT NULL COMMENT '实际退回库存位置' ,
received_packages BIGINT NOT NULL COMMENT '实际退回箱数,不增加原订单箱数' ,
received_at DATETIME ( 3 ) NOT NULL COMMENT '实际退回入账时间' ,
created_at DATETIME ( 3 ) NOT NULL COMMENT '凭据记录时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_return_stock_receipt_no ( customer_id , receipt_no ),
UNIQUE KEY uk_return_stock_receipt_ledger ( customer_id , inventory_ledger_id ),
KEY idx_return_stock_receipt_order ( customer_id , order_id ),
KEY idx_return_stock_receipt_position ( customer_id , inventory_balance_id , inventory_position_id ),
CONSTRAINT chk_return_stock_receipt_packages CHECK ( received_packages > 0 )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '真实退回入仓及再次发运来源凭据' ;
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_dispatch_pda_pick_order (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
pick_id bigint NOT NULL COMMENT 'PDA拣货记录ID' ,
2026-10-03 16:06:54 +08:00
receipt_id BIGINT NULL COMMENT '入仓实收记录ID' ,
2026-09-16 16:42:05 +08:00
order_id bigint NOT NULL COMMENT '订单ID' ,
packages bigint NOT NULL COMMENT '本次操作箱数' ,
product_quantity bigint NOT NULL DEFAULT '0' COMMENT '产品数量' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
2026-10-03 16:06:54 +08:00
return_receipt_id BIGINT NULL COMMENT '明确选用的真实退回入仓来源' ,
KEY idx_dispatch_pick_return_receipt ( customer_id , return_receipt_id ),
CONSTRAINT chk_dispatch_pick_receipt_source CHECK (( receipt_id IS NOT NULL AND return_receipt_id IS NULL ) OR ( receipt_id IS NULL AND return_receipt_id IS NOT NULL )),
2026-09-16 16:42:05 +08:00
PRIMARY KEY ( id ),
KEY idx_ll_dispatch_pick_order_pick ( customer_id , pick_id ),
2026-09-09 23:46:21 +08:00
KEY idx_ll_dispatch_pick_order_receipt ( customer_id , receipt_id )
2026-09-16 16:42:05 +08:00
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'PDA拣货订单归属记录' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_dispatch_pda_task (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
dispatch_order_id bigint NOT NULL COMMENT '派车单ID' ,
task_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PDA任务号' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务状态' ,
operator_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作人ID' ,
warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Token绑定的海外仓库ID' ,
operator_name varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作人姓名' ,
pushed_at datetime ( 3 ) NOT NULL COMMENT '任务下发时间' ,
completed_at datetime ( 3 ) 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 ),
UNIQUE KEY uk_ll_dispatch_pda_task_dispatch ( customer_id , dispatch_order_id ),
UNIQUE KEY uk_ll_dispatch_pda_task_no ( task_no )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '派车PDA拣货任务' ;
CREATE TABLE ll_dropship_carton (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
order_id bigint NOT NULL COMMENT '订单ID' ,
profile_id bigint NOT NULL COMMENT '托盘档案ID' ,
warehouse_pallet_id bigint DEFAULT NULL COMMENT '仓库实物托盘ID' ,
pallet_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '托盘号' ,
sku_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'SKU编码' ,
carton_mark varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '箱唛' ,
product_quantity bigint NOT NULL COMMENT '该箱实收商品件数' ,
carton_sequence int NOT NULL COMMENT '箱唛序号' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING_INBOUND' COMMENT '业务状态' ,
outbound_order_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '出库单号' ,
version bigint 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_ll_dropship_carton ( customer_id , order_id , carton_mark ),
KEY idx_ll_dropship_carton_status ( customer_id , status ),
KEY idx_ll_dropship_carton_sku ( customer_id , sku_code , status )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '一件代发箱唛明细' ;
2026-09-16 20:49:35 +08:00
CREATE TABLE ll_dropship_carton_sku (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键' ,
order_id bigint NOT NULL COMMENT '尾程订单ID' ,
profile_id bigint NOT NULL COMMENT '一件代发托盘档案ID' ,
carton_id bigint NOT NULL COMMENT '一件代发物理箱ID' ,
sku_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '箱内SKU编码' ,
product_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '产品名称快照' ,
product_quantity bigint NOT NULL COMMENT '该物理箱内此SKU实收件数' ,
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_ll_dropship_carton_sku ( carton_id , sku_code ),
KEY idx_ll_dropship_carton_sku_order ( customer_id , order_id , sku_code ),
KEY idx_ll_dropship_carton_sku_profile ( customer_id , profile_id , sku_code )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '一件代发物理箱内SKU明细' ;
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_dropship_carton_ledger (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
order_id bigint NOT NULL COMMENT '订单ID' ,
carton_id bigint NOT NULL COMMENT '箱唛记录ID' ,
carton_mark varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '箱唛' ,
sku_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'SKU编码' ,
operation_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作类型' ,
before_packages bigint NOT NULL COMMENT '变动前箱数' ,
delta_packages bigint NOT NULL COMMENT '箱数变动量' ,
after_packages bigint NOT NULL COMMENT '变动后箱数' ,
business_order_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '业务单号' ,
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务幂等键' ,
remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注' ,
occurred_at datetime ( 3 ) NOT NULL COMMENT '业务发生时间' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_dropship_ledger_key ( customer_id , idempotency_key ),
KEY idx_ll_dropship_ledger_sku ( customer_id , sku_code , carton_mark )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '一件代发箱唛库存流水' ;
CREATE TABLE ll_dropship_order_profile (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
order_id bigint NOT NULL COMMENT '订单ID' ,
warehouse_pallet_id bigint DEFAULT NULL COMMENT '仓库实物托盘ID' ,
pallet_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '托盘号' ,
source_pallet_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源托盘号快照' ,
manifest_version int NOT NULL COMMENT '整托清单版本' ,
manifest_package_count int NOT NULL COMMENT '整托总箱数' ,
manifest_fragment_count int NOT NULL COMMENT '整托客户分片总数' ,
manifest_hash char ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '整托完整清单摘要' ,
inventory_position_id bigint DEFAULT NULL COMMENT '库存仓位记录ID' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING_INBOUND' COMMENT '业务状态' ,
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务幂等键' ,
version bigint 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_ll_dropship_profile_order_pallet ( customer_id , order_id , source_pallet_no ),
UNIQUE KEY uk_ll_dropship_profile_key ( customer_id , idempotency_key ),
KEY idx_ll_dropship_profile_order ( customer_id , order_id ),
KEY idx_ll_dropship_profile_manifest ( source_pallet_no , manifest_hash )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '一件代发托盘档案' ;
CREATE TABLE ll_dropship_sku_inventory (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
order_id bigint NOT NULL COMMENT '订单ID' ,
profile_id bigint NOT NULL COMMENT '托盘档案ID' ,
sku_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'SKU编码' ,
product_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '产品名称' ,
package_count bigint NOT NULL COMMENT '箱数' ,
product_quantity bigint NOT 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 ),
UNIQUE KEY uk_ll_dropship_sku_inventory ( profile_id , sku_code ),
KEY idx_ll_dropship_sku_order ( customer_id , order_id , sku_code )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '一件代发SKU库存汇总' ;
CREATE TABLE ll_event_conflict (
id bigint NOT NULL COMMENT '冲突记录主键' ,
event_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '冲突事件 ID' ,
customer_id bigint NOT NULL COMMENT '租户 ID' ,
conflict_type varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '冲突类型' ,
conflict_message varchar ( 512 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '冲突说明' ,
created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间' ,
PRIMARY KEY ( id ),
KEY idx_ll_conflict_event ( event_id , customer_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '事件冲突记录' ;
CREATE TABLE ll_event_inbox (
id bigint NOT NULL COMMENT '事件接收记录主键' ,
event_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '事件全局唯一 ID' ,
customer_id bigint NOT NULL COMMENT '租户 ID' ,
event_type varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '事件类型' ,
aggregate_type varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '聚合类型' ,
aggregate_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '聚合 ID' ,
aggregate_version bigint NOT NULL COMMENT '聚合版本' ,
payload_hash varchar ( 71 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '负载摘要' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '消费状态' ,
error_message varchar ( 512 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '错误信息' ,
created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间' ,
updated_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_inbox_event ( event_id ),
KEY idx_ll_inbox_source ( customer_id , aggregate_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '通用事件接收幂等箱' ;
CREATE TABLE ll_event_outbox (
id bigint NOT NULL COMMENT '事件主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
aggregate_type varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '聚合类型' ,
aggregate_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '聚合标识' ,
event_type varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '事件类型' ,
event_version int NOT NULL COMMENT '事件版本' ,
event_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务幂等键' ,
payload_json longtext COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '事件载荷JSON' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING' COMMENT '发布状态' ,
retry_count int NOT NULL DEFAULT '0' COMMENT '重试次数' ,
next_retry_at datetime ( 3 ) DEFAULT NULL COMMENT '下次重试时间' ,
published_at datetime ( 3 ) DEFAULT NULL COMMENT '发布时间' ,
locked_at datetime ( 3 ) DEFAULT NULL COMMENT '投递租约获取时间' ,
locked_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '投递租约持有者' ,
last_error varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '最后一次发布错误' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_event_outbox_key ( event_key ),
KEY idx_ll_event_outbox_publish ( status , next_retry_at , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '尾程跨区业务事件发件箱' ;
CREATE TABLE ll_exception_order (
id bigint NOT NULL COMMENT '异常订单ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键' ,
exception_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '异常订单号' ,
exception_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '异常类型' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING' COMMENT '异常处理状态' ,
reason varchar ( 1000 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '异常原因' ,
last_mile_order_id bigint DEFAULT NULL COMMENT '关联尾程订单ID' ,
last_mile_order_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '关联尾程订单号' ,
inbound_order_id bigint DEFAULT NULL COMMENT '关联入仓单ID' ,
inbound_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '关联入仓码' ,
delivery_order_id bigint DEFAULT NULL COMMENT '关联派送单ID' ,
delivery_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '关联派送单号' ,
outbound_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '关联出库单号' ,
customer_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户名称快照' ,
overseas_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '海外仓ID快照' ,
overseas_warehouse_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '海外仓名称快照' ,
sku_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '异常货物SKU' ,
package_count int DEFAULT NULL COMMENT '异常箱数' ,
return_direction varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '退回方向' ,
return_logistics_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '退回物流单号' ,
handling_action varchar ( 500 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '异常处理措施' ,
handling_result varchar ( 2000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '异常处理结果' ,
evidence_file_ids_json json DEFAULT NULL COMMENT '异常处理证据文件ID列表' ,
inventory_adjustment_id bigint DEFAULT NULL COMMENT '退回库存恢复操作ID' ,
handler_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '处理人ID' ,
handler_name varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '处理人名称' ,
source_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'MANUAL' COMMENT '异常来源类型' ,
created_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建人ID' ,
exception_at datetime ( 3 ) NOT NULL COMMENT '异常发生时间' ,
completed_at datetime ( 3 ) DEFAULT NULL COMMENT '异常处理完成时间' ,
version bigint 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 '更新时间' ,
2026-10-03 13:32:55 +08:00
return_context_json JSON NULL COMMENT '退回异常创建前的派送及尾程状态快照' ,
2026-09-16 16:42:05 +08:00
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_exception_no ( customer_id , exception_no ),
2026-10-03 13:32:55 +08:00
KEY idx_ll_exception_delivery_return ( customer_id , delivery_order_id , exception_type ),
2026-09-16 16:42:05 +08:00
KEY idx_ll_exception_list ( customer_id , status , exception_at ),
KEY idx_ll_exception_tail ( customer_id , last_mile_order_no ),
KEY idx_ll_exception_inbound ( customer_id , inbound_code )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '海外仓异常订单' ;
CREATE TABLE ll_exception_order_command (
id bigint NOT NULL COMMENT '异常处理命令ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键' ,
exception_order_id bigint NOT NULL COMMENT '异常订单ID' ,
action varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '异常处理动作' ,
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '幂等键' ,
request_hash varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求内容SHA256哈希' ,
result_json json NOT NULL COMMENT '命令结果快照' ,
created_at datetime ( 3 ) NOT NULL COMMENT '创建时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_exception_command_key ( customer_id , action , idempotency_key ),
KEY idx_ll_exception_command_order ( customer_id , exception_order_id , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '异常处理命令幂等审计' ;
CREATE TABLE ll_exception_return_item (
id bigint NOT NULL COMMENT '异常退回明细ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键' ,
exception_order_id bigint NOT NULL COMMENT '异常订单ID' ,
outbound_pallet_item_id bigint NOT NULL COMMENT '原出库托盘明细ID' ,
inventory_position_id bigint NOT NULL COMMENT '原出库库存位置ID' ,
pallet_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '原出库托盘码快照' ,
sku_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '原出库SKU快照' ,
max_return_packages bigint NOT NULL COMMENT '原出库可退箱数上限' ,
approved_return_packages bigint NOT NULL COMMENT '批准退回箱数' ,
created_at datetime ( 3 ) NOT NULL COMMENT '创建时间' ,
2026-10-03 13:32:55 +08:00
received_packages BIGINT NOT NULL DEFAULT 0 COMMENT '已实际退回入仓的累计箱数' ,
CONSTRAINT chk_exception_return_received CHECK ( received_packages >= 0 AND received_packages <= approved_return_packages ),
2026-09-16 16:42:05 +08:00
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_exception_return_source ( customer_id , exception_order_id , outbound_pallet_item_id , inventory_position_id ),
KEY idx_ll_exception_return_order ( customer_id , exception_order_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '异常退回原出库库存冻结明细' ;
CREATE TABLE ll_finance_fee_command (
id bigint NOT NULL COMMENT '幂等命令ID' ,
operator_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作人ID' ,
action varchar ( 16 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'CREATE、SUBMIT、REVIEW、ADJUST或VOID' ,
idempotency_key varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作幂等键' ,
request_hash char ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求内容SHA-256' ,
source_fee_id bigint NOT NULL COMMENT '稳定费用来源ID' ,
source_version int NOT NULL COMMENT '命令结果版本' ,
created_at datetime ( 3 ) NOT NULL COMMENT '命令创建时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_finance_fee_command ( operator_id , action , idempotency_key ),
KEY idx_ll_finance_fee_command_source ( source_fee_id , source_version )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '海外费用来源写操作幂等审计' ;
CREATE TABLE ll_finance_fee_source (
id bigint NOT NULL COMMENT '费用版本记录ID' ,
source_fee_id bigint NOT NULL COMMENT '跨版本稳定费用来源ID' ,
source_version int NOT NULL COMMENT '费用来源版本,从1递增' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户ID和隔离键' ,
customer_name varchar ( 200 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户名称快照' ,
source_type varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '海外费用来源类型' ,
source_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源业务编号或入仓码快照' ,
business_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源业务类型' ,
business_id bigint DEFAULT NULL COMMENT '来源业务记录ID' ,
business_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源业务编号' ,
order_id bigint DEFAULT NULL COMMENT '关联订单ID' ,
inbound_id bigint DEFAULT NULL COMMENT '关联海外入仓计划或入仓记录ID' ,
inbound_code varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '关联入仓码;并非所有费用必填' ,
container_id bigint DEFAULT NULL COMMENT '关联柜次ID' ,
container_booking_id bigint DEFAULT NULL COMMENT '来源订舱柜ID' ,
container_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '真实集装箱号快照' ,
warehouse_id bigint DEFAULT NULL COMMENT '关联海外仓ID' ,
fee_item_code varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '费用项目编码快照' ,
fee_item_name varchar ( 200 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '费用项目名称快照' ,
direction varchar ( 16 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'RECEIVABLE应收或PAYABLE应付' ,
supplier_id bigint DEFAULT NULL COMMENT '应付供应商ID' ,
supplier_name varchar ( 200 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '应付供应商名称快照' ,
supplier_category varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '应付供应商类别约束' ,
settlement_mode varchar ( 16 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'ON_ACCOUNT账期应付或DIRECT_PAID业务已付' ,
paid_at datetime ( 3 ) DEFAULT NULL COMMENT '直接已付时间' ,
payment_method varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '直接已付方式' ,
payment_reference_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '直接已付流水号' ,
payment_voucher_file_ids json DEFAULT NULL COMMENT '直接已付凭证文件ID快照' ,
business_date date NOT NULL COMMENT '费用业务日期' ,
currency char ( 3 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'CNY' COMMENT '财务结算币种,固定CNY' ,
amount decimal ( 20 , 6 ) NOT NULL COMMENT '人民币结算金额' ,
original_currency char ( 3 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务原币种,支持CNY或USD' ,
original_amount decimal ( 20 , 6 ) NOT NULL COMMENT '业务原币金额' ,
exchange_rate decimal ( 20 , 6 ) NOT NULL COMMENT '原币折算人民币汇率,人民币固定为1' ,
exchange_rate_month char ( 7 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '汇率月份yyyy-MM' ,
chargeable_quantity decimal ( 20 , 6 ) DEFAULT NULL COMMENT '计费数量,如箱数、托数、体积或天数' ,
quantity_unit varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '计费数量单位' ,
unit_price decimal ( 20 , 6 ) DEFAULT NULL COMMENT '原币计费单价' ,
period_start date DEFAULT NULL COMMENT '仓租等期间费用开始日期' ,
period_end date DEFAULT NULL COMMENT '仓租等期间费用结束日期' ,
review_status varchar ( 16 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'DRAFT、PENDING、APPROVED或REJECTED' ,
publication_status varchar ( 16 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'UNPUBLISHED或PUBLISHED' ,
source_status varchar ( 16 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'ACTIVE、SUPERSEDED或VOIDED' ,
review_reason varchar ( 500 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '审核或作废原因' ,
reviewer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '审核人ID' ,
reviewed_at datetime ( 3 ) DEFAULT NULL COMMENT '审核时间' ,
created_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建人ID' ,
updated_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '最后更新人ID' ,
created_at datetime ( 3 ) NOT NULL COMMENT '创建时间' ,
updated_at datetime ( 3 ) NOT NULL COMMENT '最后更新时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_finance_fee_version ( source_fee_id , source_version ),
KEY idx_ll_finance_fee_customer ( customer_id , source_status , created_at ),
KEY idx_ll_finance_fee_business ( business_type , business_no , created_at ),
KEY idx_ll_finance_fee_container_customer ( container_booking_id , customer_id , source_status , created_at ),
CONSTRAINT chk_ll_finance_fee_amount CHECK (( amount > 0 )),
CONSTRAINT chk_ll_finance_fee_currency CHECK (( currency = _utf8mb4 'CNY' )),
CONSTRAINT chk_ll_finance_fee_direction CHECK (( direction in ( _utf8mb4 'RECEIVABLE' , _utf8mb4 'PAYABLE' ))),
CONSTRAINT chk_ll_finance_fee_original_currency CHECK (( original_currency in ( _utf8mb4 'CNY' , _utf8mb4 'USD' ))),
CONSTRAINT chk_ll_finance_fee_period CHECK (((( period_start is null ) and ( period_end is null )) or (( period_start is not null ) and ( period_end is not null ) and ( period_start <= period_end )))),
CONSTRAINT chk_ll_finance_fee_publication CHECK (( publication_status in ( _utf8mb4 'UNPUBLISHED' , _utf8mb4 'PUBLISHED' ))),
CONSTRAINT chk_ll_finance_fee_review CHECK (( review_status in ( _utf8mb4 'DRAFT' , _utf8mb4 'PENDING' , _utf8mb4 'APPROVED' , _utf8mb4 'REJECTED' ))),
CONSTRAINT chk_ll_finance_fee_status CHECK (( source_status in ( _utf8mb4 'ACTIVE' , _utf8mb4 'SUPERSEDED' , _utf8mb4 'VOIDED' )))
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '海外业务不可变费用来源版本;发布后经跨区事件进入Finance' ;
CREATE TABLE ll_inbound_fba_appointment (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
appointment_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '预约单号' ,
appointment_at datetime ( 3 ) NOT NULL COMMENT '预约时间' ,
expected_loading_at datetime ( 3 ) NOT NULL COMMENT '预计装车时间' ,
appointment_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING' COMMENT '预约状态' ,
appointment_remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '预约备注' ,
fba_warehouse_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'FBA仓库编码' ,
selected_count int NOT NULL DEFAULT '0' COMMENT '已选明细数量' ,
created_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT 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 ),
UNIQUE KEY uk_ll_fba_appointment_no ( customer_id , appointment_no ),
KEY idx_ll_fba_appointment_list ( customer_id , appointment_status , fba_warehouse_code , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'FBA入仓预约单' ;
CREATE TABLE ll_inbound_fba_appointment_item (
id bigint NOT NULL COMMENT '主键ID' ,
appointment_id bigint NOT NULL COMMENT '预约单ID' ,
plan_id bigint NOT NULL COMMENT '入仓计划ID' ,
line_id bigint NOT NULL COMMENT '入仓计划明细ID' ,
order_id bigint NOT NULL COMMENT '订单ID' ,
inbound_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '入仓单号快照' ,
fba_warehouse_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'FBA仓库编码' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_fba_appointment_item_line ( appointment_id , line_id ),
KEY idx_ll_fba_appointment_item_plan ( plan_id ),
KEY idx_ll_fba_appointment_item_order ( order_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'FBA入仓预约明细' ;
CREATE TABLE ll_inbound_order (
id bigint NOT NULL COMMENT '入仓单主键' ,
customer_id bigint NOT NULL COMMENT '租户 ID' ,
source_region varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源区域' ,
source_inbound_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源入仓分片 ID' ,
root_inbound_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '根入仓单 ID' ,
source_order_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源订单 ID' ,
source_order_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源订单号' ,
root_order_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '根订单 ID' ,
inbound_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '入仓码' ,
lx_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '一件代发领星入库单代码' ,
destination_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓 ID' ,
destination_warehouse_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓编码' ,
destination_warehouse_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓名称' ,
destination_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的类型:FBA按箱数接收、OVERSEAS逐箱扫码' ,
package_count int NOT NULL DEFAULT '0' COMMENT '箱数' ,
product_quantity int DEFAULT NULL COMMENT '数量' ,
pallet_count int DEFAULT NULL COMMENT '托数' ,
gross_weight_kg decimal ( 18 , 3 ) DEFAULT NULL COMMENT '毛重(千克)' ,
net_weight_kg decimal ( 18 , 3 ) DEFAULT NULL COMMENT '净重(千克)' ,
volume_cbm decimal ( 18 , 6 ) DEFAULT NULL COMMENT '体积(立方米)' ,
source_event_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源事件 ID' ,
source_loading_plan_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '装柜计划 ID' ,
source_loading_plan_version bigint NOT NULL COMMENT '装柜计划版本' ,
handover_version bigint NOT NULL COMMENT '交接版本' ,
payload_hash varchar ( 71 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '负载摘要' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '入仓单状态' ,
exception_flag varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'NONE' COMMENT '异常标记' ,
created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间' ,
updated_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_order_source ( customer_id , source_region , source_inbound_id ),
UNIQUE KEY uk_ll_order_event ( source_event_id , source_inbound_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '尾程入仓单快照' ;
CREATE TABLE ll_inbound_order_item (
id bigint NOT NULL COMMENT '入仓明细主键' ,
customer_id bigint NOT NULL COMMENT '租户ID' ,
order_id bigint NOT NULL COMMENT '入仓单ID' ,
source_inbound_detail_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源入仓明细ID' ,
package_count int NOT NULL COMMENT '箱数' ,
product_quantity int DEFAULT NULL COMMENT '数量' ,
pallet_count int DEFAULT NULL COMMENT '托数' ,
gross_weight_kg decimal ( 18 , 3 ) DEFAULT NULL COMMENT '毛重(千克)' ,
net_weight_kg decimal ( 18 , 3 ) DEFAULT NULL COMMENT '净重(千克)' ,
dimensional_weight_kg decimal ( 18 , 3 ) DEFAULT NULL COMMENT '体积重量(千克)' ,
volume_cbm decimal ( 18 , 6 ) DEFAULT NULL COMMENT '体积(立方米)' ,
destination_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓ID' ,
destination_warehouse_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓编码' ,
destination_warehouse_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓名称' ,
fba_tracking_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'FBA跟踪号' ,
shipment_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '货件编号' ,
shipping_mark varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '唛头' ,
sku_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'SKU编码' ,
product_name_zh varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '中文品名' ,
product_name_en varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '英文品名' ,
created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间' ,
PRIMARY KEY ( id ),
KEY idx_ll_item_order ( customer_id , order_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '尾程入仓商品明细快照' ;
CREATE TABLE ll_inbound_pallet_merge (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
task_id bigint NOT NULL COMMENT 'PDA任务ID' ,
merge_group_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '合托分组号' ,
source_pallet_id bigint NOT NULL COMMENT '来源托盘ID' ,
target_pallet_id bigint NOT NULL COMMENT '目标托盘ID' ,
source_allocation_id bigint NOT NULL COMMENT '来源分配记录ID' ,
target_allocation_id bigint NOT NULL COMMENT '目标分配记录ID' ,
source_line_id bigint NOT NULL COMMENT '来源计划明细ID' ,
target_line_id bigint NOT NULL COMMENT '目标计划明细ID' ,
source_order_id bigint NOT NULL COMMENT '来源订单ID' ,
target_order_id bigint NOT NULL COMMENT '目标订单ID' ,
moved_package_count int NOT NULL COMMENT '移动箱数' ,
moved_volume_cbm decimal ( 18 , 4 ) NOT NULL DEFAULT '0.0000' COMMENT '移动体积(立方米)' ,
source_pallet_scrapped tinyint NOT NULL DEFAULT '0' COMMENT '来源托盘是否已报废' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务状态' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
PRIMARY KEY ( id ),
KEY idx_ll_inbound_merge_task ( customer_id , task_id ),
KEY idx_ll_inbound_merge_group ( merge_group_no )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '入仓托盘合托记录' ;
CREATE TABLE ll_inbound_pda_operation (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
task_id bigint NOT NULL COMMENT 'PDA任务ID' ,
allocation_id bigint DEFAULT NULL COMMENT '分配记录ID' ,
action varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作动作' ,
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务幂等键' ,
request_hash varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求内容哈希' ,
request_json longtext COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求内容JSON' ,
result_json longtext COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '处理结果JSON' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_inbound_pda_operation_key ( customer_id , idempotency_key ),
KEY idx_ll_inbound_pda_operation_task ( task_id ),
KEY idx_ll_inbound_pda_operation_allocation ( allocation_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '入仓PDA操作幂等记录' ;
CREATE TABLE ll_inbound_pda_task (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
plan_id bigint NOT NULL COMMENT '入仓计划ID' ,
task_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PDA任务号' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING' COMMENT '业务状态' ,
operator_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作人ID' ,
operator_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作人姓名' ,
pushed_at datetime ( 3 ) DEFAULT NULL COMMENT '任务下发时间' ,
started_at datetime ( 3 ) DEFAULT NULL COMMENT '开始时间' ,
completed_at datetime ( 3 ) DEFAULT NULL COMMENT '完成时间' ,
unload_photo_file_ids json DEFAULT NULL COMMENT '卸柜照片文件ID列表' ,
unload_photo_uploaded_at datetime ( 3 ) DEFAULT NULL COMMENT '卸柜照片上传成功时间' ,
estimated_empty_return_at datetime ( 3 ) DEFAULT NULL COMMENT '预计报空时间(卸柜照片上传成功后两天)' ,
version int 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_ll_inbound_pda_task_plan ( customer_id , plan_id ),
UNIQUE KEY uk_ll_inbound_pda_task_no ( task_no )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '入仓PDA作业任务' ;
CREATE TABLE ll_inbound_plan (
id bigint NOT NULL COMMENT '入库计划ID(雪花ID) ' ,
plan_no varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '入库单号' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '租户/客户账号标识' ,
source_order_id bigint NOT NULL COMMENT '来源尾程订单ID,一张入仓单对应一张入库计划' ,
container_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '集装箱号' ,
overseas_warehouse_id bigint DEFAULT NULL COMMENT '从尾程订单继承的平台预分配海外接柜仓ID' ,
planned_arrival_date date DEFAULT NULL COMMENT '人工计划预计到仓日期' ,
pallet_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '人工计划托盘类型' ,
assigned_flag tinyint NOT NULL DEFAULT '0' COMMENT '人工计划是否已分配:0否1是' ,
merge_required tinyint NOT NULL DEFAULT '0' COMMENT '人工计划是否要求合托:0否1是' ,
urgent_flag tinyint NOT NULL DEFAULT '0' COMMENT '人工计划是否加急:0否1是' ,
2026-10-08 08:45:56 +08:00
creation_mode varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'AUTO' COMMENT '计划生成方式:AUTO柜级自动、MANUAL单票人工、WAREHOUSE_TRANSFER仓储转运' ,
2026-09-16 16:42:05 +08:00
plan_remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '入仓计划备注' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING_ASSIGNMENT' COMMENT '入库计划状态:PENDING_ASSIGNMENT待分配及后续正式状态' ,
line_count int NOT NULL DEFAULT '0' COMMENT '入仓码明细数量' ,
pallet_count int NOT NULL DEFAULT '0' COMMENT '系统自动分配托盘数量' ,
total_volume_cbm decimal ( 18 , 4 ) NOT NULL DEFAULT '0.0000' 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 '更新时间' ,
version int NOT NULL DEFAULT '0' COMMENT '入库计划乐观锁版本' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_inbound_plan_no ( plan_no ),
UNIQUE KEY uk_ll_inbound_plan_source_order ( customer_id , source_order_id ),
KEY idx_ll_inbound_plan_container ( customer_id , container_no )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '尾程入库计划表:每张来源入仓单生成一张入库计划,同柜计划共享集装箱号' ;
CREATE TABLE ll_inbound_plan_carton (
id bigint NOT NULL COMMENT '箱唛作业主键' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
order_id bigint DEFAULT NULL COMMENT '生成尾程订单时绑定的尾程订单ID' ,
source_inbound_detail_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源入库明细ID' ,
sku_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'SKU编码快照' ,
carton_mark varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '国内冻结箱唛' ,
destination_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓ID快照' ,
destination_warehouse_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓编码快照' ,
destination_warehouse_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓名称快照' ,
plan_id bigint DEFAULT NULL COMMENT '海外入库计划ID' ,
line_id bigint DEFAULT NULL COMMENT '入库计划明细ID' ,
plan_pallet_id bigint DEFAULT NULL COMMENT '海外计划托盘ID' ,
warehouse_pallet_id bigint DEFAULT NULL COMMENT '海外实物托盘ID' ,
warehouse_location_id bigint DEFAULT NULL COMMENT '海外库位ID' ,
pda_task_id bigint DEFAULT NULL COMMENT '首次扫码PDA任务ID' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '箱唛状态:UNASSIGNED、ON_PALLET、BULK_RECEIVED、AVAILABLE' ,
version int NOT NULL DEFAULT '0' COMMENT '乐观锁版本' ,
bound_at datetime ( 3 ) DEFAULT NULL COMMENT '绑定托盘时间' ,
received_at datetime ( 3 ) DEFAULT NULL COMMENT '完成入库时间' ,
updated_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) ON UPDATE CURRENT_TIMESTAMP ( 3 ) COMMENT '更新时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_inbound_carton_mark ( customer_id , carton_mark ),
KEY idx_ll_inbound_carton_plan ( plan_id , status ),
KEY idx_ll_inbound_carton_pallet ( plan_pallet_id , status ),
KEY idx_ll_inbound_carton_order ( order_id , status )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '柜次冻结箱唛及海外入库箱级作业账' ;
CREATE TABLE ll_inbound_plan_line (
id bigint NOT NULL COMMENT '入库计划明细ID(雪花ID) ' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户账号标识' ,
plan_id bigint NOT NULL COMMENT '入库计划ID' ,
order_id bigint NOT NULL COMMENT '尾程订单ID' ,
inbound_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '头程入仓码快照' ,
fba_warehouse_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'FBA仓库编码' ,
destination_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'OVERSEAS' COMMENT '目的类型:FBA按箱数接收、OVERSEAS逐箱扫码' ,
destination_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓ID快照' ,
destination_warehouse_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓编码快照' ,
destination_warehouse_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓名称快照' ,
2026-09-17 17:37:29 +08:00
delivery_address varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓目的地址快照' ,
postal_code varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓邮编快照' ,
contact_name varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓联系人快照' ,
contact_phone varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓联系电话快照' ,
2026-09-16 16:42:05 +08:00
volume_cbm decimal ( 18 , 4 ) NOT NULL DEFAULT '0.0000' COMMENT '入仓码体积(立方米)' ,
planned_pallet_count int NOT NULL DEFAULT '0' COMMENT '该明细分配的托盘数量' ,
required_package_count int NOT NULL DEFAULT '0' COMMENT '计划明细应收箱数' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_inbound_line_order ( plan_id , order_id ),
KEY idx_ll_inbound_line_plan ( plan_id ),
KEY idx_ll_inbound_line_customer_plan ( customer_id , plan_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '尾程入库计划明细表:按入仓码和尾程订单维度记录' ;
CREATE TABLE ll_inbound_plan_pallet (
id bigint NOT NULL COMMENT '计划托盘ID(雪花ID) ' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户账号标识' ,
plan_id bigint NOT NULL COMMENT '入库计划ID' ,
pallet_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Warehouse权威实物托盘码' ,
source_pallet_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '一件代发不可变来源托盘号快照' ,
pallet_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '人工计划托盘类型' ,
destination_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓ID快照' ,
destination_warehouse_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓编码快照' ,
destination_warehouse_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓名称快照' ,
2026-09-17 17:37:29 +08:00
destination_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的类型:FBA或PRIVATE' ,
delivery_address varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓目的地址快照' ,
postal_code varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓邮编快照' ,
contact_name varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓联系人快照' ,
contact_phone varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓联系电话快照' ,
2026-09-16 16:42:05 +08:00
capacity_cbm decimal ( 18 , 4 ) NOT NULL DEFAULT '2.0000' COMMENT '托盘容量,固定为2立方米' ,
allocated_volume_cbm decimal ( 18 , 4 ) NOT NULL DEFAULT '0.0000' COMMENT '已分配体积(立方米)' ,
sequence_no int NOT NULL COMMENT '计划内托盘序号' ,
version int NOT NULL DEFAULT '0' COMMENT '收货累计值乐观锁版本' ,
warehouse_pallet_id bigint DEFAULT NULL COMMENT '海外仓实物托盘ID' ,
warehouse_location_id bigint DEFAULT NULL COMMENT '海外仓库位ID' ,
warehouse_resource_lock_id bigint DEFAULT NULL COMMENT '海外仓资源锁ID' ,
assignment_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'UNASSIGNED' COMMENT '托盘分配状态:UNASSIGNED未分配及后续正式状态' ,
locked_at datetime ( 3 ) DEFAULT NULL COMMENT '资源锁定时间' ,
actual_volume_cbm decimal ( 18 , 4 ) NOT NULL DEFAULT '0.0000' COMMENT '实收体积(立方米)' ,
actual_package_count int NOT NULL DEFAULT '0' COMMENT '实收箱数' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_inbound_pallet_sequence ( plan_id , sequence_no ),
KEY idx_ll_inbound_pallet_no ( pallet_no ),
KEY idx_ll_inbound_pallet_plan ( plan_id ),
KEY idx_ll_inbound_pallet_customer_plan ( customer_id , plan_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '尾程入库计划托盘表:按目的仓隔离合托' ;
CREATE TABLE ll_inbound_plan_pallet_allocation (
id bigint NOT NULL COMMENT '托盘分配记录ID(雪花ID) ' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户账号标识' ,
plan_id bigint NOT NULL COMMENT '入库计划ID' ,
line_id bigint NOT NULL COMMENT '入库计划明细ID' ,
pallet_id bigint NOT NULL COMMENT '计划托盘ID' ,
allocated_volume_cbm decimal ( 18 , 4 ) NOT NULL COMMENT '该明细分配到托盘的体积(立方米)' ,
planned_package_count int NOT NULL DEFAULT '0' COMMENT '计划分配箱数' ,
counted_package_count int NOT NULL DEFAULT '0' COMMENT '清点箱数' ,
picked_package_count int NOT NULL DEFAULT '0' COMMENT '已拣箱数' ,
actual_volume_cbm decimal ( 18 , 4 ) NOT NULL DEFAULT '0.0000' COMMENT '实收体积(立方米)' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING_COUNT' COMMENT '分配作业状态:PENDING_COUNT待清点及后续正式状态' ,
version int NOT NULL DEFAULT '0' COMMENT '托盘分配乐观锁版本' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_inbound_allocation ( line_id , pallet_id ),
KEY idx_ll_inbound_allocation_plan ( plan_id ),
KEY idx_ll_inbound_allocation_customer_plan ( customer_id , plan_id ),
KEY idx_ll_inbound_allocation_pallet ( pallet_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '尾程入库计划托盘分配表:记录入仓码明细与计划托盘的分配关系' ;
CREATE TABLE ll_inbound_stock_receipt (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
plan_id bigint NOT NULL COMMENT '入仓计划ID' ,
task_id bigint NOT NULL COMMENT 'PDA任务ID' ,
allocation_id bigint NOT NULL COMMENT '分配记录ID' ,
line_id bigint NOT NULL COMMENT '入仓计划明细ID' ,
order_id bigint NOT NULL COMMENT '订单ID' ,
inbound_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '入仓单号快照' ,
sku_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'SKU编码快照' ,
product_name_zh varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '中文品名快照' ,
product_name_en varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '英文品名快照' ,
warehouse_pallet_id bigint NOT NULL COMMENT '仓库实物托盘ID' ,
pallet_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '海外仓实物托盘码' ,
source_pallet_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '一件代发不可变来源托盘号快照' ,
warehouse_location_id bigint DEFAULT NULL COMMENT '仓库库位ID' ,
warehouse_location_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '仓库库位编码' ,
batch_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '库存批次号' ,
received_packages bigint NOT NULL COMMENT '实收箱数' ,
inventory_balance_id bigint NOT NULL COMMENT '库存余额记录ID' ,
inventory_position_id bigint NOT NULL COMMENT '库存仓位记录ID' ,
inventory_operation_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '库存操作幂等键' ,
received_at datetime ( 3 ) NOT NULL COMMENT '实收时间' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_stock_receipt_task_allocation_sku ( customer_id , task_id , allocation_id , sku_code ),
KEY idx_ll_stock_receipt_plan ( customer_id , plan_id , line_id ),
KEY idx_ll_stock_receipt_inventory ( inventory_balance_id , inventory_position_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '入仓PDA库存实收快照' ;
CREATE TABLE ll_inventory_balance (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
customer_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户名称不可变快照' ,
overseas_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '海外仓ID' ,
overseas_warehouse_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '海外仓编码快照' ,
overseas_warehouse_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '海外仓名称快照' ,
destination_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓ID' ,
destination_warehouse_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '目的仓编码快照' ,
destination_warehouse_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓名称快照' ,
inbound_order_id bigint NOT NULL COMMENT '入仓单ID' ,
inbound_order_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '入仓单号快照' ,
inbound_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '入仓单号快照' ,
sku_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'UNSPECIFIED' COMMENT 'SKU快照;多SKU汇总时为MIXED,不参与当前库存唯一维度' ,
product_name_zh varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '中文品名快照' ,
product_name_en varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '英文品名快照' ,
available_packages bigint NOT NULL DEFAULT '0' COMMENT '可用箱数' ,
hold_packages bigint NOT NULL DEFAULT '0' COMMENT '冻结箱数' ,
allocated_packages bigint NOT NULL DEFAULT '0' COMMENT '已分配箱数' ,
picked_packages bigint NOT NULL DEFAULT '0' COMMENT '已拣箱数' ,
in_transit_packages bigint NOT NULL DEFAULT '0' COMMENT '在途箱数' ,
receiving_packages bigint NOT NULL DEFAULT '0' COMMENT '收货处理中箱数' ,
procurement_packages bigint NOT NULL DEFAULT '0' COMMENT '采购业务占用箱数' ,
version bigint 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_ll_inventory_dimension ( customer_id , overseas_warehouse_id , destination_warehouse_code , inbound_order_id , inbound_code ),
KEY idx_ll_inventory_list ( customer_id , overseas_warehouse_id , updated_at ),
KEY idx_ll_inventory_inbound ( customer_id , inbound_code ),
KEY idx_ll_inventory_sku ( customer_id , sku_code , updated_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '客户入仓单与海外目的仓维度实时库存余额' ;
CREATE TABLE ll_inventory_ledger (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
customer_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户名称不可变快照' ,
balance_id bigint NOT NULL COMMENT '库存余额记录ID' ,
position_id bigint DEFAULT NULL COMMENT '库存仓位记录ID' ,
overseas_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '海外仓ID' ,
destination_warehouse_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '目的仓编码快照' ,
inbound_order_id bigint NOT NULL COMMENT '入仓单ID' ,
pallet_id bigint DEFAULT NULL COMMENT '托盘ID' ,
pallet_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '托盘号' ,
batch_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '库存批次号' ,
warehouse_location_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '仓库库位编码' ,
sku_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'SKU编码' ,
carton_mark varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '箱唛' ,
carton_packages bigint DEFAULT NULL COMMENT '箱内箱数' ,
business_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务类型' ,
business_order_id bigint DEFAULT NULL COMMENT '业务单据ID' ,
business_order_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '业务单号' ,
inbound_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '入仓单号快照' ,
inbound_order_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '入仓单号快照' ,
outbound_order_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '出库单号' ,
source_event_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源事件ID' ,
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务幂等键' ,
status_from varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作前状态' ,
status_to varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作后状态' ,
before_packages bigint NOT NULL COMMENT '变动前箱数' ,
delta_packages bigint NOT NULL COMMENT '箱数变动量' ,
after_packages bigint NOT NULL COMMENT '变动后箱数' ,
operator_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作人ID' ,
remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注' ,
occurred_at datetime ( 3 ) NOT NULL COMMENT '业务发生时间' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_inventory_ledger_idempotency ( customer_id , idempotency_key ),
KEY idx_ll_inventory_ledger_query ( customer_id , overseas_warehouse_id , occurred_at ),
KEY idx_ll_inventory_ledger_inbound ( customer_id , inbound_code , occurred_at ),
KEY idx_ll_inventory_ledger_business ( customer_id , business_type , business_order_no )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '不可变库存变动流水' ;
CREATE TABLE ll_inventory_operation (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务幂等键' ,
operation_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作类型' ,
request_hash varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求内容哈希' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PROCESSING' COMMENT '库存命令处理状态' ,
result_json longtext COLLATE utf8mb4_unicode_ci COMMENT '处理结果JSON' ,
last_error varchar ( 2000 ) COLLATE utf8mb4_unicode_ci 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 ),
UNIQUE KEY uk_ll_inventory_operation_key ( customer_id , idempotency_key ),
KEY idx_ll_inventory_operation_status ( customer_id , status , updated_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '库存命令幂等记录' ;
CREATE TABLE ll_inventory_position (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
balance_id bigint NOT NULL COMMENT '库存余额记录ID' ,
overseas_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '海外仓ID' ,
destination_warehouse_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '目的仓编码快照' ,
pallet_id bigint NOT NULL COMMENT '托盘ID' ,
pallet_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '托盘号' ,
batch_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '库存批次号' ,
warehouse_location_id bigint DEFAULT NULL COMMENT '仓库库位ID' ,
warehouse_location_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '仓库库位编码' ,
available_packages bigint NOT NULL DEFAULT '0' COMMENT '可用箱数' ,
hold_packages bigint NOT NULL DEFAULT '0' COMMENT '冻结箱数' ,
allocated_packages bigint NOT NULL DEFAULT '0' COMMENT '已分配箱数' ,
picked_packages bigint NOT NULL DEFAULT '0' COMMENT '已拣箱数' ,
receiving_packages bigint NOT NULL DEFAULT '0' COMMENT '收货处理中箱数' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'ACTIVE' COMMENT '业务状态' ,
version bigint 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_ll_inventory_position ( balance_id , pallet_id , batch_no ),
KEY idx_ll_inventory_position_pallet ( customer_id , pallet_id ),
KEY idx_ll_inventory_position_location ( customer_id , overseas_warehouse_id , warehouse_location_code )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '托盘库位批次库存明细' ;
CREATE TABLE ll_loading_event_inbox (
event_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '事件全局唯一标识' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '租户/客户账号标识' ,
event_type varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '事件类型' ,
event_version int NOT NULL COMMENT '事件契约版本' ,
payload_hash varchar ( 71 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '规范化事件负载 SHA-256 摘要' ,
payload_json json NOT NULL COMMENT '事件冻结负载 JSON' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'RECEIVED' COMMENT '消费状态:RECEIVED/PROCESSED' ,
received_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '接收时间' ,
processed_at datetime ( 3 ) DEFAULT NULL COMMENT '处理完成时间' ,
last_error varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '最近一次处理错误' ,
PRIMARY KEY ( event_id ),
UNIQUE KEY uk_ll_loading_inbox_tenant_key ( customer_id , event_type , event_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '头程装柜完成事件接收幂等箱' ;
CREATE TABLE ll_loading_order_status_history (
id bigint NOT NULL AUTO_INCREMENT COMMENT '状态历史主键' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键' ,
order_id bigint NOT NULL COMMENT '尾程订单 ID' ,
from_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '变更前状态' ,
to_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '变更后状态' ,
event_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '触发事件 ID' ,
remark varchar ( 500 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '状态变更备注' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '记录时间' ,
PRIMARY KEY ( id ),
KEY idx_ll_loading_history_customer_order ( customer_id , order_id , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '尾程订单状态变更历史' ;
CREATE TABLE ll_local_looseboard_history (
id bigint NOT NULL COMMENT '主键ID' ,
order_id bigint NOT NULL COMMENT '本土散板订单ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
operation_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作类型:CREATE、UPDATE或STATUS' ,
from_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '变更前状态' ,
to_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '变更后状态' ,
operator_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作人ID' ,
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作幂等键' ,
change_detail json DEFAULT NULL COMMENT '字段变更前后值JSON' ,
remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作备注' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
PRIMARY KEY ( id ),
KEY idx_ll_local_looseboard_history ( customer_id , order_id , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '本土散板操作流水' ;
CREATE TABLE ll_local_looseboard_operation (
id bigint NOT NULL COMMENT '操作记录ID' ,
order_id bigint NOT NULL COMMENT '本土散板订单ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
operation_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作类型' ,
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作幂等键' ,
request_hash char ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作请求内容哈希' ,
result_version bigint NOT NULL COMMENT '操作完成后的订单版本' ,
created_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作人ID' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_local_looseboard_operation_key ( customer_id , order_id , idempotency_key ),
KEY idx_ll_local_looseboard_operation_order ( customer_id , order_id , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '本土散板订单幂等操作账' ;
CREATE TABLE ll_local_looseboard_order (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
lastleg_order_id bigint DEFAULT NULL COMMENT '关联尾程主订单ID' ,
order_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '本土散板订单号' ,
transport_mode varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '运输方式:拼车或优先拼载' ,
2026-10-07 19:38:56 +08:00
pallet_required varchar ( 8 ) COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '是否需要打盘:YES或NO;拼车来源未提供时为空' ,
2026-09-16 16:42:05 +08:00
transport_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '运输类型' ,
origin varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '起运地' ,
origin_address varchar ( 500 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '起运详细地址' ,
destination varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '目的地' ,
destination_address varchar ( 500 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的详细地址、码头或仓号' ,
2026-10-07 19:38:56 +08:00
container_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '柜型;拼车来源未提供时为空,不推断为整柜' ,
2026-09-16 16:42:05 +08:00
package_count int NOT NULL DEFAULT '0' COMMENT '货物件数' ,
total_weight_kg decimal ( 18 , 3 ) NOT NULL DEFAULT '0.000' COMMENT '总重量(千克)' ,
total_volume_cbm decimal ( 18 , 6 ) NOT NULL DEFAULT '0.000000' COMMENT '总体积(立方米)' ,
budget_amount decimal ( 18 , 2 ) DEFAULT NULL COMMENT '预算总价' ,
currency char ( 3 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'USD' COMMENT '预算币种' ,
contact_name varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '联系人姓名' ,
contact_info varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '联系人联系方式' ,
requested_date date DEFAULT NULL COMMENT '要求服务日期' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING_ACCEPTANCE' COMMENT '本土散板订单状态' ,
remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注' ,
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建幂等键' ,
request_hash char ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建请求内容哈希' ,
created_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建人ID' ,
version bigint 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_ll_local_looseboard_no ( customer_id , order_no ),
UNIQUE KEY uk_ll_local_looseboard_key ( customer_id , idempotency_key ),
UNIQUE KEY uk_ll_local_looseboard_lastleg ( lastleg_order_id ),
KEY idx_ll_local_looseboard_list ( customer_id , status , created_at ),
KEY idx_ll_local_looseboard_date ( customer_id , requested_date , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '本土散板订单' ;
CREATE TABLE ll_monthly_exchange_rate (
id bigint NOT NULL COMMENT '月度汇率ID' ,
rate_month char ( 7 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '汇率月份,格式yyyy-MM' ,
base_currency char ( 3 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'USD' COMMENT '基准币种' ,
quote_currency char ( 3 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'CNY' COMMENT '报价币种' ,
usd_to_cny_average decimal ( 18 , 8 ) NOT NULL COMMENT '美元兑人民币月平均汇率' ,
status varchar ( 16 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'ACTIVE' COMMENT '状态:ACTIVE/INACTIVE' ,
remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注' ,
record_version bigint NOT NULL DEFAULT '0' COMMENT '乐观锁版本' ,
created_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建人' ,
updated_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '更新人' ,
created_at datetime ( 3 ) NOT NULL COMMENT '创建时间' ,
updated_at datetime ( 3 ) NOT NULL COMMENT '更新时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_exchange_rate_month ( rate_month ),
KEY idx_ll_exchange_rate_page ( status , rate_month )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '美元兑人民币月度平均汇率' ;
CREATE TABLE ll_monthly_exchange_rate_history (
id bigint NOT NULL COMMENT '汇率变更历史ID' ,
exchange_rate_id bigint NOT NULL COMMENT '月度汇率ID' ,
before_rate decimal ( 18 , 8 ) DEFAULT NULL COMMENT '变更前汇率' ,
after_rate decimal ( 18 , 8 ) NOT NULL COMMENT '变更后汇率' ,
before_status varchar ( 16 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '变更前状态' ,
after_status varchar ( 16 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '变更后状态' ,
operator_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作人' ,
remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '变更说明' ,
created_at datetime ( 3 ) NOT NULL COMMENT '创建时间' ,
PRIMARY KEY ( id ),
KEY idx_ll_exchange_rate_history ( exchange_rate_id , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '月度汇率变更历史' ;
CREATE TABLE ll_order (
id bigint NOT NULL COMMENT '雪花 ID' ,
order_no varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '尾程单号' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '租户/客户账号标识' ,
order_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'FIRST_LEG' COMMENT '订单类型:FIRST_LEG头程订单、RELABEL_APPLICATION换标下单、WAREHOUSE_TRANSFER仓储转运、LOCAL_LOOSEBOARD本土散板、RETURN_RELABEL退货换标、ONE_CLICK_DROPSHIP一件代发' ,
lx_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '一件代发领星入库单代码' ,
destination_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的类型:FBA按箱数接收、OVERSEAS逐箱扫码' ,
inbound_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '真实来源入仓码;无入仓关系的海外本土业务为空' ,
source_region varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源区域/系统' ,
source_inbound_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '最终实装 LOADED 分片 ID,建单幂等键' ,
root_inbound_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '根入仓单 ID' ,
source_order_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源订单 ID' ,
source_order_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源订单号' ,
root_order_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '根订单 ID' ,
customer_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '货主名称' ,
source_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源国内装柜仓 ID 快照' ,
source_warehouse_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源国内装柜仓名称快照' ,
overseas_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '海外接柜仓ID;新建尾程订单默认洛杉矶仓' ,
overseas_warehouse_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '海外接柜仓业务编码快照' ,
overseas_warehouse_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '海外接柜仓名称快照' ,
receiving_warehouse_version int NOT NULL DEFAULT '0' COMMENT '柜级接柜仓分配乐观锁版本' ,
transfer_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '转入目的仓ID' ,
transfer_warehouse_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '转入目的仓编码' ,
transfer_warehouse_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '转入目的仓名称' ,
fba_warehouse_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'FBA 仓库编码' ,
container_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '集装箱号' ,
abnormal tinyint NOT NULL DEFAULT '0' COMMENT '是否异常:0否1是' ,
detained tinyint NOT NULL DEFAULT '0' COMMENT '是否暂扣:0否1是' ,
hold_chargeable tinyint NOT NULL DEFAULT '0' COMMENT '当前暂扣是否计费:0否1是' ,
hold_reason varchar ( 500 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '当前暂扣原因;解除后为空' ,
manual_node_override tinyint NOT NULL DEFAULT '0' COMMENT '是否启用单票人工计划节点覆盖:0否1是,启用后不再继承柜级节点' ,
version int NOT NULL DEFAULT '0' COMMENT '尾程订单命令乐观锁版本' ,
pallet_count int NOT NULL DEFAULT '0' COMMENT '托数' ,
package_count int NOT NULL DEFAULT '0' COMMENT '箱数' ,
2026-09-17 17:37:29 +08:00
received_package_count int DEFAULT NULL COMMENT 'PDA实际入库箱数' ,
2026-09-16 16:42:05 +08:00
picked_package_count int NOT NULL DEFAULT '0' COMMENT '累计已拣箱数' ,
shipped_package_count int NOT NULL DEFAULT '0' COMMENT '累计已出库箱数' ,
volume_cbm decimal ( 18 , 4 ) DEFAULT NULL COMMENT '体积(立方米)' ,
product_quantity int DEFAULT NULL COMMENT '货物数量' ,
volume_weight_kg decimal ( 18 , 4 ) DEFAULT NULL COMMENT '体积重量(千克)' ,
estimated_arrival_at datetime ( 3 ) DEFAULT NULL COMMENT '预计到港时间' ,
actual_arrival_at datetime ( 3 ) DEFAULT NULL COMMENT '实际到港时间' ,
estimated_warehouse_at datetime ( 3 ) DEFAULT NULL COMMENT '预计到仓时间' ,
arrival_time_version int NOT NULL DEFAULT '0' COMMENT '柜级预计到仓时间乐观锁版本' ,
inbound_order_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '入库单号' ,
outbound_order_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '出库单号' ,
delivery_order_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '派送单号' ,
relabel_order_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '换标单号' ,
relabel_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '换标状态' ,
pallet_merge_flag varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '合托标记' ,
pallet_merge_batch_id varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '平台预标记合托分组号' ,
current_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING_ASSIGNMENT' COMMENT '当前业务状态:PENDING_ASSIGNMENT待分配、PENDING_INBOUND待入库、INBOUND_COMPLETED入库完成、PENDING_DELIVERY待派送、DELIVERING派送中、DELIVERED派送完成' ,
sub_order_status varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '子单据状态汇总' ,
private_remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注(仅自己)' ,
customer_remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注(客户)' ,
warehouse_remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注(仓库)' ,
source_event_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源事件 ID' ,
source_loading_plan_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源装柜计划 ID' ,
source_container_booking_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '来源头程货柜预订ID' ,
source_loading_plan_version bigint DEFAULT NULL COMMENT '来源装柜计划版本' ,
source_handover_version bigint DEFAULT NULL COMMENT '交接版本' ,
source_payload_hash varchar ( 71 ) COLLATE utf8mb4_unicode_ci NOT 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 ),
UNIQUE KEY uk_ll_order_source ( customer_id , source_region , source_inbound_id ),
KEY idx_ll_order_group ( customer_id , order_no ),
KEY idx_ll_order_container ( customer_id , container_no ),
KEY idx_ll_order_list ( customer_id , current_status , created_at ),
KEY idx_ll_order_container_progress ( source_container_booking_id , estimated_warehouse_at , created_at , id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '尾程订单主表' ;
CREATE TABLE ll_order_command_record (
id bigint NOT NULL COMMENT '尾程订单命令幂等记录ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键' ,
order_id bigint NOT NULL COMMENT '尾程订单ID' ,
action varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '命令动作:MANUAL_PLAN、HOLD、MANUAL_NODES' ,
operator_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '平台操作人ID' ,
idempotency_key varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户端幂等键' ,
request_hash varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '规范化请求SHA-256摘要' ,
result_ref varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '结果业务引用' ,
result_json longtext COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '首次成功响应JSON快照' ,
result_version int NOT NULL COMMENT '命令成功后的订单版本' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '首次成功时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_order_command_key ( customer_id , order_id , action , operator_id , idempotency_key ),
KEY idx_ll_order_command_history ( customer_id , order_id , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '尾程订单写命令幂等与结果审计记录' ;
CREATE TABLE ll_order_detail (
id bigint NOT NULL AUTO_INCREMENT COMMENT '订单明细主键' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键' ,
order_id bigint NOT NULL COMMENT '尾程订单 ID' ,
source_inbound_detail_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源入仓明细 ID' ,
sku_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'SKU 编码' ,
product_name_zh varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '中文品名' ,
product_name_en varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '英文品名' ,
package_count int NOT NULL DEFAULT '0' COMMENT '箱数' ,
product_quantity int DEFAULT NULL COMMENT '数量' ,
pallet_count int DEFAULT NULL COMMENT '托数' ,
gross_weight_kg decimal ( 18 , 4 ) DEFAULT NULL COMMENT '毛重(千克)' ,
net_weight_kg decimal ( 18 , 4 ) DEFAULT NULL COMMENT '净重(千克)' ,
dimensional_weight_kg decimal ( 18 , 4 ) DEFAULT NULL COMMENT '体积重量(千克)' ,
volume_cbm decimal ( 18 , 4 ) DEFAULT NULL COMMENT '体积(立方米)' ,
destination_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓 ID' ,
destination_warehouse_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓编码' ,
destination_warehouse_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓名称' ,
fba_tracking_no varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'FBA跟踪号' ,
shipment_no varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '货件编号' ,
shipping_mark varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '唛头' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_detail_source ( order_id , source_inbound_detail_id ),
KEY idx_ll_detail_order ( order_id ),
KEY idx_ll_detail_customer_order ( customer_id , order_id , id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '尾程订单实装商品冻结明细' ;
CREATE TABLE ll_order_fee (
id bigint NOT NULL COMMENT '费用明细主键' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键' ,
order_id bigint NOT NULL COMMENT '尾程订单ID' ,
fee_item varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '费用项目' ,
currency varchar ( 3 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '币种代码' ,
amount decimal ( 18 , 2 ) NOT NULL COMMENT '费用金额' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING_REVIEW' COMMENT '费用状态:PENDING_REVIEW待审核、APPROVED审核通过、REJECTED已驳回' ,
supplier_description varchar ( 500 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '供应商或费用说明' ,
created_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT 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 ),
KEY idx_ll_order_fee_customer_order ( customer_id , order_id , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '尾程订单费用明细' ;
CREATE TABLE ll_order_hold_history (
id bigint NOT NULL COMMENT '尾程订单暂扣历史ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键' ,
order_id bigint NOT NULL COMMENT '尾程订单ID' ,
held tinyint NOT NULL COMMENT '操作后是否暂扣:0否1是' ,
chargeable tinyint NOT NULL COMMENT '本次暂扣是否计费:0否1是' ,
reason varchar ( 500 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '暂扣或解除原因' ,
order_version int NOT NULL COMMENT '操作成功后的订单版本' ,
operator_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作人ID' ,
operator_name varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作人名称' ,
idempotency_key varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户端幂等键' ,
created_at datetime ( 3 ) NOT NULL COMMENT '操作时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_order_hold_key ( customer_id , order_id , operator_id , idempotency_key ),
KEY idx_ll_order_hold_history ( customer_id , order_id , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '尾程订单暂扣与解除不可变历史' ;
CREATE TABLE ll_order_manual_node (
id bigint NOT NULL COMMENT '尾程订单人工节点ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键' ,
order_id bigint NOT NULL COMMENT '尾程订单ID' ,
node_code varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '八行人工展示节点稳定代码,与Carrier标准节点隔离' ,
node_at datetime ( 3 ) DEFAULT NULL COMMENT '人工填写节点时间,允许为空' ,
source varchar ( 16 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'MANUAL' COMMENT '节点来源,固定MANUAL' ,
order_version int NOT NULL COMMENT '最近编辑后的订单版本' ,
updated_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '最近操作人ID' ,
updated_at datetime ( 3 ) NOT NULL COMMENT '最近编辑时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_order_manual_node ( customer_id , order_id , node_code ),
KEY idx_ll_order_manual_node_order ( customer_id , order_id , node_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '尾程订单当前人工节点覆盖事实' ;
CREATE TABLE ll_order_manual_node_history (
id bigint NOT NULL COMMENT '尾程订单人工节点历史ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键' ,
order_id bigint NOT NULL COMMENT '尾程订单ID' ,
nodes_json longtext COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '本次全量人工节点JSON快照' ,
order_version int NOT NULL COMMENT '操作成功后的订单版本' ,
operator_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作人ID' ,
operator_name varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作人名称' ,
idempotency_key varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户端幂等键' ,
created_at datetime ( 3 ) NOT NULL COMMENT '操作时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_order_manual_node_history_key ( customer_id , order_id , operator_id , idempotency_key ),
KEY idx_ll_order_manual_node_history ( customer_id , order_id , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '尾程订单人工节点覆盖不可变历史' ;
CREATE TABLE ll_order_no_daily_sequence (
business_date date NOT NULL COMMENT '业务日期(Asia/Shanghai) ' ,
last_sequence int NOT NULL COMMENT '当日已分配尾程单流水号' ,
PRIMARY KEY ( business_date )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '尾程单号按日原子流水' ;
CREATE TABLE ll_order_operation_log (
id bigint NOT NULL COMMENT '操作记录主键' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键' ,
order_id bigint NOT NULL COMMENT '尾程订单ID' ,
operation_node varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作节点' ,
operator_name varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作人名称' ,
result varchar ( 500 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '处理结果' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '操作时间' ,
PRIMARY KEY ( id ),
KEY idx_ll_order_operation_customer_order ( customer_id , order_id , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '尾程订单操作记录' ;
CREATE TABLE ll_order_source_pallet (
id bigint NOT NULL COMMENT '来源托盘快照ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户隔离键' ,
order_id bigint NOT NULL COMMENT '尾程订单ID' ,
source_pallet_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '头程冻结托盘码' ,
sequence_no int NOT NULL COMMENT '订单内稳定顺序' ,
source_event_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源装柜完成事件ID' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_source_pallet_no ( source_pallet_no ),
UNIQUE KEY uk_ll_source_pallet_sequence ( customer_id , order_id , sequence_no ),
KEY idx_ll_source_pallet_order ( customer_id , order_id ),
KEY fk_ll_source_pallet_order ( order_id ),
CONSTRAINT fk_ll_source_pallet_order FOREIGN KEY ( order_id ) REFERENCES ll_order ( id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '头程交接的不可变托盘码快照' ;
CREATE TABLE ll_order_status_history (
id bigint NOT NULL COMMENT '订单状态历史主键' ,
customer_id bigint NOT NULL COMMENT '租户 ID' ,
order_id bigint NOT NULL COMMENT '订单 ID' ,
from_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '变更前状态' ,
to_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '变更后状态' ,
reason varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '变更原因' ,
created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录时间' ,
PRIMARY KEY ( id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '尾程订单状态历史' ;
CREATE TABLE ll_outbound_order (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
outbound_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '出库单号' ,
dispatch_order_id bigint DEFAULT NULL COMMENT '派车单ID,一件代发为空' ,
dispatch_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '派车单号,一件代发为空' ,
overseas_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '海外仓ID' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'WAIT_OUTBOUND' COMMENT '业务状态' ,
package_count int NOT NULL DEFAULT '0' COMMENT '箱数' ,
pallet_count int NOT NULL DEFAULT '0' COMMENT '托盘数' ,
2026-10-03 04:18:52 +08:00
gross_weight_kg DECIMAL ( 18 , 3 ) NULL COMMENT '毛重(千克),来源未确认时为空' ,
2026-09-18 14:58:40 +08:00
volume_weight_kg decimal ( 18 , 3 ) NOT NULL DEFAULT '0.000' COMMENT '材积重(千克)' ,
volume_cbm decimal ( 18 , 4 ) NOT NULL DEFAULT '0.0000' COMMENT '体积(立方米)' ,
2026-10-03 04:18:52 +08:00
fee_coverage_json JSON NULL COMMENT '本次发运引用的原费用版本、实际货物及明确服务覆盖确认快照' ,
2026-09-16 16:42:05 +08:00
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务幂等键' ,
created_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT 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 '更新时间' ,
outbound_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'DISPATCH_DELIVERY' COMMENT '出库类型:派送转出库、一件代发' ,
lx_codes varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '关联一件代发领星入库单代码汇总' ,
recipient_info varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '一件代发收件信息' ,
2026-10-03 04:18:52 +08:00
request_hash char ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建或转派送业务请求摘要,用于幂等内容校验' ,
2026-09-16 16:42:05 +08:00
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_outbound_no ( outbound_no ),
UNIQUE KEY uk_ll_outbound_idempotency ( customer_id , idempotency_key ),
UNIQUE KEY uk_ll_outbound_dispatch ( customer_id , dispatch_order_id ),
2026-09-09 23:46:21 +08:00
KEY idx_ll_outbound_list ( customer_id , status , created_at )
2026-09-16 16:42:05 +08:00
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '尾程出库单' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_outbound_pallet_item (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
outbound_order_id bigint NOT NULL COMMENT '出库单ID' ,
warehouse_pallet_id bigint DEFAULT NULL COMMENT '仓库实物托盘ID' ,
pallet_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '托盘号' ,
destination_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓ID' ,
destination_warehouse_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓编码快照' ,
destination_warehouse_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓名称快照' ,
package_count int NOT NULL DEFAULT '0' COMMENT '箱数' ,
2026-10-03 04:18:52 +08:00
gross_weight_kg DECIMAL ( 18 , 3 ) NULL COMMENT '毛重(千克),来源未确认时为空' ,
2026-09-18 14:58:40 +08:00
volume_weight_kg decimal ( 18 , 3 ) NOT NULL DEFAULT '0.000' COMMENT '材积重(千克)' ,
volume_cbm decimal ( 18 , 4 ) NOT NULL DEFAULT '0.0000' COMMENT '体积(立方米)' ,
2026-09-16 16:42:05 +08:00
picked_package_count int NOT NULL DEFAULT '0' COMMENT '已拣箱数' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'WAIT_PICK' COMMENT '拣货状态' ,
sku_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '一件代发SKU' ,
order_refs varchar ( 2000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '关联订单信息' ,
inbound_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '入仓单号快照' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
PRIMARY KEY ( id ),
2026-09-14 20:55:09 +08:00
UNIQUE KEY uk_ll_outbound_pallet ( customer_id , outbound_order_id , warehouse_pallet_id , inbound_code , sku_code ),
2026-09-16 16:42:05 +08:00
KEY idx_ll_outbound_pallet_list ( customer_id , outbound_order_id ),
KEY idx_ll_outbound_pallet_destination ( customer_id , destination_warehouse_code )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '出库托盘明细' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_outbound_pda_pick (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键' ,
task_id bigint NOT NULL COMMENT 'PDA任务ID' ,
outbound_pallet_item_id bigint NOT NULL COMMENT '出库托盘明细ID' ,
2026-09-20 19:57:47 +08:00
inventory_position_id bigint DEFAULT NULL COMMENT '库存仓位ID;退货箱直接出库时为空' ,
2026-09-16 16:42:05 +08:00
packages bigint NOT NULL COMMENT '拣货箱数' ,
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '拣货幂等键' ,
picked_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '拣货时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_outbound_pda_pick_key ( customer_id , idempotency_key )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '一件代发出库PDA托盘拣货记录' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_outbound_pda_task (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
outbound_order_id bigint NOT NULL COMMENT '出库单ID' ,
task_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PDA任务号' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING' COMMENT '任务状态:待拣货、拣货中、已完成' ,
completion_idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '完成命令幂等键' ,
pushed_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '推送时间' ,
completed_at datetime ( 3 ) 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 ),
UNIQUE KEY uk_ll_outbound_pda_task_order ( customer_id , outbound_order_id ),
UNIQUE KEY uk_ll_outbound_pda_task_no ( task_no ),
UNIQUE KEY uk_ll_outbound_pda_complete_key ( customer_id , completion_idempotency_key )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '一件代发出库PDA拣货任务' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_overseas_procurement_fee (
id bigint NOT NULL COMMENT '主键ID' ,
order_id bigint NOT NULL COMMENT '采购订单ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户ID' ,
fee_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '费用业务号' ,
fee_item_code varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '费用项编码' ,
fee_item_name varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '费用项名称' ,
amount decimal ( 20 , 2 ) NOT NULL COMMENT 'CNY金额' ,
currency char ( 3 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'CNY' COMMENT '费用币种' ,
voucher_file_id bigint NOT NULL COMMENT '凭证文件ID' ,
voucher_file_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '凭证文件名' ,
remark varchar ( 500 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '说明' ,
wallet_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '资金状态' ,
wallet_error_code varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '资金错误码' ,
wallet_error_message varchar ( 500 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '资金错误说明' ,
wallet_command_event_id varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '当前资金指令事件ID' ,
created_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci 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 ),
UNIQUE KEY uk_ll_procurement_fee_no ( fee_no ),
KEY idx_ll_procurement_fee_order ( customer_id , order_id , created_at ),
CONSTRAINT chk_ll_procurement_fee_amount CHECK (( amount > 0 )),
CONSTRAINT chk_ll_procurement_fee_currency CHECK (( currency = _utf8mb4 'CNY' ))
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '海外采购费用明细及资金生命周期' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_overseas_procurement_file (
id bigint NOT NULL COMMENT '主键ID' ,
order_id bigint NOT NULL COMMENT '采购订单ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户ID' ,
category varchar ( 16 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'RECEIPT签收文件或VOUCHER费用凭证' ,
file_id bigint NOT NULL COMMENT 'File服务文件ID' ,
file_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '文件名快照' ,
content_type varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '媒体类型' ,
size_bytes bigint NOT NULL DEFAULT '0' COMMENT '文件大小' ,
created_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '上传人' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '上传时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_procurement_file ( order_id , file_id ),
KEY idx_ll_procurement_file_order ( customer_id , order_id , category , created_at ),
CONSTRAINT chk_ll_procurement_file_category CHECK (( category in ( _utf8mb4 'RECEIPT' , _utf8mb4 'VOUCHER' )))
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '海外采购签收文件及费用凭证' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_overseas_procurement_order (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
customer_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户名称快照' ,
order_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '订单号' ,
purchase_category varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '采购品类' ,
product_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '产品名称' ,
product_specification varchar ( 500 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '产品规格' ,
product_url varchar ( 2000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '产品链接' ,
purchase_quantity bigint NOT NULL COMMENT '采购数量' ,
budget_unit_price decimal ( 18 , 2 ) DEFAULT NULL COMMENT '预算单价' ,
currency char ( 3 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'USD' COMMENT '币种' ,
receiving_address varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '收货地址' ,
contact_name varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '联系人姓名' ,
contact_phone varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '联系人电话' ,
purchase_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '采购入仓仓库ID' ,
purchase_warehouse_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '采购入仓仓库名称' ,
outbound_details json DEFAULT NULL COMMENT '出库明细' ,
inbound_quantity bigint NOT NULL DEFAULT '0' COMMENT '采购单据累计入库数量' ,
domestic_carrier varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '境内承运商' ,
domestic_tracking_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '境内物流单号' ,
overseas_carrier varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '海外承运商' ,
overseas_tracking_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '海外物流单号' ,
estimated_arrival_at datetime ( 3 ) DEFAULT NULL COMMENT '预计到达时间' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING_REVIEW' COMMENT '业务状态' ,
remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注' ,
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务幂等键' ,
request_hash char ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求内容哈希' ,
created_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建人ID' ,
reviewed_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '审核人ID' ,
review_remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '审核备注' ,
review_idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '审核幂等键' ,
review_request_hash char ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '审核请求内容哈希' ,
reviewed_at datetime ( 3 ) DEFAULT NULL COMMENT '审核时间' ,
version bigint 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_ll_overseas_procurement_order_no ( customer_id , order_no ),
UNIQUE KEY uk_ll_overseas_procurement_order_key ( customer_id , idempotency_key ),
KEY idx_ll_overseas_procurement_list ( customer_id , status , created_at ),
KEY idx_ll_overseas_procurement_warehouse ( customer_id , purchase_warehouse_id , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '海外采购订单' ;
2026-09-10 22:43:11 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_overseas_procurement_status_history (
id bigint NOT NULL COMMENT '主键ID' ,
order_id bigint NOT NULL COMMENT '订单ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
operation_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作类型:CREATE、REVIEW或UPDATE' ,
from_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '变更前状态' ,
to_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '变更后状态' ,
operator_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作人ID' ,
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作幂等键' ,
change_detail json DEFAULT NULL COMMENT '字段变更前后值JSON' ,
remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
PRIMARY KEY ( id ),
KEY idx_ll_overseas_procurement_history ( customer_id , order_id , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '海外采购操作流水' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_overseas_quote (
id bigint NOT NULL COMMENT '报价ID' ,
name varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '报价名称' ,
warehouse_id bigint NOT NULL COMMENT '国内平台海外合作仓ID' ,
warehouse_code varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '合作仓编码快照' ,
warehouse_name varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '合作仓名称快照' ,
country_code varchar ( 2 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '国家二字码快照' ,
provider_name varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '报价方' ,
currency char ( 3 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '币种' ,
effective_start date NOT NULL COMMENT '生效开始日期' ,
effective_end date NOT NULL COMMENT '生效结束日期' ,
version_code varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务版本号' ,
status varchar ( 16 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'INACTIVE' COMMENT '状态:ACTIVE/INACTIVE' ,
remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注' ,
record_version bigint NOT NULL DEFAULT '0' COMMENT '乐观锁版本' ,
created_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建人' ,
updated_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '更新人' ,
created_at datetime ( 3 ) NOT NULL COMMENT '创建时间' ,
updated_at datetime ( 3 ) NOT NULL COMMENT '更新时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_quote_warehouse_provider_version ( warehouse_id , provider_name , version_code ),
KEY idx_ll_quote_page ( status , updated_at , id ),
KEY idx_ll_quote_effective ( warehouse_id , provider_name , currency , effective_start , effective_end )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '海外仓报价主表' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_overseas_quote_fee (
id bigint NOT NULL COMMENT '费用明细ID' ,
quote_id bigint NOT NULL COMMENT '报价ID' ,
sequence_no int NOT NULL COMMENT '显示顺序' ,
item varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '费用项目' ,
billing_unit varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '计费单位' ,
unit_price decimal ( 18 , 4 ) NOT NULL COMMENT '单价' ,
minimum_charge decimal ( 18 , 4 ) NOT NULL DEFAULT '0.0000' COMMENT '最低收费' ,
remark varchar ( 500 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_quote_fee_sequence ( quote_id , sequence_no ),
KEY idx_ll_quote_fee_quote ( quote_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '海外仓报价仓库费用' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_overseas_quote_transit_price (
id bigint NOT NULL COMMENT '中转价格ID' ,
quote_id bigint NOT NULL COMMENT '报价ID' ,
sequence_no int NOT NULL COMMENT '显示顺序' ,
fba_warehouse_code varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'FBA仓编码' ,
delivery_method varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '报价运输方式' ,
estimated_miles decimal ( 18 , 4 ) NOT NULL DEFAULT '0.0000' COMMENT '预估英里数' ,
price decimal ( 18 , 4 ) NOT NULL COMMENT '报价金额' ,
minimum_charge decimal ( 18 , 4 ) NOT NULL DEFAULT '0.0000' COMMENT '最低收费' ,
remark varchar ( 500 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_quote_transit_sequence ( quote_id , sequence_no ),
KEY idx_ll_quote_transit_quote ( quote_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '海外仓报价中转价格明细' ;
2026-09-10 22:43:11 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_pda_inventory_move (
id bigint NOT NULL COMMENT '移库操作ID' ,
move_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '移库操作单号' ,
overseas_warehouse_id bigint NOT NULL COMMENT 'Token冻结的海外实际仓ID' ,
pallet_id bigint NOT NULL COMMENT '整托移库的实物托盘ID' ,
pallet_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '实物托盘码快照' ,
source_location_id bigint NOT NULL COMMENT '来源库位ID' ,
source_location_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源库位码快照' ,
target_location_id bigint NOT NULL COMMENT '目标库位ID' ,
target_location_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '目标库位码快照' ,
customer_count int NOT NULL COMMENT '托盘涉及客户数' ,
position_count int NOT NULL COMMENT '迁移库存位置数' ,
package_count bigint NOT NULL COMMENT '迁移总箱数' ,
pallet_version_before int NOT NULL COMMENT '迁移前托盘版本' ,
pallet_version_after int DEFAULT NULL COMMENT '迁移后托盘版本' ,
operator_key varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PDA操作账号标识' ,
reason varchar ( 500 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '移库原因' ,
idempotency_key varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '移库幂等键' ,
request_hash varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '移库请求哈希' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '移库处理状态' ,
result_json longtext COLLATE utf8mb4_unicode_ci COMMENT '成功响应JSON' ,
created_at datetime ( 3 ) NOT NULL COMMENT '创建时间' ,
completed_at datetime ( 3 ) DEFAULT NULL COMMENT '完成时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_pda_inventory_move_no ( move_no ),
UNIQUE KEY uk_ll_pda_inventory_move_key ( overseas_warehouse_id , operator_key , idempotency_key ),
KEY idx_ll_pda_inventory_move_pallet ( overseas_warehouse_id , pallet_id , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '海外PDA同仓整托移库记录' ;
2026-09-14 11:03:47 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_pda_operation_history (
id bigint NOT NULL COMMENT 'PDA作业历史ID' ,
overseas_warehouse_id bigint NOT NULL COMMENT 'Token冻结的海外实际仓ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '作业涉及的客户标识' ,
operator_key varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PDA操作账号标识' ,
operation_type varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '作业类型' ,
business_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '作业业务键' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '作业结果状态' ,
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '写操作幂等键' ,
request_hash varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '写请求内容哈希' ,
summary varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '作业结果摘要' ,
occurred_at datetime ( 3 ) NOT NULL COMMENT '作业发生时间' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_pda_history_idempotency ( operator_key , idempotency_key ),
KEY idx_ll_pda_history_operator ( overseas_warehouse_id , operator_key , occurred_at ),
KEY idx_ll_pda_history_business ( overseas_warehouse_id , operation_type , business_key )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '海外PDA真实作业历史' ;
2026-09-14 11:03:47 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_pda_pallet_operation (
id bigint NOT NULL COMMENT 'PDA托盘作业ID' ,
overseas_warehouse_id bigint NOT NULL COMMENT 'Token冻结的海外实际仓ID' ,
operator_key varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PDA操作账号标识' ,
idempotency_key varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '设备幂等键' ,
operation_type varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '托盘作业类型' ,
request_hash varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求内容摘要' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '处理状态:PROCESSING、COMPLETED、FAILED_COMPENSATED、COMPENSATION_REQUIRED' ,
result_json longtext COLLATE utf8mb4_unicode_ci COMMENT '成功响应快照' ,
remote_transitions_json longtext COLLATE utf8mb4_unicode_ci COMMENT '实物托盘状态变更回执' ,
last_error varchar ( 2000 ) COLLATE utf8mb4_unicode_ci 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 ),
UNIQUE KEY uk_ll_pda_pallet_idempotency ( operator_key , idempotency_key ),
KEY idx_ll_pda_pallet_warehouse ( overseas_warehouse_id , status , updated_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '海外PDA托盘作业幂等、补偿与结果记录' ;
2026-09-14 11:03:47 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_pda_stocktake_action (
id bigint NOT NULL COMMENT '盘点动作ID' ,
overseas_warehouse_id bigint NOT NULL COMMENT 'Token冻结的海外实际仓ID' ,
operator_key varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PDA操作账号标识' ,
idempotency_key varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '动作幂等键' ,
action_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '盘点动作类型' ,
task_id bigint DEFAULT NULL COMMENT '盘点任务ID' ,
request_hash varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '动作请求哈希' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '动作处理状态' ,
result_json longtext COLLATE utf8mb4_unicode_ci COMMENT '成功响应JSON' ,
created_at datetime ( 3 ) NOT NULL COMMENT '创建时间' ,
updated_at datetime ( 3 ) NOT NULL COMMENT '更新时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_pda_stocktake_action ( overseas_warehouse_id , operator_key , idempotency_key ),
KEY idx_ll_pda_stocktake_action_task ( task_id , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '海外PDA盘点动作幂等记录' ;
2026-09-14 11:03:47 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_pda_stocktake_item (
id bigint NOT NULL COMMENT '盘点明细ID' ,
task_id bigint NOT NULL COMMENT '盘点任务ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '库存所属客户标识' ,
balance_id bigint NOT NULL COMMENT '库存余额ID' ,
position_id bigint NOT NULL COMMENT '库存位置ID' ,
sku_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'SKU快照' ,
product_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '品名快照' ,
inbound_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '入仓码快照' ,
pallet_id bigint NOT NULL COMMENT '实物托盘ID' ,
pallet_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '实物托盘码快照' ,
location_id bigint NOT NULL COMMENT '库位ID快照' ,
location_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '库位码快照' ,
book_packages bigint NOT NULL COMMENT '任务创建时账面总箱数' ,
actual_packages bigint DEFAULT NULL COMMENT '现场实盘总箱数' ,
difference_packages bigint DEFAULT NULL COMMENT '实盘与账面箱数差异' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '盘点明细状态' ,
position_version bigint NOT NULL COMMENT '任务创建时库存位置版本' ,
counted_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '盘点操作账号标识' ,
version bigint NOT NULL DEFAULT '0' COMMENT '明细乐观锁版本' ,
counted_at datetime ( 3 ) DEFAULT NULL COMMENT '盘点时间' ,
created_at datetime ( 3 ) NOT NULL COMMENT '创建时间' ,
updated_at datetime ( 3 ) NOT NULL COMMENT '更新时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_pda_stocktake_item ( task_id , position_id ),
KEY idx_ll_pda_stocktake_item_task ( task_id , status , id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '海外PDA库存盘点位置明细' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_pda_stocktake_task (
id bigint NOT NULL COMMENT '盘点任务ID' ,
task_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '盘点任务号' ,
overseas_warehouse_id bigint NOT NULL COMMENT 'Token冻结的海外实际仓ID' ,
scope_type varchar ( 16 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '盘点范围类型LOCATION或PALLET' ,
scope_resource_id bigint NOT NULL COMMENT '盘点库位或托盘资源ID' ,
scope_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '盘点库位码或托盘码快照' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '盘点任务状态' ,
position_count int NOT NULL COMMENT '库存位置总数' ,
counted_count int NOT NULL DEFAULT '0' COMMENT '已盘库存位置数' ,
difference_count int NOT NULL DEFAULT '0' COMMENT '存在差异的库存位置数' ,
created_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建操作账号标识' ,
submitted_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '提交操作账号标识' ,
submit_reason varchar ( 500 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '盘点差异提交原因' ,
idempotency_key varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建幂等键' ,
request_hash varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建请求哈希' ,
version bigint NOT NULL DEFAULT '0' COMMENT '乐观锁版本' ,
created_at datetime ( 3 ) NOT NULL COMMENT '创建时间' ,
updated_at datetime ( 3 ) NOT NULL COMMENT '更新时间' ,
submitted_at datetime ( 3 ) DEFAULT NULL COMMENT '提交完成时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_pda_stocktake_no ( task_no ),
UNIQUE KEY uk_ll_pda_stocktake_create ( overseas_warehouse_id , created_by , idempotency_key ),
KEY idx_ll_pda_stocktake_list ( overseas_warehouse_id , status , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '海外PDA库存盘点任务' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_procurement_daily_sequence (
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户ID' ,
business_date date NOT NULL COMMENT '北京时间业务日期' ,
sequence_value int NOT NULL COMMENT '客户当日已分配最大序号' ,
PRIMARY KEY ( customer_id , business_date ),
CONSTRAINT chk_ll_procurement_sequence CHECK (( sequence_value between 1 and 9999 ))
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '海外采购客户日序列' ;
CREATE TABLE ll_receiving_container_operation (
id bigint NOT NULL COMMENT '柜号收货操作ID' ,
session_id bigint NOT NULL COMMENT '柜号签收会话ID' ,
operator_key varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作账号唯一标识' ,
action varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作动作' ,
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户端幂等键' ,
request_hash varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求内容哈希' ,
request_json longtext COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求内容快照' ,
result_json longtext COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '响应内容快照' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_receiving_operation ( operator_key , idempotency_key ),
KEY idx_ll_receiving_operation_session ( session_id , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '海外PDA柜号收货幂等审计记录' ;
CREATE TABLE ll_receiving_container_session (
id bigint NOT NULL COMMENT '柜号签收会话ID' ,
source_container_booking_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '稳定来源柜预订ID' ,
container_fact_hash varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '领取时整柜订单与计划事实摘要' ,
container_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '集装箱号' ,
overseas_warehouse_id bigint NOT NULL COMMENT '平台预分配并由操作员Token匹配的海外接柜仓ID' ,
overseas_warehouse_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '海外接柜仓业务编码快照' ,
overseas_warehouse_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '仓库服务校验后的海外接柜仓名称快照' ,
operator_key varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作账号唯一标识' ,
operator_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作账号名称' ,
active_operator_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '未完成会话平台操作账号全局唯一锁键' ,
active_container_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '未完成会话柜号全局唯一锁键' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'WAIT_SIGN' COMMENT '会话状态:WAIT_SIGN、SIGNED、RECEIVING、COMPLETED、COMPLETED_WITH_DIFFERENCE' ,
sign_photos json DEFAULT NULL COMMENT '签收卸柜照片角色与文件ID列表' ,
prepared_at datetime ( 3 ) DEFAULT NULL COMMENT '选择柜号时间' ,
signed_at datetime ( 3 ) DEFAULT NULL COMMENT '签收时间' ,
receiving_at datetime ( 3 ) DEFAULT NULL COMMENT '首次收货时间' ,
completed_at datetime ( 3 ) 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 '更新时间' ,
version int NOT NULL DEFAULT '0' COMMENT '乐观锁版本' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_receiving_active_operator ( active_operator_key ),
UNIQUE KEY uk_ll_receiving_active_container ( active_container_key ),
KEY idx_ll_receiving_container ( container_no , status ),
KEY idx_ll_receiving_operator ( operator_key , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '海外PDA柜号签收收货会话' ;
CREATE TABLE ll_receiving_fba_pallet_count (
id bigint NOT NULL COMMENT 'FBA托盘现场累计箱数ID' ,
session_id bigint NOT NULL COMMENT '柜号签收会话ID' ,
group_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '柜号与FBA仓组成的收货组键' ,
pallet_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '现有FBA托盘码' ,
actual_packages int NOT 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 ),
UNIQUE KEY uk_ll_receiving_fba_count ( session_id , group_key , pallet_code ),
KEY idx_ll_receiving_fba_group ( session_id , group_key )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '海外PDA普通FBA托盘现场累计与超收标记' ;
CREATE TABLE ll_receiving_sku_receipt (
id bigint NOT NULL COMMENT 'FBA SKU实收进度ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户账号标识' ,
session_id bigint NOT NULL COMMENT '柜号签收会话ID' ,
plan_id bigint NOT NULL COMMENT '入仓计划ID' ,
line_id bigint NOT NULL COMMENT '入仓计划明细ID' ,
pallet_id bigint NOT NULL COMMENT '计划托盘ID' ,
order_id bigint NOT NULL COMMENT '尾程订单ID' ,
inbound_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '入仓码快照' ,
sku_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'SKU编码快照' ,
product_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '产品名称快照' ,
received_packages int NOT NULL COMMENT 'SKU实收箱数' ,
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 '更新时间' ,
version int NOT NULL DEFAULT '0' COMMENT '乐观锁版本' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_receiving_sku_pallet ( customer_id , line_id , pallet_id , sku_code ),
KEY idx_ll_receiving_sku_session ( customer_id , session_id , line_id ),
KEY idx_ll_receiving_sku_plan ( customer_id , plan_id , line_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '海外PDA柜号FBA SKU实收进度' ;
CREATE TABLE ll_receiving_warehouse_operation (
id bigint NOT NULL COMMENT '柜级接柜仓修改操作ID' ,
source_container_booking_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '稳定来源柜预订ID' ,
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '平台请求幂等键' ,
request_hash varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '规范化修改请求SHA-256摘要' ,
result_version int NOT NULL COMMENT '修改成功后的柜级分配版本' ,
operator_name varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '平台操作人名称' ,
remark varchar ( 500 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '接柜仓修改备注' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '操作时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_receiving_warehouse_idempotency ( idempotency_key ),
KEY idx_ll_receiving_warehouse_container ( source_container_booking_id , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '柜级海外接柜仓修改幂等审计记录' ;
CREATE TABLE ll_relabel_application (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
relabel_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '换标申请单号' ,
lastleg_order_id bigint NOT NULL COMMENT '尾程订单ID' ,
customer_order_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户订单号' ,
overseas_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '海外仓ID' ,
label_deadline datetime ( 3 ) NOT NULL COMMENT '换标截止时间' ,
contact_name varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '联系人姓名' ,
contact_phone varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '联系人电话' ,
delivery_method varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '派送方式:TRUCK卡车、PICKUP自提、EXPRESS快递;仅涉及箱唛换标时必填' ,
print_shipping_label tinyint ( 1 ) NOT NULL DEFAULT '0' COMMENT '是否需要打印面单' ,
shipping_label_file_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户上传面单文件ID' ,
shipping_label_file_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户上传面单文件名' ,
shipping_label_file_url varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户上传面单下载地址' ,
fulfillment_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'WAIT_RELABEL' COMMENT '换标后履约状态' ,
outbound_order_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '自提或快递生成的换标出库单号' ,
customer_confirmation_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户确认完成幂等键' ,
customer_confirmed_at datetime ( 3 ) DEFAULT NULL COMMENT '客户确认换标完成时间' ,
remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注' ,
total_file_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '总换标PDF文件ID' ,
total_file_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '总换标PDF文件名' ,
total_file_url varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '总换标PDF预览地址' ,
carton_total_file_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '箱唛总文件ID' ,
carton_total_file_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '箱唛总文件名' ,
carton_total_file_url varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '箱唛总文件地址' ,
sku_total_file_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'SKU总文件ID' ,
sku_total_file_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'SKU总文件名' ,
sku_total_file_url varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'SKU总文件地址' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING_PROCESSING' COMMENT '业务状态' ,
item_count int NOT NULL DEFAULT '0' COMMENT '明细数量' ,
total_package_count int NOT NULL DEFAULT '0' COMMENT '总箱数' ,
notified_package_count int NOT NULL DEFAULT '0' COMMENT '已通知箱数' ,
charge_amount decimal ( 20 , 2 ) NOT NULL DEFAULT '0.00' COMMENT '换标费用CNY' ,
charge_currency char ( 3 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'CNY' COMMENT '费用币种' ,
wallet_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'FREEZE_PENDING' COMMENT '资金状态' ,
wallet_error_code varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '资金错误码' ,
wallet_error_message varchar ( 500 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '资金错误说明' ,
wallet_command_event_id varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '当前资金指令事件ID' ,
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务幂等键' ,
request_hash char ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求内容哈希' ,
created_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT 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 '更新时间' ,
2026-09-09 23:46:21 +08:00
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_relabel_application_no ( customer_id , relabel_no ),
UNIQUE KEY uk_ll_relabel_application_idempotency ( customer_id , idempotency_key ),
2026-09-22 08:49:21 +08:00
KEY idx_ll_relabel_application_order ( lastleg_order_id ),
2026-09-09 23:46:21 +08:00
KEY idx_ll_relabel_application_list ( customer_id , status , created_at ),
KEY idx_ll_relabel_application_customer ( customer_id , customer_order_no ),
KEY idx_ll_relabel_application_warehouse ( customer_id , overseas_warehouse_id )
2026-09-16 16:42:05 +08:00
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '客户换标申请单' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_relabel_item (
return_carton_id bigint DEFAULT NULL COMMENT '退货换箱唛来源退货库存箱ID' ,
source_carton_mark varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '退货换箱唛原箱唛快照' ,
new_carton_mark varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '退货换箱唛新箱唛' ,
id bigint NOT NULL COMMENT '主键ID' ,
application_id bigint NOT NULL COMMENT '申请单ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
sku_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'SKU编码(选填)' ,
product_image_file_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '产品图片文件ID' ,
product_image_file_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '产品图片文件名' ,
product_image_url varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '产品图片地址' ,
product_name_zh varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '产品中文名称' ,
total_package_count int NOT NULL COMMENT '总箱数' ,
notified_package_count int NOT NULL COMMENT '已通知箱数' ,
shipment_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '货件编号(无FBA去向时为空)' ,
tracking_code varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '物流跟踪编码' ,
2026-09-20 19:57:47 +08:00
new_sku_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '换标后SKU编码;批量SKU换标使用子明细JSON时为空' ,
2026-09-16 16:42:05 +08:00
label_requirement varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '换标要求' ,
remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '货物明细备注' ,
relabel_file_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '换标文件ID' ,
relabel_file_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '换标文件名' ,
relabel_file_url varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '换标文件地址' ,
carton_mark varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户自有箱唛' ,
fba_carton_mark varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '关联FBA箱唛' ,
destination_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '该箱目的海外仓ID' ,
destination_fba_warehouse_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '可选FBA目的仓编码(与海外操作仓分离)' ,
operation_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'CARTON_LABEL' COMMENT '换标模式:箱唛、SKU或组合换标' ,
sku_relabel_items_json json DEFAULT NULL COMMENT '同箱SKU换标子明细快照(数量按件)' ,
source_inventory_balance_id bigint DEFAULT NULL COMMENT '原库存余额ID(预入仓换标任务可为空)' ,
source_inventory_position_id bigint DEFAULT NULL COMMENT '原库存库位ID(预入仓换标任务可为空)' ,
source_inbound_order_id bigint DEFAULT NULL COMMENT '原入仓单ID(预入仓换标任务可为空)' ,
source_inbound_order_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '原入仓单号快照' ,
source_inbound_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '原进仓编码快照' ,
2026-09-20 19:57:47 +08:00
source_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '原海外中转仓ID;预入仓批量SKU换标时为空' ,
2026-09-16 16:42:05 +08:00
source_warehouse_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '原海外中转仓编码快照' ,
source_warehouse_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '原海外中转仓名称快照' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
2026-09-09 23:46:21 +08:00
PRIMARY KEY ( id ),
KEY idx_ll_relabel_item_application ( customer_id , application_id ),
KEY idx_ll_relabel_item_sku ( customer_id , sku_code ),
2026-09-16 16:42:05 +08:00
KEY idx_ll_relabel_item_destination ( customer_id , destination_warehouse_id , application_id ),
KEY idx_ll_relabel_item_source_position ( customer_id , source_inventory_position_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '换标货物冻结明细' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_relabel_pda_history (
id bigint NOT NULL COMMENT '换标PDA任务历史ID' ,
task_id bigint NOT NULL COMMENT '换标PDA任务ID' ,
application_id bigint NOT NULL COMMENT '换标申请单ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键' ,
action varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '现场动作类型' ,
from_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '动作前任务状态' ,
to_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '动作后任务状态' ,
operator_key varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作账号标识' ,
operator_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作员名称快照' ,
detail_json longtext COLLATE utf8mb4_unicode_ci COMMENT '动作详情JSON' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
2026-09-09 23:46:21 +08:00
PRIMARY KEY ( id ),
2026-09-16 16:42:05 +08:00
KEY idx_ll_relabel_pda_history_task ( customer_id , task_id , created_at , id ),
KEY idx_ll_relabel_pda_history_application ( customer_id , application_id , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '海外PDA换标任务不可变操作历史' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_relabel_pda_operation (
id bigint NOT NULL COMMENT '换标PDA幂等操作ID' ,
task_id bigint NOT NULL COMMENT '换标PDA任务ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键' ,
operator_key varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求操作账号标识' ,
action varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '幂等操作动作' ,
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '设备生成的幂等键' ,
request_hash char ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求内容哈希' ,
result_json longtext COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '成功响应快照JSON' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_relabel_pda_operation_key ( operator_key , idempotency_key ),
KEY idx_ll_relabel_pda_operation_task ( customer_id , task_id , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '海外PDA换标写操作幂等记录' ;
CREATE TABLE ll_relabel_pda_task (
id bigint NOT NULL COMMENT '换标PDA任务ID' ,
application_id bigint NOT NULL COMMENT '换标申请单ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键' ,
relabel_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '换标申请单号快照' ,
overseas_warehouse_id bigint NOT NULL COMMENT 'PDA令牌冻结的海外实际作业仓ID' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '任务状态:PROCESSING、WAIT_REVIEW或COMPLETED' ,
operator_key varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '认领操作账号标识' ,
operator_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '认领操作员名称快照' ,
reviewer_key varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '复核账号标识' ,
reviewer_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '复核员名称快照' ,
expected_packages int NOT NULL COMMENT '申请单通知的应换标箱数' ,
relabelled_packages int NOT NULL DEFAULT '0' COMMENT '已正常换标箱数' ,
skipped_packages int NOT NULL DEFAULT '0' COMMENT '已说明原因跳过箱数' ,
exception_packages int NOT NULL DEFAULT '0' COMMENT '已登记异常箱数' ,
completion_photo_file_ids json DEFAULT NULL COMMENT '换标完成现场照片文件ID列表' ,
completion_remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '完成提交备注' ,
review_decision varchar ( 16 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '最近复核结论:APPROVE或REWORK' ,
review_remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '最近复核备注' ,
claimed_at datetime ( 3 ) NOT NULL COMMENT '任务认领时间' ,
submitted_at datetime ( 3 ) DEFAULT NULL COMMENT '提交复核时间' ,
reviewed_at datetime ( 3 ) DEFAULT NULL COMMENT '最近复核时间' ,
version int 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 '更新时间' ,
2026-09-09 23:46:21 +08:00
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_relabel_pda_task_application ( customer_id , application_id ),
UNIQUE KEY uk_ll_relabel_pda_task_no ( relabel_no ),
KEY idx_ll_relabel_pda_task_warehouse ( overseas_warehouse_id , status , updated_at ),
KEY idx_ll_relabel_pda_task_operator ( operator_key , status , updated_at )
2026-09-16 16:42:05 +08:00
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '海外PDA换标现场作业任务' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_relabel_pda_unit_fact (
id bigint NOT NULL COMMENT '逐件换标事实ID' ,
task_id bigint NOT NULL COMMENT '换标PDA任务ID' ,
application_id bigint NOT NULL COMMENT '换标申请单ID' ,
item_id bigint NOT NULL COMMENT '换标申请明细ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户数据隔离键' ,
old_label varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '扫描的实物旧标签或箱标' ,
new_label varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '扫描的换标后新标签' ,
result varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '逐件结果:RELABELLED、SKIPPED或EXCEPTION' ,
exception_code varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '异常编码' ,
reason varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '跳过或异常原因' ,
2026-09-20 15:06:17 +08:00
quantity int NOT NULL DEFAULT '1' COMMENT '本次事实处理件数,箱级作业固定为1' ,
2026-09-16 16:42:05 +08:00
operator_key varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作账号标识' ,
operator_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作员名称快照' ,
occurred_at datetime ( 3 ) NOT NULL COMMENT '逐件事实发生时间' ,
2026-09-09 23:46:21 +08:00
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_relabel_pda_old_label ( old_label ),
KEY idx_ll_relabel_pda_unit_task ( customer_id , task_id , occurred_at , id ),
KEY idx_ll_relabel_pda_unit_item ( customer_id , application_id , item_id )
2026-09-16 16:42:05 +08:00
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '海外PDA逐件换标扫码与异常事实' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_relabel_status_history (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
application_id bigint NOT NULL COMMENT '申请单ID' ,
from_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '变更前状态' ,
to_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '变更后状态' ,
operator_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作人ID' ,
remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
2026-09-09 23:46:21 +08:00
PRIMARY KEY ( id ),
2026-09-16 16:42:05 +08:00
KEY idx_ll_relabel_status_history_application ( customer_id , application_id , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '换标状态变更历史' ;
2026-09-09 23:46:21 +08:00
2026-10-02 17:47:11 +08:00
-- 退货出库按SKU固化扣减前后快照,与PDA拣货同事务提交;不修改历史箱内容。
2026-10-08 15:55:47 +08:00
CREATE TABLE IF NOT EXISTS ll_return_inventory_outbound_movement (
2026-10-02 17:47:11 +08:00
id BIGINT NOT NULL COMMENT '退货出库SKU流水ID' ,
outbound_pick_id BIGINT NOT NULL COMMENT '同事务PDA出库拣货记录ID' ,
customer_id VARCHAR ( 128 ) NOT NULL COMMENT '库存所属客户ID和隔离键' ,
overseas_warehouse_id VARCHAR ( 128 ) NOT NULL COMMENT '实际出库海外仓ID' ,
carton_id BIGINT NOT NULL COMMENT '真实退货库存箱ID' ,
carton_mark VARCHAR ( 128 ) NOT NULL COMMENT '冻结的真实退货箱业务码' ,
outbound_no VARCHAR ( 64 ) NOT NULL COMMENT '本次退货出库业务单号' ,
sku_code VARCHAR ( 128 ) NOT NULL COMMENT '本次出库SKU编码快照' ,
product_name_zh VARCHAR ( 255 ) NULL COMMENT '中文品名快照' ,
quantity BIGINT NOT NULL COMMENT '本箱该SKU实际出库件数,始终为正' ,
total_before BIGINT NOT NULL COMMENT '客户仓SKU出库前实物总数量' ,
total_after BIGINT NOT NULL COMMENT '客户仓SKU出库后实物总数量' ,
available_before BIGINT NOT NULL COMMENT '客户仓SKU出库前可用数量' ,
available_after BIGINT NOT NULL COMMENT '客户仓SKU出库后可用数量' ,
cartons_before BIGINT NOT NULL COMMENT '客户仓包含该SKU的出库前可用箱数' ,
cartons_after BIGINT NOT NULL COMMENT '客户仓包含该SKU的出库后可用箱数' ,
occurred_at DATETIME ( 3 ) NOT NULL COMMENT '出库记账时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_return_outbound_pick_sku ( outbound_pick_id , sku_code ),
UNIQUE KEY uk_ll_return_outbound_carton_sku ( customer_id , carton_id , sku_code ),
KEY idx_ll_return_outbound_movement_query ( customer_id , overseas_warehouse_id , sku_code , occurred_at ),
CONSTRAINT chk_ll_return_outbound_movement_delta CHECK ( quantity > 0 AND total_after >= 0 AND available_after >= 0
AND total_before - total_after = quantity AND available_before - available_after = quantity
AND cartons_after >= 0 AND cartons_before - cartons_after = 1 AND total_after >= available_after )
) ENGINE = InnoDB COMMENT = '不可变退货出库SKU库存流水' ;
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_return_inventory_balance (
id bigint NOT NULL COMMENT '退货库存余额ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户ID和隔离键' ,
overseas_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '海外仓ID' ,
sku_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'SKU编码' ,
product_name_zh varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '中文品名' ,
total_quantity bigint NOT NULL DEFAULT '0' COMMENT '实物总库存,仅实际出库扣减' ,
available_quantity bigint NOT NULL COMMENT '未合箱可用上架数量' ,
carton_quantity bigint NOT NULL COMMENT '包含该SKU的可用箱数' ,
created_at datetime ( 3 ) NOT NULL COMMENT '创建时间' ,
updated_at datetime ( 3 ) NOT NULL COMMENT '最后更新时间' ,
2026-09-09 23:46:21 +08:00
PRIMARY KEY ( id ),
2026-09-16 16:42:05 +08:00
UNIQUE KEY uk_ll_return_inventory_balance ( customer_id , overseas_warehouse_id , sku_code ),
CONSTRAINT chk_ll_return_inventory_balance_quantity CHECK ((( total_quantity >= available_quantity ) and ( available_quantity >= 0 ) and ( carton_quantity >= 0 )))
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '退货库存按客户海外仓SKU汇总余额' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_return_inventory_carton (
new_carton_mark varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '换标后新箱唛' ,
id bigint NOT NULL COMMENT '退货库存箱ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户ID和隔离键' ,
overseas_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '海外仓ID' ,
source_receipt_id bigint DEFAULT NULL COMMENT '来源PDA签收单ID' ,
source_batch_no text COLLATE utf8mb4_unicode_ci COMMENT '实际消耗来源签收批次号,多个批次逗号分隔' ,
source_return_no text COLLATE utf8mb4_unicode_ci COMMENT '实际消耗来源退货单号,多个单号逗号分隔' ,
2026-09-20 15:06:17 +08:00
pallet_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '签收时绑定的托盘码' ,
2026-09-16 16:42:05 +08:00
carton_mark varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '退货箱号和箱唛编码' ,
fba_carton_mark varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'FBA箱唛' ,
destination_warehouse_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓编码' ,
destination_warehouse_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓名称' ,
relabel_application_id bigint DEFAULT NULL COMMENT '绑定换标申请单ID' ,
relabel_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '绑定换标单号' ,
relabel_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '换标状态' ,
relabel_completed_at datetime ( 3 ) DEFAULT NULL COMMENT '换标完成时间' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'AVAILABLE可用或MERGED已合箱' ,
sku_types int NOT NULL COMMENT '箱内SKU种类数' ,
total_quantity bigint NOT NULL COMMENT '箱内总件数' ,
length decimal ( 12 , 3 ) DEFAULT NULL COMMENT '箱长CM' ,
width decimal ( 12 , 3 ) DEFAULT NULL COMMENT '箱宽CM' ,
height decimal ( 12 , 3 ) DEFAULT NULL COMMENT '箱高CM' ,
weight decimal ( 12 , 3 ) DEFAULT NULL COMMENT '箱重KG' ,
created_at datetime ( 3 ) NOT NULL COMMENT '创建时间' ,
updated_at datetime ( 3 ) NOT NULL COMMENT '最后更新时间' ,
merged_at datetime ( 3 ) DEFAULT NULL COMMENT '合箱完成时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_return_inventory_carton_mark ( carton_mark ),
UNIQUE KEY uk_ll_return_inventory_carton_receipt ( source_receipt_id ),
KEY idx_ll_return_inventory_carton_customer ( customer_id , overseas_warehouse_id , status , created_at ),
2026-09-28 11:59:08 +08:00
CONSTRAINT chk_ll_return_inventory_carton_quantity CHECK (((( status in ( _utf8mb4 'AVAILABLE' , _utf8mb4 'RELABEL_PENDING' , _utf8mb4 'OUTBOUNDED' , _utf8mb4 'DISCARD_PENDING' )) and ( sku_types > 0 ) and ( total_quantity > 0 )) or (( status in ( _utf8mb4 'MERGED' , _utf8mb4 'DISCARDED' )) and ( sku_types = 0 ) and ( total_quantity = 0 )))),
CONSTRAINT chk_ll_return_inventory_carton_status CHECK (( status in ( _utf8mb4 'AVAILABLE' , _utf8mb4 'RELABEL_PENDING' , _utf8mb4 'MERGED' , _utf8mb4 'OUTBOUNDED' , _utf8mb4 'DISCARD_PENDING' , _utf8mb4 'DISCARDED' )))
2026-09-16 16:42:05 +08:00
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '退货实物库存箱及箱唛' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_return_inventory_carton_item (
id bigint NOT NULL COMMENT '退货库存箱SKU明细ID' ,
carton_id bigint NOT NULL COMMENT '退货库存箱ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户ID和隔离键' ,
sku_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'SKU编码' ,
product_name_zh varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '中文品名' ,
quantity bigint NOT NULL COMMENT '该SKU箱内数量' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_return_inventory_carton_item ( carton_id , sku_code ),
KEY idx_ll_return_inventory_carton_item_customer ( customer_id , sku_code ),
CONSTRAINT chk_ll_return_inventory_carton_item_quantity CHECK (( quantity > 0 ))
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '退货库存箱内SKU和数量' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_return_inventory_operation (
id bigint NOT NULL COMMENT '退货库存PDA操作ID' ,
operator_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PDA操作人ID' ,
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作幂等键' ,
request_hash char ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求内容SHA-256' ,
operation_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作类型,当前MERGE' ,
result_carton_id bigint DEFAULT NULL COMMENT '合箱结果退货库存箱ID' ,
created_at datetime ( 3 ) NOT NULL COMMENT '创建时间' ,
updated_at datetime ( 3 ) NOT NULL COMMENT '最后更新时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_return_inventory_operation_operator_key ( operator_id , idempotency_key ),
KEY idx_ll_return_inventory_operation_result ( result_carton_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '退货库存PDA合箱幂等操作审计' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_return_order (
id bigint NOT NULL COMMENT '退货订单ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户ID和隔离键' ,
return_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '退货订单号' ,
overseas_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作海外仓ID' ,
warehouse_contact_name varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '中转仓联系人快照' ,
warehouse_contact_phone varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '中转仓联系电话快照' ,
customer_reference_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户参考号' ,
need_relabel tinyint ( 1 ) NOT NULL DEFAULT '0' COMMENT '是否需要换标' ,
relabel_application_id bigint DEFAULT NULL COMMENT '绑定换标申请单ID' ,
relabel_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '绑定换标单号' ,
relabel_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '换标状态' ,
lastleg_order_id bigint DEFAULT NULL COMMENT '尾程订单ID' ,
lastleg_order_no varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '尾程订单号' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PENDING_RECEIPT、PARTIALLY_RECEIVED或COMPLETED' ,
expected_sku_types int NOT NULL COMMENT '预报SKU种类数' ,
expected_quantity bigint NOT NULL COMMENT '预报总数量' ,
received_quantity bigint NOT NULL DEFAULT '0' COMMENT '累计实收总数量' ,
remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户备注' ,
2026-09-20 15:06:17 +08:00
discrepancy_reason varchar ( 500 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '手动完结差异原因' ,
manually_completed_at datetime ( 3 ) DEFAULT NULL COMMENT '手动差异完结时间' ,
2026-09-16 16:42:05 +08:00
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建幂等键' ,
request_hash char ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建请求SHA-256' ,
created_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建操作人ID' ,
created_at datetime ( 3 ) NOT NULL COMMENT '创建时间' ,
updated_at datetime ( 3 ) NOT NULL COMMENT '最后更新时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_return_order_customer_no ( customer_id , return_no ),
UNIQUE KEY uk_ll_return_order_customer_key ( customer_id , idempotency_key ),
KEY idx_ll_return_order_warehouse_status ( overseas_warehouse_id , status , created_at ),
CONSTRAINT chk_ll_return_order_quantity CHECK ((( expected_sku_types > 0 ) and ( expected_quantity > 0 ) and ( received_quantity >= 0 ) and ( received_quantity <= expected_quantity )))
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '客户退货订单及SKU实收汇总' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_return_order_item (
id bigint NOT NULL COMMENT '退货预报明细ID' ,
return_order_id bigint NOT NULL COMMENT '退货订单ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户ID和隔离键' ,
sku_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'SKU编码' ,
product_name_zh varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '中文品名' ,
expected_quantity bigint NOT NULL COMMENT 'SKU预报数量' ,
received_quantity bigint NOT NULL DEFAULT '0' COMMENT 'SKU累计实收数量' ,
created_at datetime ( 3 ) NOT NULL COMMENT '创建时间' ,
updated_at datetime ( 3 ) NOT NULL COMMENT '最后更新时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_return_item_order_sku ( return_order_id , sku_code ),
KEY idx_ll_return_item_sku ( sku_code , received_quantity ),
CONSTRAINT chk_ll_return_item_quantity CHECK ((( expected_quantity > 0 ) and ( received_quantity >= 0 ) and ( received_quantity <= expected_quantity )))
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '客户退货订单的SKU预报与实收明细' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_return_receipt (
id bigint NOT NULL COMMENT 'PDA退货签收单ID' ,
return_order_id bigint NOT NULL COMMENT '退货订单ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户ID和隔离键' ,
receipt_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '签收单号' ,
receipt_batch_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '签收批次号' ,
2026-09-20 15:06:17 +08:00
pallet_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本次签收绑定的托盘码' ,
2026-09-16 16:42:05 +08:00
carton_mark varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '签收生成或绑定的退货箱号' ,
tracking_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本次签收包裹的可选快递单号' ,
bound_by varchar ( 16 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '开始签收方式,RETURN_NO退货单号或SKU候选' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '签收状态,当前SIGNED' ,
received_quantity bigint NOT NULL COMMENT '本次实收数量' ,
operator_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PDA操作人ID' ,
operator_name varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'PDA操作人名称' ,
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PDA确认幂等键' ,
request_hash char ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'PDA确认请求SHA-256' ,
signed_at datetime ( 3 ) NOT NULL COMMENT '签收时间' ,
created_at datetime ( 3 ) NOT NULL COMMENT '创建时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_return_receipt_no ( receipt_no ),
UNIQUE KEY uk_ll_return_receipt_batch ( receipt_batch_no ),
UNIQUE KEY uk_ll_return_receipt_operator_key ( operator_id , idempotency_key ),
KEY idx_ll_return_receipt_order ( return_order_id , signed_at ),
CONSTRAINT chk_ll_return_receipt_bound CHECK (( bound_by in ( _utf8mb4 'RETURN_NO' , _utf8mb4 'SKU' ))),
CONSTRAINT chk_ll_return_receipt_quantity CHECK (( received_quantity > 0 ))
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'PDA退货实收签收事实' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_return_receipt_batch (
id bigint NOT NULL COMMENT '退货仓储计费批次ID' ,
return_order_id bigint NOT NULL COMMENT '退货订单ID' ,
receipt_id bigint NOT NULL COMMENT 'PDA退货签收单ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户ID和隔离键' ,
batch_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '签收批次号' ,
overseas_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作海外仓ID' ,
storage_billing_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '仓储计费状态,初始PENDING_PRICING' ,
storage_started_at datetime ( 3 ) NOT NULL COMMENT '仓储计费起算时间' ,
created_at datetime ( 3 ) NOT NULL COMMENT '创建时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_return_batch_no ( batch_no ),
UNIQUE KEY uk_ll_return_batch_receipt ( receipt_id ),
KEY idx_ll_return_batch_billing ( customer_id , overseas_warehouse_id , storage_billing_status , storage_started_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '每次退货签收生成的仓储费起算批次' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_return_receipt_item (
id bigint NOT NULL COMMENT '签收SKU明细ID' ,
receipt_id bigint NOT NULL COMMENT 'PDA退货签收单ID' ,
return_order_item_id bigint NOT NULL COMMENT '退货预报明细ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户ID和隔离键' ,
sku_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'SKU编码' ,
received_quantity bigint NOT NULL COMMENT '本次SKU实收数量' ,
PRIMARY KEY ( id ),
KEY idx_ll_return_receipt_item_receipt ( receipt_id ),
KEY idx_ll_return_receipt_item_order_item ( return_order_item_id ),
CONSTRAINT chk_ll_return_receipt_item_quantity CHECK (( received_quantity > 0 ))
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'PDA退货签收SKU实际数量明细' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_us_truck_order (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
order_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '订单号' ,
transport_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '运输类型' ,
origin varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '起运地' ,
origin_address varchar ( 500 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '起运地址' ,
destination varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '目的地' ,
destination_address varchar ( 500 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的地址' ,
2026-10-07 19:38:56 +08:00
container_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '柜型;拼车来源未提供时为空,不推断为整柜' ,
2026-09-16 16:42:05 +08:00
pallet_count int NOT NULL DEFAULT '1' COMMENT '客户申报托盘数' ,
package_count int DEFAULT NULL COMMENT '可选箱数,零或空值均有效' ,
received_pallet_count int NOT NULL DEFAULT '0' COMMENT 'PDA实收托盘数' ,
allocated_pallet_count int NOT NULL DEFAULT '0' COMMENT '已分配到合车行程的托盘数' ,
total_weight_kg decimal ( 18 , 3 ) NOT NULL DEFAULT '0.000' COMMENT '总重量(千克)' ,
total_volume_cbm decimal ( 18 , 6 ) NOT NULL DEFAULT '0.000000' COMMENT '总体积(立方米)' ,
budget_amount decimal ( 18 , 2 ) DEFAULT NULL COMMENT '预算金额' ,
currency varchar ( 3 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'USD' COMMENT '币种' ,
contact_name varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '联系人姓名' ,
contact_info varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '联系人联系方式' ,
requested_date date NOT NULL COMMENT '要求服务日期' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '美国卡车订单状态' ,
remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注' ,
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务幂等键' ,
request_hash char ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求内容哈希' ,
created_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建人ID' ,
version bigint 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 ) COMMENT '更新时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_us_truck_order_no ( customer_id , order_no ),
UNIQUE KEY uk_ll_us_truck_order_key ( customer_id , idempotency_key ),
KEY idx_ll_us_truck_order_list ( customer_id , status , created_at ),
KEY idx_ll_us_truck_order_date ( customer_id , requested_date , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '美国卡车运输订单' ;
2026-09-10 10:25:16 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_us_truck_order_operation (
id bigint NOT NULL COMMENT '操作记录ID' ,
order_id bigint NOT NULL COMMENT '美国卡车订单ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
operation_type varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '具名操作类型' ,
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作幂等键' ,
request_hash char ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作请求内容哈希' ,
result_version bigint NOT NULL COMMENT '操作完成后的订单版本' ,
created_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作人ID' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_us_truck_operation_key ( customer_id , order_id , idempotency_key ),
KEY idx_ll_us_truck_operation_order ( customer_id , order_id , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '美国卡车订单幂等操作账' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_us_truck_order_pallet (
id bigint NOT NULL COMMENT '托盘记录ID' ,
order_id bigint NOT NULL COMMENT '美国卡车订单ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
pallet_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务托盘号' ,
sequence_no int NOT NULL COMMENT '订单内托盘序号' ,
source varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '托盘来源:订单计划或PDA超收' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '托盘状态:待收、已收或超收待审核' ,
warehouse_pallet_id bigint DEFAULT NULL COMMENT '仓库实物托盘资源ID' ,
package_count int DEFAULT NULL COMMENT '托盘箱数' ,
received_at datetime ( 3 ) 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 ),
UNIQUE KEY uk_ll_us_truck_order_pallet_no ( customer_id , order_id , pallet_no ),
UNIQUE KEY uk_ll_us_truck_order_pallet_seq ( customer_id , order_id , sequence_no ),
KEY idx_ll_us_truck_order_pallet_list ( customer_id , order_id , status )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '美国卡车订单托盘实收记录' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_us_truck_order_status_history (
id bigint NOT NULL COMMENT '主键ID' ,
order_id bigint NOT NULL COMMENT '订单ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
operation_type varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '具名操作类型' ,
from_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '变更前状态' ,
to_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '变更后状态' ,
operator_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作人ID' ,
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作幂等键' ,
remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
PRIMARY KEY ( id ),
KEY idx_ll_us_truck_history ( customer_id , order_id , created_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '美国卡车订单状态历史' ;
2026-09-09 23:46:21 +08:00
2026-10-03 04:18:52 +08:00
CREATE TABLE ll_fleet_driver (
id BIGINT NOT NULL COMMENT '内部主键' ,
driver_no VARCHAR ( 32 ) NOT NULL COMMENT '司机业务编号' ,
warehouse_id BIGINT NULL COMMENT '所属公共仓库引用' ,
warehouse_code VARCHAR ( 64 ) NULL COMMENT '所属仓库编码快照' ,
warehouse_name VARCHAR ( 256 ) NULL COMMENT '所属仓库名称快照' ,
vehicle_models VARCHAR ( 128 ) NULL COMMENT '可驾驶车型描述' ,
languages_and_area VARCHAR ( 256 ) NULL COMMENT '语言及服务区域' ,
medical_expires_on DATE NULL COMMENT '体检到期日,当前不作为必需资质' ,
training_expires_on DATE NULL COMMENT '培训安全到期日,当前不作为必需资质' ,
insurance_expires_on DATE NULL COMMENT '保险到期日,当前不作为必需资质' ,
name VARCHAR ( 128 ) NOT NULL COMMENT '姓名' ,
phone VARCHAR ( 64 ) NOT NULL COMMENT '联系电话' ,
ownership VARCHAR ( 16 ) NOT NULL COMMENT '归属 OWNED自有 DISPATCHED外派' ,
region VARCHAR ( 16 ) NOT NULL COMMENT '区域 DOMESTIC国内 OVERSEAS海外' ,
active TINYINT ( 1 ) NOT NULL DEFAULT 1 COMMENT '是否启用' ,
review_status VARCHAR ( 16 ) NOT NULL DEFAULT 'PENDING' COMMENT '证照审核 PENDING待审 APPROVED通过 REJECTED打回' ,
license_number VARCHAR ( 128 ) NULL COMMENT '驾驶证编号' ,
license_type VARCHAR ( 64 ) NULL COMMENT '驾驶证类型' ,
license_issued_on DATE NULL COMMENT '驾驶证签发日期' ,
license_expires_on DATE NULL COMMENT '驾驶证有效截止日' ,
license_zone VARCHAR ( 64 ) NOT NULL COMMENT '证照有效日期的IANA时区' ,
license_file_id BIGINT NULL COMMENT '平台驾驶证文件引用' ,
remark VARCHAR ( 1000 ) NULL COMMENT '备注' ,
record_version BIGINT NOT NULL DEFAULT 0 COMMENT '并发版本' ,
created_by VARCHAR ( 64 ) NOT NULL COMMENT '创建人' ,
created_at DATETIME ( 3 ) NOT NULL COMMENT '创建时间UTC' ,
updated_by VARCHAR ( 64 ) NOT NULL COMMENT '修改人' ,
updated_at DATETIME ( 3 ) NOT NULL COMMENT '修改时间UTC' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_fleet_driver_no ( driver_no ),
KEY idx_fleet_driver_page ( active , review_status , updated_at , id ),
KEY idx_fleet_driver_expiry ( license_expires_on ),
CONSTRAINT chk_fleet_driver_ownership CHECK ( ownership IN ( 'OWNED' , 'DISPATCHED' )),
CONSTRAINT chk_fleet_driver_region CHECK ( region IN ( 'DOMESTIC' , 'OVERSEAS' )),
CONSTRAINT chk_fleet_driver_review CHECK ( review_status IN ( 'PENDING' , 'APPROVED' , 'REJECTED' )),
CONSTRAINT chk_fleet_driver_dates CHECK ( license_issued_on IS NULL OR license_expires_on IS NULL OR license_issued_on <= license_expires_on )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '平台司机档案' ;
CREATE TABLE ll_fleet_driver_history (
id BIGINT NOT NULL COMMENT '内部主键' ,
driver_id BIGINT NOT NULL COMMENT '司机内部引用' ,
record_version BIGINT NOT NULL COMMENT '操作后的档案版本' ,
action VARCHAR ( 32 ) NOT NULL COMMENT '创建编辑启停证照上传及审核动作' ,
reason VARCHAR ( 1000 ) NULL COMMENT '操作原因或审核意见' ,
license_file_id BIGINT NULL COMMENT '当时驾驶证文件引用' ,
snapshot_json JSON NOT NULL COMMENT '操作后不可变档案快照' ,
operator_id VARCHAR ( 64 ) NOT NULL COMMENT '操作人' ,
occurred_at DATETIME ( 3 ) NOT NULL COMMENT '操作时间UTC' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_fleet_driver_history_version ( driver_id , record_version ),
KEY idx_fleet_driver_history_file ( driver_id , license_file_id ),
CONSTRAINT fk_fleet_driver_history_driver FOREIGN KEY ( driver_id ) REFERENCES ll_fleet_driver ( id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '司机档案及审核历史' ;
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_vehicle (
2026-10-03 04:18:52 +08:00
max_pallet_spaces INT NULL COMMENT '最大标准托位,未知时为空' ,
max_load_kg DECIMAL ( 12 , 3 ) NULL COMMENT '最大载重,千克' ,
max_volume_cbm DECIMAL ( 12 , 3 ) NULL COMMENT '可用容积,立方米' ,
2026-09-16 16:42:05 +08:00
id bigint NOT NULL COMMENT '车辆档案ID' ,
plate_number varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '车牌号' ,
model varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '车型' ,
fuel_consumption_per100_km decimal ( 10 , 2 ) NOT NULL COMMENT '百公里油耗,单位升' ,
mileage_km bigint NOT NULL COMMENT '当前公里码,单位公里' ,
driver_or_dispatch_company varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '司机姓名或外派单位' ,
phone varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '司机或外派单位联系电话' ,
region varchar ( 16 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '区域:DOMESTIC/OVERSEAS' ,
ownership varchar ( 16 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '车辆归属:OWNED/DISPATCHED' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '状态:IN_SERVICE/DISPATCHED/MAINTENANCE/INACTIVE/RETURNED' ,
remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注' ,
record_version bigint NOT NULL DEFAULT '0' COMMENT '乐观锁版本' ,
created_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建人' ,
updated_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '更新人' ,
created_at datetime ( 3 ) NOT NULL COMMENT '创建时间' ,
updated_at datetime ( 3 ) NOT NULL COMMENT '更新时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_vehicle_plate ( plate_number ),
2026-10-03 04:18:52 +08:00
KEY idx_ll_vehicle_page ( ownership , region , status , updated_at , id ),
CONSTRAINT chk_ll_vehicle_capacity CHECK (( max_pallet_spaces IS NULL AND max_load_kg IS NULL AND max_volume_cbm IS NULL )
OR ( max_pallet_spaces IS NOT NULL AND max_load_kg IS NOT NULL AND max_volume_cbm IS NOT NULL
AND max_pallet_spaces BETWEEN 1 AND 10000 AND max_load_kg > 0 AND max_volume_cbm > 0 ))
2026-09-16 16:42:05 +08:00
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '平台车辆主数据' ;
2026-10-03 04:18:52 +08:00
CREATE TABLE ll_fleet_vehicle_record (
id BIGINT NOT NULL COMMENT '记录内部主键' ,
record_no VARCHAR ( 32 ) NOT NULL COMMENT '车辆运维业务编号' ,
vehicle_id BIGINT NOT NULL COMMENT '所属车辆主键' ,
vehicle_plate VARCHAR ( 64 ) NOT NULL COMMENT '建档时车牌快照' ,
record_type VARCHAR ( 32 ) NOT NULL COMMENT '运维类型:保养、加油、维修、故障、救援、异常' ,
occurred_at DATETIME ( 3 ) NOT NULL COMMENT '记录发生时间(UTC) ' ,
details_json JSON NOT NULL COMMENT '带明确单位的业务字段快照' ,
files_json JSON NOT NULL COMMENT '所属记录照片与上传幂等摘要' ,
idempotency_key VARCHAR ( 128 ) NOT NULL COMMENT '创建请求幂等键' ,
request_hash CHAR ( 64 ) NOT NULL COMMENT '原创建业务内容摘要' ,
record_version BIGINT NOT NULL DEFAULT 0 COMMENT '乐观锁版本' ,
created_by VARCHAR ( 64 ) NOT NULL COMMENT '创建操作人' ,
updated_by VARCHAR ( 64 ) NOT NULL COMMENT '最后操作人' ,
created_at DATETIME ( 3 ) NOT NULL COMMENT '创建时间(UTC) ' ,
updated_at DATETIME ( 3 ) NOT NULL COMMENT '更新时间(UTC) ' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_vehicle_record_no ( record_no ),
UNIQUE KEY uk_vehicle_record_creation ( vehicle_id , created_by , idempotency_key ),
KEY idx_vehicle_record_page ( vehicle_id , record_type , occurred_at , id ),
CONSTRAINT fk_vehicle_record_vehicle FOREIGN KEY ( vehicle_id ) REFERENCES ll_vehicle ( id ),
CONSTRAINT ck_vehicle_record_type CHECK ( record_type IN ( 'MAINTENANCE' , 'FUEL' , 'REPAIR' , 'BREAKDOWN' , 'RESCUE' , 'EXCEPTION' ))
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '车辆运维记录' ;
CREATE TABLE ll_fleet_vehicle_record_history (
id BIGINT NOT NULL COMMENT '历史内部主键' ,
record_id BIGINT NOT NULL COMMENT '运维记录主键' ,
record_version BIGINT NOT NULL COMMENT '对应业务版本' ,
action VARCHAR ( 32 ) NOT NULL COMMENT '操作类型' ,
reason VARCHAR ( 1000 ) DEFAULT NULL COMMENT '更正原因或附件名称' ,
operator_id VARCHAR ( 64 ) NOT NULL COMMENT '操作人' ,
occurred_at DATETIME ( 3 ) NOT NULL COMMENT '操作时间(UTC) ' ,
snapshot_json JSON NOT NULL COMMENT '当时完整业务快照' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_vehicle_record_revision ( record_id , record_version ),
CONSTRAINT fk_vehicle_record_history FOREIGN KEY ( record_id ) REFERENCES ll_fleet_vehicle_record ( id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '车辆运维记录不可变历史' ;
CREATE TABLE ll_fleet_trip (
id BIGINT NOT NULL COMMENT '内部主键' ,
trip_no VARCHAR ( 32 ) NOT NULL COMMENT '车次业务编号' ,
idempotency_key VARCHAR ( 128 ) NOT NULL COMMENT '创建请求幂等键' ,
request_hash VARCHAR ( 64 ) NOT NULL COMMENT '创建请求SHA256' ,
status VARCHAR ( 16 ) NOT NULL COMMENT '车次状态' ,
warehouse_id BIGINT NOT NULL COMMENT '起运公共仓库引用' ,
warehouse_code VARCHAR ( 64 ) NOT NULL COMMENT '起运仓编码快照' ,
warehouse_name VARCHAR ( 256 ) NOT NULL COMMENT '起运仓名称快照' ,
vehicle_id BIGINT NULL COMMENT '车辆档案引用' ,
vehicle_plate VARCHAR ( 64 ) NULL COMMENT '分配时车牌快照' ,
driver_id BIGINT NULL COMMENT '司机档案引用' ,
driver_name VARCHAR ( 128 ) NULL COMMENT '分配时司机姓名' ,
driver_phone VARCHAR ( 64 ) NULL COMMENT '分配时司机电话' ,
max_pallet_spaces INT NULL COMMENT '分配时托位容量快照' ,
max_load_kg DECIMAL ( 12 , 3 ) NULL COMMENT '分配时载重千克' ,
max_volume_cbm DECIMAL ( 12 , 3 ) NULL COMMENT '分配时可用容积立方米' ,
planned_departure_at DATETIME ( 3 ) NOT NULL COMMENT '计划发车UTC' ,
expected_driver_end_at DATETIME ( 3 ) NOT NULL COMMENT '司机预计任务结束UTC,含承担的返程转场' ,
departed_at DATETIME ( 3 ) NULL COMMENT '实际发车UTC' ,
completed_at DATETIME ( 3 ) NULL COMMENT '实际运输完成UTC' ,
stops_json JSON NOT NULL COMMENT '按顺序保存的路线站点' ,
planned_load_json JSON NULL COMMENT '拣货前自有货计划载荷与逐段剩余容量' ,
load_json JSON NULL COMMENT '已确认实物装载及客户货物来源快照' ,
loading_review_json LONGTEXT NULL COMMENT '整车理货审核快照,空值为待审核' ,
departure_key VARCHAR ( 128 ) NULL COMMENT '整车发车幂等标识' ,
departure_hash CHAR ( 64 ) NULL COMMENT '整车发车请求摘要' ,
departure_result_json JSON NULL COMMENT '整车发车结果及各客户出库结果' ,
completion_json JSON NULL COMMENT '货物结案来源及幂等结果快照' ,
vehicle_release_json JSON NULL COMMENT '车辆任务结束地点状态与幂等记录' ,
driver_release_json JSON NULL COMMENT '司机任务结束地点与幂等记录' ,
remark VARCHAR ( 1000 ) NULL COMMENT '备注' ,
record_version BIGINT NOT NULL DEFAULT 0 COMMENT '并发版本' ,
created_by VARCHAR ( 64 ) NOT NULL COMMENT '创建人' ,
created_at DATETIME ( 3 ) NOT NULL COMMENT '创建UTC时间' ,
updated_by VARCHAR ( 64 ) NOT NULL COMMENT '更新人' ,
updated_at DATETIME ( 3 ) NOT NULL COMMENT '更新UTC时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_fleet_trip_no ( trip_no ),
UNIQUE KEY uk_fleet_trip_create ( created_by , idempotency_key ),
KEY idx_fleet_trip_page ( warehouse_id , status , updated_at , id ),
CONSTRAINT fk_fleet_trip_vehicle FOREIGN KEY ( vehicle_id ) REFERENCES ll_vehicle ( id ),
CONSTRAINT fk_fleet_trip_driver FOREIGN KEY ( driver_id ) REFERENCES ll_fleet_driver ( id ),
CONSTRAINT chk_fleet_trip_status CHECK ( status IN ( 'PLANNED' , 'DEPARTING' , 'IN_TRANSIT' , 'COMPLETED' , 'CANCELLED' )),
CONSTRAINT chk_fleet_trip_time CHECK ( expected_driver_end_at > planned_departure_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '平台运输车次' ;
2026-10-07 16:46:56 +08:00
CREATE TABLE ll_fleet_capacity_offer (
id BIGINT NOT NULL COMMENT '内部主键' ,
offer_no VARCHAR ( 64 ) NOT NULL COMMENT '拼车运力发布业务编号' ,
trip_id BIGINT NOT NULL COMMENT '唯一所属车次' ,
trip_no VARCHAR ( 64 ) NOT NULL COMMENT '车次业务编号' ,
status VARCHAR ( 16 ) NOT NULL COMMENT '发布状态:草稿、开放、暂停、关闭' ,
cutoff_at DATETIME ( 3 ) NOT NULL COMMENT '最晚交货及新询价截止UTC时间' ,
contact_name VARCHAR ( 128 ) NULL COMMENT '对内部销售公开的调度联系人' ,
contact_phone VARCHAR ( 128 ) NULL COMMENT '对内部销售公开的调度联系电话' ,
remark VARCHAR ( 1000 ) NULL COMMENT '公开承运说明' ,
published_fingerprint CHAR ( 64 ) NULL COMMENT '已核对路线车辆及容量计划事实摘要' ,
record_version BIGINT NOT NULL DEFAULT 0 COMMENT '乐观锁版本' ,
created_by VARCHAR ( 64 ) NOT NULL COMMENT '创建人' ,
created_at DATETIME ( 3 ) NOT NULL COMMENT '创建UTC时间' ,
updated_by VARCHAR ( 64 ) NOT NULL COMMENT '修改人' ,
updated_at DATETIME ( 3 ) NOT NULL COMMENT '修改UTC时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_fleet_capacity_offer_no ( offer_no ),
UNIQUE KEY uk_fleet_capacity_offer_trip ( trip_id ),
KEY idx_fleet_capacity_offer_status ( status , cutoff_at , id ),
CONSTRAINT fk_fleet_capacity_offer_trip FOREIGN KEY ( trip_id ) REFERENCES ll_fleet_trip ( id ),
CONSTRAINT chk_fleet_capacity_offer_status CHECK ( status IN ( 'DRAFT' , 'OPEN' , 'PAUSED' , 'CLOSED' ))
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '内部拼车车次余位发布;容量实时计算不在此另存' ;
CREATE TABLE ll_fleet_capacity_offer_command (
id BIGINT NOT NULL COMMENT '内部主键' ,
trip_id BIGINT NOT NULL COMMENT '所属车次锁作用域' ,
operator_id VARCHAR ( 64 ) NOT NULL COMMENT '原请求操作者' ,
action VARCHAR ( 32 ) NOT NULL COMMENT '业务命令类型' ,
scope_no VARCHAR ( 64 ) NOT NULL COMMENT '发布或预订业务编号作用域' ,
idempotency_key VARCHAR ( 128 ) NOT NULL COMMENT '原请求幂等键' ,
request_hash CHAR ( 64 ) NOT NULL COMMENT '原请求业务内容摘要' ,
result_json JSON NOT NULL COMMENT '成功命令原始结果用于精确重放' ,
created_at DATETIME ( 3 ) NOT NULL COMMENT '命令完成UTC时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_fleet_capacity_offer_command ( trip_id , operator_id , action , scope_no , idempotency_key ),
CONSTRAINT fk_fleet_capacity_command_trip FOREIGN KEY ( trip_id ) REFERENCES ll_fleet_trip ( id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '拼车发布及销售意向持久幂等结果' ;
2026-10-03 04:18:52 +08:00
CREATE TABLE ll_fleet_external_booking (
id BIGINT NOT NULL COMMENT '内部主键' ,
booking_no VARCHAR ( 32 ) NOT NULL COMMENT '外接预订业务编号' ,
trip_id BIGINT NOT NULL COMMENT '所属车次' ,
trip_no VARCHAR ( 32 ) NOT NULL COMMENT '车次业务编号' ,
2026-10-07 17:16:50 +08:00
customer_id VARCHAR ( 128 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '委托客户及付款归属' ,
2026-10-03 04:18:52 +08:00
customer_code VARCHAR ( 64 ) NOT NULL COMMENT '客户编号快照' ,
customer_name VARCHAR ( 255 ) NOT NULL COMMENT '客户名称快照' ,
status VARCHAR ( 16 ) NOT NULL COMMENT 'DRAFT询价/CONFIRMED占位/RECEIVED确认实收/BOUND关联发运/CANCELLED取消' ,
cargo_json JSON NOT NULL COMMENT '货物、计划载荷、联系人及约定报价快照' ,
2026-10-03 13:32:55 +08:00
quote_source_json JSON NULL COMMENT '选用销售报价的可信版本快照,与实际成交金额分开保存' ,
2026-10-03 04:18:52 +08:00
destination_key VARCHAR ( 160 ) NOT NULL COMMENT '已有路线卸货站匹配键' ,
destination_label VARCHAR ( 255 ) NOT NULL COMMENT '约定卸货站名称' ,
agreed_amount DECIMAL ( 16 , 2 ) NULL COMMENT '约定金额,非已入账应收或实收' ,
idempotency_key VARCHAR ( 128 ) NOT NULL COMMENT '登记请求键' ,
request_hash CHAR ( 64 ) NOT NULL COMMENT '登记内容摘要' ,
confirm_key VARCHAR ( 128 ) NULL COMMENT '承运确认请求键' ,
confirm_hash CHAR ( 64 ) NULL COMMENT '承运确认摘要' ,
cancel_key VARCHAR ( 128 ) NULL COMMENT '取消请求键' ,
cancel_hash CHAR ( 64 ) NULL COMMENT '取消摘要' ,
incoming_no VARCHAR ( 64 ) NULL COMMENT '正式来货单业务编号' ,
dispatch_no VARCHAR ( 64 ) NULL COMMENT '已关联客户排车业务编号' ,
receipt_json JSON NULL COMMENT '实测来源及运营确认的托位和运费依据' ,
incoming_key VARCHAR ( 128 ) NULL COMMENT '来货登记请求键' ,
incoming_hash CHAR ( 64 ) NULL COMMENT '来货登记摘要' ,
receipt_key VARCHAR ( 128 ) NULL COMMENT '实收确认请求键' ,
receipt_hash CHAR ( 64 ) NULL COMMENT '实收确认摘要' ,
binding_key VARCHAR ( 128 ) NULL COMMENT '关联发运请求键' ,
binding_hash CHAR ( 64 ) NULL COMMENT '关联发运摘要' ,
2026-10-07 16:46:56 +08:00
offer_id BIGINT NULL COMMENT '来源运力发布,普通车次预订为空' ,
sales_owner_user_id VARCHAR ( 64 ) NULL COMMENT '登录身份冻结的销售负责人' ,
business_type VARCHAR ( 32 ) NULL COMMENT '本土商业类型LOCAL_LOOSEBOARD或US_TRUCK' ,
delivery_mode VARCHAR ( 32 ) NULL COMMENT '客户送仓或人工安排提货回仓' ,
estimated_arrival_at DATETIME ( 3 ) NULL COMMENT '预计实际到我仓UTC时间' ,
expected_pallet_count INT NULL COMMENT '预计实托数,与托位分开且未知为空' ,
2026-10-03 04:18:52 +08:00
record_version BIGINT NOT NULL DEFAULT 0 COMMENT '记录版本' ,
created_by VARCHAR ( 64 ) NOT NULL COMMENT '登记人' ,
created_at DATETIME ( 3 ) NOT NULL COMMENT '登记UTC时间' ,
updated_by VARCHAR ( 64 ) NOT NULL COMMENT '修改人' ,
updated_at DATETIME ( 3 ) NOT NULL COMMENT '修改UTC时间' ,
2026-10-07 16:46:56 +08:00
KEY idx_fleet_booking_offer ( offer_id , status , id ),
KEY idx_fleet_booking_sales ( sales_owner_user_id , offer_id , id ),
CONSTRAINT fk_fleet_booking_offer FOREIGN KEY ( offer_id ) REFERENCES ll_fleet_capacity_offer ( id ),
CONSTRAINT chk_fleet_booking_expected_pallet CHECK ( expected_pallet_count IS NULL OR expected_pallet_count > 0 ),
2026-10-03 04:18:52 +08:00
PRIMARY KEY ( id ),
UNIQUE KEY uk_fleet_booking_no ( booking_no ),
UNIQUE KEY uk_fleet_booking_create ( trip_id , created_by , idempotency_key ),
KEY idx_fleet_booking_trip ( trip_id , status , id ),
UNIQUE KEY uk_fleet_booking_incoming ( incoming_no ),
KEY idx_fleet_booking_dispatch ( dispatch_no ),
CONSTRAINT fk_fleet_booking_trip FOREIGN KEY ( trip_id ) REFERENCES ll_fleet_trip ( id ),
CONSTRAINT chk_fleet_booking_status CHECK ( status IN ( 'DRAFT' , 'CONFIRMED' , 'RECEIVED' , 'BOUND' , 'CANCELLED' ))
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '外接询价及确认承运占位;货物收发和费用入账分别引用正式事实' ;
2026-10-07 16:46:56 +08:00
CREATE TABLE ll_fleet_pool_order_link (
id BIGINT NOT NULL COMMENT '内部主键' ,
booking_id BIGINT NOT NULL COMMENT '唯一外接预订' ,
booking_no VARCHAR ( 64 ) NOT NULL COMMENT '预订业务编号' ,
2026-10-07 17:16:50 +08:00
customer_id VARCHAR ( 128 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '商业客户隔离范围' ,
2026-10-07 16:46:56 +08:00
business_type VARCHAR ( 32 ) NOT NULL COMMENT '本土散板或本土卡车商业类型' ,
business_order_id BIGINT NOT NULL COMMENT '对应商业订单内部关联' ,
business_order_no VARCHAR ( 64 ) NOT NULL COMMENT '本土商业订单业务编号' ,
warehouse_id VARCHAR ( 128 ) NOT NULL COMMENT '真实我仓上车仓库' ,
destination_key VARCHAR ( 160 ) NOT NULL COMMENT '冻结卸货站匹配键' ,
delivery_mode VARCHAR ( 32 ) NOT NULL COMMENT '客户送仓或人工提货回仓' ,
delivery_instructions VARCHAR ( 1000 ) NULL COMMENT '实际到仓交货说明' ,
incoming_no VARCHAR ( 64 ) NULL COMMENT '真实来货业务编号,未登记为空' ,
lastleg_order_id BIGINT NULL COMMENT '唯一真实尾程来源,未发生为空' ,
dispatch_no VARCHAR ( 64 ) NULL COMMENT '已关联客户排车编号' ,
fulfillment_stage VARCHAR ( 32 ) NOT NULL COMMENT '实际履约阶段,不能手工冒充完成' ,
stage_occurred_at DATETIME ( 3 ) NOT NULL COMMENT '实际阶段发生UTC时间' ,
actual_pallet_count INT NULL COMMENT '实际去重托盘数,未知为空' ,
actual_package_count INT NULL COMMENT '实际箱数,未知为空' ,
actual_pallet_spaces INT NULL COMMENT '实际核准占用托位,未知为空' ,
record_version BIGINT NOT NULL DEFAULT 0 COMMENT '桥记录版本' ,
creation_request_hash CHAR ( 64 ) NOT NULL COMMENT '商业单创建身份和预报事实摘要' ,
created_by VARCHAR ( 64 ) NOT NULL COMMENT '确认承运操作者' ,
created_at DATETIME ( 3 ) NOT NULL COMMENT '创建UTC时间' ,
updated_at DATETIME ( 3 ) NOT NULL COMMENT '修改UTC时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_fleet_pool_order_booking ( booking_id ),
UNIQUE KEY uk_fleet_pool_order_booking_no ( booking_no ),
UNIQUE KEY uk_fleet_pool_order_business ( business_type , business_order_id ),
UNIQUE KEY uk_fleet_pool_order_incoming ( incoming_no ),
UNIQUE KEY uk_fleet_pool_order_lastleg ( lastleg_order_id ),
KEY idx_fleet_pool_order_customer ( customer_id , business_type , business_order_no ),
KEY idx_fleet_pool_order_dispatch ( customer_id , dispatch_no ),
CONSTRAINT fk_fleet_pool_order_booking FOREIGN KEY ( booking_id ) REFERENCES ll_fleet_external_booking ( id ),
CONSTRAINT chk_fleet_pool_order_type CHECK ( business_type IN ( 'LOCAL_LOOSEBOARD' , 'US_TRUCK' )),
CONSTRAINT chk_fleet_pool_order_actual CHECK (( actual_pallet_count IS NULL OR actual_pallet_count >= 0 ) AND ( actual_package_count IS NULL OR actual_package_count >= 0 ) AND ( actual_pallet_spaces IS NULL OR actual_pallet_spaces >= 0 ))
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '拼车预订与本土商业单唯一真实履约关联,不重复记运费' ;
2026-10-03 04:18:52 +08:00
CREATE TABLE ll_fleet_resource_assignment (
resource_kind VARCHAR ( 16 ) NOT NULL COMMENT '资源种类 VEHICLE或DRIVER' ,
resource_id BIGINT NOT NULL COMMENT '对应车辆或司机档案引用' ,
trip_id BIGINT NOT NULL COMMENT '占用车次' ,
trip_no VARCHAR ( 32 ) NOT NULL COMMENT '占用车次业务编号' ,
PRIMARY KEY ( resource_kind , resource_id ),
KEY idx_fleet_resource_trip ( trip_id ),
CONSTRAINT fk_fleet_resource_trip FOREIGN KEY ( trip_id ) REFERENCES ll_fleet_trip ( id ),
CONSTRAINT chk_fleet_resource_kind CHECK ( resource_kind IN ( 'VEHICLE' , 'DRIVER' ))
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '车辆及司机当前车次占用,释放后删除锁行,历史保留在车次' ;
CREATE TABLE ll_fleet_trip_dispatch (
dispatch_id BIGINT NOT NULL COMMENT '客户排车单内部引用,唯一有效车次关联' ,
dispatch_no VARCHAR ( 64 ) NOT NULL COMMENT '客户排车业务单号' ,
customer_id VARCHAR ( 128 ) NOT NULL COMMENT '排车单自身客户归属' ,
trip_id BIGINT NOT NULL COMMENT '共享运输车次内部引用' ,
trip_no VARCHAR ( 32 ) NOT NULL COMMENT '共享运输车次业务编号' ,
package_count INT NOT NULL COMMENT '关联时待发运箱数快照' ,
bound_by VARCHAR ( 64 ) NOT NULL COMMENT '关联操作人' ,
bound_at DATETIME ( 3 ) NOT NULL COMMENT '关联UTC时间' ,
review_json LONGTEXT NULL COMMENT '客户排车调度审核快照,空值为待审核' ,
PRIMARY KEY ( dispatch_id ),
UNIQUE KEY uk_fleet_trip_dispatch_no ( dispatch_no ),
KEY idx_fleet_trip_dispatch_trip ( trip_id , dispatch_id ),
CONSTRAINT fk_fleet_trip_dispatch_trip FOREIGN KEY ( trip_id ) REFERENCES ll_fleet_trip ( id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '车次与各客户排车单的有效关联,解除前快照保留在车次历史' ;
2026-10-03 12:38:04 +08:00
CREATE TABLE ll_fleet_trip_operations_record (
id BIGINT NOT NULL COMMENT '出车实测历史主键' ,
trip_no VARCHAR ( 64 ) NOT NULL COMMENT '车次业务编号' ,
record_version BIGINT NOT NULL COMMENT '实测记录版本从一递增' ,
details_json JSON NOT NULL COMMENT '实际里程英里油耗升与备注快照' ,
reason VARCHAR ( 1000 ) NOT NULL COMMENT '实测更正说明' ,
operator_id VARCHAR ( 64 ) NOT NULL COMMENT '实测操作人标识' ,
request_key VARCHAR ( 128 ) NOT NULL COMMENT '实测保存幂等键' ,
request_hash CHAR ( 64 ) NOT NULL COMMENT '实测请求内容摘要' ,
occurred_at DATETIME ( 3 ) NOT NULL COMMENT '实测保存时间UTC' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_fleet_operations_version ( trip_no , record_version ),
UNIQUE KEY uk_fleet_operations_request ( trip_no , operator_id , request_key )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '车次里程油耗不可变更正记录' ;
CREATE TABLE ll_fleet_trip_handover (
id BIGINT NOT NULL COMMENT '内部主键' ,
trip_id BIGINT NOT NULL COMMENT '所属车次' ,
trip_version BIGINT NOT NULL COMMENT '交接对应车次历史版本' ,
trip_no VARCHAR ( 32 ) NOT NULL COMMENT '车次业务编号' ,
handover_no VARCHAR ( 32 ) NOT NULL COMMENT '交接业务编号' ,
request_key VARCHAR ( 128 ) NOT NULL COMMENT '交接请求幂等键' ,
request_hash CHAR ( 64 ) NOT NULL COMMENT '交接请求摘要' ,
record_version BIGINT NOT NULL DEFAULT 0 COMMENT '资源结束并发版本' ,
handed_over_at DATETIME ( 3 ) NOT NULL COMMENT '实际交接UTC时间' ,
snapshot_json JSON NOT NULL COMMENT '不可变资源及剩余货物交接快照' ,
vehicle_release_json JSON NULL COMMENT '原车辆任务结束及幂等结果' ,
driver_release_json JSON NULL COMMENT '原司机任务结束及幂等结果' ,
created_by VARCHAR ( 64 ) NOT NULL COMMENT '记录操作人' ,
created_at DATETIME ( 3 ) NOT NULL COMMENT '记录UTC时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_fleet_handover_no ( handover_no ),
UNIQUE KEY uk_fleet_handover_request ( trip_id , request_key ),
UNIQUE KEY uk_fleet_handover_version ( trip_id , trip_version ),
KEY idx_fleet_handover_page ( trip_id , id ),
CONSTRAINT fk_fleet_handover_trip FOREIGN KEY ( trip_id ) REFERENCES ll_fleet_trip ( id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '在途车辆司机交接' ;
CREATE TABLE ll_fleet_finance_source (
id BIGINT UNSIGNED NOT NULL COMMENT '来源提交主键' ,
record_id BIGINT UNSIGNED NOT NULL COMMENT '车辆运维记录主键' ,
source_version BIGINT UNSIGNED NOT NULL COMMENT '独立财务来源版本,从1递增' ,
record_version BIGINT UNSIGNED NOT NULL COMMENT '提交时运维记录版本' ,
operator_id VARCHAR ( 64 ) NOT NULL COMMENT '提交操作人标识' ,
request_key VARCHAR ( 128 ) NOT NULL COMMENT '原请求幂等键' ,
request_hash VARCHAR ( 71 ) NOT NULL COMMENT '规范请求摘要,含sha256前缀' ,
event_id VARCHAR ( 128 ) NOT NULL COMMENT '关联公共Outbox事件ID' ,
payload_json JSON NOT NULL COMMENT '不可变公司成本来源快照' ,
created_at DATETIME ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '提交时间UTC' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_fleet_finance_source_version ( record_id , source_version ),
UNIQUE KEY uk_fleet_finance_source_request ( record_id , operator_id , request_key ),
UNIQUE KEY uk_fleet_finance_source_event ( event_id ),
CONSTRAINT chk_fleet_finance_source_version CHECK ( source_version > 0 )
) ENGINE = InnoDB COMMENT = '维修救援公司成本提交来源,不保存付款推定' ;
CREATE TABLE ll_fleet_quote (
id BIGINT PRIMARY KEY COMMENT '报价记录主键' ,
quote_no VARCHAR ( 64 ) NOT NULL COMMENT '报价业务编号' ,
kind VARCHAR ( 16 ) NOT NULL COMMENT '报价用途采购或销售' ,
party_id BIGINT NOT NULL COMMENT '供应商或客户主档标识' ,
party_name VARCHAR ( 160 ) NOT NULL COMMENT '往来单位名称快照' ,
origin_city VARCHAR ( 128 ) NOT NULL COMMENT '发货城市' ,
destination_code VARCHAR ( 64 ) NOT NULL COMMENT '目的仓业务编码' ,
valid_from DATE NOT NULL COMMENT '报价生效日期' ,
valid_to DATE NOT NULL COMMENT '报价失效日期含当天' ,
status VARCHAR ( 16 ) NOT NULL COMMENT '报价启停或删除状态' ,
natural_key CHAR ( 64 ) NOT NULL COMMENT '报价组合去重摘要' ,
details_json JSON NOT NULL COMMENT '完整报价明细快照' ,
record_version BIGINT NOT NULL COMMENT '报价记录版本' ,
create_key VARCHAR ( 128 ) NOT NULL COMMENT '创建幂等键' ,
create_hash CHAR ( 64 ) NOT NULL COMMENT '创建请求含导入批次内容摘要' ,
created_by VARCHAR ( 64 ) NOT NULL COMMENT '创建操作人标识' ,
created_at DATETIME ( 3 ) NOT NULL COMMENT '创建时间UTC' ,
updated_at DATETIME ( 3 ) NOT NULL COMMENT '更新时间UTC' ,
UNIQUE KEY uk_fleet_quote_no ( quote_no ),
UNIQUE KEY uk_fleet_quote_natural ( natural_key ),
UNIQUE KEY uk_fleet_quote_create ( created_by , create_key ),
KEY idx_fleet_quote_search ( kind , status , valid_from , valid_to )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '车辆采购与外接销售报价' ;
CREATE TABLE ll_fleet_quote_history (
id BIGINT PRIMARY KEY COMMENT '报价历史主键' ,
quote_id BIGINT NOT NULL COMMENT '报价记录标识' ,
record_version BIGINT NOT NULL COMMENT '报价记录版本' ,
action VARCHAR ( 24 ) NOT NULL COMMENT '报价操作类型' ,
operator_id VARCHAR ( 64 ) NOT NULL COMMENT '操作人标识' ,
occurred_at DATETIME ( 3 ) NOT NULL COMMENT '操作时间UTC' ,
snapshot_json JSON NOT NULL COMMENT '报价完整版本快照' ,
UNIQUE KEY uk_fleet_quote_history_version ( quote_id , record_version )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '车辆报价不可变版本历史' ;
CREATE TABLE ll_fleet_trip_cost (
id BIGINT NOT NULL COMMENT '内部主键' ,
trip_id BIGINT NOT NULL COMMENT '车次内部引用' ,
cost_no VARCHAR ( 32 ) NOT NULL COMMENT '车次成本业务编号' ,
category VARCHAR ( 16 ) NOT NULL COMMENT '直接成本类别FUEL/DRIVER/TOLL/PARKING/OTHER' ,
currency VARCHAR ( 3 ) NOT NULL COMMENT '原始成本币种CNY/USD,不混币汇总' ,
amount DECIMAL ( 14 , 2 ) NOT NULL COMMENT '运营登记金额,不代表付款' ,
incurred_at DATETIME ( 3 ) NOT NULL COMMENT '实际费用发生UTC时间' ,
remark VARCHAR ( 1000 ) NULL COMMENT '费用备注' ,
record_version BIGINT NOT NULL COMMENT '成本记录版本' ,
request_key VARCHAR ( 128 ) NOT NULL COMMENT '创建幂等键' ,
request_hash CHAR ( 64 ) NOT NULL COMMENT '创建请求摘要' ,
created_by VARCHAR ( 64 ) NOT NULL COMMENT '登记人' ,
updated_by VARCHAR ( 64 ) NOT NULL COMMENT '最近更正人' ,
created_at DATETIME ( 3 ) NOT NULL COMMENT '登记UTC时间' ,
updated_at DATETIME ( 3 ) NOT NULL COMMENT '更正UTC时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_fleet_trip_cost_no ( cost_no ),
UNIQUE KEY uk_fleet_trip_cost_request ( trip_id , created_by , request_key ),
KEY idx_fleet_trip_cost_page ( trip_id , incurred_at , id ),
CONSTRAINT fk_fleet_trip_cost_trip FOREIGN KEY ( trip_id ) REFERENCES ll_fleet_trip ( id ),
CONSTRAINT ck_fleet_trip_cost_amount CHECK ( amount >= 0 ),
CONSTRAINT ck_fleet_trip_cost_currency CHECK ( currency IN ( 'CNY' , 'USD' )),
CONSTRAINT ck_fleet_trip_cost_category CHECK ( category IN ( 'FUEL' , 'DRIVER' , 'TOLL' , 'PARKING' , 'OTHER' ))
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '车次直接运营成本,不生成客户账单或付款' ;
CREATE TABLE ll_fleet_trip_cost_history (
id BIGINT NOT NULL COMMENT '内部主键' ,
cost_id BIGINT NOT NULL COMMENT '成本记录内部引用' ,
record_version BIGINT NOT NULL COMMENT '成本更正后版本' ,
action VARCHAR ( 16 ) NOT NULL COMMENT '成本操作CREATE/UPDATE' ,
reason VARCHAR ( 1000 ) NULL COMMENT '登记或更正说明' ,
operator_id VARCHAR ( 64 ) NOT NULL COMMENT '操作人' ,
occurred_at DATETIME ( 3 ) NOT NULL COMMENT '操作UTC时间' ,
snapshot_json JSON NOT NULL COMMENT '成本与当时整趟汇总及分摊快照' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_fleet_trip_cost_history ( cost_id , record_version ),
CONSTRAINT fk_fleet_trip_cost_history FOREIGN KEY ( cost_id ) REFERENCES ll_fleet_trip_cost ( id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '车次成本不可变更正历史' ;
2026-10-03 04:18:52 +08:00
CREATE TABLE ll_fleet_trip_history (
id BIGINT NOT NULL COMMENT '内部主键' ,
trip_id BIGINT NOT NULL COMMENT '车次内部引用' ,
record_version BIGINT NOT NULL COMMENT '操作后版本' ,
action VARCHAR ( 32 ) NOT NULL COMMENT '车次操作' ,
reason VARCHAR ( 1000 ) NULL COMMENT '操作原因' ,
operator_id VARCHAR ( 64 ) NOT NULL COMMENT '操作人' ,
occurred_at DATETIME ( 3 ) NOT NULL COMMENT '操作UTC时间' ,
snapshot_json JSON NOT NULL COMMENT '操作后不可变车次快照' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_fleet_trip_history_version ( trip_id , record_version ),
CONSTRAINT fk_fleet_trip_history FOREIGN KEY ( trip_id ) REFERENCES ll_fleet_trip ( id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '运输车次操作历史' ;
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_wallet_event_inbox (
event_id varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '国内Finance资金结果事件ID' ,
command_event_id varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '原海外资金指令事件ID' ,
payload_hash varchar ( 71 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '规范化载荷SHA-256,包含sha256:前缀' ,
payload_json json NOT NULL COMMENT '冻结事件信封' ,
status varchar ( 16 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'RECEIVED或PROCESSED' ,
received_at datetime ( 3 ) NOT NULL COMMENT '接收时间' ,
processed_at datetime ( 3 ) DEFAULT NULL COMMENT '处理完成时间' ,
2026-09-09 23:46:21 +08:00
PRIMARY KEY ( event_id ),
UNIQUE KEY uk_ll_wallet_command_result ( command_event_id ),
KEY idx_ll_wallet_event_status ( status , received_at )
2026-09-16 16:42:05 +08:00
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '跨区客户资金结果幂等收件箱' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_warehouse_transfer_carton (
id bigint NOT NULL COMMENT '预报箱主键' ,
transfer_order_id bigint NOT NULL COMMENT '转运单ID' ,
transfer_item_id bigint NOT NULL COMMENT '转运申报明细ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
carton_mark varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '系统生成的一箱一码箱唛' ,
customer_carton_mark varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户原箱唛,用于换标现场绑定' ,
carton_index int NOT NULL COMMENT '全单箱序号' ,
total_cartons int NOT NULL COMMENT '首次生成时全单总箱数' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'EXPECTED' COMMENT '箱状态:EXPECTED待实收' ,
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_ll_wh_transfer_carton_mark ( customer_id , carton_mark ),
UNIQUE KEY uk_ll_wh_transfer_carton_index ( transfer_order_id , carton_index ),
KEY idx_ll_wh_transfer_carton_list ( customer_id , transfer_order_id , status )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '仓储转运系统箱唛预报' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_warehouse_transfer_inventory_allocation (
id bigint NOT NULL COMMENT '雪花主键' ,
transfer_order_id bigint NOT NULL COMMENT '转仓单ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
inventory_position_id bigint NOT NULL COMMENT '来源库存仓位记录ID' ,
inventory_balance_id bigint NOT NULL COMMENT '来源库存余额记录ID' ,
inbound_order_id bigint NOT NULL COMMENT '来源入仓单ID' ,
inbound_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源入仓单号快照' ,
pallet_id bigint NOT NULL COMMENT '来源托盘ID' ,
pallet_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源托盘号快照' ,
package_count int NOT NULL COMMENT '分配箱数' ,
2026-10-04 20:21:16 +08:00
sku_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本次来源分配的实际SKU快照' ,
2026-09-16 16:42:05 +08:00
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'RESERVED' COMMENT '分配状态' ,
active_position_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '生效中的仓位排他键' ,
allocated_at datetime ( 3 ) NOT NULL COMMENT '分配时间' ,
shipped_at datetime ( 3 ) DEFAULT NULL COMMENT '出库时间' ,
received_at datetime ( 3 ) 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 ),
2026-10-04 20:21:16 +08:00
KEY idx_ll_wh_transfer_allocation_position ( transfer_order_id , inventory_position_id ),
2026-09-16 16:42:05 +08:00
UNIQUE KEY uk_ll_wh_transfer_active_position ( customer_id , active_position_key ),
KEY idx_ll_wh_transfer_allocation_list ( customer_id , transfer_order_id , status )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '转仓单来源库存分配记录' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_warehouse_transfer_item (
id bigint NOT NULL COMMENT '主键ID' ,
transfer_order_id bigint NOT NULL COMMENT '转仓单ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
sku_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'SKU编码' ,
product_name_zh varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '产品中文名称' ,
package_count int NOT NULL COMMENT '箱数' ,
shipping_mark varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '运输唛头' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
PRIMARY KEY ( id ),
KEY idx_ll_wh_transfer_item_list ( customer_id , transfer_order_id ),
KEY idx_ll_wh_transfer_item_sku ( customer_id , sku_code )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '转仓货物冻结明细' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_warehouse_transfer_order (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
transfer_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '转仓单号' ,
inbound_order_id bigint NOT NULL COMMENT '入仓单ID' ,
inbound_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '入仓单号快照' ,
lastleg_order_id bigint NOT NULL COMMENT '尾程订单ID' ,
lastleg_order_no varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '尾程订单号' ,
operating_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '入库中转仓ID' ,
fba_warehouse_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '可选FBA目的仓编码' ,
2026-09-17 17:37:29 +08:00
destination_type varchar ( 16 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的类型:FBA或PRIVATE' ,
destination_warehouse_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓ID快照' ,
destination_warehouse_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓编码快照' ,
destination_warehouse_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的仓名称快照' ,
private_destination_address varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓完整地址' ,
private_destination_postal_code varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓邮编' ,
private_destination_contact_name varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓联系人' ,
private_destination_contact_phone varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '私人仓联系电话' ,
2026-09-16 16:42:05 +08:00
delivery_address varchar ( 1000 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '提货地址或中转仓收货地址' ,
2026-09-17 17:37:29 +08:00
pickup_contact_name varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '提货联系人' ,
pickup_contact_phone varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '提货联系电话' ,
2026-09-16 16:42:05 +08:00
package_count int NOT NULL COMMENT '箱数' ,
delivery_method varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '入仓方式' ,
estimated_arrival_at datetime ( 3 ) NOT NULL COMMENT '预计入仓时间' ,
estimated_ship_at datetime ( 3 ) DEFAULT NULL COMMENT '预计发货时间' ,
fba_shipment_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '可选FBA货件编号' ,
tracking_no varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '物流跟踪号' ,
fba_box_nos varchar ( 2000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'FBA箱号集合' ,
remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注' ,
need_relabel tinyint NOT NULL DEFAULT '0' COMMENT '是否需要换标' ,
relabel_application_id bigint DEFAULT NULL COMMENT '换标申请单ID' ,
relabel_no varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '换标申请单号' ,
relabel_completed_at datetime ( 3 ) DEFAULT NULL COMMENT '关联贴标完成时间' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'PENDING_REVIEW' COMMENT '业务状态' ,
2026-09-17 17:37:29 +08:00
review_decision varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '审核决定' ,
review_remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '审核备注或驳回原因' ,
reviewed_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '审核人ID' ,
reviewed_at datetime ( 3 ) DEFAULT NULL COMMENT '审核时间' ,
2026-09-16 16:42:05 +08:00
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务幂等键' ,
allocation_idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '库存分配幂等键' ,
allocation_request_hash char ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '库存分配请求哈希' ,
outbound_idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '出库幂等键' ,
outbound_request_hash char ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '出库请求哈希' ,
outbound_at datetime ( 3 ) DEFAULT NULL COMMENT '出库时间' ,
request_hash char ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '请求内容哈希' ,
created_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT 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 '更新时间' ,
label_deadline datetime ( 3 ) DEFAULT NULL COMMENT '换标截止时间' ,
relabel_contact_name varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '换标联系人' ,
relabel_contact_phone varchar ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '换标联系电话' ,
relabel_charge_amount decimal ( 20 , 2 ) DEFAULT NULL COMMENT '换标费用CNY' ,
relabel_delivery_method varchar ( 32 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '换标后派送方式' ,
palletize_idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'PDA打托幂等键' ,
palletize_request_hash char ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'PDA打托请求哈希' ,
confirmation_idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户测量确认幂等键' ,
confirmation_request_hash char ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '客户测量确认请求哈希' ,
customer_confirmed_at datetime ( 3 ) DEFAULT NULL COMMENT '客户确认测量时间' ,
2026-09-17 17:37:29 +08:00
destination_binding_idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的地绑定幂等键' ,
destination_binding_request_hash char ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '目的地绑定请求哈希' ,
2026-09-16 16:42:05 +08:00
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_wh_transfer_no ( customer_id , transfer_no ),
UNIQUE KEY uk_ll_wh_transfer_key ( customer_id , idempotency_key ),
UNIQUE KEY uk_ll_wh_transfer_tail_order ( lastleg_order_id ),
KEY idx_ll_wh_transfer_list ( customer_id , status , created_at ),
KEY idx_ll_wh_transfer_inbound ( customer_id , inbound_code )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '客户转仓单' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_warehouse_transfer_pallet (
id bigint NOT NULL COMMENT '打托事实ID' ,
transfer_order_id bigint NOT NULL COMMENT '转运单ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
sequence_no int NOT NULL COMMENT '托序号' ,
2026-09-17 17:37:29 +08:00
warehouse_pallet_id bigint DEFAULT NULL COMMENT '生成后的海外仓真实托盘ID' ,
pallet_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '生成后的真实托盘码' ,
warehouse_location_id bigint DEFAULT NULL COMMENT '生成后的真实库位ID' ,
2026-09-16 16:42:05 +08:00
warehouse_location_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '真实库位码' ,
2026-09-17 17:37:29 +08:00
warehouse_resource_lock_id bigint DEFAULT NULL COMMENT '生成后的仓储资源锁ID' ,
2026-09-16 16:42:05 +08:00
carton_count int NOT NULL COMMENT '本托实收箱数' ,
length_cm decimal ( 12 , 2 ) NOT NULL COMMENT '实测长cm' ,
width_cm decimal ( 12 , 2 ) NOT NULL COMMENT '实测宽cm' ,
height_cm decimal ( 12 , 2 ) NOT NULL COMMENT '实测高cm' ,
gross_weight_kg decimal ( 12 , 3 ) NOT NULL COMMENT '实测毛重kg' ,
volume_cbm decimal ( 18 , 6 ) NOT NULL COMMENT '实测体积CBM' ,
2026-09-17 17:37:29 +08:00
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '逐托状态DRAFT/GENERATED/BOUND/COMPLETED' ,
draft_idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '草稿保存幂等键' ,
draft_request_hash char ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '草稿请求摘要' ,
generate_idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '新托盘生成幂等键' ,
bind_idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '扫码绑定幂等键' ,
bound_at datetime ( 3 ) DEFAULT NULL COMMENT '扫码确认绑定时间' ,
completed_at datetime ( 3 ) DEFAULT NULL COMMENT '整单打托完成时间' ,
2026-09-16 16:42:05 +08:00
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_ll_transfer_pallet_seq ( transfer_order_id , sequence_no ),
UNIQUE KEY uk_ll_transfer_pallet_physical ( customer_id , warehouse_pallet_id ),
KEY idx_ll_transfer_pallet_order ( customer_id , transfer_order_id , status )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '仓储转运PDA实测打托事实' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_warehouse_transfer_pallet_item (
id bigint NOT NULL COMMENT '主键ID' ,
transfer_order_id bigint NOT NULL COMMENT '转运单ID' ,
transfer_pallet_id bigint NOT NULL COMMENT '转运托盘事实ID' ,
transfer_item_id bigint NOT NULL COMMENT '转运申报明细ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
package_count int NOT NULL COMMENT '本托该SKU实收箱数' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_transfer_pallet_item ( transfer_pallet_id , transfer_item_id ),
KEY idx_ll_transfer_pallet_item_order ( customer_id , transfer_order_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '仓储转运每托SKU箱数回填' ;
2026-09-09 23:46:21 +08:00
2026-09-17 17:37:29 +08:00
CREATE TABLE ll_warehouse_transfer_measurement_photo (
id bigint NOT NULL COMMENT '测量照片引用ID' ,
transfer_order_id bigint NOT NULL COMMENT '仓储转运单ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
file_id bigint NOT NULL COMMENT '文件服务文件ID' ,
file_name varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '文件名快照' ,
content_type varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '文件媒体类型快照' ,
size_bytes bigint NOT NULL DEFAULT '0' COMMENT '文件字节数快照' ,
uploaded_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'PDA上传操作人' ,
uploaded_at datetime ( 3 ) NOT NULL COMMENT '上传时间' ,
submitted_at datetime ( 3 ) DEFAULT NULL COMMENT '随测量打托提交时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_transfer_measurement_photo_file ( customer_id , transfer_order_id , file_id ),
KEY idx_ll_transfer_measurement_photo_order ( customer_id , transfer_order_id , uploaded_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '仓储转运PDA测量现场照片引用' ;
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_warehouse_transfer_receipt (
id bigint NOT NULL COMMENT '雪花主键' ,
transfer_order_id bigint NOT NULL COMMENT '转仓单ID' ,
allocation_id bigint NOT NULL COMMENT '库存分配记录ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
source_inventory_position_id bigint NOT NULL COMMENT '来源库存仓位记录ID' ,
destination_inventory_balance_id bigint NOT NULL COMMENT '目标库存余额记录ID' ,
destination_inventory_position_id bigint NOT NULL COMMENT '目标库存仓位记录ID' ,
package_count int NOT NULL COMMENT '收货箱数' ,
idempotency_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '收货幂等键' ,
request_hash char ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '收货请求哈希' ,
inventory_operation_key varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '库存操作幂等键' ,
created_by varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建人ID' ,
received_at datetime ( 3 ) NOT NULL COMMENT '收货时间' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_wh_transfer_receipt_source ( transfer_order_id , source_inventory_position_id ),
UNIQUE KEY uk_ll_wh_transfer_receipt_key ( customer_id , idempotency_key ),
UNIQUE KEY uk_ll_wh_transfer_receipt_operation ( customer_id , inventory_operation_key ),
KEY idx_ll_wh_transfer_receipt_list ( customer_id , transfer_order_id , received_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '转仓来源仓位的目标库存收货记录' ;
2026-09-09 23:46:21 +08:00
2026-10-05 03:13:31 +08:00
CREATE TABLE ll_warehouse_transfer_receipt_command (
id BIGINT NOT NULL COMMENT '收货命令主键' ,
customer_id VARCHAR ( 128 ) NOT NULL COMMENT '客户标识' ,
transfer_order_id BIGINT NOT NULL COMMENT '转运单标识' ,
source_inventory_position_id BIGINT NOT NULL COMMENT '本次收货来源库存位置' ,
idempotency_key VARCHAR ( 255 ) NOT NULL COMMENT '原始收货幂等键' ,
request_hash CHAR ( 64 ) NOT NULL COMMENT '完整原始收货请求摘要' ,
request_json JSON NOT NULL COMMENT '完整原始收货请求快照' ,
target_warehouse_id BIGINT NOT NULL COMMENT '实际目标海外收货仓' ,
target_pallet_id BIGINT NOT NULL COMMENT '目标实物托盘' ,
target_location_id BIGINT NOT NULL COMMENT '目标实际库位' ,
target_hash CHAR ( 64 ) NOT NULL COMMENT '共享目标资源绑定摘要' ,
target_json JSON NOT NULL COMMENT '权威目标仓托盘库位及目的仓快照' ,
reservation_key VARCHAR ( 128 ) NOT NULL COMMENT '同转运同目标托盘共享资源占用键' ,
resource_lock_id BIGINT NULL COMMENT '已确认有效的海外资源锁标识' ,
status VARCHAR ( 32 ) NOT NULL COMMENT '命令状态PREPARED准备完成RESERVED资源占用COMPLETED收货完成' ,
created_at DATETIME ( 3 ) NOT NULL COMMENT '命令创建时间' ,
updated_at DATETIME ( 3 ) NOT NULL COMMENT '命令最后更新时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_wh_receipt_cmd_source ( transfer_order_id , source_inventory_position_id ),
UNIQUE KEY uk_ll_wh_receipt_cmd_key ( customer_id , idempotency_key ),
KEY idx_ll_wh_receipt_cmd_target ( customer_id , transfer_order_id , target_pallet_id ),
CONSTRAINT ck_ll_wh_receipt_cmd_status CHECK ( status IN ( 'PREPARED' , 'RESERVED' , 'COMPLETED' ))
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '转运逐来源收货原请求与共享目标资源占用命令' ;
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_warehouse_transfer_relabel_binding (
id bigint NOT NULL COMMENT '主键ID' ,
transfer_order_id bigint NOT NULL COMMENT '转运单ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
operation_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '换标类型' ,
customer_carton_mark varchar ( 255 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户原箱唛' ,
original_sku varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '旧SKU' ,
new_sku varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '新SKU' ,
quantity int NOT NULL COMMENT '换标件数' ,
fba_carton_mark varchar ( 255 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '新FBA箱唛' ,
destination_warehouse_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'FBA目的仓' ,
remark varchar ( 1000 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注' ,
2026-10-04 20:21:16 +08:00
source_allocation_id bigint DEFAULT NULL COMMENT '已有库存转运的原始来源分配ID' ,
relabel_item_id bigint DEFAULT NULL COMMENT '本票关联换标明细ID' ,
2026-09-16 16:42:05 +08:00
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_transfer_relabel_mark ( transfer_order_id , customer_carton_mark ),
KEY idx_ll_transfer_relabel_order ( customer_id , transfer_order_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '仓储转运换标预绑定明细' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE ll_warehouse_transfer_source_order (
id bigint NOT NULL COMMENT '主键ID' ,
transfer_order_id bigint NOT NULL COMMENT '转仓单ID' ,
customer_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID' ,
source_lastleg_order_id bigint NOT NULL COMMENT '来源尾程订单ID' ,
source_lastleg_order_no varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '来源尾程订单号' ,
inbound_order_id bigint NOT NULL COMMENT '入仓单ID' ,
inbound_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '入仓单号快照' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_ll_wh_transfer_source ( transfer_order_id , source_lastleg_order_id ),
KEY idx_ll_wh_transfer_source_list ( customer_id , transfer_order_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '转仓来源历史订单绑定' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
-- 服务 schema: baiyue_lastlag_warehouse
CREATE DATABASE IF NOT EXISTS baiyue_lastlag_warehouse DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ;
2026-09-09 23:46:21 +08:00
USE baiyue_lastlag_warehouse ;
2026-09-16 16:42:05 +08:00
CREATE TABLE wh_location (
id bigint unsigned NOT NULL COMMENT '库位ID(雪花ID) ' ,
customer_id bigint unsigned NOT NULL COMMENT '数据所属租户ID' ,
warehouse_id bigint unsigned NOT NULL COMMENT '所属仓库ID' ,
location_code varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '仓库内唯一库位编码' ,
location_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '库位类型' ,
2026-09-22 09:38:49 +08:00
shared_overflow tinyint ( 1 ) NOT NULL DEFAULT '0' COMMENT '是否系统共享溢出库位(A0)' ,
2026-09-16 16:42:05 +08:00
max_load_kg decimal ( 18 , 3 ) NOT NULL COMMENT '最大承重(千克)' ,
status varchar ( 20 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'ACTIVE' COMMENT '库位状态:ACTIVE启用、INACTIVE停用' ,
remark varchar ( 500 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注' ,
created_by bigint unsigned DEFAULT NULL COMMENT '创建人ID' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
updated_by bigint unsigned DEFAULT NULL COMMENT '最后修改人ID' ,
updated_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) ON UPDATE CURRENT_TIMESTAMP ( 3 ) COMMENT '更新时间' ,
deleted tinyint ( 1 ) NOT NULL DEFAULT '0' COMMENT '逻辑删除标记' ,
version int NOT NULL DEFAULT '0' COMMENT '乐观锁版本号' ,
2026-09-09 23:46:21 +08:00
PRIMARY KEY ( id ),
2026-09-16 16:42:05 +08:00
UNIQUE KEY uk_location_code ( customer_id , warehouse_id , location_code , deleted ),
2026-09-24 08:54:26 +08:00
KEY idx_location_query ( customer_id , warehouse_id , status , deleted )
2026-09-16 16:42:05 +08:00
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '仓库库位表:按租户和仓库维护库位及承重信息' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE wh_pallet (
id bigint unsigned NOT NULL COMMENT '托盘ID(雪花ID) ' ,
customer_id bigint unsigned NOT NULL COMMENT '数据所属租户ID' ,
warehouse_id bigint unsigned NOT NULL COMMENT '所属仓库ID' ,
location_id bigint unsigned DEFAULT NULL COMMENT '同仓库内绑定的库位ID,可为空' ,
pallet_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '仓库内唯一托盘编码' ,
pallet_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '托盘类型' ,
capacity_cbm decimal ( 18 , 4 ) NOT NULL DEFAULT '2.0000' COMMENT '托盘容量(立方米)' ,
unit_price decimal ( 18 , 2 ) NOT NULL DEFAULT '0.00' COMMENT '托盘单价' ,
status varchar ( 20 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'IDLE' COMMENT '托盘状态:IDLE闲置、OCCUPIED占用、SCRAPPED废弃' ,
remark varchar ( 500 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注' ,
fba_warehouse_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '所属FBA仓编码' ,
created_by bigint unsigned DEFAULT NULL COMMENT '创建人ID' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
updated_by bigint unsigned DEFAULT NULL COMMENT '最后修改人ID' ,
updated_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) ON UPDATE CURRENT_TIMESTAMP ( 3 ) COMMENT '更新时间' ,
deleted tinyint ( 1 ) NOT NULL DEFAULT '0' COMMENT '逻辑删除标记' ,
version int NOT NULL DEFAULT '0' COMMENT '乐观锁版本号' ,
2026-09-09 23:46:21 +08:00
PRIMARY KEY ( id ),
2026-09-16 16:42:05 +08:00
UNIQUE KEY uk_pallet_code ( customer_id , warehouse_id , pallet_code , deleted ),
KEY idx_pallet_query ( customer_id , warehouse_id , status , deleted ),
KEY idx_pallet_location ( customer_id , warehouse_id , location_id , deleted )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '仓库托盘表:按租户和仓库维护托盘、容量、单价及状态' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE wh_pallet_batch (
id bigint NOT NULL COMMENT '批量托盘预留ID' ,
warehouse_id bigint NOT NULL COMMENT '实际海外仓ID' ,
batch_key varchar ( 160 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '柜级入库计划批次稳定业务键' ,
request_hash char ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '规范化批量请求SHA-256摘要' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '批次状态:RESERVED、CONFIRMED、COMPENSATED' ,
attempt_no int NOT NULL DEFAULT '1' COMMENT '同批次重新预留尝试次数' ,
confirm_command_key varchar ( 160 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '确认命令幂等键' ,
confirm_command_hash char ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '确认命令规范化SHA-256摘要' ,
compensate_command_key varchar ( 160 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '补偿命令幂等键' ,
compensate_command_hash char ( 64 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '补偿命令规范化SHA-256摘要' ,
compensate_reason varchar ( 500 ) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '补偿原因' ,
confirmed_at datetime ( 3 ) DEFAULT NULL COMMENT '确认绑定时间' ,
compensated_at datetime ( 3 ) 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 '更新时间' ,
2026-09-09 23:46:21 +08:00
PRIMARY KEY ( id ),
UNIQUE KEY uk_wh_pallet_batch_key ( warehouse_id , batch_key ),
KEY idx_wh_pallet_batch_status ( warehouse_id , status , updated_at )
2026-09-16 16:42:05 +08:00
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '柜级入库计划批量托盘预留与确认记录' ;
2026-09-09 23:46:21 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE wh_pallet_batch_item (
id bigint NOT NULL COMMENT '批量托盘明细ID' ,
batch_id bigint NOT NULL COMMENT '所属批量托盘预留ID' ,
customer_id bigint NOT NULL COMMENT '实际占用客户ID' ,
warehouse_id bigint NOT NULL COMMENT '实际海外仓ID' ,
business_key varchar ( 100 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '柜号入库计划序号组成的稳定业务键' ,
inbound_plan_no varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '入库计划号快照' ,
sequence_no int NOT NULL COMMENT '计划内托盘序号' ,
pallet_id bigint NOT NULL COMMENT '公共实物托盘ID' ,
pallet_code varchar ( 64 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '资源服务生成的规范托盘码快照' ,
location_id bigint NOT NULL COMMENT '公共托盘当前预留库位ID' ,
resource_lock_id bigint NOT NULL COMMENT '按客户隔离的资源锁ID' ,
status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '明细状态:RESERVED、CONFIRMED、RELEASED' ,
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 '更新时间' ,
2026-09-09 23:46:21 +08:00
PRIMARY KEY ( id ),
UNIQUE KEY uk_wh_pallet_batch_item_business ( customer_id , warehouse_id , business_key ),
UNIQUE KEY uk_wh_pallet_batch_item_sequence ( batch_id , sequence_no ),
2026-09-10 22:43:11 +08:00
KEY idx_wh_pallet_batch_item_pallet ( pallet_id ),
2026-09-09 23:46:21 +08:00
KEY idx_wh_pallet_batch_item_batch ( batch_id , status )
2026-09-16 16:42:05 +08:00
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '柜级入库计划批量托盘明细与资源锁关联' ;
CREATE TABLE wh_pallet_business_binding (
id bigint NOT NULL COMMENT '主键ID' ,
customer_id bigint NOT NULL COMMENT '客户租户ID' ,
warehouse_id bigint NOT NULL COMMENT '仓库ID' ,
business_type varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务类型' ,
business_id varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '绑定业务记录ID' ,
pallet_id bigint NOT NULL COMMENT '托盘ID' ,
created_at datetime ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '创建时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_wh_pallet_binding ( customer_id , warehouse_id , business_type , business_id ),
KEY idx_wh_pallet_binding_pallet ( pallet_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '托盘业务绑定关系' ;
CREATE TABLE wh_pallet_operation (
id bigint NOT NULL COMMENT '托盘状态操作ID' ,
operation_key varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '跨服务幂等操作键' ,
request_hash varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '状态变更请求摘要' ,
warehouse_id bigint NOT NULL COMMENT '实际海外仓ID' ,
pallet_id bigint NOT NULL COMMENT '实物托盘ID' ,
pallet_code varchar ( 128 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '实物托盘码快照' ,
before_status varchar ( 20 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '变更前托盘状态' ,
after_status varchar ( 20 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '变更后托盘状态' ,
before_location_id bigint DEFAULT NULL COMMENT '变更前库位ID,无库位托盘为空' ,
after_location_id bigint DEFAULT NULL COMMENT '变更后库位ID,无库位托盘为空' ,
before_version int NOT NULL COMMENT '变更前托盘版本' ,
after_version int NOT NULL COMMENT '变更后托盘版本' ,
operation_status varchar ( 32 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作状态:APPLIED已应用、COMPENSATED已补偿' ,
reason varchar ( 500 ) COLLATE utf8mb4_unicode_ci 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 ),
UNIQUE KEY uk_wh_pallet_operation_key ( operation_key ),
2026-08-25 11:20:36 +08:00
KEY idx_wh_pallet_operation_pallet ( warehouse_id , pallet_id , created_at )
2026-09-16 16:42:05 +08:00
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '实物托盘状态幂等变更与补偿记录' ;
2026-08-25 11:20:36 +08:00
2026-09-16 16:42:05 +08:00
CREATE TABLE wh_resource_lock (
id bigint unsigned NOT NULL COMMENT '主键ID' ,
customer_id bigint unsigned NOT NULL COMMENT '客户租户ID' ,
warehouse_id bigint unsigned NOT NULL COMMENT '仓库ID' ,
pallet_id bigint unsigned NOT NULL COMMENT '托盘ID' ,
location_id bigint unsigned NOT NULL COMMENT '库位ID' ,
business_type varchar ( 50 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务类型' ,
business_id varchar ( 100 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '业务记录ID' ,
reservation_key varchar ( 160 ) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '资源预留幂等键' ,
status varchar ( 20 ) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'ACTIVE' COMMENT '资源锁状态' ,
locked_at datetime ( 3 ) NOT NULL COMMENT '锁定时间' ,
released_at datetime ( 3 ) 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 ),
UNIQUE KEY uk_resource_lock_reservation ( customer_id , reservation_key ),
KEY idx_resource_lock_pallet ( customer_id , warehouse_id , pallet_id , status ),
KEY idx_resource_lock_location ( customer_id , warehouse_id , location_id , status ),
KEY idx_resource_lock_business ( customer_id , business_type , business_id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '仓储资源锁定记录' ;
2026-08-24 15:10:10 +08:00
2026-09-16 16:42:05 +08:00
-- 必要系统种子;不写入测试客户、演示订单、示例供应商、快递、托盘或库位。
2026-08-24 15:10:10 +08:00
USE baiyue_lastleg ;
2026-08-25 14:46:06 +08:00
2026-08-26 11:05:26 +08:00
2026-09-17 17:37:29 +08:00
-- assert_relabel_transfer_latest_schema_ready: 贴标申请与仓储转运最新表结构已完整部署。
2026-09-29 18:47:37 +08:00
USE baiyue_lastleg ;
CREATE TABLE event_delivery_retry_audit (
request_id VARCHAR ( 36 ) NOT NULL COMMENT '人工重试请求UUID和幂等键' ,
producer_table VARCHAR ( 64 ) NOT NULL COMMENT '本服务发件箱表名' ,
entry_id VARCHAR ( 64 ) NOT NULL COMMENT '发件箱记录主键' ,
event_id VARCHAR ( 128 ) NOT NULL COMMENT '原事件全局标识' ,
event_type VARCHAR ( 64 ) NOT NULL COMMENT '原事件类型' ,
payload_hash VARCHAR ( 71 ) NOT NULL COMMENT '原事件不可变负载摘要' ,
operator_name VARCHAR ( 128 ) NOT NULL COMMENT '持有运维凭据的操作人标识' ,
reason VARCHAR ( 500 ) NOT NULL COMMENT '人工重试原因' ,
previous_failures INT NOT NULL COMMENT '重试前累计失败次数' ,
previous_error VARCHAR ( 1000 ) NULL COMMENT '重试前最后一次脱敏错误' ,
requested_at DATETIME ( 3 ) NOT NULL COMMENT '重试申请提交时间' ,
PRIMARY KEY ( request_id ),
KEY idx_event_retry_entry ( producer_table , entry_id , requested_at ),
KEY idx_event_retry_event ( event_id , requested_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '业务事件人工重试审计,与恢复待发送状态同事务提交' ;
USE baiyue_lastleg ;
CREATE TABLE event_delivery_attempt (
attempt_id VARCHAR ( 36 ) NOT NULL COMMENT '本次投递租约UUID和审计主键' ,
service_name VARCHAR ( 32 ) NOT NULL COMMENT '本库所属生产服务' ,
event_type VARCHAR ( 96 ) NOT NULL COMMENT '白名单业务事件类型' ,
entry_id VARCHAR ( 128 ) NOT NULL COMMENT '生产者发件箱主键' ,
event_id VARCHAR ( 128 ) NULL COMMENT '合法原事件UUID或ULID;格式错误时为空' ,
target_name VARCHAR ( 64 ) NOT NULL COMMENT '固定目标业务服务' ,
started_at DATETIME ( 3 ) NOT NULL COMMENT '领取及审计事务提交前的开始时间' ,
finished_at DATETIME ( 3 ) NULL COMMENT '尝试完成或租约过期恢复时间' ,
duration_ms BIGINT NULL COMMENT '尝试耗时毫秒' ,
outcome VARCHAR ( 24 ) NOT NULL COMMENT 'STARTED/APPLIED/DUPLICATE/STALE/RETRY/DEAD/LEASE_EXPIRED' ,
error_code VARCHAR ( 64 ) NULL COMMENT '有限错误类别或HTTP状态;不含载荷与令牌' ,
next_retry_at DATETIME ( 3 ) NULL COMMENT '本次失败后下次计划投递时间' ,
PRIMARY KEY ( attempt_id ),
KEY idx_delivery_attempt_entry ( service_name , entry_id , started_at ),
KEY idx_delivery_attempt_outcome ( outcome , started_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '本服务业务事件逐次投递审计' ;
2026-10-07 16:46:56 +08:00
SELECT 'PASS' AS initialization_status , 'OVERSEAS' AS region , 157 AS initialized_tables ;
2026-10-08 15:55:47 +08:00
-- 2026-10-08 退货合箱精确预占、来源追溯与箱级上架;MySQL 8,可重复执行。
SET @ return_packing_ddl = ( SELECT IF ( EXISTS ( SELECT 1 FROM information_schema . statistics WHERE table_schema = DATABASE () AND table_name = 'll_return_inventory_carton' AND index_name = 'uk_ll_return_inventory_carton_receipt' ), 'ALTER TABLE ll_return_inventory_carton DROP INDEX uk_ll_return_inventory_carton_receipt' , 'SELECT 1' ));
PREPARE return_packing_stmt FROM @ return_packing_ddl ; EXECUTE return_packing_stmt ; DEALLOCATE PREPARE return_packing_stmt ;
USE baiyue_lastleg ;
SET @ return_packing_ddl = ( SELECT IF ( EXISTS ( SELECT 1 FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_return_receipt' AND column_name = 'unit_type' ), 'SELECT 1' , 'ALTER TABLE ll_return_receipt ADD COLUMN unit_type VARCHAR(16) NULL COMMENT ''签收类型 PALLET/BOX/PARCEL''' ));
PREPARE return_packing_stmt FROM @ return_packing_ddl ; EXECUTE return_packing_stmt ; DEALLOCATE PREPARE return_packing_stmt ;
SET @ return_packing_ddl = ( SELECT IF ( EXISTS ( SELECT 1 FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_return_receipt' AND column_name = 'unit_code' ), 'SELECT 1' , 'ALTER TABLE ll_return_receipt ADD COLUMN unit_code VARCHAR(128) NULL COMMENT ''签收单元业务码''' ));
PREPARE return_packing_stmt FROM @ return_packing_ddl ; EXECUTE return_packing_stmt ; DEALLOCATE PREPARE return_packing_stmt ;
SET @ return_packing_ddl = ( SELECT IF ( EXISTS ( SELECT 1 FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_return_receipt' AND column_name = 'total_box_count' ), 'SELECT 1' , 'ALTER TABLE ll_return_receipt ADD COLUMN total_box_count BIGINT NULL COMMENT ''签收SKU箱数汇总''' ));
PREPARE return_packing_stmt FROM @ return_packing_ddl ; EXECUTE return_packing_stmt ; DEALLOCATE PREPARE return_packing_stmt ;
SET @ return_packing_ddl = ( SELECT IF ( EXISTS ( SELECT 1 FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_return_receipt' AND column_name = 'length' ), 'SELECT 1' , 'ALTER TABLE ll_return_receipt ADD COLUMN length DECIMAL(12,3) NULL COMMENT ''实测尺寸cm''' ));
PREPARE return_packing_stmt FROM @ return_packing_ddl ; EXECUTE return_packing_stmt ; DEALLOCATE PREPARE return_packing_stmt ;
SET @ return_packing_ddl = ( SELECT IF ( EXISTS ( SELECT 1 FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_return_receipt' AND column_name = 'width' ), 'SELECT 1' , 'ALTER TABLE ll_return_receipt ADD COLUMN width DECIMAL(12,3) NULL COMMENT ''实测尺寸cm''' ));
PREPARE return_packing_stmt FROM @ return_packing_ddl ; EXECUTE return_packing_stmt ; DEALLOCATE PREPARE return_packing_stmt ;
SET @ return_packing_ddl = ( SELECT IF ( EXISTS ( SELECT 1 FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_return_receipt' AND column_name = 'height' ), 'SELECT 1' , 'ALTER TABLE ll_return_receipt ADD COLUMN height DECIMAL(12,3) NULL COMMENT ''实测尺寸cm''' ));
PREPARE return_packing_stmt FROM @ return_packing_ddl ; EXECUTE return_packing_stmt ; DEALLOCATE PREPARE return_packing_stmt ;
SET @ return_packing_ddl = ( SELECT IF ( EXISTS ( SELECT 1 FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_return_receipt' AND column_name = 'weight' ), 'SELECT 1' , 'ALTER TABLE ll_return_receipt ADD COLUMN weight DECIMAL(12,3) NULL COMMENT ''实测重量kg''' ));
PREPARE return_packing_stmt FROM @ return_packing_ddl ; EXECUTE return_packing_stmt ; DEALLOCATE PREPARE return_packing_stmt ;
SET @ return_packing_ddl = ( SELECT IF ( EXISTS ( SELECT 1 FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_return_receipt_item' AND column_name = 'box_count' ), 'SELECT 1' , 'ALTER TABLE ll_return_receipt_item ADD COLUMN box_count BIGINT NULL COMMENT ''SKU签收箱数''' ));
PREPARE return_packing_stmt FROM @ return_packing_ddl ; EXECUTE return_packing_stmt ; DEALLOCATE PREPARE return_packing_stmt ;
SET @ return_packing_ddl = ( SELECT IF ( EXISTS ( SELECT 1 FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_return_inventory_carton' AND column_name = 'source_unit_code' ), 'SELECT 1' , 'ALTER TABLE ll_return_inventory_carton ADD COLUMN source_unit_code VARCHAR(128) NULL COMMENT ''来源单元业务码''' ));
PREPARE return_packing_stmt FROM @ return_packing_ddl ; EXECUTE return_packing_stmt ; DEALLOCATE PREPARE return_packing_stmt ;
CREATE TABLE IF NOT EXISTS ll_return_packing_plan (
id BIGINT NOT NULL COMMENT '合箱计划ID' , plan_no VARCHAR ( 128 ) NOT NULL COMMENT '计划业务号' ,
customer_id VARCHAR ( 128 ) NOT NULL COMMENT '客户隔离键' , overseas_warehouse_id VARCHAR ( 128 ) NOT NULL COMMENT '海外仓ID' ,
return_nos_json JSON NOT NULL COMMENT '来源退货单范围' , boxes_json JSON NOT NULL COMMENT '目标箱明细' ,
mode VARCHAR ( 32 ) NOT NULL COMMENT 'SKU散件或BOX箱合并' , status VARCHAR ( 32 ) NOT NULL COMMENT 'PENDING_REVIEW待审 READY已推送 COMPLETED完成 CANCELLED取消' ,
remark VARCHAR ( 1000 ) NULL COMMENT '合箱备注' , idempotency_key VARCHAR ( 255 ) NOT NULL COMMENT '创建幂等键' ,
created_at DATETIME ( 3 ) NOT NULL COMMENT '创建时间' , updated_at DATETIME ( 3 ) NOT NULL COMMENT '更新时间' ,
pushed_at DATETIME ( 3 ) NULL COMMENT '审核推送时间' , completed_at DATETIME ( 3 ) NULL COMMENT '作业完成时间' ,
PRIMARY KEY ( id ), UNIQUE KEY uk_ll_return_packing_plan_no ( plan_no ),
UNIQUE KEY uk_ll_return_packing_plan_key ( customer_id , idempotency_key ),
KEY idx_ll_return_packing_plan_warehouse ( overseas_warehouse_id , status , pushed_at )
) ENGINE = InnoDB COMMENT = '退货合箱计划' ;
SET @ return_packing_ddl = ( SELECT IF ( EXISTS ( SELECT 1 FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_return_inventory_carton_item' AND column_name = 'packing_reserved_quantity' ), 'SELECT 1' , 'ALTER TABLE ll_return_inventory_carton_item ADD COLUMN packing_reserved_quantity BIGINT NOT NULL DEFAULT 0 COMMENT ''合箱计划预占件数''' ));
PREPARE return_packing_stmt FROM @ return_packing_ddl ; EXECUTE return_packing_stmt ; DEALLOCATE PREPARE return_packing_stmt ;
SET @ return_packing_ddl = ( SELECT IF ( EXISTS ( SELECT 1 FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_return_packing_plan' AND column_name = 'source_items_json' ), 'SELECT 1' , 'ALTER TABLE ll_return_packing_plan ADD COLUMN source_items_json JSON NULL COMMENT ''精确来源箱和SKU锁定数量''' ));
PREPARE return_packing_stmt FROM @ return_packing_ddl ; EXECUTE return_packing_stmt ; DEALLOCATE PREPARE return_packing_stmt ;
SET @ return_packing_ddl = ( SELECT IF ( EXISTS ( SELECT 1 FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_return_packing_plan' AND column_name = 'result_marks_json' ), 'SELECT 1' , 'ALTER TABLE ll_return_packing_plan ADD COLUMN result_marks_json JSON NULL COMMENT ''完成生成或并入的目标箱唛''' ));
PREPARE return_packing_stmt FROM @ return_packing_ddl ; EXECUTE return_packing_stmt ; DEALLOCATE PREPARE return_packing_stmt ;
SET @ return_packing_ddl = ( SELECT IF ( EXISTS ( SELECT 1 FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_return_packing_plan' AND column_name = 'request_hash' ), 'SELECT 1' , 'ALTER TABLE ll_return_packing_plan ADD COLUMN request_hash VARCHAR(64) NULL COMMENT ''创建载荷摘要''' ));
PREPARE return_packing_stmt FROM @ return_packing_ddl ; EXECUTE return_packing_stmt ; DEALLOCATE PREPARE return_packing_stmt ;
SET @ return_packing_ddl = ( SELECT IF ( EXISTS ( SELECT 1 FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_return_packing_plan' AND column_name = 'completion_hash' ), 'SELECT 1' , 'ALTER TABLE ll_return_packing_plan ADD COLUMN completion_hash VARCHAR(64) NULL COMMENT ''完成载荷摘要''' ));
PREPARE return_packing_stmt FROM @ return_packing_ddl ; EXECUTE return_packing_stmt ; DEALLOCATE PREPARE return_packing_stmt ;
SET @ return_packing_ddl = ( SELECT IF ( EXISTS ( SELECT 1 FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_return_inventory_carton' AND column_name = 'location_code' ), 'SELECT 1' , 'ALTER TABLE ll_return_inventory_carton ADD COLUMN location_code VARCHAR(128) NULL COMMENT ''退货箱当前库位''' ));
PREPARE return_packing_stmt FROM @ return_packing_ddl ; EXECUTE return_packing_stmt ; DEALLOCATE PREPARE return_packing_stmt ;
SET @ return_packing_ddl = ( SELECT IF ( EXISTS ( SELECT 1 FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_return_inventory_carton' AND column_name = 'putaway_at' ), 'SELECT 1' , 'ALTER TABLE ll_return_inventory_carton ADD COLUMN putaway_at DATETIME(3) NULL COMMENT ''退货箱上架时间''' ));
PREPARE return_packing_stmt FROM @ return_packing_ddl ; EXECUTE return_packing_stmt ; DEALLOCATE PREPARE return_packing_stmt ;
SET @ return_packing_ddl = ( SELECT IF ( EXISTS ( SELECT 1 FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_return_inventory_carton' AND column_name = 'source_unit_type' ), 'SELECT 1' , 'ALTER TABLE ll_return_inventory_carton ADD COLUMN source_unit_type VARCHAR(32) NULL COMMENT ''PALLET或BOX实物箱 PARCEL散SKU''' ));
PREPARE return_packing_stmt FROM @ return_packing_ddl ; EXECUTE return_packing_stmt ; DEALLOCATE PREPARE return_packing_stmt ;
SET @ return_packing_ddl = ( SELECT IF ( EXISTS ( SELECT 1 FROM information_schema . table_constraints WHERE constraint_schema = DATABASE () AND table_name = 'll_return_inventory_carton' AND constraint_name = 'chk_ll_return_inventory_carton_quantity' ), 'ALTER TABLE ll_return_inventory_carton DROP CHECK chk_ll_return_inventory_carton_quantity' , 'SELECT 1' ));
PREPARE return_packing_stmt FROM @ return_packing_ddl ; EXECUTE return_packing_stmt ; DEALLOCATE PREPARE return_packing_stmt ;
SET @ return_packing_ddl = ( SELECT IF ( EXISTS ( SELECT 1 FROM information_schema . table_constraints WHERE constraint_schema = DATABASE () AND table_name = 'll_return_inventory_carton' AND constraint_name = 'chk_ll_return_inventory_carton_status' ), 'ALTER TABLE ll_return_inventory_carton DROP CHECK chk_ll_return_inventory_carton_status' , 'SELECT 1' ));
PREPARE return_packing_stmt FROM @ return_packing_ddl ; EXECUTE return_packing_stmt ; DEALLOCATE PREPARE return_packing_stmt ;
ALTER TABLE ll_return_inventory_carton ADD CONSTRAINT chk_ll_return_inventory_carton_quantity CHECK (( status IN ( 'AVAILABLE' , 'PACKING_RESERVED' , 'RELABEL_PENDING' , 'OUTBOUND_PENDING' , 'OUTBOUNDED' , 'DISCARD_PENDING' ) AND sku_types > 0 AND total_quantity > 0 ) OR ( status IN ( 'MERGED' , 'DISCARDED' ) AND sku_types = 0 AND total_quantity = 0 ));
ALTER TABLE ll_return_inventory_carton ADD CONSTRAINT chk_ll_return_inventory_carton_status CHECK ( status IN ( 'AVAILABLE' , 'PACKING_RESERVED' , 'RELABEL_PENDING' , 'OUTBOUND_PENDING' , 'MERGED' , 'OUTBOUNDED' , 'DISCARD_PENDING' , 'DISCARDED' ));
CREATE TABLE IF NOT EXISTS ll_return_packing_trace (
id BIGINT NOT NULL COMMENT '合箱追溯ID' , customer_id VARCHAR ( 128 ) NOT NULL COMMENT '原客户隔离键' ,
operation_id BIGINT NOT NULL COMMENT '合箱操作ID' , source_carton_mark VARCHAR ( 128 ) NOT NULL COMMENT '来源箱唛 空值表示目标箱原有库存快照' ,
target_carton_mark VARCHAR ( 128 ) NOT NULL COMMENT '目标箱唛' , return_no VARCHAR ( 128 ) NOT NULL COMMENT '原始退货单号' ,
sku_code VARCHAR ( 128 ) NOT NULL COMMENT '商品SKU编码' , quantity BIGINT NOT NULL COMMENT '本次移动件数' ,
created_at DATETIME ( 3 ) NOT NULL COMMENT '发生时间' , PRIMARY KEY ( id ),
KEY idx_return_packing_trace_order ( customer_id , return_no , created_at ),
KEY idx_return_packing_trace_target ( customer_id , target_carton_mark , sku_code ),
KEY idx_return_packing_trace_source ( customer_id , source_carton_mark , sku_code ),
CONSTRAINT chk_return_packing_trace_quantity CHECK ( quantity > 0 )
) ENGINE = InnoDB COMMENT = '退货合箱逐SKU原始退货单不可变追溯' ;
ALTER TABLE ll_return_packing_trace MODIFY COLUMN sku_code VARCHAR ( 128 ) NOT NULL COMMENT '商品SKU编码' ;
SET @ return_packing_ddl = ( SELECT IF ( EXISTS ( SELECT 1 FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_return_inventory_operation' AND column_name = 'result_json' ), 'SELECT 1' , 'ALTER TABLE ll_return_inventory_operation ADD COLUMN result_json JSON NULL COMMENT ''幂等操作不可变返回快照''' ));
PREPARE return_packing_stmt FROM @ return_packing_ddl ; EXECUTE return_packing_stmt ; DEALLOCATE PREPARE return_packing_stmt ;
SET @ return_packing_ddl = ( SELECT IF ( EXISTS ( SELECT 1 FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_return_packing_plan' AND column_name = 'result_labels_json' ), 'SELECT 1' , 'ALTER TABLE ll_return_packing_plan ADD COLUMN result_labels_json JSON NULL COMMENT ''计划完工标签快照''' ));
PREPARE return_packing_stmt FROM @ return_packing_ddl ; EXECUTE return_packing_stmt ; DEALLOCATE PREPARE return_packing_stmt ;
-- Existing outbound tables need this field even when created before the fee snapshot baseline.
USE baiyue_lastleg ;
SET @ return_outbound_ddl = IF ( EXISTS ( SELECT 1 FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_outbound_order' AND column_name = 'fee_coverage_json' ), 'SELECT 1' , 'ALTER TABLE ll_outbound_order ADD COLUMN fee_coverage_json JSON NULL COMMENT ''发运原费用及服务覆盖确认快照''' );
PREPARE return_outbound_stmt FROM @ return_outbound_ddl ;
EXECUTE return_outbound_stmt ;
DEALLOCATE PREPARE return_outbound_stmt ;
-- 原生退货换标排车:保留独立退货箱来源,不伪造普通库存仓位。
USE baiyue_lastleg ;
SET @ return_dispatch_ddl = IF (( SELECT COUNT ( * ) FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_dispatch_pda_pick' AND column_name = 'return_carton_id' ) = 0 ,
'ALTER TABLE ll_dispatch_pda_pick ADD COLUMN return_carton_id BIGINT NULL COMMENT ''独立退货库存箱ID,与普通仓位互斥''' , 'SELECT 1' );
PREPARE return_dispatch_stmt FROM @ return_dispatch_ddl ;
EXECUTE return_dispatch_stmt ;
DEALLOCATE PREPARE return_dispatch_stmt ;
ALTER TABLE ll_dispatch_pda_pick MODIFY COLUMN inventory_position_id BIGINT NULL COMMENT '普通库存仓位记录ID' ;
ALTER TABLE ll_dispatch_pda_pick_order MODIFY COLUMN receipt_id BIGINT NULL COMMENT '原入仓实收来源,与退回来源或原生退货箱互斥' ;
-- 真实退回凭据与尾程订单客户键使用同一排序规则,避免相关库存子查询冲突。
SET @ return_customer_collation = ( SELECT collation_name FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_order' AND column_name = 'customer_id' );
SET @ return_dispatch_ddl = CONCAT ( 'ALTER TABLE ll_return_stock_receipt MODIFY COLUMN customer_id VARCHAR(128) CHARACTER SET utf8mb4 COLLATE ' , @ return_customer_collation , ' NOT NULL COMMENT ''客户数据归属''' );
PREPARE return_dispatch_stmt FROM @ return_dispatch_ddl ;
EXECUTE return_dispatch_stmt ;
DEALLOCATE PREPARE return_dispatch_stmt ;
SET @ return_dispatch_ddl = CONCAT ( 'ALTER TABLE ll_return_stock_receipt MODIFY COLUMN source_outbound_no VARCHAR(64) CHARACTER SET utf8mb4 COLLATE ' , @ return_customer_collation , ' NOT NULL COMMENT ''原发运出库业务编号''' );
PREPARE return_dispatch_stmt FROM @ return_dispatch_ddl ;
EXECUTE return_dispatch_stmt ;
DEALLOCATE PREPARE return_dispatch_stmt ;
SET @ return_dispatch_ddl = IF (( SELECT COUNT ( * ) FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_dispatch_pda_pick_order' AND column_name = 'return_carton_id' ) = 0 ,
'ALTER TABLE ll_dispatch_pda_pick_order ADD COLUMN return_carton_id BIGINT NULL COMMENT ''原生退货箱来源ID,与实收来源互斥''' , 'SELECT 1' );
PREPARE return_dispatch_stmt FROM @ return_dispatch_ddl ;
EXECUTE return_dispatch_stmt ;
DEALLOCATE PREPARE return_dispatch_stmt ;
SET @ return_dispatch_ddl = IF (( SELECT COUNT ( * ) FROM information_schema . table_constraints WHERE constraint_schema = DATABASE () AND table_name = 'll_dispatch_pda_pick_order' AND constraint_name = 'chk_dispatch_pick_receipt_source' ) > 0 ,
'ALTER TABLE ll_dispatch_pda_pick_order DROP CHECK chk_dispatch_pick_receipt_source' , 'SELECT 1' );
PREPARE return_dispatch_stmt FROM @ return_dispatch_ddl ;
EXECUTE return_dispatch_stmt ;
DEALLOCATE PREPARE return_dispatch_stmt ;
SET @ return_dispatch_ddl = IF (( SELECT COUNT ( * ) FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_dispatch_pda_pick_order' AND column_name = 'return_receipt_id' ) = 0 ,
'ALTER TABLE ll_dispatch_pda_pick_order ADD COLUMN return_receipt_id BIGINT NULL COMMENT ''明确选用的真实退回入仓来源''' , 'SELECT 1' );
PREPARE return_dispatch_stmt FROM @ return_dispatch_ddl ;
EXECUTE return_dispatch_stmt ;
DEALLOCATE PREPARE return_dispatch_stmt ;
ALTER TABLE ll_dispatch_pda_pick_order ADD CONSTRAINT chk_dispatch_pick_receipt_source CHECK (( receipt_id IS NOT NULL ) + ( return_receipt_id IS NOT NULL ) + ( return_carton_id IS NOT NULL ) = 1 );
SET @ return_dispatch_ddl = IF (( SELECT COUNT ( * ) FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_delivery_order' AND column_name = 'signed_packages' ) = 0 ,
'ALTER TABLE ll_delivery_order ADD COLUMN signed_packages INT NULL COMMENT ''保存签收资料时冻结的实际签收箱数,不含此前已退回量''' , 'SELECT 1' );
PREPARE return_dispatch_stmt FROM @ return_dispatch_ddl ;
EXECUTE return_dispatch_stmt ;
DEALLOCATE PREPARE return_dispatch_stmt ;
CREATE TABLE IF NOT EXISTS event_delivery_attempt (
attempt_id VARCHAR ( 36 ) NOT NULL COMMENT '本次投递租约UUID和审计主键' ,
service_name VARCHAR ( 32 ) NOT NULL COMMENT '本库所属生产服务' ,
event_type VARCHAR ( 96 ) NOT NULL COMMENT '白名单业务事件类型' ,
entry_id VARCHAR ( 128 ) NOT NULL COMMENT '生产者发件箱主键' ,
event_id VARCHAR ( 128 ) NULL COMMENT '合法原事件UUID或ULID;格式错误时为空' ,
target_name VARCHAR ( 64 ) NOT NULL COMMENT '固定目标业务服务' ,
started_at DATETIME ( 3 ) NOT NULL COMMENT '领取及审计事务提交前的开始时间' ,
finished_at DATETIME ( 3 ) NULL COMMENT '尝试完成或租约过期恢复时间' ,
duration_ms BIGINT NULL COMMENT '尝试耗时毫秒' ,
outcome VARCHAR ( 24 ) NOT NULL COMMENT 'STARTED/APPLIED/DUPLICATE/STALE/RETRY/DEAD/LEASE_EXPIRED' ,
error_code VARCHAR ( 64 ) NULL COMMENT '有限错误类别或HTTP状态;不含载荷与令牌' ,
next_retry_at DATETIME ( 3 ) NULL COMMENT '本次失败后下次计划投递时间' ,
PRIMARY KEY ( attempt_id ),
KEY idx_delivery_attempt_entry ( service_name , entry_id , started_at ),
KEY idx_delivery_attempt_outcome ( outcome , started_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '本服务业务事件逐次投递审计' ;
-- 补齐排车实体引用的真实退回来源字段;原生退货箱单独使用 return_carton_id。
USE baiyue_lastleg ;
SET @ return_dispatch_ddl = IF (( SELECT COUNT ( * ) FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_dispatch_item' AND column_name = 'return_receipt_id' ) = 0 ,
'ALTER TABLE ll_dispatch_item ADD COLUMN return_receipt_id BIGINT NULL COMMENT ''明确选用的真实退回入仓来源''' , 'SELECT 1' );
PREPARE return_dispatch_stmt FROM @ return_dispatch_ddl ;
EXECUTE return_dispatch_stmt ;
DEALLOCATE PREPARE return_dispatch_stmt ;
SET @ return_dispatch_ddl = IF (( SELECT COUNT ( * ) FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_dispatch_pallet_lock' AND column_name = 'return_receipt_id' ) = 0 ,
'ALTER TABLE ll_dispatch_pallet_lock ADD COLUMN return_receipt_id BIGINT NULL COMMENT ''明确选用的真实退回入仓来源''' , 'SELECT 1' );
PREPARE return_dispatch_stmt FROM @ return_dispatch_ddl ;
EXECUTE return_dispatch_stmt ;
DEALLOCATE PREPARE return_dispatch_stmt ;
-- 退货换标排车使用正式车次域,补齐旧本地库缺少的车队结构。
-- MySQL 8;显式 baiyue_lastleg;不写业务数据,可重复执行。
USE baiyue_lastleg ;
USE baiyue_iam ;
INSERT INTO iam_permission ( id , tenant_id , app_code , permission_type , parent_id , permission_code , permission_name , route_path , http_method , sort_no , status , built_in , deleted , created_at , updated_at )
VALUES
( 5107300 , 0 , 'PLATFORM' , 'MENU' , 0 , 'platform:overseas-master-data:driver:list' , '司机管理' , '/overseas-master-data/drivers' , 'GET' , 930 , 'ACTIVE' , 1 , 0 , CURRENT_TIMESTAMP ( 3 ), CURRENT_TIMESTAMP ( 3 )),
( 5107301 , 0 , 'PLATFORM' , 'BUTTON' , 5107300 , 'platform:overseas-master-data:driver:create' , '新增司机' , NULL , 'POST' , 931 , 'ACTIVE' , 1 , 0 , CURRENT_TIMESTAMP ( 3 ), CURRENT_TIMESTAMP ( 3 )),
( 5107302 , 0 , 'PLATFORM' , 'BUTTON' , 5107300 , 'platform:overseas-master-data:driver:edit' , '编辑与重提司机档案' , NULL , 'PUT' , 932 , 'ACTIVE' , 1 , 0 , CURRENT_TIMESTAMP ( 3 ), CURRENT_TIMESTAMP ( 3 )),
( 5107304 , 0 , 'PLATFORM' , 'BUTTON' , 5107300 , 'platform:overseas-master-data:driver:review' , '审核司机证照' , NULL , 'POST' , 934 , 'ACTIVE' , 1 , 0 , CURRENT_TIMESTAMP ( 3 ), CURRENT_TIMESTAMP ( 3 )),
( 5107305 , 0 , 'PLATFORM' , 'BUTTON' , 5107300 , 'platform:overseas-master-data:driver:upload' , '上传司机证照' , NULL , 'POST' , 935 , 'ACTIVE' , 1 , 0 , CURRENT_TIMESTAMP ( 3 ), CURRENT_TIMESTAMP ( 3 )),
( 5107310 , 0 , 'PLATFORM' , 'MENU' , 0 , 'platform:fleet:trip:list' , '车次管理' , '/overseas-master-data/trips' , 'GET' , 940 , 'ACTIVE' , 1 , 0 , CURRENT_TIMESTAMP ( 3 ), CURRENT_TIMESTAMP ( 3 )),
( 5107311 , 0 , 'PLATFORM' , 'BUTTON' , 5107310 , 'platform:fleet:trip:create' , '创建车次' , NULL , 'POST' , 941 , 'ACTIVE' , 1 , 0 , CURRENT_TIMESTAMP ( 3 ), CURRENT_TIMESTAMP ( 3 )),
( 5107312 , 0 , 'PLATFORM' , 'BUTTON' , 5107310 , 'platform:fleet:trip:edit' , '修改车次计划' , NULL , 'PUT' , 942 , 'ACTIVE' , 1 , 0 , CURRENT_TIMESTAMP ( 3 ), CURRENT_TIMESTAMP ( 3 )),
( 5107313 , 0 , 'PLATFORM' , 'BUTTON' , 5107310 , 'platform:fleet:trip:assign' , '分配车辆和司机' , NULL , 'POST' , 943 , 'ACTIVE' , 1 , 0 , CURRENT_TIMESTAMP ( 3 ), CURRENT_TIMESTAMP ( 3 )),
( 5107317 , 0 , 'PLATFORM' , 'BUTTON' , 5107310 , 'platform:fleet:trip:dispatch-review' , '审核车次客户排车' , NULL , 'POST' , 947 , 'ACTIVE' , 1 , 0 , CURRENT_TIMESTAMP ( 3 ), CURRENT_TIMESTAMP ( 3 )),
( 5107318 , 0 , 'PLATFORM' , 'BUTTON' , 5107310 , 'platform:fleet:trip:loading-review' , '审核整车理货' , NULL , 'POST' , 948 , 'ACTIVE' , 1 , 0 , CURRENT_TIMESTAMP ( 3 ), CURRENT_TIMESTAMP ( 3 ))
ON DUPLICATE KEY UPDATE permission_type = VALUES ( permission_type ), parent_id = VALUES ( parent_id ), permission_name = VALUES ( permission_name ), route_path = VALUES ( route_path ), http_method = VALUES ( http_method ), sort_no = VALUES ( sort_no ), status = 'ACTIVE' , built_in = 1 , deleted = 0 ;
INSERT INTO iam_role_permission ( tenant_id , role_id , permission_id , created_at )
SELECT 0 , role . id , permission . id , CURRENT_TIMESTAMP ( 3 )
FROM iam_role role
JOIN iam_permission permission ON permission . tenant_id = 0 AND permission . app_code = 'PLATFORM'
AND permission . permission_code IN (
'platform:overseas-master-data:driver:list' ,
'platform:overseas-master-data:driver:create' ,
'platform:overseas-master-data:driver:edit' ,
'platform:overseas-master-data:driver:upload' ,
'platform:overseas-master-data:driver:review' ,
'platform:fleet:trip:list' ,
'platform:fleet:trip:create' ,
'platform:fleet:trip:assign' ,
'platform:fleet:trip:edit' ,
'platform:fleet:trip:dispatch-review' ,
'platform:fleet:trip:loading-review' )
WHERE role . tenant_id = 0 AND role . app_code = 'PLATFORM' AND role . role_code = 'PLATFORM_ADMIN'
AND role . status = 'ACTIVE' AND role . deleted = 0 AND permission . status = 'ACTIVE' AND permission . deleted = 0 ;
USE baiyue_lastleg ;
SET @ return_fleet_ddl = IF (( SELECT COUNT ( * ) FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_vehicle' AND column_name = 'max_pallet_spaces' ) = 0 , 'ALTER TABLE ll_vehicle ADD COLUMN max_pallet_spaces INT NULL COMMENT ''最大标准托位,未知时为空''' , 'SELECT 1' );
PREPARE return_fleet_stmt FROM @ return_fleet_ddl ;
EXECUTE return_fleet_stmt ;
DEALLOCATE PREPARE return_fleet_stmt ;
SET @ return_fleet_ddl = IF (( SELECT COUNT ( * ) FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_vehicle' AND column_name = 'max_load_kg' ) = 0 , 'ALTER TABLE ll_vehicle ADD COLUMN max_load_kg DECIMAL(12,3) NULL COMMENT ''最大载重,千克''' , 'SELECT 1' );
PREPARE return_fleet_stmt FROM @ return_fleet_ddl ;
EXECUTE return_fleet_stmt ;
DEALLOCATE PREPARE return_fleet_stmt ;
SET @ return_fleet_ddl = IF (( SELECT COUNT ( * ) FROM information_schema . columns WHERE table_schema = DATABASE () AND table_name = 'll_vehicle' AND column_name = 'max_volume_cbm' ) = 0 , 'ALTER TABLE ll_vehicle ADD COLUMN max_volume_cbm DECIMAL(12,3) NULL COMMENT ''可用容积,立方米''' , 'SELECT 1' );
PREPARE return_fleet_stmt FROM @ return_fleet_ddl ;
EXECUTE return_fleet_stmt ;
DEALLOCATE PREPARE return_fleet_stmt ;
CREATE TABLE IF NOT EXISTS ll_fleet_driver (
id BIGINT NOT NULL COMMENT '内部主键' ,
driver_no VARCHAR ( 32 ) NOT NULL COMMENT '司机业务编号' ,
warehouse_id BIGINT NULL COMMENT '所属公共仓库引用' ,
warehouse_code VARCHAR ( 64 ) NULL COMMENT '所属仓库编码快照' ,
warehouse_name VARCHAR ( 256 ) NULL COMMENT '所属仓库名称快照' ,
vehicle_models VARCHAR ( 128 ) NULL COMMENT '可驾驶车型描述' ,
languages_and_area VARCHAR ( 256 ) NULL COMMENT '语言及服务区域' ,
medical_expires_on DATE NULL COMMENT '体检到期日,当前不作为必需资质' ,
training_expires_on DATE NULL COMMENT '培训安全到期日,当前不作为必需资质' ,
insurance_expires_on DATE NULL COMMENT '保险到期日,当前不作为必需资质' ,
name VARCHAR ( 128 ) NOT NULL COMMENT '姓名' ,
phone VARCHAR ( 64 ) NOT NULL COMMENT '联系电话' ,
ownership VARCHAR ( 16 ) NOT NULL COMMENT '归属 OWNED自有 DISPATCHED外派' ,
region VARCHAR ( 16 ) NOT NULL COMMENT '区域 DOMESTIC国内 OVERSEAS海外' ,
active TINYINT ( 1 ) NOT NULL DEFAULT 1 COMMENT '是否启用' ,
review_status VARCHAR ( 16 ) NOT NULL DEFAULT 'PENDING' COMMENT '证照审核 PENDING待审 APPROVED通过 REJECTED打回' ,
license_number VARCHAR ( 128 ) NULL COMMENT '驾驶证编号' ,
license_type VARCHAR ( 64 ) NULL COMMENT '驾驶证类型' ,
license_issued_on DATE NULL COMMENT '驾驶证签发日期' ,
license_expires_on DATE NULL COMMENT '驾驶证有效截止日' ,
license_zone VARCHAR ( 64 ) NOT NULL COMMENT '证照有效日期的IANA时区' ,
license_file_id BIGINT NULL COMMENT '平台驾驶证文件引用' ,
remark VARCHAR ( 1000 ) NULL COMMENT '备注' ,
record_version BIGINT NOT NULL DEFAULT 0 COMMENT '并发版本' ,
created_by VARCHAR ( 64 ) NOT NULL COMMENT '创建人' ,
created_at DATETIME ( 3 ) NOT NULL COMMENT '创建时间UTC' ,
updated_by VARCHAR ( 64 ) NOT NULL COMMENT '修改人' ,
updated_at DATETIME ( 3 ) NOT NULL COMMENT '修改时间UTC' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_fleet_driver_no ( driver_no ),
KEY idx_fleet_driver_page ( active , review_status , updated_at , id ),
KEY idx_fleet_driver_expiry ( license_expires_on ),
CONSTRAINT chk_fleet_driver_ownership CHECK ( ownership IN ( 'OWNED' , 'DISPATCHED' )),
CONSTRAINT chk_fleet_driver_region CHECK ( region IN ( 'DOMESTIC' , 'OVERSEAS' )),
CONSTRAINT chk_fleet_driver_review CHECK ( review_status IN ( 'PENDING' , 'APPROVED' , 'REJECTED' )),
CONSTRAINT chk_fleet_driver_dates CHECK ( license_issued_on IS NULL OR license_expires_on IS NULL OR license_issued_on <= license_expires_on )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '平台司机档案' ;
CREATE TABLE IF NOT EXISTS ll_fleet_driver_history (
id BIGINT NOT NULL COMMENT '内部主键' ,
driver_id BIGINT NOT NULL COMMENT '司机内部引用' ,
record_version BIGINT NOT NULL COMMENT '操作后的档案版本' ,
action VARCHAR ( 32 ) NOT NULL COMMENT '创建编辑启停证照上传及审核动作' ,
reason VARCHAR ( 1000 ) NULL COMMENT '操作原因或审核意见' ,
license_file_id BIGINT NULL COMMENT '当时驾驶证文件引用' ,
snapshot_json JSON NOT NULL COMMENT '操作后不可变档案快照' ,
operator_id VARCHAR ( 64 ) NOT NULL COMMENT '操作人' ,
occurred_at DATETIME ( 3 ) NOT NULL COMMENT '操作时间UTC' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_fleet_driver_history_version ( driver_id , record_version ),
KEY idx_fleet_driver_history_file ( driver_id , license_file_id ),
CONSTRAINT fk_fleet_driver_history_driver FOREIGN KEY ( driver_id ) REFERENCES ll_fleet_driver ( id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '司机档案及审核历史' ;
CREATE TABLE IF NOT EXISTS ll_fleet_vehicle_record (
id BIGINT NOT NULL COMMENT '记录内部主键' ,
record_no VARCHAR ( 32 ) NOT NULL COMMENT '车辆运维业务编号' ,
vehicle_id BIGINT NOT NULL COMMENT '所属车辆主键' ,
vehicle_plate VARCHAR ( 64 ) NOT NULL COMMENT '建档时车牌快照' ,
record_type VARCHAR ( 32 ) NOT NULL COMMENT '运维类型:保养、加油、维修、故障、救援、异常' ,
occurred_at DATETIME ( 3 ) NOT NULL COMMENT '记录发生时间(UTC) ' ,
details_json JSON NOT NULL COMMENT '带明确单位的业务字段快照' ,
files_json JSON NOT NULL COMMENT '所属记录照片与上传幂等摘要' ,
idempotency_key VARCHAR ( 128 ) NOT NULL COMMENT '创建请求幂等键' ,
request_hash CHAR ( 64 ) NOT NULL COMMENT '原创建业务内容摘要' ,
record_version BIGINT NOT NULL DEFAULT 0 COMMENT '乐观锁版本' ,
created_by VARCHAR ( 64 ) NOT NULL COMMENT '创建操作人' ,
updated_by VARCHAR ( 64 ) NOT NULL COMMENT '最后操作人' ,
created_at DATETIME ( 3 ) NOT NULL COMMENT '创建时间(UTC) ' ,
updated_at DATETIME ( 3 ) NOT NULL COMMENT '更新时间(UTC) ' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_vehicle_record_no ( record_no ),
UNIQUE KEY uk_vehicle_record_creation ( vehicle_id , created_by , idempotency_key ),
KEY idx_vehicle_record_page ( vehicle_id , record_type , occurred_at , id ),
CONSTRAINT fk_vehicle_record_vehicle FOREIGN KEY ( vehicle_id ) REFERENCES ll_vehicle ( id ),
CONSTRAINT ck_vehicle_record_type CHECK ( record_type IN ( 'MAINTENANCE' , 'FUEL' , 'REPAIR' , 'BREAKDOWN' , 'RESCUE' , 'EXCEPTION' ))
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '车辆运维记录' ;
CREATE TABLE IF NOT EXISTS ll_fleet_vehicle_record_history (
id BIGINT NOT NULL COMMENT '历史内部主键' ,
record_id BIGINT NOT NULL COMMENT '运维记录主键' ,
record_version BIGINT NOT NULL COMMENT '对应业务版本' ,
action VARCHAR ( 32 ) NOT NULL COMMENT '操作类型' ,
reason VARCHAR ( 1000 ) DEFAULT NULL COMMENT '更正原因或附件名称' ,
operator_id VARCHAR ( 64 ) NOT NULL COMMENT '操作人' ,
occurred_at DATETIME ( 3 ) NOT NULL COMMENT '操作时间(UTC) ' ,
snapshot_json JSON NOT NULL COMMENT '当时完整业务快照' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_vehicle_record_revision ( record_id , record_version ),
CONSTRAINT fk_vehicle_record_history FOREIGN KEY ( record_id ) REFERENCES ll_fleet_vehicle_record ( id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '车辆运维记录不可变历史' ;
CREATE TABLE IF NOT EXISTS ll_fleet_trip (
id BIGINT NOT NULL COMMENT '内部主键' ,
trip_no VARCHAR ( 32 ) NOT NULL COMMENT '车次业务编号' ,
idempotency_key VARCHAR ( 128 ) NOT NULL COMMENT '创建请求幂等键' ,
request_hash VARCHAR ( 64 ) NOT NULL COMMENT '创建请求SHA256' ,
status VARCHAR ( 16 ) NOT NULL COMMENT '车次状态' ,
warehouse_id BIGINT NOT NULL COMMENT '起运公共仓库引用' ,
warehouse_code VARCHAR ( 64 ) NOT NULL COMMENT '起运仓编码快照' ,
warehouse_name VARCHAR ( 256 ) NOT NULL COMMENT '起运仓名称快照' ,
vehicle_id BIGINT NULL COMMENT '车辆档案引用' ,
vehicle_plate VARCHAR ( 64 ) NULL COMMENT '分配时车牌快照' ,
driver_id BIGINT NULL COMMENT '司机档案引用' ,
driver_name VARCHAR ( 128 ) NULL COMMENT '分配时司机姓名' ,
driver_phone VARCHAR ( 64 ) NULL COMMENT '分配时司机电话' ,
max_pallet_spaces INT NULL COMMENT '分配时托位容量快照' ,
max_load_kg DECIMAL ( 12 , 3 ) NULL COMMENT '分配时载重千克' ,
max_volume_cbm DECIMAL ( 12 , 3 ) NULL COMMENT '分配时可用容积立方米' ,
planned_departure_at DATETIME ( 3 ) NOT NULL COMMENT '计划发车UTC' ,
expected_driver_end_at DATETIME ( 3 ) NOT NULL COMMENT '司机预计任务结束UTC,含承担的返程转场' ,
departed_at DATETIME ( 3 ) NULL COMMENT '实际发车UTC' ,
completed_at DATETIME ( 3 ) NULL COMMENT '实际运输完成UTC' ,
stops_json JSON NOT NULL COMMENT '按顺序保存的路线站点' ,
planned_load_json JSON NULL COMMENT '拣货前自有货计划载荷与逐段剩余容量' ,
load_json JSON NULL COMMENT '已确认实物装载及客户货物来源快照' ,
loading_review_json LONGTEXT NULL COMMENT '整车理货审核快照,空值为待审核' ,
departure_key VARCHAR ( 128 ) NULL COMMENT '整车发车幂等标识' ,
departure_hash CHAR ( 64 ) NULL COMMENT '整车发车请求摘要' ,
departure_result_json JSON NULL COMMENT '整车发车结果及各客户出库结果' ,
completion_json JSON NULL COMMENT '货物结案来源及幂等结果快照' ,
vehicle_release_json JSON NULL COMMENT '车辆任务结束地点状态与幂等记录' ,
driver_release_json JSON NULL COMMENT '司机任务结束地点与幂等记录' ,
remark VARCHAR ( 1000 ) NULL COMMENT '备注' ,
record_version BIGINT NOT NULL DEFAULT 0 COMMENT '并发版本' ,
created_by VARCHAR ( 64 ) NOT NULL COMMENT '创建人' ,
created_at DATETIME ( 3 ) NOT NULL COMMENT '创建UTC时间' ,
updated_by VARCHAR ( 64 ) NOT NULL COMMENT '更新人' ,
updated_at DATETIME ( 3 ) NOT NULL COMMENT '更新UTC时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_fleet_trip_no ( trip_no ),
UNIQUE KEY uk_fleet_trip_create ( created_by , idempotency_key ),
KEY idx_fleet_trip_page ( warehouse_id , status , updated_at , id ),
CONSTRAINT fk_fleet_trip_vehicle FOREIGN KEY ( vehicle_id ) REFERENCES ll_vehicle ( id ),
CONSTRAINT fk_fleet_trip_driver FOREIGN KEY ( driver_id ) REFERENCES ll_fleet_driver ( id ),
CONSTRAINT chk_fleet_trip_status CHECK ( status IN ( 'PLANNED' , 'DEPARTING' , 'IN_TRANSIT' , 'COMPLETED' , 'CANCELLED' )),
CONSTRAINT chk_fleet_trip_time CHECK ( expected_driver_end_at > planned_departure_at )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '平台运输车次' ;
CREATE TABLE IF NOT EXISTS ll_fleet_capacity_offer (
id BIGINT NOT NULL COMMENT '内部主键' ,
offer_no VARCHAR ( 64 ) NOT NULL COMMENT '拼车运力发布业务编号' ,
trip_id BIGINT NOT NULL COMMENT '唯一所属车次' ,
trip_no VARCHAR ( 64 ) NOT NULL COMMENT '车次业务编号' ,
status VARCHAR ( 16 ) NOT NULL COMMENT '发布状态:草稿、开放、暂停、关闭' ,
cutoff_at DATETIME ( 3 ) NOT NULL COMMENT '最晚交货及新询价截止UTC时间' ,
contact_name VARCHAR ( 128 ) NULL COMMENT '对内部销售公开的调度联系人' ,
contact_phone VARCHAR ( 128 ) NULL COMMENT '对内部销售公开的调度联系电话' ,
remark VARCHAR ( 1000 ) NULL COMMENT '公开承运说明' ,
published_fingerprint CHAR ( 64 ) NULL COMMENT '已核对路线车辆及容量计划事实摘要' ,
record_version BIGINT NOT NULL DEFAULT 0 COMMENT '乐观锁版本' ,
created_by VARCHAR ( 64 ) NOT NULL COMMENT '创建人' ,
created_at DATETIME ( 3 ) NOT NULL COMMENT '创建UTC时间' ,
updated_by VARCHAR ( 64 ) NOT NULL COMMENT '修改人' ,
updated_at DATETIME ( 3 ) NOT NULL COMMENT '修改UTC时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_fleet_capacity_offer_no ( offer_no ),
UNIQUE KEY uk_fleet_capacity_offer_trip ( trip_id ),
KEY idx_fleet_capacity_offer_status ( status , cutoff_at , id ),
CONSTRAINT fk_fleet_capacity_offer_trip FOREIGN KEY ( trip_id ) REFERENCES ll_fleet_trip ( id ),
CONSTRAINT chk_fleet_capacity_offer_status CHECK ( status IN ( 'DRAFT' , 'OPEN' , 'PAUSED' , 'CLOSED' ))
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '内部拼车车次余位发布;容量实时计算不在此另存' ;
CREATE TABLE IF NOT EXISTS ll_fleet_capacity_offer_command (
id BIGINT NOT NULL COMMENT '内部主键' ,
trip_id BIGINT NOT NULL COMMENT '所属车次锁作用域' ,
operator_id VARCHAR ( 64 ) NOT NULL COMMENT '原请求操作者' ,
action VARCHAR ( 32 ) NOT NULL COMMENT '业务命令类型' ,
scope_no VARCHAR ( 64 ) NOT NULL COMMENT '发布或预订业务编号作用域' ,
idempotency_key VARCHAR ( 128 ) NOT NULL COMMENT '原请求幂等键' ,
request_hash CHAR ( 64 ) NOT NULL COMMENT '原请求业务内容摘要' ,
result_json JSON NOT NULL COMMENT '成功命令原始结果用于精确重放' ,
created_at DATETIME ( 3 ) NOT NULL COMMENT '命令完成UTC时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_fleet_capacity_offer_command ( trip_id , operator_id , action , scope_no , idempotency_key ),
CONSTRAINT fk_fleet_capacity_command_trip FOREIGN KEY ( trip_id ) REFERENCES ll_fleet_trip ( id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '拼车发布及销售意向持久幂等结果' ;
CREATE TABLE IF NOT EXISTS ll_fleet_external_booking (
id BIGINT NOT NULL COMMENT '内部主键' ,
booking_no VARCHAR ( 32 ) NOT NULL COMMENT '外接预订业务编号' ,
trip_id BIGINT NOT NULL COMMENT '所属车次' ,
trip_no VARCHAR ( 32 ) NOT NULL COMMENT '车次业务编号' ,
customer_id VARCHAR ( 128 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '委托客户及付款归属' ,
customer_code VARCHAR ( 64 ) NOT NULL COMMENT '客户编号快照' ,
customer_name VARCHAR ( 255 ) NOT NULL COMMENT '客户名称快照' ,
status VARCHAR ( 16 ) NOT NULL COMMENT 'DRAFT询价/CONFIRMED占位/RECEIVED确认实收/BOUND关联发运/CANCELLED取消' ,
cargo_json JSON NOT NULL COMMENT '货物、计划载荷、联系人及约定报价快照' ,
quote_source_json JSON NULL COMMENT '选用销售报价的可信版本快照,与实际成交金额分开保存' ,
destination_key VARCHAR ( 160 ) NOT NULL COMMENT '已有路线卸货站匹配键' ,
destination_label VARCHAR ( 255 ) NOT NULL COMMENT '约定卸货站名称' ,
agreed_amount DECIMAL ( 16 , 2 ) NULL COMMENT '约定金额,非已入账应收或实收' ,
idempotency_key VARCHAR ( 128 ) NOT NULL COMMENT '登记请求键' ,
request_hash CHAR ( 64 ) NOT NULL COMMENT '登记内容摘要' ,
confirm_key VARCHAR ( 128 ) NULL COMMENT '承运确认请求键' ,
confirm_hash CHAR ( 64 ) NULL COMMENT '承运确认摘要' ,
cancel_key VARCHAR ( 128 ) NULL COMMENT '取消请求键' ,
cancel_hash CHAR ( 64 ) NULL COMMENT '取消摘要' ,
incoming_no VARCHAR ( 64 ) NULL COMMENT '正式来货单业务编号' ,
dispatch_no VARCHAR ( 64 ) NULL COMMENT '已关联客户排车业务编号' ,
receipt_json JSON NULL COMMENT '实测来源及运营确认的托位和运费依据' ,
incoming_key VARCHAR ( 128 ) NULL COMMENT '来货登记请求键' ,
incoming_hash CHAR ( 64 ) NULL COMMENT '来货登记摘要' ,
receipt_key VARCHAR ( 128 ) NULL COMMENT '实收确认请求键' ,
receipt_hash CHAR ( 64 ) NULL COMMENT '实收确认摘要' ,
binding_key VARCHAR ( 128 ) NULL COMMENT '关联发运请求键' ,
binding_hash CHAR ( 64 ) NULL COMMENT '关联发运摘要' ,
offer_id BIGINT NULL COMMENT '来源运力发布,普通车次预订为空' ,
sales_owner_user_id VARCHAR ( 64 ) NULL COMMENT '登录身份冻结的销售负责人' ,
business_type VARCHAR ( 32 ) NULL COMMENT '本土商业类型LOCAL_LOOSEBOARD或US_TRUCK' ,
delivery_mode VARCHAR ( 32 ) NULL COMMENT '客户送仓或人工安排提货回仓' ,
estimated_arrival_at DATETIME ( 3 ) NULL COMMENT '预计实际到我仓UTC时间' ,
expected_pallet_count INT NULL COMMENT '预计实托数,与托位分开且未知为空' ,
record_version BIGINT NOT NULL DEFAULT 0 COMMENT '记录版本' ,
created_by VARCHAR ( 64 ) NOT NULL COMMENT '登记人' ,
created_at DATETIME ( 3 ) NOT NULL COMMENT '登记UTC时间' ,
updated_by VARCHAR ( 64 ) NOT NULL COMMENT '修改人' ,
updated_at DATETIME ( 3 ) NOT NULL COMMENT '修改UTC时间' ,
KEY idx_fleet_booking_offer ( offer_id , status , id ),
KEY idx_fleet_booking_sales ( sales_owner_user_id , offer_id , id ),
CONSTRAINT fk_fleet_booking_offer FOREIGN KEY ( offer_id ) REFERENCES ll_fleet_capacity_offer ( id ),
CONSTRAINT chk_fleet_booking_expected_pallet CHECK ( expected_pallet_count IS NULL OR expected_pallet_count > 0 ),
PRIMARY KEY ( id ),
UNIQUE KEY uk_fleet_booking_no ( booking_no ),
UNIQUE KEY uk_fleet_booking_create ( trip_id , created_by , idempotency_key ),
KEY idx_fleet_booking_trip ( trip_id , status , id ),
UNIQUE KEY uk_fleet_booking_incoming ( incoming_no ),
KEY idx_fleet_booking_dispatch ( dispatch_no ),
CONSTRAINT fk_fleet_booking_trip FOREIGN KEY ( trip_id ) REFERENCES ll_fleet_trip ( id ),
CONSTRAINT chk_fleet_booking_status CHECK ( status IN ( 'DRAFT' , 'CONFIRMED' , 'RECEIVED' , 'BOUND' , 'CANCELLED' ))
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '外接询价及确认承运占位;货物收发和费用入账分别引用正式事实' ;
CREATE TABLE IF NOT EXISTS ll_fleet_pool_order_link (
id BIGINT NOT NULL COMMENT '内部主键' ,
booking_id BIGINT NOT NULL COMMENT '唯一外接预订' ,
booking_no VARCHAR ( 64 ) NOT NULL COMMENT '预订业务编号' ,
customer_id VARCHAR ( 128 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '商业客户隔离范围' ,
business_type VARCHAR ( 32 ) NOT NULL COMMENT '本土散板或本土卡车商业类型' ,
business_order_id BIGINT NOT NULL COMMENT '对应商业订单内部关联' ,
business_order_no VARCHAR ( 64 ) NOT NULL COMMENT '本土商业订单业务编号' ,
warehouse_id VARCHAR ( 128 ) NOT NULL COMMENT '真实我仓上车仓库' ,
destination_key VARCHAR ( 160 ) NOT NULL COMMENT '冻结卸货站匹配键' ,
delivery_mode VARCHAR ( 32 ) NOT NULL COMMENT '客户送仓或人工提货回仓' ,
delivery_instructions VARCHAR ( 1000 ) NULL COMMENT '实际到仓交货说明' ,
incoming_no VARCHAR ( 64 ) NULL COMMENT '真实来货业务编号,未登记为空' ,
lastleg_order_id BIGINT NULL COMMENT '唯一真实尾程来源,未发生为空' ,
dispatch_no VARCHAR ( 64 ) NULL COMMENT '已关联客户排车编号' ,
fulfillment_stage VARCHAR ( 32 ) NOT NULL COMMENT '实际履约阶段,不能手工冒充完成' ,
stage_occurred_at DATETIME ( 3 ) NOT NULL COMMENT '实际阶段发生UTC时间' ,
actual_pallet_count INT NULL COMMENT '实际去重托盘数,未知为空' ,
actual_package_count INT NULL COMMENT '实际箱数,未知为空' ,
actual_pallet_spaces INT NULL COMMENT '实际核准占用托位,未知为空' ,
record_version BIGINT NOT NULL DEFAULT 0 COMMENT '桥记录版本' ,
creation_request_hash CHAR ( 64 ) NOT NULL COMMENT '商业单创建身份和预报事实摘要' ,
created_by VARCHAR ( 64 ) NOT NULL COMMENT '确认承运操作者' ,
created_at DATETIME ( 3 ) NOT NULL COMMENT '创建UTC时间' ,
updated_at DATETIME ( 3 ) NOT NULL COMMENT '修改UTC时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_fleet_pool_order_booking ( booking_id ),
UNIQUE KEY uk_fleet_pool_order_booking_no ( booking_no ),
UNIQUE KEY uk_fleet_pool_order_business ( business_type , business_order_id ),
UNIQUE KEY uk_fleet_pool_order_incoming ( incoming_no ),
UNIQUE KEY uk_fleet_pool_order_lastleg ( lastleg_order_id ),
KEY idx_fleet_pool_order_customer ( customer_id , business_type , business_order_no ),
KEY idx_fleet_pool_order_dispatch ( customer_id , dispatch_no ),
CONSTRAINT fk_fleet_pool_order_booking FOREIGN KEY ( booking_id ) REFERENCES ll_fleet_external_booking ( id ),
CONSTRAINT chk_fleet_pool_order_type CHECK ( business_type IN ( 'LOCAL_LOOSEBOARD' , 'US_TRUCK' )),
CONSTRAINT chk_fleet_pool_order_actual CHECK (( actual_pallet_count IS NULL OR actual_pallet_count >= 0 ) AND ( actual_package_count IS NULL OR actual_package_count >= 0 ) AND ( actual_pallet_spaces IS NULL OR actual_pallet_spaces >= 0 ))
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '拼车预订与本土商业单唯一真实履约关联,不重复记运费' ;
CREATE TABLE IF NOT EXISTS ll_fleet_resource_assignment (
resource_kind VARCHAR ( 16 ) NOT NULL COMMENT '资源种类 VEHICLE或DRIVER' ,
resource_id BIGINT NOT NULL COMMENT '对应车辆或司机档案引用' ,
trip_id BIGINT NOT NULL COMMENT '占用车次' ,
trip_no VARCHAR ( 32 ) NOT NULL COMMENT '占用车次业务编号' ,
PRIMARY KEY ( resource_kind , resource_id ),
KEY idx_fleet_resource_trip ( trip_id ),
CONSTRAINT fk_fleet_resource_trip FOREIGN KEY ( trip_id ) REFERENCES ll_fleet_trip ( id ),
CONSTRAINT chk_fleet_resource_kind CHECK ( resource_kind IN ( 'VEHICLE' , 'DRIVER' ))
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '车辆及司机当前车次占用,释放后删除锁行,历史保留在车次' ;
CREATE TABLE IF NOT EXISTS ll_fleet_trip_dispatch (
dispatch_id BIGINT NOT NULL COMMENT '客户排车单内部引用,唯一有效车次关联' ,
dispatch_no VARCHAR ( 64 ) NOT NULL COMMENT '客户排车业务单号' ,
customer_id VARCHAR ( 128 ) NOT NULL COMMENT '排车单自身客户归属' ,
trip_id BIGINT NOT NULL COMMENT '共享运输车次内部引用' ,
trip_no VARCHAR ( 32 ) NOT NULL COMMENT '共享运输车次业务编号' ,
package_count INT NOT NULL COMMENT '关联时待发运箱数快照' ,
bound_by VARCHAR ( 64 ) NOT NULL COMMENT '关联操作人' ,
bound_at DATETIME ( 3 ) NOT NULL COMMENT '关联UTC时间' ,
review_json LONGTEXT NULL COMMENT '客户排车调度审核快照,空值为待审核' ,
PRIMARY KEY ( dispatch_id ),
UNIQUE KEY uk_fleet_trip_dispatch_no ( dispatch_no ),
KEY idx_fleet_trip_dispatch_trip ( trip_id , dispatch_id ),
CONSTRAINT fk_fleet_trip_dispatch_trip FOREIGN KEY ( trip_id ) REFERENCES ll_fleet_trip ( id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '车次与各客户排车单的有效关联,解除前快照保留在车次历史' ;
CREATE TABLE IF NOT EXISTS ll_fleet_trip_history (
id BIGINT NOT NULL COMMENT '内部主键' ,
trip_id BIGINT NOT NULL COMMENT '车次内部引用' ,
record_version BIGINT NOT NULL COMMENT '操作后版本' ,
action VARCHAR ( 32 ) NOT NULL COMMENT '车次操作' ,
reason VARCHAR ( 1000 ) NULL COMMENT '操作原因' ,
operator_id VARCHAR ( 64 ) NOT NULL COMMENT '操作人' ,
occurred_at DATETIME ( 3 ) NOT NULL COMMENT '操作UTC时间' ,
snapshot_json JSON NOT NULL COMMENT '操作后不可变车次快照' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_fleet_trip_history_version ( trip_id , record_version ),
CONSTRAINT fk_fleet_trip_history FOREIGN KEY ( trip_id ) REFERENCES ll_fleet_trip ( id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '运输车次操作历史' ;
CREATE TABLE IF NOT EXISTS ll_fleet_trip_operations_record (
id BIGINT NOT NULL COMMENT '出车实测历史主键' ,
trip_no VARCHAR ( 64 ) NOT NULL COMMENT '车次业务编号' ,
record_version BIGINT NOT NULL COMMENT '实测记录版本从一递增' ,
details_json JSON NOT NULL COMMENT '实际里程英里油耗升与备注快照' ,
reason VARCHAR ( 1000 ) NOT NULL COMMENT '实测更正说明' ,
operator_id VARCHAR ( 64 ) NOT NULL COMMENT '实测操作人标识' ,
request_key VARCHAR ( 128 ) NOT NULL COMMENT '实测保存幂等键' ,
request_hash CHAR ( 64 ) NOT NULL COMMENT '实测请求内容摘要' ,
occurred_at DATETIME ( 3 ) NOT NULL COMMENT '实测保存时间UTC' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_fleet_operations_version ( trip_no , record_version ),
UNIQUE KEY uk_fleet_operations_request ( trip_no , operator_id , request_key )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '车次里程油耗不可变更正记录' ;
CREATE TABLE IF NOT EXISTS ll_fleet_trip_handover (
id BIGINT NOT NULL COMMENT '内部主键' ,
trip_id BIGINT NOT NULL COMMENT '所属车次' ,
trip_version BIGINT NOT NULL COMMENT '交接对应车次历史版本' ,
trip_no VARCHAR ( 32 ) NOT NULL COMMENT '车次业务编号' ,
handover_no VARCHAR ( 32 ) NOT NULL COMMENT '交接业务编号' ,
request_key VARCHAR ( 128 ) NOT NULL COMMENT '交接请求幂等键' ,
request_hash CHAR ( 64 ) NOT NULL COMMENT '交接请求摘要' ,
record_version BIGINT NOT NULL DEFAULT 0 COMMENT '资源结束并发版本' ,
handed_over_at DATETIME ( 3 ) NOT NULL COMMENT '实际交接UTC时间' ,
snapshot_json JSON NOT NULL COMMENT '不可变资源及剩余货物交接快照' ,
vehicle_release_json JSON NULL COMMENT '原车辆任务结束及幂等结果' ,
driver_release_json JSON NULL COMMENT '原司机任务结束及幂等结果' ,
created_by VARCHAR ( 64 ) NOT NULL COMMENT '记录操作人' ,
created_at DATETIME ( 3 ) NOT NULL COMMENT '记录UTC时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_fleet_handover_no ( handover_no ),
UNIQUE KEY uk_fleet_handover_request ( trip_id , request_key ),
UNIQUE KEY uk_fleet_handover_version ( trip_id , trip_version ),
KEY idx_fleet_handover_page ( trip_id , id ),
CONSTRAINT fk_fleet_handover_trip FOREIGN KEY ( trip_id ) REFERENCES ll_fleet_trip ( id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '在途车辆司机交接' ;
CREATE TABLE IF NOT EXISTS ll_fleet_finance_source (
id BIGINT UNSIGNED NOT NULL COMMENT '来源提交主键' ,
record_id BIGINT UNSIGNED NOT NULL COMMENT '车辆运维记录主键' ,
source_version BIGINT UNSIGNED NOT NULL COMMENT '独立财务来源版本,从1递增' ,
record_version BIGINT UNSIGNED NOT NULL COMMENT '提交时运维记录版本' ,
operator_id VARCHAR ( 64 ) NOT NULL COMMENT '提交操作人标识' ,
request_key VARCHAR ( 128 ) NOT NULL COMMENT '原请求幂等键' ,
request_hash VARCHAR ( 71 ) NOT NULL COMMENT '规范请求摘要,含sha256前缀' ,
event_id VARCHAR ( 128 ) NOT NULL COMMENT '关联公共Outbox事件ID' ,
payload_json JSON NOT NULL COMMENT '不可变公司成本来源快照' ,
created_at DATETIME ( 3 ) NOT NULL DEFAULT CURRENT_TIMESTAMP ( 3 ) COMMENT '提交时间UTC' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_fleet_finance_source_version ( record_id , source_version ),
UNIQUE KEY uk_fleet_finance_source_request ( record_id , operator_id , request_key ),
UNIQUE KEY uk_fleet_finance_source_event ( event_id ),
CONSTRAINT chk_fleet_finance_source_version CHECK ( source_version > 0 )
) ENGINE = InnoDB COMMENT = '维修救援公司成本提交来源,不保存付款推定' ;
CREATE TABLE IF NOT EXISTS ll_fleet_quote (
id BIGINT PRIMARY KEY COMMENT '报价记录主键' ,
quote_no VARCHAR ( 64 ) NOT NULL COMMENT '报价业务编号' ,
kind VARCHAR ( 16 ) NOT NULL COMMENT '报价用途采购或销售' ,
party_id BIGINT NOT NULL COMMENT '供应商或客户主档标识' ,
party_name VARCHAR ( 160 ) NOT NULL COMMENT '往来单位名称快照' ,
origin_city VARCHAR ( 128 ) NOT NULL COMMENT '发货城市' ,
destination_code VARCHAR ( 64 ) NOT NULL COMMENT '目的仓业务编码' ,
valid_from DATE NOT NULL COMMENT '报价生效日期' ,
valid_to DATE NOT NULL COMMENT '报价失效日期含当天' ,
status VARCHAR ( 16 ) NOT NULL COMMENT '报价启停或删除状态' ,
natural_key CHAR ( 64 ) NOT NULL COMMENT '报价组合去重摘要' ,
details_json JSON NOT NULL COMMENT '完整报价明细快照' ,
record_version BIGINT NOT NULL COMMENT '报价记录版本' ,
create_key VARCHAR ( 128 ) NOT NULL COMMENT '创建幂等键' ,
create_hash CHAR ( 64 ) NOT NULL COMMENT '创建请求含导入批次内容摘要' ,
created_by VARCHAR ( 64 ) NOT NULL COMMENT '创建操作人标识' ,
created_at DATETIME ( 3 ) NOT NULL COMMENT '创建时间UTC' ,
updated_at DATETIME ( 3 ) NOT NULL COMMENT '更新时间UTC' ,
UNIQUE KEY uk_fleet_quote_no ( quote_no ),
UNIQUE KEY uk_fleet_quote_natural ( natural_key ),
UNIQUE KEY uk_fleet_quote_create ( created_by , create_key ),
KEY idx_fleet_quote_search ( kind , status , valid_from , valid_to )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '车辆采购与外接销售报价' ;
CREATE TABLE IF NOT EXISTS ll_fleet_quote_history (
id BIGINT PRIMARY KEY COMMENT '报价历史主键' ,
quote_id BIGINT NOT NULL COMMENT '报价记录标识' ,
record_version BIGINT NOT NULL COMMENT '报价记录版本' ,
action VARCHAR ( 24 ) NOT NULL COMMENT '报价操作类型' ,
operator_id VARCHAR ( 64 ) NOT NULL COMMENT '操作人标识' ,
occurred_at DATETIME ( 3 ) NOT NULL COMMENT '操作时间UTC' ,
snapshot_json JSON NOT NULL COMMENT '报价完整版本快照' ,
UNIQUE KEY uk_fleet_quote_history_version ( quote_id , record_version )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '车辆报价不可变版本历史' ;
CREATE TABLE IF NOT EXISTS ll_fleet_trip_cost (
id BIGINT NOT NULL COMMENT '内部主键' ,
trip_id BIGINT NOT NULL COMMENT '车次内部引用' ,
cost_no VARCHAR ( 32 ) NOT NULL COMMENT '车次成本业务编号' ,
category VARCHAR ( 16 ) NOT NULL COMMENT '直接成本类别FUEL/DRIVER/TOLL/PARKING/OTHER' ,
currency VARCHAR ( 3 ) NOT NULL COMMENT '原始成本币种CNY/USD,不混币汇总' ,
amount DECIMAL ( 14 , 2 ) NOT NULL COMMENT '运营登记金额,不代表付款' ,
incurred_at DATETIME ( 3 ) NOT NULL COMMENT '实际费用发生UTC时间' ,
remark VARCHAR ( 1000 ) NULL COMMENT '费用备注' ,
record_version BIGINT NOT NULL COMMENT '成本记录版本' ,
request_key VARCHAR ( 128 ) NOT NULL COMMENT '创建幂等键' ,
request_hash CHAR ( 64 ) NOT NULL COMMENT '创建请求摘要' ,
created_by VARCHAR ( 64 ) NOT NULL COMMENT '登记人' ,
updated_by VARCHAR ( 64 ) NOT NULL COMMENT '最近更正人' ,
created_at DATETIME ( 3 ) NOT NULL COMMENT '登记UTC时间' ,
updated_at DATETIME ( 3 ) NOT NULL COMMENT '更正UTC时间' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_fleet_trip_cost_no ( cost_no ),
UNIQUE KEY uk_fleet_trip_cost_request ( trip_id , created_by , request_key ),
KEY idx_fleet_trip_cost_page ( trip_id , incurred_at , id ),
CONSTRAINT fk_fleet_trip_cost_trip FOREIGN KEY ( trip_id ) REFERENCES ll_fleet_trip ( id ),
CONSTRAINT ck_fleet_trip_cost_amount CHECK ( amount >= 0 ),
CONSTRAINT ck_fleet_trip_cost_currency CHECK ( currency IN ( 'CNY' , 'USD' )),
CONSTRAINT ck_fleet_trip_cost_category CHECK ( category IN ( 'FUEL' , 'DRIVER' , 'TOLL' , 'PARKING' , 'OTHER' ))
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '车次直接运营成本,不生成客户账单或付款' ;
CREATE TABLE IF NOT EXISTS ll_fleet_trip_cost_history (
id BIGINT NOT NULL COMMENT '内部主键' ,
cost_id BIGINT NOT NULL COMMENT '成本记录内部引用' ,
record_version BIGINT NOT NULL COMMENT '成本更正后版本' ,
action VARCHAR ( 16 ) NOT NULL COMMENT '成本操作CREATE/UPDATE' ,
reason VARCHAR ( 1000 ) NULL COMMENT '登记或更正说明' ,
operator_id VARCHAR ( 64 ) NOT NULL COMMENT '操作人' ,
occurred_at DATETIME ( 3 ) NOT NULL COMMENT '操作UTC时间' ,
snapshot_json JSON NOT NULL COMMENT '成本与当时整趟汇总及分摊快照' ,
PRIMARY KEY ( id ),
UNIQUE KEY uk_fleet_trip_cost_history ( cost_id , record_version ),
CONSTRAINT fk_fleet_trip_cost_history FOREIGN KEY ( cost_id ) REFERENCES ll_fleet_trip_cost ( id )
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT = '车次成本不可变更正历史' ;