[6.1.0] 任务拉取逻辑修改

This commit is contained in:
wangmingjun
2023-10-19 19:24:55 +08:00
parent 2418847fe2
commit 48bc32fd8c
3 changed files with 45 additions and 40 deletions

View File

@@ -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
}

View File

@@ -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()

View File

@@ -259,7 +259,7 @@ object TaxiTaskModel {
if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
DebugView.printInfoMsg("[自驾状态变化] afterValue=STATUS_AUTOPILOT_RUNNINGmeaning=自动驾驶中")
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_ENABLEmeaning=可自动驾驶,人工干预状态")
if ((FunctionBuildConfig.isDemoMode
&& checkCurrentTaskCondition()
&& QueryCurrentTaskRespBean.isStartTaskType(mCurrentTaskWithOrder)
&& QueryCurrentTaskRespBean.isTaskStartTaskType(mCurrentTaskWithOrder)
)
) {
// 当美化模式演示模式开启时且有订单、且为去往目的地状态维持自动驾驶icon开启状态
@@ -285,7 +285,7 @@ object TaxiTaskModel {
DebugView.printInfoMsg("[自驾状态变化] afterValue=STATUS_AUTOPILOT_DISABLEmeaning=不可自动驾驶")
if ((FunctionBuildConfig.isDemoMode
&& checkCurrentTaskCondition()
&& QueryCurrentTaskRespBean.isStartTaskType(mCurrentTaskWithOrder)
&& QueryCurrentTaskRespBean.isTaskStartTaskType(mCurrentTaskWithOrder)
)
) {
// 当美化模式演示模式开启时且有订单、且为去往目的地状态维持自动驾驶icon开启状态
@@ -296,7 +296,7 @@ object TaxiTaskModel {
DebugView.printInfoMsg("[自驾状态变化] afterValue=STATUS_PARALLEL_DRIVINGmeaning=平行驾驶中")
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