Ver Fonte

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

 Conflicts:
	app/Http/Controllers/TestController.php
LD há 5 anos atrás
pai
commit
6f7dbf93b9

+ 9 - 17
app/Http/Controllers/OrderIssueController.php

@@ -83,17 +83,9 @@ class OrderIssueController extends Controller
         if (!Gate::allows('订单管理-问题件-编辑')) {
             return redirect(url('/'));
         }
-        $orderIssue = OrderIssue::query()->where('id', $id)->first();
-        $order = Order::query()->with(['packages' => function ($query) {
-            return $query->with(['commodities' => function ($query) {
-                return $query->with('commodity');
-            }]);
-        }])->where('id', $orderIssue->order_id)->first();
-        $secondOrder = Order::with(['packages' => function ($query) {
-            return $query->with(['commodities' => function ($query) {
-                return $query->with(['commodity']);
-            }]);
-        }])->where('id', $orderIssue->second_order_id)->first();
+        $orderIssue = OrderIssue::query()->with(['order','secondOrder.packages.commodities.commodity'])->where('id', $id)->first();
+        $order = $orderIssue->order;
+        $secondOrder = $orderIssue->secondOrder;
         $rejectedBill = RejectedBill::query()->where('id', $orderIssue->rejected_bill_id)->first();
         $userWorkgroup = UserWorkgroup::all();
         $orderIssueType = OrderIssueType::all();
@@ -210,7 +202,7 @@ class OrderIssueController extends Controller
             return  ['success' => true];
         } catch (Exception $e) {
             LogService::log(__METHOD__,__FUNCTION__,json_encode($request)."||".$e->getMessage().'||'.$e->getTraceAsString());
-            return  ['success' => true ,'fail_info' => $e->getMessage()];
+            return  ['success' => false ,'fail_info' => $e->getMessage()];
         }
     }
 
@@ -462,7 +454,7 @@ class OrderIssueController extends Controller
             if (!$order) {
                 return ['success' => true, 'message' => '二次客户单号已修改,没有对应的订单信息'];
             } else {
-                return ['success' => true, 'order' => $order];
+               return ['success' => true, 'order' => $secondClientNo =='' ? null : $order];
             }
         } catch (Exception $e) {
             LogService::log(__METHOD__, __FUNCTION__, json_encode($request->getContent()).$e->getMessage().$e->getTraceAsString());
@@ -476,12 +468,12 @@ class OrderIssueController extends Controller
             return ['success'=>false,'fail_info'=>'没有对应权限'];
         }
         try {
-            $orderPackage = app(OrderPackageService::class)->createByLogisticNumberAndOrderClientNo($request->input('logistic_number', $request->input('client_code')));
-            if(!$orderPackage)return ['success'=>false,'fail_info'=>'创建失败'];
-            return ['success'=>true,'orderPackage'=>$orderPackage];
+            $array = app(OrderPackageService::class)->createByLogisticNumberAndOrderClientNo( $request->input('client_code'),$request->input('logistic_number'));
+            if(!isset($array['orderPackage']))return ['success'=>false,'fail_info'=>'创建失败'];
+            return ['success'=>true,'orderPackage'=>$array['orderPackage'],'order'=>$array['order']];
         } catch (Exception $e) {
             LogService::log(__METHOD__,__FUNCTION__.'ERROR','问题件 根据二次客户单号和快递单创建OrderPakcage'.json_encode($request->getContent()).$e->getMessage());
-            return ['success'=>true, 'message' => $e->getMessage()];
+            return ['success'=>false, 'fail_info' => $e->getMessage()];
         }
 
     }

+ 21 - 15
app/Http/Controllers/OrderTrackingController.php

@@ -3,20 +3,13 @@
 namespace App\Http\Controllers;
 
 use App\Logistic;
-use App\OracleActAllocationDetails;
-use App\OracleBasCustomer;
-use App\OracleDOCOrderHeader;
-use App\Order;
-use App\OrderTracking;
-use App\OrderTrackingOwner;
-use App\Owner;
-use App\Services\CommodityService;
 use App\Services\LogService;
 use App\Services\OrderTrackingService;
 use App\Services\OwnerService;
+use Exception;
 use Illuminate\Http\Request;
-use Illuminate\Support\Carbon;
 use Illuminate\Support\Facades\Gate;
+use Illuminate\Support\Facades\Http;
 
 class OrderTrackingController extends Controller
 {
@@ -65,12 +58,25 @@ class OrderTrackingController extends Controller
     {
         if (!Gate::allows('订单管理-跟踪'))
             return redirect(url('/'));
-        $service = app('orderTrackingService');
-        if($request->filled('data')){
-            $request['ids'] = $request->input('data');
-            $request['data'] = null;
+        /** @var OrderTrackingService $service */
+        $service = app(OrderTrackingService::class);
+        $sql = $service->getSql($request->input());
+        $row = ['公司','订单号','WEB+订单号','提货日期','销售','客户','SKU','物料描述','数量','订单备注','重量','体积',
+            '托盘合计','运输方式','运输单号','到达城市','应送达时间','是否赶上卡班','到货情况','签收日期','签收单情况','备注'];
+        $column = ['owners_name','order_client_code','web_order_number','pick_up_at','sale','client','sku','sku_name','amount','order_remark',
+            'gross_weight','bulk','pallet_total','logistic_name','logistic_number','city','planning_sent_at','is_on_duty_shift','is_arrival','signed_at','receive_bill_status','remark'];
+        $mergeColumn = ['M'];
+        $rule = ["pick_up_at"=> "mysqlDate"];
+        $post = Http::post(config('go.export.url'),['type'=>'unify','sql'=>$sql, 'connection'=>'mysql','rule' => json_encode($rule),
+            'row'=>json_encode($row,JSON_UNESCAPED_UNICODE), 'column'=>json_encode($column),
+            'mergeColumn'=>json_encode($mergeColumn),'datum'=>'pick_up_at','createFormat'=>'merge']);
+        if ($post->status() == 500){
+            throw new Exception($post->header("Msg"));
         }
-        return $service->export($request->input());
-    }
+        return response($post,200, [
+            "Content-type"=>"application/octet-stream",
+            "Content-Disposition"=>"attachment; filename=订单跟踪件-".date('ymdHis').'.xlsx',
+        ]);
 
+    }
 }

+ 0 - 336
app/Http/Controllers/TestController.php

@@ -628,340 +628,4 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
         dd(Request::all());
     }
 
-    public function test11()
-    {
-
-    }
-
-    public function addLogisticTiming()
-    {
-        $orderHeader =OracleDOCOrderHeader::query()->where('orderNo','SO201015004279')->first();
-        $orderHeader['c_city'] = '晋城';
-        $orderHeader['c_province'] = '山西';
-        $order = Order::query()->with('logistic')->where('code','SO201015004279')->first();
-        $params =app(OrderTrackingService::class)->getParamsByOrderHeaderAndOrder($orderHeader,$order);
-        dd($params['pick_up_at'],$orderHeader['lastshipmenttime']);
-    }
-
-    public function getMap()
-    {
-        return [['北京','北京','4','5'],
-            ['广东','广州','4','5'],
-            ['上海','上海','2','3'],
-            ['天津','天津','4','5'],
-            ['重庆','重庆','4','5'],
-            ['辽宁','沈阳','4','5'],
-            ['江苏','南京','2','3'],
-            ['湖北','武汉','4','5'],
-            ['四川','成都','5','6'],
-            ['陕西','西安','4','5'],
-            ['贵州','遵义','5','6'],
-            ['贵州','安顺','5','6'],
-            ['云南','泸水','5','6'],
-            ['云南','丽江','5','6'],
-            ['河北','邯郸','4','5'],
-            ['河北','石家庄','4','5'],
-            ['河北','保定','4','5'],
-            ['河北','张家口','4','5'],
-            ['河北','承德','4','5'],
-            ['河北','唐山','4','5'],
-            ['河北','廊坊','4','5'],
-            ['河北','沧州','4','5'],
-            ['河北','衡水','5','6'],
-            ['河北','邢台','4','5'],
-            ['河北','秦皇岛','4','5'],
-            ['山西','朔州','5','6'],
-            ['山西','忻州','4','5'],
-            ['山西','太原','4','5'],
-            ['山西','大同','4','5'],
-            ['山西','阳泉','4','5'],
-            ['山西','晋中','4','5'],
-            ['山西','长治','4','5'],
-            ['山西','晋城','4','5'],
-            ['山西','临汾','5','6'],
-            ['山西','吕梁','4','5'],
-            ['山西','运城','4','5'],
-            ['河南','商丘','3','4'],
-            ['河南','郑州','4','5'],
-            ['河南','安阳','4','5'],
-            ['河南','新乡','4','5'],
-            ['河南','许昌','4','5'],
-            ['河南','平顶山','4','5'],
-            ['河南','信阳','3','4'],
-            ['河南','南阳','4','5'],
-            ['河南','开封','4','5'],
-            ['河南','洛阳','4','5'],
-            ['河南','焦作','4','5'],
-            ['河南','鹤壁','4','5'],
-            ['河南','濮阳','4','5'],
-            ['河南','周口','3','4'],
-            ['河南','漯河','4','5'],
-            ['河南','驻马店','4','5'],
-            ['河南','三门峡','4','5'],
-            ['辽宁','大连','4','5'],
-            ['辽宁','鞍山','5','6'],
-            ['辽宁','本溪','5','6'],
-            ['辽宁','丹东','5','6'],
-            ['辽宁','锦州','4','5'],
-            ['辽宁','营口','5','6'],
-            ['辽宁','阜新','6','7'],
-            ['辽宁','辽阳','4','5'],
-            ['辽宁','朝阳','5','6'],
-            ['辽宁','盘锦','5','6'],
-            ['辽宁','葫芦岛','4','5'],
-            ['吉林','长春','4','5'],
-            ['吉林','吉林','5','6'],
-            ['吉林','延吉','5','6'],
-            ['吉林','四平','5','6'],
-            ['吉林','通化','5','6'],
-            ['吉林','白城','5','6'],
-            ['吉林','辽源','5','6'],
-            ['吉林','松原','5','6'],
-            ['吉林','白山','5','6'],
-            ['黑龙江','哈尔滨','5','6'],
-            ['黑龙江','齐齐哈尔','5','6'],
-            ['黑龙江','牡丹江','5','6'],
-            ['黑龙江','佳木斯','5','6'],
-            ['黑龙江','绥化','5','6'],
-            ['黑龙江','黑河','6','7'],
-            ['黑龙江','大兴安岭','6','7'],
-            ['黑龙江','伊春','5','6'],
-            ['黑龙江','大庆','5','6'],
-            ['黑龙江','七台河','5','6'],
-            ['黑龙江','鸡西','6','7'],
-            ['黑龙江','鹤岗','6','7'],
-            ['黑龙江','双鸭山','6','7'],
-            ['内蒙古','呼伦贝尔','6','7'],
-            ['内蒙古','呼和浩特','5','6'],
-            ['内蒙古','包头','5','6'],
-            ['内蒙古','乌海','5','6'],
-            ['内蒙古','乌兰察布','5','6'],
-            ['内蒙古','通辽','5','6'],
-            ['内蒙古','赤峰','4','5'],
-            ['内蒙古','鄂尔多斯','5','6'],
-            ['内蒙古','巴彦淖尔','5','6'],
-            ['内蒙古','锡林浩特','5','6'],
-            ['内蒙古','乌兰浩特','5','6'],
-            ['内蒙古','阿拉善','4','5'],
-            ['江苏','无锡','2','3'],
-            ['江苏','镇江','2','3'],
-            ['江苏','苏州','2','3'],
-            ['江苏','南通','2','3'],
-            ['江苏','扬州','2','3'],
-            ['江苏','盐城','2','3'],
-            ['江苏','徐州','2','3'],
-            ['江苏','淮安','2','3'],
-            ['江苏','连云港','2','3'],
-            ['江苏','常州','2','3'],
-            ['江苏','泰州','2','3'],
-            ['江苏','宿迁','2','3'],
-            ['山东','菏泽','4','5'],
-            ['山东','济南','4','5'],
-            ['山东','青岛','3','4'],
-            ['山东','淄博','4','5'],
-            ['山东','德州','4','5'],
-            ['山东','烟台','4','5'],
-            ['山东','潍坊','4','5'],
-            ['山东','济宁','3','4'],
-            ['山东','泰安','3','4'],
-            ['山东','临沂','3','4'],
-            ['山东','滨州','4','5'],
-            ['山东','东营','4','5'],
-            ['安徽','滁州','3','4'],
-            ['安徽','合肥','3','4'],
-            ['安徽','蚌埠','3','4'],
-            ['安徽','芜湖','3','4'],
-            ['安徽','淮南','3','4'],
-            ['安徽','马鞍山','3','4'],
-            ['安徽','安庆','3','4'],
-            ['安徽','宿州','3','4'],
-            ['安徽','阜阳','3','4'],
-            ['安徽','黄山','3','4'],
-            ['安徽','淮北','3','4'],
-            ['安徽','铜陵','3','4'],
-            ['安徽','宣城','3','4'],
-            ['安徽','六安','3','4'],
-            ['安徽','池州','3','4'],
-            ['浙江','衢州','2','3'],
-            ['浙江','杭州','2','3'],
-            ['浙江','湖州','2','3'],
-            ['浙江','嘉兴','2','3'],
-            ['浙江','宁波','2','3'],
-            ['浙江','绍兴','2','3'],
-            ['浙江','台州','2','3'],
-            ['浙江','温州','2','3'],
-            ['浙江','丽水','2','3'],
-            ['浙江','金华','2','3'],
-            ['浙江','舟山','2','3'],
-            ['福建','福州','3','4'],
-            ['福建','厦门','4','5'],
-            ['福建','宁德','3','4'],
-            ['福建','莆田','4','5'],
-            ['福建','泉州','4','5'],
-            ['福建','漳州','4','5'],
-            ['福建','龙岩','4','5'],
-            ['福建','三明','4','5'],
-            ['福建','南平','3','4'],
-            ['山东','威海','4','5'],
-            ['山东','枣庄','3','4'],
-            ['山东','日照','3','4'],
-            ['山东','聊城','4','5'],
-            ['广东','汕尾','4','5'],
-            ['广东','阳江','4','5'],
-            ['广东','揭阳','4','5'],
-            ['广东','茂名','6','7'],
-            ['云南','景洪','5','6'],
-            ['云南','瑞丽','6','7'],
-            ['江西','鹰潭','3','4'],
-            ['湖北','襄阳','4','5'],
-            ['湖北','鄂州','3','4'],
-            ['湖北','孝感','4','5'],
-            ['湖北','黄冈','3','4'],
-            ['湖北','黄石','3','4'],
-            ['湖北','咸宁','4','5'],
-            ['湖北','荆州','4','5'],
-            ['湖北','宜昌','4','5'],
-            ['湖北','恩施','4','5'],
-            ['湖北','十堰','4','5'],
-            ['湖北','随州','4','5'],
-            ['湖北','荆门','4','5'],
-            ['湖北','仙桃','4','5'],
-            ['湖南','岳阳','4','5'],
-            ['湖南','长沙','4','5'],
-            ['湖南','湘潭','4','5'],
-            ['湖南','株洲','4','5'],
-            ['湖南','衡阳','4','5'],
-            ['湖南','郴州','4','5'],
-            ['湖南','常德','4','5'],
-            ['湖南','益阳','4','5'],
-            ['湖南','娄底','4','5'],
-            ['湖南','邵阳','4','5'],
-            ['湖南','吉首','4','5'],
-            ['湖南','张家界','4','5'],
-            ['湖南','怀化','4','5'],
-            ['湖南','永州','4','5'],
-            ['广东','江门','4','5'],
-            ['广东','韶关','4','5'],
-            ['广东','惠州','4','5'],
-            ['广东','梅州','5','6'],
-            ['广东','汕头/汕尾','4','5'],
-            ['广东','深圳','4','5'],
-            ['广东','珠海','4','5'],
-            ['广东','佛山','4','5'],
-            ['广东','肇庆','4','5'],
-            ['广东','湛江','5','6'],
-            ['广东','中山','4','5'],
-            ['广东','河源','4','5'],
-            ['广东','清远','4','5'],
-            ['广东','云浮','4','5'],
-            ['广东','潮州','4','5'],
-            ['广东','东莞','4','5'],
-            ['广西','防城港','5','6'],
-            ['广西','南宁','5','6'],
-            ['广西','来宾','5','6'],
-            ['广西','桂林','5','6'],
-            ['广西','贺州','5','6'],
-            ['广西','贵港','5','6'],
-            ['广西','百色','5','6'],
-            ['广西','钦州','5','6'],
-            ['广西','河池','4','5'],
-            ['广西','北海','5','6'],
-            ['江西','新余','4','5'],
-            ['江西','南昌','3','4'],
-            ['江西','九江','3','4'],
-            ['江西','上饶','3','4'],
-            ['江西','抚州','3','4'],
-            ['江西','宜春','4','5'],
-            ['江西','吉安','4','5'],
-            ['江西','赣州','4','5'],
-            ['江西','景德镇','3','4'],
-            ['江西','萍乡','4','5'],
-            ['四川','攀枝花','5','6'],
-            ['四川','自贡','5','6'],
-            ['四川','绵阳','5','6'],
-            ['四川','南充','5','6'],
-            ['四川','达州','4','5'],
-            ['四川','遂宁','5','6'],
-            ['四川','广安','5','6'],
-            ['四川','巴中','5','6'],
-            ['四川','泸州','5','6'],
-            ['四川','宜宾','5','6'],
-            ['四川','内江','5','6'],
-            ['四川','乐山','5','6'],
-            ['四川','西昌','5','6'],
-            ['四川','雅安','5','6'],
-            ['四川','康定','4','5'],
-            ['四川','阿坝藏族羌族州','5','6'],
-            ['四川','德阳','5','6'],
-            ['四川','广元','5','6'],
-            ['贵州','贵阳','4','5'],
-            ['贵州','都匀','4','5'],
-            ['贵州','凯里','4','5'],
-            ['贵州','铜仁','5','6'],
-            ['贵州','毕节','5','6'],
-            ['贵州','六盘水','5','6'],
-            ['贵州','兴义','5','6'],
-            ['云南','昭通','5','6'],
-            ['云南','昆明','5','6'],
-            ['云南','大理','5','6'],
-            ['云南','红河哈尼族彝族州','5','6'],
-            ['云南','曲靖','5','6'],
-            ['云南','保山','5','6'],
-            ['云南','文山','5','6'],
-            ['云南','玉溪','5','6'],
-            ['云南','楚雄','5','6'],
-            ['云南','普洱','5','6'],
-            ['云南','临沧','5','6'],
-            ['云南','香格里拉','5','6'],
-            ['海南','海口','5','6'],
-            ['新疆','乌苏','6','7'],
-            ['新疆','哈密','6','7'],
-            ['新疆','和田市','6','7'],
-            ['新疆','阿勒泰市','6','7'],
-            ['新疆','阿图什市','6','7'],
-            ['新疆','博尔塔拉蒙古州','6','7'],
-            ['陕西','延安','4','5'],
-            ['陕西','榆林','4','5'],
-            ['陕西','渭南','4','5'],
-            ['陕西','商洛','4','5'],
-            ['陕西','安康','4','5'],
-            ['陕西','汉中','4','5'],
-            ['陕西','宝鸡','4','5'],
-            ['陕西','铜川','4','5'],
-            ['甘肃','临夏','4','5'],
-            ['甘肃','兰州','5','6'],
-            ['甘肃','定西','5','6'],
-            ['甘肃','平凉','5','6'],
-            ['甘肃','庆阳','4','5'],
-            ['甘肃','武威','5','6'],
-            ['甘肃','张掖','5','6'],
-            ['甘肃','酒泉','5','6'],
-            ['甘肃','天水','4','5'],
-            ['甘肃','陇南','5','6'],
-            ['甘肃','合作','5','6'],
-            ['甘肃','白银','5','6'],
-            ['宁夏','银川','5','6'],
-            ['宁夏','石嘴山','5','6'],
-            ['宁夏','吴忠','5','6'],
-            ['宁夏','固原','5','6'],
-            ['宁夏','中卫','5','6'],
-            ['青海','海北藏族自治州','5','6'],
-            ['青海','西宁','5','6'],
-            ['青海','海东','5','6'],
-            ['青海','同仁县','5','6'],
-            ['青海','共和县','5','6'],
-            ['青海','玛訫县','5','6'],
-            ['青海','德令哈','5','6'],
-            ['青海','格尔木','5','6'],
-            ['新疆','克拉玛依','6','7'],
-            ['新疆','乌鲁木齐','6','7'],
-            ['新疆','奎屯','6','7'],
-            ['新疆','石河子','6','7'],
-            ['新疆','昌吉州','6','7'],
-            ['新疆','吐鲁番','6','7'],
-            ['新疆','库尔勒','6','7'],
-            ['新疆','阿克苏市','6','7'],
-            ['新疆','喀什市','6','7'],
-            ['新疆','伊犁哈萨克州','6','7']];
-    }
 }

+ 3 - 3
app/Services/OrderIssueService.php

@@ -423,9 +423,9 @@ class OrderIssueService
 
                 $owner_id = $orderIssue['order']['owner_id'];
                 $rejectedBill = RejectedBill::query()->firstOrCreate([
-                        'id_logistic_return' => $arr['rejectedBill']['id_logistic_return'] ?? '',
-                        'id_owner' => $owner_id ?? '',
-                        'logistic_number_return' => $arr['rejectedBill']['logistic_number_return'],]
+                    'id_logistic_return' => $arr['rejectedBill']['id_logistic_return'] ?? '',
+                    'id_owner' => $owner_id ?? '',
+                    'logistic_number_return' => $arr['rejectedBill']['logistic_number_return'],]
                 );
                 $rejectedBill->save();
                 $rejectedBill->同步问题件();

+ 8 - 3
app/Services/OrderPackageService.php

@@ -372,15 +372,20 @@ class OrderPackageService
         return  $map;
     }
 
+    /**
+     * @param string $orderClientNo
+     * @param string $logisticNumber
+     * @return array|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Model|object
+     */
     public function createByLogisticNumberAndOrderClientNo($orderClientNo,$logisticNumber)
     {
-        $order = Order::query()->where('client_no',$orderClientNo)->first();
+        $order = Order::query()->with('packages.commodities.commodity')->where('client_code',$orderClientNo)->first();
         if(!$order){
-            $order = Order::query()->create(['client_code',$orderClientNo]);
+            $order = Order::query()->create(['client_code'=>$orderClientNo]);
         }
         $orderPackage = OrderPackage::query()->where('logistic_number',$logisticNumber)->first();
         if($orderPackage){return $orderPackage;}
         $orderPackage = OrderPackage::query()->create(['order_id'=>$order->id,'logistic_number'=>$logisticNumber]);
-        return $orderPackage;
+        return  compact('orderPackage','order');
     }
 }

+ 60 - 0
app/Services/OrderService.php

@@ -18,6 +18,7 @@ use App\Services\common\DataHandlerService;
 use App\Shop;
 use Carbon\Carbon;
 use Illuminate\Database\Eloquent\Collection;
+use Illuminate\Support\Facades\App;
 use Illuminate\Support\Facades\DB;
 
 class OrderService
@@ -375,6 +376,8 @@ class OrderService
             ];
             $order = Order::query()->create($arr);
             unset($arr,$orderHeadAttr,$owner);
+        }else{
+            $this->updateOrderByOrderHeader($order,$orderHeader);
         }
         $orderPackageService->createdByOrder($order);unset($order);
         return Order::with('packages.commodities.commodity')->where('client_code', $clientCode)->first();
@@ -674,4 +677,61 @@ class OrderService
         return $this->getOrderInfoByCodes(data_get($orderHeaders,'*.orderno'));
     }
 
+    public function getParamByOrderHeader($orderHeader)
+    {
+        if($orderHeader->userdefine1 == 'ZT'){
+            $logistic = Logistic::query()->where('code','XJWL')->first();
+
+        }else{
+            $logistic = Logistic::query()->where('code',$orderHeader->userdefine1)->first();
+        }
+        $owner = Owner::query()->where('code',$orderHeader->customerid ?? '')->first();
+        $shop = Shop::query()->where('name',$orderHeader->issuepartyname)->where('owner_id',$owner->id)->first();
+        return [
+            'code' =>$orderHeader->orderno,
+            'owner_id' =>$owner->id,
+            'shop_id' =>$shop->id,
+            'logistic_id' => $logistic->id,
+            'consignee_name' =>  $orderHeader->c_contact,
+            'consignee_phone' =>  $orderHeader->c_tel2,
+            'province' =>$orderHeader->c_province,
+            'city' => $orderHeader->c_city,
+            'district' =>$orderHeader->c_district,
+            'address' =>$orderHeader->c_address1,
+            'client_code' =>$orderHeader->soreference1,
+            'wms_edittime' => $orderHeader->edittime,
+            'wms_status' => $orderHeader->oracleBASCode_codename_c ?? '',
+            'update_at' => Carbon::now()->format('Y-m-d H:i:s')
+        ];
+    }
+
+    /**
+     * @param App/Order $order
+     * @param App/OracleDOCOrderHeader $orderHeader
+     */
+    public function updateOrderByOrderHeader($order,$orderHeader)
+    {
+        $params = $this->getParamByOrderHeader($orderHeader);
+        if($params['client_code']!= $order->client_code){
+            return ;
+        }else{
+            if($params['code'] == $order->code){
+                return ;
+            }
+            $data = [
+                'code'=>$order->code ?? $params['code'],
+                'owner_id'=>$order->code ?? $params['owner_id'],
+                'shop_id'=>$order->code ?? $params['shop_id'],
+                'logistic_id'=>$order->code ?? $params['logistic_id'],
+                'consignee_name'=>$order->code ?? $params['consignee_name'],
+                'province'=>$order->code ?? $params['province'],
+                'city'=>$order->code ?? $params['city'],
+                'district'=>$order->code ?? $params['district'],
+                'address'=>$order->code ?? $params['address'],
+                'wms_edittime'=>$order->code ?? $params['wms_edittime'],
+                'wms_status'=>$order->code ?? $params['wms_status'],
+            ];
+            Order::query()->where('id',$order->id)->update($data);
+        }
+    }
 }

+ 31 - 60
app/Services/OrderTrackingService.php

@@ -3,7 +3,6 @@
 namespace App\Services;
 
 use App\Exports\Export;
-use App\LogisticTiming;
 use App\OracleDOCOrderHeader;
 use App\Order;
 use App\OrderPackageCommodities;
@@ -38,7 +37,8 @@ class OrderTrackingService
             $query->with(['commodity', 'package.order.logistic']);
         },])->whereHas('owner', function ($query) use ($owner_ids) {
             $query->whereIn('id', $owner_ids); //货主
-        })->orderByDesc('created_at');
+        })->orderByDesc('order_trackings.created_at')
+        ->orderBy('order_trackings.order_client_code');
 
         $queryParam = [
             'start_at' => ['alias' => 'pick_up_at', 'startDate' => ' 00:00:00'],
@@ -94,9 +94,8 @@ class OrderTrackingService
 
         if ($params['ids'] ?? false) {
             $ids = explode(',', $params['ids']);
-            $query->whereIn('id', $ids);
+            $query->whereIn('order_trackings.id', $ids);
         }
-
         return $query;
     }
 
@@ -105,59 +104,29 @@ class OrderTrackingService
         return $this->getConditionQuery($params)->paginate($params['paginate'] ?? 50);
     }
 
-    public function export($params)
+    public function getSql($params)
     {
-        if ($params['data'] ?? false) { // 按id
-            $trackOrders = $this->getConditionQuery($params);
-        } else {
-            $trackOrders = $this->getConditionQuery($params);
+        if($params['data'] ?? false){
+            $params['ids'] = $params['data'];
         }
-        return $this->downLoadAsExec($trackOrders->get());
+        $order_tracking_colnums = "case order_trackings.order_client_code when  order_trackings.web_order_number then '' when order_trackings.order_client_code then  order_trackings.order_client_code end order_client_code,";
+        $order_tracking_colnums .= 'order_trackings.web_order_number,order_trackings.pick_up_at,order_trackings.sale,order_trackings.client,order_trackings.order_remark,order_trackings.gross_weight,order_trackings.bulk,';
+        $order_tracking_colnums .= 'order_trackings.pallet_total,order_trackings.planning_sent_at,order_trackings.is_on_duty_shift,order_trackings.is_arrival,order_trackings.signed_at,order_trackings.receive_bill_status,order_trackings.remark';
+        return  $this->getConditionQuery($params)->selectRaw($order_tracking_colnums)
+            ->leftJoin('order_package_commodities','order_trackings.order_package_commodity_id','order_package_commodities.id')
+                ->selectRaw('order_package_commodities.amount amount')
+            ->leftJoin('order_packages','order_package_commodities.order_package_id','order_packages.id')
+                ->selectRaw('order_packages.logistic_number logistic_number')
+            ->leftJoin('orders','order_packages.order_id','orders.id')
+                ->selectRaw('orders.city city')
+            ->leftJoin('logistics','orders.logistic_id','logistics.id')
+                ->selectRaw("case logistics.code when 'ZT' then '新杰物流' else  logistics.name end  logistic_name")
+            ->leftJoin('commodities','order_package_commodities.commodity_id','commodities.id')
+                ->selectRaw('commodities.sku sku,commodities.name sku_name')
+            ->leftJoin('owners','orders.owner_id','owners.id')
+               ->selectRaw('owners.name owners_name')
+            ->sql();
     }
-
-    private function downLoadAsExec($trackOrders)
-    {
-        $row = [[
-            'owner_name' => '公司', 'order_client_code' => '订单号', 'web_order_number' => 'WEB+订单号', 'pick_up_at' => '提货日期', 'sale' => '销售',
-            'client' => '客户', 'sku' => 'sku', 'sku_name' => '物料描述', 'sku_amount' => '数量', 'order_remark' => '订单备注',
-            'gross_weight' => '重量', 'bulk' => '体积', 'pallet_total' => '托盘合计', 'package_logistic' => '运输方式', 'package_logistic_number' => '运输单号',
-            'order_city' => '到达城市', 'planning_sent_at' => '应送达时间', 'is_on_duty_shift' => '是否赶上卡班', 'is_arrival' => '到货情况', 'signed_at' => '签收日期',
-            'receive_bill_status' => '签收单情况', 'remark' => '备注']];
-
-        $list = [];
-        $i = 0;
-
-        foreach ($trackOrders as $trackOrder) {
-            $logisticName = $trackOrder['commodities']['package']['order']['logistic']['name'];
-            $logistic_number = $trackOrder['commodities']['package']['logistic_number'];
-            $list[$i]['owner_name'] = $trackOrder['owner']['name'] ?? '';
-            $list[$i]['order_client_code'] = $trackOrder['web_order_number'] ? '' : $trackOrder['order_client_code'];
-            $list[$i]['web_order_number'] = $trackOrder['web_order_number'] ?? '';
-            $list[$i]['pick_up_at'] = $trackOrder['pick_up_at'] ?? '';
-            $list[$i]['sale'] = $trackOrder['sale'] ?? '';
-            $list[$i]['client'] = $trackOrder['client'] ?? '';
-            $list[$i]['sku'] = $trackOrder['commodities']['commodity']['sku'];
-            $list[$i]['sku_name'] = $trackOrder['commodities']['commodity']['name'];
-            $list[$i]['sku_amount'] = $trackOrder['commodities']['amount'];
-            $list[$i]['order_remark'] = $trackOrder['order_remark'];
-            $list[$i]['gross_weight'] = $trackOrder['gross_weight'];
-            $list[$i]['bulk'] = $trackOrder['bulk'];
-            $list[$i]['pallet_total'] = $trackOrder['pallet_total'];
-            $list[$i]['package_logistic'] = $trackOrder['commodities']['package']['order']['logistic']['name'];
-            $list[$i]['package_logistic_number'] = $logisticName  == '新杰物流' ?   ( $trackOrder['web_order_number'] ? $trackOrder['web_order_number'] : $trackOrder['order_client_code']) : $logistic_number;
-            $list[$i]['order_city'] = $trackOrder['commodities']['package']['order']['city'];
-            $list[$i]['planning_sent_at'] = $trackOrder['planning_sent_at'];
-            $list[$i]['is_on_duty_shift'] = $trackOrder['is_on_duty_shift'];
-            $list[$i]['is_arrival'] = $trackOrder['is_arrival'];
-            $list[$i]['signed_at'] = $trackOrder['signed_at'];
-            $list[$i]['receive_bill_status'] = $trackOrder['receive_bill_status'];
-            $list[$i]['remark'] = $trackOrder['remark'];
-            $i++;
-        }
-
-        return Excel::download(new Export($row, $list), date('YmdHis', time()) . '-订单跟踪.xlsx');
-    }
-
     /**
      * @param $startData
      */
@@ -355,7 +324,8 @@ class OrderTrackingService
                         'order_remark' => $params['order_remark'],
                         'web_order_number' => $params['web_order_number'],
                         'gross_weight'  => $gross_weight,
-                        'bulk' => $bulk
+                        'bulk' => $bulk,
+                        'planning_sent_at' => $params['web_order_number']??'planning_sent_at'
                     ];
                 }
             }
@@ -418,11 +388,11 @@ class OrderTrackingService
         if(preg_match('/^O[\d]/',$orderHeader['soreference1'] ?? '') > 0){
             $web_order_number = $orderHeader['soreference1'];
         }
-        $pick_up_at = $orderHeader->lastshipmenttime ?? null;
-        if(isset($pick_up_at)){
+        $planning_sent_at = $orderHeader->lastshipmenttime ?? null;
+        if(isset($planning_sent_at)){
              $logisticTiming = app(LogisticTimingService::class)->findByParams($orderHeader['c_city']??'',$orderHeader['c_province']??'',$order->logistic_id);
              if($logisticTiming){
-                 $pick_up_at = Carbon::create($pick_up_at)->addDays($logisticTiming->days_at_working);
+                 $planning_sent_at = Carbon::create($planning_sent_at)->addDays($logisticTiming->days_at_working);
              }
         }
         return [
@@ -430,8 +400,9 @@ class OrderTrackingService
             'client' => $client,
             'created_at' => $order->created_at,
             'order_remark' => $order_remark,
-            'pick_up_at' => $pick_up_at, // 提货时间
-            'web_order_number' =>$web_order_number
+            'pick_up_at' => $orderHeader->lastshipmenttime, // 提货时间
+            'web_order_number' =>$web_order_number,
+            'planning_sent_at' => $planning_sent_at
         ];
     }
 

+ 1 - 8
resources/views/order/issue/edit.blade.php

@@ -7,11 +7,6 @@
     <div class="container-fluid d-none" id="editOrderIssue">
         <div class="card col-md-8 offset-md-2 ">
             <div class="card-header">问题件修改</div>
-            <input type="hidden" name="order_id" v-model="orderIssues.order_id">
-            <input type="hidden" name="id" v-model="orderIssues.id">
-            <input type="hidden" name="rejected_bill_id" v-model="orderIssues.rejected_bill_id">
-            <input type="hidden" name="order_issue_type_id" v-model="orderIssues.order_issue_type_id">
-            <input type="hidden" name="second_order_id" v-model="orderIssues.second_order_id">
             <div class="card-body">
                 <div class="form-group row">
                     <label for="name" class="col-2 col-form-label text-right">原始客户订单号</label>
@@ -75,7 +70,6 @@
                                 </template>
                             </table>
                         </div>
-
                     </div>
                 </div>
                 <div class="form-group row">
@@ -180,13 +174,12 @@
                 submitFake(){
                     let _this = this;
                     let p= new Promise(function (resolve) {
-                        let client_code = _this.secondOrder.client_code;
+                        let client_code = _this.orderIssues.second_client_no;
                         if(client_code){
                             let data = {clientNo:client_code};
                             axios.post("{{url('apiLocal/order/issue/getOrderInfoByClientNo')}}",data).then(function(res){
                                 if(res.data.success){
                                     _this.secondOrder = res.data.data;
-                                    _this.orderIssues.second_order_id = res.data.data.id;
                                     resolve();
                                 } else {
                                     tempTip.setDuration(4000);

+ 53 - 12
resources/views/order/issue/index.blade.php

@@ -381,10 +381,23 @@
                                     </span>
                                 </span>
                             </td>
-                            <td class="log-td p-0 child-layer-3-hide " valign="middle" align="center" v-if="isShowSecondOrderInfo">
+                            <td class="log-td p-0 child-layer-3-hide" v-if="isShowSecondOrderInfo" v-on:mouseover="edit.orderIssue.id=orderIssue.id" v-on:mouseleave="edit.orderIssue.id = null">
+                                <div class="row position-absolute p-0 m-0" v-if="edit.orderIssue.id === orderIssue.id" :class="edit.orderIssue.id === orderIssue.id ? '':'d-none'">
+                                    <button type="button" class="btn btn-primary " style="margin-top: -35px" @click="edit.orderIssue.showId === orderIssue.id ? edit.orderIssue.showId='':edit.orderIssue.showId=orderIssue.id">
+                                        新
+                                    </button>
+                                </div>
+                                <div class="row p-0 m-0" v-if="edit.orderIssue.showId === orderIssue.id ">
+                                    <div class="form-inline">
+                                        <input class="form-control" :id="'secondLogisticNumber-'+orderIssue.id">
+                                        <button type="button" class="btn btn-sm btn-primary" @click="addSecondLogisticNumber(orderIssue)">
+                                            添加
+                                        </button>
+                                    </div>
+                                </div>
 
-                                <template v-if="orderIssue.second_order">
-                                    <div class=" m-0" :id="'secondOrderNumbers'+orderIssue.id"
+                                <template v-if="orderIssue.second_order !== null">
+                                    <div class="text-center m-0" :id="'secondOrderNumbers'+orderIssue.id"
                                          :class="orderIssue.seconderCount > 1 ? 'collapse':''"
                                          :data-value="orderIssue.seconderCount = 0">
                                         <p class="m-0 p-0  text-muted " v-for="logisticNumber in orderIssue.second_order.logisticNumbers"
@@ -401,7 +414,7 @@
                                 </template>
                             </td>
                             <td class="child-layer-3-hide p-0" colspan="3" v-if="isShowSecondOrderInfo">
-                                <template v-if="orderIssue.second_order" class=" p-0">
+                                <template v-if="orderIssue.second_order!==null" class=" p-0">
                                     <div class="m-0 p-0" :class="orderIssue.secondeOrderCount > 1 ? 'collapse':''"
                                          :id="'secondOrder'+orderIssue.id">
                                         <table class="table table-sm  m-0 "
@@ -671,6 +684,7 @@
                     batchStoreLogs:'',
                     isShow:[],
                     addSendOrderIssueID:'',
+                    orderIssue: {id: null,showId:''},
                 },
             },
             mounted: function () {
@@ -683,10 +697,6 @@
                 $('.header-1').attr('colspan',countShow);
 
                 $('#list').removeClass("d-none");
-
-
-
-
                 let _this = this;
                 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 = [
@@ -1304,12 +1314,16 @@
                     axios.post('{{url('apiLocal/order/issue/editSecondClientNo')}}',data).then(function(response){
                         if(response.data.success){
                             if(response.data.message){
-                                orderIssue.second_client_no =value
-                                orderIssue.second_order = null
+                                orderIssue.second_client_no = value
+                                orderIssue.second_order = null;
                                 tempTip.okWindow(response.data.message,'确认')
                             }else{
                                 orderIssue.second_client_no =value
-                                orderIssue.second_order = response.data.order
+                                if(response.data.order === null){
+                                    orderIssue.second_order = null;
+                                }else{
+                                    orderIssue.second_order = response.data.order
+                                }
                                 tempTip.setDuration(2000)
                                 tempTip.showSuccess('修改成功')
                             }
@@ -1341,7 +1355,34 @@
                 },
                 removeFocusing(e){
                     $(e.target).parent('tr').removeClass('focusing')
-                }
+                },
+                addSecondLogisticNumber(orderIssue){
+                    let logisticNumber = $('#secondLogisticNumber-'+orderIssue.id).val()
+                    let data = {id:orderIssue.id,logistic_number:logisticNumber,client_code:orderIssue.second_client_no}
+                    let _this = this;
+                    axios.post('{{url('apiLocal/order/issue/secondOrderAddOrderPackage')}}',data).then(function(response){
+                        if(response.data.success){
+                            tempTip.setDuration(2000)
+                            tempTip.showSuccess('添加成功')
+                            if(orderIssue.second_order == null){
+                                orderIssue.second_order = response.data.order
+                            }
+                            if(orderIssue.second_order.packages==null){
+                                orderIssue.second_order.packages = []
+                            }
+                            orderIssue.second_order.packages.push(response.data.orderPackage);
+                            _this.edit.orderIssue.id = ''
+                            _this.edit.orderIssue.showId = ''
+                        }else{
+                            tempTip.setDuration(2000)
+                            tempTip.show(response.data.fail_info)
+                        }
+                    }).catch(function(error){
+                        tempTip.setDuration(2000)
+                        tempTip.show('添加失败'+error)
+                    });
+                },
+
             }
         })
         // modal 隐藏时修改 input 为空