wugg 1 year ago
parent
commit
eb9e5dfcb9
2 changed files with 28 additions and 41 deletions
  1. 26 38
      app/admin/controller/Report.php
  2. 2 3
      app/youzan/logic/Cat.php

+ 26 - 38
app/admin/controller/Report.php

@@ -375,13 +375,11 @@ class Report extends Base
         $data = [];
         foreach ($list as $value) {
 			$bumen=get_company_name_by_uid([$value['createrid']]);
-//			var_dump($bumen,get_company_name_by_uid([$value['createrid']]));
 	        $value['name'] = $bumen[$value['createrid']]??'供应商';
             if ($value['name'] == '供应商') {
                 $data[] = $value;
                 continue;
             }
-//	        $value['name'] = $bumen[$value['createrid']]??'供应商';
             if (!isset($data[$value['addtime']][$value['name']][$value['nickname']])) {
                 $data[$value['addtime']][$value['name']][$value['nickname']] = [
                     'addtime' => $value['addtime'],
@@ -422,8 +420,6 @@ class Report extends Base
             'token',
             'start_date' => '',
             'end_date' => '',
-//            'page' => 1,
-//            'size' => 15
         ], 'post', 'trim');
 
         $val_params = Validate::rule([
@@ -438,29 +434,16 @@ class Report extends Base
 
         //先组织子查询
         $rs = Db::name('purchease_order')
-            ->field('id,DATE_FORMAT(addtime, "%Y-%m-%d") addtime,cgder_id,cgder,total_fee,status,good_num,supplierNo,0 wait_total_fee,0 wait_good_num,0 count_num')
+            ->field('id,DATE_FORMAT(addtime, "%Y-%m-%d") addtime,cgder_id,cgder,total_fee,status,good_num,supplierNo,supplier_name,0 wait_total_fee,0 wait_good_num,0 count_num')
             ->where($where)
             ->order('addtime desc,cgder_id')
             ->select()
             ->toArray();
-//            ->buildSql();
-
-//        $count = Db::table($children_query)
-//            ->alias('a')
-//            ->group('addtime,cgder_id,cgder')
-//            ->count();
-
-//        $rs = Db::table($children_query)
-//            ->alias('a')
-//            ->field('a.addtime,a.cgder_id,a.cgder,SUM(a.total_fee) total_fee,SUM(a.good_num) good_num,COUNT(a.id) count_num,a.status,0 wait_total_fee,0 wait_good_num,supplierNo')
-//            ->group('a.addtime,a.cgder_id,a.cgder,a.status')
-//            ->order('a.addtime desc,a.cgder_id')
-//            ->page($param['page'], $param['size'])
-//            ->cursor();
 
         $all_supplier = array_column($rs, 'supplierNo');
-        $has_account = checkHasAccountBySupplierNos($all_supplier);//检查供应商是否开通账号
-        $supplier = Db::name('supplier')->whereIn('code', array_keys($has_account))->column('name', 'code');
+
+        $has_account = checkHasAccountBySupplierNos(array_unique($all_supplier));//检查供应商是否开通账号
+//        $supplier = Db::name('supplier')->whereIn('code', array_keys($has_account))->column('name', 'code');
 
         $data = [];
         foreach ($rs as $value) {
@@ -471,7 +454,7 @@ class Report extends Base
             if (!isset($data[$value['addtime']][$key])) {
                 $data[$value['addtime']][$key] = [
                     'addtime' => $value['addtime'],
-                    'cgder' => isset($has_account[$value['supplierNo']]) ? $supplier[$value['supplierNo']] ?? '' : $value['cgder'],
+                    'cgder' => isset($has_account[$value['supplierNo']]) ? $value['supplier_name'] ?? '' : $value['cgder'],
                     'name' => isset($has_account[$value['supplierNo']]) ? '供应商' : get_company_name_by_uid($key),
                     'count_num' => '0',
                     'total_fee' => '0',
@@ -533,7 +516,7 @@ class Report extends Base
 
         if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['ci.addtime', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
         if ($param['cbaddtime_start_date'] != '' && $param['cbaddtime_end_date'] != '') $where[] = ['cb.addtime', 'between', [$param['cbaddtime_start_date'] . ' 00:00:00', $param['cbaddtime_end_date'] . ' 23:59:59']];
-        if ($param['supplier'] != '') $where[] = ['cb.supplierNo|s.name', 'like', '%' . $param['supplier'] . '%'];
+        if ($param['supplier'] != '') $where[] = ['cb.supplierNo|cb.supplierName', 'like', '%' . $param['supplier'] .'%'];
         if ($param['creater'] != '') $where[] = ['cb.creater', 'like', '%' . $param['creater'] . '%'];
         if ($param['zxNo'] != '') $where[] = ['cb.infoNo', 'like', '%' . $param['zxNo'] . '%'];
 
@@ -542,35 +525,33 @@ class Report extends Base
             ->alias('cb')
             ->leftJoin('consult_info ci', 'ci.infoNo=cb.infoNo')
             ->leftJoin('consult_order co', 'co.zxNo=cb.zxNo')
-            ->leftJoin('supplier s', 's.code=cb.supplierNo')
-            ->leftJoin('customer_info csi', 'csi.companyNo=co.khNo')
+//            ->leftJoin('supplier s', 's.code=cb.supplierNo')
+//            ->leftJoin('customer_info csi', 'csi.companyNo=co.khNo')
             ->where($where)
             ->count('cb.id');
 
         $data = Db::name('consult_bids')
             ->alias('cb')
-            ->field('cb.id,ci.addtime,cb.bidNo,cb.infoNo zxNo,cb.addtime cbaddtime,cb.good_name,s.name supplier,cb.total_fee,cb.delivery_day,cb.work_day,cb.expire_day,cb.creater,cb.createrid,"" name,ci.num,ci.arrival_time,co.saleid,co.salesman,"" salesman_name,csi.companyName')
+            ->field('cb.id,ci.addtime,cb.bidNo,cb.infoNo zxNo,cb.addtime cbaddtime,cb.good_name,
+            cb.supplierName supplier,cb.total_fee,cb.delivery_day,cb.work_day,cb.expire_day,cb.creater,
+            cb.createrid,"" name,ci.num,ci.arrival_time,co.saleid,co.salesman,"" salesman_name,co.khNo')
             ->leftJoin('consult_info ci', 'ci.infoNo=cb.infoNo')
             ->leftJoin('consult_order co', 'co.zxNo=cb.zxNo')
-            ->leftJoin('supplier s', 's.code=cb.supplierNo')
-            ->leftJoin('customer_info csi', 'csi.companyNo=co.khNo')
-//            ->withAttr('name', function ($val, $data) {
-//                return get_company_name_by_uid($data['createrid']);
-//            })
-//            ->withAttr('salesman_name', function ($val, $data) {
-//                return get_company_name_by_uid($data['saleid']);
-//            })
             ->where($where)
             ->page($param['page'], $param['size'])
             ->order('ci.addtime', 'desc')
             ->select()
             ->toArray();
-
+		$ComArr =array_unique(array_column($data , "khNo")) ;
+	    $userCommon = \app\admin\common\User::getIns();
+	    $supplier_temp = $userCommon->handle('getCodeAndName', ['code' => $ComArr]);
+	    $supplier = $supplier_temp['data'] ?? [];
         //获取所有创建人的部门
         $item_name = get_company_name_by_uid(array_unique(array_merge(array_column($data, 'createrid'), array_column($data, 'saleid'))));
         foreach ($data as &$value) {
             $value['name'] = $item_name[$value['createrid']] ?? '';
             $value['salesman_name'] = $item_name[$value['saleid']] ?? '';
+            $value['companyName'] = $supplier[$value['khNo']] ?? '';
         }
 
         //汇总
@@ -635,18 +616,25 @@ class Report extends Base
 
 
         $data = $rs
-            ->field('ci.addtime as 咨询时间,cb.bidNo as 采购单反馈单号,cb.infoNo as 咨询订单号,cb.addtime as 回复时间,cb.good_name as 产品名称,s.name as 供应商名称,cb.total_fee 成本合计,cb.delivery_day 物流时间,cb.work_day 产品工期,cb.expire_day 信息有效期,cb.creater 采购员,"" 采购员所属部门,ci.num 需求数量,ci.arrival_time 要求到货日期,co.salesman 业务人员,"" 业务人员所属部门,csi.companyName 客户名称,cb.createrid,co.saleid')
+            ->field('ci.addtime as 咨询时间,cb.bidNo as 采购单反馈单号,cb.infoNo as 咨询订单号,cb.addtime as 回复时间,cb.good_name as 产品名称,cb.supplierName as 供应商名称,cb.total_fee 成本合计,cb.delivery_day 物流时间,cb.work_day 产品工期,cb.expire_day 信息有效期,cb.creater 采购员,"" 采购员所属部门,ci.num 需求数量,ci.arrival_time 要求到货日期,co.salesman 业务人员,"" 业务人员所属部门,"" 客户名称,co.khNo,cb.createrid,co.saleid')
             ->leftJoin('consult_info ci', 'ci.infoNo=cb.infoNo')
             ->leftJoin('consult_order co', 'co.zxNo=cb.zxNo')
-            ->leftJoin('supplier s', 's.code=cb.supplierNo')
-            ->leftJoin('customer_info csi', 'csi.companyNo=co.khNo')
             ->cursor();
 
+
         $list = [];
+        $supplier=[];
         foreach ($data as $value) {
             $value['采购员所属部门'] = get_company_name_by_uid($value['createrid']);
             $value['业务人员所属部门'] = get_company_name_by_uid($value['saleid']);
+            if(!isset($supplier[$value['khNo']])){
+	            $userCommon = \app\admin\common\User::getIns();
+	            $supplier_temp = $userCommon->handle('getCodeAndName', ['code' => $value['khNo']]);
+	            $supplier[$value['khNo']] = isset($supplier_temp['data']) ? $supplier_temp['data'][$value['khNo']]:'';
+            }
+	        $value['客户名称'] = $supplier[$value['khNo']];
             unset($value['createrid']);
+            unset($value['khNo']);
             unset($value['saleid']);
             $list[] = $value;
         }

+ 2 - 3
app/youzan/logic/Cat.php

@@ -18,9 +18,8 @@ class Cat
 
         $key = self::$cache_key . (string)$parent_cid;
 
-//        $rs = Cache::get($key);
-        $rs=[];
-        if (empty($rs)) {
+        $rs = Cache::get($key);
+        if (empty($rs) || $rs==false) {
 
             $rs = YzCat::field('id,rule_id yz_cat_id,name yz_cat_name,parent_id parent_cid,level,has_children')//id,yz_cat_id,yz_cat_name,parent_cid
                 ->where('status', YzCat::$status_normal)