|
|
@@ -8,6 +8,7 @@ use App\Events\TeamAuditEvent;
|
|
|
use App\Exports\Export;
|
|
|
use App\LaborReport;
|
|
|
use App\LaborReportStatus;
|
|
|
+use App\Services\LaborReportService;
|
|
|
use App\UserDutyCheck;
|
|
|
use App\UserWorkgroup;
|
|
|
use Carbon\Carbon;
|
|
|
@@ -19,51 +20,19 @@ use Maatwebsite\Excel\Facades\Excel;
|
|
|
|
|
|
class LaborReportController extends Controller
|
|
|
{
|
|
|
- //超15天精确查询抽离 cloumn前提:数据库字段名必须与request内字段名一致
|
|
|
- public function preciseQuery(string $column,Request $request,$laborReports){
|
|
|
- $today=Carbon::now()->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->get()[0][$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;
|
|
|
+ public function __construct()
|
|
|
+ {
|
|
|
+ app()->singleton('laborReportService',LaborReportService::class);
|
|
|
}
|
|
|
/**
|
|
|
* Display a listing of the resource.
|
|
|
- *@param \Illuminate\Http\Request $request
|
|
|
- * @return \Illuminate\Http\Response
|
|
|
+ * @param Request $request
|
|
|
+ * @return void
|
|
|
* 临时工报表
|
|
|
*/
|
|
|
public function index(Request $request)
|
|
|
{
|
|
|
+ //if(!Gate::allows('人事管理')){ return redirect(url('/')); }
|
|
|
if(!Gate::allows('人事管理-临时工报表')){ return redirect(url('/')); }
|
|
|
$user=Auth::user();
|
|
|
if (!$user)return redirect('/');
|
|
|
@@ -71,20 +40,13 @@ class LaborReportController extends Controller
|
|
|
$permittingWorkgroups=UserWorkgroup::whereIn('id',$userWorkgroupIds)->get();
|
|
|
if($permittingWorkgroups->isEmpty())$permittingWorkgroups="[]";
|
|
|
$laravelEchoPrefix = config('database.redis.options.prefix');
|
|
|
- if ($request->input()){
|
|
|
- $laborReports=LaborReport::orderBy('id','DESC');
|
|
|
- $laborReports=$this->conditionQuery($request,$laborReports);
|
|
|
- $laborReportsPaginate=$laborReports->paginate($request->input('paginate')?$request->input('paginate'):50);
|
|
|
- $laborReports=$laborReports->paginate($request->input('paginate')?$request->input('paginate'):50);
|
|
|
- $userWorkGroups=UserWorkgroup::select('id','name')->get();
|
|
|
- return view('personnel.laborReport.index',['laborReportsPaginate'=>$laborReportsPaginate,'laborReports'=>$laborReports,'userWorkGroups'=>$userWorkGroups,'request'=>$request->input(),'permittingWorkgroups'=>$permittingWorkgroups,'laravelEchoPrefix'=>$laravelEchoPrefix,]);
|
|
|
- }
|
|
|
$laborReportsBuilder=LaborReport::with(['user','userDutyCheck','userWorkgroup'])->whereIn('user_workgroup_id',$userWorkgroupIds);
|
|
|
if(Gate::allows('人事管理-临时工报表-可见全部组')||Gate::allows('人事管理-门卫审核')){
|
|
|
$laborReportsBuilder->orWhereNull('user_workgroup_id');
|
|
|
}
|
|
|
- $laborReports=$laborReportsBuilder->orderBy('id','DESC')->orderBy('name','desc')->paginate(50);
|
|
|
- //$laborReports=$laborReportsPaginate->sortBy('name');
|
|
|
+ $laborReports=app('laborReportService')->paginate($request);
|
|
|
+// $laborReportsPaginate = $laborReports;
|
|
|
+// $laborReports=$laborReports->sortBy('name');
|
|
|
foreach ($laborReports as $laborReport){
|
|
|
// if (!$laborReport->group_user_id){
|
|
|
// //三十分钟之内组长未审核实行软删除
|
|
|
@@ -104,20 +66,16 @@ class LaborReportController extends Controller
|
|
|
$userWorkGroups=UserWorkgroup::select('id','name')->get();
|
|
|
return view('personnel/laborReport/index',compact('laborReports','userWorkGroups','laravelEchoPrefix','permittingWorkgroups','request'));
|
|
|
}
|
|
|
- public function export($id,Request $request){
|
|
|
+ public function export(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 ;
|
|
|
+ if ($request->checkAllSign){
|
|
|
+ $request->offsetUnset('checkAllSign');
|
|
|
+ $laborReports=app('laborReportService')->get($request);
|
|
|
+ }else{
|
|
|
+ $laborReports=app('laborReportService')->some($request);
|
|
|
+ }
|
|
|
$row=[[
|
|
|
'id'=>'ID',
|
|
|
'enter_at'=>'进场时间',
|
|
|
@@ -138,8 +96,8 @@ class LaborReportController extends Controller
|
|
|
'remark'=>'备注',
|
|
|
]];
|
|
|
$list=[];
|
|
|
- for ($i=0; $i<count($id);$i++){
|
|
|
- $laborReport=LaborReport::with(['userWorkgroup','user'])->find($id[$i]);
|
|
|
+ for ($i=0; $i<count($laborReports);$i++){
|
|
|
+ $laborReport=$laborReports[$i];
|
|
|
$w=[
|
|
|
'id'=>isset($laborReport->id)?$laborReport->id:'',
|
|
|
'enter_at'=>isset($laborReport->enter_at)?$laborReport->enter_at:'',
|