Zhouzhendong 4 лет назад
Родитель
Сommit
6d26654920

+ 9 - 6
app/Http/Controllers/TestController.php

@@ -149,12 +149,15 @@ class TestController extends Controller
     }
     public function test()
     {
-        $filePath = base_path('文档/SystemHandBook.md');
-        $f = @fopen($filePath,'rb') or new Exception($filePath);
-        fclose($f);
-        dd($filePath);
-        $read = @file_get_contents($filePath);
-        $read = str_replace(["\r","\n",'"'],["\\r",'\\n',"'"],$read);
+        $arr = [];
+        foreach (Waybill::query()->get() as $a){
+            $arr[] = $a;
+        }
+        $us = \Illuminate\Database\Eloquent\Collection::make(collect($arr));
+
+        $us->load("owner");
+        dd($us);
+
     }
     function tailCustom($filepath, $lines = 1, $adaptive = true) {
 // Open file

+ 3 - 1
app/Services/StationTaskBatchService.php

@@ -192,7 +192,9 @@ class StationTaskBatchService
         if (get_class($stationTaskBatch_orCollection)==StationTaskBatch::class){
             $stationTaskBatch_orCollection = collect([$stationTaskBatch_orCollection]);
         }
-        $this->markProcessing_byIds(data_get($stationTaskBatch_orCollection, '*.id'));
+        $taskIds = data_get($stationTaskBatch_orCollection, '*.id');
+        $this->markProcessing_byIds($taskIds);
+        $this->handleStorage($stationTaskBatch_orCollection);
     }
     function markProcessing_byIds($ids)
     {

+ 23 - 0
app/Services/StorageService.php

@@ -3,6 +3,7 @@
 namespace App\Services;
 
 use App\CommodityMaterialBoxModel;
+use App\Components\ErrorPush;
 use App\MaterialBoxCommodity;
 use App\Station;
 use App\StationTask;
@@ -13,6 +14,7 @@ use App\Traits\ServiceAppAop;
 use App\ValueStore;
 use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Database\Eloquent\Model;
+use Illuminate\Support\Collection;
 use Illuminate\Support\Facades\Auth;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Str;
@@ -20,6 +22,7 @@ use Illuminate\Support\Str;
 class StorageService
 {
     use ServiceAppAop;
+    use ErrorPush;
 
     /**
      * 缓存架放置记录
@@ -601,4 +604,24 @@ SQL;
         if (!$trk)return $tsk->qty;
         return $tsk->qty - $trk->amount;
     }
+
+    /**
+     * @param Collection $tasks
+     */
+    public function handleStorage(Collection $tasks)
+    {
+        $tasks = \Illuminate\Database\Eloquent\Collection::make($tasks);
+        $tasks->load("stationTaskCommodities");
+        if (!$tasks->count())return;
+        foreach ($tasks as $task){
+            if (!$task->stationTaskCommodities)continue;
+            foreach ($task->stationTaskCommodities as $commodity){
+                $update[] = [$task->material_box_id];
+                $result = MaterialBoxCommodity::query()->where("material_box_id",$task->material_box_id)
+                    ->where("commodity_id",$commodity->commodity_id)
+                    ->update(["amount"=>DB::raw("amount-{$commodity->amount}")]);
+                if ($result!==1)$this->push(__METHOD__."->".__LINE__,"库存处理异常","修改了:".$result."行; 表参数:".$commodity->toJson());
+            }
+        }
+    }
 }

+ 0 - 1
app/Services/common/BatchUpdateService.php

@@ -12,7 +12,6 @@ use App\Traits\ServiceAppAop;
 class BatchUpdateService
 {
     use ServiceAppAop;
-    protected $modelClass=BatchUpdate::class;
     public function batchUpdate($tableName = '', $multipleData = array(), $connection = 'mysql')
     {
         if (count($multipleData) == 1) {