feat(lastleg): redispatch returned cargo and reconcile source signatures

This commit is contained in:
2026-10-03 16:06:54 +08:00
parent e740047e03
commit 8700fc3423
39 changed files with 1605 additions and 139 deletions
@@ -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: