fix(acceptance): follow reserved pallet workflows
This commit is contained in:
@@ -803,16 +803,24 @@ export async function run(context) {
|
||||
id(restoredAssignment?.assignment?.assigneeId) === id(currentAssigneeId),
|
||||
`assigneeId=${id(restoredAssignment?.assignment?.assigneeId) || 'missing'}`, OPTIONS)
|
||||
|
||||
const canonicalPick = await request(context, 'POST', batchPath, batchPayload,
|
||||
const canonicalPickPath = dropshipWholePallet
|
||||
? `${pdaBase}/tasks/${canonicalTaskId}/pallets/pick`
|
||||
: batchPath
|
||||
const canonicalPickPayload = dropshipWholePallet
|
||||
? { warehouseId, palletNo: candidate.palletNo, expectedTaskVersion: Number(claimed?.version), operationId: batchKey }
|
||||
: batchPayload
|
||||
const canonicalPick = await request(context, 'POST', canonicalPickPath, canonicalPickPayload,
|
||||
{ 'Idempotency-Key': batchKey })
|
||||
const pickedCanonical = context.apiSuccess(MODULE, '原子提交柜次 PDA 整批拣货', canonicalPick, '', OPTIONS)
|
||||
const pickedCanonical = context.apiSuccess(MODULE,
|
||||
dropshipWholePallet ? '扫描一件代发封托托盘并整体拣货' : '原子提交柜次 PDA 整批拣货',
|
||||
canonicalPick, '', OPTIONS)
|
||||
const awaitingReview = pickedCanonical?.taskStatus === 'LOADING'
|
||||
&& pickedCanonical?.workflowStatus === 'AWAITING_REVIEW'
|
||||
context.assert(MODULE, 'PDA 原子批次完成拣货并等待人工确认', canonicalPick,
|
||||
awaitingReview && pickedCanonical?.items?.every?.((item) => item.itemStatus !== 'PENDING'),
|
||||
`taskStatus=${pickedCanonical?.taskStatus || 'missing'}, workflow=${pickedCanonical?.workflowStatus || 'missing'}`, OPTIONS)
|
||||
|
||||
const canonicalBatchReplay = await request(context, 'POST', batchPath, batchPayload,
|
||||
const canonicalBatchReplay = await request(context, 'POST', canonicalPickPath, canonicalPickPayload,
|
||||
{ 'Idempotency-Key': batchKey })
|
||||
const atomicBatchReplayVerified = canonicalBatchReplay.http === 200 && codeOf(canonicalBatchReplay) === '200'
|
||||
&& id(canonicalBatchReplay.body?.data?.id) === canonicalTaskId
|
||||
@@ -824,12 +832,13 @@ export async function run(context) {
|
||||
`HTTP=${canonicalBatchReplay.http}, code=${codeOf(canonicalBatchReplay)}, taskVersion=${canonicalBatchReplay.body?.data?.version ?? 'missing'}`, OPTIONS)
|
||||
|
||||
const preFinalOperationsResponse = await context.request('GET', `${pdaBase}/tasks/${canonicalTaskId}/operations`)
|
||||
const preFinalOperations = context.apiSuccess(MODULE, '回查下游门禁前原子 Batch 审计', preFinalOperationsResponse, '', OPTIONS)
|
||||
context.assert(MODULE, '最终确认前仅保留 CLAIM/BATCH 且无 COMPLETE_LOADING', preFinalOperationsResponse,
|
||||
const preFinalOperations = context.apiSuccess(MODULE, '回查下游门禁前拣货审计', preFinalOperationsResponse, '', OPTIONS)
|
||||
const canonicalPickAction = dropshipWholePallet ? 'PICK_PALLET' : 'BATCH'
|
||||
context.assert(MODULE, '最终确认前仅保留领取和拣货审计且无 COMPLETE_LOADING', preFinalOperationsResponse,
|
||||
Array.isArray(preFinalOperations)
|
||||
&& preFinalOperations.some((item) => item.actionType === 'CLAIM'
|
||||
&& id(item.operatorId) && Boolean(item.createdAt))
|
||||
&& preFinalOperations.some((item) => item.actionType === 'BATCH'
|
||||
&& preFinalOperations.some((item) => item.actionType === canonicalPickAction
|
||||
&& id(item.operatorId) && Boolean(item.createdAt))
|
||||
&& !preFinalOperations.some((item) => item.actionType === 'COMPLETE_LOADING')
|
||||
&& !preFinalOperations.some((item) => item.actionType === 'REVIEW'),
|
||||
|
||||
Reference in New Issue
Block a user