Browse Source

首页添加由我审批的状态统计数量

kely 6 months ago
parent
commit
b8af484eb7

+ 10 - 0
app/Http/Resources/API/AssetReportResource.php

@@ -8,6 +8,7 @@
 
 namespace App\Http\Resources\API;
 
+use App\Models\Approval;
 use App\Models\Asset;
 use App\Models\AssetGroup;
 use App\Models\Requirement;
@@ -25,6 +26,12 @@ class AssetReportResource  extends JsonResource
         $now = Carbon::now();
         $whitelist=make_array_list($this->whitelist??'');
         $whitelistName=User::query()->whereIn('id',$whitelist)->get();
+        $approvalCounts = Approval::query()
+            ->allowed(true)
+            ->selectRaw('sum(case when status = \'doing\' then 1 else 0 end) as approval_doing_count,  
+                 sum(case when status = \'canceled\' then 1 else 0 end) as approval_canceled_count,  
+                 sum(case when status = \'rejected\' then 1 else 0 end) as approval_rejected_count')
+            ->first();
         return[
             'requirement_total' => Requirement::query()->whereIn('asset_id',$this->child_id)->count(),
             'plan_total' => $this->plans()->count(),
@@ -69,6 +76,9 @@ class AssetReportResource  extends JsonResource
                 })->all();
             }),
             'area_unit'=>$this->area_unit,
+            'approval_doing_count' => $approvalCounts->approval_doing_count,
+            'approval_canceled_count' => $approvalCounts->approval_canceled_count,
+            'approval_rejected_count' => $approvalCounts->approval_rejected_count,
         ];
     }
 }

+ 9 - 1
app/Http/Resources/API/AssetResource.php

@@ -2,6 +2,7 @@
 
 namespace App\Http\Resources\API;
 
+use App\Models\User;
 use App\Services\File\ImageUrlService;
 use Illuminate\Http\Request;
 use Illuminate\Http\Resources\Json\JsonResource;
@@ -13,8 +14,11 @@ class AssetResource extends JsonResource
      *
      * @return array<string, mixed>
      */
+
     public function toArray(Request $request): array
     {
+        $whitelist=make_array_list($this->whitelist??'');
+        $whitelistName=User::query()->whereIn('id',$whitelist)->get();
         return [
             'id' => $this->id,
             'name' => $this->name,
@@ -27,7 +31,8 @@ class AssetResource extends JsonResource
             'group_id' => $this->group_id ?? 0,
             'geo_address_code' => $this->geo_address_code,
             'acl' => $this->acl,
-            'whitelist' => make_array_list($this->whitelist??''),
+            'whitelist' => $whitelist,
+            'whitelist_name' => UserProfileResource::collection($whitelistName),
             'latitude' => $this->latitude,
             'longitude' => $this->longitude,
             'parent_id' => $this->parent_id,
@@ -55,6 +60,9 @@ class AssetResource extends JsonResource
                 })->all();
             }),
             'area_unit'=>$this->area_unit,
+            'project_total' => $this->projects()->count(),
+            'create_by_name'=>new UserProfileResource($this->createdBy),
+            'owner_by_name' => new UserProfileResource($this->byOwner),
 //            'whitelist_department'=>$this->whitelist_department,
 //            'whitelist_user'=>$this->whitelist_user,
 

+ 5 - 0
app/ModelFilters/ApprovalFilter.php

@@ -22,4 +22,9 @@ class ApprovalFilter extends ModelFilter
     {
         return $this->where('object_type',$type);
     }
+
+    public function status($status): ModelFilter
+    {
+        return $this->where('status',$status);
+    }
 }