Browse Source

包装单和完工单绑定

cqp 1 month ago
parent
commit
0c985496f5

+ 18 - 0
app/Model/BoxWithDispatch.php

@@ -0,0 +1,18 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ *
+ * Class Unit
+ * @package App\Models
+ */
+class BoxWithDispatch extends Model
+{
+    protected $table = "box_with_dispatch"; //指定表
+    const CREATED_AT = 'crt_time';
+    const UPDATED_AT = 'upd_time';
+    protected $dateFormat = 'U';
+}

+ 24 - 4
app/Service/Box/BoxService.php

@@ -7,6 +7,7 @@ use App\Model\ApplyOrder;
 use App\Model\ApplyOrderForYy;
 use App\Model\Box;
 use App\Model\BoxDetail;
+use App\Model\BoxWithDispatch;
 use App\Model\DispatchSub;
 use App\Model\EmployeeTeamPermission;
 use App\Model\Header_ext;
@@ -229,6 +230,18 @@ class BoxService extends Service
 
             //包装单
             $package_data = $msg->toArray();
+
+
+            $dispatch_list = $msg1 ?? [];
+            if(! empty($dispatch_list)){
+                foreach ($dispatch_list as $key => $value){
+                    $dispatch_list[$key]['dispatch_id'] = $value['id'];
+                    unset($dispatch_list[$key]['id']);
+                    $dispatch_list[$key]['box_id'] = $package_data['id'];
+                }
+                BoxWithDispatch::insert($dispatch_list);
+            }
+
             //包装单产品
             $boxDetail = new BoxDetail(['channel'=>$package_data['top_order_no']]);
             $boxDetail = $boxDetail->where('del_time',0)
@@ -507,7 +520,7 @@ class BoxService extends Service
             list($status, $return) = $service->isNeedZJ($sale_order_id);
             $flag = $return;
             //根据派工数据组织
-            $last_update = $last_update2 = $str_tmp = $insert = $get_order_number = [];
+            $last_update = $last_update2 = $str_tmp = $insert = $get_order_number = $return_dispatch =  [];
             foreach ($result as $value){
                 $need_zj_process = $flag[$value['sale_orders_product_id']] ?? 0;
                 $bad_quantity = $scrapp_id = $for_r = 0;
@@ -589,6 +602,13 @@ class BoxService extends Service
                 $tmp['finished_id'] = $t_m;
                 $tmp['team_id'] = $team_tmp;
                 $last_update2[] = $tmp;
+
+                if($value['process_id'] == 14) {
+                    $return_dispatch[] = [
+                        'id' => $value['id'],
+                        'num' => $value['quantity'],
+                    ];
+                }
             }
 
             //生成报工单
@@ -601,9 +621,9 @@ class BoxService extends Service
             list($status,$msg) = $service->createZJFirst($report_id, $insert);
             if(! $status) return [false, $msg];
             //生成因为有不良品需要的返工的业务单据
-            list($status, $msg) = $service->createZJSecond($get_order_number, $user, $dispatch_time, $c_time,$max_id,$team_man,$report_order_number);
+            list($status, $msg) = $service->createZJSecond($get_order_number, $user, $dispatch_time, $c_time,$max_id,$team_man,$report_order_number,$return_dispatch);
             if(! $status) return [false, $msg];
-            $get_order_number_result = $msg;
+            list($get_order_number_result, $return_dispatch) = $msg;
             //生成完工入库申请单
             list($status, $msg) = $this->createWGSQ($last_update, $user, $c_time);
             if(! $status) return [false, $msg];
@@ -617,7 +637,7 @@ class BoxService extends Service
             return [false, $exception->getLine().':'.$exception->getMessage() . ':' . $exception->getFile()];
         }
 
-        return [true, ''];
+        return [true, $return_dispatch];
     }
 
     public function createbg($insert, $user,$dispatch_time = 0, $order_number = ""){

+ 8 - 2
app/Service/FinishedOrderService.php

@@ -408,7 +408,7 @@ class FinishedOrderService extends Service
         return [true, ''];
     }
 
-    public function createZJSecond($get_order_number, $user, $dispatch_time, $c_time,$max_id,$team_man,$report_order_number){
+    public function createZJSecond($get_order_number, $user, $dispatch_time, $c_time,$max_id,$team_man,$report_order_number,&$return_dispatch){
         try {
             $time = time();
             //获取新增的单据
@@ -519,6 +519,12 @@ class FinishedOrderService extends Service
                     'team_id' => $value['team_id'] ?? "",
                     'finished_id' => $t,
                 ];
+                if($value['process_id'] == 14){
+                    $return_dispatch[] = [
+                        'id' => $value['id'],
+                        'num' => $value['dispatch_quantity']
+                    ];
+                }
             }
 
             //生成报工单
@@ -581,7 +587,7 @@ class FinishedOrderService extends Service
                 if(! $status) return [false, $msg];
             }
 
-            return [true, array_merge($get_order_number, $get_order_number1)];
+            return [true, [array_merge($get_order_number, $get_order_number1), $return_dispatch]];
         }catch (\Throwable $exception){
             return[false, $exception->getMessage() . $exception->getLine()];
         }