Prechádzať zdrojové kódy

问题件标记生成 BUG:从订单页生成了两个一样的问题件 在生成问题件时再进行一次校验

ajun 5 rokov pred
rodič
commit
d3c47beac9

+ 5 - 1
app/Http/Controllers/OrderIssueController.php

@@ -164,7 +164,11 @@ class OrderIssueController extends Controller
             return ['success' => false, 'fail_info' => '没有传入的订单编号'];
         }
         /** @var OrderIssueService $orderIssueService */
-        $orderIssueService = app('orderIssueService');
+        $orderIssueService = app(OrderIssueService::class);
+        $exits_orderNos = $orderIssueService->校验问题件是否存在_WMS订单号_返回存在的订单号($request->input('orderNos'));
+        if(count($exits_orderNos)>0){
+            return ['success'=>false,'fail_info'=>'标记问题件存在已有订单号','exitsOrderNos' =>$exits_orderNos];
+        }
         return $orderIssueService->orderIssueTag($request->all());
     }
 

+ 13 - 2
app/Services/OrderIssueService.php

@@ -30,7 +30,6 @@ class OrderIssueService
         OrderIssue::query()->insert($params);
     }
 
-
     public function getQuery(array $arr, array $condition = null)
     {
         if (!isset($condition)) {
@@ -272,7 +271,6 @@ class OrderIssueService
         $orderHeaders = OracleDOCOrderHeader::query()->with(['oracleDOCOrderDetails', 'actAllocationDetails','oracleBASCode'])->whereIn('orderNo',$orderNos)->get();
         $bool = $this->createOrderIssueByWmsOrder($orderHeaders,$params['typeId'],$params['result_explain']);
         if($bool){
-
             return ['success'=>$bool];
         }else{
             return ['success'=>$bool,'fail_info'=>'问题件创建失败'];
@@ -478,4 +476,17 @@ class OrderIssueService
         return array_intersect($exits_logistic_number,$logisticNumbers);
     }
 
+    /**
+     * @param array $orderNos
+     * @return array
+     */
+    public function 校验问题件是否存在_WMS订单号_返回存在的订单号($orderNos)
+    {
+        $orderIssues = OrderIssue::query()->with('order')->whereHas('order',function($query)use($orderNos){
+            $query->whereIn('code',$orderNos);
+        })->get();
+        $exits_logistic_number = array_diff(array_unique(data_get($orderIssues,'*.order.code')),['',null]);
+        return array_intersect($exits_logistic_number,$orderNos);
+    }
+
 }

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

@@ -642,8 +642,13 @@
                             })
                             _this.checkData = []
                         }else{
-                            tempTip.setDuration(4000);
-                            tempTip.show(res.data.fail_info);
+                            if(res.data.exitsOrderNos){
+                                _this.message.checkOrderIssueMessage = res.data.fail_info+res.data.exitsOrderNos
+                                $("#checkModal").modal('show')
+                            }else{
+                                tempTip.setDuration(3000);
+                                tempTip.show(res.data.fail_info);
+                            }
                         }
                     }).catch(function(err){
                         tempTip.setDuration(3000);