fix: link terminal drayage carrier events

This commit is contained in:
2026-09-11 02:20:50 +08:00
parent fe278f2ba6
commit 81f4f9163c
10 changed files with 99 additions and 11 deletions
@@ -130,7 +130,22 @@ export async function run(context) {
return
}
const path = `${BASE}/${encodeURIComponent(target.containerBookingId)}`
const initial = await api(context, 'GET', '卸柜后读取目的港码头拖车聚合', path)
let initialResponse = null
let initialData = null
let pollRequests = 0
for (let attempt = 1; attempt <= 30; attempt += 1) {
pollRequests = attempt
initialResponse = await context.request('GET', path, undefined, context.token)
initialData = success(initialResponse) ? initialResponse.body?.data : null
if (initialData?.status === 'UNLOADED'
&& initialData?.allowedActions?.includes('RECORD_EMPTY_RETURN')) break
await new Promise((resolve) => setTimeout(resolve, 1000))
}
const initial = {
response: initialResponse,
data: context.apiSuccess(MODULE, '卸柜后等待跨区事件并读取目的港码头拖车聚合', initialResponse,
`pollRequests=${pollRequests}; ${trace(initialResponse)}`, OPTIONS),
}
context.assert(MODULE, '卸柜聚合保留提柜事实并开放还柜', initial.response,
id(initial.data?.containerBookingId) === target.containerBookingId
&& id(initial.data?.containerNo) === id(target.completed.containerNo)
@@ -138,7 +153,7 @@ export async function run(context) {
&& initial.data?.status === 'UNLOADED'
&& initial.data?.actualPickupAt === target.pickupAt
&& initial.data?.allowedActions?.includes('RECORD_EMPTY_RETURN'),
`status=${initial.data?.status || 'missing'}, actions=${initial.data?.allowedActions?.join(',') || 'missing'}; ${trace(initial.response)}`, OPTIONS)
`pollRequests=${pollRequests}, status=${initial.data?.status || 'missing'}, actions=${initial.data?.allowedActions?.join(',') || 'missing'}; ${trace(initial.response)}`, OPTIONS)
if (!success(initial.response)) return
const unloadingAt = Date.parse(`${initial.data?.unloadingCompletedAt}Z`)