[6.1.2优化] 偶现无法到站问题处理

This commit is contained in:
wangmingjun
2023-10-26 18:55:45 +08:00
parent fb388fcb7a
commit 08c22c5d9f

View File

@@ -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<BaseData> {
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)
}