Bläddra i källkod

人事管理--入场 出场 在入场逻辑修改

haozi 5 år sedan
förälder
incheckning
b8f0530078
2 ändrade filer med 28 tillägg och 16 borttagningar
  1. 25 13
      app/Http/Controllers/LaborReportController.php
  2. 3 3
      app/LaborReport.php

+ 25 - 13
app/Http/Controllers/LaborReportController.php

@@ -78,7 +78,7 @@ 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(['userWorkgroup','user'])->orderBy('id','DESC')->paginate(50);
+        $laborReports=LaborReport::with(['userWorkgroup','user','userDutyCheck'])->orderBy('id','DESC')->paginate(50);
         foreach ($laborReports as $laborReport){
             if (!$laborReport->group_user_id){
                 //十分钟之内组长未审核实行软删除
@@ -88,24 +88,36 @@ class LaborReportController extends Controller
                     $this->log(__METHOD__,"组长未审核该条记录将在10分钟后实行软删除__".__FUNCTION__,$laborReport->toJson(),Auth::user()['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();
-            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']);
+            //换场登入(当天有进场 退场 又进场 情况)
+            //换组登入 (当天进场后  换组 )
+            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);
             }
         }
+
+        //dd($laborReports);
         $userWorkGroups=UserWorkgroup::select('id','name')->get();
         return view('personnel/laborReport/index',['laborReports'=>$laborReports,'userWorkGroups'=>$userWorkGroups,'laravelEchoPrefix'=>$laravelEchoPrefix,'permittingWorkgroups'=>$permittingWorkgroups]);
 
     }
-
+    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('/')); }
         ini_set('max_execution_time',3500);

+ 3 - 3
app/LaborReport.php

@@ -37,15 +37,15 @@ class LaborReport extends Model
     }
     public function getIsExportAttribute(){
         $userDutyChecks=UserDutyCheck::where('user_id',$this['user_id'])->where('type','登出')->get();
-            $updated_at = Carbon::parse($this['updated_at'])->format('Y-m-d H-i');
+            $updated_at = Carbon::parse($this['updated_at'])->format('Y-m-d H:i');
             foreach ($userDutyChecks as $userDutyCheck){
-                $checked_at = Carbon::parse($userDutyCheck['checked_at'])->format('Y-m-d H-i');
+                $checked_at = Carbon::parse($userDutyCheck['checked_at'])->format('Y-m-d H:i');
                 if ($updated_at == $checked_at){
                     return true;
                 }
                 continue;
             }
-            return false;
+        return false;
     }
     public function getIsExportReplenishAttribute()
     {