Преглед изворни кода

修改人事管理系统相关逻辑

haozi пре 5 година
родитељ
комит
6d234403cd

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

@@ -3,17 +3,13 @@
 namespace App\Http\Controllers;
 
 use App\Exports\Export;
-use App\LaborCompany;
 use App\LaborReport;
-use App\Package;
 use App\UserDutyCheck;
-use App\UserLabor;
 use App\UserWorkgroup;
 use Carbon\Carbon;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Gate;
 use Maatwebsite\Excel\Facades\Excel;
-use Ramsey\Uuid\Uuid;
 
 class LaborReportController extends Controller
 {
@@ -70,7 +66,7 @@ class LaborReportController extends Controller
             $userWorkGroups=UserWorkgroup::select('id','name')->get();
             return view('personnel.laborReport.index',['laborReports'=>$laborReports,'userWorkGroups'=>$userWorkGroups,'request'=>$request->input()]);
         }
-        $laborReports=LaborReport::with(['user_workgroup','user'])->orderBy('id','DESC')->paginate(50);
+        $laborReports=LaborReport::with(['userWorkgroup','user'])->orderBy('id','DESC')->paginate(50);
         foreach ($laborReports as $laborReport){
             $date=Carbon::parse($laborReport->check_in_at)->format('Y-m-d');
             $userDutyCheckStart=UserDutyCheck::where('user_id',$laborReport->user_id)->where('workgroup_id',$laborReport->user_workgroup_id)->where('checked_at','>=',$date." 11:00".":00")
@@ -125,12 +121,12 @@ class LaborReportController extends Controller
         ]];
         $list=[];
         for ($i=0; $i<count($id);$i++){
-            $laborReport=LaborReport::with(['user_workgroup','user'])->find($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_number'=>isset($laborReport->enter_number)?$laborReport->enter_number:'',
-                'user_workgroup_name'=>isset($laborReport->user_workgroup->name)?$laborReport->user_workgroup->name:'',
+                'user_workgroup_name'=>isset($laborReport->userWorkgroup->name)?$laborReport->userWorkgroup->name:'',
                 'name'=>isset($laborReport->name)?$laborReport->name:'',
                 'mobile_phone'=>isset($laborReport->mobile_phone)?$laborReport->mobile_phone:'',
                 'identity_number'=>isset($laborReport->identity_number)?$laborReport->identity_number:'',

+ 2 - 1
app/Http/Controllers/QRCodeController.php

@@ -39,9 +39,10 @@ class QRCodeController extends Controller
     //刷新二维码
     public function flushQRCode($userWorkgroups){
         foreach ($userWorkgroups as $userWorkgroup){
+            $time=strtotime(Cache::get('last_refresh_date'));
             $qrCode_refresh=config('hr.qrCode_refresh');
             if ($qrCode_refresh){
-                $date=date('Y-m-d:H:i');
+                $date=md5(date('Y-m-d H:i:s', strtotime('+30second',$time)));
                 $url=url("personnel/checking-in/userDutyCheck/clock?key=").$date;
                 $url=$url."&&userWorkgroupID=".$userWorkgroup->id;
             }else{

+ 14 - 9
app/Http/Controllers/UserDutyCheckController.php

@@ -34,9 +34,10 @@ class UserDutyCheckController extends Controller
             if ($key!=$date) return view('exception.404',['error'=>'二维码失效!']);
         }
         if ($qrCode_refresh){
+            $time=strtotime(Cache::get('last_refresh_date'));
             $key=$request->input('key');
             if (!$key) return view('exception.404',['error'=>'二维码失效!']);
-            $date=date('Y-m-d:H:i');
+            $date=md5(date('Y-m-d H:i:s', strtotime('+30second',$time)));
             if ($key!=$date) return view('exception.404',['error'=>'二维码失效!']);
         }
         $userLaborToken=$request->cookie('userLaborToken');
@@ -204,12 +205,6 @@ class UserDutyCheckController extends Controller
         $lastDate=Carbon::parse($userDutyCheckOld->checked_at);
         $thisDate=Carbon::parse($date);
         $diffDate=$thisDate->diffInMinutes($lastDate);
-
-        if ($diffDate>7*1440){
-            $userDutyCheck->type="登入";
-            $userDutyCheck->save();
-            return $userDutyCheck;
-        }
         if ($userDutyCheckOld->type=="登出"&&$diffDate<7*1440){
             $userDutyCheck->type="登入";
             $userDutyCheck->verify_user_id=0;
@@ -303,8 +298,18 @@ class UserDutyCheckController extends Controller
             'full_name'=>['filled'],
             'gender'=>['filled'],
             'mobile_phone'=>['required','integer','digits:11'],
-            'identity_number' => ['identitycards'],
-        ],[],[]);
+            'identity_number' => ['filled','identity_cards'],
+        ],[
+            'filled' => ':attribute 不能为空',
+            'required'=>':attribute 为必填项',
+            'integer'=>':attribute 数字类型',
+            'digits'=>':attribute 必须是11位',
+        ],[
+            'full_name'=>'姓名',
+            'gender'=>'性别',
+            'mobile_phone'=>'手机号',
+            'identity_number' => '身份证号',
+        ]);
         return $validator;
     }
 }

+ 3 - 1
app/Http/Controllers/UserWorkGroupController.php

@@ -56,7 +56,9 @@ class UserWorkgroupController extends Controller
         if(!Gate::allows('工作组-编辑')){ return redirect(url('/'));  }
         $userWorkgroup=UserWorkgroup::find($id);
         $warehouses=Warehouse::select('id','name')->get();
-        return view('maintenance.userWorkgroup.edit',['userWorkgroup'=>$userWorkgroup,'warehouses'=>$warehouses]);
+        $warehouseId=UserWorkgroup::where('id',$id)->value('warehouse_id');
+        $warehouse=Warehouse::where('id',$warehouseId)->first();
+        return view('maintenance.userWorkgroup.edit',['userWorkgroup'=>$userWorkgroup,'warehouses'=>$warehouses,'warehouse'=>$warehouse]);
     }
 
     public function update(Request $request, $id)

+ 1 - 1
app/LaborReport.php

@@ -16,7 +16,7 @@ class LaborReport extends Model
         'user_workgroup_name',
     ];
 
-    public function user_workgroup(){
+    public function userWorkgroup(){
         return $this->belongsTo('App\UserWorkgroup','user_workgroup_id','id');
     }
     public function user(){

+ 1 - 1
app/Providers/AppServiceProvider.php

@@ -35,7 +35,7 @@ class AppServiceProvider extends ServiceProvider
                 $event-> exception:{$event->exception}");
         });
         //扩展身份证验证规则
-        Validator::extend('identitycards', function($attribute, $value, $parameters) {
+        Validator::extend('identity_cards', function($attribute, $value, $parameters) {
             return preg_match('/(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$)/', $value);
         });
     }

+ 0 - 1
config/hr.php

@@ -4,5 +4,4 @@ return [
 
     'qrCode_refresh_everyday' =>false,
     'qrCode_refresh'=>60,
-    ''
 ];

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


+ 1 - 1
resources/lang/cn/validation.php

@@ -116,7 +116,7 @@ return [
     'uploaded' => ':attribute failed to upload.',
     'url' => ':attribute format is invalid.',
     'uuid' => ':attribute must be a valid UUID.',
-    'identitycards' => ':attribute 身份证号错误',
+    'identity_cards' => ':attribute 身份证号错误',
 
     /*
     |--------------------------------------------------------------------------

+ 1 - 0
resources/views/maintenance/userWorkGroup/create.blade.php

@@ -15,6 +15,7 @@
                         <label for="warehouse" class="col-2 col-form-label text-right">仓库名称</label>
                         <div class="col-8">
                             <select id="warehouse" type="text" class="form-control" name="warehouse" autocomplete="off"  required>
+                                <option >请选择仓库</option>
                                 <option v-for="warehouse in warehouses">@{{ warehouse.name }}</option>
                             </select>
                         </div>

+ 3 - 1
resources/views/maintenance/userWorkGroup/edit.blade.php

@@ -20,7 +20,8 @@
                         <label for="warehouse" class="col-2 col-form-label text-right">仓库名称</label>
                         <div class="col-8">
                             <select id="warehouse" type="text" class="form-control" name="warehouse" autocomplete="off"  required>
-                                <option v-for="warehouse in warehouses">@{{ warehouse.name }}</option>
+                                <option>@{{ warehouse.name }}</option>
+                                <option  v-for="warehouse in warehouses">@{{ warehouse.name }}</option>
                             </select>
                         </div>
                     </div>
@@ -51,6 +52,7 @@
         new Vue({
             el:'#list',
             data:{
+                warehouse:{id:'{{$warehouse->id}}',name:'{{$warehouse->name}}'},
                 warehouses:[
                         @foreach($warehouses as $warehouse)
                     {id:'{{$warehouse->id}}',name:'{{$warehouse->name}}'},

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

@@ -12,20 +12,28 @@
 </head>
 <body>
     <div class="container-fluid " id="page">
-        <div class="card  ">
+        <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:325px;height: 325px" :src="userWorkgroup.url" />
+                <div v-if="userWorkgroups.length>3">
+                <div class="row row-cols-3">
+                    <div class="col text-center" style="float:left;" v-for="userWorkgroup in userWorkgroups">
+                            <img id="img" class="img-thumbnail"  :src="userWorkgroup.url" />
+                        <p class="m-2 h5 text-center" >@{{ userWorkgroup.name }}工作组</p>
                     </div>
-                    <p class="m-2 h5 text-center" >@{{ userWorkgroup.name }}工作组</p>
                 </div>
                 </div>
+                <div v-else="userWorkgroups.length<=3">
+                    <div class="row">
+                        <div class="col text-center" style="float:left;" v-for="userWorkgroup in userWorkgroups">
+                            <img id="img" class="img-thumbnail" style="margin-top: 20px" :src="userWorkgroup.url" />
+                            <p class="m-2 h5 text-center" >@{{ userWorkgroup.name }}工作组</p>
+                        </div>
+                    </div>
+                </div>
             </div>
         </div>
     </div>
@@ -51,7 +59,6 @@
                     {id:'{{$userWorkgroup->id}}',name:'{{$userWorkgroup->name}}',url:'{{$userWorkgroup->url}}',},
                     @endforeach
                 ],
-
                 last_refresh_date:'{{$last_refresh_date}}',
                 warehouseId:'{{$warehouseId}}',
             },

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

@@ -7,8 +7,8 @@
     </div>
     <div class="container-fluid" id="list">
         <div class="card col-md visible-on">
-            <div class="card-body p-0  ">
-                <table class="table table-striped table-bordered text-nowrap" >
+            <div class="card-body p-0">
+                <table class="table table-striped table-bordered text-nowrap"  v-if="userDutyCheckNows&&userDutyCheckNows.length>=1">
                     <thead class="thead-light" >
                     <tr>
                         <th class="visible-md">日期</th>
@@ -56,7 +56,7 @@
                     </tbody>
                 </table>
 
-                <table class="table table-striped table-bordered text-nowrap" v-if="userDutyCheckYesterdays">
+                <table class="table table-striped table-bordered text-nowrap"  v-if="userDutyCheckYesterdays&&userDutyCheckYesterdays.length>=1">
                     <thead class="thead-light" style="color: #17a2b8" >
                     <tr>
                         <th>日期</th>
@@ -104,9 +104,9 @@
                     </tbody>
                 </table>
 
-                <table class="table table-striped table-bordered text-nowrap" >
-                    <thead class="thead-light" style="color:rosybrown" >
-                    <tr v-if="userDutyCheckBefores">
+                <table class="table table-striped table-bordered text-nowrap"  v-if="userDutyCheckBefores&&userDutyCheckBefores.length>=1">
+                    <thead class="thead-light" style="color:rosybrown">
+                    <tr >
                         <th>日期</th>
                         <td>序号</td>
                         <td>姓名</td>

+ 24 - 7
resources/views/personnel/checking-in/createUserDetail.blade.php

@@ -15,18 +15,34 @@
             </div>
             <div class="form-group row pt-0">
                 <label for="full_name" class="form-check-label col-3 pull-left">姓名:</label>
-                <input name="full_name" id="full_name" class="@error('full_name') is-invalid @enderror col-7 form-control" type="text">
+                <div class="col-8">
+                <input name="full_name" id="full_name" class="@error('full_name') is-invalid @enderror  form-control" type="text">
+                @error('full_name')
+                <span class="invalid-feedback" role="alert">
+                    <strong>{{ $message }}</strong>
+                </span>
+                @enderror
+                </div>
             </div>
             <div class="form-group row">
                 <label for="mobile_phone" class="form-check-label col-3 pull-left">电话:</label>
-                <input name="mobile_phone" @if($mobile_phone) value="{{$mobile_phone}}" @endif readonly id="mobile_phone" class="@error('mobile_phone') is-invalid @enderror col-7 form-control" type="text">
+                <div class="col-8">
+                <input name="mobile_phone" @if($mobile_phone) value="{{$mobile_phone}}" @endif readonly id="mobile_phone" class="@error('mobile_phone') is-invalid @enderror  form-control" type="text">
+                </div>
             </div>
             <div class="form-group row pt-0">
                 <label for="identity_number" class="form-check-label col-3 pull-left">身份证号码:</label>
-                <input name="identity_number" id="identity_number" class="@error('identity_number') is-invalid @enderror col-7 form-control" type="text" placeholder="可不填">
+                <div class="col-8">
+                <input name="identity_number" id="identity_number" class="@error('identity_number') is-invalid @enderror  form-control" type="text">
+                @error('identity_number')
+                <span class="invalid-feedback" role="alert">
+                    <strong>{{ $message }}</strong>
+                </span>
+                @enderror
+                </div>
             </div>
             <div class="form-group row">
-                <label for="gender" class="form-check-label col-3 pull-left">性别:</label>
+                <label for="gender" class="form-check-label col-4 pull-left">性别:</label>
                 <div class="custom-control custom-radio col-4">
                     <input checked name="gender" value="男"  type="radio" id="boy" class=" custom-control-input" >
                     <label class="custom-control-label" for="boy">男</label>
@@ -38,16 +54,17 @@
             </div>
             <div class="form-group row">
                 <label for="laborCompany" class="form-check-label col-3 pull-left">劳务所:</label>
-{{--                <input name="laborCompany" id="laborCompany" class="col-7 form-control" type="text">--}}
-                <select name="laborCompany" id="laborCompany" class="col-7 form-control" type="text">
+                <div class="col-8">
+                <select name="laborCompany" id="laborCompany" class=" form-control" type="text">
                     @foreach( $laborCompanies as $laborCompany )
                         <option>{{$laborCompany->name}}</option>
                     @endforeach
                 </select>
+                </div>
             </div>
             <input hidden name="userWorkgroupID" value="{{$userWorkgroupID}}">
             <div class="form-group row pt-3">
-                <button type="submit" class="col-7 offset-3 btn btn-success">登记</button>
+                <button type="submit" class="col-8 offset-3 btn btn-success">登记</button>
             </div>
         </form>
     </div>

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

@@ -8,10 +8,11 @@
     <div class="container-fluid mt-3" id="page">
         <div class="card col-md-10 offset-md-1 p-0">
             <div class="card-body">
-                <div class="list-group list-group-horizontal-lg align-content-center" >
+                <div class="list-group list-group-horizontal-lg align-content-center" v-if="warehouses">
                     <a target="_blank"  class="btn list-group-item col-md-2" type="button" :href="('{{url('QRCode?warehouseId=')}}'+warehouse.id)"  :class="warehouse==checkedWarehouse ? 'btn-primary' : 'btn-outline-primary'"
                        v-for="warehouse in warehouses">@{{ warehouse.name }}</a>
                 </div>
+                <h3 v-else>还未录入仓库,请先录入仓库!</h3>
             </div>
         </div>
     </div>

+ 1 - 1
resources/views/personnel/checking-in/menuChecking-in.blade.php

@@ -3,7 +3,7 @@
         <ul class="nav nav-pills">
                 @can('人事管理-获取二维码')
                 <li class="nav-item">
-                    <a class="nav-link text-dark" href="{{url('goGetQRCode')}}" :class="{active:isActive('goGetQRCode',4)}">打卡</a>
+                    <a class="nav-link text-dark" href="{{url('personnel/checking-in/goGetQRCode')}}" :class="{active:isActive('goGetQRCode',3)}">打卡</a>
                 </li>@endcan
                 @can('人事管理-录入补卡')
                 <li class="nav-item">

+ 2 - 2
resources/views/personnel/laborReport/index.blade.php

@@ -149,8 +149,8 @@
             data:{
                 laborReports:[
                         @foreach($laborReports as $laborReport)
-                         {id:'{{$laborReport->id}}',enterNumber:'{{$laborReport->enter_number}}',userWorkGroupId:'{{$laborReport->user_workgroup->id}}'
-                        ,userWorkGroupName:'{{$laborReport->user_workgroup->name}}',userId:'{{$laborReport->user_id}}',name:'{{$laborReport->name}}'
+                         {id:'{{$laborReport->id}}',enterNumber:'{{$laborReport->enter_number}}',userWorkGroupId:'{{$laborReport->userWorkgroup->id}}'
+                        ,userWorkGroupName:'{{$laborReport->userWorkgroup->name}}',userId:'{{$laborReport->user_id}}',name:'{{$laborReport->name}}'
                         ,mobilePhone:'{{$laborReport->mobile_phone}}',identityNumber:'{{$laborReport->identity_number}}',laborCompany:'{{$laborReport->labor_company}}'
                         ,checkInAt:'{{$laborReport->check_in_at}}',endLunch:'{{$laborReport->endLunch}}'
                         ,beginLunch:'{{$laborReport->beginLunch}}',

+ 1 - 1
routes/web.php

@@ -128,7 +128,7 @@ Route::resource('store/storeItem','StoreItemsController');
  *二维码
  */
 //进入打卡
-Route::get('goGetQRCode','QRCodeController@goGetQRCode');
+Route::get('personnel/checking-in/goGetQRCode','QRCodeController@goGetQRCode');
 //进入二维码显示页面
 Route::get('QRCode','QRCodeController@QRCode');
 //获取刷新二维码