whereNotNull('form_data->approvers') ->orderBy('id', 'desc') ->first(); if (!$order) { echo "没有找到包含 form_data.approvers 的订单\n"; echo "创建一个测试订单...\n"; // 创建测试订单 $order = ApprovalOrder::create([ 'business_type' => 'business_trip', 'business_id' => 9999, 'title' => '实际审批人测试', 'applicant_id' => 1, 'status' => 'pending', 'current_nodes' => [7], 'flow_id' => 2, 'form_data' => [ 'reason' => '测试实际审批人显示', 'approvers' => [ ['id' => 4, 'name' => '闫继光00022'], ['id' => 79, 'name' => '测试用户79'] ], 'cc_users' => [ ['id' => 1, 'name' => '李佳博'] ], 'start_date' => '2026-03-01', 'end_date' => '2026-03-05', 'destination' => '北京', ], ]); echo "创建测试订单 ID: {$order->id}\n"; } echo "测试订单 ID: {$order->id}\n"; echo "标题: {$order->title}\n"; echo "\n"; // 测试 getDetail 方法 echo "调用 getDetail 方法...\n"; $detail = $service->getDetail($order->id); echo "\n========== 订单基本信息 ==========\n"; echo "ID: " . $detail['id'] . "\n"; echo "标题: " . $detail['title'] . "\n"; echo "申请人: " . ($detail['applicant']['name'] ?? 'N/A') . "\n"; echo "状态: " . $detail['status'] . "\n"; echo "\n========== 实际审批人 ==========\n"; if (isset($detail['actual_approvers'])) { foreach ($detail['actual_approvers'] as $approver) { echo "- ID: {$approver['id']}, 姓名: {$approver['name']}\n"; } } else { echo "无实际审批人数据\n"; } echo "\n========== 实际抄送人 ==========\n"; if (isset($detail['actual_cc_users'])) { foreach ($detail['actual_cc_users'] as $ccUser) { echo "- ID: {$ccUser['id']}, 姓名: {$ccUser['name']}\n"; } } else { echo "无实际抄送人数据\n"; } echo "\n========== 节点信息(含实际审批人) ==========\n"; if (isset($detail['flow']['nodes'])) { foreach ($detail['flow']['nodes'] as $node) { echo "\n节点 ID: {$node['id']}, 名称: {$node['name']}, 类型: {$node['type']}\n"; if (isset($node['actual_approvers'])) { echo " 实际审批人:\n"; foreach ($node['actual_approvers'] as $approver) { echo " - ID: {$approver['id']}, 姓名: {$approver['name']}\n"; } } if (isset($node['approver_statuses'])) { echo " 审批状态:\n"; foreach ($node['approver_statuses'] as $status) { $userName = $status['user']['name'] ?? 'Unknown'; $actionName = $status['action_name']; echo " - {$userName}: {$actionName}\n"; } } if (isset($node['actual_cc_users'])) { echo " 实际抄送人:\n"; foreach ($node['actual_cc_users'] as $ccUser) { echo " - ID: {$ccUser['id']}, 姓名: {$ccUser['name']}\n"; } } } } echo "\n====================================\n"; echo "测试完成\n"; echo "====================================\n";