|
@@ -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']):"";
|