123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014 |
- <?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');
- $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);
- }
- }
|