104 lines
2.5 KiB
Markdown
104 lines
2.5 KiB
Markdown
# P1-06: 待办事项集成企微审批工单
|
|
|
|
## 任务概述
|
|
|
|
| 项目 | 内容 |
|
|
|------|------|
|
|
| 需求ID | #74 |
|
|
| 优先级 | P1 |
|
|
| 状态 | 需企微审批API权限 |
|
|
| 预估工时 | 2-3天 |
|
|
|
|
## 背景
|
|
|
|
将企微审批工单同步到坐席待办事项,坐席可在系统内直接处理企微提交的审批请求。
|
|
|
|
## 前置条件
|
|
|
|
- 需开通企微审批应用 API 权限
|
|
- 获取 `corp_id`, `corp_secret`, `agent_id`
|
|
- 配置审批模板 ID 映射
|
|
|
|
## 技术方案
|
|
|
|
### 1. 企微审批 API
|
|
|
|
```python
|
|
# 企微审批相关 API
|
|
# 参考文档: https://developer.work.weixin.qq.com/document/16467
|
|
|
|
# 获取审批模板列表
|
|
GET https://qyapi.weixin.qq.com/cgi-bin/oa/gettemplate_list?access_token=TOKEN
|
|
|
|
# 获取审批详情
|
|
GET https://qyapi.weixin.qq.com/cgi-bin/oa/getdetail?access_token=TOKEN&sp_no=XXX
|
|
```
|
|
|
|
### 2. 同步逻辑
|
|
|
|
```python
|
|
class ApprovalSyncService:
|
|
"""审批工单同步服务"""
|
|
|
|
async def sync_approvals(self):
|
|
"""定时同步企微审批到本地待办"""
|
|
# 1. 获取待审批列表
|
|
approvals = await self.get_pending_approvals()
|
|
|
|
# 2. 转换格式
|
|
for approval in approvals:
|
|
todo = self.convert_to_todo(approval)
|
|
await self.save_todo(todo)
|
|
|
|
# 3. 更新同步状态
|
|
await self.update_sync_timestamp()
|
|
|
|
async def get_pending_approvals(self):
|
|
"""获取用户待审批的工单"""
|
|
# 调用企微 API
|
|
pass
|
|
```
|
|
|
|
### 3. 数据模型
|
|
|
|
```python
|
|
# 新增或复用现有 TodoItem 模型
|
|
class TodoItem:
|
|
source_type: str # "approval" / "ticket" / "manual"
|
|
source_id: str # 企微审批单号
|
|
source_url: str # 企微审批详情链接
|
|
metadata: dict # 审批类型、申请人、申请时间等
|
|
```
|
|
|
|
### 4. 前端展示
|
|
|
|
- 坐席待办事项显示审批工单
|
|
- 点击跳转到企微审批详情页(或 iframe 内嵌)
|
|
|
|
## 验收标准
|
|
|
|
- [ ] 企微审批 API 配置完成
|
|
- [ ] 定时同步任务正常运行
|
|
- [ ] 坐席端可看到待审批工单
|
|
- [ ] 点击可跳转到审批详情
|
|
- [ ] 审批完成后状态同步
|
|
|
|
## 文件清单
|
|
|
|
| 文件 | 操作 |
|
|
|------|------|
|
|
| `backend/app/services/approval_sync.py` | 新增 |
|
|
| `backend/app/api/todos.py` | 修改 |
|
|
| `backend/app/models/todo_item.py` | 修改 |
|
|
| `backend/app/scheduler/tasks.py` | 新增 |
|
|
| `frontend-agent/src/views/todo/*.vue` | 修改 |
|
|
|
|
## 实施步骤
|
|
|
|
1. 申请企微审批 API 权限
|
|
2. 配置企微应用参数
|
|
3. 开发同步服务
|
|
4. 开发前端展示
|
|
5. 定时任务配置
|
|
6. 测试联调
|