cqp il y a 9 mois
Parent
commit
88b933cb79

+ 12 - 0
app/Http/Controllers/Api/BoxController.php

@@ -264,4 +264,16 @@ class BoxController extends BaseController
             return $this->json_return(201,$data);
         }
     }
+
+    public function boxFhDetailNew(Request $request)
+    {
+        $service = new BoxService();
+        list($status,$data) = $service->boxFhDetailNew($request->all());
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
 }

+ 52 - 0
app/Http/Controllers/Api/ScrappController.php

@@ -58,4 +58,56 @@ class ScrappController extends BaseController
             return $this->json_return(201,$data);
         }
     }
+
+    public function scrappZjList(Request $request)
+    {
+        $service = new ScrappService();
+        $userData = $request->userData->toArray();
+        list($status,$data) = $service->zjList($request->all(),$userData);
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
+
+    public function scrappZjDetail(Request $request)
+    {
+        $service = new ScrappService();
+        $userData = $request->userData->toArray();
+        list($status,$data) = $service->zjDetail($request->all(),$userData);
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
+
+    public function scrappBadList(Request $request)
+    {
+        $service = new ScrappService();
+        $userData = $request->userData->toArray();
+        list($status,$data) = $service->blpList($request->all(),$userData);
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
+
+    public function blpDetail(Request $request)
+    {
+        $service = new ScrappService();
+        $userData = $request->userData->toArray();
+        list($status,$data) = $service->blpDetail($request->all(),$userData);
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
 }

+ 19 - 0
app/Service/Box/BoxService.php

@@ -1446,4 +1446,23 @@ class BoxService extends Service
 
         return array_unique(array_column($result,'order_no'));
     }
+
+    public function boxFhDetailNew($data){
+        if(empty($data['id'])) return [false,'请选择数据'];
+
+        $box = Box::where('id', $data['id'])->where('del_time',0)->first();
+        if(empty($box)) return [false, '包装单不存在或已被删除'];
+        $box = $box->toArray();
+
+        $model = new BoxDetail(['channel'=>$box['top_order_no']]);
+        $result = $model->where('del_time',0)
+            ->where('order_no',$box['order_no'])
+            ->select('order_no', 'ext_1 as product_no', 'ext_8 as product_title', 'ext_9 as product_size','num as quantity','ext_3 as technology_name','out_order_no')->get()->toArray();
+
+        foreach ($result as $key => $value){
+            $result[$key]['product_unit'] = "吨";
+        }
+
+        return [true,$result];
+    }
 }

+ 7 - 1
app/Service/FinishedOrderService.php

@@ -127,7 +127,13 @@ class FinishedOrderService extends Service
                             'table_header_mark' => $value['table_header_mark'],
                             'crt_time' => $time,
                             'scrapp_num' => $v['num'],
-                            'scrapp_id' => $v['scrapp_id']
+                            'scrapp_id' => $v['scrapp_id'],
+                            'team_id' => $value['team_id'],
+                            'finished_id' => $value['finish_id'],
+                            'equipment_id' => $value['device_id'],
+                            'order_number' => $value['id'] . $time . $value['process_id'],
+                            'process_id' => $value['process_id'],
+                            'quantity' => $value['quantity'],
                         ];
                     }
                 }

+ 31 - 19
app/Service/InspectService.php

@@ -4,6 +4,7 @@ namespace App\Service;
 
 use App\Model\DeviceOrder;
 use App\Model\DeviceOrderInfo;
+use App\Model\DXJ;
 use App\Model\Employee;
 use App\Model\Equipment;
 use App\Model\EquipmentXj;
@@ -67,6 +68,8 @@ class InspectService extends Service
 
         //生成巡检单号
         $order_number = $this->createOrderNumber();
+        $dxj = DXJ::where('del_time',0)->select('id')->get()->toArray();
+        $dxj = array_column($dxj,'id');
         try {
             DB::beginTransaction();
 
@@ -76,16 +79,29 @@ class InspectService extends Service
             $model->order_number = $order_number;
             $model->crt_time = $time;
             $model->hand_time = $time;
+            $model->state = DeviceOrder::state_two;
+            $model->crt_id = 444;
             $model->save();
             $device_order_id = $model->id;
 
             //详情数据
-            foreach ($insert_detail as $key => $value){
-                $insert_detail[$key]['type'] = DeviceOrder::Model_type_one;
-                $insert_detail[$key]['crt_time'] = $time;
-                $insert_detail[$key]['device_order_id'] = $device_order_id;
-                $insert_detail[$key]['order_number'] = $order_number;
+            $insert_detail_result = [];
+            foreach ($insert_detail as $value){
+                $value['type'] = DeviceOrder::Model_type_one;
+                $value['crt_time'] = $time;
+                $value['device_order_id'] = $device_order_id;
+                $value['order_number'] = $order_number;
+                $value['state'] = DeviceOrderInfo::Model_type_one;
+                if(! empty($dxj)){
+                    foreach ($dxj as $v){
+                        $value['dxj_id'] = $v;
+                        $insert_detail_result[] = $value;
+                    }
+                }else{
+                    $insert_detail_result[] = $value;
+                }
             }
+
             DeviceOrderInfo::insert($insert_detail);
 
             DB::commit();
@@ -111,15 +127,7 @@ class InspectService extends Service
 
             $update = [];
             foreach ($list as $value){
-//                $diff = $time - $value['crt_time'];&& $diff >= 86400 * 3
-                if($value['state'] == DeviceOrder::state_zero){
-                    $update[] = [
-                        'id' => $value['id'],
-                        'state' => DeviceOrder::state_one, //更新为处理中
-                    ];
-                }
-
-                if($value['state'] == DeviceOrder::state_one){
+                if($value['state'] < DeviceOrder::state_two){
                     $update[] = [
                         'id' => $value['id'],
                         'state' => DeviceOrder::state_two, // 更新为已结束
@@ -172,6 +180,7 @@ class InspectService extends Service
                     $insert[] = [
                         'type' => $data['type'],
                         'device_order_id' => $data['id'],
+                        'dxj_id' => $value['dxj_id'] ?? 0,
                         'order_number' => $model->order_number,
                         'equipment_id' => $value['equipment_id'],
                         'equipment_no' => $value['equipment_no'],
@@ -220,6 +229,7 @@ class InspectService extends Service
                     $insert[] = [
                         'type' => $data['type'],
                         'device_order_id' => $device_order_id,
+                        'dxj_id' => $value['dxj_id'] ?? 0,
                         'order_number' => $order_number,
                         'equipment_id' => $value['equipment_id'],
                         'equipment_no' => $value['equipment_no'],
@@ -261,7 +271,7 @@ class InspectService extends Service
 
         return [true, $data];
     }
-    
+
     public function deviceOrderDel($data,$user){
         if($this->isEmpty($data,'id')) return [false,'请选择数据'];
 
@@ -292,19 +302,21 @@ class InspectService extends Service
         if(empty($customer)) return [false,'单据不存在或已被删除'];
         $customer = $customer->toArray();
         $customer['type_title'] = DeviceOrder::$prefix_title[$customer['type']] ?? "";
-        $customer['crt_title'] = Employee::where('id',$customer['crt_id'])->value('emp_name') ?? "系统生成";
+        $customer['crt_title'] = Employee::where('id',$customer['crt_id'])->value('emp_name') ?? "王小波";
         $customer['crt_time'] = $customer['crt_time'] ? date("Y-m-d H:i:s",$customer['crt_time']): '';
         $customer['hand_time'] = $customer['hand_time'] ? date("Y-m-d",$customer['hand_time']): '';
         $customer['sub'] = [];
         $sub = DeviceOrderInfo::where('del_time',0)
             ->where('device_order_id',$data['id'])
-            ->select('equipment_id','equipment_no','state','mark')
+            ->select('equipment_id','equipment_no','state','mark','dxj_id')
             ->get()->toArray();
         $equ = Equipment::whereIn('id',array_unique(array_column($sub,'equipment_id')))
             ->pluck('title','id')
             ->toArray();
+        $dxj = DXJ::whereIn('id', array_unique(array_column($sub,'dxj_id')))->pluck('title','id')->toArray();
         foreach ($sub as $key => $value){
             $sub[$key]['equipment_title'] = $equ[$value['equipment_id']] ?? "";
+            $sub[$key]['dxj_title'] = $dxj[$value['dxj_id']] ?? "无";
         }
         $customer['sub'] = $sub;
 
@@ -499,11 +511,11 @@ class InspectService extends Service
             $data['data'][$key]['type_title'] = DeviceOrder::$prefix_title[$value['type']] ?? "";
             $data['data'][$key]['crt_time'] = $value['crt_time'] ? date('Y-m-d',$value['crt_time']) : '';
             $data['data'][$key]['hand_time'] = $value['hand_time'] ? date('Y-m-d',$value['hand_time']) : '';
-            $data['data'][$key]['crt_title'] = $value['crt_id'] ? $emp[$value['crt_id']] : "系统生成";
+            $data['data'][$key]['crt_title'] = $emp[$value['crt_id']] ?? "";
             $data['data'][$key]['state_title'] = DeviceOrder::$state_title[$value['state']] ?? "";
         }
 
-         return $data;
+        return $data;
     }
 
     public function createOrderNumber($type = 1){

+ 176 - 0
app/Service/ScrappService.php

@@ -2,7 +2,13 @@
 
 namespace App\Service;
 
+use App\Model\DispatchSub;
+use App\Model\Employee;
+use App\Model\Equipment;
+use App\Model\Process;
 use App\Model\Scrapp;
+use App\Model\ScrappCount;
+use App\Model\Team;
 
 /**
  * 报废原因
@@ -82,4 +88,174 @@ class ScrappService extends Service
 
         return [true,$data];
     }
+
+    //质检单
+    public function zjList($data, $user){
+        $model = ScrappCount::where('del_time',0)
+            ->select('id','dispatch_sub_id','crt_time','team_id','finished_id','equipment_id','order_number','process_id')
+            ->groupBy('order_number');
+
+        if(! empty($data['order_number'])) {
+            $order_number = str_replace("ZJ","",$data['order_number']);
+            if(! empty($order_number)) $model->where('order_number', 'LIKE', '%'.$data['order_number'].'%');
+        }
+
+        $list = $this->limit($model,'',$data);
+        $list = $this->fillZjList($list);
+
+        return [true,$list];
+    }
+
+    public function fillZjList($data){
+        if(empty($data['data'])) return $data;
+
+        $emp_map = Employee::whereIn('id',array_column($data['data'],'finished_id'))
+            ->pluck('emp_name','id')
+            ->toArray();
+        $team_maps = Team::whereIn('id',array_column($data['data'],'team_id'))
+            ->pluck('title','id')
+            ->toArray();
+        $equipment_map = Equipment::whereIn('id',array_column($data['data'],'equipment_id'))
+            ->pluck('title','id')
+            ->toArray();
+        $process_map = Process::whereIn('id',array_column($data['data'],'process_id'))
+            ->pluck('title','id')
+            ->toArray();
+        foreach ($data['data'] as $key => $value){
+            $data['data'][$key]['crt_time'] = $value['crt_time'] ? date("Y-m-d H:i:s", $value['crt_time']) : '';
+            $data['data'][$key]['finished_title'] = $emp_map[$value['finished_id']] ?? '';
+            $data['data'][$key]['team_title'] = $team_maps[$value['team_id']] ?? '';
+            $data['data'][$key]['equipment_title'] = $equipment_map[$value['equipment_id']] ?? '';
+            $data['data'][$key]['process_title'] = $process_map[$value['process_id']] ?? '';
+            $data['data'][$key]['order_number'] = "ZJ" . $value['order_number'];
+        }
+
+        return $data;
+    }
+
+    public function zjDetail($data, $user){
+        if(empty($data['order_number'])) return [false, '请选择质检单数据'];
+        $order_number = str_replace("ZJ","",$data['order_number']);
+        $result = ScrappCount::where('del_time',0)
+            ->where('order_number', $order_number)
+            ->get()->toArray();
+        if(empty($result)) return [false, '质检单不存在或已被删除'];
+
+        $first = $result[0] ?? [];
+        $order['order_number'] = "ZJ" . $first['order_number'];
+        $order['crt_time'] = $first['crt_time'] ? date("Y-m-d H:i:s", $first['crt_time']) : '';
+        $order['process_title'] = Process::where('id',$first['process_id'])->value("title");
+        $order['team_title'] = Team::where('id',$first['team_id'])->value("title");
+        $order['finished_title'] = Employee::where('id',$first['finished_id'])->value("emp_name");
+        $order['equipment_title'] = Equipment::where('id',$first['equipment_id'])->value("title");
+        $dispatch = DispatchSub::where('id',$first['dispatch_sub_id'])->first();
+        $dispatch = empty($dispatch) ? [] : $dispatch->toArray();
+        $order['dispatch_no'] = $dispatch['order_no'] ?? "";
+
+        $scrapp_quantity = array_sum(array_column($result, 'scrapp_num')); // 不良品数量
+        $detail = [
+            'product_no' => $first['product_no'],
+            'product_title' => $first['product_title'],
+            'product_size' => $first['product_size'],
+            'product_unit' => $first['product_unit'],
+            'technology_material' => $first['technology_material'],
+            'wood_name' => $first['wood_name'],
+            'production_quantity' => $dispatch['production_quantity'] ?? 0, // 生产数量
+            'dispatch_quantity' => $dispatch['dispatch_quantity'] ?? 0, // 派工数量
+            'quantity' => $first['quantity'], // 完工数量
+            'scrapp_quantity' => $scrapp_quantity, // 不良品数量
+            'zj_quantity' => $first['quantity'] + $scrapp_quantity, // 质检数量
+            'hg_quantity' => $first['quantity'], // 合格数量
+        ];
+
+        $order['detail'][] = $detail;
+
+        return [true, $order];
+    }
+
+    //不良品
+    public function blpList($data, $user){
+        $model = ScrappCount::where('del_time',0)
+            ->select('id','dispatch_sub_id','crt_time','team_id','finished_id','equipment_id','order_number','process_id')
+            ->groupBy('order_number');
+
+        if(! empty($data['order_number'])) {
+            $order_number = str_replace("BLP","",$data['order_number']);
+            if(! empty($order_number)) $model->where('order_number', 'LIKE', '%'.$data['order_number'].'%');
+        }
+
+        $list = $this->limit($model,'',$data);
+        $list = $this->fillBLPList($list);
+
+        return [true,$list];
+    }
+
+    public function fillBLPList($data){
+        if(empty($data['data'])) return $data;
+
+        $emp_map = Employee::whereIn('id',array_column($data['data'],'finished_id'))
+            ->pluck('emp_name','id')
+            ->toArray();
+        $team_maps = Team::whereIn('id',array_column($data['data'],'team_id'))
+            ->pluck('title','id')
+            ->toArray();
+        $equipment_map = Equipment::whereIn('id',array_column($data['data'],'equipment_id'))
+            ->pluck('title','id')
+            ->toArray();
+        $process_map = Process::whereIn('id',array_column($data['data'],'process_id'))
+            ->pluck('title','id')
+            ->toArray();
+        foreach ($data['data'] as $key => $value){
+            $data['data'][$key]['crt_time'] = $value['crt_time'] ? date("Y-m-d H:i:s", $value['crt_time']) : '';
+            $data['data'][$key]['finished_title'] = $emp_map[$value['finished_id']] ?? '';
+            $data['data'][$key]['team_title'] = $team_maps[$value['team_id']] ?? '';
+            $data['data'][$key]['equipment_title'] = $equipment_map[$value['equipment_id']] ?? '';
+            $data['data'][$key]['process_title'] = $process_map[$value['process_id']] ?? '';
+            $data['data'][$key]['order_number'] = "BLP" . $value['order_number'];
+        }
+
+        return $data;
+    }
+
+    public function blpDetail($data, $user){
+        if(empty($data['order_number'])) return [false, '请选择质检单数据'];
+        $order_number = str_replace("BLP","",$data['order_number']);
+        $result = ScrappCount::where('del_time',0)
+            ->where('order_number', $order_number)
+            ->get()->toArray();
+        if(empty($result)) return [false, '不良品单不存在或已被删除'];
+
+        $first = $result[0] ?? [];
+        $order['order_number'] = "BLP" . $first['order_number'];
+        $order['crt_time'] = $first['crt_time'] ? date("Y-m-d H:i:s", $first['crt_time']) : '';
+        $order['process_title'] = Process::where('id',$first['process_id'])->value("title");
+        $order['team_title'] = Team::where('id',$first['team_id'])->value("title");
+        $order['finished_title'] = Employee::where('id',$first['finished_id'])->value("emp_name");
+        $order['equipment_title'] = Equipment::where('id',$first['equipment_id'])->value("title");
+        $dispatch = DispatchSub::where('id',$first['dispatch_sub_id'])->first();
+        $dispatch = empty($dispatch) ? [] : $dispatch->toArray();
+        $order['dispatch_no'] = $dispatch['order_no'] ?? "";
+
+        $scrapp = Scrapp::whereIn('id', array_unique(array_column($result,'scrapp_id')))
+            ->pluck('title','id')
+            ->toArray();
+        $detail = [];
+        foreach ($result as $value){
+            $tmp = [
+                'product_no' => $first['product_no'],
+                'product_title' => $first['product_title'],
+                'product_size' => $first['product_size'],
+                'product_unit' => $first['product_unit'],
+                'technology_material' => $first['technology_material'],
+                'wood_name' => $first['wood_name'],
+                'scrapp_quantity' => $value['scrapp_num'], // 不良品数量
+                'scrapp_title' => $scrapp[$value['scrapp_id']], // 不良品原因
+            ];
+            $detail[] = $tmp;
+        }
+
+        $order['detail'] = $detail;
+
+        return [true, $order];
+    }
 }

+ 5 - 0
routes/api.php

@@ -123,6 +123,10 @@ Route::group(['middleware'=> ['checkLogin']],function ($route){
     $route->any('scrappEdit', 'Api\ScrappController@scrappEdit');
     $route->any('scrappDel', 'Api\ScrappController@scrappDel');
     $route->any('scrappList', 'Api\ScrappController@scrappList');
+    $route->any('scrappZjList', 'Api\ScrappController@scrappZjList');
+    $route->any('scrappZjDetail', 'Api\ScrappController@scrappZjDetail');
+    $route->any('scrappBadList', 'Api\ScrappController@scrappBadList');
+    $route->any('scrappBadDetail', 'Api\ScrappController@blpDetail');
 
     //销售订单----------------------
     $route->any('salesOrderList', 'Api\FyyOrderController@salesOrderList');
@@ -220,6 +224,7 @@ Route::group(['middleware'=> ['checkLogin']],function ($route){
     $route->any('getHeaderWord', 'Api\HeaderWordController@getHeaderWord');
     //包装相关
     $route->any('boxDetail', 'Api\BoxController@boxDetail');
+    $route->any('boxFhDetailNew','Api\BoxController@boxFhDetailNew');
     $route->any('boxList', 'Api\BoxController@boxList');
     $route->any('boxOrderDetail', 'Api\BoxController@boxOrderDetail');
     $route->any('boxProductList', 'Api\BoxController@boxProductList');