From 815f5d69144178a798dc6b1e762eb282cefc5232 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Fri, 25 Aug 2023 14:43:20 +0800 Subject: [PATCH] =?UTF-8?q?[6.0.0]=20=E8=BD=A8=E8=BF=B9=E9=9B=86=E5=90=88?= =?UTF-8?q?=E6=97=A0=E5=BA=8F=E9=97=AE=E9=A2=98=E5=A4=84=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 | 23 ++++++++----- .../och/taxi/utils/TaxiTrajectoryManager.java | 33 ++++++++++--------- 2 files changed, 32 insertions(+), 24 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 fe9eff4324..369f8bf980 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 @@ -340,7 +340,8 @@ object TaxiTaskModel { judgeUntruthStation(mDriveToNearestStationTask, mogoLocation) } - if (checkCurrentTaskCondition()) { + if (checkCurrentTaskCondition() + && mCurrentTaskWithOrder?.currentStatus == TaskStatusEnum.StartTask.code) { // judgeTaskStartStation(mogoLocation) judgeTaskEndSiteStation(mogoLocation) } @@ -604,7 +605,9 @@ object TaxiTaskModel { || mCurrentTaskWithOrder!! != result ) { d(TAG, "queryCurrentTaskOnce: 更新本地数据") - if (result?.endSite == null && result?.order == null) { + mCurrentTaskWithOrder = result + + if (result.endSite == null && result.order == null) { mCurrentTaskWithOrder = null } @@ -628,10 +631,10 @@ object TaxiTaskModel { //根据lineId集合去查轨迹集合, 返回的只是接驾任务的line集合, 没有送驾任务 var linesIds = arrayListOf() - linesIds.add(result.lineId) + linesIds.add(result.lineId) // 当前任务的 result.order?.also { - linesIds.addAll(it.planningLines) - linesIds.add(it.orderLine) + linesIds.addAll(it.planningLines) // 接驾 + linesIds.add(it.orderLine) //送驾 } queryTaskTrajectoryByLineIds(linesIds.toTypedArray(), result.lineId) @@ -644,6 +647,8 @@ object TaxiTaskModel { autoStartDriving() } } + + mTaxiTaskCallback?.onTaskWithOrderDataChanged(mCurrentTaskWithOrder) } } @@ -723,10 +728,10 @@ object TaxiTaskModel { ) if (data?.data == null) return //去下载轨迹, 下发给工控机下载 - queryTaskTrajectoryByLineIds( - Array(1) { data.data!!.lineId }, - data.data!!.lineId - ) +// queryTaskTrajectoryByLineIds( +// Array(1) { data.data!!.lineId }, +// data.data!!.lineId +// ) } override fun onFail(code: Int, msg: String?) { diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/utils/TaxiTrajectoryManager.java b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/utils/TaxiTrajectoryManager.java index 3f5c6c6ba6..5d7e67e1d4 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/utils/TaxiTrajectoryManager.java +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/utils/TaxiTrajectoryManager.java @@ -13,6 +13,8 @@ import com.mogo.och.taxi.constant.TaskStatusEnum; import com.mogo.och.taxi.constant.TaxiUnmannedConst; import com.mogo.och.taxi.ui.task.TaxiTaskModel; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.concurrent.TimeUnit; @@ -158,25 +160,26 @@ public class TaxiTrajectoryManager { final OrderDetail orderDetail = taskAndOrder.getOrder(); TrajectoryListRespBean.Result preloadContrail = null; //预加载的轨迹 final List orderContrails = TaxiTaskModel.INSTANCE.getCurrentOrderTrajectoryList(); - int preLoadIndex = -1; if (orderDetail != null && orderContrails != null && orderContrails.size() != 0 ){ - for (int i = 0; i< orderContrails.size() ; i++){ - if (orderContrails.get(i).getLineId() == curLineId){ //预加载轨迹是curLineId索引的下一个 - int index = i + 1; - if (orderContrails.size() == index){ - //说明找到的是集合最后一个, 最后一个为送驾轨迹,即送驾轨迹和当前的任务轨迹是一样的,不再预加载 - preLoadIndex = index; - break; - }else if (orderContrails.size()-1 >= index){ - preloadContrail = orderContrails.get(index); - preLoadIndex = index; - break; + + List lineIds = new ArrayList<>(); + lineIds.addAll(Arrays.asList(orderDetail.getPlanningLines())); // 接驾 + lineIds.add(orderDetail.getOrderLine());//送驾 + + if (lineIds.contains(curLineId)){ //当前任务在lineIds集合里 + //计算预加载的下一个轨迹 + int preLoadIndex = lineIds.indexOf(curLineId) + 1; + if (lineIds.size() -1 >= preLoadIndex){ + long preLoadLineId = lineIds.get(preLoadIndex); + for (int i = 0; i< orderContrails.size() ; i++){ + if (orderContrails.get(i).getLineId() == preLoadLineId){ + preloadContrail = orderContrails.get(i); + break; + } } } - } - - if (preLoadIndex == -1){ //说明当前任务轨迹在接驾/送驾轨迹集合里没有, 直接加载轨迹集合第一个 + }else {//说明当前任务轨迹在接驾/送驾轨迹集合里没有, 直接加载轨迹集合第一个 preloadContrail = orderContrails.get(0); } }