ajun 5 лет назад
Родитель
Сommit
89fa09ea8e
1 измененных файлов с 12 добавлено и 14 удалено
  1. 12 14
      app/Http/Controllers/api/thirdPart/weight/WeightBaseController.php

+ 12 - 14
app/Http/Controllers/api/thirdPart/weight/WeightBaseController.php

@@ -11,6 +11,7 @@ use App\OracleActAllocationDetails;
 use App\OracleDOCOrderHeader;
 use App\OrderPackage;
 use App\Services\OrderService;
+use http\QueryString;
 use Illuminate\Support\Carbon;
 use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Http\Request;
@@ -394,20 +395,17 @@ class WeightBaseController
      */
     public function processCodeStr($code): string
     {
-        /**  双条码处理  */
-        $codes =  preg_split('/[,,@ ]+/is',$code);
-
-        if(count($codes)>0){
-            foreach ($codes as $item) {
-                $item = trim($item,"'");
-                if(mb_strpos($item,'-'))continue;
-                if(strlen(trim($item,' ')) < 5)continue;
-                return $item;
-            }
-        }
-        $arr = [];
-        preg_match('/[A-Z|a-z|\d]+/',$code,$arr);
-        return $arr[0];
+        $codes = [];
+        preg_match_all('/[\w]+/',$code,$codes);
+        if(count($codes) == 0)return $code;
+        $codes = array_unique(array_filter(array_shift($codes),function($item){
+            return strlen($item) > 8;
+        }));
+        usort($codes,function($a,$b){
+            if(strlen($a) == strlen($b))return 0;
+            return strlen($a) < strlen($b) ? 1 : -1;
+        });
+        return $codes[0];
     }
 
 // endregion