where('create_yyyymmdd',$day) ->where('org_id',$this->orgId) ->where('del',0) ->where('work_type_mode',2) ->count(); // 今日保洁总数 $bxCount = Db::name('orders') ->where('create_yyyymmdd',$day) ->where('org_id',$this->orgId) ->where('del',0) ->where('work_type_mode',1) ->count(); // 今日报修总数 $count = Db::name('orders') ->where('org_id',$this->orgId) ->where('work_type_mode','in',[1,2]) ->count(); // 今日报修和保洁总数 $todo = Db::name('todo') ->where('create_yyyymmdd',$day) ->where('org_id',$this->orgId) ->where('del',0) ->where('work_type_mode','in',[1,2]) ->count(); // 今日工单总数 $finishtodo = Db::name('todo') ->where('create_yyyymmdd',$day) ->where('org_id',$this->orgId) ->where('del',0) ->where('todo_mode',3) ->where('work_type_mode','in',[1,2]) ->count(); // 今日工单总数 $bl = $todo > 0?round(($finishtodo/$todo)*100,1):0; $data = [ 'count' => $count, 'bjCount' => $bjCount, 'bxCount' => $bxCount, 'todo' => $todo, 'bl' => $bl."%", ]; HelpHander::success($data); } // 今日未完成的维修单 public function wxorders(){ $day = date('Ymd'); $lists = Db::name('orders') ->alias('a') ->join('order_repair b','a.id = b.order_id') ->join('address c','c.id = b.address_id') ->where('a.create_yyyymmdd',$day) ->where('a.org_id',$this->orgId) ->where('a.del',0) ->where('b.address_id','>',0) ->whereNotNull('c.ueid') ->field('a.id,a.order_mode,a.content,a.images,c.ueid,c.title') ->order('a.id desc') ->select(); $ueids = []; $nlist = []; $ordermodes = Db::name('order_mode')->select(); foreach ($lists as $k=>$v){ if(!in_array($v['ueid'],$ueids)){ $ueids[] = $v['ueid']; // 获取状态 $ordermodetext = ""; foreach ($ordermodes as $ok=>$ov){ if($ov['id'] == $v['order_mode']){ $ordermodetext = $ov['out_content']; break; } } if($v['order_mode'] == 4){ $todo = Db::name('todo') ->alias('a') ->join('user u','a.to_user_id = u.id') ->join('todo_mode b','a.todo_mode = b.id') ->where('a.order_id',$v['id']) ->where('a.todo_mode','in',[1,2,3,4]) ->field('a.id,b.out_content,u.real_name') ->find(); if($todo){ $ordermodetext = "[".$todo['real_name']."]".$todo['out_content']; } } $v['order_mode_text'] = $ordermodetext; $v['images'] = empty($v['images'])?[]:explode(",",$v['images']); $nlist[] = $v; } } HelpHander::success($nlist); } // 项目任务数据分析 public function ordertj(){ $mode = input('mode/d',1); // 1=维修 2=保洁 $type = input('type/d',1); // 1=日统计 2=月统计 $eday = date("Y-m-d"); $sday = date("Y-m-d",time() - 6*24*60*60); if($type == 1){ $dates = getDateFromRange($sday, $eday); }else{ $dates = get_month_last(); } $x = []; $y1 = []; $y2 = []; foreach ($dates as $k=>$v){ $map = []; $map[] = ['org_id','=',$this->orgId]; $map[] = ['work_type_mode','=',$mode]; if($type == 1){ $d = date('Ymd',strtotime($v)); $map[] = ['create_yyyymmdd','=',$d]; $x[] = date('m-d',strtotime($v)); }else{ $d = date('Ym',strtotime($v)); $map[] = ['create_yyyymm','=',$d]; $x[] = date('Y-m',strtotime($v)); } $map[] = ['del','=',0]; $orders = Db::name('orders')->where($map)->count(); $todos = Db::name('todo')->where($map)->count(); $y1[] = $orders; $y2[] = $todos; } HelpHander::success(['x'=>$x,'y1'=>$y1,'y2'=>$y2]); } // 热点耗材数据分析 public function mates(){ $map[] = ['b.org_id','=',$this->orgId]; $lists = Db::name('todo_mate_item') ->alias('a') ->join('todo_mate b','a.todo_mate_id = b.id') ->where($map) ->field('sum(a.total) as total,a.items_id') ->group('a.items_id') ->order('total desc') ->limit(4) ->select(); $i = 1; foreach ($lists as $k=>$v){ $lists[$k]['total'] = intval($v['total']); $title = Db::name('mate_items')->where('id',$v['items_id'])->value('title'); $lists[$k]['title'] = $title?$title:''; $lists[$k]['rank'] = $i; $i++; } HelpHander::success($lists); } // 保洁网格化管理 public function daily(){ $map[] = ['enable', '=', 1]; $map[] = ['org_id', '=', $this->orgId]; $map[] = ['del', '=', 0]; $lists = Db::name('daily')->where($map)->field('id,title')->orderRand()->limit(4)->select(); $hours = model('Daily')->getTimeDaily($this->orgId); foreach ($lists as $k=>$v){ $m = []; $m[] = ['org_id','=',$this->orgId]; $m[] = ['daily_id','=',$v['id']]; $m[] = ['create_time','>=',$hours['start']]; $m[] = ['create_time','<',$hours['end']]; $count = Db::name('daily_record')->where($m)->count(); $lists[$k]['count'] = $count; } HelpHander::success($lists); } // 实时任务总览 public function todos(){ $map[] = ['org_id','=',$this->orgId]; $map[] = ['del','=',0]; $map[] = ['work_type_mode','in',[1,2]]; $map[] = ['order_mode','in',[1,4]]; $lists = Db::name('orders')->where($map)->limit(3)->order('id desc')->select(); $nlist = []; foreach ($lists as $k=>$v){ $work_text = $v['work_type_mode'] == 1?"维修任务":"保洁任务"; $order_mode_text = "待处理"; $users = ""; if($v['order_mode'] == 4){ $order_mode_text = "处理中"; $ulist = Db::name('todo') ->alias('a') ->join('user b','a.to_user_id = b.id') ->where('a.order_id',$v['id']) ->where('a.todo_mode','in',[1,2,3,4]) ->column('b.real_name'); if($ulist){ $users = implode(',',$ulist); } } $nlist[] = [ 'work_text' => $work_text, 'order_mode_text' => $order_mode_text, 'users' => $users, 'content' => $v['content'], ]; } HelpHander::success($nlist); } }