fix(dispatch): preserve loading groups in atomic draft pre-arrangement

This commit is contained in:
2026-10-05 03:12:44 +08:00
parent e1cb01e6fb
commit 8e46ba6985
9 changed files with 289 additions and 4 deletions
@@ -666,6 +666,17 @@ paths:
content: { application/json: { schema: { $ref: '#/components/schemas/SmartDispatchPreArrange' } } }
responses:
'200': { description: 统一 ApiResponse 包装的预排车详情, content: { application/json: { schema: { $ref: '#/components/schemas/DispatchResponse' } } } }
/api/platform/v1/last-leg/dispatches/drafts/pre-arrange:
post:
summary: 按装车分组原子创建多张预排车单
description: 权限 platform:overseas-warehouse:inbound-order:smart-dispatch;核对当前操作人的完整非空草稿分组、真实来源、唯一客户和海外仓、托位容量。每个装车容器生成独立排车单和PDA任务;任一组失败整批回滚。相同分组再次提交返回对应原单,不能按同一草稿合并不同车辆。
security: [{ bearerAuth: [] }]
requestBody:
required: true
content: { application/json: { schema: { $ref: '#/components/schemas/SmartDispatchPreArrangeDraft' } } }
responses:
'200': { description: 统一ApiResponse包装的分组结果数组, content: { application/json: { schema: { type: array, items: { $ref: '#/components/schemas/SmartDispatchDraftGroupResult' } } } } }
'409': { description: 草稿归属、来源、容量或分组已变化,未部分创建 }
/api/platform/v1/last-leg/dispatches/draft-locks/lock:
post:
summary: 将托盘移入智能排车草稿并立即锁定
@@ -2544,6 +2555,28 @@ components:
returnReceiptId: { type: string, nullable: true, description: 退回实收来源ID,不作为计划托盘ID }
returnReceiptNo: { type: string, nullable: true, description: 退回实收业务编号 }
cartonMarks: { type: string, nullable: true, description: 该托盘箱号,逗号分隔 }
SmartDispatchPreArrangeDraft:
type: object
required: [draftToken, groups]
properties:
draftToken: { type: string, maxLength: 64 }
groups:
type: array
minItems: 1
maxItems: 100
items:
type: object
required: [draftContainerId, planPalletIds, returnReceiptIds]
properties:
draftContainerId: { type: integer, format: int64 }
planPalletIds: { type: array, maxItems: 500, items: { type: integer, format: int64 } }
returnReceiptIds: { type: array, maxItems: 500, items: { type: integer, format: int64 } }
SmartDispatchDraftGroupResult:
type: object
required: [draftContainerId, dispatch]
properties:
draftContainerId: { type: integer, format: int64 }
dispatch: { $ref: '#/components/schemas/DispatchResponse' }
SmartDispatchPreArrange:
type: object
description: planPalletIds与returnReceiptIds是两类正式来源,合计至少一项且最多500项。退回来源仅接受实际入账生成的实收记录,不得用退回实收ID冒充计划托盘ID;同一实物托盘不可重复选择。