[6.0.0] 轨迹集合无序问题处理
This commit is contained in:
@@ -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<Long>()
|
||||
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?) {
|
||||
|
||||
@@ -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<TrajectoryListRespBean.Result> 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<Long> 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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user