Browse Source

fix:Task审批和审批流

moell 8 months ago
parent
commit
479b26e4c7

+ 1 - 0
app/Http/Controllers/API/ApprovalFlowController.php

@@ -48,6 +48,7 @@ class ApprovalFlowController extends Controller
 
         $approvalFlow->fill([
             ...$request->all(),
+            'object_id' => $limitObject ? $request->object_id : 0,
             'company_id' => Auth::user()->company_id,
             'created_by' => Auth::id(),
             'nodes' => $nodes,

+ 13 - 7
app/Services/Approval/StoreService.php

@@ -81,14 +81,20 @@ class StoreService
     protected function getApprovalFlow(ApprovalObjectType $approvalObjectType, $approvalObject)
     {
         $approvalFlow = ApprovalFlow::query()
-            ->where("type", $approvalObjectType->flowType())
-            ->when(
-                $approvalObjectType->flowType() == ApprovalFlowType::TASK,
-                fn ($query) => $query->orWhere([
-                    'object_type' => ApprovalFlowObjectType::PROJECT->value,
-                    'object_id' => $approvalObject->id,
+            ->where(function ($query) use ($approvalObjectType, $approvalObject) {
+                $query->where([
+                    "type" => $approvalObjectType->flowType()->value,
+                    "object_id" => 0,
                 ])
-            )
+                    ->when(
+                        $approvalObjectType->flowType() == ApprovalFlowType::TASK,
+                        fn ($query) => $query->orWhere(fn ($query) => $query->where([
+                            "type" => $approvalObjectType->flowType()->value,
+                            'object_type' => ApprovalFlowObjectType::PROJECT->value,
+                            'object_id' => $approvalObject->id,
+                        ]))
+                    );
+            })
             ->where("status", 1)
             ->orderByDesc("object_id")
             ->first();