This commit is contained in:
2026-10-19 17:56:36 +08:00
parent bb917c954c
commit dcfba1053c
232 changed files with 15655 additions and 6005 deletions
+157 -45
View File
@@ -1103,8 +1103,8 @@ CREATE TABLE ll_fleet_trip (
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,含承担的返程转场',
planned_departure_at DATETIME(3) NULL COMMENT '计划发车UTC,空单草稿可未填写,提交审核前核齐',
expected_driver_end_at DATETIME(3) NULL COMMENT '司机预计任务结束UTC,含返程转场,草稿可未填写',
departed_at DATETIME(3) NULL COMMENT '实际发车UTC',
completed_at DATETIME(3) NULL COMMENT '实际运输完成UTC',
stops_json JSON NOT NULL COMMENT '按顺序保存的路线站点',
@@ -1276,20 +1276,18 @@ CREATE TABLE ll_fleet_resource_assignment (
) 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 '共享运输车次业务编号',
dispatch_id BIGINT NOT NULL COMMENT '整车排车单内部引用,一车一个有效资源关联',
dispatch_no VARCHAR(64) 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),
UNIQUE KEY uk_fleet_trip_dispatch_trip (trip_id),
CONSTRAINT fk_fleet_trip_dispatch_trip FOREIGN KEY (trip_id) REFERENCES ll_fleet_trip(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='车次与各客户排车单的有效关联,解除前快照保留在车次历史';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='整车排车与本趟资源记录一对一关联,历史独立保留';
CREATE TABLE ll_fleet_trip_history (
id BIGINT NOT NULL COMMENT '内部主键',
@@ -1892,38 +1890,68 @@ CREATE TABLE IF NOT EXISTS ll_inbound_stock_receipt (
) ENGINE=InnoDB COMMENT='入仓PDA库存实收快照';
CREATE TABLE IF NOT EXISTS ll_dispatch_order (
id BIGINT NOT NULL COMMENT '主键ID',
customer_id VARCHAR(128) NOT NULL COMMENT '客户租户ID',
dispatch_no VARCHAR(64) NOT NULL COMMENT '派车单号',
overseas_warehouse_id VARCHAR(128) NULL COMMENT '海外仓ID',
overseas_warehouse_name VARCHAR(255) NULL COMMENT '海外仓名称快照',
vehicle_plate VARCHAR(64) NULL COMMENT '车牌号',
driver_name VARCHAR(128) NULL COMMENT '司机姓名',
driver_phone VARCHAR(64) NULL COMMENT '司机电话',
carrier_name VARCHAR(255) NULL COMMENT '承运商名称',
route VARCHAR(255) NULL COMMENT '运输路线',
depart_at DATETIME(3) NULL COMMENT '发车时间',
fba_appointment_no VARCHAR(64) NULL COMMENT 'FBA预约号',
fba_appointment_status VARCHAR(32) NOT NULL DEFAULT 'PENDING' COMMENT 'FBA预约状态',
vehicle_appointment_status VARCHAR(32) NOT NULL DEFAULT 'PENDING' COMMENT '车辆预约状态',
id BIGINT NOT NULL COMMENT '整车排车主单内部主键',
dispatch_no VARCHAR(64) NOT NULL COMMENT '真实排车业务号',
trip_id BIGINT NOT NULL COMMENT '本趟唯一车辆资源记录ID',
overseas_warehouse_id VARCHAR(128) NOT NULL COMMENT '真实起运海外仓ID',
overseas_warehouse_code VARCHAR(128) NULL COMMENT '起运海外仓编码快照',
overseas_warehouse_name VARCHAR(255) NULL COMMENT '起运海外仓名称快照',
status VARCHAR(16) NOT NULL DEFAULT 'ACTIVE' COMMENT '主单生命周期:ACTIVE有效、CANCELLED已取消',
stage VARCHAR(32) NOT NULL DEFAULT 'BEFORE_LOADING' COMMENT '作业阶段:BEFORE_LOADING装车前、LOADING装车中、AFTER_LOADING装车后、DELIVERING派送中、DELIVERED派送完成',
record_version BIGINT NOT NULL DEFAULT 0 COMMENT '整车公共并发版本,首版为零',
cargo_revision BIGINT NOT NULL DEFAULT 0 COMMENT '本趟货物修订版本',
cargo_hash CHAR(64) NOT NULL COMMENT '当前整车真实货物及来源摘要',
review_state VARCHAR(32) NOT NULL DEFAULT 'DRAFT' COMMENT '审核子流程当前状态',
review_round BIGINT NOT NULL DEFAULT 0 COMMENT '当前审核轮次',
review_basis_hash CHAR(64) NULL COMMENT '本审核轮次核对的货物和资源依据摘要',
dispatch_review_json JSON NULL COMMENT '当前调度审核事实快照',
loading_review_json JSON NULL COMMENT '当前理货审核事实快照',
resources_json JSON NULL COMMENT '本趟主档或临时车辆司机的真实资源快照',
vehicle_plate VARCHAR(64) NULL COMMENT '本趟车辆真实车牌快照',
route VARCHAR(2000) NULL COMMENT '真实运输路线展示快照',
planned_departure_at DATETIME(3) NULL COMMENT '计划发车时间,草稿未知时为空',
estimated_arrival_at DATETIME(3) NULL COMMENT '预计到达时间',
status VARCHAR(32) 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) NULL COMMENT '部分完成原因',
created_by VARCHAR(128) 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 '更新时间',
loading_completed_at DATETIME(3) NULL COMMENT '实际确认装车完成时间',
loading_completion_hash CHAR(64) NULL COMMENT '实际装车完成事实摘要',
loading_confirmation_json JSON NULL COMMENT '装车确认时逐实托真实实载完整快照',
arrangement_key VARCHAR(128) NULL COMMENT '本车唯一派送安排事实标识',
arrangement_business_hash CHAR(64) NULL COMMENT '本车派送安排业务内容摘要',
departed_at DATETIME(3) NULL COMMENT '本趟实际发车时间',
delivery_completed_at DATETIME(3) NULL 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 '本车实际发运箱数',
remark VARCHAR(2000) NULL COMMENT '排车业务备注',
created_by VARCHAR(128) 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 COMMENT='尾程派车单';
UNIQUE KEY uk_dispatch_trip (trip_id),
KEY idx_ll_dispatch_order_list (overseas_warehouse_id,status,stage,created_at,id),
KEY idx_ll_dispatch_order_vehicle (vehicle_plate,status,created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='平台整车排车作业主单,客户归属在真实明细';
CREATE TABLE IF NOT EXISTS ll_dispatch_history (
id BIGINT NOT NULL COMMENT '排车历史内部主键',
dispatch_id BIGINT NOT NULL COMMENT '本次历史所属整车主单ID',
record_version BIGINT NOT NULL COMMENT '操作完成后的整车公共版本',
action VARCHAR(40) NOT NULL COMMENT '本次真实业务动作',
operator_id VARCHAR(128) NOT NULL COMMENT '可信操作主体ID',
reason VARCHAR(2000) NULL COMMENT '审核驳回或变更原因',
snapshot_json JSON NOT NULL COMMENT '动作完成当时的完整主单事实快照',
occurred_at DATETIME(3) NOT NULL COMMENT '真实操作发生时间',
PRIMARY KEY (id),
KEY idx_dispatch_history_version (dispatch_id,record_version,id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='整车排车版本与审核轮次的追加历史';
CREATE TABLE IF NOT EXISTS ll_dispatch_item (
customer_name VARCHAR(255) NULL COMMENT '本条真实客户名称快照',
source_key VARCHAR(255) NOT NULL COMMENT '本条货物稳定权威来源键',
source_version CHAR(64) NOT NULL COMMENT '选货时核对的真实来源版本摘要',
source_snapshot_json JSON NOT NULL COMMENT '本条货物不可变来源及关联事实快照',
id BIGINT NOT NULL COMMENT '主键ID',
dispatch_order_id BIGINT NOT NULL COMMENT '派车单ID',
customer_id VARCHAR(128) NOT NULL COMMENT '客户租户ID',
@@ -1931,7 +1959,7 @@ CREATE TABLE IF NOT EXISTS ll_dispatch_item (
plan_pallet_id BIGINT NULL COMMENT '计划托盘ID',
warehouse_pallet_id BIGINT NULL COMMENT '仓库实物托盘ID',
order_id BIGINT NULL COMMENT '订单ID',
order_no VARCHAR(64) NULL COMMENT '订单号',
order_no VARCHAR(128) NULL COMMENT '本条真实来源订单业务号快照',
order_refs VARCHAR(2000) NULL COMMENT '关联订单信息',
inbound_code VARCHAR(128) NULL COMMENT '入仓单号快照',
pallet_no VARCHAR(128) NOT NULL COMMENT '托盘号',
@@ -1975,6 +2003,7 @@ SET @ddl = (SELECT IF(EXISTS (SELECT 1 FROM information_schema.columns WHERE tab
customer_id VARCHAR(128) NOT NULL COMMENT '客户租户ID',
source_pallet_key VARCHAR(160) NOT NULL COMMENT '来源托盘业务键',
active_key VARCHAR(160) NULL COMMENT '生效中的资源排他键',
active_warehouse_pallet_id BIGINT NULL COMMENT '活动占用的真实仓库托盘,释放后为空,跨客户及来源别名唯一',
plan_id BIGINT NULL COMMENT '入仓计划ID',
plan_pallet_id BIGINT NULL COMMENT '计划托盘ID',
warehouse_pallet_id BIGINT NULL COMMENT '仓库实物托盘ID',
@@ -1992,15 +2021,19 @@ SET @ddl = (SELECT IF(EXISTS (SELECT 1 FROM information_schema.columns WHERE tab
PRIMARY KEY (id),
UNIQUE KEY uk_ll_dispatch_active_pallet (customer_id,active_key),
UNIQUE KEY uk_ll_dispatch_active_warehouse_pallet (active_warehouse_pallet_id),
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 COMMENT='派车托盘排他锁';
CREATE TABLE IF NOT EXISTS ll_dispatch_draft (
id BIGINT NOT NULL COMMENT '主键ID', draft_token VARCHAR(64) NOT NULL COMMENT '智能排车草稿随机标识',
customer_id VARCHAR(128) NULL COMMENT '客户租户ID', operator_id VARCHAR(128) NULL COMMENT '草稿操作人ID',
plan_ids_json VARCHAR(4000) NULL COMMENT '所选入仓计划ID列表JSON', containers_json LONGTEXT NULL COMMENT '草稿装车布局JSON快照',
status VARCHAR(32) NOT NULL DEFAULT 'ACTIVE' COMMENT '草稿状态', expires_at DATETIME(3) NULL COMMENT '草稿失效时间',
operator_id VARCHAR(128) NOT NULL COMMENT '草稿拥有者身份,仅本人可维护及恢复命令',
warehouse_id BIGINT NOT NULL COMMENT '本草稿唯一起运公共仓库引用',
record_version BIGINT NOT NULL DEFAULT 0 COMMENT '草稿并发版本,显式零版本合法',
sources_json LONGTEXT NOT NULL COMMENT '服务端核验的真实来源及客户版本快照数组',
plan_ids_json LONGTEXT NULL COMMENT '所选入仓计划ID列表JSON,容纳最多五百个完整长整型引用', containers_json LONGTEXT NULL COMMENT '草稿装车布局JSON快照',
status VARCHAR(32) NOT NULL DEFAULT 'ACTIVE' COMMENT '草稿状态:ACTIVE有效、RELEASED释放、CONVERTED已整批转换', expires_at DATETIME(3) NULL COMMENT '草稿失效时间',
released_at DATETIME(3) 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)
@@ -2009,10 +2042,25 @@ SET @ddl = (SELECT IF(EXISTS (SELECT 1 FROM information_schema.columns WHERE tab
CREATE TABLE IF NOT EXISTS ll_dispatch_draft_container (
id BIGINT NOT NULL COMMENT '主键ID', draft_id BIGINT NOT NULL COMMENT '智能排车草稿ID',
draft_token VARCHAR(64) NOT NULL COMMENT '智能排车草稿随机标识', sequence_no INT NOT NULL COMMENT '草稿车厢顺序号',
source_keys_json LONGTEXT 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),
UNIQUE KEY uk_ll_dispatch_draft_container_sequence(draft_id,sequence_no),
KEY idx_ll_dispatch_draft_container_token(draft_token)
) ENGINE=InnoDB COMMENT='智能排车草稿装车托盘';
) ENGINE=InnoDB COMMENT='智能排车草稿装车容器,每个非空容器转换一张整车单';
CREATE TABLE IF NOT EXISTS ll_dispatch_draft_command (
id BIGINT NOT NULL COMMENT '草稿命令内部主键',
idempotency_key VARCHAR(128) NOT NULL COMMENT '草稿操作全局唯一幂等键',
operator_id VARCHAR(64) NOT NULL COMMENT '原命令操作主体,恢复必须为本人',
action VARCHAR(32) NOT NULL COMMENT '草稿创建、维护、选货、释放或转换动作',
target_token VARCHAR(128) NOT NULL COMMENT '命令目标草稿标识或创建范围标识',
request_hash CHAR(64) NOT NULL COMMENT '原动作、主体、版本及完整载荷摘要',
result_json LONGTEXT NULL COMMENT '本事务完成后保存的不可变原结果,不提交空结果',
created_at DATETIME(3) NOT NULL COMMENT '命令创建UTC时间',
PRIMARY KEY (id),
UNIQUE KEY uk_ll_dispatch_draft_command_key (idempotency_key)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='智能排车草稿持久命令及原结果';
SET @ddl = (SELECT IF(EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='ll_dispatch_pallet_lock' AND column_name='draft_container_id'), 'SELECT 1', 'ALTER TABLE ll_dispatch_pallet_lock ADD COLUMN draft_container_id BIGINT NULL COMMENT ''智能排车草稿装车托盘ID'' AFTER dispatch_order_id'));
PREPARE dispatch_draft_container_column_stmt FROM @ddl; EXECUTE dispatch_draft_container_column_stmt; DEALLOCATE PREPARE dispatch_draft_container_column_stmt;
@@ -2030,15 +2078,15 @@ SET @ddl = (SELECT IF(EXISTS (SELECT 1 FROM information_schema.columns WHERE tab
PREPARE dispatch_schema_stmt FROM @ddl; EXECUTE dispatch_schema_stmt; DEALLOCATE PREPARE dispatch_schema_stmt;
CREATE TABLE IF NOT EXISTS ll_dispatch_pda_task (
id BIGINT NOT NULL COMMENT '主键ID', customer_id VARCHAR(128) NOT NULL COMMENT '客户租户ID', dispatch_order_id BIGINT NOT NULL COMMENT '派车单ID',
id BIGINT NOT NULL COMMENT '主键ID', dispatch_order_id BIGINT NOT NULL COMMENT '唯一整车排车单引用,客户归属保留在扫码明细',
task_no VARCHAR(64) NOT NULL COMMENT 'PDA任务号', status VARCHAR(32) NOT NULL COMMENT '业务状态', operator_id VARCHAR(128) NULL COMMENT '操作人ID',
warehouse_id VARCHAR(128) NOT NULL COMMENT 'Token绑定的海外仓库ID',
operator_name VARCHAR(128) NULL COMMENT '操作人姓名', pushed_at DATETIME(3) NOT NULL COMMENT '任务下发时间', completed_at DATETIME(3) 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),
PRIMARY KEY (id), UNIQUE KEY uk_ll_dispatch_pda_task_dispatch (dispatch_order_id),
UNIQUE KEY uk_ll_dispatch_pda_task_no (task_no)
) ENGINE=InnoDB COMMENT='派车PDA拣货任务';
) ENGINE=InnoDB COMMENT='整车PDA拣货任务,一张排车单仅一条任务';
CREATE TABLE IF NOT EXISTS ll_dispatch_pda_pick (
id BIGINT NOT NULL COMMENT '主键ID', customer_id VARCHAR(128) NOT NULL COMMENT '客户租户ID', task_id BIGINT NOT NULL COMMENT 'PDA任务ID',
@@ -2116,13 +2164,77 @@ CREATE TABLE IF NOT EXISTS ll_outbound_order (
KEY idx_ll_outbound_list (customer_id,status,created_at)
) ENGINE=InnoDB COMMENT='尾程出库单';
CREATE TABLE IF NOT EXISTS ll_dispatch_command (
id BIGINT NOT NULL COMMENT '持久命令内部主键',
dispatch_id BIGINT NOT NULL COMMENT '命令所属整车排车主单ID',
dispatch_no VARCHAR(64) NOT NULL COMMENT '命令所属真实排车业务号',
action VARCHAR(40) NOT NULL COMMENT '本次整车作业动作',
operator_id VARCHAR(128) NOT NULL COMMENT '原始可信操作主体ID',
idempotency_key VARCHAR(255) NOT NULL COMMENT '跨操作主体全局唯一的原始请求键',
record_version BIGINT NOT NULL COMMENT '原请求明确提交的排车版本,零为合法首版',
command_hash CHAR(64) NOT NULL COMMENT '绑定原主体动作业务号版本和完整载荷的严格摘要',
result_json LONGTEXT NOT NULL COMMENT '按动作类型恢复的不可变成功结果JSON',
created_at DATETIME(3) NOT NULL COMMENT '成功命令记录时间,使用UTC',
PRIMARY KEY (id),
UNIQUE KEY uk_dispatch_command_key (idempotency_key),
KEY idx_dispatch_command_history (dispatch_id,created_at,id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='整车排车公共持久命令账本';
CREATE TABLE IF NOT EXISTS ll_dispatch_delivery_arrangement (
id BIGINT NOT NULL COMMENT '安排事实内部主键',
dispatch_order_id BIGINT NOT NULL COMMENT '唯一整车排车主单ID',
dispatch_no VARCHAR(128) NOT NULL COMMENT '真实排车业务号',
arrangement_key VARCHAR(128) NOT NULL COMMENT '本次唯一安排业务事实标识',
business_hash CHAR(64) NOT NULL COMMENT '排除操作者及纯并发版本的安排业务摘要',
cargo_hash CHAR(64) NOT NULL COMMENT '本车实际拣货来源摘要',
loading_completion_hash CHAR(64) NOT NULL COMMENT '装车完成事实摘要',
original_command_key VARCHAR(255) NOT NULL COMMENT '首次安排的全局请求键',
original_operator_id VARCHAR(128) NOT NULL COMMENT '首次安排操作主体',
result_json JSON NOT NULL COMMENT '全部客户出库及客户目的地派送不可变结果',
cargo_json JSON NOT NULL COMMENT '逐客户逐拣货归属的不可变真实来源',
created_at DATETIME(3) NOT NULL COMMENT '本次安排实际创建时间',
PRIMARY KEY (id),
UNIQUE KEY uk_dispatch_arrangement_dispatch (dispatch_order_id),
UNIQUE KEY uk_dispatch_arrangement_key (arrangement_key),
UNIQUE KEY uk_dispatch_arrangement_command (original_command_key)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='整车排车唯一派送安排事实';
CREATE TABLE IF NOT EXISTS ll_delivery_facts_changed (
id BIGINT NOT NULL COMMENT '持久信号内部主键',
customer_id VARCHAR(128) NOT NULL COMMENT '真实签收货物客户ID',
dispatch_id BIGINT NOT NULL COMMENT '整车排车主单ID',
dispatch_no VARCHAR(128) NOT NULL COMMENT '真实排车业务号',
delivery_id BIGINT NOT NULL COMMENT '本客户派送单ID',
delivery_no VARCHAR(128) NOT NULL COMMENT '真实派送业务号',
delivery_version BIGINT NOT NULL COMMENT '触发信号的真实派送版本',
facts_hash CHAR(64) NOT NULL COMMENT '该版本真实签收事实摘要',
occurred_at DATETIME(3) NOT NULL COMMENT '签收事实实际发生时间',
state VARCHAR(16) NOT NULL DEFAULT 'PENDING' COMMENT '待核对PENDING或已核对PROCESSED',
attempt_count INT NOT NULL DEFAULT 0 COMMENT '已记录的汇总失败次数',
next_attempt_at DATETIME(3) NOT NULL COMMENT '下次可重试时间',
last_error_code VARCHAR(64) NULL COMMENT '最近失败诊断码不保存敏感异常正文',
processed_at DATETIME(3) NULL COMMENT '与主阶段汇总同事务确认时间',
PRIMARY KEY (id),
UNIQUE KEY uk_delivery_fact_version (customer_id,delivery_id,delivery_version),
KEY idx_delivery_fact_due (state,next_attempt_at,id),
KEY idx_delivery_fact_dispatch (dispatch_id,state,id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='正常签收事实变化的本地持久待汇总信号';
CREATE TABLE IF NOT EXISTS ll_outbound_pallet_item (
dispatch_item_id BIGINT NULL COMMENT '本次整车排车作业明细ID',
source_attribution_id BIGINT NULL COMMENT '不可变PDA真实拣货归属ID',
source_order_id BIGINT NULL COMMENT '本行真实来源尾程订单ID',
source_inventory_position_id BIGINT NULL COMMENT '本行实际拣货库存仓位ID',
source_return_receipt_id BIGINT NULL COMMENT '本行实际退回再派实收记录ID',
source_return_carton_id BIGINT NULL COMMENT '本行实际退货换标来源箱ID',
carton_marks VARCHAR(4000) NULL COMMENT '本行真实拣货箱唛快照',
id BIGINT NOT NULL COMMENT '主键ID', customer_id VARCHAR(128) NOT NULL COMMENT '客户租户ID', outbound_order_id BIGINT NOT NULL COMMENT '出库单ID',
warehouse_pallet_id BIGINT NULL COMMENT '仓库实物托盘ID', pallet_no VARCHAR(128) NULL COMMENT '托盘号',
destination_warehouse_id VARCHAR(128) NULL COMMENT '目的仓ID', destination_warehouse_code VARCHAR(128) NULL COMMENT '目的仓编码快照', destination_warehouse_name VARCHAR(255) 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 COMMENT '材积重(千克)', volume_cbm DECIMAL(18,4) NULL COMMENT '体积(立方米),来源未确认时为空', picked_package_count INT NOT NULL DEFAULT 0 COMMENT '已拣箱数', status VARCHAR(32) NOT NULL DEFAULT 'WAIT_PICK' COMMENT '拣货状态', sku_code VARCHAR(128) NULL COMMENT '一件代发SKU', return_sku_quantity BIGINT NULL COMMENT '退货单SKU本来源计划出库件数快照,NULL为历史整箱出库', order_refs VARCHAR(2000) NULL COMMENT '关联订单信息', inbound_code VARCHAR(128) 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),
UNIQUE KEY uk_outbound_source_attribution (customer_id,source_attribution_id),
KEY idx_ll_outbound_pallet_list (customer_id,outbound_order_id), KEY idx_ll_outbound_pallet_destination (customer_id,destination_warehouse_code)
) ENGINE=InnoDB COMMENT='出库托盘明细';