subDays(15); $laborReportsTem=clone $laborReports; $laborReportsTem=$laborReportsTem->where($column,'like','%'.$request->input($column).'%')->where('created_at','>',$today->format('Y-m-d')); if($laborReportsTem->count()==0 ||$laborReportsTem->first()[$column]==$request->input($column)){ $laborReports=$laborReports->where($column,$request->input($column)); }else{ $laborReports=$laborReportsTem; } return $laborReports; } public function conditionQuery(Request $request,$laborReports){ if ($request->input('enter_number')){ $laborReports=$this->preciseQuery('enter_number',$request,$laborReports); } if ($request->input('user_workgroup_id')){ $laborReports=$this->preciseQuery('user_workgroup_id',$request,$laborReports); } if ($request->input('created_at_start')){ $created_at_start=$request->input('created_at_start')." 00:00:00"; $laborReports=$laborReports->where('created_at','>=',$created_at_start); } if ($request->input('created_at_end')){ $created_at_end=$request->input('created_at_end')." 23:59:59"; $laborReports=$laborReports->where('created_at','<=',$created_at_end); } if ($request->input('mobile_phone')){ $laborReports=$laborReports->where('mobile_phone',$request->input('mobile_phone')); } if ($request->input('identity_number')){ $laborReports=$this->preciseQuery('identity_number',$request,$laborReports); } return $laborReports; } /** * Display a listing of the resource. *@param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response * 临时工报表 */ public function index(Request $request) { if (!Gate::allows('人事管理-临时工报表')){return redirect(url('/')); } if ($request->input()){ $laborReports=LaborReport::orderBy('id','DESC'); $laborReports=$this->conditionQuery($request,$laborReports); $laborReports=$laborReports->paginate($request->input('paginate')?$request->input('paginate'):50); $userWorkGroups=UserWorkgroup::select('id','name')->get(); return view('personnel.laborReport.index',['laborReports'=>$laborReports,'userWorkGroups'=>$userWorkGroups,'request'=>$request->input()]); } $laborReports=LaborReport::with(['userWorkgroup','user'])->orderBy('id','DESC')->paginate(50); foreach ($laborReports as $laborReport){ $date=Carbon::parse($laborReport->check_in_at)->format('Y-m-d'); $userDutyCheckStart=UserDutyCheck::where('user_id',$laborReport->user_id)->where('workgroup_id',$laborReport->user_workgroup_id)->where('checked_at','>=',$date." 11:00".":00") ->where('checked_at','<=',$date." 14:00:00")->where('type','登出')->first(); $userDutyCheckEnd=UserDutyCheck::where('user_id',$laborReport->user_id)->where('workgroup_id',$laborReport->user_workgroup_id)->where('checked_at','>=',$date." 11:00".":00") ->where('checked_at','<=',$date." 14:00:00")->where('type','登入')->first(); if ($userDutyCheckStart['checked_at']==null){ $laborReport->beginLunch=null; }else{ $laborReport->beginLunch=date('H:i',strtotime($userDutyCheckStart['checked_at'])); } if ($userDutyCheckEnd['checked_at']==null){ $laborReport->endLunch=null; }else{ $laborReport->endLunch=date('H:i',strtotime($userDutyCheckEnd['checked_at'])); } } $userWorkGroups=UserWorkgroup::select('id','name')->get(); // dd($userWorkGroups,$laborReports); return view('personnel/laborReport/index',['laborReports'=>$laborReports,'userWorkGroups'=>$userWorkGroups,]); } public function export($id,Request $request){ if (!Gate::allows('人事管理-临时工报表')){return redirect(url('/')); } ini_set('max_execution_time',3500); ini_set('memory_limit','3526M'); if ($id==-1){ $id=[]; $laborReports=LaborReport::select('id'); $laborReports=$this->conditionQuery($request,$laborReports); $laborReports=$laborReports->get(); foreach ($laborReports as $laborReports){ array_push($id,$laborReports->id); } }else $id = explode( ',',$id); if (!$id)return ; $row=[[ 'id'=>'ID', 'created_at'=>'创建时间', 'enter_number'=>'进厂编号', 'user_workgroup_name'=>'小组', 'name'=>'临时工', 'mobile_phone'=>'电话', 'identity_number'=>'身份证号', 'labor_company'=>'劳务所', 'check_in_at'=>'打卡时间', 'verify_at'=>'审核时间', 'group_user_id'=>'审核人', 'check_out_at'=>'退场时间', 'online_duration'=>'在线时长', 'working_duration'=>'本次工作时长', ]]; $list=[]; for ($i=0; $ifind($id[$i]); $w=[ 'id'=>isset($laborReport->id)?$laborReport->id:'', 'created_at'=>isset($laborReport->created_at)?$laborReport->created_at:'', 'enter_number'=>isset($laborReport->enter_number)?$laborReport->enter_number:'', 'user_workgroup_name'=>isset($laborReport->userWorkgroup->name)?$laborReport->userWorkgroup->name:'', 'name'=>isset($laborReport->name)?$laborReport->name:'', 'mobile_phone'=>isset($laborReport->mobile_phone)?$laborReport->mobile_phone:'', 'identity_number'=>isset($laborReport->identity_number)?$laborReport->identity_number:'', 'labor_company'=>isset($laborReport->labor_company)?$laborReport->labor_company:'', 'check_in_at'=>isset($laborReport->check_in_at)?$laborReport->check_in_at:'', 'verify_at'=>isset($laborReport->verify_at)?$laborReport->verify_at:'', 'group_user_id'=>isset($laborReport->user->name)?$laborReport->user->name:'', 'check_out_at'=>isset($laborReport->check_out_at)?$laborReport->check_out_at:'', 'online_duration'=>isset($laborReport->online_duration)?$laborReport->online_duration:'', 'working_duration'=>isset($laborReport->working_duration)?$laborReport->working_duration:'', ]; $list[$i]=$w; } return Excel::download(new Export($row,$list),date('YmdHis', time()).'-临时工报表记录单.xlsx'); } }