"""播种知识库文章(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()