diff --git a/application/admin/controller/Dashboard.php b/application/admin/controller/Dashboard.php index ecd37cb..932501c 100755 --- a/application/admin/controller/Dashboard.php +++ b/application/admin/controller/Dashboard.php @@ -2,6 +2,7 @@ namespace app\admin\controller; +use app\admin\controller\statistics\Kpidispatcher; use app\admin\model\Admin; use app\admin\model\kpi\Template; use app\admin\model\oa\Task; @@ -143,22 +144,87 @@ class Dashboard extends Backend $groupIds = $this->auth->getGroupIds(); $groupId = $groupIds[0] ?? 0; - $kpiTemplate = (new Template()) - ->where('group_id','=', $groupId) - ->with('kpiitem') - ->find(); + if ($groupId == 6) { + $kpiTemplate = (new Template()) + ->where('group_id','=', 6) + ->with('kpiitem') + ->find(); - if (!$kpiTemplate) { - $this->error('kpi模板未找到'); + if (!$kpiTemplate) { + $this->error('kpi模板未找到'); + } + + $filter['group_id'] = 6; + $filter['admin_user_ids'] = 3; + $filter['start_time'] = date('Y-m-01 00:00:00'); + $filter['end_time'] = date('Y-m-t 23:59:59'); + $chart = (new Kpidispatcher())->chart($filter); + $chart = $chart[0] ?? []; + + $datalist = [ + //转化率 = 完单数 / 总订单数 + 'trans_rate' => $chart['trans_rate'] ?? 0, + 'finish_num' => $chart['finish_num'] ?? 0, + 'count_num' => $chart['count_num'] ?? 0, + //利润率 = 总业绩/总成效额 + 'performance_rate' => $chart['performance_rate'] ?? 0, + 'performance' => $chart['performance'] ?? 0, + 'total' => $chart['total'] ?? 0, + //派单时效 + 'avg_time_diff' => $chart['avg_time_diff'] ?? 0, + //派单成功率 + 'succ_rate' => $chart['succ_rate'] ?? 0, + 'finish_num' => $chart['finish_num'] ?? 0, + 'count_num' => $chart['count_num'] ?? 0, + + //录入师傅数 + 'worker_num' => $chart['worker_num'] ?? 0, + ]; + + $kpiItems = $kpiTemplate['kpiitem']; + + foreach ($kpiItems as &$kpiItem) { + if ($kpiItem['unit'] == 1) { + $kpiItem['target_value'] .= '%'; + } + if ($kpiItem['attr'] == 'ZHL') { + $kpiItem['complete_value'] = $datalist['trans_rate'] . '%'; + $kpiItem['detail'] = $datalist['finish_num'] . '/' . $datalist['count_num']; + } + if ($kpiItem['attr'] == 'LRL') { + $kpiItem['complete_value'] = $datalist['performance_rate'] . '%'; + $kpiItem['detail'] = $datalist['performance'] . '/' . $datalist['total']; + } + if ($kpiItem['attr'] == 'PDSX') { + $kpiItem['complete_value'] = $datalist['avg_time_diff']; + $kpiItem['detail'] = $datalist['avg_time_diff']; + } + if ($kpiItem['attr'] == 'PCCGL') { + $kpiItem['complete_value'] = $datalist['succ_rate'] . '%'; + $kpiItem['detail'] = $datalist['finish_num'] . '/' . $datalist['count_num']; + } + if ($kpiItem['attr'] == 'GDJSL') { + $kpiItem['complete_value'] = 0; + $kpiItem['detail'] = 0; + } + if ($kpiItem['attr'] == 'LRSFS') { + $kpiItem['complete_value'] = $datalist['worker_num']; + $kpiItem['detail'] = $datalist['worker_num']; + } + } + + $this->view->assign('kpi_template', $kpiTemplate); + $this->view->assign('kpi_items', $kpiItems); + + return $this->view->fetch('kpi_dispatch'); } + if ($groupId == 10) { + return $this->view->fetch('kpi_presale'); + } - $kpiItems = $kpiTemplate['kpiitem']; + $this->error('暂未支持'); - $this->view->assign('kpi_template', $kpiTemplate); - $this->view->assign('kpi_items', $kpiItems); - - return $this->view->fetch(); } public function task_complete($ids = null) diff --git a/application/admin/view/dashboard/kpi.html b/application/admin/view/dashboard/kpi_dispatch.html similarity index 83% rename from application/admin/view/dashboard/kpi.html rename to application/admin/view/dashboard/kpi_dispatch.html index cf7b281..b47eab7 100644 --- a/application/admin/view/dashboard/kpi.html +++ b/application/admin/view/dashboard/kpi_dispatch.html @@ -22,10 +22,10 @@ {$item->name|htmlentities} {$item->target_value|htmlentities} - 0 + {$item->complete_value|htmlentities} {$item->desc|htmlentities} - 0 - {$item->pivot->rate|htmlentities} + {$item->detail|htmlentities} + {$item->pivot->rate|htmlentities}% {/foreach} diff --git a/application/admin/view/dashboard/kpi_presale.html b/application/admin/view/dashboard/kpi_presale.html new file mode 100644 index 0000000..4637595 --- /dev/null +++ b/application/admin/view/dashboard/kpi_presale.html @@ -0,0 +1,30 @@ +
+
+

KPI面板

+
+
+
+
+ + + + + + + + + + + + + + + + + + + + +
姓名录单数录单业绩提成比例(固定3%)提成
11122334455
+
+
\ No newline at end of file