fix(lastleg): accept cabinet pallet identities

This commit is contained in:
2026-09-18 14:14:10 +08:00
parent 2d902308b5
commit 895d0f7639
9 changed files with 49 additions and 15 deletions
@@ -336,6 +336,33 @@ async function convertReceivingContainers(context, producers) {
`sourceContainerBookingId=${id(summary?.sourceContainerBookingId) || 'missing'}, allPlansReady=${summary?.allPlansReady === true}, orders=${totalOrders}, inboundCodes=${inboundCodes}, plans=${existingPlans}, pending=${pendingPlans}; ${trace(summaryResponse)}`, OPTIONS)
if (!convertible) return false
const bookingId = id(summary.sourceContainerBookingId)
const arrivalQueryResponse = await context.requestOverseas('POST',
'/api/platform/v1/last-leg/orders/container-arrival-times/query',
{ sourceContainerBookingIds: [bookingId] }, {}, context.overseasToken)
const arrivalTimes = success(arrivalQueryResponse) && Array.isArray(arrivalQueryResponse.body?.data)
? arrivalQueryResponse.body.data : []
let arrivalTime = arrivalTimes.find((item) => id(item?.sourceContainerBookingId) === bookingId)
context.addStep(MODULE, `读取整柜预计到仓时间 ${containerNo}`, arrivalQueryResponse,
Boolean(arrivalTime) && Number.isInteger(Number(arrivalTime?.version)),
`sourceContainerBookingId=${bookingId}, estimatedWarehouseArrivalAt=${arrivalTime?.estimatedWarehouseArrivalAt || 'missing'}, version=${arrivalTime?.version ?? 'missing'}; ${trace(arrivalQueryResponse)}`,
OPTIONS)
if (!arrivalTime) return false
if (!nonBlank(arrivalTime.estimatedWarehouseArrivalAt)) {
const estimatedWarehouseArrivalAt = new Date(Date.now() + 2 * 86400000).toISOString().slice(0, 19)
const arrivalUpdateResponse = await context.requestOverseas('PUT',
`/api/platform/v1/last-leg/orders/container-summaries/${encodeURIComponent(bookingId)}/expected-arrival`,
{ estimatedWarehouseArrivalAt, expectedVersion: Number(arrivalTime.version),
remark: `${context.marker}-overseas-inbound-plan-prerequisite` },
{ 'Idempotency-Key': `${context.marker}-expected-arrival-${containerNo}`.slice(0, 128) },
context.overseasToken)
arrivalTime = success(arrivalUpdateResponse) ? arrivalUpdateResponse.body?.data : null
context.addStep(MODULE, `维护整柜预计到仓时间 ${containerNo}`, arrivalUpdateResponse,
id(arrivalTime?.sourceContainerBookingId) === bookingId
&& nonBlank(arrivalTime?.estimatedWarehouseArrivalAt),
`sourceContainerBookingId=${bookingId}, estimatedWarehouseArrivalAt=${arrivalTime?.estimatedWarehouseArrivalAt || 'missing'}, version=${arrivalTime?.version ?? 'missing'}; ${trace(arrivalUpdateResponse)}`,
OPTIONS)
if (!arrivalTime || !nonBlank(arrivalTime.estimatedWarehouseArrivalAt)) return false
}
const previewPath = `/api/platform/v1/last-leg/inbound-plans/container-preview?sourceContainerBookingId=${encodeURIComponent(bookingId)}`
const previewResponse = await context.requestOverseas('GET', previewPath,
undefined, {}, context.overseasToken)