208 lines
7.5 KiB
Python
208 lines
7.5 KiB
Python
"""播种知识库文章(P1-3 嵌入用)"""
|
||
from app.database import get_session_local
|
||
from app.models.knowledge_article import KnowledgeArticle
|
||
import logging
|
||
|
||
logger = logging.getLogger("cma.seed_kb")
|
||
|
||
|
||
def seed_knowledge_articles():
|
||
session = get_session_local()()
|
||
try:
|
||
cnt = session.query(KnowledgeArticle).count()
|
||
if cnt > 0:
|
||
logger.info(f"知识库文章已存在 {cnt} 条,跳过播种")
|
||
return
|
||
|
||
articles = [
|
||
# ── 战略地图画布 ──
|
||
KnowledgeArticle(
|
||
title="CMA四层因果链",
|
||
summary="财务→客户→流程→学习成长的因果驱动关系",
|
||
content="""### CMA四层因果链
|
||
|
||
管理会计OS基于平衡计分卡(BSC)的四层架构:
|
||
|
||
| 层级 | 说明 | 典型指标 |
|
||
|:----|:----|:--------|
|
||
| **财务** | 最终结果层,衡量企业价值的实现 | 收入、利润、ROI |
|
||
| **客户** | 市场反馈层,反映客户价值的创造 | 满意度、客户数、市场份额 |
|
||
| **流程** | 运营效率层,体现运营能力的支撑 | 交付及时率、不良率 |
|
||
| **学习** | 基础驱动层,驱动组织能力的成长 | 培训时长、人才梯队 |
|
||
|
||
**因果链方向**:学习成长 → 内部流程 → 客户 → 财务
|
||
|
||
**战略地图使用技巧**:
|
||
- 每个维度设 2-4 个目标
|
||
- 每个目标关联 1-2 个 KPI
|
||
- 用从下到上的箭头标注驱动关系""",
|
||
category="practice",
|
||
icon="🗺️",
|
||
related_page="/maps/canvas",
|
||
sort_order=1,
|
||
),
|
||
# ── KPI列表 ──
|
||
KnowledgeArticle(
|
||
title="领先指标 vs 滞后指标",
|
||
summary="如何区分和运用领先指标与滞后指标进行管理",
|
||
content="""### 领先指标 vs 滞后指标
|
||
|
||
| 类型 | 定义 | 示例 | 管理用途 |
|
||
|:----|:----|:----|:---------|
|
||
| **滞后指标** | 衡量结果的历史指标 | 收入、利润、客户数 | 评估过去表现 |
|
||
| **领先指标** | 预测未来结果的指标 | 客户接触次数、培训完成率 | 指导当前行动 |
|
||
|
||
**管理原则**:
|
||
- 每个滞后指标配套 1-2 个领先指标
|
||
- 领先指标的变化先于滞后指标 3-6 个月
|
||
- 日常管理聚焦领先指标,月度复盘看滞后指标""",
|
||
category="term",
|
||
icon="📊",
|
||
related_page="/kpis",
|
||
sort_order=1,
|
||
),
|
||
# ── 预算编制 ──
|
||
KnowledgeArticle(
|
||
title="全面预算编制方法",
|
||
summary="从战略到预算的完整编制方法论",
|
||
content="""### 全面预算编制方法
|
||
|
||
**四种主流预算方法**:
|
||
|
||
| 方法 | 适用场景 | 优点 | 缺点 |
|
||
|:----|:---------|:----|:-----|
|
||
| **增量预算** | 稳定业务 | 简单易行 | 忽略变化 |
|
||
| **零基预算** | 转型期 | 资源优化 | 工作量大 |
|
||
| **弹性预算** | 波动业务 | 适应性强 | 编制复杂 |
|
||
| **滚动预算** | 快速变化 | 持续更新 | 维护成本高 |
|
||
|
||
**管理会计OS的预算流程**:
|
||
1. KPI目标值设定 → 2. 预算推算(从KPI自动生成)→ 3. 人工审核调整 → 4. 审批发布 → 5. 执行跟踪""",
|
||
category="practice",
|
||
icon="💰",
|
||
related_page="/budget",
|
||
sort_order=1,
|
||
),
|
||
# ── 差异分析 ──
|
||
KnowledgeArticle(
|
||
title="弹性预算差异分解",
|
||
summary="将总差异分解为价差和量差的系统方法",
|
||
content="""### 弹性预算差异分解
|
||
|
||
弹性预算分析的三步法:
|
||
|
||
**① 计算总差异**:实际值 - 静态预算值
|
||
|
||
**② 拆分为量差和价差**:
|
||
- **量差** = (实际量 - 预算量) × 标准价格
|
||
- **价差** = (实际价格 - 标准价格) × 实际量
|
||
|
||
**③ 判断责任归属**:
|
||
- 量差 → 销售/生产部门
|
||
- 价差 → 采购/定价部门
|
||
- 混合差异 → 按比例分摊
|
||
|
||
**红黄绿灯判定**:
|
||
| 差异率 | 等级 | 动作 |
|
||
|:------|:-----|:-----|
|
||
| < 10% | 🟢 正常 | 关注即可 |
|
||
| 10%-20% | 🟡 预警 | 分析原因 |
|
||
| > 20% | 🔴 异常 | 立即改善 |""",
|
||
category="formula",
|
||
icon="📐",
|
||
related_page="/deviations",
|
||
sort_order=1,
|
||
),
|
||
# ── 预测模拟 ──
|
||
KnowledgeArticle(
|
||
title="情景分析法",
|
||
summary="基于多种假设情景预判财务结果的规划工具",
|
||
content="""### 情景分析法
|
||
|
||
**三种标准情景**:
|
||
|
||
| 情景 | 定义 | 参数设定 |
|
||
|:----|:-----|:---------|
|
||
| **乐观** | 最优可能结果 | 收入+20%,成本-10% |
|
||
| **基准** | 最可能结果 | 按历史趋势外推 |
|
||
| **悲观** | 最差可能结果 | 收入-15%,成本+10% |
|
||
|
||
**使用方法**:
|
||
1. 确定关键变量(收入、成本、销量)
|
||
2. 设置变量的乐观/基准/悲观值
|
||
3. 系统自动计算各情景下的财务结果
|
||
4. 比较差异,制定风险应对方案
|
||
|
||
**管理会计OS支持**:CVP分析、投资回报预测、敏感性分析""",
|
||
category="term",
|
||
icon="🔮",
|
||
related_page="/predict",
|
||
sort_order=1,
|
||
),
|
||
# ── 战略回顾会 ──
|
||
KnowledgeArticle(
|
||
title="战略回顾会最佳实践",
|
||
summary="如何高效召开月度战略回顾会的实操指南",
|
||
content="""### 战略回顾会最佳实践
|
||
|
||
**标准议程(60分钟)**:
|
||
|
||
| 序号 | 议程 | 时长 | 准备材料 |
|
||
|:---:|:----|:----|:---------|
|
||
| 1 | 战略地图状态检查 | 10min | 四层指标达标率 |
|
||
| 2 | TOP3偏差讨论 | 20min | 差异分析报告 |
|
||
| 3 | 改善行动确认 | 15min | 行动方案清单 |
|
||
| 4 | 资源调配决策 | 10min | 预算执行报告 |
|
||
| 5 | 会议结论 | 5min | 行动决议 |
|
||
|
||
**成功要素**:
|
||
- 会前:系统自动生成数据看板
|
||
- 会中:聚焦差异而非全面汇报
|
||
- 会后:结论写入改善行动计划
|
||
|
||
**管理会计OS**:自动拉取差异分析和预警数据,生成议程草稿""",
|
||
category="practice",
|
||
icon="📋",
|
||
related_page="/maps-review",
|
||
sort_order=1,
|
||
),
|
||
# ── 预警中心 ──
|
||
KnowledgeArticle(
|
||
title="红黄绿灯预警机制详解",
|
||
summary="预警规则、阈值设置和响应流程的完整说明",
|
||
content="""### 红黄绿灯预警机制
|
||
|
||
**计算逻辑**:达成率 = 实际值 / 目标值 × 100%
|
||
|
||
| 达成率 | 颜色 | 含义 | 建议动作 |
|
||
|:------|:-----|:-----|:---------|
|
||
| ≥ 90% | 🟢 绿灯 | 正常 | 保持 |
|
||
| 70%-90% | 🟡 黄灯 | 预警 | 制定改善计划 |
|
||
| < 70% | 🔴 红灯 | 异常 | 立即行动 |
|
||
|
||
**阈值设置建议**:
|
||
- 正向指标(收入):达成率越高越好
|
||
- 反向指标(成本):超额越少越好
|
||
- 差异化设定:根据历史数据调整阈值""",
|
||
category="term",
|
||
icon="⚠️",
|
||
related_page="/alerts",
|
||
sort_order=1,
|
||
),
|
||
]
|
||
|
||
session.add_all(articles)
|
||
session.commit()
|
||
logger.info(f"已播种 {len(articles)} 条知识库文章")
|
||
|
||
except Exception as e:
|
||
session.rollback()
|
||
logger.error(f"知识库文章播种失败: {e}")
|
||
raise
|
||
finally:
|
||
session.close()
|
||
|
||
|
||
if __name__ == "__main__":
|
||
seed_knowledge_articles()
|