fix(dropship): serialize outbound creation and pick exact carton subsets
This commit is contained in:
@@ -65,11 +65,19 @@ export async function outboundCreationGuards(edge) {
|
||||
|
||||
export async function outboundTaskGuards(edge) {
|
||||
const before = await taskSnapshot(edge)
|
||||
const changed = await request(edge, 'POST', `${BASE}/one-click-dropship?customerId=${edge.customerId}`,
|
||||
{ ...edge.body, recipient: `${edge.body.recipient}-changed` })
|
||||
record(edge, '出库创建同键异载荷返回A0409', changed, changed.body?.code === 'A0409')
|
||||
edge.check(`${edge.label}同键异载荷后出库事实零漂移`, null,
|
||||
JSON.stringify(before) === JSON.stringify(await taskSnapshot(edge)))
|
||||
const first = edge.body.items[0]
|
||||
const changedBodies = [
|
||||
['收件人', { ...edge.body, recipient: `${edge.body.recipient}-changed` }],
|
||||
['备注', { ...edge.body, remark: `${edge.body.remark || ''}-changed` }],
|
||||
['明细', { ...edge.body, items: [{ ...first, packages: first.packages + 1 }, ...edge.body.items.slice(1)] }],
|
||||
['箱唛', { ...edge.body, items: [{ ...first, cartonMarks: [`CHANGED-${edge.context.marker}`, ...first.cartonMarks.slice(1)] }, ...edge.body.items.slice(1)] }],
|
||||
]
|
||||
for (const [field, body] of changedBodies) {
|
||||
const changed = await request(edge, 'POST', `${BASE}/one-click-dropship?customerId=${edge.customerId}`, body)
|
||||
record(edge, `出库创建同键异载荷返回A0409:${field}`, changed, changed.body?.code === 'A0409')
|
||||
edge.check(`${edge.label}同键修改${field}后出库事实零漂移`, null,
|
||||
JSON.stringify(before) === JSON.stringify(await taskSnapshot(edge)))
|
||||
}
|
||||
const path = `/api/pda/v1/last-leg/outbound-tasks/${edge.task.taskNo}`
|
||||
const incomplete = await request(edge, 'POST', `${path}/complete`,
|
||||
{ idempotencyKey: `${edge.body.idempotencyKey}-incomplete` }, true)
|
||||
|
||||
Reference in New Issue
Block a user