fix: 修复审批消息推送问题

问题1:BusinessTripService 数据格式兼容性
- 后端期望对象数组 [{id:1, name:'...'}],前端传纯 ID 数组 [1,2,3]
- 修复:兼容两种格式,自动提取 id

问题2:ApprovalService 没有消息推送
- 添加 FeishuNotificationService 集成
- approve() 方法:节点完成后通知下一节点审批人,流程完成后通知申请人
- reject() 方法:审批拒绝时通知申请人

问题3:修复重复类定义导致的语法错误

相关文件:
- backend/app/service/BusinessTripService.php
- backend/app/service/ApprovalService.php

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
root
2026-02-26 18:49:25 +08:00
parent ee5f7791de
commit 32d19d56ee
2 changed files with 159 additions and 2 deletions
+12 -2
View File
@@ -104,8 +104,18 @@ class BusinessTripService
}
// 验证审批人和抄送人不能重复
$approverIds = array_column($approvers, 'id');
$ccUserIds = array_column($ccUsers, 'id');
// 兼容两种格式:对象数组 [{id:1, name:'xxx'}] 或纯ID数组 [1, 2, 3]
if (!empty($approvers) && isset($approvers[0]['id'])) {
$approverIds = array_column($approvers, 'id');
} else {
$approverIds = $approvers;
}
if (!empty($ccUsers) && isset($ccUsers[0]['id'])) {
$ccUserIds = array_column($ccUsers, 'id');
} else {
$ccUserIds = $ccUsers;
}
// 检查审批人列表中是否有重复
if (count($approverIds) !== count(array_unique($approverIds))) {