|
@@ -754,78 +754,146 @@ class Good extends Base
|
|
|
->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(usable_stock+wait_out_stock) total_stock")
|
|
|
->select()
|
|
|
->toArray();
|
|
|
- $data=[];
|
|
|
+
|
|
|
+ $warehouse_info = Db::name("warehouse_info")
|
|
|
+ ->alias("a")
|
|
|
+// ->leftJoin("business bus", "bus.companyNo=a.companyNo")
|
|
|
+// ->leftJoin("supplier b","a.supplierNo=b.code")
|
|
|
+ ->where(['a.wsm_code'=>array_column($list,'wsm_code'),"a.is_del"=>0])
|
|
|
+ ->column("a.name as wsm_name,wsm_code,a.supplierNo,a.companyNo",'a.wsm_code');
|
|
|
+// ->find();
|
|
|
|
|
|
$userCommon = new \app\admin\common\User();
|
|
|
+ $names = $userCommon->handle('getCodeAndName', ['code'=>array_unique(array_merge(array_column($warehouse_info, 'supplierNo'), array_column($warehouse_info, 'companyNo')))]);
|
|
|
+
|
|
|
+
|
|
|
+ $data=[];
|
|
|
+
|
|
|
foreach ($list as $key=>$value){
|
|
|
$temp=[];
|
|
|
if($value['wsm_code']!=""){
|
|
|
- $wsm = Db::name("warehouse_info")
|
|
|
- ->alias("a")
|
|
|
-// ->leftJoin("business bus", "bus.companyNo=a.companyNo")
|
|
|
-// ->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,a.supplierNo,a.companyNo")
|
|
|
- ->find();
|
|
|
- $good = Db::name("good_stock")
|
|
|
- ->alias("a")
|
|
|
- ->leftJoin("good c","c.spuCode=a.spuCode")
|
|
|
- ->where(["a.wsm_code"=>$value['wsm_code'],"a.is_del"=>0,"c.is_del"=>0])
|
|
|
- ->select()
|
|
|
- ->toArray();
|
|
|
-
|
|
|
- $names = $userCommon->handle('getCodeAndName', [$wsm['supplierNo'], $wsm['companyNo']]);
|
|
|
- $wsm['supplierName'] = $names['data'][$wsm['supplierNo']] ?? '';
|
|
|
- $wsm['company'] = $names['data'][$wsm['companyNo']] ?? '';
|
|
|
+// $wsm = Db::name("warehouse_info")
|
|
|
+// ->alias("a")
|
|
|
+//// ->leftJoin("business bus", "bus.companyNo=a.companyNo")
|
|
|
+//// ->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,a.supplierNo,a.companyNo")
|
|
|
+// ->find();
|
|
|
+// $good = Db::name("good_stock")
|
|
|
+// ->alias("a")
|
|
|
+// ->leftJoin("good c","c.spuCode=a.spuCode")
|
|
|
+// ->where(["a.wsm_code"=>$value['wsm_code'],"a.is_del"=>0,"c.is_del"=>0])
|
|
|
+// ->select()
|
|
|
+// ->toArray();
|
|
|
+
|
|
|
+// $names = $userCommon->handle('getCodeAndName', [$wsm['supplierNo'], $wsm['companyNo']]);
|
|
|
+ $warehouse_info[$value['wsm_code']]['supplierName'] = $names['data'][$warehouse_info[$value['wsm_code']]['supplierNo']] ?? '';
|
|
|
+ $warehouse_info[$value['wsm_code']]['company'] = $names['data'][$warehouse_info[$value['wsm_code']]['companyNo']] ?? '';
|
|
|
|
|
|
//商品单位和品牌
|
|
|
- $good_unit_s = Db::name("unit")->whereIn('id', array_column($good, 'good_unit'))->where('is_del', 0)->column('unit', 'id');
|
|
|
- $brands = Db::name("brand")->whereIn('id', array_column($good, 'brand_id'))->where('is_del', 0)->column('brand_name', 'id');
|
|
|
-
|
|
|
- foreach ($good as &$item_good){
|
|
|
- //规格信息
|
|
|
- $spec = Db::name("good_spec")->field('id,spec_id,spec_value_id')->where(["spuCode" => $item_good['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;
|
|
|
- }
|
|
|
- }
|
|
|
- $item_good['specinfo'] = $speclist;
|
|
|
- $item_good['unit'] = $good_unit_s[$item_good['good_unit']]??'';
|
|
|
- $item_good['brand_name'] = $brands[$item_good['brand_id']]??'';
|
|
|
- $item_good['can'] = made($item_good['cat_id'],[]);
|
|
|
- $item_good['total_stock'] =$item_good['usable_stock']+$item_good['wait_out_stock'];
|
|
|
-
|
|
|
- }
|
|
|
+// $good_unit_s = Db::name("unit")->whereIn('id', array_column($good, 'good_unit'))->where('is_del', 0)->column('unit', 'id');
|
|
|
+// $brands = Db::name("brand")->whereIn('id', array_column($good, 'brand_id'))->where('is_del', 0)->column('brand_name', 'id');
|
|
|
+
|
|
|
+// foreach ($good as &$item_good){
|
|
|
+// //规格信息
|
|
|
+// $spec = Db::name("good_spec")->field('id,spec_id,spec_value_id')->where(["spuCode" => $item_good['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;
|
|
|
+// }
|
|
|
+// }
|
|
|
+// $item_good['specinfo'] = $speclist;
|
|
|
+// $item_good['unit'] = $good_unit_s[$item_good['good_unit']]??'';
|
|
|
+// $item_good['brand_name'] = $brands[$item_good['brand_id']]??'';
|
|
|
+// $item_good['can'] = made($item_good['cat_id'],[]);
|
|
|
+// $item_good['total_stock'] =$item_good['usable_stock']+$item_good['wait_out_stock'];
|
|
|
+//
|
|
|
+// }
|
|
|
|
|
|
|
|
|
}
|
|
|
- $temp['wsm_name'] = isset($wsm['wsm_name'])?$wsm['wsm_name']:"";
|
|
|
+ $temp['wsm_name'] = isset($warehouse_info[$value['wsm_code']]['wsm_name'])?$warehouse_info[$value['wsm_code']]['wsm_name']:"";
|
|
|
$temp['wsm_code']=$value['wsm_code'];
|
|
|
- $temp['supplier_code']=isset($wsm['supplierNo'])?$wsm['supplierNo']:"";
|
|
|
- $temp['supplier_name']=isset($wsm['supplierName'])?$wsm['supplierName']:"";
|
|
|
- $temp['company_no']=isset($wsm['companyNo'])?$wsm['companyNo']:"";
|
|
|
- $temp['company_name']=isset($wsm['company'])?$wsm['company']:"";
|
|
|
+ $temp['supplier_code']=isset($warehouse_info[$value['wsm_code']]['supplierNo'])?$warehouse_info[$value['wsm_code']]['supplierNo']:"";
|
|
|
+ $temp['supplier_name']=isset($warehouse_info[$value['wsm_code']]['supplierName'])?$warehouse_info[$value['wsm_code']]['supplierName']:"";
|
|
|
+ $temp['company_no']=isset($warehouse_info[$value['wsm_code']]['companyNo'])?$warehouse_info[$value['wsm_code']]['companyNo']:"";
|
|
|
+ $temp['company_name']=isset($warehouse_info[$value['wsm_code']]['company'])?$warehouse_info[$value['wsm_code']]['company']:"";
|
|
|
$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['usable_stock']+$value['wait_out_stock'] ;
|
|
|
- $temp['child']=isset($good)&&!empty($good) ? $good:[];
|
|
|
+// $temp['child']=isset($good)&&!empty($good) ? $good:[];
|
|
|
$data[]=$temp;
|
|
|
}
|
|
|
return app_show(0,"获取成功",["list"=>$data,"count"=>$count]);
|
|
|
}
|
|
|
|
|
|
+ //库存统计 仓库维度 明细
|
|
|
+ public function GetStockWsmChild()
|
|
|
+ {
|
|
|
+
|
|
|
+ $wsm_code = $this->request->post('wsm_code', '', 'trim');
|
|
|
+
|
|
|
+ $good = Db::name("good_stock")
|
|
|
+ ->alias("a")
|
|
|
+ ->leftJoin("good c", "c.spuCode=a.spuCode")
|
|
|
+ ->where(["a.wsm_code" => $wsm_code, "a.is_del" => 0, "c.is_del" => 0])
|
|
|
+ ->select()
|
|
|
+ ->toArray();
|
|
|
+
|
|
|
+// $names = $userCommon->handle('getCodeAndName', [$wsm['supplierNo'], $wsm['companyNo']]);
|
|
|
+// $wsm['supplierName'] = $names['data'][$wsm['supplierNo']] ?? '';
|
|
|
+// $wsm['company'] = $names['data'][$wsm['companyNo']] ?? '';
|
|
|
+
|
|
|
+ //商品单位和品牌
|
|
|
+ $good_unit_s = Db::name("unit")
|
|
|
+ ->whereIn('id', array_column($good, 'good_unit'))
|
|
|
+ ->where('is_del', 0)
|
|
|
+ ->column('unit', 'id');
|
|
|
+ $brands = Db::name("brand")
|
|
|
+ ->whereIn('id', array_column($good, 'brand_id'))
|
|
|
+ ->where('is_del', 0)
|
|
|
+ ->column('brand_name', 'id');
|
|
|
+
|
|
|
+ foreach ($good as &$item_good) {
|
|
|
+ //规格信息
|
|
|
+ $spec = Db::name("good_spec")->field('id,spec_id,spec_value_id')->where(["spuCode" => $item_good['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;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $item_good['specinfo'] = $speclist;
|
|
|
+ $item_good['unit'] = $good_unit_s[$item_good['good_unit']] ?? '';
|
|
|
+ $item_good['brand_name'] = $brands[$item_good['brand_id']] ?? '';
|
|
|
+ $item_good['can'] = made($item_good['cat_id'], []);
|
|
|
+ $item_good['total_stock'] = $item_good['usable_stock'] + $item_good['wait_out_stock'];
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return json_show(0, '获取成功', $good);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
//库存统计 商品维度
|
|
|
public function GetStockGod(){
|
|
|
$page = isset($this->post['page']) &&$this->post['page'] !=="" ? intval($this->post['page']):1;
|