Bladeren bron

库存预警接口优化

wufeng 2 jaren geleden
bovenliggende
commit
692f74e28d
1 gewijzigde bestanden met toevoegingen van 126 en 114 verwijderingen
  1. 126 114
      app/admin/controller/Check.php

+ 126 - 114
app/admin/controller/Check.php

@@ -17,136 +17,148 @@ public function __construct(App $app)
     parent::__construct($app);
 
 }
-public function flist(){
-    $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;
-    $condtion=[['b.is_del',"=",0],['c.is_del',"=",0]];
-    $wsmcode =isset($this->post['wsm_code']) &&$this->post['wsm_code'] !=="" ? trim($this->post['wsm_code']):"";
-    if($wsmcode!==""){
-        //return error_show(1002,"仓库code不能为空");
-        $condtion[]=['c.wsm_code',"=",$wsmcode];
-       // $typecode= Db::name("good_stock")->where(["wsm_code"=>$wsmcode,'is_del'=>0])->column("good_type_code");
-    }
+
+    public function flist()
+    {
+        $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;
+        $condtion = [['b.is_del', "=", 0], ['c.is_del', "=", 0]];
+        $wsmcode = isset($this->post['wsm_code']) && $this->post['wsm_code'] !== "" ? trim($this->post['wsm_code']) : "";
+        if ($wsmcode !== "") {
+            //return error_show(1002,"仓库code不能为空");
+            $condtion[] = ['c.wsm_code', "=", $wsmcode];
+            // $typecode= Db::name("good_stock")->where(["wsm_code"=>$wsmcode,'is_del'=>0])->column("good_type_code");
+        }
 
 //    $good_code =isset($this->post['type_code']) &&$this->post['type_code'] !=="" ? trim($this->post['type_code']):"";
 //    if($good_code!=""){
 //        $condtion[]=['b.type_code',"=",$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'])
-        :"";
-    if($good_name!=""){
-      //  $condtion['a.good_name'] = Db::raw("like '%{$good_name}%'");
-        $condtion[]=['b.good_name',"like","%{$good_name}%"];
-    }
-    $supplierNo =isset($this->post['supplierNo']) &&$this->post['supplierNo'] !=="" ? trim($this->post['supplierNo']):"";
-    if($supplierNo!=""){
-        $supplier = Db::name("supplier")->where(["code"=>$supplierNo])->find();
-        if(empty($supplier)){
-            return error_show(1004,"未找到供应商信息");
-        }
-        $wsmcode = Db::name("warehouse_info")->where(["is_del"=>0,"supplierNo"=>$supplierNo])->column("wsm_code");
-        $condtion[]=['c.wsm_code',"in",$wsmcode];
-    }
-    $companyNo = isset($this->post['companyNo']) && $this->post['companyNo'] !== "" ? trim($this->post['companyNo']) : "";
-    if ($companyNo !== "") {
-        $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'])
-        :"";
-    if($stock_low!=""){
-        $condtion[]=['c.usable_stock',">=",$stock_low];
-    }
-    $stock_max =isset($this->post['stock_max']) &&$this->post['stock_max'] !=="" ? intval($this->post['stock_max'])
-        :"";
-    if($stock_max!=""){
-        $condtion[]=['c.usable_stock',">=",$stock_max];
-    }
-    $stock_up =isset($this->post['stock_up']) &&$this->post['stock_up'] !=="" ? trim($this->post['stock_up'])
-        :"";
-    if($stock_up!=""){
-        $condtion[]=['c.usable_stock',"<=",$stock_up];
-    }
-    $warn_low =isset($this->post['warn_low']) &&$this->post['warn_low'] !=="" ? intval($this->post['warn_low'])
-        :"";
-    if($warn_low!==""){
-        $condtion[]=['c.warn_stock',">=",$warn_low];
-    }
-    $warn_up =isset($this->post['warn_up']) &&$this->post['warn_up'] !=="" ? intval($this->post['warn_up'])
-        :"";
-    if($warn_up!=""){
-        $condtion[]=['c.warn_stock',"<=",$warn_up];
-    }
-    $cat_id =isset($this->post['cat_id']) &&$this->post['cat_id'] !=="" ? intval($this->post['cat_id']) :"";
-    if($cat_id!=""){
-        $at = Db::name('cat')->where(['id'=>$cat_id])->find();
-        if(empty($at)){
-            return error_show(1004,"未找到分类信息");
-        }
-        $cat=manger([$at['id']],$at['level']);
-        $condtion[]=['b.cat_id',"in",$cat];
-    }
-    $count = Db::name("good")->alias("b")
-        ->join("good_stock c","c.spuCode=b.spuCode","left")
-        ->where($condtion)->count();
-    $page>=ceil($count/$size) ? $page=ceil($count/$size) :"";
-    $list = Db::name("good")
-        ->alias("b")
-        ->join("good_stock c","c.spuCode=b.spuCode","left")
-        ->where($condtion)
-        ->page($page,$size)
-        ->select()
-        ->toArray();
+        $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'])
+            : "";
+        if ($good_name != "") {
+            //  $condtion['a.good_name'] = Db::raw("like '%{$good_name}%'");
+            $condtion[] = ['b.good_name', "like", "%{$good_name}%"];
+        }
+        $supplierNo = isset($this->post['supplierNo']) && $this->post['supplierNo'] !== "" ? trim($this->post['supplierNo']) : "";
+        if ($supplierNo != "") {
+            $supplier = Db::name("supplier")->where(["code" => $supplierNo])->find();
+            if (empty($supplier)) {
+                return error_show(1004, "未找到供应商信息");
+            }
+            $wsmcode = Db::name("warehouse_info")->where(["is_del" => 0, "supplierNo" => $supplierNo])->column("wsm_code");
+            $condtion[] = ['c.wsm_code', "in", $wsmcode];
+        }
+        $companyNo = isset($this->post['companyNo']) && $this->post['companyNo'] !== "" ? trim($this->post['companyNo']) : "";
+        if ($companyNo !== "") {
+            $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'])
+            : "";
+        if ($stock_low != "") {
+            $condtion[] = ['c.usable_stock', ">=", $stock_low];
+        }
+        $stock_max = isset($this->post['stock_max']) && $this->post['stock_max'] !== "" ? intval($this->post['stock_max'])
+            : "";
+        if ($stock_max != "") {
+            $condtion[] = ['c.usable_stock', ">=", $stock_max];
+        }
+        $stock_up = isset($this->post['stock_up']) && $this->post['stock_up'] !== "" ? trim($this->post['stock_up'])
+            : "";
+        if ($stock_up != "") {
+            $condtion[] = ['c.usable_stock', "<=", $stock_up];
+        }
+        $warn_low = isset($this->post['warn_low']) && $this->post['warn_low'] !== "" ? intval($this->post['warn_low'])
+            : "";
+        if ($warn_low !== "") {
+            $condtion[] = ['c.warn_stock', ">=", $warn_low];
+        }
+        $warn_up = isset($this->post['warn_up']) && $this->post['warn_up'] !== "" ? intval($this->post['warn_up'])
+            : "";
+        if ($warn_up != "") {
+            $condtion[] = ['c.warn_stock', "<=", $warn_up];
+        }
+        $cat_id = isset($this->post['cat_id']) && $this->post['cat_id'] !== "" ? intval($this->post['cat_id']) : "";
+        if ($cat_id != "") {
+            $at = Db::name('cat')->where(['id' => $cat_id])->find();
+            if (empty($at)) {
+                return error_show(1004, "未找到分类信息");
+            }
+            $cat = manger([$at['id']], $at['level']);
+            $condtion[] = ['b.cat_id', "in", $cat];
+        }
+        $count = Db::name("good")->alias("b")
+            ->join("good_stock c", "c.spuCode=b.spuCode", "left")
+            ->where($condtion)->count();
+        $page >= ceil($count / $size) ? $page = ceil($count / $size) : "";
+        $list = Db::name("good")
+            ->alias("b")
+            ->leftJoin("good_stock c", "c.spuCode=b.spuCode")
+            ->where($condtion)
+            ->page($page, $size)
+            ->select()
+            ->toArray();
 
-    $data=[];
-    if($list) {
-        //品牌信息
-        $brands = Db::name('brand')->whereIn('id', array_column($list, 'brand_id'))->where('is_del', 0)->column('brand_name', 'id');
-        $units = Db::name('unit')->whereIn('id', array_column($list, 'good_unit'))->where('is_del', 0)->column('unit', 'id');
+        $data = [];
+        if ($list) {
+            //品牌信息
+            $brands = Db::name('brand')->whereIn('id', array_column($list, 'brand_id'))->where('is_del', 0)->column('brand_name', 'id');
+            $units = Db::name('unit')->whereIn('id', array_column($list, 'good_unit'))->where('is_del', 0)->column('unit', 'id');
+            $business = Db::name('business')->whereIn('companyNo', array_column($list, 'companyNo'))->where('is_del', 0)->column('company', 'companyNo');
 
-        foreach ($list as $key=>$value){
-            $supplier = Db::name("supplier")->where(["code"=>$value['supplierNo']])->find();
-            $value['supplier_name'] =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']:"";
-            $value['wsm_supplierNo'] =isset($wsmcode['code']) ? $wsmcode['code']:"";
-            $value['can']= isset($value['cat_id']) && $value['cat_id'] !=0 ? made($value['cat_id']):[];
+            foreach ($list as $key => $value) {
+                $supplier = Db::name("supplier")->where(["code" => $value['supplierNo']])->find();
+                $value['supplier_name'] = 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'] : "";
+                $value['wsm_supplierNo'] = isset($wsmcode['code']) ? $wsmcode['code'] : "";
+                $value['can'] = isset($value['cat_id']) && $value['cat_id'] != 0 ? made($value['cat_id']) : [];
 
-            $value['brand_name'] = $brands[$value['brand_id']]??'';
-            $value['unit'] = $units[$value['good_unit']]??'';
+                $value['brand_name'] = isset($brands[$value['brand_id']]) ? $brands[$value['brand_id']] : '';
+                $value['unit'] = isset($units[$value['good_unit']]) ? $units[$value['good_unit']] : '';
+                $value['companyName'] = isset($business[$value['companyNo']]) ? $business[$value['companyNo']] : '';
 
-            //规格信息
-            $spec = Db::name("good_spec")->where(["spuCode" => $value['spuCode'], "is_del" => 0])->select()->toArray();
+                //规格信息
+                $spec = Db::name("good_spec")->where(["spuCode" => $value['spuCode'], "is_del" => 0])->select()->toArray();
 
-            $speclist = [];
-            if (!empty($spec)) {
-                foreach ($spec as $val) {
-                    $temp = [];
-                    $temp['spec_id'] = $val['spec_id'];
-                    $temp['spec_value_id'] = $val['spec_value_id'];
-                    $sp = Db::name("specs")->where(["id" => $val['spec_id']])->find();
-                    $temp['spec_name'] = isset($sp["spec_name"]) ? $sp["spec_name"] : "";
-                    $spv = Db::name("spec_value")->where(["id" => $val['spec_value_id']])->find();
-                    $temp['spec_value'] = isset($spv["spec_value"]) ? $spv["spec_value"] : "";
-                    $speclist[] = $temp;
+                $speclist = [];
+                if (!empty($spec)) {
+                    foreach ($spec as $val) {
+                        $temp = [];
+                        $temp['spec_id'] = $val['spec_id'];
+                        $temp['spec_value_id'] = $val['spec_value_id'];
+                        $sp = Db::name("specs")->where(["id" => $val['spec_id']])->find();
+                        $temp['spec_name'] = isset($sp["spec_name"]) ? $sp["spec_name"] : "";
+                        $spv = Db::name("spec_value")->where(["id" => $val['spec_value_id']])->find();
+                        $temp['spec_value'] = isset($spv["spec_value"]) ? $spv["spec_value"] : "";
+                        $speclist[] = $temp;
+                    }
                 }
+                $value['specinfo'] = $speclist;
+
+                //采购人
+                $value['cgder'] = Db::name('purchease_order')
+                    ->where([
+                        'wsm_code'=>$value['wsm_code'],
+                        'spuCode'=>$value['spuCode'],
+                        'is_del'=>0,
+                    ])->value('cgder','');
+
+                $data[] = $value;
             }
-            $value['specinfo'] = $speclist;
 
-            $data[]=$value;
         }
 
+        return app_show(0, "获取成功", ["list" => $data, "count" => $count]);
     }
-
-    return app_show(0,"获取成功",["list"=>$data,"count"=>$count]);
-}
 public function list()
 {
     $page = isset($this->post['page']) && $this->post['page'] !== "" ? intval($this->post['page']) : "1";