|
|
@@ -63,14 +63,14 @@ class LaborReportController extends Controller
|
|
|
*/
|
|
|
public function index(Request $request)
|
|
|
{
|
|
|
- if(!Gate::allows('人事管理')){ return redirect(url('/')); }
|
|
|
+ //if(!Gate::allows('人事管理')){ return redirect(url('/')); }
|
|
|
+ if(!Gate::allows('人事管理-临时工报表')){ return redirect(url('/')); }
|
|
|
$user=Auth::user();
|
|
|
if (!$user)return redirect('/');
|
|
|
- $userWorkgroupIds=$user->getPermittingWorkgroupIds();
|
|
|
+ $userWorkgroupIds=$user->getPermittingWorkgroupIds(Gate::allows('人事管理-临时工报表-可见全部组'));
|
|
|
$permittingWorkgroups=UserWorkgroup::whereIn('id',$userWorkgroupIds)->get();
|
|
|
if($permittingWorkgroups->isEmpty())$permittingWorkgroups="[]";
|
|
|
$laravelEchoPrefix = config('database.redis.options.prefix');
|
|
|
- if (!Gate::allows('人事管理-临时工报表-可见全部组')){return redirect(url('/')); }
|
|
|
if ($request->input()){
|
|
|
$laborReports=LaborReport::orderBy('id','DESC');
|
|
|
$laborReports=$this->conditionQuery($request,$laborReports);
|
|
|
@@ -78,58 +78,34 @@ class LaborReportController extends Controller
|
|
|
$userWorkGroups=UserWorkgroup::select('id','name')->get();
|
|
|
return view('personnel.laborReport.index',['laborReports'=>$laborReports,'userWorkGroups'=>$userWorkGroups,'request'=>$request->input(),'permittingWorkgroups'=>$permittingWorkgroups,'laravelEchoPrefix'=>$laravelEchoPrefix,]);
|
|
|
}
|
|
|
- $laborReports=LaborReport::with(['user','userDutyCheck','userWorkgroup'])->whereIn('user_workgroup_id',$userWorkgroupIds)->orWhereNull('user_workgroup_id')
|
|
|
- ->orderBy('id','DESC')->paginate(50);
|
|
|
+ $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')->paginate(50);
|
|
|
$laborReports=$laborReports->sortBy('name');
|
|
|
$laborReports->values()->all();
|
|
|
- foreach ($laborReports as $laborReport){
|
|
|
- if (!$laborReport->group_user_id){
|
|
|
- //十分钟之内组长未审核实行软删除
|
|
|
- $tenMinutesLater=Carbon::parse($laborReport->created_at)->subMinutes(-50)->format('Y-m-d H:i:s');
|
|
|
- if (Carbon::now()->format('Y-m-d H:i:s')>$tenMinutesLater){
|
|
|
- $laborReport->delete();
|
|
|
- $this->log(__METHOD__,"组长未审核该条记录将在10分钟后实行软删除__".__FUNCTION__,$laborReport->toJson(),Auth::user()['id']);
|
|
|
- }
|
|
|
- }
|
|
|
- $addOneHourCheckedAt=Carbon::parse($laborReport->userDutyCheck['checked_at'])->subHours(-1)->format('Y-m-d H:i:s');
|
|
|
- if (!$laborReport->userDutyCheck['verify_user_id']&&Carbon::now()->format('Y-m-d H:i:s')>$addOneHourCheckedAt){
|
|
|
- $laborReport->delete();
|
|
|
- $this->log(__METHOD__,"进场门卫未审核该条记录将在一小时后实行软删除__".__FUNCTION__,$laborReport->toJson(),Auth::user()['id']);
|
|
|
- }
|
|
|
- }
|
|
|
+// foreach ($laborReports as $laborReport){
|
|
|
+// if (!$laborReport->group_user_id){
|
|
|
+// //十分钟之内组长未审核实行软删除
|
|
|
+// $tenMinutesLater=Carbon::parse($laborReport->created_at)->subMinutes(-50)->format('Y-m-d H:i:s');
|
|
|
+// if (Carbon::now()->format('Y-m-d H:i:s')>$tenMinutesLater){
|
|
|
+// $laborReport->delete();
|
|
|
+// $this->log(__METHOD__,"组长未审核该条记录将在10分钟后实行软删除__".__FUNCTION__,$laborReport->toJson(),Auth::user()['id']);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// $addOneHourCheckedAt=Carbon::parse($laborReport->userDutyCheck['checked_at'])->subHours(-1)->format('Y-m-d H:i:s');
|
|
|
+// if (!$laborReport->userDutyCheck['verify_user_id']&&Carbon::now()->format('Y-m-d H:i:s')>$addOneHourCheckedAt){
|
|
|
+// $laborReport->delete();
|
|
|
+// $this->log(__METHOD__,"进场门卫未审核该条记录将在一小时后实行软删除__".__FUNCTION__,$laborReport->toJson(),Auth::user()['id']);
|
|
|
+// }
|
|
|
+// }
|
|
|
$userWorkGroups=UserWorkgroup::select('id','name')->get();
|
|
|
return view('personnel/laborReport/index',['laborReports'=>$laborReports,'userWorkGroups'=>$userWorkGroups,'laravelEchoPrefix'=>$laravelEchoPrefix,'permittingWorkgroups'=>$permittingWorkgroups]);
|
|
|
|
|
|
}
|
|
|
-
|
|
|
- //dd($laborReport->userDutyCheck['checked_at']);
|
|
|
- //换场登入(当天有进场 退场 又进场 情况)
|
|
|
- //换组登入 (当天进场后 换组 )
|
|
|
-// if ($laborReport->user_workgroup_id){
|
|
|
-// $createdAtDate=Carbon::parse($laborReport->created_at)->format('Y-m-d');
|
|
|
-// $userDutyCheck=UserDutyCheck::where('user_id',$laborReport->user_id)->where('type','登入')->where('checked_at','like',$createdAtDate.'%')->first();
|
|
|
-// $this->guardClock($laborReport,$userDutyCheck);
|
|
|
-// }else if (!$laborReport->user_workgroup_id){
|
|
|
-// $createdAtDate=Carbon::parse($laborReport->created_at)->format('Y-m-d H:i');
|
|
|
-// $userDutyCheck=UserDutyCheck::where('user_id',$laborReport->user_id)->where('type','登入')->where('checked_at','like',$createdAtDate.'%')->first();
|
|
|
-// $this->guardClock($laborReport,$userDutyCheck);
|
|
|
-// }
|
|
|
-
|
|
|
-
|
|
|
-// public function guardClock($laborReport,$userDutyCheck){
|
|
|
-// if(!$userDutyCheck)$addOneHourCheckedAt=Carbon::parse($laborReport['created_at'])->subHours(-1)->format('Y-m-d H:i:s');
|
|
|
-// else $addOneHourCheckedAt=Carbon::parse($userDutyCheck['checked_at'])->subHours(-1)->format('Y-m-d H:i:s');
|
|
|
-// if ($userDutyCheck['verify_user_id']) $laborReport->userDutyCheck=$userDutyCheck;
|
|
|
-// if (!$userDutyCheck['verify_user_id']&&Carbon::now()->format('Y-m-d H:i:s')<$addOneHourCheckedAt){
|
|
|
-// $laborReport->userDutyCheck=$userDutyCheck;
|
|
|
-// }
|
|
|
-// else if (!$userDutyCheck['verify_user_id']&&Carbon::now()->format('Y-m-d H:i:s')>$addOneHourCheckedAt){
|
|
|
-// $laborReport->delete();
|
|
|
-// $this->log(__METHOD__,"进场门卫未审核该条记录将在一小时后实行软删除__".__FUNCTION__,$laborReport->toJson(),Auth::user()['id']);
|
|
|
-// }
|
|
|
-// }
|
|
|
public function export($id,Request $request){
|
|
|
- if (!Gate::allows('人事管理-临时工报表-可见全部组')){return redirect(url('/')); }
|
|
|
+ if (!Gate::allows('人事管理-临时工报表')){return redirect(url('/')); }
|
|
|
ini_set('max_execution_time',3500);
|
|
|
ini_set('memory_limit','3526M');
|
|
|
if ($id==-1){
|
|
|
@@ -144,27 +120,30 @@ class LaborReportController extends Controller
|
|
|
if (!$id)return ;
|
|
|
$row=[[
|
|
|
'id'=>'ID',
|
|
|
- 'created_at'=>'创建时间',
|
|
|
+ 'enter_at'=>'进场时间',
|
|
|
+ 'exit_at'=>'退场时间',
|
|
|
'enter_number'=>'进厂编号',
|
|
|
'user_workgroup_name'=>'小组',
|
|
|
'name'=>'临时工',
|
|
|
'mobile_phone'=>'电话',
|
|
|
'identity_number'=>'身份证号',
|
|
|
'labor_company'=>'劳务所',
|
|
|
- 'check_in_at'=>'打卡时间',
|
|
|
+ 'check_in_at'=>'进组时间',
|
|
|
+ 'check_out_at'=>'退组时间',
|
|
|
'verify_at'=>'审核时间',
|
|
|
'group_user_id'=>'审核人',
|
|
|
- 'check_out_at'=>'退场时间',
|
|
|
- 'relax_time'=>'晚饭时间',
|
|
|
+ 'relax_time'=>'晚饭时间(分)',
|
|
|
'online_duration'=>'在线时长',
|
|
|
'working_duration'=>'本次工作时长',
|
|
|
+ 'remark'=>'备注',
|
|
|
]];
|
|
|
$list=[];
|
|
|
for ($i=0; $i<count($id);$i++){
|
|
|
$laborReport=LaborReport::with(['userWorkgroup','user'])->find($id[$i]);
|
|
|
$w=[
|
|
|
'id'=>isset($laborReport->id)?$laborReport->id:'',
|
|
|
- 'created_at'=>isset($laborReport->created_at)?$laborReport->created_at:'',
|
|
|
+ 'enter_at'=>isset($laborReport->enter_at)?$laborReport->enter_at:'',
|
|
|
+ 'exit_at'=>isset($laborReport->exit_at)?$laborReport->exit_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:'',
|
|
|
@@ -172,12 +151,13 @@ class LaborReportController extends Controller
|
|
|
'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:'',
|
|
|
+ 'check_out_at'=>isset($laborReport->check_out_at)?$laborReport->check_out_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:'',
|
|
|
'relax_time'=>isset($laborReport->relax_time)?$laborReport->relax_time:'',
|
|
|
'online_duration'=>isset($laborReport->online_duration)?$laborReport->online_duration:'',
|
|
|
'working_duration'=>isset($laborReport->working_duration)?$laborReport->working_duration:'',
|
|
|
+ 'remark'=>isset($laborReport->remark)?$laborReport->remark:'',
|
|
|
];
|
|
|
$list[$i]=$w;
|
|
|
}
|
|
|
@@ -204,10 +184,9 @@ class LaborReportController extends Controller
|
|
|
}
|
|
|
//打卡组长审核
|
|
|
public function groupClockAudit(Request $request){
|
|
|
- if(!Gate::allows('人事管理')){ return ["success"=>false,"data"=>"您无此权限操作!"]; }
|
|
|
+ if(!Gate::allows('人事管理-组长审核')){ return ["success"=>false,"data"=>"您无此权限操作!"]; }
|
|
|
$id=$request->input('id');
|
|
|
$laborReport=LaborReport::find($id);
|
|
|
- if(!Gate::allows('人事管理-组长审核')){ return ["success"=>false,"data"=>"您无此权限操作!"]; }
|
|
|
$laborReport->group_user_id=Auth::user()['id'];
|
|
|
$laborReport->verify_at=date('Y-m-d H:i:s');
|
|
|
$laborReport->update();
|
|
|
@@ -216,13 +195,28 @@ class LaborReportController extends Controller
|
|
|
event(new TeamAuditEvent($laborReport));
|
|
|
return ["success"=>true,"data"=>$laborReport];
|
|
|
}
|
|
|
+ //打卡组长审核(特定组添加备注)
|
|
|
+ public function addRemarkAndGroupClock(Request $request){
|
|
|
+ if(!Gate::allows('人事管理-组长审核')){ return ["success"=>false,"data"=>"您无此权限操作!"]; }
|
|
|
+ $id=$request->input('id');
|
|
|
+ $remark=$request->input('remark');
|
|
|
+ if(!$remark){ return ["success"=>false,"data"=>"您还未添加任何备注,请返回添加备注!"]; }
|
|
|
+ $laborReport=LaborReport::find($id);
|
|
|
+ $laborReport->group_user_id=Auth::user()['id'];
|
|
|
+ $laborReport->verify_at=date('Y-m-d H:i:s');
|
|
|
+ $laborReport->update();
|
|
|
+ $laborReport->setRemarkAttribute($remark,$id);
|
|
|
+ $laborReport->verifyPerson=Auth::user()['name'];
|
|
|
+ $this->log(__METHOD__,"打卡组长审核并添加相应备注".__FUNCTION__,json_encode($laborReport),Auth::user()['id']);
|
|
|
+ event(new TeamAuditEvent($laborReport));
|
|
|
+ return ["success"=>true,"data"=>$laborReport];
|
|
|
+ }
|
|
|
|
|
|
//组长点击退组
|
|
|
public function groupExport(Request $request){
|
|
|
- if(!Gate::allows('人事管理')){ return ["success"=>false,"data"=>"您无此权限操作!"]; }
|
|
|
+ if(!Gate::allows('人事管理-组长审核')){ return ["success"=>false,"data"=>"您无此权限操作!"]; }
|
|
|
$id=$request->input('id');
|
|
|
$laborReport=LaborReport::find($id);
|
|
|
- if(!Gate::allows('人事管理-组长审核')){ return ["success"=>false,"data"=>"您无此权限操作!"]; }
|
|
|
$laborReportStatus=new LaborReportStatus([
|
|
|
'labor_report_id'=>$id,
|
|
|
'status'=>'已退组',
|
|
|
@@ -233,8 +227,13 @@ class LaborReportController extends Controller
|
|
|
$check_in_at=$laborReport->check_in_at;
|
|
|
$laborReport->check_out_at=$check_out_at;
|
|
|
$online_duration=round(Carbon::parse($check_out_at)->diffInSeconds(Carbon::parse($check_in_at))/3600,2);
|
|
|
- $laborReport->online_duration=$online_duration;
|
|
|
$laborReport->working_duration=$this->minusLunchTime($laborReport,$online_duration);
|
|
|
+ if ($laborReport['enter_at']){
|
|
|
+ $enter_at=$laborReport['enter_at'];
|
|
|
+ $laborReport->online_duration=round(Carbon::parse($check_out_at)->diffInSeconds(Carbon::parse($enter_at))/3600,2);
|
|
|
+ }else{
|
|
|
+ $laborReport->online_duration=$online_duration;
|
|
|
+ }
|
|
|
$laborReport->update();
|
|
|
$laborReport->is_exportGroup=$laborReport->getIsExportGroupAttribute();
|
|
|
$this->log(__METHOD__,"退组".__FUNCTION__,json_encode($laborReport),Auth::user()['id']);
|
|
|
@@ -244,12 +243,11 @@ class LaborReportController extends Controller
|
|
|
|
|
|
//晚19点后组长点击退场,判断是否有晚餐情况
|
|
|
public function groupExportEnsure(Request $request){
|
|
|
- if(!Gate::allows('人事管理')){ return ["success"=>false,"data"=>"您无此权限操作!"]; }
|
|
|
+ if(!Gate::allows('人事管理-组长审核')){ return ["success"=>false,"data"=>"您无此权限操作!"]; }
|
|
|
$id=$request->input('id');
|
|
|
$relax_time=$request->input('relax_time');
|
|
|
if(!$relax_time){ return ["success"=>false,"data"=>"未选择确切晚饭时间,请重新选择!"]; }
|
|
|
$laborReport=LaborReport::find($id);
|
|
|
- if(!Gate::allows('人事管理-组长审核')){ return ["success"=>false,"data"=>"您无此权限操作!"]; }
|
|
|
$laborReportStatus=new LaborReportStatus([
|
|
|
'labor_report_id'=>$id,
|
|
|
'status'=>'已退组',
|
|
|
@@ -260,13 +258,18 @@ class LaborReportController extends Controller
|
|
|
$check_in_at=$laborReport->check_in_at;
|
|
|
$laborReport->check_out_at=$check_out_at;
|
|
|
$online_duration=round(Carbon::parse($check_out_at)->diffInSeconds(Carbon::parse($check_in_at))/3600,2);
|
|
|
- $laborReport->online_duration=$online_duration;
|
|
|
if ($relax_time){
|
|
|
$laborReport->relax_time=$relax_time;
|
|
|
$laborReport->working_duration=$this->minusLunchTime($laborReport,$online_duration)-$relax_time/60;//减去晚饭时间
|
|
|
}else{
|
|
|
$laborReport->working_duration=$this->minusLunchTime($laborReport,$online_duration);
|
|
|
}
|
|
|
+ if ($laborReport->enter_at){
|
|
|
+ $enter_at=$laborReport['enter_at'];
|
|
|
+ $laborReport->online_duration=round(Carbon::parse($check_out_at)->diffInSeconds(Carbon::parse($enter_at))/3600,2);
|
|
|
+ }else{
|
|
|
+ $laborReport->online_duration=$online_duration;
|
|
|
+ }
|
|
|
$laborReport->update();
|
|
|
$laborReport->is_exportGroup=$laborReport->getIsExportGroupAttribute();
|
|
|
$this->log(__METHOD__,"退组".__FUNCTION__,json_encode($laborReport),Auth::user()['id']);
|