diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/request/ArriveDestRequest.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/request/ArriveDestRequest.kt index 4e7b634870..9871e43d19 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/request/ArriveDestRequest.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/bean/request/ArriveDestRequest.kt @@ -1,3 +1,3 @@ package com.mogo.och.bus.passenger.bean.request -data class ArriveDestRequest(val sn:String, val lineId:Long) \ No newline at end of file +data class ArriveDestRequest(val sn:String, val lineId:Long,val writtenVersion:Long) \ No newline at end of file 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 fdc60bf68f..4f47570d44 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 @@ -18,6 +18,7 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationWGS84Liste import com.mogo.eagle.core.function.api.autopilot.IMoGoPlanningRottingListener import com.mogo.eagle.core.function.call.autopilot.* import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager.startAutoPilot +import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager import com.mogo.eagle.core.network.utils.GsonUtil import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant @@ -31,8 +32,10 @@ import com.mogo.och.bus.passenger.constant.CharterPassengerConst import com.mogo.och.bus.passenger.net.BusPassengerModelLoopManager import com.mogo.och.bus.passenger.net.BusPassengerServiceManager import com.mogo.och.bus.passenger.utils.VoiceFocusManager +import com.mogo.och.common.module.bean.dpmsg.ArriveDestMsg import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager import com.mogo.och.common.module.biz.constant.LoginStatusManager +import com.mogo.och.common.module.biz.constant.OchCommonConst import com.mogo.och.common.module.biz.constant.TaxiLoginStatusEnum import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.manager.CharterSendTripInfoManager @@ -818,37 +821,62 @@ object CharterPassengerModel { @Synchronized fun arriveDest() { - orderInfo?.lineId?.let { - orderInfo?.siteId?.let { siteId -> - if (orderInfo!!.arriveStatus == OrderInfoResponse.ARRIVING) { - if (broadcastList.get("${siteId}$endKey") == null || broadcastList.get("${siteId}$endKey") == false) { - BusPassengerServiceManager.arriveDest( - mContext, lindId = it, object : OchCommonServiceCallback { - override fun onSuccess(data: BaseData?) { - if (null != data && 0 == data.code) { - VoiceManager.arrivedStation( - orderInfo!!.siteName!!, - orderInfo!!.siteNameKr ?: "", - VoiceFocusManager.getVoiceCmdCallBack() - ) - broadcastList["${siteId}$endKey"] = true - // 到站结束自驾 - CallerAutoPilotControlManager.cancelAutoPilot() - // 结束路距计算 - endCalculateDistanceLoop() - // 到站置距离位0 - invokeStationDistanceListener(-1,-1) - } - } + 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 msg = ArriveDestMsg( + orderInfo?.orderNo?:"", + lineId.toInt(), + order.lineName?:"", + order.startSiteId?:0, + order.startSiteName?:"", + siteId.toInt(), + order.siteName, + 1, + currentTimeStamp + ) + CallerTelematicManager.sendMsgToServer( + OchCommonConst.BUSINESS_STRING, + GsonUtils.toJson(msg).toByteArray() + ) - override fun onFail(code: Int, msg: String) { - ToastUtils.showShort("$code:$msg") - } - }) - } + // 到站结束自驾 + CallerAutoPilotControlManager.cancelAutoPilot() + // 结束路距计算 + endCalculateDistanceLoop() + // 到站置距离位0 + invokeStationDistanceListener(-1,-1) + + } + } + + override fun onFail(code: Int, msg: String) { + ToastUtils.showShort("$code:$msg") + } + }) + } + } } } } + } fun cleanbroadcastListInfo(){ diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/net/BusPassengerServiceManager.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/net/BusPassengerServiceManager.kt index 6561995bb5..95201d05f9 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/net/BusPassengerServiceManager.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/net/BusPassengerServiceManager.kt @@ -107,11 +107,11 @@ object BusPassengerServiceManager { .subscribe(OchCommonSubscribeImpl(context, callback, "serviceEnd")) } @JvmStatic - fun arriveDest(context: Context,lindId: Long ,callback: OchCommonServiceCallback?) { + fun arriveDest(context: Context,lindId: Long ,writtenVersion:Long,callback: OchCommonServiceCallback?) { if(beforeNet()){ return } - val request = ArriveDestRequest(draiverSn,lindId) + val request = ArriveDestRequest(draiverSn,lindId,writtenVersion) mBusPassengerServiceApi.arriveDest(request = request).transformTry() .subscribe(OchCommonSubscribeImpl(context, callback, "arriveDest")) } diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/OrderInfoPresenter.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/OrderInfoPresenter.kt index c903ca2609..43b3c3d64c 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/OrderInfoPresenter.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/OrderInfoPresenter.kt @@ -2,10 +2,14 @@ package com.mogo.och.bus.passenger.presenter import androidx.lifecycle.LifecycleOwner import com.mogo.eagle.core.data.BaseData +import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager +import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.och.bus.passenger.callback.ITimeCallback import com.mogo.och.bus.passenger.model.CharterPassengerModel import com.mogo.och.bus.passenger.ui.dialogfragment.fragment.OrderInfoFragment +import com.mogo.och.common.module.bean.dpmsg.EndOrderMsg +import com.mogo.och.common.module.biz.constant.OchCommonConst import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.utils.DateTimeUtil @@ -51,6 +55,13 @@ class OrderInfoPresenter(view: OrderInfoFragment?) : ToastUtils.showShort("结束成功") CharterPassengerModel.setEndOrderStatus() mView?.closeDialogContaion() + val msg = EndOrderMsg( + CharterPassengerModel.getCurrentOrderInfo()?.orderNo?:"", + ) + CallerTelematicManager.sendMsgToServer( + OchCommonConst.BUSINESS_STRING, + GsonUtils.toJson(msg).toByteArray() + ) } } diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPMsgType.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPMsgType.kt index e47d5900fd..a531fe2cc2 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPMsgType.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPMsgType.kt @@ -10,5 +10,7 @@ enum class DPMsgType(val type: Int) { TYPE_OPEN_CLOSE_DOOR(2),//开关门 TYPE_ORDER_CLOSED(3), // 订单结束 TYPE_TASK_DETAILS(4), //路线任务详情 - TYPE_LOGIN_STATUS(5) //login status + TYPE_LOGIN_STATUS(5), //login status + TYPE_ARRIVEDEST_STATUS(6), //到站通知 status + TYPE_ORDER_CLOSED_BY_M1_STATUS(7) //到站通知 status } \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt index 5cf9c2600c..81b6a30fa8 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt @@ -28,6 +28,22 @@ data class ChangeDestMsg( var writtenVersion:Long?, //版本标记 ): BaseDPMsg(DPMsgType.TYPE_CHANGE_DEST.type) +data class ArriveDestMsg( + var orderNo: String, //订单id + var lineId: Int, //线路id + var lineName: String = "", //线路名称 + var startSiteId: Int= 0, //当前站点 + var startSiteName: String = "", + var destSiteId: Int= 0, //目的地 + var destSiteName: String = "", + var arriveStatus:Int?, //1:未到达 2:到达 + var writtenVersion:Long?, //版本标记 +): BaseDPMsg(DPMsgType.TYPE_ARRIVEDEST_STATUS.type) + +data class EndOrderMsg( + var orderNo: String, //订单id +): BaseDPMsg(DPMsgType.TYPE_ORDER_CLOSED_BY_M1_STATUS.type) + data class DPCommonOperationMsg( var msg: String ): BaseDPMsg(DPMsgType.TYPE_COMMON.type)