cqpCow 1 tahun lalu
induk
melakukan
31101c81b9

+ 5 - 2
app/Http/Controllers/Api/ConstructionController.php

@@ -139,7 +139,7 @@ class ConstructionController extends BaseController
     public function constructionPdf(Request $request)
     {
         $service = new ConstructionService();
-        $userData =  [];
+        $userData = $request->userData->toArray();
         list($status,$data) = $service->constructionPdf($request->all(),$userData);
 
         if($status){
@@ -212,7 +212,10 @@ class ConstructionController extends BaseController
             "unit" => "套",
           ]
         ];
-        $pdf = Pdf::loadView('pdf.construction', ['order' => $construction,'product'=>$product]);
+        $detail =  [
+            0 => "陈建斌 技术部,技术部 15372086866|高健 技术部,技术部 13388601173"
+        ];
+        $pdf = Pdf::loadView('pdf.construction', ['order' => $construction,'product'=>$product,'detail'=>$detail]);
 
         return $pdf->stream('11.pdf');
 //        return response($pdf->output())

+ 81 - 1
app/Service/ConstructionService.php

@@ -13,6 +13,11 @@ use App\Model\DeliveryNote;
 use App\Model\Depart;
 use App\Model\Employee;
 use App\Model\EmployeeDepartPermission;
+use App\Model\Oa;
+use App\Model\OaSub;
+use App\Model\OaSubEmployee;
+use App\Model\OaSubReportEmployee;
+use App\Model\OaSubRule;
 use App\Model\Product;
 use App\Model\SalesOrder;
 use App\Model\SalesOrderInfo;
@@ -1001,7 +1006,11 @@ class ConstructionService extends Service
             $value['unit'] = $unit_map[$tmp['unit']] ?? "";
             $product[] = $value;
         }
-        $order_message = ['order' => $construction, 'product' => $product];
+
+        //工单进展
+        $detail  = $this->getOaJz($data,$user);
+
+        $order_message = ['order' => $construction, 'product' => $product,'detail'=> $detail];
 
         $pdf = app('dompdf.wrapper')->loadView('pdf.construction', $order_message);
         $file_name = time().rand(1000,9999);
@@ -1010,4 +1019,75 @@ class ConstructionService extends Service
 
         return [true, ['file' => $filename]];
     }
+
+    public function getOaJz($data,$user)
+    {
+        $oa = Oa::where('menu_id', 34)
+            ->where('del_time',0)
+            ->where('channel',$user['depart_top'][0]['depart_id'])
+            ->first();
+        if(empty($oa)) return [];
+        $oa = $oa->toArray();
+        $list = OaSub::where('oa_id', $oa['id'])->where('del_time', 0)->get()->toArray();
+        $oa_sub_ids = [];
+        foreach ($list as $v) {
+            $oa_sub_ids[] = $v['id'];
+        }
+        $oaEmployee = OaSubEmployee::wherein('oa_sub_id', $oa_sub_ids)->get()->toArray();
+
+        $emp_list = Employee::whereIn('id',array_column($oaEmployee,'employee_id'))
+            ->select('emp_name','id','mobile')
+            ->get()->toArray();
+        $emp_map = [];
+        foreach ($emp_list as $value){
+            $emp_map[$value['id']] = [
+                'name' => $value['emp_name'],
+                'mobile' => $value['mobile'],
+            ];
+        }
+
+        $emp_message = EmployeeDepartPermission::from('employee_depart_permission as a')
+            ->leftJoin('depart as b', 'b.id', 'a.depart_id')
+            ->whereIn('a.employee_id',array_column($emp_list,'id'))
+            ->select('a.employee_id', 'b.title')
+            ->get()->toArray();
+        $emp_message_map = [];
+        foreach ($emp_message as $value){
+            if(isset($emp_message_map[$value['employee_id']])){
+                $emp_message_map[$value['employee_id']] .= ',' . $value['title'];
+            }else{
+                $emp_message_map[$value['employee_id']] = $value['title'];
+            }
+        }
+
+        $oaEmployeeKey = [];
+        foreach ($oaEmployee as $v) {
+            $str = "";
+            $tmp = $emp_map[$v['employee_id']] ?? [];
+            $tmp2 = $emp_message_map[$v['employee_id']] ?? "";
+            $str = $tmp['name'] . " " . $tmp2 . " " . $tmp['mobile'];dump($str);
+            $oaEmployeeKey[$v['oa_sub_id']][] = [
+                'id' => $v['employee_id'],
+                'emp_name' => $str,
+            ];
+        }
+
+        $return = [];
+        foreach ($list as $v) {
+            $return[$v['sort']][] = [
+                'emp_id' => $oaEmployeeKey[$v['id']],
+                'index' => $v['h5_key'],
+            ];
+        }
+        $detail = [];
+        foreach ($return as $v) {
+            $children = "";
+            foreach ($v as $vv) {
+                $children .= implode('|',array_column($vv['emp_id'],'emp_name')) . ',';
+            }
+            $detail[] = rtrim($children,',');
+        }
+
+        return $detail;
+    }
 }

+ 8 - 0
app/Service/CustomerService.php

@@ -504,6 +504,14 @@ class CustomerService extends Service
             $model->where('crt_time','>=',$return[0]);
             $model->where('crt_time','<=',$return[1]);
         }
+        if(! empty($data['crt_name'])){
+            $id = (new RangeService())->crtNameSearch($data);
+            $model->whereIn('crt_id',$id);
+        }
+        if(! empty($data['fz'])){
+            $id = (new RangeService())->customerSearch($data);
+            $model->whereIn('id',$id);
+        }
 
         $list = $this->limit($model,'',$data);
         $list = $this->fillData($list,$data);

+ 24 - 0
app/Service/RangeService.php

@@ -420,4 +420,28 @@ class RangeService extends Service
             ->get()->toArray();
         return array_unique(array_column($id,'payment_receipt_id'));
     }
+
+    //创建人
+    public function crtNameSearch($data){
+        $emp_id = Employee::where('del_time',0)
+            ->where('emp_name','LIKE', '%'.$data['crt_name'].'%')
+            ->select('id')->get()->toArray();
+        return array_column($emp_id,'id');
+    }
+
+    //负责人
+    public function customerSearch($data){
+        $emp_id = Employee::where('del_time',0)
+            ->where('emp_name','LIKE', '%'.$data['fz'].'%')
+            ->select('id')->get()->toArray();
+        $emp_id = array_column($emp_id,'id');
+        //单据中选择的负责人
+        $customer_id = CustomerInfo::where('del_time',0)
+            ->where('type',CustomerInfo::type_two)
+            ->whereIn('data_id',$emp_id)
+            ->select('customer_id')
+            ->get()->toArray();
+
+        return array_unique(array_column($customer_id,'customer_id'));;
+    }
 }

+ 6 - 0
resources/views/pdf/construction.blade.php

@@ -93,6 +93,12 @@
                     </tr>
                 @endforeach
             </table>
+            <div><span>工单进展</span><span>: </span></div>
+            @foreach($detail as $value)
+                <div>
+                    {{ $value ?? ''}}
+                </div>
+            @endforeach
         </div>
     </div>
 </div>