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

+ 1 - 0
.gitignore

@@ -3,6 +3,7 @@
 /public/storage
 /public/js
 /public/css
+/public/images
 /public/mix-manifest.json
 /storage/*.key
 /vendor

+ 13 - 8
app/Http/Controllers/PersonnelController.php

@@ -74,34 +74,39 @@ class PersonnelController extends Controller
         $id=$request->input('id');
         $userDutyCheck=UserDutyCheck::find($id);
         $user=User::find($userDutyCheck->user_id);
-        $workGroup=$user->userWorkgroups()->first();
-        if ($workGroup){
-            if(!Gate::allows($workGroup->name)){ return ["success"=>false,"data"=>"您无此权限操作!!!"];  }
+        $workgroup=$user->userWorkgroups()->first();
+        if ($workgroup){
+            if(!Gate::allows($workgroup->name)){ return ["success"=>false,"data"=>"您无此权限操作!!!"];  }
         }
         $type=$request->input('type');
         $userDutyCheck->type=$type;
         $userDutyCheck->group_user_id=Auth::user()['id'];
         $userDutyCheck->update();
         $this->log(__METHOD__,"打卡组长审核".__FUNCTION__,json_encode($userDutyCheck),Auth::user()['id']);
-        return ["success"=>true,$userDutyCheck->group_user_id];
+        return ["success"=>true,"data"=>$userDutyCheck->group_user_id];
     }
 
     //去往任务审核
     public function missionAudit(Request $request){
         if(!Gate::allows('人事管理-任务审核')){ return redirect(url('/'));  }
-        $processDailyParticipants=ProcessDailyParticipant::with(['processDaily','user_detail'])
-            ->orderBy('id','DESC');
+        $processDailyParticipants=ProcessDailyParticipant::with(['processDaily','user_detail'=>function($builder){
+           return $builder->with(['user'=>function($builder){
+               return $builder->with(['userWorkgroups']);
+           }]);
+        }])->orderBy('id','DESC');
         $start_date=$request->input('start_date');
         $end_date=$request->input('end_date');
         $full_name=$request->input('full_name');
         $mobile_phone=$request->input('mobile_phone');
         if ($start_date) {
             $processDailyParticipants->whereHas('processDaily',function (Builder $builder)use($start_date){
+                $start_date=$start_date." 00:00:00";
                 $builder->where('date','>=',$start_date);
             });
         }
         if ($end_date) {
             $processDailyParticipants->whereHas('processDaily',function (Builder $builder)use($end_date){
+                $end_date=$end_date." 23:59:59";
                 $builder->where('date','<=',$end_date);
             });
         }
@@ -131,7 +136,7 @@ class PersonnelController extends Controller
         $user=Auth::user();
         if (!$user)return redirect('/');
         $result=$user->getPermittingWorkgroupIdsAttribute();
-        $userWorkgroupIds=$result['workGroupIds'];
+        $userWorkgroupIds=$result['workgroupIds'];
         $users=User::whereHas("userWorkgroups",function (Builder $query)use(&$userWorkgroupIds){
             $query->whereIn("id",$userWorkgroupIds);
         })->get();
@@ -139,7 +144,7 @@ class PersonnelController extends Controller
         $date=date('Y-m-d');
         $userDutyChecks=UserDutyCheck::with('userDetail.user.userWorkgroups')->whereIn("user_id",$user_ids)
             ->where('checked_at','like',$date."%")->get();
-        return view('personnel/checking-in/clockAudit',['userDutyChecks'=>$userDutyChecks,'workGroupSign'=>$result['workGroupSign']]);
+        return view('personnel/checking-in/clockAudit',['userDutyChecks'=>$userDutyChecks,'workgroupSign'=>$result['workgroupSign']]);
     }
 
     //录入补卡

+ 24 - 9
app/Http/Controllers/ProcessController.php

@@ -26,19 +26,29 @@ use Ramsey\Uuid\Uuid;
 
 class ProcessController extends Controller
 {
-
     public function conditionQuery(Request $request,$processes){
         if(!Gate::allows('二次加工管理-查询')){ return redirect(url('/'));  }
-        $today=Carbon::now()->subDays(15);
+        $today=Carbon::now()->subDays(15)->format('Y-m-d');;
         if ($request->input('commodity_barcode')){
             $barcode=$request->input('commodity_barcode');
-            $processes=$processes->whereHas('processesContents',function ($query)use($barcode){
+            $processesTem=clone $processes;
+            $processesTem=$processesTem->whereHas('processesContents',function ($query)use($barcode){
                 $query->whereHas('commodity',function ($builder)use($barcode){
                     $builder->whereHas('barcodes',function ($builder)use($barcode){
                         $builder->where('code','like',$barcode.'%');
                     });
                 });
-            });
+            })->where('created_at','>=',$today);
+            if ($processesTem->count()>0)$processes=$processesTem;
+            else{
+                $processes=$processes->whereHas('processesContents',function ($query)use($barcode){
+                    $query->whereHas('commodity',function ($builder)use($barcode){
+                        $builder->whereHas('barcodes',function ($builder)use($barcode){
+                            $builder->where('code',$barcode);
+                        });
+                    });
+                });
+            }
         }
         if ($request->input('date_start')){
             $date_start=$request->input('date_start')." 00:00:00";
@@ -55,12 +65,17 @@ class ProcessController extends Controller
             $processes=$processes->where('status',$request->input('status'));
         }
         if ($request->input('wms_code')){
+            $processesTem=clone $processes;
             $wms_code=$request->input('wms_code');
-            $date=$today->format('Y-m-d');
-            $processes=$processes->whereHas('processesContents',function ($builder)use ($wms_code,$date){
-                $builder->where('wms_code','like','%'.$wms_code.'%')
-                    ->where('created_at','>',$date);
-            });
+            $processesTem=$processesTem->whereHas('processesContents',function ($builder)use ($wms_code,$today){
+                $builder->where('wms_code','like','%'.$wms_code.'%');
+            })->where('created_at','>=',$today);
+            if ($processesTem->count()>0)$processes=$processesTem;
+            else{
+                $processes=$processes->whereHas('processesContents',function ($builder)use ($wms_code,$today){
+                    $builder->where('wms_code',$wms_code);
+                });
+            }
         }
         $processes=$processes->paginate($request->input('paginate')??50);
         return $processes;

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

@@ -135,9 +135,8 @@ class TestController extends Controller
     }
 
     public function test1(){
-        $str=",15984854564564,";
-        $str=ltrim($str,',');
-        $str=rtrim($str,',');
+        $str=",15984854564564,154484645684,874545454   4565546,";
+        $str=trim($str,',');
         dd($str);
     }
 

+ 21 - 10
app/Http/Controllers/UserDutyCheckController.php

@@ -10,7 +10,6 @@ use App\UserToken;
 use App\UserWorkgroup;
 use Carbon\Carbon;
 use Endroid\QrCode\QrCode;
-use http\Url;
 use Illuminate\Http\Request;
 use Illuminate\Http\Response;
 use Illuminate\Support\Facades\Cache;
@@ -49,8 +48,9 @@ class UserDutyCheckController extends Controller
     }
     //进入二维码显示页面
     public function QRCode(Request $request){
-        $userWorkgroup_id=$request->input('userWorkgroup_id');
-        $userWorkgroup=UserWorkgroup::find($userWorkgroup_id);
+        $userWorkgroupId=$request->input('userWorkgroupId');
+        $userWorkgroup=UserWorkgroup::find($userWorkgroupId);
+        if (!$userWorkgroup)return view('exception.404',['error'=>'未找到工作组!']);
         return view('personnel/checking-in/QRcode',compact('userWorkgroup'));
     }
     //校验二维码进入打卡页面
@@ -73,7 +73,8 @@ class UserDutyCheckController extends Controller
                 $user->userWorkgroups()->sync([$userWorkgroupID]);
             }
             $userDutyCheck=$this->dutyCheck($userDetail->user_id);
-            if (!$userDutyCheck)return "<h1 style='color: red'>打卡异常,请联系相关人员!</h1>";
+            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();
             if($userWorkgroups->count()>0)
                 $group_name=$userDetail->user->userWorkgroups->first()['name'];
@@ -90,12 +91,14 @@ class UserDutyCheckController extends Controller
         $userDetail=UserDetail::where('mobile_phone',$mobile_phone)->first();
         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'>请使用原有设备进行打卡,如无法使用原有设备请联系管理人员解绑设备!</h1>";
+        if (Cache::has('tokenUser_'.$user->id))return "<h1 style='color: red;text-align:center'>请使用原有设备进行打卡,如无法使用原有设备请联系管理人员解绑设备!</h1>";
         if ($userWorkgroupID)$user->userWorkgroups()->sync([$userWorkgroupID]);
         $userDutyCheck=$this->dutyCheck($userDetail->user_id);
-        if (!$userDutyCheck)return "<h1 style='color: red'>打卡异常,请联系相关人员!</h1>";
+        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'));
-        return response()->view('personnel/checking-in/success',['full_name'=>$userDetail->full_name,'checked_at'=>$userDutyCheck->checked_at])
+        $group_name=$userDetail->user->userWorkgroups->first()['name'];
+        return response()->view('personnel/checking-in/success',['group_name'=>$group_name??'','full_name'=>$userDetail->full_name,'checked_at'=>$userDutyCheck->checked_at])
             ->cookie('userLaborToken',$userLaborToken,config('users.token_check_in_expire_minutes'),'/');
     }
     //去往登记资料页面
@@ -130,10 +133,12 @@ class UserDutyCheckController extends Controller
         ]);
         $userLabor->save();
         $userDutyCheck=$this->dutyCheck($user->id);
-        if (!$userDutyCheck)return "<h1 style='color: red'>打卡异常,请联系相关人员!</h1>";
+        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'));
-        $this->log(__METHOD__,"录入临时工,用户,对应工作组,打卡记录".__FUNCTION__,json_encode($request));
-        return response()->view('personnel/checking-in/success',['full_name'=>$userDetail->full_name,'checked_at'=>$userDutyCheck->checked_at])
+        $this->log(__METHOD__,"录入临时工,用户,对应工作组,打卡记录".__FUNCTION__,json_encode($request->all()));
+        $group_name=$userDetail->user->userWorkgroups->first()['name'];
+        return response()->view('personnel/checking-in/success',['group_name'=>$group_name??'','full_name'=>$userDetail->full_name,'checked_at'=>$userDutyCheck->checked_at])
             ->cookie('userLaborToken',$userLaborToken,config('users.token_check_in_expire_minutes'),'/');
     }
 
@@ -149,11 +154,16 @@ class UserDutyCheckController extends Controller
         if (!$userDutyCheckOld){
             $userDutyCheck->type="登入";
             $userDutyCheck->save();
+            $this->log(__METHOD__,"提交打卡记录__".__FUNCTION__,json_encode($userDutyCheck));
             return $userDutyCheck;
         }
         $lastDate=Carbon::parse($userDutyCheckOld->checked_at);
         $thisDate=Carbon::parse($date);
         $diffDate=$thisDate->diffInMinutes($lastDate);
+        if($diffDate<=5){
+            $userDutyCheck->error=true;
+            return $userDutyCheck;
+        }
         if ($userDutyCheckOld->type=="登入"){
             switch ($diffDate){
                 case $diffDate<=20:
@@ -176,6 +186,7 @@ class UserDutyCheckController extends Controller
             }
         }
         $userDutyCheck->save();
+        $this->log(__METHOD__,"提交打卡记录__".__FUNCTION__,json_encode($userDutyCheck));
         return $userDutyCheck;
     }
 

+ 2 - 2
app/Http/Controllers/WaybillsController.php

@@ -235,7 +235,7 @@ class WaybillsController extends Controller
         $this->validatorWaybillDispatch($request,$id)->validate();
 
         $data=$request->input();
-
+        $total_receivable=0;
         $waybill->fill($data);
         if ($waybill->save()){
             if ($waybill->type=="直发车"){
@@ -266,7 +266,7 @@ class WaybillsController extends Controller
                 }
                 $total_expense=($waybill->pick_up_fee)+($waybill->other_fee)+($waybill->fee);
             }
-            if (isset($total_receivable)&&$total_receivable>0){
+            if ($total_receivable>0){
                 $waybillPayoff=WaybillPayoff::where('waybill_id','=',$id)->first();
                 if ($waybillPayoff){
                     $waybillPayoff->waybill_id=$id;

+ 10 - 10
app/User.php

@@ -120,21 +120,21 @@ class User extends Authenticatable
         return array_unique($ownerIds);
     }
     function getPermittingWorkgroupIdsAttribute(){
-        $workGroupIds=[];
+        $workgroupIds=[];
         $response=[];
         if ($this->isSuperAdmin()||Gate::allows('人事管理-打卡审核')){
-            $workGroups=UserWorkgroup::all();
-            $workGroups->each(function (UserWorkgroup $workGroup)use(&$workGroupIds){
-                array_push($workGroupIds,$workGroup['id']);
+            $workgroups=UserWorkgroup::all();
+            $workgroups->each(function (UserWorkgroup $workgroup)use(&$workgroupIds){
+                array_push($workgroupIds,$workgroup['id']);
             });
-            if ($this->isSuperAdmin()){$response['workGroupSign']=true;}
-            else $response['workGroupSign']=false;
-            $response['workGroupIds']=$workGroupIds;
+            if ($this->isSuperAdmin()){$response['workgroupSign']=true;}
+            else $response['workgroupSign']=false;
+            $response['workgroupIds']=$workgroupIds;
             return $response;
         }
-        $this->authorities()->each(function(Authority $authority)use(&$workGroupIds){
-            if($authority->type=="工作组"){array_push($workGroupIds,$authority->relevance);}
+        $this->authorities()->each(function(Authority $authority)use(&$workgroupIds){
+            if($authority->type=="工作组"){array_push($workgroupIds,$authority->relevance);}
         });
-        return ["workGroupIds"=>$workGroupIds,"workGroupSign"=>true];
+        return ["workgroupIds"=>$workgroupIds,"workgroupSign"=>true];
     }
 }

BIN
public/icon/404.png


BIN
public/images/measuringMachine/off.png


BIN
public/images/measuringMachine/on.png


+ 6 - 1
public/js/app.js

@@ -61384,8 +61384,13 @@ module.exports = tempTip;
 /*! no static exports found */
 /***/ (function(module, exports, __webpack_require__) {
 
+<<<<<<< HEAD
 __webpack_require__(/*! D:\wamp64\www\bswas\resources\js\app.js */"./resources/js/app.js");
 module.exports = __webpack_require__(/*! D:\wamp64\www\bswas\resources\sass\app.scss */"./resources/sass/app.scss");
+=======
+__webpack_require__(/*! D:\Demo\bswas\resources\js\app.js */"./resources/js/app.js");
+module.exports = __webpack_require__(/*! D:\Demo\bswas\resources\sass\app.scss */"./resources/sass/app.scss");
+>>>>>>> a4259218bf9c09e3c74b866fff9c0611be710e25
 
 
 /***/ }),
@@ -61401,4 +61406,4 @@ module.exports = __webpack_require__(/*! D:\wamp64\www\bswas\resources\sass\app.
 
 /***/ })
 
-/******/ });
+/******/ });

BIN
resources/icon/404.png


+ 14 - 0
resources/views/exception/404.blade.php

@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    <title>404,您访问的页面已经不存在!</title>
+</head>
+<body>
+    <div style="display: flex;align-items: center;justify-content: center;margin-top: 50px">
+            <img src="{{url('icon/404.png')}}">
+            <h2>@if($error) {{$error}} @else您访问的页面不见了!您访问的页面不见了!@endif</h2>
+            <a href="{{url('/')}}">
+                <button  style="background: red;width: 100px;height: 50px;position:
+                relative;top:50px;left:-200px;border-radius:5px;color:white;font-size: 20px ">去首页</button>
+            </a>
+    </div>
+</body></html>

+ 2 - 2
resources/views/maintenance/user/index.blade.php

@@ -32,7 +32,7 @@
                                 <li v-for="role in user.roles" style="list-style: none">@{{ role.name }}</li>
                             </ul>
                         </td>
-                        <td><span v-if="user.workGroup&&user.workGroup.length>0">@{{ user.workGroup[0].name }}</span></td>
+                        <td><span v-if="user.workgroup&&user.workgroup.length>0">@{{ user.workgroup[0].name }}</span></td>
                         <td>
                             <ul v-if="user.carriers.length>0" class="list-group">
                                 <li v-for="carrier in user.carriers" style="list-style: none">@{{ carrier.name }}</li>
@@ -63,7 +63,7 @@
                     @foreach( $users as $user )
                     {id:'{{$user->id}}',name:'{{$user->name}}',email:'{{$user->email}}',
                         isSuperAdmin:'{{$user->isSuperAdmin}}',
-                        roles:{!! $user->roles !!},carriers:{!! $user->carriers !!},workGroup:{!! $user->userWorkgroups !!},created_at:'{{$user->created_at}}'},
+                        roles:{!! $user->roles !!},carriers:{!! $user->carriers !!},workgroup:{!! $user->userWorkgroups !!},created_at:'{{$user->created_at}}'},
                     @endforeach
                 ],
             },

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

@@ -14,7 +14,7 @@
                         <label for="mobile_phone" class="form-check-label col-3 pull-right">手机号:</label>
                         <input name="mobile_phone" id="mobile_phone" class="@error('mobile_phone') is-invalid @enderror col-7 form-control" type="text">
                     </div>
-                    <input hidden name="userWorkgroupID" value="{{$userWorkgroupID}}">
+                    <input name="userWorkgroupID" value="{{$userWorkgroupID}}">
                     <div class="form-group row pt-3">
                         <button type="submit" class="col-7 offset-2 btn btn-success">提交</button>
                     </div>

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

@@ -19,7 +19,7 @@
                         <td>打卡类型</td>
                         @can('人事管理-打卡审核')<td>操作</td>@endcan
                         <td>工作组</td>
-                        <td v-if="workGroupSign">组长审核</td>
+                        <td v-if="workgroupSign">组长审核</td>
                         <td>异常</td>
                         <td>合计工时</td>
                     </tr>
@@ -44,7 +44,7 @@
                         </td>@endcan
                         <td class="font-weight-bold"><span v-if="userDutyCheck.user_detail.user.user_workgroups&&userDutyCheck.user_detail.user.user_workgroups.length>0">
                                 @{{ userDutyCheck.user_detail.user.user_workgroups[0].name }}</span></td>
-                        <td v-if="workGroupSign">
+                        <td v-if="workgroupSign">
                             <b v-if="userDutyCheck.group_user_id" class="text-success">已审核</b>
                             <button v-else @click="storeGroupAudit(userDutyCheck.id,userDutyCheck.type)" class="btn btn-primary w-80">组长审核</button>
                         </td>
@@ -70,7 +70,7 @@
                     exception:'',duration_man_hour:'',@if($userDutyCheck->userDetail)user_detail:{!! $userDutyCheck->userDetail !!} @endif },
                     @endforeach
                 ],
-                workGroupSign:'{{$workGroupSign}}',
+                workgroupSign:'{{$workgroupSign}}',
             },
             methods:{
                 store(id,type,url){

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

@@ -10,7 +10,7 @@
             <div class="card-body">
                     <div class="list-group list-group-horizontal-lg" >
 {{--                        @click="getQRCode(userWorkgroup.id)"--}}
-                        <a target="_blank"  class="btn list-group-item" type="button" :href="('{{url('personnel/checking-in/userDutyCheck/QRCode?userWorkgroup.id=')}}'+userWorkgroup.id)"  :class="userWorkgroup==checkedUserWorkgroup ? 'btn-primary' : 'btn-outline-primary'"
+                        <a target="_blank"  class="btn list-group-item" type="button" :href="('{{url('personnel/checking-in/userDutyCheck/QRCode?userWorkgroupId=')}}'+userWorkgroup.id)"  :class="userWorkgroup==checkedUserWorkgroup ? 'btn-primary' : 'btn-outline-primary'"
                                 v-for="userWorkgroup in userWorkgroups">@{{ userWorkgroup.name }}</a>
                     </div>
             </div>

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

@@ -68,6 +68,7 @@
                     <td>工时差</td>
                     <td>计费工时</td>
                     <td>计件数量</td>
+                    <th>工作组</th>
                     <td>查看</td>
                     <td>审核</td>
                 </tr>
@@ -88,6 +89,7 @@
                     <td class="text-danger">@{{ processDailyParticipant.diff }}</td>
                     <td class="text-danger">@{{ processDailyParticipant.billingHour }}</td>
                     <td>@{{ processDailyParticipant.unit_count }}</td>
+                    <td><span v-if="processDailyParticipant.user_detail&&processDailyParticipant.user_detail.user&&processDailyParticipant.user_detail.user.user_workgroups.length>0">@{{ processDailyParticipant.user_detail.user.user_workgroups[0].name }}</span></td>
                     <td><button v-if="processDailyParticipant.user_detail" @click="showUserDetail(processDailyParticipant.user_id)" class="btn btn-info">查看</button></td>
                     <td><b v-if="processDailyParticipant.status=='已审核'" class="text-success">已审核</b>
                         <button v-else class="btn btn-primary" @click="storeMissionAudit(processDailyParticipant.id)">审核</button>

+ 2 - 2
resources/views/process/index.blade.php

@@ -45,7 +45,7 @@
                                </select>
                            </td>
                            <td>
-                               <input id="wms_code" name="wms_code" v-model="filterData.wms_code" class="form-control-sm tooltipTarget" placeholder="单据号" :class="filterData.wms_code?'bg-warning':''">
+                               <input id="wms_code" name="wms_code" title="单据号:支持15内模糊搜索与15天外精确搜索" v-model="filterData.wms_code" class="form-control-sm tooltipTarget" placeholder="单据号" :class="filterData.wms_code?'bg-warning':''">
                            </td>
                            <td colspan="6"></td>
                        </tr>
@@ -54,7 +54,7 @@
                                <input id="date_end" name="date_end" v-model="filterData.date_end" type="date" class="form-control-sm tooltipTarget" title="选择显示指定日期的结束时间" :class="filterData.date_end?'bg-warning':''">
                            </td>
                            <td>
-                               <input name="commodity_barcode" v-model="filterData.commodity_barcode" class="form-control-sm" placeholder="商品条码" :class="filterData.commodity_barcode?'bg-warning':''">
+                               <input name="commodity_barcode" title="商品条码:支持15内模糊搜索与15天外精确搜索" v-model="filterData.commodity_barcode" class="form-control-sm tooltipTarget" placeholder="商品条码" :class="filterData.commodity_barcode?'bg-warning':''">
                            </td>
                            <td >