# 管理会计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.formula` 和 `data_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.vue` 或 `KPIDetail.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/sources` 和 `POST /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: 部署、定时任务、监控
