优化履约待办分桶与补载体扫描

This commit is contained in:
yml
2026-11-14 19:49:54 +08:00
parent e97932dcdf
commit b03599eca7
17 changed files with 629 additions and 81 deletions
+9 -3
View File
@@ -23,8 +23,13 @@ updated_at: 2026-11-08
> `160_consignment_auto_match_setting.sql`、`161_semi_auto_fulfillment.sql`。
> 在发布负责人确认目标提交并完成隔离恢复演练前,只作为开发基线,
> 不得按旧的 `147–150` 一条路径直接上线。
>
> 2026-11-14 增量待发布基线:在 `161` 之上新增
> `162_fulfillment_queue_buckets.sql`,建立履约待办四桶只读投影、
> 补载体扫描专用索引和新单优先扫描口径。该迁移不改写原始订单、履约尝试或售后事实;
> 仍须完成停写、最终备份、隔离恢复验证、迁移、健康检查和履约审计后才可恢复营业。
### 1.1 迁移 `151 → 161` 增量门禁
### 1.1 迁移 `151 → 162` 增量门禁
- 升级前必须确认生产最高迁移仍为 `151`;分支合并后重新核对迁移号,禁止回退或改写 `151` 及以前文件。
- 半自动迁移已收敛为单个 `161_semi_auto_fulfillment.sql`,不得在已应用 main `158–160`
@@ -33,8 +38,9 @@ updated_at: 2026-11-08
最终 Connector 来源约束和兼容保留的 `semi_auto.credential.export` 权限记录;
该权限不再参与 CK 导出判定,导出由后台登录、禁止缓存和审计控制;
不迁移或清理订单、退款、资金流水等 A 级事实。
- 迁移完成后至少验证 `semi_auto_credentials` 表、任务外键和索引存在;
用测试库完成 `001 → 161` 空库迁移,并在隔离库验证 `151 → 161`。
- 迁移完成后至少验证 `semi_auto_credentials` 表、任务外键和索引存在,以及
`v_fulfillment_queue`、补载体部分索引存在;
用测试库完成 `001 → 162` 空库迁移,并在隔离库验证 `151 → 162`。
- 该增量仍包含迁移,普通停机发布不能使用 `deploy/ubuntu-deploy.sh` 在旧后端运行时直接换库;
必须沿用本手册的停写、最终备份、隔离恢复验证、迁移、新后端健康检查和验收流程。
@@ -3,7 +3,7 @@ type: 权威架构与实施计划
description: 订单、内部 SKU、履约路由、履约执行、商品、成本与财务的唯一权威口径及重构计划。
tags: [订单, 内部SKU, 履约, 商品, 成本, 财务, 迁移]
status: authoritative
version: 2.17
version: 2.18
updated_at: 2026-11-14
---
@@ -12,7 +12,7 @@ updated_at: 2026-11-14
> 状态:**唯一权威文档**。
> 最后校准:2026-11-14。
> 生产基线:迁移 `151`。
> 开发基线:迁移 `161`(仅本地,尚未部署生产)。
> 开发基线:迁移 `162`(仅本地,尚未部署生产)。
>
> 从本文件生效起,订单、内部 SKU、履约渠道、履约载体、标准商品、成本和财务相关实现,
> 只能以本文件为业务口径。其他旧分析只作为历史资料,不再具备设计或验收效力。
@@ -269,7 +269,30 @@ fulfillment_issues
同一订单项只能有一个当前尝试。历史尝试只追加,不覆盖。
### 3.4.1 人工渠道半自动履约
### 3.4.1 履约待办分桶与自动扫描
`v_fulfillment_queue` 是履约待办的唯一只读投影,在正式履约状态和结构化异常之上派生四个
工作桶,不新增可写业务状态:
```text
actionable 正常等待补载体,允许自动扫描
configuration 缺内部 SKU、渠道、模板或人工配置
operator_review 失败重试、人工复核、载体已关闭/取消或系统不一致
terminal 已退款、退款申请、平台取消或商业订单已关闭
```
规则:
- 自动补载体扫描只允许读取 `v_fulfillment_queue.actionable_for_carrier = TRUE`。
- `configuration`、`operator_review`、`terminal` 不得进入自动补载体 cursor,也不得阻塞新订单。
- 后台履约待办必须读取同一 `v_fulfillment_queue`,四个页签分别展示对应桶。
- 售后/终止桶不得重新指定履约渠道;配置桶只补配置,人工处理桶只由运营确认重试或复核。
- 补载体每日扫描采用“最近窗口新单优先 + 历史 actionable cursor”两段式;新单不能排在
配置缺失、退款、关闭工单等非可执行记录之后。
- 分桶是读模型,不是新的核心状态;判断依据仍为 `orders`、`fulfillments`、
`fulfillment_attempts`、`fulfillment_issues` 和 `sku_channel_routes`。
### 3.4.2 人工渠道半自动履约
半自动履约不是新的履约渠道,而是 `manual` 渠道下的辅助执行域:
@@ -980,10 +1003,11 @@ docs/archive/
## 十三、当前下一步
截至 2026-11-13,生产基线为 `151`,集成分支开发基线为 `161`。迁移 `152` 保护订单来源快照,
截至 2026-11-14,生产基线为 `151`,集成分支开发基线为 `162`。迁移 `152` 保护订单来源快照,
迁移 `158–160` 收口寄卖登记人同步、寄卖平台与自动匹配设置;
迁移 `161` 一次建立人工渠道半自动任务、内置 Connector 默认值、账号级 Cookie JSON 凭证、
任务凭证引用和最终约束。迁移中保留的 `semi_auto.credential.export` 权限仅作兼容记录,
任务凭证引用和最终约束;迁移 `162` 建立履约待办四桶只读投影、补载体专用索引和新单优先扫描口径。
迁移中保留的 `semi_auto.credential.export` 权限仅作兼容记录,
不再作为 CK 导出门禁。
1. 生产升级只按 [生产升级操作手册](生产升级操作手册.md) 执行。