diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt index ceb97a05e8..440592c557 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt @@ -844,71 +844,88 @@ object CharterPassengerModel { @Synchronized fun arriveDest() { - orderInfo?.let { order-> - order.lineId?.let {lineId-> - order.siteId?.let { siteId -> - if (order.arriveStatus == OrderInfoResponse.ARRIVING) { - if (broadcastList["${siteId}$endKey"] == null || broadcastList["${siteId}$endKey"] == false) { - val currentTimeStamp = DateTimeUtil.getCurrentTimeStamp() - BusPassengerServiceManager.arriveDest( - mContext, - lindId = lineId, - writtenVersion = currentTimeStamp, - object : OchCommonServiceCallback { - override fun onSuccess(data: BaseData?) { - if (null != data && 0 == data.code) { - VoiceManager.arrivedStation( - order.siteName!!, - order.siteNameKr ?: "", - VoiceFocusManager.getVoiceCmdCallBack() - ) - broadcastList["${siteId}$endKey"] = true - // 给司机端 + val (order, lineId, siteId) = getOrderInfo() + if(order!=null&&lineId!=null&&siteId!=null){ + if (order.arriveStatus == OrderInfoResponse.ARRIVING) { + if (broadcastList["${siteId}$endKey"] == null || broadcastList["${siteId}$endKey"] == false) { + val currentTimeStamp = DateTimeUtil.getCurrentTimeStamp() + BusPassengerServiceManager.arriveDest( + mContext, + lindId = lineId, + writtenVersion = currentTimeStamp, + object : OchCommonServiceCallback { + override fun onSuccess(data: BaseData?) { + if (null != data && 0 == data.code) { + arrivedDeskSuccess(currentTimeStamp,true) + } + } - val msg = ChangeDestMsg( - order.orderNo?:":", - lineId.toInt(), - order.lineName?:"", - order.startSiteId?:0, - order.startSiteName?:"", - siteId.toInt(), - order.siteName, - true, - 2, - currentTimeStamp - ) - CallerTelematicManager.sendMsgToServer( - OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(msg).toByteArray() - ) - CallerLogger.d(M_BUS_P + BaseDPMsg.TAG, "到站发送数据${msg}") - - switchLine5minWait?.let { - if (!it.isDisposed) { - it.dispose() - } - } - - // 到站结束自驾 - CallerAutoPilotControlManager.cancelAutoPilot() - // 结束路距计算 - endCalculateDistanceLoop() - // 到站置距离位0 - invokeStationDistanceListener(-1,-1) - - } - } - - override fun onFail(code: Int, msg: String) { - ToastUtils.showShort("$code:$msg") - } - }) - } - } + override fun onFail(code: Int, msg: String) { + ToastUtils.showShort("$code:$msg") + } + }) } } } + } + fun arrivedDeskSuccess( + currentTimeStamp: Long, + needSendDriver:Boolean + ) { + val (order, lineId, siteId) = getOrderInfo() + if(order!=null&&lineId!=null&&siteId!=null){ + VoiceManager.arrivedStation( + order.siteName!!, + order.siteNameKr ?: "", + VoiceFocusManager.getVoiceCmdCallBack() + ) + broadcastList["${siteId}$endKey"] = true + // 给司机端 + if (needSendDriver) { + val msg = ChangeDestMsg( + order.orderNo ?: ":", + lineId.toInt(), + order.lineName ?: "", + order.startSiteId ?: 0, + order.startSiteName ?: "", + siteId.toInt(), + order.siteName, + true, + OrderInfoResponse.ARRIVED, + currentTimeStamp + ) + CallerTelematicManager.sendMsgToServer( + OchCommonConst.BUSINESS_STRING, + GsonUtils.toJson(msg).toByteArray() + ) + CallerLogger.d(M_BUS_P + BaseDPMsg.TAG, "到站发送数据${msg}") + } + + switchLine5minWait?.let { + if (!it.isDisposed) { + it.dispose() + } + } + + // 到站结束自驾 + CallerAutoPilotControlManager.cancelAutoPilot() + // 结束路距计算 + endCalculateDistanceLoop() + // 到站置距离位0 + invokeStationDistanceListener(-1, -1) + } + } + + private fun getOrderInfo():Triple{ + this.orderInfo?.let { order-> + this.orderInfo?.lineId?.let { lineId -> + this.orderInfo?.siteId?.let { siteId -> + return Triple(order,lineId,siteId) + } + } + } + return Triple(null,null,null) } @Synchronized @@ -961,9 +978,11 @@ object CharterPassengerModel { } val parameters = initAutopilotControlParameters() if (null == parameters) { + ToastUtils.showShort("请选择站点") CallerLogger.e(SceneConstant.M_BUS + TAG, "行程日志-AutopilotControlParameters is empty.") return } + ToastUtils.showShort("启动自动驾驶中") startAutoPilot(parameters) CallerLogger.d( SceneConstant.M_BUS + TAG, diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionOrderPresenter.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionOrderPresenter.kt index ff00e03a79..13422731e7 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionOrderPresenter.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionOrderPresenter.kt @@ -180,10 +180,14 @@ class BusPassengerFunctionOrderPresenter(view: M1OrderLineFragment?) : if (type == OchCommonConst.BUSINESS_STRING) { val msg = GsonUtils.fromJson( String(byteArray), - ChangeDestMsg::class.java - ) as ChangeDestMsg - CallerLogger.d(M_BUS_P + BaseDPMsg.TAG, "接受数据:切换站点${msg}") + BaseDPMsg::class.java + ) as BaseDPMsg if (msg.type == DPMsgType.TYPE_CHANGE_DEST.type) { + val msg = GsonUtils.fromJson( + String(byteArray), + ChangeDestMsg::class.java + ) as ChangeDestMsg + CallerLogger.d(M_BUS_P + BaseDPMsg.TAG, "接受数据:切换站点${msg}") if (msg.isConfirmed) { ToastUtils.showShort("站点确定") mView?.setEnableSiteStatus(true) diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/receive/DriverMessage.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/receive/DriverMessage.kt index 2aa969855f..b1f3cbf364 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/receive/DriverMessage.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/receive/DriverMessage.kt @@ -7,12 +7,14 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.ActivityUtils import com.mogo.eagle.core.utilcode.util.GsonUtils +import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.bus.passenger.R -import com.mogo.och.common.module.bean.dpmsg.AppConnectMsg -import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg -import com.mogo.och.common.module.bean.dpmsg.DPCommonOperationMsg -import com.mogo.och.common.module.bean.dpmsg.DPMsgType +import com.mogo.och.bus.passenger.bean.response.OrderInfoResponse +import com.mogo.och.bus.passenger.model.CharterPassengerModel +import com.mogo.och.bus.passenger.net.BusPassengerModelLoopManager +import com.mogo.och.bus.passenger.presenter.BusPassengerFunctionOrderPresenter +import com.mogo.och.common.module.bean.dpmsg.* 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.manager.devicemanage.LightAirconditionDoorManager @@ -20,6 +22,7 @@ import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStat import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.RxUtils import com.mogo.och.common.module.utils.SoundPoolHelper +import com.mogo.och.common.module.voice.VoiceNotice object DriverMessage: IReceivedMsgListener { override fun onReceivedMsg(type: Int, byteArray: ByteArray) { @@ -60,15 +63,23 @@ object DriverMessage: IReceivedMsgListener { ) } if(msg.isPlay){ - AIAssist.getInstance(AbsMogoApplication.getApp()).speakTTSVoiceWithLevel(msg.msg, AIAssist.LEVEL1) + VoiceNotice.showNotice(msg.msg, AIAssist.LEVEL1) if(msg.msg.contains("核销成功")){ - RxUtils.createSubscribe(15_000) { - val string = AbsMogoApplication.getApp().getString(R.string.m1_welcome_tts) - AIAssist.getInstance(AbsMogoApplication.getApp()).speakTTSVoiceWithLevel(string, AIAssist.LEVEL1) - } + val string = AbsMogoApplication.getApp().getString(R.string.m1_welcome_tts) + VoiceNotice.showNotice(string, AIAssist.LEVEL1,15_000) } } } + DPMsgType.TYPE_CHANGE_DEST.type -> { + val msg = GsonUtils.fromJson( + String(byteArray), + ChangeDestMsg::class.java + ) as ChangeDestMsg + if (msg.isConfirmed&&msg.arriveStatus== OrderInfoResponse.ARRIVED) { + CallerLogger.d(SceneConstant.M_BUS_P + BaseDPMsg.TAG, "接受数据:到站${msg}") + CharterPassengerModel.arrivedDeskSuccess(msg.writtenVersion?:0,false) + } + } else -> {} } } diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/impl/GoViewWithArrive.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/impl/GoViewWithArrive.kt index 94fc93bf6c..cb20a12286 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/impl/GoViewWithArrive.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/impl/GoViewWithArrive.kt @@ -82,7 +82,6 @@ class GoViewWithArrive @JvmOverloads constructor( ToastUtils.showShort("设备未就绪请稍等") } IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE -> {// - ToastUtils.showShort("启动自动驾驶中") CallerAutoPilotControlManager.sendPlanningCmd(2) CharterPassengerModel.startAutopilot() onceRegisterAutoStatus()