diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/constant/CharterPassengerConst.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/constant/CharterPassengerConst.kt index 749964b9f5..6578f4ef4a 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/constant/CharterPassengerConst.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/constant/CharterPassengerConst.kt @@ -24,6 +24,7 @@ class CharterPassengerConst { // 到达起始点围栏 const val ARRIVE_AT_START_STATION_DISTANCE = 15 //围栏由20m改为50m 再次改为15m const val ARRIVE_SOON_AT_START_STATION_DISTANCE = 100 //100米提示 + const val ARRIVE_DISTANCE_4_STATION_INTRODUCE = 200 //站点介绍 const val MIN_DISTANCE_STATION = 30 //站点选择小于30m 不能选 } diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/WriteOffCountResponse.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/WriteOffCountResponse.java new file mode 100644 index 0000000000..c34204a1b1 --- /dev/null +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/bean/WriteOffCountResponse.java @@ -0,0 +1,15 @@ +package com.mogo.och.bus.bean; + +import com.mogo.eagle.core.data.BaseData; + +import java.util.List; + +/** + * @author: wangmingjun + * @date: 2022/2/9 + */ +public class WriteOffCountResponse extends BaseData { + + public Integer data; + +} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/callback/IBusControllerStatusCallback.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/callback/IBusControllerStatusCallback.java index e10afc44e7..8e4528feba 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/callback/IBusControllerStatusCallback.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/callback/IBusControllerStatusCallback.java @@ -8,8 +8,6 @@ import com.mogo.eagle.core.data.map.MogoLocation; * Model->Presenter回调:状态控制器监听(accOn、adas ui show、voice ui show、push ui show、v2x ui show等等) */ public interface IBusControllerStatusCallback { - // 是否vr map模式 - void onVRModeChanged(boolean isVRMode); // 自车定位 void onCarLocationChanged(MogoLocation location); //开始开启自动驾驶 diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/callback/IPassengerCallback.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/callback/IPassengerCallback.java deleted file mode 100644 index 98f4498282..0000000000 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/callback/IPassengerCallback.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.mogo.och.bus.callback; - -import com.mogo.och.bus.bean.WriteOffPassenger; - -/** - * @author: wangmingjun - * @date: 2022/9/26 - */ -public interface IPassengerCallback { - void playPassenger(WriteOffPassenger passenger); -} diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/fragment/BusFragment.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/fragment/BusFragment.java index 4fcd04f64e..db0d3ff439 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/fragment/BusFragment.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/fragment/BusFragment.java @@ -464,17 +464,6 @@ public class BusFragment extends BaseBusTabFragment smallMapView.clearPolyline(); } - /** - * VR模式切换 - * - * @param isVRMode - */ - public void onVRModeChanged(boolean isVRMode) { - if (mRootView != null) { - mRootView.setVisibility(isVRMode ? View.VISIBLE : View.GONE); - } - } - /** * 绘制地图起点终点 * diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/model/OrderModel.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/model/OrderModel.java index 6d87cef3d3..eb933f8241 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/model/OrderModel.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/model/OrderModel.java @@ -6,28 +6,17 @@ import static com.mogo.och.bus.constant.BusConst.STATION_STATUS_ARRIVING; import static com.mogo.och.bus.constant.BusConst.STATION_STATUS_STOPPED; import android.content.Context; -import android.os.Handler; -import android.os.Message; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.alibaba.android.arouter.launcher.ARouter; -import com.amap.api.maps.model.LatLng; import com.elegant.network.utils.GsonUtil; import com.mogo.aicloud.services.socket.IMogoOnMessageListener; -import com.mogo.eagle.core.data.enums.EventTypeEnumNew; -import com.mogo.eagle.core.data.msgbox.MsgBoxBean; -import com.mogo.eagle.core.data.msgbox.MsgBoxType; -import com.mogo.eagle.core.data.msgbox.V2XMsg; import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener; -import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager; import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager; import com.mogo.eagle.core.utilcode.util.CoordinateUtils; import com.mogo.commons.AbsMogoApplication; -import com.mogo.commons.module.status.IMogoStatusChangedListener; -import com.mogo.commons.module.status.MogoStatusManager; -import com.mogo.commons.module.status.StatusDescriptor; import com.mogo.eagle.core.data.BaseData; import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; import com.mogo.eagle.core.data.config.FunctionBuildConfig; @@ -38,19 +27,15 @@ import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg; import com.mogo.och.common.module.bean.dpmsg.DPMsgType; import com.mogo.och.common.module.bean.dpmsg.LoginCacheStatus; import com.mogo.och.common.module.bean.dpmsg.TaskDetailsMsg; -import com.mogo.och.common.module.bean.dpmsg.WriteOffDevicesMsg; -import com.mogo.och.common.module.bean.dpmsg.WriteOffMsg; import com.mogo.och.common.module.biz.constant.LoginStatusManager; import com.mogo.och.data.bean.BusStationBean; import com.mogo.och.common.module.biz.common.socketmessage.data.SystemMsg; import com.mogo.och.common.module.biz.constant.OchCommonConst; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener; -import com.mogo.eagle.core.function.api.autopilot.IMoGoPlanningRottingListener; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager; -import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager; import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.GsonUtils; @@ -58,12 +43,9 @@ import com.mogo.eagle.core.utilcode.util.NetworkUtils; import com.mogo.eagle.core.utilcode.util.ToastUtils; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.och.bus.R; -import com.mogo.och.bus.bean.BusRoutePlanningUpdateReqBean; import com.mogo.och.data.bean.BusRoutesResult; -import com.mogo.och.bus.bean.WriteOffPassenger; import com.mogo.och.bus.callback.IBusADASStatusCallback; import com.mogo.och.bus.callback.IBusControllerStatusCallback; -import com.mogo.och.bus.callback.IPassengerCallback; import com.mogo.och.bus.callback.IRefreshBusStationsCallback; import com.mogo.och.bus.callback.ISlidePannelHideCallback; import com.mogo.och.bus.constant.BusConst; @@ -77,7 +59,6 @@ import com.mogo.och.common.module.biz.provider.LoginService; import com.mogo.och.common.module.callback.OchAdasStartFailureCallback; import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager; import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager; -import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil; import com.mogo.och.common.module.utils.DateTimeUtil; import com.mogo.och.common.module.utils.NumberFormatUtil; import com.mogo.och.common.module.utils.PinYinUtil; @@ -106,13 +87,8 @@ import mogo.telematics.pad.MessagePad; */ public class OrderModel { private final String TAG = OrderModel.class.getSimpleName(); - private int currentLineId = -1; - private int currentTaskId = -1; private int backgroundCurrentStationIndex = 0;//A->B 此处值是A站点索引 - private static volatile OrderModel sInstance; - public double mLongitude = 0; - public double mLatitude = 0; private Context mContext; private final List stationList = new ArrayList<>(); private BusRoutesResult busRoutesResult = null; @@ -122,17 +98,12 @@ public class OrderModel { private boolean isGoingToNextStation = false; // 运营类型 private static final int VEHICLE_TYPE = 10; - private static final int MSG_QUERY_BUS_STATION = 1001; - private static final long QUERY_BUS_STATION_DELAY = 5000; private IRefreshBusStationsCallback refreshBusStationsCallback; private ISlidePannelHideCallback slidePanelHideCallback; private IBusControllerStatusCallback mControllerStatusCallback; //Model->Presenter:VR mode等 - private IPassengerCallback mPassengerCallback; //乘客核销回调 private IBusADASStatusCallback mADASStatusCallback; - List points = new ArrayList<>();//全路径信息 - private volatile boolean isArrivedStation = false; //0: 代表没有启动过 1代表是启动第一次,当>=1 代表是重试 每次到站/路线结束清空置为0 @@ -140,17 +111,6 @@ public class OrderModel { private LoginService loginService; - private final Handler handler = new Handler(new Handler.Callback() { - @Override - public boolean handleMessage(Message msg) { - if (msg.what == MSG_QUERY_BUS_STATION) { - queryBusRoutes(); - return true; - } - return false; - } - }); - public static OrderModel getInstance() { if (sInstance == null) { synchronized (OrderModel.class) { @@ -172,11 +132,6 @@ public class OrderModel { // 定位监听 CallerChassisLocationGCJ02ListenerManager.INSTANCE.addListener(TAG,10,mMapLocationListener); - MogoStatusManager.getInstance().registerStatusChangedListener(TAG, StatusDescriptor.VR_MODE, mMogoStatusChangedListener); - - //自动驾驶路线规划接口 - CallerPlanningRottingListenerManager.INSTANCE.addListener(TAG, moGoAutopilotPlanningListener); - //开启自驾后 异常信息返回 OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(mAdasStartFailureListener); @@ -184,9 +139,6 @@ public class OrderModel { OCHSocketMessageManager.msgMonitorType, mMogoOnMessageListener); -// OCHSocketMessageManager.INSTANCE.registerSocketMessageListener(//监听核销乘客 -// OCHSocketMessageManager.msgWriteOffPassengerType, -// mWriteOffPassengeOnMessageListener); TicketModel.INSTANCE.load(); AbnormalFactorsLoopManager.INSTANCE.startLoopAbnormalFactors(mContext); @@ -289,24 +241,6 @@ public class OrderModel { } }; -// private final IMogoOnMessageListener mWriteOffPassengeOnMessageListener = -// new IMogoOnMessageListener() { -// @Override -// public Class target() { -// return WriteOffPassenger.class; -// } -// -// @Override -// public void onMsgReceived(WriteOffPassenger passenger) { -// //进行播报 -// CallerLogger.i(M_BUS + TAG,"passenger = "+ GsonUtil.jsonFromObject(passenger)); -// if (passenger != null && passenger.passengerSize == 0) return; -// if (mPassengerCallback != null){ -// mPassengerCallback.playPassenger(passenger); -// } -// } -// }; - public void setAdasStatusCallback(IBusADASStatusCallback callback){ this.mADASStatusCallback = callback; } @@ -315,10 +249,6 @@ public class OrderModel { this.refreshBusStationsCallback = callback; } - public void setPassengerCallback(IPassengerCallback callback) { - this.mPassengerCallback = callback; - } - public void setSlidePanelHideCallback(ISlidePannelHideCallback callback) { this.slidePanelHideCallback = callback; } @@ -327,44 +257,11 @@ public class OrderModel { this.mControllerStatusCallback = callback; } - private final IMoGoPlanningRottingListener moGoAutopilotPlanningListener = new IMoGoPlanningRottingListener() { - - @Override - public void onAutopilotRotting(MessagePad.GlobalPathResp routeList) { - if (null != routeList && routeList.getWayPointsList().size() > 0) { - points.clear(); - points.addAll(coordinateConverterWgsToGcjList(mContext, routeList.getWayPointsList())); - } - } - - }; - - public static List coordinateConverterWgsToGcjList(Context mContext, List mogoLatLngList) { - List points = new ArrayList<>(); - for (MessagePad.Location m : mogoLatLngList) { - LatLng mogoLatLng = CoordinateCalculateRouteUtil.coordinateConverterWgsToGcj(mContext, m); - BusRoutePlanningUpdateReqBean.Result result = new BusRoutePlanningUpdateReqBean.Result(); - result.latitude = mogoLatLng.latitude; - result.longitude = mogoLatLng.longitude; - points.add(result); - } - return points; - } - - public void debugUpdateOrderRoute(List list) { - points.clear(); - points.addAll(coordinateConverterWgsToGcjList(mContext, list)); - } - public void release() { - MogoStatusManager.getInstance().unregisterStatusChangedListener(TAG, StatusDescriptor.VR_MODE, mMogoStatusChangedListener); - // 注销定位监听 CallerChassisLocationGCJ02ListenerManager.INSTANCE.removeListener(TAG); - //自动驾驶路线规划接口 - CallerPlanningRottingListenerManager.INSTANCE.removeListener(moGoAutopilotPlanningListener); loginService = null; OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(null); @@ -384,18 +281,6 @@ public class OrderModel { return sInstance; } - private final IMogoStatusChangedListener mMogoStatusChangedListener = new IMogoStatusChangedListener() { - // VR mode变更回调 - @Override - public void onStatusChanged(StatusDescriptor descriptor, boolean isTrue) { - if (StatusDescriptor.VR_MODE == descriptor) { - if (mControllerStatusCallback != null) { - mControllerStatusCallback.onVRModeChanged(isTrue); - } - } - } - }; - private final OchAdasStartFailureCallback mAdasStartFailureListener = new OchAdasStartFailureCallback() { @Override public void brakeStatusChanged(boolean isBrakeAvailable) { @@ -418,8 +303,6 @@ public class OrderModel { @Override public void onChassisLocationGCJ02(@Nullable MogoLocation mogoLocation) { if (null == mogoLocation) return; - mLongitude = mogoLocation.getLongitude(); - mLatitude = mogoLocation.getLatitude(); if (mControllerStatusCallback != null) { mControllerStatusCallback.onCarLocationChanged(mogoLocation); } @@ -450,7 +333,6 @@ public class OrderModel { CallerLogger.d(M_BUS + TAG, "行程日志-judgeArrivedStation() distance = " + distance + " to " + upcomingStation.getName()); onArriveAt(null); //无自动驾驶到站信息传null - return; } } @@ -605,7 +487,7 @@ public class OrderModel { */ public void abortTask() { CallerLogger.d(M_BUS + TAG, "结束当前路线abortTask"); - OrderServiceManager.abortTask(mContext, currentTaskId + OrderServiceManager.abortTask(mContext, busRoutesResult.getTaskId() , new OchCommonServiceCallback() { @Override public void onSuccess(BaseData o) { @@ -617,7 +499,6 @@ public class OrderModel { removeTipRunnables(); // 取消自驾 CallerAutoPilotControlManager.INSTANCE.cancelAutoPilot(); - // startOrStopQueryPassengerWriteOff(false); } } @@ -788,41 +669,19 @@ public class OrderModel { OrderServiceManager.arriveSiteStation(mContext, stationList.get(arrivedStationIndex).getSeq(), stationList.get(arrivedStationIndex).getSiteId(), - currentTaskId,writeVersion, + busRoutesResult.getTaskId(),writeVersion, new OchCommonServiceCallback() { @Override public void onSuccess(BaseData o) { CallerLogger.d(M_BUS + TAG, "行程日志-arriveSiteStation success"); -// if (o != null && o.code == 0){ -// queryBusRoutes(); -// isArrivedStation = true; -// isGoingToNextStation = false; -// arriveStationSuccess(arrivedStationIndex, departureStopName, -// arriveStation,arriveStationKr); -// } - //5s轮询核销乘客 -// startOrStopQueryPassengerWriteOff(true); } @Override public void onError() { -// if (!NetworkUtils.isConnected(mContext)) { -// ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); -// } else { -// ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); -// } } @Override public void onFail(int code, String failMsg) { -// if (ToastUtilsOch.isCustomFastClick(5000)) { -// if (!NetworkUtils.isConnected(mContext)) { -// ToastUtils.showShort("网络异常,请稍后重试"); -// } else { -// if (isArrivedStation) return; -// ToastUtils.showShort(failMsg); -// } -// } } }); } @@ -925,36 +784,19 @@ public class OrderModel { OrderServiceManager.leaveStation(mContext, stationList.get(backgroundCurrentStationIndex).getSeq(), stationList.get(backgroundCurrentStationIndex).getSiteId(), - currentTaskId,writeVersion, + busRoutesResult.getTaskId(),writeVersion, new OchCommonServiceCallback() { @Override public void onSuccess(BaseData o) { -// isArrivedStation = false; -// CallerLogger.d(M_BUS + TAG, "行程日志-离站成功开往下一站===="); -// //需要更改当前站和下一站的状态 然后渲染 -// //startOrStopQueryPassengerWriteOff(false); -// queryBusRoutes(); -// leaveStationSuccess(backgroundCurrentStationIndex, currentStationName, -// finalNextStationName,finalNextStationNameKr); } @Override public void onError() { -// if (!NetworkUtils.isConnected(mContext)) { -// ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); -// } else { -// ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); -// } } @Override public void onFail(int code, String failMsg) { -// if (!NetworkUtils.isConnected(mContext)) { -// ToastUtils.showShort("网络异常,请稍后重试"); -// } else { -// ToastUtils.showShort("离站上报失败:" + failMsg); -// } } }); } @@ -1004,12 +846,8 @@ public class OrderModel { private void updateBusStatus(BusRoutesResult result) { if (result == null) return; busRoutesResult = result; - List site = result.getSites(); - currentTaskId = result.getTaskId(); - currentLineId = result.getLineId(); stationList.clear(); - stationList.addAll(site); - + stationList.addAll(result.getSites()); for (int i = 0; i < stationList.size(); i++) { BusStationBean s = stationList.get(i); @@ -1039,7 +877,6 @@ public class OrderModel { if (busRoutesResult != null){ beforeTaskTips(); } -// startOrStopQueryPassengerWriteOff(true); }else { removeTipRunnables(); } @@ -1162,13 +999,6 @@ public class OrderModel { } } - /** - * 延时查询站点信心 - */ - private void queryBusStationDelay() { - handler.sendEmptyMessageDelayed(MSG_QUERY_BUS_STATION, QUERY_BUS_STATION_DELAY); - } - /** * 在踩刹车、控制方向盘等操作后,会停止自动驾驶,重启自动驾驶的话相当于重新设置自动驾驶目的地 */ @@ -1202,7 +1032,7 @@ public class OrderModel { */ private void endTask() { CallerLogger.d(M_BUS + TAG, "任务正常走完endTask()"); - OrderServiceManager.endTask(mContext, currentTaskId + OrderServiceManager.endTask(mContext, busRoutesResult.getTaskId() , new OchCommonServiceCallback() { @Override public void onSuccess(BaseData o) { @@ -1212,7 +1042,6 @@ public class OrderModel { clearBusStationDatas(); queryBusRoutes();// 重新获取任务 removeTipRunnables(); -// startOrStopQueryPassengerWriteOff(false); VoiceManager.INSTANCE.endOrderBus(); sendEndTaskToClient(); } @@ -1281,7 +1110,8 @@ public class OrderModel { // 登出 public void logout() { - loginService.loginOut(mLatitude, mLongitude); + MogoLocation gcj02 = CallerChassisLocationGCJ02ListenerManager.INSTANCE.getChassisLocationGCJ02(); + loginService.loginOut(gcj02.getLatitude(), gcj02.getLongitude()); } public void triggerStartServiceEvent(boolean isRestart, boolean send) { @@ -1291,7 +1121,7 @@ public class OrderModel { BusStationBean currentStation = stationList.get(backgroundCurrentStationIndex); BusStationBean nextStation = stationList.get(backgroundCurrentStationIndex + 1); BusAnalyticsManager.getInstance().triggerStartAutopilotEvent(isRestart, send, - currentStation.getName(), nextStation.getName(), currentLineId); + currentStation.getName(), nextStation.getName(), busRoutesResult.getLineId()); } public void triggerUnableStartAPReasonEvent() { @@ -1301,7 +1131,7 @@ public class OrderModel { BusStationBean currentStation = stationList.get(backgroundCurrentStationIndex); BusStationBean nextStation = stationList.get(backgroundCurrentStationIndex + 1); BusAnalyticsManager.getInstance().triggerUnableStartAPReasonEvent( - currentStation.getName(), nextStation.getName(), currentLineId, + currentStation.getName(), nextStation.getName(), busRoutesResult.getLineId(), OCHAdasAbilityManager.getInstance().getAutopilotUnAbilityReason()); } @@ -1309,6 +1139,14 @@ public class OrderModel { return busRoutesResult; } + public BusStationBean getBusNextStation() { + // A->B 的过程中A站点的信息 + if (stationList == null || backgroundCurrentStationIndex >= stationList.size() - 1) { + return null; + } + return stationList.get(backgroundCurrentStationIndex); + } + public int getCurrentStationIndex() { return backgroundCurrentStationIndex; } @@ -1376,12 +1214,4 @@ public class OrderModel { return parameters; } - //接驳车不需要实现 - public void startOrStopOrderLoop(boolean start) { - - } - // //接驳车不需要实现 - public void runCarHeartbeat() { - - } } diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/model/TicketModel.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/model/TicketModel.kt index 8d634c146d..0af4f82efc 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/model/TicketModel.kt +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/model/TicketModel.kt @@ -2,6 +2,7 @@ package com.mogo.och.bus.model import com.elegant.network.utils.GsonUtil import com.mogo.aicloud.services.socket.IMogoOnMessageListener +import com.mogo.commons.AbsMogoApplication import com.mogo.commons.voice.AIAssist import com.mogo.eagle.core.data.enums.EventTypeEnumNew import com.mogo.eagle.core.data.msgbox.MsgBoxBean @@ -14,19 +15,27 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.i import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.GsonUtils +import com.mogo.och.bus.bean.WriteOffCountResponse import com.mogo.och.bus.bean.WriteOffPassenger +import com.mogo.och.bus.net.OrderServiceManager import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg import com.mogo.och.common.module.bean.dpmsg.DPMsgType import com.mogo.och.common.module.bean.dpmsg.WriteOffDevicesMsg import com.mogo.och.common.module.bean.dpmsg.WriteOffMsg import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager import com.mogo.och.common.module.biz.constant.OchCommonConst +import com.mogo.och.common.module.biz.network.OchCommonServiceCallback +import com.mogo.och.common.module.manager.loopmanager.BizLoopManager +import com.mogo.och.common.module.manager.loopmanager.LoopInfo import com.mogo.och.common.module.voice.VoiceNotice.showNotice +import io.reactivex.schedulers.Schedulers object TicketModel : IReceivedMsgListener, IMogoOnMessageListener { private val TAG = "TicketModel" + private val SELECTWRITEOFFCOUNT = "SELECTWRITEOFFCOUNT" + init { //监听乘客屏发来的消息 @@ -38,7 +47,7 @@ object TicketModel : IReceivedMsgListener, IMogoOnMessageListener{ + override fun onSuccess(data: WriteOffCountResponse?) { + + } + + override fun onFail(code: Int, msg: String?) { + + } + }) } private fun receiveWrteOffInfo(writeOffMsg: WriteOffMsg?) { diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/net/IBascApiService.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/net/IBascApiService.java index 2c46b0fb79..e1503c35cb 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/net/IBascApiService.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/net/IBascApiService.java @@ -10,6 +10,7 @@ import com.mogo.och.bus.bean.QueryLeaveAwayPassengersRequest; import com.mogo.och.bus.bean.QueryLeaveAwayPassengersResponse; import com.mogo.och.bus.bean.BusResetDrivingLineRequest; import com.mogo.och.bus.bean.BusUpdateSiteStatusRequest; +import com.mogo.och.bus.bean.WriteOffCountResponse; import io.reactivex.Observable; import retrofit2.http.Body; @@ -125,5 +126,11 @@ public interface IBascApiService { @Headers( {"Content-type:application/json;charset=UTF-8"} ) @POST("/och-shuttle-cabin/api/flow/v1/driver/endTask") Observable endTask(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusCloseTaskRequest data); + + + @Headers( {"Content-type:application/json;charset=UTF-8"} ) + @GET("och-shuttle-cabin/api/business/v1/task/writeOffCount") + Observable writeOffCount(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("taskId") String taskId, @Query("siteId") String siteId); + } diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/net/OrderServiceManager.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/net/OrderServiceManager.kt index 387ef5ba98..0941e4f2b0 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/net/OrderServiceManager.kt +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/net/OrderServiceManager.kt @@ -202,4 +202,21 @@ object OrderServiceManager { .transformTry() .subscribe(OchCommonSubscribeImpl(context, callback, "queryBusLines")) } + + @JvmStatic + fun queryBusTaskByLineId( + context: Context, + lineId: String?, + siteId: String?, + callback: OchCommonServiceCallback? + ) { + mService.writeOffCount( + MoGoAiCloudClientConfig.getInstance().serviceAppId, + SharedPrefsMgr.getInstance().token, + lineId, + siteId + ) + .transformTry() + .subscribe(OchCommonSubscribeImpl(context, callback, "writeOffCount")) + } } \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/presenter/BusModelLoopManager.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/presenter/BusModelLoopManager.java index d85b685282..bab7fc443b 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/presenter/BusModelLoopManager.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/presenter/BusModelLoopManager.java @@ -53,25 +53,4 @@ public class BusModelLoopManager { // mQueryPassengerDisposable = null; // } // } - - public void startHeartbeatLoop() { - if (mHeartbeatDisposable != null && !mHeartbeatDisposable.isDisposed()) { - return; - } - CallerLogger.i(M_BUS + TAG, "startHeartbeatLoop()"); - mHeartbeatDisposable = Observable.interval(BusConst.LOOP_DELAY, - BusConst.LOOP_PERIOD_60S, TimeUnit.MILLISECONDS) - .map((aLong -> aLong + 1)) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(aLong -> OrderModel.getInstance().runCarHeartbeat()); - } - - public void stopHeartbeatLoop() { - if (mHeartbeatDisposable != null) { - CallerLogger.i(M_BUS + TAG, "stopHeartbeatLoop()"); - mHeartbeatDisposable.dispose(); - mHeartbeatDisposable = null; - } - } } diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java index 300e9fe8f4..796b8b1ee7 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java @@ -10,7 +10,6 @@ import androidx.lifecycle.LifecycleOwner; import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.mvp.Presenter; -import com.mogo.commons.voice.AIAssist; import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; @@ -18,10 +17,8 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.och.data.bean.BusStationBean; -import com.mogo.och.bus.bean.WriteOffPassenger; import com.mogo.och.bus.callback.IBusADASStatusCallback; import com.mogo.och.bus.callback.IBusControllerStatusCallback; -import com.mogo.och.bus.callback.IPassengerCallback; import com.mogo.och.bus.callback.IRefreshBusStationsCallback; import com.mogo.och.bus.callback.ISlidePannelHideCallback; import com.mogo.och.bus.fragment.BusFragment; @@ -31,7 +28,6 @@ import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean; import com.mogo.och.common.module.biz.callback.ILoginCallback; import com.mogo.och.common.module.biz.constant.LoginStatusManager; import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager; -import com.mogo.och.common.module.voice.VoiceNotice; import java.util.ArrayList; @@ -49,7 +45,7 @@ import system_master.SystemStatusInfo; */ public class BusPresenter extends Presenter implements IRefreshBusStationsCallback, ISlidePannelHideCallback - , IMoGoAutopilotStatusListener, IBusControllerStatusCallback, ILoginCallback, IPassengerCallback, IBusADASStatusCallback { + , IMoGoAutopilotStatusListener, IBusControllerStatusCallback, ILoginCallback, IBusADASStatusCallback { private static final String TAG = "BusPresenter"; @@ -83,7 +79,6 @@ public class BusPresenter extends Presenter OrderModel.getInstance().setRefreshBusStationsCallback(this); OrderModel.getInstance().setSlidePanelHideCallback(this); OrderModel.getInstance().setControllerStatusCallback(this); - OrderModel.getInstance().setPassengerCallback(this); OrderModel.getInstance().setAdasStatusCallback(this); } @@ -91,7 +86,6 @@ public class BusPresenter extends Presenter OrderModel.getInstance().setRefreshBusStationsCallback(null); OrderModel.getInstance().setSlidePanelHideCallback(null); OrderModel.getInstance().setControllerStatusCallback(null); - OrderModel.getInstance().setPassengerCallback(null); OrderModel.getInstance().setAdasStatusCallback(null); OCHAdasAbilityManager.getInstance().release(); } @@ -192,11 +186,6 @@ public class BusPresenter extends Presenter } } - @Override - public void onVRModeChanged(boolean isVRMode) { - runOnUIThread(() -> mView.onVRModeChanged(isVRMode)); - } - @Override public void onCarLocationChanged(MogoLocation location) { if (null != location) { @@ -261,12 +250,10 @@ public class BusPresenter extends Presenter public void loginSuccess(DriverStatusQueryRespBean data) { CallerLogger.d(M_BUS + TAG, " loginStatus =" + LoginStatusManager.isLogin()); if(LoginStatusManager.isLogin()){ - OrderModel.getInstance().startOrStopOrderLoop(true); // OrderModel.getInstance().queryBusRoutes(); OrderModel.getInstance().queryBusCacheRoutes(); }else { BusTrajectoryManager.getInstance().stopTrajReqLoop(); - OrderModel.getInstance().startOrStopOrderLoop(false); BusTrajectoryManager.getInstance().stopTrajReqLoop(); clearBusStationsMarkers(); mView.hideSlidePanel(); @@ -279,19 +266,6 @@ public class BusPresenter extends Presenter } - @Override - public void playPassenger(WriteOffPassenger passenger) { - int passengerNum = passenger.passengerSize; - if (passengerNum > 1){ //多人播报 "x人" ---》x人核验通过 - VoiceNotice.showNotice(passengerNum+"人核验通过", AIAssist.LEVEL3); - OrderModel.getInstance().sendWriteOffNumToClient(passengerNum+"人核验通过"); - }else { //是 1 播放 "滴" 2022.11.09 改为: "核验通过" -// mView.playDI(); - VoiceNotice.showNotice("核验通过", AIAssist.LEVEL3); - OrderModel.getInstance().sendWriteOffNumToClient("核验通过"); - } - } - @Override public void onStartAdasFailure() { runOnUIThread(() -> mView.stopAnimAndUpdateBtnStatus()); diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/writeoff/WriteOffView.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/writeoff/WriteOffView.kt new file mode 100644 index 0000000000..c88d749fcd --- /dev/null +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/writeoff/WriteOffView.kt @@ -0,0 +1,49 @@ +package com.mogo.och.bus.ui.writeoff + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.findViewTreeViewModelStoreOwner +import com.mogo.och.bus.R + +class WriteOffView : ConstraintLayout, WriteOffViewModel.IwriteOffViewCallback { + + private val TAG = "ItineraryView" + + constructor(context: Context) : super(context) + + constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet) + + constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super(context, attributeSet, defStyleAttr) + + constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attributeSet, defStyleAttr, defStyleRes) + + private fun initView() { + LayoutInflater.from(context).inflate(R.layout.shuttle_wirte_off_view, this, true) + } + + + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + + val viewModel = findViewTreeViewModelStoreOwner()?.let { + ViewModelProvider(it).get(WriteOffViewModel::class.java) + } + + viewModel?.setWriteOffCallback(this) + } + + + init { + try { + initView() + } catch (e: Exception) { + e.printStackTrace() + } + } + + +} \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/writeoff/WriteOffViewModel.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/writeoff/WriteOffViewModel.kt new file mode 100644 index 0000000000..11c943b451 --- /dev/null +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/ui/writeoff/WriteOffViewModel.kt @@ -0,0 +1,29 @@ +package com.mogo.och.bus.ui.writeoff + +import androidx.lifecycle.ViewModel + +class WriteOffViewModel: ViewModel() { + + private val TAG = WriteOffViewModel::class.java.simpleName + + private var viewCallback:IwriteOffViewCallback?=null + + init { + + } + + fun setWriteOffCallback(viewCallback:IwriteOffViewCallback){ + this.viewCallback = viewCallback + } + + override fun onCleared() { + super.onCleared() + this.viewCallback = null + + } + + interface IwriteOffViewCallback{ + + } + +} \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/res/drawable-xhdpi/shuttle_write_off_bg.png b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/shuttle_write_off_bg.png new file mode 100755 index 0000000000..d4d1eac25f Binary files /dev/null and b/OCH/shuttle/driver/src/main/res/drawable-xhdpi/shuttle_write_off_bg.png differ diff --git a/OCH/shuttle/driver/src/main/res/drawable/bus_line_panel_bg.png b/OCH/shuttle/driver/src/main/res/drawable/bus_line_panel_bg.png deleted file mode 100755 index 3166d20e37..0000000000 Binary files a/OCH/shuttle/driver/src/main/res/drawable/bus_line_panel_bg.png and /dev/null differ diff --git a/OCH/shuttle/driver/src/main/res/layout/bus_base_fragment.xml b/OCH/shuttle/driver/src/main/res/layout/bus_base_fragment.xml index 4ec7f643b1..d42fc8e27d 100644 --- a/OCH/shuttle/driver/src/main/res/layout/bus_base_fragment.xml +++ b/OCH/shuttle/driver/src/main/res/layout/bus_base_fragment.xml @@ -201,6 +201,29 @@ app:layout_constraintLeft_toLeftOf="@id/module_mogo_och_station_panel_container" app:layout_constraintTop_toBottomOf="@id/module_mogo_och_station_panel_container" tools:visibility="visible" /> + + + + - - - - - - - - - - - - - - - - - + + + + + + \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/res/values/colors.xml b/OCH/shuttle/driver/src/main/res/values/colors.xml index 2851302580..90c817402c 100644 --- a/OCH/shuttle/driver/src/main/res/values/colors.xml +++ b/OCH/shuttle/driver/src/main/res/values/colors.xml @@ -57,4 +57,7 @@ #4DFFFFFF #FFFFFF #323C6F + #CAD6FF + #BF0E3DBC + #BF1E2E89 \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/res/values/strings.xml b/OCH/shuttle/driver/src/main/res/values/strings.xml index c9fc1117b7..4d190f9d75 100644 --- a/OCH/shuttle/driver/src/main/res/values/strings.xml +++ b/OCH/shuttle/driver/src/main/res/values/strings.xml @@ -39,6 +39,7 @@ 取消 暂无任务 + 本站核销成功:%1$s人 diff --git a/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/constant/BusPassengerConst.kt b/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/constant/BusPassengerConst.kt index 1aba2bfe5a..eb080ca191 100644 --- a/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/constant/BusPassengerConst.kt +++ b/OCH/shuttle/passenger/src/main/java/com/mogo/och/shuttle/passenger/constant/BusPassengerConst.kt @@ -32,5 +32,7 @@ class BusPassengerConst { const val BUS_SP_KEY_ORDER_SUM_DIS = "BUS_SP_KEY_ORDER_SUM_DIS" const val QUERY_BUS_P_STATION_DELAY = 3 * 1000L + + const val ARRIVE_DISTANCE_4_STATION_INTRODUCE = 200 //站点介绍 } } \ No newline at end of file