wugg 3 years ago
parent
commit
e0fb3dc02b
2 changed files with 158 additions and 0 deletions
  1. 155 0
      app/admin/controller/Good.php
  2. 3 0
      app/admin/route/app.php

+ 155 - 0
app/admin/controller/Good.php

@@ -133,11 +133,166 @@ class Good extends \app\BaseController
         if($wsm_code!==""){
             $condition["a.wsm_code"]=$wsm_code;
         }
+
        $list = Db::name("good_stock")->alias("a")->join("warehouse_info b","a.wsm_code=b.wsm_code","left")->join("supplier c","b.supplierNo=c.code","left")
            ->where($condition)->field("a.id,b.name,c.code,c.name,a.wait_in_stock,a.wait_out_stock,a.usable_stock,a.intra_stock,a.total_stock,a.status,a.warn_stock")->select();
      return app_show(0,"获取成功",$list);
     }
 
+    /**
+     * @return \think\response\Json|void
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
+     */
+  public function GetStockBet(){
+      $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]];
+      $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];
+      }
+      $wsm_code = isset($this->post['wsm_code']) &&$this->post['wsm_code'] !=="" ? trim($this->post['wsm_code'])
+          :"";
+      if($wsm_code!==""){
+          $condition[]=["wsm_code","=",$wsm_code];
+      }
+      $suplierNo = isset($this->post['suplierNo']) &&$this->post['suplierNo'] !=="" ? trim($this->post['suplierNo'])
+          :"";
+      if($suplierNo!==""){
+          $wsmcode = Db::name("warehouse_info")->where(['supplierNo'=>$suplierNo,"is_del"=>0])->column("wsm_code");
+          $condition[]=["wsm_code","in",$wsmcode];
+      }
+      $count = Db::name("good_stock")->where($condition)->count();
+      $page>=ceil($count/$size) ? $page=ceil($count/$size) :"";
+      $list = Db::name("good_stock")->where($condition)->page($page,$size)->order("addtime desc")->select();
+      $data=[];
+      foreach ($list as $key=>$value){
+          $temp=[];
+          if($value['wsm_code']!=""){
+              $wsm = Db::name("warehouse_info")->where(['wsm_code'=>$value['wsm_code'],"is_del"=>0])->find();
+          }
+          $temp['wsm_name'] = isset($wsm['name'])?$wsm['name']:"";
+          $temp['wsm_code']=$value['wsm_code'];
+          if($value['good_type_code']!=""){
+              $good=Db::name("good_type")->alias("a")->join("good b","a.good_code=b.good_code","left")->where(["a.type_code"=>$value['good_type_code'],"a.is_del"=>0,"b.is_del"=>0])
+                  ->field("a.good_code,a.type_code,b.good_name,b.unit,a.attribute,b.sort_f")->find();
+          }
+          $temp['good_code']=isset($good['good_code'])?$good['good_code']:"";
+          $temp['type_code']=isset($good['type_code'])?$good['type_code']:"";
+          $temp['good_name']=isset($good['good_name'])?$good['good_name']:"";
+          $temp['unit']=isset($good['unit'])?$good['unit']:"";
+          $temp['attribute']=isset($good['attribute'])?$good['attribute']:"";
+          $temp['sort_f']=isset($good['sort_f'])?$good['sort_f']:"";
+          $temp['usable_stock'] = $value['usable_stock'];
+          $temp['wait_in_stock'] = $value['wait_in_stock'];
+          $temp['wait_out_stock'] = $value['wait_out_stock'];
+          $temp['intra_stock'] = $value['intra_stock'];
+          $temp['total_stock'] = $value['total_stock'];
+          $temp['warn_stock'] = $value['warn_stock'];
+          $temp['id'] = $value['id'];
+          $temp['addtime'] = $value['addtime'];
+          $data[]=$temp;
+      }
+      return app_show(0,"获取成功",["list"=>$data,"count"=>$count]);
+  }
+
+    /**
+     * @return \think\response\Json|void
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @throws \think\exception\DbException
+     */
+  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]];
+      $wsm_code = isset($this->post['wsm_code']) &&$this->post['wsm_code'] !=="" ? trim($this->post['wsm_code'])
+          :"";
+      if($wsm_code!==""){
+          $condition[]=["wsm_code","=",$wsm_code];
+      }
+      $build= Db::name("good_stock")->where($condition)->group("wsm_code")->field("wsm_code")->buildSql();
+      $count = Db::table($build." a")->count();
+      $page>=ceil($count/$size) ? $page=ceil($count/$size) :"";
+      $list = Db::name("good_stock")->where($condition)->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")->select();
+      $data=[];
+      foreach ($list as $key=>$value){
+          $temp=[];
+          if($value['wsm_code']!=""){
+              $wsm = Db::name("warehouse_info")->where(['wsm_code'=>$value['wsm_code'],"is_del"=>0])->find();
+              $good = Db::name("good_stock")->alias("a")->join("good_type b","a.good_type_code=b.type_code","left")
+                  ->join("good c","c.good_code=b.good_code","left")->where(["a.wsm_code"=>$value['wsm_code'],"a.is_del"=>0,"b.is_del"=>0,"c.is_del"=>0])
+                  ->field("c.good_code,a.good_type_code,c.good_name,b.attribute,c.sort_f,c.unit,a.usable_stock,a.wait_in_stock,a.wait_out_stock,a.intra_stock,a.total_stock,a.warn_stock")
+                  ->select();
+          }
+          $temp['wsm_name'] = isset($wsm['name'])?$wsm['name']:"";
+          $temp['wsm_code']=$value['wsm_code'];
+          $temp['usable_stock'] = $value['usable_stock'];
+          $temp['wait_in_stock'] = $value['wait_in_stock'];
+          $temp['wait_out_stock'] = $value['wait_out_stock'];
+          $temp['intra_stock'] = $value['intra_stock'];
+          $temp['total_stock'] = $value['total_stock'];
+          $temp['warn_stock'] = $value['warn_stock'];
+          $temp['child']=isset($good)&&!empty($good) ? $good:[];
+          $data[]=$temp;
+      }
+      return app_show(0,"获取成功",["list"=>$data,"count"=>$count]);
+  }
+
+    public function GetStockGod(){
+        $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 = [["a.is_del","=",0],["b.is_del","=",0]];
+        $type_code = isset($this->post['type_code']) &&$this->post['type_code'] !=="" ? trim($this->post['type_code'])
+            :"";
+        if($type_code!==""){
+            $condition[]=["b.type_code","=",$type_code];
+        }
+        $count = Db::name("good_type")->alias("b")->join("good a","a.good_code = b.good_code","left")
+            ->where($condition)->count();
+        $page>=ceil($count/$size) ? $page=ceil($count/$size) :"";
+        $list = Db::name("good_type")->alias("b")->join("good a","a.good_code = b.good_code","left")
+            ->where($condition)->field("a.good_code,a.good_name,a.unit,a.sort_f,b.type_code,b.attribute,a.addtime")
+            ->page($page,$size)->order("a.addtime desc")->select();
+        $data=[];
+        foreach ($list as $key=>$value){
+            $temp=[];
+            if($value['type_code']!=""){
+                $wsm = Db::name("good_stock")->where(['good_type_code'=>$value['type_code'],"is_del"=>0])->field("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")
+                 ->find();
+                $child = Db::name("good_stock")->alias("a")->join("warehouse_info b","a.wsm_code=b.wsm_code","left")
+                    ->where(['a.good_type_code'=>$value['type_code'],"a.is_del"=>0])->field("a.wsm_code,b.name wsm_name,a.wait_in_stock,a.wait_out_stock,a.usable_stock,a.intra_stock,a.total_stock,a.warn_stock")->select();
+            }
+            $temp['good_name'] = $value['good_name'];
+            $temp['good_code'] = $value['good_code'];
+            $temp['type_code'] = $value['type_code'];
+            $temp['unit'] = $value['unit'];
+            $temp['sort_f']=$value['sort_f'];
+            $temp['attribute']=$value['attribute'];
+            $temp['addtime']=$value['addtime'];
+            $temp['usable_stock'] = isset($wsm['usable_stock'])? $wsm['usable_stock']:"";
+            $temp['wait_in_stock'] = isset($wsm['wait_in_stock'])? $wsm['wait_in_stock']:"";
+            $temp['wait_out_stock'] = isset($wsm['wait_out_stock'])? $wsm['wait_out_stock']:"";
+            $temp['intra_stock'] = isset($wsm['intra_stock'])? $wsm['intra_stock']:"";
+            $temp['total_stock'] = isset($wsm['total_stock'])? $wsm['total_stock']:"";
+            $temp['warn_stock'] = isset($wsm['warn_stock'])? $wsm['warn_stock']:"";
+            $temp['child']=isset($child)&&!empty($child) ? $child:[];
+            $data[]=$temp;
+        }
+        return app_show(0,"获取成功",["list"=>$data,"count"=>$count]);
+    }
+    /**
+     * @return \think\response\Json|void
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
+     */
     public function Stat(){
         $condition =["is_del"=>0];
         $wsm_code = isset($this->post['wsm_code']) &&$this->post['wsm_code'] !=="" ? trim($this->post['wsm_code']):"";

+ 3 - 0
app/admin/route/app.php

@@ -151,6 +151,9 @@ Route::rule("goodstatus","admin/Good/SetStatus");
 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("getstockbet","admin/Good/GetStockBet");
 
 Route::rule("purchlist","admin/Resign/list");
 Route::rule("purchadd","admin/Resign/add");