error = "参数错误"; return false; } if($status == 1 && !$endTime){ $this->error = "延期时间不能为空"; return false; } $info = Db::name('patrol_task_delay')->where('id',$id)->where('org_id',$orgId)->find(); if(!$info){ $this->error = "记录不存在"; return false; } if($info['status'] != 0){ $this->error = "申请已处理"; return false; } if($status == 1 && strtotime($endTime) <= time()){ $this->error = "延期时间不能小于当前时间"; // Db::name('patrol_task_delay')->where('id',$id)->update(['status'=>3,'update_time'=>date('Y-m-d H:i:s')]); return false; } Db::startTrans(); try{ $ret = Db::name('patrol_task_delay')->where('id',$id)->update([ 'deal_user_id'=>$userId, 'status'=>$status, 'remark'=>$remark, 'end_time'=>$endTime, 'update_time'=>date('Y-m-d H:i:s') ]); if(!$ret){ \exception('操作失败'); } if($status == 1){ $task = Db::name('patrol_task')->where('id',$info['task_id'])->find(); // 恢复计划任务 $res = Db::name('patrol_task')->where('id',$info['task_id'])->update([ 'status' => 1, 'del' => 0, 'end_time' => $info['end_time'] ]); if(!$res){ \exception('操作失败'); } $userIds = Db::name('patrol_task_user')->where('patrol_task_id',$info['task_id'])->column('user_id'); $arr = []; foreach ($userIds as $v){ $arr[] = [ 'org_id'=>$orgId, 'type'=>(new Task())::TASK_TYPE_PATROL, 'start_time' => $task['start_time'], 'create_time'=>getTime(), 'bus_id'=>$task['id'], 'user_id'=>$v ]; } $res = Db::name('task')->insertAll($arr); if($res != count($userIds)){ \exception('操作失败'); } } Db::commit(); }catch (Exception $e){ Db::rollback(); $this->error = $e->getMessage(); return false; } return true; } }