Bläddra i källkod

订单跟踪件 重量体积
已解决不能新增处理的处理结果字段
问题件 修改

ajun 5 år sedan
förälder
incheckning
8554d980ef

+ 16 - 0
app/Http/Controllers/OrderIssueController.php

@@ -13,6 +13,7 @@ use App\Owner;
 use App\QualityLabel;
 use App\RejectedBill;
 use App\Services\LogService;
+use App\Services\OrderIssueProcessLogService;
 use App\Services\OrderIssueService;
 use App\Services\OwnerService;
 use App\Shop;
@@ -429,4 +430,19 @@ class OrderIssueController extends Controller
             'id_logistic_return'=> '退回单号承运商',
         ]);
     }
+
+    public function endOrderIssuesApi(Request $request)
+    {
+        if (!Gate::allows('订单管理-问题件-编辑')) {
+            return ['success'=>false,'fail_info' => '没有对应权限'];
+        }
+        $orderIssue_ids = $request->input('ids');
+        $bool = app(OrderIssueProcessLogService::class)->isExistOrderIssueTypeIsEnd($orderIssue_ids);
+        if($bool)return ['success'=>true,'fail_info'=> '需要完结的订单问题件重已有完结的订单问题件'];
+        $bool = app(OrderIssueService::class)->endOrderIssues($orderIssue_ids);
+        if($bool == 0) return ['success'=>false,'fail_info' => '操作失败'];
+        $params = ['ids'=>$orderIssue_ids,'content'=>'完结订单','type'=>'结束'];
+        $logs = app(OrderIssueProcessLogService::class)->create($params);
+        return ['success'=>true,'logs'=>$logs];
+    }
 }

+ 30 - 20
app/Http/Controllers/TestController.php

@@ -495,12 +495,6 @@ class TestController extends Controller
 
     public function test3()
     {
-////        dd(bcmul(0.3,0.3,5));
-//        $logistic = Logistic::query()->where('code','XJWL')->first();
-//        if(!$logistic){
-//            Logistic::query()->create(['code'=>'XJWL','name'=>'新杰物流']);
-//        }
-
         /** @var DataHandlerService $dataHandlerService */
         $dataHandlerService = app(DataHandlerService::class);
         /** @var OrderTrackingService $orderTrackingService */
@@ -513,9 +507,8 @@ class TestController extends Controller
 //        $startDate = \Illuminate\Support\Carbon::parse('2020-05-06 13:16:51')->toDateTimeString();
         //$orderTrackingService->trackingWmsOrder($startDate);
         $owners = app(OrderTrackingOwnerService::class)->getTrackingOrderOwner();
-        $startDate = \Illuminate\Support\Carbon::parse('2020-09-25 00:00:00')->toDateTimeString();
-//        $endData = \Illuminate\Support\Carbon::parse('2020-09-26 00:00:00')->toDateTimeString();
-        $endData = \Illuminate\Support\Carbon::parse('2020-09-26 00:00:00')->toDateTimeString();
+        $startDate = \Illuminate\Support\Carbon::parse('2020-09-26 00:00:00')->toDateTimeString();
+//        $endData = \Illuminate\Support\Carbon::parse('2020-09-29 00:00:00')->toDateTimeString();
         $orderHeaders = OracleDOCOrderHeader::query()
             ->with(['oracleDOCOrderDetails', 'actAllocationDetails','oracleBASCode'])
             ->where('addTime','>=',$startDate)
@@ -541,8 +534,6 @@ class TestController extends Controller
 //            ->where('addTime','<=',$endData)
             ->whereIn('customerID',data_get($owners,'*.code'))
             ->get();
-        dd($orderHeaders);
-
     }
 
 //    public function syncWmsOrder(){
@@ -670,16 +661,35 @@ class TestController extends Controller
     }
 
     public function updateOrderTracking(){
-        $orderTrackings = OrderTracking::query()->with('commodities.package.order')->get();
-        foreach ($orderTrackings as $orderTracking) {
-            if(!$orderTracking->web_order_number){
-                $order = $orderTracking->commodities->package->order;
-                $client_code = $order->client_code;
-                if(preg_match('/^O[\d]/',$client_code ?? '') > 0){
-                    OrderTracking::query()->where('id',$orderTracking->id)->update(['web_order_number'=>$client_code]);
-                }
+        $orderTrackings = OrderTracking::query()->with('commodities.package.order')
+            ->whereHas('commodities.package.order',function($query){
+                $query->where('client_code','O2009027827');
+            })
+            ->where('created_at','>','2020-09-28 00:07:06')->first();
+        $order = $orderTrackings->commodities->package->order;
+        $client_code = $order->client_code;
+        if(preg_match('/^O[\d]/',$client_code ?? '') > 0){
+                    OrderTracking::query()->where('id',$orderTrackings->id)->update(['web_order_number'=>$client_code]);
             }
-        }
     }
 
+    public function updateOrderTrackingGrossWeightAndBulk(){
+        $orderTrackings = OrderTracking::query()->with('commodities.package.order.owner','commodities.commodity')
+            ->where('created_at','>','2020-09-28 00:07:06')->get();
+        foreach ($orderTrackings as $orderTracking) {
+            $code = $orderTracking->commodities->package->order->owner->code ?? false;
+            $amount = $orderTracking->commodities->amount;
+            if(!$code){continue;}
+            $commodity = $orderTracking->commodities->commodity;
+            $basSku =  OracleBasSKU::query()->where('CustomerID',$code)->where('SKU',$commodity->sku)->first();
+            $gross_weight = null;
+            $bulk = null;
+            $gross_weight = round($basSku->cube * $amount,3);
+            $bulk = round($basSku->grossweight * $amount,3);
+           if($orderTracking->gross_weight!= $gross_weight ||$orderTracking->bulk!= $bulk ){
+                OrderTracking::query()->where('id',$orderTracking->id)->update(['gross_weight'=>$gross_weight,'bulk'=>$bulk]);
+           }
+        }
+
+    }
 }

+ 1 - 1
app/OrderIssue.php

@@ -12,7 +12,7 @@ class OrderIssue extends Model
 
     protected $fillable = [
         'order_id', 'created_at', 'rejected_bill_id', 'rejecting_status', 'result_explain','logistic_number_return',
-        'situation_explain', 'order_issue_type_id', 'second_order_id', 'is_new_rejecting',
+        'situation_explain', 'order_issue_type_id', 'second_order_id', 'is_new_rejecting','settlement_at',
         'final_status', 'logistic_indemnity_money', 'logistic_express_remission', 'baoshi_indemnity_money', 'baoshi_express_remission', 'user_workgroup_id'];
 
     protected $appends = [

+ 1 - 1
app/OrderTracking.php

@@ -14,7 +14,7 @@ class OrderTracking extends Model
         'pick_up_at','sale','client',
         'order_remark','pallet_total','planning_sent_at',
         'is_on_duty_shift','is_arrival','signed_at',
-        'receive_bill_status','remark'];
+        'receive_bill_status','remark','gross_weight','bulk'];
 
     protected $appends =[
         'ownerName','sku','packageWeight','packageBulk','orderCity','packageLogisticNumber','packageLogistic','orderClientCode'

+ 8 - 0
app/Services/OracleBasSkuService.php

@@ -54,4 +54,12 @@ Class OracleBasSkuService
         $sql .= " ORDER BY addtime)WHERE rn>".$start." AND rn <= ".($start+$amount);
         return DB::connection('oracle')->select(DB::raw($sql));
     }
+
+    public function 获取BasSKu_通过WMSOrderHeaders($orderHeaders){
+        if(!$orderHeaders){return null;}
+        $customer_Ids = array_unique(data_get($orderHeaders,'*.customerid'));
+        $sku_s = array_unique(data_get($orderHeaders,'*.oracleDOCOrderDetails.*.sku'));
+        if(!$customer_Ids || !$sku_s){return null;}
+        return OracleBasSKU::query()->whereIn('customerid',$customer_Ids)->whereIn('sku',$sku_s)->get();
+    }
 }

+ 15 - 0
app/Services/OrderIssueProcessLogService.php

@@ -21,4 +21,19 @@ class OrderIssueProcessLogService
         return $logs;
     }
 
+    public function create(array  $params)
+    {
+        $ids = $params['ids'];
+        $content = $params['content'];
+        $user_id = Auth::user()['id'];
+        $logs = [];
+        foreach ($ids as $id) {
+            $logs[] = OrderIssueProcessLog::query()->create(['order_issue_id' => $id, 'content' => $content, 'user_id' => $user_id, 'type' => $params['type']]);
+        }
+        return OrderIssueProcessLog::query()->with('user')->whereIn('id',data_get($logs,'*.id'))->get();
+    }
+
+    public function isExistOrderIssueTypeIsEnd($ids){
+        return OrderIssueProcessLog::query()->whereIn('order_issue_id',$ids)->where('type','结束')->count() > 0;
+    }
 }

+ 19 - 3
app/Services/OrderIssueService.php

@@ -47,14 +47,17 @@ class OrderIssueService
         });
         if($arr['log_content'] ?? false){
             $query->whereHas('logs',function($query) use ($arr){
-                $query->where('content','like',$arr['log_content']);
+                $query->where('content','like','%'. $arr['log_content'].'%');
                 if($arr['addtime'] ?? false){
                     $query->where('created_at','>=', Carbon::now()->subDays($arr['addtime']));
                 }else{
-                    $query->where('created_at','>=', Carbon::now()->subDays(31));
+                    $query->where('created_at','>=', Carbon::now()->subDays(15));
                 }
             });
         }
+        if(isset($arr['is_new_rejecting'])){
+            $query->where('is_new_rejecting','=',$arr['is_new_rejecting']);
+        }
         $query->selectRaw('order_issues.* ,order_issue_on_tops.id top_id ,order_issue_on_tops.remark,order_issue_on_tops.updated_at top_update')
             ->leftJoin('order_issue_on_tops', 'order_issue_on_tops.order_issue_id', '=', 'order_issues.id')
             ->whereNull('order_issue_on_tops.deleted_at')
@@ -87,7 +90,8 @@ class OrderIssueService
                         return $this->searchWay($query,$arr['good_barcode'],'sku');
                     }
                     if ($arr['good_name'] ?? false) {
-                        $query->where('name','like', $arr['good_name']);
+//                        $query->select("instr('commodity.name','".$arr['good_name']."')",'>','0');
+                        $query->where('name','like', '%'.$arr['good_name'].'%');
                     }
                 });
             }
@@ -114,6 +118,7 @@ class OrderIssueService
                 }
             });
         }
+
         return $query;
     }
 
@@ -163,6 +168,12 @@ class OrderIssueService
             }
             $query->whereIn('order_issues.id', $orderIssuesId);
         }
+        if(isset($condition['settlement_at_start'])){
+            $query->where('settlement_at','>=',$condition['settlement_at_start'].' 00:00:00');
+        }
+        if(isset($condition['settlement_at_end'])){
+            $query->where('settlement_at','<=',$condition['settlement_at_end']. ' 23:59:59');
+        }
 
         return $query;
     }
@@ -440,4 +451,9 @@ class OrderIssueService
             }
         }
     }
+
+    public function endOrderIssues(array $ids)
+    {
+        return OrderIssue::query()->whereIn('id',$ids)->update(['final_status'=>'已解决','settlement_at'=>Carbon::now()]);
+    }
 }

+ 21 - 23
app/Services/OrderPackageCommoditiesService.php

@@ -403,11 +403,10 @@ class OrderPackageCommoditiesService
         return $orderPackagerCommodities;
     }
 
-    public function createByWmsOrder($orderHeaders,$order_packages,$owner_code_map,$commodities)
+    public function createByWmsOrder($orderHeaders,$owner_code_map,$commodities)
     {
-        if(!$order_packages){ return [];}
-        if(!$order_packages){ return [];}
         if(!$orderHeaders){ return [];}
+        $order_packages = app(OrderPackageService::class)->getByWmsOrders($orderHeaders);
         $order_packages_logistic_number_map = [];
         $commodity_owner_id_sku_map = [];
         foreach ($order_packages as $order_package) {
@@ -445,25 +444,25 @@ class OrderPackageCommoditiesService
                 $insert_params = array_merge($insert_params,$params);
                 unset($params);
             }
-            $oracleDOCOrderDetails = $orderHeader->oracleDOCOrderDetails;
-            if(count($logistic_numbers) ==0 && $oracleDOCOrderDetails->count() > 0){
-                $logistic_number = $orderHeader->soreference5;
-                $params = $this->getParamsByOracleDOCOrderDetail($oracleDOCOrderDetails,
-                    $order_packages_logistic_number_map,
-                    $owner_code_map,
-                    $commodity_owner_id_sku_map,
-                    $logistic_number
-                );
-                foreach ($params as $key =>$param) {
-                    $mapkey =  ' commodity_id='.($param['commodity_id'] ?? '').' order_package_id'.($param['order_package_id'] ?? '').' amount='.($param['amount'] ?? '');
-                    if($map[$mapkey] ?? false){
-                        array_shift($map[$mapkey]);
-                        unset($params[$key]);
-                    }
-                }
-                $insert_params = array_merge($insert_params,$params);
-                unset($params);
-            }
+//            $oracleDOCOrderDetails = $orderHeader->oracleDOCOrderDetails;
+//            if(count($logistic_numbers) ==0 && $oracleDOCOrderDetails->count() > 0){
+//                $logistic_number = $orderHeader->soreference5;
+//                $params = $this->getParamsByOracleDOCOrderDetail($oracleDOCOrderDetails,
+//                    $order_packages_logistic_number_map,
+//                    $owner_code_map,
+//                    $commodity_owner_id_sku_map,
+//                    $logistic_number
+//                );
+//                foreach ($params as $key =>$param) {
+//                    $mapkey =  ' commodity_id='.($param['commodity_id'] ?? '').' order_package_id'.($param['order_package_id'] ?? '').' amount='.($param['amount'] ?? '');
+//                    if($map[$mapkey] ?? false){
+//                        array_shift($map[$mapkey]);
+//                        unset($params[$key]);
+//                    }
+//                }
+//                $insert_params = array_merge($insert_params,$params);
+//                unset($params);
+//            }
         }
         $order_packages_commodities= [];
         if(count($insert_params) > 0){
@@ -475,7 +474,6 @@ class OrderPackageCommoditiesService
 
     public function getParamsByActAllocationDetails($details,array $order_packages_logistic_number_map,array $owner_code_map,array $commodity_owner_id_sku_map,array $logistic_numbers){
         if(!$details){return [];}
-
         $fillables = [];
         $create_at = Carbon::now()->format('Y-m-d H:i:s');
         foreach ($details as $actAllocationDetail) {

+ 17 - 11
app/Services/OrderPackageService.php

@@ -372,7 +372,16 @@ class OrderPackageService
             if(!$orderHeader){ continue;}
             $params = $this->getParamsByOrderHeader($orderHeader,$order,$order_packages_logistic_number_map);
             if(!$params){continue;}
-            $insert_params[] = $params;
+
+//            $insert_params[] = $params;
+            foreach ($params as $param) {
+                $key =  ' order_id='.$param['order_id'].' logistic_number='.$param['logistic_number'];
+                if(isset($order_packages_logistic_number_map[$key])){
+                    continue;
+                }else{
+                    $insert_params[] = $param;
+                }
+            }
         }
         if(count($insert_params)>0){
             $order_packages = $this->create($insert_params);
@@ -390,14 +399,12 @@ class OrderPackageService
         foreach ($owners as $owner) {
             $owner_code_map[$owner->code] = $owner;
         }
-        $order_package_commodities = $orderPackageCommodityService->createByWmsOrder($orderHeaders_map,$order_packages,$owner_code_map,$commodities);
+        $order_package_commodities = $orderPackageCommodityService->createByWmsOrder($orderHeaders_map,$owner_code_map,$commodities);
         unset($orderHeaders_map,$orders_code_map,$fillables,$order_packages_logistic_number_map);
-        $this->updateWeightAndBulk($order_packages,$order_package_commodities);
+//        $this->updateWeightAndBulk($order_packages,$order_package_commodities);
         unset($order_packages,$order_package_commodities);
     }
 
-
-
     public function getParamsByOrderHeader($orderHeader,$order,$order_packages_logistic_number_map){
         $actAllocationDetails = $orderHeader->actAllocationDetails;
         $logistic_numbers = array_diff(array_unique(data_get($actAllocationDetails,'*.picktotraceid')),['','*',null]);
@@ -518,12 +525,11 @@ class OrderPackageService
             })->get();
 
         $order_package_ids = data_get($order_packages,'*.id');
-        $order_package_commodities = OrderPackageCommodities::query()
-            ->with('package')
-            ->whereHas('package',function($query) use ($order_package_ids){
-                $query->whereIn('id',$order_package_ids);
-            })->get();
-        $this->updateWeightAndBulk($order_packages,$order_package_commodities);
+//        $order_package_commodities = OrderPackageCommodities::query()->with('package')
+//            ->whereHas('package',function($query) use ($order_package_ids){
+//                $query->whereIn('id',$order_package_ids);
+//            })->get();
+//        $this->updateWeightAndBulk($order_packages,$order_package_commodities);
     }
 
     public function getLogisticNumbersByOrderHeader($orderHeader){

+ 45 - 17
app/Services/OrderTrackingService.php

@@ -7,6 +7,7 @@ use App\OracleDOCOrderHeader;
 use App\OrderPackageCommodities;
 use App\OrderTracking;
 use App\Services\common\BatchUpdateService;
+use App\Services\common\DataHandlerService;
 use App\Services\common\QueryService;
 use Illuminate\Support\Facades\Auth;
 use Maatwebsite\Excel\Facades\Excel;
@@ -149,7 +150,6 @@ class OrderTrackingService
     }
 
     public function 根据订单生成订单跟踪($orderHeaders, $orders)
-
     {
         $orderPackages = [];
         $orderPackageCommodities = [];
@@ -366,12 +366,21 @@ class OrderTrackingService
     public function createByWmsOrderHeader($orderHeaders)
     {
         if(!$orderHeaders){return;}
+        /** @var DataHandlerService $dataService */
+        $dataService = app(DataHandlerService::class);
+
+        $owners = app(OwnerService::class)->getByWmsOrders($orderHeaders);
+        $owner_id_map = $basSKUs_data = $dataService->dataHeader(['id'],$owners);
+
+        $BasSKUs = app(OracleBasSkuService::class)->获取BasSKu_通过WMSOrderHeaders($orderHeaders);
+        $BasSKUs_code_sku_map = $dataService->dataHeader(['customerid','sku'],$BasSKUs);
+
         $order_nos = data_get($orderHeaders,'*.orderno');
-        $order_package_commodities  = OrderPackageCommodities::query()
-            ->with('package.order')
+        $order_package_commodities  = OrderPackageCommodities::query()->with('package.order','commodity')
             ->whereHas('package.order',function($query) use ($order_nos){
                 $query->whereIn('code',$order_nos);
             })->get();
+
         $order_package_commodities_ids = data_get($order_package_commodities,'*.id');
         $order_trackings = OrderTracking::query()->whereIn('order_package_commodity_id',$order_package_commodities_ids)->get();
         $is_exist_ids = data_get($order_trackings,'*.order_package_commodity_id');
@@ -380,14 +389,12 @@ class OrderTrackingService
             $id = $item->id;
             return !in_array($id,$is_exist_ids);
         });
-
         if($order_package_commodities->count() == 0){return ;}
 
         $order_headers_map = [];
         foreach ($orderHeaders as $item) {
             $order_headers_map[$item->orderno] = $item;
         }
-
         $params = [];
         foreach ($order_package_commodities as $item) {
             $order = $item->package->order;
@@ -407,10 +414,16 @@ class OrderTrackingService
                 }
             }
             $web_order_number = null;
-            if(preg_match('/^O[\d]/',$order_header['soreference1'] ?? '') > 0){
+            if(preg_match('/^O[\d]/',$order_header['soreference1'])){
                 $web_order_number = $order_header['soreference1'];
             }
 
+            $owner = $dataService->getKeyValue(['id'=>$order->owner_id],$owner_id_map);
+            $basSkU = $dataService->getKeyValue(['customerid'=>$owner->code,'sku'=>$item->commodity->sku],$BasSKUs_code_sku_map);
+
+            $gross_weight = round($basSkU->grossweight * $item->amount, 3);
+            $bulk = round($basSkU->cube * $item->amount, 3);
+
             $params[] =[
                 'order_package_commodity_id' => $item->id,
                 'owner_id' => $order->owner_id,
@@ -418,10 +431,11 @@ class OrderTrackingService
                 'created_at' => $order->created_at,
                 'order_remark' => $order_remark,
                 'pick_up_at' => $order_header->lastshipmenttime, // 提货时间,
-                'web_order_number' => $web_order_number
+                'web_order_number' => $web_order_number,
+                'gross_weight' => $gross_weight,
+                'bulk' => $bulk
             ];
         }
-
         try {
             if (count($params) > 0) {
                 OrderTracking::query()->insert($params);
@@ -435,9 +449,12 @@ class OrderTrackingService
     public function updateByWmsOrderHeaders($orderHeaders)
     {
         if(!$orderHeaders){return ;}
+        /** @var DataHandlerService $dataService */
+        $dataService = app(DataHandlerService::class);
+
         $order_nos = data_get($orderHeaders,'*.orderno');
         $order_package_commodities = OrderPackageCommodities::query()
-            ->with('package.order')
+            ->with('package.order','commodity')
             ->whereHas('package.order',function($query) use ($order_nos){
                 $query->whereIn('code',$order_nos);
             })->get();
@@ -459,6 +476,12 @@ class OrderTrackingService
             $order_package_commodity_order_code_map[$order->code][] = $order_package_commodity;
         }
 
+        $owners = app(OwnerService::class)->getByWmsOrders($orderHeaders);
+        $owner_code_map = $basSKUs_data = $dataService->dataHeader(['code'],$owners);
+
+        $BasSKUs = app(OracleBasSkuService::class)->获取BasSKu_通过WMSOrderHeaders($orderHeaders);
+        $BasSKUs_code_sku_map = $dataService->dataHeader(['customerid','sku'],$BasSKUs);
+
 //        $insert_params = [];
 //        foreach ($orderHeaders as $orderHeader) {
 //            $order_package_commodity_list = $order_package_commodity_order_code_map[$orderHeader->orderno] ?? false;
@@ -479,21 +502,26 @@ class OrderTrackingService
             $order = $order_code_map[$orderHeader->orderno];
 
             foreach ($order_package_commodity_list as $order_package_commodity) {
-                $order_tracking = $order_tracking_id_map[$order_package_commodity->id]??false;
+                $order_tracking = $order_tracking_id_map[$order_package_commodity->id] ?? false;
                 if(!$order_tracking){continue;}
-
                 $params = $this->getParamsByOrderHeaderAndOrder($orderHeader,$order);
-
+                $owner =  $dataService->getKeyValue(['code'=>$orderHeader->customerid],$owner_code_map);
+                $basSku = $dataService->getKeyValue(['customerid'=>$owner->code,'sku'=>$order_package_commodity->commodity->sku],$BasSKUs_code_sku_map);
+                $gross_weight = round($basSku->grossWeight * $order_package_commodity->amount,3) ;
+                $bulk = round($basSku->grossWeight * $order_package_commodity->amount,3) ;
                 if($order_tracking->owner_id != $params['owner_id'] ||
-                    $order_tracking->client !=$params['client'] ||
+                    $order_tracking->client != $params['client'] ||
                     $order_tracking->order_remark != $params['order_remark'] ||
                     $order_tracking->pick_up_at != $params['pick_up_at']){
+                    if($gross_weight == $order_tracking->gross_weight && $bulk== $order_tracking->bulk) continue;
                     $update_params[] = [
                         'id' => $order_tracking->id,
                         'client' => $params['client'],
                         'pick_up_at' => $params['pick_up_at'],
                         'order_remark' => $params['order_remark'],
                         'web_order_number' => $params['web_order_number'],
+                        'gross_weight' => $gross_weight,
+                        'bulk' => $bulk,
                     ];
                 }
             }
@@ -536,8 +564,8 @@ class OrderTrackingService
         }
     }
 
-    public function getParamsByOrderHeaderAndOrder($orderHeader,$order){
-
+    public function getParamsByOrderHeaderAndOrder($orderHeader,$order)
+    {
         $client = null;
         $order_remark = null;
         if ($orderHeader['notes'] ?? false) {
@@ -551,8 +579,8 @@ class OrderTrackingService
             }
         }
         $web_order_number = null;
-        if(preg_match('/^O[\d]/',$order_header['soreference1'] ?? '') > 0){
-            $web_order_number = $order_header['soreference1'];
+        if(preg_match('/^O[\d]/',$orderHeader['soreference1'] ?? ' ' )>0){
+            $web_order_number = $orderHeader['soreference1'];
         }
         return [
             'owner_id' => $order->owner_id,

+ 42 - 0
database/migrations/2020_09_28_111811_change_order_tracking.php

@@ -0,0 +1,42 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+class ChangeOrderTracking extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        //
+        Schema::table('order_trackings', function (Blueprint $table) {
+            $table->decimal('gross_weight')->nullable()->comment('重KG');
+            $table->decimal('bulk')->nullable()->comment('体积m3');
+        });
+        Schema::table('order_issues', function (Blueprint $table) {
+            $table->timestamp('settlement_at')->nullable()->index()->comment('解决时间');
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        //
+        Schema::table('order_trackings', function (Blueprint $table) {
+            $table->dropColumn('gross_weight');
+            $table->dropColumn('bulk');
+        });
+        Schema::table('order_issues', function (Blueprint $table) {
+            $table->dropColumn('settlement_at');
+        });
+    }
+}

+ 15 - 1
resources/views/order/index/delivering.blade.php

@@ -101,7 +101,11 @@
                                 <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>
+                                        <div class="text-truncate text-primary tooltipTarget" style="width: 100px;cursor:pointer;text-decoration: underline" title="双击展开" @dblclick="nowrapText($event)">@{{ oracleDOCOrderDetail.descr_c  }}</div>
+                                        <div class="text-nowrap tooltipTarget"  style="display: none;cursor:pointer" @dblclick="truncateText($event)" title="双击收起">@{{ oracleDOCOrderDetail.descr_c  }}</div>
+{{--                                        <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.orderdetailcodename }}</div></td>
                                     <td><div style="width: 180px;overflow: hidden">@{{ oracleDOCOrderDetail.checktime }}</div></td>
@@ -732,6 +736,16 @@
                         tempTip.setDuration(3000)
                         tempTip.show('网络异常:'+error)
                     })
+                },
+                truncateText(e){
+                    let nowrapSpan = $(e.target);
+                    nowrapSpan.hide();
+                    nowrapSpan.siblings('.text-truncate').show();
+                },
+                nowrapText(e){
+                    let truncateSpan = $(e.target);
+                    truncateSpan.hide();
+                    truncateSpan.siblings('.text-nowrap').show();
                 }
             },
 

+ 102 - 41
resources/views/order/issue/index.blade.php

@@ -126,11 +126,13 @@
                         <th class="three-layer  align-middle" rowspan="2" v-if="isShowSecondOrderInfo" style=" min-width: 200px;">二次运单号</th>
                         <th class="three-layer" colspan="3" style="min-width: 300px" v-if="isShowSecondOrderInfo" style=" min-width: 350px;">二次商品明细</th>
                         @endcannot
+                        @cannot('订单管理-问题件-客户不可见')
                         <th class="three-layer  align-middle" rowspan="2" style="min-width: 120px">承运商赔偿金额</th>
                         <th class="three-layer  align-middle" rowspan="2" style="min-width: 120px">承运商快递减免</th>
-                        @cannot('订单管理-问题件-客户不可见')
+                        @endcannot
                         <th class="three-layer  align-middle" rowspan="2" style="min-width: 120px">宝时赔偿金额</th>
                         <th class="three-layer  align-middle" rowspan="2" style="min-width: 120px">宝时快递减免</th>
+                        @cannot('订单管理-问题件-客户不可见')
                         <th class="three-layer  align-middle" rowspan="2" style="min-width: 120px">事故责任方</th>
                         <th class="align-middle" rowspan="2" style="min-width: 120px">操作</th>
                         @endcannot
@@ -200,7 +202,7 @@
                         <td class="child-layer-1">
                             @can('订单管理-问题件-编辑')
                             <select class="form-control form-control-sm" :value="orderIssue.final_status" @change="updateOrderIssue(orderIssue,'final_status',$event)">
-                                <option v-for="item in  finalStatus" :value="item">@{{ item }}</option>
+                                <option v-for="item in  finalStatus" :value="item.value">@{{ item.name }}</option>
                             </select>
                             @else
                             @{{ orderIssue.final_status }}
@@ -236,10 +238,10 @@
                             <span v-if='orderIssue.order.logistic'>@{{ orderIssue.order.logistic.name }}</span>
                         </td>
                         <td class=" hide-content p-0 td-yellow child-layer-2" valign="middle" align="center">
-                            <div :id="'logisticNumbers'+orderIssue.id" :class="orderIssue.order.logisticNumbers.length > 1 ?'collapse ':''">
-                                <p v-for="logisticNumber in orderIssue.order.logisticNumbers" class="m-0 p-0  text-muted ">@{{ logisticNumber }}</p>
-                            </div>
-                            <button v-if="orderIssue.order.logisticNumbers.length > 1" type="button" class="btn btn-sm btn-outline-primary   align-middle mt-1"
+                            <span :id="'logisticNumbers'+orderIssue.id" :class="orderIssue.order.logisticNumbers.length > 1 ?'collapse ':''">
+                                <span class="text-nowrap" v-for="logisticNumber in orderIssue.order.logisticNumbers" class="m-0 p-0  text-muted ">@{{ logisticNumber }}</span>
+                            </span>
+                            <button v-if="orderIssue.order.logisticNumbers.length > 1" type="button" class="btn btn-sm btn-outline-primary align-middle mt-1"
                                     :id="'logisticNumbersBtn'+orderIssue.id" data-toggle="collapse" :data-target="'#logisticNumbers'+orderIssue.id"
                                     @click="toggleLogisticNumbers(orderIssue.id,orderIssue.order.logisticNumbers.length)">
                                 分箱@{{ orderIssue.order.logisticNumbers.length }}件,点击展开
@@ -268,8 +270,10 @@
                                         <tr v-for="item in packages.commodities" class="text-center" :data-value="orderIssue.orderCount += 1" align="center">
                                             <td >@{{ item.commodity.sku }}</td>
                                             <td>
-                                                <p class="text-truncate text-primary m-0 p-0" style="width: 100px;cursor:pointer;text-decoration: underline"  @click="nowrapText($event)">@{{ item.commodity.name }}</p>
-                                                <p class="text-nowrap m-0 p-0" style="display: none;cursor:pointer" @click="truncateText($event)">@{{ item.commodity.name }}</p>
+                                                <div class="text-truncate text-primary tooltipTarget" style="width: 100px;cursor:pointer;text-decoration: underline" title="双击展开" @dblclick="nowrapText($event)">@{{ item.commodity.name }}</div>
+                                                <div class="text-nowrap m-0 p-0 tooltipTarget"  style="display: none;cursor:pointer" @dblclick="truncateText($event)" title="双击收起">@{{ item.commodity.name }}</div>
+{{--                                                <p class="text-truncate text-primary m-0 p-0 tooltipTarget" style="width: 100px;cursor:pointer;text-decoration: underline" title="双击展开"  @dblclick="nowrapText($event)">@{{ item.commodity.name }}</p>--}}
+{{--                                                <p class="text-nowrap m-0 p-0 tooltipTarget" style="display: none;cursor:pointer" @dblclick="truncateText($event)" title="双击收起">@{{ item.commodity.name }}</p>--}}
                                             </td>
                                             <td  :data-value="orderIssue.orderPackagecount += item.amount ">@{{ item.amount }}</td>
                                         </tr>
@@ -306,8 +310,10 @@
                                         :data-value="orderIssue.rejected_bill.sum += item.amount" align="center">
                                         <td style="min-width: 75px" >@{{ item.barcode_goods }}</td>
                                         <td style="min-width: 100px" >
-                                            <p class="text-truncate text-primary m-0 p-0" style="width: 100px;cursor:pointer;text-decoration: underline"  @click="nowrapText($event)">@{{ item.name_goods }}</p>
-                                            <p class="text-nowrap m-0 p-0" style="display: none;cursor:pointer" @click="truncateText($event)">@{{ item.name_goods }}</p>
+                                            <div class="text-truncate text-primary tooltipTarget" style="width: 100px;cursor:pointer;text-decoration: underline" title="双击展开" @dblclick="nowrapText($event)">@{{ item.commodity.name_goods }}</div>
+                                            <div class="text-nowrap m-0 p-0 tooltipTarget"  style="display: none;cursor:pointer" @dblclick="truncateText($event)" title="双击收起">@{{ item.commodity.name_goods }}</div>
+{{--                                            <p class="text-truncate text-primary m-0 p-0 tooltipTarget" style="width: 100px;cursor:pointer;text-decoration: underline" title="双击展开"  @dblclick="nowrapText($event)" >@{{ item.name_goods }}</p>--}}
+{{--                                            <p class="text-nowrap m-0 p-0 tooltipTarget" style="display: none;cursor:pointer"  title="双击收起" @dblclick="truncateText($event)" >@{{ item.name_goods }}</p>--}}
                                         </td>
                                         <td style="min-width: 50px" :data-value="orderIssue.rejectedCount += item.amount">@{{ item.amount }}</td>
                                         <td style="min-width: 50px" >@{{ item.quality_label }}</td>
@@ -364,8 +370,7 @@
                                         <td style="min-width: 200px">@{{ log.content }}</td>
                                         <td style="min-width: 120px">@{{ log.user.name }}</td>
                                         <td style="" class="m-0 p-0 border-0">
-                                            <button type="button" class="btn btn-sm btn-outline-danger m-0 del-btn invisible"
-                                                    @click="deleteOrderIssueLog(log.id,orderIssue.id)">删</button>
+                                            <button type="button" class="btn btn-sm btn-outline-danger m-0 del-btn invisible" @click="deleteOrderIssueLog(log.id,orderIssue.id)">删</button>
                                         </td>
                                     </tr>
                                 </table>
@@ -417,8 +422,10 @@
                                             <tr v-for="item in packages.commodities" :data-value="orderIssue.secondeOrderCount += 1">
                                                 <td >@{{ item.commodity.sku }}</td>
                                                 <td >
-                                                    <p class="text-truncate text-primary m-0 p-0" style="width: 100px;cursor:pointer;text-decoration: underline"  @click="nowrapText($event)">@{{ item.commodity.name }}</p>
-                                                    <p class="text-nowrap m-0 p-0" style="display: none;cursor:pointer" @click="truncateText($event)">@{{ item.commodity.name }}</p>
+                                                    <div class="text-truncate text-primary tooltipTarget" style="width: 100px;cursor:pointer;text-decoration: underline" title="双击展开" @dblclick="nowrapText($event)">@{{ item.commodity.name }}</div>
+                                                    <div class="text-nowrap tooltipTarget"  style="display: none;cursor:pointer" @dblclick="truncateText($event)" title="双击收起">@{{ item.commodity.name }}</div>
+{{--                                                    <p class="text-truncate text-primary m-0 p-0" style="width: 100px;cursor:pointer;text-decoration: underline"  @click="nowrapText($event)">@{{ item.commodity.name }}</p>--}}
+{{--                                                    <p class="text-nowrap m-0 p-0" style="display: none;cursor:pointer" @click="truncateText($event)" >@{{ item.commodity.name }}</p>--}}
                                                 </td>
                                                 <td :data-value="orderIssue.secondeOrderItems+=item.amount">@{{ item.amount }}</td>
                                             </tr>
@@ -435,6 +442,7 @@
                             </template>
                         </td>
                         @endcannot
+                        @cannot('订单管理-问题件-客户不可见')
                         <td class="child-layer-3">
                             @can('订单管理-问题件-编辑')
                             <input type="number" class="form-control form-control-sm" :value="orderIssue.logistic_indemnity_money" @change="updateOrderIssue(orderIssue,'logistic_indemnity_money',$event)">
@@ -452,7 +460,7 @@
                                 @{{ orderIssue.logistic_express_remission }}
                             @endcan
                         </td>
-                        @cannot('订单管理-问题件-客户不可见')
+                        @endcannot
                         <td class="child-layer-3">
                             @can('订单管理-问题件-编辑')
                             <input type="number" class="form-control form-control-sm" :value="orderIssue.baoshi_indemnity_money" @change="updateOrderIssue(orderIssue,'baoshi_indemnity_money',$event)">
@@ -470,6 +478,7 @@
                                 @{{ orderIssue.baoshi_express_remission }}
                             @endcan
                         </td>
+                        @cannot('订单管理-问题件-客户不可见')
                         <td class="child-layer-3">
                             <select class="form-control form-control-sm" :value="orderIssue.user_workgroup_id" @change="updateOrderIssue(orderIssue,'user_workgroup_id',$event)">
                                 <option value></option>
@@ -489,6 +498,7 @@
                         @endcannot
                     </tr>
                 </table>
+                <div class="text-info h5 btn btn">{{$orderIssues->count()}}/@{{  total }}</div>
                 {{$orderIssues->withQueryString()->links()}}
             </div>
         </div>
@@ -657,7 +667,7 @@
                 expressRemission:['原单减免', '部分减免', '全部减免'],
                 checkData: [],
                 from: '',
-                finalStatus: ['已解决', '待退回', '退回中'],
+                finalStatus: [{value:'',name:""},{value:'已解决',name:"已解决"},{value:'待退回',name:"待退回"},{value:'退回中',name:"退回中"},],//['无','已解决', '待退回', '退回中'],
                 selectedStyle: '',
                 deleteId: '',
                 total: {!!  $orderIssues->toJson() !!}['total'],
@@ -670,6 +680,7 @@
                 },
             },
             mounted: function () {
+                $(".tooltipTarget").tooltip({'trigger':'hover'});
                 this.isShowOrderInfo = false;
                 this.isShowRejectedBill= false;
                 this.isShowSecondOrderInfo= false;
@@ -677,11 +688,10 @@
                 let countShow = $(tr).children('.one-layer').length;
                 $('.header-1').attr('colspan',countShow);
 
-                $('.tooltipTarget').tooltip({'trigger': 'hover'});
                 $('#list').removeClass("d-none");
 
                 let _this = this;
-                let log_content_range = [{name:'31',value:'近一月'},{name:'92',value:'近三月'},{name:'183',value:'近半年'},{name:'366',value:'近一年'},{name:'0',value:'不限'},];
+                let log_content_range = [{name:'15',value:'15天内'},{name:'31',value:'近一月'},{name:'92',value:'近三月'},{name:'183',value:'近半年'},{name:'366',value:'近一年'},{name:'0',value:'不限'},];
                 let final_status = [
                     {name: 'null', value: '无'},
                     {name: '已解决', value: '已解决'},
@@ -700,26 +710,35 @@
                     {name: 'logistic_number', type: 'input', tip: ['输入原始运单号:前或后加百分号为单个模糊搜索,否则为多条件精确搜索'], placeholder: '运单号'},
                     {name: 'logistic_number_return', type: 'input', tip: '退回单号:前或后加百分号为单个模糊搜索,否则为多条件精确搜索', placeholder: '退回单号'},
                     {name: 'send_client_code', type: 'input', tip: '二次订单号:前或后加百分号为单个模糊搜索,否则为多条件精确搜索', placeholder: '二次订单号'},
+
                 ], [
                     {name: 'created_at_end', type: 'dateTime', tip: '订单结束日期'},
                     {name: 'consignee_name', type: 'input', tip: '收货人名称:前或后加百分号为单个模糊搜索,否则为多条件精确搜索', placeholder: '收货人名称'},
                     {name: 'consignee_phone', type: 'input', tip: '收货人电话:前或后加百分号为单个模糊搜索,否则为多条件精确搜索', placeholder: '收货人电话'},
                     {name: 'good_barcode', type: 'input', tip: '条码:前或后加 百分号为单个模糊搜索,否则为多条件精确搜索', placeholder: '条码'},
                     {name: 'good_name', type: 'input', tip: '商品名:前或后加 百分号为单个模糊搜索,否则为多条件精确搜索', placeholder: '商品名'},
-                    {name: 'id_quality_label', type: 'select', tip: '是否正品', placeholder: '是否正品', data: this.qualityLabel
-                    },
+                    {name: 'id_quality_label', type: 'select', tip: '是否正品', placeholder: '是否正品', data: this.qualityLabel},
+
                 ],[
-                    {name: 'logistic_indemnity_money', type: 'input', tip: '承运商赔偿金额', placeholder: '承运商赔偿金额'},
                     @cannot('订单管理-问题件-客户不可见')
+                    {name: 'logistic_indemnity_money', type: 'input', tip: '承运商赔偿金额', placeholder: '承运商赔偿金额'},
+                    @endcannot
                     {name: 'baoshi_indemnity_money', type: 'input', tip: '宝时赔偿金额', placeholder: '宝时赔偿金额'},
+                    @cannot('订单管理-问题件-客户不可见')
                     {name: 'final_status', type: 'select', tip: '问题件的最终状态', placeholder: '最终状态', data: final_status},
                     {name: 'order_issue_type_id', type: 'select', tip: '问题类别', placeholder: '问题类别', data: this.orderIssueType},
+                    @endcannot
                     {name: ['log_content','addtime'], type: 'input_select', tip: ['处理结果:前或后加 百分号为单个模糊搜索,否则为多条件精确搜索','查询范围越短,搜索速度越快'], placeholder: ['处理结果',''],
                         data:log_content_range,
                         rules:[{son:{addtime:{default:'31',required_without_all_if:['created_at_start','created_at_end']}}}]},
+                    @cannot('订单管理-问题件-客户不可见')
                          // {date_relevance:{date:['orderdate_start','orderdate_end'],relevance:'addtime',killing:'date',default:[31,92,183,366]}}]},
                     {name: 'is_handle', type: 'checkbox', tip: '是否已处理', data: [{name: 'ture', value: '已解决'}]},
+                ],[
                     @endcannot
+                    {name: 'settlement_at_start', type: 'dateTime', tip: '完结起始日期'},
+                    {name: 'settlement_at_end', type: 'dateTime', tip: '完结结束日期' },
+                    {name: 'is_new_rejecting', type: 'select', tip: '退件状态',placeholder: '退件状态',data:[{name:'无',value:'无'},{name:'有',value:'有'},{name:'已处理',value:'已处理'}]},
                 ]];
                 this.form = new query({
                     el: '#form_div',
@@ -783,6 +802,7 @@
                 },
                 deleteOrderIssueById() {
                     let _this = this;
+
                     tempTip.setDuration(99999)
                     tempTip.waitingTip('删除中,请稍候')
                     let id = $('#deleteId').val();
@@ -938,25 +958,26 @@
                     }
                     let _this = this;
                     let ids = _this.checkData;
-                    let data = {ids: ids};
-                    axios.post('{{url('apiLocal/order/issue/endOrderIssue')}}', data).then(function (res) {
-                        if (res.data.success) {
-                            tempTip.setDuration(2000);
-                            tempTip.showSuccess('勾选订单已变为已完结');
-                            _this.orderIssues.forEach(function (item,index) {
-                                if (ids.includes(item.id)) {
-                                    item.final_status = '已解决'
-                                }
-                            });
-                            _this.checkData = [];
-                        } else {
-                            tempTip.setDuration(3000)
-                            tempTip.show(res.data.fail_info)
-                        }
-                    }).catch(function (err) {
-                        tempTip.setDuration(4000);
-                        tempTip.show('网络异常:' + err);
-                    })
+                    // let data = {ids: ids};
+                    this.endOrderIssues(ids)
+                    {{--axios.post('{{url('apiLocal/order/issue/endOrderIssue')}}', data).then(function (res) {--}}
+                    {{--    if (res.data.success) {--}}
+                    {{--        tempTip.setDuration(2000);--}}
+                    {{--        tempTip.showSuccess('勾选订单已变为已完结');--}}
+                    {{--        _this.orderIssues.forEach(function (item,index) {--}}
+                    {{--            if (ids.includes(item.id)) {--}}
+                    {{--                item.final_status = '已解决'--}}
+                    {{--            }--}}
+                    {{--        });--}}
+                    {{--        _this.checkData = [];--}}
+                    {{--    } else {--}}
+                    {{--        tempTip.setDuration(3000)--}}
+                    {{--        tempTip.show(res.data.fail_info)--}}
+                    {{--    }--}}
+                    {{--}).catch(function (err) {--}}
+                    {{--    tempTip.setDuration(4000);--}}
+                    {{--    tempTip.show('网络异常:' + err);--}}
+                    {{--})--}}
                 },
                 disposeOrderIssue(e,orderIssue) {
                     let _this = this;
@@ -976,6 +997,40 @@
                         tempTip.show('网路链接异常' + err);
                     });
                 },
+                endOrderIssueById(id){
+                    this.endOrderIssues([id]);
+                },
+                endOrderIssues(ids){
+                    let data = {ids:ids}
+                    let orderIssues = {};
+                    for (let i = 0; i < this.orderIssues.length; i++) {
+                        let id = this.orderIssues[i]['id']
+                        if(ids.includes(id))orderIssues[id] = this.orderIssues[i];
+
+                    }
+                    axios.post('{{url('apiLocal/order/issue/endOrderIssues')}}',data).then(function(response){
+                        if(response.data.success){
+                            tempTip.setDuration(3000)
+                            tempTip.showSuccess('订单已处理')
+                            let logs = response.data.logs
+                            for (let i = 0; i < logs.length; i++) {
+                                let log = logs[i]
+                                // console.log(log);
+                                let orderIssue = orderIssues[log['order_issue_id']]
+                                if(orderIssue){
+                                    orderIssue.logs.unshift(log)
+                                    orderIssue['final_status'] = '已解决'
+                                }
+                            }
+                        }else{
+                            tempTip.setDuration(3000)
+                            tempTip.show(response.data.fail_info)
+                        }
+                    }).catch(function(error){
+                        tempTip.setDuration(4000)
+                        tempTip.show('网路链接异常' + error);
+                    })
+                },
                 addOrderIssueLog(id,orderIssue) {
                     let idInput = $('#' + id + ' :input[name="id"]');
                     let contentInput = $('#' + id + ' :input[name="content"]');
@@ -1143,7 +1198,12 @@
                     this.isShowSecondOrderInfo = true;
                 },
                 updateOrderIssue(orderIssue,column,e){
-                    let data = {id:orderIssue['id'],column:column,value:$(e.target).val()}
+                    let value = $(e.target).val()
+                    if(column === 'final_status' && value === '已解决'){
+                        this.endOrderIssueById(orderIssue['id'])
+                        return ;
+                    }
+                    let data = {id:orderIssue['id'],column:column,value:value}
                     axios.post('{{url("apiLocal/order/issue/updateColumn")}}',data).then(function(response){
                         if(response.data.success){
                             orderIssue[column] = data.value
@@ -1164,6 +1224,7 @@
                         tempTip.show('没有勾选内容')
                         return;
                     }
+                    if(!confirm('是否删除当前问题件'))return;
                     let _this = this
                     let data = {ids:this.checkData}
                     axios.post('{{url('apiLocal/order/issue/batchDestroy')}}',data).then(function(response){

+ 1 - 1
resources/views/order/issue/menu.blade.php

@@ -6,7 +6,7 @@
             <ul class="nav nav-pills">
                 @can('订单管理-问题件-查询')
                     <li class="nav-item">
-                        <a class="nav-link" href="{{url('order/issue/index/')}}" :class="{active:isActive('index',3)}">查询</a>
+                        <a class="nav-link" href="{{url('order/issue/index?addtime=15')}}" :class="{active:isActive('index',3)}">查询</a>
                     </li>
                 @endcan
                 @can('订单管理-订单问题件生成')

+ 1 - 1
resources/views/order/menu.blade.php

@@ -14,7 +14,7 @@
             @endcan
             @can('订单管理-问题件-查询')
             <li class="nav-item">
-                <a class="nav-link" href="{{url('order/issue/index/')}}" :class="{active:isActive('issue',2)}">问题件</a>
+                <a class="nav-link" href="{{url('order/issue/index?addtime=15')}}" :class="{active:isActive('issue',2)}">问题件</a>
             </li>
             @endcan
             @can('订单管理-跟踪')

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

@@ -75,7 +75,7 @@
                         <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">
+                    <tr v-for="(trackOrder,index) in trackOrders" class="table-body text-center"  :key="index" @click="selectedColor(trackOrder.id)" :style="{'font-weight': trackOrder.id === selectedStyle?'bold':''}">
                         <td>
                             <input id="all" type="checkbox" :value="trackOrder.id" v-model="checkData">
                         </td>
@@ -126,8 +126,8 @@
                                 @{{ trackOrder.order_remark }}
                             @endcan
                         </td>
-                        <td class="td-yellow">@{{ trackOrder.packageWeight }}</td>
-                        <td class="td-yellow">@{{ trackOrder.packageBulk |millimeterToCubic}}</td>
+                        <td class="td-yellow">@{{ trackOrder.gross_weight }}</td>
+                        <td class="td-yellow">@{{ trackOrder.bulk |millimeterToCubic}}</td>
                         <td class="td-yellow">
                             @can('订单管理-跟踪-仓库编辑')
                                 <input class="form-control form-control-sm" :value="trackOrder.pallet_total" @change="warehouseUpdate($event,'pallet_total',trackOrder)" >
@@ -187,7 +187,7 @@
                         </td>
                     </tr>
                 </table>
-
+                <div class="text-info h5 btn btn">{{$trackOrders->count()}}/@{{  page.total }}</div>
               {{ $trackOrders->withQueryString()->links() }}
 
                 <div id="alert_modal" class="modal fade " tabindex="-1" aria-hidden="true" >
@@ -249,6 +249,7 @@
                 },
                 isOnDutyShift: ['是','否'],
                 isArrival: ['是','否'],
+                selectedStyle:''
             },
             mounted:function(){
 

+ 1 - 0
routes/apiLocal.php

@@ -47,6 +47,7 @@ Route::group(['prefix' => 'order'], function () {
         Route::post('getOrderInfoByClientNo', 'OrderIssueController@apiGetOrderInfoByClientNo');
         Route::post('isExistByOrderNo','OrderIssueController@isExistByOrderNoApi');
         Route::post('updateLogisticNumberReturn','OrderIssueController@updateLogisticNumberReturnApi');
+        Route::post('endOrderIssues','OrderIssueController@endOrderIssuesApi');
 
          Route::group(['prefix'=>'onTop'],function(){
             Route::post('/store', 'OrderIssueOnTopController@apiStore');