示例#1
0
 /**
  * 详细统计
  */
 public function actionDetail()
 {
     $this->_modelUser = $this->_getGlobalData('Model_User', 'object');
     $orgList = $this->_getGlobalData('org');
     $allOrgUser = $this->_modelUser->findSetOrgByUser();
     $qualityOptions = $this->_getGlobalData('quality_options');
     //质检选项
     foreach ($orgList as &$value) {
         $curOrgUser = $this->_modelUser->findByOrgId($value['Id']);
         if ($curOrgUser) {
             $curOrgUser = Model::getTtwoArrConvertOneArr($curOrgUser, 'Id', 'nick_name');
             $value['user'] = $curOrgUser;
         }
     }
     if ($this->_isPost()) {
         if (count($_POST['check_users']) && $_POST['start_date'] && $_POST['end_date']) {
             //必须保证有搜索项而且还选择了用户才会开开始搜索
             $date = array();
             $this->_view->assign('selectedTime', array('start' => $_POST['start_date'], 'end' => $_POST['end_date']));
             $this->_view->assign('selectedUsers', $_POST['check_users']);
             $date['start'] = strtotime($_POST['start_date']);
             //开始时间
             $date['end'] = strtotime($_POST['end_date']);
             //结束时间
             if ($date['start'] > $date['end']) {
                 $this->_utilMsg->showMsg('开始时间不能大于结束时间', -2);
             }
             $statsUsers = array();
             //所有的用户
             $this->_modelWorkOrderQa = $this->_getGlobalData('Model_WorkOrderQa', 'object');
             $this->_modelReplyQulity = $this->_getGlobalData('Model_ReplyQulity', 'object');
             $allUsers = $this->_getGlobalData('user');
             foreach ($_POST['check_users'] as $userId) {
                 //对用户进行逐个搜索
                 $curUserDetail = $allUsers[$userId];
                 $curUserDetail['workload'] = $this->_modelWorkOrderQa->findWorkLoadByUser($curUserDetail['user_name'], $date);
                 //回复量
                 $curUserDetail['quality'] = $this->_modelReplyQulity->findQualityByUerName($curUserDetail['user_name'], $date);
                 //质检量
                 array_push($statsUsers, $curUserDetail);
             }
             $startKey = date('Ymd', $date['start']);
             $endDate = date('Ymd', $date['end']);
             $baseTotal = array();
             for ($i = $startKey; $i <= $endDate; $i++) {
                 foreach ($statsUsers as $childUser) {
                     $baseTotal['workload'][$i]['timeout_num'] += intval($childUser['workload'][$i]['timeout_num']) ? intval($childUser['workload'][$i]['timeout_num']) : 0;
                     $baseTotal['workload'][$i]['no_timeout_num'] += intval($childUser['workload'][$i]['no_timeout_num']) ? intval($childUser['workload'][$i]['no_timeout_num']) : 0;
                     $baseTotal['workload'][$i]['quality_num'] += intval($childUser['workload'][$i]['quality_num']) ? intval($childUser['workload'][$i]['quality_num']) : 0;
                     $baseTotal['workload'][$i]['no_quality_num'] += intval($childUser['workload'][$i]['no_quality_num']) ? intval($childUser['workload'][$i]['no_quality_num']) : 0;
                     $baseTotal['workload'][$i]['total'] += intval($childUser['workload'][$i]['total']) ? intval($childUser['workload'][$i]['total']) : 0;
                     $baseTotal['quality'][$i]['status_num'][1] += intval($childUser['quality'][$i]['status_num'][1]) ? intval($childUser['quality'][$i]['status_num'][1]) : 0;
                     $baseTotal['quality'][$i]['status_num'][2] += intval($childUser['quality'][$i]['status_num'][2]) ? intval($childUser['quality'][$i]['status_num'][2]) : 0;
                     $baseTotal['quality'][$i]['status_num'][3] += intval($childUser['quality'][$i]['status_num'][3]) ? intval($childUser['quality'][$i]['status_num'][3]) : 0;
                     $baseTotal['quality'][$i]['status_num'][4] += intval($childUser['quality'][$i]['status_num'][4]) ? intval($childUser['quality'][$i]['status_num'][4]) : 0;
                     $baseTotal['quality'][$i]['status_num'][5] += intval($childUser['quality'][$i]['status_num'][5]) ? intval($childUser['quality'][$i]['status_num'][5]) : 0;
                     $baseTotal['quality'][$i]['deduction'] += intval($childUser['quality'][$i]['deduction']) ? intval($childUser['quality'][$i]['deduction']) : 0;
                     $baseTotal['quality'][$i]['bonus'] += intval($childUser['quality'][$i]['bonus']) ? intval($childUser['quality'][$i]['bonus']) : 0;
                     $baseTotal['quality'][$i]['option_num'][1] += intval($childUser['quality'][$i]['option_num'][1]) ? intval($childUser['quality'][$i]['option_num'][1]) : 0;
                     $baseTotal['quality'][$i]['option_num'][2] += intval($childUser['quality'][$i]['option_num'][2]) ? intval($childUser['quality'][$i]['option_num'][2]) : 0;
                     $baseTotal['quality'][$i]['option_num'][3] += intval($childUser['quality'][$i]['option_num'][-1]) ? intval($childUser['quality'][$i]['option_num'][-1]) : 0;
                     $baseTotal['quality'][$i]['option_num'][4] += intval($childUser['quality'][$i]['option_num'][-2]) ? intval($childUser['quality'][$i]['option_num'][-2]) : 0;
                     $baseTotal['quality'][$i]['option_num'][5] += intval($childUser['quality'][$i]['option_num'][-3]) ? intval($childUser['quality'][$i]['option_num'][-3]) : 0;
                     $baseTotal['quality'][$i]['option_num'][6] += intval($childUser['quality'][$i]['option_num'][-4]) ? intval($childUser['quality'][$i]['option_num'][-4]) : 0;
                     $baseTotal['quality'][$i]['option_num'][7] += intval($childUser['quality'][$i]['option_num'][-5]) ? intval($childUser['quality'][$i]['option_num'][-5]) : 0;
                     $baseTotal['quality'][$i]['option_num'][8] += intval($childUser['quality'][$i]['option_num'][-6]) ? intval($childUser['quality'][$i]['option_num'][-6]) : 0;
                 }
             }
             foreach ($statsUsers as $childUser) {
                 $baseTotal['workload']['total']['timeout_num'] += intval($childUser['workload']['total']['timeout_num']) ? intval($childUser['workload']['total']['timeout_num']) : 0;
                 $baseTotal['workload']['total']['no_timeout_num'] += intval($childUser['workload']['total']['no_timeout_num']) ? intval($childUser['workload']['total']['no_timeout_num']) : 0;
                 $baseTotal['workload']['total']['quality_num'] += intval($childUser['workload']['total']['quality_num']) ? intval($childUser['workload']['total']['quality_num']) : 0;
                 $baseTotal['workload']['total']['no_quality_num'] += intval($childUser['workload']['total']['no_quality_num']) ? intval($childUser['workload']['total']['no_quality_num']) : 0;
                 $baseTotal['workload']['total']['total'] += intval($childUser['workload']['total']['total']) ? intval($childUser['workload']['total']['total']) : 0;
                 $baseTotal['quality']['total']['status_num'][1] += intval($childUser['quality']['total']['status_num'][1]) ? intval($childUser['quality']['total']['status_num'][1]) : 0;
                 $baseTotal['quality']['total']['status_num'][2] += intval($childUser['quality']['total']['status_num'][2]) ? intval($childUser['quality']['total']['status_num'][2]) : 0;
                 $baseTotal['quality']['total']['status_num'][3] += intval($childUser['quality']['total']['status_num'][3]) ? intval($childUser['quality']['total']['status_num'][3]) : 0;
                 $baseTotal['quality']['total']['status_num'][4] += intval($childUser['quality']['total']['status_num'][4]) ? intval($childUser['quality']['total']['status_num'][4]) : 0;
                 $baseTotal['quality']['total']['status_num'][5] += intval($childUser['quality']['total']['status_num'][5]) ? intval($childUser['quality']['total']['status_num'][5]) : 0;
                 $baseTotal['quality']['total']['deduction'] += intval($childUser['quality']['total']['deduction']) ? intval($childUser['quality']['total']['deduction']) : 0;
                 $baseTotal['quality']['total']['bonus'] += intval($childUser['quality']['total']['bonus']) ? intval($childUser['quality']['total']['bonus']) : 0;
                 $baseTotal['quality']['total']['option_num'][1] += intval($childUser['quality']['total']['option_num'][1]) ? intval($childUser['quality']['total']['option_num'][1]) : 0;
                 $baseTotal['quality']['total']['option_num'][2] += intval($childUser['quality']['total']['option_num'][2]) ? intval($childUser['quality']['total']['option_num'][2]) : 0;
                 $baseTotal['quality']['total']['option_num'][3] += intval($childUser['quality']['total']['option_num'][-1]) ? intval($childUser['quality']['total']['option_num'][-1]) : 0;
                 $baseTotal['quality']['total']['option_num'][4] += intval($childUser['quality']['total']['option_num'][-2]) ? intval($childUser['quality']['total']['option_num'][-2]) : 0;
                 $baseTotal['quality']['total']['option_num'][5] += intval($childUser['quality']['total']['option_num'][-3]) ? intval($childUser['quality']['total']['option_num'][-3]) : 0;
                 $baseTotal['quality']['total']['option_num'][6] += intval($childUser['quality']['total']['option_num'][-4]) ? intval($childUser['quality']['total']['option_num'][-4]) : 0;
                 $baseTotal['quality']['total']['option_num'][7] += intval($childUser['quality']['total']['option_num'][-5]) ? intval($childUser['quality']['total']['option_num'][-5]) : 0;
                 $baseTotal['quality']['total']['option_num'][8] += intval($childUser['quality']['total']['option_num'][-6]) ? intval($childUser['quality']['total']['option_num'][-6]) : 0;
             }
             $this->_view->assign('statsUsers', $statsUsers);
             $this->_view->assign('baseTotal', $baseTotal);
             $this->_view->assign('displayTrue', true);
         } else {
             $this->_utilMsg->showMsg('请选择用户,时间', -2);
         }
     }
     $this->_view->assign('qualityOptions', $qualityOptions);
     $this->_view->assign('orgList', $orgList);
     $this->_view->assign('js', $this->_view->get_curJs());
     $this->_view->assign('css', $this->_view->get_curCss());
     $this->_utilMsg->createNavBar();
     $this->_view->display();
 }