فهرست منبع

库存概况和库存统计中,虚拟仓不参与

wufeng 2 سال پیش
والد
کامیت
62ca0096a6
2فایلهای تغییر یافته به همراه32 افزوده شده و 15 حذف شده
  1. 31 14
      app/admin/controller/Good.php
  2. 1 1
      app/admin/route/app.php

+ 31 - 14
app/admin/controller/Good.php

@@ -458,29 +458,39 @@ class Good extends Base
     public function GetStockWsm(){
         $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;
-        $condition = [["is_del","=",0]];
+        $condition = [["gs.is_del","=",0]];
         $wsm_code = isset($this->post['wsm_code']) &&$this->post['wsm_code'] !=="" ? trim($this->post['wsm_code']):"";
         if($wsm_code!==""){
-            $condition[]=["wsm_code","=",$wsm_code];
+            $condition[]=["gs.wsm_code","=",$wsm_code];
         }
         $suplierNo = isset($this->post['supplierNo']) &&$this->post['supplierNo'] !=="" ? trim($this->post['supplierNo']):"";
         if($suplierNo!==""){
             $wsmcode = Db::name("warehouse_info")->where(['supplierNo'=>$suplierNo,"is_del"=>0])->column("wsm_code");
-            $condition[]=["wsm_code","in",$wsmcode];
+            $condition[]=["gs.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[]=["wsm_code","in",$wsmcode];
+            $condition[]=["gs.wsm_code","in",$wsmcode];
         }
-        $build= Db::name("good_stock")->where($condition)->group("wsm_code")->field("wsm_code")->buildSql();
+        $build= Db::name("good_stock")
+            ->alias('gs')
+            ->where($condition)
+            ->where('whi.wsm_type','<>',2)//2表示虚拟仓,虚拟仓不参加统计
+            ->leftJoin('warehouse_info whi','whi.wsm_code=gs.wsm_code AND whi.is_del=0')
+            ->group("gs.wsm_code")
+            ->field("gs.wsm_code")
+            ->buildSql();
         $count = Db::table($build." a")->count();
         $page>=ceil($count/$size) ? $page=ceil($count/$size) :"";
         $list = Db::name("good_stock")
+            ->alias('gs')
             ->where($condition)
+            ->where('whi.wsm_type','<>',2)//2表示虚拟仓,虚拟仓不参加统计
             ->page($page,$size)
-            ->group("wsm_code")
-            ->field("wsm_code,sum(wait_in_stock) wait_in_stock,sum(wait_out_stock) wait_out_stock,sum(usable_stock) usable_stock,sum(intra_stock) intra_stock,sum(warn_stock) warn_stock,sum(total_stock) total_stock")
+            ->leftJoin('warehouse_info whi','whi.wsm_code=gs.wsm_code AND whi.is_del=0')
+            ->group("gs.wsm_code")
+            ->field("gs.wsm_code,sum(wait_in_stock) wait_in_stock,sum(wait_out_stock) wait_out_stock,sum(usable_stock) usable_stock,sum(intra_stock) intra_stock,sum(warn_stock) warn_stock,sum(total_stock) total_stock")
             ->select()
             ->toArray();
         $data=[];
@@ -643,28 +653,35 @@ class Good extends Base
      * @throws \think\db\exception\ModelNotFoundException
      */
     public function Stat(){
-        $condition =[["is_del","=",0]];
+        $condition =[["gs.is_del","=",0]];
         $wsm_code = isset($this->post['wsm_code']) &&$this->post['wsm_code'] !=="" ? trim($this->post['wsm_code']):"";
         if($wsm_code!=""){
-            //$condition["wsm_code"] = $wsm_code;
-            $condition[]=["wsm_code","=",$wsm_code];
+            //$condition["gs.wsm_code"] = $wsm_code;
+            $condition[]=["gs.wsm_code","=",$wsm_code];
         }
         $suplierNo = isset($this->post['supplierNo']) &&$this->post['supplierNo'] !=="" ? trim($this->post['supplierNo']) :"";
         if($suplierNo!==""){
             $wsmcode = Db::name("warehouse_info")->where(['supplierNo'=>$suplierNo,"is_del"=>0])->column("wsm_code");
-            $condition[]=["wsm_code","in",$wsmcode];
+            $condition[]=["gs.wsm_code","in",$wsmcode];
         }
         $companyNo = isset($this->post['companyNo']) && $this->post['companyNo'] !== "" ? trim($this->post['companyNo']) : "";
         if ($companyNo !== "") {
             // $where['khNo'] = $khNo;
             $wsmcode = Db::name("warehouse_info")->where(['companyNo'=>$companyNo,"is_del"=>0])->column("wsm_code");
-            $condition[]=["wsm_code","in",$wsmcode];
+            $condition[]=["gs.wsm_code","in",$wsmcode];
         }
 //        $type_code = isset($this->post['type_code']) &&$this->post['type_code'] !=="" ? trim($this->post['type_code']):"";
 //        if($type_code!=""){
-//            $condition[] = ["good_type_code","=",$type_code];
+//            $condition[] = ["gs.good_type_code","=",$type_code];
 //        }
-        $statlist = Db::name("good_stock")->where($condition)->field("sum(wait_in_stock) as wait_in_stock,sum(wait_out_stock) as wait_out_stock ,sum(usable_stock) as usable_stock,sum(intra_stock) as intra_stock,sum(total_stock) as total_stock,sum(warn_stock) as warn_stock")->find();
+        $statlist = Db::name("good_stock")
+            ->alias('gs')
+            ->where($condition)
+            ->where('whi.wsm_type','<>',2)//2表示虚拟仓
+            ->leftJoin('warehouse_info whi','whi.wsm_code=gs.wsm_code AND whi.is_del=0')
+            ->field("sum(gs.wait_in_stock) as wait_in_stock,sum(gs.wait_out_stock) as wait_out_stock ,sum(gs.usable_stock) as usable_stock,sum(gs.intra_stock) as intra_stock,sum(gs.total_stock) as total_stock,sum(gs.warn_stock) as warn_stock")
+            ->fetchSql()
+            ->find();
         return app_show(0,"获取成功",$statlist);
     }
 

+ 1 - 1
app/admin/route/app.php

@@ -168,7 +168,7 @@ Route::rule("goodstat","admin/Good/Stat");//库存概况
 Route::rule("goodstock","admin/Good/GetStock");
 Route::rule("goodall","admin/Good/all");
 Route::rule("getstockgod","admin/Good/GetStockGod");
-Route::rule("getstockwsm","admin/Good/GetStockWsm");
+Route::rule("getstockwsm","admin/Good/GetStockWsm");//库存统计
 Route::rule("getstockbet","admin/Good/GetStockBet");
 Route::rule("goodloglist","admin/Good/loglist");
 Route::rule("goodplist","admin/Good/goodlist");