|
@@ -5,6 +5,7 @@ namespace app\admin\controller;
|
|
use app\BaseController;
|
|
use app\BaseController;
|
|
use think\App;
|
|
use think\App;
|
|
use think\facade\Db;
|
|
use think\facade\Db;
|
|
|
|
+use think\facade\Validate;
|
|
|
|
|
|
//数据统计类(数据看板,获取相关统计数据)
|
|
//数据统计类(数据看板,获取相关统计数据)
|
|
class Data extends BaseController
|
|
class Data extends BaseController
|
|
@@ -364,26 +365,139 @@ class Data extends BaseController
|
|
|
|
|
|
|
|
|
|
//******* 以下是新版数据大屏 的内容***********************************
|
|
//******* 以下是新版数据大屏 的内容***********************************
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //1.今日销售
|
|
public function dnTodaySale()
|
|
public function dnTodaySale()
|
|
{
|
|
{
|
|
$rs = Db::name('sale')
|
|
$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')
|
|
->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);
|
|
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));
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|