chore(deploy): 上线脚本与验收 SQL 适配渠道模型
- post-deploy 去掉已删除的履约回填与 finance:sync,改用 finance:rebuild-cutover - 验收 SQL 的履约检查改读 fulfillment_channel/status - 相关文档同步更新
This commit is contained in:
@@ -230,7 +230,7 @@ resolveCanonicalProduct(provider, shop_id, sku_code, sku_name)
|
||||
|
||||
| 脚本 | 作用 | 幂等 |
|
||||
|---|---|---|
|
||||
| `scripts/backfill-fulfillment-channel.ts` | 438k 行分批回填三列 | ✅ 可续跑 |
|
||||
| ~~`scripts/backfill-fulfillment-channel.ts`~~ | 已删除:断代脚本自带归档 | — |
|
||||
| `scripts/bootstrap-channel-rules.ts` | 从 aff 商品 / 人工配置生成规则 | ✅ |
|
||||
| `scripts/finance-cutover-v2.ts` | 断代归档 + 派生数据清零 | 一次性(有 cutover_meta 护栏) |
|
||||
| `scripts/rebuild-after-cutover.ts` | 10-31 起点重建 + 期初建账 | ✅ 可重放 |
|
||||
|
||||
+18
-11
@@ -399,21 +399,28 @@ WHERE oi.id = d.id
|
||||
|
||||
---
|
||||
|
||||
## 七、同步脚本与调度
|
||||
## 七、管道与调度
|
||||
|
||||
财务链路已改成六条独立管道,由定时任务驱动,不再有手工同步脚本:
|
||||
|
||||
| 管道 | 作用 | 默认间隔 |
|
||||
| --- | --- | --- |
|
||||
| `channel_assign` | 规则/证据判定履约渠道 | 60s |
|
||||
| `carrier_dispatch` | 挂载人工配置、发现缺失载体 | 60s |
|
||||
| `product_normalize` | 模板/人工配置/前缀直达归一 | 300s |
|
||||
| `cost_snapshot` | 按渠道解析成本版本写快照 | 300s |
|
||||
| `sales_facts` | 按渠道重算销售事实(含未分类桶) | 600s |
|
||||
| `ledger_post` | 事实过账到总账 | 600s |
|
||||
|
||||
运维命令只剩断代与重建:
|
||||
|
||||
| 命令 | 作用 |
|
||||
| --- | --- |
|
||||
| `npm run fulfillment:backfill` | 履约方式分批回填(只填 NULL) |
|
||||
| `npm run finance:sync -- --mode=all` | 预估快照 + 实际快照 + 销售事实重算 |
|
||||
| `npm run finance:sync -- --mode=estimated` | 只算预估快照并写缺失成本异常 |
|
||||
| `npm run finance:sync -- --mode=actual` | 只把工单快照升级为实际金额 |
|
||||
| `npm run finance:sync -- --mode=facts` | 只重算销售事实 |
|
||||
| `npm run finance:cutover-v2 -- --execute --confirm=2026-10-31` | 断代:归档历史 + 清空派生数据 |
|
||||
| `npm run finance:rebuild-cutover -- --date-from=2026-10-31` | 断代后重跑管道并生成期初分录 |
|
||||
|
||||
长历史重算要分窗口:单次 `rebuildSalesDailyFacts` 超过约 400 天会被语句超时(`DATABASE_STATEMENT_TIMEOUT_MS`,默认 15 秒)打断。本地 2026-07-10 ~ 2026-10-23 分 4 段重算,正常。
|
||||
|
||||
定时任务 `services/scheduler/cost-finance-sync-job.ts` 每 5 分钟先归集待判定的订单项,再算成本与销售事实;默认只处理最近 7 天(可在 `scheduled_jobs` 配置里调大,测试/小机器不建议超过 30 天,避免单条语句超时)。
|
||||
|
||||
---
|
||||
后台「履约渠道 → 管道状态」可查看每条管道的水位、上次成功时间与错误;
|
||||
「立即执行」只用于排障补跑,日常无需干预。
|
||||
|
||||
## 八、迁移基线与本地库同步(2026-10-27 收敛)
|
||||
|
||||
|
||||
@@ -163,8 +163,7 @@ GROUP BY status;
|
||||
```bash
|
||||
npm run revenue:backfill -- --dry-run # 待回填量,应为 0
|
||||
npm run revenue:backfill # 分批回填;中断可重跑
|
||||
npm run fulfillment:backfill # 只填 NULL(可选,报表用)
|
||||
npm run finance:sync -- --mode=all --from=2026-07-10 --to=2026-10-22
|
||||
npm run finance:rebuild-cutover -- --date-from=2026-07-10 --date-to=2026-10-22
|
||||
```
|
||||
|
||||
> 回填完成后必须刷新统计信息,否则订单列表的分页总数会被规划成 `orders` 全表扫描:
|
||||
|
||||
+1
-1
@@ -234,7 +234,7 @@ bash deploy/post-deploy.sh --only=backfill # ① 收入回填 + ② 履约
|
||||
> 不要在商品目录为空时直接跑 `--only=sync`:财务同步会为每个未归一订单项写一条
|
||||
> `product_mapping_missing` 成本异常(生产规模 90 天实测约 36 万条),后台异常队列会被淹没。
|
||||
|
||||
脚本包含 `revenue:backfill`、`fulfillment:backfill`、`finance:sync` 与只读验收四段;任何一步都能重跑,
|
||||
脚本包含 `revenue:backfill`、渠道/成本管道重建(`finance:rebuild-cutover`)与只读验收;任何一步都能重跑,
|
||||
`--only=backfill|sync|verify` 可单独执行。
|
||||
|
||||
> 生产 backend 镜像没有 `tsx` 与 `scripts/`,脚本通过 `tools` 镜像执行
|
||||
|
||||
Reference in New Issue
Block a user