Sfoglia il codice sorgente

Merge branch 'zzd'

LD 5 anni fa
parent
commit
a8209f41f9

+ 7 - 4
app/Http/Controllers/api/thirdPart/weight/PackageController.php

@@ -178,6 +178,7 @@ class PackageController extends Controller
         $measuringMachine->turnOn();
         $measuringMachine->turnOffInMinutes(30);
 
+        /** @var OrderPackage $package */
         $package=OrderPackage::query()->where('logistic_number',$request['barcode'])->first();
 
         $edges=[$request['length']??0,$request['width']??0,$request['height']??0];
@@ -217,13 +218,14 @@ class PackageController extends Controller
         }
         if (!$package){
             $logisticNumber=$request['barcode'];
-            $order = app('orderService')->logisticNumberCreateOrder($logisticNumber);
+            /** @var $orderService OrderService */
+            $orderService = app('orderService');
+            $order = $orderService->logisticNumberCreateOrder($logisticNumber);
             if (!$order) {
                 $response=["msg"=>"保存时发生错误(未在WMS找到该单)!","code"=>500,"data"=>null];
                 return json_encode($response,JSON_UNESCAPED_UNICODE);
             }
             $package=new OrderPackage([
-                /** @var OrderService */
                 'order_id' => $order->id,
                 'logistic_number'=>$logisticNumber,
                 'measuring_machine_id'=>$measuringMachine->id,
@@ -239,8 +241,9 @@ class PackageController extends Controller
             $package->fetchPaperBox();
             try{
                 $package->save();
+                $package->load(['order','paperBox','measuringMachine']);
             }catch (\Exception $e){
-                $response=["msg"=>"保存时发生错误(未下发)!","code"=>500,"data"=>null];
+                $response=["msg"=>$e->getMessage(),"code"=>500,"data"=>$e->getTraceAsString()];
                 $this->log(__METHOD__,'weightApi(ERROR)'.__FUNCTION__,json_encode($request).'||'.json_encode($response).'||'.json_encode($e),null);
                 return json_encode($response,JSON_UNESCAPED_UNICODE);
             }
@@ -253,7 +256,7 @@ class PackageController extends Controller
                 return json_encode($response,JSON_UNESCAPED_UNICODE);
             }
         }
-        if(!empty($package->order_code))
+        if(!empty($package->order_id))
             Waybill::setWeightByOrderCode($package->order_code,$package->weight);
             event(new WeighedEvent($package));
             $response=["msg"=>"保存成功",

+ 7 - 7
app/OrderPackage.php

@@ -84,14 +84,14 @@ class OrderPackage extends Model
     }
     public function fetchAllFromOracle(){
         if(empty($this->oracleInfo))return null;
-        $this->fetchOwnerFromOracle();
-        $this->fetchLogisticFromOracle();
-        $this['recipient'] = $this->oracleInfo['consigneename'];
-        $this['order_code'] = $this->oracleInfo['orderno'];
+/*        $this->fetchOwnerFromOracle();
+        $this->fetchLogisticFromOracle();*/
+/*        $this['recipient'] = $this->oracleInfo['consigneename'];
+        $this['order_code'] = $this->oracleInfo['orderno'];*/
         $this['batch_rule'] = $this->oracleInfo['descr'];
-        $this['recipient_mobile'] = $this->oracleInfo['c_tel2']??$this->oracleInfo['c_tel1'];
+/*        $this['recipient_mobile'] = $this->oracleInfo['c_tel2']??$this->oracleInfo['c_tel1'];
         if(!$this['logistic_number']&&$this->oracleInfo['soreference5'])
-            $this['logistic_number'] = $this->oracleInfo['soreference5'];
+            $this['logistic_number'] = $this->oracleInfo['soreference5'];*/
         $this['batch_number'] = $this->oracleInfo['waveno']??null;
     }
     static public function createPackagesFromBatchCode($batchCode,$weight){
@@ -196,7 +196,7 @@ class OrderPackage extends Model
         if(!$max)$max=$this['length'];
         if(!$centre)$centre=$this['width'];
         if(!$min)$min=$this['height'];
-        if(!$owner_id) $owner_id = $this['owner_id'];
+        if(!$owner_id) $owner_id = $this['order'] ? $this['order']['owner_id'] : null;
         if(!$owner_id) {
             $owner = $this->fetchOwnerFromOracle();
             $owner_id = $owner['id'];

+ 2 - 0
app/Providers/AppServiceProvider.php

@@ -4,6 +4,7 @@ namespace App\Providers;
 
 use App\Http\Controllers\Controller;
 use App\Services\InventoryCompareService;
+use App\Services\OracleDOCOrderHeaderService;
 use App\Services\OrderIssuePerformanceService;
 use App\OracleActAllocationDetail;
 use App\Services\AllInventoryService;
@@ -89,5 +90,6 @@ class AppServiceProvider extends ServiceProvider
         app()->singleton('orderPackageService',OrderPackageService::class);
         app()->singleton('orderIssueService',OrderIssueService::class);
         app()->singleton('orderService',OrderService::class);
+        app()->singleton('oracleDocOrderHeaderService',OracleDOCOrderHeaderService::class);
     }
 }

+ 7 - 0
app/Services/OracleDOCOrderHeaderService.php

@@ -7,4 +7,11 @@ use App\OracleDOCOrderHeader;
 Class OracleDOCOrderHeaderService
 {
 
+    function first(array $params){
+        $order = OracleDOCOrderHeader::query();
+        foreach ($params as $column => $value){
+            $order->where($column, $value);
+        }
+        return $order->first();
+    }
 }

+ 10 - 7
app/Services/OrderService.php

@@ -116,15 +116,18 @@ class OrderService
          * @var OracleActAllocationDetails $actAllocationDetail
          */
         $actAllocationDetail = app('oracleActAllocationDetailService')->first(['picktotraceid' => $logistic_number]);
-        if (!$actAllocationDetail) return null;
+        if ($actAllocationDetail) {
+            $order = $this->first(['code' => $actAllocationDetail->orderno]);
+            if ($order) return $order;
 
-        $order = $this->first(['code' => $actAllocationDetail->orderno]);
-        if ($order) return $order;
+            $actAllocationDetail->load(['oracleDocOrderHeader' => function ($query) {
+                $query->with('oracleBASCode');
+            }]);
+            $orderHeader = $actAllocationDetail->oracleDocOrderHeader ?? null;
+        }else{
+            $orderHeader = app('oracleDocOrderHeaderService')->first(['soreference5' => $logistic_number]);
+        }
 
-        $actAllocationDetail->load(['oracleDocOrderHeader' => function ($query) {
-            $query->with('oracleBASCode');
-        }]);
-        $orderHeader = $actAllocationDetail->oracleDocOrderHeader ?? null;
         if ($orderHeader == null) return null;
 
         /** @var OwnerService $owner */

+ 1 - 1
resources/views/weight/package/index.blade.php

@@ -78,7 +78,7 @@
                         weight:'{{$package->weight}}', length:'{{$package->length}}',width:'{{$package->width}}',height:'{{$package->height}}',
                         bulk:'{{$package->bulk}}',paperBoxName:'{{$package->paper_box ? $package->paper_box->name : ''}}',
                         status:'{{$package->status}}',created_at:'{{$package->created_at}}',weighed_at:'{{$package->weighed_at}}',
-                        paperBox : {!! $package->paperBox !!} },
+                        paperBox : {!! $package->paperBox??'""' !!} },
                     @endforeach
                 ],
                 i:0,

+ 1 - 1
tests/package.http

@@ -1,4 +1,4 @@
 POST http://bswas/api/thirdPart/weight/new
 Content-Type: application/json
 
-{"id": "abc6","barcode": "5466422500912e","weight": "13","length": 3,"width": 1,"height": 2}
+{"id": "abc6","barcode": "547181870002","weight": "0.31","length": 3,"width": 1,"height": 2}