fix: 修复审批功能和数据加载问题
- BusinessTripService 添加 ApprovalNode use 语句 - 修复 approve 方法中的字段引用错误(flow_id 替代 order_id) - 修复 approve 方法中的类型引用错误(type 替代 node_type) - getList 方法添加 approvalOrder 关联加载 - 完善审批逻辑:检查用户是否在当前节点审批人列表中 - 前后端联调测试通过 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user