Files
x-server-mobile/backend/test_detail_actual_approvers.php
T
root e13574f6f1 fix: 修复会签场景下消息卡片更新问题
- 添加 updateMessageCardsForPartialApprove 方法处理会签部分通过
- 会签一人通过后,其他人的消息卡片显示进度并保留按钮
- 修复 Dockerfile 构建顺序问题
- 修复前端类型定义问题

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 10:33:40 +08:00

117 lines
3.6 KiB
PHP

<?php
require_once __DIR__ . '/vendor/autoload.php';
require_once __DIR__ . '/support/bootstrap.php';
use app\model\ApprovalOrder;
use app\service\ApprovalService;
echo "====================================\n";
echo "测试审批详情 - 实际审批人显示\n";
echo "====================================\n\n";
$service = new ApprovalService();
// 测试获取一个有实际审批人的订单详情
$order = ApprovalOrder::whereNotNull('form_data')
->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";