Files
cma-management/docs/ontology-trilogy-done.md
Hermes CI Fix bd9c70ea05 本体三支柱: 科目↔KPI↔OKR三层互联 + 追溯链API + OKR详情页签
- 新表 kpi_subject_map(89映射/24KPI) / objective_kpi(3O×5KPI) / krs(3O×3KR)
- GET /api/cma/ontology/trace?objective_id=N O→KPI→科目逐层追溯
- GET /api/cma/ontology/objectives 三层链路概览
- OkrDetail.vue 新增本体追溯链页签(KR目标/当前值 + KPI→科目标签流)
- 含并发已上线未提交的KPI多粒度列(target_monthly/quarterly/yearly)
- 回归: pytest 409 passed
2026-08-19 22:58:10 +08:00

3.1 KiB
Raw Permalink Blame History

CMA本体三支柱:科目↔KPI↔OKR 三层互联 — 交付报告

任务:yanxue-cma-ontology-trilogy.md2026-08-19 21:00 并发任务) 执行:项目Botwecom-project | 完成:2026-08-19 22:56 优先级:P1(本体层核心补全)

交付内容

1. 数据层(3张新表 + 种子数据)

作用 数据量 验收
kpi_subject_map 科目↔KPI映射(指标→底层账) 89条映射 / 24个KPI ≥10 ✓
objective_kpi KPI↔O支撑(目标→指标) 3个O × 5个KPI 各≥3 ✓
krs 关键结果KROKR完整化) 3个O × 3个KR 各2-3 ✓
  • 备份:backups/ontology-trilogy-backup-20260819.sqlsubjects/kpi_definitions/objectives 全量,135KB
  • 可重放脚本:backend/scripts/seed_ontology_trilogy.sqlDDL + 种子,幂等可重跑)

2. API层(backend/app/api/ontology.py

  • GET /api/cma/ontology/trace?objective_id=N本体追溯链:O(目标) → KPI(指标) → 科目(数据),含 KR 列表、KPI 支撑权重、科目 calc_type/weight
  • GET /api/cma/ontology/objectives — 全部 OKR 三层链路概览(前端用)

3. 前端层(OkrDetail.vue + api/index.ts

  • OKR 详情新增「本体追溯链」页签:追溯链横幅 + KR 卡片(目标/当前值/进度)+ KPI→科目 标签流(calc_type/weight),非科目驱动指标明确标注"不追溯账本"

追溯链实测(O→KPI→科目)

O#11 优化成本结构 → 5 KPI → 24 科目
  费用率 → [6601销售费用, 6602管理费用, 6603财务费用, 6001收入(分母)]
  净利润 → [6001+6051+6011+6111收入 - 6401-6402成本 - 6601-6602-6603费用...12科目]
O#12 保障现金流 → 5 KPI → 16 科目
O#13 渠道关系改善 → 5 KPI → 7 科目

从任一 O 可逐层下钻到账本;反之从科目可上溯到目标。

验证记录(铁律七)

  1. 备份完成(mysqldump 3表 135KB
  2. 每步 SQL 后 SELECT 验证(89/15/9 行确认)
  3. 后端重启:systemctl restart cma-backendsystemd,非 restart.sh 的 pkill 模式)→ active + /health ok
  4. 追溯链 API 3个O全部跑通(含 KR + 科目映射)
  5. 前端 npm run build 13.89s 成功,已部署 /var/www/cma/
  6. 回归门:pytest tests/409 passed, 1 xfailed, 0 failed
    • 注:首次全量跑有 13 个 test_reports 失败,二次全量 + 单文件隔离均通过 → 属既有测试排序/状态污染,与本改动无关

遗留说明

  • 业务/调研类 KPI(客户满意度、保留率等)非科目驱动,trace 中 subjects 为空数组并标注,符合本体语义(不强行虚构账本映射)
  • models/__init__.py 同时含并发任务"KPI多粒度"未提交列(target_monthly/quarterly/yearly2026-08-17已上线),本提交一并带入(同文件无法拆分,功能均已完成)
  • 并发任务"自动化测试补覆盖"的 conftest/tests 改动未包含在本提交

Git

  • 提交:本体三支柱(科目↔KPI↔OKR)三层互联 + 追溯链API + OKR详情页签
  • 推送:SSH 2222 → git.sxbh.ltd