filter($filters) ->with(['warehouse', 'userWorkGroup', 'applyUser']); /** @var User $user */ $user = auth()->user(); $auth_user_is_人事主管 = $user->roles()->where('name', '人事主管')->exists(); if (!($user->isSuperAdmin() || $auth_user_is_人事主管)) { $builder->where('apply_user_id', \auth()->id()); } $labor_applies = $builder ->orderByDesc('id') ->simplePaginate(); 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) { if (Cache::has(self::LABOR_APPLY_STORE_LIMIT . \auth()->id())) { return redirect(route('laborApply.create'))->with('warning', "提交频率过高,请等待" . self::LABOR_APPLY_STORE_LIMIT_TTL . "s以上再试!"); } $laborApply->fill($request->all()); $laborApply->apply_user_id = Auth::id(); $laborApply->status = '创建'; $laborApply->save(); Cache::add(self::LABOR_APPLY_STORE_LIMIT . \auth()->id(), true, self::LABOR_APPLY_STORE_LIMIT_TTL); 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->update($request->all()); return redirect(route('laborApply.index'))->with('success', '申请更新成功!'); } 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(true)->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(true); $route = 'laborCompanyDispatch.index'; if ($response['success']) { return redirect(route('' . $route . ''))->with('success', '重新生成劳务派遣数据成功!'); } else { return redirect(route($route))->with('danger', $response['error_message']); } } }