| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015 | 
							- <?php
 
- namespace app\api\controller\v1;
 
- use app\api\controller\Base;
 
- use app\common\model\Config;
 
- use app\hander\HelpHander;
 
- use think\App;
 
- use think\Db;
 
- use think\Exception;
 
- use think\exception\Handle;
 
- class Orders extends Base {
 
-     public function __construct(App $app = null) {
 
-         parent::__construct($app);
 
-         $this->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');
 
-         $dept = input('dept/d',0);
 
-         $list = $this->model->queryAllOrder($this->orgId,$page,$size,$workTypeMode,$currOrderMode,$beginTime,$endTime,$dept);
 
-         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);
 
-     }
 
- }
 
 
  |