Bläddra i källkod

Merge branch 'master' into Haozi

haozi 5 år sedan
förälder
incheckning
0ca4d7c00b

+ 34 - 13
app/Http/Controllers/CommodityController.php

@@ -7,6 +7,7 @@ use App\Imports\CommodityImport;
 use App\Services\CommodityBarcodeService;
 use App\Services\CommodityService;
 use App\Services\LogService;
+use App\Services\OracleBasSkuService;
 use Exception;
 use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Http\Request;
@@ -176,12 +177,28 @@ class CommodityController extends Controller
     }
 
 
-    public function syncOwnerCommodities($owner_id,$owner_code){
+    public function syncOwnerCommodities($owner_id,$owner_code,$sku = null){
+        ini_set('max_execution_time', '0');
+        $params = ['customerid' => $owner_code];
+        if ($sku) $params['sku'] = $sku;
+
+        /** @var OracleBasSkuService $oracleBasSkuService */
+        $oracleBasSkuService = app('oracleBasSkuService');
+        $amount = 1000;
+        $sum = $oracleBasSkuService->count($params);
+        $number = ceil($sum/$amount);
+        for ($i = 0;$i<$number; $i++){
+            $wmsCommodities = $oracleBasSkuService->getPiece($params,($i*$amount),$amount);
+            if (!$wmsCommodities)continue;
+            $this->execute($owner_id,$wmsCommodities);
+        }
+    }
+
+    private function execute($owner_id,array $wmsCommodities){
+        if (count($wmsCommodities) < 1)return;
         $today = date('Y-m-d H:i:s');
-        $codeColumn = ['alternate_sku1','alternate_sku2'];
         $map = [];
         $skus = [];
-        $wmsCommodities = app('oracleBasSkuService')->getOwnerCommodities(['code' => $owner_code]);
         foreach ($wmsCommodities as $index => $wmsCommodity){
             $map[$wmsCommodity->sku] = $index;
             $skus[] = $wmsCommodity->sku;
@@ -221,12 +238,15 @@ class CommodityController extends Controller
                     'volumn' => $wms->cube
                 ];
             }
-            foreach ($codeColumn as $column){
-                if ($wms[$column]){
-                    $wmsCode = rtrim($wms[$column],"*");
-                    $barcodeMap[$wmsCode] = $commodity->id;
-                    $barcodes[] = $wmsCode;
-                }
+            if ($wms->alternate_sku1){
+                $wmsCode = rtrim($wms->alternate_sku1,"*");
+                $barcodeMap[$wmsCode] = $commodity->id;
+                $barcodes[] = $wmsCode;
+            }
+            if ($wms->alternate_sku2){
+                $wmsCode = rtrim($wms->alternate_sku2,"*");
+                $barcodeMap[$wmsCode] = $commodity->id;
+                $barcodes[] = $wmsCode;
             }
             $commoditiesId[] = $commodity->id;
             unset($wmsCommodities[$map[$commodity->sku]]);
@@ -278,10 +298,11 @@ class CommodityController extends Controller
                 "created_at" => $today,
             ];
             $barcodeMap[$wms->sku] = [];
-            foreach ($codeColumn as $column){
-                if ($wms[$column]){
-                    $barcodeMap[$wms->sku][] = rtrim($wms[$column],"*");
-                }
+            if ($wms->alternate_sku1){
+                $barcodeMap[$wms->sku][] = rtrim($wms->alternate_sku1,"*");
+            }
+            if ($wms->alternate_sku2){
+                $barcodeMap[$wms->sku][] = rtrim($wms->alternate_sku2,"*");
             }
             $skus[] = $wms->sku;
             unset($wmsCommodities[$index]);

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

@@ -58,7 +58,7 @@ class OrderController extends Controller
     }
 
     public function createRejectedBill(Request $request){
-        if(!Gate::allows('订单管理-订单-退货单生成')){ return ['success'=>false,'data'=>'您无权操作!'];  }
+        if(!Gate::allows('订单管理-订单-生成退货单')){ return ['success'=>false,'data'=>'您无权操作!'];  }
         /** @var OrderService $orderService */
         $orderService = app('orderService');
         $result = $orderService->get(['data' => $request->data]);
@@ -85,7 +85,7 @@ class OrderController extends Controller
                 'mobile_sender' => $order->c_tel2,
                 'logistic_number' => '原单退回',//$order->soreference1
                 'remark' => $order->notes,
-                'is_loaded' =>1,
+                'is_loaded' =>0,
             ]);
             LogService::log(__METHOD__,"生成退货单",json_encode($order),Auth::user()['id']);
             if ($commodities[$order->orderno] ?? false){
@@ -107,7 +107,7 @@ class OrderController extends Controller
     }
 
     public function isRejectedBillExist(Request $request){
-        if(!Gate::allows('订单管理-订单-退货单生成')){ return redirect(url('/'));  }
+        if(!Gate::allows('订单管理-订单-生成退货单')){ return redirect(url('/'));  }
         /** @var RejectedBillService $rejectedBillService */
         $rejectedBillService = app('rejectedBillService');
         $rejectedBills = $rejectedBillService->get(['order_number' => $request->data]);

+ 5 - 7
app/Http/Controllers/OrderTrackingController.php

@@ -2,6 +2,7 @@
 
 namespace App\Http\Controllers;
 
+use App\Logistic;
 use App\OracleActAllocationDetails;
 use App\OracleBasCustomer;
 use App\OracleDOCOrderHeader;
@@ -28,7 +29,8 @@ class OrderTrackingController extends Controller
         $owners =  app(OwnerService::class)->getAuthorizedOwners();
         $service = app('orderTrackingService');
         $trackOrders = $service->paginate($request->input());
-        return view('order.tracking.index', compact('owners', 'trackOrders'));
+        $logistics = Logistic::all();
+        return view('order.tracking.index', compact('owners', 'trackOrders','logistics'));
     }
 
     public function logisticUpdateApi(Request $request)
@@ -36,9 +38,7 @@ class OrderTrackingController extends Controller
         if (!Gate::allows('订单管理-跟踪-物流公司编辑'))
             return redirect(url('/'));
         try {
-            $bool = OrderTracking::query()
-                ->where('id', $request->input('id'))
-                ->update([$request->input('param') => $request->input('value')]);
+            $bool = app(OrderTrackingService::class)->updateOrderTracingAndSyc($request->input('id'),$request->input('param'),$request->input('value'));
             LogService::log(__METHOD__, __FUNCTION__, '更新成功' . json_encode($request->getContent()) );
             return ['success' => $bool];
         } catch (\Exception $e) {
@@ -52,9 +52,7 @@ class OrderTrackingController extends Controller
         if (!Gate::allows('订单管理-跟踪-仓库编辑'))
             return redirect(url('/'));
         try {
-            $bool = OrderTracking::query()
-                ->where('id', $request->input('id'))
-                ->update([$request->input('param') => $request->input('value')]);
+            $bool = app(OrderTrackingService::class)->updateOrderTracingAndSyc($request->input('id'),$request->input('param'),$request->input('value'));
             LogService::log(__METHOD__, __FUNCTION__, '更新成功' . json_encode($request->getContent()));
             return ['success' => $bool];
         } catch (\Exception $e) {

+ 5 - 1
app/Http/Controllers/StoreCheckingReceiveController.php

@@ -53,7 +53,11 @@ class StoreCheckingReceiveController extends Controller
 
         if ($storeCheckingReceive->owner ?? false){
             $commodityController = new CommodityController();
-            $commodityController->syncOwnerCommodities($storeCheckingReceive->owner->id, $storeCheckingReceive->owner->code);
+            $sku = [];
+            foreach ($storeCheckingReceive->storeCheckingReceiveItems as $item){
+                $sku[] = $item->commodity->sku;
+            }
+            $commodityController->syncOwnerCommodities($storeCheckingReceive->owner->id, $storeCheckingReceive->owner->code, $sku);
         }
 
         return view('store.checkingReceive.show',compact('storeCheckingReceive','is_show'));

+ 34 - 43
app/Http/Controllers/TestController.php

@@ -413,9 +413,10 @@ class TestController extends Controller
     }
 
     public function test2(){
-        $skus = ["a"=>1,"b"=>2,"c"=>3];
-        $skuArr = array_keys($skus);
-        dd($skuArr);
+        $wmsCommodities = app('oracleBasSkuService')->getPiece([],0,5000);
+        dd(count($wmsCommodities));
+        dd(json_encode($wmsCommodities,JSON_UNESCAPED_UNICODE));
+        //json_decode(json_encode($wmsCommodities,JSON_UNESCAPED_UNICODE),true);
     }
 
     /*1*/
@@ -475,52 +476,20 @@ class TestController extends Controller
     }
 
 
-    public function test3(){
+    public function test3()
+    {
 
         /** @var DataHandlerService $dataHandlerService */
         $dataHandlerService = app('dataHandlerService');
         $startDate = \Illuminate\Support\Carbon::parse('2020-05-06 13:16:51')->toDateTimeString();
         /** @var OrderTrackingService $orderTrackingService */
         $orderTrackingService  = app('orderTrackingService');
-//        $notes = '123132';
-////                $notes = str_replace('【','[',$notes);
-//        if (strpos($notes, '[')) {
-//            $arr= str_split($notes,strpos($notes,'['));
-//            $client = $arr[0] ?? '';
-//            $order_remark = $arr[1] ?? '';
-//            $order_remark = str_replace(['[',']'],'',$order_remark);
-//        }
-
-//        /** @var OwnerService $ownerService */
-//        $ownerService = app('ownerService');
-//        $owners = $ownerService->获取订单跟踪的货主();
-//        $ownerIds = data_get($owners, '*.code');
-//        var_dump('query - start',Carbon::now());
-//        OracleDOCOrderHeader::query()
-//            ->with(['oracleDOCOrderDetails', 'actAllocationDetails','oracleBASCode'])
-//            ->where('addtime', '>=', $startDate)
-//            ->whereIn('customerID', $ownerIds)
-//            ->get();
-//
-//        OracleDOCOrderHeader::query()
-//            ->with(['oracleDOCOrderDetails', 'actAllocationDetails','oracleBASCode'])
-//            ->where('EditTime','>=',$startDate)
-//            ->whereColumn('EditTime','<>','addtime')
-//            ->whereIn('customerID', $ownerIds)
-//            ->get();
-//        var_dump('query - end',Carbon::now());
-
-
-        $orderIssues = \App\OrderIssue::query()->get();
-        $logistic_number_returns = [];
-        $rejectedBills = [];
-        foreach ($orderIssues as $orderIssue) {
-           $rejectedBill =  $orderIssue->hasOne(RejectedBill::class, 'id', 'rejected_bill_id')->first();
-            $rejectedBills[] =$rejectedBill;
-            $logistic_number_returns[]  = $rejectedBill->logistic_number_return ?? '';
-//            $orderIssue->update(['logistic_number_return'=>$orderIssue->rejectedBill->logistic_number_return ?? null]);
-        }
-        dd($rejectedBills,$logistic_number_returns);
+
+        $data = OrderTracking::query()->with(['owner', 'commodities' => function ($query) {
+            $query->with(['commodity', 'package.order.logistic']);
+        },])->orderByDesc('created_at')->first();
+        dd($data);
+
 
 
 //    $orderTrackingService->根据设置从WMS同步追踪货主的订单($startDate);
@@ -586,6 +555,28 @@ class TestController extends Controller
         /** @var BatchUpdateService $batchUpdateService */
         $batchUpdateService = app('batchUpdateService');
         $batchUpdateService->batchUpdate('order_trackings',$fillables);
+    }
+
+    public function updateOrderTrackingLogistic(){
+        $orderTrackings = OrderTracking::query()->with('commodities.package.order')->get();
+        $order_nos = [];
 
+        foreach ($orderTrackings as $order_tracking){
+            $order = $order_tracking->commodities->package->order ?? false;
+            if($order ?? false){
+                $order_nos[] = $order['code'];
+            }
+        }
+        $order_nos =  array_unique($order_nos);
+        $orderHeaders = OracleDOCOrderHeader::query()->whereIn('OrderNo',$order_nos)->get();
+        $owners_code = data_get($orderHeaders,'*.userdefine1');
+        $logistics = Logistic::query()->where('code',$owners_code)->get();
+        $orders = Order::query()->whereIn('code',data_get($orderHeaders,'*.orderno'))->get();
+
+        foreach ($orderHeaders as $orderHeader) {
+            $order = $orders->where('code',$orderHeader->orderno)->first();
+            $logistics = $logistics->where('code',$orderHeader->userdefine1)->first();
+            $order->update(['logistic_id'=>$logistics->id]);
+        }
     }
 }

+ 41 - 4
app/Services/OracleBasSkuService.php

@@ -1,11 +1,12 @@
-<?php 
+<?php
 
-namespace App\Services; 
+namespace App\Services;
 
 use App\OracleBasSKU;
+use Illuminate\Support\Facades\DB;
 
 Class OracleBasSkuService
-{ 
+{
     public function getOwnerCommodities(array $params){
         $query = OracleBasSKU::query();
         if ($params['code'] ?? false){
@@ -16,5 +17,41 @@ Class OracleBasSkuService
         }
         return $query->get();
     }
+    public function get(array $params){
+        $query = $this->query($params);
+        return $query->get();
+    }
+
+    public function count(array $params){
+        $query = $this->query($params);
+        return $query->count();
+    }
 
-}
+    private function query(array $params){
+        $query = OracleBasSKU::query();
+        foreach ($params as $column => $value){
+            if (is_array($value))$query->whereIn($column,$value);
+            else $query->where($column,$value);
+        }
+        return $query;
+    }
+
+    public function getPiece(array $params,int $start, int $amount){
+        $sql = "SELECT * FROM (SELECT ROWNUM rn,d.* FROM BAS_SKU d WHERE 1=1";
+        foreach ($params as $column => $value){
+            if (is_array($value)){
+                if (count($value) < 1)return null;
+                $sql .= " AND ".$column." IN (";
+                foreach ($value as $i => $v){
+                    if ($i != 0)$sql .= ",";
+                    $sql .= "'".$v."'";
+                }
+                $sql .= ")";
+                continue;
+            }
+            $sql .= " AND ".$column." = '".$value."'";
+        }
+        $sql .= " ORDER BY addtime)WHERE rn>".$start." AND rn <= ".($start+$amount);
+        return DB::connection('oracle')->select(DB::raw($sql));
+    }
+}

+ 13 - 4
app/Services/OrderService.php

@@ -575,19 +575,27 @@ class OrderService
             $logistics_map[$key] =  $logistic;
         }
 
+        $logistic_change = Logistic::query()->where('name','自提')->first();
+        $owner_change = Owner::query()->where('name','安桥主品')->first();
+        $logistic_an_jie = Logistic::query()->where('name','新杰物流')->first();
+
         // XXX 循环 300 个元素 3s-5s
         foreach ($orderHeaders as $orderHeader) {
-            $customerid = $orderHeader->customerid;
-
-            $owner_key = 'code='.$customerid;
+            $owner_key = 'code='.$orderHeader->customerid;
             $owner = $owners_map[$owner_key];
 
             $shop_key = 'name='.$orderHeader->issuepartyname.' owner_id='.$owner->owner_id;
             $shop = $shop_map[$shop_key] ?? '';
 
-            $logistic_key = 'code='.$customerid;
+            $logistic_key = 'code='. $orderHeader->userdefine1;
             $logistic = $logistics_map[$logistic_key] ?? '';
 
+            // change logistic to 新杰物流
+            // $logistic 自提 and $owner 安桥主品
+            if($logistic_change->id == $logistic->id && $owner_change->id == $owner->id){
+                $logistic = $logistic_an_jie;
+            }
+
             $fillables[] = [
                 'code' => $orderHeader->orderno ,
                 'owner_id' => $owner->id ?? '',
@@ -604,6 +612,7 @@ class OrderService
                 'client_code' => $orderHeader->soreference1,
                 'wms_edittime' => $orderHeader->edittime,
             ];
+
         }
         try {
             if (count($fillables) > 0) {

+ 21 - 3
app/Services/OrderTrackingService.php

@@ -44,10 +44,14 @@ class OrderTrackingService
     {
         $query = $this->getQuery($params);
 
-
-        if ($params['client_code'] ?? false)    // 订单号
+        if (isset($params['client_code'])|| isset($params['logistic_id']))     // client_code logistic
             $query->whereHas('commodities.package.order', function ($query) use ($params) {
-                $query->where('client_code', $params['client_code']);
+                if($params['client_code'] ?? false){
+                    $query->where('client_code', $params['client_code']);
+                }
+                if(isset($params['logistic_id']) ){
+                    $query->where('logistic_id',$params['logistic_id']);
+                }
             });
 
         if ($params['client'] ?? false)  // 客户
@@ -302,4 +306,18 @@ class OrderTrackingService
             $batchUpdateService->batchUpdate('order_trackings', $multipleData);
         }
     }
+
+    public function updateOrderTracingAndSyc($id,$param,$value){
+        $order_tracking = OrderTracking::query()
+            ->with('commodities.package.order')
+            ->where('id', $id)
+            ->first();
+        $order_id = $order_tracking->commodities->package->order->id ?? false;
+        if(!$order_id){return ['success'=> false];}
+        $bool= OrderTracking::query()
+            ->whereHas('commodities.package.order', function ($query) use ($order_id) {
+                $query->where('id', $order_id);
+            })->update([$param=>$value]);
+        return ['success'=> $bool];
+    }
 }

+ 1 - 0
resources/sass/app.scss

@@ -4,6 +4,7 @@
 @import 'text';
 @import 'layout';
 @import 'effect';
+@import 'elements';
 
 // Bootstrap
 @import '~bootstrap/scss/bootstrap';

+ 6 - 0
resources/sass/elements.scss

@@ -0,0 +1,6 @@
+input[type=checkbox]
+{
+    width:17px;
+    height:17px;
+    opacity:0.85;
+}

+ 7 - 0
resources/sass/layout.scss

@@ -44,6 +44,7 @@ table,table.table-striped tbody{
         &.table-header-layer-1:nth-child(4){
             background: #aaeace;
         }
+
     }
     th{
         &.td-warm{
@@ -58,6 +59,9 @@ table,table.table-striped tbody{
         &.td-yellow{
             background: #f8eea0;
         }
+        &.td-calm{
+            background: #c6d8e3;
+        }
     }
     td,tr:nth-of-type(odd){
         &.td-warm{
@@ -72,6 +76,9 @@ table,table.table-striped tbody{
         &.td-yellow{
             background: #fcfaec;
         }
+        &.td-calm{
+            background: #ddeffa;
+        }
     }
 
     tr:nth-child(even) td, tr:nth-child(even){

+ 1 - 1
resources/views/layouts/app.blade.php

@@ -10,7 +10,7 @@
     <title>@yield('title') {{ config('app.name', '宝时WAS') }}</title>
     @yield('head')
     <!-- Styles -->
-    <link href="{{ asset('css/app200901.css') }}" rel="stylesheet">
+    <link href="{{ asset('css/app200923.css') }}" rel="stylesheet">
 </head>
 <body>
 <div id="app">

+ 4 - 0
resources/views/maintenance/commodity/index.blade.php

@@ -128,10 +128,14 @@
                             return true;
                         }
                     });
+                    window.tempTip.setIndex(1099);
+                    window.tempTip.setDuration(9999999);
+                    window.tempTip.waitingTip("处理中(如若数据量过多,因需要逐条对比矫正耗时较长,请耐心等候)。。。");
                     axios.post('{{url('maintenance/commodity/syncWMS')}}',{owner_code : this.owner_code, owner_id : owner_id})
                         .then(res => {
                             if (res.data.success){
                                 tempTip.setDuration(2000);
+                                tempTip.cancelWaitingTip();
                                 tempTip.setIndex(1099);
                                 tempTip.showSuccess("同步成功");
                                 return true;

+ 5 - 4
resources/views/order/index/delivering.blade.php

@@ -27,7 +27,7 @@
                         <span class="btn btn-sm tooltipTarget ml-2" @click="freezeAll" style="cursor: pointer" title="订单的冻结条件要只局限在“创建订单”,“分配完成”,“拣货完成”,“播种完成”"
                               :class="[checkData.length>0?'btn-dark':'btn-outline-dark']">冻结</span>
                         <button type="button" @click="thaw(checkData,true)" class="btn btn-sm tooltipTarget" title="解除已冻结订单"
-                                :class="[checkData.length>0?'btn-dark':'btn-outline-danger']">解冻</button>
+                                :class="[checkData.length>0?'btn-dark':'btn-outline-danger']" style="opacity: 0.7">解冻</button>
                         <span class="btn btn-sm tooltipTarget ml-2" @click="deAllocationAll" style="cursor: pointer"  title="订单的取消分配条件要只局限在“分配完成”或“部分分配”"
                               :class="[checkData.length>0?'btn-dark':'btn-outline-dark']">取消分配</span>
                         <button type="button" @click="resetLogisticsGetMark()" class="btn btn-sm "
@@ -35,8 +35,9 @@
                     @endcan
                     @can('订单管理-订单问题件生成')<button  @click="orderIssueTag()" type="button" class="btn btn-sm ml-2 btn-outline-primary "
                                                  :class="[checkData.length>0?'btn-dark':'btn-outline-primary']">标记问题件</button>@endcan
-                    @can('订单管理-订单-退货单生成')
-                        <button class="btn btn-sm ml-2" :class="[checkData.length>0?'btn-dark':'btn-outline-danger']" @click="isRejectedBillExist()">退货单生成</button>
+                    @can('订单管理-订单-生成退货单')
+                        <button class="btn btn-sm ml-2" :class="[checkData.length>0?'btn-dark':'btn-outline-danger']" @click="isRejectedBillExist()"
+                            style="opacity: 0.7">生成退货单</button>
                     @endcan
                 </div>
                 <div class="modal fade " style="top: 20%" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
@@ -705,7 +706,7 @@
                         .then(res=>{
                             if (res.data.success){
                                 tempTip.setDuration(2000);
-                                tempTip.showSuccess("退货单生成成功!");
+                                tempTip.showSuccess("生成退货单成功!");
                             }else{
                                 tempTip.setDuration(3000);
                                 tempTip.show(res.data.data);

+ 70 - 55
resources/views/order/tracking/index.blade.php

@@ -52,96 +52,96 @@
                             <input id="all" type="checkbox" @click="checkAll($event)"/>
                         </th>
                         <th>序号</th>
-                        <th style="min-width: 75px">公司</th>
-                        <th>订单号</th>
-                        <th style="min-width: 120px">WEB+订单号</th>
-                        <th style="min-width: 120px"> 提货日期</th>
-                        <th style="min-width: 120px">销售</th>
-                        <th style="min-width: 120px">客户</th>
-                        <th>SKU</th>
-                        <th style="min-width: 120px">物料描述</th>
-                        <th>数量</th>
-                        <th style="min-width: 120px">订单备注</th>
-                        <th>重量</th>
-                        <th>体积m³</th>
-                        <th style="min-width: 120px">托盘合计</th>
-                        <th style="min-width: 120px">运输方式</th>
-                        <th>运输单号</th>
-                        <th style="min-width: 120px">到达城市</th>
-                        <th style="min-width: 200px">应送达时间</th>
-                        <th style="min-width: 120px">是否赶上卡班</th>
-                        <th style="min-width: 120px">到货情况</th>
-                        <th style="min-width: 200px">签收日期</th>
-                        <th style="min-width: 120px">签收单情况</th>
-                        <th style="min-width: 120px">备注</th>
+                        <th class="td-warm" style="min-width: 75px">公司</th>
+                        <th class="td-warm">订单号</th>
+                        <th class="td-warm" style="min-width: 120px">WEB+订单号</th>
+                        <th class="td-warm" style="min-width: 120px"> 提货日期</th>
+                        <th class="td-warm" style="min-width: 120px">销售</th>
+                        <th class="td-yellow" style="min-width: 120px">客户</th>
+                        <th class="td-yellow">SKU</th>
+                        <th class="td-yellow" style="min-width: 120px">物料描述</th>
+                        <th class="td-yellow">数量</th>
+                        <th class="td-yellow" style="min-width: 120px">订单备注</th>
+                        <th class="td-yellow">重量</th>
+                        <th class="td-yellow">体积m³</th>
+                        <th class="td-yellow" style="min-width: 120px">托盘合计</th>
+                        <th class="td-yellow" style="min-width: 120px">运输方式</th>
+                        <th class="td-yellow">运输单号</th>
+                        <th class="td-yellow" style="min-width: 120px">到达城市</th>
+                        <th class="td-calm" style="min-width: 200px">应送达时间</th>
+                        <th class="td-calm" style="min-width: 120px">是否赶上卡班</th>
+                        <th class="td-calm" style="min-width: 120px">到货情况</th>
+                        <th class="td-calm" style="min-width: 200px">签收日期</th>
+                        <th class="td-calm" style="min-width: 120px">签收单情况</th>
+                        <th class="td-calm" style="min-width: 120px">备注</th>
                     </tr>
                     <tr v-for="(trackOrder,index) in trackOrders" class="table-body text-center"  :key="trackOrder.id">
                         <td>
                             <input id="all" type="checkbox" :value="trackOrder.id" v-model="checkData">
                         </td>
                         <td>@{{ index+1 }}</td>
-                        <td class="text-decoration-none">@{{ trackOrder.ownerName }}</td>
-                        <td>@{{ trackOrder.orderClientCode }}</td>
-                        <td>
+                        <td  class="text-decoration-none td-warm">@{{ trackOrder.ownerName }}</td>
+                        <td class="td-warm">@{{ trackOrder.orderClientCode }}</td>
+                        <td class="td-warm">
                             @can('订单管理-跟踪-仓库编辑')
                                 <input class="form-control form-control-sm" :value="trackOrder.web_order_number" @keydown.enter="warehouseUpdate($event,'web_order_number',trackOrder)" >
                             @else
                                 @{{ trackOrder.web_order_number }}
                             @endcan
                         </td>
-                        <td>
+                        <td class="td-warm">
                             @can('订单管理-跟踪-仓库编辑')
                                 <input class="form-control form-control-sm" type="datetime-local" :value="trackOrder.pick_up_at | dateTime" @change="warehouseUpdate($event,'pick_up_at',trackOrder)" >
                             @else
                                 @{{ trackOrder.pick_up_at }}
                             @endcan
                         </td>
-                        <td>
+                        <td class="td-warm">
                             @can('订单管理-跟踪-仓库编辑')
-                                <input class="form-control form-control-sm" :value="trackOrder.sale" @change="warehouseUpdate($event,'sale',trackOrder)" >
+                                <input class="form-control form-control-sm" :value="trackOrder.sale" @keydown.enter="warehouseUpdate($event,'sale',trackOrder)" >
 
                             @else
                                 @{{ trackOrder.sale }}
                             @endcan
                         </td>
-                        <td>
+                        <td class="td-yellow">
                             @can('订单管理-跟踪-仓库编辑')
-                                <input class="form-control form-control-sm" :value="trackOrder.client" @change="warehouseUpdate($event,'client',trackOrder)" >
+                                <input class="form-control form-control-sm" :value="trackOrder.client" @keydown.enter="warehouseUpdate($event,'client',trackOrder)" >
                             @else
                                 @{{ trackOrder.client }}
                             @endcan
                         </td>
-                        <td>@{{ trackOrder.sku.sku }}</td>
-                        <td>@{{ trackOrder.sku.skuName }}</td>
-                        <td>@{{ trackOrder.sku.skuAmount }}</td>
-                        <td>
+                        <td class="td-yellow">@{{ trackOrder.sku.sku }}</td>
+                        <td class="td-yellow">@{{ trackOrder.sku.skuName }}</td>
+                        <td class="td-yellow">@{{ trackOrder.sku.skuAmount }}</td>
+                        <td class="td-yellow">
                             @can('订单管理-跟踪-仓库编辑')
-                                <input class="form-control form-control-sm" :value="trackOrder.order_remark" @change="warehouseUpdate($event,'order_remark',trackOrder)" >
+                                <input class="form-control form-control-sm" :value="trackOrder.order_remark" @keydown.enter="warehouseUpdate($event,'order_remark',trackOrder)" >
                             @else
-                                @{{ trackOrder.client }}
+                                @{{ trackOrder.order_remark }}
                             @endcan
                         </td>
-                        <td>@{{ trackOrder.packageWeight }}</td>
-                        <td>@{{ trackOrder.packageBulk |millimeterToCubic}}</td>
-                        <td>
+                        <td class="td-yellow">@{{ trackOrder.packageWeight }}</td>
+                        <td class="td-yellow">@{{ trackOrder.packageBulk |millimeterToCubic}}</td>
+                        <td class="td-yellow">
                             @can('订单管理-跟踪-仓库编辑')
-                                <input class="form-control form-control-sm" :value="trackOrder.order_remark" @change="displayInput($event,'order_remark',trackOrder)" >
+                                <input class="form-control form-control-sm" :value="trackOrder.pallet_total" @keydown.enter="warehouseUpdate($event,'pallet_total',trackOrder)" >
                             @else
                                 @{{ trackOrder.pallet_total }}
                             @endcan
                         </td>
-                        <td>@{{ trackOrder.packageLogistic }}</td>
-                        <td>@{{ trackOrder.packageLogisticNumber}}</td>
-                        <td>@{{ trackOrder.orderCity}}</td>
+                        <td class="td-yellow">@{{ trackOrder.packageLogistic }}</td>
+                        <td class="td-yellow">@{{ trackOrder.packageLogisticNumber}}</td>
+                        <td class="td-yellow">@{{ trackOrder.orderCity}}</td>
 
-                        <td>
+                        <td class="td-calm">
                             @can('订单管理-跟踪-物流公司编辑')
                                 <input class="form-control form-control-sm" type="datetime-local"  @change="logisticUpdate($event,'planning_sent_at',trackOrder)"  :value="trackOrder.planning_sent_at | dateTime" >
                             @else
                                 @{{ trackOrder.planning_sent_at }}
                             @endcan
                         </td>
-                        <td>
+                        <td class="td-calm">
                             @can('订单管理-跟踪-物流公司编辑')
                                 <select class="form-control form-control-sm" :value="trackOrder.is_on_duty_shift" @change="logisticUpdate($event,'is_on_duty_shift',trackOrder)" >
                                     <option v-for="item in isOnDutyShift" :value="item">@{{ item }}</option>
@@ -150,16 +150,16 @@
                                 @{{ trackOrder.is_on_duty_shift }}
                             @endcan
                         </td>
-                        <td>
+                        <td class="td-calm">
                             @can('订单管理-跟踪-物流公司编辑')
-                                <select class="form-control form-control-sm" :value="trackOrder.is_arrival" @change="logisticUpdate($event,'is_arrival',trackOrder)" :data_value="trackOrder.id">
+                                <select class="form-control form-control-sm" :value="trackOrder.is_arrival" @change="logisticUpdate($event,'is_arrival',trackOrder)" >
                                     <option v-for="item in isArrival" :value="item">@{{ item }}</option>
                                 </select>
                             @else
                                 @{{ trackOrder.is_arrival }}
                             @endcan
                         </td>
-                        <td>
+                        <td class="td-calm">
                             @can('订单管理-跟踪-物流公司编辑')
                                 <input class="form-control form-control-sm" type="date"  @change="logisticUpdate($event,'signed_at',trackOrder)" :value="trackOrder.signed_at">
                             @else
@@ -168,14 +168,14 @@
                         </td>
                         <td>
                             @can('订单管理-跟踪-物流公司编辑')
-                                <input class="form-control form-control-sm" @keyup.enter="warehouseUpdate($event,'receive_bill_status',trackOrder)" :value="trackOrder.receive_bill_status">
+                                <input class="form-control form-control-sm" @keyup.enter="logisticUpdate($event,'receive_bill_status',trackOrder)" :value="trackOrder.receive_bill_status">
                             @else
                                 @{{ trackOrder.receive_bill_status }}
                             @endcan
                         </td>
                         <td>
                             @can('订单管理-跟踪-物流公司编辑')
-                                <input class="form-control form-control-sm" @keyup.enter="warehouseUpdate($event,'remark',trackOrder)" :value="trackOrder.remark">
+                                <input class="form-control form-control-sm" @keyup.enter="logisticUpdate($event,'remark',trackOrder)" :value="trackOrder.remark">
                             @else
                                 @{{ trackOrder.remark }}
                             @endcan
@@ -229,6 +229,10 @@
                     @foreach($owners as $owner)
                     {name: '{{ $owner->id }}', value: '{{ $owner->name}}'},
                     @endforeach],
+                logistics:[
+                    @foreach($logistics as $logistic)
+                    {name: '{{ $logistic->id }}', value: '{{ $logistic->name}}'},
+                    @endforeach],
                 checkData:[],
                 seekOwners : [],
                 name : "",
@@ -265,6 +269,7 @@
                     [
                         {name:'end_at',type:'dateTime',tip:'结束日期',placeholder: '结束日期'},
                         {name:'logistic_number',type:'input',tip:'运输单号',placeholder:'运输单号'},
+                        {name:'logistic_id',type:'select',tip:'物流方式',placeholder:'物流方式',data:this.logistics},
                         {name:'sku',type:'input',tip:'SKU',placeholder: '商品编号'},
                     ]
                 ];
@@ -356,11 +361,12 @@
                         return
                     }
                     let data = {id:trackingOrder.id,param:param,value:value}
-                    axios.post('{{url("apiLocal/order/tracking/warehouseUpdate")}}',data).then(function(res){
-                        if(res.data.success){
+                    let _this = this
+                    axios.post('{{url("apiLocal/order/tracking/warehouseUpdate")}}',data).then(function(response){
+                        if(response.data.success){
                             tempTip.setDuration(2000)
                             tempTip.showSuccess('更新成功')
-                            trackingOrder[param] = value
+                            _this.modifyOrderTracking(param,value,trackingOrder)
                         }else{
                             tempTip.setDuration(2000)
                             tempTip.show('更新失败')
@@ -376,14 +382,15 @@
                         return
                     }
                     let data = {id:trackingOrder.id,param:param,value:value}
+                    let _this = this
                     axios.post('{{url("apiLocal/order/tracking/logisticUpdate")}}',data).then(function(response){
                         if(response.data.success){
                             tempTip.setDuration(2000)
                             tempTip.showSuccess('更新成功')
+                            _this.modifyOrderTracking(param,value,trackingOrder)
                         }else{
                             tempTip.setDuration(2000)
                             tempTip.show('更新失败')
-                            trackingOrder[param] = value
                         }
                     }).catch(function(error){
                         tempTip.setDuration(4000)
@@ -391,6 +398,13 @@
                     })
 
                 },
+                modifyOrderTracking(param,value, trackingOrder){
+                    this.trackOrders.forEach(function(item){
+                        if(item['orderClientCode'] === trackingOrder['orderClientCode']){
+                            item[param] = value
+                        }
+                    })
+                },
                 getTrackOrder(id){
                     return this.trackOrders.filter(function(trackOrder){
                         return parseInt(id) === trackOrder['id'];
@@ -400,7 +414,7 @@
                     this.trackOrders.forEach(function(trackOrder){
                         if(parseInt(data['id']) === trackOrder['id'] ){
                             trackOrder[data['param']] = data['value'];
-                            return;
+                            return
                         }
                     });
                 },
@@ -420,6 +434,7 @@
                     let token = '{{ csrf_token() }}';
                     excelExport(true, this.checkData, url, null, token);
                 },
+
             },
             filters:{
                 millimeterToCubic:function(val){

+ 4 - 2
resources/views/store/checkingReceive/mission.blade.php

@@ -12,13 +12,15 @@
     <div class="modal fade" id="import" tabindex="-1" role="dialog" aria-hidden="true">
         <div class="modal-dialog modal-dialog-centered modal-lg" role="document">
             <div class="modal-content">
-                <div class="modal-body" style="text-align:center;height: 150px">
+                <div class="modal-body" style="text-align:center;height: 200px">
                     <button type="button" id="popover" class="btn btn-danger"
                             data-container="body" data-toggle="popover" data-placement="bottom"
                             :data-content="popoverContent" data-html="true">
                         部分数据导入失败
                     </button>
-                    <div class="mt-5">
+                    <div class="mt-3">
+                        <label class="text-muted">表头字段示意(蓝色为必填项):</label><br>
+                        <label><b class="text-primary">货主</b>,SKU,商品名称,<b class="text-primary">条码</b>,<b class="text-primary">数量</b>,生产日期,失效日期,批号,唯一码</label><br>
                         <label>
                             <input name="file" hidden type="file" class="col-5" id="excelFile" @change="getFile($event)"
                                    accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel">

+ 1 - 1
webpack.mix.js

@@ -12,7 +12,7 @@ const mix = require('laravel-mix');
  */
 
 mix.js('resources/js/app.js', 'public/js/app200922.js')
-    .sass('resources/sass/app.scss', 'public/css/app200901.css');
+    .sass('resources/sass/app.scss', 'public/css/app200923.css');
 mix.copy('resources/sass/fonts/','public/fonts');
 mix.copy('resources/icon','public/icon');
 mix.copy('resources/images','public/images');