fix(pda): submit null position for return carton picks

This commit is contained in:
2026-10-02 17:06:08 +08:00
parent cd9bc815a5
commit f5f64e22e9
2 changed files with 17 additions and 3 deletions
+1 -1
View File
@@ -122,7 +122,7 @@ export function outboundPickPayload(item, position, packages, scannedCode = '')
const skuScan = item.skuCode && scannedCode === item.skuCode
return {
outboundPalletItemId: item.outboundPalletItemId,
inventoryPositionId: position.inventoryPositionId,
inventoryPositionId: position.inventoryPositionId || null,
packages: Number(packages),
cartonMarks: skuScan ? [] : position.cartonMark ? [position.cartonMark] : [],
...(skuScan ? { skuCode: item.skuCode } : {})
+16 -2
View File
@@ -36,13 +36,27 @@ test('return outbound preserves its task type and only permits pallet scans for
const item = { outboundPalletItemId: '12', skuCode: 'SKU-A' }
const position = { inventoryPositionId: '', cartonMark: 'RC-1' }
assert.deepEqual(outboundPickPayload(item, position, 1, 'SKU-A'), {
outboundPalletItemId: '12', inventoryPositionId: '', packages: 1, cartonMarks: [], skuCode: 'SKU-A'
outboundPalletItemId: '12', inventoryPositionId: null, packages: 1, cartonMarks: [], skuCode: 'SKU-A'
})
assert.deepEqual(outboundPickPayload(item, position, 1, 'RC-1'), {
outboundPalletItemId: '12', inventoryPositionId: '', packages: 1, cartonMarks: ['RC-1']
outboundPalletItemId: '12', inventoryPositionId: null, packages: 1, cartonMarks: ['RC-1']
})
})
test('real return-carton DTO remains scannable without inventing a warehouse inventory position or pallet', () => {
const task = normalizeOutboundTask({ task: { taskNo: 'PDA-RETURN', outboundType: 'RETURN_OUTBOUND', status: 'PENDING' },
items: [{ outboundPalletItemId: '12', palletNo: null, packageCount: 1, pickedPackageCount: 0,
positions: [{ inventoryPositionId: null, palletNo: null, cartonMark: 'RC-REAL', inboundCode: 'RT-REAL', availablePackages: 1, pickedPackages: 0 }] }] })
const item = task.items[0], position = item.positions[0]
assert.equal(item.palletNo, '')
assert.equal(position.cartonMark, 'RC-REAL')
assert.equal(position.availablePackages, 1)
assert.deepEqual(outboundPickPayload(item, position, 1, 'RC-REAL'), {
outboundPalletItemId: '12', inventoryPositionId: null, packages: 1, cartonMarks: ['RC-REAL']
})
assert.equal(outboundPickPayload(item, { ...position, inventoryPositionId: '2099999999999999999' }, 1).inventoryPositionId, '2099999999999999999')
})
function storageMock() {
const values = new Map()
globalThis.uni = {