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);
- }
- }
|