Files
docs/头程到尾程/测试环境真实联调记录-20260925.md
T

7.4 KiB
Raw Blame History

测试环境真实联调记录(2026-09-25)

本记录只登记已经在测试环境真实调用得到的结果,不把本地单测或设计文档当作真实验收证据。环境配置来自本机受控配置目录,不在文档中记录密码、Token 或 Jenkins 凭据。

一、本批部署

部署单元 测试构建 结果 说明
backend-java 618 成功 firstleg 选择构建;第 617 次因测试仍引用已删除旧方法失败,修正后第 618 次成功
admin-web-test 454 成功 平台回执上传不再携带 finalConfirmation,上传后等待客户确认
client-web-test 331 成功 客户端新增整份回执确认、打回和原因展示

路由合同检查通过;后端报关服务定向测试和 Controller 合同测试通过,Admin 类型检查及报关组件测试通过,Client 类型检查通过。

二、真实接口证据

测试客户属于退税客户,使用已完成装柜的测试订单和柜次进行验证。测试库已补齐 fl_customs_completion_document 的客户确认字段,现有记录仅用于本次测试。

1. 客户查看退税报关资料

调用:

GET /api/merchant/v1/customs/orders/{orderId}

结果:200。客户只能看到自身资料,返回实际箱数 40、退税资料 1 份;部分装柜的系统展示只读箱数,不做数量拆分。

2. 平台查看柜级报关状态

调用:

GET /api/platform/v1/customs/loading-plans/{loadingPlanId}

结果:200。平台视角返回同一柜次实际箱数 40、退税资料覆盖数和回执状态;客户视角没有返回同柜其他客户资料。

3. 平台上传报关行回执

调用:

POST /api/platform/v1/customs/loading-plans/documents/{documentId}/completion/upload?expectedVersion=1

结果:200,回执状态为 PENDING,文件版本变为 2。上传回执没有自动把柜次标记为报关完成。

4. 客户打回整份回执

调用:

POST /api/merchant/v1/customs/documents/{documentId}/receipt/reject

结果:200,回执状态为 REJECTED,打回原因被保存,柜次仍为 DECLARING。

5. 客户确认整份回执

调用:

POST /api/merchant/v1/customs/documents/{documentId}/receipt/confirm

结果:200,回执状态为 CONFIRMED;该柜唯一退税客户确认后,柜次变为 COMPLETED。相同幂等键重放仍返回同一完成结果。

6. 头程到报关真实 HTTP 回归

在补齐国内 PDA 测试作业员凭据后,使用 scripts/admin-test-env-acceptance.mjs --modules phase3-container-customs 重新执行依赖闭环,覆盖客户下单、审核、入库测量、分柜/订舱、预装、PDA 装柜、LOADED、退税资料上传、平台回执上传、客户回执确认、自动离仓及船期查询任务。

结果:报告 baiyue-firstleg/reports/e2e-phase3-container-customs-20260925d.json,526/526 断言通过,0 失败;其中混合柜验证确认回执后才进入 COMPLETED,自动离仓 SYSTEM 历史为 1 条,OUTBOUND_CONFIRM 船期查询任务为 1 条。验收脚本同步提交为 8940c4bc。

7. 送港、船期与实际开航真实 HTTP 回归

使用 phase3-port-schedules,phase3-carrier-schedule-queries,phase3-outbound-dispatch 执行送港和出仓链路,报告 baiyue-firstleg/reports/e2e-phase3-transport-20260925.json,1024/1024 通过;验证报关完成后国内离仓门禁、拖车自动完成、OUTBOUND_CONFIRM 任务唯一性及 DEPARTED_WAREHOUSE 事实。

随后使用 phase4-carrier-pickup-ready 执行船节点人工回填,报告 baiyue-firstleg/reports/e2e-phase4-carrier-pickup-ready-20260925.json,1093/1093 通过;节点按顺序推进到 AT_ORIGIN_PORT、LOADED_ON_VESSEL、DEPARTED_ORIGIN_PORT,并覆盖幂等重放、旧版本冲突、旧节点回写禁止和至 PICKUP_READY 的连续事实。

三、当前已确认的业务边界

  • 报关资料、报关行回执和客户确认流程只适用于退税货物。
  • 买单货物不创建客户报关资料、回执和客户确认流程;买单装柜、导出和运输节点独立处理。
  • 报关资料和回执均为文件;回执状态单独保存,文件版本覆盖会重新进入待确认。
  • 部分装柜只展示实际箱数,后续由线下人员处理,系统不自动分摊数量。
  • LOADED 后先完成报关协同;报关完成后货柜进入待发区,等待船期承运。甩柜/改配只影响运输航次,不回退或重做报关资料、回执和客户确认。

四、F01-F24 验证状态

范围 当前证据 状态
F01-F13 下单、审核、到仓、测量、计费、费用确认、组托 本批依赖闭环已通过真实 HTTP;仍需拆分逐节点证据和异常分支 主链路已验收
F14-F21 分柜、订舱、拖车、拣货、装柜、LOADED 本批依赖闭环已通过真实 HTTP,包含 PDA 领取、提交、审核和 LOADED 冻结 主链路已验收
F22 退税报关资料、回执、客户确认 已完成真实平台/客户端闭环 本批已验收
F23 送港、进港、甩柜、改配 送港/进港/出仓和船期查询主链路已通过真实 HTTP;已用测试环境真实柜次验证平台人工修改原柜船名/航次/预计时间,柜次、订舱关联和船期记录 ID 不变,修改历史新增 UPDATE;报关事实保持不变 主链路和原柜人工改船已验收;完整装柜依赖链仍需补 PDA 凭据后复跑
F24 实际开航 已通过人工船节点回填验证 DEPARTED_ORIGIN_PORT,顺序、版本和旧节点冲突均通过 本批已验收
F25 以后目的港清关、海外入仓、尾程 已有综合真实 HTTP 证据覆盖目的港节点、海外 PDA 收货、库存、排车、出库、派送和跨区回写;admin-full-postdeploy-66c2651b.json 相关模块失败数为 0 已有主链证据;仍需按具体柜次补最终业务签字和页面截图

五、下一批开发入口

下一批聚焦 F23 的人工改船页面回读、客户侧船期投影和异常分支;当前已确认只变更原柜船期,柜次、订舱关联和报关事实均不被覆盖。尾程节点再按 F25 以后阶段推进。每批完成后继续追加真实 HTTP 证据。

六、2026-09-27 追加验证:F23.3 客户船期投影

  • 后端提交 f1218cef 已由 backend-java #643 完整测试并部署,Firstleg 独立任务 baiyue-firstleg-firstleg #446 成功;随后提交 2c4f1ea3 由 backend-java #645 完整测试并部署,Firstleg 独立任务 baiyue-firstleg-firstleg #448 成功;当前分支追加船期展示修复后,backend-java #647 与 baiyue-firstleg-firstleg #450 也已成功。
  • 修复统一订单运输摘要仍读取订舱初始船名/航次的问题:现在按客户、订舱和柜次读取最新 fl_port_schedule 记录,采用窗口函数选取最新观测,保留柜次与报关对象独立性。
  • 对退税柜 TSTU0152125 实际执行“创建原柜改配船期 → 平台容器详情与客户订单同时查询 → 版本更新恢复原船信息”。平台和客户端均读到新船名、航次及预计时间;柜号不变,恢复后两端再次一致。本轮不涉及 PDA,PDA 仍只作为 LOADED 上游事实。
  • 详细请求结果和断言见 baiyue-firstleg/reports/platform-and-client-transport-projection-20260927.json;此前客户侧单独投影证据仍保留在 transport-projection-after-schedule-update-20260927.json。