service = app(ReceivingTaskService::class); $this->ownerService = app(OwnerService::class); } public function index(Request $request,ReceivingTaskFilters $filter) { if (Gate::denies('入库管理-开单入库-查询')) { return redirect('/'); } $receivingTasks = ReceivingTask::query()->with(['items','owner','wareHouse','file','deliveryAppointmentCar'])->filter($filter)->orderByDesc('created_at')->paginate(50); $owners = $this->ownerService->getQuery()->select('id','name')->get(); $warehouses = Warehouse::query()->get(); return view("store.receivingTasks.index",compact('receivingTasks','owners','warehouses')); } public function create() { if (Gate::denies('入库管理-开单入库-创建')) { return redirect('/'); } $wareHouse = Warehouse::query()->get(); $owners = $this->ownerService->getQuery()->select("id","code","name")->get(); return view("store.receivingTasks.create",compact('wareHouse','owners')); } public function storeApi(ReceivingTaskRequest $request): array { if(Gate::denies('入库管理-开单入库-创建')){ return ['success' => false,'message' => '没有对应权限']; } $appointment_number = $request->input('appointment_number',null); $delivery_appointment_car = DeliveryAppointmentCar::query()->where('appointment_number',$appointment_number)->first(); if (!$delivery_appointment_car) return ['success' => false,'errors' =>['appointment_number' => ['对应预约号未找到']]]; if (ReceivingTask::query()->where('delivery_appointment_car_id',$delivery_appointment_car->id)->exists()) return ['success' => false, 'errors' =>['appointment_number' => ['预约号已有对应的任务']]]; try { $receiving_task = $this->service->createReceivingTask($delivery_appointment_car, $request->all()); if (!$receiving_task->id) return ['success' => false, 'message' => '生成入库单任务失败,请重新尝试']; $receiving_task->loadMissing(['wareHouse','owner','deliveryAppointmentCar']); return ['success' => true, 'data' => $receiving_task]; } catch (\Exception $e) { return ['success' => false, 'message' => '生成入库单任务失败,请重新尝试']; } } }