# 审批引擎开发路线图

> 开发计划、进度跟踪、待办事项

---

## 📋 当前迭代

### 功能完善

- [ ] 批量审批
  - [ ] 批量通过接口
  - [ ] 批量驳回接口
  - [ ] 前端批量操作 UI

### 性能优化

- [ ] 添加数据库复合索引
  - [ ] `approval_tasks (assignee, status)`
  - [ ] `approval_instances (initiator_id, status)`
  
- [ ] 实施 Redis 缓存
  - [ ] 审批统计缓存
  - [ ] 流程定义缓存
  - [ ] 缓存失效策略

### 前端优化

- [ ] 使用 SWR/React Query 优化数据获取
- [ ] 添加 Skeleton 加载状态
- [ ] 流程图组件优化

---

## 📅 待规划

### P1 - 重要功能

- [ ] 减签功能
- [ ] 流程暂停/恢复
- [ ] 自定义审批人解析器
- [ ] 审批超时提醒

### P2 - 增强功能

- [ ] 统计报表
  - [ ] 审批效率统计
  - [ ] 流程耗时分析
  - [ ] 审批人工作量统计
  
- [ ] 流程监控
  - [ ] 运行中流程监控
  - [ ] 异常流程告警
  - [ ] 性能指标监控

- [ ] 高级功能
  - [ ] 流程模板
  - [ ] 条件表达式增强
  - [ ] 子流程支持

---

## ✅ 已完成

### v2.2 (2025-12-11)

- [x] **TD-6: 审批引擎与业务数据解耦**
  - [x] 扩展 `BusinessTypeRegistry` 接口
    - 添加 `DataChanges` 和 `ApprovalResult` 类型
    - 添加 `syncDataChanges()` 方法
    - 添加 `notifyApprovalComplete()` 方法
    - 添加 `getBusinessDataForCondition()` 方法
  - [x] 添加 `syncBusinessDataChanges` Activity
  - [x] 添加 `getBusinessDataForCondition` Activity
  - [x] 更新 `handleApprove()` 调用数据同步
  - [x] 更新 `executeGatewayNode()` 获取业务数据进行条件评估
  - [x] 更新 `onProcessCompleted()` 调用业务系统回调
  - [x] Worker 初始化时注入 `BusinessTypeRegistry`

### v2.1 (2025-12-09)

- [x] **抄送功能**
  - [x] 抄送任务类型（CC）- ApprovalTaskType enum
  - [x] 抄送我的列表查询 - `approval.service.ts: getMyCc()`
  - [x] 抄送 API 接口 - `@Get('my/cc')` in approval.controller.ts
  - [x] CC 任务类型支持 - 数据库 Schema 已包含
  - [x] 抄送通知 - 集成在 workflow 中

### v2.0 (2025-11-16)

- [x] 数据库 Schema 优化
  - [x] 表名规范化（`Process*` → `Approval*`）
  - [x] 类型优化（UUID, Timestamptz, JsonB）
  - [x] 任务类型扩展（CC, COUNTERSIGN, OR_SIGN）
  
- [x] 架构解耦
  - [x] 移除冗余 Workflow 系统
  - [x] 通过 `businessKey` + `businessType` 松耦合

### v1.0 (2024-11-15)

- [x] 核心功能
  - [x] 流程定义管理
  - [x] 版本管理
  - [x] 流程执行（串行/并行）
  - [x] 会签/或签
  - [x] 条件分支
  
- [x] 审批操作
  - [x] 通过/驳回
  - [x] 退回/转发
  - [x] 撤回/加签
  
- [x] 任务管理
  - [x] 待办/已处理/我发起的
  - [x] 任务认领
  
- [x] 流程可视化
  - [x] 流程图 API
  - [x] 前端流程图组件
  
- [x] 配置管理
  - [x] 可视化流程配置（表单管理页面）
  - [x] 表单与流程集成设计
  - [x] 版本回滚

---

## ⚠️ 问题与风险

### 已知问题

1. **大数据量性能**
   - 问题：待办列表查询在数据量大时变慢
   - 状态：待优化
   - 方案：添加复合索引 + Redis 缓存

2. **候选人数组查询**
   - 问题：`candidateUsers` 数组字段查询效率低
   - 状态：待评估
   - 方案：考虑使用关联表

### 技术债务

- [ ] 部分 API 缺少参数验证
- [ ] 错误处理需要统一
- [ ] 单元测试覆盖率不足

---

## 📊 进度统计

| 分类 | 已完成 | 进行中 | 待开发 |
|------|--------|--------|--------|
| 核心功能 | 20 | 2 | 3 |
| 性能优化 | 2 | 2 | 4 |
| 前端 | 8 | 1 | 3 |

---

## 📚 相关文档

- [产品需求文档](./01-prd.md)
- [架构设计](./03-architecture.md)
- [API 文档](./07-api.md)
- [变更日志](./99-changelog.md)
- [模块索引](./README.md)

---

**创建时间**: 2025-12-11  
**迁移时间**: 2025-12-25  
**最后更新**: 2026-01-06
