/** * 详细统计 */ 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(); }