Browse Source

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

wufeng 2 years ago
parent
commit
f06f758146
2 changed files with 135 additions and 8 deletions
  1. 130 6
      app/admin/controller/Report.php
  2. 5 2
      app/admin/route/app.php

+ 130 - 6
app/admin/controller/Report.php

@@ -735,7 +735,6 @@ class Report extends Base
 
     }
 
-
     //【四、售后报表】列表
     public function orderReturnList()
     {
@@ -760,29 +759,154 @@ class Report extends Base
         $all_status = [2 => '业务主管审核', 3 => '采购主管审核', 6 => '业务驳回', 7 => '采购驳回', 8 => '取消'];
 
         //总数
-        $total = Db::name('order_return')
+        $count = Db::name('order_return')
             ->alias('or')
             ->leftJoin('order_num on', 'on.orderCode=or.orderCode')
             ->leftJoin('purchease_order po', 'po.cgdNo=on.cgdNo AND po.is_del=0')
             ->where($where)
             ->count('or.id');
 
-        $data = Db::name('order_return')
+        $list = Db::name('order_return')
             ->alias('or')
-            ->field('or.id,or.returnCode,or.addtime,on.cgdNo,po.supplierNo,po.supplier_name,or.good_name,or.total_num, "" 签收日期,"" 提出售后日期,or.error_num,or.error_remark,or.status')
+            ->field('or.id,or.returnCode,or.addtime,on.cgdNo,po.supplierNo,po.supplier_name,or.good_name,or.total_num, oo.updatetime receipttime ,or.error_num,or.error_remark,ri.result error_reason,or.status')
             ->leftJoin('order_num on', 'on.orderCode=or.orderCode')
             ->leftJoin('purchease_order po', 'po.cgdNo=on.cgdNo AND po.is_del=0')
+            ->leftJoin('order_out oo', 'oo.outCode=or.outCode AND oo.status=3')
+            ->leftJoin('result_info ri', 'ri.result_code=or.error_code')
             ->where($where)
             ->withAttr('status', function ($val) use ($all_status) {
-                return isset($all_status[$val]) ? $all_status[$val] : '';
+                return isset($all_status[$val]) ? $all_status[$val] : $val;
             })
             ->page($param['page'], $param['size'])
             ->select()
             ->toArray();
 
-        return app_show(0, '请求成功', ['list' => $data, 'total' => $total]);
+        return app_show(0, '请求成功', ['list' => $list, 'count' => $count]);
+
+    }
+
+    //【四、售后报表】导出
+    public function orderReturnListExport()
+    {
+        $param = $this->request->only([
+            'token',
+            'start_date' => '',
+            'end_date' => '',
+        ], '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());
+
+        $where = [];
+        if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['or.addtime', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
+
+        $all_status = [2 => '业务主管审核', 3 => '采购主管审核', 6 => '业务驳回', 7 => '采购驳回', 8 => '取消'];
+
+        $list = Db::name('order_return')
+            ->alias('or')
+            ->field('or.returnCode 售后单编号,or.addtime 创建时间,on.cgdNo 采购单编号,po.supplier_name 供应商名称,or.good_name 产品名称,or.total_num 购买数量, oo.updatetime 签收日期,or.error_num 售后数量,or.error_remark 问题描述,ri.result 异常原因,or.status 售后状态')
+            ->leftJoin('order_num on', 'on.orderCode=or.orderCode')
+            ->leftJoin('purchease_order po', 'po.cgdNo=on.cgdNo AND po.is_del=0')
+            ->leftJoin('order_out oo', 'oo.outCode=or.outCode AND oo.status=3')
+            ->leftJoin('result_info ri', 'ri.result_code=or.error_code')
+            ->where($where)
+            ->withAttr('售后状态', function ($val) use ($all_status) {
+                return isset($all_status[$val]) ? $all_status[$val] : $val;
+            })
+            ->select()
+            ->toArray();
+
+        if (empty($list)) $list[] = '没有可供导出的数据';
+
+        $headerArr = array_keys($list[0]);
+        excelSave('售后明细报表' . date('YmdHis'), $headerArr, $list);
 
     }
 
+    //【五、供应商报表】列表
+    public function supplierList()
+    {
+        $param = $this->request->only([
+            'token',
+            'start_date' => '',
+            'end_date' => '',
+            'update_start_date' => '',
+            'update_end_date' => '',
+            'page' => 1,
+            'size' => 15,
+        ], 'post', 'trim');
+
+        $val_params = Validate::rule([
+            'start_date' => 'date|elt:end_date',
+            'end_date' => 'date',
+            'update_start_date' => 'date|elt:update_end_date',
+            'update_end_date' => 'date',
+        ]);
+
+        if (!$val_params->check($param)) return error_show(1004, $val_params->getError());
+
+        $where = [];
+        if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['s.addtime', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
+        if ($param['update_start_date'] != '' && $param['update_end_date'] != '') $where[] = ['s.updatetime', 'between', [$param['update_start_date'] . ' 00:00:00', $param['update_end_date'] . ' 23:59:59']];
+
+        //总数
+        $count = Db::name('supplier')
+            ->alias('s')
+            ->where($where)
+            ->count('s.id');
+
+        $list = Db::name('supplier')
+            ->alias('s')
+            ->field('s.id,s.addtime,s.name,s.creater,s.nature,s.source,s.pay_type,s.delivery_way,s.updatetime')
+            ->where($where)
+            ->page($param['page'], $param['size'])
+            ->select()
+            ->toArray();
+
+        return app_show(0, '请求成功', ['list' => $list, 'count' => $count]);
+
+    }
+
+    //【五、供应商报表】导出
+    public function supplierListExport()
+    {
+        $param = $this->request->only([
+            'token',
+            'start_date' => '',
+            'end_date' => '',
+            'update_start_date' => '',
+            'update_end_date' => '',
+        ], 'post', 'trim');
+
+        $val_params = Validate::rule([
+            'start_date' => 'date|elt:end_date',
+            'end_date' => 'date',
+            'update_start_date' => 'date|elt:update_end_date',
+            'update_end_date' => 'date',
+        ]);
+
+        if (!$val_params->check($param)) return error_show(1004, $val_params->getError());
+
+        $where = [];
+        if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['s.addtime', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
+        if ($param['update_start_date'] != '' && $param['update_end_date'] != '') $where[] = ['s.updatetime', 'between', [$param['update_start_date'] . ' 00:00:00', $param['update_end_date'] . ' 23:59:59']];
+
+        $list = Db::name('supplier')
+            ->alias('s')
+            ->field('s.addtime 录入供应商时间,s.name 供应商名称,s.creater 采购维护人,s.nature 供应商性质,s.source 供应商来源,s.pay_type 付款方式,s.delivery_way 发货方式,s.updatetime 修改供应商时间')
+            ->where($where)
+            ->select()
+            ->toArray();
+
+        if (empty($list)) $list[] = '没有可供导出的数据';
+
+        $headerArr = array_keys($list[0]);
+        excelSave('供应商报表' . date('YmdHis'), $headerArr, $list);
+
+    }
 
 }

+ 5 - 2
app/admin/route/app.php

@@ -497,7 +497,10 @@ 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('reportorderreturnlist','admin/Report/orderReturnList');//报表-订单明细报表_导出
+Route::rule('reportorderreturnlist','admin/Report/orderReturnList');//报表-售后报表_列表
+Route::rule('reportorderreturnlistexport','admin/Report/orderReturnListExport');//报表-售后报表_导出
+Route::rule('reportsupplierlist','admin/Report/supplierList');//报表-供应商报表_列表
+Route::rule('reportsupplierlistexport','admin/Report/supplierListExport');//报表-供应商报表_导出
 
 //数据看板
 Route::rule('datatodaysalesvolume','admin/Data/todaySalesVolume');//1.今日销量
@@ -511,4 +514,4 @@ Route::rule('datatordertransferratetoday','admin/Data/orderTransferRateToday');/
 Route::rule('datatordertransferratemonth','admin/Data/orderTransferRateMonth');//9.转单率,本月
 Route::rule('datatordertransferrateyear','admin/Data/orderTransferRateYear');//9.转单率,本年
 
-Route::rule('statlist','admin/Stat/list');//9.转单率,本年
+Route::rule('statlist','admin/Stat/list');//