修复:保护平台订单原始事实不被清理和覆盖

This commit is contained in:
yml2213
2026-11-09 13:20:36 +08:00
parent 9ff9eda3b3
commit 4159a435d5
22 changed files with 429 additions and 267 deletions
@@ -3,16 +3,16 @@ type: 权威架构与实施计划
description: 订单、内部 SKU、履约路由、履约执行、商品、成本与财务的唯一权威口径及重构计划。
tags: [订单, 内部SKU, 履约, 商品, 成本, 财务, 迁移]
status: authoritative
version: 2.4
updated_at: 2026-11-08
version: 2.5
updated_at: 2026-11-09
---
# 统一订单、履约与财务模型
> 状态:**唯一权威文档**。
> 最后校准:2026-11-08。
> 生产基线:迁移 `146`。
> 开发基线:迁移 `150`(仅本地,尚未部署生产)。
> 最后校准:2026-11-09。
> 生产基线:迁移 `151`。
> 开发基线:迁移 `152`(仅本地,尚未部署生产)。
>
> 从本文件生效起,订单、内部 SKU、履约渠道、履约载体、标准商品、成本和财务相关实现,
> 只能以本文件为业务口径。其他旧分析只作为历史资料,不再具备设计或验收效力。
@@ -313,7 +313,7 @@ finance_journal_* -- 总账凭证,可重建
| 信息 | 唯一写入方 | 唯一真源 | 明确禁止 |
| --- | --- | --- | --- |
| 平台订单与订单项 | 订单接入服务 | `orders` / `order_items` | 财务或履约服务改写平台事实 |
| 平台原始报文 | 各平台适配器 | 原始表 / `raw_payload_json` | 覆盖历史报文 |
| 平台原始报文 | 各平台适配器 | `order_source_snapshots` / 首次 `raw_payload_json` | 覆盖历史报文 |
| 中文内部 SKU | 商品身份服务 | `internal_skus` | 各业务表各自发明同义 SKU |
| 平台字段到内部 SKU | 映射服务 | `internal_sku_mappings` | 按名称猜测渠道 |
| 主渠道与兜底 | 路由服务 | `sku_channel_routes` | UI 根据商品前缀筛选 |
@@ -366,6 +366,7 @@ finance_journal_* -- 总账凭证,可重建
- `orders`
- `order_items` 的原始平台字段
- 平台原始订单表与原始报文字段
- `order_source_snapshots` 平台订单不可变事件快照
- 平台售后、退款、支付事实
- `work_orders`、`work_order_shares`、`work_order_events`
- `fulfillment_tasks` 中真实执行与结果记录
@@ -377,6 +378,14 @@ finance_journal_* -- 总账凭证,可重建
A 级数据只能追加新事件或做字段兼容迁移,不能为了“模型整齐”重写历史事实。
订单重复同步必须遵守:
- 首次写入的 `orders.raw_payload_json` 不再覆盖;
- 每次来源同步追加 `order_source_snapshots`,相同内容幂等;
- 已有 `order_items` 的平台 SKU、名称、数量、规格和快照不因重推更新;
- 重推中缺少的订单项只记录为来源差异,不得物理删除订单项或级联删除履约记录;
- 数据保留任务不得清空或删除 A 级事实,只允许维护可重建的派生数据。
### B 级:业务输入,必须迁移而不是重建
- `internal_sku_mappings`