浏览代码

Merge branch 'zzd' of ssh://was.baoshi56.com:10022/var/git/bswas into zzd

LD 6 年之前
父节点
当前提交
e9a4e4e6b2

+ 1 - 0
.gitignore

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

+ 5 - 5
app/Http/Controllers/PersonnelController.php

@@ -74,9 +74,9 @@ 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;
@@ -136,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();
@@ -144,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']]);
     }
 
     //录入补卡

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

@@ -24,6 +24,7 @@ use Carbon\Carbon;
 use Endroid\QrCode\Response\QrCodeResponse;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\DB;
+use function PHPSTORM_META\map;
 use Zttp\Zttp;
 
 class TestController extends Controller
@@ -135,10 +136,161 @@ class TestController extends Controller
     }
 
     public function test1(){
-        $str=",15984854564564,154484645684,874545454   4565546,";
-        $str=trim($str,',');
-        dd($str);
+        $s="IXCM";
+        $arr=str_split($s);
+        $temp=["I"=>1,"V"=>5,"X"=>10,"L"=>50,"C"=>100,"D"=>500,"M"=>1000];
+        $result=0;
+        for($i=0;$i<count($arr);$i++){
+            if($i!=count($arr)-1){
+                if($arr[$i]=="I"){
+                    if($arr[$i+1]=="V" || $arr[$i+1]=="X"){
+                        $result-=$temp["I"];
+                        continue;
+                    }
+                }
+                if($arr[$i]=="X"){
+                    if($arr[$i+1]=="L" || $arr[$i+1]=="C"){
+                        if($i>0&&$arr[$i-1]=="I"){$result+=$temp[$arr[$i]];continue;}
+                        $result-=$temp["X"];
+                        continue;
+                    }
+                }
+                if($arr[$i]=="C"){
+                    if($arr[$i+1]=="D" || $arr[$i+1]=="M"){
+                        if($i>0&&$arr[$i-1]=="X"){
+                            if ($i>1&&$arr[$i-2]=="I"){
+                                $result-=$temp["C"];
+                                continue;
+                            }
+                            $result+=$temp[$arr[$i]];continue;
+                        }
+                        $result-=$temp["C"];
+                        continue;
+                    }
+                }
+            }
+            $result+=$temp[$arr[$i]];
+        }
+        if($result<1 || $result>3999)$result=0;
+        return $result;
     }
+    public function test2(){
+        $s="VI";
+        $arr=str_split($s);
+        $temp=["I"=>1,"V"=>5,"X"=>10,"L"=>50,"C"=>100,"D"=>500,"M"=>1000];
+        $result=0;
+        $sign=false;
+        for($i=0;$i<count($arr);$i++){
+            if($i!=count($arr)-1){
+                if($arr[$i]=="I"){
+                    if($arr[$i+1]=="V" || $arr[$i+1]=="X"){
+                        $result-=$temp["I"];
+                        $sign=true;
+                        continue;
+                    }
+                }
+                if($arr[$i]=="X"){
+                    if($arr[$i+1]=="L" || $arr[$i+1]=="C"){
+                        if($sign){$result+=$temp[$arr[$i]];$sign=false;continue;}
+                        $result-=$temp["X"];
+                        $sign=true;
+                        continue;
+                    }
+                }
+                if($arr[$i]=="C"){
+                    if($arr[$i+1]=="D" || $arr[$i+1]=="M"){
+                        if($sign){
+                            $sign=false;
+                            $result+=$temp[$arr[$i]];continue;
+                        }
+                        $result-=$temp["C"];
+                        $sign=true;
+                        continue;
+                    }
+                }
+            }
+            $result+=$temp[$arr[$i]];
+            if ($sign)$sign=false;
+        }
+        if($result<1 || $result>3999)$result=0;
+        return $result;
+    }
+    public function test3()
+    {
+        $strs=["auibh","aopk","bikon"];
+        if (!$strs[0])return "";
+        $len=strlen($strs[0]);
+        for ($i=1;$i<count($strs);$i++){
+            if ($len<1)break;
+            for ($j=0;$j<$len;$j++){
+                if ($strs[$i][$j]!=$strs[0][$j]){
+                    if ($j==0)return "";
+                    break;
+                }
+                $sum=$j+1;
+            }
+            $len=isset($sum)?$sum:0;
+        }
+        return substr($strs[0],0,$len);
+    }
+    public function test4(){
+        $s="{([{()()[]{}}])[{()()[}]{}}](){[]}";
+        $map = [
+            ")" => "(",
+            "}" => "{",
+            "]" => "[",
+        ];
+
+        $len = strlen($s);
+        $stack = [];
+        if ($len%2!=0)dd(false);
+        //s中出现map的key则弹出,没有出现则入栈
+        for ($i =0; $i<$len; $i++) {
+            var_dump("data:".$s[$i]);
+            if (isset($map[$s[$i]])){
+                //s中出现map的key:如果能找到对应的map的值 (,{,[ 则说明有配对,则弹出
+                if (isset($stack)  && $stack[0] == $map[$s[$i]]) {
+                    array_shift($stack);
+                } else { //仅找到后面的一部分,说明是不匹配的
+                    dd(false);
+                }
+                var_dump("value1:".$map[$s[$i]]);
+                var_dump($stack);
+            } else {
+                array_unshift($stack, $s[$i]);
+                var_dump("value2:".$s[$i]);
+                var_dump($stack);
+            }
+        }
 
+        if (count($stack) > 0) {
+            dd(false);
+        }
+        dd(true);
+        //利用栈的先进后出 一个正确的括号组对应都为1对1或N对N
+        // 先进后出“([{”入栈,")]}"出栈,轮询到出栈元素去映射栈顶,符合出栈,不符合直接返回
+        //依次轮询 如果映射正确那么最后栈为空栈 否则返回false
 
+        /*
+        $r=[];
+        $sTemp=["("=>1,"["=>2,"{"=>3,")"=>-1,"]"=>-2,"}"=>-3];
+        for ($i=0;$i<strlen($s);$i++){
+            if ($i!=strlen($s)-1){
+                if (($sTemp[$s[$i]]+$sTemp[$s[$i+1]])==0){
+                    $i++;
+                    var_dump($s[$i],$i);
+                    continue;
+                }
+            }
+            array_push($r,$sTemp[$s[$i]]);
+        }
+        $sum=count($r);
+        if ($sum==0)return "a";
+        if ($sum%2!=0)return "b";
+        $svg=$sum/2;
+        for ($i=0;$i<$svg;$i++){
+            if ($r[$i]>0&&$r[$i]+$r[$sum-1-$i]!=0)return "b";
+        }
+        return "a";*/
+    }
 }

+ 6 - 4
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'));
     }
     //校验二维码进入打卡页面
@@ -136,7 +136,7 @@ class UserDutyCheckController extends Controller
         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));
+        $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'),'/');
@@ -154,6 +154,7 @@ 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);
@@ -185,6 +186,7 @@ class UserDutyCheckController extends Controller
             }
         }
         $userDutyCheck->save();
+        $this->log(__METHOD__,"提交打卡记录__".__FUNCTION__,json_encode($userDutyCheck));
         return $userDutyCheck;
     }
 

+ 16 - 0
app/Http/Controllers/api/thirdPart/flux/WaybillController.php

@@ -6,6 +6,7 @@ use App\Carrier;
 use App\City;
 use App\Http\Controllers\Controller;
 use App\Owner;
+use App\Unit;
 use App\Waybill;
 use App\OraccleBasCustomer;
 use App\WMSWaybill;
@@ -39,7 +40,12 @@ class WaybillController extends Controller
                     ->setEncodingOptions(JSON_UNESCAPED_UNICODE);
             }
             if(isset($receiveInputting['order_list'])&&$receiveInputting['order_list'])
+                $warehouseWeight=0;
+                $warehouseWeightOther=0;
                 foreach ($receiveInputting['order_list'] as $orderInputting){
+                    if ($orderInputting['Qtyordered_each'])$warehouseWeight += $orderInputting['Qtyordered_each'];
+                    if ($orderInputting['GrossWeight'])$warehouseWeightOther +=$orderInputting['GrossWeight'];
+                    if (!$orderInputting['GrossWeight'] && $orderInputting['NetWeight']) $warehouseWeightOther +=$orderInputting['NetWeight'];
                     $orderInputting['OrderNo']=$receiveInputting['OrderNo'];
                     if(!WMSWaybillOrder::create($orderInputting)){
                         Controller::logS(__METHOD__,'error_'.__FUNCTION__,'运单订单行WMS写入错误'.'|'.json_encode($orderInputting));
@@ -73,6 +79,16 @@ class WaybillController extends Controller
                 'source_bill'=>$receiveInputting['ReservedField01']??'',
                 'destination_city_id'=>$city['id'],
             ]);
+            if (isset($warehouseWeight)){
+                $waybill->warehouse_weight=$warehouseWeight;
+                $unit=Unit::where('name','m³')->first();
+                if ($unit)$waybill->warehouse_weight_unit=$unit->id;
+            }
+            if (isset($warehouseWeightOther)){
+                $waybill->warehouse_weight_other=$warehouseWeightOther;
+                $unit=Unit::where('name','kg')->first();
+                if ($unit)$waybill->warehouse_weight_unit_other=$unit->id;
+            }
             $waybill->save();
             if ($waybill->type=='直发车'){
                 $waybill_number='BSZF'.date ("ymd").str_pad($waybill->id>99999?$waybill->id%99999:$waybill->id,4,"0",STR_PAD_LEFT);

+ 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];
     }
 }

+ 47 - 0
database/migrations/2020_05_25_093853_change_waybills_table.php

@@ -0,0 +1,47 @@
+<?php
+
+use App\Authority;
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+class ChangeWaybillsTable extends Migration
+{
+
+    protected $authNames=[
+        "运输管理-发运"
+    ];
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('waybills',function (Blueprint $table){
+            $table->string('mileage')->nullable()->comment('里程');
+            $table->bigInteger('amount')->nullable()->comment('件数');
+            $table->string('inquire_tel')->nullable()->comment('查件电话');
+        });
+        foreach ($this->authNames as $name){
+            if(!Authority::where('name',$name)->first())(new Authority(['name'=>$name,'alias_name'=>$name]))->save();
+        }
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::table('waybills',function (Blueprint $table){
+            $table->dropColumn('mileage');
+            $table->dropColumn('amount');
+            $table->dropColumn('inquire_tel');
+        });
+        foreach ($this->authNames as $name){
+            Authority::where('name',$name)->delete();
+        }
+    }
+}

二进制
public/icon/404.png


二进制
public/images/measuringMachine/off.png


二进制
public/images/measuringMachine/on.png


二进制
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>

+ 4 - 0
resources/views/waybill/menu.blade.php

@@ -10,6 +10,10 @@
             <li class="nav-item">
                 <a class="nav-link" href="{{url('waybill/create/ZX')}}" :class="{active:isActive('create',2)}">录入</a>
             </li> @endcan
+            @can('运输管理-发运')
+            <li class="nav-item">
+                <a class="nav-link" href="{{url('waybill/create/ZX')}}" :class="{active:isActive('create',2)}">发运</a>
+            </li> @endcan
             {{$slot}}
             <li class="nav-item">
                 <a class="nav-link text-dark" href="{{url('waybill/relating')}}" :class="{active:isActive('relating',2)}">相关设置</a>