Procházet zdrojové kódy

一键揽收,分配留待后续调用

Zhouzhendong před 4 roky
rodič
revize
8f6f63d559

+ 1 - 0
app/Exceptions/Handler.php

@@ -47,6 +47,7 @@ class Handler extends ExceptionHandler
 
     public function render( $request, Throwable $exception)
     {
+        \Illuminate\Support\Facades\Log::info("抓取内存耗尽错误",debug_backtrace(DEBUG_BACKTRACE_PROVIDE_OBJECT,5));
         $errMsg='';
         try{
             if (substr($exception->getFile(),-(strlen("FatalError.php")))==='FatalError.php'){

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

@@ -469,7 +469,7 @@ sql;
                         ->select('orderno')
                         ->whereIn('orderno', $orderno)
                         ->whereIn('carriername', ['中通(轻小包裹)', '中通', '中通速递']) // 承运商是中通
-                        ->whereBetween('sostatus', [0, 63]); //状态 0 63
+                        ->where('sostatus', '!=','90'); //状态 0 63
                 })
                 ->pluck('picktotraceid');
             $logisticNums = OrderPackage::query()
@@ -494,7 +494,7 @@ sql;
         if (!$collectUpLoadResult['success']) {
             $error['collectUpload'] = $collectUpLoadResult['message'];
         }
-        /** @var OrderService $orderService */
+        /*
         $orderService = app('OrderService');
         //根据快递单号查询orderno
         $allocationOrdernos = OrderPackage::query()
@@ -509,7 +509,7 @@ sql;
         if ($strict) {
             //输入的orderno与最终可以一键揽收的orderno取差集合
             $errorOrderno =  array_diff($inOrderno, $allocationOrdernos->toArray());
-        }
+        }*/
 
         $result = [];
         if (!empty($error)) {
@@ -521,7 +521,7 @@ sql;
         }
         else {
             $result['success']=true;
-            $result['message']='一键揽收分配完成';
+            $result['message']='一键揽收完成';
         }
         return $result;
     }

+ 31 - 7
app/Http/Controllers/TestController.php

@@ -192,15 +192,39 @@ class TestController extends Controller
         }
         app("BatchService")->assignTasks($batches);
     }
-
+    /**
+     * 检查和处理揽收
+     *
+     * @param OrderPackage|\stdClass $package
+     */
+    public function checkingAndProcess(OrderPackage $package, int $lineNo)
+    {
+        //校验快递商 订单状态 复核标记 揽收标记
+        $package->loadMissing("order.logistic");
+        if ($package->collecting_status == '1' || !$package->logistic_number)dd(1);
+        if (strpos($package->order->logistic->code ?? '','ZTO') === false)dd(2);
+        $statusMapping = array_flip(Order::STATUS);
+        //if (($statusMapping[$package->order->wms_status] ?? 99) > 63)dd(3);
+        /** @var OrderPackageService $orderPackageService */
+        $orderPackageService = app('OrderPackageService');
+        $result = $orderPackageService->collectUpload([$package->logistic_number]);
+        dump($result);
+        if (!$result["success"]){
+            dd("自动揽收失败",["message"=>$result["message"],"param"=>$package->logistic_number]);
+        }
+        $result = app("OrderService")->allocation($package->order->code,$lineNo);
+        dump($result);
+        if (mb_substr($result,0,3)=='000'){
+            if (OrderPackage::query()->where("id",$package->id)
+                    ->where("collecting_status",'0')->update(["collecting_status"=>'1'])!=1)
+                dd("自动揽收异常",["message"=>"未能成功修改揽收标记","param"=>$package->toArray()]);
+        }else  dd("自动揽收失败",["message"=>"分配失败:{$result}","param"=>$package->order->code." : {$lineNo}"]);
+    }
     public function test()
     {
-        /** @var OwnerPriceOperationService $service */
-        $service = app("OwnerPriceOperationService");
-        $rejected = RejectedBill::query()->with("items")->find(838755);
-        list($id,$money,$taxFee) = $service->matching($rejected, Feature::MAPPING["rejected_bill"], $rejected->id_owner, "入库");
-        dd($id,$money,$taxFee);
-        dd($rejected);
+        $package = OrderPackage::query()->find(17535630);
+        $line = 4;
+        dd($this->checkingAndProcess($package,$line));
 
         $a = memory_get_usage();
         $tmp = str_repeat('http://blog.huachen.me/', 4000);

+ 5 - 2
app/Jobs/PackageCollectingAllocation.php

@@ -45,11 +45,14 @@ class PackageCollectingAllocation implements ShouldQueue
             Log::warning("自动揽收失败",["message"=>$result["message"],"param"=>$this->orderPackage->logistic_number]);
             return;
         }
-        $result = app("OrderService")->allocation($this->orderPackage->order->code,$this->lineNo);
+        if (OrderPackage::query()->where("id",$this->orderPackage->id)
+                ->where("collecting_status",'0')->update(["collecting_status"=>'1'])!=1)
+            Log::warning("自动揽收异常",["message"=>"未能成功修改揽收标记","param"=>$this->orderPackage->toArray()]);
+        /*$result = app("OrderService")->allocation($this->orderPackage->order->code,$this->lineNo);
         if (mb_substr($result,0,3)=='000'){
             if (OrderPackage::query()->where("id",$this->orderPackage->id)
                 ->where("collecting_status",'0')->update(["collecting_status"=>'1'])!=1)
                 Log::warning("自动揽收异常",["message"=>"未能成功修改揽收标记","param"=>$this->orderPackage->toArray()]);
-        }else Log::warning("自动揽收失败",["message"=>"分配失败:{$result}","param"=>$this->orderPackage->order->code." : {$this->lineNo}"]);
+        }else Log::warning("自动揽收失败",["message"=>"分配失败:{$result}","param"=>$this->orderPackage->order->code." : {$this->lineNo}"]);*/
     }
 }

+ 6 - 2
app/Services/OrderPackageService.php

@@ -14,6 +14,7 @@ use App\Traits\ServiceAppAop;
 use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Http\Client\Response;
 use Illuminate\Support\Facades\Http;
+use Illuminate\Support\Facades\Log;
 
 
 class OrderPackageService
@@ -308,8 +309,11 @@ class OrderPackageService
         if ($package->collecting_status == '1' || !$package->logistic_number)return;
         if (strpos($package->order->logistic->code ?? '','ZTO') === false)return;
         $statusMapping = array_flip(Order::STATUS);
-        if (($statusMapping[$package->order->wms_status] ?? 0) > 63)return;
-        //dispatch(new PackageCollectingAllocation($package,$lineNo));
+        if (($statusMapping[$package->order->wms_status] ?? 90) == 90){
+            Log::warning("自动揽收跳出",["status"=>$package->order->wms_status]);
+            return;
+        }
+        dispatch(new PackageCollectingAllocation($package,$lineNo));
     }
 
     /**

+ 2 - 2
resources/views/order/index/delivering.blade.php

@@ -45,8 +45,8 @@
                                 @click="manualBack()">一键回传</button>
                     @endcan
 {{--                    @can('订单管理-订单-一键揽收')--}}
-                        <button class="btn btn-sm ml-1 btn-success tooltipTarget" title="订单一键揽收必须满足条件:承运商为:“中通” 订单状态为“播种完成,部分装箱,完全装箱,部分装车,装车完成,部分发运,完全发运”;订单未冻结;订单有快递单号,快递未揽收"
-                                @click="collectUpload()">一键揽收分配</button>
+                        <button class="btn btn-sm ml-1 btn-success tooltipTarget" title="订单一键揽收必须满足条件:承运商为:“中通” 订单状态未取消;订单未冻结;订单有快递单号,快递未揽收"
+                                @click="collectUpload()">一键揽收</button>
 {{--                    @endcan--}}
                 </div>
                 <div class="modal fade " style="top: 20%" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">