ajun 5 лет назад
Родитель
Сommit
3a1caec68c

+ 7 - 7
app/Http/Controllers/OrderIssueController.php

@@ -171,13 +171,13 @@ class OrderIssueController extends Controller
         if (!$request->input('orderNos')) {
             return ['success' => false, 'fail_info' => '没有传入的订单编号'];
         }
-        /** @var OrderIssueService $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());
+        /** @var OrderIssueService $service */
+        $service = app(OrderIssueService::class);
+        $exits_orderNos = $service->校验问题件是否存在_WMS订单号_返回存在的订单号($request->input('orderNos'));
+        if(count($exits_orderNos)>0) return ['success'=>false,'fail_info'=>'标记问题件存在已有订单号','exitsOrderNos' =>$exits_orderNos];
+        $soft_delete_order_nos = $service->checkOrderIssueIsExistAndSoftDelete($request['orderNos']);
+        if(count($soft_delete_order_nos)>0) return ['success'=>false,'fail_info'=>'订单对应问题件存在回收站,如需要请从回收站恢复','exitsOrderNos' =>$soft_delete_order_nos];
+        return $service->orderIssueTag($request->all());
     }
 
     public function apiDestroy(Request $request)

+ 9 - 0
app/Services/OrderIssueService.php

@@ -297,6 +297,15 @@ class OrderIssueService
         return array_intersect($exits_logistic_number, $orderNos);
     }
 
+    public function checkOrderIssueIsExistAndSoftDelete($orderNos): array
+    {
+        $orderIssues = OrderIssue::query()->onlyTrashed()->whereIn('order_id',function($query)use($orderNos){
+            $query->from('orders')->selectRaw('id')->whereIn('code',$orderNos);
+        })->get();
+        $exits_logistic_number = array_diff(array_unique(data_get($orderIssues, '*.order.code')), ['', null]);
+        return array_intersect($exits_logistic_number, $orderNos);
+    }
+
     /**
      * 导入处理字段
      * @param array $ids

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

@@ -663,19 +663,20 @@
                     tempTip.waitingTip('处理中,请稍候');
                     let data = {orderNos:this.checkData,typeId: this.typeId,result_explain:this.result_explain};
                     axios.post("{{url('apiLocal/order/issue/orderIssueTag')}}",data).then(function(res){
-                        tempTip.setDuration(5000)
+                        tempTip.setDuration(5000);
                         tempTip.cancelWaitingTip();
                         if(res.data.success){
-                            tempTip.setDuration(3000)
-                            tempTip.showSuccess('已标记为问题件')
+                            tempTip.setDuration(3000);
+                            tempTip.showSuccess('已标记为问题件');
                             _this.checkData.forEach(function(orderNo){
                                 _this.orderIssueNos.push(orderNo)
-                            })
+                            });
                             _this.checkData = []
                         }else{
+                            console.log(res.data);
                             if(res.data.exitsOrderNos){
-                                _this.message.checkOrderIssueMessage = res.data.fail_info+res.data.exitsOrderNos
-                                $("#checkModal").modal('show')
+                                _this.message.checkOrderIssueMessage = res.data.fail_info+res.data.exitsOrderNos;
+                                $("#checkModal").modal('show');
                             }else{
                                 tempTip.setDuration(3000);
                                 tempTip.show(res.data.fail_info);