Prechádzať zdrojové kódy

Merge branch 'dev_wf' of wugg/phpstock into version1.5

wufeng 2 rokov pred
rodič
commit
c53ed7dce1
2 zmenil súbory, kde vykonal 228 pridanie a 141 odobranie
  1. 222 138
      app/admin/controller/Report.php
  2. 6 3
      app/admin/route/app.php

+ 222 - 138
app/admin/controller/Report.php

@@ -394,7 +394,7 @@ class Report extends Base
 
     }
 
-    //【二、咨询单报表】1.已采反报价信息
+    //【二、咨询单报表】1.已采反报价信息_列表
     public function consultInfoBidsSum()
     {
         $param = $this->request->only([
@@ -404,13 +404,78 @@ class Report extends Base
             'end_date' => '',
             'page' => 1,
             'size' => 15,
-            'is_export' => 0,//是否导出,1导出,0不导出
         ], 'post', 'trim');
 
         $val_params = Validate::rule([
             'start_date' => 'date|elt:end_date',
             'end_date' => 'date',
-            'is_export' => 'in:0,1',
+        ]);
+
+        if (!$val_params->check($param)) return error_show(1004, $val_params->getError());
+
+        $where = [['cb.is_del', '=', 0]];
+
+        if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['cb.addtime', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
+        if (!empty($param['zxNo'])) $where[] = ['cb.zxNo', 'in', $param['zxNo']];
+
+
+        $total = Db::name('consult_bids')
+            ->alias('cb')
+            ->where($where)
+            ->count('cb.id');
+
+        $data = Db::name('consult_bids')
+            ->alias('cb')
+            ->field('cb.id,ci.addtime,cb.bidNo,cb.zxNo,cb.addtime cbaddtime,cb.good_name,s.name supplier,cb.total_fee,cb.delivery_day,cb.work_day,cb.expire_day,cb.creater,ci.num,ci.arrival_time,co.salesman,csi.companyName')
+            ->leftJoin('consult_info ci', 'ci.infoNo=cb.infoNo AND ci.is_del=0')
+            ->leftJoin('consult_order co', 'co.zxNo=cb.zxNo AND co.is_del=0')
+            ->leftJoin('supplier s', 's.code=cb.supplierNo AND s.is_del=0')
+            ->leftJoin('customer_info csi', 'csi.companyNo=co.khNo AND csi.is_del=0')
+            ->where($where)
+            ->page($param['page'], $param['size'])
+            ->select()
+            ->toArray();
+
+        //汇总
+        $data[] = [
+            'id' => 0,
+            'addtime' => '汇总',
+            'bidNo' => '',
+            'zxNo' => '',
+            'cbaddtime' => '',
+            'good_name' => '',
+            'supplier' => '',
+            'total_fee' => array_sum(array_column($data, 'total_fee')),
+            'delivery_day' => '',
+            'work_day' => '',
+            'expire_day' => '',
+            'creater' => '',
+            'num' => array_sum(array_column($data, 'num')),
+            'arrival_time' => '',
+            'salesman' => '',
+            'companyName' => '',
+        ];
+
+        return app_show(0, '请求成功', ['list' => $data, 'total' => $total]);
+
+
+    }
+
+    //【二、咨询单报表】1.已采反报价信息_导出
+    public function consultInfoBidsSumExport()
+    {
+        $param = $this->request->only([
+            'token',
+            'zxNo' => [],
+            'start_date' => '',
+            'end_date' => '',
+            'page' => 1,
+            'size' => 15,
+        ], 'post', 'trim');
+
+        $val_params = Validate::rule([
+            'start_date' => 'date|elt:end_date',
+            'end_date' => 'date',
         ]);
 
         if (!$val_params->check($param)) return error_show(1004, $val_params->getError());
@@ -422,78 +487,87 @@ class Report extends Base
         if ($param['start_date'] != '' && $param['end_date'] != '') $rs->whereBetween('cb.addtime', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']);
         if (!empty($param['zxNo'])) $rs->whereIn('cb.zxNo', $param['zxNo']);
 
-        if ($param['is_export'] == 1) {
-            $data = $rs
-                ->field('ci.addtime as 咨询时间,cb.bidNo as 采购单反馈单号,cb.zxNo 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 客户名称')
-                ->leftJoin('consult_info ci', 'ci.infoNo=cb.infoNo AND ci.is_del=0')
-                ->leftJoin('consult_order co', 'co.zxNo=cb.zxNo AND co.is_del=0')
-                ->leftJoin('supplier s', 's.code=cb.supplierNo AND s.is_del=0')
-                ->leftJoin('customer_info csi', 'csi.companyNo=co.khNo AND csi.is_del=0')
-                ->select()
-                ->toArray();
 
-            if (empty($data)) $data[] = '没有可供导出的数据';
+        $data = $rs
+            ->field('ci.addtime as 咨询时间,cb.bidNo as 采购单反馈单号,cb.zxNo 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 客户名称')
+            ->leftJoin('consult_info ci', 'ci.infoNo=cb.infoNo AND ci.is_del=0')
+            ->leftJoin('consult_order co', 'co.zxNo=cb.zxNo AND co.is_del=0')
+            ->leftJoin('supplier s', 's.code=cb.supplierNo AND s.is_del=0')
+            ->leftJoin('customer_info csi', 'csi.companyNo=co.khNo AND csi.is_del=0')
+            ->select()
+            ->toArray();
 
-            $headerArr = array_keys($data[0]);
-            excelSave('咨询单报表-已采反报价信息' . date('YmdHis'), $headerArr, $data);
+        if (empty($data)) $data[] = '没有可供导出的数据';
 
-        } else {
+        $headerArr = array_keys($data[0]);
+        excelSave('咨询单报表-已采反报价信息' . date('YmdHis'), $headerArr, $data);
 
-            $total = $rs->count('cb.id');
+    }
 
-            $data = $rs
-                ->field('cb.id,ci.addtime,cb.bidNo,cb.zxNo,cb.addtime cbaddtime,cb.good_name,s.name supplier,cb.total_fee,cb.delivery_day,cb.work_day,cb.expire_day,cb.creater,ci.num,ci.arrival_time,co.salesman,csi.companyName')
-                ->leftJoin('consult_info ci', 'ci.infoNo=cb.infoNo AND ci.is_del=0')
-                ->leftJoin('consult_order co', 'co.zxNo=cb.zxNo AND co.is_del=0')
-                ->leftJoin('supplier s', 's.code=cb.supplierNo AND s.is_del=0')
-                ->leftJoin('customer_info csi', 'csi.companyNo=co.khNo AND csi.is_del=0')
-                ->page($param['page'], $param['size'])
-                ->select()
-                ->toArray();
+    //【二、咨询单报表】2.未采反信息_列表
+    public function consultInfoBidsSumNot()
+    {
+        $param = $this->request->only([
+            'token',
+            'companyName' => '',
+            'start_date' => '',
+            'end_date' => '',
+            'page' => 1,
+            'size' => 15,
+        ], 'post', 'trim');
 
-            //汇总
-            $data[] = [
-                'id' => 0,
-                'addtime' => '汇总',
-                'bidNo' => '',
-                'zxNo' => '',
-                'cbaddtime' => '',
-                'good_name' => '',
-                'supplier' => '',
-                'total_fee' => array_sum(array_column($data, 'total_fee')),
-                'delivery_day' => '',
-                'work_day' => '',
-                'expire_day' => '',
-                'creater' => '',
-                'num' => array_sum(array_column($data, 'num')),
-                'arrival_time' => '',
-                'salesman' => '',
-                'companyName' => '',
-            ];
+        $val_params = Validate::rule([
+            'start_date' => 'date|elt:end_date',
+            'end_date' => 'date',
+        ]);
 
-            return app_show(0, '请求成功', ['list' => $data, 'total' => $total]);
+        if (!$val_params->check($param)) return error_show(1004, $val_params->getError());
+
+        $where = [['cb.is_del', '=', 0]];
+
+        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['companyName'] != '') $where[] = ['csi.companyName', 'like', '%' . $param['companyName'] . '%'];
+
+
+        $total = Db::name('consult_bids')
+            ->alias('cb')
+            ->leftJoin('consult_info ci', 'ci.infoNo=cb.infoNo AND ci.is_del=0')
+            ->leftJoin('consult_order co', 'co.zxNo=cb.zxNo AND co.is_del=0')
+            ->leftJoin('customer_info csi', 'csi.companyNo=co.khNo AND csi.is_del=0')
+            ->where($where)
+            ->order('co.endtime', 'desc')
+            ->count('cb.id');
+
+        $data = Db::name('consult_bids')
+            ->alias('cb')
+            ->field('cb.zxNo,cb.good_name,ci.num,csi.companyName,ci.addtime,co.endtime')
+            ->leftJoin('consult_info ci', 'ci.infoNo=cb.infoNo AND ci.is_del=0')
+            ->leftJoin('consult_order co', 'co.zxNo=cb.zxNo AND co.is_del=0')
+            ->leftJoin('customer_info csi', 'csi.companyNo=co.khNo AND csi.is_del=0')
+            ->where($where)
+            ->order('co.endtime', 'desc')
+            ->page($param['page'], $param['size'])
+            ->select()
+            ->toArray();
+
+        return app_show(0, '请求成功', ['list' => $data, 'total' => $total]);
 
-        }
 
     }
 
-    //【二、咨询单报表】2.未采反信息
-    public function consultInfoBidsSumNot()
+    //【二、咨询单报表】2.未采反信息_导出
+    public function consultInfoBidsSumNotExport()
     {
         $param = $this->request->only([
             'token',
             'companyName' => '',
             'start_date' => '',
             'end_date' => '',
-            'page' => 1,
-            'size' => 15,
-            'is_export' => 0,//是否导出,1导出,0不导出
         ], 'post', 'trim');
 
         $val_params = Validate::rule([
             'start_date' => 'date|elt:end_date',
             'end_date' => 'date',
-            'is_export' => 'in:0,1',
         ]);
 
         if (!$val_params->check($param)) return error_show(1004, $val_params->getError());
@@ -509,50 +583,34 @@ class Report extends Base
         if ($param['start_date'] != '' && $param['end_date'] != '') $rs->whereBetween('ci.addtime', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']);
         if ($param['companyName'] != '') $rs->whereLike('csi.companyName', '%' . $param['companyName'] . '%');
 
-        if ($param['is_export'] == 1) {
-            $data = $rs
-                ->field('cb.zxNo 咨询订单号,cb.good_name 产品名称,ci.num 需求数量,csi.companyName 客户名称,ci.addtime 咨询时间,co.endtime 截止时间')
-                ->select()
-                ->toArray();
-
-            if (empty($data)) $data[] = '没有可供导出的数据';
-
-            $headerArr = array_keys($data[0]);
-            excelSave('咨询单报表-未采反信息' . date('YmdHis'), $headerArr, $data);
-
-        } else {
-
-            $total = $rs->count('cb.id');
+        $data = $rs
+            ->field('cb.zxNo 咨询订单号,cb.good_name 产品名称,ci.num 需求数量,csi.companyName 客户名称,ci.addtime 咨询时间,co.endtime 截止时间')
+            ->select()
+            ->toArray();
 
-            $data = $rs
-                ->field('cb.zxNo,cb.good_name,ci.num,csi.companyName,ci.addtime,co.endtime')
-                ->page($param['page'], $param['size'])
-                ->select()
-                ->toArray();
+        if (empty($data)) $data[] = '没有可供导出的数据';
 
-            return app_show(0, '请求成功', ['list' => $data, 'total' => $total]);
+        $headerArr = array_keys($data[0]);
+        excelSave('咨询单报表-未采反信息' . date('YmdHis'), $headerArr, $data);
 
-        }
 
     }
 
-    //【三、订单明细报表】
+    //【三、订单明细报表】列表
     public function orderListDetailed()
     {
         $param = $this->request->only([
             'token',
-            'addtime_start' => date('Y-m-d'),
-            'addtime_end' => date('Y-m-d'),
+            'addtime_start' => '',
+            'addtime_end' => '',
             'status' => '',
             'page' => 1,
             'size' => 15,
-            'is_export' => 0,//是否导出,1导出,0不导出
         ], 'post', 'trim');
 
         $val_params = Validate::rule([
             'start_date' => 'date|elt:end_date',
             'end_date' => 'date',
-            'is_export' => 'in:0,1',
         ]);
 
         if (!$val_params->check($param)) return error_show(1004, $val_params->getError());
@@ -567,88 +625,114 @@ class Report extends Base
         $all_status = ['待与供应商确认', '待入库', '部分入库', '入库完成', '已取消订单'];
         $all_send_status = [1 => '未发货', 2 => '部分发货', 3 => '已发货'];
 
-        if ($param['is_export'] == 1) {
-            $data = Db::name('purchease_order')
-                ->alias('po')
-                ->field('po.cgdNo 采购单编号,po.addtime 创建时间,po.supplierNo 供应商编号,po.supplier_name 供应商名称,po.good_name 产品名称,po.good_num 购买数量,po.nake_fee 裸价,po.total_fee 成本合计,po.status 单据状态,po.send_status 发货状态,po.wsend_num 未发货数量,"" 创建人,b.company 客户名称,po.cgder 采购员,"" 发货时间,on.orderCode,po.order_type,po.bkcode,po.spuCode')
-                ->leftJoin('business b', 'b.companyNo=po.companyNo AND b.is_del=0')
-                ->leftJoin('order_num on', 'on.cgdNo=po.cgdNo')
-                ->cursor();
 
-            $list = [];
+        $total = Db::name('purchease_order')
+            ->alias('po')
+            ->leftJoin('business b', 'b.companyNo=po.companyNo AND b.is_del=0')
+            ->count('po.id');
 
-            foreach ($data as $v) {
+        $data = Db::name('purchease_order')
+            ->alias('po')
+            ->field('po.cgdNo,po.addtime,po.supplierNo,po.supplier_name,po.good_name,po.good_num,po.nake_fee,po.total_fee,po.status,po.send_status,po.wsend_num,"" creater,b.company,po.cgder,"" send_time,on.orderCode,po.order_type,po.bkcode,po.spuCode')
+            ->leftJoin('business b', 'b.companyNo=po.companyNo AND b.is_del=0')
+            ->leftJoin('order_num on', 'on.cgdNo=po.cgdNo')
+            ->page($param['page'], $param['size'])
+            ->cursor();
 
-                //单据状态
-                $v['单据状态'] = isset($all_status[$v['单据状态']]) ? $all_status[$v['单据状态']] : '';
+        $list = [];
+        foreach ($data as $v) {
 
-                //发货状态
-                $v['发货状态'] = isset($all_send_status[$v['发货状态']]) ? $all_send_status[$v['发货状态']] : '';
+            //单据状态
+            $v['status'] = isset($all_status[$v['status']]) ? $all_status[$v['status']] : '';
 
-                //创建人//order_type==1备库单
-                if ($v['order_type'] == 1) $v['创建人'] = Db::name('purchease')->where(['bk_code' => $v['bkcode'], 'spuCode' => $v['spuCode'], 'is_del' => 0])->value('apply_name', '');
-                else $v['创建人'] = Db::name('sale')->where(['orderCode' => $v['orderCode'], 'is_del' => 0])->value('apply_name', '');
+            //发货状态
+            $v['send_status'] = isset($all_send_status[$v['send_status']]) ? $all_send_status[$v['send_status']] : '';
 
-                //创建时间
-                $v['发货时间'] = Db::name('order_out')
-                    ->where(['orderCode' => $v['orderCode']])
-                    ->order('addtime', 'desc')
-                    ->value('addtime');
+            //创建人//order_type==1备库单
+            if ($v['order_type'] == 1) $v['creater'] = Db::name('purchease')->where(['bk_code' => $v['bkcode'], 'spuCode' => $v['spuCode'], 'is_del' => 0])->value('apply_name', '');
+            else $v['creater'] = Db::name('sale')->where(['orderCode' => $v['orderCode'], 'is_del' => 0])->value('apply_name', '');
 
-                unset($v['orderCode']);
-                unset($v['order_type']);
-                unset($v['bkcode']);
-                unset($v['spuCode']);
+            //创建时间
+            $v['send_time'] = Db::name('order_out')
+                ->where(['orderCode' => $v['orderCode']])
+                ->order('addtime', 'desc')
+                ->value('addtime');
 
-                $list[] = $v;
-            }
+            $list[] = $v;
+        }
+
+        return app_show(0, '请求成功', ['list' => $list, 'total' => $total]);
+
+
+    }
+
+    //【三、订单明细报表】导出
+    public function orderListDetailedExport()
+    {
+        $param = $this->request->only([
+            'token',
+            'addtime_start' => '',
+            'addtime_end' => '',
+            'status' => '',
+        ], 'post', 'trim');
+
+        $val_params = Validate::rule([
+            'start_date' => 'date|elt:end_date',
+            'end_date' => 'date',
+        ]);
 
-            if (empty($list)) $list[] = '没有可供导出的数据';
+        if (!$val_params->check($param)) return error_show(1004, $val_params->getError());
 
-            $headerArr = array_keys($list[0]);
-            excelSave('订单明细报表' . date('YmdHis'), $headerArr, $list);
+        $rs = Db::name('purchease_order')
+            ->alias('po')
+            ->leftJoin('business b', 'b.companyNo=po.companyNo AND b.is_del=0');
 
-        } else {
+        if ($param['addtime_start'] != '' && $param['addtime_end'] != '') $rs->whereBetween('po.addtime', [$param['addtime_start'] . ' 00:00:00', $param['addtime_end'] . ' 23:59:59']);
+        if ($param['status'] != '') $rs->where('po.status', '=', $param['status']);
 
-            $total = Db::name('purchease_order')
-                ->alias('po')
-                ->leftJoin('business b', 'b.companyNo=po.companyNo AND b.is_del=0')
-                ->count('po.id');
+        $all_status = ['待与供应商确认', '待入库', '部分入库', '入库完成', '已取消订单'];
+        $all_send_status = [1 => '未发货', 2 => '部分发货', 3 => '已发货'];
 
-            $data = Db::name('purchease_order')
-                ->alias('po')
-                ->field('po.cgdNo,po.addtime,po.supplierNo,po.supplier_name,po.good_name,po.good_num,po.nake_fee,po.total_fee,po.status,po.send_status,po.wsend_num,"" creater,b.company,po.cgder,"" send_time,on.orderCode,po.order_type,po.bkcode,po.spuCode')
-                ->leftJoin('business b', 'b.companyNo=po.companyNo AND b.is_del=0')
-                ->leftJoin('order_num on', 'on.cgdNo=po.cgdNo')
-                ->page($param['page'], $param['size'])
-                ->cursor();
+        $data = Db::name('purchease_order')
+            ->alias('po')
+            ->field('po.cgdNo 采购单编号,po.addtime 创建时间,po.supplierNo 供应商编号,po.supplier_name 供应商名称,po.good_name 产品名称,po.good_num 购买数量,po.nake_fee 裸价,po.total_fee 成本合计,po.status 单据状态,po.send_status 发货状态,po.wsend_num 未发货数量,"" 创建人,b.company 客户名称,po.cgder 采购员,"" 发货时间,on.orderCode,po.order_type,po.bkcode,po.spuCode')
+            ->leftJoin('business b', 'b.companyNo=po.companyNo AND b.is_del=0')
+            ->leftJoin('order_num on', 'on.cgdNo=po.cgdNo')
+            ->cursor();
 
-            $list = [];
-            foreach ($data as $v) {
+        $list = [];
 
-                //单据状态
-                $v['status'] = isset($all_status[$v['status']]) ? $all_status[$v['status']] : '';
+        foreach ($data as $v) {
 
-                //发货状态
-                $v['send_status'] = isset($all_send_status[$v['send_status']]) ? $all_send_status[$v['send_status']] : '';
+            //单据状态
+            $v['单据状态'] = isset($all_status[$v['单据状态']]) ? $all_status[$v['单据状态']] : '';
 
-                //创建人//order_type==1备库单
-                if ($v['order_type'] == 1) $v['creater'] = Db::name('purchease')->where(['bk_code' => $v['bkcode'], 'spuCode' => $v['spuCode'], 'is_del' => 0])->value('apply_name', '');
-                else $v['creater'] = Db::name('sale')->where(['orderCode' => $v['orderCode'], 'is_del' => 0])->value('apply_name', '');
+            //发货状态
+            $v['发货状态'] = isset($all_send_status[$v['发货状态']]) ? $all_send_status[$v['发货状态']] : '';
 
-                //创建时间
-                $v['send_time'] = Db::name('order_out')
-                    ->where(['orderCode' => $v['orderCode']])
-                    ->order('addtime', 'desc')
-                    ->value('addtime');
+            //创建人//order_type==1备库单
+            if ($v['order_type'] == 1) $v['创建人'] = Db::name('purchease')->where(['bk_code' => $v['bkcode'], 'spuCode' => $v['spuCode'], 'is_del' => 0])->value('apply_name', '');
+            else $v['创建人'] = Db::name('sale')->where(['orderCode' => $v['orderCode'], 'is_del' => 0])->value('apply_name', '');
 
-                $list[] = $v;
-            }
+            //创建时间
+            $v['发货时间'] = Db::name('order_out')
+                ->where(['orderCode' => $v['orderCode']])
+                ->order('addtime', 'desc')
+                ->value('addtime');
 
-            return app_show(0, '请求成功', ['list' => $list, 'total' => $total]);
+            unset($v['orderCode']);
+            unset($v['order_type']);
+            unset($v['bkcode']);
+            unset($v['spuCode']);
 
+            $list[] = $v;
         }
 
+        if (empty($list)) $list[] = '没有可供导出的数据';
+
+        $headerArr = array_keys($list[0]);
+        excelSave('订单明细报表' . date('YmdHis'), $headerArr, $list);
+
     }
 
 

+ 6 - 3
app/admin/route/app.php

@@ -491,9 +491,12 @@ Route::rule('reportzixuntotal','admin/Report/zixunTotal');//报表-采购日报
 Route::rule('reportpurcheaseordersum','admin/Report/purcheaseOrderSum');//报表-采购日报表-采购订单总金额
 Route::rule('reportconsultbidssum','admin/Report/consultBidsSum');//报表-采购日报表-采购员回复咨询单数
 Route::rule('reportpurcheaseordersumbyuser','admin/Report/purcheaseOrderSumByUser');//报表-采购日报表-采购员订单金额
-Route::rule('reportconsultinfobidssum','admin/Report/consultInfoBidsSum');//报表-咨询单报表-已采反报价信息
-Route::rule('reportconsultinfobidssumnot','admin/Report/consultInfoBidsSumNot');//报表-咨询单报表-未采反信息
-Route::rule('reportorderlistdetailed','admin/Report/orderListDetailed');//报表-订单明细报表
+Route::rule('reportconsultinfobidssum','admin/Report/consultInfoBidsSum');//报表-咨询单报表-已采反报价信息_列表
+Route::rule('reportconsultinfobidssumexport','admin/Report/consultInfoBidsSumExport');//报表-咨询单报表-已采反报价信息_导出
+Route::rule('reportconsultinfobidssumnot','admin/Report/consultInfoBidsSumNot');//报表-咨询单报表-未采反信息_列表
+Route::rule('reportconsultinfobidssumnotexport','admin/Report/consultInfoBidsSumNotExport');//报表-咨询单报表-未采反信息_导出
+Route::rule('reportorderlistdetailed','admin/Report/orderListDetailed');//报表-订单明细报表_列表
+Route::rule('reportorderlistdetailedexport','admin/Report/orderListDetailedExport');//报表-订单明细报表_导出
 
 //数据看板
 Route::rule('datatodaysalesvolume','admin/Data/todaySalesVolume');//1.今日销量