3.8 KiB
3.8 KiB
海外仓前端剩余契约与环境缺口
已接请求、权限、客户作用域和错误承载见 API_INTEGRATION_MATRIX.md。本文件只保留当前仍影响真实联调或原型完整度的差异,不再把 FBA 预约、换标写接口、托盘公共作用域或静态 OpenAPI 记为“未接/不存在”。
需后端或产品继续确认
- 库存客户/海外仓快照:正式余额 DTO 已返回
customerName与overseasWarehouseName,Admin 列表和详情只显示这两个服务端快照,空值为—,不以customerId、客户候选、国内来源仓、目的仓/FBA 仓或固定值补齐。当前测试数据“客户全为 — / 海外仓显示义乌仓”属于后端库存事实阻断:LoadingCompletedConsumer#registerInTransit的客户名来自可能为空的跨区source.customerName,并把国内装柜payload.warehouseName传入库存的overseasWarehouseName;后续命中既有余额时InventoryCommandService#balance不会修订快照。后端需保证正式客户名称快照,并在实际海外收货仓冻结前保持海外仓为空、冻结后写入真实海外收货仓;前端不修复或猜测历史/错误事实。 - 换标原型字段:列表 Summary 仍不含
productNameZh/labelRequirement/relabelFile/budgetTotal/relabelCost;本模块没有可用的换标文件上传端点。页面不伪造金额或文件名。创建 DTO 额外要求海外仓、截止时间、联系人、电话、货件号和新 SKU,这是完成真实创建的最小扩展。 - 托盘新增服务端权限:前端新增按钮按
platform:overseas-warehouse:pallet:create控制,但当前审计的PlatformWarehouseResourceController#createPallet未见对应@PreAuthorize;需后端补齐或确认由网关等价强制。原型要求“托盘重量”,当前 Save DTO 无该字段,页面不伪造或发送。 - 托盘状态语义:原型只给闲置/占用,DTO 还允许
SCRAPPED。是否允许 Admin 在普通编辑中直接改为报废仍需确认;不新增独立停用/报废动作。PUT 已按冻结契约携带详情version,旧版本A0409。 - 库存导出:后端已存在只读
GET /inventory/balances/export与GET /inventory/ledger/export(权限...:inventory:export),当前模块页面/adapter 尚无二进制下载实现;原型承载与共享下载约定确认后再接,不能用 JSON 请求替代。 - 入库补充托盘:
POST /inbound-plans/{planNo}/pallets/supplement已存在,但权限、幂等、打印及原型承载未整体冻结,Admin 不接。FBA 预约创建、详情和编辑已经接入。
真实环境仍需的数据与配置
- 可获得海外 Token 且持有矩阵 canonical 权限的 Admin 测试账号;失败响应需验证
requestId/traceId。 - 至少一个 ACTIVE 客户,以及国内 Warehouse 中
tenantId=0、OVERSEAS、ACTIVE、启用RECEIVING的公共收货仓;换标写验收还需允许关联的专用测试尾程订单/SKU,不能操作历史数据。 - 带
sourceOrderId、明细和托盘的入仓计划,以及已有 FBA 预约号,用于详情长 ID 与预约编辑。 - 开启
lastleg.dispatch-query-api.enabled、lastleg.smart-dispatch-api.enabled,并准备未锁候选托盘;验证 409 草稿锁冲突、关闭释放和预排回读。 - 至少一个国内公共海外收货仓 ID,以及 Warehouse Overseas 中引用同一 ID 的公共托盘;新增需验证洛杉矶仓下
IDLE + ABE3,编辑需验证正确 version 与旧 versionA0409。 - 至少一条含 SKU/产品名、位置和 ledger 的库存事实,用于核对分页、汇总与长 ID;不调用离仓命令。
仍然排除
箱号平台、产品库、海外出库、退货出库、海外派送、PDA 扫描/拣货/卸柜照片、内部事件,以及库存 allocate/unallocate/pick/ship。不得为自动化覆盖扩展这些前端路径。