Forráskód Böngészése

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

wufeng 2 éve
szülő
commit
8d3fd22067
2 módosított fájl, 381 hozzáadás és 30 törlés
  1. 364 21
      app/admin/controller/SaleReport.php
  2. 17 9
      app/admin/route/app.php

+ 364 - 21
app/admin/controller/SaleReport.php

@@ -2,8 +2,9 @@
 
 
 namespace app\admin\controller;
 namespace app\admin\controller;
 
 
+use app\abutment\model\SupplierRelationUser;
+use app\abutment\model\SupplierUser;
 use think\facade\Db;
 use think\facade\Db;
-use think\facade\Validate;
 
 
 //前端报表处理类
 //前端报表处理类
 class SaleReport extends Base
 class SaleReport extends Base
@@ -1858,13 +1859,20 @@ class SaleReport extends Base
 
 
         $data = Db::name('order_out')
         $data = Db::name('order_out')
             ->alias('a')
             ->alias('a')
-            ->field('a.id,b.order_type,b.cat_id')
-            ->leftJoin("sale b", "b.orderCode=a.orderCode AND b.is_del=0")
+            ->field('a.id,b.order_type,b.cat_id,d.supplierNo')
+            ->leftJoin('sale b', 'b.orderCode=a.orderCode AND b.is_del=0')
+            ->leftJoin('order_send c', 'c.outCode=a.outCode')
+            ->leftJoin('purchease_order d', 'd.cgdNo=c.cgdNo')
             ->where($where)
             ->where($where)
             ->whereMonth('a.addtime')
             ->whereMonth('a.addtime')
             ->cursor();
             ->cursor();
         $list = [];
         $list = [];
-        $total = ['cat_1' => '总计', 'cat_2' => '', 'cat_3' => '', 'tag_1' => 0, 'tag_2' => 0, 'tag_3' => 0, 'tag_total' => 0];
+//        $total = ['cat_1' => '总计', 'cat_2' => '', 'cat_3' => '', 'tag_1' => 0, 'tag_2' => 0, 'tag_3' => 0, 'tag_supplier' => 0, 'tag_person' => 0, 'tag_logistics' => 0, 'tag_total' => 0];
+
+        $supplierNos = SupplierRelationUser::where(['is_del' => SupplierUser::$is_del_normal, 'status' => SupplierUser::$status_normal])
+            ->group('supplierNo')
+            ->column('supplierNo');
+
         foreach ($data as $val) {
         foreach ($data as $val) {
 
 
             if (!isset($list[$val['cat_id']])) {
             if (!isset($list[$val['cat_id']])) {
@@ -1876,18 +1884,32 @@ class SaleReport extends Base
                     'tag_1' => 0,
                     'tag_1' => 0,
                     'tag_2' => 0,
                     'tag_2' => 0,
                     'tag_3' => 0,
                     'tag_3' => 0,
-                    'tag_total' => 0,
+                    'tag_supplier' => 0,
+                    'tag_person' => 0,
+                    'tag_logistics' => 0,
                 ];
                 ];
             }
             }
 
 
+            switch ($val['order_type']) {
+                case 1:
+                    //库存品,物流岗发
+                    $list[$val['cat_id']]['tag_logistics']++;
+                    break;
+                case 2:
+                    //非库存品
+                    if (in_array($val['supplierNo'], $supplierNos)) $list[$val['cat_id']]['tag_supplier']++;
+                    else $list[$val['cat_id']]['tag_person']++;
+                    break;
+            }
+
             $list[$val['cat_id']]['tag_' . $val['order_type']]++;
             $list[$val['cat_id']]['tag_' . $val['order_type']]++;
-            $list[$val['cat_id']]['tag_total']++;
-            $total['tag_' . $val['order_type']]++;
-            $total['tag_total']++;
+//            $list[$val['cat_id']]['tag_total']++;
+//            $total['tag_' . $val['order_type']]++;
+//            $total['tag_total']++;
 
 
         }
         }
         $list = array_merge($list);//重置下标
         $list = array_merge($list);//重置下标
-        $list[] = $total;
+//        $list[] = $total;
         return app_show(0, '请求成功', $list);
         return app_show(0, '请求成功', $list);
 
 
     }
     }
@@ -1901,13 +1923,21 @@ class SaleReport extends Base
 
 
         $data = Db::name('order_out')
         $data = Db::name('order_out')
             ->alias('a')
             ->alias('a')
-            ->field('a.id,b.order_type,b.cat_id')
+            ->field('a.id,b.order_type,b.cat_id,d.supplierNo')
             ->leftJoin("sale b", "b.orderCode=a.orderCode AND b.is_del=0")
             ->leftJoin("sale b", "b.orderCode=a.orderCode AND b.is_del=0")
+            ->leftJoin('order_send c', 'c.outCode=a.outCode')
+            ->leftJoin('purchease_order d', 'd.cgdNo=c.cgdNo')
             ->where($where)
             ->where($where)
             ->whereMonth('a.addtime')
             ->whereMonth('a.addtime')
             ->cursor();
             ->cursor();
+
+        $supplierNos = SupplierRelationUser::where(['is_del' => SupplierUser::$is_del_normal, 'status' => SupplierUser::$status_normal])
+            ->group('supplierNo')
+            ->column('supplierNo');
+
         $list = [];
         $list = [];
-        $total = ['一级分类' => '总计', '二级分类' => '', '三级分类' => '', '库存品' => 0, '非库存品' => 0, '咨询采反' => 0, '总计' => 0];
+
+//        $total = ['一级分类' => '总计', '二级分类' => '', '三级分类' => '', '库存品' => 0, '非库存品' => 0, '咨询采反' => 0, '总计' => 0];
         foreach ($data as $val) {
         foreach ($data as $val) {
 
 
             if (!isset($list[$val['cat_id']])) {
             if (!isset($list[$val['cat_id']])) {
@@ -1919,7 +1949,10 @@ class SaleReport extends Base
                     '库存品' => 0,
                     '库存品' => 0,
                     '非库存品' => 0,
                     '非库存品' => 0,
                     '咨询采反' => 0,
                     '咨询采反' => 0,
-                    '总计' => 0,
+                    '供应商发货' => 0,
+                    '负责人发货' => 0,
+                    '物流岗发货' => 0,
+//                    '总计' => 0,
                 ];
                 ];
             }
             }
 
 
@@ -1927,37 +1960,347 @@ class SaleReport extends Base
             switch ($val['order_type']) {
             switch ($val['order_type']) {
                 case 1:
                 case 1:
                     $list[$val['cat_id']]['库存品']++;
                     $list[$val['cat_id']]['库存品']++;
-                    $total['库存品']++;
+//                    $total['库存品']++;
+                    //物流岗发
+                    $list[$val['cat_id']]['物流岗发货']++;
                     break;
                     break;
                 case 2:
                 case 2:
                     $list[$val['cat_id']]['非库存品']++;
                     $list[$val['cat_id']]['非库存品']++;
-                    $total['非库存品']++;
+//                    $total['非库存品']++;
+                    if (in_array($val['supplierNo'], $supplierNos)) $list[$val['cat_id']]['供应商发货']++;
+                    else $list[$val['cat_id']]['负责人发货']++;
                     break;
                     break;
                 case 3:
                 case 3:
                     $list[$val['cat_id']]['咨询采反']++;
                     $list[$val['cat_id']]['咨询采反']++;
-                    $total['咨询采反']++;
+//                    $total['咨询采反']++;
                     break;
                     break;
             }
             }
 
 
-            $list[$val['cat_id']]['总计']++;
-            $total['总计']++;
+//            $list[$val['cat_id']]['总计']++;
+//            $total['总计']++;
 
 
         }
         }
         $list = array_merge($list);//重置下标
         $list = array_merge($list);//重置下标
-        $list[] = $total;
+//        $list[] = $total;
 
 
         if (empty($list)) $list[] = '没有相关可导出的数据';
         if (empty($list)) $list[] = '没有相关可导出的数据';
         excelSave('本月采购订单和库存品发货情况' . date('YmdHis'), array_keys($list[0]), $list);
         excelSave('本月采购订单和库存品发货情况' . date('YmdHis'), array_keys($list[0]), $list);
 
 
     }
     }
 
 
-    //【十三、本月采购订单和库存品发货情况---(统计发货)供应商发货、负责人发货、物流岗发货】
+    //【十三、本月供应商采购订单情况】
+    public function purcheaseOrderMonth()
+    {
 
 
+        $param = $this->request->only(['token', 'supplierNo' => '', 'supplier_name' => ''], 'post', 'trim');
 
 
-    //【十四、本月供应商采购订单情况】
-    public function purcheaseOrderMonth()
+        if ($param['supplierNo'] != '') $where[] = ['a.supplierNo', 'like', '%' . $param['supplierNo'] . '%'];
+        if ($param['supplier_name'] != '') $where[] = ['a.supplier_name', 'like', '%' . $param['supplier_name'] . '%'];
+
+        $where = [['a.is_del', '=', 0]];
+
+        $data = Db::name('purchease_order')
+            ->alias('a')
+            ->field('a.id,a.supplierNo,a.supplier_name,a.order_type,c.use_type')
+            ->leftJoin("good_platform b", "b.skuCode=a.skuCode AND b.is_del=0")
+            ->leftJoin("platform c", "c.id=b.platform_code AND c.is_del=0")
+            ->where($where)
+            ->whereMonth('a.addtime')
+            ->cursor();
+        $list = $tmp = [];
+        $total = ['supplier_name' => '总计', 'total_cgd' => 0, 'tag_1' => 0, 'tag_c' => 0, 'tag_b' => 0, 'tag_zx' => 0];
+        foreach ($data as $val) {
+
+            if (!isset($list[$val['supplierNo']])) {
+                $list[$val['supplierNo']] = [
+                    'supplier_name' => $val['supplier_name'],
+                    'total_cgd' => 0,//订单总量
+                    'tag_1' => 0,//库存品
+                    'tag_c' => 0,//to C
+                    'tag_b' => 0,//to B
+                    'tag_zx' => 0,//咨询采反总数
+                ];
+            }
+
+            switch ($val['order_type']) {
+                case 1:
+                    //库存品
+                    $list[$val['supplierNo']]['tag_1']++;
+                    $total['tag_1']++;
+                    break;
+
+                case 3:
+                    //咨询采反
+                    $list[$val['supplierNo']]['tag_zx']++;
+                    $total['tag_zx']++;
+                    break;
+            }
+
+            switch ($val['use_type']) {
+                case 1:
+                    //to B
+                    $list[$val['supplierNo']]['tag_b']++;
+                    $total['tag_b']++;
+                    break;
+
+                case 2:
+                    //to C
+                    $list[$val['supplierNo']]['tag_c']++;
+                    $total['tag_c']++;
+                    break;
+            }
+
+            $list[$val['supplierNo']]['total_cgd']++;
+            $total['total_cgd']++;
+
+        }
+
+//        $list = array_merge($list);//重置下标,关联数组,下标是字符,无法通过array_merge方法重置下标
+
+        foreach ($list as $value) {
+            $tmp[] = $value;
+        }
+        $tmp[] = $total;
+
+        return app_show(0, '请求成功', $tmp);
+
+    }
+
+    //【十三、本月供应商采购订单情况-导出】
+    public function purcheaseOrderMonthExport()
+    {
+        $param = $this->request->only(['token', 'supplierNo' => '', 'supplier_name' => ''], 'post', 'trim');
+
+        if ($param['supplierNo'] != '') $where[] = ['a.supplierNo', 'like', '%' . $param['supplierNo'] . '%'];
+        if ($param['supplier_name'] != '') $where[] = ['a.supplier_name', 'like', '%' . $param['supplier_name'] . '%'];
+
+        $where = [['a.is_del', '=', 0]];
+
+        $data = Db::name('purchease_order')
+            ->alias('a')
+            ->field('a.id,a.supplierNo,a.supplier_name,a.order_type,c.use_type')
+            ->leftJoin("good_platform b", "b.skuCode=a.skuCode AND b.is_del=0")
+            ->leftJoin("platform c", "c.id=b.platform_code AND c.is_del=0")
+            ->where($where)
+            ->whereMonth('a.addtime')
+            ->cursor();
+        $list = $tmp = [];
+        $total = ['采购方' => '总计', '订单总量' => 0, '库存品' => 0, 'toC' => 0, 'toB' => 0, '今日反馈单数合计(参考)' => 0];
+        foreach ($data as $val) {
+
+            if (!isset($list[$val['supplierNo']])) {
+                $list[$val['supplierNo']] = [
+                    '采购方' => $val['supplier_name'],
+                    '订单总量' => 0,//订单总量
+                    '库存品' => 0,//库存品
+                    'toC' => 0,//to C
+                    'toB' => 0,//to B
+                    '今日反馈单数合计(参考)' => 0,//咨询采反总数
+                ];
+            }
+
+            switch ($val['order_type']) {
+                case 1:
+                    //库存品
+                    $list[$val['supplierNo']]['库存品']++;
+                    $total['库存品']++;
+                    break;
+
+                case 3:
+                    //咨询采反
+                    $list[$val['supplierNo']]['今日反馈单数合计(参考)']++;
+                    $total['今日反馈单数合计(参考)']++;
+                    break;
+            }
+
+            switch ($val['use_type']) {
+                case 1:
+                    //to B
+                    $list[$val['supplierNo']]['toB']++;
+                    $total['toB']++;
+                    break;
+
+                case 2:
+                    //to C
+                    $list[$val['supplierNo']]['toC']++;
+                    $total['toC']++;
+                    break;
+            }
+
+            $list[$val['supplierNo']]['订单总量']++;
+            $total['订单总量']++;
+
+        }
+
+        if (empty($list)) $list[] = '没有相关可导出的数据';
+        excelSave('本月供应商采购订单情况' . date('YmdHis'), array_keys($total), $list);
+
+    }
+
+    //【十四、本月供应商负责人采购订单情况】
+    public function purcheaseOrderPersonMonth()
     {
     {
 
 
+        $param = $this->request->only(['token', 'supplierNo' => '', 'supplier_name' => '', 'flag' => ''], 'post', 'trim');
+
+        if ($param['supplierNo'] != '') $where[] = ['a.supplierNo', 'like', '%' . $param['supplierNo'] . '%'];
+        if ($param['supplier_name'] != '') $where[] = ['a.supplier_name', 'like', '%' . $param['supplier_name'] . '%'];
+        if ($param['flag'] != '') {
+            $supplierNos = SupplierRelationUser::where(['is_del' => SupplierUser::$is_del_normal, 'status' => SupplierUser::$status_normal])
+                ->group('supplierNo')
+                ->column('supplierNo');
+            if ($param['flag'] == 1) $where[] = ['a.supplierNo', 'in', $supplierNos];//1.开通账号的
+            else $where[] = ['a.supplierNo', 'not in', $supplierNos];//2.未开通账号的
+        }
+
+        $where = [['a.is_del', '=', 0]];
+
+        $data = Db::name('purchease_order')
+            ->alias('a')
+            ->field('a.id,s.personid,s.person,a.order_type,c.use_type')
+            ->leftJoin("good_platform b", "b.skuCode=a.skuCode AND b.is_del=0")
+            ->leftJoin("platform c", "c.id=b.platform_code AND c.is_del=0")
+            ->leftJoin("supplier s", "s.code=a.supplierNo AND s.is_del=0")
+            ->where($where)
+            ->whereMonth('a.addtime')
+            ->cursor();
+        $list = [];
+        $total = ['person' => '总计', 'total_cgd' => 0, 'tag_1' => 0, 'tag_c' => 0, 'tag_b' => 0, 'tag_zx' => 0];
+        foreach ($data as $val) {
+
+            if (!isset($list[$val['personid']])) {
+                $list[$val['personid']] = [
+                    'person' => $val['person'],
+                    'total_cgd' => 0,//订单总量
+                    'tag_1' => 0,//库存品
+                    'tag_c' => 0,//to C
+                    'tag_b' => 0,//to B
+                    'tag_zx' => 0,//咨询采反总数
+                ];
+            }
+
+            switch ($val['order_type']) {
+                case 1:
+                    //库存品
+                    $list[$val['personid']]['tag_1']++;
+                    $total['tag_1']++;
+                    break;
+
+                case 3:
+                    //咨询采反
+                    $list[$val['personid']]['tag_zx']++;
+                    $total['tag_zx']++;
+                    break;
+            }
+
+            switch ($val['use_type']) {
+                case 1:
+                    //to B
+                    $list[$val['personid']]['tag_b']++;
+                    $total['tag_b']++;
+                    break;
+
+                case 2:
+                    //to C
+                    $list[$val['personid']]['tag_c']++;
+                    $total['tag_c']++;
+                    break;
+            }
+
+            $list[$val['personid']]['total_cgd']++;
+            $total['total_cgd']++;
+
+        }
+
+        $list = array_merge($list);//重置下标,关联数组,下标是字符,无法通过array_merge方法重置下标
+
+        $list[] = $total;
+
+        return app_show(0, '请求成功', $list);
+
+    }
+
+    //【十四、本月供应商负责人采购订单情况-导出】
+    public function purcheaseOrderPersonMonthExport()
+    {
+
+        $param = $this->request->only(['token', 'supplierNo' => '', 'supplier_name' => '', 'flag' => ''], 'post', 'trim');
+
+        if ($param['supplierNo'] != '') $where[] = ['a.supplierNo', 'like', '%' . $param['supplierNo'] . '%'];
+        if ($param['supplier_name'] != '') $where[] = ['a.supplier_name', 'like', '%' . $param['supplier_name'] . '%'];
+        if ($param['flag'] != '') {
+            $supplierNos = SupplierRelationUser::where(['is_del' => SupplierUser::$is_del_normal, 'status' => SupplierUser::$status_normal])
+                ->group('supplierNo')
+                ->column('supplierNo');
+            if ($param['flag'] == 1) $where[] = ['a.supplierNo', 'in', $supplierNos];//1.开通账号的
+            else $where[] = ['a.supplierNo', 'not in', $supplierNos];//2.未开通账号的
+        }
+
+        $where = [['a.is_del', '=', 0]];
+
+        $data = Db::name('purchease_order')
+            ->alias('a')
+            ->field('a.id,s.personid,s.person,a.order_type,c.use_type')
+            ->leftJoin("good_platform b", "b.skuCode=a.skuCode AND b.is_del=0")
+            ->leftJoin("platform c", "c.id=b.platform_code AND c.is_del=0")
+            ->leftJoin("supplier s", "s.code=a.supplierNo AND s.is_del=0")
+            ->where($where)
+            ->whereMonth('a.addtime')
+            ->cursor();
+        $list = [];
+        $total = ['采购方' => '总计', '订单总量' => 0, '库存品' => 0, 'toC' => 0, 'toB' => 0, '今日反馈单数合计(参考)' => 0];
+        foreach ($data as $val) {
+
+            if (!isset($list[$val['personid']])) {
+                $list[$val['personid']] = [
+                    '采购方' => $val['person'],
+                    '订单总量' => 0,//订单总量
+                    '库存品' => 0,//库存品
+                    'toC' => 0,//to C
+                    'toB' => 0,//to B
+                    '今日反馈单数合计(参考)' => 0,//咨询采反总数
+                ];
+            }
+
+            switch ($val['order_type']) {
+                case 1:
+                    //库存品
+                    $list[$val['personid']]['库存品']++;
+                    $total['库存品']++;
+                    break;
+
+                case 3:
+                    //咨询采反
+                    $list[$val['personid']]['今日反馈单数合计(参考)']++;
+                    $total['今日反馈单数合计(参考)']++;
+                    break;
+            }
+
+            switch ($val['use_type']) {
+                case 1:
+                    //to B
+                    $list[$val['personid']]['toB']++;
+                    $total['toB']++;
+                    break;
+
+                case 2:
+                    //to C
+                    $list[$val['personid']]['toC']++;
+                    $total['toC']++;
+                    break;
+            }
+
+            $list[$val['personid']]['订单总量']++;
+            $total['订单总量']++;
+
+        }
+
+        $list[] = $total;
+
+        if (empty($list)) $list[] = '没有相关可导出的数据';
+        excelSave('本月供应商负责人采购订单情况' . date('YmdHis'), array_keys($total), $list);
+
     }
     }
 
 
+
 }
 }

+ 17 - 9
app/admin/route/app.php

@@ -590,15 +590,23 @@ Route::rule('seord', 'admin/SaleReport/orderReturnDetailed');//售后明细表
 Route::rule('seorde', 'admin/SaleReport/orderReturnDetailedExport');//售后明细表-导出
 Route::rule('seorde', 'admin/SaleReport/orderReturnDetailedExport');//售后明细表-导出
 Route::rule('sebo', 'admin/SaleReport/bargainOrder');//议价明细表
 Route::rule('sebo', 'admin/SaleReport/bargainOrder');//议价明细表
 Route::rule('seboe', 'admin/SaleReport/bargainOrderExport');//议价明细表
 Route::rule('seboe', 'admin/SaleReport/bargainOrderExport');//议价明细表
-Route::rule('seoona', 'admin/SaleReport/orderOutNotAddr');//延时发货申请单统计
-Route::rule('seoonae', 'admin/SaleReport/orderOutNotAddrExport');//延时发货申请单统计 -导出
-Route::rule('seooa', 'admin/SaleReport/orderOutAddr');//直接发货申请单统计
-Route::rule('seooae', 'admin/SaleReport/orderOutAddrExport');//直接发货申请单统计 -导出
-Route::rule('sna', 'admin/SaleReport/saleNotAddr');//无地址销售订单统计
-Route::rule('snae', 'admin/SaleReport/saleNotAddrExport');//无地址销售订单统计
-
-Route::rule('sm', 'admin/SaleReport/saleMonth');//本月销售订单情况统计
-Route::rule('sme', 'admin/SaleReport/saleMonthExport');//本月销售订单情况统计-导出
+Route::rule('seoona', 'admin/SaleReport/orderOutNotAddr');//八、延时发货申请单统计
+Route::rule('seoonae', 'admin/SaleReport/orderOutNotAddrExport');//八、延时发货申请单统计 -导出
+Route::rule('seooa', 'admin/SaleReport/orderOutAddr');//九、直接发货申请单统计
+Route::rule('seooae', 'admin/SaleReport/orderOutAddrExport');//九、直接发货申请单统计 -导出
+Route::rule('sna', 'admin/SaleReport/saleNotAddr');//十、无地址销售订单统计
+Route::rule('snae', 'admin/SaleReport/saleNotAddrExport');//十、无地址销售订单统计
+
+Route::rule('sm', 'admin/SaleReport/saleMonth');//十一、本月销售订单情况统计
+Route::rule('sme', 'admin/SaleReport/saleMonthExport');//十一、本月销售订单情况统计-导出
+Route::rule('oom', 'admin/SaleReport/orderOutMonth');//十二、本月采购订单和库存品发货情况
+Route::rule('oome', 'admin/SaleReport/orderOutMonthExport');//十二、本月采购订单和库存品发货情况-导出
+Route::rule('pom', 'admin/SaleReport/purcheaseOrderMonth');//十三、本月供应商采购订单情况
+Route::rule('pome', 'admin/SaleReport/purcheaseOrderMonthExport');//十三、本月供应商采购订单情况-导出
+Route::rule('popm', 'admin/SaleReport/purcheaseOrderPersonMonth');//十四、本月供应商负责人采购订单情况
+Route::rule('popme', 'admin/SaleReport/purcheaseOrderPersonMonthExport');//十四、本月供应商负责人采购订单情况-导出
+
+
 Route::rule("catplatadd", "admin/CatPlat/add");
 Route::rule("catplatadd", "admin/CatPlat/add");
 Route::rule("catplatedit", "admin/CatPlat/edit");
 Route::rule("catplatedit", "admin/CatPlat/edit");
 Route::rule("catplatlist", "admin/CatPlat/list");
 Route::rule("catplatlist", "admin/CatPlat/list");