diff --git a/scripts/agents-index-contract.ps1 b/scripts/agents-index-contract.ps1 index 89089c664..efa3ed13a 100644 --- a/scripts/agents-index-contract.ps1 +++ b/scripts/agents-index-contract.ps1 @@ -119,7 +119,7 @@ Assert-Contains $rootAgents '用户可见页面、提示和错误不得展示或 Assert-Contains $adminAgents '/loading-plans/{planId}/lifecycle' 'Admin 装柜清单生命周期入口' Assert-Contains $adminAgents '合柜报关 / 同柜不可拆组' 'Admin 合柜报关别名入口' Assert-Contains $clientAgents 'api/inboundCodeAssociations.ts' 'Client 入仓码业务关系入口' -Assert-Contains $pdaAgents 'utils/user-facing.js' '国内 PDA 业务编号入口' +Assert-Contains $pdaAgents 'tests/page-contract.test.mjs' '国内 PDA 页面合同入口' Assert-Contains $overseasPdaAgents 'tests/business-identifiers-ui.test.mjs' '海外 PDA 内部 ID 隔离合同' $orderAgents = Read-RequiredText (Join-Path $backendRoot 'order/AGENTS.md') Assert-Contains $orderAgents '`channelCode` 直接来自 Order/Firstleg 权威快照' 'Order 稳定渠道编码' @@ -232,7 +232,7 @@ Assert-Contains $overseasCompose 'LASTLEG_SECURITY_SERVICE_URL' 'Lastleg 安全 Assert-NotContains $serviceJenkinsfile "'overseas-security-service'" '独立海外安全服务构建入口' # 高变化语义必须在最近指引与服务契约中保持一致。 -Assert-Contains $adminAgents '海外出库、派送、异常与回访(范围外现存代码)' 'Admin 四期范围边界' +Assert-Contains $adminAgents '海外模块内部快速索引(四期/五期)' 'Admin 四五期范围边界' Assert-Contains $pdaAgents 'VITE_H5_API_BASE_URL' '国内 PDA H5 运行配置' Assert-Contains $overseasPdaAgents 'tests/app-icons.test.mjs' '海外 PDA 图标合同' Assert-Contains $backendAgents 'RestClientTraceInterceptor.java' '后端同步 Trace 入口' @@ -248,22 +248,28 @@ Assert-Contains $adminOceanBookingApi '/link-candidates' 'Admin 订舱关联候 Assert-Contains $adminOceanBookingView "label: '订舱柜量'" 'Admin 订舱柜量文案' Assert-Contains $adminOceanBookingViewTest 'without detail N+1' 'Admin 订舱列表无详情扇出合同' -# 已注册但超出当前四期边界的海外出库及派生运营页只能作为范围漂移事实存在,不得进入根正式业务路由。 +# 五期海外出库、派送、异常和回访必须从根路由贯通到 Admin 与 Lastleg;PDA 后端存在不等于设备端已挂载。 $adminOverseasRoutes = Read-RequiredText (Join-Path $workspaceRoot 'apps/admin-web/src/modules/overseas-warehouse/routes.ts') -foreach ($outOfScopeOverseasRoute in @( +$lastlegAgents = Read-RequiredText (Join-Path $backendRoot 'lastleg-service/AGENTS.md') +foreach ($phase5OverseasRoute in @( 'overseas-warehouse/outbounds', 'overseas-warehouse/delivery-orders', 'overseas-warehouse/exception-orders', 'overseas-warehouse/customer-visits' )) { - Assert-Contains $adminOverseasRoutes "path: '$outOfScopeOverseasRoute'" "Admin 范围外现存路由 $outOfScopeOverseasRoute" + Assert-Contains $adminOverseasRoutes "path: '$phase5OverseasRoute'" "Admin 五期正式路由 $phase5OverseasRoute" } -Assert-Contains $adminAgents '海外出库、派送、异常与回访(范围外现存代码)' 'Admin 海外范围漂移警示' -foreach ($outOfScopeRootEntry in @( +foreach ($phase5RootEntry in @( 'OutboundsView.vue', 'DeliveryOrdersView.vue', 'ExceptionOrdersView.vue', 'CustomerVisitsView.vue' )) { - Assert-NotContains $rootAgents $outOfScopeRootEntry '根正式四期业务路由' + Assert-Contains $rootAgents $phase5RootEntry '根正式五期业务路由' } +Assert-Contains $adminAgents '五期海外排车、出库与派送' 'Admin 五期出库派送入口' +Assert-Contains $adminAgents '五期海外异常退回与客户回访' 'Admin 五期异常回访入口' +Assert-Contains $backendAgents '五期海外排车执行、PDA 出库、派送与一件代发' '后端五期出库派送入口' +Assert-Contains $backendAgents '五期一件代发 SKU/箱唛与暂扣跨区协同' '后端五期跨区协同入口' +Assert-Contains $lastlegAgents '五期范围承接排车编辑/取消/发车' 'Lastleg 五期范围边界' +Assert-Contains $overseasPdaAgents '本工程尚未挂载对应 API、页面或工作台能力' '海外 PDA 五期未挂载边界' # Admin 仅对静态资源过期做一次受控恢复,不能吞掉普通路由错误或覆盖未保存编辑。 $navigationRecovery = Read-RequiredText (Join-Path $workspaceRoot 'apps/admin-web/src/core/routing/navigationRecovery.ts') @@ -394,9 +400,9 @@ Assert-Contains $lastlegBusinessOpenApi 'allPlansReady' 'Lastleg 全柜计划就 Assert-Contains $lastlegBusinessOpenApi 'plannedArrivalAt' 'Lastleg 计划到仓冻结事实' Assert-Contains $lastlegAgents 'service/FbaWarehouseValidator.java' 'Lastleg FBA 权威仓校验入口' -# 国内 PDA 部分拣货必须展示真实可用库位事实,并在无库位时保持页面整洁。 -Assert-Contains $pdaAgents 'tests/partial-layout.test.mjs' '国内 PDA 部分拣货布局合同' -Assert-Contains $pdaAgents 'tests/picking-location-display.test.mjs' '国内 PDA 库位展示合同' +# 国内 PDA 当前以页面、API 和作业状态合同覆盖部分拣货及库位不足反馈。 +Assert-Contains $pdaAgents 'tests/page-contract.test.mjs' '国内 PDA 页面合同' +Assert-Contains $pdaAgents 'tests/pda-loading-api.test.mjs' '国内 PDA API 合同' # Maven 聚合声明的全部历史/当前模块必须在后端根指引中可定位。 [xml]$pom = Get-Content -LiteralPath (Join-Path $backendRoot 'pom.xml') -Raw @@ -462,10 +468,8 @@ $criticalPaths = @( 'apps/pda-uniapp/vite.config.js', 'apps/pda-uniapp/utils/app-update.js', 'apps/pda-uniapp/tests/app-update.test.mjs', - 'apps/pda-uniapp/tests/partial-layout.test.mjs', - 'apps/pda-uniapp/tests/picking-location-display.test.mjs', - 'apps/pda-uniapp/utils/user-facing.js', - 'apps/pda-uniapp/tests/user-facing-identifiers.test.mjs', + 'apps/pda-uniapp/tests/page-contract.test.mjs', + 'apps/pda-uniapp/tests/pda-loading-api.test.mjs', 'apps/pda-uniapp/utils/evidence-upload-queue.js', 'apps/pda-overseas-uniapp/package.json', 'apps/pda-overseas-uniapp/src/pages.json', @@ -499,6 +503,19 @@ $criticalPaths = @( 'baiyue-firstleg/lastleg-service/src/main/java/com/baiyue/lastleg/inboundplan/pda/gateway/UnloadPhotoFileGateway.java', 'baiyue-firstleg/lastleg-service/src/main/java/com/baiyue/lastleg/dispatch/controller/DispatchQueryController.java', 'baiyue-firstleg/lastleg-service/src/main/java/com/baiyue/lastleg/dispatch/controller/SmartDispatchController.java', + 'baiyue-firstleg/lastleg-service/src/main/java/com/baiyue/lastleg/dispatch/controller/DispatchController.java', + 'baiyue-firstleg/lastleg-service/src/main/java/com/baiyue/lastleg/dispatch/pda/controller/DispatchPdaController.java', + 'baiyue-firstleg/lastleg-service/src/main/java/com/baiyue/lastleg/delivery/controller/DeliveryTransferController.java', + 'baiyue-firstleg/lastleg-service/src/main/java/com/baiyue/lastleg/delivery/controller/OutboundPdaController.java', + 'baiyue-firstleg/lastleg-service/src/main/java/com/baiyue/lastleg/delivery/controller/MerchantDeliveryController.java', + 'baiyue-firstleg/lastleg-service/src/main/java/com/baiyue/lastleg/exceptionorder/controller/ExceptionOrderController.java', + 'baiyue-firstleg/lastleg-service/src/main/java/com/baiyue/lastleg/customervisit/controller/CustomerVisitController.java', + 'baiyue-firstleg/lastleg-service/src/main/java/com/baiyue/lastleg/dropship/service/DropshipOrderService.java', + 'baiyue-firstleg/lastleg-service/src/main/java/com/baiyue/lastleg/service/InboundOrderDetainedOutboxService.java', + 'baiyue-firstleg/common-event-contract/src/main/java/com/baiyue/common/event/OverseasInboundOrderDetainedChangedV1.java', + 'baiyue-firstleg/firstleg/src/main/java/com/baiyue/firstleg/service/LoadingWorkPalletService.java', + 'baiyue-firstleg/firstleg/src/main/java/com/baiyue/firstleg/service/OverseasInboundOrderDetainedConsumer.java', + 'baiyue-firstleg/order/src/main/java/com/baiyue/order/controller/InternalOrderCargoController.java', 'baiyue-firstleg/lastleg-service/src/main/java/com/baiyue/lastleg/dispatch/entity/DispatchDraftContainer.java', 'baiyue-firstleg/lastleg-service/src/main/java/com/baiyue/lastleg/dispatch/mapper/DispatchDraftContainerMapper.java', 'baiyue-firstleg/firstleg/src/main/java/com/baiyue/firstleg/controller/PlatformSmartLoadingController.java', @@ -693,5 +710,5 @@ if ($failures.Count -gt 0) { exit 1 } -Write-Host "AGENTS 索引合同通过:$checked 项检查,覆盖快速表唯一性、部署单元、前端模块、Client active 路由、业务编号与内部 ID 隔离、装柜清单生命周期、四期范围漂移、仓库主档唯一权威、订舱候选与柜量语义、整柜出仓与船节点单调性、Gateway 覆盖、PDA 页面/运行配置/独立更新/语言预留/能力开关、人工分段验收链、Maven 模块、Lastleg 海外安全投影、同步 Trace、关键入口和排除目录。" -ForegroundColor Green +Write-Host "AGENTS 索引合同通过:$checked 项检查,覆盖快速表唯一性、部署单元、前端模块、Client active 路由、业务编号与内部 ID 隔离、装柜清单生命周期、四/五期范围边界、仓库主档唯一权威、订舱候选与柜量语义、整柜出仓与船节点单调性、Gateway 覆盖、PDA 页面/运行配置/独立更新/语言预留/能力开关、人工分段验收链、Maven 模块、Lastleg 海外安全投影、同步 Trace、关键入口和排除目录。" -ForegroundColor Green exit 0