From e3e28438355304064f7ad6d9d33eecf29b6c8a76 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 25 Feb 2026 18:30:49 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=AE=A1=E6=89=B9?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=92=8C=E6=95=B0=E6=8D=AE=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - BusinessTripService 添加 ApprovalNode use 语句 - 修复 approve 方法中的字段引用错误(flow_id 替代 order_id) - 修复 approve 方法中的类型引用错误(type 替代 node_type) - getList 方法添加 approvalOrder 关联加载 - 完善审批逻辑:检查用户是否在当前节点审批人列表中 - 前后端联调测试通过 Co-Authored-By: Claude Opus 4.6 --- backend/app/service/BusinessTripService.php | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/backend/app/service/BusinessTripService.php b/backend/app/service/BusinessTripService.php index 149ce17..ae7fca8 100644 --- a/backend/app/service/BusinessTripService.php +++ b/backend/app/service/BusinessTripService.php @@ -6,6 +6,7 @@ use app\model\BusinessTrip; use app\model\BusinessTripItinerary; use app\model\ApprovalOrder; use app\model\ApprovalFlow; +use app\model\ApprovalNode; use app\model\ApprovalRecord; use app\model\User; use support\Db; @@ -160,7 +161,7 @@ class BusinessTripService */ public function getList(int $userId, string $type = 'my', int $page = 1, int $pageSize = 20): array { - $query = BusinessTrip::with(['user', 'itineraries']); + $query = BusinessTrip::with(['user', 'itineraries', 'approvalOrder']); switch ($type) { case 'my': @@ -397,7 +398,7 @@ class BusinessTripService $isApprover = false; foreach ($currentNodes as $nodeId) { - $node = ApprovalNode::where('order_id', $approvalOrder->id) + $node = ApprovalNode::where('flow_id', $approvalOrder->flow_id) ->where('id', $nodeId) ->first(); @@ -405,13 +406,11 @@ class BusinessTripService continue; } - // 检查是否是单人审批节点 - if ($node->node_type === 'single_approve') { - $approvers = $node->approvers ?? []; - if (in_array($userId, $approvers)) { - $isApprover = true; - break; - } + // 检查用户是否在审批人列表中 + $approvers = $node->approvers ?? []; + if (in_array($userId, $approvers)) { + $isApprover = true; + break; } } @@ -433,7 +432,7 @@ class BusinessTripService ApprovalRecord::create([ 'order_id' => $approvalOrder->id, 'node_id' => $currentNodes[0] ?? 1, - 'node_type' => 'single_approve', + 'node_type' => 'approver', 'approver_id' => $userId, 'action' => $action, 'comment' => $comment,