[2.13.0] taxi乘客屏保存订单信息

This commit is contained in:
wangmingjun
2022-12-29 14:39:31 +08:00
parent d5cdbed9fb
commit 44b8ff0faa
2 changed files with 58 additions and 23 deletions

View File

@@ -412,6 +412,7 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
//清除订单信息
public void clearCurrentOCHOrder() {
mCurrentOCHOrder = null;
clearAutopilotControlParameters();
SharedPrefsMgr.getInstance(mContext).remove(TaxiPassengerConst.SP_KEY_OCH_TAXI_ORDER);
}
@@ -930,12 +931,36 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
return;
}
AutopilotControlParameters parameters = initAutopilotControlParameters();
if (parameters == null){
CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "AutopilotControlParameters is empty.");
return;
}
CallerAutoPilotManager.INSTANCE.startAutoPilot(parameters);
CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "start autopilot with parameter: %s"
, GsonUtil.jsonFromObject(parameters)
+ " ,startSiteName=" + mCurrentOCHOrder.startSiteAddr
+ " ,endSiteName=" + mCurrentOCHOrder.endSiteAddr);
TaxiPassengerAnalyticsManager.getInstance().triggerStartAutopilotEvent(false, false,
mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo);
}
private AutopilotControlParameters initAutopilotControlParameters() {
if (!checkCurrentOCHOrder()) {
CallerLogger.INSTANCE.e(M_TAXI_P + TAG, "no order or order is empty.");
ToastUtils.showShort("当前订单不存在或异常!");
return null;
}
AutopilotControlParameters parameters = new AutopilotControlParameters();
double startWgsLon = mCurrentOCHOrder.startSitePoint.get(0);
double startWgsLat = mCurrentOCHOrder.startSitePoint.get(1);
double endWgsLon = mCurrentOCHOrder.endSitePoint.get(0);
double endWgsLat = mCurrentOCHOrder.endSitePoint.get(1);
AutopilotControlParameters parameters = new AutopilotControlParameters();
parameters.vehicleType = mCurrentOCHOrder.businessType;
parameters.startName = PinYinUtil.getPinYinHeadChar(mCurrentOCHOrder.startSiteAddr); // 起点名称拼音首字母大写科学城B区2号门KXCBQ2HM
parameters.endName = PinYinUtil.getPinYinHeadChar(mCurrentOCHOrder.endSiteAddr); // 终点名称拼音首字母大写科学城C区三号门KXCCQSHM
@@ -953,15 +978,26 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
mCurrentOCHOrder.contrailSaveTimeDPQP);
}
CallerAutoPilotManager.INSTANCE.startAutoPilot(parameters);
CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "start autopilot with parameter: %s"
, GsonUtil.jsonFromObject(parameters)
+ " ,startSiteName=" + mCurrentOCHOrder.startSiteAddr
+ " ,endSiteName=" + mCurrentOCHOrder.endSiteAddr);
return parameters;
}
/**
* 将业务订单信息保存,鹰眼可取用
*/
public void updateAutopilotControlParameters() {
TaxiPassengerAnalyticsManager.getInstance().triggerStartAutopilotEvent(false, false,
mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr, mCurrentOCHOrder.orderNo);
AutopilotControlParameters parameters = initAutopilotControlParameters();
if (null == parameters){
CallerLogger.INSTANCE.e(M_TAXI_P + TAG, "AutopilotControlParameters is empty.");
return;
}
CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "AutopilotControlParameters is update.");
CallerAutoPilotStatusListenerManager.INSTANCE.updateAutopilotControlParameters(parameters);
}
public void clearAutopilotControlParameters(){
CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "AutopilotControlParameters is clear.");
CallerAutoPilotStatusListenerManager.INSTANCE.updateAutopilotControlParameters(null);
}

View File

@@ -92,27 +92,26 @@ public class TaxiPassengerServingOrderPresenter extends Presenter<TaxiPassengerS
public void onCurrentOrderStatusChanged(TaxiPassengerOrderQueryRespBean.Result order) {
CallerLogger.INSTANCE.d(M_TAXI_P + TAG, GsonUtil.jsonFromObject(order));
if (mCurrentPassengerOrder == null){
mCurrentPassengerOrder = order; //当前无订单
if (mCurrentPassengerOrder == null || mCurrentPassengerOrder.orderStatus != order.orderStatus){
if (TaxiPassengerOrderStatusEnum.OnTheWayToEnd.getCode() == order.orderStatus){
TaxiPassengerModel.getInstance().startOrStopQueryOrderRemaining(true);
TaxiPassengerModel.getInstance().queryOrderRouteList();
if (mCurrentPassengerOrder == null){
TaxiPassengerModel.getInstance().queryOrderRouteList();
}
TaxiPassengerModel.getInstance().updateAutopilotControlParameters();
CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "OnTheWayToEnd");
}
runOnUIThread(() ->mView.updateOrderStatusView(order));
}else if (mCurrentPassengerOrder.orderStatus != order.orderStatus) {
runOnUIThread(() ->mView.updateOrderStatusView(order));
if (TaxiPassengerOrderStatusEnum.OnTheWayToEnd.getCode() == order.orderStatus){
CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "-----OnTheWayToEndStation----");
TaxiPassengerModel.getInstance().startOrStopQueryOrderRemaining(true);
}
if (TaxiPassengerOrderStatusEnum.Cancel.getCode() == mCurrentPassengerOrder.orderStatus
|| TaxiPassengerOrderStatusEnum.ArriveAtEnd.getCode() == mCurrentPassengerOrder.orderStatus){
if (TaxiPassengerOrderStatusEnum.Cancel.getCode() == order.orderStatus
|| TaxiPassengerOrderStatusEnum.ArriveAtEnd.getCode() == order.orderStatus
|| TaxiPassengerOrderStatusEnum.JourneyCompleted.getCode() == order.orderStatus){
TaxiPassengerModel.getInstance().startOrStopQueryOrderRemaining(false);
TaxiPassengerModel.getInstance().clearAutopilotControlParameters();
CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "Cancel or ArriveAtEnd or JourneyCompleted");
}
mCurrentPassengerOrder = order;
mCurrentPassengerOrder = order; //当前无订单
runOnUIThread(() ->mView.updateOrderStatusView(order));
}
}