feat(lastleg): redispatch returned cargo and reconcile source signatures
This commit is contained in:
@@ -1763,6 +1763,8 @@ CREATE TABLE IF NOT EXISTS ll_dispatch_item (
|
||||
source_business_type VARCHAR(32) NULL COMMENT '来源业务类型',
|
||||
source_business_no VARCHAR(128) 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),
|
||||
@@ -1794,6 +1796,8 @@ SET @ddl = (SELECT IF(EXISTS (SELECT 1 FROM information_schema.columns WHERE tab
|
||||
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 '更新时间',
|
||||
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),
|
||||
@@ -1862,10 +1866,39 @@ CREATE TABLE IF NOT EXISTS ll_dispatch_pda_operation (
|
||||
PRIMARY KEY (id), UNIQUE KEY uk_ll_dispatch_pda_operation_key (customer_id,idempotency_key)
|
||||
) ENGINE=InnoDB 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 IF NOT EXISTS ll_dispatch_pda_pick_order (
|
||||
id BIGINT NOT NULL COMMENT '主键ID', customer_id VARCHAR(128) NOT NULL COMMENT '客户租户ID', pick_id BIGINT NOT NULL COMMENT 'PDA拣货记录ID',
|
||||
receipt_id BIGINT NOT NULL COMMENT '入仓实收记录ID', order_id BIGINT NOT NULL COMMENT '订单ID', packages BIGINT NOT NULL COMMENT '本次操作箱数',
|
||||
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 '明确选用的真实退回入仓来源',
|
||||
KEY idx_dispatch_pick_return_receipt(customer_id,return_receipt_id),
|
||||
CONSTRAINT chk_dispatch_pick_receipt_source CHECK((receipt_id IS NOT NULL AND return_receipt_id IS NULL) OR (receipt_id IS NULL AND return_receipt_id IS NOT NULL)),
|
||||
|
||||
|
||||
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 COMMENT='PDA拣货订单归属记录';
|
||||
|
||||
@@ -2401,21 +2401,28 @@ components:
|
||||
packageCount: { type: integer }
|
||||
volumeCbm: { type: number }
|
||||
sourceStage: { type: string, enum: [PLAN, RECEIVED] }
|
||||
sourceType: { type: string, enum: [INBOUND_PLAN, RETURN_RECEIPT], description: 正式实物来源类型 }
|
||||
returnReceiptId: { type: string, nullable: true, description: 退回实收来源ID,不作为计划托盘ID }
|
||||
returnReceiptNo: { type: string, nullable: true, description: 退回实收业务编号 }
|
||||
cartonMarks: { type: string, nullable: true, description: 该托盘箱号,逗号分隔 }
|
||||
SmartDispatchPreArrange:
|
||||
type: object
|
||||
required: [planPalletIds]
|
||||
description: planPalletIds与returnReceiptIds是两类正式来源,合计至少一项且最多500项。退回来源仅接受实际入账生成的实收记录,不得用退回实收ID冒充计划托盘ID;同一实物托盘不可重复选择。
|
||||
properties:
|
||||
planPalletIds: { type: array, minItems: 1, maxItems: 500, uniqueItems: true, items: { type: string } }
|
||||
planPalletIds: { type: array, maxItems: 500, uniqueItems: true, items: { type: string } }
|
||||
returnReceiptIds: { type: array, maxItems: 500, uniqueItems: true, items: { type: string }, description: 原订单实际退回入账来源ID }
|
||||
fbaAppointmentNo: { type: string, nullable: true, maxLength: 64 }
|
||||
fbaAppointmentStatus: { type: string, nullable: true, maxLength: 32, default: PENDING }
|
||||
vehicleAppointmentStatus: { type: string, nullable: true, maxLength: 32, default: PENDING }
|
||||
draftToken: { type: string, nullable: true, maxLength: 64, description: 拖入托盘时使用的智能排车草稿标识 }
|
||||
SmartDispatchDraftPallet:
|
||||
type: object
|
||||
required: [planPalletId, draftToken]
|
||||
required: [draftToken]
|
||||
description: planPalletId和returnReceiptId恰有一个;退回来源必须声明sourceType=RETURN_RECEIPT。并发占用始终按客户及实物托盘锁定。
|
||||
properties:
|
||||
planPalletId: { type: string }
|
||||
returnReceiptId: { type: string }
|
||||
sourceType: { type: string, enum: [INBOUND_PLAN, RETURN_RECEIPT] }
|
||||
draftToken: { type: string, minLength: 1, maxLength: 64 }
|
||||
draftContainerId: { type: string, nullable: true, description: 托盘所在草稿车厢ID }
|
||||
SmartDispatchDraftRelease:
|
||||
|
||||
Reference in New Issue
Block a user