# Admin 国内出仓模块指引 ## 路径基准与读取顺序 - 本文件适用于 `src/modules/outbound-dispatch/`,代码路径相对本目录;应用公共规则见 `../../../AGENTS.md`。 - 只有 `pages/OutboundDispatchesView.vue`、`api/platformOutboundDispatch.ts`、`statusLabels.ts`:维护国内出仓状态(确认出仓 / 撤销出仓)。 - 后端归 `firstleg/outbound/dispatch/`(`OutboundDispatchService.java`)。 ## 页面与入口 | 目标 | 页面/入口 | API 与后端 | |---|---|---| | 国内出仓列表、状态与筛选 | `pages/OutboundDispatchesView.vue` | `api/platformOutboundDispatch.ts`;`firstleg/outbound/dispatch/` | | 确认国内出仓 | 行操作 `confirm-dispatch` | `changeOutboundDispatch`,提交 `inboundId`、`containerBookingId`、`expectedVersion`、`remark` | | 撤销国内出仓 | 行操作 `reverse-dispatch` | 同上,需二次确认 | | 状态中文文案 | `statusLabels.ts` | 服务端状态机 | ## 关键边界 - 确认出仓前系统校验全部装柜门禁;前端不得逐入仓确认,也不得把拖车状态当阻断门禁。 - 提交必须携带当前 `version`,冲突时重新读取,不覆盖他人操作。 - 出仓以真实货柜为原子边界;成功后由服务端同事务推进技术行并幂等创建船节点查询,前端不重复追加实际船节点。 - 与货柜详情里的“确认离仓”是同一能力的两个入口,改规则时同步检查 `../container-loading/`。 ## 验证 - 定向:`pnpm test src/modules/outbound-dispatch/<目标测试>`;状态或门禁变化同时核对 `firstleg/` 出仓合同。 - 本文件或索引变更后,从后端根运行 `./scripts/agents-index-contract.ps1`。