isAjax()){ $sTime = $start.' 00:00:00'; $eTime = $end.' 23:59:59'; $list = Db::name('order_type') ->field('id,title') ->where('enable',1) ->where('del',0) ->where('org_id',$this->orgId) ->where('parent_id','>',0) ->select(); foreach ($list as $k=>$v){ $list[$k]['nums'] = Db::name('orders') ->alias('o') ->join('order_repair or','or.order_id=o.id') ->where('or.type_id',$v['id']) ->where('o.del',0) ->where('o.create_time','>=',$sTime) ->where('o.create_time','<=',$eTime) ->count(); } $data = list_sort_by($list,'nums','desc'); $result['rows'] = $data; return json($result); }else{ $this->assign('start',$start); $this->assign('end',$end); return $this->fetch(); } } public function repairItemsExport(){ $start = input('start',date('Y-m-d',strtotime('-7 day'))); $end = input('end',date('Y-m-d')); $sTime = $start.' 00:00:00'; $eTime = $end.' 23:59:59'; $list = Db::name('order_type') ->field('id,title') ->where('enable',1) ->where('del',0) ->where('org_id',$this->orgId) ->where('parent_id','>',0) ->select(); foreach ($list as $k=>$v){ $list[$k]['nums'] = Db::name('orders') ->alias('o') ->join('order_repair or','or.order_id=o.id') ->where('or.type_id',$v['id']) ->where('o.del',0) ->where('o.create_time','>=',$sTime) ->where('o.create_time','<=',$eTime) ->count(); } $data = list_sort_by($list,'nums','desc'); include_once env('root_path').'/extend/phpexcel/Classes/PHPExcel.php'; //实例化PHPExcel类 $objPHPExcel =new \PHPExcel(); //激活当前的sheet表 $objPHPExcel->setActiveSheetIndex(0); //设置表格头(即excel表格的第一行) $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', '报修事项') ->setCellValue('B1', '总数'); // 设置表格头水平居中 $objPHPExcel->setActiveSheetIndex(0)->getStyle('A1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('B1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('C1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //设置列水平居中 $objPHPExcel->setActiveSheetIndex(0)->getStyle('A')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('B')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('C')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //设置单元格宽度 $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(30); //循环刚取出来的数组,将数据逐一添加到excel表格。 for ($i = 0; $i < count($data); $i++) { $objPHPExcel->getActiveSheet()->setCellValue('A' . ($i + 2), $data[$i]['title']); $objPHPExcel->getActiveSheet()->setCellValue('B' . ($i + 2), $data[$i]['nums']); } //设置保存的Excel表格名称 $filename = '报修事项统计报表_' . date('YmdHis', time()) . '.xls'; //设置当前激活的sheet表格名称 $objPHPExcel->getActiveSheet()->setTitle('报修事项统计报表'); //设置浏览器窗口下载表格 ob_end_clean(); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header('Content-Disposition:inline;filename="' . $filename); //生成excel文件 $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); //下载文件在浏览器窗口 return $objWriter->save('php://output'); } public function repairCate(){ $start = input('start',date('Y-m-d',strtotime('-7 day'))); $end = input('end',date('Y-m-d')); if(request()->isAjax()){ $sTime = $start.' 00:00:00'; $eTime = $end.' 23:59:59'; $list = Db::name('order_type') ->field('id,title,parent_id') ->where('enable',1) ->where('del',0) ->where('org_id',$this->orgId) ->where('parent_id','=',0) ->select(); foreach ($list as $k=>$v){ $type = Db::name('order_type') ->field('id') ->where('enable',1) ->where('del',0) ->where('org_id',$this->orgId) ->where('parent_id',$v['id']) ->select(); $ids = []; foreach ($type as $kk=>$vv){ $ids[$kk] = $vv['id']; } $list[$k]['ids'] = $ids; } foreach ($list as $k=>$v){ $list[$k]['nums'] = Db::name('orders') ->alias('o') ->join('order_repair or','or.order_id=o.id') ->whereIn('or.type_id',$v['ids']) ->where('o.del',0) ->where('o.org_id',$this->orgId) ->where('o.create_time','>=',$sTime) ->where('o.create_time','<=',$eTime) ->count(); } $data = list_sort_by($list,'nums','desc'); $result['rows'] = $data; return json($result); }else{ $this->assign('start',$start); $this->assign('end',$end); return $this->fetch(); } } public function repairWorkload($mode){ $start = input('start',date('Y-m-d',strtotime('-7 day'))); $end = input('end',date('Y-m-d')); $mode = input('mode'); if(request()->isAjax()){ $sTime = $start.' 00:00:00'; $eTime = $end.' 23:59:59'; $list = Db::name('todo') ->field('id,to_user_id') ->where('del',0) ->where('org_id',$this->orgId) ->where('create_time','>=',$sTime) ->where('create_time','<=',$eTime) ->where('work_type_mode',$mode) ->group('to_user_id') ->select(); foreach ($list as $k=>$v){ $list[$k]['user_name'] = Db::name('user')->where('id',$v['to_user_id'])->value('real_name'); $list[$k]['nums'] =Db::name('todo') ->where('del',0) ->where('to_user_id',$v['to_user_id']) ->where('org_id',$this->orgId) ->where('create_time','>=',$sTime) ->where('create_time','<=',$eTime) ->where('work_type_mode',$mode) ->count(); $list[$k]['nums1'] =Db::name('todo') ->where('del',0) ->where('to_user_id',$v['to_user_id']) ->where('org_id',$this->orgId) ->where('create_time','>=',$sTime) ->where('create_time','<=',$eTime) ->where('work_type_mode',$mode) ->where('todo_mode',1) ->count(); $list[$k]['nums2'] =Db::name('todo') ->where('del',0) ->where('to_user_id',$v['to_user_id']) ->where('org_id',$this->orgId) ->where('create_time','>=',$sTime) ->where('create_time','<=',$eTime) ->where('work_type_mode',$mode) ->where('todo_mode',2) ->count(); $list[$k]['nums3'] =Db::name('todo') ->where('del',0) ->where('to_user_id',$v['to_user_id']) ->where('org_id',$this->orgId) ->where('create_time','>=',$sTime) ->where('create_time','<=',$eTime) ->where('work_type_mode',$mode) ->where('todo_mode',3) ->count(); $list[$k]['nums4'] =Db::name('todo') ->where('del',0) ->where('to_user_id',$v['to_user_id']) ->where('org_id',$this->orgId) ->where('create_time','>=',$sTime) ->where('create_time','<=',$eTime) ->where('work_type_mode',$mode) ->where('todo_mode',4) ->count(); $list[$k]['nums5'] =Db::name('todo') ->where('del',0) ->where('to_user_id',$v['to_user_id']) ->where('org_id',$this->orgId) ->where('create_time','>=',$sTime) ->where('create_time','<=',$eTime) ->where('work_type_mode',$mode) ->where('todo_mode',5) ->count(); $list[$k]['nums6'] =Db::name('todo') ->where('del',0) ->where('to_user_id',$v['to_user_id']) ->where('org_id',$this->orgId) ->where('create_time','>=',$sTime) ->where('create_time','<=',$eTime) ->where('work_type_mode',$mode) ->where('todo_mode',6) ->count(); } $result['rows'] = $list; return json($result); }else{ if($mode == 1){ $title = '报修工作量统计报表'; }elseif ($mode == 2){ $title = '保洁工作量统计报表'; }elseif ($mode == 3){ $title = '运送工作量统计报表'; }elseif ($mode == 4){ $title = '安保工作量统计报表'; }elseif ($mode == 0){ $title = '一键呼叫工作量统计报表'; } $this->assign('mode',$mode); $this->assign('title',$title); $this->assign('start',$start); $this->assign('end',$end); return $this->fetch(); } } public function repairWorkloadExport(){ $start = input('start',date('Y-m-d',strtotime('-7 day'))); $end = input('end',date('Y-m-d')); $mode = input('mode'); $sTime = $start.' 00:00:00'; $eTime = $end.' 23:59:59'; if($mode == 1){ $title = '报修工作量统计报表'; }elseif ($mode == 2){ $title = '保洁工作量统计报表'; }elseif ($mode == 3){ $title = '运送工作量统计报表'; }elseif ($mode == 4){ $title = '安保工作量统计报表'; }elseif ($mode == 0){ $title = '一键呼叫工作量统计报表'; } $list = Db::name('todo') ->field('id,to_user_id') ->where('del',0) ->where('org_id',$this->orgId) ->where('create_time','>=',$sTime) ->where('create_time','<=',$eTime) ->where('work_type_mode',$mode) ->group('to_user_id') ->select(); foreach ($list as $k=>$v) { $list[$k]['user_name'] = Db::name('user')->where('id', $v['to_user_id'])->value('real_name'); $list[$k]['nums'] = Db::name('todo') ->where('del', 0) ->where('to_user_id', $v['to_user_id']) ->where('org_id', $this->orgId) ->where('create_time', '>=', $sTime) ->where('create_time', '<=', $eTime) ->where('work_type_mode', $mode) ->count(); $list[$k]['nums1'] = Db::name('todo') ->where('del', 0) ->where('to_user_id', $v['to_user_id']) ->where('org_id', $this->orgId) ->where('create_time', '>=', $sTime) ->where('create_time', '<=', $eTime) ->where('work_type_mode', $mode) ->where('todo_mode', 1) ->count(); $list[$k]['nums2'] = Db::name('todo') ->where('del', 0) ->where('to_user_id', $v['to_user_id']) ->where('org_id', $this->orgId) ->where('create_time', '>=', $sTime) ->where('create_time', '<=', $eTime) ->where('work_type_mode', $mode) ->where('todo_mode', 2) ->count(); $list[$k]['nums3'] = Db::name('todo') ->where('del', 0) ->where('to_user_id', $v['to_user_id']) ->where('org_id', $this->orgId) ->where('create_time', '>=', $sTime) ->where('create_time', '<=', $eTime) ->where('work_type_mode', $mode) ->where('todo_mode', 3) ->count(); $list[$k]['nums4'] = Db::name('todo') ->where('del', 0) ->where('to_user_id', $v['to_user_id']) ->where('org_id', $this->orgId) ->where('create_time', '>=', $sTime) ->where('create_time', '<=', $eTime) ->where('work_type_mode', $mode) ->where('todo_mode', 4) ->count(); $list[$k]['nums5'] = Db::name('todo') ->where('del', 0) ->where('to_user_id', $v['to_user_id']) ->where('org_id', $this->orgId) ->where('create_time', '>=', $sTime) ->where('create_time', '<=', $eTime) ->where('work_type_mode', $mode) ->where('todo_mode', 5) ->count(); $list[$k]['nums6'] = Db::name('todo') ->where('del', 0) ->where('to_user_id', $v['to_user_id']) ->where('org_id', $this->orgId) ->where('create_time', '>=', $sTime) ->where('create_time', '<=', $eTime) ->where('work_type_mode', $mode) ->where('todo_mode', 6) ->count(); } include_once env('root_path').'/extend/phpexcel/Classes/PHPExcel.php'; //实例化PHPExcel类 $objPHPExcel =new \PHPExcel(); //激活当前的sheet表 $objPHPExcel->setActiveSheetIndex(0); //设置表格头(即excel表格的第一行) $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', '姓名') ->setCellValue('B1', '总数') ->setCellValue('C1', '待领取') ->setCellValue('D1', '已接单') ->setCellValue('E1', '已完成') ->setCellValue('F1', '被员工驳回') ->setCellValue('G1', '客观原因无法完成') ->setCellValue('H1', '已取消'); // 设置表格头水平居中 $objPHPExcel->setActiveSheetIndex(0)->getStyle('A1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('B1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('C1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('D1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('E1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('F1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('G1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('H1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //设置列水平居中 $objPHPExcel->setActiveSheetIndex(0)->getStyle('A')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('B')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('C')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('D')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('E')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('F')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('G')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('H')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //设置单元格宽度 $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('D')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('E')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('F')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('G')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('H')->setWidth(30); //循环刚取出来的数组,将数据逐一添加到excel表格。 for ($i = 0; $i < count($list); $i++) { $objPHPExcel->getActiveSheet()->setCellValue('A' . ($i + 2), $list[$i]['user_name']); $objPHPExcel->getActiveSheet()->setCellValue('B' . ($i + 2), $list[$i]['nums']); $objPHPExcel->getActiveSheet()->setCellValue('C' . ($i + 2), $list[$i]['nums1']); $objPHPExcel->getActiveSheet()->setCellValue('D' . ($i + 2), $list[$i]['nums2']); $objPHPExcel->getActiveSheet()->setCellValue('E' . ($i + 2), $list[$i]['nums3']); $objPHPExcel->getActiveSheet()->setCellValue('F' . ($i + 2), $list[$i]['nums4']); $objPHPExcel->getActiveSheet()->setCellValue('G' . ($i + 2), $list[$i]['nums5']); $objPHPExcel->getActiveSheet()->setCellValue('H' . ($i + 2), $list[$i]['nums6']); } //设置保存的Excel表格名称 $filename = $title.'_' . date('YmdHis', time()) . '.xls'; //设置当前激活的sheet表格名称 $objPHPExcel->getActiveSheet()->setTitle($title); //设置浏览器窗口下载表格 ob_end_clean(); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header('Content-Disposition:inline;filename="' . $filename); //生成excel文件 $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); //下载文件在浏览器窗口 return $objWriter->save('php://output'); } public function conveyCateWorkload(){ $start = input('start',date('Y-m-d',strtotime('-7 day'))); $end = input('end',date('Y-m-d')); if(request()->isAjax()){ $sTime = $start.' 00:00:00'; $eTime = $end.' 23:59:59'; $list = Db::name('address') ->field('id,title') ->where('enable',1) ->where('del',0) ->where('org_id',$this->orgId) ->where('find_in_set(2,types)') ->select(); foreach ($list as $k=>$v){ $list[$k]['nums'] = Db::name('order_convey_lis') ->where('org_id',$this->orgId) ->where('addr_id',$v['id']) ->where('create_time','>=',$sTime) ->where('create_time','<=',$eTime) ->count(); } $result['rows'] = $list; return json($result); }else{ $this->assign('start',$start); $this->assign('end',$end); return $this->fetch(); } } public function conveyCateWorkloadExport(){ $start = input('start',date('Y-m-d',strtotime('-7 day'))); $end = input('end',date('Y-m-d')); $sTime = $start.' 00:00:00'; $eTime = $end.' 23:59:59'; $list = Db::name('address') ->field('id,title') ->where('enable',1) ->where('del',0) ->where('org_id',$this->orgId) ->where('find_in_set(2,types)') ->select(); foreach ($list as $k=>$v){ $list[$k]['nums'] = Db::name('order_convey_lis') ->where('org_id',$this->orgId) ->where('addr_id',$v['id']) ->where('create_time','>=',$sTime) ->where('create_time','<=',$eTime) ->count(); } include_once env('root_path').'/extend/phpexcel/Classes/PHPExcel.php'; //实例化PHPExcel类 $objPHPExcel =new \PHPExcel(); //激活当前的sheet表 $objPHPExcel->setActiveSheetIndex(0); //设置表格头(即excel表格的第一行) $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', '运送地点') ->setCellValue('B1', '标本'); // 设置表格头水平居中 $objPHPExcel->setActiveSheetIndex(0)->getStyle('A1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('B1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('C1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //设置列水平居中 $objPHPExcel->setActiveSheetIndex(0)->getStyle('A')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('B')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('C')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //设置单元格宽度 $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(30); //循环刚取出来的数组,将数据逐一添加到excel表格。 for ($i = 0; $i < count($list); $i++) { $objPHPExcel->getActiveSheet()->setCellValue('A' . ($i + 2), $list[$i]['title']); $objPHPExcel->getActiveSheet()->setCellValue('B' . ($i + 2), $list[$i]['nums']); } //设置保存的Excel表格名称 $filename = '运送类型工作量统计_'. date('YmdHis', time()) . '.xls'; //设置当前激活的sheet表格名称 $objPHPExcel->getActiveSheet()->setTitle('运送类型工作量统计_'); //设置浏览器窗口下载表格 ob_end_clean(); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header('Content-Disposition:inline;filename="' . $filename); //生成excel文件 $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); //下载文件在浏览器窗口 return $objWriter->save('php://output'); } public function conveyCateTodo(){ $start = input('start',date('Y-m-d',strtotime('-7 day'))); $end = input('end',date('Y-m-d')); if(request()->isAjax()){ $sTime = $start.' 00:00:00'; $eTime = $end.' 23:59:59'; $list = Db::name('convey_cate') ->field('id,title') ->where('enable',1) ->where('del',0) ->where('org_id',$this->orgId) ->select(); foreach ($list as $k=>$v){ $todo = Db::name('todo') ->alias('t') ->field('t.wc_time') ->join('order_convey oc','oc.order_id=t.order_id') ->where('oc.type',$v['id']) ->where('t.del',0) ->where('t.create_time','>=',$sTime) ->where('t.create_time','<=',$eTime) ->where('t.todo_mode',3) ->select(); $todoCount = Db::name('todo') ->alias('t') ->field('t.wc_time') ->join('order_convey oc','oc.order_id=t.order_id') ->where('oc.type',$v['id']) ->where('t.del',0) ->where('t.create_time','>=',$sTime) ->where('t.create_time','<=',$eTime) ->where('t.todo_mode',3) ->count(); $totalTime = 0; foreach ($todo as $key=>$val){ $totalTime +=$val['wc_time']; } $aveTime = $totalTime>0?round($totalTime/$todoCount/60,2):0; $list[$k]['count'] = isset($todoCount)?$todoCount:0; $list[$k]['total_time'] = isset($totalTime)?round($totalTime/60,2):0; $list[$k]['ave_time'] = isset($aveTime)&&$aveTime>0?$aveTime:0; } $result['rows'] = $list; return json($result); }else{ $this->assign('start',$start); $this->assign('end',$end); return $this->fetch(); } } public function conveyCateTodoExport(){ $start = input('start',date('Y-m-d',strtotime('-7 day'))); $end = input('end',date('Y-m-d')); $sTime = $start.' 00:00:00'; $eTime = $end.' 23:59:59'; $list = Db::name('convey_cate') ->field('id,title') ->where('enable',1) ->where('del',0) ->where('org_id',$this->orgId) ->select(); foreach ($list as $k=>$v){ $todo = Db::name('todo') ->alias('t') ->field('t.wc_time') ->join('order_convey oc','oc.order_id=t.order_id') ->where('oc.type',$v['id']) ->where('t.del',0) ->where('t.create_time','>=',$sTime) ->where('t.create_time','<=',$eTime) ->where('t.todo_mode',3) ->select(); $todoCount = Db::name('todo') ->alias('t') ->field('t.wc_time') ->join('order_convey oc','oc.order_id=t.order_id') ->where('oc.type',$v['id']) ->where('t.del',0) ->where('t.create_time','>=',$sTime) ->where('t.create_time','<=',$eTime) ->where('t.todo_mode',3) ->count(); $totalTime = 0; foreach ($todo as $key=>$val){ $totalTime +=$val['wc_time']; } $aveTime = $totalTime>0?round($totalTime/$todoCount/60,2):0; $list[$k]['count'] = isset($todoCount)?$todoCount:0; $list[$k]['total_time'] = isset($totalTime)?round($totalTime/60,2):0; $list[$k]['ave_time'] = isset($aveTime)&&$aveTime>0?$aveTime:0; } include_once env('root_path').'/extend/phpexcel/Classes/PHPExcel.php'; //实例化PHPExcel类 $objPHPExcel =new \PHPExcel(); //激活当前的sheet表 $objPHPExcel->setActiveSheetIndex(0); //设置表格头(即excel表格的第一行) $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', '运送类型') ->setCellValue('B1', '工单数') ->setCellValue('C1', '总时长(分)') ->setCellValue('D1', '平均时长(分)'); // 设置表格头水平居中 $objPHPExcel->setActiveSheetIndex(0)->getStyle('A1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('B1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('C1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('D1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //设置列水平居中 $objPHPExcel->setActiveSheetIndex(0)->getStyle('A')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('B')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('C')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->setActiveSheetIndex(0)->getStyle('D')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //设置单元格宽度 $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('A')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('B')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('C')->setWidth(30); $objPHPExcel->setActiveSheetIndex(0)->getColumnDimension('D')->setWidth(30); //循环刚取出来的数组,将数据逐一添加到excel表格。 for ($i = 0; $i < count($list); $i++) { $objPHPExcel->getActiveSheet()->setCellValue('A' . ($i + 2), $list[$i]['title']); $objPHPExcel->getActiveSheet()->setCellValue('B' . ($i + 2), $list[$i]['count']); $objPHPExcel->getActiveSheet()->setCellValue('B' . ($i + 2), $list[$i]['total_time']); $objPHPExcel->getActiveSheet()->setCellValue('B' . ($i + 2), $list[$i]['ave_time']); } //设置保存的Excel表格名称 $filename = '运送类型工单统计_'. date('YmdHis', time()) . '.xls'; //设置当前激活的sheet表格名称 $objPHPExcel->getActiveSheet()->setTitle('运送类型工单统计_'); //设置浏览器窗口下载表格 ob_end_clean(); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header('Content-Disposition:inline;filename="' . $filename); //生成excel文件 $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); //下载文件在浏览器窗口 return $objWriter->save('php://output'); } }