select('location')->selectRaw("count(*) count") ->where('inventory_account_id', $taskId) ->where('checked', '否')->groupBy("location") ->get(); } //根据员工姓名获取当日盘点行数 public function getStaffSameDayInvCount(): int { return Sign::query() ->where('signable_type', 'inventory_account_missions') ->where('field', '盘点人') ->where('created_at', 'like', Carbon::now()->toDateString() . '%') ->where('mark', Auth::user()['name'])->count(); } public function getLocInvPro($taskId,$location): array { $ins=InventoryAccountMission::query() ->where('inventory_account_id',$taskId) ->where('location',$location)->get(); //库位盘点任务总条数 $total=$ins->count(); //已盘数 $invCount=$ins->where('checked','<>','否')->count(); return ['total'=>$total,'invCount'=>$invCount]; } //根据盘点任务号,库位,条码 查询指定盘点任务 public function getInventoryDetail($taskId,$location,$barcode) { return Cache::remember($taskId.'_'.$location.'_'.$barcode, 300, function ()use($taskId,$location,$barcode) { return InventoryAccountMission::with(['commodity.barcodes','stockInventoryPersons']) ->whereHas('commodity',function($query)use($barcode){ $query->whereHas('barcodes',function($sql)use($barcode){ $sql->where('code','=',$barcode); }); })->where('location',$location) ->where('inventory_account_id',$taskId) ->whereIn('checked',['是','否']) ->first(); }); } public function skipInventory($inventoryDetailId) { $inventoryAccountMission=InventoryAccountMission::query()->find($inventoryDetailId); if (!$inventoryAccountMission)return null; $inventoryAccountMission->checked='跳过'; $inventoryAccountMission->update(); if ($inventoryAccountMission->checked=='跳过'){ /** @var InventoryAccountService $inventoryService */ $inventoryService = app('inventoryAccountService'); $inventoryService->updateInventory($inventoryAccountMission->inventory_account_id); } return $inventoryAccountMission; } }