重构:硬切履约路由唯一真源
This commit is contained in:
+23
-9
@@ -12,7 +12,7 @@ updated_at: 2026-11-08
|
||||
> 状态:**唯一权威文档**。
|
||||
> 最后校准:2026-11-08。
|
||||
> 生产基线:迁移 `146`。
|
||||
> 开发基线:迁移 `159`(仅本地,尚未部署生产)。
|
||||
> 开发基线:迁移 `162`(仅本地,尚未部署生产)。
|
||||
>
|
||||
> 从本文件生效起,订单、内部 SKU、履约渠道、履约载体、标准商品、成本和财务相关实现,
|
||||
> 只能以本文件为业务口径。其他旧分析只作为历史资料,不再具备设计或验收效力。
|
||||
@@ -311,7 +311,7 @@ finance_journal_* -- 总账凭证,可重建
|
||||
|
||||
2026-11-08 生产只读核对结果:
|
||||
|
||||
- 生产迁移 `146`,本地开发基线迁移 `159`。
|
||||
- 生产迁移 `146`,本地开发基线迁移 `162`。
|
||||
- 启用标准商品 `1127`:`aff:` 30、`tpl:` 903、`tpv:` 46、`man:` 148。
|
||||
- `man:` 商品中只有 105 个当前主渠道为人工;41 个已走其他主渠道,2 个无主渠道。
|
||||
- 人工页头部显示 `107`,商品列表显示 `148`,相差的 41 个就是跨渠道旧商品。
|
||||
@@ -357,7 +357,7 @@ A 级数据只能追加新事件或做字段兼容迁移,不能为了“模型
|
||||
### B 级:业务输入,必须迁移而不是重建
|
||||
|
||||
- `internal_sku_mappings`
|
||||
- `internal_sku_channels` 中仍有效的路由意图
|
||||
- `sku_channel_routes` 中的有效主渠道与显式兜底
|
||||
- `work_product_rules` 及模板匹配配置
|
||||
- `manual_fulfillment_configs`
|
||||
- `product_catalog` 中仍有效的标准商品
|
||||
@@ -383,6 +383,8 @@ A 级数据只能追加新事件或做字段兼容迁移,不能为了“模型
|
||||
### D 级:兼容期结束后删除
|
||||
|
||||
- `product_channel_capabilities`
|
||||
- 已冻结的 `internal_sku_channels`
|
||||
- `sku_channel_rules` 中由 `internal_sku_mappings` 和 `sku_channel_routes` 取代的规则
|
||||
- `manual_sku_registry` 中可由配置重建的登记行
|
||||
- 订单项上的重复履约结果字段,在正式模型切换后删除
|
||||
- 商品表中的历史来源前缀判断代码
|
||||
@@ -504,9 +506,9 @@ has_active_cost
|
||||
| --- | --- | --- |
|
||||
| 0 口径冻结与文档收口 | 已完成 | 否 |
|
||||
| 1 只读审计与领域约束 | 本地进行中 | 否 |
|
||||
| 2 建立目标身份与投影 | 本地完成 | 只新增兼容结构 |
|
||||
| 3 迁移路由与商品配置 | 本地进行中 | 是,需备份 |
|
||||
| 4 重建履约模型 | 未开始 | 是,需断代 |
|
||||
| 2 建立目标身份与投影 | 商品侧本地完成 | 只新增兼容结构 |
|
||||
| 3 迁移路由与商品配置 | 本地完成,生产未执行 | 是,需备份 |
|
||||
| 4 重建履约模型 | 本地准备中 | 是,需断代 |
|
||||
| 5 重建财务派生数据 | 未开始 | 是,需备份与对账 |
|
||||
| 6 停止旧写路径并删除兼容层 | 未开始 | 是,需观察期结束 |
|
||||
|
||||
@@ -575,17 +577,25 @@ assigned 且 carrier_status=missing 必须进入异常队列
|
||||
- 迁移 `157`:保证只有兜底配置的 SKU 不会被误升级成主渠道。
|
||||
- 迁移 `158`:禁止 `man:` 来源直接冒充人工主渠道;没有 primary route 时显示“未路由”。
|
||||
- 迁移 `159`:只归档无主路由、无人工配置、无启用映射的孤儿 `man:` 商品。
|
||||
- 迁移 `160`:商品身份全部补齐,运行硬切到 `sku_channel_routes`,删除旧同步触发器;
|
||||
`v_product_current` 不再回退 `source_kind`,`v_fulfillment_item_state` 不再读取旧表。
|
||||
- 迁移 `161`:履约影子同步触发器从旧表迁移到 `sku_channel_routes`。
|
||||
- 迁移 `162`:删除旧履约只读视图和旧表最后一个触发器。
|
||||
- 商品列表、总览、渠道映射和商品下拉统一读取商品当前渠道。
|
||||
- 运行期代码停止写入 `product_channel_capabilities`,该表仅保留到兼容期结束。
|
||||
- 只读审计:`npm run audit:product-routing -- --strict`。
|
||||
- 本地严格审计关键异常归零:孤儿人工商品、多主路由、`man/tpv` 缺内部 SKU、非法来源。
|
||||
- 15 个自动/卡券/接单主渠道商品的人工配置均保留为显式 `fallback`,没有被误升为人工主渠道。
|
||||
- 自动/卡券/接单主渠道商品的人工配置均保留为显式 `fallback`,没有被误升为人工主渠道。
|
||||
- 1 个无主路由、无人工配置、无启用映射的 `man:` 商品已归档,未删除历史引用。
|
||||
- 旧 `internal_sku_channels` 已冻结:运行时不再读、不再写,也不再有视图或触发器依赖。
|
||||
- 空库从迁移 `001` 顺序执行到 `162` 已通过;新库只保留
|
||||
`sku_channel_routes` 影子同步触发器,旧表同步触发器不存在。
|
||||
- 无主路由的活动商品会进入“未路由”,不自动猜测渠道。
|
||||
|
||||
当前本地仍需业务处理的数据:
|
||||
|
||||
- 1 个待分类订单项尚未命中内部 SKU 映射;
|
||||
- 1 个已分配人工订单项没有启用的人工履约配置。
|
||||
- 待分类订单项尚未命中内部 SKU 映射的,进入 `missing_channel`;
|
||||
- 已分配人工订单项缺少启用人工配置的,进入 `manual_config_missing`。
|
||||
|
||||
验收:
|
||||
|
||||
@@ -595,6 +605,8 @@ assigned 且 carrier_status=missing 必须进入异常队列
|
||||
|
||||
### 阶段 3:迁移路由与商品配置
|
||||
|
||||
状态:本地完成,生产未执行。按确认后的硬切换方案,不保留双读、双写和旧表运行期兼容。
|
||||
|
||||
目标:
|
||||
|
||||
- 将 `internal_sku_channels` 迁移到 `sku_channel_routes`。
|
||||
@@ -613,6 +625,8 @@ assigned 且 carrier_status=missing 必须进入异常队列
|
||||
- 路由迁移前后主渠道结果一致。
|
||||
- 人工页数量等于当前人工渠道商品数。
|
||||
- 卡券和统一结算不再出现在人工页。
|
||||
- 运行时 `internal_sku_channels` 读写点为 `0`。
|
||||
- 旧路由表和影子同步触发器已停用,后续只通过 `sku_channel_routes` 修改路由。
|
||||
|
||||
### 阶段 4:重建履约模型
|
||||
|
||||
|
||||
Reference in New Issue
Block a user