Merge branch 'dev_minibus-d_230425_3.2.0' of gitlab.zhidaoauto.com:SCA/L4HA/AndroidApp/MoGoEagleEye into dev_minibus-d_230425_3.2.0

This commit is contained in:
wangmingjun
2023-05-04 14:59:16 +08:00
6 changed files with 88 additions and 31 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()
)
}
}

View File

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

View File

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