Explorar el Código

Merge branch 'master' into zzd

# Conflicts:
#	resources/views/order/index/delivering.blade.php
dream hace 5 años
padre
commit
5ecea311f4

+ 37 - 0
app/Events/ClockinEvent.php

@@ -0,0 +1,37 @@
+<?php
+
+namespace App\Events;
+
+use App\UserDutyCheck;
+use Illuminate\Broadcasting\Channel;
+use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
+use Illuminate\Queue\SerializesModels;
+
+
+class ClockinEvent implements ShouldBroadcast
+{
+    use  SerializesModels;
+
+    public $userDutyCheck;
+
+    /**
+     * Create a new event instance.
+     *
+     * @return void
+     */
+    public function __construct(UserDutyCheck $userDutyCheck)
+    {
+        $this->userDutyCheck=$userDutyCheck;
+    }
+
+    /**
+     * Get the channels the event should broadcast on.
+     *
+     * @return \Illuminate\Broadcasting\Channel|array
+     */
+    public function broadcastOn()
+    {
+        return new Channel('userDutyCheck');
+    }
+
+}

+ 12 - 2
app/Http/Controllers/OrderController.php

@@ -166,12 +166,22 @@ class OrderController extends Controller
         if(!Gate::allows('订单管理-编辑')){ return redirect(url('/'));  }
         $orderno=$request->input('orderno');
         $waveno=$request->input('waveno');
-        OracleDOCOrderHeader::where('orderno',$orderno)->update(['releasestatus'=>'Y']);
+//        $order=OracleDOCOrderHeader::where('orderno',$orderno)->first();
+//        if(!($order['codename_c']==='创建订单'||$order['codename_c']==='分配完成'||$order['codename_c']==='拣货完成'||$order['codename_c']==='播种完成')){
+//            return ['success'=>false];
+//        }
+        OracleDOCOrderHeader::where('orderno',$orderno)->update(['releasestatus'=>'H','waveno'=>'*']);
         if ($waveno && $waveno!='*'){
             OracleDOCWaveDetails::where('waveno',$waveno)->where('orderno',$orderno)->delete();
         }
         return ['success'=>true];
     }
+    public function thaw(Request $request){
+        if(!Gate::allows('订单管理-编辑')){ return redirect(url('/'));  }
+        $orderno=$request->input('orderno');
+        OracleDOCOrderHeader::where('orderno',$orderno)->update(['releasestatus'=>'N']);
+        return ['success'=>true];
+    }
 
     function export($orders,$commodities){
         if(!Gate::allows('订单管理')){ return redirect(url('/'));  }
@@ -204,7 +214,7 @@ class OrderController extends Controller
             'erpcancelflag'=>'接口取消标记',
             'picking_print_flag'=>'拣货单打印标记',
             'edisendflag'=>'接口回传标记',
-            'releasestatus'=>'订单冻结标记',
+            'releasestatus'=>'订单冻结',
 
         ]];
         $list=[];

+ 17 - 22
app/Http/Controllers/PersonnelController.php

@@ -2,14 +2,13 @@
 
 namespace App\Http\Controllers;
 
+use App\Events\ClockinEvent;
 use App\Events\TeamAuditEvent;
-use App\LaborCompany;
 use App\LaborReport;
 use App\ProcessDailyParticipant;
 use App\User;
 use App\UserDetail;
 use App\UserDutyCheck;
-use App\UserLabor;
 use App\UserWorkgroup;
 use Carbon\Carbon;
 use Illuminate\Database\Eloquent\Builder;
@@ -90,20 +89,17 @@ class PersonnelController extends Controller
         $userDutyCheck->update();
         $checkInDate=Carbon::parse($userDutyCheck->checked_at)->format('Y-m-d');
         $laborReport=LaborReport::where('user_id',$userDutyCheck->user_id)->where('user_workgroup_id',$workgroup->id)->where('created_at','like',$checkInDate."%")->first();
-        $this->updateLaborReportVerify($laborReport,$userDutyCheck);
-        $this->log(__METHOD__,"打卡组长审核".__FUNCTION__,json_encode($userDutyCheck),Auth::user()['id']);
+        if (!$laborReport){
+            LaborReport::createLaborReportData($userDutyCheck->user_id,$userDutyCheck->workgroup_id,$userDutyCheck);
+            $this->log(__METHOD__,"提交临时工报表记录__".__FUNCTION__,json_encode([$userDutyCheck->user_id,$userDutyCheck->workgroup_id,$userDutyCheck]));
+        }else if ($laborReport){
+            LaborReport::updateLaborReportVerify($laborReport,$userDutyCheck);
+            $this->log(__METHOD__,"打卡组长审核".__FUNCTION__,json_encode($userDutyCheck),Auth::user()['id']);
+        }
         event(new TeamAuditEvent($userDutyCheck));
         return ["success"=>true,"data"=>$userDutyCheck->group_user_id];
     }
-    //修改临时工报表审核时间
-    public function updateLaborReportVerify($laborReport,$userDutyCheck){
-        $date=date('Y-m-d H:i:s');
-        $laborReport['verify_at']=$date;
-        $laborReport['group_user_id']=$userDutyCheck->group_user_id;
-        $laborReport->update();
-        $this->log(__METHOD__,"打卡组长审核更新临时工报表的审核时间".__FUNCTION__,json_encode($laborReport),Auth::user()['id']);
-        return;
-    }
+
 
     //去往任务审核
     public function missionAudit(Request $request){
@@ -161,8 +157,9 @@ class PersonnelController extends Controller
         $dateNow=Carbon::now()->addDays(1)->format('Y-m-d');
         $beforeYesterdayDate=Carbon::now()->addDays(-2)->format('Y-m-d');
         $userDutyChecks=UserDutyCheck::with(['userWorkgroup','userLabor.laborCompany','userDetail'])->whereIn("user_id",$user_ids)
-            ->whereBetween('checked_at',[$beforeYesterdayDate,$dateNow])->where('type','登入')->get();
-        return view('personnel/checking-in/clockAudit',['userDutyChecks'=>$userDutyChecks,'workgroupSign'=>$result['workgroupSign']]);
+            ->whereBetween('checked_at',[$beforeYesterdayDate,$dateNow])->where('type','登入')->orderBy('checked_at','DESC')->get();
+        $laravelEchoPrefix = config('database.redis.options.prefix');
+        return view('personnel/checking-in/clockAudit',['userDutyChecks'=>$userDutyChecks,'laravelEchoPrefix'=>$laravelEchoPrefix,'workgroupSign'=>$result['workgroupSign']]);
     }
 
     //录入补卡
@@ -181,18 +178,16 @@ class PersonnelController extends Controller
             'source'=>'补入',
             'workgroup_id'=>$userWorkgroupID
         ]);
-        $checkInDate=Carbon::parse($checked_at)->format('Y-m-d');
-        $laborReport=LaborReport::where('user_workgroup_id',$userWorkgroupID)->where('check_in_at','like',$checkInDate."%")->where('user_id',$user_id)->first();
-        if (!$laborReport&&$userDutyCheck->type=='登入'){
-            LaborReport::createLaborReportData($user_id,$userWorkgroupID,$userDutyCheck);
-            $this->log(__METHOD__,"提交临时工报表记录__".__FUNCTION__,json_encode([$user_id,$userWorkgroupID,$userDutyCheck]));
+        $userDutyCheck->save();
+        if ($userDutyCheck&&$userDutyCheck->type=='登入'){
+            event(new ClockinEvent($userDutyCheck));
         }
+        $checkInDate=Carbon::parse($userDutyCheck->checked_at)->format('Y-m-d');
+        $laborReport=LaborReport::where('user_workgroup_id',$userWorkgroupID)->where('check_in_at','like',$checkInDate."%")->where('user_id',$user_id)->first();
         if ($laborReport&&$userDutyCheck->type){
             LaborReport::updateLaborReportData($laborReport,$userDutyCheck);
             $this->log(__METHOD__,"更新临时工报表记录__".__FUNCTION__,json_encode([$laborReport,$userDutyCheck]));
         }
-        $userDutyCheck->save();
-
         $this->log(__METHOD__,"录入补卡".__FUNCTION__,json_encode($userDutyCheck),Auth::user()['id']);
         return ['success'=>true,'data'=>$userDutyCheck];
     }

+ 1 - 1
app/Http/Controllers/ProcessController.php

@@ -653,7 +653,7 @@ class ProcessController extends Controller
     //删除二次加工内容单
     public function deleteProcessContent($id){
         $processContent=ProcessesContent::find($id);
-        if (!$processContent) return ['success'=>false,'data'=>'找到对应二次加工内容单'];
+        if (!$processContent) return ['success'=>false,'data'=>'找到对应二次加工内容单'];
         $processContent->delete();
         return ['success'=>true];
     }

+ 43 - 24
app/Http/Controllers/UserDutyCheckController.php

@@ -2,22 +2,17 @@
 
 namespace App\Http\Controllers;
 
+use App\Events\ClockinEvent;
 use App\LaborCompany;
 use App\LaborReport;
 use App\User;
 use App\UserDetail;
 use App\UserDutyCheck;
 use App\UserLabor;
-use App\UserToken;
-use App\UserWorkgroup;
-use App\Warehouse;
 use Carbon\Carbon;
-use Endroid\QrCode\QrCode;
 use Illuminate\Http\Request;
-use Illuminate\Http\Response;
 use Illuminate\Support\Facades\Auth;
 use Illuminate\Support\Facades\Cache;
-use Illuminate\Support\Facades\Date;
 use Illuminate\Support\Facades\Validator;
 use Ramsey\Uuid\Uuid;
 
@@ -46,16 +41,20 @@ class UserDutyCheckController extends Controller
             $userDetail=UserDetail::find($user_id);
             if (!$userDetail)   return redirect('personnel/checking-in/userDutyCheck/createUserDetail/'.$userDetail->mobile_phone)->with("userWorkgroupID",$userWorkgroupID);
             $userDutyCheck=$this->dutyCheck($userDetail->user_id,$userWorkgroupID);
+            if ($userDutyCheck&&$userDutyCheck->type=='登入'){
+                event(new ClockinEvent($userDutyCheck));
+            }
             //正常情况
             $laborReport=LaborReport::where('user_workgroup_id',$userWorkgroupID)->where('created_at','like',Carbon::now()->format('Y-m-d')."%")->where('user_id',$userDetail->user_id)->first();
-            if(!isset($laborReport)&&$userDutyCheck->type=='登入'){
-                LaborReport::createLaborReportData($userDetail->user_id,$userWorkgroupID,$userDutyCheck);
-                $this->log(__METHOD__,"提交临时工报表记录__".__FUNCTION__,json_encode($laborReport));
-            }else if ($laborReport&&$userDutyCheck->type=='登出'){
+//            if(!isset($laborReport)&&$userDutyCheck->type=='登入'){
+//                LaborReport::createLaborReportData($userDetail->user_id,$userWorkgroupID,$userDutyCheck);
+//                $this->log(__METHOD__,"提交临时工报表记录__".__FUNCTION__,json_encode($laborReport));
+//            }else
+            if ($laborReport&&$userDutyCheck->type=='登出'){
                 LaborReport::updateLaborReportData($laborReport,$userDutyCheck);
                 $this->log(__METHOD__,"更新临时工报表记录__".__FUNCTION__,json_encode($laborReport));
             }
-            if ($userDutyCheck&&$userDutyCheck->error)return "<h1 style='color: darkred;text-align:center'>重复打卡!</h1>";
+            if ($userDutyCheck&&$userDutyCheck->error==true)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)
@@ -87,16 +86,20 @@ class UserDutyCheckController extends Controller
             return redirect('personnel/checking-in/userDutyCheck/updateUserDetail/'.$mobile_phone)->with("userWorkgroupID",$userWorkgroupID);
         }
         $userDutyCheck=$this->dutyCheck($userDetail->user_id,$userWorkgroupID);
+        if ($userDutyCheck&&$userDutyCheck->type=='登入'){
+            event(new ClockinEvent($userDutyCheck));
+        }
         //正常情况
         $laborReport=LaborReport::where('user_workgroup_id',$userWorkgroupID)->where('created_at','like',$dateNow."%")->where('user_id',$userDetail->user_id)->first();
-        if(!$laborReport&&$userDutyCheck->type=='登入'){
-            LaborReport::createLaborReportData($userDetail->user_id,$userWorkgroupID,$userDutyCheck);
-            $this->log(__METHOD__,"提交临时工报表记录__".__FUNCTION__,json_encode([$userDetail->user_id,$userWorkgroupID,$userDutyCheck]));
-        }else if ($laborReport&&$userDutyCheck->type=='登出'){
+//        if(!$laborReport&&$userDutyCheck->type=='登入'){
+//            LaborReport::createLaborReportData($userDetail->user_id,$userWorkgroupID,$userDutyCheck);
+//            $this->log(__METHOD__,"提交临时工报表记录__".__FUNCTION__,json_encode([$userDetail->user_id,$userWorkgroupID,$userDutyCheck]));
+//        }else
+            if ($laborReport&&$userDutyCheck->type=='登出'){
             LaborReport::updateLaborReportData($laborReport,$userDutyCheck);
             $this->log(__METHOD__,"更新临时工报表记录__".__FUNCTION__,json_encode([$laborReport,$userDutyCheck]));
         }
-        if ($userDutyCheck&&$userDutyCheck->error)return "<h1 style='color: darkred;text-align:center'>重复打卡!</h1>";
+        if ($userDutyCheck&&$userDutyCheck->error==true)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'));
         $group_name=$userDetail->user->userWorkgroups->first()['name'];
@@ -130,10 +133,13 @@ class UserDutyCheckController extends Controller
         ]);
         $this->log(__METHOD__,"更改临时工劳务所信息".__FUNCTION__,json_encode($userLabor),Auth::user()['id']);
         $userDutyCheck=$this->dutyCheck($userDetail->user_id,$userWorkgroupID);
-        //添加临时工报表数据
-        LaborReport::createLaborReportData($userDetail->user_id,$userWorkgroupID,$userDutyCheck);
-        $this->log(__METHOD__,"提交临时工报表记录__".__FUNCTION__,json_encode([$userDetail->user_id,$userWorkgroupID,$userDutyCheck]));
-        if ($userDutyCheck&&$userDutyCheck->error)return "<h1 style='color: darkred;text-align:center'>重复打卡!</h1>";
+        if ($userDutyCheck&&$userDutyCheck->type=='登入'){
+            event(new ClockinEvent($userDutyCheck));
+        }
+//        //添加临时工报表数据
+//        LaborReport::createLaborReportData($userDetail->user_id,$userWorkgroupID,$userDutyCheck);
+//        $this->log(__METHOD__,"提交临时工报表记录__".__FUNCTION__,json_encode([$userDetail->user_id,$userWorkgroupID,$userDutyCheck]));
+        if ($userDutyCheck&&$userDutyCheck->error==true)return "<h1 style='color: darkred;text-align:center'>重复打卡!</h1>";
         if (!$userDutyCheck)return "<h1 style='color: red;text-align:center'>打卡异常,请联系相关人员!</h1>";
         $user=User::find($userDetail->user_id);
         $userLaborToken=$user->token(config('users.token_check_in_expire_minutes'));
@@ -171,13 +177,17 @@ class UserDutyCheckController extends Controller
         ]);
         $userLabor->save();
         $userDutyCheck=$this->dutyCheck($user->id,$userWorkgroupID);
-        LaborReport::createLaborReportData($user->id,$userWorkgroupID,$userDutyCheck);
-        $this->log(__METHOD__,"提交临时工报表记录__".__FUNCTION__,json_encode([$user->id,$userWorkgroupID,$userDutyCheck]));
-        if ($userDutyCheck&&$userDutyCheck->error)return "<h1 style='color: darkred;text-align:center'>重复打卡!</h1>";
+        if ($userDutyCheck&&$userDutyCheck->type=='登入'){
+            event(new ClockinEvent($userDutyCheck));
+        }
+//        LaborReport::createLaborReportData($user->id,$userWorkgroupID,$userDutyCheck);
+//        $this->log(__METHOD__,"提交临时工报表记录__".__FUNCTION__,json_encode([$user->id,$userWorkgroupID,$userDutyCheck]));
+        if ($userDutyCheck&&$userDutyCheck->error==true)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->all()));
-        $group_name=$userDetail->user->userWorkgroups->first()['name'];
+//        $group_name=$userDetail->user->userWorkgroups->first()['name'];
+        $group_name=$userDutyCheck->userWorkgroup->first()['name'];
         $laravelEchoPrefix = config('database.redis.options.prefix');
         return response()->view('personnel/checking-in/success',['group_name'=>$group_name??'','full_name'=>$userDetail->full_name,'checked_at'=>$userDutyCheck->checked_at,'type'=>$userDutyCheck->type,'laravelEchoPrefix'=>$laravelEchoPrefix])
             ->cookie('userLaborToken',$userLaborToken,config('users.token_check_in_expire_minutes'),'/');
@@ -215,6 +225,15 @@ class UserDutyCheckController extends Controller
         }
         if($diffDate<=5){
             $userDutyCheck->error=true;//重复打卡
+            if($userWorkgroupID!=$userDutyCheckOld['workgroup_id']&&$userDutyCheckOld->type=='登入'){
+                if ($userDutyCheck->error){
+                    $userDutyCheck->error=false;
+                }
+                $userDutyCheckOld->checked_at=$date;
+                $userDutyCheckOld->workgroup_id=$userWorkgroupID;
+                $userDutyCheckOld->update();
+                return $userDutyCheckOld;
+            }
             return $userDutyCheck;
         }
         if ($userDutyCheckOld->type=="登入"){

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

@@ -601,9 +601,9 @@ class WaybillsController extends Controller
         $fileExtension=$file->getClientOriginalExtension();
         // 5.存储, 生成一个随机文件名
         $fileName = date('ymd').'-'.Uuid::uuid1();//thumbnail common bulky
-        $thumbnailName=storage_path('app\\public\\files\\'.$fileName.'-thumbnail.'.$fileExtension);
-        $commonName=storage_path('app\\public\\files\\'.$fileName.'-common.'.$fileExtension);
-        $bulkyName=storage_path('app\\public\\files\\'.$fileName.'-bulky.'.$fileExtension);
+        $thumbnailName=storage_path('app/public/files/'.$fileName.'-thumbnail.'.$fileExtension);
+        $commonName=storage_path('app/public/files/'.$fileName.'-common.'.$fileExtension);
+        $bulkyName=storage_path('app/public/files/'.$fileName.'-bulky.'.$fileExtension);
         $result=move_uploaded_file ($tmpFile ,$bulkyName);
         if ($result){
             $img=Image::make($bulkyName);

+ 8 - 4
app/Http/Controllers/api/thirdPart/flux/ProcessController.php

@@ -89,8 +89,12 @@ class ProcessController extends Controller
         }
         $docOrders=OracleDOCOrderDetail::where("OrderNo",$wms_code)->get();//出库单
         if (count($docOrders)>0){
-            $owner=Owner::where("code",$docOrders[0]->customerid)->first();
-            if (!$owner)$owner=$this->storeOwner($docOrders[0]->customerid);
+            $owners=Owner::withTrashed()->where("code",$docOrders[0]->customerid)->get();
+            if ($owners->isEmpty()){
+                $owner=$this->storeOwner($docOrders[0]->customerid);
+            }else{
+                $owner=$owners->first();
+            }
             if (!$owner)return ['error'=>'找到了入库单,但未查询到货主代码!'];
             $commodities=$this->resetData($docOrders,"sku","customerid","qtyordered",'orderlineno');
             $processContent=[
@@ -195,7 +199,7 @@ class ProcessController extends Controller
         $commodityBarCodeData=[];
         $commodityBarCodeTem=[];
         $owners_code=array_column($oracleBasSkus->toArray(),'customerid');
-        $ownersTem=Owner::whereIn('code',$owners_code)->get();
+        $ownersTem=Owner::withTrashed()->whereIn('code',$owners_code)->get();
         $owners=array_column($ownersTem->toArray(),'id','code');
         for($i=0;$i<count($oracleBasSkus);$i++){
             if (!$owners[$oracleBasSkus[$i]->customerid])$owners[$oracleBasSkus[$i]->customerid]=$this->storeOwner($oracleBasSkus[$i]->customerid);
@@ -227,4 +231,4 @@ class ProcessController extends Controller
         $this->log(__METHOD__, 'FLUX二次加工单接口录入货主__' . __FUNCTION__, json_encode($owner), Auth::user()['id']);
         return $owner;
     }
-}
+}

+ 18 - 4
app/LaborReport.php

@@ -6,6 +6,7 @@ use Carbon\Carbon;
 use Illuminate\Database\Eloquent\Model;
 use App\Traits\ModelTimeFormat;
 use Illuminate\Support\Facades\Auth;
+use Illuminate\Support\Facades\Date;
 use Ramsey\Uuid\Uuid;
 
 class LaborReport extends Model
@@ -13,7 +14,7 @@ class LaborReport extends Model
     use ModelTimeFormat;
 
     protected $fillable=[
-        'id','enter_number','user_workgroup_id','user_id','name','mobile_phone','identity_number','labor_company','check_in_at','verify_at','check_out_at','online_duration','working_duration'
+        'id','enter_number','user_workgroup_id','user_id','name','mobile_phone','identity_number','labor_company','check_in_at','verify_at','group_user_id','check_out_at','online_duration','working_duration',
     ];
 
     public function userWorkgroup(){
@@ -34,6 +35,7 @@ class LaborReport extends Model
         if ($userDutyCheck->type=='登入'){
             $check_in_at=$userDutyCheck['checked_at'];
         }
+        $date=date('Y-m-d H:i:s');
         $laborReport=new LaborReport([
             'enter_number'=>Uuid::uuid1(),
             'user_workgroup_id'=>$userWorkgroupID,
@@ -43,6 +45,8 @@ class LaborReport extends Model
             'identity_number'=>$identity_number,
             'labor_company'=>$labor_company,
             'check_in_at'=>$check_in_at,
+            'verify_at'=>$date,
+            'group_user_id'=>$userDutyCheck->group_user_id,
         ]);
         $laborReport->save();
         $number_id=$laborReport->id;
@@ -55,12 +59,12 @@ class LaborReport extends Model
     static function updateLaborReportData($laborReport,$userDutyCheck){
             //正常打卡情况
             if($userDutyCheck->type=='登出'){
-                $laborReport->check_out_at=$userDutyCheck->checked_at;
+//                $laborReport->check_out_at=$userDutyCheck->checked_at;
                 $checkInDate=Carbon::parse($laborReport['check_in_at']);
                 $checkOutDate=Carbon::parse($userDutyCheck->checked_at);
                 $hour=($checkOutDate->diffInSeconds($checkInDate))/3600; //在线时长
                 $laborReport['online_duration']=$hour;
-                $laborReport['working_duration']= $laborReport['online_duration'];
+                $laborReport['working_duration']=$hour;
                 $laborReport->update();
             }
         $date=Carbon::parse($laborReport['check_in_at'])->format('Y-m-d');
@@ -82,7 +86,7 @@ class LaborReport extends Model
             $laborReport->update();
         }
         if ($userDutyCheck->type=='登出'&&$userDutyCheckOld->checked_at<$userDutyCheck->checked_at){
-            $laborReport->check_out_at=$userDutyCheck->checked_at;
+//            $laborReport->check_out_at=$userDutyCheck->checked_at;
             $checkInDate=Carbon::parse($laborReport['check_in_at']);
             $checkOutDate=Carbon::parse($userDutyCheck->checked_at);
             $hour=($checkOutDate->diffInSeconds($checkInDate))/3600; //在线时长
@@ -101,6 +105,8 @@ class LaborReport extends Model
             $lunchHour=($endTime->diffInSeconds($beginTime))/3600;
             if($userDutyCheck->type=='登入'&&$userDutyCheck->checked_at<=$date." 14:00:00"){
                 $laborReport['working_duration']=$laborReport['online_duration'];
+            }else if($userDutyCheck->type=='登出'&&$userDutyCheck->checked_at<=$date." 14:00:00"){
+                $laborReport['working_duration']=$laborReport['online_duration'];
             }else{
                 $laborReport['working_duration']=$laborReport['online_duration']-$lunchHour;
             }
@@ -108,4 +114,12 @@ class LaborReport extends Model
         }
         return;
     }
+    //修改临时工报表审核时间
+    static function updateLaborReportVerify($laborReport,$userDutyCheck){
+        $date=date('Y-m-d H:i:s');
+        $laborReport['verify_at']=$date;
+        $laborReport['group_user_id']=$userDutyCheck->group_user_id;
+        $laborReport->update();
+        return;
+    }
 }

+ 0 - 3
laravel-echo-server.lock

@@ -1,3 +0,0 @@
-{
-	"process": 8168
-}

BIN
public/images/QRCodeIMG/4.png


+ 148 - 115
resources/views/order/index/delivering.blade.php

@@ -34,26 +34,13 @@
                                        v-model="filterData.ordertime_start" :class="filterData.ordertime_start?'bg-warning':''">
                             </td>
                             <td style="width: 300px">
-                                <input style="max-width: 200px" name="orderno" v-model="filterData.orderno" class="form-control form-control-sm tooltipTarget" placeholder="编号" :class="filterData.orderno?'bg-warning':''">
+                                <input style="max-width: 200px"  type="date" class=" form-control form-control-sm tooltipTarget" name="ordertime_end" title="选择显示指定日期的结束时间"
+                                       v-model="filterData.ordertime_end" :class="filterData.ordertime_end?'bg-warning':''" >
                             </td>
                             <td style="width: 300px">
                                 <input style="max-width: 200px" name="carriername" v-model="filterData.carriername" class="form-control form-control-sm tooltipTarget" placeholder="承运人" :class="filterData.carriername?'bg-warning':''">
                             </td>
-                            <td style="width: 300px">
-                                <div class="form-inline">
-                                    <input style="max-width: 200px" name="notes" title="右侧选择查询范围,默认为一天内" v-model="filterData.notes" class="form-control form-control-sm tooltipTarget" placeholder="备注" :class="filterData.notes?'bg-warning':''">
-                                    <select style="max-width: 100px" title="查询范围,范围越短搜索越快"  name="addtime" v-model="filterData.addtime" class="form-control form-control-sm tooltipTarget">
-                                        <option value="31">近一月</option>
-                                        <option value="92">近三月</option>
-                                        <option value="183">近半年</option>
-                                        <option value="366">近一年</option>
-                                        <option value="0">不限期</option>
-                                    </select></div>
-                            </td>
-                            <td style="width: 300px">
-                                <input style="max-width: 200px" name="issuepartyname" v-model="filterData.issuepartyname" class="form-control form-control-sm tooltipTarget" placeholder="店铺名称" :class="filterData.issuepartyname?'bg-warning':''">
-                            </td>
-                            <td colspan="4"></td>
+                            <td colspan="6"></td>
                         </tr>
                         <tr>
                             <td >
@@ -67,15 +54,31 @@
                                     </select>
                                 </div>
                             </td>
-                            <td >
-                                <input style="max-width: 200px"  type="date" class=" form-control form-control-sm tooltipTarget" name="ordertime_end" title="选择显示指定日期的结束时间"
-                                       v-model="filterData.ordertime_end" :class="filterData.ordertime_end?'bg-warning':''" >
+                            <td>
+                                <input style="max-width: 200px" name="orderno" v-model="filterData.orderno" class="form-control form-control-sm tooltipTarget" placeholder="编号" title="编号,糊模查找需要在左边打上%符号" autocomplete="off" :class="filterData.orderno?'bg-warning':''">
                             </td>
                             <td >
-                                <input style="max-width: 200px" name="soreference5" title="可输入多快递单号" v-model="filterData.soreference5" class="form-control form-control-sm tooltipTarget" placeholder="快递单号" :class="filterData.soreference5?'bg-warning':''">
+                                <input style="max-width: 200px" name="soreference5" placeholder="多快递单号" v-model="filterData.soreference5" class="form-control form-control-sm tooltipTarget" title="可支持多快递单号,糊模查找需要在左边打上%符号" autocomplete="off" :class="filterData.soreference5?'bg-warning':''">
                             </td>
                             <td>
-                                <input style="max-width: 200px" name="soreference1" title="可输入多客户订单号" v-model="filterData.soreference1" class="form-control form-control-sm tooltipTarget" placeholder="客户订单号" :class="filterData.soreference1?'bg-warning':''">
+                                <input style="max-width: 200px" name="soreference1" v-model="filterData.soreference1" class="form-control form-control-sm tooltipTarget" placeholder="客户订单号" title="客户订单号,糊模查找需要在左边打上%符号" autocomplete="off" :class="filterData.soreference1?'bg-warning':''">
+                            </td>
+                            <td colspan="6"></td>
+                        </tr>
+                        <tr>
+                            <td>
+                                <div class="form-inline">
+                                    <input style="max-width: 200px" name="notes" title="右侧选择查询范围,默认为一天内" v-model="filterData.notes" class="form-control form-control-sm tooltipTarget" placeholder="备注" autocomplete="off" :class="filterData.notes?'bg-warning':''">
+                                    <select style="max-width: 100px" title="查询范围,范围越短搜索越快"  name="addtime" v-model="filterData.addtime" class="form-control form-control-sm tooltipTarget">
+                                        <option value="31">近一月</option>
+                                        <option value="92">近三月</option>
+                                        <option value="183">近半年</option>
+                                        <option value="366">近一年</option>
+                                        <option value="0">不限期</option>
+                                    </select></div>
+                            </td>
+                            <td>
+                                <input style="max-width: 200px" name="issuepartyname" v-model="filterData.issuepartyname" class="form-control form-control-sm tooltipTarget" placeholder="店铺名称" :class="filterData.issuepartyname?'bg-warning':''">
                             </td>
                             <td>
                                 <input style="max-width: 200px" name="waveno" v-model="filterData.waveno" title="波次编号,模糊查找需要在左边打上%的符号" class="form-control form-control-sm tooltipTarget" placeholder="波次编号" :class="filterData.waveno?'bg-warning':''">
@@ -83,7 +86,7 @@
                             <td>
                                 <input style="max-width: 200px" name="alternate_sku1" v-model="filterData.alternate_sku1" title="产品条码,模糊查找需要在左边打上%的符号" class="form-control form-control-sm tooltipTarget" placeholder="产品条码" :class="filterData.alternate_sku1?'bg-warning':''">
                             </td>
-                            <td colspan="4"><input hidden type="submit"></td>
+                            <td colspan="6"><input hidden type="submit"></td>
                         </tr>
                         <tr>
                             <td colspan="10">
@@ -118,91 +121,100 @@
                         </div><!-- /.modal-content -->
                     </div><!-- /.modal -->
                 </div>
-            <table class="table table-sm table-striped table-bordered table-hover card-body mt-2 ml-3">
-                <tr class="text-nowrap">
-                    <th>
-                        <label for="all">
-                            <input id="all" type="checkbox" @click="checkAll($event)">全选
-                        </label>
-                    </th>
-                    <th>序号</th>
-                    <th>操作</th>
-                    <th>编号</th>
-                    <th>订单状态</th>
-                    <th>接口下发时间</th>
-                    <th>店铺名称</th>
-                    <th>客户</th>
-                    <th>客户订单号</th>
-                    <th>承运人</th>
-                    <th>快递单号</th>
-                    <th>收货人名称</th>
-                    <th>收货人电话</th>
-                    <th>省</th>
-                    <th>市</th>
-                    <th>区</th>
-                    <th style="min-width:320px;">收货人地址</th>
-                    <th>波次编号</th>
-                    <th>仓库</th>
-                    <th>快递获取标记</th>
-                    <th>快递获取时间</th>
-                    <th style="min-width: 150px">产品代码</th>
-                    <th style="min-width: 150px">产品条码</th>
-                    <th style="min-width: 180px">产品名称</th>
-                    <th>订单数量</th>
-                    <th>复核时间</th>
-                    <th style="min-width:260px;">备注</th>
-                    <th>接口取消标记</th>
-                    <th>拣货单打印标记</th>
-                    <th>接口回传标记</th>
-                    <th>订单冻结标记</th>
-                </tr>
-                <tr v-for="(order,i) in orders" @click="selectedColor(order.orderno)" :style="{'font-weight': order.orderno==selectedStyle?'bold':''}">
-                    <td>
-                        <input class="checkItem" type="checkbox" :value="order.orderno" v-model="checkData">
-                    </td>
-                    <td>@{{ i+1 }}</td>
-                    <td>@can('订单管理-编辑')<button v-if="order.releasestatus==='N'" @click="freeze(order.orderno,order.waveno)" class="btn btn-sm btn-outline-danger text-nowrap">冻结</button>@endcan</td>
-                    <td class="text-dark font-weight-bold text-nowrap">@{{ order.orderno }}</td>
-                    <td class="text-muted text-nowrap">@{{ order.codename_c }}</td>
-                    <td class="text-nowrap">@{{ order.addtime }}</td>
-                    <td class="text-nowrap">@{{ order.issuepartyname }}</td>
-                    <td class="text-nowrap">@{{ order.customer_descr_c }}</td>
-                    <td class="text-nowrap">@{{ order.soreference1 }}</td>
-                    <td class="text-muted text-nowrap">@{{ order.carriername }}</td>
-                    <td class="text-nowrap">@{{ order.soreference5 }}</td>
-                    <td class="text-muted text-nowrap">@{{ order.c_contact }}</td>
-                    <td class="text-muted text-nowrap">@{{ order.c_tel2 }}</td>
-                    <td class="text-nowrap"> @{{ order.c_province }}</td>
-                    <td class="text-nowrap"> @{{ order.c_city }}</td>
-                    <td class="text-nowrap"> @{{ order.c_district }}</td>
-                    <td>@{{ order.c_address1 }}</td>
-                    <td class="text-nowrap">@{{ order.waveno }}</td>
-                    <td class="text-nowrap"> @{{ order.warehouseid }}</td>
-                    <td class="text-nowrap">@{{ order.edisendflag2 }}</td>
-                    <td class="text-nowrap">@{{ order.edisendtime2 }}</td>
-                    <td colspan="5" class="text-center">
-                        <table v-if="commodities[order.orderno]&&commodities[order.orderno].length==1 || isBtn[order.orderno]" class="table text-nowrap table-sm">
-                            <tr v-for="oracleDOCOrderDetail in commodities[order.orderno]">
-                                <td><div style="width: 180px;overflow: hidden">@{{ oracleDOCOrderDetail.sku }}</div></td>
-                                <td><div style="width: 180px;overflow: hidden">@{{ oracleDOCOrderDetail.alternate_sku1 }}</div></td>
-                                <td><div :title="oracleDOCOrderDetail.descr_c" class="tooltipTarget" style="width: 250px;overflow: hidden">@{{ oracleDOCOrderDetail.descr_c }}</div></td>
-                                <td>@{{ oracleDOCOrderDetail.qtyordered }}</td>
-                                <td><div style="width: 180px;overflow: hidden">@{{ oracleDOCOrderDetail.checktime }}</div></td>
-                            </tr>
-                            <tr v-if="isBtn[order.orderno]">
-                                <td colspan="5">
-                                    <b style="cursor:pointer;color: #4aa0e6;" @click="isBtn[order.orderno]=false;">点击收起明细</b>
-                                </td>
-                            </tr>
-                        </table>
-                        <b @click="unfold(order.orderno)" style="cursor:pointer;text-decoration: underline;color: #4aa0e6;" v-if="commodities[order.orderno]&&commodities[order.orderno].length>1 && !isBtn[order.orderno]">共有 @{{ commodities[order.orderno].length }}  件商品,点击展开</b>
-                    </td>
-                    <td>@{{ order.notes }}</td>
-                    <td>@{{ order.erpcancelflag }}</td>
-                    <td>@{{ order.picking_print_flag }}</td>
-                    <td>@{{ order.edisendflag }}</td>
-                    <td>@{{ order.releasestatus }}</td>
-                </tr>
+                <table class="table table-sm table-striped table-bordered table-hover card-body mt-2 ml-3">
+                    <tr class="text-nowrap">
+                        <th>
+                            <label for="all">
+                                <input id="all" type="checkbox" @click="checkAll($event)">全选
+                            </label>
+                        </th>
+                        <th>序号</th>
+                        <th>编号</th>
+                        <th>订单状态</th>
+                        <th>接口下发时间</th>
+                        <th>店铺名称</th>
+                        <th>客户</th>
+                        <th>客户订单号</th>
+                        <th>承运人</th>
+                        <th>快递单号</th>
+                        <th>收货人名称</th>
+                        <th>收货人电话</th>
+                        <th>省</th>
+                        <th>市</th>
+                        <th>区</th>
+                        <th style="min-width:320px;">收货人地址</th>
+                        <th>波次编号</th>
+                        <th>仓库</th>
+                        <th>快递获取标记</th>
+                        <th>快递获取时间</th>
+                        <th style="min-width: 200px">产品代码</th>
+                        <th style="min-width: 200px">产品条码</th>
+                        <th style="min-width: 200px">产品名称</th>
+                        <th>订单数量</th>
+                        <th>复核时间</th>
+                        <th style="min-width:260px;">备注</th>
+                        <th>接口取消标记</th>
+                        <th>拣货单打印标记</th>
+                        <th>接口回传标记</th>
+                        <th>订单冻结</th>
+
+                    </tr>
+                    <tr v-for="(order,i) in orders" @click="selectedColor(order.orderno)" :style="{'font-weight': order.orderno==selectedStyle?'bold':''}">
+                        <td>
+                            <input class="checkItem" type="checkbox" :value="order.orderno" v-model="checkData">
+                        </td>
+                        <td>@{{ i+1 }}</td>
+                        <td class="text-dark font-weight-bold text-nowrap">@{{ order.orderno }}</td>
+                        <td class="text-muted text-nowrap">@{{ order.codename_c }}</td>
+                        <td class="text-nowrap">@{{ order.addtime }}</td>
+                        <td class="text-nowrap">@{{ order.issuepartyname }}</td>
+                        <td class="text-nowrap">@{{ order.customer_descr_c }}</td>
+                        <td class="text-nowrap">@{{ order.soreference1 }}</td>
+                        <td class="text-muted text-nowrap">@{{ order.carriername }}</td>
+                        <td class="text-nowrap">@{{ order.soreference5 }}</td>
+                        <td class="text-muted text-nowrap">@{{ order.c_contact }}</td>
+                        <td class="text-muted text-nowrap">@{{ order.c_tel2 }}</td>
+                        <td class="text-nowrap"> @{{ order.c_province }}</td>
+                        <td class="text-nowrap"> @{{ order.c_city }}</td>
+                        <td class="text-nowrap"> @{{ order.c_district }}</td>
+                        <td class="text-muted">@{{ order.c_address1 }}</td>
+                        <td class="text-nowrap">@{{ order.waveno }}</td>
+                        <td class="text-nowrap"> @{{ order.warehouseid }}</td>
+                        <td class="text-nowrap">@{{ order.edisendflag2 }}</td>
+                        <td class="text-nowrap">@{{ order.edisendtime2 }}</td>
+                        <td colspan="5" class="text-center">
+                            <table v-if="commodities[order.orderno]&&commodities[order.orderno].length==1 || isBtn[order.orderno]" class="table text-nowrap table-sm">
+                                <tr v-for="oracleDOCOrderDetail in commodities[order.orderno]">
+                                    <td><div style="width: 180px;overflow: hidden">@{{ oracleDOCOrderDetail.sku }}</div></td>
+                                    <td><div style="width: 180px;overflow: hidden">@{{ oracleDOCOrderDetail.alternate_sku1 }}</div></td>
+                                    <td><div :title="oracleDOCOrderDetail.descr_c" class="tooltipTarget" style="width: 180px;overflow: hidden">@{{ oracleDOCOrderDetail.descr_c }}</div></td>
+                                    <td>@{{ oracleDOCOrderDetail.qtyordered }}</td>
+                                    <td><div style="width: 180px;overflow: hidden">@{{ oracleDOCOrderDetail.checktime }}</div></td>
+                                </tr>
+                                <tr v-if="isBtn[order.orderno]">
+                                    <td colspan="5">
+                                        <b style="cursor:pointer;color: #4aa0e6;" @click="isBtn[order.orderno]=false;">点击收起明细</b>
+                                    </td>
+                                </tr>
+                            </table>
+                            <b @click="unfold(order.orderno)" style="cursor:pointer;text-decoration: underline;color: #4aa0e6;" v-if="commodities[order.orderno]&&commodities[order.orderno].length>1 && !isBtn[order.orderno]">共有 @{{ commodities[order.orderno].length }}  件商品,点击展开</b>
+                        </td>
+                        <td>@{{ order.notes }}</td>
+                        <td>@{{ order.erpcancelflag }}</td>
+                        <td>@{{ order.picking_print_flag }}</td>
+                        <td>@{{ order.edisendflag }}</td>
+                        <td>
+                            @can('订单管理-编辑')
+                                <button v-if="order.releasestatus!=='H'" @click="freeze(order.orderno,order.waveno)" class="btn btn-sm btn-outline-dark text-nowrap"
+                                        :disabled="!(order.codename_c==='创建订单'||order.codename_c==='分配完成'||order.codename_c==='拣货完成'||order.codename_c==='播种完成')">冻结</button>
+                                <button v-else @click="thaw(order.orderno,order.waveno)" class="btn btn-sm btn-outline-danger text-nowrap"
+                                        :disabled="!(order.codename_c==='创建订单'||order.codename_c==='分配完成'||order.codename_c==='拣货完成'||order.codename_c==='播种完成')">解冻</button>
+                            @else
+                                @{{ order.releasestatus }}
+                            @endcan
+                        </td>
+
+                    </tr>
                 </table>
                 <button type="button" @click="pageUp()" :readonly="page>1?false:true" class="btn btn-sm " :class="page>1?'btn-outline-info':''">上一页</button>
                 <button type="button" @click="pageDown()" :readonly="page<maxPage?false:true" class="btn btn-sm m-3" :class="page<maxPage?'btn-outline-info':''">下一页</button>
@@ -418,24 +430,45 @@
                     this.selectedStyle=orderno;
                 },
                 freeze(orderno,waveno){
-                  if(!confirm('确定要冻结“'+orderno+'”吗?'))return;
-                  let _this=this;
-                  axios.post('{{url('order/freeze')}}',{orderno:orderno,waveno:waveno})
-                      .then(function (response) {
+                    if(!confirm('确定要冻结“'+orderno+'”吗?'))return;
+                    let _this=this;
+                    axios.post('{{url('order/freeze')}}',{orderno:orderno,waveno:waveno})
+                        .then(function (response) {
                             if (response.data.success){
                                 _this.orders.some(function (order) {
                                     if (order.orderno===orderno){
-                                        order.releasestatus='Y';
+                                        order.releasestatus='H';
+                                        order.waveno='*';
                                         return true;
                                     }
                                 });
                                 tempTip.setDuration(3000);
-                                tempTip.show('订单已被冻结!');
+                                tempTip.showSuccess('订单已被冻结!');
                             }
-                      }).catch(function (err) {
+                        }).catch(function (err) {
                         tempTip.setDuration(3000);
                         tempTip.show('网络异常:'+err);
-                      });
+                    });
+                },
+                thaw(orderno,waveno){
+                    if(!confirm('确定要解冻“'+orderno+'”吗?'))return;
+                    let _this=this;
+                    axios.post('{{url('order/thaw')}}',{orderno:orderno,waveno:waveno})
+                        .then(function (response) {
+                            if (response.data.success){
+                                _this.orders.some(function (order) {
+                                    if (order.orderno===orderno){
+                                        order.releasestatus='N';
+                                        return true;
+                                    }
+                                });
+                                tempTip.setDuration(3000);
+                                tempTip.showSuccess('订单已成功冻结!');
+                            }
+                        }).catch(function (err) {
+                        tempTip.setDuration(3000);
+                        tempTip.show('网络异常:'+err);
+                    });
                 },
             },
         });

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

@@ -20,7 +20,7 @@
                 </div>
                 <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">
+                    <div class="col-sm-3  col-lg-3 col-xl-3 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>

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

@@ -19,7 +19,7 @@
                         <tr>
                             <td>序号</td>
                             <td>姓名</td>
-                            @can('人事管理-打卡审核')<td>操作</td>@endcan
+                            @can('人事管理-打卡审核')<td>门卫审核</td>@endcan
                             <td v-if="workgroupSign">组长审核</td>
                             <td >打卡时间</td>
                             <td>打卡类型</td>
@@ -87,6 +87,12 @@
                 ],
                 workgroupSign:'{{$workgroupSign}}',
             },
+            mounted(){
+                initEcho();
+                Echo.channel('{{$laravelEchoPrefix}}userDutyCheck').listen('ClockinEvent',(e)=>{
+                    window.location.reload();
+                });
+            },
             methods:{
                 whichDay(dateStr){
                     let nowDate=new Date();

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

@@ -20,7 +20,7 @@
     <h2 class="text-danger">小组:{{$group_name}}</h2><br/>
     <h3 style="margin-bottom: 0">姓名:@if($full_name)<b style="color: #2a9055">{{$full_name}}</b>@endif&nbsp;&nbsp;&nbsp;&nbsp;打卡时间:@if($checked_at)<b style="color: #2a9055">{{$checked_at}}</b> @endif</h3><br/>
     @if($type=='登入')
-        <div v-if="userDutyCheck.group_user_id"><button class="btn btn-danger" @click="closeWindow">确认关闭</button></div>
+        <div v-if="userDutyCheck.group_user_id"><h5 style="color: #2a9055" >组长已确认</h5></div>
         <h5 v-else style="margin-top: 0;color: red">等待组长确认登入,请勿关闭:<span id="_lefttime" ></span></h5>
     @endif
 
@@ -45,11 +45,6 @@
                 _this.userDutyCheck.group_user_id=userDutyCheck.group_user_id;
             });
         },
-        methods:{
-            closeWindow:function () {
-                window.close();
-            }
-        }
     });
     var secondsInit = 0;
     function _fresh()

+ 18 - 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 m-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>
@@ -19,45 +19,47 @@
                             </tr>
                             <tr>
 
-                                <td  colspan="9">
+                                <td  colspan="7">
                                     <select name="paginate" v-model="filterData.paginate" class="tooltipTarget form-control-sm" style="vertical-align: middle" @change="setPaginate">
-                                        <option value="50">50行</option>
-                                        <option value="100">100行</option>
-                                        <option value="200">200行</option>
-                                        <option value="500">500行</option>
-                                        <option value="1000">1000行</option>
+                                        <option value="50">每页显示50条</option>
+                                        <option value="100">每页显示100条</option>
+                                        <option value="200">每页显示200条</option>
+                                        <option value="500">每页显示500条</option>
+                                        <option value="1000">每页显示1000条</option>
                                     </select></td>
                             </tr>
                             <tr>
                                 <td >
-                                    <input style="width: 150px" name="created_at_start" type="date" v-model="filterData.created_at_start" :class="filterData.created_at_start?'bg-warning':''" class="form-control-sm tooltipTarget" title="选择显示指定日期的起始时间">
+                                    <input style="width: 140px" name="created_at_start" type="date" v-model="filterData.created_at_start" :class="filterData.created_at_start?'bg-warning':''" class="form-control form-control-sm tooltipTarget" title="选择显示指定日期的起始时间">
 
                                 </td>
                                 <td>
-                                    <input type="text" class="form-control-sm tooltipTarget" placeholder="小组"
+                                    <div class="form-inline">
+                                    <input type="text" class="form-control form-control-sm tooltipTarget" placeholder="小组"
                                            style="width:70px" @input="owner_seek"
                                            title="输入关键词快速定位下拉列表,回车确定">
                                     <select name="user_workgroup_id" id="user_workgroup_id" :class="filterData.user_workgroup_id?'bg-warning':''" v-model="filterData.user_workgroup_id" @change="setUserWorkGroup"
-                                            class="form-control-sm tooltipTarget"  title="选择要显示的工作组">
+                                            class="form-control form-control-sm tooltipTarget"  title="选择要显示的工作组">
                                         @foreach($userWorkGroups as $userWorkGroup)
                                             <option value="{{$userWorkGroup->id}}">{{$userWorkGroup->name}}</option>
                                         @endforeach
                                     </select>
                                     <input hidden type="submit" >
+                                    </div>
                                 </td>
 
                                 <td >
-                                    <input :class="filterData.enter_number?'bg-warning':''" type="text" title="支持15内模糊搜索与15天外精确搜索" name="enter_number" class="form-control-sm  tooltipTarget" v-model="filterData.enter_number" style="vertical-align: middle" placeholder="进厂编号"></td>
+                                    <input :class="filterData.enter_number?'bg-warning':''" type="text" title="支持15内模糊搜索与15天外精确搜索" name="enter_number" class="form-control form-control-sm  tooltipTarget" style="width: 150px" v-model="filterData.enter_number"  placeholder="进厂编号"></td>
                                 <td >
-                                    <input :class="filterData.identity_number?'bg-warning':''" type="text" title="支持15内模糊搜索与15天外精确搜索" name="identity_number" class="form-control-sm  tooltipTarget" v-model="filterData.identity_number" style="vertical-align: middle" placeholder="身份证号"></td>
+                                    <input :class="filterData.identity_number?'bg-warning':''" type="text" title="支持15内模糊搜索与15天外精确搜索" name="identity_number" class="form-control form-control-sm  tooltipTarget" style="width: 150px"  v-model="filterData.identity_number"  placeholder="身份证号"></td>
                                 <td colspan="5"></td>
                             </tr>
                             <tr>
                                 <td>
-                                    <input style="width: 150px" type="date" name="created_at_end" v-model="filterData.created_at_end" :class="filterData.created_at_end?'bg-warning':''" class="form-control-sm tooltipTarget" title="选择显示指定日期的结束时间">
+                                    <input style="width: 140px" type="date" name="created_at_end" v-model="filterData.created_at_end" :class="filterData.created_at_end?'bg-warning':''" class="form-control form-control-sm tooltipTarget" title="选择显示指定日期的结束时间">
                                 </td>
                                 <td >
-                                    <input type="text"  name="mobile_phone" class="form-control-sm  tooltipTarget" v-model="filterData.mobile_phone"  :class="filterData.mobile_phone?'bg-warning':''" style="vertical-align: middle" placeholder="电话号"></td>
+                                    <input type="text"  name="mobile_phone" class="form-control form-control-sm tooltipTarget" v-model="filterData.mobile_phone"  :class="filterData.mobile_phone?'bg-warning':''" style="width: 150px" placeholder="电话号"></td>
                             </tr>
                             <tr>
                                 <td colspan="9">
@@ -259,5 +261,6 @@
     </script>
 @endsection
 <style>
-    .laborReport_1{background-color: #FFFF00}
+    .laborReport_1{background-color: rgb(241, 234, 190)
+    }
 </style>

+ 9 - 3
resources/views/process/create.blade.php

@@ -146,6 +146,8 @@
                 tutorials:[],
                 selectedTutorials:[],
                 msg:false,
+                commodityIds:[],
+
             },
             watch:{
                 processContents:{
@@ -165,7 +167,6 @@
                 addProcessContent(){
                     let _this=this;
                     let wms_code=_this.process.wms_code;
-                    console.log(wms_code);
                     if (!wms_code){
                         tempTip.setDuration(3000);
                         tempTip.show('未输入单据号!');
@@ -197,7 +198,6 @@
                     _this.msg=true;
                     axios.post('{{url("api/thirdPart/flux/process/getProcessContent")}}',{wms_code:wms_code})
                         .then(function (response) {
-                            console.log(response.data);
                             if (_this.msg)_this.msg=false;
                             tempTip.cancelWaitingTip();
                             tempTip.setDuration(3000);
@@ -242,6 +242,7 @@
                     let _this=this;
                     _this.processContents.every(function (processContent) {
                         if (processContent.wms_code==wms_code) {
+                            _this.commodityIds.push(processContent.commodity_id);
                             processContent.addBtnShow=false;
                             return false;
                         }
@@ -254,6 +255,7 @@
                     _this.processContents.every(function (processContent,i) {
                         if (processContent.wms_code==wms_code) {
                             _this.processContents.splice(i,1);
+                            _this.commodityIds.splice(_this.commodityIds.indexOf(processContent.commodity_id),1);
                             return false;
                         }
                         return  true;
@@ -281,7 +283,11 @@
                 selectedCommodity(commodity,wms_code){
                     let _this=this;
                     _this.processContents.every(function (processContent) {
-                       if (processContent.wms_code==wms_code){
+                        if (_this.commodityIds.includes(commodity.id)){
+                            tempTip.setDuration(3000);
+                            tempTip.show('下方已添加该单据!');
+                            return;
+                        }else if (processContent.wms_code==wms_code){
                            processContent.commodity_id=commodity.id;
                            processContent.commodity_name=commodity.name;
                            processContent.commodity_barcodes=commodity.barcodes;

+ 2 - 0
routes/web.php

@@ -256,6 +256,8 @@ Route::group(['prefix'=>'order'],function(){
     Route::post('create/batchComments','OrderController@batchComments');
     //冻结订单
     Route::post('freeze','OrderController@freeze');
+    //解冻订单
+    Route::post('thaw','OrderController@thaw');
 });