where('del',0) ->where('create_yyyymmdd',date('Ymd')) ->where('work_type_mode',2) ->count(); $bjCount2 = Db::name('todo') ->where('del',0) ->where('todo_mode',3) ->where('create_yyyymmdd',date('Ymd')) ->where('work_type_mode',2) ->count(); //报修 $bxCount = Db::name('todo') ->where('del',0) ->where('create_yyyymmdd',date('Ymd')) ->where('work_type_mode',1) ->count(); $bxCount2 = Db::name('todo') ->where('del',0) ->where('todo_mode',3) ->where('create_yyyymmdd',date('Ymd')) ->where('work_type_mode',1) ->count(); //隐患 $yhCount = Db::name('todo') ->where('del',0) ->where('create_yyyymmdd',date('Ymd')) ->where('work_type_mode',4) ->count(); $yhCount2 = Db::name('todo') ->where('del',0) ->where('todo_mode',3) ->where('create_yyyymmdd',date('Ymd')) ->where('work_type_mode',4) ->count(); //运送 $ysCount = Db::name('todo') ->where('del',0) ->where('create_yyyymmdd',date('Ymd')) ->where('work_type_mode',3) ->count(); $ysCount2 = Db::name('todo') ->where('del',0) ->where('todo_mode',3) ->where('create_yyyymmdd',date('Ymd')) ->where('work_type_mode',3) ->count(); //陪护 $phCount = Db::name('ph_todo') ->where('create_time','>=',date('Y-m-d').' 00:00:00') ->where('create_time','<=',date('Y-m-d').' 23:59:59') ->count(); $phCount2 = Db::name('ph_todo') ->where('create_time','>=',date('Y-m-d').' 00:00:00') ->where('create_time','<=',date('Y-m-d').' 23:59:59') ->where('status',2) ->count(); $data = [ 'bj'=>$bjCount.'/'.$bjCount2, 'bx'=>$bxCount.'/'.$bxCount2, 'yh'=>$yhCount.'/'.$yhCount2, 'ys'=>$ysCount.'/'.$ysCount2, 'ph'=>$phCount.'/'.$phCount2, ]; HelpHander::success($data); } //任务数据总览 public function taskList(){ $mode = input('mode/d',1); if(!in_array($mode,[1,2,3,4,5])){ HelpHander::error('参数错误'); } $data = []; $header = ['状态', '任务类型', '始发地', '目的地', '需求时间', '执行人', '接单时间', '完成时间']; if($mode == 5){ $header = ['状态', '开始时间', '结束时间', '工作天数', '创建时间']; $todo = Db::name('ph_todo') ->where('org_id',$this->orgId) // ->where('status','in',[1,2]) ->order('id desc') ->limit(30) ->select(); foreach ($todo as $k=>$v){ $data[$k]['status'] = $v['status']; $data[$k]['start'] = date('H:i',strtotime($v['start'])); $data[$k]['end'] = date('H:i',strtotime($v['end'])); $data[$k]['day'] = $v['day']; $data[$k]['create_time'] = date('H:i',strtotime($v['create_time'])); } }else{ if($mode == 1){ $header = ['状态', '执行人', '报修事项', '内容', '接单时间','完成时间']; }else if($mode == 2||$mode == 4){ $header = ['状态', '执行人', '内容', '接单时间','完成时间']; } $todo = Db::name('todo') ->where('org_id',$this->orgId) ->where('work_type_mode',$mode) ->where('del',0) ->order('id desc') ->limit(30) ->field('id,order_id,to_user_id,todo_mode,create_time,confirm_time,todo_content,done_time') ->select(); foreach ($todo as $k=>$v){ $userName = Db::name('user')->where('id',$v['to_user_id'])->value('real_name'); if($mode == 1){ // 报修 $type = Db::name('order_repair') ->alias('or') ->leftJoin('order_type ot','ot.id = or.type_id') ->where('or.order_id',$v['order_id']) ->value('title'); $data[$k]['todo_mode'] = $v['todo_mode']; $data[$k]['user_name'] = $userName?$userName:''; $data[$k]['type'] = $type?$type:''; $data[$k]['content'] = $v['todo_content']; $data[$k]['confirm_time'] = $v['confirm_time']?date('H:i',strtotime($v['confirm_time'])):''; $data[$k]['done_time'] = $v['done_time']?date('H:i',strtotime($v['done_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['order_id']) ->field('oc.*,cc.title as cate_title') ->find(); $userName = Db::name('user')->where('id',$v['to_user_id'])->value('real_name'); $start = Db::name('address')->where('id',$convey['start'])->value('title'); $end = Db::name('address')->where('id',$convey['end'])->value('title'); $data[$k]['todo_mode'] = $v['todo_mode']; $data[$k]['type'] = $convey?$convey['cate_title']:''; $data[$k]['start'] = $start?$start:''; $data[$k]['end'] = $end?$end:''; $data[$k]['xq_time'] = $convey?date('H:i',strtotime($convey['xq_time'])):''; $data[$k]['user_name'] = $userName?$userName:''; $data[$k]['confirm_time'] = $v['confirm_time']?date('H:i',strtotime($v['confirm_time'])):''; $data[$k]['done_time'] = $v['done_time']?date('H:i',strtotime($v['done_time'])):''; }else{ // 保洁,应急 $data[$k]['todo_mode'] = $v['todo_mode']; $data[$k]['user_name'] = $userName?$userName:''; $data[$k]['content'] = $v['todo_content']; $data[$k]['confirm_time'] = $v['confirm_time']?date('H:i',strtotime($v['confirm_time'])):''; $data[$k]['done_time'] = $v['done_time']?date('H:i',strtotime($v['done_time'])):''; } } } $lists = []; if($mode == 1){ foreach ($data as $k=>$v){ $status = Db::name('todo_mode')->where('id',$v['todo_mode'])->value('out_content'); if($v['todo_mode'] == 1){ $lists[$k][] = '新订单'; $lists[$k][] = ''.$v['user_name'].''; $lists[$k][] = ''.$v['type'].''; $lists[$k][] = ''.$v['content'].''; $lists[$k][] = ''.$v['confirm_time'].''; $lists[$k][] = ''.$v['done_time'].''; }else if($v['todo_mode'] == 2){ $lists[$k][] = '进行中'; $lists[$k][] = ''.$v['user_name'].''; $lists[$k][] = ''.$v['type'].''; $lists[$k][] = ''.$v['content'].''; $lists[$k][] = ''.$v['confirm_time'].''; $lists[$k][] = ''.$v['done_time'].''; }else{ $lists[$k][] = $status; $lists[$k][] = $v['user_name']; $lists[$k][] = $v['type']; $lists[$k][] = $v['content']; $lists[$k][] = $v['confirm_time']; $lists[$k][] = $v['done_time']; } } }else if($mode == 2 || $mode == 4){ foreach ($data as $k=>$v){ $status = Db::name('todo_mode')->where('id',$v['todo_mode'])->value('out_content'); if($v['todo_mode'] == 1){ $lists[$k][] = '新订单'; $lists[$k][] = ''.$v['user_name'].''; $lists[$k][] = ''.$v['content'].''; $lists[$k][] = ''.$v['confirm_time'].''; $lists[$k][] = ''.$v['done_time'].''; }else if($v['todo_mode'] == 2){ $lists[$k][] = '进行中'; $lists[$k][] = ''.$v['user_name'].''; $lists[$k][] = ''.$v['content'].''; $lists[$k][] = ''.$v['confirm_time'].''; $lists[$k][] = ''.$v['done_time'].''; }else{ $lists[$k][] = $status; $lists[$k][] = $v['user_name']; $lists[$k][] = $v['content']; $lists[$k][] = $v['confirm_time']; $lists[$k][] = $v['done_time']; } } }else if($mode == 3){ foreach ($data as $k=>$v){ $status = Db::name('todo_mode')->where('id',$v['todo_mode'])->value('out_content'); if($v['todo_mode'] == 1){ $lists[$k][] = '新订单'; $lists[$k][] = ''.$v['type'].''; $lists[$k][] = ''.$v['start'].''; $lists[$k][] = ''.$v['end'].''; $lists[$k][] = ''.$v['xq_time'].''; $lists[$k][] = ''.$v['user_name'].''; $lists[$k][] = ''.$v['confirm_time'].''; $lists[$k][] = ''.$v['done_time'].''; }elseif($v['todo_mode'] == 2){ $lists[$k][] = '进行中'; $lists[$k][] = ''.$v['type'].''; $lists[$k][] = ''.$v['start'].''; $lists[$k][] = ''.$v['end'].''; $lists[$k][] = ''.$v['xq_time'].''; $lists[$k][] = ''.$v['user_name'].''; $lists[$k][] = ''.$v['confirm_time'].''; $lists[$k][] = ''.$v['done_time'].''; }else{ $lists[$k][] = $status; $lists[$k][] = $v['type']; $lists[$k][] = $v['start']; $lists[$k][] = $v['end']; $lists[$k][] = $v['xq_time']; $lists[$k][] = $v['user_name']; $lists[$k][] = $v['confirm_time']; $lists[$k][] = $v['done_time']; } } }else if($mode == 5){ foreach ($data as $k=>$v){ $status = ''; if($v['status'] == 0){ $status = '作废'; }else if($v['status'] == 1){ $status = '服务中'; }else if($v['status'] == 2){ $status = '已结束'; } $lists[$k][] = $status; $lists[$k][] = $v['start']; $lists[$k][] = $v['end']; $lists[$k][] = $v['day']; $lists[$k][] = $v['create_time']; } } HelpHander::success(['data'=>$lists,'header'=>$header]); } //今日工单总数 //项目工单总数 //项目订单总数 //项目任务总数 public function todoCountData(){ $todayCount = Db::name('todo') ->where('del',0) ->where('org_id',$this->orgId) ->where('create_yyyymmdd',date('Ymd')) ->count(); $todoCount = Db::name('todo') ->where('del',0) ->where('org_id',$this->orgId) ->count(); $orderCount = Db::name('orders') ->where('del',0) ->where('org_id',$this->orgId) ->count(); $task1 = Db::name('device_task') ->where('del',0) ->where('org_id',$this->orgId) ->count(); $task2 = Db::name('patrol_task') ->where('del',0) ->where('org_id',$this->orgId) ->count(); $taskCount = $task1+$task2; $data = [ 'todayCount'=>$todayCount, 'todoCount'=>$todoCount, 'orderCount'=>$orderCount, 'taskCount'=>$taskCount, ]; HelpHander::success($data); } public function todayTodoData(){ $date = date('Ymd'); $count = Db::name('todo') ->where('create_yyyymmdd',$date) ->where('del',0) ->count(); $count2 = Db::name('todo') ->where('create_yyyymmdd',$date) ->where('del',0) ->where('todo_mode',3) ->count(); $map[] = ['del','=',0]; $map[] = ['create_yyyymmdd','=',$date]; $bjCount = Db::name('todo')->where('work_type_mode',2)->where($map)->count(); $bj = Db::name('todo')->where('work_type_mode',2)->where('todo_mode',3)->where($map)->count(); $ysCount = Db::name('todo')->where('work_type_mode',3)->where($map)->count(); $ys = Db::name('todo')->where('work_type_mode',3)->where('todo_mode',3)->where($map)->count(); $bxCount = Db::name('todo')->where('work_type_mode',1)->where($map)->count(); $bx = Db::name('todo')->where('work_type_mode',1)->where('todo_mode',3)->where($map)->count(); $yhCount = Db::name('todo')->where('work_type_mode',4)->where($map)->count(); $yh = Db::name('todo')->where('work_type_mode',4)->where('todo_mode',3)->where($map)->count(); $bl = $bjBl = $ysBl = $bxBl = $yhBl = 0; if($count > 0){ $bl = round($count2/$count*100,0); } if($bjCount >0){ $bjBl = round($bj/$bjCount*100,0); } if($ysCount >0){ $ysBl = round($ys/$ysCount*100,0); } if($bxCount >0){ $bxBl = round($bx/$bxCount*100,0); } if($yhCount >0){ $yhBl = round($yh/$yhCount*100,0); } $count3 = 0; if($count == 0){ $count3 = 100; }else{ $count3 = $count - $count2; } $data = [ 'count'=>$count, 'bl'=>$bl, 'bjBl'=>$bjBl, 'bj'=>$bj, 'ysBl'=>$ysBl, 'ys'=>$ys, 'bxBl'=>$bxBl, 'bx'=>$bx, 'yhBl'=>$yhBl, 'yh'=>$yh, 'list'=>[ ['value'=>$count2], ['value'=>$count3], ] ]; HelpHander::success($data); } }