Browse Source

后端报表-订单明细报表,导出优化(针对数据量多的问题,数据量再多的话就考虑限制时间或预约导出吧)

wufeng 2 years ago
parent
commit
24735245d9
1 changed files with 16 additions and 7 deletions
  1. 16 7
      app/admin/controller/Report.php

+ 16 - 7
app/admin/controller/Report.php

@@ -835,7 +835,7 @@ class Report extends Base
 
         if (!$val_params->check($param)) return error_show(1004, $val_params->getError());
 
-        $where = [['po.is_del', '=', 0],["po.order_type","<>",1]];
+        $where = [['po.is_del', '=', 0], ["po.order_type", "<>", 1]];
 
         if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['po.addtime', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
         if ($param['status'] != '') $where[] = ['po.status', '=', $param['status']];
@@ -911,7 +911,7 @@ class Report extends Base
 
         if (!$val_params->check($param)) return error_show(1004, $val_params->getError());
 
-        $where = [['po.is_del', '=', 0],["po.order_type","<>",1]];
+        $where = [['po.is_del', '=', 0], ["po.order_type", "<>", 1]];
 
         if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['po.addtime', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
         if ($param['status'] != '') $where[] = ['po.status', '=', $param['status']];
@@ -932,6 +932,8 @@ class Report extends Base
 
         $list = [];
 
+        $tmp=[];
+
         foreach ($data as $v) {
 
             //单据状态
@@ -948,15 +950,22 @@ class Report extends Base
             else $temp = Db::name('sale')->where(['orderCode' => $v['orderCode'], 'is_del' => 0])->field('id,apply_id,apply_name')->find();
 
             $v['创建人'] = isset($temp['apply_name']) ? $temp['apply_name'] : '';
-            $v['创建人所属部门'] = get_company_name_by_uid($temp['apply_id'] ?? 0);
+
+            if(!isset($tmp[$temp['apply_id'] ?? 0])){
+                $tmp[$temp['apply_id'] ?? 0] =  get_company_name_by_uid($temp['apply_id'] ?? 0);
+            }
+            $v['创建人所属部门'] = $tmp[$temp['apply_id'] ?? 0];//get_company_name_by_uid($temp['apply_id'] ?? 0);
 
             //创建时间
             $v['发货时间'] = Db::name('order_out')
-                ->where(['orderCode' => $v['orderCode']])
+                ->where(['is_del' => 0, 'orderCode' => $v['orderCode']])
                 ->order('addtime', 'desc')
                 ->value('addtime');
 
-            $v['采购员所属部门'] = get_company_name_by_uid($v['cgder_id'] ?? 0);
+            if(!isset($tmp[$v['cgder_id'] ?? 0])){
+                $tmp[$v['cgder_id'] ?? 0] =  get_company_name_by_uid($v['cgder_id'] ?? 0);
+            }
+            $v['采购员所属部门'] = $tmp[$v['cgder_id'] ?? 0];//get_company_name_by_uid($v['cgder_id'] ?? 0);
 
             unset($v['orderCode']);
             unset($v['order_type']);
@@ -1216,7 +1225,7 @@ class Report extends Base
             ->leftJoin('purchease_order po', 'po.cgdNo=on.cgdNo')
             ->leftJoin('good_basic gb', 'gb.spuCode=s.good_code AND gb.is_del=0')
             ->leftJoin('result_info ri', 'ri.result_code=s.error_code AND ri.is_del=0')
-            ->leftJoin('supplier sp','sp.code=gb.supplierNo')
+            ->leftJoin('supplier sp', 'sp.code=gb.supplierNo')
             ->count('s.id');
 
         $list = Db::name('sale_return')
@@ -1228,7 +1237,7 @@ class Report extends Base
             ->leftJoin('purchease_order po', 'po.cgdNo=on.cgdNo')
             ->leftJoin('good_basic gb', 'gb.spuCode=s.good_code AND gb.is_del=0')
             ->leftJoin('result_info ri', 'ri.result_code=s.error_code AND ri.is_del=0')
-            ->leftJoin('supplier sp','sp.code=gb.supplierNo')
+            ->leftJoin('supplier sp', 'sp.code=gb.supplierNo')
             ->page($param['page'], $param['size'])
             ->order('s.addtime desc')
             ->cursor();