chenqp il y a 1 an
Parent
commit
dcd7c9b1c0

+ 21 - 1
app/Service/Box/BoxHookService.php

@@ -45,6 +45,7 @@ class BoxHookService extends Service
     public function boxInsert($data){
         $box = new Box();
         if(!isset($data['order_no'])||empty($data['order_no'])) $data['order_no'] = $this->setOrderNo();
+        if(empty($data['order_no'])) return [false, "包装单号生成失败"];
         if(!isset($data['out_order_no'])) return [false,'out_order_no不存在!'];
         list($status,$box) = $this->dealBox($box,$data);
         if(!$status) return [false,$box];
@@ -137,8 +138,27 @@ class BoxHookService extends Service
      * @return string
      */
     public function setOrderNo(){
+        $str = date('Ymd',time());
 
-        return date('YmdHis').rand(1000,9999);
+        $order_number = Box::where('order_no','Like','%'. $str . '%')
+            ->max('order_no');
+
+        if(empty($order_number)){
+            $number = str_pad(1,4,'0',STR_PAD_LEFT);
+            $number = $str . $number;
+        }else{
+            $tmp = substr($order_number, -4);
+            $tmp = $tmp + 1;
+
+            //超过99999
+            if(strlen($tmp) > 4) return '';
+
+            $number = str_pad($tmp,4,'0',STR_PAD_LEFT);
+            $number = $str . $number;
+        }
+
+        return $number;
+//        return date('YmdHis').rand(1000,9999);
     }
 
     /**

+ 16 - 45
app/Service/Box/BoxService.php

@@ -220,6 +220,9 @@ class BoxService extends Service
         }catch (\Throwable $e){
             DB::rollBack();
             $this->dellimitingSendRequestBackgNeed($limit_key);
+            if (str_contains($e->getMessage(), '1062') || str_contains($e->getMessage(), 'Duplicate entry')) {
+                return [false, '网络波动,请重新操作!'];
+            }
             return [false,$e->getLine().':'.$e->getMessage()];
         }
     }
@@ -351,12 +354,18 @@ class BoxService extends Service
                     $update[$box_no] = $value['cdlcode'];
                 }
             }
-            if(empty($yongyou_data)) return [false, '暂无写入用友发货出库数据!'];
+            if(empty($yongyou_data)) {
+                $this->dellimitingSendRequestBackgNeed($limit_key);
+                return [false, '暂无写入用友发货出库数据!'];
+            }
 
             //用友 ------发货出库
             $service = new FinishedOrderService();
             list($status,$msg) = $service->U8Rdrecord32Save($yongyou_data,$user);
-            if(! $status) return [false, $msg];
+            if(! $status) {
+                $this->dellimitingSendRequestBackgNeed($limit_key);
+                return [false, $msg];
+            }
 
             //本地数据更新
             if(! empty($update)){
@@ -445,42 +454,6 @@ class BoxService extends Service
     public function transportBoxIn($data)
     {
         return [true,''];
-
-//        $param = [
-//            [
-//                'order_no' => 'XD202309000155',
-//                'product_no' => '0301011816',
-//                'technology_material' => '多层板,单贴,新木纹钢板',
-//                'technology_name' => '',
-//                'wood_name' => '',
-//                'process_mark' => '',
-//                'num' => '5',
-//                'team_id' => '1',
-//            ],[
-//                'order_no' => 'XD202309000155',
-//                'product_no' => '0104010753',
-//                'technology_material' => '多层线条',
-//                'technology_name' => '',
-//                'wood_name' => '',
-//                'process_mark' => '',
-//                'num' => '4',
-//                'team_id' => '1',
-//            ],[
-//                'order_no' => 'XD202309000156',
-//                'product_no' => '0301011712',
-//                'technology_material' => '多层板,双贴,雨丝钢板',
-//                'technology_name' => '',
-//                'wood_name' => '',
-//                'process_mark' => '',
-//                'num' => '3',
-//            ],
-//        ];
-//        dd(json_encode($param));
-//        $params = [
-//            'params' => $param,
-//            'transport_no' => '123443212',
-//        ];
-
         $param = $data['params'];
         $shipment_order_no = $data['transport_no'];
         $sale_order_nos = [];
@@ -502,8 +475,6 @@ class BoxService extends Service
         }
 
         $param = [];
-//        var_dump($key_list);
-//        var_dump($sale_order_product_key_list);die;
         foreach ($key_list as $k=>$v){
             if(!isset($sale_order_product_key_list[$k])) return [false,$k.' 不存在!'];
             $param[$v['order_no']][] = [
@@ -514,7 +485,7 @@ class BoxService extends Service
 
         }
 
-        $box_no = self::$box_hook->setOrderNo();
+//        $box_no = self::$box_hook->setOrderNo(); todo
         foreach ($param as $k=>$v){
             $top_order_no = SaleOrdersProduct::where('out_order_no',$k)->value('order_no');
             $postParam = [
@@ -524,11 +495,9 @@ class BoxService extends Service
                 'transport_no' => $shipment_order_no,
             ];
             $this->boxIn($postParam);
-//            var_dump($postParam);die;
         }
-        return [true,'保存成功'];
-
 
+        return [true,''];
     }
 
     protected function getKey($data){
@@ -921,7 +890,9 @@ class BoxService extends Service
     public function boxAddRule($data)
     {
         if(empty($data['param'])) return [false,'请选择包装数据'];
-        $order_no = (new BoxHookService())->setOrderNo();
+//        $order_no = (new BoxHookService())->setOrderNo();
+        $order_no = "";
+        if(empty($order_no)) return [false,'包装单号不能为空'];
         $detail = [];
         foreach ($data['param'] as $value) {
             $key = $this->lock_key.'_'.$value['idlsid'];

+ 1 - 1
app/Service/FyyOrderService.php

@@ -174,7 +174,7 @@ class FyyOrderService extends Service
             foreach ($transport_nos as $v){
                 $key = $v['top_order_no'];
                 if(!isset($transport_key_nos[$key])) $transport_key_nos[$key] = [];
-                if(!empty($v['shipment_order_no'])) $transport_key_nos[$key][] = $v['shipment_order_no'];
+                if(!empty($v['shipment_order_no']) && ! in_array($v['shipment_order_no'], $transport_key_nos[$key])) $transport_key_nos[$key][] = $v['shipment_order_no'];
             }
 
             foreach ($list['data'] as &$v){

+ 1 - 0
app/Service/FyySqlServerService.php

@@ -43,6 +43,7 @@ class FyySqlServerService extends Service
             }
 
             $this->host = env('Yongyou_database_ip');
+            $this->port = env('Yongyou_database_port');
             $this->host_api = env('Yongyou_api_ip');
             $this->database = env('Yongyou_database');