Selaa lähdekoodia

问题件修改

ajun 5 vuotta sitten
vanhempi
commit
2dce002d7c

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

@@ -3,7 +3,6 @@
 namespace App\Http\Controllers;
 
 use App\Exports\Export;
-use App\Imports\OrderIssueExport;
 use App\Imports\OrderIssueImport;
 use App\Logistic;
 use App\OracleDOCOrderHeader;

+ 9 - 8
app/Imports/OrderIssueImport.php

@@ -26,7 +26,8 @@ class OrderIssueImport implements ToCollection, WithHeadingRow, WithMultipleShee
     public function Collection(Collection $collection)
     {
         $endIS = false;
-        if (!isset($collection->toArray()[0]['原始运单号']) || !isset($collection->toArray()[0]['情况说明']) || !isset($collection->toArray()[0]['问题类别'])) {
+        $headerRow =  $collection->toArray()[0];
+        if (!isset($headerRow['原始运单号']) || !isset($headerRow['情况说明']) || !isset($headerRow['问题类别'])) {
             Cache::put('error', '请检查您第一行标题是否存在原始运单号,情况说明,问题类别');
         } else {
             $endIS = true;
@@ -63,11 +64,11 @@ class OrderIssueImport implements ToCollection, WithHeadingRow, WithMultipleShee
                     $sum++;
                     continue;
                 }
-                $orderPackage = OrderPackage::where('logistic_number', $logistic_number)->first();
+                $orderPackage = OrderPackage::query()->where('logistic_number', $logistic_number)->first();
                 if ($orderPackage) {
-                    $order = Order::where('id', $orderPackage['order_id'])->first();
+                    $order = Order::query()->where('id', $orderPackage['order_id'])->first();
                     if ($order) {
-                        $orderIssue = OrderIssue::where('order_id', $order['id'])->first();
+                        $orderIssue = OrderIssue::query()->where('order_id', $order['id'])->first();
                         if ($orderIssue) {
                             array_push($exception, ['原始运单号' . $row['原始运单号'] . '对应的问题件已存在']);
                             continue;
@@ -77,15 +78,15 @@ class OrderIssueImport implements ToCollection, WithHeadingRow, WithMultipleShee
 
                 $client_no = null;
                 if ($count) {
-                    $orderHeader = OracleDOCOrderHeader::where('soreference5', $logistic_number)->first();
+                    $orderHeader = OracleDOCOrderHeader::query()->where('soreference5', $logistic_number)->first();
                     $client_no = $orderHeader['soreference1'];
                 } else if ($detailCount) {
-                    $detail = OracleActAllocationDetails::where('picktotraceid', $logistic_number)->first();
-                    $orderHeader = OracleDOCOrderHeader::where('orderno', $detail['orderno'])->first();
+                    $detail = OracleActAllocationDetails::query()->where('picktotraceid', $logistic_number)->first();
+                    $orderHeader = OracleDOCOrderHeader::query()->where('orderno', $detail['orderno'])->first();
                     $client_no = $orderHeader['soreference1'];
                 }
                 $order = $orderService->findOrCreateByClientCode($client_no);
-                $orderIssue = OrderIssue::where('order_id', $order['id'])->first();
+                $orderIssue = OrderIssue::query()->where('order_id', $order['id'])->first();
                 $rejectedBill = $rejectedService->getRejectedByClientNo($client_no);
                 if ($orderIssue) {
                     array_push($exception, ['原始运单号' . $row['原始运单号'] . '对应的问题件已存在']);

+ 68 - 100
app/Services/OrderIssueService.php

@@ -2,7 +2,7 @@
 
 namespace App\Services;
 
-use App\OracleDOCASNHeader;
+use App\Http\Controllers\Controller;
 use App\OracleDOCOrderHeader;
 use App\OrderIssue;
 use App\OrderIssueProcessLog;
@@ -10,6 +10,7 @@ use App\OrderPackage;
 use App\Order;
 use App\RejectedBill;
 use App\RejectedBillItem;
+use App\Services\common\QueryService;
 use Illuminate\Http\Request;
 use Illuminate\Support\Arr;
 use Illuminate\Support\Facades\Auth;
@@ -29,32 +30,23 @@ class OrderIssueService
         if (!isset($condition)) {
             $condition = $arr;
         }
+
         $user = Auth::user();
         $owner_ids = $user ? $user->getPermittingOwnerIdsAttribute() : [];
-        $order_ids = [];
         if ($condition['owner_id'] ?? false) {
             $owner_ids = explode(',', $condition['owner_id']);
         }
+
         $query = OrderIssue::with(['top', 'userWorkGroup', 'issueType', 'logs' => function ($query) {
-            $query->with(['user'])->orderByDesc('created_at');
+            $query->with('user')->orderByDesc('created_at');
         }, 'order' => function ($query) {
-            $query->with(['shop', 'logistic', 'owner', 'packages' => function ($query) {
-                $query->with(['commodities' => function ($query) {
-                    return $query->with('commodity');
-                }]);
-            }]);
+            $query->with(['shop', 'logistic', 'owner', 'packages.commodities.commodity' ]);
         }, 'rejectedBill' => function ($query) {
             $query->with(['items']);
         }, 'secondOrder' => function ($query) {
-            $query->with(['shop', 'logistic', 'owner', 'packages' => function ($query) {
-                return $query->with(['commodities' => function ($query) {
-                    return $query->with('commodity');
-                }]);
-            }]);
-        }])->whereHas('order', function ($query) use ($owner_ids) {
-            $query->whereHas('owner', function ($query) use ($owner_ids) {
-                return $query->whereIn('id', $owner_ids);
-            });
+            $query->with(['shop', 'logistic', 'owner', 'packages.commodities.commodity' ]);
+        }])->whereHas('order.owner', function ($query) use ($owner_ids) {
+            $query->whereIn('id', $owner_ids);
         });
 
         $query->selectRaw('order_issues.* ,order_issue_on_tops.id top_id ,order_issue_on_tops.remark,order_issue_on_tops.updated_at top_update')
@@ -62,39 +54,32 @@ class OrderIssueService
             ->whereNull('order_issue_on_tops.deleted_at')
             ->orderBy('order_issue_on_tops.updated_at', 'desc')
             ->orderBy('order_issues.id', 'desc');
+
         return $query;
     }
 
     private function getOrderQuery(array $arr, $query)
     {
         $query->whereHas('order', function ($query) use ($arr) {
-            if ($arr['client_code'] ?? false) {
-                $query->where('client_code', $arr['client_code']);
-            }
-            if ($arr['consignee_name'] ?? false) {
-                $query->where('consignee_name', 'like', $arr['consignee_name']);
-            }
-            if ($arr['consignee_phone'] ?? false) {
-                $query->where('consignee_phone', 'like', $arr['consignee_phone']);
-            }
+            $params = [
+                'consignee_name' => $arr['consignee_name'] ?? '',
+                'consignee_phone' => $arr['consignee_phone'] ?? '',
+                'client_code' => $arr['client_code'] ?? '',
+            ];
+
+            $columnQueryRules=['consignee_phone' => ['like' => ''], 'consignee_name' => ['like' => ''],];
+            $query = app(QueryService::class)->query($params,$query,$columnQueryRules);
+
             if ($arr['logistic_number'] ?? false) {
-                $logistic_number = $arr['logistic_number'];
-                $query->whereHas('packages', function ($query) use ($logistic_number) {
-                    $query->where('logistic_number', $logistic_number);
+                $query->whereHas('packages', function ($query) use ($arr) {
+                    $query->where('logistic_number', $arr['logistic_number']);
                 });
             }
+
             if (($arr['good_barcode'] ?? false) || ($arr['good_name'] ?? false)) {
-                $query->whereHas('packages', function ($query) use ($arr) {
-                    $query->whereHas('commodities', function ($query) use ($arr) {
-                        $query->whereHas('commodity', function ($query) use ($arr) {
-                            if ($arr['good_barcode'] ?? false) {
-                                $query->where('sku', $arr['good_barcode']);
-                            }
-                            if ($arr['good_name'] ?? false) {
-                                $query->where('name', $arr['good_name']);
-                            }
-                        });
-                    });
+                $query->whereHas('packages.commodities.commodity', function ($query) use ($arr) {
+                    $params = ['sku' => $arr['good_barcode'] ?? '', 'name' => $arr['good_name'] ?? '',];
+                    $query = app(QueryService::class)->query($params,$query,[]);
                 });
             }
         });
@@ -103,22 +88,19 @@ class OrderIssueService
                 $query->where('client_code', $arr['send_client_code']);
             });
         }
-
         return $query;
     }
 
     public function getRejectedBillQuery(array $arr, $query)
     {
-        if(  ($arr['logistic_number_return'] ?? false) || ($arr['id_quality_label'] ?? false)){
+        if($arr['logistic_number_return'] ?? false){
             $query->whereHas('rejectedBill', function ($query) use (&$arr) {
-                if ($arr['logistic_number_return'] ?? false) {
-                    $query->where('logistic_number_return', 'like', $arr['logistic_number_return']);
-                }
-                if ($arr['id_quality_label'] ?? false) {
-                    $query->whereHas('items', function ($query) use ($arr) {
-                        $query->where('id_quality_label', $arr['id_quality_label']);
-                    });
-                }
+                $query->where('logistic_number_return', 'like', $arr['logistic_number_return']);
+            });
+        }
+        if($arr['id_quality_label'] ?? false){
+            $query->whereHas('rejectedBill.items', function ($query) use (&$arr) {
+                $query->where('id_quality_label', $arr['id_quality_label']);
             });
         }
         return $query;
@@ -129,41 +111,33 @@ class OrderIssueService
         $query = $this->getQuery($arr, $condition);
         $query = $this->getOrderQuery($condition ?? $arr, $query);
         $query = $this->getRejectedBillQuery($condition ?? $arr, $query);
-
         if (!isset($condition)) {
             $condition = $arr;
         }
-        if (isset($condition['created_at_start'])) {
-            $query->where('order_issues.created_at', '>=', $condition['created_at_start'] . " 00:00:00");
-        }
-        if (isset($condition['created_at_end'])) {
-            $query->where('order_issues.created_at', '<=', $condition['created_at_end'] . " 23:59:59");
-        }
-        if (isset($condition['final_status'])) {
-            $query->where('final_status', $condition['final_status']);
-        }
-        if (isset($condition['order_issue_type_id'])) {
-            $query->where('order_issue_type_id', $condition['order_issue_type_id']);
-        }
+        $params =[
+            'created_at_start' => $condition['created_at_start'] ??'',
+            'final_status' => $condition['final_status'] ??'',
+            'order_issue_type_id' => $condition['order_issue_type_id'] ??'',
+            'logistic_indemnity_money' => $condition['logistic_indemnity_money'] ??'',
+            'baoshi_indemnity_money' => $condition['baoshi_indemnity_money'] ??'',
+            'order_issues.id' => $condition['order_issue_ids'] ?? '',
+        ];
+        $columnQueryRules=[
+            'order_issues.id' => ['alias'=>'order_issues.id','multi' => ','],
+            'created_at_start' => ['alias' => 'order_issues.created_at' , 'startDate' => ' 00:00:00'],
+        ];
+        $query = app(QueryService::class)->query($params,$query,$columnQueryRules);
+
         if (!($condition['is_handle'] ?? false) && !($condition['final_status'] ?? false)) {
             $query->where(function ($query) {
                 $query->where('final_status', '<>', '已解决')->orWhereNull('final_status');
             });
         }
-        if (isset($condition['logistic_indemnity_money'])) {
-            $query->where('logistic_indemnity_money', $condition['logistic_indemnity_money']);
-        }
-        if (isset($condition['baoshi_indemnity_money'])) {
-            $query->where('baoshi_indemnity_money', $condition['baoshi_indemnity_money']);
-        }
-        if (isset($condition['order_issue_ids'])) {
-            $orderIssuesId = $condition['order_issue_ids'];
-            if (is_string($orderIssuesId)) {
-                $orderIssuesId = explode(',', $orderIssuesId);
-            }
-            $query->whereIn('order_issues.id', $orderIssuesId);
+        if($condition['created_at_end'] ?? false){
+            $query->whereHas('logs',function($query) use ($condition){
+                $query->where('created_at',$condition['created_at_end'])->where('type','结束');
+            });
         }
-
         return $query;
     }
 
@@ -172,26 +146,27 @@ class OrderIssueService
         return $this->getConditionQuery($arr)->paginate($arr['paginate'] ?? 50);
     }
 
-    public function orderIssueTag(array $arr)
+    public function orderIssueTag(array $params)
     {
-        $orderNos = $arr['orderNos'];
+        $orderNos = $params['orderNos'];
         $meg = ['success' => false];
-        if ($this->verifyOrderIssue($arr)) {
+        if ($this->verifyOrderIssue($orderNos)) {
             $meg['fail_info'] = '传入订单编号中对应的订单问题已有生成';
             return $meg;
         }
         foreach ($orderNos as $orderNo) {
             $orderIssue = $this->createOrFindByOrderNo($orderNo);
-            OrderIssue::where('id',$orderIssue['id'])->update(['order_issue_type_id'=>$arr['typeId'],'result_explain'=>$arr['result_explain']]);
-            OrderIssueProcessLog::create(['order_issue_id' => $orderIssue['id'], 'user_id' => Auth::user()['id'], 'content' => '标记创建订单问题件', 'type' => '创建']);
+            OrderIssue::query()->where('id',$orderIssue['id'])->update(['order_issue_type_id'=>$params['typeId'],'result_explain'=>$params['result_explain']]);
+            OrderIssueProcessLog::query()->create(['order_issue_id' => $orderIssue['id'], 'user_id' => Auth::user()['id'], 'content' => '标记创建订单问题件', 'type' => '创建']);
         }
+        Controller::logS(__METHOD__,__FUNCTION__,'标记订单问题件'.$orderNos,Auth::user()['id']);
         $meg['success'] = true;
         return $meg;
     }
 
     public function createOrFindByOrderNo($orderNo)
     {
-        $orderHeader = OracleDOCOrderHeader::where('orderNo', $orderNo)->first();
+        $orderHeader = OracleDOCOrderHeader::query()->where('orderNo', $orderNo)->first();
         if (!$orderHeader) {
             return null;
         }
@@ -201,17 +176,17 @@ class OrderIssueService
     public function createOrFind($clientCode)
     {
         $orderService = app('orderService');
-        $orderHeader = OracleDOCOrderHeader::where('SOREFERENCE1', $clientCode)->first();
+        $orderHeader = OracleDOCOrderHeader::query()->where('SOREFERENCE1', $clientCode)->first();
         if (!$orderHeader) {
             return null;
         }
         $order = $orderService->findOrCreateByClientCode($clientCode);
-        $rejectedBill = RejectedBill::where('order_number', $orderHeader['soreference1'])->first();
+        $rejectedBill = RejectedBill::query()->where('order_number', $orderHeader['soreference1'])->first();
         $arr = [
             'order_id' => $order['id'],
-            'rejecetd_bill_id' => $rejectedBill['id'],
+            'rejected_bill_id' => $rejectedBill['id'],
         ];
-        $orderIssue = OrderIssue::create($arr);
+        $orderIssue = OrderIssue::query()->create($arr);
         $this->judgeRejectingStatus($orderIssue);
         $orderIssue->order = $order;
         return $orderIssue;
@@ -264,7 +239,7 @@ class OrderIssueService
         return $orderIssue;
     }
 
-    public function judgeRejectingStatus(OrderIssue $orderIssue)
+    public function judgeRejectingStatus($orderIssue)
     {
         $orderPackageCommoditiesService = new OrderPackageCommoditiesService();
         $rejectedItems = [];
@@ -272,16 +247,12 @@ class OrderIssueService
         if ($orderIssue->rejected_bill_id) {
             $rejectedBill = RejectedBill::find($orderIssue->rejected_bill_id)->first();
             $rejectedBillItems = RejectedBillItem::where('id_rejected_bill', $rejectedBill->id)->get();
-            if ($rejectedBillItems) {
-                foreach ($rejectedBillItems as $item) {
-                    if (!isset($rejectedItems[$item->barcode_goods])) {
-                        $rejectedItems[$item->barcode_goods] = 0;
-                    }
-                    $rejectedItems[$item->barcode_goods] = $item->amount + $rejectedItems[$item->barcode_goods] ?? 0;
-                }
+            foreach ($rejectedBillItems as $item) {
+                if (!isset($rejectedItems[$item->barcode_goods])) {$rejectedItems[$item->barcode_goods] = 0;}
+                $rejectedItems[$item->barcode_goods] = $item->amount + $rejectedItems[$item->barcode_goods] ?? 0;
             }
         } else {
-            $orderIssue->update(['rejecting' => '无']);
+            $orderIssue->update(['rejecting_status' => '无']);
             $orderIssue->save();
             return;
         }
@@ -361,8 +332,7 @@ class OrderIssueService
 
     public function verifyOrderIssue(array $arr)
     {
-        $orderIds = $arr['orderNos'];
-        $orders = Order::whereIn('code', $orderIds)->get();
+        $orders = Order::whereIn('code', $arr)->get();
         if (count($orders) == 0) {
             return false;
         }
@@ -382,9 +352,7 @@ class OrderIssueService
                 $result = $this->getConditionQuery($request->all(), null)->get();
             }
         } else if ($request->getMethod() == 'POST') {
-            $orderIssueIds = $request->input('data');
-            $ids = explode(',', $orderIssueIds);
-            $request['order_issue_ids'] = $ids;
+            $request['order_issue_ids'] = $request->input('data');
             $result = $this->getConditionQuery($request->all(), null)->get();
         }
         return $result;

+ 2 - 6
app/Services/OrderService.php

@@ -76,11 +76,7 @@ class OrderService
 
     public function getOrderInfo($orderId)
     {
-        return Order::with(['packages' => function ($query) {
-            return $query->with(['commodities' => function ($query) {
-                return $query->with(['commodity']);
-            }]);
-        }])->where('id', $orderId)->first();
+        return Order::with('packages.commodities.commodity')->where('id', $orderId)->first();
     }
 
     public function getRejectedBillOfClientCode($clientCode)
@@ -106,6 +102,6 @@ class OrderService
         if (!$orderHeader) {
             return null;
         }
-        return $this->findOrCreateByClientCode($orderHeader[soreference1]);
+        return $this->findOrCreateByClientCode($orderHeader['soreference1']);
     }
 }

+ 4 - 4
public/js/app.js

@@ -2330,7 +2330,7 @@ function fromByteArray (uint8) {
 var BlobBuilder = typeof BlobBuilder !== 'undefined' ? BlobBuilder :
   typeof WebKitBlobBuilder !== 'undefined' ? WebKitBlobBuilder :
   typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder :
-  typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder :
+  typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : 
   false;
 
 /**
@@ -61974,8 +61974,8 @@ module.exports = tempTip;
 /*! no static exports found */
 /***/ (function(module, exports, __webpack_require__) {
 
-__webpack_require__(/*! D:\Reald\desktop\BsWAS\src\resources\js\app.js */"./resources/js/app.js");
-module.exports = __webpack_require__(/*! D:\Reald\desktop\BsWAS\src\resources\sass\app.scss */"./resources/sass/app.scss");
+__webpack_require__(/*! D:\phpstudy_pro\WWW\bswas\resources\js\app.js */"./resources/js/app.js");
+module.exports = __webpack_require__(/*! D:\phpstudy_pro\WWW\bswas\resources\sass\app.scss */"./resources/sass/app.scss");
 
 
 /***/ }),
@@ -61991,4 +61991,4 @@ module.exports = __webpack_require__(/*! D:\Reald\desktop\BsWAS\src\resources\sa
 
 /***/ })
 
-/******/ });
+/******/ });

+ 2 - 0
resources/views/order/issue/edit.blade.php

@@ -238,6 +238,8 @@
                                 tempTip.setDuration(4000);
                                 tempTip.show('网络异常:' + err);
                             });
+                        }else{
+                            resolve();
                         }
                     })
                     p.then(this.orderIssueUpdate);

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

@@ -1037,7 +1037,7 @@
                 },
                 goPage(page){
                     let href = window.location.href;
-                    if(href.indexOf('?')==-1){
+                    if(href.indexOf('?')===-1){
                         href+='?'
                     }
                     if(href.indexOf('page=')!==-1){