Browse Source

修改子序列号的同步

ajun 4 năm trước cách đây
mục cha
commit
74542e0ef8

+ 2 - 2
app/OracleActAllocationDetails.php

@@ -30,9 +30,9 @@ class OracleActAllocationDetails extends Model
         return $this->hasMany(OracleDocOrderSerialNo::class,'allocationdetailsid','allocationdetailsid');
     }
 
-    public function oracleDocOrderSubSerialNo()
+    public function oracleDocOrderSubSerialNos(): HasMany
     {
-        return $this->hasOne(OracleDocOrderSubSerialNo::class,'allocationdetailsid','allocationdetailsid');
+        return $this->hasMany(OracleDocOrderSubSerialNo::class,'allocationdetailsid','allocationdetailsid');
     }
 
 }

+ 3 - 1
app/OracleDocOrderSubSerialNo.php

@@ -17,6 +17,8 @@ class OracleDocOrderSubSerialNo extends Model
     public $timestamps=false;
 
     public function getIncrementing(): bool
-    { return false;}
+    {
+        return false;
+    }
 
 }

+ 10 - 4
app/OrderPackage.php

@@ -10,6 +10,8 @@ use App\Traits\ModelTimeFormat;
 use Carbon\Carbon;
 use Illuminate\Database\Eloquent\Model;
 use Illuminate\Database\Eloquent\Relations\BelongsTo;
+use Illuminate\Database\Eloquent\Relations\HasMany;
+use Illuminate\Database\Eloquent\Relations\HasOne;
 use Illuminate\Support\Arr;
 use Illuminate\Support\Facades\Auth;
 use Illuminate\Support\Facades\DB;
@@ -34,16 +36,20 @@ class OrderPackage extends Model
         'remark' => 'array',
     ];
 
-    public function commodities(){
+    public function commodities(): HasMany
+    {
         return $this->hasMany('App\OrderPackageCommodities','order_package_id','id');
     }
-    public function paperBox(){
+    public function paperBox(): HasOne
+    {
         return $this->hasOne('App\PaperBox','id','paper_box_id');
     }
-    public function measuringMachine(){
+    public function measuringMachine(): HasOne
+    {
         return $this->hasOne('App\MeasuringMachine','id','measuring_machine_id');
     }
-    public function WMSReflectPackage(){
+    public function WMSReflectPackage(): HasOne
+    {
         return $this->hasOne('App\WMSReflectPackage','SOReference5','logistic_number');
     }
 

+ 0 - 1
app/OrderPackageCommoditySerialNumber.php

@@ -15,7 +15,6 @@ class OrderPackageCommoditySerialNumber extends Model
     use ModelTimeFormat;
 
     protected $fillable = ['order_package_commodity_id','serial_number'];
-    //
 
     public function orderPackageCommodity(): BelongsTo
     {

+ 25 - 10
app/Services/OrderPackageCommoditySerialNumberService.php

@@ -28,7 +28,7 @@ class OrderPackageCommoditySerialNumberService
             $query->with('commodity', 'serialNumbers');
         }])->whereIn('order_id', $orderQuery)->get();
 
-        $createdModels = $this->getCreateModelBy($orderHeaders, $orderPackages);
+        $createdModels = $this->getCreateParamsBy($orderHeaders, $orderPackages);
 
         $regroupParams = $this->regroupOrderPackage($orderPackages);
 
@@ -97,7 +97,7 @@ class OrderPackageCommoditySerialNumberService
         if($delete>0)LogService::log(__CLASS__,'Delete OrderPackageCommoditySerialNumber',json_encode($deleteParams));
     }
 
-    public function getCreateModelBy($orderHeaders, $orderPackages): array
+    public function getCreateParamsBy($orderHeaders, $orderPackages): array
     {
         /** @var DataHandlerService $dataHandlerService */
         $dataHandlerService = app(DataHandlerService::class);
@@ -117,26 +117,41 @@ class OrderPackageCommoditySerialNumberService
                 if (!$orderPackage) continue;
                 $orderPackageCommodityMap = [];
                 if(!isset($orderPackage['commodities']))continue;
+
                 foreach ($orderPackage['commodities'] as $orderPackageCommodity) {
                     $sku = $orderPackageCommodity['commodity']['sku'] ?? '';
                     if($sku === '')continue;
                     $orderPackageCommodityMap[$sku] = $orderPackageCommodity;
                 }
 
-                $oracleDocOrderSubSerialNo = $actAllocationDetail['oracleDocOrderSubSerialNo'];
-                if(!$oracleDocOrderSubSerialNo)continue;
-                $createParams = $this->getCreateModel($oracleDocOrderSubSerialNo, $orderPackageCommodityMap);
-                if (count($createParams) == 0) continue;
-                $sku = $oracleDocOrderSubSerialNo['sku'];
+                $oracleDocOrderSubSerialNos = $actAllocationDetail['oracleDocOrderSubSerialNos'];
+                $createParams = $this->getCreateModelsBy($oracleDocOrderSubSerialNos,$orderPackageCommodityMap);
                 if (!isset($orderPackageSerialNumbers[$logisticNumber])) $orderPackageSerialNumbers[$logisticNumber] = [];
-                if (!isset($orderPackageSerialNumbers[$logisticNumber][$sku])) $orderPackageSerialNumbers[$logisticNumber][$sku] = [];
-                $orderPackageSerialNumbers[$logisticNumber][$sku][$createParams['serial_number']] = $createParams;
+                foreach ($createParams as $sku => $createParam) {
+                    if(!isset($orderPackageSerialNumbers[$logisticNumber][$sku])){
+                        foreach ($createParam as $serialNumber=>$item) {
+                            $orderPackageSerialNumbers[$logisticNumber][$sku][$serialNumber] = $item;
+                        }
+                    }
+                    else $orderPackageSerialNumbers[$logisticNumber][$sku] = $createParam;
+                }
             }
         }
         return $orderPackageSerialNumbers;
     }
 
-    public function getCreateModel($oracleDocOrderSubSerialNo, $orderPackageCommodityMap)
+    public function getCreateModelsBy($oracleDocOrderSubSerialNos,$orderPackageCommodityMap): array
+    {
+        $createdParams = [];
+        foreach ($oracleDocOrderSubSerialNos as $oracleDocOrderSubSerialNo) {
+            $model = $this->getCreateModel($oracleDocOrderSubSerialNo,$orderPackageCommodityMap);
+            $sku = $oracleDocOrderSubSerialNo['sku'];
+            $createdParams[$sku][$model['serial_number']] =$model;
+        }
+        return $createdParams;
+    }
+
+    public function getCreateModel($oracleDocOrderSubSerialNo, $orderPackageCommodityMap): array
     {
         $orderPackageCommodity = $orderPackageCommodityMap[$oracleDocOrderSubSerialNo['sku']] ?? null;
         if (!$orderPackageCommodity) return [];

+ 0 - 5
app/Services/OrderTrackingService.php

@@ -2,17 +2,12 @@
 
 namespace App\Services;
 
-use App\OracleBasSKU;
-use App\OracleDOCOrderHeader;
-use App\Order;
 use App\OrderPackageCommodities;
 use App\OrderTracking;
 use App\Services\common\BatchUpdateService;
 use App\Services\common\DataHandlerService;
-use App\Services\common\QueryService;
 use Illuminate\Support\Carbon;
 use Illuminate\Support\Collection;
-use Illuminate\Support\Facades\Auth;
 use App\Traits\ServiceAppAop;
 
 

+ 3 - 3
resources/views/order/tracking/index.blade.php

@@ -3,7 +3,7 @@
 @section('content')
     @component('order.tracking.menu')@endcomponent
     <div class="container-fluid" id="tracking_div">
-        <div style="min-width: 3000px">
+        <div style="min-width: 3550px">
             <div class="d-none container-fluid" id="list">
                 <div id="form_div"></div>
                 @can('订单管理-跟踪-监听')
@@ -75,7 +75,7 @@
                         <th class="td-yellow">运输单号</th>
                         <th class="td-yellow" style="min-width: 120px">到达城市</th>
                         <th class="td-yellow" style="min-width: 120px">照片</th>
-                        <th class="td-yellow" style="min-width: 120px">序列号</th>
+                        <th class="td-yellow" style="min-width: 180px;max-width: 300px">序列号</th>
                         <th class="td-calm" style="min-width: 200px">应送达时间</th>
                         <th class="td-calm" style="min-width: 120px">是否赶上卡班</th>
                         <th class="td-calm" style="min-width: 120px">到货情况</th>
@@ -205,7 +205,7 @@
                             @endcan
                             </div>
                         </td>
-                        <td class="td-yellow">
+                        <td class="td-yellow w-auto">
                             <template v-if="trackOrder.commodities['serial_numbers'].length > 0">
                                     <template v-for="serialNumber in trackOrder.commodities['serial_numbers']">
                                         <transition name="fade">