Files
admin-web/src/modules/overseas-warehouse/AGENTS.md
T

12 KiB
Raw Blame History

Admin 海外仓模块指引

  • 排车装车后车辆信息分区的路线地图,通过../overseas-master-data/index.ts公开组件按起运仓ID和目的仓精确仓码查询完整地址后展示规划路线;多目的仓独立选择,不推配送顺序。原型及字段边界见../overseas-master-data/PROTOTYPE_MATRIX.md“运输路线地图”。

样式入口

  • 导航“海外仓”的 10 个菜单及关联详情/弹框采用公共密度样式,逐操作范围见 海外仓样式核对记录。不要扩展到客户服务、海外业务或未注册产品/箱号页面。
  • 独立页面直接导入 @/styles/adminDensity.css;OverseasDetailShell、OverseasReadOnlyDetail 与共享 InboundCodeRelationshipDialog 仅为显式 dense 调用启用。正文在 el-tab-pane 内的页签必须同时使用 density-contained-tabs。

读取与路径基准

  • 本文件适用于 src/modules/overseas-warehouse/,路径默认相对此目录;其他模块以 ../ 开头。应用公共规则见 ../../../AGENTS.md。
  • 先按下表定位页面,再沿 routes.ts、页面 import 与 api/ 追踪;页面是否开放以正式路由、权限和测试为准。后台接口与状态进入 ../../../../../baiyue-firstleg/lastleg-service/AGENTS.md,不扩大扫描其他业务模块。
  • 请求统一使用 ../../shared/api/http.ts;不以 PROTOTYPE_MATRIX.md 或 CONTRACT_GAPS.md 代替代码与服务端契约。

页面与业务快速索引

退货库存与退货箱号:pages/ReturnInventoryManagementView.vue、api/returnInventory.ts,由 routes.ts 的 return-inventory/return-cartons 分别以 mode=inventory/cartons 进入;只消费 Lastleg returnreceipt/ 的平台库存、箱号、流水和标签接口。退货出库从 pages/OutboundsView.vue 进入,区别于 pages/ExceptionOrdersView.vue 的派送异常退回。

关键词 页面/路由入口 API 与联查
退货预报审核、退货驳回 pages/LastMileOrdersView.vue、api/lastMileOrders.ts 的 reviewReturnOrder 尾程订单内 RETURN_RELABEL + PENDING_REVIEW 行进入审核,来源退货号取 sourceOrderNo;请求 /platform/v1/last-leg/return-orders/{returnNo}/review 携带 X-Customer-Id,结论 APPROVE/REJECT,驳回必填原因。按钮权限入口为 permissions.ts 的 returnOrderReview;服务端归 returnreceipt/,通过后才能签收,不是仓储转运审核或换标完工确认
换标申请审核、待审核按钮与驳回原因 pages/RelabelOrdersView.vue、pages/RelabelOrderDetailView.vue、api/relabelOrders.ts 列表审核动作仅在 PENDING_REVIEW 显示,动作选择为审核通过/已驳回,驳回原因必填;审核后不再显示审核按钮。回归见 pages/RelabelOrdersView.test.ts、pages/RelabelOrderDetailView.test.ts;PDA 完工、客户确认与申请审核分别定位,不混用状态入口
排车资源、草稿容器与实际容量 components/DispatchResourceFields.vue、components/SmartDispatchDialog.vue、dispatchContracts.ts 车辆/司机分别选择已有档案或临时外配,容量取真实档案或本趟填写的托位、千克及立方米,不按车型名称推算。草稿容器容量不代替车辆实测或装载校验;取证、审核前补齐规则见当前排车正式契约
仓储转运审核、审核通过 pages/LastMileOrdersView.vue、components/WarehouseTransferReviewDialog.vue permissions.ts 的 warehouseTransferApprove;仅 WAREHOUSE_TRANSFER + PENDING_REVIEW 行开放。当前弹框仅提交 APPROVE,携带该行客户和转运单号;无驳回按钮
转运驳回、REJECT 接口能力 api/warehouseTransfers.ts 的 reviewWarehouseTransfer API 支持 APPROVE/REJECT 与 remark;不据此推定当前弹框提供驳回操作,界面能力沿上一行组件核对
尾程订单控制与柜级入仓计划转换 pages/LastMileOrdersView.vue、pages/LastMileOrderDetailView.vue api/lastMileOrders.ts;入仓计划页面约束,仅计划/状态/请求行为变化时查
入仓单、入仓计划、FBA 预约 pages/InboundOrdersView.vue、pages/InboundOrderDetailView.vue 列表/预约 api/inboundOrders.ts,计划列表/详情 api/inboundPlans.ts;Backend lastleg-service/inboundplan/
排车查询、整车草稿、审核与装车资料 pages/DispatchesView.vue、pages/DispatchDetailView.vue、components/SmartDispatchDialog.vue、components/SmartDispatchExistingCargo.vue、components/DispatchWorkflowDialog.vue api/dispatches.ts、dispatchContracts.ts、dispatchCommandRecovery.ts;Backend lastleg-service/dispatch/、delivery/。一单一趟、同仓多客户多目的地,空单或先选货均可;候选使用来源版本,草稿走服务器token及公共版本,全部容器原子转换。当前规则见../../../../../docs/海外仓业务/排车列表统一作业改造契约.md,不恢复旧单客户预排协议
海外出库与派送 pages/OutboundsView.vue、pages/OutboundDetailView.vue、pages/DeliveryOrdersView.vue、pages/DeliveryOrderDetailView.vue api/outbounds.ts、api/deliveryOrders.ts;出库与派送页面约束,候选选择另查下表
异常退回与客户回访 pages/ExceptionOrdersView.vue、pages/CustomerVisitsView.vue api/exceptionOrders.ts、api/customerVisits.ts;异常关系解析、异常建档、派送退回、完成/状态和回访附件对应 Backend lastleg-service/exceptionorder/、customervisit/
库存余额、库位与流水 pages/InventoryView.vue、pages/InventoryDetailView.vue、pages/InventoryTransactionsView.vue api/inventory.ts;业务库存归 lastleg-service/inventory/,实物资源归 warehouse-overseas-service/
海外库位维护与状态 pages/LocationsView.vue、api/locations.ts 按海外仓分页或多仓查询库位,支持库区/库位编码、类型和状态筛选;NORMAL 库位可编辑、停用或删除,A0/SHARED_OVERFLOW、VIRTUAL 由服务端事实保护,不能按普通库位修改。接口经 /platform/v1/warehouse-admin/{warehouseId}/locations,权限沿 permissions.ts 的库位维护/删除入口
托盘、箱唛、产品与换标 pages/PalletsView.vue、pages/CartonsView.vue、pages/ProductsView.vue、pages/RelabelOrdersView.vue 及详情页 api/pallets.ts、api/relabelOrders.ts;换标详情展示 PDA 完工照片与复核人,状态区分待客户确认和待出库;路由是否公开以 routes.ts 为准

履约硬边界

  • 排车详情固定四个彩色图标页签:车辆信息、排车信息、单据信息、关联订单明细。五个作业阶段及审核分区、逐动作Gate由服务端返回;取消独立于阶段。装车完成须真实PDA拣货核平,装车中可同步上传五张装车照片,确认装车完成且资料齐全自动生成派送单并进入派送中,资料未齐时留在装车后,无独立安排派送或发车确认;Admin和PDA共用正式版本化命令。已有单写入提交recordVersion(0合法)、幂等键和完整载荷;前端仅请求进行中防连点,成功或失败均立即结束请求态,不持久化未确认请求、不重放旧请求、不因失败锁住后续操作。失败保留表单并读取当前事实,用户下一次点击按当前版本和输入新建请求;成功后另读当前事实。

  • 智能排车来源支持 RELABEL(待出库换标单),按服务端候选的selection.relabelNo/sourceVersion提交,不用展示订单号或原入仓号替代换标身份;沿用真实库存、托盘与箱唛,不生成新入库单。客户和仓库归属由服务端核验,不在前端拼接客户子排车。

  • 托盘标签从 pages/PalletsView.vue → api/pallets.ts 的 getPalletLabelPdf 下载服务端 PDF,传该行仓库与托盘 ID,复用列表权限;不在前端生成标签或维护模板、尺寸、编码。模板/接口变化才查 Print 指引的托盘入口及标签维护,纯按钮文案不追加打印资料。

  • API 为 api/dispatches.ts、api/outbounds.ts、api/deliveryOrders.ts;Backend lastleg-service/dispatch/、delivery/、dropship/。一件代发独立出库,从服务端库存位置选择并携带幂等键;换标只有平台卡车进入排车,普通自提、亚马逊自提、客户自提及快递由客户确认直接创建出库任务。出库/派送建单时机按排车现行契约执行;每客户一张出库单,每客户每目的地一张派送单,公开完整数组,不能回退为单个outboundNo或按客户拆排车头。

  • API 为 api/exceptionOrders.ts、api/customerVisits.ts;Backend lastleg-service/exceptionorder/、customervisit/。异常处理只消费服务端 allowedActions/version;完成时至少上传一份异常证据。派送退回先从服务端原出库拣货事实选择入仓单和可退箱数,不允许自由填写 SKU/数量;退回海外仓时必须选择服务端校验的目标托盘和库位,库存恢复、异常完成与派送 RETURNED 由服务端原子推进。回访附件和派送完成/状态均走海外真实 API

作业细则按需入口

仅接口、状态、权限或业务行为变化时读命中段;纯文案、样式沿当前代码,不逐条读取。

任务 规则正文
排车审核附件 对应条款
一件代发出库候选 对应条款
货物计划与装车命令 对应条款
取消与费用展示 对应条款
业务导出 对应条款
装车照片与资料入口 对应条款

验证

  • 排车调度/理货审核分区仅显示审核、详情;车辆图片、司机照片和驾驶证照片在维护车辆司机时通过既有本车附件接口上传,随资源编辑命令保存,司机照片使用 driver.evidence.photoFileIds。三类照片横向并排、名称显示在照片下方;审核弹框只读预览,合并展示资源照片及历史审核附件。维护权限与服务端 Gate 控制上传及保存,审核权限控制审核提交,列表查看权限控制读取。

  • 纯文案/纯展示只核对差异;业务逻辑变化选择直接对应测试,不因文档引用某测试就自动执行。

  • 转运审核组件/请求逻辑变化:定向选择 components/WarehouseTransferReviewDialog.test.ts、api/warehouseTransfers.test.ts;入口、权限或状态变化再加 pages/prototypeContract.test.ts。

  • 出库候选/选择变化选 pages/OutboundsView.selection.test.ts;状态/取消变化选 pages/OutboundsView.test.ts、pages/OutboundDetailView.test.ts。排车选择受影响组件或详情页测试,入口变化再加原型合同。

  • 命令从应用根按 pnpm test src/modules/overseas-warehouse/<目标测试路径> 运行,并经工作区限流入口;类型关系、模板绑定或模块引用受影响时按应用根选择最小类型检查,不自动升级全量。

  • 指引/索引修改后从后端根运行一次 ./scripts/agents-index-contract.ps1;不以离线结果代替真实 HTTP 或人工截图验收。