From 48bc32fd8c1afe83df6bc264ee4b5d9b9b67d257 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Thu, 19 Oct 2023 19:24:55 +0800 Subject: [PATCH] =?UTF-8?q?[6.1.0]=20=E4=BB=BB=E5=8A=A1=E6=8B=89=E5=8F=96?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../taxi/bean/TaxiDriverTaskWithOrderBean.kt | 17 +++++-- .../taxi/ui/task/TaxiCurrentTaskViewModel.kt | 46 +++++++++---------- .../mogo/och/taxi/ui/task/TaxiTaskModel.kt | 22 ++++----- 3 files changed, 45 insertions(+), 40 deletions(-) diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/bean/TaxiDriverTaskWithOrderBean.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/bean/TaxiDriverTaskWithOrderBean.kt index cba01a3f71..cd9164a5d0 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/bean/TaxiDriverTaskWithOrderBean.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/bean/TaxiDriverTaskWithOrderBean.kt @@ -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 } diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskViewModel.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskViewModel.kt index 135ba9656e..f2d90c6f1e 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskViewModel.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiCurrentTaskViewModel.kt @@ -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(), } /** - * 如果当前任务是演练任务/到达上车点的情况, 则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() diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt index e8e5903ae4..443d9672f9 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/task/TaxiTaskModel.kt @@ -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