Просмотр исходного кода

Merge branch 'master' into zengjun

# Conflicts:
#	app/Services/OrderIssueService.php
ajun 5 лет назад
Родитель
Сommit
aa33c9f517

+ 2 - 9
app/Http/Controllers/OrderIssueController.php

@@ -76,15 +76,7 @@ class OrderIssueController extends Controller
         } else {
             $orderIssue = $orderIssueService->create($request->all());
         }
-        $msg = '';
-        if ($orderIssue == null) {
-            $msg = '创建订单问题件失败';
-        } else {
-            $msg = '创建订单问题件成功';
-        }
-        $owners = Owner::all();
-        $orderIssues = $orderIssueService->paginate($request->all());
-        OrderIssueProcessLog::create(['order_issue_id' => $orderIssue['id'], 'user_id' => Auth::user()['id'], 'content' => '创建订单问题件', 'type' => '创建']);
+        OrderIssueProcessLog::query()->create(['order_issue_id' => $orderIssue['id'], 'user_id' => Auth::user()['id'], 'content' => '创建订单问题件', 'type' => '创建']);
         return redirect('order/issue/index');
     }
 
@@ -180,6 +172,7 @@ class OrderIssueController extends Controller
         if (!$request->input('orderNos')) {
             return ['success' => false, 'fail_info' => '没有传入的订单编号'];
         }
+        /** @var OrderIssueService $orderIssueService */
         $orderIssueService = app('orderIssueService');
         return $orderIssueService->orderIssueTag($request->all());
     }

+ 0 - 1
app/OrderPackage.php

@@ -7,7 +7,6 @@ use Illuminate\Database\Eloquent\Model;
 
 class OrderPackage extends Model
 {
-    //
     use ModelTimeFormat;
 
     protected $fillable = ['order_id','logistic_number','batch_number',

+ 1 - 1
app/Package.php

@@ -88,8 +88,8 @@ class Package extends Model
             $now = Carbon::now();
             array_push($packages,[
                 'batch_number'=>$batchCode??'',
+                'order_id' => app('orderIssueService')->createOrFindByOrderNo($resultOracleObj['orderno']),
                 'logistic_number'=>$resultOracleObj['SOReference5']??'',
-                'delivery_number'=>$resultOracleObj['SOReference5']??'',
                 'weight'=>$weight,
                 'weighed_at'=> $now,
                 'status'=>"已上传",

+ 4 - 2
app/Services/InventoryService.php

@@ -111,8 +111,10 @@ class InventoryService
         return $sql;
     }
 
-    public function paginate(array $params){
-        return DB::connection('oracle')->select(DB::raw($this->getSql($params,$params['page'] ?? 1, $params['paginate'] ?? 50)));
+    public function paginate(array $params)
+    {
+        return DB::connection('oracle')->select(DB::raw($this->getSql($params, $params['page'] ?? 1, $params['paginate'] ?? 50)));
+    }
 
     //库存体积条件
     private function conditionQueryDailyLog(array $param){

+ 74 - 41
app/Services/OrderIssueService.php

@@ -57,31 +57,39 @@ class OrderIssueService
     private function getOrderQuery(array $arr, $query)
     {
         $query->whereHas('order', function ($query) use ($arr) {
-            $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['client_code'] ?? false) {
+                return $this->searchWay($query,$arr['client_code'],'client_code');
+            }
+            if ($arr['consignee_name'] ?? false) {
+                return $this->searchWay($query,$arr['consignee_name'],'consignee_name');
+            }
+            if ($arr['consignee_phone'] ?? false) {
+                return $this->searchWay($query,$arr['consignee_phone'],'consignee_phone');
+            }
             if ($arr['logistic_number'] ?? false) {
-                $query->whereHas('packages', function ($query) use ($arr) {
-                    $query->where('logistic_number', $arr['logistic_number']);
+                $logistic_number = $arr['logistic_number'];
+                $query->whereHas('packages', function ($query) use ($logistic_number) {
+                    return $this->searchWay($query,$logistic_number,'logistic_number');
                 });
             }
-
             if (($arr['good_barcode'] ?? false) || ($arr['good_name'] ?? false)) {
-                $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, []);
+                $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) {
+                                return $this->searchWay($query,$arr['good_barcode'],'sku');
+                            }
+                            if ($arr['good_name'] ?? false) {
+                                $query->where('name', $arr['good_name']);
+                            }
+                        });
+                    });
                 });
             }
         });
         if ($arr['send_client_code'] ?? false) {
             $query->whereHas('secondOrder', function ($query) use ($arr) {
-                $query->where('client_code', $arr['send_client_code']);
+                return $this->searchWay($query,$arr['send_client_code'], 'client_code');
             });
         }
 
@@ -90,14 +98,16 @@ class OrderIssueService
 
     public function getRejectedBillQuery(array $arr, $query)
     {
-        if ($arr['logistic_number_return'] ?? false) {
+        if(  ($arr['logistic_number_return'] ?? false) || ($arr['id_quality_label'] ?? false)){
             $query->whereHas('rejectedBill', function ($query) use (&$arr) {
-                $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']);
+                if ($arr['logistic_number_return'] ?? false) {
+                    return $this->searchWay($query,$arr['logistic_number_return'], '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']);
+                    });
+                }
             });
         }
         return $query;
@@ -108,32 +118,55 @@ class OrderIssueService
         $query = $this->getQuery($arr, $condition);
         $query = $this->getOrderQuery($condition ?? $arr, $query);
         $query = $this->getRejectedBillQuery($condition ?? $arr, $query);
+
         if (!isset($condition)) {
             $condition = $arr;
         }
-        $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 (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']);
+        }
         if (!($condition['is_handle'] ?? false) && !($condition['final_status'] ?? false)) {
             $query->where(function ($query) {
                 $query->where('final_status', '<>', '已解决')->orWhereNull('final_status');
             });
         }
-        if ($condition['created_at_end'] ?? false) {
-            $query->whereHas('logs', function ($query) use ($condition) {
-                $query->where('created_at', $condition['created_at_end'])->where('type', '结束');
-            });
+        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);
+        }
+
+        return $query;
+    }
+
+    private function isSearchLike($str){
+        if (substr($str,0,1) == "%" || substr($str,strlen($str)-1,1) == "%"){
+            return true;
+        }
+        return false;
+    }
+    private function searchWay($query, $param, $column){
+        if ($this->isSearchLike($param)){
+            $query->where($column,'like', $param);
+        }else{
+            $query->whereIn($column,array_filter(preg_split('/[,, ]+/is', $param)));
         }
         return $query;
     }

+ 12 - 13
app/Services/RejectedService.php

@@ -45,22 +45,21 @@ class RejectedService
             }
             unset($param['id_quality_label']);
         }
-        if ($param["is_checked"]??''){
-            $rejectedBills = $rejectedBills->where('is_checked', true);
-        }
-        else {
-            $rejectedBills = $rejectedBills->where(function ($query) {
-                $query->where('is_checked', false)
-                    ->orWhere('is_checked', null);
-            });
-        }
-        if(isset($param["is_checked"])){
+        if (isset($param["is_checked"])){
+            if ($param["is_checked"] == "1"){
+                $rejectedBills = $rejectedBills->where('is_checked', true);
+            }else {
+                $rejectedBills = $rejectedBills->where(function ($query) {
+                    $query->where('rejected_bills.is_checked', false)
+                        ->orWhere('rejected_bills.is_checked', null);
+                });
+            }
             unset($param["is_checked"]);
         }
-        if ($param["is_loaded"] ?? false) {
+        if (isset($param["is_loaded"])) {
             $is_loaded = $param["is_loaded"];
             if ($is_loaded == 'null') $is_loaded = null;
-            $rejectedBills = $rejectedBills->where('is_loaded', $is_loaded);
+            $rejectedBills = $rejectedBills->where('rejected_bills.is_loaded', $is_loaded);
             unset($param["is_loaded"]);
         }
         if ($param["barcode_goods"] ?? false) {
@@ -110,7 +109,7 @@ class RejectedService
             ->leftJoin('quality_labels','rejected_bill_items.id_quality_label','=','quality_labels.id')
             ->selectRaw('quality_labels.name quality_label_name')
             ->leftJoin('users','rejected_bills.id_operator','=','users.id')
-            ->selectRaw('users.id operator_name');
+            ->selectRaw('users.name operator_name');
         return $sql->sql();
     }
 

+ 1 - 1
resources/views/maintenance/user/index.blade.php

@@ -53,7 +53,7 @@
     <script>
 
     </script>
-    <script type="text/javascript" src="{{asset('js/queryForm/queryForm200901.js')}}"></script>
+    <script type="text/javascript" src="{{asset('js/queryForm/queryForm200825.js')}}"></script>
     <script type="text/javascript" src="{{asset('js/queryForm/header200826b.js')}}"></script>
     <script>
         new Vue({

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

@@ -574,15 +574,15 @@
                         placeholder: ['货主', '定位或多选货主'],
                         data: _this.owners
                     },
-                    {name: 'client_code', type: 'input', tip: '原始订单号', placeholder: '原始订单号'},
-                    {name: 'logistic_number', type: 'input', tip: ['输入原始运单号'], placeholder: '原始运单号'},
-                    {name: 'logistic_number_return', type: 'input', tip: '退回单号', placeholder: '退回单号'},
-                    {name: 'send_client_code', type: 'input', tip: '二次订单号', placeholder: '二次订单号'},
+                    {name: 'client_code', type: 'input', tip: '原始订单号:前或后加百分号为单个模糊搜索,否则为多条件精确搜索', placeholder: '原始订单号'},
+                    {name: 'logistic_number', type: 'input', tip: ['输入原始运单号:前或后加百分号为单个模糊搜索,否则为多条件精确搜索'], placeholder: '原始运单号'},
+                    {name: 'logistic_number_return', type: 'input', tip: '退回单号:前或后加百分号为单个模糊搜索,否则为多条件精确搜索', placeholder: '退回单号'},
+                    {name: 'send_client_code', type: 'input', tip: '二次订单号:前或后加百分号为单个模糊搜索,否则为多条件精确搜索', placeholder: '二次订单号'},
                 ], [
                     {name: 'created_at_end', type: 'dateTime', tip: '订单结束日期'},
-                    {name: 'consignee_name', type: 'input', tip: '收货人名称', placeholder: '收货人名称'},
-                    {name: 'consignee_phone', type: 'input', tip: '收货人电话', placeholder: '收货人电话'},
-                    {name: 'good_barcode', type: 'input', tip: '条码', placeholder: '条码'},
+                    {name: 'consignee_name', type: 'input', tip: '收货人名称:前或后加百分号为单个模糊搜索,否则为多条件精确搜索', placeholder: '收货人名称'},
+                    {name: 'consignee_phone', type: 'input', tip: '收货人电话:前或后加百分号为单个模糊搜索,否则为多条件精确搜索', placeholder: '收货人电话'},
+                    {name: 'good_barcode', type: 'input', tip: '条码:前或后加百分号为单个模糊搜索,否则为多条件精确搜索', placeholder: '条码'},
                     {name: 'good_name', type: 'input', tip: '商品名', placeholder: '商品名'},
 
                     {