|
|
@@ -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());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|