Browse Source

调拨列表筛选优化,招标工作台列表筛选优化

wufeng 2 years ago
parent
commit
0166048bca
2 changed files with 116 additions and 88 deletions
  1. 108 86
      app/admin/controller/Allot.php
  2. 8 2
      app/admin/controller/Consult.php

+ 108 - 86
app/admin/controller/Allot.php

@@ -19,70 +19,71 @@ class Allot extends Base
     {
         parent::__construct($app);
     }
-    public function list(){
-        $page = isset($this->post['page']) && $this->post['page'] !=="" ? intval($this->post['page']) :"1";
-        $size = isset($this->post['size']) && $this->post['size'] !=="" ? intval($this->post['size']) :"10";
-        $where =[['a.is_del',"=",0]];
+
+    public function list()
+    {
+        $page = isset($this->post['page']) && $this->post['page'] !== "" ? intval($this->post['page']) : "1";
+        $size = isset($this->post['size']) && $this->post['size'] !== "" ? intval($this->post['size']) : "10";
+        $where = [['a.is_del', "=", 0]];
         $allot_code = isset($this->post['allot_code']) && $this->post['allot_code'] !== "" ? trim($this->post['allot_code']) : "";
         if ($allot_code !== "") {
-           // $where['a.allot_code'] = $allot_code;
-            $where[]=['a.allot_code',"=",$allot_code];
-        }
-        $wsm_out = isset($this->post['wsm_out']) && $this->post['wsm_out'] !== "" ? trim($this->post['wsm_out']) : "";
-        if ($wsm_out !== "") {
-            //$where['a.wsm_out'] = $wsm_out;
-            $where[]=['a.wsm_out',"=",$wsm_out];
+            // $where['a.allot_code'] = $allot_code;
+            $where[] = ['a.allot_code', "=", $allot_code];
         }
-        $wsm_in = isset($this->post['wsm_in']) && $this->post['wsm_in'] !== "" ? trim($this->post['wsm_in']) : "";
-        if ($wsm_in !== "") {
-           // $where['a.wsm_in'] = $wsm_in;
-            $where[]=['a.wsm_in',"=",$wsm_in];
-        }
-        $start= isset($this->post['start']) && $this->post['start'] !== "" ? $this->post['start']:"";
-        if ($start !="") {
+//        $wsm_out = isset($this->post['wsm_out']) && $this->post['wsm_out'] !== "" ? trim($this->post['wsm_out']) : "";
+//        if ($wsm_out !== "") {
+        //$where['a.wsm_out'] = $wsm_out;
+//            $where[]=['a.wsm_out',"=",$wsm_out];
+//        }
+//        $wsm_in = isset($this->post['wsm_in']) && $this->post['wsm_in'] !== "" ? trim($this->post['wsm_in']) : "";
+//        if ($wsm_in !== "") {
+        // $where['a.wsm_in'] = $wsm_in;
+//            $where[]=['a.wsm_in',"=",$wsm_in];
+//        }
+        $start = isset($this->post['start']) && $this->post['start'] !== "" ? $this->post['start'] : "";
+        if ($start != "") {
             //$where = ["a.addtime"=>Db::raw(">= '{$start}'")];
-            $where[]=['a.addtime',">=",$start];
+            $where[] = ['a.addtime', ">=", $start];
         }
-        $end = isset($this->post['end']) && $this->post['end'] !== "" ? $this->post['end'] :"";
-        if($end !=""){
-           // $where = ["a.addtime"=>Db::raw("<= '{$end}'")];
-            $where[]=['a.addtime',"<=",$end];
+        $end = isset($this->post['end']) && $this->post['end'] !== "" ? $this->post['end'] : "";
+        if ($end != "") {
+            // $where = ["a.addtime"=>Db::raw("<= '{$end}'")];
+            $where[] = ['a.addtime', "<=", $end];
         }
 
-        $out_supplierNo =isset($this->post['wsm_out_supplierNo']) &&$this->post['wsm_out_supplierNo'] !=="" ? trim($this->post['wsm_out_supplierNo']):"";
-        if($out_supplierNo!=""){
+//        $out_supplierNo =isset($this->post['wsm_out_supplierNo']) &&$this->post['wsm_out_supplierNo'] !=="" ? trim($this->post['wsm_out_supplierNo']):"";
+//        if($out_supplierNo!=""){
 //            $supplier = Db::name("supplier")->where(["code"=>$out_supplierNo])->find();
 //            if(empty($supplier)){
 //                return error_show(1004,"未找到出库供应商信息");
 //            }
-            $wsmcode = Db::name("warehouse_info")->where(["is_del"=>0,"wsm_type"=>1,"supplierNo"=>$out_supplierNo])->column("wsm_code");
-            //$condtion["a.c.wsm_code"] = $wsmcode;
-            $where[]=['a.wsm_out',"in",$wsmcode];
-        }
-
-        $out_companyNo = isset($this->post['out_companyNo']) && $this->post['out_companyNo'] !== "" ? trim($this->post['out_companyNo']) : "";
-        if ($out_companyNo !== "") {
+//            $wsmcode = Db::name("warehouse_info")->where(["is_del"=>0,"wsm_type"=>1,"supplierNo"=>$out_supplierNo])->column("wsm_code");
+        //$condtion["a.c.wsm_code"] = $wsmcode;
+//            $where[]=['a.wsm_out',"in",$wsmcode];
+//        }
 
-            $where[]=["a.out_companyNo","=",$out_companyNo];
-        }
-        $in_companyNo = isset($this->post['in_companyNo']) && $this->post['in_companyNo'] !== "" ? trim($this->post['in_companyNo']) : "";
-        if ($in_companyNo !== "") {
-            $where[]=["a.in_companyNo","=",$in_companyNo];
-        }
+//        $out_companyNo = isset($this->post['out_companyNo']) && $this->post['out_companyNo'] !== "" ? trim($this->post['out_companyNo']) : "";
+//        if ($out_companyNo !== "") {
+//            $where[]=["a.out_companyNo","=",$out_companyNo];
+//        }
+//        $in_companyNo = isset($this->post['in_companyNo']) && $this->post['in_companyNo'] !== "" ? trim($this->post['in_companyNo']) : "";
+//        if ($in_companyNo !== "") {
+//            $where[]=["a.in_companyNo","=",$in_companyNo];
+//        }
 
-        $in_supplierNo =isset($this->post['wsm_in_supplierNo']) &&$this->post['wsm_in_supplierNo'] !=="" ? trim($this->post['wsm_in_supplierNo']):"";
-        if($in_supplierNo!=""){
+//        $in_supplierNo =isset($this->post['wsm_in_supplierNo']) &&$this->post['wsm_in_supplierNo'] !=="" ? trim($this->post['wsm_in_supplierNo']):"";
+//        if($in_supplierNo!=""){
 //            $supplier = Db::name("supplier")->where(["code"=>$in_supplierNo])->find();
 //            if(empty($supplier)){
 //                return error_show(1004,"未找到入库供应商信息");
 //            }
-            $wsmcode = Db::name("warehouse_info")->where(["is_del"=>0,"wsm_type"=>1,"supplierNo"=>$in_supplierNo])->column("wsm_code");
-            //$condtion["c.wsm_code"] = $wsmcode;
-            $where[]=['a.wsm_in',"in",$wsmcode];
-        }
-        $status = isset($this->post['status']) && $this->post['status']!=="" ? intval($this->post['status']):"";
-        if($status!==""){
-            $where[]=['a.status',"=",$status];
+//            $wsmcode = Db::name("warehouse_info")->where(["is_del"=>0,"wsm_type"=>1,"supplierNo"=>$in_supplierNo])->column("wsm_code");
+        //$condtion["c.wsm_code"] = $wsmcode;
+//            $where[]=['a.wsm_in',"in",$wsmcode];
+//        }
+        $status = isset($this->post['status']) && $this->post['status'] !== "" ? intval($this->post['status']) : "";
+        if ($status !== "") {
+            $where[] = ['a.status', "=", $status];
         }
         $company_name = isset($this->post['company_name']) && $this->post['company_name'] !== "" ? trim($this->post['company_name']) : "";
         if ($company_name !== "") $where[] = ["a.apply_id", 'in', get_company_item_user_by_name($company_name)];
@@ -90,48 +91,68 @@ class Allot extends Base
 //        $role = $this->checkDataShare();
 //        if (!empty($role[DataGroupModel::$type_全部])) $where[] = ['a.apply_id', 'in', $role[DataGroupModel::$type_全部]];
         $role = $this->checkDataShare();
-        $hand = resign_hand_user($this->uid,0);
-        if (!empty($role[DataGroupModel::$type_全部])) {
-        	$arr= array_unique(array_merge($hand,$role[DataGroupModel::$type_全部]));
-			$where[] = ['a.apply_id', 'in',$arr];
-        }
+//        $hand = resign_hand_user($this->uid,0);
+//        if (!empty($role[DataGroupModel::$type_全部])) {
+//        	$arr= array_unique(array_merge($hand,$role[DataGroupModel::$type_全部]));
+//			$where[] = ['a.apply_id', 'in',$arr];
+//        }
 
-        $relaComNo = isset($this->post['relaComNo']) && $this->post['relaComNo']!="" ? trim($this->post['relaComNo']):"";
-        if($relaComNo!="") $where[]=['a.in_companyNo|a.out_companyNo','=', $relaComNo];
+        $relaComNo = isset($this->post['relaComNo']) && $this->post['relaComNo'] != "" ? trim($this->post['relaComNo']) : "";
+        //if($relaComNo!="") $where[]=['a.in_companyNo|a.out_companyNo','=', $relaComNo];
+        $wsm_code = isset($this->post['wsm_code']) && $this->post['wsm_code'] != "" ? trim($this->post['wsm_code']) : "";
+        $type = isset($this->post['type']) && $this->post['type'] != "" ? intval($this->post['type']) : "";
+
+        switch ($type) {
+            case 1:
+                //入库
+                if ($relaComNo !== '') $where[] = ['a.in_companyNo', '=', $relaComNo];
+                if ($wsm_code !== '') $where[] = ['a.wsm_in', '=', $wsm_code];
+                break;
+            case 2:
+                //出库
+                if ($relaComNo !== '') $where[] = ['a.out_companyNo', '=', $relaComNo];
+                if ($wsm_code !== '') $where[] = ['a.wsm_out', '=', $wsm_code];
+                break;
+            case 3:
+                //入库和出库
+                if ($relaComNo !== '') $where[] = ['a.in_companyNo|a.out_companyNo', '=', $relaComNo];
+                if ($wsm_code !== '') $where[] = ['a.wsm_in|a.wsm_out', '=', $wsm_code];
+                break;
+        }
 
         $count = Db::name('allot_stock')
             ->alias('a')
-            ->leftJoin("depart_user u", "u.uid=a.apply_id AND u.is_del=0")
+//            ->leftJoin("depart_user u", "u.uid=a.apply_id AND u.is_del=0")
             ->where($where)
             ->count();
-        $total = ceil($count/$size);
+        $total = ceil($count / $size);
         $page = $page >= $total ? $total : $page;
         $list = Db::name('allot_stock')
             ->alias('a')
             ->where($where)
             ->order("a.addtime desc")
-            ->page($page,$size)
+            ->page($page, $size)
             ->select()
             ->toArray();
-      // var_dump(Db::name('allot_stock')->getLastSql());
+        // var_dump(Db::name('allot_stock')->getLastSql());
 
-        $all_createrid = array_column($list,'apply_id');
+        $all_createrid = array_column($list, 'apply_id');
         $item = get_company_name_by_uid($all_createrid);
 
         $userCommon = new \app\admin\common\User();
 
-        $data=[];
-        foreach ($list as $value){
+        $data = [];
+        foreach ($list as $value) {
             $db = Db::name('warehouse_info')
                 ->alias('a')
 //                ->join("supplier b","b.code=a.supplierNo","left")
 //                ->join("business bus","bus.companyNo=a.companyNo","left")
 //                ->field("a.name,a.wsm_code,b.name rname,b.code,bus.company")
                 ->field("a.name,a.wsm_code,a.supplierNo,a.companyNo")
-                ->where(['a.wsm_code'=>$value['wsm_out'],'a.is_del'=>0])
+                ->where(['a.wsm_code' => $value['wsm_out'], 'a.is_del' => 0])
                 ->find();
-            $value['name'] =isset($db['name']) ? $db['name']:"";
-            $value['wsm_code'] =isset($db['wsm_code']) ? $db['wsm_code']:"";
+            $value['name'] = isset($db['name']) ? $db['name'] : "";
+            $value['wsm_code'] = isset($db['wsm_code']) ? $db['wsm_code'] : "";
 
             $dc = Db::name('warehouse_info')
                 ->alias('a')
@@ -139,30 +160,30 @@ class Allot extends Base
 //                ->join("supplier b","b.code=a.supplierNo","left")
 //                ->field("a.name,a.wsm_code,b.name tname,b.code,bus.company")
                 ->field("a.name,a.wsm_code,a.supplierNo,a.companyNo")
-                ->where(['a.wsm_code'=>$value['wsm_in'],'a.is_del'=>0])
+                ->where(['a.wsm_code' => $value['wsm_in'], 'a.is_del' => 0])
                 ->find();
 
-            $names = $userCommon->handle('getCodeAndName',['code'=>[$db['supplierNo'],$db['companyNo'],$dc['supplierNo'],$dc['companyNo']]]);
+            $names = $userCommon->handle('getCodeAndName', ['code' => [$db['supplierNo'], $db['companyNo'], $dc['supplierNo'], $dc['companyNo']]]);
 
-            $value['rname'] = $names['data'][$db['supplierNo']]??'';//isset($db['rname']) ? $db['rname'] : "";
+            $value['rname'] = $names['data'][$db['supplierNo']] ?? '';//isset($db['rname']) ? $db['rname'] : "";
             $value['code'] = $db['supplierNo'];
-            $value['out_company_name'] = $names['data'][$db['companyNo']]??'';//isset($db['company']) ? $db['company'] : "";
+            $value['out_company_name'] = $names['data'][$db['companyNo']] ?? '';//isset($db['company']) ? $db['company'] : "";
 
 
-            $value['wsm_in_name'] =isset($dc['name']) ? $dc['name']:"";
-            $value['wsm_in_code'] =isset($dc['wsm_code']) ? $dc['wsm_code']:"";
-            $value['tname'] =$names['data'][$dc['supplierNo']]??'';//isset($dc['tname']) ? $dc['tname']:"";
-            $value['rcode'] =isset($dc['supplierNo']) ? $dc['supplierNo']:"";
-            $value['in_company_name'] =$names['data'][$dc['companyNo']]??'';//isset($dc['company']) ? $dc['company']:"";
-            $value['company_name'] = $item[$value['apply_id']]??'';
+            $value['wsm_in_name'] = isset($dc['name']) ? $dc['name'] : "";
+            $value['wsm_in_code'] = isset($dc['wsm_code']) ? $dc['wsm_code'] : "";
+            $value['tname'] = $names['data'][$dc['supplierNo']] ?? '';//isset($dc['tname']) ? $dc['tname']:"";
+            $value['rcode'] = isset($dc['supplierNo']) ? $dc['supplierNo'] : "";
+            $value['in_company_name'] = $names['data'][$dc['companyNo']] ?? '';//isset($dc['company']) ? $dc['company']:"";
+            $value['company_name'] = $item[$value['apply_id']] ?? '';
 
             //是否具有编辑权限
             $value['is_allow_update'] = 0;
             if (in_array($this->roleid, [1, 33]) || in_array($value['apply_id'], $role[DataGroupModel::$type_可编辑])) $value['is_allow_update'] = 1;
 
-            $data []=$value;
+            $data [] = $value;
         }
-        return app_show(0,"获取成功",['count'=>$count,'list'=>$data]);
+        return app_show(0, "获取成功", ['count' => $count, 'list' => $data]);
     }
     public function create(){
     	$token =isset($this->post['token']) && $this->post['token'] !=="" ? trim($this->post['token']) :"";
@@ -822,14 +843,12 @@ public function vesio(){
             $condtion[] = ['c.wsm_code', "=", $wsmcode];
             // $typecode= Db::name("good_stock")->where(["wsm_code"=>$wsmcode,'is_del'=>0])->column("good_type_code");
         }
-        $goodcode = isset($this->post['good_code']) && $this->post['good_code'] !== "" ? trim($this->post['good_code'])
-            : "";
+        $goodcode = isset($this->post['good_code']) && $this->post['good_code'] !== "" ? trim($this->post['good_code']) : "";
         if ($goodcode != "") {
             // $condtion['a.good_code'] = Db::raw("like '%{$goodcode}%'");
             $condtion[] = ['b.spuCode', "like", "%{$goodcode}%"];
         }
-        $good_name = isset($this->post['good_name']) && $this->post['good_name'] !== "" ? trim($this->post['good_name'])
-            : "";
+        $good_name = isset($this->post['good_name']) && $this->post['good_name'] !== "" ? trim($this->post['good_name']) : "";
         if ($good_name != "") {
             //  $condtion['a.good_name'] = Db::raw("like '%{$good_name}%'");
             $condtion[] = ['b.good_name', "like", "%{$good_name}%"];
@@ -848,13 +867,11 @@ public function vesio(){
             $wsmcode = Db::name("warehouse_info")->where(['companyNo' => $companyNo, "is_del" => 0])->column("wsm_code");
             $condition[] = ["c.wsm_code", "in", $wsmcode];
         }
-        $stock_low = isset($this->post['stock_low']) && $this->post['stock_low'] !== "" ? intval($this->post['stock_low'])
-            : "";
+        $stock_low = isset($this->post['stock_low']) && $this->post['stock_low'] !== "" ? intval($this->post['stock_low']) : "";
         if ($stock_low != "") {
             $condtion[] = ['d.balance_num', ">=", $stock_low];
         }
-        $stock_up = isset($this->post['stock_up']) && $this->post['stock_up'] !== "" ? trim($this->post['stock_up'])
-            : "";
+        $stock_up = isset($this->post['stock_up']) && $this->post['stock_up'] !== "" ? trim($this->post['stock_up']) : "";
         if ($stock_up != "") {
             $condtion[] = ['d.balance_num', "<=", $stock_up];
         }
@@ -901,9 +918,14 @@ public function vesio(){
             $names = $userCommon->handle('getCodeAndName',['code'=>array_merge(array_column($list, 'supplierNo'),array_column($list, 'companyNo'))]);
 //            $business = $names['data'];
 
+            $supplier = Db::connect('mysql_sys')
+                ->name('supplier')
+                ->where(['code'=>array_column($list,'supplierNo')])
+                ->column('name,person','code');
+
             foreach ($list as $key => $value) {
 //                $supplier = Db::name("supplier")->where(["code" => $value['supplierNo']])->find();
-                $value['supplier_name'] = $names['data'][$value['supplierNo']]??'';//isset($supplier['name']) ? $supplier['name'] : "";
+                $value['supplier_name'] = $supplier['name'] ?? '';//$names['data'][$value['supplierNo']]??'';//isset($supplier['name']) ? $supplier['name'] : "";
                 $wsmcode = Db::name("warehouse_info")->alias("a")->leftJoin("supplier b", "a.supplierNo=b.code")->where(["a.wsm_code" => $value['wsm_code']])->field("a.name as wsm_name,b.name,b.code")->find();
                 $value['wsm_name'] = isset($wsmcode['wsm_name']) ? $wsmcode['wsm_name'] : "";
                 $value['wsm_supplier'] = isset($wsmcode['name']) ? $wsmcode['name'] : "";
@@ -930,7 +952,7 @@ public function vesio(){
                     }
                 }
                 $value['specinfo'] = $speclist;
-                $value['cgder'] = isset($supplier['person']) ? $supplier['person'] : '';
+                $value['cgder'] = $supplier['person'] ?? '';//isset($supplier['person']) ? $supplier['person'] : '';
                 $value['company_name'] = $item[$value['createrid']]??'';
                 $data[] = $value;
             }

+ 8 - 2
app/admin/controller/Consult.php

@@ -2412,6 +2412,14 @@ class Consult extends Base
             $where[]= ["a.status",'=',$status];
         }
         $userCommon=new \app\admin\common\User();
+
+        $supplierNo = trim($this->post['supplierNo'] ?? '');
+        if ($supplierNo != '') {
+            //如果筛选供应商,不查看同一家业务公司的数据
+            $relaComArr = $userCommon->handle("hqInfo", ["code" => $supplierNo]);
+            if ($relaComArr['data']['relation_code'] ?? '' != '') $where[] = ['b.companyNo', '<>', $relaComArr['data']['relation_code']];
+        }
+
         //查看非本公司的竞价单
         $relaComNo = isset($this->post['relaComNo']) && $this->post['relaComNo']!="" ? trim($this->post['relaComNo']):"";
         if($this->level!=1 & $relaComNo!="") {
@@ -2423,8 +2431,6 @@ class Consult extends Base
         	$where[]=['b.companyNo','<>', $companyNo];
         }
 
-
-
         $count = Db::name('consult_info')
             ->alias("a")
             ->leftJoin("consult_order b","a.zxNo=b.zxNo")