[6.0.0] 1、预加载轨迹逻辑处理 2、去除起点围栏

This commit is contained in:
wangmingjun
2023-08-24 19:59:30 +08:00
committed by zhongchao
parent 52c5261e95
commit b31c109be0
2 changed files with 824 additions and 945 deletions

View File

@@ -6,12 +6,13 @@ import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters;
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.util.GsonUtils;
import com.mogo.och.taxi.bean.TrajectoryListRespBean;
import com.mogo.och.taxi.bean.ContrailListRespBean;
import com.mogo.och.taxi.bean.OrderDetail;
import com.mogo.och.taxi.bean.QueryCurrentTaskRespBean;
import com.mogo.och.taxi.bean.Site;
import com.mogo.och.taxi.constant.TaskStatusEnum;
import com.mogo.och.taxi.constant.TaxiUnmannedConst;
import com.mogo.och.taxi.ui.task.TaxiTaskModel;
import com.mogo.och.taxi.model.TaxiModel;
import java.util.List;
import java.util.concurrent.TimeUnit;
@@ -66,7 +67,7 @@ public class TaxiTrajectoryManager {
* 同步订单信息
*/
public void syncTrajectoryInfo() {
QueryCurrentTaskRespBean.Result taskAndOrder = TaxiTaskModel.INSTANCE.getCurTaskAndOrder();
QueryCurrentTaskRespBean.Result taskAndOrder = TaxiModel.INSTANCE.getCurTaskAndOrder();
if (taskAndOrder == null || taskAndOrder.getCurrentStatus() >= TaskStatusEnum.StartTask.getCode()) {
CallerLogger.d(M_TAXI + TAG, "syncTrajectoryInfo() stop.");
stopTrajReqLoop();
@@ -115,7 +116,7 @@ public class TaxiTrajectoryManager {
}
private void setupAutoPilotLine() {
QueryCurrentTaskRespBean.Result taskAndOrder = TaxiTaskModel.INSTANCE.getCurTaskAndOrder();
QueryCurrentTaskRespBean.Result taskAndOrder = TaxiModel.INSTANCE.getCurTaskAndOrder();
if (taskAndOrder == null || taskAndOrder.getEndSite() == null) {
CallerLogger.e(M_TAXI + TAG,
@@ -128,7 +129,7 @@ public class TaxiTrajectoryManager {
* 4、若不存在,说明当前的执行的任务是与订单无关的演练任务,通知下载加载当前任务的轨迹以及预加载订单轨迹集合的第一个
*/
final TrajectoryListRespBean.Result curTaskContrail = TaxiTaskModel.INSTANCE.getCurrentTaskTrajectory();
final ContrailListRespBean.Result curTaskContrail = TaxiModel.INSTANCE.getCurTaskContrail();
if (curTaskContrail == null) return;
long curLineId = taskAndOrder.getLineId();
@@ -156,20 +157,29 @@ public class TaxiTrajectoryManager {
}
final OrderDetail orderDetail = taskAndOrder.getOrder();
TrajectoryListRespBean.Result preloadContrail = null; //预加载的轨迹
final List<TrajectoryListRespBean.Result> orderContrails = TaxiTaskModel.INSTANCE.getCurrentOrderTrajectoryList();
ContrailListRespBean.Result preloadContrail = null; //预加载的轨迹
int preLoadIndex = -1;
//包含接驾任务和送驾任务的轨迹, 且集合是有顺序的 , 最后一个是送驾任务轨迹
final List<ContrailListRespBean.Result> orderContrails = TaxiModel.INSTANCE.getCurOrderContrails();
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()-1 >= index){
if (orderContrails.size() == index){
//说明找到的是集合最后一个, 最后一个为送驾轨迹,即送驾轨迹和当前的任务轨迹是一样的,不再预加载
preLoadIndex = index;
break;
}else if (orderContrails.size()-1 >= index){
preloadContrail = orderContrails.get(index);
preLoadIndex = index;
break;
}
}
}
if (preloadContrail == null){
//不包含预加载轨迹直接是集合第一个
if (preLoadIndex == -1){ //说明当前任务轨迹在接驾/送驾轨迹集合里没有, 直接加载轨迹集合第一个
preloadContrail = orderContrails.get(0);
}
}