orgId = $orgId; // $orgId = input('orgId',0); // if($orgId < 1){ // HelpHander::error('参数错误'); // } // $this->orgId = $orgId; $org = Db::name('org')->where('del',0)->where('id',$orgId)->find(); if(!$org){ HelpHander::error('参数错误'); } $this->title = $org['name'].'后勤总数据大屏'; } public function getTitle(){ HelpHander::success($this->title); } public function projectCount(){ if($this->orgId == 3){ $userCount = gtspdb('user') ->alias('u') ->join('user_org uo','uo.USER_ID=u.USER_ID') ->join('org o','o.ORG_ID=uo.ORG_ID') ->where('u.DEL_REF',0) ->where('u.TYPE',0) ->where('o.ENABLE',1) ->where('o.DEL_REF',0) ->where('o.ORG_ID',$this->spOrgId) ->count(); $orderCount = gtspdb('orders') ->where('DEL_REF',0) ->where('ORG_ID',$this->spOrgId) ->count(); $todoCount = gtspdb('todo') ->where('DEL_REF',0) ->where('ORG_ID',$this->spOrgId) ->count(); $task1 = gtspdb('patrol_task') ->where('DEL_REF',0) ->where('ORG_ID',$this->spOrgId) ->count(); $taskCount = $task1; }elseif($this->orgId == 24){ $userCount = bjydb('user') ->alias('u') ->join('user_org uo','uo.user_id=u.id') ->join('org o','o.id=uo.org_id') ->where('u.del',0) ->where('u.type',0) ->where('o.enable',1) ->where('o.del',0) ->where('o.id',$this->bjOrgId) ->count(); $orderCount = bjydb('orders') ->where('del',0) ->where('org_id',$this->bjOrgId) ->count(); $todoCount = bjydb('todo') ->where('del',0) ->where('org_id',$this->bjOrgId) ->count(); $task1 = bjydb('patrol_task') ->where('del',0) ->where('org_id',$this->bjOrgId) ->count(); $task2 = bjydb('device_task') ->where('del',0) ->where('org_id',$this->bjOrgId) ->count(); $taskCount = $task1 + $task2; }elseif($this->orgId == 26){ $userCount = xcydb('user') ->alias('u') ->join('user_org uo','uo.user_id=u.id') ->join('org o','o.id=uo.org_id') ->where('u.del',0) ->where('u.type',0) ->where('o.enable',1) ->where('o.del',0) ->where('o.id',$this->xcOrgId) ->count(); $orderCount = xcydb('orders') ->where('del',0) ->where('org_id',$this->xcOrgId) ->count(); $todoCount = xcydb('todo') ->where('del',0) ->where('org_id',$this->xcOrgId) ->count(); $task1 = xcydb('patrol_task') ->where('del',0) ->where('org_id',$this->xcOrgId) ->count(); $task2 = xcydb('device_task') ->where('del',0) ->where('org_id',$this->xcOrgId) ->count(); $taskCount = $task1 + $task2; }else{ $userCount = Db::name('user') ->alias('u') ->join('user_org uo','uo.user_id=u.id') ->join('org o','o.id=uo.org_id') ->where('u.del',0) ->where('u.type',0) ->where('o.enable',1) ->where('o.del',0) ->where('o.id',$this->orgId) ->count(); $orderCount = Db::name('orders') ->where('del',0) ->where('org_id',$this->orgId) ->count(); $todoCount = Db::name('todo') ->where('del',0) ->where('org_id',$this->orgId) ->count(); $task1 = Db::name('patrol_task') ->where('del',0) ->where('org_id',$this->orgId) ->count(); $task2 = Db::name('device_task') ->where('del',0) ->where('org_id',$this->orgId) ->count(); $taskCount = $task1 + $task2; } $data = [ 'count1'=>$userCount, 'count2'=>$orderCount, 'count3'=>$todoCount, 'count4'=>$taskCount, 'count5'=>23, ]; HelpHander::success($data); } public function todayTodoInfo(){ $date = date('Ymd'); if($this->orgId == 3){ $map[] = ['CREATE_YYYYMMDD','=',$date]; $map[] = ['DEL_REF','=',0]; $count = gtspdb('todo')->where($map)->where('ORG_ID',$this->spOrgId)->count(); $map[] = ['TODO_MODE','=',3]; $overCount = gtspdb('todo')->where($map)->where('ORG_ID',$this->spOrgId)->count(); $overBl = 0; if($count > 0){ $overBl = round($overCount/$count*100,0); } }elseif($this->orgId == 24){ $map[] = ['create_yyyymmdd','=',$date]; $map[] = ['del','=',0]; $count = bjydb('todo')->where($map)->where('org_id',$this->bjOrgId)->count(); $map[] = ['todo_mode','=',3]; $overCount = bjydb('todo')->where($map)->where('org_id',$this->bjOrgId)->count(); $overBl = 0; if($count > 0){ $overBl = round($overCount/$count*100,0); } }elseif($this->orgId == 26){ $map[] = ['create_yyyymmdd','=',$date]; $map[] = ['del','=',0]; $count = xcydb('todo')->where($map)->where('org_id',$this->xcOrgId)->count(); $map[] = ['todo_mode','=',3]; $overCount = xcydb('todo')->where($map)->where('org_id',$this->xcOrgId)->count(); $overBl = 0; if($count > 0){ $overBl = round($overCount/$count*100,0); } }else{ $map[] = ['create_yyyymmdd','=',$date]; $map[] = ['del','=',0]; $count = Db::name('todo')->where($map)->where('org_id',$this->orgId)->count(); $map[] = ['todo_mode','=',3]; $overCount = Db::name('todo')->where($map)->where('org_id',$this->orgId)->count(); $overBl = 0; if($count > 0){ $overBl = round($overCount/$count*100,0); } } $data = [ 'count'=>$count, 'value'=>$overBl ]; HelpHander::success($data); } public function todayTodoType(){ $date = date('Ymd'); if($this->orgId == 3){ $map[] = ['CREATE_YYYYMMDD','=',$date]; $map[] = ['DEL_REF','=',0]; $map[] = ['ORG_ID','=',$this->spOrgId]; $count = gtspdb('todo')->where($map)->where('WORK_TYPE_MODE',1)->count(); $count2 = gtspdb('todo')->where($map)->where('WORK_TYPE_MODE',2)->count(); $count3 = gtspdb('todo')->where($map)->where('WORK_TYPE_MODE',3)->count(); $count4 = gtspdb('todo')->where($map)->where('WORK_TYPE_MODE',4)->count(); $map[] = ['TODO_MODE','=',3]; //保修 $bxCount = gtspdb('todo')->where($map)->where('WORK_TYPE_MODE',1)->count(); //保洁 $bjCount = gtspdb('todo')->where($map)->where('WORK_TYPE_MODE',2)->count(); //运送 $ysCount = gtspdb('todo')->where($map)->where('WORK_TYPE_MODE',3)->count(); //隐患 $yhCount = gtspdb('todo')->where($map)->where('WORK_TYPE_MODE',4)->count(); }elseif($this->orgId == 24){ $map[] = ['create_yyyymmdd','=',$date]; $map[] = ['del','=',0]; $count = bjydb('todo')->where($map)->where('work_type_mode',1)->where('org_id',$this->bjOrgId)->count(); $count2 = bjydb('todo')->where($map)->where('work_type_mode',2)->where('org_id',$this->bjOrgId)->count(); $count3 = bjydb('todo')->where($map)->where('work_type_mode',3)->where('org_id',$this->bjOrgId)->count(); $count4 = bjydb('todo')->where($map)->where('work_type_mode',4)->where('org_id',$this->bjOrgId)->count(); $map[] = ['todo_mode','=',3]; //保修 $bxCount = bjydb('todo')->where($map)->where('work_type_mode',1)->where('org_id',$this->bjOrgId)->count(); //保洁 $bjCount = bjydb('todo')->where($map)->where('work_type_mode',2)->where('org_id',$this->bjOrgId)->count(); //运送 $ysCount = bjydb('todo')->where($map)->where('work_type_mode',3)->where('org_id',$this->bjOrgId)->count(); //隐患 $yhCount = bjydb('todo')->where($map)->where('work_type_mode',4)->where('org_id',$this->bjOrgId)->count(); }elseif($this->orgId == 26){ $map[] = ['create_yyyymmdd','=',$date]; $map[] = ['del','=',0]; $count = xcydb('todo')->where($map)->where('work_type_mode',1)->where('org_id',$this->xcOrgId)->count(); $count2 = xcydb('todo')->where($map)->where('work_type_mode',2)->where('org_id',$this->xcOrgId)->count(); $count3 = xcydb('todo')->where($map)->where('work_type_mode',3)->where('org_id',$this->xcOrgId)->count(); $count4 = xcydb('todo')->where($map)->where('work_type_mode',4)->where('org_id',$this->xcOrgId)->count(); $map[] = ['todo_mode','=',3]; //保修 $bxCount = xcydb('todo')->where($map)->where('work_type_mode',1)->where('org_id',$this->xcOrgId)->count(); //保洁 $bjCount = xcydb('todo')->where($map)->where('work_type_mode',2)->where('org_id',$this->xcOrgId)->count(); //运送 $ysCount = xcydb('todo')->where($map)->where('work_type_mode',3)->where('org_id',$this->xcOrgId)->count(); //隐患 $yhCount = xcydb('todo')->where($map)->where('work_type_mode',4)->where('org_id',$this->xcOrgId)->count(); }else{ $map[] = ['create_yyyymmdd','=',$date]; $map[] = ['del','=',0]; $count = Db::name('todo')->where($map)->where('work_type_mode',1)->where('org_id',$this->orgId)->count(); $count2 = Db::name('todo')->where($map)->where('work_type_mode',2)->where('org_id',$this->orgId)->count(); $count3 = Db::name('todo')->where($map)->where('work_type_mode',3)->where('org_id',$this->orgId)->count(); $count4 = Db::name('todo')->where($map)->where('work_type_mode',4)->where('org_id',$this->orgId)->count(); $map[] = ['todo_mode','=',3]; //保修 $bxCount = Db::name('todo')->where($map)->where('work_type_mode',1)->where('org_id',$this->orgId)->count(); //保洁 $bjCount = Db::name('todo')->where($map)->where('work_type_mode',2)->where('org_id',$this->orgId)->count(); //运送 $ysCount = Db::name('todo')->where($map)->where('work_type_mode',3)->where('org_id',$this->orgId)->count(); //隐患 $yhCount = Db::name('todo')->where($map)->where('work_type_mode',4)->where('org_id',$this->orgId)->count(); } $bxBl = $bjBl = $ysBl = $yhBl =0; if($count > 0){ $bxBl = round($bxCount/$count*100,0); } if($count2 >0){ $bjBl = round($bjCount/$count2*100,0); } if($count3 >0){ $ysBl = round($ysCount/$count3*100,0); } if($count4 >0){ $yhBl = round($yhCount/$count4*100,0); } $data = [ 'bx'=>['count'=>$bxCount,'bl'=>$bxBl], 'bj'=>['count'=>$bjCount,'bl'=>$bjBl], 'ys'=>['count'=>$ysCount,'bl'=>$ysBl], 'yh'=>['count'=>$yhCount,'bl'=>$yhBl], ]; HelpHander::success($data); } public function rolesUserList(){ if($this->orgId == 3){ $initarr = array( array( 'type' => 1, 'name' => '客户人员', 'mode' => 182838, ), array( 'type' => 2, 'name' => '综合人员', 'mode' => 182848, ), array( 'type' => 3, 'name' => '运送人员', 'mode' => 182868, ), array( 'type' => 4, 'name' => '维修人员', 'mode' => 182878, ), array( 'type' => 5, 'name' => '保洁人员', 'mode' => 1828108, ), array( 'type' => 6, 'name' => '保安人员', 'mode' => 182858, ), array( 'type' => 7, 'name' => '调度人员', 'mode' => 1828118, ), array( 'type' => 8, 'name' => '监管人员', 'mode' => 1828128, ) ); $roles = []; foreach ($initarr as $k=>$v){ $roles[$k]['name'] = $v['name']; $rolesId = gtspdb('roles') ->where('mode','like',$v['mode'].'%') ->where('MODE','<>',$v['mode']) ->where('ORG_ID',$this->spOrgId) ->column('ROLES_ID'); $roles[$k]['ids'] = $rolesId; } foreach ($roles as $k=>$v){ $roles[$k]['value'] = gtspdb('user_roles') ->alias('ur') ->join('user u','u.USER_ID=ur.USER_ID') ->whereIn('ur.ROLES_ID',$v['ids']) ->where('u.DEL_REF',0) ->count(); } }elseif($this->orgId == 24){ $roles = bjydb('roles') ->field('id,name') ->where('parent_id',0) ->whereIn('id',[5,6,7,8,9,11]) ->where('type',1) ->where('del',0) ->where('enable',1) ->select(); foreach ($roles as $k=>$v){ $roles[$k]['ids'] = bjydb('roles') ->where('parent_id',$v['id']) ->where('type',1) ->where('del',0) ->where('enable',1) ->where('org_id',$this->bjOrgId) ->column('id'); } foreach ($roles as $k=>$v){ $roles[$k]['value'] = bjydb('user_roles') ->alias('ur') ->join('user u','u.id=ur.user_id') ->whereIn('ur.roles_id',$v['ids']) ->where('u.del',0) ->count(); } }elseif($this->orgId == 26){ $roles = xcydb('roles') ->field('id,name') ->where('parent_id',0) ->whereIn('id',[5,6,7,8,9,11]) ->where('type',1) ->where('del',0) ->where('enable',1) ->select(); foreach ($roles as $k=>$v){ $roles[$k]['ids'] = xcydb('roles') ->where('parent_id',$v['id']) ->where('type',1) ->where('del',0) ->where('enable',1) ->where('org_id',$this->xcOrgId) ->column('id'); } foreach ($roles as $k=>$v){ $roles[$k]['value'] = xcydb('user_roles') ->alias('ur') ->join('user u','u.id=ur.user_id') ->whereIn('ur.roles_id',$v['ids']) ->where('u.del',0) ->count(); } }else{ $roles = Db::name('roles') ->field('id,name') ->where('parent_id',0) ->whereIn('id',[5,6,7,8,9,11]) ->where('type',1) ->where('del',0) ->where('enable',1) ->select(); foreach ($roles as $k=>$v){ $roles[$k]['ids'] = Db::name('roles') ->where('parent_id',$v['id']) ->where('type',1) ->where('del',0) ->where('enable',1) ->where('org_id',$this->orgId) ->column('id'); } foreach ($roles as $k=>$v){ $roles[$k]['value'] = Db::name('user_roles') ->alias('ur') ->join('user u','u.id=ur.user_id') ->whereIn('ur.roles_id',$v['ids']) ->where('u.del',0) ->count(); } } HelpHander::success($roles); } public function workTypeModeList(){ if($this->orgId == 3){ $map[] = ['ORG_ID','=',$this->spOrgId]; $map[] = ['CREATE_TIME','>=',date('Y-m').'-01 00:00:00']; $map[] = ['CREATE_TIME','<=',date('Y-m').'-31 23:59:59']; $map[] = ['DEL_REF','=',0]; $count = gtspdb('todo')->where($map)->count(); $bj = gtspdb('todo')->where('WORK_TYPE_MODE',2)->where($map)->count(); $ys = gtspdb('todo')->where('WORK_TYPE_MODE',3)->where($map)->count(); $bx = gtspdb('todo')->where('WORK_TYPE_MODE',1)->where($map)->count(); $yh = gtspdb('todo')->where('WORK_TYPE_MODE',4)->where($map)->count(); $data = [ 'title'=>['总数','保洁','运送','保修','隐患',], 'list'=>[ $count,$bj,$ys,$bx,$yh], ]; }elseif($this->orgId == 24){ $map[] = ['org_id','=',$this->bjOrgId]; $map[] = ['create_time','>=',date('Y-m').'-01 00:00:00']; $map[] = ['create_time','<=',date('Y-m').'-31 23:59:59']; $count = bjydb('todo')->where($map)->count(); $bj = bjydb('todo')->where('work_type_mode',2)->where('del',0)->where($map)->count(); $ys = bjydb('todo')->where('work_type_mode',3)->where('del',0)->where($map)->count(); $bx = bjydb('todo')->where('work_type_mode',1)->where('del',0)->where($map)->count(); $yh = bjydb('todo')->where('work_type_mode',4)->where('del',0)->where($map)->count(); $ph = bjydb('ph_todo')->where($map)->count(); $data = [ 'title'=>['总数','保洁','运送','保修','隐患','陪护'], 'list'=>[ $count+$ph,$bj,$ys,$bx,$yh,$ph], ]; }elseif($this->orgId == 26){ $map[] = ['org_id','=',$this->xcOrgId]; $map[] = ['create_time','>=',date('Y-m').'-01 00:00:00']; $map[] = ['create_time','<=',date('Y-m').'-31 23:59:59']; $count = xcydb('todo')->where($map)->count(); $bj = xcydb('todo')->where('work_type_mode',2)->where('del',0)->where($map)->count(); $ys = xcydb('todo')->where('work_type_mode',3)->where('del',0)->where($map)->count(); $bx = xcydb('todo')->where('work_type_mode',1)->where('del',0)->where($map)->count(); $yh = xcydb('todo')->where('work_type_mode',4)->where('del',0)->where($map)->count(); $ph = xcydb('ph_todo')->where($map)->count(); $data = [ 'title'=>['总数','保洁','运送','保修','隐患','陪护'], 'list'=>[ $count+$ph,$bj,$ys,$bx,$yh,$ph], ]; }else{ $map[] = ['org_id','=',$this->orgId]; $map[] = ['create_time','>=',date('Y-m').'-01 00:00:00']; $map[] = ['create_time','<=',date('Y-m').'-31 23:59:59']; $count = Db::name('todo')->where($map)->count(); $bj = Db::name('todo')->where('work_type_mode',2)->where('del',0)->where($map)->count(); $ys = Db::name('todo')->where('work_type_mode',3)->where('del',0)->where($map)->count(); $bx = Db::name('todo')->where('work_type_mode',1)->where('del',0)->where($map)->count(); $yh = Db::name('todo')->where('work_type_mode',4)->where('del',0)->where($map)->count(); $ph = Db::name('ph_todo')->where($map)->count(); $data = [ 'title'=>['总数','保洁','运送','保修','隐患','陪护'], 'list'=>[ $count+$ph,$bj,$ys,$bx,$yh,$ph], ]; } HelpHander::success($data); } public function userCommentScoreList(){ if($this->orgId == 3){ $user = gtspdb('comment') ->field('USER_ID') ->where('ORG_ID',$this->spOrgId) ->group('USER_ID') ->select(); foreach ($user as $k=>$v){ $user[$k]['score'] = gtspdb('comment') ->where('USER_ID',$v['USER_ID']) ->sum('SCORE'); $user[$k]['name'] = gtspdb('user')->where('USER_ID',$v['USER_ID'])->value('REAL_NAME'); $user[$k]['dep'] = gtspdb('user_org') ->alias('uo') ->join('org o','o.ORG_ID=uo.ORG_ID') ->where('uo.USER_ID',$v['USER_ID']) ->where('uo.ORG_TYPE',1) ->where('o.TYPE',3) ->value('NAME'); $roles = gtspdb('user_roles') ->alias('ur') ->join('roles r','r.ROLES_ID=ur.ROLES_ID') ->where('ur.USER_ID',$v['USER_ID']) ->value('r.NAME'); $user[$k]['roles'] = $roles ? $roles:''; // $task1 = gtspdb('patrol_task') // ->alias('pt') // ->join('patrol_record pr','pr.PATROL_TASK_ID=pt.PATROL_TASK_ID') // ->where('pr.USER_ID',$v['USER_ID']) // ->where('pt.STATUS',2) // ->where('pt.DEL_REF',0) // ->where('pr.ORG_ID',$this->spOrgId) // ->count(); $task1 = gtspdb('comment') ->where('USER_ID',$v['USER_ID']) ->count(); $taskCount = $task1; $user[$k]['task'] = $taskCount; } $list = list_sort_by($user,'score','desc'); $data = []; $host = request()->domain(true); foreach ($list as $k=>$v){ if(isset($k) && $k==0){ $top = ''; }elseif (isset($k) && $k==1){ $top = ''; }elseif (isset($k) && $k==2){ $top = ''; }else{ $top = 'TOP'.($k+1); } $data[] = [$top,$v['name'],$v['dep'],$v['roles'],$v['task'],$v['score']]; } }elseif($this->orgId == 24){ $user = bjydb('comment') ->field('user_id') ->where('org_id',$this->bjOrgId) ->group('user_id') ->select(); foreach ($user as $k=>$v){ $user[$k]['score'] = bjydb('comment') ->where('org_id',$this->bjOrgId) ->where('user_id',$v['user_id']) ->sum('score'); $user[$k]['name'] = bjydb('user')->where('id',$v['user_id'])->value('real_name'); $user[$k]['dep'] = bjydb('user_dep') ->alias('ud') ->join('dep d','d.id=ud.dep_id') ->where('ud.user_id',$v['user_id']) ->value('title'); $rolesId = bjydb('user_roles') ->alias('ur') ->join('roles r','r.id=ur.roles_id') ->where('ur.user_id',$v['user_id']) ->value('r.parent_id'); $user[$k]['roles'] = $rolesId ? bjydb('roles')->where('id',$rolesId)->value('name'):''; $user[$k]['task'] = bjydb('comment') ->where('org_id',$this->bjOrgId) ->where('user_id',$v['user_id']) ->count(); } $list = list_sort_by($user,'score','desc'); $data = []; $host = request()->domain(true); foreach ($list as $k=>$v){ if(isset($k) && $k==0){ $top = ''; }elseif (isset($k) && $k==1){ $top = ''; }elseif (isset($k) && $k==2){ $top = ''; }else{ $top = 'TOP'.($k+1); } $data[] = [$top,$v['name'],$v['dep'],$v['roles'],$v['task'],$v['score']]; } }elseif($this->orgId == 26){ $user = xcydb('comment') ->field('user_id') ->where('org_id',$this->xcOrgId) ->group('user_id') ->select(); foreach ($user as $k=>$v){ $user[$k]['score'] = xcydb('comment') ->where('org_id',$this->xcOrgId) ->where('user_id',$v['user_id']) ->sum('score'); $user[$k]['name'] = xcydb('user')->where('id',$v['user_id'])->value('real_name'); $user[$k]['dep'] = xcydb('user_dep') ->alias('ud') ->join('dep d','d.id=ud.dep_id') ->where('ud.user_id',$v['user_id']) ->value('title'); $rolesId = xcydb('user_roles') ->alias('ur') ->join('roles r','r.id=ur.roles_id') ->where('ur.user_id',$v['user_id']) ->value('r.parent_id'); $user[$k]['roles'] = $rolesId ? xcydb('roles')->where('id',$rolesId)->value('name'):''; $user[$k]['task'] = xcydb('comment') ->where('org_id',$this->xcOrgId) ->where('user_id',$v['user_id']) ->count(); } $list = list_sort_by($user,'score','desc'); $data = []; $host = request()->domain(true); foreach ($list as $k=>$v){ if(isset($k) && $k==0){ $top = ''; }elseif (isset($k) && $k==1){ $top = ''; }elseif (isset($k) && $k==2){ $top = ''; }else{ $top = 'TOP'.($k+1); } $data[] = [$top,$v['name'],$v['dep'],$v['roles'],$v['task'],$v['score']]; } }else{ $user = Db::name('comment') ->field('user_id') ->where('org_id',$this->orgId) ->group('user_id') ->select(); foreach ($user as $k=>$v){ $user[$k]['score'] = Db::name('comment') ->where('org_id',$this->orgId) ->where('user_id',$v['user_id']) ->sum('score'); $user[$k]['name'] = Db::name('user')->where('id',$v['user_id'])->value('real_name'); $user[$k]['dep'] = Db::name('user_dep') ->alias('ud') ->join('dep d','d.id=ud.dep_id') ->where('ud.user_id',$v['user_id']) ->value('title'); $rolesId = Db::name('user_roles') ->alias('ur') ->join('roles r','r.id=ur.roles_id') ->where('ur.user_id',$v['user_id']) ->value('r.parent_id'); $user[$k]['roles'] = $rolesId ? Db::name('roles')->where('id',$rolesId)->value('name'):''; // $task1 = Db::name('patrol_task') // ->alias('pt') // ->join('patrol_record pr','pr.patrol_task_id=pt.id') // ->where('pr.user_id',$v['user_id']) // ->where('pt.status',2) // ->where('pt.del',0) // ->where('pr.org_id',$this->orgId) // ->count(); // // $task2 = Db::name('device_task') // ->alias('dt') // ->join('device_record dr','dr.task_id=dt.id') // ->where('dr.user_id',$v['user_id']) // ->where('dt.status',2) // ->where('dt.del',0) // ->where('dr.org_id',$this->orgId) // ->count(); // // $task3 = Db::name('daily_task') // ->alias('dt') // ->join('daily_record dr','dr.task_id=dt.id') // ->where('dr.user_id',$v['user_id']) // ->where('dt.status',2) // ->where('dt.del',0) // ->where('dr.org_id',$this->orgId) // ->count(); // // $taskCount = $task1 + $task2 + $task3; $user[$k]['task'] = Db::name('comment') ->where('org_id',$this->orgId) ->where('user_id',$v['user_id']) ->count(); } $list = list_sort_by($user,'score','desc'); $data = []; $host = request()->domain(true); foreach ($list as $k=>$v){ if(isset($k) && $k==0){ $top = ''; }elseif (isset($k) && $k==1){ $top = ''; }elseif (isset($k) && $k==2){ $top = ''; }else{ $top = 'TOP'.($k+1); } $data[] = [$top,$v['name'],$v['dep'],$v['roles'],$v['task'],$v['score']]; } } HelpHander::success($data); } // 获取大屏紧急联系人或图片 public function getOrgInfo(){ $data = [ 'name' => model('Config')->getConfig('org_emergency_name',$this->orgId), 'phone' => model('Config')->getConfig('org_emergency_phone',$this->orgId), 'img' => model('Config')->getConfig('org_screen_img',$this->orgId) ]; HelpHander::success($data); } public function orgQuarterRankList(){ //获取当前季度 $season = ceil((date('n'))/3); //当前季度开始时间戳 $startTime = date('Y-m-d H:i:s', mktime(0,0,0,$season*3-3+1,1,date('Y'))); //获取当前季度结束时间戳 $overTime = date('Y-m-d H:i:s', mktime(23,59,59,$season*3,date('t',mktime(0,0,0,$season*3,1,date("Y"))),date('Y'))); $orgList = Db::name('org') ->field('id,name') ->where('type',2) ->where('enable',1) ->where('del',0) ->select(); foreach ($orgList as $k=>$v){ if($v['id'] == 3){ $orgList[$k]['count'] = gtspdb('comment') ->where('ORG_ID',$v['id']) ->where('CREATE_TIME','>=',$startTime) ->where('CREATE_TIME','<=',$overTime) ->sum('SCORE'); }elseif ($v['id'] == 24){ $orgList[$k]['count'] = bjydb('comment') ->where('org_id',$this->bjOrgId) ->where('create_time','>=',$startTime) ->where('create_time','<=',$overTime) ->sum('score'); }elseif ($v['id'] == 26){ $orgList[$k]['count'] = xcydb('comment') ->where('org_id',$this->xcOrgId) ->where('create_time','>=',$startTime) ->where('create_time','<=',$overTime) ->sum('score'); }else{ $orgList[$k]['count'] = Db::name('comment') ->where('org_id',$v['id']) ->where('create_time','>=',$startTime) ->where('create_time','<=',$overTime) ->sum('score'); } } $list = list_sort_by($orgList,'count','desc'); $curTop = 1; $curNums = 0; foreach ($list as $k=>$v){ if($v['id'] == $this->orgId){ $curTop = $k+1; $curNums = $v['count']; } } $data = [ 'my'=>['top'=>$curTop,'nums'=>$curNums], 'jn'=>['top'=>2,'nums'=>4.6], ]; HelpHander::success($data); } //任务数据总览 public function taskList(){ $mode = input('mode/d',3); if(!in_array($mode,[1,2,3,4])){ HelpHander::error('参数错误'); } if($this->orgId == 3){ $data = []; $header = ['状态', '类型', '始发地', '目的地', '需求时间', '执行人', '派工时间', '接收时间']; if($mode == 5){ $header = ['状态', '订单号', '类型', '护工', '下单时间']; $lists = Db::name('ph_orders') ->where('org_id',$this->orgId) ->where('status','in',[1,2]) ->order('id desc') ->field('id,sn,cate_id,status,create_time') ->limit(20) ->select(); foreach ($lists as $k=>$v){ $cate = Db::name('cate')->where('id',$v['cate_id'])->value('title'); $stxt = '新订单'; $users = ''; if($v['status'] == 2){ $stxt = '服务中'; $unames = Db::name('ph_todo') ->alias('t') ->join('worker w','t.worker_id = w.id') ->join('user u','u.id = w.user_id') ->where('t.order_id',$v['id']) ->where('t.status',1) ->column('real_name'); $users = $unames?implode(',',$unames):''; } $data[] = [$stxt,$v['sn'],$cate,$users,$v['create_time']]; } }else{ if($mode == 1){ $header = ['状态', '科室', '报修事项', '内容', '下单时间']; }else if($mode == 2||$mode == 4){ $header = ['状态', '科室', '内容', '下单时间']; } $lists = gtspdb('orders') ->where('ORG_ID',$this->spOrgId) ->where('CURR_ORDER_MODE','in',[1,5]) ->where('WORK_TYPE_MODE',$mode) ->where('DEL_REF',0) ->order('ORDER_ID DESC') ->limit(20) ->field('ORDER_ID,CURR_ORDER_MODE,CREATTE_TIME,SEND_TIME,CONTENT,DEP_ID') ->select(); foreach ($lists as $k=>$v){ $dep = gtspdb('org')->where('ORG_ID',$v['DEP_ID'])->value('NAME'); $status = gtspdb('order_mode')->where('ORDER_MODE',$v['CURR_ORDER_MODE'])->value('OUT_CONTENT'); if($mode == 1){ // 报修 $type = gtspdb('order_repair') ->alias('or') ->leftJoin('order_type ot','ot.ORDER_TYPE_ID = or.TYPE_ID') ->where('or.ORDER_ID',$v['ORDER_ID']) ->value('NAME'); $data[] = [$status,$dep,$type?$type:'',$v['CONTENT'],$v['CREATTE_TIME']]; }else if($mode == 3){ //运送 $convey = gtspdb('order_convey') ->alias('oc') ->join('convey_cate cc','cc.ID = oc.TYPE') ->where('oc.ORDER_ID',$v['ORDER_ID']) ->field('oc.*,cc.NAME as cate_title') ->find(); $sa = gtspdb('address')->where('ADDRESS_ID',$convey['START'])->find(); $sa1 = $ea1 = ''; if($sa){ $sa1 = gtspdb('address')->where('PARENT_ID',$sa['ADDRESS_ID'])->value('NAME'); } $start = $sa1.$sa['NAME']; $ea = gtspdb('address')->where('ADDRESS_ID',$convey['END'])->find(); if($ea){ $ea1 = gtspdb('address')->where('PARENT_ID',$sa['ADDRESS_ID'])->value('NAME'); } $end = $ea1.$ea['NAME']; $todos = gtspdb('todo') ->alias('t') ->join('user u','u.USER_ID = t.TO_USER_ID') ->where('t.ORDER_ID',$v['ORDER_ID']) ->where('t.DEL_REF',0) ->where('t.TODO_MODE','in',[1,2,3]) ->field('t.CONFIRM_TIME,u.REAL_NAME') ->select(); $todos = $todos?$todos:[]; $unames = []; $confirm = ''; foreach ($todos as $tk=>$tv){ $unames[] = $tv['REAL_NAME']; if(!$confirm){ $confirm = $tv['CONFIRM_TIME']; } } $un = $unames?implode(',',$unames):''; $send = $v['SEND_TIME']?date('H:i',strtotime($v['SEND_TIME'])):''; $xq = date('H:i',strtotime($convey['XQ_TIME'])); $confirm = $confirm?date('H:i',strtotime($confirm)):''; $data[] = [$status,$convey['cate_title'],$start,$end,$xq,$un,$send,$confirm]; }else{ // 保洁,隐患预警 $data[] = [$status,$dep,$v['CONTENT'],$v['CREATTE_TIME']]; } } } }elseif ($this->orgId == 24){ $data = []; $header = ['状态', '类型', '始发地', '目的地', '需求时间', '执行人', '派工时间', '接收时间']; if($mode == 1){ $header = ['状态', '科室', '报修事项', '内容', '下单时间']; }else if($mode == 2||$mode == 4){ $header = ['状态', '科室', '内容', '下单时间']; } $lists = bjydb('orders') ->where('org_id',$this->bjOrgId) ->where('order_mode','in',[1,4]) ->where('work_type_mode',$mode) ->where('del',0) ->order('id desc') ->limit(20) ->field('id,order_mode,create_time,send_time,content,dep_id') ->select(); foreach ($lists as $k=>$v){ $dep = bjydb('dep')->where('id',$v['dep_id'])->value('title'); $status = bjydb('order_mode')->where('id',$v['order_mode'])->value('out_content'); if($mode == 1){ // 报修 $type = bjydb('order_repair') ->alias('or') ->leftJoin('order_type ot','ot.id = or.type_id') ->where('or.order_id',$v['id']) ->value('title'); $data[] = [$status,$dep,$type?$type:'',$v['content'],$v['create_time']]; }else if($mode == 3){ //运送 $convey = bjydb('order_convey') ->alias('oc') ->join('convey_cate cc','cc.id = oc.type') ->where('oc.order_id',$v['id']) ->field('oc.*,cc.title as cate_title') ->find(); $start = bjydb('address')->where('id',$convey['start'])->value('title'); $end = bjydb('address')->where('id',$convey['end'])->value('title'); $todos = bjydb('todo') ->alias('t') ->join('user u','u.id = t.to_user_id') ->where('t.order_id',$v['id']) ->where('t.del',0) ->where('t.todo_mode','in',[1,2,3]) ->field('t.confirm_time,u.real_name') ->select(); $todos = $todos?$todos:[]; $unames = []; $confirm = ''; foreach ($todos as $tk=>$tv){ $unames[] = $tv['real_name']; if(!$confirm){ $confirm = $tv['confirm_time']; } } $un = $unames?implode(',',$unames):''; $send = $v['send_time']?date('H:i',strtotime($v['send_time'])):''; $xq = date('H:i',strtotime($convey['xq_time'])); $confirm = $confirm?date('H:i',strtotime($confirm)):''; $data[] = [$status,$convey['cate_title'],$start,$end,$xq,$un,$send,$confirm]; }else{ // 保洁,隐患预警 $data[] = [$status,$dep,$v['content'],$v['create_time']]; } } }elseif ($this->orgId == 26){ $data = []; $header = ['状态', '类型', '始发地', '目的地', '需求时间', '执行人', '派工时间', '接收时间']; if($mode == 1){ $header = ['状态', '科室', '报修事项', '内容', '下单时间']; }else if($mode == 2||$mode == 4){ $header = ['状态', '科室', '内容', '下单时间']; } $lists = xcydb('orders') ->where('org_id',$this->xcOrgId) ->where('order_mode','in',[1,4]) ->where('work_type_mode',$mode) ->where('del',0) ->order('id desc') ->limit(20) ->field('id,order_mode,create_time,send_time,content,dep_id') ->select(); foreach ($lists as $k=>$v){ $dep = xcydb('dep')->where('id',$v['dep_id'])->value('title'); $status = xcydb('order_mode')->where('id',$v['order_mode'])->value('out_content'); if($mode == 1){ // 报修 $type = xcydb('order_repair') ->alias('or') ->leftJoin('order_type ot','ot.id = or.type_id') ->where('or.order_id',$v['id']) ->value('title'); $data[] = [$status,$dep,$type?$type:'',$v['content'],$v['create_time']]; }else if($mode == 3){ //运送 $convey = xcydb('order_convey') ->alias('oc') ->join('convey_cate cc','cc.id = oc.type') ->where('oc.order_id',$v['id']) ->field('oc.*,cc.title as cate_title') ->find(); $start = xcydb('address')->where('id',$convey['start'])->value('title'); $end = xcydb('address')->where('id',$convey['end'])->value('title'); $todos = xcydb('todo') ->alias('t') ->join('user u','u.id = t.to_user_id') ->where('t.order_id',$v['id']) ->where('t.del',0) ->where('t.todo_mode','in',[1,2,3]) ->field('t.confirm_time,u.real_name') ->select(); $todos = $todos?$todos:[]; $unames = []; $confirm = ''; foreach ($todos as $tk=>$tv){ $unames[] = $tv['real_name']; if(!$confirm){ $confirm = $tv['confirm_time']; } } $un = $unames?implode(',',$unames):''; $send = $v['send_time']?date('H:i',strtotime($v['send_time'])):''; $xq = date('H:i',strtotime($convey['xq_time'])); $confirm = $confirm?date('H:i',strtotime($confirm)):''; $data[] = [$status,$convey['cate_title'],$start,$end,$xq,$un,$send,$confirm]; }else{ // 保洁,隐患预警 $data[] = [$status,$dep,$v['content'],$v['create_time']]; } } }else{ $data = []; $header = ['状态', '类型', '始发地', '目的地', '需求时间', '执行人', '派工时间', '接收时间']; if($mode == 5){ $header = ['状态', '订单号', '类型', '护工', '下单时间']; $lists = Db::name('ph_orders') ->where('org_id',$this->orgId) ->where('status','in',[1,2]) ->order('id desc') ->field('id,sn,cate_id,status,create_time') ->limit(20) ->select(); foreach ($lists as $k=>$v){ $cate = Db::name('cate')->where('id',$v['cate_id'])->value('title'); $stxt = '新订单'; $users = ''; if($v['status'] == 2){ $stxt = '服务中'; $unames = Db::name('ph_todo') ->alias('t') ->join('worker w','t.worker_id = w.id') ->join('user u','u.id = w.user_id') ->where('t.order_id',$v['id']) ->where('t.status',1) ->column('real_name'); $users = $unames?implode(',',$unames):''; } $data[] = [$stxt,$v['sn'],$cate,$users,$v['create_time']]; } }else{ if($mode == 1){ $header = ['状态', '科室', '报修事项', '内容', '下单时间']; }else if($mode == 2||$mode == 4){ $header = ['状态', '科室', '内容', '下单时间']; } $lists = Db::name('orders') ->where('org_id',$this->orgId) ->where('order_mode','in',[1,4]) ->where('work_type_mode',$mode) ->where('del',0) ->order('id desc') ->limit(20) ->field('id,order_mode,create_time,send_time,content,dep_id') ->select(); foreach ($lists as $k=>$v){ $dep = Db::name('dep')->where('id',$v['dep_id'])->value('title'); $status = Db::name('order_mode')->where('id',$v['order_mode'])->value('out_content'); if($mode == 1){ // 报修 $type = Db::name('order_repair') ->alias('or') ->leftJoin('order_type ot','ot.id = or.type_id') ->where('or.order_id',$v['id']) ->value('title'); $data[] = [$status,$dep,$type?$type:'',$v['content'],$v['create_time']]; }else if($mode == 3){ //运送 $convey = Db::name('order_convey') ->alias('oc') ->join('convey_cate cc','cc.id = oc.type') ->where('oc.order_id',$v['id']) ->field('oc.*,cc.title as cate_title') ->find(); $start = Db::name('address')->where('id',$convey['start'])->value('title'); $end = Db::name('address')->where('id',$convey['end'])->value('title'); $todos = Db::name('todo') ->alias('t') ->join('user u','u.id = t.to_user_id') ->where('t.order_id',$v['id']) ->where('t.del',0) ->where('t.todo_mode','in',[1,2,3]) ->field('t.confirm_time,u.real_name') ->select(); $todos = $todos?$todos:[]; $unames = []; $confirm = ''; foreach ($todos as $tk=>$tv){ $unames[] = $tv['real_name']; if(!$confirm){ $confirm = $tv['confirm_time']; } } $un = $unames?implode(',',$unames):''; $send = $v['send_time']?date('H:i',strtotime($v['send_time'])):''; $xq = date('H:i',strtotime($convey['xq_time'])); $confirm = $confirm?date('H:i',strtotime($confirm)):''; $data[] = [$status,$convey['cate_title'],$start,$end,$xq,$un,$send,$confirm]; }else{ // 保洁,隐患预警 $data[] = [$status,$dep,$v['content'],$v['create_time']]; } } } } HelpHander::success(['data'=>$data,'header'=>$header]); } public function wasteRecordList(){ $date = date('Ymd'); $edate = date("Ymd",strtotime("-1 months",strtotime($date))); if($this->orgId == 3){ $addr = gtspdb('waste_device') ->field('WASTE_DEVICE_ID,TITLE') ->where('DEL_REF',0) ->where('ENABLE',1) ->where('ORG_ID',$this->spOrgId) ->select(); foreach ($addr as $k=>$v){ $nums1 = gtspdb('waste_record') ->where('CREATE_YYYYMMDD',$date) ->where('WASTE_DEVICE_ID',$v['WASTE_DEVICE_ID']) ->sum('WEIGHT'); $addr[$k]['nums1'] = $nums1 ? round($nums1/1000,0) : 0; $nums2 = gtspdb('waste_record') ->where('CREATE_YYYYMM','=',$edate) ->where('WASTE_DEVICE_ID',$v['WASTE_DEVICE_ID']) ->sum('WEIGHT'); $addr[$k]['nums2'] = $nums2 ? round($nums2/30/1000,0) : 0; } $lists =array_slice(list_sort_by($addr,'nums1','desc'),0,5) ; $data1 = array_column($lists,'nums1'); $data2 = array_column($lists,'nums2'); $title = array_column($lists,'TITLE'); }elseif($this->orgId == 24){ $addr = bjydb('address') ->field('id,title') ->where('del',0) ->where('enable',1) ->where('org_id',$this->bjOrgId) ->where('','exp',Db::raw("FIND_IN_SET(7,types)")) ->select(); foreach ($addr as $k=>$v){ $nums1 = bjydb('waste_record') ->where('create_yyyymmdd','=',$date) ->where('waste_device_id',$v['id']) ->sum('weight'); $addr[$k]['nums1'] = $nums1 ? round($nums1/1000,0) : 0; $nums2 = bjydb('waste_record') ->where('create_yyyymm','=',$edate) ->where('waste_device_id',$v['id']) ->sum('weight'); $addr[$k]['nums2'] = $nums2 ? round($nums2/30/1000,0) : 0; } $lists =array_slice(list_sort_by($addr,'nums1','desc'),0,5) ; $data1 = array_column($lists,'nums1'); $data2 = array_column($lists,'nums2'); $title = array_column($lists,'title'); }elseif($this->orgId == 26){ $addr = xcydb('address') ->field('id,title') ->where('del',0) ->where('enable',1) ->where('org_id',$this->xcOrgId) ->where('','exp',Db::raw("FIND_IN_SET(7,types)")) ->select(); foreach ($addr as $k=>$v){ $nums1 = xcydb('waste_record') ->where('create_yyyymmdd','=',$date) ->where('waste_device_id',$v['id']) ->sum('weight'); $addr[$k]['nums1'] = $nums1 ? round($nums1/1000,0) : 0; $nums2 = xcydb('waste_record') ->where('create_yyyymm','=',$edate) ->where('waste_device_id',$v['id']) ->sum('weight'); $addr[$k]['nums2'] = $nums2 ? round($nums2/30/1000,0) : 0; } $lists =array_slice(list_sort_by($addr,'nums1','desc'),0,5) ; $data1 = array_column($lists,'nums1'); $data2 = array_column($lists,'nums2'); $title = array_column($lists,'title'); }else{ $addr = Db::name('address') ->field('id,title') ->where('del',0) ->where('enable',1) ->where('org_id',$this->orgId) ->where('','exp',Db::raw("FIND_IN_SET(7,types)")) ->select(); foreach ($addr as $k=>$v){ $nums1 = Db::name('waste_record') ->where('create_yyyymmdd','=',$date) ->where('waste_device_id',$v['id']) ->sum('weight'); $addr[$k]['nums1'] = $nums1 ? round($nums1/1000,0) : 0; $nums2 = Db::name('waste_record') ->where('create_yyyymm','=',$edate) ->where('waste_device_id',$v['id']) ->sum('weight'); $addr[$k]['nums2'] = $nums2 ? round($nums2/30/1000,0) : 0; } $lists =array_slice(list_sort_by($addr,'nums1','desc'),0,5) ; $data1 = array_column($lists,'nums1'); $data2 = array_column($lists,'nums2'); $title = array_column($lists,'title'); } $data = [ 'data1'=>$data1, 'data2'=>$data2, 'title'=>$title, ]; HelpHander::success($data); } // 巡更任务数据统计 当天及30天异常数量 public function addrRecord(){ //先取30内的巡更地点 $curDay = date('Ymd'); $start = date('Ymd',strtotime(date('Y-m-d')) - 29*24*60*60); if($this->orgId == 3||$this->orgId == 26){ $lists = gtspdb('patrol_record') ->alias('pr') ->join('patrol_addr a','a.PATROL_ADDR_ID = pr.PATROL_ADDR_ID') ->where('pr.ORG_ID',$this->spOrgId) ->where('pr.PATROL_MODE',4) ->where('pr.CREATE_YYYYMMDD','<=',$curDay) ->where('pr.CREATE_YYYYMMDD','>=',$start) ->field('a.PATROL_ADDR_ID,a.TITLE') ->group('pr.PATROL_ADDR_ID') ->distinct(true) ->select(); $titles = []; $y1 = []; $y2 = []; foreach ($lists as $k=>$v){ $titles[] = mb_substr($v['TITLE'],0,4).'..'; $count1 = gtspdb('patrol_record') ->where('ORG_ID',$this->spOrgId) ->where('PATROL_MODE',4) ->where('CREATE_YYYYMMDD','=',$curDay) ->where('PATROL_ADDR_ID','=',$v['PATROL_ADDR_ID']) ->count(); $y1[] = $count1; $count2 = gtspdb('patrol_record') ->where('ORG_ID',$this->spOrgId) ->where('PATROL_MODE',4) ->where('IS_NORMAL',1) ->where('CREATE_YYYYMMDD','<=',$curDay) ->where('CREATE_YYYYMMDD','>=',$start) ->where('PATROL_ADDR_ID','=',$v['PATROL_ADDR_ID']) ->count(); $y2[] = $count2; } }elseif($this->orgId == 24){ $lists = bjydb('patrol_record') ->alias('pr') ->join('address a','a.id = pr.patrol_addr_id') ->where('pr.org_id',$this->bjOrgId) ->where('pr.patrol_mode',1) ->where('pr.create_yyyymmdd','<=',$curDay) ->where('pr.create_yyyymmdd','>=',$start) ->field('a.id,a.title') ->group('pr.patrol_addr_id') ->distinct(true) ->select(); $titles = []; $y1 = []; $y2 = []; foreach ($lists as $k=>$v){ $titles[] = $v['title']; $count1 = bjydb('patrol_record') ->where('org_id',$this->bjOrgId) ->where('patrol_mode',1) ->where('create_yyyymmdd','=',$curDay) ->where('patrol_addr_id','=',$v['id']) ->count(); $y1[] = $count1; $count2 = bjydb('patrol_record') ->where('org_id',$this->bjOrgId) ->where('patrol_mode',1) ->where('is_normal',1) ->where('create_yyyymmdd','<=',$curDay) ->where('create_yyyymmdd','>=',$start) ->where('patrol_addr_id','=',$v['id']) ->count(); $y2[] = $count2; } }else{ $lists = Db::name('patrol_record') ->alias('pr') ->join('address a','a.id = pr.patrol_addr_id') ->where('pr.org_id',$this->orgId) ->where('pr.patrol_mode',1) ->where('pr.create_yyyymmdd','<=',$curDay) ->where('pr.create_yyyymmdd','>=',$start) ->field('a.id,a.title') ->group('pr.patrol_addr_id') ->distinct(true) ->select(); $titles = []; $y1 = []; $y2 = []; foreach ($lists as $k=>$v){ $titles[] = $v['title']; $count1 = Db::name('patrol_record') ->where('org_id',$this->orgId) ->where('patrol_mode',1) ->where('create_yyyymmdd','=',$curDay) ->where('patrol_addr_id','=',$v['id']) ->count(); $y1[] = $count1; $count2 = Db::name('patrol_record') ->where('org_id',$this->orgId) ->where('patrol_mode',1) ->where('is_normal',1) ->where('create_yyyymmdd','<=',$curDay) ->where('create_yyyymmdd','>=',$start) ->where('patrol_addr_id','=',$v['id']) ->count(); $y2[] = $count2; } } HelpHander::success(['titles' => $titles,'y1' => $y1,'y2' => $y2]); } //巡查图片 public function patrolImg(){ if($this->orgId == 3||$this->orgId == 26){ $data = gtspdb('patrol_record') ->where('IMAGES','<>','') ->where('ORG_ID',$this->spOrgId) ->limit(20) ->order('PATROL_RECORD_ID desc') ->select(); foreach ($data as $k=>$v){ $img = explode(',',$v['IMAGES']); if($img){ $data[$k]['images'] = $img[0]; } } }elseif($this->orgId == 24){ $data = bjydb('patrol_record') ->where('images','<>','') ->where('org_id',$this->bjOrgId) ->limit(20) ->order('id desc') ->select(); foreach ($data as $k=>$v){ $img = explode(',',$v['images']); if($img){ $data[$k]['images'] = $img[0]; } } }else{ $data = Db::name('patrol_record') ->where('images','<>','') ->where('org_id',$this->orgId) ->limit(20) ->order('id desc') ->select(); foreach ($data as $k=>$v){ $img = explode(',',$v['images']); if($img){ $data[$k]['images'] = $img[0]; } } } if(count($data)>3){ $key = array_rand($data,4); $list[] = $data[$key[0]]; $list[] = $data[$key[1]]; $list[] = $data[$key[2]]; $list[] = $data[$key[3]]; } $eList = isset($list)?$list:$data; HelpHander::success($eList); } public function patrolRecordList(){ $dlist = [ date('Y-m-d',strtotime('-6 days')), date('Y-m-d',strtotime('-5 days')), date('Y-m-d',strtotime('-4 days')), date('Y-m-d',strtotime('-3 days')), date('Y-m-d',strtotime('-2 days')), date('Y-m-d',strtotime('-1 days')), date('Y-m-d'), ]; $date = []; $yCount = []; $y2Count = []; $y3Count = []; $y4Count = []; if($this->orgId == 3){ foreach ($dlist as $k=>$v){ $tt = date('Ymd',strtotime($v)); $count = gtspdb('patrol_record') ->where('ORG_ID',$this->spOrgId) ->where('CREATE_YYYYMMDD',$tt) ->where('PATROL_MODE',1) ->count(); $count2 = gtspdb('patrol_record') ->where('ORG_ID',$this->spOrgId) ->where('CREATE_YYYYMMDD',$tt) ->where('PATROL_MODE',2) ->count(); $count3 = gtspdb('patrol_record') ->where('ORG_ID',$this->spOrgId) ->where('CREATE_YYYYMMDD',$tt) ->where('PATROL_MODE',3) ->count(); $count4 = gtspdb('patrol_record') ->where('ORG_ID',$this->spOrgId) ->where('CREATE_YYYYMMDD',$tt) ->where('PATROL_MODE',4) ->count(); $date[] = date('m-d',strtotime($v)); $yCount[] = $count; $y2Count[] = $count2; $y3Count[] = $count3; $y4Count[] = $count4; } }elseif($this->orgId == 24||$this->orgId == 26){ foreach ($dlist as $k=>$v){ $tt = date('Ymd',strtotime($v)); $count = bjydb('patrol_record') ->where('org_id',$this->bjOrgId) ->where('create_yyyymmdd',$tt) ->where('patrol_mode',1) ->count(); $count2 = bjydb('patrol_record') ->where('org_id',$this->bjOrgId) ->where('create_yyyymmdd',$tt) ->where('patrol_mode',2) ->count(); $count3 = bjydb('patrol_record') ->where('org_id',$this->bjOrgId) ->where('create_yyyymmdd',$tt) ->where('patrol_mode',3) ->count(); $count4 = bjydb('patrol_record') ->where('org_id',$this->bjOrgId) ->where('create_yyyymmdd',$tt) ->where('patrol_mode',4) ->count(); $date[] = date('m-d',strtotime($v)); $yCount[] = $count; $y2Count[] = $count2; $y3Count[] = $count3; $y4Count[] = $count4; } }else{ foreach ($dlist as $k=>$v){ $tt = date('Ymd',strtotime($v)); $count = Db::name('patrol_record') ->where('org_id',$this->orgId) ->where('create_yyyymmdd',$tt) ->where('patrol_mode',1) ->count(); $count2 =Db::name('patrol_record') ->where('org_id',$this->orgId) ->where('create_yyyymmdd',$tt) ->where('patrol_mode',2) ->count(); $count3 =Db::name('patrol_record') ->where('org_id',$this->orgId) ->where('create_yyyymmdd',$tt) ->where('patrol_mode',3) ->count(); $count4 =Db::name('patrol_record') ->where('org_id',$this->orgId) ->where('create_yyyymmdd',$tt) ->where('patrol_mode',4) ->count(); $date[] = date('m-d',strtotime($v)); $yCount[] = $count; $y2Count[] = $count2; $y3Count[] = $count3; $y4Count[] = $count4; } } $data = [ 'date'=>$date, 'count1'=>$yCount, 'count2'=>$y2Count, 'count3'=>$y3Count, 'count4'=>$y4Count, ]; HelpHander::success($data); } public function deviceNhImg(){ $host = request()->domain(true); $img = [ $host.'/screen/images/nh1.png', $host.'/screen/images/nh2.png', $host.'/screen/images/nh3.png', $host.'/screen/images/nh4.png', $host.'/screen/images/nh5.png', $host.'/screen/images/nh6.png', ]; if(count($img)>5){ $key = array_rand($img,6); $list[] = $img[$key[0]]; $list[] = $img[$key[1]]; $list[] = $img[$key[2]]; $list[] = $img[$key[3]]; $list[] = $img[$key[4]]; $list[] = $img[$key[5]]; } $eList = isset($list)?$list:$img; HelpHander::success($eList); } public function energyList(){ // $day = date('d'); // $dayList = []; // for ($i=1;$i<=$day;$i++){ // $dayList[] = $i; // } // $count1 = $count2 = []; // foreach ($dayList as $k=>$v){ // // $count1[] = 0; // $count2[] = 0; // } $dlist = [ date('Y-m-d',strtotime('-6 days')), date('Y-m-d',strtotime('-5 days')), date('Y-m-d',strtotime('-4 days')), date('Y-m-d',strtotime('-3 days')), date('Y-m-d',strtotime('-2 days')), date('Y-m-d',strtotime('-1 days')), date('Y-m-d'), ]; $title = []; foreach ($dlist as $k=>$v){ $title[] = date('m-d',strtotime($v)); } $data = [ 'date'=>$title, 'count1'=>[5,7,8,6,4,9,3], 'count2'=>[7,4,4,7,4,5,7], ]; HelpHander::success($data); } // 获取所有下级的id集合 public function getAllNextId($id,$data=[]){ $pids = DB::name('org')->where('parent_id',$id)->column('id'); if(count($pids)>0){ foreach($pids as $v){ $data[] = $v; $data = $this->getAllNextId($v,$data); //注意写$data 返回给上级 } } if(count($data)>0){ return $data; }else{ return []; } } public function patrolList(){ $orgId = $this->orgId; // $orgId = 23; $lists = Db::name('patrol_task') ->where('org_id',$orgId) ->where('del',0) ->where('start_time','<=',date('Y-m-d H:i:s',time()+12*60*60)) ->field('id,title,status') ->order('start_time desc,id desc') ->limit(20) ->select(); $lists = $lists?$lists:[]; $data = []; foreach ($lists as $k=>$v){ if($v['status'] == 0){ //0=未执行 1=执行中 2=已完成 3=未完成 5=中断 6=已关闭 $status = "未执行"; }else if($v['status'] == 1){ $status = "执行中"; }else if($v['status'] == 2){ $status = "已完成"; }else if($v['status'] == 3){ $status = "未完成"; }else if($v['status'] == 5){ $status = "中断"; }else{ $status = "已关闭"; } $users = Db::name('patrol_task_user') ->alias('a') ->join('user u','u.id = a.user_id') ->where('a.patrol_task_id',$v['id']) ->column('real_name'); $arr = [$v['title'],$status,$users?implode(',',$users):'']; $data[] = $arr; } HelpHander::success($data); } public function reservedList(){ $lists = Db::name('dinner_reserved') ->where('org_id',$this->orgId) ->where('del',0) ->field('type,title,start_time') ->order('start_time desc,id desc') ->limit(20) ->select(); $lists = $lists?$lists:[]; $data = []; foreach ($lists as $k=>$v){ $status = ""; if($v['type'] == 1){ //1=早餐 2=午餐 3=晚餐 $status = "早餐"; }else if($v['type'] == 2){ $status = "午餐"; }else if($v['type'] == 3){ $status = "晚餐"; } $arr = [$status,$v['title'],$v['start_time']]; $data[] = $arr; } HelpHander::success($data); } public function visitorList(){ $lists = Db::name('visitor_order') ->where('org_id',$this->orgId) ->where('del',0) ->where('type',2) ->field('name,access,create_time') ->order('id desc') ->limit(20) ->select(); $lists = $lists?$lists:[]; $data = []; foreach ($lists as $k=>$v){ $arr = [$v['name'],$v['access'],$v['create_time']]; $data[] = $arr; } HelpHander::success($data); } public function dailyList(){ // $zdid = -30; // $orgId = 23; // if($this->orgId == $zdid){ // $orgId = $this->orgId; // } $orgId = $this->orgId; $map[] = ['enable', '=', 1]; $map[] = ['org_id', '=', $orgId]; $map[] = ['del', '=', 0]; $lists = Db::name('daily')->where($map)->field('id,title')->order('id desc')->select(); // if($this->orgId == $zdid){ // $lists = Db::name('daily')->where($map)->field('id,title')->order('id desc')->select(); // }else{ // $lists = xcydb('daily')->where($map)->field('id,title')->order('id desc')->select(); // } $hours = model('Daily')->getTimeDaily($this->orgId); foreach ($lists as $k=>$v){ $m = []; $m[] = ['org_id','=',$orgId]; $m[] = ['daily_id','=',$v['id']]; $m[] = ['create_time','>=',$hours['start']]; $m[] = ['create_time','<',$hours['end']]; $count = Db::name('daily_record')->where($m)->count(); // if($this->orgId == $zdid){ // $count = Db::name('daily_record')->where($m)->count(); // }else{ // $count = xcydb('daily_record')->where($m)->count(); // } $lists[$k]['count'] = $count; } $lists = list_sort_by($lists,'count','desc'); if(count($lists) > 12){ $nlist = []; foreach ($lists as $k=>$v){ if(count($nlist) < 12){ $nlist[] = $v; } } HelpHander::success($nlist); }else{ HelpHander::success($lists); } } public function elevatorList(){ $this->orgId = 3; $info = Db::name('elevator_record')->where('org_id',$this->orgId)->field('id,img,type,eid,create_time')->order('id desc')->find(); if($info){ $title = Db::name('elevator')->where('id',$info['eid'])->value('title'); $info['title'] = $title; }else{ $info = [ 'title' => '', 'type' => '', 'createTime' => '', 'img' => '' ]; } HelpHander::success($info); } public function tossList(){ $this->orgId = 3; $info = Db::name('toss')->where('org_id',$this->orgId)->field('id,img,type,address as title,create_time')->order('id desc')->find(); if(!$info){ $info = [ 'title' => '', 'type' => '', 'createTime' => '', 'img' => '' ]; } HelpHander::success($info); } public function parkList(){ $this->orgId = 3; $info = Db::name('park_ill')->where('org_id',$this->orgId)->field('id,img,plate_sn as sn,address,create_time,video,order_id')->order('id desc')->find(); if(!$info){ $info = [ 'sn' => '', 'address' => '', 'createTime' => '', 'img' => '', 'video' => '', 'orderId' => 0 ]; } HelpHander::success($info); } public function getIcons(){ $icons1 = [ [ 'title' => '工程
报修', 'url' => config('app.screen_url').'/home?token='.think_encrypt('6|'.$this->orgId.'|'.time()), 'count' => 1, ], [ 'title' => '投诉
处理', 'url' => '', 'count' => 1, ], [ 'title' => '日常
工作', 'url' => config('app.screen_url').'/home?token='.think_encrypt('2|'.$this->orgId.'|'.time()), 'count' => 1, ], [ 'title' => '中央
运送', 'url' => config('app.screen_url').'/home?token='.think_encrypt('3|'.$this->orgId.'|'.time()), 'count' => 1, ], [ 'title' => '订单
管理', 'url' => '', 'count' => 1, ], [ 'title' => '隐患
上报', 'url' => '', 'count' => 1, ], [ 'title' => '会议室
预订', 'url' => '', 'count' => 2, ], [ 'title' => '绿化
养护', 'url' => '', 'count' => 1, ], ]; $icons2 = [ [ 'title' => '设备
台账', 'url' => '', 'count' => 1, ], [ 'title' => '品质
检查', 'url' => '', 'count' => 1, ], [ 'title' => '巡更
巡检', 'url' => config('app.screen_url').'/home?token='.think_encrypt('2|'.$this->orgId.'|'.time()), 'count' => 1, ], [ 'title' => '专项
保洁', 'url' => '', 'count' => 1, ], [ 'title' => '人员
考勤', 'url' => '', 'count' => 1, ], [ 'title' => '满意度
调查', 'url' => '', 'count' => 2, ], [ 'title' => '安全
保卫', 'url' => '', 'count' => 1, ], [ 'title' => '智慧
抢单', 'url' => '', 'count' => 1, ], [ 'title' => '垃圾
分类', 'url' => '', 'count' => 1, ], ]; $icons3 = [ [ 'title' => '医废
管理', 'url' => config('app.screen_url').'/home?token='.think_encrypt('4|'.$this->orgId.'|'.time()), 'count' => 1, ], [ 'title' => '医疗
陪护', 'url' => '', 'count' => 1, ], [ 'title' => ' 线上
订餐', 'url' => '', 'count' => 1, ], [ 'title' => '设备
监控', 'url' => '', 'count' => 1, ], [ 'title' => '耗材
管理', 'url' => '', 'count' => 1, ], [ 'title' => '中央运送
HIS/LIS对接', 'url' => '', 'count' => 3, ], [ 'title' => '医废监管
平台对接', 'url' => '', 'count' => 4, ], ]; HelpHander::success(['icons1'=>$icons1,'icons2'=>$icons2,'icons3'=>$icons3]); } public function canteen(){ // $weeks = [['product', '进场人次', '出场人次']]; // for ($i=7;$i>0;$i--){ // $day = date('Y-m-d',time() - $i*24*60*60); // $weeks[] = [$day,mt_rand(200,1000),mt_rand(300,1000)]; // } // $data = [ // 'in' => 413, // 'out' => 489, // 'source' => $weeks // ]; $weeks = [['product', '留样数']]; for ($i=7;$i>0;$i--){ $day = date('Y-m-d',time() - ($i-1)*24*60*60); $kin = Db::name('dinner_reserved')->where('org_id',$this->orgId)->where('del',0)->where('start_time',$day)->count(); $weeks[] = [$day,$kin]; } $in = Db::name('dinner_reserved')->where('org_id',$this->orgId)->where('del',0)->count(); $out = Db::name('dinner_health')->where('org_id',$this->orgId)->where('del',0)->where('enable',0)->where('end_time','<',date('Y-m-d'))->count(); $data = [ 'in' => $in, 'out' => $out, 'source' => $weeks ]; HelpHander::success($data); } /** * 任务列表 */ public function threejsdata(){ $map[] = ['type','in',[1,2]]; $map[] = ['org_id','=',$this->orgId]; $lists = Db::name('task')->where($map)->order('start_time desc')->select(); $lists = $lists?$lists:[]; $news = []; foreach ($lists as $k=>$v){ $arr = [ 'id' => $v['id'], 'start_time' => $v['start_time'], 'cate' => 0, 'content' => '', 'cate_title' => '', 'user_name' => '', ]; $arr['user_name'] = Db::name('user')->where('id',$v['user_id'])->value('real_name'); if($v['type'] == 1){ // 订单 $order = Db::name('todo')->where('todo_mode','in',[1,2])->where('del',0)->where('id',$v['bus_id'])->find(); if(!$order || $order['work_type_mode'] == 2 || $order['work_type_mode'] == 4){ continue; } $arr['status'] = $order['todo_mode'] == 1?0:1; if($order['work_type_mode'] == 1){ // 报修,检查是否有报修地点 $addressId = Db::name('order_repair')->where('order_id',$order['order_id'])->value('address_id'); $address = Db::name('address')->where('id',$addressId)->field('id,title,xyz')->find(); if(!$address){ continue; } $xyz = $address['xyz']?explode(',',$address['xyz']):[]; if(empty($xyz) || $xyz[0] == ''){ $address['xyz'] = []; }else{ $address['xyz'] = $xyz; } $arr['cate'] = 1; // 报修 $arr['cate_title'] = '报修'; $arr['address'] = $address; $arr['content'] = Db::name('orders')->where('id',$order['order_id'])->value('content'); } if($order['work_type_mode'] == 3){ // 运送 $addr = Db::name('order_convey')->where('order_id',$order['order_id'])->find(); if(!$addr){ continue; } $start = Db::name('address')->where('id',$addr['start'])->field('id,title,xyz')->find(); $xyz = $start['xyz']?explode(',',$start['xyz']):[]; if(empty($xyz) || $xyz[0] == ''){ $start['xyz'] = []; }else{ $start['xyz'] = $xyz; } $end = Db::name('address')->where('id',$addr['end'])->field('id,title,xyz')->find(); $xyz = $end['xyz']?explode(',',$end['xyz']):[]; if(empty($xyz) || $xyz[0] == ''){ $end['xyz'] = []; }else{ $end['xyz'] = $xyz; } $cateTitle = Db::name('convey_cate')->where('id',$addr['type'])->value('title'); $arr['cate'] = 2; // 运送 $arr['cate_title'] = '运送'; $arr['start'] = $start; $arr['end'] = $end; $arr['content'] = '从'.$start['title'].'至'.$end['title'].'执行'.$cateTitle.'任务'; } }else{ // 巡更 $ptask = Db::name('patrol_task')->where('status','in',[0,1])->where('del',0)->where('id',$v['bus_id'])->find(); if(!$ptask){ continue; } $arr['content'] = $ptask['title']; $arr['status'] = $ptask['status']; if($ptask['patrol_mode'] == 1){ // 巡更 $arr['cate'] = 3; $arr['cate_title'] = '巡更'; }else if($ptask['patrol_mode'] == 2){ //巡视 $arr['cate'] = 4; $arr['cate_title'] = '巡视'; }else if($ptask['patrol_mode'] == 3){ //巡查 $arr['cate'] = 5; $arr['cate_title'] = '巡查'; }else{ // 巡检 $arr['cate'] = 6; $arr['cate_title'] = '巡检'; } $addrids = Db::name('patrol_task_addr') ->where('patrol_task_id',$ptask['id']) ->column('address_id'); $addrs = Db::name('address')->where('id','in',$addrids)->field('id,title,xyz')->select(); $addrs = $addrs?$addrs:[]; foreach ($addrs as $kk=>$vv){ $xyz = $vv['xyz']?explode(',',$vv['xyz']):[]; if(empty($xyz) || $xyz[0] == ''){ $addrs[$kk]['xyz'] = []; }else{ $addrs[$kk]['xyz'] = $xyz; } } $arr['addrs'] = $addrs; } $news[] = $arr; } $addrList = Db::name('convey_plan_record')->where('org_id',$this->orgId)->field('addr_id,count(*) as count')->group('addr_id')->distinct(true)->select(); $addrList = $addrList?$addrList:[]; $newaddrs = []; foreach ($addrList as $k=>$v){ $title = Db::name('address')->where('id',$v['addr_id'])->value('title'); $newaddrs[] = [$title,$v['count']]; } $data = [ 'task' => $news, 'addrs' => $newaddrs ]; HelpHander::success($data); } }