31 lines
1.6 KiB
JavaScript
31 lines
1.6 KiB
JavaScript
const MODULE = 'phase3-order-splitting'
|
|
const SCENARIO = 'parent-child-multi-container-consolidation'
|
|
|
|
export async function run(context) {
|
|
const fixture = context.createdResources?.phase3Loading
|
|
|| context.createdResources?.phase3ContainerLoading
|
|
const metadata = {
|
|
fixture: {
|
|
available: Boolean(fixture?.inboundId && fixture?.containerBookingId),
|
|
marker: fixture?.marker || null,
|
|
inboundId: fixture?.inboundId || null,
|
|
containerBookingId: fixture?.containerBookingId || null,
|
|
},
|
|
activation: {
|
|
state: 'pending-public-contract',
|
|
assertions: [
|
|
'父单与自动剩余子单关系可由 HTTP 查询',
|
|
'已装数量 + 自动子单剩余数量 = 拆分前数量',
|
|
'同一订单可分配多个柜次且同柜可包含多个订单',
|
|
'子单仅允许一层且继续拆分被拒绝',
|
|
],
|
|
},
|
|
}
|
|
context.addCoverageGap(MODULE, SCENARIO, '父/子订单拆分、装载数量守恒与剩余自动子订单',
|
|
'PDA partial/skip 内部结算已实现,但公开 InboundOrderSummary/Detail 未返回 inboundRole、parentInboundId、rootInboundId、splitStatus 或拆分批次,HTTP 总控无法证明父子关系和守恒,不能用同 orderId 的记录数量伪造成功',
|
|
'contract-gap', metadata)
|
|
context.addCoverageGap(MODULE, SCENARIO, '一单多柜与多单拼柜',
|
|
'SmartLoadingController 支持按明细分配,但当前公开契约没有订单-多柜/柜次-多订单关系聚合,也没有本轮安全 fixture 一次生成两个可装柜入库单;待真实查询 DTO 与专用 fixture 接口公开后转为断言',
|
|
'contract-gap', metadata)
|
|
}
|