Prechádzať zdrojové kódy

新版数据大屏的3个接口

wufeng 2 rokov pred
rodič
commit
da2f50ff90
2 zmenil súbory, kde vykonal 128 pridanie a 12 odobranie
  1. 125 11
      app/admin/controller/Data.php
  2. 3 1
      app/admin/route/app.php

+ 125 - 11
app/admin/controller/Data.php

@@ -5,6 +5,7 @@ namespace app\admin\controller;
 use app\BaseController;
 use think\App;
 use think\facade\Db;
+use think\facade\Validate;
 
 //数据统计类(数据看板,获取相关统计数据)
 class Data extends BaseController
@@ -364,26 +365,139 @@ class Data extends BaseController
 
 
     //******* 以下是新版数据大屏 的内容***********************************
+
+
+    //1.今日销售
     public function dnTodaySale()
     {
         $rs = Db::name('sale')
-            ->field('id,good_num,total_price')
-            ->where(['is_del' => 0])
-            ->where('status', '<>', 3)
+            ->field('count(id) orders_number,sum(total_price)-sum(th_fee) money,sum(good_num)-sum(th_num) good_num ')
+            ->where('is_del', 0)
             ->whereDay('addtime', 'today')
-//            ->fetchSql()->select();
-            ->cursor();
+            ->find();
 
-        $data = ['total_sale' => 0, 'total_num' => 0, 'total_price' => 0];
+        //跨库查询网络部
+        $internet = Db::connect('mysql3')
+            ->table('source_all')
+            ->field('SUM(sale_total) money,SUM(order_num) good_num,COUNT(id) orders_number')
+            ->whereDay('ordertime')
+            ->where('depart', '网络部')
+            ->find();
 
-        foreach ($rs as $value) {
-            $data['total_sale']++;
-            $data['total_num'] += $value['good_num'];
-            $data['total_price'] += $value['total_price'];
-        }
+        //组织数据
+        $data = [
+            'orders_number' => bcadd(isset($rs['orders_number']) ? $rs['orders_number'] : '0', isset($internet['orders_number']) ? $internet['orders_number'] : '0'),
+            'money' => bcadd(isset($rs['money']) ? $rs['money'] : '0', isset($internet['money']) ? $internet['money'] : '0', 2),
+            'good_num' => bcadd(isset($rs['good_num']) ? $rs['good_num'] : '0', isset($internet['good_num']) ? $internet['good_num'] : '0', 2),
+        ];
 
         return app_show(0, '请求成功', $data);
 
     }
 
+    //2.今日采购
+    public function dnTodayPurcheaseOrder()
+    {
+
+        $rs = Db::name('purchease_order')
+            ->field('count(id) orders_number,sum(good_num) good_num')
+            ->where('is_del', 0)
+            ->whereDay('addtime')
+            ->find();
+
+        $consult_info_total = Db::name('consult_info')
+            ->where(['is_del' => 0, 'status' => 5])//status==5成功转单
+            ->whereDay('updatetime')
+            ->count('id');
+
+        $consult_bids_total = Db::name('consult_bids')
+            ->where('is_del', 0)
+            ->whereDay('addtime')
+            ->count('id');
+
+        $data = [
+            'consult_info_total' => $consult_info_total,//竞价中标数
+            'consult_bids_total' => $consult_bids_total,//反馈商品数
+            'orders_number' => isset($rs['orders_number']) ? $rs['orders_number'] : 0,//采购订单
+            'good_num' => isset($rs['good_num']) ? $rs['good_num'] : 0,//商品数量
+        ];
+
+        return app_show(0, '请求成功', $data);
+    }
+
+    //3.今日结算
+
+    //4.销售转单数
+    public function dnTodayTransferOrder()
+    {
+
+        $param = $this->request->filter('trim')->only(['itemid' => '0', 'type' => '3', 'date' => date('Y-m-d')], 'post');
+
+        $val = Validate::rule([
+            'itemid|部门id' => 'require|integer',
+            'type|日期类型' => 'require|number|in:1,2,3',
+            'date|筛选日期' => 'require|date',
+        ]);
+
+        if (!$val->check($param)) return error_show(1005, $val->getError());
+
+        $rs = Db::name('consult_info')
+            ->alias('a')
+            ->leftJoin('consult_order b', 'b.zxNo=a.zxNo AND b.is_del=0')
+            ->leftJoin('depart_user u', 'u.uid=b.saleid AND u.is_del=0')
+            ->where(['a.is_del' => 0, 'bargain_num' => 1]);
+
+        //查询符合条件的竞价单
+        if ($param['itemid'] == '0') {
+            //以部门为维度
+            $rs = $rs
+                ->field('a.id,a.status,u.itemid total_id,c.name')
+                ->leftJoin('company_item c', 'c.id=u.itemid AND c.is_del=0');
+        } else {
+            //以部门下的人为维度
+            $rs = $rs
+                ->field('a.id,a.status,b.saleid total_id,b.salesman name')
+                ->where('u.itemid', $param['itemid']);
+        }
+
+        //时间段判断
+        switch ($param['type']) {
+            case '1':
+                $rs->whereYear('a.addtime', $param['date']);
+                break;
+            case '2':
+                $rs->whereMonth('a.addtime', $param['date']);
+                break;
+            default:
+                $rs->whereDay('a.addtime', $param['date']);
+                break;
+        }
+
+        $data = $rs->cursor();
+
+        $da = [];
+
+        //组织数据
+        foreach ($data as $value) {
+            if (!isset($da[$value['total_id']])) {
+                $da[$value['total_id']] = [
+                    'finish_total' => 0,//销售单(中标单数)
+                    'total' => 0,//竞价单(总单数)
+                    'name' => $value['name']//名称
+                ];
+            }
+
+            $da[$value['total_id']]['total']++;
+            if ($value['status'] == '5') $da[$value['total_id']]['finish_total']++;
+        }
+
+        //计算转单率
+        foreach ($da as &$val) {
+            $val['finish_rate'] = bcmul(round(bcdiv($val['finish_total'], $val['total'], 5), 4), '100', 2) . '%';
+        }
+
+        return app_show(0, '请求成功', array_merge($da));
+
+    }
+
 }

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

@@ -557,7 +557,9 @@ Route::rule('datamonthfinishrate','admin/Data/monthFinishRate');//8.本月完成
 Route::rule('datatordertransferratetoday','admin/Data/orderTransferRateToday');//9.转单率,今日
 Route::rule('datatordertransferratemonth','admin/Data/orderTransferRateMonth');//9.转单率,本月
 Route::rule('datatordertransferrateyear','admin/Data/orderTransferRateYear');//9.转单率,本年
-Route::rule('dnTodaySale','admin/Data/dnTodaySale');//【新版】今日销售
+Route::rule('dnTodaySale','admin/Data/dnTodaySale');//【新版】1.今日销售
+Route::rule('dnTodayPurcheaseOrder','admin/Data/dnTodayPurcheaseOrder');//【新版】2.今日采购
+Route::rule('dnTodayTransferOrder','admin/Data/dnTodayTransferOrder');//【新版】4.销售转单数
 
 //销售报表
 Route::rule('saleexportconsultday','admin/SaleReport/consultDay');//管理报表-日报