[charter]

[3.2.0]
[到站和结束订单数据传输到司机屏]
This commit is contained in:
yangyakun
2023-05-04 11:41:02 +08:00
parent 0fe15c01f9
commit 04932ce67e
4 changed files with 69 additions and 30 deletions

View File

@@ -1,3 +1,3 @@
package com.mogo.och.bus.passenger.bean.request
data class ArriveDestRequest(val sn:String, val lineId:Long)
data class ArriveDestRequest(val sn:String, val lineId:Long,val writtenVersion:Long)

View File

@@ -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<BaseData> {
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<BaseData> {
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(){

View File

@@ -107,11 +107,11 @@ object BusPassengerServiceManager {
.subscribe(OchCommonSubscribeImpl(context, callback, "serviceEnd"))
}
@JvmStatic
fun arriveDest(context: Context,lindId: Long ,callback: OchCommonServiceCallback<BaseData>?) {
fun arriveDest(context: Context,lindId: Long ,writtenVersion:Long,callback: OchCommonServiceCallback<BaseData>?) {
if(beforeNet()){
return
}
val request = ArriveDestRequest(draiverSn,lindId)
val request = ArriveDestRequest(draiverSn,lindId,writtenVersion)
mBusPassengerServiceApi.arriveDest(request = request).transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "arriveDest"))
}

View File

@@ -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()
)
}
}