haozi 5 лет назад
Родитель
Сommit
c71b5ba5ed

+ 3 - 2
app/Http/Controllers/LaborReportController.php

@@ -79,9 +79,10 @@ class LaborReportController extends Controller
                 ->where('checked_at','<=',$date." 14:00:00")->where('type','登入')->first();
             $laborReport->beginLunch=date('H:i',strtotime($userDutyCheckStart['checked_at']));
             $laborReport->endLunch=date('H:i',strtotime($userDutyCheckEnd['checked_at']));
-            //$hour=
+            $beginTime=Carbon::parse($laborReport->beginLunch);
+            $endTime=Carbon::parse($laborReport->endLunch);
+            $hour=($endTime->diffInSeconds($beginTime))/3600;
         }
-        //dd($laborReports);
         $userWorkGroups=UserWorkgroup::select('id','name')->get();
         return view('personnel/laborReport/index',['laborReports'=>$laborReports,'userWorkGroups'=>$userWorkGroups,]);
 

+ 23 - 11
app/Http/Controllers/UserDutyCheckController.php

@@ -48,7 +48,15 @@ class UserDutyCheckController extends Controller
                 $user=UserToken::getUser($userLaborToken);
                 $user->userWorkgroups()->sync([$userWorkgroupID]);
             }
+            $dateNow=Carbon::now()->format('Y-m-d');
+            $laborReport=LaborReport::where('user_workgroup_id',$userWorkgroupID)->where('created_at','like',$dateNow."%")->where('user_id',$userDetail->user_id)->first();
             $userDutyCheck=$this->dutyCheck($userDetail->user_id,$userWorkgroupID);
+            //正常情况
+            if(!$laborReport&&$userDutyCheck->type=='登入'){
+                $this->createLaborReportData($userDetail,$userWorkgroupID,$userDutyCheck);
+            }else if ($laborReport&&$userDutyCheck->type=='登出'){
+                $this->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>";
             $userWorkgroups=$userDetail->user->userWorkgroups();
@@ -81,18 +89,9 @@ class UserDutyCheckController extends Controller
         if ($diffDate>7*1440){
             return redirect('personnel/checking-in/userDutyCheck/updateUserDetail/'.$mobile_phone)->with("userWorkgroupID",$userWorkgroupID);
         }
+        $laborReport=LaborReport::where('user_workgroup_id',$userWorkgroupID)->where('created_at','like',$dateNow."%")->where('user_id',$userDetail->user_id)->first();
         $userDutyCheck=$this->dutyCheck($userDetail->user_id,$userWorkgroupID);
-        //24小时之内情况
-//        if($diffDate<1440){
-//            $laborReport=LaborReport::where('user_workgroup_id',$userWorkgroupID)->where('created_at','like',$dateNow."%")->where('user_id',$userDetail->user_id)->first();
-//            if (!$laborReport&&$userDutyCheckOld->type=='登出'&&$userDutyCheck->type=='登入'){
-//                    $this->createLaborReportData($userDetail,$userWorkgroupID,$userDutyCheck);
-//                }else if ($laborReport&&$userDutyCheck->type=='登出'){
-//                    $this->updateLaborReportData($laborReport,$userDutyCheck);
-//                }
-//            }
         //正常情况
-        $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);
         }else if ($laborReport&&$userDutyCheck->type=='登出'){
@@ -212,7 +211,7 @@ class UserDutyCheckController extends Controller
             $userDutyCheck->save();
             return $userDutyCheck;
         }
-        if ($diffDate>=1380&&$diffDate<7*1440){
+        if ($userDutyCheckOld->type=="登出"&&$diffDate<7*1440){
             $userDutyCheck->type="登入";
             $userDutyCheck->verify_user_id=0;
             $userDutyCheck->save();
@@ -283,7 +282,20 @@ class UserDutyCheckController extends Controller
         $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 ($userDutyCheck->checked_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();
+        }
         return;
     }
 

BIN
public/images/QRCodeIMG/1.png


BIN
public/images/QRCodeIMG/2.png


BIN
public/images/QRCodeIMG/3.png


BIN
public/images/QRCodeIMG/4.png


BIN
public/images/QRCodeIMG/5.png


+ 5 - 5
resources/views/personnel/checking-in/QRcode.blade.php

@@ -14,18 +14,18 @@
     <div class="container-fluid " id="page">
         <div class="card  ">
             <div class="card-body">
+                <div class="align-content-center m-3" >
+                    <h3 class="text-center text-dark">首次扫描后将与设备绑定,之后扫描需使用原设备与原软件!</h3><br>
+                    <h4 class="text-center text-danger">如更换设备请联系管理人员解除设备绑定!</h4>
+                </div>
                 <div class="form-inline ml-md-3">
                 <div v-for="userWorkgroup in userWorkgroups" >
                     <div class="col  pull-right  form-inline"  >
-                        <img id="img" class="img-thumbnail" style="width:250px;height: 250px" :src="userWorkgroup.url" />
+                        <img id="img" class="img-thumbnail" style="width:325px;height: 325px" :src="userWorkgroup.url" />
                     </div>
                     <p class="m-2 h5 text-center" >@{{ userWorkgroup.name }}工作组</p>
                 </div>
                 </div>
-                <div class="align-content-center m-3" >
-                    <h3 class="text-center text-dark">首次扫描后将与设备绑定,之后扫描需使用原设备与原软件!</h3><br>
-                    <h4 class="text-center text-danger">如更换设备请联系管理人员解除设备绑定!</h4>
-                </div>
             </div>
         </div>
     </div>

+ 2 - 2
resources/views/personnel/checking-in/clockAudit.blade.php

@@ -6,12 +6,12 @@
         @component('personnel.checking-in.menuChecking-in')@endcomponent
     </div>
     <div class="container-fluid" id="list">
-        <div class="card col-md visible-md">
+        <div class="card col-md visible-on">
             <div class="card-body p-0  ">
                 <table class="table table-striped table-bordered text-nowrap" >
                     <thead class="thead-light" >
                     <tr>
-                        <th>日期</th>
+                        <th class="visible-md">日期</th>
                         <td>序号</td>
                         <td>姓名</td>
                         @can('人事管理-打卡审核')<td>操作</td>@endcan

+ 8 - 15
resources/views/personnel/laborReport/index.blade.php

@@ -11,7 +11,7 @@
             <div class="">
                 <div>
                     <form  method="GET" action="{{url('personnel/laborReport/')}}" id="optionSubmit">
-                        <table class="table  table-sm table-bordered text-nowrap mb-0">
+                        <table class="table table-sm table-bordered  text-nowrap mb-0">
                             <tr v-if="isBeingFilterConditions">
                                 <td colspan="10"><div class="col" style="padding:0">
                                         <a  href="{{url('personnel/laborReport')}}"><span class="btn btn-warning text-dark">清除过滤条件</span></a>
@@ -102,13 +102,13 @@
                             <th class="laborReport_1">电话</th>
                             <th class="laborReport_1">身份证号</th>
                             <th class="laborReport_1">劳务所</th>
-                            <th class="laborReport_2">打卡时间</th>
-                            <th class="laborReport_2">审核时间</th>
-                            <th class="laborReport_2">审核人</th>
-                            <th class="laborReport_2">退场时间</th>
-                            <th class="laborReport_2">午饭打卡</th>
-                            <th class="laborReport_2">在线时长</th>
-                            <th class="laborReport_2">本次工作时长</th>
+                            <th>打卡时间</th>
+                            <th>审核时间</th>
+                            <th>审核人</th>
+                            <th>退场时间</th>
+                            <th>午饭打卡</th>
+                            <th>在线时长</th>
+                            <th>本次工作时长</th>
                         </tr>
                         <tr v-for="(laborReport,i) in laborReports">
                             <td>
@@ -172,12 +172,6 @@
                 this.initInputs();
                 $(".tooltipTarget").tooltip({'trigger':'hover'});
                 $('#list').removeClass('d-none');
-                axios.get("{{url('/getLaborReport')}}")
-                    .then(function (response) {
-
-                    }).catch(function (err) {
-                    console.log(err)
-                });
             },
             watch:{
                 checkData:{
@@ -274,5 +268,4 @@
 @endsection
 <style>
     .laborReport_1{background-color: #FFFF00}
-    .laborReport_2{background-color: #ffffff}
 </style>