[6.0.0] 演练任务结束2分钟内接到运营单, 120s任务调用重复问题

This commit is contained in:
wangmingjun
2023-09-01 18:34:15 +08:00
committed by zhongchao
parent 7724f1e851
commit bfe85a223f
4 changed files with 31 additions and 20 deletions

View File

@@ -13,5 +13,5 @@ interface ITaxiTaskWithOrderCallback {
fun onOrderJourneyCompleted()
fun onStartAutopilot()
fun onStartPrepareTask120s()
fun onStartPrepareTask120s(isStart: Boolean)
}

View File

@@ -192,9 +192,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
}
is TaskWithOrderUIState.UpdatePrepareTaskDelay120S -> {
if (taskAndOrderUiState.isStart){
updatePrepareTaskDelay120SUI(true)
}
updatePrepareTaskDelay120SUI(taskAndOrderUiState.isStart)
}
}
}

View File

@@ -258,8 +258,8 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
/**
* 开始倒计时120拉取任务
*/
override fun onStartPrepareTask120s() {
updatePrepareTaskDelay120SUI(true)
override fun onStartPrepareTask120s(isStart: Boolean) {
updatePrepareTaskDelay120SUI(isStart)
}
override fun onCarEndServiceSuccess(
@@ -300,14 +300,6 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
currentTaskWithOrder: QueryCurrentTaskRespBean.Result?
) {
VoiceNotice.showNotice("开始接单啦")
currentTaskWithOrder?.apply {
if (endSite != null) {
when {
currentStatus == TaskStatusEnum.CompleteTask.code && order != null -> return
currentStatus < TaskStatusEnum.CompleteTask.code -> return
}
}
}
updateDriveToNearestStationTaskUI(driveToNearestStationTask)
}

View File

@@ -136,6 +136,8 @@ object TaxiTaskModel {
private val mCurrentTaskRoutePointsGcj: MutableList<MogoLocation> = ArrayList()
private var mPrepareTaskDelay120SRunnable: Runnable? = null
fun addTaskWithOrderListener(tag: String, listener: ITaxiTaskWithOrderCallback) {
if (mTaxiTaskWithOrderCallbackMap.containsKey(tag)) {
return
@@ -907,16 +909,27 @@ object TaxiTaskModel {
}
fun startPrepareTaskDelay120S(siteId: Long) {
DebugView.printInfoMsg("[PrepareNextTask] 倒计时${TaxiUnmannedConst.TIMER_PREPARE_TASK_INTERVAL_120S/1000}秒后prepareNextTask")
if (mPrepareTaskDelay120SRunnable != null){
DebugView.printInfoMsg("[PrepareNextTask] removeCallbacks prepareNextTask120s")
UiThreadHandler.removeCallbacks(mPrepareTaskDelay120SRunnable)
mTaxiTaskWithOrderCallbackMap.forEach {
val listener = it.value
listener.onStartPrepareTask120s(false)
}
}
if (mPrepareTaskDelay120SRunnable == null){
mPrepareTaskDelay120SRunnable = Runnable {
prepareNextTask(siteId)
}
}
mTaxiTaskWithOrderCallbackMap.forEach {
val listener = it.value
listener.onStartPrepareTask120s()
listener.onStartPrepareTask120s(true)
}
UiThreadHandler.postDelayed({
prepareNextTask(siteId)
}, TaxiUnmannedConst.TIMER_PREPARE_TASK_INTERVAL_120S)
DebugView.printInfoMsg("[PrepareNextTask] 倒计时${TaxiUnmannedConst.TIMER_PREPARE_TASK_INTERVAL_120S/1000}秒后prepareNextTask")
UiThreadHandler.postDelayed(mPrepareTaskDelay120SRunnable, TaxiUnmannedConst.TIMER_PREPARE_TASK_INTERVAL_120S)
}
/**
@@ -994,6 +1007,14 @@ object TaxiTaskModel {
DebugView.printInfoMsg("[开始接单] 请求success")
d(TAG, "data.data=" + GsonUtil.jsonFromObject(data.data))
loginService?.queryLoginStatusByNet()
mCurrentTaskWithOrder?.apply {
if (endSite != null) {
when {
currentStatus == TaskStatusEnum.CompleteTask.code && order != null -> return
currentStatus < TaskStatusEnum.CompleteTask.code -> return
}
}
}
mDriveToNearestStationTask = data.data
mTaxiCarServiceCallback?.onCarStartServiceSuccess(
mDriveToNearestStationTask,