This commit is contained in:
2026-09-09 20:53:27 +08:00
parent f8e9b5d9ed
commit ede43b5030
4 changed files with 12 additions and 9 deletions
@@ -7,7 +7,7 @@
> 技术状态(2026-08-04):任务 `019fc6f9-8dcf-74e1-bc68-d42f15d7802a` 已完成核心正常主链路开发和真实 API 回归。以下“产品确认状态”仍由产品/业务负责人填写,技术完成不自动等同于产品确认。
> 订单衔接规则更新(2026-08-07,已确认):客户草稿不生成入仓码;客户提交进入待审核时立即生成并固定唯一入仓码。平台审核不以选择承运商为前置条件;审核通过后才创建可进入测量流程的正式入库单,并沿用提交时生成的入仓码。承运商可在后续履约或计费前补充。
> 订单衔接规则更新(2026-09-09,当前对话确认):客户草稿不生成入仓码;客户提交进入待审核时立即生成并固定唯一入仓码,同时准备同号预入库单。货物已到国内仓时可在订单审核前先收货、称重、保存箱规并提交测量数据,但订单仍保持待审核,测量审核通过、计费、分柜和装柜必须等待订单审核通过;审核后沿用同一入仓单和已采集数据。承运商可在后续履约或计费前补充。
> 主体模型:入库测量与计费只实现“平台—客户”两级;业务数据的 `tenant_id>0` 是客户隔离兼容字段,平台公共仓储资源归属 `tenant_id=0`。下表历史“资源租户”均指公共主数据技术归属,不代表真实租户。
+2 -1
View File
@@ -8,7 +8,7 @@
| 编码 | 文案 | 说明 |
|---|---|---|
| `PENDING_REVIEW` | 待审核 | 客户已提交订单,等待平台审核 |
| `PENDING_REVIEW` | 待审核 | 客户已提交订单,等待平台审核;货物已到国内仓时可先收货、称重和测量 |
| `WAIT_MEASURE` | 待测量数据 | 审核通过后,测量数据尚未更新完成 |
| `WAIT_SPLIT` | 待分柜 | 订单进入分柜处理,尚未完成有效分柜方案 |
| `LOADING` | 装柜中 | 预装清单已确认,正在拣货、装柜和补充证据 |
@@ -38,6 +38,7 @@
## 三、门禁与修改规则
- `WAIT_MEASURE -> WAIT_SPLIT` 必须满足入库测量与计费测量、审核和费用确认契约;客户确认和差异沟通不单独增加主状态,也不替代服务端门禁。
- `PENDING_REVIEW` 的订单提交后即准备同一入仓码对应的预入库单。仓库可提前保存并提交称重、箱规和测量证据;订单主状态与下一动作仍固定为 `PENDING_REVIEW / APPROVE_ORDER`。订单审核通过后沿用原入库单和已采集数据,未通过前禁止测量审核通过、计费、分柜和装柜。
- `LOADING -> LOADED` 必须由服务端校验订舱完成、拖车完成、有效放行回执、PDA 拣货完成、五类证据各至少一张有效照片及锁码文本;任何一项缺失都不得推进。
- 本版本不新增异常、驳回、阻塞、取消等主状态。异常说明、差异说明和补充资料作为子状态、备注、附件或自定义节点保存。
- `LOADED` 前的业务资料可在权限和状态规则内修改;修改资料不自动回退主状态。`LOADED` 后错误统一线下人工处理,国内系统不提供在线冲正。
+5 -5
View File
@@ -8,8 +8,8 @@
客户选择固定或自定义金额,查看后台配置的微信/支付宝静态收款码,付款后上传 JPG/PNG 截图形成待审核申请。平台在客户账户明细顶部审核或驳回,也可手工充值、扣款和设置客户授信额度;每次变动写不可变账户流水。新账户授信额度读取 `baiyue.finance.wallet.default-credit-limit`,默认 `0.00`,平台设置的客户额度随后独立持久化。Finance 还提供仅服务令牌可访问、按业务类型和业务单号幂等的冻结、结算和释放接口,供一件代发等模块接入。审核、账户更新、流水、冻结记录和幂等结果在 Finance 单事务内完成,文件内容仍归 File 服务。接口契约见 [客户资金账户 OpenAPI](openapi/finance-wallet-v1.yaml)。
> 盘点日期:2026-08-10
> 当前状态:F0/F1 已有 Finance 服务、数据库、权限、Admin/Client 页面和基础接口;订单与客户 11 个 P0 operation 的目标契约已冻结,本地实现验收按独立 G1-G4 证据矩阵均为 `PASS`;真实 MySQL、测试环境 HTTP 冒烟和领导页面验收仍需单独执行
> 盘点日期:2026-09-09
> 当前状态:费用入池 P0 与对账结算 P1 已完成测试环境部署及真实 HTTP 全链验收;最终报告为 `baiyue-firstleg/reports/admin-test-env-acceptance-20260909103401.json`,1518/1518 通过。领导页面人工截图仍按独立验收规则执行
> 盘点范围:入库计费现状、平台后台财务原型、Admin/Client/Firstleg 当前实现
> 结论口径:本文区分“代码已实现”“原型展示”和“建议范围”;原型功能不自动成为开发范围。
@@ -21,11 +21,11 @@
- Finance 以 `sourceSystem + sourceType + sourceFeeId + sourceVersion` 唯一入池;重复事件幂等,同版本不同哈希拒绝,已进入有效账单或结算单的来源禁止替换/作废。
- 海外仓服务费只强制客户、海外仓和业务编号;入仓记录/入仓码按真实业务选填,月租、仓租等无入仓码费用仍可入池。
当前本地实现包含柜级分摊 API/Admin 录入、海外费用来源 API、跨区事件、Finance 通用消费入口及数据库脚本。测试环境真实 HTTP、数据库迁移实跑和页面截图仍须部署后单独验收。
当前实现包含柜级分摊 API/Admin 录入、海外费用来源 API、跨区事件、Finance 通用消费入口及数据库脚本,并已完成测试环境数据库和真实 HTTP 验收。页面人工截图仍按独立验收规则执行。
## 测试环境部署状态(2026-08-12)
## 历史测试环境部署状态(2026-08-12,已解除)
Finance 全链路测试环境实跑报告为 `baiyue-firstleg/reports/finance-full-acceptance-20260812.json`:共 430 项,411 项通过,19 项失败。当前结论是 `DEPLOYMENT_BLOCKED`,不是脚本契约测试失败,也不是验收通过;19 个失败项继续以 deployment blocker 和 coverage gap 原样保留,禁止通过模拟数据或修改报告伪造通过。
当时的 Finance 全链路测试环境实跑报告为 `baiyue-firstleg/reports/finance-full-acceptance-20260812.json`:共 430 项,411 项通过,19 项失败,当时结论为 `DEPLOYMENT_BLOCKED`。这些阻断已在后续版本解除,当前结论以 P0/P1 闭环文档和 2026-09-09 最终报告为准。
当前主要部署阻断:
+4 -2
View File
@@ -57,11 +57,11 @@ AR/AP 结算单支持出单、部分收付、全额收付、未发生收付时
## 6. P1 验收证据
测试环境全链报告:`baiyue-firstleg/reports/admin-test-env-acceptance-20260909093845.json`。
测试环境最终全链报告:`baiyue-firstleg/reports/admin-test-env-acceptance-20260909103401.json`。
| 验收项 | 结果 |
|---|---|
| 真实 HTTP 全链 | 1516/1516,通过;901 个真实请求,10 个模块 |
| 真实 HTTP 全链 | 1518/1518,通过;902 个真实请求,10 个模块 |
| 来源类型 | KG 自动运费、CBM 自动运费、单票人工应收/应付、柜级公共费用、海外 `DIRECT_PAID` |
| 对账单 | 按勾选/日期生成、幂等、驳回重开、审核出账、客户确认、调整、作废 |
| 结算 | 3 张 AR、1 张 AP;部分/全额收付、超额拒绝、作废重开 |
@@ -80,5 +80,7 @@ P1 没有发现 Finance 单据状态机或金额处理缺陷。发现并修正
- 不包税自动计费先从真实入库单读取 `businessType`,再通过正式 API 检查或创建匹配的客户计费规则。
- CBM 测量样本使用真实体积重高于实重的数据,确保验证实际 `VOLUME_CBM` 路径。
- 柜级费用使用独立的第六票测量订单,避免已发送费用的冻结规则阻断装柜关系变化。
- 装柜完成前冻结托盘标签会锁定并写入标签快照,因此该命令使用可写事务,避免只读事务导致真实装柜完成失败。
- 自动费用造数只选择已配置内部编号且被 ACTIVE 价格簿覆盖的 FBA 仓;测试环境 `ABE3` 已通过正式仓库接口补齐内部编号。
这些修正只增强验收数据和证据,不绕过生产权限、状态机、幂等、服务边界或数据库约束。