# 审批流程更新说明 **更新时间**: 2026-04-18 **版本**: v2.0 ## 变更概述 将审批消息发送从"单一审批群"改为"个人 + 项目群"双通道模式。 ## 修改内容 ### 1. 消息发送目标调整 | 配置项 | 之前 | 现在 | 说明 | |--------|------|------|------| | 个人私聊 | ❌ 不发送 | ✅ 发送 | ou_498988d823b61ab89c9afe4310f85bb4 | | 项目群聊 | ⚠️ 仅通知(简化消息)| ✅ 完整审批消息 | oc_7940ec97cde40b245cff9cb606ff1ac7 | | 审批群聊 | ✅ 发送 | ❌ 停用 | oc_88e0a1970a7de02eb5ac225a8b0cedea | ### 2. 审批回复监听 **之前**: - 只监听审批群(oc_88e0a1970a7de02eb5ac225a8b0cedea) - 只接受特定用户(ou_498988d823b61ab89c9afe4310f85bb4)的回复 **现在**: - 监听个人私聊(ou_498988d823b61ab89c9afe4310f85bb4) - 监听项目群聊(oc_7940ec97cde40b245cff9cb606ff1ac7) - 接受**任何用户**的回复(不限制个人ID) ### 3. 代码修改位置 **文件**: `tools/im_approval.py` **修改行数**: - 第457-470行:消息发送逻辑 - 第476-525行:在线表格/文件发送逻辑 - 第576-584行:审批回复监听(阻塞模式) - 第714-722行:审批回复监听(check_approval_status) ### 4. 配置文件 **`.env`** 配置: ```bash # 个人 Open ID(接收审批消息) FEISHU_OPERATOR_OPEN_ID=ou_498988d823b61ab89c9afe4310f85bb4 # 项目群聊 ID(接收审批消息) FEISHU_AD_PROJECT_CHAT_ID=oc_7940ec97cde40b245cff9cb606ff1ac7 # 旧审批群聊 ID(已停用,保留兼容) FEISHU_OPERATOR_CHAT_ID=oc_88e0a1970a7de02eb5ac225a8b0cedea ``` ## 端到端测试 ### 测试脚本 ```bash cd examples/auto_put_ad_mini python3 test_approval_flow_e2e.py ``` ### 测试结果 ``` ✅ 个人消息发送成功(message_id: om_x100b5117fbbc44a0c4abd3016f812f0) ✅ 项目群消息发送成功(message_id: om_x100b5117fbb534b0c3705152a30b4f1) ``` ### 验证步骤 1. ✅ 检查个人飞书消息,确认收到完整审批消息 2. ✅ 检查项目群聊,确认收到相同的审批消息 3. ✅ 在任一位置回复"通过"或"拒绝",系统能正确识别 ## 使用指南 ### 审批流程 1. **系统发起审批**:调用 `send_approval_request` 工具 2. **消息发送**: - 个人私聊收到文本消息 + Excel表格 - 项目群聊收到文本消息 + Excel表格 3. **运营回复**: - 在个人私聊中回复"通过"/"拒绝" - 或在项目群中回复"通过"/"拒绝" - 系统识别任一处的回复 4. **系统执行**:根据回复执行相应操作 ### 回复示例 **简单审批**: - ✅ "通过" → 批准所有操作 - ❌ "拒绝" → 拒绝所有操作 **部分审批**: - "只批准降价的" → 过滤后执行 - "广告12345不要暂停" → 修改决策后重新审批 ### 权限说明 **个人私聊**: - 仅指定个人(ou_498988d823b61ab89c9afe4310f85bb4)能看到 - 任何人回复都能识别(如果转发给他人) **项目群聊**: - 群内所有成员都能看到消息 - **任何群成员**都可以回复审批 ## 注意事项 1. **机器人权限**: - 确保机器人已加入项目群聊 - 确保机器人有发送消息和文件权限 - 确保机器人有读取消息权限 2. **个人私聊**: - 用户需要先与机器人建立会话 - 可以通过在任意群聊@机器人来激活 3. **回复识别**: - 系统会监听**审批消息发送后**的所有回复 - 只识别**用户类型**的消息(忽略机器人消息) - 回复内容通过 `_parse_approval_reply` 解析 ## 回滚方案 如果需要回滚到旧版(仅审批群): 1. 修改 `im_approval.py` 第457-470行: ```python # 恢复为只发送到审批群 result = _feishu.send_message(to=FEISHU_OPERATOR_CHAT_ID, text=message) ``` 2. 修改监听逻辑(第576-584行): ```python # 恢复为只监听审批群 result = _feishu.get_message_list( chat_id=FEISHU_OPERATOR_CHAT_ID, start_time=sent_time_sec, page_size=10, ) ``` 3. 恢复个人ID限制(第593行): ```python # 恢复为只接受特定用户 if sender_type != "user" or sender_id != FEISHU_OPERATOR_OPEN_ID: continue ``` ## 相关文件 - `tools/im_approval.py` - 核心审批逻辑 - `config.py` - 配置定义 - `.env` - 环境变量配置 - `test_approval_flow_e2e.py` - 端到端测试脚本 ## 更新日志 ### v2.0 (2026-04-18) - ✅ 支持个人 + 项目群双通道发送 - ✅ 移除审批群聊发送 - ✅ 允许任何群成员回复审批 - ✅ 添加端到端测试脚本 ### v1.0 (之前) - 单一审批群聊模式 - 仅指定用户可回复