|
@@ -470,52 +470,98 @@ class Good extends Base
|
|
|
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 = [["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();
|
|
|
- $page>=ceil($count/$size) ? $page=ceil($count/$size) :"";
|
|
|
- $list = Db::name("good")->alias("b")
|
|
|
- ->join("good_stock c","c.spuCode = b.spuCode","left")
|
|
|
- ->where($condition)->field("b.spuCode,b.good_name,b.good_unit,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.addtime")->select();
|
|
|
- // echo Db::name("good_type")->getLastSql();
|
|
|
- $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")
|
|
|
- ->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")->select();
|
|
|
+ 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']}%"];
|
|
|
+
|
|
|
+ //3.总数
|
|
|
+ $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'];
|
|
|
+ $list = Db::name("good")
|
|
|
+ ->alias("b")
|
|
|
+ ->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'])
|
|
|
+ ->order("b.addtime desc")
|
|
|
+ ->group("b.spuCode,b.good_name,b.good_unit,b.cat_id,b.craft_desc,b.brand_id,b.addtime")
|
|
|
+ ->select()
|
|
|
+ ->toArray();
|
|
|
+
|
|
|
+ //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');
|
|
|
+
|
|
|
+ //商品单位和品牌
|
|
|
+ $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 = [];
|
|
|
+
|
|
|
+ $temp['good_name'] = $value['good_name'];
|
|
|
+ $temp['good_code'] = $value['spuCode'];
|
|
|
+ $temp['type_code'] = '';
|
|
|
+ $temp['unit'] = $good_unit_s[$value['good_unit']] ?? '';
|
|
|
+ $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'];
|
|
|
+ $temp['addtime'] = $value['addtime'];
|
|
|
+ $temp['usable_stock'] = isset($value['usable_stock']) ? $value['usable_stock'] : "";
|
|
|
+ $temp['wait_in_stock'] = isset($value['wait_in_stock']) ? $value['wait_in_stock'] : "";
|
|
|
+ $temp['wait_out_stock'] = isset($value['wait_out_stock']) ? $value['wait_out_stock'] : "";
|
|
|
+ $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']] ?? '';
|
|
|
+
|
|
|
+ //规格信息
|
|
|
+ $spec = Db::name("good_spec")->field('id,spec_id,spec_value_id')->where(["spuCode" => $value['spuCode'], "is_del" => 0])->select()->toArray();
|
|
|
+
|
|
|
+ $speclist = [];
|
|
|
+ if (!empty($spec)) {
|
|
|
+ foreach ($spec as $val) {
|
|
|
+ $tmp = [];
|
|
|
+ $tmp['spec_id'] = $val['spec_id'];
|
|
|
+ $tmp['spec_value_id'] = $val['spec_value_id'];
|
|
|
+ $sp = Db::name("specs")->where(["id" => $val['spec_id']])->find();
|
|
|
+ $tmp['spec_name'] = isset($sp["spec_name"]) ? $sp["spec_name"] : "";
|
|
|
+ $spv = Db::name("spec_value")->where(["id" => $val['spec_value_id']])->find();
|
|
|
+ $tmp['spec_value'] = isset($spv["spec_value"]) ? $spv["spec_value"] : "";
|
|
|
+ $speclist[] = $tmp;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $temp['specinfo'] = $speclist;
|
|
|
+
|
|
|
+ $data[] = $temp;
|
|
|
}
|
|
|
- $temp['good_name'] = $value['good_name'];
|
|
|
- $temp['good_code'] = $value['spuCode'];
|
|
|
- $temp['type_code'] ='';
|
|
|
- $unit = Db::name("unit")->where(['id'=>$value['good_unit']])->find();
|
|
|
- $temp['unit'] = isset($unit['unit'])?$unit['unit']:"";
|
|
|
- $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'];
|
|
|
- $temp['addtime']=$value['addtime'];
|
|
|
- $temp['usable_stock'] = isset($value['usable_stock'])? $value['usable_stock']:"";
|
|
|
- $temp['wait_in_stock'] = isset($value['wait_in_stock'])? $value['wait_in_stock']:"";
|
|
|
- $temp['wait_out_stock'] = isset($value['wait_out_stock'])? $value['wait_out_stock']:"";
|
|
|
- $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']=isset($child)&&!empty($child) ? $child:[];
|
|
|
- $data[]=$temp;
|
|
|
- }
|
|
|
- return app_show(0,"获取成功",["list"=>$data,"count"=>$count]);
|
|
|
+ }
|
|
|
+ return app_show(0, "获取成功", ["list" => $data, "count" => $count]);
|
|
|
}
|
|
|
/**
|
|
|
* @return \think\response\Json|void
|