filter($filters) ->with(['warehouse', 'userWorkGroup', 'applyUser']); if (!(\auth()->user()->isSuperAdmin() || Gate::allows('宝时人事部'))) { $builder->where('apply_user_id', \auth()->id()); } $labor_applies = $builder ->orderByDesc('created_at') ->paginate(); return view('personnel.laborApply.index', compact('labor_applies')); } public function create() { $warehouses = Warehouse::all(); $userWorkGroups = UserWorkgroup::all(); /** @var LaborApplyService $service */ $service = app('LaborApplyService'); //获取开放状态 $can_create_status = $service->getCanCreateStatus(); return view('personnel.laborApply.create', compact('userWorkGroups', 'warehouses', 'can_create_status')); } public function store(LaborApplyRequest $request, LaborApply $laborApply) { $laborApply->fill($request->all()); $laborApply->apply_user_id = Auth::id(); $laborApply->status = '创建'; $laborApply->save(); return redirect(route('laborApply.index'))->with('success', '申请成功!'); } /** * Display the specified resource. * * @param \App\LaborApply $laborApply * @return \Illuminate\Http\Response */ public function show(LaborApply $laborApply) { // } public function edit(LaborApply $laborApply) { $warehouses = Warehouse::all(); $userWorkGroups = UserWorkgroup::all(); return view('personnel.laborApply.edit', compact('laborApply', 'warehouses', 'userWorkGroups')); } public function update(Request $request, LaborApply $laborApply) { $laborApply->actual_num = $request->input('actual_num'); $laborApply->status = '任务完结'; $laborApply->save(); return redirect(route('laborApply.index'))->with('success', '填写实到人数成功!'); } /** * Remove the specified resource from storage. * * @param \App\LaborApply $laborApply * @return \Illuminate\Http\Response */ public function destroy(LaborApply $laborApply) { $laborApply->delete(); return redirect(route('laborApply.index'))->with('success', '删除成功'); } /** * 临时开放按钮 * @return Application|RedirectResponse|Redirector */ public function temporaryOpen() { /** @var LaborApplyService $service */ $service = app('LaborApplyService'); $service->setCanCreateStatus(LaborApply::CAN_CREATE_STATUS_TEMPORARY_OPEN); $ttl = LaborApplyService::LABOR_APPLY_STATUS_TTL; //调用定时任务 开放时间过了自动生成报表 LaborApplyRecordJob::dispatch()->delay(now()->addSeconds($ttl)); return redirect(route('laborApply.create'))->with('success', "临时开放成功,有效时间为:{$ttl}S "); } /** *手动生成劳务分配 */ public function createDispatch() { /** @var LaborApplyService $laborApplyService */ $laborApplyService = app('LaborApplyService'); $response = $laborApplyService->allocationLaborToLaborCompany(); if ($response['success']) { return redirect(route('laborApplyDispatch.index'))->with('success', '重新生成劳务派遣数据成功!'); }else{ return redirect(route('laborApplyDispatch.index'))->with('danger', $response['error_message']); } } }