Переглянути джерело

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

LD 5 роки тому
батько
коміт
376fc567bc

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

@@ -174,10 +174,6 @@ class OrderIssueController extends Controller
         /** @var OrderIssueService $orderIssueService */
         $orderIssueService = app(OrderIssueService::class);
         $exits_orderNos = $orderIssueService->校验问题件是否存在_WMS订单号_返回存在的订单号($request->input('orderNos'));
-        $count = OracleDOCOrderHeader::query()->with('oracleBASCode')->whereIn('OrderNo',$request['orderNos'])->whereHas('oracleBASCode',function($query){
-            $query->whereNotIn('codename_c',['完全装箱','订单完成','完全发运','分配完成']);
-        })->count();
-        if($count>0)return ['success'=>false,'fail_info'=>'勾选的订单中有没有完成的订单,请取消勾选'];
         if(count($exits_orderNos)>0){
             return ['success'=>false,'fail_info'=>'标记问题件存在已有订单号','exitsOrderNos' =>$exits_orderNos];
         }

+ 11 - 10
app/Services/OrderIssueService.php

@@ -12,6 +12,7 @@ use App\OrderPackage;
 use App\Order;
 use App\RejectedBill;
 use App\RejectedBillItem;
+use App\ValueStore;
 use Carbon\Carbon;
 use Illuminate\Database\Query\Builder;
 use Illuminate\Http\Request;
@@ -203,7 +204,7 @@ class OrderIssueService
         return $orderIssue;
     }
 
-    public function batchDestroy($ids)
+    public function batchDestroy($ids): array
     {
         try {
             $bool = OrderIssue::query()->whereIn('id', $ids)->delete();
@@ -215,17 +216,17 @@ class OrderIssueService
         }
     }
 
-    public function endOrderIssues(array $ids)
+    public function endOrderIssues(array $ids): int
     {
         return OrderIssue::query()->whereIn('id', $ids)->update(['final_status' => '已解决']);
     }
 
-    public function isExistOrderIssueTypeIsEnd($ids)
+    public function isExistOrderIssueTypeIsEnd($ids): bool
     {
         return OrderIssue::query()->whereIn('id', $ids)->where('final_status', '已解决')->count() > 0;
     }
 
-    public function editOrderIssueSecondClientNo($id, $secondClientNo, &$order = null)
+    public function editOrderIssueSecondClientNo($id, $secondClientNo, &$order = null): bool
     {
         $orderService = app(OrderService::class);
         $orderHeaderService = app('OracleDocOrderHeaderService');
@@ -234,7 +235,7 @@ class OrderIssueService
         return OrderIssue::query()->where('id', $id)->update(['second_client_no' => $secondClientNo]) > 0;
     }
 
-    public function updateSecondLogisticNumber($id, $logisticNumber)
+    public function updateSecondLogisticNumber($id, $logisticNumber): array
     {
         $orderIssue = OrderIssue::query()->where('id',$id)->first();
         // 有填写二次订单号 并没有对应的订单号
@@ -260,7 +261,7 @@ class OrderIssueService
         return ['success' => true, 'order' => $order];
     }
 
-    public function createOrderIssue($logisticNumber, $type, $result_explain, $importedStatus = '正常', $custom_code = null,$hiddenTag = null)
+    public function createOrderIssue($logisticNumber, $type, $result_explain, $importedStatus = '正常', $custom_code = null,$hiddenTag = null): bool
     {
         $orderHeaders = OracleDOCOrderHeader::query()->with(['oracleDOCOrderDetails', 'actAllocationDetails', 'oracleBASCode','orderType'])
             ->whereHas('actAllocationDetails', function ($query) use ($logisticNumber) {
@@ -274,7 +275,7 @@ class OrderIssueService
      * @param array $logisticNumbers
      * @return array
      */
-    public function 校验问题件是否存在_快递单号_返回存在的快递单号($logisticNumbers)
+    public function 校验问题件是否存在_快递单号_返回存在的快递单号($logisticNumbers): array
     {
         $orderIssues = OrderIssue::query()->with('order.packages')->whereHas('order.packages', function ($query) use ($logisticNumbers) {
             $query->whereIn('logistic_number', $logisticNumbers);
@@ -287,7 +288,7 @@ class OrderIssueService
      * @param array $orderNos
      * @return array
      */
-    public function 校验问题件是否存在_WMS订单号_返回存在的订单号($orderNos)
+    public function 校验问题件是否存在_WMS订单号_返回存在的订单号($orderNos): array
     {
         $orderIssues = OrderIssue::query()->with('order')->whereHas('order', function ($query) use ($orderNos) {
             $query->whereIn('code', $orderNos);
@@ -301,7 +302,7 @@ class OrderIssueService
      * @param array $ids
      * @return array|bool[]
      */
-    public function disposeImport(array $ids)
+    public function disposeImport(array $ids): array
     {
         $orderIssues = OrderIssue::query()->with('order')->whereIn('id', $ids)->get();
         if ($orderIssues->count()<count($ids)) {
@@ -331,7 +332,7 @@ class OrderIssueService
         },'orderIssueRejectedBills.rejectedBill.items','issueType','secondOrder.packages.commodities'])->onlyTrashed()->paginate($params['paginate'] ?? 50);
     }
 
-    public function recoverOrderIssue($ids)
+    public function recoverOrderIssue($ids): array
     {
         try {
             $bool = OrderIssue::query()->withTrashed()->whereIn('id', $ids)->restore();

+ 42 - 21
app/Services/OrderPackageCommoditiesService.php

@@ -477,7 +477,7 @@ class OrderPackageCommoditiesService
         unset($del_orderCommodities);
     }
 
-    public function regroupOrderCommodities(&$orderCommodities)
+    public function regroupOrderCommodities(&$orderCommodities):array
     {
         $params = [];
         $orderCommodities->each(function($orderCommodity)use(&$params){
@@ -498,7 +498,7 @@ class OrderPackageCommoditiesService
         return $params;
     }
 
-    public function regroupWmsOrderAllocationDetails(&$orderHeaders)
+    public function regroupWmsOrderAllocationDetails(&$orderHeaders):array
     {
         /**
          * @var OracleDOCOrderHeader $orderHeader
@@ -507,27 +507,48 @@ class OrderPackageCommoditiesService
         foreach ($orderHeaders as $orderHeader) {
             $order_no = $orderHeader->orderno;
             $actAllocationDetails = $orderHeader->actAllocationDetails ?? [];
-            $actAllocationDetails->each(function($item)use(&$params,$order_no){
-                $logistic_number = $item->picktotraceid;
-                $sku = $item->sku;
-                $key = ' orderno='.$order_no.' logsitic_number='.$logistic_number.' sku='.$sku.' ';
-                if(isset($params[$key])){
-                    $params[$key]['amount']+= $item->qty_each;
-                }else{
-                    $params[$key] = [
-                        'orderno'=>$item->orderno,
-                        'logistic_number'=>$item->picktotraceid,
-                        'sku' => $sku,
-                        'amount' => $item->qty_each,
-                        'owner_code' => $item->customerid
-                    ];
-                }
-            });
+            if($orderHeader['sostatus'] == '90'){
+                $logistic_number = $orderHeader['soreference5'];
+                if($logistic_number == '' ) $logistic_number= $orderHeader['orderno'];
+                $oracleDOCOrderDetails = $orderHeader->oracleDOCOrderDetails ?? [];
+                $oracleDOCOrderDetails->each(function($item)use(&$params,$order_no,$logistic_number){
+                    $sku = $item->sku;
+                    $key = ' orderno='.$order_no.' logsitic_number='.$logistic_number.' sku='.$sku.' ';
+                    if(isset($params[$key])){
+                        $params[$key]['amount']+= $item->qty_each;
+                    }else{
+                        $params[$key] = [
+                            'orderno'=>$item->orderno,
+                            'logistic_number'=>$logistic_number,
+                            'sku' => $sku,
+                            'amount' => $item->qtyordered,
+                            'owner_code' => $item->customerid
+                        ];
+                    }
+                });
+            }else{
+                $actAllocationDetails->each(function($item)use(&$params,$order_no){
+                    $logistic_number = $item->picktotraceid;
+                    $sku = $item->sku;
+                    $key = ' orderno='.$order_no.' logsitic_number='.$logistic_number.' sku='.$sku.' ';
+                    if(isset($params[$key])){
+                        $params[$key]['amount']+= $item->qty_each;
+                    }else{
+                        $params[$key] = [
+                            'orderno'=>$item->orderno,
+                            'logistic_number'=>$item->picktotraceid,
+                            'sku' => $sku,
+                            'amount' => $item->qty_each,
+                            'owner_code' => $item->customerid
+                        ];
+                    }
+                });
+            }
         }
         return $params;
     }
 
-    public function filterUpdateParams(&$orderAllocationDetails,&$orderCommodities,&$del_orderCommodities)
+    public function filterUpdateParams(&$orderAllocationDetails,&$orderCommodities,&$del_orderCommodities):array
     {
         $update_params = [];
         foreach ($orderCommodities as $key=>$orderCommodity) {
@@ -548,7 +569,7 @@ class OrderPackageCommoditiesService
         return $update_params;
     }
 
-    public function filterInnerParams(&$orderAllocationDetails,&$orderCommodities)
+    public function filterInnerParams(&$orderAllocationDetails,&$orderCommodities):array
     {
         $inner_params = [];
         foreach ($orderAllocationDetails as $key=>$orderAllocationDetail) {
@@ -560,7 +581,7 @@ class OrderPackageCommoditiesService
         return $inner_params;
     }
 
-    public function filterDeleteParams(&$orderAllocationDetails,&$orderCommodities)
+    public function filterDeleteParams(&$orderAllocationDetails,&$orderCommodities):array
     {
         $del_params = [];
         foreach ($orderCommodities as $key => $orderCommodity) {

+ 12 - 2
app/Services/OrderPackageService.php

@@ -158,6 +158,10 @@ class OrderPackageService
         $dataHandlerService = app('DataHandlerService');
         $logistic_numbers = array_diff(array_unique(data_get($orderHeader->actAllocationDetails,'*.picktotraceid')),['','*']);
         $inner_params = [];
+        if($orderHeader['sostatus'] == '90'){
+            if($orderHeader['soreference5']=='')$logistic_numbers = [$orderHeader['orderno']];
+            else $logistic_numbers = [$orderHeader['soreference5']];
+        }
         $date = Carbon::now()->format('Y-m-d H:i:s');
         $sentAtMap = [];
         foreach ($orderHeader->actAllocationDetails as $item){
@@ -194,7 +198,13 @@ class OrderPackageService
         $dataHandlerService = app(DataHandlerService::class);
         $orderPackageCommoditiesService = app('OrderPackageCommoditiesService');
         $logistic_numbers = data_get($orderHeaders,'*.actAllocationDetails.*.picktotraceid');     // 获取picktotraceid (运单的快递单号)
-        $logistic_numbers = array_unique($logistic_numbers);
+        foreach ($orderHeaders as $orderHeader) {
+            if($orderHeader['sostatus'] == '90'){
+                if($orderHeader['soreference5']=='')$logistic_numbers[] =$orderHeader['orderno'];
+                else $logistic_numbers[] = $orderHeader['soreference5'];
+            }
+        }
+        $logistic_numbers = array_unique(array_values($logistic_numbers));
         $logistic_numbers = array_diff($logistic_numbers,['',' ','*']);
         $packages_maps = $dataHandlerService->dataHeader(['logistic_number'],$packages);
         $exits_number = data_get($packages,'*.logistic_number');
@@ -204,7 +214,7 @@ class OrderPackageService
             $package = $dataHandlerService->getKeyValue(['logistic_number'=>$number],$packages_maps);
             if($package ?? false)$packages[]=$package->id;
         }
-        if(count($packages)==0)return $packages;
+        if(count($packages)==0)return;
         try {
             $bool = OrderPackage::query()->whereIn('id', $packages)->delete();
             $orderPackageCommodities = OrderPackageCommodities::query()->whereIn('order_package_id',$packages)->get();

+ 0 - 12
resources/views/order/index/delivering.blade.php

@@ -649,18 +649,6 @@
                         tempTip.show('没有勾选记录');
                         return;
                     }
-                    let bool = false;
-                    let _this = this;
-                    this.orders.forEach(function(item){
-                        if(!_this.checkData.includes(item.orderno))return;
-                        if(!['完全装箱','订单完成','完全发运','分配完成'].includes(item.ordercodename)){console.log(item.ordercodename);
-                            tempTip.setDuration(2000);
-                            tempTip.show('勾选的订单中有没有完成的订单,请取消勾选');
-                            bool = true;
-                            return;
-                        }
-                    });
-                    if(bool)return;
                     this.isExistByOrderNos();
                 },
                 orderIssueTagSubmit(){

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

@@ -278,7 +278,7 @@
                         <td class=" hide-content p-0 td-yellow child-layer-2 align-center" valign="middle">
                             <template v-if="orderIssue.order">
                                 <span  :class="orderIssue.order.packages.length > 1 ?'collapse ':''" :id="'logisticNumbers'+orderIssue.id" >
-                                    <span class="m-0 p-0 d-inline-block" v-for="package in orderIssue.order.packages" >@{{ package.logistic_number }}&nbsp;&nbsp;</span>
+                                    <span class="m-0 p-0 d-inline-block" v-for="package in orderIssue.order.packages" >@{{ package.logistic_number!==orderIssue.order.code ? package.logistic_number:'' }}&nbsp;&nbsp;</span>
                                 </span>
                                 <button type="button" class="btn btn-sm btn-outline-primary align-middle mt-1" v-if="orderIssue.order.packages.length > 1"
                                         :id="'logisticNumbersBtn'+orderIssue.id" data-toggle="collapse" :data-target="'#logisticNumbers'+orderIssue.id"