This commit is contained in:
2026-09-02 14:39:28 +08:00
parent b6800a48c6
commit 9ea4ccb9b1
8 changed files with 34 additions and 10 deletions
@@ -133,9 +133,18 @@ function routes(context, merchantToken) {
}
export async function prepare(context) {
const outerMarker = context.marker
const restore = await context.preparePhase3LoadingFixture('-CUSTOMS-MIXED', false, {
primary: 'BUY_DECLARATION', incremental: 'TAX_REFUND',
})
const executionMarker = `${outerMarker}-CUSTOMS-MIXED`
context.marker = executionMarker
if (context.createdResources?.orchestrationFixtures?.phase3Loading) {
context.createdResources.orchestrationFixtures.phase3Loading.marker = executionMarker
}
if (context.createdResources?.orchestrationFixtures?.phase3LoadingIncremental) {
context.createdResources.orchestrationFixtures.phase3LoadingIncremental.marker = executionMarker
}
const loading = await import('./phase3-loading.mjs')
await context.executeModule(`${MODULE}-loading`, () => loading.run(context))
const finalize = await import('./phase3-loading-finalize.mjs')
@@ -143,6 +152,7 @@ export async function prepare(context) {
const source = context.createdResources?.phase3Loading
if (!source?.loadingPlanId || !source?.containerBookingId || source?.finalStatus !== 'LOADED') {
context.marker = outerMarker
restore()
throw new Error(`混合柜未进入LOADED: planId=${id(source?.loadingPlanId) || 'missing'}, status=${source?.finalStatus || 'missing'}`)
}
@@ -157,6 +167,7 @@ export async function prepare(context) {
buy.length > 0 && refund.length > 0 && inbounds.every((item) => /^\d{16,}$/.test(id(item.inboundId))),
`buy=${buy.length}, tax=${refund.length}, inbounds=${inbounds.length}`, OPTIONS)
if (!buy.length || !refund.length) {
context.marker = outerMarker
restore()
throw new Error(`正式装柜API未形成混合柜: buy=${buy.length}, tax=${refund.length}`)
}
@@ -178,10 +189,11 @@ export async function prepare(context) {
const buyInboundIds = new Set(buy.map((item) => id(item.inboundId)))
const planBuyRows = planItems.filter((item) => buyInboundIds.has(id(item.inboundId))).length
const expectedBuyRows = planBuyRows > 0 ? planBuyRows : buy.length
context.marker = outerMarker
context.createdResources.phase3ContainerCustomsFixtures = {
marker: context.marker, requestedKinds: ['MIXED'],
marker: outerMarker, requestedKinds: ['MIXED'],
containers: [{
kind: 'MIXED', marker: context.marker, status: 'LOADED', autoDispatchMode: 'IMMEDIATE',
kind: 'MIXED', marker: outerMarker, status: 'LOADED', autoDispatchMode: 'IMMEDIATE',
loadingPlanId: id(source.loadingPlanId), containerBookingId: id(source.containerBookingId),
oceanBookingId: id(source.oceanBookingId), containerNo: source.containerNo,
inbounds: inbounds.map((item) => ({
@@ -194,6 +206,7 @@ export async function prepare(context) {
context.context.phase3ContainerCustomsRoutes = routes(context, merchantToken)
return () => {
delete context.context.phase3ContainerCustomsRoutes
context.marker = outerMarker
restore()
}
}