仙剑奇侠传经
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
> 更新时间:2026-08-15
|
||||
> 当前任务:`019ff90b-a72d-7000-abdf-e5363357a564`
|
||||
> 父任务:`019ff600-f9f1-78f1-a357-7c80c13e574e`
|
||||
> 依赖任务:后端 `019ff90b-9b45-7191-b68f-c3b52567e3e4`、Admin `019ff90b-a037-79b0-b945-8f88bdbde9c5`
|
||||
> 依赖任务:后端主链 `019ff90b-9b45-7191-b68f-c3b52567e3e4`、动态增量后端 `01a00e91-2124-7960-95d6-e0d0f81959f9`、Admin `019ff90b-a037-79b0-b945-8f88bdbde9c5`
|
||||
> 边界:只维护根目录脚本、验收文档和测试矩阵;不修改 Admin 或 Java 业务源码,不部署、不触发 Jenkins、不写测试环境数据库。
|
||||
|
||||
## 验收口径
|
||||
@@ -30,7 +30,8 @@
|
||||
| CT-D10 | DO/PU 未齐、部分完成、全部完成 | 柜次与运输协同已建立 | `DELIVERY_ORDER`、`PICKUP_ORDER` 可独立查询、上传和鉴权下载,版本与幂等有效 | 柜次详情入口待回传 | 服务端已冻结;人工入口待定 |
|
||||
| CT-D11 | 正常、异常、取消异常 | 任意有效柜次及显式货柜版本 | 标记/取消使用版本和必填原因;overview 保留 `MARK`/`CANCEL` 全部历史 | 货柜详情入口待回传 | 服务端已冻结;人工入口待定 |
|
||||
| CT-D12 | 多节点运输轨迹与操作日志 | CT-D10 | overview 时间线含运输更新、异常和 PDA 事件,按发生时间升序 | 详情时间线入口待回传 | 服务端聚合已冻结;人工入口待定 |
|
||||
| CT-D13 | 满足全部 `LOADED` 硬门禁 | 订舱、拖车、有效放行回执、PDA、五类证据完成 | 仅全部满足时进入 `LOADED`,重复完成幂等 | 订单/柜次详情显示完成且编辑锁定 | 待契约 |
|
||||
| CT-D13 | 满足全部 `LOADED` 硬门禁 | 订舱、拖车、有效放行回执、PDA 拣货、五类证据完成 | PDA `complete` 写前预检 inbound `LOADING`、bridge、订舱 `RELEASED`、同稳定 `containerBookingId` 的拖车 `COMPLETED` 和五类 ACTIVE 证据;缺项 A0409 且 task/plan/inbound 零写入,齐备后同一事务完成三者并推进 `LOADED` | 订单/柜次详情显示完成且编辑锁定 | `LANDED_STATIC`:OpenAPI 与 HTTP 脚本已接线;待部署后真实 HTTP 复核 |
|
||||
| CT-D14 | PDA 未最终完成前向同一预装计划增加入库单 | 已有稳定 `loadingPlanId/taskId/containerBookingId`,任务尚未最终完成;新增票满足同客户、仓库、渠道、容量与柜型约束 | `EDITING/LOADING` 可增量;`LOADING` 不回退且复用同一 task;plan/task/item 版本递增,旧 inventory token A0409 后必须刷新;全拣后增项将 `AWAITING_REVIEW` 撤回 `IN_PROGRESS`,证据保留;未拣项可删,已拣数量形成 `minPackageCount` | Admin 预装增量入口与 PDA 同步显示新增项 | `LANDED_STATIC`:assign/adjust/delete 与 capability DTO 已冻结并接入脚本;待部署后真实 HTTP 复核 |
|
||||
|
||||
## 全链验收用例
|
||||
|
||||
@@ -48,11 +49,31 @@
|
||||
| CT-E10 | DO/PU | 通用查询、multipart 上传、鉴权下载;上传要求 `Idempotency-Key`、真实文件、`expectedVersion`,重放不得重复上传 | Admin 入口待回传 | 两类型响应、文件哈希/ID、二进制下载、幂等重放 | 服务端契约已冻结 |
|
||||
| CT-E11 | 货柜异常及取消历史 | `POST/DELETE /api/platform/v1/containers/{id}/exception` 要求 `expectedVersion` 和必填原因;冲突失败;overview 历史只追加不覆盖 | Admin 入口待回传 | 标记/取消响应、版本冲突、overview 历史 | 服务端契约已冻结;版本来源阻断 |
|
||||
| CT-E12 | 运输轨迹/日志 | overview `timeline` 聚合 `TRANSPORT_UPDATE`、`MARK/CANCEL`、`PDA_*`,时间升序且含详情、操作者和发生时间 | Admin 入口待回传 | overview 时间线响应 | 服务端契约已冻结 |
|
||||
| CT-E13 | `LOADED` 正向与逐项负向 | 五项硬门禁分别缺失时 fail-closed;全部满足后只迁移一次 | 完成后详情锁定,状态一致 | 5 个负向 + 1 个正向 + 幂等重放 | 待契约 |
|
||||
| CT-E13 | `LOADED` 正向与逐项负向 | 五项硬门禁分别缺失时 fail-closed;拖车按稳定 `containerBookingId` 归属,历史 `loadingPlanId` 为空不再构成错误门禁;正式拖车完成后才允许 PDA `complete` 迁移一次 | PDA 完成页、入库单和订单详情不得出现无解释的完成/`LOADING` 分裂 | 逐项负向 + 1 个正向 + 幂等重放;记录拖车 ID、柜次 ID、计划 ID、状态、业务码、`requestId/traceId` | `LANDED_STATIC`:失败零写入和最终同事务响应已锁定;待部署后真实 HTTP 复核 |
|
||||
| CT-E14 | 跨客户与跨仓库隔离 | 交叉资源 ID 不可读写下载,不泄露资源存在性 | 页面无越权入口 | 双身份交叉请求证据 | 待契约 |
|
||||
| CT-E15 | push 幂等、冲突与事务回滚 | 首次成功请求冻结 path/body/expectedVersion/key;同 key 原样重放只读且返回首次结果;同 key 异参、新 key 重复均冲突;各负向后计划、版本、历史、bridge、PDA 全快照零漂移;首次 push 在 bridge 中途失败时整事务零残留且不得触发 PDA | 冲突或失败后页面刷新仍只显示首次成功事实 | 原始请求、三次回查全快照、失败 `requestId/traceId`;中途失败由后端事务合同覆盖 | 新时序合同已冻结,待环境验收 |
|
||||
| CT-E16 | 默认 Admin HTTP 同 marker 完整链 | 默认入口按 `phase3-container-loading -> phase3-loading -> overview/PDA/evidence -> customs -> loading-finalize` 串行;下游只消费 `phase3Loading` 发布的 `taskId/inboundId/loadingPlanId/containerBookingId`,最终同一订单详情和列表均为 `LOADED` | 同一批次可从订单、柜次、预装、PDA、报关入口逐级回查 | 全新 marker、关键资源 ID、五类二进制证据、各请求 `requestId/traceId`、最终统一订单状态 | 静态合同已接入默认入口,待环境 HTTP |
|
||||
| CT-E17 | 订舱代理不区分国内/国外 | 供应商必须为正式 `supplierId` 对应的 `ACTIVE + BOOKING` 记录,名称使用服务端快照;查询、创建和内部快照校验不得携带或要求 `DOMESTIC/INTERNATIONAL scope`,但类别或启用状态不符仍 fail-closed | 订舱代理候选不显示国内/国外范围门禁 | fixture 请求、Warehouse 内部快照、Firstleg 类别/启用校验及 Admin 候选静态合同;部署后补真实 HTTP | Warehouse/Firstleg 共享改动已可见;Admin 与环境 HTTP 待收口 |
|
||||
| CT-E18 | PDA 进行中增量预装与最终完成竞态 | 领取后、最终完成前新增入库单必须复用同一 task;新项出现后撤回最终完成门禁,旧 token 返回 A0409“库存已变化,请刷新后重试”且零写入;未拣项可删除,已拣项删除或减量拒绝;Admin 增量与 PDA final complete 同锁 task 行,只允许一个事务成功;`COMPLETED` 后全部变更拒绝 | Admin 增量结果与 PDA 队列实时一致,失败提示不伪造完成 | 增删前后计划/task/items/evidence 投影、版本和操作历史;并发双方响应及最终唯一事实 | `LANDED_STATIC`:OpenAPI、HTTP 双请求 winner/loser 脚本及离线合同已接线;待部署后定向复核 |
|
||||
|
||||
## PDA 完成后未进入 LOADED 的已登记回归
|
||||
|
||||
- 真实测试样本:订单 `NYEXX2608170001`;PDA task、review、装柜计划与五类证据均已完成,但 inbound 仍为 `LOADING`。
|
||||
- 门禁只读证据:`ocean_ready=1`、`truck_ready=0`;同柜拖车预约 `TA2089239590749704194` 的 `loading_plan_id=NULL`、状态为 `LOADING`。
|
||||
- 当前冻结事实:`phase3-loading` 只完成 claim/batch/证据与动态增量,任务保持 `LOADING/AWAITING_REVIEW`;下游门禁齐备后,`phase3-loading-finalize` 调用 `POST /pda-loading/tasks/{taskId}/complete`。该调用在同一 Firstleg 事务完成 task/plan/projection/inbound 并推进 `LOADED`,不再调用旧 `/inbounds/{id}/loading/complete`。
|
||||
- 拖车归属统一使用稳定 `containerBookingId`,不要求历史 `loadingPlanId` 非空;新建/编辑由服务端解析并冻结计划。缺拖车、未完成或归属不匹配均 A0409,且 task/plan/inbound 零写入。
|
||||
- 部署后回归包:① PDA 完成响应与 task/inbound/order 回查一致;② 无拖车、拖车未完成、拖车归属不匹配分别返回明确业务证据并保持 `LOADING`;③ 正式关联拖车完成后 PDA `complete` 推进 `LOADED`;④ 历史空 `loadingPlanId` 按 `containerBookingId` 正式口径覆盖正反例;⑤ 失败分支保留 path、HTTP、业务码、message、`requestId/traceId`,且不得继续执行任何仅限 `LOADED` 的突变请求。
|
||||
|
||||
## PDA 进行中增量预装冻结回归
|
||||
|
||||
- 冻结来源仅跟踪动态增量后端任务 `01a00e91-2124-7960-95d6-e0d0f81959f9` 落盘的 SmartLoading assign/adjust/remove、capability DTO/OpenAPI 和版本并发契约;不再向后端主链任务重复询问动态字段。
|
||||
- 用户确认:预装清单在 PDA 尚未最终确认装柜完成前允许继续添加入库单,并由原有同一 PDA task 继续拣货;不得通过新建第二个 task 或替换稳定四元身份实现。
|
||||
- 必测时序:`EDITING` 添加;task 已领取且仍未完成时添加;新增项进入同一 `taskId + inboundId + loadingPlanId + containerBookingId` 工作集;计划/task/item 版本单调递增;旧 inventory token 返回正式版本冲突并零写入;刷新后可拣新增项并再次满足完成条件。
|
||||
- 门禁撤回:新增未拣项后,原先的 ready、完成度及五类证据完成投影不得继续允许 final complete;新增项全部拣完并重新满足正式证据/下游条件后才恢复。
|
||||
- 删除与减量:已拣项删除或减量必须拒绝且全链零漂移;未拣项删除成功后同步 task、计划、库存快照与 readiness。正式写端点为 plan assignments、item PATCH、item DELETE,分别使用 planVersion/itemVersion 与 operationId。
|
||||
- 并发与终态:Admin 增量与 PDA final complete 并发只允许一个事务成功,失败方必须取得明确业务冲突证据;task/计划进入 `COMPLETED` 后,添加、删除、减量全部拒绝。
|
||||
- 隔离基线不变:容量/限重、客户、仓库、物流渠道、柜型/规格和 ACTIVE 柜次归属继续 fail-closed;任何增量都不得借历史入库单、跨 marker 或创建第二个任务绕过。
|
||||
- 默认全量接入:`phase3-loading` 已在首次 batch 与 final complete 之间接入本轮 marker 的独立入库单、旧 token 负向、未拣删除、重新加入、调整、刷新补拣和已拣删除/减量零写入;`phase3-pda-convergence` 回查稳定四元和唯一任务,最后由 `phase3-loading-finalize` 并发提交同数量调整与 final complete,断言恰好一方成功、刷新胜方版本后唯一收敛 `LOADED`,并验证 `COMPLETED` 后全部写拒绝。真实 HTTP 待部署后定向执行。
|
||||
|
||||
## P3-Q14 文档同步待总控统一
|
||||
|
||||
|
||||
Reference in New Issue
Block a user