model = new \app\common\model\Orders(); } public function lists() { $page = input('page', 1); $size = input('size', 10); $type = input('curOrderMode', 0); $list = $this->model->lists($page, $size, $type, $this->userId, $this->orgId); HelpHander::success($list); } public function detail() { $orderId = input('orderId', 0); $info = $this->model->detail($orderId); HelpHander::success($info); } //获取部门 public function getDep() { $list = model('dep')->getList($this->orgId); HelpHander::success($list); } //发起订单 public function add() { $json = [ 'user_id'=>$this->userId, 'org_id'=>$this->orgId, 'dep_id'=>input('depId/d',0), 'images'=>input('images',''), 'videos'=>input('videos',''), 'voices'=>input('voices',''), 'content'=>input('content',''), 'work_type_mode'=>input('workTypeMode/d',1), 'source_type'=>input('sourceType/d',1), 'type_id'=>input('typeId/d',0), 'address_id'=>input('addressId/d',0), 'start'=>input('start',''), 'end'=>input('end',''), 'xq_time'=>input('xqTime',''), 'ywc_time'=>input('ywcTime',''), 'type'=>input('type',''), 'device_id'=>input('deviceId',''), 'priority'=>input('priority',''), 'bed_number'=>input('bedNumber',''), 'ba_number'=>input('baNumber',''), 'p_name'=>input('pName',''), 'gender'=>input('gender',''), 'back'=>input('back',''), 'name'=>input('name',''), 'phone'=>input('phone',''), 'isSpontaneous'=>input('isSpontaneous',0), 'repair_priority'=>input('repairPriority',2), 'way_addr'=>input('wayAddr','','trim'), ]; $res = $this->model->addSave($json); if (!$res) { HelpHander::error($this->model->getError()); } HelpHander::success('操作成功'); } //调度发单 public function dispatchAdd() { $json = [ 'user_id'=>$this->userId, 'org_id'=>$this->orgId, 'dep_id'=>input('depId/d',0), 'images'=>input('images',''), 'videos'=>input('videos',''), 'voices'=>input('voices',''), 'content'=>input('content',''), 'work_type_mode'=>input('workTypeMode/d',1), 'userType'=>input('userType/d',0), 'to_user_id'=>input('toUserId',''), 'to_roles_id'=>input('toRolesId/d',0), 'type_id'=>input('typeId/d',0), 'address_id'=>input('addressId/d',0), 'source_type'=>input('sourceType/d',1), 'todo_content'=>input('todoContent',''), 'start'=>input('start',''), 'end'=>input('end',''), 'xq_time'=>input('xqTime',''), 'ywc_time'=>input('ywcTime',''), 'type'=>input('type',''), 'device_id'=>input('deviceId',''), 'priority'=>input('priority',''), 'bed_number'=>input('bedNumber',''), 'ba_number'=>input('baNumber',''), 'p_name'=>input('pName',''), 'gender'=>input('gender',''), 'back'=>input('back',''), 'name'=>input('name',''), 'phone'=>input('phone',''), 'daily_record_id'=>input('dailyRecordId/d',0), // 品质整改,日常工作记录id 'repair_priority'=>input('repairPriority',1), 'quality_type'=>input('qualityType/d',0), 'quality_cate'=>input('qualityCate/d',0), 'informer_user'=>input('informerUser/d',0), 'way_addr'=>input('wayAddr','','trim'), ]; $res = $this->model->addSave($json, 1); if (!$res) { HelpHander::error($this->model->getError()); } HelpHander::success('操作成功'); } //分配订单 public function send(){ $json = [ 'org_id'=>$this->orgId, 'id'=>input('id/d',0), 'userType'=>input('userType/d',0), 'to_user_id'=>input('toUserId',''), 'to_roles_id'=>input('toRolesId/d',0), 'type_id'=>input('typeId/d',0), 'address_id'=>input('addressId/d',0), 'todo_content'=>input('todoContent',''), 'work_type_mode'=>input('workTypeMode/d',-1), 'ba_number'=>input('baNumber','','trim'), 'back'=>input('back/d',0), 'bed_number'=>input('bedNumber','','trim'), 'device_id'=>input('deviceId/d',0), 'start'=>input('start/d',0), 'end'=>input('end/d',0), 'gender'=>input('gender/d',0), 'name'=>input('name','','trim'), 'phone'=>input('phone','','trim'), 'p_name'=>input('pName','','trim'), 'priority'=>input('priority/d',0), 'type'=>input('type/d',0), 'xq_time'=>input('xqTime','','trim'), 'ywc_time'=>input('ywcTime','','trim'), 'repair_priority'=>input('repairPriority','','trim'), ]; $res = model('orders')->send($json['id'],$this->userId,$json); if(!$res){ HelpHander::error(model('orders')->getError()); } HelpHander::success('操作成功'); } //转单分配订单 public function zdSend(){ $json = [ 'org_id'=>$this->orgId, 'id'=>input('id/d',0), 'type_id'=>input('typeId/d',0), 'address_id'=>input('addressId/d',0), 'todo_content'=>input('todoContent',''), 'work_type_mode'=>input('workTypeMode/d',-1), 'ba_number'=>input('baNumber','','trim'), 'back'=>input('back/d',0), 'bed_number'=>input('bedNumber','','trim'), 'device_id'=>input('deviceId/d',0), 'start'=>input('start/d',0), 'end'=>input('end/d',0), 'gender'=>input('gender/d',0), 'name'=>input('name','','trim'), 'phone'=>input('phone','','trim'), 'p_name'=>input('pName','','trim'), 'priority'=>input('priority/d',0), 'type'=>input('type/d',0), 'xq_time'=>input('xqTime','','trim'), 'ywc_time'=>input('ywcTime','','trim'), 'repair_priority'=>input('repairPriority','','trim'), ]; $res = model('orders')->zd_send($json['id'],$json); if(!$res){ HelpHander::error(model('orders')->getError()); } HelpHander::success('操作成功'); } //任务栏工单列表 public function queryOrderList() { $page = input('page', 1); $size = input('size', 10); $type = input('type', 0); $offset = ($page-1)*$size; $workType = [ 1 => '报修工单', 2 => '保洁工单', 3 => '运送工单', 4 => '应急工单', 15 => '品质整改', 0 => '一键呼叫', ]; $patrolStatus = [ 0 => '未执行', 1 => '执行中', 2 => '已完成', 3 => '未完成', 5 => '中断', ]; $list = []; $orgGrabOrder = getOrgGrabOrder($this->userId,$this->orgId); if(in_array($type,[1,2])){ if($type==1){//已完成 $map[] = ['todo_mode','=',3]; $map[] = ['to_user_id','=',$this->userId]; $map[] = ['del','=',0]; $map[] = ['org_id','=',$this->orgId]; $todoList = Db::name('todo') ->where($map) ->limit($offset,$size) ->order('id','desc') ->select(); }elseif ($type==2){//已评价 $todoList = Db::name('orders') ->alias('a') ->join('todo b','a.id=b.order_id') ->where('a.order_mode',6) ->where('a.del',0) ->where('a.org_id',$this->orgId) ->where('b.to_user_id',$this->userId) ->field('b.*') ->group('b.order_id') ->limit($offset,$size) ->order('b.id','desc') ->select(); } foreach ($todoList as $k=>$todoInfo){ $data['todo_id'] = $todoInfo['id']; $data['sn'] = $todoInfo['sn']; $data['title'] = $workType[$todoInfo['work_type_mode']]; $data['realName'] = Db::name('user') ->where('id', $todoInfo['create_user_id']) ->value('real_name'); $data['create_time'] = $todoInfo['create_time']; $data['status_txt'] = Db::name('todo_mode') ->where('id', $todoInfo['todo_mode']) ->value('out_content'); $data['start_time'] = ""; $data['end_time'] = ""; $data['type'] = 1; $data['bus_id'] = 0; $orderInfo = Db::name('orders') ->where('id',$todoInfo['order_id']) ->find(); if($orderInfo['from'] > 0){ $from = ''; if($orderInfo['from'] == 1){ $from = '一键呼叫'; }else if($orderInfo['from'] == 2){ $from = '隐患预警'; }else if($orderInfo['from'] == 3){ $from = '投诉'; } $data['title'] = $data['title'].'('.$from.')'; } $data['patrol_mode'] = 0; $data['status'] = $todoInfo['todo_mode']; $data['work_type_mode'] = $orderInfo['work_type_mode']; if($data['work_type_mode'] == 1 && $todoInfo['todo_mode'] == 2 && $todoInfo['pause'] == 1){ //维修,检查是否挂起 $data['status_txt'] = '已挂起'; } $data['addressTitle'] = ""; $data['typeName'] = ""; $data['content'] = $orderInfo['content']?$orderInfo['content']:''; $data['startName'] = ""; $data['endName'] = ""; if($orderInfo['work_type_mode']==1){ $typeInfo = (new \app\common\model\OrderType()) ->getTypeByOrderId($orderInfo['id']); if($typeInfo){ $order_type = $typeInfo && isset($typeInfo['title']) ? $typeInfo['title'] : ''; $order_type_matter = $typeInfo && isset($typeInfo['child_title']) ? $typeInfo['child_title'] : ''; $data['typeName'] = $order_type.'/'.$order_type_matter; $data['addressTitle'] = $typeInfo ? $typeInfo['address_title'] : ''; } } $data['color'] =''; if($orderInfo['work_type_mode']==3){ $oc = Db::name('order_convey') ->where('order_id', $orderInfo['id']) ->find(); if($oc){ $start_name = Db::name('address')->where('id',$oc['start']) ->value('title'); $end_name = Db::name('address')->where('id',$oc['end']) ->value('title'); $data['startName'] = $start_name?$start_name:""; $data['endName'] = $end_name?$end_name:""; $convey = Db::name('convey_cate') ->alias('oc') ->join('time ot', 'ot.id = oc.time_id') ->where('oc.id', $oc['type']) ->field('ot.*') ->find(); $createtime = strtotime($orderInfo['create_time']); $curtime = time(); $ct = round(($curtime - $createtime) / 60); $ss = 0; if ($ct >= $convey['yy_time']) { if ($ct >= $convey['yy_time'] && $ct < $convey['bz_time']) { $ss = 1; } else { if ($ct >= $convey['bz_time'] && $ct < $convey['jg_time']) { $ss = 2; } else { if ($ct >= $convey['jg_time'] && $ct < $convey['wjjg_time']) { $ss = 3; } else { $ss = 4; } } } } // $delay = 0; // $delays = Db::name('order_delay') // ->where('order_id', $orderInfo['id']) // ->select(); // $delays = $delays ? $delays : []; // foreach ($delays as $vv) { // if ($vv['status'] == 0) { // $delay = 1; // } // } // if ($delay == 1) { // $status = 3; // } else { // if ($orderInfo['order_mode'] == 1) { // $status = 1; // } else { // $status= 2; // } // } if($ss == 1){ $data['color'] = '#acb3d8'; }else if($ss == 2){ $data['color'] = '#fff500'; }else if($ss == 3){ $data['color'] = '#ec891a'; }else if($ss == 4){ $data['color'] = '#e45946'; }else{ $data['color'] = ''; } } } $data['priority'] = 0; $list[] = $data; } $r = [ 'list' => $list, 'count' => count($list), 'org_grab_order'=>$orgGrabOrder?(int)$orgGrabOrder:0 ]; HelpHander::success($r); } $task = Db::name('task') ->where('user_id', $this->userId) ->where('org_id', $this->orgId) ->where('type', 1) ->limit($offset,$size) ->order(['priority'=>'desc','id'=>'desc']) ->select(); foreach ($task as $k => $value) { if ($value['type'] == 1) {//工单 $todoInfo = Db::name('todo') ->where('id', $value['bus_id']) ->where('del',0) ->find(); if (!empty($todoInfo)) { $data['sn'] = $todoInfo['sn']; $data['title'] = $workType[$todoInfo['work_type_mode']]; $data['realName'] = Db::name('user') ->where('id', $todoInfo['create_user_id']) ->value('real_name'); $data['create_time'] = $todoInfo['create_time']; $data['status_txt'] = Db::name('todo_mode') ->where('id', $todoInfo['todo_mode']) ->value('out_content'); $data['start_time'] = ""; $data['end_time'] = ""; $data['type'] = 1; $data['bus_id'] = $value['bus_id']; $orderInfo = Db::name('orders') ->where('id',$todoInfo['order_id']) ->find(); if($orderInfo['from'] > 0){ $from = ''; if($orderInfo['from'] == 1){ $from = '一键呼叫'; }else if($orderInfo['from'] == 2){ $from = '隐患预警'; }else if($orderInfo['from'] == 3){ $from = '投诉'; } $data['title'] = $data['title'].'('.$from.')'; } $data['patrol_mode'] = 0; $data['status'] = $todoInfo['todo_mode']; $data['work_type_mode'] = $orderInfo['work_type_mode']; if($data['work_type_mode'] == 1 && $todoInfo['todo_mode'] == 2 && $todoInfo['pause'] == 1){ //维修,检查是否挂起 $data['status_txt'] = '已挂起'; } $data['addressTitle'] = ""; $data['typeName'] = ""; $data['content'] = $orderInfo['content']?$orderInfo['content']:''; $data['startName'] = ""; $data['endName'] = ""; if($orderInfo['work_type_mode']==1){ $typeInfo = (new \app\common\model\OrderType()) ->getTypeByOrderId($orderInfo['id']); if($typeInfo){ $order_type = $typeInfo && isset($typeInfo['title']) ? $typeInfo['title'] : ''; $order_type_matter = $typeInfo && isset($typeInfo['child_title']) ? $typeInfo['child_title'] : ''; $data['typeName'] = $order_type.'/'.$order_type_matter; $data['addressTitle'] = $typeInfo ? $typeInfo['address_title'] : ''; } } $data['color'] =''; $data['start_status'] = 0; if($orderInfo['work_type_mode']==3){ $oc = Db::name('order_convey') ->where('order_id', $orderInfo['id']) ->find(); if($oc){ $start_name = Db::name('address')->where('id',$oc['start']) ->value('title'); $end_name = Db::name('address')->where('id',$oc['end']) ->value('title'); $data['startName'] = $start_name?$start_name:""; $data['endName'] = $end_name?$end_name:""; $convey = Db::name('convey_cate') ->alias('oc') ->join('time ot', 'ot.id = oc.time_id') ->where('oc.id', $oc['type']) ->field('ot.*') ->find(); $createtime = strtotime($orderInfo['create_time']); $curtime = time(); $ct = round(($curtime - $createtime) / 60); $ss = 0; if ($ct >= $convey['yy_time']) { if ($ct >= $convey['yy_time'] && $ct < $convey['bz_time']) { $ss = 1; } else { if ($ct >= $convey['bz_time'] && $ct < $convey['jg_time']) { $ss = 2; } else { if ($ct >= $convey['jg_time'] && $ct < $convey['wjjg_time']) { $ss = 3; } else { $ss = 4; } } } } // $delay = 0; // $delays = Db::name('order_delay') // ->where('order_id', $orderInfo['id']) // ->select(); // $delays = $delays ? $delays : []; // foreach ($delays as $vv) { // if ($vv['status'] == 0) { // $delay = 1; // } // } // if ($delay == 1) { // $status = 3; // } else { // if ($orderInfo['order_mode'] == 1) { // $status = 1; // } else { // $status= 2; // } // } if($ss == 1){ $data['color'] = '#acb3d8'; }else if($ss == 2){ $data['color'] = '#fff500'; }else if($ss == 3){ $data['color'] = '#ec891a'; }else if($ss == 4){ $data['color'] = '#e45946'; }else{ $data['color'] = ''; } } $todo_convey = Db::name('todo_convey') ->where('todo_id',$todoInfo['id']) ->find(); $start_status = isset($todo_convey['start_time'])&& !empty($todo_convey['start_time'])?1:0; $data['start_status'] = $start_status; } $data['priority'] = $value['priority']; $list[] = $data; } } elseif($value['type'] == 2) {//巡更巡检 $patrolInfo = Db::name('patrol_task') ->where('id', $value['bus_id']) ->find(); if (!empty($patrolInfo)) { $title = Db::name('patrol_mode') ->where('id', $patrolInfo['patrol_mode']) ->value('name'); $data['title'] = $patrolInfo['title']?$title.'-'.$patrolInfo['title']:$title; $data['realName'] = ""; $data['create_time'] = $patrolInfo['create_time']; $data['status_txt'] = $patrolStatus[$patrolInfo['status']]; $data['start_time'] = $patrolInfo['start_time']; $data['end_time'] = $patrolInfo['end_time']; $data['bus_id'] = $value['bus_id']; $data['type'] = 2; $data['work_type_mode'] = 0; $data['patrol_mode'] = $patrolInfo['patrol_mode']; $data['status'] = $patrolInfo['status']; $data['addressTitle'] = ""; $data['typeName'] = ""; $data['content'] = ''; $data['startName'] = ""; $data['endName'] = ""; $data['priority'] = $value['priority']; $list[] = $data; } }elseif ($value['type'] == 3){ // 日常工作 $dailyInfo = Db::name('daily_task') ->where('id', $value['bus_id']) ->find(); if (!empty($dailyInfo)) { $data['title'] = '日常工作'; $data['realName'] = ""; $data['create_time'] = $dailyInfo['create_time']; $data['status_txt'] = $patrolStatus[$dailyInfo['status']]; $data['start_time'] = $dailyInfo['start_time']; $data['end_time'] = $dailyInfo['end_time']; $data['bus_id'] = $value['bus_id']; $data['type'] = 3; $data['work_type_mode'] = 0; $data['patrol_mode'] = 0; $data['status'] = $dailyInfo['status']; $data['addressTitle'] = ""; $data['typeName'] = ""; $data['content'] = ''; $data['startName'] = ""; $data['endName'] = ""; $data['priority'] = $value['priority']; $list[] = $data; } }elseif ($value['type'] == 4){ // 设备台账 $deviceInfo = Db::name('device_task') ->where('id', $value['bus_id']) ->find(); if (!empty($deviceInfo)) { $data['title'] = $deviceInfo['title']? '设备维保'.'-'.$deviceInfo['title']:'设备维保'; $data['realName'] = ""; $data['create_time'] = $deviceInfo['create_time']; $data['status_txt'] = $patrolStatus[$deviceInfo['status']]; $data['start_time'] = $deviceInfo['start_time']; $data['end_time'] = $deviceInfo['end_time']; $data['bus_id'] = $value['bus_id']; $data['type'] = 4; $data['work_type_mode'] = 0; $data['patrol_mode'] = 0; $data['status'] = $deviceInfo['status']; $data['addressTitle'] = ""; $data['typeName'] = ""; $data['content'] = ''; $data['startName'] = ""; $data['endName'] = ""; $data['priority'] = $value['priority']; $list[] = $data; } } } $r = [ 'list' => $list, 'count' => count($list), 'org_grab_order'=>$orgGrabOrder?(int)$orgGrabOrder:0 ]; HelpHander::success($r); } //抢单列表 public function queryGrabOrders(){ $page = input('page', 1); $size = input('size', 10); $list = $this->model->queryGrabOrders($page,$size,$this->userId,$this->orgId); HelpHander::success($list); } // 抢单 public function grabOrders(){ $orderId = input('orderId'); $orderType = input('orderType/d',0); $addressId = input('addressId/d',0); $order = Db::name('orders') ->where('id',$orderId) ->where('org_id',$this->orgId) ->find(); if($order['work_type_mode']==1 && empty($orderType)){ HelpHander::error('报修事项不能为空'); } if(!$order || $order['del'] == 1){ HelpHander::error('订单不存在'); } if($order['order_mode'] != 1){ HelpHander::error('订单已被处理'); } $off = (new Config())->getConfig('org_grab_order'.$order['work_type_mode'],$this->orgId); if($off !=1){ HelpHander::error('抢单模式未开启'); } $ret = $this->model->grabOrdersEdit($order,$this->userId,$orderType,$addressId); if(!$ret){ HelpHander::error($this->model->getError()); } HelpHander::success([],'操作成功'); } // 扫标本 public function scanSample(){ $orderId = input('orderId/d',0); $barcode = input('barcode'); $addrId = input('addrId/d',0); if(!$barcode ){ HelpHander::error('未传标本码'); } if(!$orderId&&!$addrId){ HelpHander::error('参数错误'); } if($orderId > 0){ $orderConvey = Db::name('order_convey') ->where('order_id',$orderId) ->find(); $addrId = $orderConvey['start']; } $res = Db::name('order_convey_lis') ->where('org_id',$this->orgId) ->where('order_id',$orderId) ->where('barcode',$barcode) ->where('user_id',$this->userId) ->where('addr_id',$addrId) ->find(); Db::startTrans(); try{ if($res){ $res = Db::name('order_convey_lis') ->where('id',$res['id'])->update([ 'create_time' => date('Y-m-d H:i:s') ]); }else{ $res = Db::name('order_convey_lis') ->insert([ 'order_id' => $orderId, 'barcode' => $barcode, 'user_id' => $this->userId, 'create_time' => date('Y-m-d H:i:s'), 'org_id' => $this->orgId, 'addr_id' => $addrId ]); } if(!$res){ exception('操作失败'); } Db::commit(); HelpHander::success([],'操作成功'); }catch (Exception $e){ Db::rollback(); HelpHander::error($e->getMessage()); } } //用户订单列表 public function queryUserOrdersByMode(){ $page = input('page', 1); $size = input('size', 10); $mode = input('mode', 0); $type = input('type', 0); $ret=$this->model->userOrdersByMode($page,$size,$this->userId,$mode,$type,$this->orgId); HelpHander::success($ret); } //用户取消订单 public function updateOrderModeByUser(){ $orderId = input('orderId', 0); $reason = input('reason', '','trim'); $ret=$this->model->cancel($orderId,$this->userId,1,$reason); $ret?HelpHander::success([],'操作成功'):HelpHander::error($this->model->getError()); } //调度取消订单 public function updateOrderModeByDispatch(){ $orderId = input('orderId', 0); $reason = input('reason', ''); if(!$reason){ HelpHander::error('请填写取消原因'); } $ret=$this->model->cancel($orderId,$this->userId,2,$reason); $ret?HelpHander::success([],'操作成功'):HelpHander::error($this->model->getError()); } //调度完成订单 public function finishOrder(){ $orderId = input('orderId', 0); $ret=$this->model->finish($orderId); $ret?HelpHander::success([],'操作成功'):HelpHander::error($this->model->getError()); } //所有订单 public function queryAllOrder(){ $page = input('page', 1); $size = input('size', 10); $workTypeMode = input('workTypeMode/d',-1); $currOrderMode = input('currOrderMode'); $beginTime = input('beginTime'); $endTime = input('endTime'); $list = $this->model->queryAllOrder($this->orgId,$page,$size,$workTypeMode,$currOrderMode,$beginTime,$endTime); HelpHander::success($list); } // 工人添加下一站地址 public function addConveyEnd(){ $orderId = input('orderId/d',0); $addrId = input('addrId/d',0); $ret = $this->model->addConveyEnd($this->orgId,$orderId,$addrId); if(!$ret){ HelpHander::error($this->model->getError()); } HelpHander::success([],'成功'); } // 支付运送病人 public function pay(){ $id = input('id/d',0); $remark = input('remark','','trim'); $info = Db::name('order_convey_pay')->where('id',$id)->find(); if(!$info){ HelpHander::error('订单不存在'); } if($info['status'] == 1){ HelpHander::error('订单已支付'); } $res = Db::name('order_convey_pay')->where('id',$id)->update([ 'type' => 1, 'status' => 1, 'remark' => $remark, 'pay_time' => date('Y-m-d H:i:s') ]); if($res){ HelpHander::success([],'操作成功'); }else{ HelpHander::error('操作失败'); } } // 扫途径地点 public function sweepCode(){ $code = input('code'); $id = input('id/d',0); $num = input('num/d',0); $img = input('img',''); $ret = model('Orders')->sweepCode($code,$id,$num,$img,$this->orgId,$this->userId); if(!$ret){ HelpHander::error(model('Orders')->getError()); } HelpHander::success([],'操作成功'); } //获取可转单类型 public function orderTransferType(){ $user = Db::name('user')->where('id',$this->userId)->find(); $config = model('Config')->getConfig('web_order_transfer_type'); $modes = $config?explode('|',$config):[]; if($user['type'] != 1){ // 不是总公司人员 $roles = Db::name('user_roles') ->alias('a') ->join('roles b','b.id = a.roles_id') ->where('a.user_id',$this->userId) ->value('work_type_mode'); if($roles){ $modes = explode(',',$roles); } } $map[] = ['type','=',1]; if($modes){ $map[] = ['id','in',$modes]; }else{ $map[] = ['id','=',-1]; } $workType = Db::name('work_type_mode') ->where($map) ->field('id,name as title') ->select(); HelpHander::success($workType?$workType:[]); } //获取待处理已完成已评价订单数量 public function getOrdersCount(){ $map[] = ['user_id','=',$this->userId]; $map[] = ['org_id','=',$this->orgId]; $map[] = ['del','=',0]; $a1 = Db::name('orders') ->where($map) ->where('order_mode',1) ->count(); $dcl = $a1?$a1:0; $a2 = Db::name('orders') ->where($map) ->where('order_mode',5) ->count(); $ywc = $a2?$a2:0; $a3 = Db::name('orders') ->where($map) ->where('order_mode',6) ->count(); $ypj = $a3?$a3:0; $data = [ 'dcl'=>$dcl, 'ywc'=>$ywc, 'ypj'=>$ypj, ]; HelpHander::success($data); } //被驳回的数量 public function rejectCount(){ $map[] = ['org_id', '=', $this->orgId]; $map[] = ['del', '=', 0]; $map2[] = ['todo_mode', '=', 4]; $auth = get_dispatch_auth($this->userId); if (empty($auth)) { $map[] = ['work_type_mode', '=', -1]; } else { $map[] = ['work_type_mode', 'in', $auth]; } $org_two_dispatch = (new Config())->getConfig('org_two_dispatch',$this->orgId); if($org_two_dispatch==0){//二级调度开关关闭 }else{ if (check_two_dispatch($this->userId) == 1) {//二级调度角色 $roles_id = Db::name('user_roles') ->where('user_id',$this->userId) ->value('roles_id'); $ids = Db::name('dispatch_log') ->where('roles_id', $roles_id) ->whereOr('to_user_id', $this->userId) ->column('order_id'); if (empty($ids)) { $map2[] = ['order_id', '=', -1]; }else { $map2[] = ['order_id', 'in', $ids]; } } } $count = Db::name('todo_view') ->where($map) ->where($map2) ->count(); HelpHander::success($count); } //优先级 public function repair_priority(){ $a = [ ['id'=>1,'title'=>"可延缓的"], ['id'=>2,'title'=>"普通"], ['id'=>3,'title'=>"紧急"], ]; HelpHander::success($a); } public function userQualityLists() { $page = input('page', 1); $size = input('size', 10); $list = $this->model->userQualityLists($page, $size, $this->userId, $this->orgId); HelpHander::success($list); } public function informerQualityLists() { $page = input('page', 1); $size = input('size', 10); $list = $this->model->informerQualityLists($page, $size, $this->userId, $this->orgId); HelpHander::success($list); } //巡更巡视..一键呼叫发送给自己转成报修单; public function addBxOrders(){ $data = [ 'user_id'=>$this->userId, 'org_id'=>$this->orgId, 'dep_id'=>input('depId/d',0), 'images'=>input('images',''), 'videos'=>input('videos',''), 'voices'=>input('voices',''), 'content'=>input('content',''), 'work_type_mode'=>input('workTypeMode/d',1), 'source_type'=>input('sourceType/d',4), 'type_id'=>input('typeId',0), 'address_id'=>input('addressId',0), 'repair_priority'=>input('repairPriority',0), ]; $res = model('Orders')->addBxOrders($data); if (!$res) { HelpHander::error(model('Orders')->getError()); } HelpHander::success([],'操作成功'); } public function withdraw(){ $id = input('id'); $info = Db::name('orders') ->where('id',$id) ->where('del',0) ->where('order_mode',4) ->find(); if(!$info){ HelpHander::error('参数错误'); } $saveOrder = Db::name('orders') ->where('id',$id) ->update(['order_mode'=>1,'withdraw_time'=>getTime()]); Db::name('todo')->where('order_id',$id)->update(['del'=>1]); $todoIds = Db::name('todo') ->where('order_id',$id) ->where('todo_mode',1) ->column('id'); Db::name('task') ->where('type',1) ->whereIn('bus_id',$todoIds) ->delete(); if($info['work_type_mode'] == 3){ Db::name('order_convey_end')->where('order_id',$info['id'])->setField('del',0); } if(!$saveOrder){ HelpHander::error('操作失败'); } HelpHander::success('操作成功'); } //病人运送订单删除途径地 public function delOrdersConveyEnd(){ $id = input('id/d',0); $ret = $ret = Db::name('order_convey_end') ->where('id',$id)->update([ 'del' => 1, 'update_time' => date('Y-m-d H:i:s') ]); if(!$ret){ HelpHander::error('删除失败'); } HelpHander::success([],'操作成功'); } //病人运送订单删除目的地 public function delConveyEnd(){ $orderId = input('orderId/d',0); $ret = model('Orders')->delConveyEnd($orderId,$this->orgId); if(!$ret){ HelpHander::error(model('Orders')->getError()); } HelpHander::success([],'操作成功'); } public function orderConveyEndInfo(){ $id = input('id'); $info = Db::name('order_convey_end') ->where('id',$id) ->where('del',0) ->find(); HelpHander::success($info); } }