Files
Hermes CI Fix 3dddd36866 init: 管理会计OS初始代码
包含前后端完整代码:
- 前端:Vue3+Vite+ElementPlus
- 后端:FastAPI+SQLAlchemy
- 模块:驾驶舱/KPI/战略地图/预警/预算/成本/预测/改善行动
- 当前版本:v1.0.0
2026-05-28 17:32:22 +08:00

7.7 KiB

管理会计OS — 工单列表

生成日期: 2026-05-26 排查依据: 架构全景扫描 + API实际验证 + 数据库探查


P0 — 紧急

Ticket 1: ERP数据自动同步

负责人: dev-fullstack 预计工时: 3-5天 优先级: P0

现状:

  • erp_schema 表已有11条ERP表结构记录(MasterBill 15003行、ListOrder、ListInvoice、Units、Product等)
  • data_source_config 表为空(0条记录)
  • kpi_values 有54条手动导入数据
  • ERP API网关 erp-api.sxbh.ltd 已部署

要求:

  1. 新建同步脚本 /root/cma-management/backend/scripts/erp_sync.py,支持:
    • data_source_config 读取ERP连接配置
    • 通过ERP API网关拉取数据
    • kpi_definitions.formuladata_source_config.api_endpoint 进行字段映射计算
    • 计算结果写入 kpi_values
  2. 更新 data_source_config 表结构:增加 sync_interval(分钟) 和 last_sync_at 字段
  3. 创建 systemd timer 或 cron 实现定时同步(最快每10分钟一次)
  4. 配置 data_source_config 至少1条数据源记录用于测试验证
  5. /api/cma/data/sync/{source_id} 增加手动触发同步的端点

验收标准:

  • 执行同步脚本后,kpi_values 新增对应的ERP数据记录
  • 定时任务按配置间隔自动执行
  • 手动触发同步接口返回成功
  • 同步失败时有日志和状态标记

Ticket 2: 阈值建议前端集成

负责人: dev-fullstack → dev-frontend 预计工时: 1天 优先级: P0

现状:

  • 后端阈值建议接口 GET /api/cma/thresholds/suggest/{kpi_id} 已实现
  • 但前端 KPI 编辑/详情页没有任何调用

要求:

  1. 修改 KPIList.vueKPIDetail.vue,在KPI编辑表单中增加"自动建议阈值"按钮
  2. 点击后调 api.get('/thresholds/suggest/' + kpiId)
  3. 返回的 threshold_green / threshold_yellow / threshold_red 自动填入表单
  4. 已有阈值时可一键覆盖

验收标准:

  • 打开任意KPI编辑页能看到"自动建议阈值"按钮
  • 点击后自动填入阈值建议值
  • 保存后数据库里 kpi_definitions.threshold_* 字段更新

P1 — 重要

Ticket 3: Redis缓存接入

负责人: dev-backend 预计工时: 2天 优先级: P1

现状:

  • Redis容器已运行(db1分配CMA使用),内存仅1.48M使用
  • 后端代码无任何Redis引用
  • AI分析每次调用DeepSeek API,耗时1-3秒

要求:

  1. app/utils/cache.py 中封装Redis工具类
  2. 对以下场景启用缓存:
    • AI分析结果: 相同角色+相同KPI数据状态下,缓存有效期10分钟
    • KPI计算中间结果: 缓存5分钟
    • 驾驶舱 dashboard summary: 缓存30秒
  3. 缓存key命名规范: cma:cache:{module}:{key}
  4. 增加 POST /api/cma/admin/cache/clear 清空缓存接口

验收标准:

  • 首次调用AI分析后,二次调用在10分钟内走缓存、不调DeepSeek
  • 驾驶舱数据30秒内不走数据库
  • 清空缓存后立即重新计算

Ticket 4: 数据源配置UI

负责人: dev-frontend 预计工时: 2天 优先级: P1

现状:

  • DataManage.vue 存在但仅有Excel导入功能
  • 后端 GET /api/cma/data/sourcesPOST /api/cma/data/import-excel 已就绪
  • 缺少 data_source_config 的增删改查UI

要求:

  1. DataManage.vue 中增加"数据源管理"Tab页
  2. 数据源列表: 显示名称、类型、API地址、上次同步时间、状态
  3. 新增/编辑数据源: 名称、类型(erp/business/excel)、API endpoint、同步频率
  4. 删除数据源: 二次确认
  5. 数据源列表调 api.get('/data/sources')
  6. 增删改调 api.post/put/delete('/data/sources')(后端对应接口需要补)

验收标准:

  • 在数据管理页能看到数据源Tab
  • 可新增、编辑、删除数据源
  • 操作后数据库 data_source_config 表对应更新

Ticket 5: AI分析流式输出

负责人: dev-backend + dev-frontend 预计工时: 1-2天 优先级: P1

现状:

  • AI分析请求需要等DeepSeek完整响应才返回,耗时3-10秒
  • 前端显示Loading状态,用户等待时间长

要求:

  1. 后端: AI分析接口改为SSE(Server-Sent Events)流式输出,边生成边推送
    • 保留原有非流式接口作为fallback
    • 新接口路径: GET /api/cma/ai/dashboard-analysis-stream
  2. 前端: Dashboard.vue 用 EventSource 或 fetch + ReadableStream 消费SSE
    • 实时展示已生成的分析内容
    • 支持手动中断

验收标准:

  • 流式模式下用户能看到分析内容逐段出现
  • 非流式模式仍然可用(向后兼容)

P2 — 功能增强

Ticket 6: 多用户角色权限

负责人: dev-backend + dev-frontend 预计工时: 3天 优先级: P2

现状:

  • 数据库 users.role 已设计4种角色: ceo / finance / business / it
  • 后端API无任何权限校验(只有一个认证token检查)
  • 前端菜单和页面也无角色区分

要求:

  1. 后端: 增加角色中间件 app/utils/authz.py,在router依赖中注入权限校验
    • ceo: 所有权限
    • finance: KPI管理、数据管理、预警
    • business: KPI查看、驾驶舱、预警
    • it: 用户管理、数据源配置
  2. 前端: api/index.ts 响应拦截器增加403处理
  3. 侧边栏菜单根据角色动态显示/隐藏
  4. 页面级路由守卫检查角色

验收标准:

  • 不同角色登录后看到不同的菜单和页面
  • 越权访问API返回403
  • 前端捕获403后提示无权限
  • seeder脚本已有4个角色各一个用户

Ticket 7: 预警通知推送

负责人: dev-fullstack 预计工时: 2天 优先级: P2

现状:

  • kpi_alerts 表有6条预警记录,但只有系统内列表展示
  • 无任何外部通知(企微/邮件)

要求:

  1. app/utils/notifier.py 中实现通知推送:
    • 企微机器人Webhook推送(优先)
    • 邮件推送(备选)
  2. 在预警生成时(alert_rules.py 的 check 流程中)自动触发通知
  3. 通知内容: KPI名称、触发维度、当前值 vs 阈值、严重级别
  4. operation_logs 中记录通知发送历史

验收标准:

  • 新增一条预警时,企微群收到对应的预警消息
  • 通知内容包含KPI名称、当前值、阈值、严重级别
  • 通知发送记录写入 operation_logs

Ticket 8: 移动端适配

负责人: dev-frontend 预计工时: 3天 优先级: P2

现状:

  • 全部页面基于Element Plus桌面端组件
  • 手机浏览器访问时布局错乱

要求:

  1. Dashboard.vue: ECharts图表在手机端自适应宽度,表格改为卡片排列
  2. KPIList.vue 和 AlertList.vue: 表格增加响应式,窄屏时转为列表布局
  3. MainLayout.vue: 侧边栏在窄屏自动折叠为底部导航或汉堡菜单
  4. Login.vue: 手机端居中显示,输入框适配小屏

验收标准:

  • iPhone SE / Android 主流分辨率下所有页面可正常浏览和操作
  • 图表可缩放查看
  • 表单在小屏下不溢出

项目依赖图

Ticket 1 (ERP同步) ────→ Ticket 4 (数据源UI) — 需要后端先补data_source CRUD
     │
     ├──→ Ticket 3 (Redis缓存) — 独立,可并行
     ├──→ Ticket 7 (预警推送) — 依赖Ticket 1完成后预警才会自动生成
     │
Ticket 2 (阈值建议) ──→ 独立,仅前端修改

Ticket 5 (流式输出) ──→ 后端改SSE,前端改消费

Ticket 6 (权限) ──────→ 独立,改动面较大

Ticket 8 (移动端) ────→ 独立,仅前端CSS/布局调整

授权

以上工单由任总(任富海)签发,授权数字员工团队按优先级执行。 数字员工分工:

  • dev-backend: 后端API、数据库、缓存
  • dev-frontend: 前端Vue页面、交互
  • dev-fullstack: ERP对接、计算引擎、通知
  • dev-qa: 验收测试
  • dev-ops: 部署、定时任务、监控