Procházet zdrojové kódy

运输管理筛选 支持多单一起查 客户单号,波次单,SO单

ajun před 5 roky
rodič
revize
edcee3ad84
2 změnil soubory, kde provedl 49 přidání a 4 odebrání
  1. 23 4
      app/Services/WaybillService.php
  2. 26 0
      app/Traits/ModelSearchWay.php

+ 23 - 4
app/Services/WaybillService.php

@@ -4,6 +4,7 @@ namespace App\Services;
 
 use App\OwnerFeeDetail;
 use App\Services\common\QueryService;
+use App\Traits\ModelSearchWay;
 use App\Waybill;
 use App\WaybillAuditLog;
 use Illuminate\Database\Eloquent\Builder;
@@ -17,6 +18,7 @@ use App\Traits\ServiceAppAop;
 class WaybillService
 {
     use ServiceAppAop;
+    use ModelSearchWay;
     protected $modelClass=Waybill::class;
     /**
      * @param array $param
@@ -75,12 +77,29 @@ class WaybillService
             });
             unset($param["recipient_mobile"]);
         }
+
+        if($param['carrier_bill'] ?? false){    // 承运商单号
+            $this->searchWay($waybills,$param['carrier_bill'],'waybills.carrier_bill');
+            unset($param['carrier_bill']);
+        }
+        if($param['waybill_number'] ?? false) { // 运单号
+            $this->searchWay($waybills,$param['waybill_number'],'waybills.waybill_number');
+            unset($param['waybill_number']);
+        }
+        if($param['source_bill'] ?? false) {// 上游单号
+            $this->searchWay($waybills,$param['source_bill'],'waybills.source_bill');
+            unset($param['source_bill']);
+        }
+        if($param['wms_bill_number']?? false){ // wms单号
+            $this->searchWay($waybills,$param['wms_bill_number'],'waybills.wms_bill_number');
+            unset($param['wms_bill_number']);
+        }
         $columnQueryRules=[
-            'waybill_number' => ['like' => ''],
-            'carrier_bill' => ['like' => ''],
-            'wms_bill_number' => ['like' => ''],
+//            'waybill_number' => ['like' => ''],
+//            'carrier_bill' => ['like' => ''],
+//            'wms_bill_number' => ['like' => ''],
             'origination' => ['like' => ''],
-            'source_bill' => ['like' => ''],
+//            'source_bill' => ['like' => ''],
             'car_owner_info' => ['like' => ''],
             'created_at_start' => ['alias' => 'created_at' , 'startDate' => ':00'],
             'created_at_end' => ['alias' => 'created_at' , 'endDate' => ':59'],

+ 26 - 0
app/Traits/ModelSearchWay.php

@@ -0,0 +1,26 @@
+<?php
+
+
+namespace App\Traits;
+
+
+trait ModelSearchWay
+{
+    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;
+    }
+}