Sfoglia il codice sorgente

核酸价格优化,商品库存统计优化

wufeng 2 anni fa
parent
commit
8c08bc8260
2 ha cambiato i file con 247 aggiunte e 253 eliminazioni
  1. 246 252
      app/admin/controller/Good.php
  2. 1 1
      app/admin/controller/Goodup.php

+ 246 - 252
app/admin/controller/Good.php

@@ -11,30 +11,30 @@ use think\facade\Db;
 class Good extends Base
 {
 
-        private $acton=[
-            "allotsend"=>'调拨发货',
-            "allotin"=>'调拨入库',
-            "allotincheck"=>'调拨验货',
-            'CGD'=>'采购单',
-            'BHD'=>'备库单',
-            'FKD'=>'备库反馈单',
-            'RKD'=>'入库单',
-            'ZXQRD'=>'咨询单',
-            'XSQRD'=>'销售单',
-            'PDD'=>'盘点单',
-            'DBD'=>'调拨单',
-            'CKD'=>'出库单',
-            'CGTHD'=>'采购退货单',
-            'XSTHD'=>'销售退货单',
-            'CGGCD'=>'采购工差单',
-            'ZXGCD'=>'咨询工差单'
-        ];
-        public $noble=[];
-        public function __construct(App $app)
-        {
-            parent::__construct($app);
-            $this->noble=\think\facade\Config::get("noble");
-        }
+    private $acton=[
+        "allotsend"=>'调拨发货',
+        "allotin"=>'调拨入库',
+        "allotincheck"=>'调拨验货',
+        'CGD'=>'采购单',
+        'BHD'=>'备库单',
+        'FKD'=>'备库反馈单',
+        'RKD'=>'入库单',
+        'ZXQRD'=>'咨询单',
+        'XSQRD'=>'销售单',
+        'PDD'=>'盘点单',
+        'DBD'=>'调拨单',
+        'CKD'=>'出库单',
+        'CGTHD'=>'采购退货单',
+        'XSTHD'=>'销售退货单',
+        'CGGCD'=>'采购工差单',
+        'ZXGCD'=>'咨询工差单'
+    ];
+    public $noble=[];
+    public function __construct(App $app)
+    {
+        parent::__construct($app);
+        $this->noble=\think\facade\Config::get("noble");
+    }
 
     public function list(){
         $page = isset($this->post['page']) && $this->post['page'] !==""? intval($this->post['page']):"1";
@@ -51,8 +51,8 @@ class Good extends Base
         $skucode = isset($this->post['spucode']) && $this->post['spucode'] !=="" ? trim($this->post['spucode'])
             :"";
         if($skucode!==""){
-          $where [] = ['b.skucode',"like","%$skucode%"];
-         }
+            $where [] = ['b.skucode',"like","%$skucode%"];
+        }
         $start = isset($this->post['start']) && $this->post['start']!=="" ? $this->post['start']:"";
         if($start!==""){
             $where[]=['a.addtime',">=",date('Y-m-d H:i:s',strtotime($start))];
@@ -120,7 +120,7 @@ class Good extends Base
         $total = ceil($count / $size);
         $page = $page >= $total ? $total : $page;
         $list = Db::name('good')->alias("a")->leftJoin("good_platform b","a.spuCode=b.spuCode")->where($where)->page
-            ($page,$size)->field("b.skuCode,b.platform_code,b.plat_code,b.id as good_id,a.*,b.addtime,b.updatetime,b.exam_status")
+        ($page,$size)->field("b.skuCode,b.platform_code,b.plat_code,b.id as good_id,a.*,b.addtime,b.updatetime,b.exam_status")
             ->order("b.addtime desc")
             ->select();
         $data=[];
@@ -164,30 +164,30 @@ class Good extends Base
     }
 
     public function info(){
-            $skucode=isset($this->post['skuCode'])&&$this->post['skuCode']!=""?trim($this->post['skuCode']):"";
-            if($skucode==""){
-                return error_show(1005,"参数skuCode不能为空");
-            }
-            $good_platform = Db::name("good_platform")->where(['skuCode'=>$skucode,"is_del"=>0])->find();
-            if($good_platform==false){
-              return error_show(1004,"未找到商品数据");
-            }
-            $data = Db::name("good")->where(["spuCode"=>$good_platform['spuCode'],"is_del"=>0])->find();
-            if($data==false){
-                return error_show(1004,"未找到商品数据");
-            }
-            $plat =Db::name("platform")->where(["id"=>$good_platform['platform_code']])->find();
-            $data['skuCode']=$good_platform['skuCode'];
-            $data['platform_code']=$good_platform['id'];
-            $data['platform_code_en']=isset($plat['platform_code'])?$plat['platform_code']:"";
-            $data['platform_name']=isset($plat['platform_name'])?$plat['platform_name']:"";
-            $data['online_reason']=$good_platform['online_reason'];
-            $data['online_time']=$good_platform['online_time'];
-            $data['online_remark']=$good_platform['online_remark'];
-            $data['exam_status']=$good_platform['exam_status'];
-            $data['is_online']=$good_platform['is_online'];
-            $data['plat_code']=$good_platform['plat_code'];
-            $data['exclusive']=makeExcluse($data['is_exclusive']);
+        $skucode=isset($this->post['skuCode'])&&$this->post['skuCode']!=""?trim($this->post['skuCode']):"";
+        if($skucode==""){
+            return error_show(1005,"参数skuCode不能为空");
+        }
+        $good_platform = Db::name("good_platform")->where(['skuCode'=>$skucode,"is_del"=>0])->find();
+        if($good_platform==false){
+            return error_show(1004,"未找到商品数据");
+        }
+        $data = Db::name("good")->where(["spuCode"=>$good_platform['spuCode'],"is_del"=>0])->find();
+        if($data==false){
+            return error_show(1004,"未找到商品数据");
+        }
+        $plat =Db::name("platform")->where(["id"=>$good_platform['platform_code']])->find();
+        $data['skuCode']=$good_platform['skuCode'];
+        $data['platform_code']=$good_platform['id'];
+        $data['platform_code_en']=isset($plat['platform_code'])?$plat['platform_code']:"";
+        $data['platform_name']=isset($plat['platform_name'])?$plat['platform_name']:"";
+        $data['online_reason']=$good_platform['online_reason'];
+        $data['online_time']=$good_platform['online_time'];
+        $data['online_remark']=$good_platform['online_remark'];
+        $data['exam_status']=$good_platform['exam_status'];
+        $data['is_online']=$good_platform['is_online'];
+        $data['plat_code']=$good_platform['plat_code'];
+        $data['exclusive']=makeExcluse($data['is_exclusive']);
         $unit =Db::name("unit")->where(["id"=>$data['good_unit']])->find();
         $data['unit'] = isset($unit['unit'])?$unit['unit']:'';
         $data['cat_info'] = made($data['cat_id'],[]);
@@ -241,7 +241,7 @@ class Good extends Base
         $data["ladderlist"]=!empty($ladder)?$ladder:[];
         $nakelist = Db::name("good_nake")->where(['spuCode'=>$good_platform['spuCode'],"is_del"=>0])->select()->toArray();
         $catinfo = Db::name("cat")->where(["id"=>$data['cat_id']])->find();
-       // $budget = isset($catinfo['order_rate']) ? $catinfo['order_rate']/100:0;
+        // $budget = isset($catinfo['order_rate']) ? $catinfo['order_rate']/100:0;
         $nakearry=[];
         if(!empty($nakelist)){
             foreach ($nakelist as $value){
@@ -257,39 +257,39 @@ class Good extends Base
 
 
     public function SetWarn(){
-            $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;
-            }else{
-                return error_show(1004,"参数wsm_code 不能为空");
-            }
-            $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;
-            }else{
-                return error_show(1004,"参数type_code 不能为空");
-            }
-           $good= Db::name("good_stock")->where($condition)->find();
-           if(empty($good)){
-               return error_show(1005,"未找到数据");
-           }
-           $warn_stock = isset($this->post['warn_stock']) &&$this->post['warn_stock'] !=="" ? intval($this->post['warn_stock']):"";
-           if($warn_stock===""){
-               return error_show(1005,"参数warn_stock 不能为空");
-           }
-           $good['warn_stock'] = $warn_stock;
-           $good['updatetime'] = date("Y-m-d H:i:s");
-            $up= Db::name("good_stock")->save($good);
-            if($up){
-                $data=["stock_id"=>$good['id'],"type"=>1,'stock'=>$warn_stock,"stock_name"=>"warn_stock"];
-                GoodLog::LogAdd($this->post['token'],$data,'setwarn');
+        $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;
+        }else{
+            return error_show(1004,"参数wsm_code 不能为空");
+        }
+        $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;
+        }else{
+            return error_show(1004,"参数type_code 不能为空");
+        }
+        $good= Db::name("good_stock")->where($condition)->find();
+        if(empty($good)){
+            return error_show(1005,"未找到数据");
+        }
+        $warn_stock = isset($this->post['warn_stock']) &&$this->post['warn_stock'] !=="" ? intval($this->post['warn_stock']):"";
+        if($warn_stock===""){
+            return error_show(1005,"参数warn_stock 不能为空");
+        }
+        $good['warn_stock'] = $warn_stock;
+        $good['updatetime'] = date("Y-m-d H:i:s");
+        $up= Db::name("good_stock")->save($good);
+        if($up){
+            $data=["stock_id"=>$good['id'],"type"=>1,'stock'=>$warn_stock,"stock_name"=>"warn_stock"];
+            GoodLog::LogAdd($this->post['token'],$data,'setwarn');
 
-                return app_show(0,"预警库存更新成功");
-            }else{
-                return error_show(1005,"预警库存更新失败");
-            }
+            return app_show(0,"预警库存更新成功");
+        }else{
+            return error_show(1005,"预警库存更新失败");
         }
+    }
 
     public function SetStatus(){
         $id = isset($this->post['id']) &&$this->post['id'] !=="" ? intval($this->post['id']):"";
@@ -311,7 +311,7 @@ class Good extends Base
         $condition = [["a.is_del","=",0]];
         $type_code = isset($this->post['type_code']) &&$this->post['type_code'] !=="" ? trim($this->post['type_code']):"";
         if($type_code!==""){
-          $condition[]=["a.spuCode","=",$type_code];
+            $condition[]=["a.spuCode","=",$type_code];
         }
         $wsm_code = isset($this->post['wsm_code']) &&$this->post['wsm_code'] !=="" ? trim($this->post['wsm_code'])
             :"";
@@ -325,12 +325,12 @@ class Good extends Base
             $wsmcode = Db::name("warehouse_info")->where(['supplierNo'=>$suplierNo,"is_del"=>0])->column("wsm_code");
             $condition[]=["a.wsm_code","in",$wsmcode];
         }
-       $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 as wsm_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();
+        $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 as wsm_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();
         if(empty($list)){
             return error_show(1004,"未找到数据");
         }
-     return app_show(0,"获取成功",$list);
+        return app_show(0,"获取成功",$list);
     }
 
     /**
@@ -339,77 +339,77 @@ class Good extends Base
      * @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[]=["spuCode","like","%{$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];
-      }
-      $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];
-      }
-      $start = isset($this->post['start']) &&$this->post['start'] !=="" ? $this->post['start']:"";
-      $end = isset($this->post['end']) &&$this->post['end'] !=="" ? $this->post['end']:"";
-      if($start!=""){
-          $condition[]=["addtime",">=",$start];
-      }
-      if($end!=""){
-          $condition[]=["addtime","<=",$end];
-      }
-      $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")->alias("a")->leftJoin("supplier b","a.supplierNo=b.code")->where
-              (['a.wsm_code'=>$value['wsm_code'],"a.is_del"=>0])->field("a.name as wsm_name,wsm_code,b.code,b.name")
-                  ->find();
-          }
-          $temp['wsm_name'] = isset($wsm['wsm_name'])?$wsm['wsm_name']:"";
-          $temp['wsm_code']=$value['wsm_code'];
-          $temp['supplier_code']=isset($wsm['code'])?$wsm['code']:"";
-          $temp['supplier_name']=isset($wsm['name'])?$wsm['name']:"";
-          if($value['spuCode']!=""){
-              $good=Db::name("good")->where(["spuCode"=>$value['spuCode'],"is_del"=>0])->find();
-          }
-          $temp['good_code']=isset($good['spuCode'])?$good['spuCode']:"";
-        //  $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['cat_id'])?$good['cat_id']:"";
-          $temp['cat_info']=isset($good['cat_id'])?made($good['cat_id']):"";
-          $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['out_total'] =0;
-          $temp['in_total'] = 0;
-          $temp['addtime'] = $value['addtime'];
-          $data[]=$temp;
-      }
-      return app_show(0,"获取成功",["list"=>$data,"count"=>$count]);
-  }
+    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[]=["spuCode","like","%{$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];
+        }
+        $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];
+        }
+        $start = isset($this->post['start']) &&$this->post['start'] !=="" ? $this->post['start']:"";
+        $end = isset($this->post['end']) &&$this->post['end'] !=="" ? $this->post['end']:"";
+        if($start!=""){
+            $condition[]=["addtime",">=",$start];
+        }
+        if($end!=""){
+            $condition[]=["addtime","<=",$end];
+        }
+        $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")->alias("a")->leftJoin("supplier b","a.supplierNo=b.code")->where
+                (['a.wsm_code'=>$value['wsm_code'],"a.is_del"=>0])->field("a.name as wsm_name,wsm_code,b.code,b.name")
+                    ->find();
+            }
+            $temp['wsm_name'] = isset($wsm['wsm_name'])?$wsm['wsm_name']:"";
+            $temp['wsm_code']=$value['wsm_code'];
+            $temp['supplier_code']=isset($wsm['code'])?$wsm['code']:"";
+            $temp['supplier_name']=isset($wsm['name'])?$wsm['name']:"";
+            if($value['spuCode']!=""){
+                $good=Db::name("good")->where(["spuCode"=>$value['spuCode'],"is_del"=>0])->find();
+            }
+            $temp['good_code']=isset($good['spuCode'])?$good['spuCode']:"";
+            //  $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['cat_id'])?$good['cat_id']:"";
+            $temp['cat_info']=isset($good['cat_id'])?made($good['cat_id']):"";
+            $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['out_total'] =0;
+            $temp['in_total'] = 0;
+            $temp['addtime'] = $value['addtime'];
+            $data[]=$temp;
+        }
+        return app_show(0,"获取成功",["list"=>$data,"count"=>$count]);
+    }
 
     /**
      * @return \think\response\Json|void
@@ -418,115 +418,110 @@ class Good extends Base
      * @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];
-      }
-      $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];
-      }
-      $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];
-      }
-      $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,
+    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];
+        }
+        $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];
+        }
+        $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];
+        }
+        $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")->alias("a")->leftJoin("supplier b","a.supplierNo=b.code")->where
-              (['a.wsm_code'=>$value['wsm_code'],"a.is_del"=>0])->field("a.name as wsm_name,wsm_code,b.code,b.name")
-                  ->find();
-              $good = Db::name("good_stock")->alias("a")
-                  ->join("good c","c.spuCode=a.spuCode","left")->where(["a.wsm_code"=>$value['wsm_code'],"a.is_del"=>0,"c.is_del"=>0])->select();
-          }
-          $temp['wsm_name'] = isset($wsm['wsm_name'])?$wsm['wsm_name']:"";
-          $temp['wsm_code']=$value['wsm_code'];
-          $temp['supplier_code']=isset($wsm['code'])?$wsm['code']:"";
-          $temp['supplier_name']=isset($wsm['name'])?$wsm['name']:"";
-          $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()
-    {
-
-        //1.接收参数
-        $data = $this->request->only(['page' => 1, 'size' => 10, 'type_code' => ''], 'post', 'trim');
-
-        //2.组织查询条件
-        $condition = [["b.is_del", "=", 0], ["c.usable_stock", ">", 0]];
-        if ($data['type_code']) $condition[] = ["b.spuCode", "like", "%{$data['type_code']}%"];
+        $data=[];
+        foreach ($list as $key=>$value){
+            $temp=[];
+            if($value['wsm_code']!=""){
+                $wsm = Db::name("warehouse_info")->alias("a")->leftJoin("supplier b","a.supplierNo=b.code")->where
+                (['a.wsm_code'=>$value['wsm_code'],"a.is_del"=>0])->field("a.name as wsm_name,wsm_code,b.code,b.name")
+                    ->find();
+                $good = Db::name("good_stock")->alias("a")
+                    ->join("good c","c.spuCode=a.spuCode","left")->where(["a.wsm_code"=>$value['wsm_code'],"a.is_del"=>0,"c.is_del"=>0])->select();
+            }
+            $temp['wsm_name'] = isset($wsm['wsm_name'])?$wsm['wsm_name']:"";
+            $temp['wsm_code']=$value['wsm_code'];
+            $temp['supplier_code']=isset($wsm['code'])?$wsm['code']:"";
+            $temp['supplier_name']=isset($wsm['name'])?$wsm['name']:"";
+            $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]);
+    }
 
-        //3.总数
-        $count = Db::name("good")
-            ->alias("b")
-            ->join("good_stock c", "c.spuCode = b.spuCode", "left")
+    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 = [["b.is_del","=",0],["c.usable_stock",">",0]];
+        $type_code = isset($this->post['type_code']) &&$this->post['type_code'] !=="" ? trim($this->post['type_code']):"";
+        if($type_code!==""){
+            $condition[]=["b.spuCode","like","%{$type_code}%"];
+        }
+        $count = Db::name("good")->alias("b")
+            ->join("good_stock c","c.spuCode = b.spuCode","left")
             ->where($condition)
             ->group("b.spuCode,b.good_name,b.good_unit,b.cat_id,b.craft_desc,b.addtime")
-            ->count('b.id');
-
-        //4.查询列表
-        $last_page = ceil($count / $data['size']);
-        $page = $data['page'] >= $last_page ? $last_page : $data['page'];
+            ->count();
+        $page>=ceil($count/$size) ? $page=ceil($count/$size) :"";
         $list = Db::name("good")
             ->alias("b")
-            ->join("good_stock c", "c.spuCode = b.spuCode", "left")
+            ->join("good_stock c","c.spuCode = b.spuCode","left")
             ->where($condition)
-            ->field("b.spuCode,b.good_name,b.good_unit,b.cat_id,b.brand_id,b.craft_desc,b.addtime,sum(c.wait_in_stock) wait_in_stock,sum(c.wait_out_stock) wait_out_stock,sum(c.usable_stock) usable_stock,sum(c.intra_stock) intra_stock,sum(c.warn_stock) warn_stock,sum(c.total_stock) total_stock")
-            ->page($page, $data['size'])
+            ->field("b.spuCode,b.good_name,b.good_unit,b.brand_id,b.cat_id,b.craft_desc,b.addtime,sum(c.wait_in_stock) wait_in_stock,sum(c.wait_out_stock) wait_out_stock,sum(c.usable_stock) usable_stock,sum(c.intra_stock) intra_stock,sum(c.warn_stock) warn_stock,sum(c.total_stock) total_stock")
+            ->page($page,$size)
             ->order("b.addtime desc")
-            ->group("b.spuCode,b.good_name,b.good_unit,b.cat_id,b.craft_desc,b.brand_id,b.addtime")
+            ->group("b.spuCode,b.good_name,b.good_unit,b.brand_id,b.cat_id,b.craft_desc,b.addtime")
             ->select()
             ->toArray();
+        // echo Db::name("good_type")->getLastSql();
+        $data=[];
 
-        //5.组织其他数据
-        if ($list) {
-
-            //仓库
-            $child = Db::name("good_stock")
-                ->alias("a")
-                ->join("warehouse_info b", "a.wsm_code=b.wsm_code", "left")
-                ->join("business bus", "bus.companyNo=b.companyNo", "left")
-                ->join("supplier s", "s.code=b.supplierNo", "left")
-                ->where(["b.wsm_type" => 1, "a.is_del" => 0])
-                ->whereIn('a.spuCode', array_column($list, 'spuCode'))
-                ->column("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,b.supplierNo,s.name supplierName,b.companyNo,bus.company", 'a.spuCode');
+        if($list) {
 
             //商品单位和品牌
             $good_unit_s = Db::name("unit")->whereIn('id', array_column($list, 'good_unit'))->where('is_del', 0)->column('unit', 'id');
             $brands = Db::name("brand")->whereIn('id', array_column($list, 'brand_id'))->where('is_del', 0)->column('brand_name', 'id');
 
-            $data = [];
             foreach ($list as $key => $value) {
                 $temp = [];
-
+                if ($value['spuCode'] != "") {
+                    $child = Db::name("good_stock")
+                        ->alias("a")
+                        ->join("warehouse_info b", "a.wsm_code=b.wsm_code", "left")
+                        ->join("business bus", "bus.companyNo=b.companyNo", "left")
+                        ->join("supplier s", "s.code=b.supplierNo", "left")
+                        ->where(['a.spuCode' => $value['spuCode'], "b.wsm_type" => 1, "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,b.supplierNo,s.name supplierName,b.companyNo,bus.company")
+                        ->select()
+                        ->toArray();
+                }
                 $temp['good_name'] = $value['good_name'];
                 $temp['good_code'] = $value['spuCode'];
                 $temp['type_code'] = '';
-                $temp['unit'] = $good_unit_s[$value['good_unit']] ?? '';
+//                $unit = Db::name("unit")->where(['id' => $value['good_unit']])->find();
+                $temp['unit'] =$good_unit_s[$value['spuCode']]??'';
+                $temp['brand_name'] =$brands[$value['brand_id']]??'';
                 $temp['sort_f'] = isset($value['cat_id']) ? made($value['cat_id']) : [];
                 $temp['sort_f'] = implode('/', array_column($temp['sort_f'], 'name'));//由于这个字段原样在页面显示,所以在这里特意拼接成字符串
                 $temp['attribute'] = $value['craft_desc'];
@@ -537,8 +532,7 @@ class Good extends Base
                 $temp['intra_stock'] = isset($value['intra_stock']) ? $value['intra_stock'] : "";
                 $temp['total_stock'] = isset($value['total_stock']) ? $value['total_stock'] : "";
                 // $temp['warn_stock'] = isset($value['warn_stock'])? $value['warn_stock']:"";
-                $temp['child'] = $child[$value['spuCode']] ?? [];
-                $temp['brand_name'] = $brands[$value['brand_id']] ?? '';
+                $temp['child'] = isset($child) && !empty($child) ? $child : [];
 
                 //规格信息
                 $spec = Db::name("good_spec")->field('id,spec_id,spec_value_id')->where(["spuCode" => $value['spuCode'], "is_del" => 0])->select()->toArray();
@@ -561,7 +555,7 @@ class Good extends Base
                 $data[] = $temp;
             }
         }
-        return app_show(0, "获取成功", ["list" => $data, "count" => $count]);
+        return app_show(0,"获取成功",["list"=>$data,"count"=>$count]);
     }
     /**
      * @return \think\response\Json|void
@@ -573,7 +567,7 @@ class Good extends Base
         $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;
+            //$condition["wsm_code"] = $wsm_code;
             $condition[]=["wsm_code","=",$wsm_code];
         }
         $suplierNo = isset($this->post['supplierNo']) &&$this->post['supplierNo'] !=="" ? trim($this->post['supplierNo']) :"";
@@ -628,7 +622,7 @@ class Good extends Base
         $list = Db::name("good_type")->alias("b")->join("good a","a.good_code = b.good_code","left")
             ->where($condtion)->field("b.id,a.good_code,a.good_name,a.good_desc,a.brand,a.original_price,a.cg_saler,a.good_type,a.market_fee,a.gys_code,a.unit,
                 a.sort_f,a.sort_s,a.sort_t,b.color,b.material,b.specs,b.is_main,b.type_code,b.attribute,b.status as bstatus,a.addtime,a.updatetime")
-           ->select();
+            ->select();
         $data=[];
         foreach ($list as $key=>$value){
             $stock = Db::name("good_stock")->where(["good_type_code"=>$value['type_code'],"is_del"=>0])->sum("usable_stock");
@@ -671,7 +665,7 @@ class Good extends Base
             ->field("a.action_name,a.type,a.stock_name,a.stock,a.action_type,b.spuCode,a.addtime,a.action_uid,b.wsm_code")
             ->select()
             ->toArray();
-       $data=[];
+        $data=[];
         foreach ($list as $value){
             $db = Db::name("depart_user")->where(['uid'=>$value['action_uid']])->column("itemid");
             $item = Db::name("company_item")->where(['id'=>$db])->column("id,name");

+ 1 - 1
app/admin/controller/Goodup.php

@@ -1702,7 +1702,7 @@ class Goodup extends Base
             return error_show(1010,"起订量不足{$nakelist['min_num']}");
         }
         $catinfo = Db::name("cat")->where(["id"=>$good['cat_id']])->find();
-        $budget = isset($catinfo['order_rate']) ? $catinfo['order_rate']/100:0;
+        $budget = isset($catinfo['sale_rate']) ? $catinfo['sale_rate']/100:0;
         if($good['is_gold_price']==1){
             $saleprice =  $good['noble_weight']*$good["cgd_gold_price"] + $nakelist['cost_fee']/(1-$budget)*
                 $good['noble_weight']+$nakelist['mark_fee']+$nakelist['package_fee']+$nakelist['cert_fee']+$nakelist['nake_fee']+$nakelist['delivery_fee'];