where('type', 1) ->where('parent_id', 0) ->select(); $all = 0; foreach ($roles as $k => $v) { $res = Db::name('user') ->alias('a') ->join('user_roles b', 'a.id=b.user_id') ->join('user_org c', 'a.id=c.user_id') ->join('roles d', 'b.roles_id=d.id') ->where('a.del', 0) ->where('a.enable', 1) ->where('d.parent_id', $v['id']) ->where('c.org_id', $this->orgId) ->count(); $roles[$k]['value'] = $res ? $res : 0; $all += $res; } $this->assign('list', $roles); $this->assign('allCount', $all); return $this->fetch(); } public function org_order() { $cur = date('Y-m-d'); $start = input('start', date('Y-m-d', strtotime('' . $cur . ' -1 week'))); $end = input('end', date('Y-m-d')); $title = input('title',''); $start1 = $start . ' 00:00:00'; $end1 = $end . ' 23:59:59'; $list = $this->orgOrderData($start1, $end1,$title); $this->assign('list', $list['list']); $this->assign('totalList', $list['dt']); $this->assign('start', $start); $this->assign('end', $end); $this->assign('title', $title); return $this->fetch(); } public function orgOrderData($start1, $end1,$title) { $map[] = ['del','=',0]; if($title !=''){ $map[] = ['name','like','%'.$title.'%']; } $list = Db::name('org') ->where('type',1) ->where('enable',1) ->where($map) ->where('parent_id',1) ->field('id,name') ->select(); $map1[] = ['create_time', '>=', $start1]; $map1[] = ['create_time', '<=', $end1]; $alist = []; foreach ($list as $k1 => $v1) { $orgs = model('org')->getAllNextId($v1['id']); $orgList = Db::name('org') ->where('del',0) ->where('enable',1) ->where('type',2) ->whereIn('id',$orgs) ->field('id,name') ->select(); foreach ($orgList as $kk=>$vv){ $count = Db::name('orders') ->where('del', 0) ->where('org_id', $vv['id']) ->where($map1) ->count(); $bx = Db::name('orders') ->where('del', 0) ->where('org_id', $vv['id']) ->where('work_type_mode', 1) ->where($map1) ->count(); $bj = Db::name('orders') ->where('del', 0) ->where('org_id', $vv['id']) ->where('work_type_mode', 2) ->where($map1) ->count(); $ys = Db::name('orders') ->where('del', 0) ->where('org_id', $vv['id']) ->where('work_type_mode', 3) ->where($map1) ->count(); $yh = Db::name('orders') ->where('del', 0) ->where('org_id', $vv['id']) ->where('work_type_mode', 4) ->where($map1) ->count(); $alist[] = [ 'area_name'=> $kk==0 ?$v1['name']:'', 'org_num'=>count($orgList), 'name'=>$vv['name'], 'count'=>$count, 'bx'=>$bx, 'bj'=>$bj, 'ys'=>$ys, 'yh'=>$yh, ]; } } $totalList =[ array_sum(array_column($alist,'count')), array_sum(array_column($alist,'bx')), array_sum(array_column($alist,'bj')), array_sum(array_column($alist,'ys')), array_sum(array_column($alist,'yh')), ]; return ['list'=>$alist,'dt'=>$totalList]; } public function orgOrderExport() { $cur = date('Y-m-d'); $start = input('start', date('Y-m-d', strtotime('' . $cur . ' -1 week'))); $end = input('end', date('Y-m-d')); $start1 = $start . ' 00:00:00'; $end1 = $end . ' 23:59:59'; $title = input('title',''); $list = $this->orgOrderData($start1, $end1,$title); $ret = $list['list']; $totalList = $list['dt']; set_time_limit(0); ini_set("memory_limit", "1024M"); $title = '各项目订单统计'; header("Content-type: application/vnd.ms-excel"); header("Content-Type: application/force-download"); header("Content-Disposition: attachment; filename=".$title.".xls"); header('Expires:0'); header('Pragma:public'); $res = ''; $res.=''; $res.=''; $res.=''; $res.=''; $res.=''; $res.=''; $res.=''; $res.=''; $res.=''; $res.=''; foreach ($ret as $k=>$v){ $res.=''; if($v['area_name']){ $res.=''; } $res.=''; $res.=''; $res.=''; $res.=''; $res.=''; $res.=''; $res.=''; } $res.=''; $res.=''; foreach ($totalList as $k=>$v){ $res.=''; } $res.=''; echo $res; } public function org_user() { $title = input('title',''); $list = $this->orgUserData($title); $this->assign('list', $list['list']); $this->assign('totalList', $list['totalList']); $this->assign('title',$title); return $this->fetch(); } public function orgUserData($title) { $map[] = ['del','=',0]; if($title !=''){ $map[] = ['name','like','%'.$title.'%']; } $lists = Db::name('org') ->where('type',1) ->where('enable',1) ->where($map) ->where('parent_id',1) ->field('id,name') ->select(); $alist = []; foreach ($lists as $k1 => $v1) { $orgs = model('org')->getAllNextId($v1['id']); $orgList = Db::name('org') ->where('del',0) ->where('enable',1) ->where('type',2) ->whereIn('id',$orgs) ->field('id,name') ->select(); foreach ($orgList as $kk=>$vv){ $res = Db::name('user') ->alias('a') ->field('a.id,d.parent_id') ->join('user_roles b', 'a.id=b.user_id') ->join('user_org c', 'a.id=c.user_id') ->join('roles d', 'b.roles_id=d.id') ->where('a.del', 0) ->where('a.enable', 1) ->where('d.parent_id', 'in',[3,4,5,6,7,8,9,10]) ->where('c.org_id', $vv['id']) ->select(); $a1 = $a2 = $a3= $a4= $a5= $a6= $a7 = $a8 =0; foreach ($res as $kkk=>$vvv){ if($vvv['parent_id'] == 3){ $a1 +=1; } if($vvv['parent_id'] == 4){ $a2 +=1; } if($vvv['parent_id'] == 5){ $a3 +=1; } if($vvv['parent_id'] == 6){ $a4 +=1; } if($vvv['parent_id'] == 7){ $a5 +=1; } if($vvv['parent_id'] == 8){ $a6 +=1; } if($vvv['parent_id'] == 9){ $a7 +=1; } if($vvv['parent_id'] == 10){ $a8 +=1; } } $alist[] = [ 'area_name'=> $kk==0 ?$v1['name']:'', 'org_num'=>count($orgList), 'name'=>$vv['name'], 'count'=>count($res), 'a1'=>$a1, 'a2'=>$a2, 'a3'=>$a3, 'a4'=>$a4, 'a5'=>$a5, 'a6'=>$a6, 'a7'=>$a7, 'a8'=>$a8, ]; } } $totalList =[ array_sum(array_column($alist,'count')), array_sum(array_column($alist,'a1')), array_sum(array_column($alist,'a2')), array_sum(array_column($alist,'a3')), array_sum(array_column($alist,'a4')), array_sum(array_column($alist,'a5')), array_sum(array_column($alist,'a6')), array_sum(array_column($alist,'a7')), array_sum(array_column($alist,'a8')), ]; return ['list'=>$alist,'totalList'=>$totalList]; } public function orgUserExport() { $title = input('title',''); $list = $this->orgUserData($title); $ret = $list['list']; $totalList = $list['totalList']; set_time_limit(0); ini_set("memory_limit", "1024M"); $title = '各项目人员统计'; header("Content-type: application/vnd.ms-excel"); header("Content-Type: application/force-download"); header("Content-Disposition: attachment; filename=".$title.".xls"); header('Expires:0'); header('Pragma:public'); $res = ''; $res.='
区域名称项目名称总数报修保洁运送应急
'.$v['area_name'].''.$v['name'].''.$v['count'].''.$v['bx'].''.$v['bj'].''.$v['ys'].''.$v['yh'].'
合计:'.$v.'
'; $res.=''; $res.=''; $res.=''; $res.=''; $res.=''; $res.=''; $res.=''; $res.=''; $res.=''; $res.=''; $res.=''; $res.=''; $res.=''; foreach ($ret as $k=>$v){ $res.=''; if($v['area_name']){ $res.=''; } $res.=''; $res.=''; $res.=''; $res.=''; $res.=''; $res.=''; $res.=''; $res.=''; $res.=''; $res.=''; $res.=''; } $res.=''; $res.=''; foreach ($totalList as $k=>$v){ $res.=''; } $res.=''; echo $res; } }
区域名称项目名称总数客户综合保安运送维修保洁调度管理层
'.$v['area_name'].''.$v['name'].''.$v['count'].''.$v['a1'].''.$v['a2'].''.$v['a3'].''.$v['a4'].''.$v['a5'].''.$v['a6'].''.$v['a7'].''.$v['a8'].'
合计:'.$v.'