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
@@ -38,6 +38,11 @@ function monotonicRejected(response) {
&& Boolean(response?.requestId) && Boolean(response?.traceId)
}
function localIso(value) { return value.toISOString().slice(0, 19) }
function localWallIso(value) {
const pad = (part) => String(part).padStart(2, '0')
return `${value.getFullYear()}-${pad(value.getMonth() + 1)}-${pad(value.getDate())}`
+ `T${pad(value.getHours())}:${pad(value.getMinutes())}:${pad(value.getSeconds())}`
}
export function markerOwnedCarrierQuery(context) {
const resource = context?.createdResources?.phase3CarrierScheduleQuery
@@ -167,7 +172,7 @@ export async function runUntilPickupReady(context) {
ownershipMatches, `registered=${queryId}, actual=${id(initialTask?.id) || 'missing'}`, OPTIONS)
if (!ownershipMatches) return
const observedAt = localIso(new Date())
const observedAt = localWallIso(new Date())
const estimatedAt = localIso(new Date(Date.now() + 30 * 24 * 60 * 60_000))
const estimatedBody = manualNodePayload({ expectedVersion: Number(initialTask.version),
standardNode: 'ARRIVED_DESTINATION_PORT', observedAt, estimatedAt, marker: context.marker })
@@ -226,7 +231,7 @@ export async function runUntilPickupReady(context) {
const sameNodeSnapshot = actualProgressSnapshot(detail)
const sameNodeBody = manualNodePayload({ expectedVersion: version,
standardNode: detail.query.query.latestActualNode, observedAt: localIso(new Date()),
standardNode: detail.query.query.latestActualNode, observedAt: localWallIso(new Date()),
actualAt: localIso(new Date(baseActual)), marker: context.marker, index: frozenLatestNodeIndex + 1 })
const sameNodeResponse = await context.request('POST', `${BASE}/${queryId}/manual-nodes`, sameNodeBody,
context.token, { 'Idempotency-Key': `${context.marker}-carrier-same-actual`.slice(0, 128) })
@@ -250,7 +255,7 @@ export async function runUntilPickupReady(context) {
const standardNode = STANDARD_NODES[index]
const actualAt = localIso(new Date(baseActual + index * 60_000))
const body = manualNodePayload({ expectedVersion: version, standardNode,
observedAt: localIso(new Date()), actualAt, marker: context.marker, index: index + 1 })
observedAt: localWallIso(new Date()), actualAt, marker: context.marker, index: index + 1 })
const key = `${context.marker}-carrier-actual-${String(index + 1).padStart(2, '0')}`.slice(0, 128)
const response = await context.request('POST', `${BASE}/${queryId}/manual-nodes`, body,
context.token, { 'Idempotency-Key': key })
@@ -275,7 +280,7 @@ export async function runUntilPickupReady(context) {
const progressedSnapshot = actualProgressSnapshot(detail)
const earlierNode = STANDARD_NODES[index - 1]
const earlierBody = manualNodePayload({ expectedVersion: version, standardNode: earlierNode,
observedAt: localIso(new Date()), actualAt: localIso(new Date(baseActual + (index + 1) * 60_000)),
observedAt: localWallIso(new Date()), actualAt: localIso(new Date(baseActual + (index + 1) * 60_000)),
marker: context.marker, index })
const earlierResponse = await context.request('POST', `${BASE}/${queryId}/manual-nodes`, earlierBody,
context.token, { 'Idempotency-Key': `${context.marker}-carrier-earlier-actual`.slice(0, 128) })