docs+test: 补充成本缺失、退款期间与追溯限制说明

This commit is contained in:
yml2213
2026-11-01 15:21:55 +08:00
parent 20287916b1
commit a692723c73
8 changed files with 36 additions and 7 deletions
@@ -171,3 +171,26 @@ test('人工确认后必须立刻重算该业务日事实与总账', async () =>
assert.ok(source.includes('rebuildChannelSalesDailyFacts'), '必须重算渠道销售事实')
assert.ok(source.includes('syncFinanceLedgerFromFacts'), '必须同步总账')
})
test('成本缺失按渠道期望成本项判定,不能被通用费用掩盖', async () => {
const facts = await read(new URL('./sales-facts-channel-service.ts', import.meta.url))
assert.ok(facts.includes('channel_cost_code'))
assert.ok(facts.includes("'sys_affiliate_purchase'"))
assert.ok(facts.includes("cs.subject_type = 'manual_case'"))
})
test('退款所属期间关账时必须阻断', async () => {
const refund = await read(new URL('./order-refund-service.ts', import.meta.url))
assert.ok(refund.includes('assertRefundMonthOpen'))
assert.ok(refund.includes('退款所属期间'))
})
test('成本版本与基线导入不允许追溯历史', async () => {
const [definition, affiliate] = await Promise.all([
read(new URL('../cost-center/cost-definition-service.ts', import.meta.url)),
read(new URL('../cost-center/affiliate-product-service.ts', import.meta.url)),
])
assert.ok(definition.includes('cost_effective_from_in_past'))
assert.ok(affiliate.includes('cost_baseline_import_blocked'))
assert.ok(!affiliate.includes('shiftDate(today, -30)'))
})
+1 -1
View File
@@ -97,7 +97,7 @@
## 三、统一实施顺序
```text
0. 统一履约事实(渠道 + 成本模型正交) 已完成(迁移 113–115)
0. 统一履约事实(渠道 + 成本模型正交) 已完成(迁移 113–116)
1. 商品主数据 + 渠道 SKU 映射 已完成 P0(仅自动发货/接单平台)
2. 成本中心 + 销售事实 已完成 P0
2.5 人工成本链路收敛(确认履约 → 扣积分/备用金 → 写快照) 已完成 P0(迁移 104)
+1 -1
View File
@@ -1,7 +1,7 @@
# dev 合并 main 评估(2026-10-27)
> **历史文档(2026-10-31 前口径)**:文中 `fulfillment_mode` / `legacy_platform` 已随迁移 113–115 删除;
> **历史文档(2026-10-31 前口径)**:文中 `fulfillment_mode` / `legacy_platform` 已随迁移 113–116 删除;
> 现行口径为 `order_items.fulfillment_channel + fulfillment_status`,销售事实维度为 `sales_daily_facts.channel`。
> 本文保留用于追溯当时的决策,不再作为实现依据。
> 评估对象:`main`(2fb7aae1)与 `dev`(0de0fd7b + 当前未提交的财务 P0/P1 改动)。
+1 -1
View File
@@ -1,7 +1,7 @@
# 成本中心 API 契约
> 状态:**现行**。后端服务与前端页面都必须严格按此实现,不得各自发挥。
> 最后校准:2026-10-31(履约渠道模型,迁移 113–115)
> 最后校准:2026-10-31(履约渠道模型,迁移 113–116)
> 代码基线:`main`
> 详细业务口径见 [财务与履约口径总纲-2026-10-23.md](财务与履约口径总纲-2026-10-23.md);数据模型见 [成本中心与履约模型.md](成本中心与履约模型.md)。
+7 -1
View File
@@ -1,7 +1,7 @@
# 成本中心与履约模型
> 状态:**现行**。2026-10-31 起履约事实改为「渠道 + 状态」两列,旧 `fulfillment_channel` 已删除。
> 最后校准:2026-10-31(迁移 113–115)
> 最后校准:2026-10-31(迁移 113–116)
> 代码基线:`main`
> 数据基线:2026-10-29 生产 dump;历史数字仅作迁移参照。
> 上线初始化/验收见 [财务上线初始化与验收-2026-10-26.md](财务上线初始化与验收-2026-10-26.md)。
@@ -342,7 +342,13 @@ computed_at
- `after_sales_loss` / `other` 只能按商品配置,禁止 global 版本套到所有订单。
- 比例成本按「收入 − 已确认退款」的净收入 × `rate_bps` 计算;退款后重算该订单项费用。
- 快照新增/替换后会按业务日重算销售事实并同步总账;批量补价跨多日时按整段重算,不再截断。
- 成本缺失按「该渠道应有的成本项」判定(采购/打手报酬/卡券采购;人工看 manual_case),
平台费等通用费用不会把缺失成本掩盖掉。
- 渠道判定后立即归一商品并计算该订单项成本,不再等冷通道扫到。
- 已按实际奖励入账的快照不会被后来的预估覆盖。
- 平台费/支付费属于派生费用,退款后允许按净收入重算;采购成本与打手报酬保持固化。
- 退款所属期间(退款发生月)已关账时直接阻断退款,避免冲减静默丢失。
- 成本版本创建与基线导入都不允许追溯生效;基线导入仅在没有任何快照时可用。
- 断代前的历史订单退款,按「退款发生日」写 `refund_adjustment` 冲减行,计入当期事实与总账。
## 六、履约事实
@@ -1,7 +1,7 @@
# 财务与履约口径总纲(2026-10-23 重写版)
> **历史文档(2026-10-31 前口径)**:文中 `fulfillment_mode` / `legacy_platform` 已随迁移 113–115 删除;
> **历史文档(2026-10-31 前口径)**:文中 `fulfillment_mode` / `legacy_platform` 已随迁移 113–116 删除;
> 现行口径为 `order_items.fulfillment_channel + fulfillment_status`,销售事实维度为 `sales_daily_facts.channel`。
> 本文保留用于追溯当时的决策,不再作为实现依据。
> 状态:**已归档**。现行口径见《成本中心与履约模型》(2026-10-31 校准)与《成本中心API契约》。
+1 -1
View File
@@ -1,7 +1,7 @@
# order_site 财务系统深度分析(2026-10-27)
> **历史文档(2026-10-31 前口径)**:文中 `fulfillment_mode` / `legacy_platform` 已随迁移 113–115 删除;
> **历史文档(2026-10-31 前口径)**:文中 `fulfillment_mode` / `legacy_platform` 已随迁移 113–116 删除;
> 现行口径为 `order_items.fulfillment_channel + fulfillment_status`,销售事实维度为 `sales_daily_facts.channel`。
> 本文保留用于追溯当时的决策,不再作为实现依据。
> 分析对象:订单履约、成本中心、客服备用金/积分、销售事实、影子总账、期间关账与平台对账。
+1 -1
View File
@@ -20,7 +20,7 @@
| 商品主数据 / 渠道 SKU 映射 / 成本中心 | **已实施 P0(`dev` 分支)**,迁移 `103/104`;标准商品 745 个,只覆盖自动发货 38 + 接单平台 707 |
| `sales_daily_facts` / 订单级毛利 | **已实施 P0(`dev` 分支)**,迁移 `105`;94 天收入 ¥2,650.87 万、成本 ¥950.27 万 |
| 人工成本录入(确认履约 → 扣积分/备用金 → 写快照) | **已实施 P0(`dev` 分支)**,迁移 `104/107`;2026-10-24 人工履约页下线、入口收敛到订单页;**无登记单、无审批、无报销** |
| 履约渠道统一 `fulfillment_channel + fulfillment_status` | **已实施(2026-10-31,迁移 113–115)**;旧 `fulfillment_mode` 已删除,订单/成本/事实统一读渠道 |
| 履约渠道统一 `fulfillment_channel + fulfillment_status` | **已实施(2026-10-31,迁移 113–116)**;旧 `fulfillment_mode` 已删除,订单/成本/事实统一读渠道 |
| `finance_accounts` / `finance_journal_entries` / `finance_journal_lines` | **已实施 P0(迁移 108)** |
| `finance_periods` / `finance_reconciliations` / `finance_reconciliation_items` | **已实施 P0(迁移 108)** |
| `finance_business_events` / `finance_settlements` | 未实施(当前用条目唯一键幂等) |