Browse Source

后端报表,采购员回复竞价单数报表优化

wufeng 2 years ago
parent
commit
a61e26b974
1 changed files with 100 additions and 5 deletions
  1. 100 5
      app/admin/controller/Report.php

+ 100 - 5
app/admin/controller/Report.php

@@ -423,12 +423,46 @@ class Report extends Base
             ->group('addtime,du.itemid,ci.name ,cb.createrid,du.nickname,s.name')
             ->order('addtime desc,du.itemid,ci.name ,cb.createrid,du.nickname')
             ->page($param['page'], $param['size'])
-            ->select()
-            ->toArray();
+            ->cursor();
 
-        $list[] = ['addtime' => '汇总', 'itemid' => 0, 'createrid' => 0, 'num' => array_sum(array_column($list, 'num')), 'total' => array_sum(array_column($list, 'total')), 'nickname' => '', 'name' => ''];
+        $data = [];
+        foreach ($list as $value) {
 
-        return app_show(0, '请求成功', ['list' => $list, 'count' => $count]);
+            if ($value['name'] == '供应商') {
+                $data[] = $value;
+                continue;
+            }
+
+            if (!isset($data[$value['addtime']][$value['name']][$value['nickname']])) {
+                $data[$value['addtime']][$value['name']][$value['nickname']] = [
+                    'addtime' => $value['addtime'],
+                    'name' => $value['name'],
+                    'nickname' => $value['nickname'],
+                    'num' => '0',
+                    'total' => '0',
+                ];
+            }
+
+            $data[$value['addtime']][$value['name']][$value['nickname']]['num'] = bcadd($data[$value['addtime']][$value['name']][$value['nickname']]['num'], $value['num']);
+            $data[$value['addtime']][$value['name']][$value['nickname']]['total'] = bcadd($data[$value['addtime']][$value['name']][$value['nickname']]['total'], $value['total']);
+
+        }
+
+        //去除下标
+        $da = [];
+        foreach ($data as $key => $val) {
+            if (is_numeric($key)) $da[] = $val;
+            else {
+                foreach ($val as $val2) {
+                    foreach ($val2 as $val3) {
+                        $da[] = $val3;
+                    }
+                }
+            }
+        }
+
+        $da[] = ['addtime' => '汇总', 'itemid' => 0, 'createrid' => 0, 'num' => array_sum(array_column($da, 'num')), 'total' => array_sum(array_column($da, 'total')), 'nickname' => '', 'name' => ''];
+        return app_show(0, '请求成功', ['list' => $da, 'count' => $count]);
 
     }
 
@@ -1884,7 +1918,6 @@ class Report extends Base
          **/
     }
 
-
     //【商品信息】基本信息(赵丹要的)_列表
     public function goodSimpleZhao()
     {
@@ -2230,5 +2263,67 @@ class Report extends Base
 
     }
 
+    //【今日咨询单】列表
+    public function todayZx()
+    {
+
+        $param = $this->request->only([
+            'token',
+            'start_date' => '',
+            'end_date' => '',
+            'spuCode' => '',
+            'cgder' => '',
+//            'page' => 1,
+//            'size' => 15
+        ], 'post', 'trim');
+
+        $val_params = Validate::rule([
+            'start_date|开始日期' => 'date|elt:end_date',
+            'end_date|结束日期' => 'date|egt:start_date'
+        ]);
+
+        if (!$val_params->check($param)) return error_show(1004, $val_params->getError());
+
+        $where = [];
+//        if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['gp.addtime', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
+//        if ($param['spuCode'] != '') $where[] = ['gp.spuCode', 'like', '%' . $param['spuCode'] . '%'];
+
+
+        $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')
+            ->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();
+
+
+    }
+
+    //【今日咨询单】导出
+    public function todayZxExport()
+    {
+    }
+
+    //【今日咨询单】今日咨询单总量,为上面列表和导出接口服务
+    private function todayZxTotal()
+    {
+        $data = Db::name('consult_bids')
+            ->where(['is_del' => 0])
+            ->whereTime('addtime', 'today')
+            ->count('id');
+    }
+
 
 }