[6.1.0] 任务拉取逻辑修改
This commit is contained in:
@@ -131,6 +131,15 @@ data class QueryCurrentTaskRespBean(var data: Result?) : BaseData() {
|
||||
return data.order!!.orderStatus == TaxiOrderStatusEnum.ArriveAtEnd.code
|
||||
}
|
||||
|
||||
fun isOrderOnTheWayToStart(data: Result?): Boolean {
|
||||
if (data == null) {
|
||||
return false
|
||||
}
|
||||
if (data.order == null) {
|
||||
return false
|
||||
}
|
||||
return data.order!!.orderStatus == TaxiOrderStatusEnum.OnTheWayToStart.code
|
||||
}
|
||||
/**
|
||||
* with order.orderStatus == ArriveAtStart
|
||||
*/
|
||||
@@ -144,7 +153,7 @@ data class QueryCurrentTaskRespBean(var data: Result?) : BaseData() {
|
||||
return data.order!!.orderStatus == TaxiOrderStatusEnum.ArriveAtStart.code
|
||||
}
|
||||
|
||||
fun isUserArriveAtStart(data: Result?): Boolean {
|
||||
fun isOrderUserArriveAtStart(data: Result?): Boolean {
|
||||
if (data == null) {
|
||||
return false
|
||||
}
|
||||
@@ -157,7 +166,7 @@ data class QueryCurrentTaskRespBean(var data: Result?) : BaseData() {
|
||||
/**
|
||||
* with task.currentStatus == StartTask
|
||||
*/
|
||||
fun isStartTaskType(data: Result?): Boolean {
|
||||
fun isTaskStartTaskType(data: Result?): Boolean {
|
||||
if (data == null) {
|
||||
return false
|
||||
}
|
||||
@@ -167,7 +176,7 @@ data class QueryCurrentTaskRespBean(var data: Result?) : BaseData() {
|
||||
/**
|
||||
* with task.currentStatus == CompleteTask
|
||||
*/
|
||||
fun isCompleteTaskType(data: Result?): Boolean {
|
||||
fun isTaskCompleteTaskType(data: Result?): Boolean {
|
||||
if (data == null) {
|
||||
return false
|
||||
}
|
||||
@@ -177,7 +186,7 @@ data class QueryCurrentTaskRespBean(var data: Result?) : BaseData() {
|
||||
/**
|
||||
* with task.currentStatus == GetTask
|
||||
*/
|
||||
fun isGetTaskType(data: Result?): Boolean {
|
||||
fun isTaskGetTaskType(data: Result?): Boolean {
|
||||
if (data == null) {
|
||||
return false
|
||||
}
|
||||
|
||||
@@ -18,7 +18,6 @@ import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager
|
||||
import com.mogo.och.common.module.utils.ToastUtilsOch
|
||||
import com.mogo.och.common.module.voice.VoiceNotice
|
||||
import com.mogo.och.common.module.wigets.StartAutopilotAnimationView
|
||||
import com.mogo.och.taxi.R
|
||||
import com.mogo.och.taxi.base.BaseViewModel
|
||||
import com.mogo.och.taxi.base.IUiIntent
|
||||
@@ -283,34 +282,31 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
|
||||
}
|
||||
|
||||
/**
|
||||
* 如果当前任务是演练任务/到达上车点的情况, 则120s去拉取下一个任务
|
||||
* 如果当前任务是接驾任务, 且订单没有到乘客已上车状态, 则10s去拉取下一个任务
|
||||
* 如果当前任务是接驾任务,且订单到达乘客已上车状态, 则立马拉取下一个任务
|
||||
* 如果当前任务是演练任务/到达上车点的情况, 无订单 则120s去拉取下一个任务
|
||||
* 如果当前任务是到达上车点的情况, 有订单 则120s去拉取下一个任务
|
||||
* 如果当前任务是演练任务/接驾任务, 有订单且订单没有到乘客已上车状态, 则10s去拉取下一个任务
|
||||
* 如果当前任务是演练任务/接驾任务, 有订单且订单到达乘客已上车状态, 则立马拉取下一个任务
|
||||
* 如果当前任务是送驾任务, 且订单已经到站状态, 则不拉取任务, 等司机点击服务完成后再拉取任务
|
||||
*/
|
||||
|
||||
// if (QueryCurrentTaskRespBean.isUserArriveAtStart(result)) {
|
||||
// TaxiTaskModel.removePrepareTaskDelay()
|
||||
// TaxiTaskModel.prepareNextTask(0,result?.endSite!!.siteId)
|
||||
// }else if (!QueryCurrentTaskRespBean.isOrderArriveAtStart(result)
|
||||
// || !QueryCurrentTaskRespBean.isOrderArriveAtEnd(result)){
|
||||
// TaxiTaskModel.startPrepareTaskDelay(
|
||||
// if (TaskTypeEnum.isToOrderStartTask(result))
|
||||
// TaxiUnmannedConst.START_AUTOPILOT_COUNTDOWN_INTERVAL
|
||||
// else TaxiUnmannedConst.TIMER_PREPARE_TASK_INTERVAL_120S,
|
||||
// result?.endSite!!.siteId)
|
||||
// }
|
||||
// 有订单-》根据订单状态拉取
|
||||
// 无订单-》直接120s拉
|
||||
|
||||
if (result?.taskType == TaskTypeEnum.ToOrderStartTask.code){
|
||||
TaxiTaskModel.startPrepareTaskDelay(
|
||||
if (QueryCurrentTaskRespBean.isOrderArriveAtStart(result))
|
||||
0
|
||||
else TaxiUnmannedConst.START_AUTOPILOT_COUNTDOWN_INTERVAL,
|
||||
result?.endSite!!.siteId)
|
||||
}else if (result?.taskType != TaskTypeEnum.ToOrderEndTask.code){
|
||||
TaxiTaskModel.startPrepareTaskDelay(
|
||||
TaxiUnmannedConst.TIMER_PREPARE_TASK_INTERVAL_120S,
|
||||
result?.endSite!!.siteId)
|
||||
if (result?.order != null){
|
||||
if (QueryCurrentTaskRespBean.isOrderOnTheWayToStart(result)){
|
||||
TaxiTaskModel.startPrepareTaskDelay(TaxiUnmannedConst.START_AUTOPILOT_COUNTDOWN_INTERVAL,
|
||||
result?.endSite!!.siteId)
|
||||
}else if (QueryCurrentTaskRespBean.isOrderUserArriveAtStart(result)) {
|
||||
TaxiTaskModel.startPrepareTaskDelay(0, result?.endSite!!.siteId)
|
||||
}
|
||||
}else{
|
||||
if (result?.taskType == TaskTypeEnum.None.code){
|
||||
TaxiTaskModel.startPrepareTaskDelay(
|
||||
TaxiUnmannedConst.TIMER_PREPARE_TASK_INTERVAL_120S, result?.endSite!!.siteId)
|
||||
}else{
|
||||
TaxiTaskModel.startPrepareTaskDelay(
|
||||
TaxiUnmannedConst.TIMER_PREPARE_TASK_INTERVAL_120S, result?.endSite!!.siteId)
|
||||
}
|
||||
}
|
||||
|
||||
clearDemoModeAndACParameters()
|
||||
|
||||
@@ -259,7 +259,7 @@ object TaxiTaskModel {
|
||||
if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
|
||||
DebugView.printInfoMsg("[自驾状态变化] afterValue=STATUS_AUTOPILOT_RUNNING,meaning=自动驾驶中")
|
||||
mADASStatusCallback?.onAutopilotRunning()
|
||||
if ((QueryCurrentTaskRespBean.isStartTaskType(mCurrentTaskWithOrder))) {
|
||||
if ((QueryCurrentTaskRespBean.isTaskStartTaskType(mCurrentTaskWithOrder))) {
|
||||
TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(
|
||||
isRestartAutopilot,
|
||||
true,
|
||||
@@ -274,7 +274,7 @@ object TaxiTaskModel {
|
||||
DebugView.printInfoMsg("[自驾状态变化] afterValue=STATUS_AUTOPILOT_ENABLE,meaning=可自动驾驶,人工干预状态")
|
||||
if ((FunctionBuildConfig.isDemoMode
|
||||
&& checkCurrentTaskCondition()
|
||||
&& QueryCurrentTaskRespBean.isStartTaskType(mCurrentTaskWithOrder)
|
||||
&& QueryCurrentTaskRespBean.isTaskStartTaskType(mCurrentTaskWithOrder)
|
||||
)
|
||||
) {
|
||||
// 当美化模式(演示模式)开启时:且有订单、且为去往目的地状态,维持自动驾驶icon开启状态
|
||||
@@ -285,7 +285,7 @@ object TaxiTaskModel {
|
||||
DebugView.printInfoMsg("[自驾状态变化] afterValue=STATUS_AUTOPILOT_DISABLE,meaning=不可自动驾驶")
|
||||
if ((FunctionBuildConfig.isDemoMode
|
||||
&& checkCurrentTaskCondition()
|
||||
&& QueryCurrentTaskRespBean.isStartTaskType(mCurrentTaskWithOrder)
|
||||
&& QueryCurrentTaskRespBean.isTaskStartTaskType(mCurrentTaskWithOrder)
|
||||
)
|
||||
) {
|
||||
// 当美化模式(演示模式)开启时:且有订单、且为去往目的地状态,维持自动驾驶icon开启状态
|
||||
@@ -296,7 +296,7 @@ object TaxiTaskModel {
|
||||
DebugView.printInfoMsg("[自驾状态变化] afterValue=STATUS_PARALLEL_DRIVING,meaning=平行驾驶中")
|
||||
if (FunctionBuildConfig.isDemoMode) {
|
||||
if ((checkCurrentTaskCondition()
|
||||
&& QueryCurrentTaskRespBean.isStartTaskType(
|
||||
&& QueryCurrentTaskRespBean.isTaskStartTaskType(
|
||||
mCurrentTaskWithOrder
|
||||
)
|
||||
)
|
||||
@@ -357,7 +357,7 @@ object TaxiTaskModel {
|
||||
}
|
||||
|
||||
if (checkCurrentTaskCondition()
|
||||
&& QueryCurrentTaskRespBean.isStartTaskType(mCurrentTaskWithOrder)
|
||||
&& QueryCurrentTaskRespBean.isTaskStartTaskType(mCurrentTaskWithOrder)
|
||||
) {
|
||||
judgeTaskEndSiteStation(mogoLocation)
|
||||
}
|
||||
@@ -704,7 +704,7 @@ object TaxiTaskModel {
|
||||
}
|
||||
|
||||
//开始任务处理
|
||||
if (QueryCurrentTaskRespBean.isStartTaskType(result)){
|
||||
if (QueryCurrentTaskRespBean.isTaskStartTaskType(result)){
|
||||
mTaxiTaskWithOrderCallbackMap.forEach {
|
||||
val listener = it.value
|
||||
listener.onTaskStarted(result)
|
||||
@@ -715,7 +715,7 @@ object TaxiTaskModel {
|
||||
//8.29更新: 当前任务完成且订单状态为乘客已上车, 则立马去拉取任务 不再等120s,否则送驾任务要等120s后才能去执行
|
||||
// 主要是解决A-B演练任务同时接到A-B订单状态流转的问题
|
||||
//注意: 需要去除到达乘客上车点的节点, 这个节点不拉取任务
|
||||
if (QueryCurrentTaskRespBean.isCompleteTaskType(result)) {
|
||||
if (QueryCurrentTaskRespBean.isTaskCompleteTaskType(result)) {
|
||||
mIsArrivedSiteStartTag = false //任务完成说明到站, 更新到站标识位, 不再到站接口请求成功更新
|
||||
mADASStatusCallback?.updateAutopilotStatus()
|
||||
mTaxiTaskWithOrderCallbackMap.forEach {
|
||||
@@ -744,7 +744,7 @@ object TaxiTaskModel {
|
||||
queryTaskTrajectoryByLineIds(linesIds.toTypedArray(), result.lineId)
|
||||
|
||||
//自动去启动自驾, 拿到任务并且任务类型是演练和接驾任务
|
||||
if (QueryCurrentTaskRespBean.isGetTaskType(result) &&
|
||||
if (QueryCurrentTaskRespBean.isTaskGetTaskType(result) &&
|
||||
result.taskType <= TaskTypeEnum.ToOrderStartTask.code
|
||||
) {
|
||||
if (result.order == null || result.order!!.orderStatus < TaxiOrderStatusEnum.ArriveAtStart.code) {
|
||||
@@ -1067,9 +1067,9 @@ object TaxiTaskModel {
|
||||
|
||||
fun startAutopilotByClick() {
|
||||
//订单状态流转成功, 点击了开启自驾按钮, 启动自驾
|
||||
if (QueryCurrentTaskRespBean.isStartTaskType(mCurrentTaskWithOrder)) {
|
||||
if (QueryCurrentTaskRespBean.isTaskStartTaskType(mCurrentTaskWithOrder)) {
|
||||
startAutoPilot()
|
||||
} else if (QueryCurrentTaskRespBean.isGetTaskType(mCurrentTaskWithOrder)) {
|
||||
} else if (QueryCurrentTaskRespBean.isTaskGetTaskType(mCurrentTaskWithOrder)) {
|
||||
startTask(mCurrentTaskWithOrder!!.lineId, true)
|
||||
} else {
|
||||
e(TAG, "task currentStatus is not StartTask.")
|
||||
@@ -1384,7 +1384,7 @@ object TaxiTaskModel {
|
||||
d(
|
||||
TAG, "stopAutoStartAutopilot = ${mCurrentTaskWithOrder?.currentStatus}"
|
||||
)
|
||||
if (QueryCurrentTaskRespBean.isGetTaskType(mCurrentTaskWithOrder)) {
|
||||
if (QueryCurrentTaskRespBean.isTaskGetTaskType(mCurrentTaskWithOrder)) {
|
||||
mControllerStatusCallback?.stopOpenAutopilotNonManual()
|
||||
mTaxiTaskWithOrderCallbackMap.forEach {
|
||||
val listener = it.value
|
||||
|
||||
Reference in New Issue
Block a user