Browse Source

细节优化,预发布环境数据处理

wufeng 2 years ago
parent
commit
1afa460484

+ 11 - 2
app/admin/controller/Activity.php

@@ -88,7 +88,7 @@ class Activity extends Base
         $page = $page >= $total ? $total : $page;
         $list = Db::name('good_activity')
             ->alias('ga')
-            ->field('ga.*,p.platform_name')
+            ->field('ga.*,ga.company_id companyNo,p.platform_name')
             ->leftJoin("platform p", "p.id=ga.platform_code")
             ->withAttr('is_allow_update',function($val,$data)use($role){
                 return (in_array($this->roleid, [1, 33]) || in_array($data['createrid'], $role[DataGroupModel::$type_可编辑])) ? 1 : 0;//是否具有编辑权限
@@ -100,8 +100,11 @@ class Activity extends Base
         $all_createrid = array_column($list,'createrid');
         $item = get_company_name_by_uid($all_createrid);
 
+        $names = get_headquarters_code_and_name(array_unique(array_column($list,'companyNo')));
+
         foreach ($list as &$value){
             $value['company_name']=$item[$value['createrid']]??'';
+            $value['companyName']=$names[$value['companyNo']]??'';
         }
 
         return app_show(0,"获取成功",['list'=>$list,'count'=>$count]);
@@ -154,9 +157,15 @@ class Activity extends Base
             ->where($where)
             ->page($page,$size)
             ->order("a.addtime desc")
-            ->field("a.*,b.activity_name,c.platform_name,c.platform_code")
+            ->field("a.*,b.activity_name,c.platform_name,c.platform_code,b.company_id companyNo")
             ->select()
             ->toArray();
+
+        $names = get_headquarters_code_and_name(array_column($list,'companyNo'));
+        foreach ($list as &$value){
+            $value['companyName'] = $names[$value['companyNo']] ?? '';
+        }
+
         return app_show(0,"获取成功",['list'=>$list,'count'=>$count]);
     }
     public function zilist(){

+ 4 - 2
app/admin/controller/Check.php

@@ -244,14 +244,14 @@ public function __construct(App $app)
             ->alias('a')
             ->join("warehouse_info b", "a.wsm_code = b.wsm_code", "left")
 //            ->join("supplier v", "v.code=b.supplierNo", "left")
-            ->field("a.status,a.apply_id,a.apply_name,a.type,a.addtime,a.wsm_code,a.check_code,b.name,a.id,b.supplierNo as code")
+            ->field("a.status,a.apply_id,a.apply_name,a.type,a.addtime,a.wsm_code,a.check_code,b.name,a.id,b.supplierNo as code,a.companyNo")
             ->where($where)
             ->page($page, $size)
             ->order("a.id desc")
             ->select()
             ->toArray();
              $userCommon= new \app\admin\common\User();
-	        $supplier_temp =$userCommon->handle("getCodeAndName",["code"=>array_column($list,"code")]);
+	        $supplier_temp =$userCommon->handle("getCodeAndName",["code"=>array_unique(array_merge(array_column($list,"code"),array_column($list,"companyNo")))]);
 	        $supplier=$supplier_temp['data']??[];
         $data = [];
         foreach ($list as $key => $value) {
@@ -266,6 +266,8 @@ public function __construct(App $app)
             //是否具有编辑权限
             $value['is_allow_update'] = 0;
             if (in_array($this->roleid, [1, 33]) || in_array($value['apply_id'], $role[DataGroupModel::$type_可编辑])) $value['is_allow_update'] = 1;
+
+            $value['companyName'] = $supplier[$value['companyNo']]??'';
             $data[] = $value;
         }
         return app_show(0, "获取成功", ['count' => $count, 'list' => $data]);

+ 10 - 7
app/admin/controller/Consult.php

@@ -91,7 +91,7 @@ class Consult extends Base
             ->leftJoin("consult_order b", "a.zxNo=b.zxNo")
             ->where($where)
             ->page($page, $size)
-            ->field("a.*,b.createrid,b.creater,b.is_project,b.projectNo,b.khNo,b.endtime,b.platform_code,b.saleid,b.salesman,b.depart")
+            ->field("a.*,b.createrid,b.creater,b.is_project,b.projectNo,b.khNo,b.endtime,b.platform_code,b.saleid,b.salesman,b.depart,b.companyNo")
             ->order("a.id desc")
             ->select()
             ->toArray();
@@ -100,16 +100,16 @@ class Consult extends Base
         $item = get_company_name_by_uid($all_createrid);
 
 		 $userCommon = new \app\admin\common\User();
-		 $tmp = $userCommon->handle('getCodeAndName', ['code' =>array_column($list,"khNo")]);
-        $kh = $tmp['data']??[];
+        $names = $userCommon->handle('getCodeAndName', ['code' =>array_unique(array_merge(array_column($list,"khNo"),array_column($list,"companyNo")))]);
+//        $kh = $tmp['data']??[];
 
 
         $brand = Db::name("brand")
             ->where(['id'=>array_column($list,'brand_id')])
             ->column('brand_name','id');
 
-        $userCommon = new \app\admin\common\User();
-        $names = $userCommon->handle('getCodeAndName', ['code' => array_column($list, 'khNo')]);
+//        $userCommon = new \app\admin\common\User();
+//        $names = $userCommon->handle('getCodeAndName', ['code' => array_column($list, 'khNo')]);
 
 
         $data=[];
@@ -122,7 +122,7 @@ class Consult extends Base
 
             if($value['khNo']!==""){
 //                $kh=Db::name("customer_info")->where(['companyNo'=>$value['khNo']])->find();
-                $value['khname']=$kh[$value['khNo']]??"";
+                $value['khname']=$names['data'][$value['khNo']]??"";
 
 //            if ($value['khNo'] !== "") {
 ////                $kh=Db::name("customer_info")->where(['companyNo'=>$value['khNo']])->find();
@@ -134,6 +134,8 @@ class Consult extends Base
             //是否具有编辑权限
             $value['is_allow_update'] = 0;
             if (in_array($this->roleid, [1, 33]) || in_array($value['createrid'], $role[DataGroupModel::$type_可编辑])) $value['is_allow_update'] = 1;
+
+            $value['companyName'] = $names['data'][$value['companyNo']]??'';
             $data[]=$value;
         }
         return app_show(0,"获取成功",['count'=>$count,'list'=>$data]);
@@ -2574,7 +2576,7 @@ class Consult extends Base
             ->toArray();
         $data = [];
         $user= new \app\admin\common\User();
-        $supplier_temp =$user->handle("getCodeAndName",["code"=>array_column($list,"supplierNo")]);
+        $supplier_temp =$user->handle("getCodeAndName",["code"=>array_unique(array_merge(array_column($list,"supplierNo"),array_column($list,"companyNo")))]);
 //        if($supplier_temp['code']!=0 || empty($supplier_temp['data']) ) throw new Exception('该供应商不存在');
 		$supplier=$supplier_temp['data']??[];
 
@@ -2596,6 +2598,7 @@ class Consult extends Base
             $value['unit'] = $unit[$value['unit_id']]??'';//isset($unit['unit']) ? $unit['unit'] : '';
 //            $supplier = Db::name("supplier")->where(["code" => $value['supplierNo']])->find();
             $value['supplierName'] = isset($supplier[$value['supplierNo']]) ? $supplier[$value['supplierNo']] : "";
+            $value['companyName'] = $supplier[$value['companyNo']]??'';
 //            if ($value['brand_id'] != 0) {
 //                $brand = Db::name("brand")->where(["id" => $value['brand_id']])->find();
             $value["brand_name"] = $brand[$value['brand_id']] ?? '';//isset($brand['brand_name']) ? $brand['brand_name'] : "";

+ 119 - 51
app/admin/controller/Good.php

@@ -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;

+ 3 - 3
app/admin/controller/Sale.php

@@ -3522,7 +3522,7 @@ class Sale extends Base
             ->leftJoin("order_send os", "os.outCode=a.outCode")
             ->leftJoin("purchease_order wpo", "wpo.cgdNo=os.cgdNo")
 //	        ->leftJoin('supplier sip', 'sip.code=wpo.supplierNo')
-            ->field("a.*,b.order_type,b.order_source,b.good_name,b.good_code,b.skuCode,b.customer_code,'' companyName,b.origin_price,b.sale_price,b.total_price,os.cgdNo,wpo.supplierNo,n.supplierNo wsm_supplierNo")
+            ->field("a.*,b.order_type,b.order_source,b.good_name,b.good_code,b.skuCode,b.customer_code,b.supplierNo companyNo,b.supplierName companyName,b.origin_price,b.sale_price,b.total_price,os.cgdNo,wpo.supplierNo,n.supplierNo wsm_supplierNo")
             ->where($where)
             ->where($condition)
             ->order("addtime desc")
@@ -3533,7 +3533,7 @@ class Sale extends Base
         $all_createrid = array_column($list, 'apply_id');
         $item = get_company_name_by_uid($all_createrid);
         $user = new \app\admin\common\User();
-        $names = $user->handle("getCodeAndName", ["code" => array_merge(array_column($list, "supplierNo"), array_column($list, "customer_code"), array_column($list, "wsm_supplierNo"))]);
+        $names = $user->handle("getCodeAndName", ["code" => array_merge( array_column($list, "customer_code"), array_column($list, "wsm_supplierNo"))]);
 
 //        $userCommon = new \app\admin\common\User();
 //        $names = $userCommon->handle('getCodeAndName',['code'=>array_column($list,'customer_code')]);
@@ -3541,7 +3541,7 @@ class Sale extends Base
         $data = [];
         foreach ($list as $value) {
 
-            $value['companyName'] = $names['data'][$value['customer_code']] ?? '';
+//            $value['companyName'] = $names['data'][$value['customer_code']] ?? '';
 
             if ($value['order_type'] == 1 && $value['wsm_code'] == '') {
 //            	$wsmcode = Db::name("good")->alias("a")

+ 2 - 2
app/admin/controller/SupplierClient.php

@@ -711,7 +711,7 @@ class SupplierClient extends Base {
             ->join("warehouse_info n", "n.wsm_code=a.wsm_code AND n.is_del=0", "left")
             ->leftJoin("order_send os", "os.outCode=a.outCode")
             ->leftJoin("purchease_order wpo", "wpo.cgdNo=os.cgdNo")
-            ->field("a.*,b.order_type,b.order_source,b.good_name,b.good_code,b.skuCode,b.customer_code,'' companyName,b.origin_price,b.sale_price,b.total_price,os.cgdNo,wpo.supplierNo,n.supplierNo wsm_supplierNo")
+            ->field("a.*,b.order_type,b.order_source,b.good_name,b.good_code,b.skuCode,b.customer_code,b.supplierNo companyNo,b.supplierName companyName,b.origin_price,b.sale_price,b.total_price,os.cgdNo,wpo.supplierNo,n.supplierNo wsm_supplierNo")
             ->where($where)
             ->where($condition)
             ->order(["addtime" => "desc", 'id' => 'desc'])
@@ -725,7 +725,7 @@ class SupplierClient extends Base {
         $names = $user->handle("getCodeAndName", ["code" => array_merge(array_column($list, "supplierNo"), array_column($list, "customer_code"), array_column($list, "wsm_supplierNo"))]);
         $data = [];
         foreach ($list as $value) {
-            $value['companyName'] = $names['data'][$value['customer_code']] ?? '';
+//            $value['companyName'] = $names['data'][$value['customer_code']] ?? '';
             if ($value['order_type'] == 1 && $value['wsm_code'] == '') {
                 $value['wsm_supplierNo'] = $value['supplierNo'];
                 $value['wsm_supplier'] = $names['data'][$value['supplierNo']] ?? "";

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

@@ -204,6 +204,7 @@ 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("getstockwsmchild", "admin/Good/GetStockWsmChild");//库存统计-明细
 Route::rule("getstockbet", "admin/Good/GetStockBet");
 Route::rule("goodloglist", "admin/Good/loglist");
 Route::rule("goodplist", "admin/Good/goodlist");