fix: align HTTP acceptance fixtures and pallet permissions

This commit is contained in:
2026-09-14 12:40:40 +08:00
parent e55ab73e61
commit a2ea0ba9e6
15 changed files with 205 additions and 50 deletions
@@ -112,12 +112,20 @@ export async function completeDropshipPalletization(context, { inboundId, inboun
const totalCartons = Number(measurement?.actualPackageCount)
const expectedPalletCount = Number(measurement?.expectedPalletCount)
const taskPath = `/api/platform/v1/first-leg/pda-dropship/tasks/${taskId}?warehouseId=${warehouseId}`
const generatedPallets = Array.isArray(claimed?.pallets) ? claimed.pallets : []
context.assert(MODULE, '审核通过时已按预计托数预生成全部DP托盘码', claimResponse,
generatedPallets.length === expectedPalletCount && generatedPallets.every((item) =>
item?.status === 'OPEN' && Number(item?.cartonCount) === 0 && /^DP-\d{6}-\d{4}$/.test(item?.palletNo || '')),
if (!claimed?.tenantId || claimed.taskStatus !== 'CLAIMED') return null
// Task.pallets contains pallets with actual bound cartons, not unused pre-generated pallets.
const palletResponse = await context.request('GET',
`/api/platform/v1/first-leg/pda-dropship/inbound-orders/${inboundId}/pallets?accountId=${asId(claimed.tenantId)}`)
const palletData = context.apiSuccess(MODULE, '读取本轮入仓单预生成托盘', palletResponse, '', OPTIONS)
const generatedPallets = Array.isArray(palletData) ? palletData : []
const palletSetupValid = Number(claimed.generatedPalletCount) === expectedPalletCount
&& claimed.palletSetupReady === true && generatedPallets.length === expectedPalletCount
&& generatedPallets.every((item) =>
item?.status === 'OPEN' && Number(item?.cartonCount) === 0 && /^DP-\d{6}-\d{4}$/.test(item?.palletNo || ''))
context.assert(MODULE, '审核通过时已按预计托数预生成全部DP托盘码', palletResponse,
palletSetupValid,
`expected=${expectedPalletCount}, generated=${generatedPallets.length}`, OPTIONS)
if (!generatedPallets.length) return null
if (!palletSetupValid) return null
let countedCartons = 0
const sealedCartonMarks = []
@@ -189,13 +197,13 @@ export async function completeDropshipPalletization(context, { inboundId, inboun
context.assert(MODULE, '待组托箱绑定到OPEN托盘且不再游离', bindResponse,
Number(bound?.unboundCartons) === 0 && Number(pallet?.cartonCount) === 1
&& pallet?.status === 'OPEN' && pallet?.palletNo === firstPallet.palletNo
&& bound?.pallets?.length === expectedPalletCount,
&& bound?.pallets?.length === 1,
`unbound=${bound?.unboundCartons ?? 'missing'}, palletStatus=${pallet?.status ?? 'missing'}`, OPTIONS)
const replayBindResponse = await context.request('POST',
`/api/platform/v1/first-leg/pda-dropship/tasks/${taskId}/pallets/bind-pending`, bindPayload)
const replayBind = context.apiSuccess(MODULE, '预生成托盘绑定同键重放', replayBindResponse, '', OPTIONS)
context.assert(MODULE, '预生成托盘绑定重放不新增托盘且计数稳定', replayBindResponse,
replayBind?.pallets?.length === expectedPalletCount
replayBind?.pallets?.length === bound?.pallets?.length
&& Number(replayBind?.boundCartons) === Number(bound?.boundCartons)
&& Number(replayBind?.unboundCartons) === 0, '', OPTIONS)
} else {