From 08c22c5d9f1911dce4268578956426c6e5370160 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Thu, 26 Oct 2023 18:55:45 +0800 Subject: [PATCH] =?UTF-8?q?[6.1.2=E4=BC=98=E5=8C=96]=20=E5=81=B6=E7=8E=B0?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E5=88=B0=E7=AB=99=E9=97=AE=E9=A2=98=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/och/taxi/ui/task/TaxiTaskModel.kt | 39 ++++++++++++------- 1 file changed, 25 insertions(+), 14 deletions(-) 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 af6d86f79a..36f625ae8b 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 @@ -118,7 +118,9 @@ object TaxiTaskModel { private var mPrepareTaskDelayRunnable: Runnable? = null - private var mIsArrivedSiteStartTag = false //到站接口请求标志位,防止围栏触发多次调用到站接口, true 接口请求, false : 接口请求完成 + private var mLastArrivedSiteId = -1L //上一次成功提交到站的siteId + + private var mIsSubmitArrivedSiteRequesting = false //到站接口请求标志位, true 接口请求中, false : 当前接口没有请求 private var isPrepareingNextTask = false // 拉取任务接口标志位 @@ -576,14 +578,22 @@ object TaxiTaskModel { siteId: Long, isArriveAtEndSite: Boolean, isArrivedNearestStation: Boolean = false ) { - if (mIsArrivedSiteStartTag) { - DebugView.printInfoMsg("[上报ArriveSite] arriveSite接口正在调用中, 跳过本次请求" + + if (mLastArrivedSiteId == siteId) { + DebugView.printWarnMsg("[上报ArriveSite] 此站点已成功上报到站, 跳过本次请求, isArrivedNearestStation=$isArrivedNearestStation" + ", siteId=$siteId, isArriveAtEndSite=$isArriveAtEndSite") - i(TAG, message = "arriveSite接口正在调用中, 跳过本次请求 mIsArrivedSite = $mIsArrivedSiteStartTag" + + i(TAG, message = "此站点已成功上报到站, 跳过本次请求 isArrivedNearestStation=$isArrivedNearestStation" + ", siteId=$siteId, isArriveAtEndSite=$isArriveAtEndSite") return } - mIsArrivedSiteStartTag = true + + if (mIsSubmitArrivedSiteRequesting) { + DebugView.printWarnMsg("[上报ArriveSite] arriveSite接口正在调用中, 跳过本次请求" + + ", siteId=$siteId, isArriveAtEndSite=$isArriveAtEndSite") + i(TAG, message = "arriveSite接口正在调用中, 跳过本次请求 isArrivedNearestStation = $isArrivedNearestStation" + + ", siteId=$siteId, isArriveAtEndSite=$isArriveAtEndSite") + return + } + mIsSubmitArrivedSiteRequesting = true DebugView.printInfoMsg("[上报ArriveSite] siteId=$siteId, isArriveAtEndSite=$isArriveAtEndSite") i(TAG, message = "submitArriveSite: siteId=$siteId isArriveAtEndSite=$isArriveAtEndSite") TaxiTaskWithOrderServiceManager.arriveSite( @@ -591,10 +601,6 @@ object TaxiTaskModel { siteId, object : OchCommonServiceCallback { override fun onSuccess(data: BaseData?) { - if (data == null || data.code != 0) { - mIsArrivedSiteStartTag = false - return - } DebugView.printInfoMsg("[上报ArriveSite] success siteId=$siteId, isArriveAtEndSite=$isArriveAtEndSite") d(TAG, "submitArriveSite-onSuccess data=" + GsonUtil.jsonFromObject(data)) mDriveToNearestStationTask = null @@ -606,11 +612,13 @@ object TaxiTaskModel { //取消自驾,D档位会溜车 map3.6.0 修改 cancelAutopilot() } + mLastArrivedSiteId = siteId + mIsSubmitArrivedSiteRequesting = false } override fun onError() { super.onError() - mIsArrivedSiteStartTag = false + mIsSubmitArrivedSiteRequesting = false if (!NetworkUtils.isConnected(mContext)) { // 网络异常,接口重试 ToastUtils.showShort("网络出现异常,请稍后重试") DebugView.printErrorMsg("[上报ArriveSite] 网络出现异常,请稍后重试") @@ -621,7 +629,7 @@ object TaxiTaskModel { } override fun onFail(code: Int, msg: String?) { - mIsArrivedSiteStartTag = false + mIsSubmitArrivedSiteRequesting = false DebugView.printErrorMsg("[上报ArriveSite] failed, code=$code, msg=$msg") d(TAG, "code=$code msg=$msg") ToastUtils.showShort("到站接口请求出现异常,请稍后重试,code=$code msg=$msg") @@ -736,6 +744,7 @@ object TaxiTaskModel { //开始任务处理 if (QueryCurrentTaskRespBean.isTaskStartTaskType(result)){ + mLastArrivedSiteId = -1L // 司机或者乘客屏startTask后需要重置标志位 mTaxiTaskWithOrderCallbackMap.forEach { val listener = it.value listener.onTaskStarted(result) @@ -747,7 +756,6 @@ object TaxiTaskModel { // 主要是解决A-B演练任务同时接到A-B订单状态流转的问题 //注意: 需要去除到达乘客上车点的节点, 这个节点不拉取任务 if (QueryCurrentTaskRespBean.isTaskCompleteTaskType(result)) { - mIsArrivedSiteStartTag = false //任务完成说明到站, 更新到站标识位, 不再到站接口请求成功更新 mADASStatusCallback?.updateAutopilotStatus() mTaxiTaskWithOrderCallbackMap.forEach { val listener = it.value @@ -763,7 +771,6 @@ object TaxiTaskModel { setStationPoint(null, null, -1L) AmapNaviToDestinationModel.getInstance(mContext).destroyAmaNavi() - mIsArrivedSiteStartTag = false mTaxiTaskWithOrderCallbackMap.forEach { val listener = it.value listener.onOrderArriveAtEnd(result.order!!.orderNo) @@ -886,6 +893,7 @@ object TaxiTaskModel { fun startTask(lineId: Long, isStartAutopilot: Boolean) { DebugView.printInfoMsg("[开始任务] 准备发送请求,lindId=$lineId") + mLastArrivedSiteId = -1L TaxiTaskWithOrderServiceManager.startTask( mContext, lineId, @@ -1100,6 +1108,7 @@ object TaxiTaskModel { } } mDriveToNearestStationTask = data.data + mLastArrivedSiteId = -1L //开始标定站点任务时, 到达站点标志位需复位 mTaxiCarServiceCallback?.onCarStartServiceSuccess( mDriveToNearestStationTask, mCurrentTaskWithOrder @@ -1367,7 +1376,9 @@ object TaxiTaskModel { */ fun clearCurrentOCHOrder() { clearAutopilotControlParameters() - mIsArrivedSiteStartTag = false + mLastArrivedSiteId = -1L + mIsSubmitArrivedSiteRequesting = false + isPrepareingNextTask = false isRestartAutopilot = false setBeautificationMode(false) }