cqpCow пре 2 година
родитељ
комит
1201a7ef9a
1 измењених фајлова са 40 додато и 8 уклоњено
  1. 40 8
      app/Service/FinishedOrderService.php

+ 40 - 8
app/Service/FinishedOrderService.php

@@ -58,11 +58,8 @@ class FinishedOrderService extends Service
             'result' => $msg,
             'data' => $data,
         ];
-        file_put_contents('1.txt','start:'.microtime(true).PHP_EOL,8);
-        $job = ProcessDataJob::dispatch($redis,$user,1)->onQueue('finished_operation');
-        file_put_contents('1.txt','end:'.microtime(true).PHP_EOL,8);
-        $job =true;
 
+        $job = ProcessDataJob::dispatch($redis,$user,1)->onQueue('finished_operation');
         if(! $job){
             return [false,'任务没有进入队列!'];
         }
@@ -391,9 +388,7 @@ class FinishedOrderService extends Service
             'data' => $data,
             'quantity_count' => $count_arr,
         ];
-        file_put_contents('1.txt','start:'.time().PHP_EOL,8);
-        $job =  ProcessDataJob::dispatch($redis,$user,3)->onQueue(ProcessDataJob::job_one);
-        file_put_contents('1.txt','end:'.time().PHP_EOL,8);
+        $job = ProcessDataJob::dispatch($redis,$user,3)->onQueue(ProcessDataJob::job_one);
         if(! $job) return [false,'任务没有进入队列!'];
 
         //错误计数
@@ -444,15 +439,30 @@ class FinishedOrderService extends Service
             //本地数据写入-----------
             DB::beginTransaction();
 
+            $waste = [];
+            foreach ($data as $key => $value){
+                if(! empty($value['waste'])){
+                    foreach ($value['waste'] as $v){
+                        if(isset($waste[$value['id']])){
+                            $waste[$value['id']] += $v['num'];
+                        }else{
+                            $waste[$value['id']] = $v['num'];
+                        }
+                    }
+                }
+            }
             $time = time();
-            foreach ($result as $key => $value){
+            foreach ($result as $value){
                 $finished_num = $value['quantity'] + $value['finished_num'];
                 DispatchSub::where('id',$value['id'])
                     ->update([
                         'finished_num' => $finished_num,
+                        'waste_num' => $waste[$value['id']] ?? 0,
                         'job_status' => 0
                     ]);
 
+                //损耗
+                $insert_waste = [];
                 //工序
                 $process_model = new OrdersProductProcess(['channel' => date("Ymd",$value['out_order_no_time'])]);
                 foreach ($data as $d){
@@ -468,8 +478,30 @@ class FinishedOrderService extends Service
                                 'team_id' => $d['team_id'],
                                 'equipment_id' => $d['equipment_id']
                             ]);
+
+                        if(! empty($d['waste'])){
+                            foreach ($d['waste'] as $v){
+                                for($i = 0 ;$i < $v['num']; $i++){
+                                    $insert_waste[] = [
+                                        'order_product_id' => $value['order_product_id'],
+                                        'order_no' => $value['order_no'],
+                                        'product_no' => $value['product_no'],
+                                        'product_title' => $value['product_title'],
+                                        'process_id' => $value['process_id'],
+                                        'crt_time' => $time,
+                                        'dispatch_no' => $value['dispatch_no'],
+                                        'status' => 4,
+                                        'team_id' => $d['team_id'],
+                                        'finished_id' => $d['finished_id'],
+                                        'equipment_id' => $d['equipment_id'],
+                                        'scrapp_id' => $v['scrapp_id']
+                                    ];
+                                }
+                            }
+                        }
                     }
                 }
+                if(! empty($insert_waste)) $process_model->insert($insert_waste);
             }
 
             //反写数量