Преглед на файлове

需求导入计划验证

moell преди 7 месеца
родител
ревизия
0c543f9a04
променени са 3 файла, в които са добавени 17 реда и са изтрити 6 реда
  1. 12 1
      app/Imports/RequirementImport.php
  2. 5 5
      app/Models/Plan.php
  3. BIN
      public/template/import/requirement.xlsx

+ 12 - 1
app/Imports/RequirementImport.php

@@ -4,6 +4,7 @@ namespace App\Imports;
 
 use App\Http\Requests\API\Requirement\CreateOrUpdateRequest;
 use App\Models\Enums\ObjectAction;
+use App\Models\Plan;
 use App\Models\Project;
 use App\Models\ProjectAsset;
 use App\Models\ProjectRequirement;
@@ -57,10 +58,20 @@ class RequirementImport implements ToCollection, WithHeadingRow
     {
         $this->validatorByCollection($collection, (new CreateOrUpdateRequest())->rules(), additional: function ($item) {
             if (! $item['asset_id']) {
-                return null;
+                return "Asset cannot be empty.";
+            }
+
+            if ($item['plan_id']) {
+                $plan = Plan::query()->where("asset_id", $item['asset_id'])->where("id", $item['plan_id'])->first();
+                if (! $plan) {
+                    return "Plans are not assets.";
+                }
             }
 
             $projectIDs = array_filter(array_unique(explode(',', $item['project_ids'])));
+            if (! $projectIDs) {
+                return null;
+            }
 
             $count = ProjectAsset::query()->where("asset_id", $item['asset_id'])->whereIn('id', $projectIDs)->count();
             if ($count != count($projectIDs)) {

+ 5 - 5
app/Models/Plan.php

@@ -24,11 +24,11 @@ class Plan extends Model
         'description',
     ];
 
-//    protected static function booted()
-//    {
-//        parent::booted(); // TODO: Change the autogenerated stub
-//        static::addGlobalScope(new CompanyScope);
-//    }
+    protected static function booted()
+    {
+        parent::booted(); // TODO: Change the autogenerated stub
+        static::addGlobalScope(new CompanyScope);
+    }
 
     public function scopeAllowed(Builder $query) : void
     {

BIN
public/template/import/requirement.xlsx