补齐海外仓和私人地址正常及短少收货真实验收
This commit is contained in:
@@ -203,7 +203,10 @@ export async function verifyMeasurementApprovalReplay(context, input, payload, i
|
||||
}
|
||||
const feeResponse = await context.request('GET',
|
||||
`/api/platform/v1/inbounds/${input.inboundId}/fees/latest?${query(input.tenantId)}`)
|
||||
const fee = context.apiSuccess(MODULE, `${name}原初算费用ID及版本`, feeResponse, '', OPTIONS)
|
||||
const unpriced = feeResponse?.http === 200 && feeResponse.body?.code === 'A0404'
|
||||
const fee = unpriced ? null : context.apiSuccess(MODULE, `${name}原初算费用ID及版本`, feeResponse, '', OPTIONS)
|
||||
if (unpriced) context.assert(MODULE, `${name}初算费用快照待生成`, feeResponse, true,
|
||||
'重放结果须明确保留UNPRICED状态', OPTIONS)
|
||||
const detailsResponse = await context.request('GET',
|
||||
`/api/platform/v1/inbounds/${input.inboundId}/fee-details?accountId=${encodeURIComponent(input.tenantId)}&includeHistory=true`)
|
||||
const feeDetails = context.apiSuccess(MODULE, `${name}全部版本费用明细`, detailsResponse, '', OPTIONS)
|
||||
@@ -213,14 +216,15 @@ export async function verifyMeasurementApprovalReplay(context, input, payload, i
|
||||
&& snapshot.facts.measurement.measureReviewStatus === 'APPROVED'
|
||||
&& reviews.length === total && new Set(reviews.map(item => asId(item.id))).size === total
|
||||
&& approvedReviewCount === 1
|
||||
&& Boolean(asId(fee?.feeId)) && Number.isInteger(Number(fee?.feeVersion)) && Number(fee.feeVersion) >= 1
|
||||
&& Array.isArray(feeDetails) && new Set(feeDetails.map(item => asId(item.id))).size === feeDetails.length
|
||||
context.assert(MODULE, `${name}唯一审核及已生成初算费用事实有效`, detailsResponse, valid,
|
||||
&& (unpriced ? feeDetails.length === 0
|
||||
: Boolean(asId(fee?.feeId)) && Number.isInteger(Number(fee?.feeVersion)) && Number(fee.feeVersion) >= 1)
|
||||
context.assert(MODULE, `${name}唯一审核及初算状态事实有效`, detailsResponse, valid,
|
||||
`reviews=${reviews.length}, feeId=${asId(fee?.feeId)}, feeVersion=${fee?.feeVersion ?? 'missing'}`
|
||||
+ `, feeDetails=${feeDetails?.length ?? 'missing'}, approvedReviewCount=${approvedReviewCount}`
|
||||
+ `, measurementStatus=${snapshot.facts.measurement.measurementStatus}`
|
||||
+ `, measureReviewStatus=${snapshot.facts.measurement.measureReviewStatus}`, OPTIONS)
|
||||
if (!valid) throw new Error('测量审核重放缺少唯一审核或已生成初算费用事实')
|
||||
if (!valid) throw new Error('测量审核重放缺少唯一审核或有效初算状态事实')
|
||||
return { response: snapshot.response, facts: { ...snapshot.facts, reviews, fee, feeDetails } }
|
||||
}
|
||||
const before = await read('审核同键重放前')
|
||||
@@ -231,14 +235,17 @@ export async function verifyMeasurementApprovalReplay(context, input, payload, i
|
||||
const after = await read('审核同键重放后')
|
||||
const beforeDigest = measurementReplayDigest(before.facts)
|
||||
const afterDigest = measurementReplayDigest(after.facts)
|
||||
const unchanged = beforeDigest === afterDigest && replay?.initialPricingSucceeded === true
|
||||
&& asId(replay?.initialFee?.feeId) === asId(before.facts.fee.feeId)
|
||||
&& Number(replay?.initialFee?.feeVersion) === Number(before.facts.fee.feeVersion)
|
||||
const pricingUnchanged = before.facts.fee
|
||||
? replay?.initialPricingSucceeded === true
|
||||
&& asId(replay?.initialFee?.feeId) === asId(before.facts.fee.feeId)
|
||||
&& Number(replay?.initialFee?.feeVersion) === Number(before.facts.fee.feeVersion)
|
||||
: replay?.initialPricingSucceeded === false && replay?.feeStatus === 'UNPRICED' && replay?.initialFee == null
|
||||
const unchanged = beforeDigest === afterDigest && pricingUnchanged
|
||||
context.assert(MODULE, '测量审核重放保持批次费用ID版本全部明细审核及入库历史零新增', after.response,
|
||||
unchanged, `feeId=${asId(after.facts.fee.feeId)}, version=${after.facts.fee.feeVersion}`
|
||||
unchanged, `feeId=${asId(after.facts.fee?.feeId)}, version=${after.facts.fee?.feeVersion ?? 'UNPRICED'}`
|
||||
+ `, reviews=${after.facts.reviews.length}, details=${after.facts.feeDetails.length}`, OPTIONS)
|
||||
return { measurementId: input.measurementId, unchanged, beforeDigest, afterDigest,
|
||||
feeId: asId(after.facts.fee.feeId), feeVersion: after.facts.fee.feeVersion,
|
||||
feeId: asId(after.facts.fee?.feeId), feeVersion: after.facts.fee?.feeVersion ?? null,
|
||||
feeDetailIds: after.facts.feeDetails.map(item => asId(item.id)),
|
||||
reviewIds: after.facts.reviews.map(item => asId(item.id)),
|
||||
inboundHistoryCount: after.facts.inbound.statusHistory.length }
|
||||
|
||||
Reference in New Issue
Block a user