4505 lines
346 KiB
SQL
4505 lines
346 KiB
SQL
-- OVERSEAS 当前纯空库初始化入口(文件名沿用原入口,不提供增量升级语义)。
|
||
-- MySQL 8.0+;只允许目标测试环境的服务 schema 为空,已有表立即报错;禁止 --force/遇错继续。
|
||
-- 字段、索引、约束及注释直接定义在 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';
|
||
|
||
-- 服务 schema:baiyue_lastleg
|
||
CREATE DATABASE IF NOT EXISTS baiyue_lastleg DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||
USE baiyue_lastleg;
|
||
|
||
CREATE TABLE ll_cargo_discard_application (
|
||
id bigint NOT NULL COMMENT '主键ID',
|
||
customer_id varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户租户ID',
|
||
customer_confirmed_at datetime(3) DEFAULT NULL COMMENT '客户确认完成时间',
|
||
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='货物废弃申请单';
|
||
|
||
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 '箱唛',
|
||
source_type VARCHAR(32) NOT NULL DEFAULT 'DROPSHIP' COMMENT '箱子来源:一件代发DROPSHIP、入仓箱INBOUND、转运箱TRANSFER',
|
||
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='货物废弃锁定箱明细';
|
||
|
||
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',
|
||
order_id bigint DEFAULT NULL COMMENT '一件代发订单ID',
|
||
source_type varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'DROPSHIP' COMMENT '库存来源:一件代发DROPSHIP、退货箱RETURN_CARTON、通用库存INVENTORY',
|
||
return_carton_id bigint DEFAULT NULL COMMENT '退货库存箱ID',
|
||
inbound_code varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '入仓单号快照',
|
||
profile_id bigint DEFAULT NULL COMMENT '托盘档案ID',
|
||
sku_inventory_id bigint DEFAULT NULL COMMENT 'SKU库存记录ID',
|
||
sku_code varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'SKU编码',
|
||
product_name varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '产品名称',
|
||
inventory_position_id BIGINT NULL COMMENT '废弃来源库存仓位ID',
|
||
carton_marks_json TEXT NULL COMMENT '本次废弃所选真实箱唛快照JSON数组',
|
||
carton_scan_required TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否需要逐箱核对本次所选箱子',
|
||
available_packages_snapshot int NOT NULL COMMENT '可用箱数快照',
|
||
discard_packages int NOT NULL COMMENT '申请废弃箱数',
|
||
completion_photo_file_ids text COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'PDA完工照片文件ID JSON数组',
|
||
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),
|
||
UNIQUE KEY uk_ll_discard_position_sku(application_id,inventory_position_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)
|
||
,KEY idx_ll_cargo_discard_return_carton (customer_id,return_carton_id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='货物废弃SKU明细';
|
||
|
||
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='货物废弃审批历史';
|
||
|
||
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='柜级预计到仓时间修改幂等审计记录';
|
||
|
||
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='海外拆柜只读国内装柜照片引用';
|
||
|
||
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与幂等命令';
|
||
|
||
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柜号船节点收货资格快照';
|
||
|
||
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='派送单维度客户回访记录';
|
||
|
||
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='派送资料版本历史与幂等保存记录';
|
||
|
||
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='派送单操作记录';
|
||
|
||
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 '关联出库单号',
|
||
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',
|
||
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快照',
|
||
destination_warehouse_code varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本派送单目的FBA仓编码快照,私人仓为空',
|
||
destination_warehouse_name varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本派送单目的FBA仓名称快照',
|
||
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 '私人仓联系电话',
|
||
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 '派送托盘数',
|
||
total_weight_kg DECIMAL(18,4) NULL COMMENT '总重量(千克),任一来源未确认时为空',
|
||
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 '更新时间',
|
||
signed_packages INT NULL COMMENT '保存签收资料时冻结的实际签收箱数,不含此前已退回量',
|
||
CONSTRAINT chk_delivery_signed_packages CHECK(signed_packages IS NULL OR (signed_packages>=0 AND signed_packages<=package_count)),
|
||
|
||
PRIMARY KEY (id),
|
||
UNIQUE KEY uk_ll_delivery_no (customer_id,delivery_no),
|
||
UNIQUE KEY uk_ll_delivery_idempotency (customer_id,idempotency_key),
|
||
UNIQUE KEY uk_ll_delivery_outbound_destination (customer_id,outbound_order_id,delivery_group_key),
|
||
KEY idx_ll_delivery_list (customer_id,status,created_at)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='尾程派送单';
|
||
|
||
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 '创建时间',
|
||
PRIMARY KEY (id),
|
||
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='拆柜打托实际成本汇总';
|
||
|
||
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 '创建时间',
|
||
PRIMARY KEY (id),
|
||
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='拆柜打托成本按客户实收体积分摊';
|
||
|
||
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 '更新时间',
|
||
PRIMARY KEY (id),
|
||
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='智能排车草稿';
|
||
|
||
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 '更新时间',
|
||
PRIMARY KEY (id),
|
||
KEY idx_ll_dispatch_draft_container_token (draft_token)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='智能排车草稿装车托盘';
|
||
|
||
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仓库编码',
|
||
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 '私人仓联系电话快照',
|
||
package_count int NOT NULL DEFAULT '0' COMMENT '箱数',
|
||
gross_weight_kg DECIMAL(18,3) NULL COMMENT '毛重(千克),未知为NULL,不以材积重代替',
|
||
volume_weight_kg decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '材积重(千克)',
|
||
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 '创建时间',
|
||
return_receipt_id BIGINT NULL COMMENT '明确选用的真实退回入仓来源',
|
||
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)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='派车货物冻结明细';
|
||
|
||
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='尾程派车单';
|
||
|
||
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 '更新时间',
|
||
return_receipt_id BIGINT NULL COMMENT '明确选用的真实退回入仓来源',
|
||
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)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='派车托盘排他锁';
|
||
|
||
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操作幂等记录';
|
||
|
||
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 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 '创建时间',
|
||
return_carton_id BIGINT NULL COMMENT '独立退货库存箱ID,与普通仓位互斥',
|
||
PRIMARY KEY (id),
|
||
UNIQUE KEY uk_ll_dispatch_pda_pick_key (customer_id,idempotency_key),
|
||
KEY idx_ll_dispatch_pda_pick_item (customer_id,task_id,dispatch_item_id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='派车PDA拣货记录';
|
||
|
||
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='真实退回入仓及再次发运来源凭据';
|
||
|
||
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',
|
||
receipt_id BIGINT NULL COMMENT '入仓实收记录ID',
|
||
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 '创建时间',
|
||
return_receipt_id BIGINT NULL COMMENT '明确选用的真实退回入仓来源',
|
||
return_carton_id BIGINT NULL COMMENT '原生退货箱来源ID,与实收来源互斥',
|
||
KEY idx_dispatch_pick_return_receipt(customer_id,return_receipt_id),
|
||
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),
|
||
PRIMARY KEY (id),
|
||
KEY idx_ll_dispatch_pick_order_pick (customer_id,pick_id),
|
||
KEY idx_ll_dispatch_pick_order_receipt (customer_id,receipt_id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PDA拣货订单归属记录';
|
||
|
||
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='一件代发箱唛明细';
|
||
|
||
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明细';
|
||
|
||
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 '更新时间',
|
||
return_context_json JSON NULL COMMENT '退回异常创建前的派送及尾程状态快照',
|
||
|
||
PRIMARY KEY (id),
|
||
UNIQUE KEY uk_ll_exception_no (customer_id,exception_no),
|
||
KEY idx_ll_exception_delivery_return(customer_id,delivery_order_id,exception_type),
|
||
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 '创建时间',
|
||
received_packages BIGINT NOT NULL DEFAULT 0 COMMENT '已实际退回入仓的累计箱数',
|
||
CONSTRAINT chk_exception_return_received CHECK(received_packages>=0 AND received_packages<=approved_return_packages),
|
||
|
||
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 '直接已付流水号',
|
||
wallet_settlement json DEFAULT NULL COMMENT '已实扣应收的Finance资金命令、冻结和消费流水引用',
|
||
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',
|
||
appointment_no VARCHAR(64) NOT NULL COMMENT '系统预约业务单号,不是外部约号',
|
||
confirmation_no VARCHAR(128) NULL COMMENT '收货方正式外部确认号',
|
||
planned_date DATE NULL COMMENT '计划当地日期,可只有日期而无时段',
|
||
planned_at DATETIME(3) NULL COMMENT '计划开始当地时间,待定可空',
|
||
planned_end_at DATETIME(3) NULL COMMENT '计划结束当地时间',
|
||
appointment_at DATETIME(3) NULL COMMENT '对方确认开始当地时间',
|
||
appointment_end_at DATETIME(3) NULL COMMENT '对方确认结束当地时间',
|
||
appointment_start_utc DATETIME(3) NULL COMMENT '确认开始UTC时间点',
|
||
appointment_end_utc DATETIME(3) NULL COMMENT '确认结束UTC时间点',
|
||
timezone VARCHAR(64) NULL COMMENT '目的仓权威IANA时区,未维护不得确认',
|
||
origin_warehouse_id VARCHAR(64) NOT NULL COMMENT '实际起运仓',
|
||
version INT NOT NULL DEFAULT 0 COMMENT '并发版本',
|
||
appointment_status VARCHAR(32) NOT NULL DEFAULT 'PENDING' COMMENT 'PENDING安排/SUCCESS对方确认/FAILED/CANCELLED',
|
||
appointment_remark VARCHAR(1000) NULL COMMENT '备注或取消原因',
|
||
fba_warehouse_code VARCHAR(128) NOT NULL COMMENT 'FBA目的仓编码',
|
||
selected_count INT NOT NULL DEFAULT 0 COMMENT '真实货源票数',
|
||
created_by VARCHAR(128) NOT NULL COMMENT '登录操作人',
|
||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建UTC时间',
|
||
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '更新UTC时间',
|
||
PRIMARY KEY (id),
|
||
UNIQUE KEY uk_ll_fba_appointment_no (appointment_no),
|
||
UNIQUE KEY uk_ll_fba_external_confirmation (fba_warehouse_code,confirmation_no),
|
||
KEY idx_ll_fba_appointment_list (appointment_at,appointment_status,fba_warehouse_code),
|
||
KEY idx_ll_fba_appointment_planned (planned_at,appointment_status)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='FBA预约安排与正式确认唯一主记录';
|
||
|
||
CREATE TABLE ll_inbound_fba_appointment_item (
|
||
id BIGINT NOT NULL COMMENT '记录主键',
|
||
appointment_id BIGINT NOT NULL COMMENT '预约主记录标识',
|
||
source_key VARCHAR(160) NOT NULL COMMENT '稳定ORDER或BOOKING货源键',
|
||
source_version VARCHAR(160) NULL COMMENT '保存时核实的来源版本',
|
||
customer_id VARCHAR(128) NOT NULL COMMENT '本票所属客户',
|
||
order_id BIGINT NULL COMMENT '尚未形成尾程订单时为空',
|
||
inbound_code VARCHAR(128) NULL COMMENT '真实入仓码,不伪造',
|
||
fba_warehouse_code VARCHAR(128) NOT NULL COMMENT '目的FBA仓编码',
|
||
package_count INT NULL COMMENT '所选整票预报箱数,未知保持空',
|
||
active TINYINT(1) NOT NULL DEFAULT 1 COMMENT '取消或失败后释放货源占用',
|
||
active_source_key VARCHAR(160) GENERATED ALWAYS AS (CASE WHEN active=1 THEN source_key ELSE NULL END) STORED COMMENT '有效货源唯一占用键',
|
||
active_order_id BIGINT GENERATED ALWAYS AS (CASE WHEN active=1 THEN order_id ELSE NULL END) STORED COMMENT '有效订单唯一占用键',
|
||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建UTC时间',
|
||
PRIMARY KEY (id),
|
||
UNIQUE KEY uk_ll_fba_item_source (appointment_id,source_key),
|
||
UNIQUE KEY uk_ll_fba_active_source (active_source_key),
|
||
UNIQUE KEY uk_ll_fba_active_order (active_order_id),
|
||
KEY idx_ll_fba_item_source_lookup (source_key,customer_id),
|
||
KEY idx_ll_fba_item_customer_order (customer_id,order_id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='入仓前后共用的预约真实货源';
|
||
|
||
CREATE TABLE ll_fba_appointment_command (
|
||
command_key VARCHAR(128) NOT NULL COMMENT '持久化幂等键',
|
||
request_hash CHAR(64) NOT NULL COMMENT '操作、操作者和请求摘要',
|
||
operation VARCHAR(96) NOT NULL COMMENT '操作类型及目标业务号',
|
||
operator_id VARCHAR(128) NOT NULL COMMENT '登录操作人',
|
||
appointment_no VARCHAR(64) NULL COMMENT '系统预约业务单号',
|
||
response_json LONGTEXT NULL COMMENT '原命令返回快照,与业务写入同事务',
|
||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建UTC时间',
|
||
PRIMARY KEY(command_key),
|
||
KEY idx_ll_fba_command_appointment(appointment_no,created_at)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='预约命令与变更历史';
|
||
|
||
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是',
|
||
creation_mode varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'AUTO' COMMENT '计划生成方式:AUTO柜级自动、MANUAL单票人工、WAREHOUSE_TRANSFER仓储转运',
|
||
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、待废弃DISCARD_PENDING、已废弃DISCARDED',
|
||
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 '目的仓名称快照',
|
||
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 '私人仓联系电话快照',
|
||
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 '目的仓名称快照',
|
||
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 '私人仓联系电话快照',
|
||
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 '运输方式:拼车或优先拼载',
|
||
pallet_required varchar(8) COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '是否需要打盘:YES或NO;拼车来源未提供时为空',
|
||
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 '目的详细地址、码头或仓号',
|
||
container_type varchar(32) COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '柜型;拼车来源未提供时为空,不推断为整柜',
|
||
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 '箱数',
|
||
received_package_count int DEFAULT NULL COMMENT 'PDA实际入库箱数',
|
||
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_appointment_followup (
|
||
id BIGINT NOT NULL COMMENT '预约筹划跟进记录ID',
|
||
source_key VARCHAR(160) NOT NULL COMMENT '稳定ORDER、BOOKING或CONTAINER及接仓点来源键',
|
||
customer_id VARCHAR(128) NOT NULL COMMENT '货源客户;整柜共享记录由服务端固定为平台作用域0',
|
||
source_order_id BIGINT NULL COMMENT '已形成的真实尾程货源ID,尚未生成时为空',
|
||
stage VARCHAR(32) NOT NULL COMMENT '跟进对象:DRAYAGE_CONTACT/TERMINAL_APPOINTMENT/WAREHOUSE_RECEIVING/FBA_RECEIVING',
|
||
version INT NOT NULL COMMENT '同一货源及跟进对象的记录版本',
|
||
contacted_party VARCHAR(200) NULL COMMENT '本次联系对象,不替代承运主档',
|
||
result VARCHAR(1000) NOT NULL COMMENT '本次反馈事实,不自动确认预约或推进实物作业',
|
||
next_action VARCHAR(500) NULL COMMENT '下一步安排',
|
||
followup_date DATE NULL COMMENT '按业务地点当地日期记录的下次跟进日',
|
||
operator_id VARCHAR(128) NOT NULL COMMENT '登录平台操作者ID',
|
||
operator_name VARCHAR(200) NULL COMMENT '操作人姓名快照',
|
||
command_key VARCHAR(64) NOT NULL COMMENT '持久幂等键',
|
||
request_hash CHAR(64) NOT NULL COMMENT '含操作者身份的请求SHA256摘要',
|
||
created_at DATETIME(3) NOT NULL COMMENT 'UTC记录时间',
|
||
PRIMARY KEY (id),
|
||
UNIQUE KEY uk_appointment_followup_version (source_key,stage,version),
|
||
UNIQUE KEY uk_appointment_followup_command (source_key,stage,command_key),
|
||
KEY idx_appointment_followup_date (followup_date,source_order_id),
|
||
CONSTRAINT fk_appointment_followup_order FOREIGN KEY (source_order_id) REFERENCES ll_order(id),
|
||
CONSTRAINT chk_appointment_followup_stage CHECK (stage IN ('DRAYAGE_CONTACT','TERMINAL_APPOINTMENT','WAREHOUSE_RECEIVING','FBA_RECEIVING'))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 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 '托盘数',
|
||
gross_weight_kg DECIMAL(18,3) NULL COMMENT '毛重(千克),来源未确认时为空',
|
||
volume_weight_kg decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '材积重(千克)',
|
||
volume_cbm decimal(18,4) NOT NULL DEFAULT '0.0000' COMMENT '体积(立方米)',
|
||
fee_coverage_json JSON 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',
|
||
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 '一件代发收件信息',
|
||
request_hash char(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '创建或转派送业务请求摘要,用于幂等内容校验',
|
||
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),
|
||
KEY idx_ll_outbound_list (customer_id,status,created_at)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='尾程出库单';
|
||
|
||
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 '箱数',
|
||
gross_weight_kg DECIMAL(18,3) NULL COMMENT '毛重(千克),来源未确认时为空',
|
||
volume_weight_kg decimal(18,3) NOT NULL DEFAULT '0.000' COMMENT '材积重(千克)',
|
||
volume_cbm decimal(18,4) NOT NULL DEFAULT '0.0000' COMMENT '体积(立方米)',
|
||
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),
|
||
UNIQUE KEY uk_ll_outbound_pallet (customer_id,outbound_order_id,warehouse_pallet_id,inbound_code,sku_code),
|
||
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='出库托盘明细';
|
||
|
||
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',
|
||
inventory_position_id bigint DEFAULT NULL COMMENT '库存仓位ID;退货箱直接出库时为空',
|
||
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托盘拣货记录';
|
||
|
||
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拣货任务';
|
||
|
||
CREATE TABLE ll_overseas_procurement_fee (
|
||
purpose VARCHAR(32) NULL COMMENT '费用业务用途;由履约节点确定',
|
||
confirmation_origin VARCHAR(16) NOT NULL DEFAULT 'BUSINESS' COMMENT '核定入口:BUSINESS业务节点、FINANCIAL财务操作',
|
||
fee_version INT NULL COMMENT '同用途费用确认版本',
|
||
active TINYINT(1) NOT NULL DEFAULT 1 COMMENT '是否当前有效版本',
|
||
determination VARCHAR(24) NULL COMMENT 'POSITIVE正额、ZERO零元、NOT_APPLICABLE不适用',
|
||
original_currency CHAR(3) NULL COMMENT '核定原币CNY或USD',
|
||
original_amount DECIMAL(20,2) NULL COMMENT '核定原币金额',
|
||
exchange_rate DECIMAL(20,6) NULL COMMENT '已确认汇率快照',
|
||
exchange_rate_month CHAR(7) NULL COMMENT '已确认汇率所属月份',
|
||
business_date DATE NULL COMMENT '实际费用业务日期',
|
||
wallet_business_id BIGINT NULL COMMENT '资金冻结对应采购费用记录',
|
||
wallet_business_no VARCHAR(128) NULL COMMENT '资金冻结业务号;实际国际运费引用原预估',
|
||
wallet_hold_id VARCHAR(64) NULL COMMENT 'Finance冻结引用',
|
||
wallet_ledger_id VARCHAR(64) NULL COMMENT 'Finance实际处理流水引用',
|
||
settled_command_event_id VARCHAR(64) NULL COMMENT '成功实扣或退款的资金命令事件',
|
||
source_fee_id BIGINT NULL COMMENT '已实扣费用来源ID',
|
||
parent_fee_id BIGINT NULL COMMENT '原费用或预估引用',
|
||
request_hash CHAR(64) NULL COMMENT '确认请求摘要',
|
||
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 NULL COMMENT '凭证文件ID',
|
||
voucher_file_name varchar(255) COLLATE utf8mb4_unicode_ci 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 '更新时间',
|
||
CONSTRAINT chk_procurement_confirmation_origin CHECK(confirmation_origin IN('BUSINESS','FINANCIAL')),
|
||
UNIQUE KEY uk_ll_procurement_fee_version(order_id,purpose,fee_item_code,fee_version),
|
||
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='海外采购费用明细及资金生命周期';
|
||
|
||
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费用、LABEL面单、PURCHASE采购、BUDGET预算、EXCEPTION异常凭证',
|
||
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 ('RECEIPT','VOUCHER','LABEL','PURCHASE','BUDGET','EXCEPTION'))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外采购签收文件及费用凭证';
|
||
|
||
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 '采购入仓仓库名称',
|
||
inbound_quantity bigint NOT NULL DEFAULT '0' 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='海外采购订单';
|
||
|
||
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='海外采购操作流水';
|
||
|
||
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='海外仓报价主表';
|
||
|
||
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='海外仓报价仓库费用';
|
||
|
||
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='海外仓报价中转价格明细';
|
||
|
||
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同仓整托移库记录';
|
||
|
||
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真实作业历史';
|
||
|
||
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托盘作业幂等、补偿与结果记录';
|
||
|
||
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盘点动作幂等记录';
|
||
|
||
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库存盘点位置明细';
|
||
|
||
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库存盘点任务';
|
||
|
||
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 '更新时间',
|
||
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),
|
||
KEY idx_ll_relabel_application_order (lastleg_order_id),
|
||
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)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='客户换标申请单';
|
||
|
||
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 '物流跟踪编码',
|
||
new_sku_code varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '换标后SKU编码;批量SKU换标使用子明细JSON时为空',
|
||
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 '原进仓编码快照',
|
||
source_warehouse_id varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '原海外中转仓ID;预入仓批量SKU换标时为空',
|
||
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 '创建时间',
|
||
PRIMARY KEY (id),
|
||
KEY idx_ll_relabel_item_application (customer_id,application_id),
|
||
KEY idx_ll_relabel_item_sku (customer_id,sku_code),
|
||
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='换标货物冻结明细';
|
||
|
||
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 '创建时间',
|
||
PRIMARY KEY (id),
|
||
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换标任务不可变操作历史';
|
||
|
||
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 '更新时间',
|
||
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)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外PDA换标现场作业任务';
|
||
|
||
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 '跳过或异常原因',
|
||
quantity int NOT NULL DEFAULT '1' COMMENT '本次事实处理件数,箱级作业固定为1',
|
||
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 '逐件事实发生时间',
|
||
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)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='海外PDA逐件换标扫码与异常事实';
|
||
|
||
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 '创建时间',
|
||
PRIMARY KEY (id),
|
||
KEY idx_ll_relabel_status_history_application (customer_id,application_id,created_at)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='换标状态变更历史';
|
||
|
||
-- 退货出库按SKU固化扣减前后快照,与PDA拣货同事务提交;不修改历史箱内容。
|
||
CREATE TABLE ll_return_inventory_outbound_movement (
|
||
id BIGINT NOT NULL COMMENT '退货出库SKU流水ID',
|
||
outbound_pick_id BIGINT NOT NULL COMMENT '同事务PDA出库拣货记录ID',
|
||
customer_id VARCHAR(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '库存所属客户ID和隔离键',
|
||
overseas_warehouse_id VARCHAR(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '实际出库海外仓ID',
|
||
carton_id BIGINT NOT NULL COMMENT '真实退货库存箱ID',
|
||
carton_mark VARCHAR(128) NOT NULL COMMENT '冻结的真实退货箱业务码',
|
||
outbound_no VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '本次退货出库业务单号',
|
||
sku_code VARCHAR(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '本次出库SKU编码快照', return_sku_quantity BIGINT NULL COMMENT '退货单SKU本来源计划出库件数快照,NULL为历史整箱出库',
|
||
product_name_zh VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci 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),
|
||
KEY idx_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 IN (0,1) AND total_after>=available_after)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='不可变退货出库SKU库存流水';
|
||
|
||
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 '最后更新时间',
|
||
PRIMARY KEY (id),
|
||
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汇总余额';
|
||
|
||
CREATE TABLE ll_return_inventory_carton (
|
||
original_packaging TINYINT(1) NULL COMMENT '是否使用原箱原包装',
|
||
label_status varchar(32) DEFAULT NULL COMMENT 'WAIT_LABEL待贴标 CONFIRMED已扫码确认标签',
|
||
new_carton_mark varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '换标后新箱唛',
|
||
id bigint NOT NULL COMMENT '退货库存箱ID',
|
||
customer_id varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户ID和隔离键',
|
||
overseas_warehouse_id varchar(128) CHARACTER SET utf8mb4 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 '实际消耗来源退货单号,多个单号逗号分隔',
|
||
pallet_code varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '签收时绑定的托盘码',
|
||
carton_mark varchar(128) CHARACTER SET utf8mb4 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已合箱',
|
||
count_status VARCHAR(16) NOT NULL DEFAULT 'CONFIRMED' COMMENT '箱内清点状态 PENDING待清点 CONFIRMED已确认',
|
||
counted_at DATETIME(3) NULL COMMENT '箱内清点确认时间',
|
||
counted_by VARCHAR(128) NULL COMMENT '箱内清点确认操作人',
|
||
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),
|
||
KEY idx_ll_return_count (overseas_warehouse_id,count_status,status,source_receipt_id),
|
||
UNIQUE KEY uk_ll_return_inventory_carton_mark (carton_mark),
|
||
KEY idx_ll_return_inventory_carton_customer (customer_id,overseas_warehouse_id,status,created_at),
|
||
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)),
|
||
CONSTRAINT chk_ll_return_inventory_carton_status CHECK(status IN('AVAILABLE','PACKING_RESERVED','RELABEL_PENDING','OUTBOUND_PENDING','MERGED','OUTBOUNDED','DISCARD_PENDING','DISCARDED')),
|
||
source_unit_code VARCHAR(128) NULL COMMENT '来源单元业务码',
|
||
location_code VARCHAR(128) NULL COMMENT '退货箱当前库位',
|
||
putaway_at DATETIME(3) NULL COMMENT '退货箱上架时间',
|
||
source_unit_type VARCHAR(32) NULL COMMENT 'PALLET或BOX实物箱 PARCEL散SKU'
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='退货实物库存箱及箱唛';
|
||
|
||
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) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'SKU编码',
|
||
product_name_zh varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '中文品名',
|
||
quantity bigint NOT NULL COMMENT '该SKU箱内数量',
|
||
relabelled_quantity BIGINT NOT NULL DEFAULT 0 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)),
|
||
packing_reserved_quantity BIGINT NOT NULL DEFAULT 0 COMMENT '合箱计划预占件数'
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='退货库存箱内SKU和数量';
|
||
|
||
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),
|
||
result_json JSON NULL COMMENT '幂等操作不可变返回快照'
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='退货库存PDA合箱幂等操作审计';
|
||
|
||
CREATE TABLE ll_return_order (
|
||
id bigint NOT NULL COMMENT '退货订单ID',
|
||
customer_id varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户ID和隔离键',
|
||
return_no varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '退货订单号',
|
||
overseas_warehouse_id varchar(128) CHARACTER SET utf8mb4 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 '客户备注',
|
||
discrepancy_reason varchar(500) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '手动完结差异原因',
|
||
manually_completed_at datetime(3) 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 '创建请求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实收汇总';
|
||
|
||
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) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'SKU编码',
|
||
product_name_zh varchar(255) CHARACTER SET utf8mb4 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预报与实收明细';
|
||
|
||
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) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '签收单号',
|
||
receipt_batch_no varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '签收批次号',
|
||
pallet_code varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本次签收绑定的托盘码',
|
||
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)),
|
||
unit_type VARCHAR(16) NULL COMMENT '签收类型 PALLET/BOX/PARCEL',
|
||
unit_code VARCHAR(128) NULL COMMENT '签收单元业务码',
|
||
total_box_count BIGINT NULL COMMENT '签收SKU箱数汇总',
|
||
length DECIMAL(12,3) NULL COMMENT '实测尺寸cm',
|
||
width DECIMAL(12,3) NULL COMMENT '实测尺寸cm',
|
||
height DECIMAL(12,3) NULL COMMENT '实测尺寸cm',
|
||
weight DECIMAL(12,3) NULL COMMENT '实测重量kg',
|
||
original_packaging TINYINT(1) NULL COMMENT '是否使用原箱原包装',
|
||
measurement_source VARCHAR(32) NULL COMMENT '尺寸重量来源'
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PDA退货实收签收事实';
|
||
|
||
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='每次退货签收生成的仓储费起算批次';
|
||
|
||
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) CHARACTER SET utf8mb4 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)),
|
||
box_count BIGINT NULL COMMENT 'SKU签收箱数'
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='PDA退货签收SKU实际数量明细';
|
||
|
||
|
||
|
||
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 '目的地址',
|
||
container_type varchar(32) COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '柜型;拼车来源未提供时为空,不推断为整柜',
|
||
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='美国卡车运输订单';
|
||
|
||
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='美国卡车订单幂等操作账';
|
||
|
||
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='美国卡车订单托盘实收记录';
|
||
|
||
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='美国卡车订单状态历史';
|
||
|
||
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='司机档案及审核历史';
|
||
|
||
CREATE TABLE ll_vehicle (
|
||
max_pallet_spaces INT NULL COMMENT '最大标准托位,未知时为空',
|
||
max_load_kg DECIMAL(12,3) NULL COMMENT '最大载重,千克',
|
||
max_volume_cbm DECIMAL(12,3) NULL COMMENT '可用容积,立方米',
|
||
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),
|
||
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))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='平台车辆主数据';
|
||
|
||
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='平台运输车次';
|
||
|
||
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='拼车发布及销售意向持久幂等结果';
|
||
|
||
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 '车次业务编号',
|
||
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 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 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='车次与各客户排车单的有效关联,解除前快照保留在车次历史';
|
||
|
||
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='车次成本不可变更正历史';
|
||
|
||
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='运输车次操作历史';
|
||
|
||
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 '处理完成时间',
|
||
PRIMARY KEY (event_id),
|
||
UNIQUE KEY uk_ll_wallet_command_result (command_event_id),
|
||
KEY idx_ll_wallet_event_status (status,received_at)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='跨区客户资金结果幂等收件箱';
|
||
|
||
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='仓储转运系统箱唛预报';
|
||
|
||
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 '分配箱数',
|
||
sku_code varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '本次来源分配的实际SKU快照',
|
||
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),
|
||
KEY idx_ll_wh_transfer_allocation_position (transfer_order_id,inventory_position_id),
|
||
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='转仓单来源库存分配记录';
|
||
|
||
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='转仓货物冻结明细';
|
||
|
||
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目的仓编码',
|
||
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 '私人仓联系电话',
|
||
delivery_address varchar(1000) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '提货地址或中转仓收货地址',
|
||
pickup_contact_name varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '提货联系人',
|
||
pickup_contact_phone varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '提货联系电话',
|
||
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 '业务状态',
|
||
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 '审核时间',
|
||
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 '客户确认测量时间',
|
||
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 '目的地绑定请求哈希',
|
||
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='客户转仓单';
|
||
|
||
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 '托序号',
|
||
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',
|
||
warehouse_location_code varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '真实库位码',
|
||
warehouse_resource_lock_id bigint DEFAULT NULL COMMENT '生成后的仓储资源锁ID',
|
||
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',
|
||
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 '整单打托完成时间',
|
||
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实测打托事实';
|
||
|
||
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箱数回填';
|
||
|
||
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测量现场照片引用';
|
||
|
||
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='转仓来源仓位的目标库存收货记录';
|
||
|
||
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='转运逐来源收货原请求与共享目标资源占用命令';
|
||
|
||
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 '备注',
|
||
source_allocation_id bigint DEFAULT NULL COMMENT '已有库存转运的原始来源分配ID',
|
||
relabel_item_id bigint DEFAULT NULL COMMENT '本票关联换标明细ID',
|
||
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='仓储转运换标预绑定明细';
|
||
|
||
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='转仓来源历史订单绑定';
|
||
|
||
-- 服务 schema:baiyue_lastlag_warehouse
|
||
CREATE TABLE 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),
|
||
source_items_json JSON NULL COMMENT '精确来源箱和SKU锁定数量',
|
||
result_marks_json JSON NULL COMMENT '完成生成或并入的目标箱唛',
|
||
request_hash VARCHAR(64) NULL COMMENT '创建载荷摘要',
|
||
completion_hash VARCHAR(64) NULL COMMENT '完成载荷摘要',
|
||
result_labels_json JSON NULL COMMENT '计划完工标签快照'
|
||
) ENGINE=InnoDB COMMENT='退货合箱计划';
|
||
|
||
CREATE TABLE 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原始退货单不可变追溯';
|
||
|
||
CREATE DATABASE IF NOT EXISTS baiyue_lastlag_warehouse DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||
USE baiyue_lastlag_warehouse;
|
||
|
||
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 '库位类型',
|
||
shared_overflow tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否系统共享溢出库位(A0)',
|
||
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 '乐观锁版本号',
|
||
PRIMARY KEY (id),
|
||
UNIQUE KEY uk_location_code (customer_id,warehouse_id,location_code,deleted),
|
||
KEY idx_location_query (customer_id,warehouse_id,status,deleted)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='仓库库位表:按租户和仓库维护库位及承重信息';
|
||
|
||
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 '乐观锁版本号',
|
||
PRIMARY KEY (id),
|
||
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='仓库托盘表:按租户和仓库维护托盘、容量、单价及状态';
|
||
|
||
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 '更新时间',
|
||
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)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='柜级入库计划批量托盘预留与确认记录';
|
||
|
||
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 '更新时间',
|
||
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),
|
||
KEY idx_wh_pallet_batch_item_pallet (pallet_id),
|
||
KEY idx_wh_pallet_batch_item_batch (batch_id,status)
|
||
) 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),
|
||
KEY idx_wh_pallet_operation_pallet (warehouse_id,pallet_id,created_at)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='实物托盘状态幂等变更与补偿记录';
|
||
|
||
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='仓储资源锁定记录';
|
||
|
||
-- 必要系统种子;不写入测试客户、演示订单、示例供应商、快递、托盘或库位。
|
||
|
||
USE baiyue_lastleg;
|
||
|
||
|
||
-- assert_relabel_transfer_latest_schema_ready: 贴标申请与仓储转运最新表结构已完整部署。
|
||
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='本服务业务事件逐次投递审计';
|
||
|
||
CREATE TABLE ll_return_carton_count_session (
|
||
operator_id VARCHAR(128) NOT NULL COMMENT '平台PDA操作员标识',
|
||
warehouse_id VARCHAR(128) NOT NULL COMMENT '认领时绑定海外仓标识',
|
||
receipt_id BIGINT NULL COMMENT '正在清点的签收批次,完成后释放为NULL',
|
||
started_at DATETIME(3) NULL COMMENT '本次开始清点时间',
|
||
created_at DATETIME(3) NOT NULL COMMENT '会话创建时间',
|
||
updated_at DATETIME(3) NOT NULL COMMENT '会话更新时间',
|
||
PRIMARY KEY(operator_id),
|
||
UNIQUE KEY uk_ll_return_count_session_receipt(receipt_id)
|
||
) ENGINE=InnoDB COMMENT='退货箱内清点单人单任务持久会话';
|
||
|
||
CREATE TABLE ll_procurement_wallet_attempt (
|
||
id BIGINT NOT NULL COMMENT '请求尝试ID',
|
||
order_id BIGINT NOT NULL COMMENT '采购订单ID',
|
||
customer_id VARCHAR(128) NOT NULL COMMENT '客户隔离键',
|
||
fee_id BIGINT NOT NULL COMMENT '不可变费用版本ID',
|
||
attempt_no BIGINT NOT NULL COMMENT '费用版本内请求序号',
|
||
operation VARCHAR(32) NOT NULL COMMENT '资金操作:FREEZE冻结、SETTLE结算、SETTLE_ACTUAL实际结算、RELEASE释放、REFUND退款',
|
||
business_no VARCHAR(128) NOT NULL COMMENT 'Finance资金业务号',
|
||
amount DECIMAL(20,2) NULL COMMENT '请求金额;全额结算或释放可空',
|
||
command_event_id VARCHAR(64) NOT NULL COMMENT '资金指令事件唯一引用',
|
||
status VARCHAR(16) NOT NULL COMMENT '资金请求结果:PENDING未决、SUCCEEDED成功、FAILED明确失败',
|
||
result_hash CHAR(64) NULL COMMENT '原业务回执摘要',
|
||
wallet_hold_id VARCHAR(64) NULL COMMENT 'Finance冻结引用',
|
||
wallet_ledger_id VARCHAR(64) NULL COMMENT 'Finance处理流水引用',
|
||
error_code VARCHAR(64) NULL COMMENT '业务失败码',
|
||
error_message VARCHAR(500) NULL COMMENT '内部失败诊断,不直接对客展示',
|
||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '请求时间',
|
||
completed_at DATETIME(3) NULL COMMENT '最终结果时间',
|
||
PRIMARY KEY(id), UNIQUE KEY uk_procurement_attempt_event(command_event_id),
|
||
UNIQUE KEY uk_procurement_attempt_number(fee_id,attempt_no),
|
||
KEY idx_procurement_attempt_order(customer_id,order_id,status),
|
||
CONSTRAINT chk_procurement_attempt_status CHECK(status IN('PENDING','SUCCEEDED','FAILED'))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购费用资金命令尝试与不可变结果';
|
||
|
||
-- 采购节点事实与操作幂等;不补写历史订单的购买、授权或收货事实。
|
||
CREATE TABLE ll_procurement_flow (
|
||
order_id BIGINT NOT NULL COMMENT '采购订单ID,一单一个履约批次',
|
||
customer_id VARCHAR(128) NOT NULL COMMENT '客户隔离键',
|
||
purchased_at DATETIME(3) NULL COMMENT '真实购买时间',
|
||
purchased_product_name VARCHAR(255) NULL COMMENT '实际购买商品',
|
||
purchased_specification VARCHAR(500) NULL COMMENT '实际购买规格',
|
||
purchased_quantity BIGINT NULL COMMENT '实际购买件数',
|
||
purchase_amount DECIMAL(20,2) NULL COMMENT '供应商实付原币金额',
|
||
purchase_currency CHAR(3) NULL COMMENT '供应商实付原币CNY或USD',
|
||
purchase_voucher_id BIGINT NULL COMMENT '购买凭证引用',
|
||
purchase_issue VARCHAR(500) NULL COMMENT '购买未核定或异常说明',
|
||
purchase_confirmed_at DATETIME(3) NULL COMMENT '货款核定时间,不代表扣费成功',
|
||
actual_warehouse_id BIGINT NULL COMMENT '首次实际收货冻结的仓库ID',
|
||
actual_warehouse_code VARCHAR(128) NULL COMMENT '实际收货仓编码快照',
|
||
actual_warehouse_name VARCHAR(255) NULL COMMENT '实际收货仓名称快照',
|
||
overseas_received_at DATETIME(3) NULL COMMENT '海外整批收货完成时间',
|
||
packing_version INT NULL COMMENT '当前确认装箱清单版本',
|
||
overseas_shipped_at DATETIME(3) NULL COMMENT '国际段整批实际交寄时间',
|
||
domestic_received_at DATETIME(3) NULL COMMENT '国内整批收货完成时间',
|
||
charges_confirmed_at DATETIME(3) NULL COMMENT '国内整单费用核定时间',
|
||
customer_shipped_at DATETIME(3) NULL COMMENT '国内寄客户实际交寄时间',
|
||
domestic_receiver_name VARCHAR(128) NULL COMMENT '国际段国内收件人',
|
||
domestic_receiver_phone VARCHAR(64) NULL COMMENT '国际段国内收件电话',
|
||
domestic_receiver_address VARCHAR(1000) NULL COMMENT '国际段国内接收地址',
|
||
cancelled_at DATETIME(3) NULL COMMENT '购买前取消时间',
|
||
closed_at DATETIME(3) NULL COMMENT '异常关闭时间',
|
||
control_reason VARCHAR(1000) 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(order_id), KEY idx_procurement_flow_customer(customer_id,order_id),
|
||
CONSTRAINT chk_procurement_purchase_quantity CHECK(purchased_quantity IS NULL OR purchased_quantity>0),
|
||
CONSTRAINT chk_procurement_purchase_amount CHECK(purchase_amount IS NULL OR purchase_amount>=0)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购单一批次履约事实';
|
||
|
||
CREATE TABLE ll_procurement_command (
|
||
id BIGINT NOT NULL COMMENT '操作记录ID', order_id BIGINT NOT NULL COMMENT '采购订单ID',
|
||
customer_id VARCHAR(128) NOT NULL COMMENT '客户隔离键', action VARCHAR(48) NOT NULL COMMENT '采购节点动作',
|
||
idempotency_key VARCHAR(128) NOT NULL COMMENT '操作幂等键', request_hash CHAR(64) NOT NULL COMMENT '请求摘要',
|
||
operator_id VARCHAR(128) NOT NULL COMMENT '执行人', reason VARCHAR(1000) NOT NULL COMMENT '操作依据',
|
||
detail_json JSON NOT NULL COMMENT '内部操作及更正依据快照,不直接对客展示',
|
||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '执行时间',
|
||
PRIMARY KEY(id), UNIQUE KEY uk_procurement_command(order_id,action,idempotency_key),
|
||
KEY idx_procurement_command_customer(customer_id,order_id,created_at)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购节点幂等与不可变审计';
|
||
|
||
CREATE TABLE ll_procurement_budget_authorization (
|
||
id BIGINT NOT NULL COMMENT '预算授权ID', order_id BIGINT NOT NULL COMMENT '采购订单ID',
|
||
customer_id VARCHAR(128) NOT NULL COMMENT '客户隔离键',
|
||
previous_amount DECIMAL(20,2) NULL COMMENT '原货款预算总上限;未授权保持空', previous_currency CHAR(3) NOT NULL COMMENT '原预算币种',
|
||
authorized_amount DECIMAL(20,2) NOT NULL COMMENT '客户授权的新货款总上限', currency CHAR(3) NOT NULL COMMENT '客户授权币种',
|
||
voucher_file_id BIGINT NOT NULL COMMENT '客户确认书面或聊天凭证', reason VARCHAR(1000) NOT NULL COMMENT '授权依据',
|
||
reviewed_by VARCHAR(128) NOT NULL COMMENT '核验人员', reviewed_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '核验时间',
|
||
PRIMARY KEY(id), KEY idx_procurement_budget_order(customer_id,order_id,id),
|
||
CONSTRAINT chk_procurement_budget_amount CHECK(authorized_amount>=0 AND previous_amount>=0),
|
||
CONSTRAINT chk_procurement_budget_currency CHECK(currency IN('CNY','USD') AND previous_currency IN('CNY','USD'))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购货款预算授权核验历史';
|
||
|
||
-- 采购实收、差异、装箱和两段整批发运事实。不产生WMS库存流水,不回填历史采购数量。
|
||
CREATE TABLE ll_procurement_receipt (
|
||
id BIGINT NOT NULL COMMENT '实收明细ID', order_id BIGINT NOT NULL COMMENT '采购订单ID', customer_id VARCHAR(128) NOT NULL COMMENT '客户隔离键',
|
||
receipt_no VARCHAR(64) NOT NULL COMMENT '采购收货业务编号', leg VARCHAR(16) NOT NULL COMMENT 'OVERSEAS海外或DOMESTIC国内',
|
||
source_carton_id BIGINT NULL COMMENT '国内实收关联原国际交寄箱,海外为空', warehouse_id BIGINT NULL COMMENT '海外实际收货仓',
|
||
good_quantity BIGINT NOT NULL COMMENT '可发合格件数', damaged_quantity BIGINT NOT NULL COMMENT '破损待处置件数', extra_quantity BIGINT NOT NULL COMMENT '多到件数,不增加可发数量',
|
||
received_at DATETIME(3) NOT NULL COMMENT '实际收货时间', active TINYINT(1) NOT NULL DEFAULT 1 COMMENT '当前有效实收事实',
|
||
supersedes_id BIGINT NULL COMMENT '受控更正所替代的原实收记录', created_by VARCHAR(128) NOT NULL COMMENT '登记人员',
|
||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '登记时间',
|
||
PRIMARY KEY(id), UNIQUE KEY uk_procurement_receipt_no(receipt_no), KEY idx_procurement_receipt_source(order_id,leg,source_carton_id,active),
|
||
CONSTRAINT chk_procurement_receipt_quantity CHECK(good_quantity>=0 AND damaged_quantity>=0 AND extra_quantity>=0 AND good_quantity+damaged_quantity+extra_quantity>0),
|
||
CONSTRAINT chk_procurement_receipt_leg CHECK((leg='OVERSEAS' AND source_carton_id IS NULL) OR (leg='DOMESTIC' AND source_carton_id IS NOT NULL))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购分次实收与受控更正事实';
|
||
|
||
CREATE TABLE ll_procurement_disposition (
|
||
id BIGINT NOT NULL COMMENT '差异处理ID', order_id BIGINT NOT NULL COMMENT '采购订单ID', customer_id VARCHAR(128) NOT NULL COMMENT '客户隔离键',
|
||
leg VARCHAR(16) NOT NULL COMMENT 'OVERSEAS海外或DOMESTIC国内', source_carton_id BIGINT NULL COMMENT '国内原交寄箱来源',
|
||
receipt_id BIGINT NULL COMMENT '破损或多货对应实收记录,短少为空', kind VARCHAR(24) NOT NULL COMMENT 'SHORTAGE短少、DAMAGED破损、EXTRA多货',
|
||
quantity BIGINT NOT NULL COMMENT '已批准处置件数', decision VARCHAR(32) NOT NULL COMMENT 'ACCEPT_SHORTAGE确认短少、DISPOSE_DAMAGED拒收或处置、RETURN_EXTRA退回多货',
|
||
active TINYINT(1) NOT NULL DEFAULT 1 COMMENT '当前有效处置;撤销只改变有效性并保留原事实',
|
||
voucher_file_id BIGINT NOT NULL COMMENT '本单客户确认或实际处置凭证', reason VARCHAR(1000) NOT NULL COMMENT '处置依据',
|
||
created_by VARCHAR(128) NOT NULL COMMENT '采购管理人员', created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '确认时间',
|
||
PRIMARY KEY(id), KEY idx_procurement_disposition_source(order_id,leg,source_carton_id,receipt_id,kind),
|
||
CONSTRAINT chk_procurement_disposition_quantity CHECK(quantity>0)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购单内差异处置,不自动退款';
|
||
|
||
CREATE TABLE ll_procurement_manifest (
|
||
id BIGINT NOT NULL COMMENT '装箱清单ID', order_id BIGINT NOT NULL COMMENT '采购订单ID', customer_id VARCHAR(128) NOT NULL COMMENT '客户隔离键',
|
||
version INT NOT NULL COMMENT '订单内装箱版本', status VARCHAR(16) NOT NULL COMMENT 'DRAFT草稿、CONFIRMED已确认、SUPERSEDED已替代',
|
||
confirmed_at DATETIME(3) NULL COMMENT '确认时间', created_by VARCHAR(128) NOT NULL COMMENT '制单人',
|
||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '版本保存时间',
|
||
PRIMARY KEY(id), UNIQUE KEY uk_procurement_manifest_version(order_id,version),
|
||
CONSTRAINT chk_procurement_manifest_status CHECK(status IN('DRAFT','CONFIRMED','SUPERSEDED'))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购装箱清单不可变版本';
|
||
|
||
CREATE TABLE ll_procurement_carton (
|
||
id BIGINT NOT NULL COMMENT '版本内箱记录ID', order_id BIGINT NOT NULL COMMENT '采购订单ID', manifest_id BIGINT NOT NULL COMMENT '装箱清单版本',
|
||
carton_no VARCHAR(64) NOT NULL COMMENT '采购订单内业务箱号', length_cm DECIMAL(12,2) NOT NULL COMMENT '外箱长厘米',
|
||
width_cm DECIMAL(12,2) NOT NULL COMMENT '外箱宽厘米', height_cm DECIMAL(12,2) NOT NULL COMMENT '外箱高厘米',
|
||
gross_weight_kg DECIMAL(12,3) NOT NULL COMMENT '封箱毛重千克', quantity BIGINT NOT NULL COMMENT '本箱合格商品总件数',
|
||
PRIMARY KEY(id), UNIQUE KEY uk_procurement_carton_version(manifest_id,carton_no), KEY idx_procurement_carton_order(order_id,manifest_id),
|
||
CONSTRAINT chk_procurement_carton_measurement CHECK(length_cm>0 AND width_cm>0 AND height_cm>0 AND gross_weight_kg>0 AND quantity>0)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购版本化逐箱实测与件数';
|
||
|
||
CREATE TABLE ll_procurement_carton_source (
|
||
carton_id BIGINT NOT NULL COMMENT '版本内箱ID', receipt_id BIGINT NOT NULL COMMENT '海外实收明细来源', quantity BIGINT NOT NULL COMMENT '从该实收装入本箱的件数',
|
||
PRIMARY KEY(carton_id,receipt_id), KEY idx_procurement_carton_receipt(receipt_id), CONSTRAINT chk_procurement_carton_source_quantity CHECK(quantity>0)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购箱内货物的实收来源与数量';
|
||
|
||
CREATE TABLE ll_procurement_shipment (
|
||
id BIGINT NOT NULL COMMENT '采购交寄ID', order_id BIGINT NOT NULL COMMENT '采购订单ID', customer_id VARCHAR(128) NOT NULL COMMENT '客户隔离键',
|
||
shipment_no VARCHAR(64) NOT NULL COMMENT '交寄业务编号', leg VARCHAR(16) NOT NULL COMMENT 'OVERSEAS国际交寄或DOMESTIC寄客户',
|
||
manifest_id BIGINT NOT NULL COMMENT '原海外装箱清单版本', shipped_at DATETIME(3) NOT NULL COMMENT '整批真实交承运方时间',
|
||
address_snapshot JSON NOT NULL COMMENT '本段交寄时的收寄姓名电话地址快照', created_by VARCHAR(128) NOT NULL COMMENT '交寄确认人',
|
||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '确认时间',
|
||
PRIMARY KEY(id), UNIQUE KEY uk_procurement_shipment_leg(order_id,leg), UNIQUE KEY uk_procurement_shipment_no(shipment_no),
|
||
CONSTRAINT chk_procurement_shipment_leg CHECK(leg IN('OVERSEAS','DOMESTIC'))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购两段各一次整批真实交寄';
|
||
|
||
CREATE TABLE ll_procurement_shipment_item (
|
||
shipment_id BIGINT NOT NULL COMMENT '采购交寄ID', carton_id BIGINT NOT NULL COMMENT '原海外装箱版本内箱ID', quantity BIGINT NOT NULL COMMENT '本次实际交寄件数',
|
||
carrier VARCHAR(128) NOT NULL COMMENT '承运商快照', tracking_no VARCHAR(128) NOT NULL COMMENT '运单号快照',
|
||
label_snapshot JSON NOT NULL COMMENT '当次箱规、面单及货物来源快照',
|
||
PRIMARY KEY(shipment_id,carton_id), CONSTRAINT chk_procurement_shipment_item_quantity CHECK(quantity>0)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购整批交寄逐箱事实';
|
||
|
||
USE baiyue_lastleg;
|
||
-- 采购面单、逐箱贴单、预估核对与国内一对一换包装;不重建历史发运事实。
|
||
CREATE TABLE ll_procurement_label_set (
|
||
id BIGINT NOT NULL COMMENT '面单批版本ID', order_id BIGINT NOT NULL COMMENT '采购订单ID', customer_id VARCHAR(128) NOT NULL COMMENT '客户隔离键',
|
||
leg VARCHAR(16) NOT NULL COMMENT 'OVERSEAS国际段或DOMESTIC寄客户段', version INT NOT NULL COMMENT '订单段内面单版本',
|
||
manifest_id BIGINT NOT NULL COMMENT '原海外确认装箱版本', cargo_hash CHAR(64) NOT NULL COMMENT '箱规及有效货物来源摘要',
|
||
sender_snapshot JSON NOT NULL COMMENT '寄件人姓名电话地址快照', receiver_snapshot JSON NOT NULL COMMENT '收件人姓名电话地址快照',
|
||
created_by VARCHAR(128) NOT NULL COMMENT '制单操作人', created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '上传确认时间',
|
||
PRIMARY KEY(id), UNIQUE KEY uk_procurement_label_version(order_id,leg,version),
|
||
CONSTRAINT chk_procurement_label_leg CHECK(leg IN('OVERSEAS','DOMESTIC'))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购两段面单不可变版本和地址快照';
|
||
|
||
CREATE TABLE ll_procurement_label_item (
|
||
label_set_id BIGINT NOT NULL COMMENT '面单批版本ID', carton_id BIGINT NOT NULL COMMENT '原海外清单箱ID',
|
||
file_id BIGINT NOT NULL COMMENT '本采购订单面单文件', page_no INT NOT NULL COMMENT '该箱对应文件页码,从1开始',
|
||
carrier VARCHAR(128) NOT NULL COMMENT '承运商', tracking_no VARCHAR(128) NOT NULL COMMENT '箱主或子运单号',
|
||
applied_at DATETIME(3) NULL COMMENT '真实贴单时间', applied_by VARCHAR(128) NULL COMMENT '贴单确认人',
|
||
PRIMARY KEY(label_set_id,carton_id), CONSTRAINT chk_procurement_label_page CHECK(page_no>0)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购逐箱文件页关联及贴单事实';
|
||
|
||
CREATE TABLE ll_procurement_estimate_review (
|
||
id BIGINT NOT NULL COMMENT '预估核对ID', order_id BIGINT NOT NULL COMMENT '采购订单ID', label_set_id BIGINT NOT NULL COMMENT '已核对国际面单版本',
|
||
fee_id BIGINT NOT NULL COMMENT '唯一有效预估费用版本', reviewed_by VARCHAR(128) NOT NULL COMMENT '核价人员',
|
||
reviewed_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '核对时间',
|
||
PRIMARY KEY(id), UNIQUE KEY uk_procurement_estimate_review(label_set_id,fee_id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='面单清单与预估冻结的显式核对关联';
|
||
|
||
CREATE TABLE ll_procurement_repack (
|
||
id BIGINT NOT NULL COMMENT '换包装版本ID', order_id BIGINT NOT NULL COMMENT '采购订单ID', carton_id BIGINT NOT NULL COMMENT '原国际交寄箱ID,保持一对一来源',
|
||
length_cm DECIMAL(12,2) NOT NULL COMMENT '新外箱长厘米', width_cm DECIMAL(12,2) NOT NULL COMMENT '新外箱宽厘米',
|
||
height_cm DECIMAL(12,2) NOT NULL COMMENT '新外箱高厘米', gross_weight_kg DECIMAL(12,3) NOT NULL COMMENT '新封箱毛重千克',
|
||
voucher_file_id BIGINT NOT NULL COMMENT '本单换包装证据', reason VARCHAR(1000) NOT NULL COMMENT '换包装依据',
|
||
created_by VARCHAR(128) NOT NULL COMMENT '国内作业人员', created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '登记时间',
|
||
PRIMARY KEY(id), KEY idx_procurement_repack_carton(order_id,carton_id,id),
|
||
CONSTRAINT chk_procurement_repack_measurement CHECK(length_cm>0 AND width_cm>0 AND height_cm>0 AND gross_weight_kg>0)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购国内原箱一对一换包装不可变历史';
|
||
|
||
USE baiyue_lastleg;
|
||
-- 费用链目标更正快照与关联;资金流水仍唯一归Finance,不回填旧费用。
|
||
CREATE TABLE ll_procurement_fee_correction (
|
||
id BIGINT NOT NULL COMMENT '费用链更正ID', order_id BIGINT NOT NULL COMMENT '采购订单ID', customer_id VARCHAR(128) NOT NULL COMMENT '客户隔离键',
|
||
correction_no VARCHAR(64) NOT NULL COMMENT '财务更正业务号', root_fee_id BIGINT NOT NULL COMMENT '原实际费用链根',
|
||
idempotency_key VARCHAR(128) NOT NULL COMMENT '本单更正请求幂等键', request_hash CHAR(64) NOT NULL COMMENT '更正目标及凭证请求摘要',
|
||
target_original_amount DECIMAL(20,2) NOT NULL COMMENT '本次正确原币总额', original_currency CHAR(3) NOT NULL COMMENT '沿用原费用币种',
|
||
exchange_rate DECIMAL(20,6) NOT NULL COMMENT '沿用原费用汇率快照', exchange_rate_month CHAR(7) NOT NULL COMMENT '原汇率月份,不取本次操作月份',
|
||
target_amount DECIMAL(20,2) NOT NULL COMMENT '正确总额折算CNY', previous_net_amount DECIMAL(20,2) NOT NULL COMMENT '确认前整链净实扣CNY',
|
||
difference_amount DECIMAL(20,2) NOT NULL COMMENT 'CNY正差额追加、负差额退款、零差额仅留核对记录',
|
||
voucher_file_id BIGINT NOT NULL COMMENT '本订单财务更正凭证', reason VARCHAR(500) NOT NULL COMMENT '更正依据',
|
||
created_by VARCHAR(128) NOT NULL COMMENT '授权财务操作人', created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '确认时间',
|
||
PRIMARY KEY(id), UNIQUE KEY uk_procurement_correction_no(correction_no), UNIQUE KEY uk_procurement_correction_request(order_id,idempotency_key),
|
||
KEY idx_procurement_correction_root(order_id,root_fee_id,id),
|
||
CONSTRAINT chk_procurement_correction_amount CHECK(target_original_amount>=0 AND target_amount>=0 AND previous_net_amount>=0 AND exchange_rate>0)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购费用链更正目标与原汇率快照';
|
||
|
||
CREATE TABLE ll_procurement_fee_correction_item (
|
||
correction_id BIGINT NOT NULL COMMENT '本次费用链更正ID', fee_id BIGINT NOT NULL COMMENT '本次产生的独立正差额或退款费用ID',
|
||
PRIMARY KEY(correction_id,fee_id), UNIQUE KEY uk_procurement_correction_fee(fee_id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购费用目标更正与逐笔资金事实关联';
|
||
|
||
USE baiyue_lastleg;
|
||
-- 单采购订单内的更正说明、阻断异常与关闭证据。不生成WMS库存或退货运输任务。
|
||
CREATE TABLE ll_procurement_control_note (
|
||
id BIGINT NOT NULL COMMENT '采购更正说明ID', order_id BIGINT NOT NULL COMMENT '采购订单ID', customer_id VARCHAR(128) NOT NULL COMMENT '客户隔离键',
|
||
note_no VARCHAR(64) NOT NULL COMMENT '更正说明业务号', target_type VARCHAR(24) NOT NULL COMMENT '购买、仓库、实收或交寄事实类型',
|
||
target_id BIGINT NULL COMMENT '本单事实对象引用,购买为空', blocking TINYINT(1) NOT NULL COMMENT '是否阻断后续计划履约',
|
||
voucher_file_id BIGINT NOT NULL COMMENT '本单内部事实更正凭证', reason VARCHAR(1000) NOT NULL COMMENT '内部更正说明',
|
||
client_summary VARCHAR(500) NULL COMMENT '人工确认的对客摘要,不复制内部原始内容',
|
||
original_value_json JSON NULL COMMENT '服务端记录的原事实快照', corrected_value_json JSON NULL COMMENT '服务端记录的更正事实快照',
|
||
created_by VARCHAR(128) NOT NULL COMMENT '采购管理操作人', created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '登记时间',
|
||
resolved_by VARCHAR(128) NULL COMMENT '处理确认人', resolved_at DATETIME(3) NULL COMMENT '阻断解除时间',
|
||
resolution_reason VARCHAR(1000) NULL COMMENT '内部处理结果', resolution_voucher_id BIGINT NULL COMMENT '本单处理凭证',
|
||
PRIMARY KEY(id), UNIQUE KEY uk_procurement_note_no(note_no), KEY idx_procurement_note_block(order_id,blocking,resolved_at)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购不可覆盖事实的更正说明及阻断异常';
|
||
|
||
CREATE TABLE ll_procurement_closure (
|
||
id BIGINT NOT NULL COMMENT '采购异常关闭ID', order_id BIGINT NOT NULL COMMENT '采购订单ID', customer_id VARCHAR(128) NOT NULL COMMENT '客户隔离键',
|
||
closure_no VARCHAR(64) NOT NULL COMMENT '异常关闭业务号', customer_voucher_file_id BIGINT NOT NULL COMMENT '客户同意停止履约凭证',
|
||
financial_conclusion VARCHAR(1000) NOT NULL COMMENT '已知费用及后续无需收费的处理结论,不改变资金事实',
|
||
reason VARCHAR(1000) NOT NULL COMMENT '内部关闭原因', client_summary VARCHAR(500) NOT NULL COMMENT '人工确认的对客关闭摘要',
|
||
created_by VARCHAR(128) NOT NULL COMMENT '采购管理确认人', created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '关闭确认时间',
|
||
PRIMARY KEY(id), UNIQUE KEY uk_procurement_closure_order(order_id), UNIQUE KEY uk_procurement_closure_no(closure_no)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='采购实物资金收口后的异常关闭事实';
|
||
|
||
CREATE TABLE ll_procurement_closure_item (
|
||
id BIGINT NOT NULL COMMENT '关闭货物处置ID', closure_id BIGINT NOT NULL COMMENT '采购关闭ID',
|
||
source_kind VARCHAR(32) NOT NULL COMMENT '购买未达、在途未达、合格、破损或多货来源', source_id BIGINT NULL COMMENT '原实收或国际交寄箱,购买未达为空',
|
||
quantity BIGINT NOT NULL COMMENT '本来源最终明确去向件数', decision VARCHAR(40) NOT NULL COMMENT '供应商保管、退还、报失、客户授权保管或处置',
|
||
destination VARCHAR(500) NOT NULL COMMENT '实际去向及接收方说明', voucher_file_id BIGINT NOT NULL COMMENT '本单实物处置证明',
|
||
PRIMARY KEY(id), KEY idx_procurement_closure_source(closure_id,source_kind,source_id),
|
||
CONSTRAINT chk_procurement_closure_quantity CHECK(quantity>0)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='异常关闭逐来源剩余货物最终去向,不产生新发运';
|
||
|
||
USE baiyue_lastleg;
|
||
|
||
-- 平台自营领星统计:独立事实与不可变发布版本;仅空库初始化,不自动执行。
|
||
CREATE TABLE ll_selfop_outbound_discovery_scope (
|
||
id BIGINT NOT NULL COMMENT '应用生成的记录标识',
|
||
created_at DATETIME(3) NOT NULL COMMENT 'UTC创建时间',
|
||
updated_at DATETIME(3) NOT NULL COMMENT 'UTC更新时间',
|
||
source_account VARCHAR(64) NOT NULL COMMENT '受控来源账号别名,不保存密钥',
|
||
catalog_from_utc DATETIME(3) NULL COMMENT '账号完整目录连续覆盖UTC下界,不等同销量覆盖',
|
||
catalog_until_utc DATETIME(3) NULL COMMENT '账号完整目录连续覆盖UTC上界,不等同销量覆盖',
|
||
next_sequence BIGINT NOT NULL DEFAULT 1 COMMENT '新发现任务的单调调度序号;重试沿用,只安排任务,不判断对象内容的新旧',
|
||
next_observation_sequence BIGINT NOT NULL DEFAULT 1 COMMENT '每次实际出库详情请求前分配的单调采集代次;与 task 调度序号独立,重试请求也分配新代次',
|
||
active_task_id BIGINT NULL COMMENT '当前共享发现/详情补齐任务',
|
||
lease_owner VARCHAR(128) NULL COMMENT '账号发现执行者',
|
||
lease_until_utc DATETIME(3) NULL COMMENT '账号发现租约到期时刻',
|
||
fence_token BIGINT NOT NULL DEFAULT 0 COMMENT '防止过期发现进程继续写共享暂存或派发任务',
|
||
request_budget INT NOT NULL COMMENT '一次调度允许的目录、详情请求总预算,必须为正',
|
||
time_budget_seconds INT NOT NULL COMMENT '一次调度允许占用的执行时长,必须为正',
|
||
min_request_interval_ms INT NOT NULL COMMENT '同账号请求最小间隔,按已核准配额配置',
|
||
api_budget_json JSON NULL COMMENT '账号所有采集族共用的预算、统计日、保守预留及确认消耗、尝试许可和独占交接依据',
|
||
api_cooldown_until_utc DATETIME(3) NULL COMMENT '账号全部真实请求共用冷却UTC截止,重启与跨日不清除',
|
||
api_pause_reason VARCHAR(64) NULL COMMENT '账号停止或等待的固定原因码,不保存供应商原始错误或凭据',
|
||
PRIMARY KEY (id),
|
||
UNIQUE KEY uk_selfop_discovery_account (source_account),
|
||
CONSTRAINT chk_selfop_outbound_discovery_scope CHECK (request_budget > 0 AND time_budget_seconds > 0 AND min_request_interval_ms > 0 AND fence_token >= 0 AND next_sequence > 0 AND next_observation_sequence > 0)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='账号共享出库目录与详情发现协调作用域';
|
||
|
||
CREATE TABLE ll_selfop_sync_scope (
|
||
id BIGINT NOT NULL COMMENT '应用生成的记录标识',
|
||
created_at DATETIME(3) NOT NULL COMMENT 'UTC创建时间',
|
||
updated_at DATETIME(3) NOT NULL COMMENT 'UTC更新时间',
|
||
source_account VARCHAR(64) NOT NULL COMMENT '受控来源账号别名,不保存密钥',
|
||
warehouse_code VARCHAR(64) NOT NULL COMMENT '来源仓库原始编码,按仓独立统计',
|
||
data_family VARCHAR(16) NOT NULL COMMENT 'OUTBOUND 或 INVENTORY;按账号+仓库+任务族互斥',
|
||
scope_json JSON NOT NULL COMMENT '本仓范围规则,customerMode=ALL_AUTHORIZED,库存为全部品质;当前账号全部授权货主均自营,不将当天出现的货主列表当白名单',
|
||
scope_hash CHAR(64) NOT NULL COMMENT '仓库、货主范围规则、品质、时区及单位口径的规范化摘要;不包含当天观测到的客户/SKU 集合',
|
||
business_timezone VARCHAR(64) NOT NULL COMMENT '本仓报表及调度时区,初始建议值为 Asia/Shanghai,各仓独立核准',
|
||
source_timezone VARCHAR(64) NULL COMMENT '本仓已核准的出库源时间时区',
|
||
schedule_cron VARCHAR(128) NOT NULL COMMENT '本仓、本任务族的调度表达式,按 business_timezone 执行',
|
||
stale_after_seconds INT NOT NULL COMMENT '本仓、本任务族数据过期阈值,必须为正;库存初始可采用 26 小时,后续按仓调整',
|
||
warehouse_policy_ref VARCHAR(128) NULL COMMENT '未来按仓告警/补货策略的稳定引用;一期为空,不建告警规则表',
|
||
initial_from_utc DATETIME(3) NULL COMMENT '首采固定UTC下界,按本仓业务时区减一个月',
|
||
initial_until_utc DATETIME(3) NULL COMMENT '首采固定UTC截止,重试不重新取当前时间',
|
||
discovery_from_utc DATETIME(3) NULL COMMENT '本仓已发布的连续销量覆盖UTC下界',
|
||
discovery_until_utc DATETIME(3) NULL COMMENT '本仓已发布的连续销量覆盖UTC上界,不含端点',
|
||
fact_revision BIGINT NOT NULL DEFAULT 0 COMMENT '出库事实归并修订号;内容实际变化才增加',
|
||
published_fact_revision BIGINT NOT NULL DEFAULT 0 COMMENT '本仓最后已发布销量版所使用的事实修订号',
|
||
rebuild_required TINYINT NOT NULL DEFAULT 0 COMMENT '事实变化待重建标记;跨仓修订同时置旧、新仓为 1',
|
||
invalidated_at_utc DATETIME(3) NULL COMMENT '最近一次因事实修订使当前版待重建的时刻',
|
||
published_run_id BIGINT NULL COMMENT '唯一对外可见版本,指向本任务族已发布执行批次',
|
||
lease_owner VARCHAR(128) NULL COMMENT '当前执行者令牌,不使用仅进程内锁',
|
||
lease_until_utc DATETIME(3) NULL COMMENT '租约到期时刻',
|
||
fence_token BIGINT NOT NULL DEFAULT 0 COMMENT '每次取得租约递增,事实提交和发布均校验',
|
||
known_order_cursor_id BIGINT NULL COMMENT '本仓已可靠处理的稳定订单内部标识游标',
|
||
known_order_round_max_id BIGINT NULL COMMENT '本轮已知单复查固定最大内部标识',
|
||
known_order_round_started_at_utc DATETIME(3) NULL COMMENT '本仓已知单复查轮次开始UTC时间',
|
||
known_order_round_finished_at_utc DATETIME(3) NULL COMMENT '本仓已知单完整轮转完成UTC时间',
|
||
history_round_from_utc DATETIME(3) NULL COMMENT '本仓历史核对固定UTC下界',
|
||
history_round_until_utc DATETIME(3) NULL COMMENT '本仓历史核对固定UTC上界',
|
||
history_slice_cursor_utc DATETIME(3) NULL COMMENT '本仓下一待核对历史切片UTC位置',
|
||
history_round_finished_at_utc DATETIME(3) NULL COMMENT '上一轮历史时间片全部完成时刻',
|
||
review_request_budget INT NOT NULL COMMENT '本仓单次复查最大请求数,必须为正',
|
||
review_time_budget_seconds INT NOT NULL COMMENT '本仓单次复查最大执行秒数,必须为正',
|
||
review_target_days INT NOT NULL DEFAULT 7 COMMENT '建议每 7 天轮转一遍,属于待配额验证的目标,不保证首次大量详情在单次调度内完成',
|
||
PRIMARY KEY (id),
|
||
UNIQUE KEY uk_selfop_scope (source_account,warehouse_code,data_family),
|
||
KEY idx_selfop_scope_lease (lease_until_utc),
|
||
CONSTRAINT chk_selfop_sync_scope CHECK (data_family IN ('OUTBOUND','INVENTORY') AND stale_after_seconds > 0 AND review_request_budget > 0 AND review_time_budget_seconds > 0 AND review_target_days > 0 AND fact_revision >= 0 AND published_fact_revision >= 0 AND fence_token >= 0)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='分仓任务族租约及发布指针';
|
||
|
||
CREATE TABLE ll_selfop_sync_task (
|
||
id BIGINT NOT NULL COMMENT '应用生成的记录标识',
|
||
created_at DATETIME(3) NOT NULL COMMENT 'UTC创建时间',
|
||
updated_at DATETIME(3) NOT NULL COMMENT 'UTC更新时间',
|
||
task_no VARCHAR(64) NOT NULL COMMENT '稳定采集业务任务号,重试沿用,不展示内部数据库标识',
|
||
execution_purpose VARCHAR(16) NOT NULL COMMENT 'BUSINESS或VALIDATION;由服务端冻结用途,子任务继承',
|
||
validation_root_task_id BIGINT NULL COMMENT '验证会话唯一预算根任务,根引用自身,正式任务为空',
|
||
validation_budget_json JSON NULL COMMENT '验证根冻结硬预算、累计消耗、库存分仓页数、截止时刻及停止原因',
|
||
business_root_task_id BIGINT NULL COMMENT '测试人工正式采集共享预算根任务;生产任务为空',
|
||
business_budget_json JSON NULL COMMENT '仅测试正式采集根保存冻结请求上限、截止时间、消耗及停止原因',
|
||
source_account VARCHAR(64) NOT NULL COMMENT '受控来源账号别名,不保存密钥',
|
||
task_role VARCHAR(24) NOT NULL COMMENT 'ACCOUNT_DISCOVERY 或 WAREHOUSE_SYNC',
|
||
scope_id BIGINT NULL COMMENT '分仓任务必须引用分仓作用域;仅账号共享发现为空',
|
||
warehouse_code VARCHAR(64) NULL COMMENT '来源仓库原始编码,按仓独立统计',
|
||
discovery_scope_id BIGINT NULL COMMENT '共享发现必填,引用账号发现协调器',
|
||
upstream_task_id BIGINT NULL COMMENT '出库分仓任务引用已持久化目录的共享发现切片;库存无此上游',
|
||
discovery_sequence BIGINT NULL COMMENT '共享任务及分仓子任务继承的调度顺序;重试保持不变,不用于事实覆盖判定',
|
||
observation_baseline BIGINT NULL COMMENT '共享任务建立时已分配的最大详情采集代次,分仓子任务继承;用于识别旧任务恢复期间出现的其他任务新观测',
|
||
request_key VARCHAR(128) NOT NULL COMMENT '共享发现包含切片/计划槽位;分仓任务包含仓库、任务族及切片或计划槽位;人工附请求幂等键',
|
||
request_hash CHAR(64) NOT NULL COMMENT '请求类型、查询范围、范围摘要的指纹;同键不同请求拒绝',
|
||
task_type VARCHAR(24) NOT NULL COMMENT '计划、补采、复核、重建与验证;INVENTORY_FLOW_HISTORY为流水片,INVENTORY_HISTORY_BUILD为本地历史还原',
|
||
planned_at_utc DATETIME(3) NULL COMMENT '计划时点;人工请求可空',
|
||
query_from_utc DATETIME(3) NULL COMMENT '出库查询区间UTC下界,库存不填',
|
||
query_until_utc DATETIME(3) NULL COMMENT '出库查询区间UTC上界,不含端点,库存不填',
|
||
query_scope_json JSON NOT NULL COMMENT '不变的账号、货主、仓库、品质和查询条件快照;按单补查在此记录单号',
|
||
routing_manifest_json JSON NULL COMMENT '共享切片目录完整标记、每仓对象键集合/数量和详情就绪状态;各对象记录 effectiveStageId,需新代次复查时记录 refreshTaskId,完成后指向新有效暂存;不改写旧载荷',
|
||
scope_hash CHAR(64) NOT NULL COMMENT '建任务时的业务范围摘要',
|
||
status VARCHAR(20) NOT NULL COMMENT 'WAITING_SOURCE、READY、RUNNING、RETRY_WAIT、SUCCEEDED、DEAD、SAMPLE_DONE;样本结束不等于正式成功',
|
||
apply_state VARCHAR(20) NOT NULL COMMENT '正式出库归并NOT_STARTED、APPLYING、BLOCKED、APPLIED;共享发现、库存、重建及验证为NOT_APPLICABLE',
|
||
affected_warehouse_codes_json JSON NULL COMMENT '本次归并可能改变的仓集合,包含原仓与新仓;首段事实写入前登记,扩大集合须先取得新增仓租约并锁 scope,不能写完再补',
|
||
apply_started_at_utc DATETIME(3) NULL COMMENT '首段事实提交UTC时间',
|
||
apply_completed_at_utc DATETIME(3) NULL COMMENT '全部必需事实归并完成UTC时间,失败不填',
|
||
attempt_count INT NOT NULL DEFAULT 0 COMMENT '已创建的执行尝试数',
|
||
next_retry_at_utc DATETIME(3) NULL COMMENT '有限退避后下一次可执行时刻',
|
||
requested_by VARCHAR(128) NULL COMMENT '人工请求的平台操作人,仅内部审计',
|
||
result_published_run_id BIGINT NULL COMMENT '正式成功任务实际发布或复用的版本;验证和共享发现为空',
|
||
progress_json JSON NULL COMMENT '与可靠检查点一起提交的有界阶段、单位、尝试和质量进度,不保存单据集合',
|
||
progress_updated_at_utc DATETIME(3) NULL COMMENT '最后可靠业务检查点UTC时间,与执行心跳分开',
|
||
PRIMARY KEY (id),
|
||
UNIQUE KEY uk_selfop_task_no (task_no),
|
||
UNIQUE KEY uk_selfop_task_request (source_account,request_key),
|
||
KEY idx_selfop_task_poll (status,next_retry_at_utc,id),
|
||
KEY idx_selfop_task_upstream (upstream_task_id,warehouse_code),
|
||
KEY idx_selfop_task_apply (apply_state,id),
|
||
KEY idx_selfop_task_scope_list (scope_id,created_at,id),
|
||
KEY idx_selfop_task_account_list (source_account,task_role,created_at,id),
|
||
KEY idx_selfop_task_business_root (business_root_task_id,status,id),
|
||
CONSTRAINT chk_selfop_business_budget CHECK ((business_root_task_id IS NULL AND business_budget_json IS NULL) OR (execution_purpose='BUSINESS' AND business_root_task_id IS NOT NULL AND ((business_root_task_id=id AND business_budget_json IS NOT NULL) OR (business_root_task_id<>id AND business_budget_json IS NULL)))),
|
||
CONSTRAINT chk_selfop_sync_task CHECK (attempt_count >= 0 AND execution_purpose IN ('BUSINESS','VALIDATION') AND ((execution_purpose = 'BUSINESS' AND validation_root_task_id IS NULL AND validation_budget_json IS NULL) OR (execution_purpose = 'VALIDATION' AND validation_root_task_id IS NOT NULL AND apply_state = 'NOT_APPLICABLE' AND result_published_run_id IS NULL AND status <> 'SUCCEEDED')) AND ((task_role = 'ACCOUNT_DISCOVERY' AND scope_id IS NULL AND warehouse_code IS NULL AND discovery_scope_id IS NOT NULL) OR (task_role = 'WAREHOUSE_SYNC' AND scope_id IS NOT NULL AND warehouse_code IS NOT NULL)))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='一次计划或人工请求';
|
||
|
||
CREATE TABLE ll_selfop_sync_run (
|
||
id BIGINT NOT NULL COMMENT '应用生成的记录标识',
|
||
created_at DATETIME(3) NOT NULL COMMENT 'UTC创建时间',
|
||
updated_at DATETIME(3) NOT NULL COMMENT 'UTC更新时间',
|
||
task_id BIGINT NOT NULL COMMENT '本次执行请求',
|
||
execution_purpose VARCHAR(16) NOT NULL COMMENT '从逻辑任务冻结继承,验证尝试不能作为正式统计版本',
|
||
scope_id BIGINT NULL COMMENT '仅账号共享发现为空;分仓执行必须有作用域',
|
||
source_account VARCHAR(64) NOT NULL COMMENT '受控来源账号别名,不保存密钥',
|
||
warehouse_code VARCHAR(64) NULL COMMENT '来源仓库原始编码,按仓独立统计',
|
||
run_role VARCHAR(24) NOT NULL COMMENT 'ACCOUNT_DISCOVERY 或 WAREHOUSE_SYNC',
|
||
upstream_task_id BIGINT NULL COMMENT '分仓出库计算引用的共享切片及其稳定暂存集合',
|
||
attempt_no INT NOT NULL COMMENT '同一请求从 1 起递增',
|
||
scope_hash CHAR(64) NOT NULL COMMENT '本版本的业务范围摘要',
|
||
scope_snapshot_json JSON NOT NULL COMMENT '分仓版只含本仓货主/品质、固定首采 [B,E0)、时区、调度与过期阈值;账号发现保存待路由仓集合,不冒充业务版',
|
||
observed_dimensions_json JSON NULL COMMENT '本次实际出现的仓库/货主集合及数量摘要,仅作采集证据;例如已观测 70 货主不等于固定授权范围',
|
||
fence_token BIGINT NOT NULL COMMENT '本尝试持有的栅栏版本',
|
||
base_published_run_id BIGINT NULL COMMENT '执行开始时的上一可见版本',
|
||
reference_sales_run_id BIGINT NULL COMMENT '库存构建开始时固定的本仓已发布销量版,用其不可变 SKU 维度生成出库已知商品占位;没有已发布销量版时为空,不读取半归并订单事实',
|
||
inventory_daily_sample_date DATE NULL COMMENT '北京时间当日首个合格计划库存发布代表日期,非代表为空',
|
||
inventory_sample_rule_version VARCHAR(32) NULL COMMENT '日库存代表选择规则 DAILY_SCHEDULED_FIRST_V1,与日标记原子保存',
|
||
status VARCHAR(24) NOT NULL COMMENT 'FETCHING、VALIDATED、ROUTED、FACTS_APPLIED、BUILDING、READY、PUBLISHED、REUSED、YIELDED、FAILED、ABORTED、SAMPLE_DONE;复用和验证不是版本头',
|
||
last_phase VARCHAR(24) NOT NULL COMMENT '失败/中止前所在阶段,支持判断是否已经归并事实',
|
||
fetch_started_at_utc DATETIME(3) NULL COMMENT '实际采集开始UTC时间',
|
||
fetch_finished_at_utc DATETIME(3) NULL COMMENT '实际采集完成UTC时间,未完成为空',
|
||
build_started_at_utc DATETIME(3) NULL COMMENT '实际开始有界候选构建UTC时间,用于构建耗时及首采合并间隔',
|
||
warehouse_daily_ready TINYINT NOT NULL DEFAULT 0 COMMENT '仓库日汇总已完整构建并校验,含完整空版本',
|
||
finished_at_utc DATETIME(3) NULL COMMENT '本次尝试终止UTC时间',
|
||
published_at_utc DATETIME(3) NULL COMMENT '实际原子切换发布指针UTC时间',
|
||
superseded_at_utc DATETIME(3) NULL COMMENT '被新发布版替代的首次UTC时间,同事务填写且重试不重置',
|
||
page_count INT NOT NULL DEFAULT 0 COMMENT '已完整获取页数',
|
||
source_total_count BIGINT NULL COMMENT '上游可靠返回的总数;未返回则为空',
|
||
unique_object_count BIGINT NOT NULL DEFAULT 0 COMMENT '规范化去重后对象数',
|
||
progress_snapshot_json JSON NULL COMMENT '尝试终止时冻结的有界可靠进度摘要,历史尝试不随逻辑任务改写',
|
||
heartbeat_at_utc DATETIME(3) NULL COMMENT '有效执行者最新UTC心跳,不代表业务检查点推进',
|
||
coverage_status VARCHAR(16) NOT NULL COMMENT 'UNKNOWN、PARTIAL、COMPLETE;分页完整与数值有效性分别判断',
|
||
covered_from_utc DATETIME(3) NULL COMMENT '本仓销量版本实际连续覆盖UTC下界',
|
||
covered_until_utc DATETIME(3) NULL COMMENT '本仓销量版本实际连续覆盖UTC上界,不含端点',
|
||
complete_day_from DATE NULL COMMENT '本仓完整自然日区间首日,包含',
|
||
complete_day_until DATE NULL COMMENT '本仓完整自然日区间末日,不含',
|
||
applied_fact_revision BIGINT NULL COMMENT '本次尝试归并后的事实修订号,库存为空',
|
||
calculated_fact_revision BIGINT NULL COMMENT '候选销量版本计算所依据的固定事实修订号',
|
||
error_code VARCHAR(64) NULL COMMENT '内部可诊断错误分类,不保存认证信息',
|
||
error_message VARCHAR(500) NULL COMMENT '脱敏后的固定错误摘要',
|
||
PRIMARY KEY (id),
|
||
UNIQUE KEY uk_selfop_run_attempt (task_id,attempt_no),
|
||
UNIQUE KEY uk_selfop_inventory_daily (source_account,warehouse_code,inventory_daily_sample_date),
|
||
KEY idx_selfop_run_scope (scope_id,id),
|
||
KEY idx_selfop_run_status (status,updated_at),
|
||
CONSTRAINT chk_selfop_inventory_daily CHECK ((inventory_daily_sample_date IS NULL AND inventory_sample_rule_version IS NULL) OR (inventory_daily_sample_date IS NOT NULL AND inventory_sample_rule_version IS NOT NULL AND inventory_sample_rule_version = 'DAILY_SCHEDULED_FIRST_V1' AND execution_purpose = 'BUSINESS' AND run_role = 'WAREHOUSE_SYNC' AND status = 'PUBLISHED' AND coverage_status = 'COMPLETE')),
|
||
CONSTRAINT chk_selfop_sync_run CHECK (attempt_no > 0 AND page_count >= 0 AND unique_object_count >= 0 AND execution_purpose IN ('BUSINESS','VALIDATION') AND (execution_purpose <> 'VALIDATION' OR status NOT IN ('PUBLISHED','REUSED')) AND (source_total_count IS NULL OR source_total_count >= 0) AND ((run_role = 'ACCOUNT_DISCOVERY' AND scope_id IS NULL AND warehouse_code IS NULL) OR (run_role = 'WAREHOUSE_SYNC' AND scope_id IS NOT NULL AND warehouse_code IS NOT NULL)))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='执行尝试、覆盖证明和版本头';
|
||
|
||
CREATE TABLE ll_selfop_sync_stage (
|
||
id BIGINT NOT NULL COMMENT '应用生成的记录标识',
|
||
created_at DATETIME(3) NOT NULL COMMENT 'UTC创建时间',
|
||
updated_at DATETIME(3) NOT NULL COMMENT 'UTC更新时间',
|
||
run_id BIGINT NOT NULL COMMENT '首次写入该暂存对象的执行尝试',
|
||
stage_batch_id BIGINT NOT NULL COMMENT '出库取共享发现 task.id,便于断点续取;库存取本次 run.id,严禁跨尝试混页',
|
||
last_fetch_run_id BIGINT NOT NULL COMMENT '最后一次补齐该对象的执行尝试,保留重试来源',
|
||
observation_sequence BIGINT NULL COMMENT '该完整出库详情实际请求的采集代次;有效出库对象必填,目录待补对象和库存为空;不能填 task 调度序号',
|
||
warehouse_code VARCHAR(64) NOT NULL COMMENT '来源仓库原始编码,按仓独立统计',
|
||
previous_warehouse_code VARCHAR(64) NULL COMMENT '路由时从已有单据识别的原仓库;归并前再校验,跨仓时通知两仓',
|
||
object_type VARCHAR(16) NOT NULL COMMENT 'OUTBOUND_ORDER 或 PRODUCT_STOCK',
|
||
object_key_hash CHAR(64) NOT NULL COMMENT '规范化业务键摘要;原业务键保留在载荷中并核对',
|
||
first_page_no INT NOT NULL COMMENT '首次发现页码',
|
||
observed_at_utc DATETIME(3) NOT NULL COMMENT '实际接收该对象的时刻',
|
||
content_hash CHAR(64) NOT NULL COMMENT '完整规范化对象摘要',
|
||
payload_json JSON NOT NULL COMMENT '目录阶段可先存订单头,详情齐后补完整 SKU;VALID 后不再修改;库存保存产品库存字段',
|
||
before_payload_json JSON NULL COMMENT '订单归并事务内记录归并前的完整规范化事实;新增单为空',
|
||
validation_status VARCHAR(16) NOT NULL COMMENT '暂存校验状态:PENDING待核验、VALID有效、INVALID异常',
|
||
validation_code VARCHAR(64) NULL COMMENT '字段缺失、冲突、未知时区等原因',
|
||
PRIMARY KEY (id),
|
||
UNIQUE KEY uk_selfop_stage_object (stage_batch_id,object_type,object_key_hash),
|
||
KEY idx_selfop_stage_history (object_type,object_key_hash,stage_batch_id),
|
||
KEY idx_selfop_stage_observation (object_type,object_key_hash,validation_status,observation_sequence),
|
||
KEY idx_selfop_stage_fact_observation (observation_sequence,warehouse_code,object_type,validation_status,run_id,observed_at_utc),
|
||
KEY idx_selfop_stage_route (stage_batch_id,warehouse_code,validation_status),
|
||
CONSTRAINT chk_selfop_sync_stage CHECK (first_page_no > 0 AND (object_type <> 'OUTBOUND_ORDER' OR validation_status <> 'VALID' OR observation_sequence IS NOT NULL))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='待验证事实与修订证据';
|
||
|
||
CREATE TABLE ll_selfop_outbound_order (
|
||
id BIGINT NOT NULL COMMENT '应用生成的记录标识',
|
||
created_at DATETIME(3) NOT NULL COMMENT 'UTC创建时间',
|
||
updated_at DATETIME(3) NOT NULL COMMENT 'UTC更新时间',
|
||
source_account VARCHAR(64) NOT NULL COMMENT '受控来源账号别名,不保存密钥',
|
||
customer_code VARCHAR(64) NOT NULL COMMENT '领星货主原始编码,不等同平台客户标识',
|
||
warehouse_code VARCHAR(64) NOT NULL COMMENT '来源仓库原始编码,按仓独立统计',
|
||
delivery_no VARCHAR(128) NOT NULL COMMENT 'OMP 发货单号,采用列表及详情同一身份',
|
||
source_no VARCHAR(128) NULL COMMENT 'WMS 来源出库单号,缺失不以内部 ID 回退展示',
|
||
source_status INT NOT NULL COMMENT '原始状态,100 已出库、99 已取消;不改造成内部状态码',
|
||
source_created_time VARCHAR(64) NULL COMMENT '来源创建时间原始字符串,不使用采集时间替代',
|
||
source_outbound_time VARCHAR(64) NULL COMMENT '来源实际出库时间原始字符串,不使用采集时间替代',
|
||
source_timezone VARCHAR(64) NULL COMMENT '解析采用的源时区',
|
||
outbound_at_utc DATETIME(3) NULL COMMENT '已核准的实际出库时间点;非出库状态可空',
|
||
business_date DATE NULL COMMENT '已核准业务时区下的出库日',
|
||
business_timezone VARCHAR(64) NOT NULL COMMENT '该事实当前归属仓所用业务时区,迁仓后重新确定业务日',
|
||
sales_eligible TINYINT NOT NULL DEFAULT 0 COMMENT '仅已出库、时间与全部数量有效时为 1',
|
||
revision_no BIGINT NOT NULL DEFAULT 1 COMMENT '该单内容变更次数,不等于拉取次数',
|
||
content_hash CHAR(64) NOT NULL COMMENT '订单头及完整 SKU 明细规范化摘要',
|
||
last_run_id BIGINT NOT NULL COMMENT '最后一次确认或修订的执行尝试',
|
||
last_observation_sequence BIGINT NOT NULL COMMENT '最后接受的完整详情采集代次;仅防旧观测重放,不按 task 调度序号拒绝较晚实际读取的事实,不冒充领星源版本号',
|
||
PRIMARY KEY (id),
|
||
UNIQUE KEY uk_selfop_order (source_account,customer_code,delivery_no),
|
||
KEY idx_selfop_order_daily (source_account,warehouse_code,sales_eligible,business_date,id),
|
||
KEY idx_selfop_order_run (last_run_id),
|
||
CONSTRAINT chk_selfop_outbound_order CHECK (revision_no > 0 AND last_observation_sequence > 0 AND sales_eligible IN (0,1) AND (sales_eligible = 0 OR (source_status = 100 AND source_timezone IS NOT NULL AND outbound_at_utc IS NOT NULL AND business_date IS NOT NULL)))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='最后确认的单据事实';
|
||
|
||
CREATE TABLE ll_selfop_outbound_item (
|
||
id BIGINT NOT NULL COMMENT '应用生成的记录标识',
|
||
created_at DATETIME(3) NOT NULL COMMENT 'UTC创建时间',
|
||
updated_at DATETIME(3) NOT NULL COMMENT 'UTC更新时间',
|
||
order_id BIGINT NOT NULL COMMENT '对应外部出库事实',
|
||
sku_code VARCHAR(128) NOT NULL COMMENT '原始 productSku',
|
||
product_name VARCHAR(255) NULL COMMENT '来源商品名称,仅作展示',
|
||
actual_quantity DECIMAL(20,6) NOT NULL COMMENT '详情 actualDeliveryQty,必须为非负有效数值',
|
||
quantity_unit VARCHAR(32) NOT NULL COMMENT '已核准业务单位;未确认单位不发布正式数量统计',
|
||
PRIMARY KEY (id),
|
||
UNIQUE KEY uk_selfop_order_sku (order_id,sku_code),
|
||
KEY idx_selfop_item_sku (sku_code,order_id),
|
||
CONSTRAINT chk_selfop_outbound_item CHECK (actual_quantity >= 0)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='整单替换的实际出库明细';
|
||
|
||
CREATE TABLE ll_selfop_inventory_snapshot (
|
||
id BIGINT NOT NULL COMMENT '应用生成的记录标识',
|
||
created_at DATETIME(3) NOT NULL COMMENT 'UTC创建时间',
|
||
updated_at DATETIME(3) NOT NULL COMMENT 'UTC更新时间',
|
||
snapshot_run_id BIGINT NOT NULL COMMENT 'INVENTORY 执行尝试;发布后该批明细不可修改',
|
||
source_account VARCHAR(64) NOT NULL COMMENT '受控来源账号别名,不保存密钥',
|
||
customer_code VARCHAR(64) NOT NULL COMMENT '领星货主原始编码,不等同平台客户标识',
|
||
warehouse_code VARCHAR(64) NOT NULL COMMENT '来源仓库原始编码,按仓独立统计',
|
||
sku_code VARCHAR(128) NOT NULL COMMENT '原始产品 SKU',
|
||
product_quality SMALLINT NOT NULL COMMENT '来源品质,当前 0 正品、1 次品;全量均保存,不套用整箱库存',
|
||
product_name VARCHAR(255) NULL COMMENT '来源名称',
|
||
physical_quantity DECIMAL(20,6) NULL COMMENT '来源stkQty实物库存,未知为空',
|
||
available_quantity DECIMAL(20,6) NULL COMMENT '来源useStkQty可用库存,未知为空,不再次扣冻结',
|
||
frozen_quantity DECIMAL(20,6) NULL COMMENT '来源freezeQty冻结库存,未知为空',
|
||
transit_quantity DECIMAL(20,6) NULL COMMENT '来源transitQty在途数量,未知为空,不计可售库存',
|
||
source_unique_key VARCHAR(512) NULL COMMENT '原 uniqueKey4tenant,只作来源证据',
|
||
observed_at_utc DATETIME(3) NOT NULL COMMENT '所在页实际采集时间;缺行占位取本批采集完成时间',
|
||
quality_status VARCHAR(16) NOT NULL COMMENT 'VALID、UNKNOWN、INVALID;STALE 按批次年龄实时派生',
|
||
quality_reason VARCHAR(64) NULL COMMENT 'SOURCE_ROW_MISSING、FIELD_MISSING、NEGATIVE_QUANTITY 等',
|
||
PRIMARY KEY (id),
|
||
UNIQUE KEY uk_selfop_stock_snapshot (snapshot_run_id,source_account,customer_code,warehouse_code,sku_code,product_quality),
|
||
KEY idx_selfop_stock_lookup (source_account,customer_code,warehouse_code,sku_code,product_quality,snapshot_run_id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='产品库存全量批次明细';
|
||
|
||
CREATE TABLE ll_selfop_sku_daily_sales (
|
||
id BIGINT NOT NULL COMMENT '应用生成的记录标识',
|
||
created_at DATETIME(3) NOT NULL COMMENT 'UTC创建时间',
|
||
updated_at DATETIME(3) NOT NULL COMMENT 'UTC更新时间',
|
||
sales_run_id BIGINT NOT NULL COMMENT 'OUTBOUND 执行尝试,同时是计算版本',
|
||
source_account VARCHAR(64) NOT NULL COMMENT '受控来源账号别名,不保存密钥',
|
||
customer_code VARCHAR(64) NOT NULL COMMENT '领星货主原始编码,不等同平台客户标识',
|
||
warehouse_code VARCHAR(64) NOT NULL COMMENT '来源仓库原始编码,按仓独立统计',
|
||
sku_code VARCHAR(128) NOT NULL COMMENT '原始产品 SKU',
|
||
business_date DATE NOT NULL COMMENT '已核准业务日',
|
||
outbound_quantity DECIMAL(20,6) NOT NULL COMMENT '有效出库实际件数之和,非负',
|
||
outbound_order_count BIGINT NOT NULL COMMENT '该维度去重发货单数,非负',
|
||
quantity_unit VARCHAR(32) NOT NULL COMMENT '同一统计维度内一致的业务单位',
|
||
PRIMARY KEY (id),
|
||
UNIQUE KEY uk_selfop_daily_version (sales_run_id,source_account,customer_code,warehouse_code,sku_code,business_date),
|
||
KEY idx_selfop_daily_window_cover (sales_run_id,source_account,warehouse_code,business_date,customer_code,sku_code,outbound_quantity,outbound_order_count,quantity_unit),
|
||
KEY idx_selfop_daily_sku_cover (sales_run_id,source_account,warehouse_code,customer_code,sku_code,business_date,outbound_quantity,outbound_order_count,quantity_unit),
|
||
CONSTRAINT chk_selfop_sku_daily_sales CHECK (outbound_quantity >= 0 AND outbound_order_count >= 0)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='完整销量版本的稀疏日事实';
|
||
|
||
CREATE TABLE ll_selfop_warehouse_daily_sales (
|
||
sales_run_id BIGINT NOT NULL COMMENT '完整销量计算版本标识',
|
||
source_account VARCHAR(64) NOT NULL COMMENT '受控来源账号别名,不保存密钥',
|
||
warehouse_code VARCHAR(64) NOT NULL COMMENT '来源仓库原始编码',
|
||
business_date DATE NOT NULL COMMENT '已核准业务日',
|
||
observed_quantity DECIMAL(38,6) NULL COMMENT '该日PCS非负有效出库量之和,无有效行时为空',
|
||
invalid_row_count BIGINT NOT NULL COMMENT '该日数量为空或负数或单位非PCS的日事实行数',
|
||
source_row_count BIGINT NOT NULL COMMENT '该日参与仓库汇总的SKU日事实总行数',
|
||
created_at DATETIME(3) NOT NULL COMMENT 'UTC创建时间',
|
||
updated_at DATETIME(3) NOT NULL COMMENT 'UTC更新时间',
|
||
PRIMARY KEY (sales_run_id,source_account,warehouse_code,business_date),
|
||
CONSTRAINT chk_selfop_warehouse_daily_sales CHECK (source_row_count > 0 AND invalid_row_count >= 0 AND invalid_row_count <= source_row_count AND (observed_quantity IS NULL OR observed_quantity >= 0))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='完整销量版本按仓按日汇总,随SKU日事实批次原子构建';
|
||
|
||
CREATE TABLE ll_selfop_sku_profile (
|
||
id BIGINT NOT NULL COMMENT '应用生成的记录标识',
|
||
created_at DATETIME(3) NOT NULL COMMENT 'UTC创建时间',
|
||
updated_at DATETIME(3) NOT NULL COMMENT 'UTC更新时间',
|
||
profile_run_id BIGINT NOT NULL COMMENT '本仓销量或库存候选版本;与对应 daily/snapshot 使用同一 run,发布后该版本全部维度行不可修改',
|
||
source_account VARCHAR(64) NOT NULL COMMENT '受控来源账号别名,不保存密钥',
|
||
customer_code VARCHAR(64) NOT NULL COMMENT '领星货主原始编码,不等同平台客户标识',
|
||
warehouse_code VARCHAR(64) NOT NULL COMMENT '来源仓库原始编码,按仓独立统计',
|
||
sku_code VARCHAR(128) NOT NULL COMMENT '原始产品 SKU',
|
||
product_name VARCHAR(255) NULL COMMENT '本版本确认的名称,不实时连接其他版本名称',
|
||
quantity_unit VARCHAR(32) NULL COMMENT '本版本已核准单位;未知或两版本单位冲突时不计算混合指标',
|
||
first_seen_at_utc DATETIME(3) NULL COMMENT '本证据族真实观测到本仓商品的最早接收时刻;缺行占位不能生成观察证据',
|
||
earliest_evidence_at_utc DATETIME(3) NULL COMMENT '库存版取真实库存首次观察时刻;销量版从该版有效事实重新求最早已核准出库时间,可随改期、取消或迁仓撤回/后移',
|
||
evidence_type VARCHAR(24) NOT NULL COMMENT 'INVENTORY_OBSERVATION、VALID_OUTBOUND、NONE;不得将销量证据复制成库存真实观察证据',
|
||
evidence_run_id BIGINT NULL COMMENT '本证据族真实依据的采集批次,无证据占位为空',
|
||
last_seen_run_id BIGINT NULL COMMENT '本证据族最近真实观测批次,无证据占位为空',
|
||
PRIMARY KEY (id),
|
||
UNIQUE KEY uk_selfop_profile_version (profile_run_id,source_account,customer_code,warehouse_code,sku_code),
|
||
KEY idx_selfop_profile_evidence (profile_run_id,earliest_evidence_at_utc,customer_code,sku_code)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='随发布版本固定的 SKU 维度与观察依据';
|
||
|
||
|
||
|
||
CREATE TABLE IF NOT EXISTS ll_appointment_impact (
|
||
container_booking_id VARCHAR(64) NOT NULL COMMENT '稳定柜次关联键,不作业务编号展示',
|
||
impact_no VARCHAR(40) NOT NULL COMMENT '船期核对事项业务号',
|
||
baseline_json LONGTEXT NOT NULL COMMENT '已核对基准或首次变化前观察,原来源时间口径',
|
||
latest_json LONGTEXT NOT NULL COMMENT '最新已读取观察,未知可为JSON null',
|
||
forecast_token CHAR(64) NOT NULL COMMENT '最新观察摘要,处理时防止旧预测结案',
|
||
status VARCHAR(20) NOT NULL COMMENT '事项状态:MONITORING监测/OPEN待处理/RESOLVED已完成',
|
||
reason VARCHAR(64) NULL COMMENT '预测变化或资料待核实原因',
|
||
owner_id VARCHAR(128) NULL COMMENT '认领平台人员ID',
|
||
owner_name VARCHAR(200) NULL COMMENT '负责人姓名快照',
|
||
version INT NOT NULL COMMENT '观察及人工处理共同版本',
|
||
updated_at DATETIME(3) NOT NULL COMMENT 'UTC更新时间',
|
||
PRIMARY KEY (container_booking_id),
|
||
UNIQUE KEY uk_appointment_impact_no (impact_no),
|
||
KEY idx_appointment_impact_work (status,updated_at),
|
||
CONSTRAINT chk_appointment_impact_status CHECK (status IN ('MONITORING','OPEN','RESOLVED'))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='一柜一个稳定船期变化核对事项,不改写预约或运输';
|
||
|
||
CREATE TABLE IF NOT EXISTS ll_appointment_impact_history (
|
||
id BIGINT NOT NULL COMMENT '历史记录标识',
|
||
container_booking_id VARCHAR(64) NOT NULL COMMENT '关联柜次标识',
|
||
version INT NOT NULL COMMENT '记录版本',
|
||
action VARCHAR(20) NOT NULL COMMENT '操作类型:OBSERVED观察/CLAIM认领/RECORD记录/RESOLVE完成',
|
||
operator_id VARCHAR(128) NOT NULL COMMENT '操作人标识',
|
||
operator_name VARCHAR(200) NULL COMMENT '操作人姓名',
|
||
result VARCHAR(1000) NULL COMMENT '人工处理结果;观察记录为空',
|
||
next_action VARCHAR(500) NULL COMMENT '下一步处理事项',
|
||
followup_date DATE NULL COMMENT '业务跟进日期',
|
||
command_key VARCHAR(64) NULL COMMENT '人工命令幂等键;观察记录为空',
|
||
request_hash CHAR(64) NULL COMMENT '请求内容摘要',
|
||
response_json LONGTEXT NOT NULL COMMENT '该版本完整响应快照,支持精确重放',
|
||
created_at DATETIME(3) NOT NULL COMMENT 'UTC记录时间',
|
||
PRIMARY KEY (id),
|
||
UNIQUE KEY uk_appointment_impact_version (container_booking_id,version),
|
||
UNIQUE KEY uk_appointment_impact_command (container_booking_id,operator_id,command_key),
|
||
CONSTRAINT fk_appointment_impact_history FOREIGN KEY (container_booking_id) REFERENCES ll_appointment_impact(container_booking_id),
|
||
CONSTRAINT chk_appointment_impact_action CHECK (action IN ('OBSERVED','CLAIM','RECORD','RESOLVE'))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='船期观察及人工处理追加历史';
|
||
|
||
-- SKU 换标实物转换:先执行本增量,再部署服务。不会自动改写存量业务事实。
|
||
CREATE TABLE ll_return_sku_conversion (
|
||
id BIGINT NOT NULL COMMENT 'SKU库存转换记录ID',
|
||
customer_id VARCHAR(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户隔离键',
|
||
overseas_warehouse_id VARCHAR(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '操作海外仓ID',
|
||
application_id BIGINT NOT NULL COMMENT '换标申请ID',
|
||
relabel_no VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '换标单号',
|
||
item_id BIGINT NOT NULL COMMENT '换标箱级明细ID',
|
||
round_key VARCHAR(64) NOT NULL COMMENT '作业轮次,退回重做使用新轮次',
|
||
carton_id BIGINT NOT NULL COMMENT '实物来源包裹或箱ID',
|
||
carton_mark VARCHAR(128) NOT NULL COMMENT '完工时仓库识别码',
|
||
old_sku_code VARCHAR(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '换标前SKU',
|
||
new_sku_code VARCHAR(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '换标后SKU',
|
||
product_name_zh VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '中文品名快照',
|
||
quantity BIGINT NOT NULL COMMENT '实际完成转换件数',
|
||
status VARCHAR(32) NOT NULL COMMENT 'APPLIED待客户确认/CONFIRMED已确认/REVERSED退回冲回',
|
||
ownership_json LONGTEXT NOT NULL COMMENT '本次转换件数的来源退货单快照,供精确冲回',
|
||
completed_at DATETIME(3) NOT NULL COMMENT '实物SKU转换时间',
|
||
confirmed_at DATETIME(3) NULL COMMENT '客户确认时间',
|
||
reversed_at DATETIME(3) NULL COMMENT '退回冲回时间',
|
||
PRIMARY KEY(id),
|
||
UNIQUE KEY uk_return_sku_conversion_round(item_id,round_key,old_sku_code,new_sku_code),
|
||
KEY idx_return_sku_conversion_app(customer_id,application_id,status),
|
||
KEY idx_return_sku_conversion_carton(customer_id,carton_id),
|
||
CONSTRAINT chk_return_sku_conversion_quantity CHECK(quantity>0)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='退货实物SKU换标库存转换和冲回记录';
|
||
|
||
-- PDA cargo discard photo evidence
|
||
CREATE TABLE IF NOT EXISTS ll_cargo_discard_photo (
|
||
id BIGINT NOT NULL,
|
||
customer_id VARCHAR(64) NOT NULL,
|
||
application_id BIGINT NOT NULL,
|
||
pallet_no VARCHAR(128) NOT NULL,
|
||
file_id BIGINT NOT NULL,
|
||
file_name VARCHAR(255) NOT NULL,
|
||
content_type VARCHAR(128) NOT NULL,
|
||
size_bytes BIGINT NOT NULL,
|
||
operator_id VARCHAR(64) NOT NULL,
|
||
created_at DATETIME(6) NOT NULL,
|
||
submitted_at DATETIME(6) NULL,
|
||
PRIMARY KEY (id),
|
||
UNIQUE KEY uk_cargo_discard_photo_file (file_id),
|
||
KEY idx_cargo_discard_photo_application (customer_id, application_id, pallet_no)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
|
||
-- 货物废弃支持所有入库来源及散箱全量作业;不回填或修改历史单据。
|
||
SET @ddl = IF(NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='ll_cargo_discard_item' AND column_name='inventory_position_id'),
|
||
'ALTER TABLE ll_cargo_discard_item ADD COLUMN inventory_position_id BIGINT NULL COMMENT ''废弃来源库存仓位ID''', 'SELECT 1');
|
||
PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||
|
||
SET @ddl = IF(NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='ll_cargo_discard_item' AND column_name='carton_marks_json'),
|
||
'ALTER TABLE ll_cargo_discard_item ADD COLUMN carton_marks_json TEXT NULL COMMENT ''本次废弃所选真实箱唛快照JSON数组''', 'SELECT 1');
|
||
PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||
|
||
SET @ddl = IF(NOT EXISTS (SELECT 1 FROM information_schema.statistics WHERE table_schema=DATABASE() AND table_name='ll_cargo_discard_item' AND index_name='uk_ll_discard_position_sku'),
|
||
'ALTER TABLE ll_cargo_discard_item ADD UNIQUE KEY uk_ll_discard_position_sku(application_id,inventory_position_id,sku_code)', 'SELECT 1');
|
||
PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||
|
||
ALTER TABLE ll_cargo_discard_item MODIFY COLUMN source_type VARCHAR(32) NOT NULL DEFAULT 'DROPSHIP' COMMENT '库存来源:一件代发DROPSHIP、退货箱RETURN_CARTON、通用库存INVENTORY';
|
||
|
||
SET @ddl = IF(NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='ll_cargo_discard_item' AND column_name='carton_scan_required'),
|
||
'ALTER TABLE ll_cargo_discard_item ADD COLUMN carton_scan_required TINYINT(1) NOT NULL DEFAULT 0 COMMENT ''是否需要逐箱核对本次所选箱子''', 'SELECT 1');
|
||
PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||
ALTER TABLE ll_cargo_discard_item MODIFY COLUMN carton_marks_json TEXT NULL COMMENT '本次废弃所选真实箱唛快照JSON数组';
|
||
ALTER TABLE ll_inbound_plan_carton MODIFY COLUMN status VARCHAR(32) NOT NULL COMMENT '箱唛状态:未绑定UNASSIGNED、已绑托ON_PALLET、整票收货BULK_RECEIVED、可用AVAILABLE、待废弃DISCARD_PENDING、已废弃DISCARDED';
|
||
|
||
SET @ddl = IF(NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='ll_cargo_discard_carton' AND column_name='source_type'),
|
||
'ALTER TABLE ll_cargo_discard_carton ADD COLUMN source_type VARCHAR(32) NOT NULL DEFAULT ''DROPSHIP'' COMMENT ''箱子来源:一件代发DROPSHIP、入仓箱INBOUND、转运箱TRANSFER''', 'SELECT 1');
|
||
PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||
|
||
CREATE TABLE ll_selfop_owner (
|
||
id BIGINT NOT NULL COMMENT '主键',
|
||
run_id BIGINT NOT NULL COMMENT '完整资料采集版本',
|
||
source_account VARCHAR(64) COLLATE utf8mb4_bin NOT NULL COMMENT '来源账号',
|
||
customer_code VARCHAR(64) COLLATE utf8mb4_bin NOT NULL COMMENT '领星货主编码',
|
||
customer_name VARCHAR(255) NULL COMMENT '领星货主名称',
|
||
source_status VARCHAR(32) NULL COMMENT '来源启停状态',
|
||
observed_at_utc DATETIME(6) NOT NULL COMMENT '资料观测时间',
|
||
PRIMARY KEY (id),
|
||
UNIQUE KEY uk_selfop_owner_version (run_id,source_account,customer_code),
|
||
KEY idx_selfop_owner_lookup (source_account,customer_code,run_id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='自营领星货主资料版本';
|
||
|
||
CREATE TABLE ll_selfop_product (
|
||
id BIGINT NOT NULL COMMENT '主键',
|
||
run_id BIGINT NOT NULL COMMENT '完整资料采集版本',
|
||
source_account VARCHAR(64) COLLATE utf8mb4_bin NOT NULL COMMENT '来源账号',
|
||
customer_code VARCHAR(64) COLLATE utf8mb4_bin NOT NULL COMMENT '领星货主编码',
|
||
sku_code VARCHAR(128) COLLATE utf8mb4_bin NOT NULL COMMENT '货主商品编码',
|
||
product_name VARCHAR(255) NULL COMMENT '商品名称',
|
||
declared_length DECIMAL(24,6) NULL COMMENT '商品资料长度',
|
||
declared_width DECIMAL(24,6) NULL COMMENT '商品资料宽度',
|
||
declared_height DECIMAL(24,6) NULL COMMENT '商品资料高度',
|
||
declared_size_unit VARCHAR(32) NULL COMMENT '商品资料尺寸单位',
|
||
measured_length DECIMAL(24,6) NULL COMMENT '仓库实测长度',
|
||
measured_width DECIMAL(24,6) NULL COMMENT '仓库实测宽度',
|
||
measured_height DECIMAL(24,6) NULL COMMENT '仓库实测高度',
|
||
measured_size_unit VARCHAR(32) NULL COMMENT '仓库实测尺寸单位',
|
||
observed_at_utc DATETIME(6) NOT NULL COMMENT '资料观测时间',
|
||
PRIMARY KEY (id),
|
||
UNIQUE KEY uk_selfop_product_version (run_id,source_account,customer_code,sku_code),
|
||
KEY idx_selfop_product_lookup (source_account,customer_code,sku_code,run_id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='自营领星商品资料版本';
|
||
|
||
SELECT 'PASS' AS initialization_status, 'OVERSEAS' AS region, 199 AS initialized_tables;
|
||
|
||
-- 仓储转运逐箱测量与清点;仅增加字段,不修改业务数据。
|
||
USE baiyue_lastleg;
|
||
SET @ddl = (SELECT IF(EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='ll_warehouse_transfer_carton' AND column_name='length_cm'), 'SELECT 1', 'ALTER TABLE ll_warehouse_transfer_carton ADD COLUMN length_cm DECIMAL(12,2) NULL COMMENT ''箱子实测长度厘米'''));
|
||
PREPARE transfer_count_stmt FROM @ddl; EXECUTE transfer_count_stmt; DEALLOCATE PREPARE transfer_count_stmt;
|
||
SET @ddl = (SELECT IF(EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='ll_warehouse_transfer_carton' AND column_name='width_cm'), 'SELECT 1', 'ALTER TABLE ll_warehouse_transfer_carton ADD COLUMN width_cm DECIMAL(12,2) NULL COMMENT ''箱子实测宽度厘米'''));
|
||
PREPARE transfer_count_stmt FROM @ddl; EXECUTE transfer_count_stmt; DEALLOCATE PREPARE transfer_count_stmt;
|
||
SET @ddl = (SELECT IF(EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='ll_warehouse_transfer_carton' AND column_name='height_cm'), 'SELECT 1', 'ALTER TABLE ll_warehouse_transfer_carton ADD COLUMN height_cm DECIMAL(12,2) NULL COMMENT ''箱子实测高度厘米'''));
|
||
PREPARE transfer_count_stmt FROM @ddl; EXECUTE transfer_count_stmt; DEALLOCATE PREPARE transfer_count_stmt;
|
||
SET @ddl = (SELECT IF(EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='ll_warehouse_transfer_carton' AND column_name='gross_weight_kg'), 'SELECT 1', 'ALTER TABLE ll_warehouse_transfer_carton ADD COLUMN gross_weight_kg DECIMAL(12,2) NULL COMMENT ''箱子实测重量千克'''));
|
||
PREPARE transfer_count_stmt FROM @ddl; EXECUTE transfer_count_stmt; DEALLOCATE PREPARE transfer_count_stmt;
|
||
SET @ddl = (SELECT IF(EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='ll_warehouse_transfer_carton' AND column_name='counted_quantity'), 'SELECT 1', 'ALTER TABLE ll_warehouse_transfer_carton ADD COLUMN counted_quantity BIGINT NULL COMMENT ''箱内SKU实点件数'''));
|
||
PREPARE transfer_count_stmt FROM @ddl; EXECUTE transfer_count_stmt; DEALLOCATE PREPARE transfer_count_stmt;
|
||
SET @ddl = (SELECT IF(EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='ll_warehouse_transfer_carton' AND column_name='count_idempotency_key'), 'SELECT 1', 'ALTER TABLE ll_warehouse_transfer_carton ADD COLUMN count_idempotency_key VARCHAR(255) NULL COMMENT ''箱内清点幂等键'''));
|
||
PREPARE transfer_count_stmt FROM @ddl; EXECUTE transfer_count_stmt; DEALLOCATE PREPARE transfer_count_stmt;
|
||
SET @ddl = (SELECT IF(EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='ll_warehouse_transfer_carton' AND column_name='count_request_hash'), 'SELECT 1', 'ALTER TABLE ll_warehouse_transfer_carton ADD COLUMN count_request_hash VARCHAR(64) NULL COMMENT ''箱内清点请求摘要'''));
|
||
PREPARE transfer_count_stmt FROM @ddl; EXECUTE transfer_count_stmt; DEALLOCATE PREPARE transfer_count_stmt;
|
||
SET @ddl = (SELECT IF(EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='ll_warehouse_transfer_carton' AND column_name='counted_by'), 'SELECT 1', 'ALTER TABLE ll_warehouse_transfer_carton ADD COLUMN counted_by VARCHAR(128) NULL COMMENT ''箱内清点操作人'''));
|
||
PREPARE transfer_count_stmt FROM @ddl; EXECUTE transfer_count_stmt; DEALLOCATE PREPARE transfer_count_stmt;
|
||
SET @ddl = (SELECT IF(EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='ll_warehouse_transfer_carton' AND column_name='counted_at'), 'SELECT 1', 'ALTER TABLE ll_warehouse_transfer_carton ADD COLUMN counted_at DATETIME(3) NULL COMMENT ''箱内清点完成时间'''));
|
||
PREPARE transfer_count_stmt FROM @ddl; EXECUTE transfer_count_stmt; DEALLOCATE PREPARE transfer_count_stmt;
|
||
|
||
SET @ddl = (SELECT IF(EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='ll_warehouse_transfer_carton' AND column_name='discrepancy_reason'), 'SELECT 1', 'ALTER TABLE ll_warehouse_transfer_carton ADD COLUMN discrepancy_reason VARCHAR(1000) NULL COMMENT ''实收与预报箱数差异原因'''));
|
||
PREPARE transfer_count_stmt FROM @ddl; EXECUTE transfer_count_stmt; DEALLOCATE PREPARE transfer_count_stmt;
|
||
|
||
SET @ddl = (SELECT IF(EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='ll_warehouse_transfer_carton' AND column_name='transfer_pallet_id'), 'SELECT 1', 'ALTER TABLE ll_warehouse_transfer_carton ADD COLUMN transfer_pallet_id BIGINT NULL COMMENT ''签收箱所属转运托盘事实ID'''));
|
||
PREPARE transfer_count_stmt FROM @ddl; EXECUTE transfer_count_stmt; DEALLOCATE PREPARE transfer_count_stmt;
|
||
|
||
-- SKU 申报件数独立于预计箱数;历史未申报件数保持 NULL,实收以 PDA 清点为准。
|
||
SET @ddl = (SELECT IF(EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='ll_warehouse_transfer_item' AND column_name='declared_quantity'), 'SELECT 1', 'ALTER TABLE ll_warehouse_transfer_item ADD COLUMN declared_quantity BIGINT NULL COMMENT ''SKU申报件数,非预计或实收箱数'''));
|
||
PREPARE transfer_quantity_stmt FROM @ddl; EXECUTE transfer_quantity_stmt; DEALLOCATE PREPARE transfer_quantity_stmt;
|
||
|
||
USE baiyue_lastleg;
|
||
|
||
-- 历史库存基线;执行前必须取得指定环境的建表授权。
|
||
CREATE TABLE IF NOT EXISTS ll_selfop_inventory_flow (
|
||
id BIGINT NOT NULL COMMENT '应用生成的流水记录标识',
|
||
source_account VARCHAR(64) NOT NULL COMMENT '受控来源账号',
|
||
warehouse_code VARCHAR(64) NOT NULL COMMENT '来源仓库编码',
|
||
customer_code VARCHAR(64) NOT NULL COMMENT '来源货主编码',
|
||
sku_code VARCHAR(128) NOT NULL COMMENT '来源商品编码',
|
||
source_flow_id VARCHAR(64) NOT NULL COMMENT '来源流水字符串标识',
|
||
product_quality INT NOT NULL COMMENT '来源品质,零正品一次品,其他未知',
|
||
cell_no VARCHAR(128) NULL COMMENT '来源库位编码',
|
||
inner_batch_no VARCHAR(128) NULL COMMENT '来源内部批次号',
|
||
bill_no VARCHAR(128) NULL COMMENT '来源业务单号',
|
||
source_no VARCHAR(128) NULL COMMENT '来源关联单号',
|
||
bill_type VARCHAR(32) NULL COMMENT '来源业务类型,未验证类型不得参与正式还原',
|
||
book_qty DECIMAL(20,6) NULL COMMENT '来源记账增减量,未知为空',
|
||
book_change_qty_raw VARCHAR(64) NULL COMMENT '来源带符号变动量原文',
|
||
delta_quantity DECIMAL(20,6) NULL COMMENT '解析后的有符号实物变动量',
|
||
close_quantity DECIMAL(20,6) NULL COMMENT '对应库位批次品质链的结存',
|
||
source_create_time VARCHAR(64) NULL COMMENT '来源北京时间原文',
|
||
event_at_utc DATETIME(3) NULL COMMENT '流水发生UTC时刻,无法解析时为空',
|
||
business_date DATE NULL COMMENT '北京时间业务日期',
|
||
quantity_unit VARCHAR(16) NULL COMMENT '已确认数量单位,未知为空',
|
||
content_hash CHAR(64) NOT NULL COMMENT '当前事实内容摘要',
|
||
revision_no BIGINT NOT NULL COMMENT '同来源流水单调增加的修订号',
|
||
stage_id BIGINT NOT NULL COMMENT '当前事实对应不可变暂存证据',
|
||
first_run_id BIGINT NOT NULL COMMENT '首次观察执行尝试',
|
||
last_run_id BIGINT NOT NULL COMMENT '最近确认执行尝试',
|
||
last_observed_at DATETIME(3) NOT NULL COMMENT '最近观察UTC时刻',
|
||
validation_status VARCHAR(16) NOT NULL COMMENT '字段资格,有效或未知',
|
||
validation_reason VARCHAR(64) NULL COMMENT '数量或身份待核验原因',
|
||
PRIMARY KEY (id),
|
||
UNIQUE KEY uk_selfop_flow_source (source_account,warehouse_code,source_flow_id),
|
||
KEY idx_selfop_flow_sku (source_account,warehouse_code,customer_code,sku_code,event_at_utc),
|
||
KEY idx_selfop_flow_day (source_account,warehouse_code,business_date),
|
||
CONSTRAINT chk_selfop_flow_revision CHECK (revision_no > 0)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='自营历史库存流水最新事实,旧版本保留于暂存证据';
|
||
|
||
CREATE TABLE IF NOT EXISTS ll_selfop_inventory_day_version (
|
||
id BIGINT NOT NULL COMMENT '不可变历史日版本标识',
|
||
source_account VARCHAR(64) NOT NULL COMMENT '受控来源账号',
|
||
warehouse_code VARCHAR(64) NOT NULL COMMENT '来源仓库编码',
|
||
business_date DATE NOT NULL COMMENT '北京时间日末所属日期',
|
||
scope_hash CHAR(64) NOT NULL COMMENT '业务范围摘要',
|
||
rule_version VARCHAR(32) NOT NULL COMMENT '日末库存还原规则版本',
|
||
build_run_id BIGINT NOT NULL COMMENT '历史重建执行尝试',
|
||
publication_group_id BIGINT NOT NULL COMMENT '必须一起切换的发布组标识',
|
||
sales_run_id BIGINT NULL COMMENT '构建时固定的销量证据版本',
|
||
anchor_run_id BIGINT NOT NULL COMMENT '固定的独立库存锚点版本',
|
||
input_hash CHAR(64) NOT NULL COMMENT '冻结流水修订与覆盖及锚点输入摘要',
|
||
evidence_json JSON NOT NULL COMMENT '固定输入清单及不可变证据引用',
|
||
status VARCHAR(16) NOT NULL COMMENT '构建中、就绪、已发布、已替代或失败',
|
||
head_slot TINYINT NULL COMMENT '当前日头为一,非当前版本为空',
|
||
valid_sku_count BIGINT NOT NULL DEFAULT 0 COMMENT '合格商品数',
|
||
unknown_sku_count BIGINT NOT NULL DEFAULT 0 COMMENT '待核验商品数',
|
||
created_at DATETIME(3) NOT NULL COMMENT '版本创建UTC时刻',
|
||
published_at DATETIME(3) NULL COMMENT '发布组提交UTC时刻',
|
||
superseded_at DATETIME(3) NULL COMMENT '被新组替代的UTC时刻',
|
||
invalidated_at DATETIME(3) NULL COMMENT '已确认输入失效的UTC时刻',
|
||
invalidation_reason VARCHAR(64) NULL COMMENT '旧版本失效原因',
|
||
rebuild_run_id BIGINT NULL COMMENT '处理失效版本的重建尝试',
|
||
PRIMARY KEY (id),
|
||
UNIQUE KEY uk_selfop_history_head (source_account,warehouse_code,business_date,head_slot),
|
||
UNIQUE KEY uk_selfop_history_build_day (build_run_id,business_date),
|
||
KEY idx_selfop_history_group (publication_group_id,status),
|
||
CONSTRAINT chk_selfop_history_head CHECK (head_slot IS NULL OR (head_slot=1 AND status='PUBLISHED'))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='历史日库存不可变版本及原子发布日头';
|
||
|
||
CREATE TABLE IF NOT EXISTS ll_selfop_inventory_daily (
|
||
day_version_id BIGINT NOT NULL COMMENT '所属历史日版本',
|
||
customer_code VARCHAR(64) NOT NULL COMMENT '来源货主编码',
|
||
sku_code VARCHAR(128) NOT NULL COMMENT '来源商品编码',
|
||
product_quality INT NOT NULL COMMENT '来源库存品质',
|
||
physical_quantity DECIMAL(20,6) NULL COMMENT '日末实物库存,未知为空,已确认零为零',
|
||
quality_status VARCHAR(16) NOT NULL COMMENT '日末资格,有效或未知',
|
||
quality_reason VARCHAR(64) NULL COMMENT '缺覆盖或锚点等未知原因',
|
||
anchor_reference BIGINT NULL COMMENT '独立库存锚点版本',
|
||
evidence_hash CHAR(64) NOT NULL COMMENT '该日计算证据摘要',
|
||
source VARCHAR(32) NOT NULL COMMENT '库存来源标记,流水还原',
|
||
PRIMARY KEY (day_version_id,customer_code,sku_code,product_quality),
|
||
KEY idx_selfop_daily_identity (customer_code,sku_code,day_version_id),
|
||
CONSTRAINT chk_selfop_daily_quantity CHECK ((quality_status='VALID' AND physical_quantity IS NOT NULL AND physical_quantity>=0) OR (quality_status='UNKNOWN' AND physical_quantity IS NULL))
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='历史日末分货主商品品质实物库存';
|