[6.0.0] 轨迹逻辑加载调整
This commit is contained in:
@@ -20,5 +20,5 @@ data class UnmannedLogoutReqBean(var sn: String, var loc: GcjLatLon?)
|
||||
data class StartServiceReqBean(var sn: String, var gcjLat: Double, var gcjLon: Double)
|
||||
|
||||
data class StartServiceRespBean(var data: Result?): BaseData(){
|
||||
data class Result(var siteId: Int,var siteName: String,var gcjLat: Double, var gcjLon: Double)
|
||||
data class Result(var siteId: Long,var siteName: String,var gcjLat: Double, var gcjLon: Double)
|
||||
}
|
||||
@@ -12,7 +12,7 @@ data class OrderDetail(
|
||||
var orderStatus: Int,
|
||||
var orderStartSite: Site?,
|
||||
var orderEndSite: Site?,
|
||||
var planningLines: Array<Int>,
|
||||
var planningLines: Array<Long>,
|
||||
var phone: String,
|
||||
var passengerNum: Int
|
||||
) {
|
||||
@@ -41,7 +41,7 @@ data class OrderDetail(
|
||||
}
|
||||
}
|
||||
|
||||
data class Site(var siteId: Int, var siteName: String, var gcjLat: Double, var gcjLon: Double) {
|
||||
data class Site(var siteId: Long, var siteName: String, var gcjLat: Double, var gcjLon: Double) {
|
||||
override fun equals(other: Any?): Boolean {
|
||||
if (this === other) return true
|
||||
if (javaClass != other?.javaClass) return false
|
||||
@@ -58,7 +58,7 @@ data class Site(var siteId: Int, var siteName: String, var gcjLat: Double, var g
|
||||
|
||||
data class QueryCurrentTaskRespBean(var data: Result?) : BaseData() {
|
||||
data class Result(
|
||||
var sn: String, var lineId: Int, var servingStatus: Int,
|
||||
var sn: String, var lineId: Long, var servingStatus: Int,
|
||||
var currentStatus: Int, var taskType: Int,
|
||||
var startSite: Site?, var endSite: Site?,
|
||||
var order: OrderDetail?
|
||||
@@ -85,12 +85,12 @@ data class QueryCurrentTaskRespBean(var data: Result?) : BaseData() {
|
||||
}
|
||||
}
|
||||
|
||||
data class StartTaskReqBean(var sn: String, var lineId: Int)
|
||||
data class StartTaskReqBean(var sn: String, var lineId: Long)
|
||||
|
||||
data class ArriveSiteReqBean(var sn: String, var siteId: Int)
|
||||
data class PrepareTaskReqBean(var sn: String, var siteId: Int)
|
||||
data class ArriveSiteReqBean(var sn: String, var siteId: Long)
|
||||
data class PrepareTaskReqBean(var sn: String, var siteId: Long)
|
||||
data class PrepareTaskRespBean(
|
||||
var lineId: Int, var cityCode: Int, var taskType: Int,
|
||||
var lineId: Long, var cityCode: Int, var taskType: Int,
|
||||
var startSite: Site, var endSite: Site
|
||||
) //taskType 1:虚拟任务 2:接驾任务3:送驾任务
|
||||
: BaseData()
|
||||
@@ -98,17 +98,17 @@ data class PrepareTaskRespBean(
|
||||
data class JumpPassengerCheckReqBean(var sn: String, var orderNo: String)
|
||||
data class CancelOrderReqBean(var sn: String, var orderNo: String)
|
||||
data class OrderCompletedReqBean(var sn: String, var orderNo: String)
|
||||
data class ContrailListReqBean(var lineIds: MutableList<Int>)
|
||||
data class ContrailListReqBean(var lineIds: Array<Long>)
|
||||
data class QueryCarOrderByNoReqBean(var sn: String, var orderNo: String)
|
||||
data class QueryCarOrderByNoRespBean(
|
||||
var sn: String, var orderNo: String, var orderStatus: Int,
|
||||
var bookingUserPhone: String, var businessType: String
|
||||
): BaseData()
|
||||
|
||||
data class ContrailListRespBean(var data: MutableList<Result>) //轨迹路线集合
|
||||
data class ContrailListRespBean(var data: MutableList<Result>?) //轨迹路线集合
|
||||
: BaseData() {
|
||||
data class Result(
|
||||
var lineId: Int, var csvFileUrl: String, var csvFileMd5: String,
|
||||
var lineId: Long, var csvFileUrl: String, var csvFileMd5: String,
|
||||
var txtFileUrl: String, var txtFileMd5: String, var contrailSaveTime: Long,
|
||||
var csvFileUrlDPQP: String, var csvFileMd5DPQP: String, var txtFileUrlDPQP: String,
|
||||
var txtFileMd5DPQP: String, var contrailSaveTimeDPQP: Long
|
||||
|
||||
@@ -12,6 +12,8 @@ class TaxiUnmannedConst {
|
||||
// 到达起始点围栏
|
||||
const val ARRIVE_AT_START_STATION_DISTANCE = 15 //围栏由20m改为50m 再次改为15m
|
||||
|
||||
const val BUSINESSTYPE = 15 //9 taxi , 10 bus
|
||||
|
||||
// 上报心跳轮询ms
|
||||
const val LOOP_PERIOD_60S = 60 * 1000L
|
||||
// 开始服务启动自动驾驶等待时间(埋点上传)
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.mogo.och.taxi.model
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.Context
|
||||
import android.net.ConnectivityManager
|
||||
import android.text.TextUtils
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.amap.api.maps.model.LatLng
|
||||
import com.elegant.network.utils.GsonUtil
|
||||
@@ -21,6 +22,7 @@ import com.mogo.eagle.core.data.map.MogoLocation
|
||||
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.CallerAutoPilotControlManager.cancelAutoPilot
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager.setIPCDemoMode
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager.setIgnoreConditionDraw
|
||||
@@ -57,6 +59,7 @@ import com.mogo.och.common.module.manager.distancemamager.ITrajectoryListener
|
||||
import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager.addDistanceListener
|
||||
import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager.addTrajectoryListener
|
||||
import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager.setStationPoint
|
||||
import com.mogo.och.taxi.bean.ContrailListRespBean
|
||||
import com.mogo.och.taxi.bean.OrderDetail
|
||||
import com.mogo.och.taxi.bean.PrepareTaskRespBean
|
||||
import com.mogo.och.taxi.bean.QueryCurrentTaskRespBean
|
||||
@@ -66,10 +69,13 @@ import com.mogo.och.taxi.callback.ITaxiADASStatusCallback
|
||||
import com.mogo.och.taxi.callback.ITaxiCarOperationalCallback
|
||||
import com.mogo.och.taxi.callback.ITaxiControllerStatusCallback
|
||||
import com.mogo.och.taxi.callback.ITaxiOrderStatusCallback
|
||||
import com.mogo.och.taxi.constant.TaskStatusEnum
|
||||
import com.mogo.och.taxi.constant.TaxiOrderStatusEnum
|
||||
import com.mogo.och.taxi.constant.TaxiOrderStatusEnum.Companion.valueOf
|
||||
import com.mogo.och.taxi.constant.TaxiUnmannedConst
|
||||
import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.BUSINESSTYPE
|
||||
import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.TIMER_PREPARE_TASK_INTERVAL
|
||||
import com.mogo.och.taxi.network.CarServiceManager
|
||||
import com.mogo.och.taxi.network.CarServiceManager.arriveSite
|
||||
import com.mogo.och.taxi.network.CarServiceManager.prepareTask
|
||||
import com.mogo.och.taxi.network.CarServiceManager.startTask
|
||||
@@ -99,7 +105,11 @@ object TaxiModel {
|
||||
|
||||
private var mCurrentTaskAndOrder : QueryCurrentTaskRespBean.Result? = null //当前任务和订单
|
||||
|
||||
private var mUntruthTask : StartServiceRespBean.Result? = null
|
||||
private var mUntruthTask : StartServiceRespBean.Result? = null // 前往出车点的伪任务, 后台并不算做真正的任务
|
||||
|
||||
private var mOrderContrails : MutableList<ContrailListRespBean.Result>? = null // 运营单(接驾任务和送驾任务的轨迹集合)
|
||||
|
||||
private var mCurTaskContrail : ContrailListRespBean.Result? = null //当前在跑的任务的轨迹信息
|
||||
|
||||
private var mADASStatusCallback //Model->Presenter:自动驾驶状态相关
|
||||
: ITaxiADASStatusCallback? = null
|
||||
@@ -116,10 +126,6 @@ object TaxiModel {
|
||||
|
||||
private val mRoutePoints: MutableList<MogoLocation>? = ArrayList()
|
||||
|
||||
// private var mLongitude = 0.0
|
||||
// private var mLatitude = 0.0
|
||||
// private var mLocation: MogoLocation? = null
|
||||
|
||||
var loginService: LoginService? = null
|
||||
|
||||
fun setMoGoAutopilotPlanningListener(moGoAutopilotPlanningCallback: IOCHTaxiAutopilotPlanningCallback?) {
|
||||
@@ -270,8 +276,16 @@ object TaxiModel {
|
||||
return mCurrentTaskAndOrder
|
||||
}
|
||||
|
||||
fun getCurOrderContrails(): MutableList<ContrailListRespBean.Result>?{
|
||||
return mOrderContrails
|
||||
}
|
||||
|
||||
fun getCurTaskContrail(): ContrailListRespBean.Result?{
|
||||
return mCurTaskContrail
|
||||
}
|
||||
|
||||
//更新本地currentOrder信息,并保存订单到本地避免车机重启丢失数据
|
||||
fun updateNativeCurrentOrder(data: QueryCurrentTaskRespBean.Result?) {
|
||||
private fun updateNativeCurrentOrder(data: QueryCurrentTaskRespBean.Result?) {
|
||||
if (data == null) {
|
||||
return
|
||||
}
|
||||
@@ -331,6 +345,7 @@ object TaxiModel {
|
||||
|
||||
fun updateCurrentTaskAndOrder(result: QueryCurrentTaskRespBean.Result?){
|
||||
mCurrentTaskAndOrder = result
|
||||
updateNativeCurrentOrder(result)
|
||||
}
|
||||
|
||||
fun updateUntruthTask(untruthTask : StartServiceRespBean.Result?) {
|
||||
@@ -380,68 +395,71 @@ object TaxiModel {
|
||||
return
|
||||
}
|
||||
|
||||
// // TODO: 轨迹信息需要另一个接口去查一下
|
||||
// //根据开关和后台是否发布轨迹启动自驾
|
||||
// if (FunctionBuildConfig.isPassStartAutopilotCommand && TextUtils.isEmpty(
|
||||
// mCurrentTaskAndOrder!!.csvFileUrl
|
||||
// )
|
||||
// && TextUtils.isEmpty(mCurrentTaskAndOrder!!.csvFileUrlDPQP)
|
||||
// ) {
|
||||
// ToastUtils.showLong("无发布轨迹, 请发布后重试")
|
||||
// e(
|
||||
// SceneConstant.M_TAXI + TAG, "isPassStartAutopilotCommand = " +
|
||||
// FunctionBuildConfig.isPassStartAutopilotCommand
|
||||
// + "busRoutesResult.csvFileUrl = " + mCurrentTaskAndOrder!!.csvFileUrl
|
||||
// + "busRoutesResult.csvFileUrlDPQP = " + mCurrentTaskAndOrder!!.csvFileUrlDPQP
|
||||
// )
|
||||
// return
|
||||
// }
|
||||
// e(
|
||||
// SceneConstant.M_TAXI + TAG, "isPassStartAutopilotCommand = " +
|
||||
// FunctionBuildConfig.isPassStartAutopilotCommand
|
||||
// )
|
||||
// if (!FunctionBuildConfig.isDemoMode && !OCHAdasAbilityManager.getInstance().autopilotAbilityStatus) {
|
||||
// ToastUtils.showLong(
|
||||
// OCHAdasAbilityManager.getInstance().autopilotUnAbilityReason +
|
||||
// ", 请稍候重试"
|
||||
// )
|
||||
// TaxiAnalyticsManager.getInstance().triggerUnableStartAPReasonEvent(
|
||||
// mCurrentOrder!!.orderStartSite!!.siteName,
|
||||
// mCurrentOrder!!.orderEndSite!!.siteName,
|
||||
// mCurrentOrder!!.orderNo,
|
||||
// OCHAdasAbilityManager.getInstance().autopilotUnAbilityReason
|
||||
// )
|
||||
// return
|
||||
// }
|
||||
//
|
||||
// //点击开始自动驾驶按钮订单状态去流转, 不再与自动驾驶是否启动成功挂钩
|
||||
// isRestartAutopilot = mCurrentOrder!!.orderStatus != TaxiOrderStatusEnum.UserArriveAtStart.code
|
||||
//
|
||||
// val parameters = initAutopilotControlParameters()
|
||||
// if (null == parameters) {
|
||||
// e(SceneConstant.M_TAXI + TAG, "AutopilotControlParameters is empty.")
|
||||
// return
|
||||
// }
|
||||
// startAutoPilot(parameters)
|
||||
// d(
|
||||
// SceneConstant.M_TAXI + TAG, "start autopilot with parameter: %s",
|
||||
// GsonUtil.jsonFromObject(parameters)
|
||||
// + " ,startSiteName=" + mCurrentOrder!!.orderStartSite!!.siteName
|
||||
// + " ,endSiteName=" + mCurrentOrder!!.orderEndSite!!.siteName
|
||||
// + "isRestartAutopilot = " + isRestartAutopilot
|
||||
// )
|
||||
// TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(
|
||||
// isRestartAutopilot,
|
||||
// false,
|
||||
// mCurrentOrder!!.orderStartSite!!.siteName,
|
||||
// mCurrentOrder!!.orderEndSite!!.siteName,
|
||||
// mCurrentOrder!!.lineId,
|
||||
// mCurrentOrder!!.orderNo
|
||||
// )
|
||||
// if (mControllerStatusCallback != null) {
|
||||
// mControllerStatusCallback!!.startOpenAutopilot()
|
||||
// }
|
||||
//
|
||||
if (mCurTaskContrail == null){
|
||||
e(SceneConstant.M_TAXI + TAG, "no order or order is empty.")
|
||||
ToastUtils.showShort("轨迹信息不存在!")
|
||||
}
|
||||
|
||||
//根据开关和后台是否发布轨迹启动自驾
|
||||
if (FunctionBuildConfig.isPassStartAutopilotCommand && TextUtils.isEmpty(
|
||||
mCurTaskContrail!!.csvFileUrl
|
||||
)
|
||||
&& TextUtils.isEmpty(mCurTaskContrail!!.csvFileUrlDPQP)
|
||||
) {
|
||||
ToastUtils.showLong("无发布轨迹, 请发布后重试")
|
||||
e(
|
||||
SceneConstant.M_TAXI + TAG, "isPassStartAutopilotCommand = " +
|
||||
FunctionBuildConfig.isPassStartAutopilotCommand
|
||||
+ "busRoutesResult.csvFileUrl = " + mCurTaskContrail!!.csvFileUrl
|
||||
+ "busRoutesResult.csvFileUrlDPQP = " + mCurTaskContrail!!.csvFileUrlDPQP
|
||||
)
|
||||
return
|
||||
}
|
||||
e(
|
||||
SceneConstant.M_TAXI + TAG, "isPassStartAutopilotCommand = " +
|
||||
FunctionBuildConfig.isPassStartAutopilotCommand
|
||||
)
|
||||
if (!FunctionBuildConfig.isDemoMode && !OCHAdasAbilityManager.getInstance().autopilotAbilityStatus) {
|
||||
ToastUtils.showLong(
|
||||
OCHAdasAbilityManager.getInstance().autopilotUnAbilityReason +
|
||||
", 请稍候重试"
|
||||
)
|
||||
TaxiAnalyticsManager.getInstance().triggerUnableStartAPReasonEvent(
|
||||
mCurrentTaskAndOrder!!.startSite!!.siteName,
|
||||
mCurrentTaskAndOrder!!.endSite!!.siteName,
|
||||
mCurrentTaskAndOrder!!.lineId.toString(), // todo 这里原来传的是订单号, 现在是任务没有订单号,传了路线id
|
||||
OCHAdasAbilityManager.getInstance().autopilotUnAbilityReason
|
||||
)
|
||||
return
|
||||
}
|
||||
|
||||
//点击开始自动驾驶按钮订单状态去流转, 不再与自动驾驶是否启动成功挂钩
|
||||
isRestartAutopilot = mCurrentTaskAndOrder!!.currentStatus != TaskStatusEnum.StartTask.code
|
||||
|
||||
val parameters = initAutopilotControlParameters()
|
||||
if (null == parameters) {
|
||||
e(SceneConstant.M_TAXI + TAG, "AutopilotControlParameters is empty.")
|
||||
return
|
||||
}
|
||||
CallerAutoPilotControlManager.startAutoPilot(parameters)
|
||||
d(
|
||||
SceneConstant.M_TAXI + TAG, "start autopilot with parameter: %s",
|
||||
GsonUtil.jsonFromObject(parameters)
|
||||
+ " ,startSiteName=" + mCurrentTaskAndOrder?.startSite?.siteName
|
||||
+ " ,endSiteName=" + mCurrentTaskAndOrder?.endSite?.siteName
|
||||
+ "isRestartAutopilot = " + isRestartAutopilot
|
||||
)
|
||||
TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(
|
||||
isRestartAutopilot,
|
||||
false,
|
||||
mCurrentTaskAndOrder!!.startSite!!.siteName,
|
||||
mCurrentTaskAndOrder!!.endSite!!.siteName,
|
||||
mCurrentTaskAndOrder!!.lineId.toLong(),
|
||||
"" // todo 这里原来传的是订单号, 现在是任务没有订单号
|
||||
)
|
||||
if (mControllerStatusCallback != null) {
|
||||
mControllerStatusCallback!!.startOpenAutopilot()
|
||||
}
|
||||
}
|
||||
|
||||
private fun initAutopilotControlParameters(): AutopilotControlParameters? {
|
||||
@@ -449,32 +467,35 @@ object TaxiModel {
|
||||
e(SceneConstant.M_TAXI + TAG, "no order or order is empty.")
|
||||
return null
|
||||
}
|
||||
|
||||
if (mCurTaskContrail == null){
|
||||
e(SceneConstant.M_TAXI + TAG, "curTaskContrail is empty.")
|
||||
return null
|
||||
}
|
||||
|
||||
val parameters = AutopilotControlParameters()
|
||||
|
||||
// TODO: 重新去构造参数
|
||||
|
||||
// val startWgsLon = mCurrentTaskAndOrder!!.startSitePoint[0]
|
||||
// val startWgsLat = mCurrentTaskAndOrder!!.startSitePoint[1]
|
||||
// val endWgsLon = mCurrentTaskAndOrder!!.endSitePoint[0]
|
||||
// val endWgsLat = mCurrentTaskAndOrder!!.endSitePoint[1]
|
||||
// parameters.vehicleType = mCurrentTaskAndOrder!!.businessType
|
||||
// parameters.startName =
|
||||
// PinYinUtil.getPinYinHeadChar(mCurrentTaskAndOrder!!.startSiteAddr) // 起点名称拼音首字母大写:科学城B区2号门(KXCBQ2HM)
|
||||
// parameters.endName =
|
||||
// PinYinUtil.getPinYinHeadChar(mCurrentTaskAndOrder!!.endSiteAddr) // 终点名称拼音首字母大写:科学城C区三号门(KXCCQSHM)
|
||||
// parameters.startLatLon = AutoPilotLonLat(startWgsLat, startWgsLon)
|
||||
// parameters.endLatLon = AutoPilotLonLat(endWgsLat, endWgsLon)
|
||||
// if (parameters.autoPilotLine == null) {
|
||||
// parameters.autoPilotLine = AutoPilotLine(
|
||||
// mCurrentTaskAndOrder!!.lineId,
|
||||
// mCurrentTaskAndOrder!!.csvFileUrl, mCurrentTaskAndOrder!!.csvFileMd5,
|
||||
// mCurrentTaskAndOrder!!.txtFileUrl, mCurrentTaskAndOrder!!.txtFileMd5,
|
||||
// mCurrentTaskAndOrder!!.contrailSaveTime, mCurrentTaskAndOrder!!.carModel,
|
||||
// mCurrentTaskAndOrder!!.csvFileUrlDPQP, mCurrentTaskAndOrder!!.csvFileMd5DPQP,
|
||||
// mCurrentTaskAndOrder!!.txtFileUrlDPQP, mCurrentTaskAndOrder!!.txtFileMd5DPQP,
|
||||
// mCurrentTaskAndOrder!!.contrailSaveTimeDPQP
|
||||
// )
|
||||
// }
|
||||
val startWgsLon = mCurrentTaskAndOrder!!.startSite!!.gcjLon
|
||||
val startWgsLat = mCurrentTaskAndOrder!!.startSite!!.gcjLat
|
||||
val endWgsLon = mCurrentTaskAndOrder!!.endSite!!.gcjLon
|
||||
val endWgsLat = mCurrentTaskAndOrder!!.endSite!!.gcjLat
|
||||
parameters.vehicleType = BUSINESSTYPE
|
||||
parameters.startName = mCurrentTaskAndOrder!!.startSite!!.siteName // 8.10 拼音首字母大写 改为直接传中文
|
||||
parameters.endName = mCurrentTaskAndOrder!!.endSite!!.siteName // 8.10 拼音首字母大写 改为直接传中文
|
||||
parameters.startLatLon =
|
||||
AutopilotControlParameters.AutoPilotLonLat(startWgsLat, startWgsLon)
|
||||
parameters.endLatLon = AutopilotControlParameters.AutoPilotLonLat(endWgsLat, endWgsLon)
|
||||
if (parameters.autoPilotLine == null) {
|
||||
parameters.autoPilotLine = AutopilotControlParameters.AutoPilotLine(
|
||||
mCurrentTaskAndOrder!!.lineId,
|
||||
mCurTaskContrail!!.csvFileUrl, mCurTaskContrail!!.csvFileMd5,
|
||||
mCurTaskContrail!!.txtFileUrl, mCurTaskContrail!!.txtFileMd5,
|
||||
mCurTaskContrail!!.contrailSaveTime, "", // todo 这里原来传的是carModel, 现在没有这个信息, 是否传businessType
|
||||
mCurTaskContrail!!.csvFileUrlDPQP, mCurTaskContrail!!.csvFileMd5DPQP,
|
||||
mCurTaskContrail!!.txtFileUrlDPQP, mCurTaskContrail!!.txtFileMd5DPQP,
|
||||
mCurTaskContrail!!.contrailSaveTimeDPQP
|
||||
)
|
||||
}
|
||||
return parameters
|
||||
}
|
||||
|
||||
@@ -580,7 +601,7 @@ object TaxiModel {
|
||||
}
|
||||
}
|
||||
|
||||
private fun arriveSite(siteId: Int, isArriveEndSite: Boolean) {
|
||||
private fun arriveSite(siteId: Long, isArriveEndSite: Boolean) {
|
||||
arriveSite(mContext!!,siteId,object : OchCommonServiceCallback<BaseData>{
|
||||
override fun onSuccess(data: BaseData?) {
|
||||
if (data == null || data.code != 0) return
|
||||
@@ -599,7 +620,7 @@ object TaxiModel {
|
||||
})
|
||||
}
|
||||
|
||||
private fun startTask(lineId: Int) {
|
||||
private fun startTask(lineId: Long) {
|
||||
startTask(mContext!!, lineId,object : OchCommonServiceCallback<BaseData>{
|
||||
override fun onSuccess(data: BaseData?) {
|
||||
d(SceneConstant.M_TAXI + TAG,GsonUtil.jsonFromObject(data))
|
||||
@@ -612,11 +633,14 @@ object TaxiModel {
|
||||
})
|
||||
}
|
||||
|
||||
private fun startPrepareTask(siteId: Int) {
|
||||
private fun startPrepareTask(siteId: Long) {
|
||||
UiThreadHandler.postDelayed({
|
||||
prepareTask(mContext!!,siteId,object : OchCommonServiceCallback<PrepareTaskRespBean>{
|
||||
override fun onSuccess(data: PrepareTaskRespBean?) {
|
||||
d(SceneConstant.M_TAXI + TAG,GsonUtil.jsonFromObject(data))
|
||||
if (data == null || data.code != 0) return
|
||||
//去下载轨迹, 下发给工控机下载
|
||||
queryTaskContrail(Array(1) { data.lineId })
|
||||
}
|
||||
|
||||
override fun onFail(code: Int, msg: String?) {
|
||||
@@ -668,6 +692,26 @@ object TaxiModel {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询当前任务的轨迹
|
||||
*/
|
||||
public fun queryTaskContrail(planningLines: Array<Long>?) {
|
||||
if (planningLines == null) return
|
||||
CarServiceManager.contrailList(mContext!!, planningLines,
|
||||
object : OchCommonServiceCallback<ContrailListRespBean> {
|
||||
override fun onSuccess(data: ContrailListRespBean?) {
|
||||
if (data == null || data.code != 0) return
|
||||
mCurTaskContrail = data.data?.get(0)
|
||||
}
|
||||
|
||||
override fun onFail(code: Int, msg: String?) {
|
||||
d(SceneConstant.M_TAXI + TAG, "queryOrderContrails code=$code,msg=$msg")
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单流转debug START
|
||||
*/
|
||||
@@ -720,28 +764,28 @@ object TaxiModel {
|
||||
if (mADASStatusCallback != null) {
|
||||
mADASStatusCallback!!.onAutopilotRunning()
|
||||
}
|
||||
// if ((mCurrentOrder != null
|
||||
// && TaxiOrderStatusEnum.OnTheWayToEnd.code == mCurrentOrder!!.orderStatus)
|
||||
// ) {
|
||||
// TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(
|
||||
// isRestartAutopilot,
|
||||
// true,
|
||||
// mCurrentOrder!!.orderStartSite!!.siteName,
|
||||
// mCurrentOrder!!.orderEndSite!!.siteName,
|
||||
// mCurrentOrder!!.lineId,
|
||||
// mCurrentOrder!!.orderNo
|
||||
// )
|
||||
// if (FunctionBuildConfig.isDemoMode) {
|
||||
// // 当美化模式(演示模式)开启时: 订单对应自动驾驶开启后,置true
|
||||
// FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = true
|
||||
// setIgnoreConditionDraw(true)
|
||||
// setIPCDemoMode(true)
|
||||
// d(
|
||||
// SceneConstant.M_TAXI + TAG,
|
||||
// "美化模式-ignore:置为true(到达出发点且已开启自动驾驶)"
|
||||
// )
|
||||
// }
|
||||
// }
|
||||
if ((mCurrentTaskAndOrder != null && mCurrentTaskAndOrder!!.order != null
|
||||
&& TaxiOrderStatusEnum.OnTheWayToEnd.code == mCurrentTaskAndOrder!!.order!!.orderStatus)
|
||||
) {
|
||||
TaxiAnalyticsManager.getInstance().triggerStartAutopilotEvent(
|
||||
isRestartAutopilot,
|
||||
true,
|
||||
mCurrentTaskAndOrder!!.order!!.orderStartSite!!.siteName,
|
||||
mCurrentTaskAndOrder!!.order!!.orderEndSite!!.siteName,
|
||||
mCurrentTaskAndOrder!!.lineId,
|
||||
mCurrentTaskAndOrder!!.order!!.orderNo
|
||||
)
|
||||
if (FunctionBuildConfig.isDemoMode) {
|
||||
// 当美化模式(演示模式)开启时: 订单对应自动驾驶开启后,置true
|
||||
FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = true
|
||||
setIgnoreConditionDraw(true)
|
||||
setIPCDemoMode(true)
|
||||
d(
|
||||
SceneConstant.M_TAXI + TAG,
|
||||
"美化模式-ignore:置为true(到达出发点且已开启自动驾驶)"
|
||||
)
|
||||
}
|
||||
}
|
||||
} else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE) {
|
||||
if ((FunctionBuildConfig.isDemoMode
|
||||
&& checkCurrentTask()
|
||||
@@ -1014,4 +1058,8 @@ object TaxiModel {
|
||||
fun cleanStation() {
|
||||
setStationPoint(null, null, -1L)
|
||||
}
|
||||
|
||||
fun updateOrderContrails(contrails: MutableList<ContrailListRespBean.Result>?) {
|
||||
mOrderContrails = contrails
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,7 @@ import android.content.Context
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
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.NetworkUtils
|
||||
@@ -13,10 +13,11 @@ import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.och.common.module.biz.constant.LoginStatusManager
|
||||
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.utils.ToastUtilsOch
|
||||
import com.mogo.och.common.module.voice.VoiceNotice
|
||||
import com.mogo.och.taxi.R
|
||||
import com.mogo.och.taxi.base.BaseViewModel
|
||||
import com.mogo.och.taxi.base.IUiIntent
|
||||
import com.mogo.och.taxi.bean.PrepareTaskRespBean
|
||||
import com.mogo.och.taxi.bean.ContrailListRespBean
|
||||
import com.mogo.och.taxi.bean.QueryCarOrderByNoRespBean
|
||||
import com.mogo.och.taxi.bean.QueryCurrentTaskRespBean
|
||||
import com.mogo.och.taxi.bean.StartServiceRespBean
|
||||
@@ -24,6 +25,7 @@ import com.mogo.och.taxi.constant.TaxiOrderStatusEnum
|
||||
import com.mogo.och.taxi.constant.TaxiUnmannedConst
|
||||
import com.mogo.och.taxi.constant.TaxtServingStatusManager
|
||||
import com.mogo.och.taxi.network.CarServiceManager
|
||||
import com.mogo.och.taxi.network.CarServiceManager.contrailList
|
||||
import com.mogo.och.taxi.network.CarServiceManager.queryCarOrderByOrderNo
|
||||
import com.mogo.och.taxi.ui.unmanned.TaskAndOrderUiState
|
||||
import com.mogo.och.taxi.ui.unmanned.UnmannedIntent
|
||||
@@ -90,6 +92,13 @@ class TaxiUnmannedViewModel : BaseViewModel<UnmannedState, UnmannedIntent>(){
|
||||
TaxiModel.loginService!!.queryLoginStatusByNet()
|
||||
//需要将虚拟任务停掉, 虚拟任务会再开始接单后获取新的
|
||||
updateUntruthTask(null)
|
||||
|
||||
if (mCurrentTaskAndOrder != null){
|
||||
VoiceNotice.showNotice("暂停接单啦!要完成当前订单哦")
|
||||
}else{
|
||||
VoiceNotice.showNotice("暂停接单啦")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun onError() {
|
||||
@@ -114,6 +123,7 @@ class TaxiUnmannedViewModel : BaseViewModel<UnmannedState, UnmannedIntent>(){
|
||||
override fun onSuccess(data: StartServiceRespBean?) {
|
||||
if (data == null || data.code != 0) return
|
||||
TaxiModel.loginService!!.queryLoginStatusByNet()
|
||||
VoiceNotice.showNotice("开始接单啦")
|
||||
//虚拟任务要开启到站围栏
|
||||
updateUntruthTask(data.data)
|
||||
}
|
||||
@@ -139,11 +149,11 @@ class TaxiUnmannedViewModel : BaseViewModel<UnmannedState, UnmannedIntent>(){
|
||||
CarServiceManager.orderCompleted(AbsMogoApplication.getApp().applicationContext,
|
||||
mCurrentTaskAndOrder!!.order!!.orderNo,object : OchCommonServiceCallback<BaseData>{
|
||||
override fun onSuccess(data: BaseData?) {
|
||||
// TODO("Not yet implemented")
|
||||
d(SceneConstant.M_TAXI + TAG, "orderCompleted() = onSuccess")
|
||||
}
|
||||
|
||||
override fun onFail(code: Int, msg: String?) {
|
||||
// TODO("Not yet implemented")
|
||||
d(SceneConstant.M_TAXI + TAG, "orderCompleted() $code $msg")
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -154,11 +164,11 @@ class TaxiUnmannedViewModel : BaseViewModel<UnmannedState, UnmannedIntent>(){
|
||||
CarServiceManager.jumpPassengerCheck(AbsMogoApplication.getApp().applicationContext,
|
||||
mCurrentTaskAndOrder!!.order!!.orderNo,object : OchCommonServiceCallback<BaseData>{
|
||||
override fun onSuccess(data: BaseData?) {
|
||||
// TODO("Not yet implemented")
|
||||
d(SceneConstant.M_TAXI + TAG, "jumpPassengerCheckDone() = onSuccess")
|
||||
}
|
||||
|
||||
override fun onFail(code: Int, msg: String?) {
|
||||
// TODO("Not yet implemented")
|
||||
d(SceneConstant.M_TAXI + TAG, "jumpPassengerCheckDone() $code $msg")
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -202,7 +212,7 @@ class TaxiUnmannedViewModel : BaseViewModel<UnmannedState, UnmannedIntent>(){
|
||||
}
|
||||
|
||||
private fun startOrStopOrderLoop(start: Boolean) {
|
||||
CallerLogger.d(SceneConstant.M_TAXI + TAG, "startOrStopOrderLoop() $start")
|
||||
d(SceneConstant.M_TAXI + TAG, "startOrStopOrderLoop() $start")
|
||||
if (start) {
|
||||
startInAndWaitCurrentTaskLoop()
|
||||
} else {
|
||||
@@ -223,15 +233,12 @@ class TaxiUnmannedViewModel : BaseViewModel<UnmannedState, UnmannedIntent>(){
|
||||
if (mCurrentTaskAndOrder != null && mCurrentTaskAndOrder!!.equals(result)) return
|
||||
|
||||
if (result!!.endSite == null && result.order == null){
|
||||
mCurrentTaskAndOrder = null
|
||||
updateNoTaskAndOrderUi()
|
||||
TaxiModel.updateCurrentTaskAndOrder(null)
|
||||
}
|
||||
|
||||
if ((mCurrentTaskAndOrder !== null && mCurrentTaskAndOrder!!.order !== null
|
||||
&& result!!.order === null)
|
||||
|| (mCurrentTaskAndOrder !== null && mCurrentTaskAndOrder!!.order !== null
|
||||
&& result!!.order !== null && mCurrentTaskAndOrder!!.order!!.orderNo !=
|
||||
result!!.order!!.orderNo)
|
||||
) {
|
||||
if (result.order == null && mCurrentTaskAndOrder != null && mCurrentTaskAndOrder!!.order!= null) {
|
||||
//本地根据订单 orderNo 去查询下(乘客取消订单)
|
||||
queryCurrentOrderStatusByNo(mCurrentTaskAndOrder!!.order!!.orderNo)
|
||||
return
|
||||
@@ -239,15 +246,42 @@ class TaxiUnmannedViewModel : BaseViewModel<UnmannedState, UnmannedIntent>(){
|
||||
|
||||
mCurrentTaskAndOrder = result
|
||||
|
||||
TaxiModel.updateCurrentTaskAndOrder(result)
|
||||
//根据lineId集合去查轨迹集合
|
||||
if (result.order != null){
|
||||
queryOrderContrails(result.order!!.planningLines)
|
||||
}
|
||||
|
||||
TaxiModel.updateNativeCurrentOrder(result)
|
||||
TaxiModel.updateCurrentTaskAndOrder(result)
|
||||
|
||||
updateTaskAndOrderUi()
|
||||
}
|
||||
|
||||
override fun onFail(code: Int, msg: String?) {
|
||||
CallerLogger.d(TAG, "queryCurrentTaskOnce = $code, $msg")
|
||||
d(TAG, "queryCurrentTaskOnce = $code, $msg")
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询接驾/送驾任务轨迹集合
|
||||
* 注: 运营单刚来的时候, 有可能还在运行一个演练单, 要先跑完演练单才跑运营单
|
||||
*/
|
||||
private fun queryOrderContrails(planningLines: Array<Long>?) {
|
||||
if (planningLines == null) return
|
||||
contrailList(mContext,planningLines,
|
||||
object : OchCommonServiceCallback<ContrailListRespBean>{
|
||||
override fun onSuccess(data: ContrailListRespBean?) {
|
||||
if (data == null || data.code != 0) return
|
||||
val contrails = data.data
|
||||
if (mCurrentTaskAndOrder != null){
|
||||
TaxiModel.updateOrderContrails(contrails)
|
||||
TaxiModel.queryTaskContrail(Array(1) {mCurrentTaskAndOrder!!.lineId})
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFail(code: Int, msg: String?) {
|
||||
d(SceneConstant.M_TAXI + TAG, "queryOrderContrails code=$code,msg=$msg")
|
||||
}
|
||||
|
||||
})
|
||||
@@ -259,12 +293,13 @@ class TaxiUnmannedViewModel : BaseViewModel<UnmannedState, UnmannedIntent>(){
|
||||
override fun onSuccess(data: QueryCarOrderByNoRespBean?) {
|
||||
if (data != null && data.code != 0) return
|
||||
if (data!!.orderStatus == TaxiOrderStatusEnum.Cancel.code){
|
||||
VoiceNotice.showNotice("乘客已经取消")
|
||||
updateNoTaskAndOrderCancelUi()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFail(code: Int, msg: String?) {
|
||||
// TODO("Not yet implemented")
|
||||
d(SceneConstant.M_TAXI + TAG, "queryCurrentOrderStatusByNo() code=$code,msg=$msg")
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
@@ -66,7 +66,7 @@ object CarServiceManager {
|
||||
*/
|
||||
@JvmStatic
|
||||
fun startTask(
|
||||
context: Context, lineId: Int,
|
||||
context: Context, lineId: Long,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
mOCHTaxiServiceApi.startTask(
|
||||
@@ -80,7 +80,7 @@ object CarServiceManager {
|
||||
*/
|
||||
@JvmStatic
|
||||
fun arriveSite(
|
||||
context: Context, siteId: Int,
|
||||
context: Context, siteId: Long,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
mOCHTaxiServiceApi.arriveSite(
|
||||
@@ -94,7 +94,7 @@ object CarServiceManager {
|
||||
*/
|
||||
@JvmStatic
|
||||
fun prepareTask(
|
||||
context: Context, siteId: Int,
|
||||
context: Context, siteId: Long,
|
||||
callback: OchCommonServiceCallback<PrepareTaskRespBean>?
|
||||
) {
|
||||
mOCHTaxiServiceApi.prepareTask(
|
||||
@@ -164,7 +164,7 @@ object CarServiceManager {
|
||||
*/
|
||||
@JvmStatic
|
||||
fun contrailList(
|
||||
context: Context, linIds: MutableList<Int>,
|
||||
context: Context, linIds: Array<Long>,
|
||||
callback: OchCommonServiceCallback<ContrailListRespBean>?
|
||||
) {
|
||||
mOCHTaxiServiceApi.contrailList(
|
||||
|
||||
@@ -189,8 +189,6 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
|
||||
public void loginSuccess(DriverStatusQueryRespBean data) {
|
||||
//设置 接单状态
|
||||
TaxtServingStatusManager.setOpenOrderStatus(data.data.servingStatus);
|
||||
//设置 是否启动订单轮训
|
||||
// TaxiModel.INSTANCE.startOrStopOrderLoop();
|
||||
|
||||
// 设置当前用户角色
|
||||
String role = "";
|
||||
|
||||
@@ -132,13 +132,18 @@ class TaxiBeingTaskFragment : BaseFragment(),
|
||||
}
|
||||
|
||||
is TaskAndOrderUiState.ORDERCANCEL -> {
|
||||
// TODO 任务要跑完, 更新btn: 乘客已取消
|
||||
updateOrderCancelUi(state.isCancel)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateOrderCancelUi(isCancel: Boolean) {
|
||||
taskTypeTv.text = resources.getString(R.string.passenger_cancel_order)
|
||||
taskTypeTv.background = resources.getDrawable(R.drawable.task_cancel_type_btn_bg,null)
|
||||
}
|
||||
|
||||
private fun updateUntruthTask(untruthTask: StartServiceRespBean.Result?) {
|
||||
if (untruthTask == null) return
|
||||
updateUntruthTaskView()
|
||||
@@ -614,7 +619,7 @@ class TaxiBeingTaskFragment : BaseFragment(),
|
||||
startOrEndService()
|
||||
} else if (v.id == cancelOrder.id) {
|
||||
if (mCurrentTaskAndOrder != null && mCurrentTaskAndOrder!!.order != null){
|
||||
TaxiOrderCancelDialog(mTaxiFragment, mActivity,
|
||||
TaxiOrderCancelDialog(mActivity,
|
||||
mCurrentTaskAndOrder!!.order!!.orderNo,mCurrentTaskAndOrder!!.order!!.orderStatus).show()
|
||||
}
|
||||
} else if (v.id == naviToStart.id) {
|
||||
|
||||
@@ -47,7 +47,7 @@ public class TaxiOrderCancelDialog extends AlertDialog implements View.OnClickLi
|
||||
private String[] mContentArrays;
|
||||
private String mOrderNo;
|
||||
|
||||
protected TaxiOrderCancelDialog(TaxiFragment fragment, Context context, String orderNo, int orderStatus) {
|
||||
protected TaxiOrderCancelDialog(Context context, String orderNo, int orderStatus) {
|
||||
super(context,R.style.OrderCancelDialog);
|
||||
mOrderNo = orderNo;
|
||||
this.mOrderStatus = orderStatus;
|
||||
@@ -56,12 +56,6 @@ public class TaxiOrderCancelDialog extends AlertDialog implements View.OnClickLi
|
||||
}
|
||||
|
||||
private void initReasonArray() {
|
||||
if (1 == mOrderStatus) {
|
||||
mContentArrays = new String[]{TaxiOrderCancelReasons.BookPassengerCancel.getMsg(), TaxiOrderCancelReasons.CarBroken.getMsg(),
|
||||
TaxiOrderCancelReasons.BookJourneyConflict.getMsg(), TaxiOrderCancelReasons.BatteryLow.getMsg(),
|
||||
TaxiOrderCancelReasons.BookOther.getMsg()};
|
||||
return;
|
||||
}
|
||||
TaxiOrderStatusEnum ochStatus = TaxiOrderStatusEnum.valueOf(mOrderStatus);
|
||||
switch (ochStatus) {
|
||||
case OnTheWayToStart:
|
||||
|
||||
@@ -6,8 +6,15 @@ import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.eagle.core.utilcode.util.GsonUtils;
|
||||
import com.mogo.och.taxi.bean.ContrailListRespBean;
|
||||
import com.mogo.och.taxi.bean.OrderDetail;
|
||||
import com.mogo.och.taxi.bean.QueryCurrentTaskRespBean;
|
||||
import com.mogo.och.taxi.bean.Site;
|
||||
import com.mogo.och.taxi.constant.TaskStatusEnum;
|
||||
import com.mogo.och.taxi.constant.TaxiUnmannedConst;
|
||||
import com.mogo.och.taxi.model.TaxiModel;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
@@ -35,7 +42,7 @@ public class TaxiTrajectoryManager {
|
||||
|
||||
private AutopilotControlParameters.AutoPilotLine mAutoPilotLine = null;
|
||||
private Disposable mSendReqDisposable = null;
|
||||
private String mPrevOrderNo = "";
|
||||
private String mPrevTaskLineId = "";
|
||||
|
||||
public TaxiTrajectoryManager() {
|
||||
mAutoPilotLine = new AutopilotControlParameters.AutoPilotLine(-1,
|
||||
@@ -47,19 +54,19 @@ public class TaxiTrajectoryManager {
|
||||
* 同步订单信息
|
||||
*/
|
||||
public void syncTrajectoryInfo() {
|
||||
// OrderQueryRespBean.Result orderInfo = TaxiModel.INSTANCE.getCurrentOrder();
|
||||
// if (orderInfo == null || orderInfo.orderStatus >= TaxiOrderStatusEnum.OnTheWayToEnd.getCode()) {
|
||||
// CallerLogger.INSTANCE.d(M_TAXI + TAG, "syncTrajectoryInfo() stop.");
|
||||
// stopTrajReqLoop();
|
||||
// } else {
|
||||
// if (mPrevOrderNo.equals(orderInfo.orderNo)) {
|
||||
// CallerLogger.INSTANCE.d(M_TAXI + TAG, "syncTrajectoryInfo() 重复订单.");
|
||||
// } else {
|
||||
// mPrevOrderNo = orderInfo.orderNo;
|
||||
// CallerLogger.INSTANCE.d(M_TAXI + TAG, "syncTrajectoryInfo() start.");
|
||||
// startTrajReqLoop();
|
||||
// }
|
||||
// }
|
||||
QueryCurrentTaskRespBean.Result taskAndOrder = TaxiModel.INSTANCE.getCurTaskAndOrder();
|
||||
if (taskAndOrder == null || taskAndOrder.getCurrentStatus() >= TaskStatusEnum.StartTask.getCode()) {
|
||||
CallerLogger.INSTANCE.d(M_TAXI + TAG, "syncTrajectoryInfo() stop.");
|
||||
stopTrajReqLoop();
|
||||
} else {
|
||||
if (mPrevTaskLineId.equals(String.valueOf(taskAndOrder.getLineId()))) {
|
||||
CallerLogger.INSTANCE.d(M_TAXI + TAG, "syncTrajectoryInfo() 重复订单.");
|
||||
} else {
|
||||
mPrevTaskLineId = String.valueOf(taskAndOrder.getLineId());
|
||||
CallerLogger.INSTANCE.d(M_TAXI + TAG, "syncTrajectoryInfo() start.");
|
||||
startTrajReqLoop();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -96,33 +103,59 @@ public class TaxiTrajectoryManager {
|
||||
}
|
||||
|
||||
private void setupAutoPilotLine() {
|
||||
// OrderQueryRespBean.Result order = TaxiModel.INSTANCE.getCurrentOrder();
|
||||
// if (order == null) {
|
||||
// CallerLogger.INSTANCE.e(M_TAXI + TAG,
|
||||
// "setupAutoPilotLine(): orderInfo is null.");
|
||||
// return;
|
||||
// } else {
|
||||
// if (mAutoPilotLine == null) {
|
||||
// mAutoPilotLine = new AutopilotControlParameters.AutoPilotLine(order.lineId,
|
||||
// order.csvFileUrl, order.csvFileMd5, order.txtFileUrl, order.txtFileMd5,
|
||||
// order.contrailSaveTime, order.carModel,
|
||||
// order.csvFileUrlDPQP, order.csvFileMd5DPQP, order.txtFileUrlDPQP, order.txtFileMd5DPQP,
|
||||
// order.contrailSaveTimeDPQP);
|
||||
// } else {
|
||||
// mAutoPilotLine.setLineId(order.lineId);
|
||||
// mAutoPilotLine.setTrajUrl(order.csvFileUrl);
|
||||
// mAutoPilotLine.setTrajMd5(order.csvFileMd5);
|
||||
// mAutoPilotLine.setStopUrl(order.txtFileUrl);
|
||||
// mAutoPilotLine.setStopMd5(order.txtFileMd5);
|
||||
// mAutoPilotLine.setTimestamp(order.contrailSaveTime);
|
||||
// mAutoPilotLine.setVehicleModel(order.carModel);
|
||||
// mAutoPilotLine.setTrajUrl_dpqp(order.csvFileUrlDPQP);
|
||||
// mAutoPilotLine.setTrajMd5_dpqp(order.csvFileMd5DPQP);
|
||||
// mAutoPilotLine.setStopUrl_dpqp(order.txtFileUrlDPQP);
|
||||
// mAutoPilotLine.setStopMd5_dpqp(order.txtFileMd5DPQP);
|
||||
// mAutoPilotLine.setTimestamp_dpqp(order.contrailSaveTimeDPQP);
|
||||
// }
|
||||
// }
|
||||
QueryCurrentTaskRespBean.Result taskAndOrder = TaxiModel.INSTANCE.getCurTaskAndOrder();
|
||||
|
||||
if (taskAndOrder == null || taskAndOrder.getEndSite() == null) {
|
||||
CallerLogger.INSTANCE.e(M_TAXI + TAG,
|
||||
"setupAutoPilotLine(): taskAndOrder or taskAndOrder.getEndSite() is null.");
|
||||
} else {
|
||||
/**
|
||||
* 主要加载和预加载轨迹方案
|
||||
* 1、获取当前跑的任务的lineId 2、当前任务lineId是否在运营单的轨迹集合里
|
||||
* 3、存在, 通知下载加载当前任务的轨迹以及预加载lineId在集合对应的下一个lineId对应的轨迹
|
||||
* 4、若不存在,说明当前的执行的任务是与订单无关的演练任务,通知下载加载当前任务的轨迹以及预加载订单轨迹集合的第一个
|
||||
*/
|
||||
|
||||
final ContrailListRespBean.Result curTaskContrail = TaxiModel.INSTANCE.getCurTaskContrail();
|
||||
if (curTaskContrail == null) return;
|
||||
|
||||
long curLineId = taskAndOrder.getLineId();
|
||||
final List<ContrailListRespBean.Result> orderContrails = TaxiModel.INSTANCE.getCurOrderContrails();
|
||||
final OrderDetail orderDetail = taskAndOrder.getOrder();
|
||||
ContrailListRespBean.Result preloadContrail = null; //预加载的轨迹
|
||||
|
||||
if (orderDetail != null && orderContrails != null && orderContrails.size() != 0 ){
|
||||
if (orderContrails.contains(curLineId)){ //预加载轨迹是curLineId索引的下一个
|
||||
int index = orderContrails.indexOf(curLineId);
|
||||
if (orderContrails.size()-1 >= index){
|
||||
preloadContrail = orderContrails.get(index);
|
||||
}
|
||||
}else {//预加载轨迹直接是集合第一个
|
||||
preloadContrail = orderContrails.get(0);
|
||||
}
|
||||
}
|
||||
|
||||
if (mAutoPilotLine == null) {
|
||||
mAutoPilotLine = new AutopilotControlParameters.AutoPilotLine(taskAndOrder.getLineId(),
|
||||
curTaskContrail.getCsvFileUrl(), curTaskContrail.getCsvFileMd5(), curTaskContrail.getTxtFileUrl(),
|
||||
curTaskContrail.getTxtFileMd5(), curTaskContrail.getContrailSaveTime(), "",//todo curTaskContrail.getCarModel()
|
||||
curTaskContrail.getCsvFileUrlDPQP(), curTaskContrail.getCsvFileMd5DPQP(), curTaskContrail.getTxtFileUrlDPQP(),
|
||||
curTaskContrail.getTxtFileMd5DPQP(), curTaskContrail.getContrailSaveTimeDPQP());
|
||||
} else {
|
||||
mAutoPilotLine.setLineId(taskAndOrder.getLineId());
|
||||
mAutoPilotLine.setTrajUrl(curTaskContrail.getCsvFileUrl());
|
||||
mAutoPilotLine.setTrajMd5(curTaskContrail.getCsvFileMd5());
|
||||
mAutoPilotLine.setStopUrl(curTaskContrail.getTxtFileUrl());
|
||||
mAutoPilotLine.setStopMd5(curTaskContrail.getTxtFileMd5());
|
||||
mAutoPilotLine.setTimestamp(curTaskContrail.getContrailSaveTime());
|
||||
mAutoPilotLine.setVehicleModel("");// todo curTaskContrail.getCarModel()
|
||||
mAutoPilotLine.setTrajUrl_dpqp(curTaskContrail.getCsvFileUrlDPQP());
|
||||
mAutoPilotLine.setTrajMd5_dpqp(curTaskContrail.getCsvFileMd5DPQP());
|
||||
mAutoPilotLine.setStopUrl_dpqp(curTaskContrail.getTxtFileUrlDPQP());
|
||||
mAutoPilotLine.setStopMd5_dpqp(curTaskContrail.getTxtFileMd5DPQP());
|
||||
mAutoPilotLine.setTimestamp_dpqp(curTaskContrail.getContrailSaveTimeDPQP());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void clearAutoPilotLine() {
|
||||
@@ -154,7 +187,7 @@ public class TaxiTrajectoryManager {
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(aLong -> {
|
||||
if (aLong > TaxiUnmannedConst.LOOP_SEND_TRAJ_TIMES) {
|
||||
mPrevOrderNo = ""; //重发超时后将mPrevOrderNo置空,这样订单进入下个状态时还可以重发
|
||||
mPrevTaskLineId = ""; //重发超时后将mPrevOrderNo置空,这样订单进入下个状态时还可以重发
|
||||
stopTrajReqLoop();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
},
|
||||
"saas": {
|
||||
"qa": {
|
||||
"och_url": "http://10.0.0.182:30560",
|
||||
"och_url": "https://mogogo-driver-qa.zhidaozhixing.com",
|
||||
"shuttle_url": "https://mogogo-driver-qa.zhidaozhixing.com",
|
||||
"passport_url": "https://mogogo-driver-qa.zhidaozhixing.com/arch/passport/",
|
||||
"socket_base_url": "https://mogogo-driver-qa.zhidaozhixing.com/arch/push/",
|
||||
|
||||
Reference in New Issue
Block a user