|
|
@@ -46,17 +46,13 @@ class UserDutyCheckController extends Controller
|
|
|
$user_id=Cache::get('tokenStr_'.$userLaborToken);
|
|
|
$userDetail=UserDetail::find($user_id);
|
|
|
if (!$userDetail) return redirect('personnel/checking-in/userDutyCheck/createUserDetail/'.$userDetail->mobile_phone)->with("userWorkgroupID",$userWorkgroupID);
|
|
|
- if ($userWorkgroupID){
|
|
|
- $user=UserToken::getUser($userLaborToken);
|
|
|
- $user->userWorkgroups()->sync([$userWorkgroupID]);
|
|
|
- }
|
|
|
$userDutyCheck=$this->dutyCheck($userDetail->user_id,$userWorkgroupID);
|
|
|
//正常情况
|
|
|
$laborReport=LaborReport::where('user_workgroup_id',$userWorkgroupID)->where('created_at','like',Carbon::now()->format('Y-m-d')."%")->where('user_id',$userDetail->user_id)->first();
|
|
|
if(!isset($laborReport)&&$userDutyCheck->type=='登入'){
|
|
|
- $this->createLaborReportData($userDetail,$userWorkgroupID,$userDutyCheck);
|
|
|
+ LaborReport::createLaborReportData($userDetail->user_id,$userWorkgroupID,$userDutyCheck);
|
|
|
}else if ($laborReport&&$userDutyCheck->type=='登出'){
|
|
|
- $this->updateLaborReportData($laborReport,$userDutyCheck);
|
|
|
+ LaborReport::updateLaborReportData($laborReport,$userDutyCheck);
|
|
|
}
|
|
|
if ($userDutyCheck&&$userDutyCheck->error)return "<h1 style='color: darkred;text-align:center'>重复打卡!</h1>";
|
|
|
if (!$userDutyCheck)return "<h1 style='color: red;text-align:center'>打卡异常,请联系相关人员!</h1>";
|
|
|
@@ -78,8 +74,7 @@ class UserDutyCheckController extends Controller
|
|
|
if (!$userDetail) return redirect('personnel/checking-in/userDutyCheck/createUserDetail/'.$mobile_phone)->with("userWorkgroupID",$userWorkgroupID);
|
|
|
$user=User::find($userDetail->user_id);
|
|
|
if (Cache::has('tokenUser_'.$user->id))return "<h1 style='color: red;text-align:center'>请使用原有设备进行打卡,如无法使用原有设备请联系管理人员解绑设备!</h1>";
|
|
|
- if ($userWorkgroupID)$user->userWorkgroups()->sync([$userWorkgroupID]);
|
|
|
-
|
|
|
+ //if ($userWorkgroupID)$user->userWorkgroups()->sync([$userWorkgroupID]);
|
|
|
$userDutyCheckOld=UserDutyCheck::where('user_id',$userDetail->user_id)->orderBy('checked_at','DESC')->limit(10)->first();
|
|
|
$date=date('Y-m-d H:i:s');
|
|
|
$lastDate=Carbon::parse($userDutyCheckOld['checked_at']);
|
|
|
@@ -94,9 +89,9 @@ class UserDutyCheckController extends Controller
|
|
|
//正常情况
|
|
|
$laborReport=LaborReport::where('user_workgroup_id',$userWorkgroupID)->where('created_at','like',$dateNow."%")->where('user_id',$userDetail->user_id)->first();
|
|
|
if(!$laborReport&&$userDutyCheck->type=='登入'){
|
|
|
- $this->createLaborReportData($userDetail,$userWorkgroupID,$userDutyCheck);
|
|
|
+ LaborReport::createLaborReportData($userDetail->user_id,$userWorkgroupID,$userDutyCheck);
|
|
|
}else if ($laborReport&&$userDutyCheck->type=='登出'){
|
|
|
- $this->updateLaborReportData($laborReport,$userDutyCheck);
|
|
|
+ LaborReport::updateLaborReportData($laborReport,$userDutyCheck);
|
|
|
}
|
|
|
if ($userDutyCheck&&$userDutyCheck->error)return "<h1 style='color: darkred;text-align:center'>重复打卡!</h1>";
|
|
|
if (!$userDutyCheck)return "<h1 style='color: red;text-align:center'>打卡异常,请联系相关人员!</h1>";
|
|
|
@@ -133,7 +128,7 @@ class UserDutyCheckController extends Controller
|
|
|
$this->log(__METHOD__,"更改临时工劳务所信息".__FUNCTION__,json_encode($userLabor),Auth::user()['id']);
|
|
|
$userDutyCheck=$this->dutyCheck($userDetail->user_id,$userWorkgroupID);
|
|
|
//添加临时工报表数据
|
|
|
- $this->createLaborReportData($userDetail,$userWorkgroupID,$userDutyCheck);
|
|
|
+ LaborReport::createLaborReportData($userDetail->user_id,$userWorkgroupID,$userDutyCheck);
|
|
|
if ($userDutyCheck&&$userDutyCheck->error)return "<h1 style='color: darkred;text-align:center'>重复打卡!</h1>";
|
|
|
if (!$userDutyCheck)return "<h1 style='color: red;text-align:center'>打卡异常,请联系相关人员!</h1>";
|
|
|
$user=User::find($userDetail->user_id);
|
|
|
@@ -157,7 +152,7 @@ class UserDutyCheckController extends Controller
|
|
|
]);
|
|
|
$user->save();
|
|
|
$this->log(__METHOD__,"创建临时工用户__".__FUNCTION__,json_encode($user));
|
|
|
- if ($userWorkgroupID)$user->userWorkgroups()->sync([$userWorkgroupID]);
|
|
|
+ //if ($userWorkgroupID)$user->userWorkgroups()->sync([$userWorkgroupID]);
|
|
|
$userDetail=new UserDetail([
|
|
|
'user_id'=>$user->id,
|
|
|
'full_name'=>$full_name,
|
|
|
@@ -176,7 +171,7 @@ class UserDutyCheckController extends Controller
|
|
|
$userLabor->save();
|
|
|
$this->log(__METHOD__,"提交临时工对应劳务所信息__".__FUNCTION__,json_encode($userLabor));
|
|
|
$userDutyCheck=$this->dutyCheck($user->id,$userWorkgroupID);
|
|
|
- $this->createLaborReportData($userDetail,$userWorkgroupID,$userDutyCheck);
|
|
|
+ LaborReport::createLaborReportData($user->id,$userWorkgroupID,$userDutyCheck);
|
|
|
if ($userDutyCheck&&$userDutyCheck->error)return "<h1 style='color: darkred;text-align:center'>重复打卡!</h1>";
|
|
|
if (!$userDutyCheck)return "<h1 style='color: red;text-align:center'>打卡异常,请联系相关人员!</h1>";
|
|
|
$userLaborToken=$user->token(config('users.token_check_in_expire_minutes'));
|
|
|
@@ -188,15 +183,19 @@ class UserDutyCheckController extends Controller
|
|
|
}
|
|
|
|
|
|
//根据用户提交打卡记录
|
|
|
- public function dutyCheck($user_id,$workgroup_id){
|
|
|
+ public function dutyCheck($user_id,$userWorkgroupID){
|
|
|
$userDutyCheckOld=UserDutyCheck::where('user_id',$user_id)->orderBy('checked_at','DESC')->limit(10)->first();
|
|
|
+ if ($userWorkgroupID!=$userDutyCheckOld['workgroup_id']){
|
|
|
+ $user=User::find($user_id);
|
|
|
+ $user->userWorkgroups()->sync([$userWorkgroupID]);
|
|
|
+ }
|
|
|
$date=date('Y-m-d H:i:s');
|
|
|
$userDutyCheck=new UserDutyCheck([
|
|
|
'user_id'=>$user_id,
|
|
|
'checked_at'=>$date,
|
|
|
'source'=>'正常',
|
|
|
'verify_user_id'=>'',
|
|
|
- 'workgroup_id'=>$workgroup_id,
|
|
|
+ 'workgroup_id'=>$userWorkgroupID,
|
|
|
]);
|
|
|
if (!$userDutyCheckOld){
|
|
|
$userDutyCheck->type="登入";
|
|
|
@@ -243,59 +242,59 @@ class UserDutyCheckController extends Controller
|
|
|
$this->log(__METHOD__,"提交打卡记录__".__FUNCTION__,json_encode($userDutyCheck));
|
|
|
return $userDutyCheck;
|
|
|
}
|
|
|
- //添加临时工报表数据
|
|
|
- public function createLaborReportData($userDetail,$userWorkgroupID,$userDutyCheck){
|
|
|
- $user_id=$userDetail['user_id'];
|
|
|
- $name=$userDetail['full_name'];
|
|
|
- $mobile_phone=$userDetail['mobile_phone'];
|
|
|
- $identity_number=$userDetail['identity_number'];
|
|
|
- $labor_company_id=UserLabor::where('user_id',$user_id)->value('labor_company_id');
|
|
|
- $labor_company=LaborCompany::where('id',$labor_company_id)->value('name');
|
|
|
- if ($userDutyCheck->type=='登入'){
|
|
|
- $check_in_at=$userDutyCheck['checked_at'];
|
|
|
- }
|
|
|
- $laborReport=new LaborReport([
|
|
|
- 'enter_number'=>Uuid::uuid1(),
|
|
|
- 'user_workgroup_id'=>$userWorkgroupID,
|
|
|
- 'user_id'=>$user_id,
|
|
|
- 'name'=>$name,
|
|
|
- 'mobile_phone'=>$mobile_phone,
|
|
|
- 'identity_number'=>$identity_number,
|
|
|
- 'labor_company'=>$labor_company,
|
|
|
- 'check_in_at'=>$check_in_at,
|
|
|
- ]);
|
|
|
- $laborReport->save();
|
|
|
- $number_id=$laborReport->id;
|
|
|
- $enter_number=$userWorkgroupID.date ("ymd").str_pad($number_id>99999?$number_id%99999:$number_id,4,"0",STR_PAD_LEFT);
|
|
|
- $laborReport->enter_number=$enter_number;
|
|
|
- $laborReport->update();
|
|
|
- $this->log(__METHOD__,"提交临时工报表记录__".__FUNCTION__,json_encode($laborReport));
|
|
|
- return;
|
|
|
- }
|
|
|
- //修改临时工报表数据
|
|
|
- public function updateLaborReportData($laborReport,$userDutyCheck){
|
|
|
- $laborReport->check_out_at=$userDutyCheck->checked_at;
|
|
|
- $checkInDate=Carbon::parse($laborReport['check_in_at']);
|
|
|
- $checkOutDate=Carbon::parse($userDutyCheck->checked_at);
|
|
|
- $hour=($checkOutDate->diffInSeconds($checkInDate))/3600; //在线时长
|
|
|
- $laborReport['online_duration']=$hour;
|
|
|
- $laborReport['working_duration']=$hour;
|
|
|
- $laborReport->update();
|
|
|
- $date=Carbon::parse($laborReport['check_in_at'])->format('Y-m-d');
|
|
|
- if ($laborReport->check_out_at>$date." 14:00:00"){
|
|
|
- $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();
|
|
|
- $beginTime=Carbon::parse($userDutyCheckStart['checked_at']);
|
|
|
- $endTime=Carbon::parse($userDutyCheckEnd['checked_at']);
|
|
|
- $lunchHour=($endTime->diffInSeconds($beginTime))/3600;
|
|
|
- $laborReport['working_duration']=$hour-$lunchHour;
|
|
|
- $laborReport->update();
|
|
|
- }
|
|
|
- $this->log(__METHOD__,__FUNCTION__,json_encode($laborReport),Auth::user()['id']);
|
|
|
- return;
|
|
|
- }
|
|
|
+// //添加临时工报表数据
|
|
|
+// public function createLaborReportData($userDetail,$userWorkgroupID,$userDutyCheck){
|
|
|
+// $user_id=$userDetail['user_id'];
|
|
|
+// $name=$userDetail['full_name'];
|
|
|
+// $mobile_phone=$userDetail['mobile_phone'];
|
|
|
+// $identity_number=$userDetail['identity_number'];
|
|
|
+// $labor_company_id=UserLabor::where('user_id',$user_id)->value('labor_company_id');
|
|
|
+// $labor_company=LaborCompany::where('id',$labor_company_id)->value('name');
|
|
|
+// if ($userDutyCheck->type=='登入'){
|
|
|
+// $check_in_at=$userDutyCheck['checked_at'];
|
|
|
+// }
|
|
|
+// $laborReport=new LaborReport([
|
|
|
+// 'enter_number'=>Uuid::uuid1(),
|
|
|
+// 'user_workgroup_id'=>$userWorkgroupID,
|
|
|
+// 'user_id'=>$user_id,
|
|
|
+// 'name'=>$name,
|
|
|
+// 'mobile_phone'=>$mobile_phone,
|
|
|
+// 'identity_number'=>$identity_number,
|
|
|
+// 'labor_company'=>$labor_company,
|
|
|
+// 'check_in_at'=>$check_in_at,
|
|
|
+// ]);
|
|
|
+// $laborReport->save();
|
|
|
+// $number_id=$laborReport->id;
|
|
|
+// $enter_number=$userWorkgroupID.date ("ymd").str_pad($number_id>99999?$number_id%99999:$number_id,4,"0",STR_PAD_LEFT);
|
|
|
+// $laborReport->enter_number=$enter_number;
|
|
|
+// $laborReport->update();
|
|
|
+// $this->log(__METHOD__,"提交临时工报表记录__".__FUNCTION__,json_encode($laborReport));
|
|
|
+// return;
|
|
|
+// }
|
|
|
+// //修改临时工报表数据
|
|
|
+// public function updateLaborReportData($laborReport,$userDutyCheck){
|
|
|
+// $laborReport->check_out_at=$userDutyCheck->checked_at;
|
|
|
+// $checkInDate=Carbon::parse($laborReport['check_in_at']);
|
|
|
+// $checkOutDate=Carbon::parse($userDutyCheck->checked_at);
|
|
|
+// $hour=($checkOutDate->diffInSeconds($checkInDate))/3600; //在线时长
|
|
|
+// $laborReport['online_duration']=$hour;
|
|
|
+// $laborReport['working_duration']=$hour;
|
|
|
+// $laborReport->update();
|
|
|
+// $date=Carbon::parse($laborReport['check_in_at'])->format('Y-m-d');
|
|
|
+// if ($laborReport->check_out_at>$date." 14:00:00"){
|
|
|
+// $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();
|
|
|
+// $beginTime=Carbon::parse($userDutyCheckStart['checked_at']);
|
|
|
+// $endTime=Carbon::parse($userDutyCheckEnd['checked_at']);
|
|
|
+// $lunchHour=($endTime->diffInSeconds($beginTime))/3600;
|
|
|
+// $laborReport['working_duration']=$hour-$lunchHour;
|
|
|
+// $laborReport->update();
|
|
|
+// }
|
|
|
+// $this->log(__METHOD__,__FUNCTION__,json_encode($laborReport),Auth::user()['id']);
|
|
|
+// return;
|
|
|
+// }
|
|
|
|
|
|
public function validator(Request $request){
|
|
|
$validator=Validator::make($request->input(),[
|