[6.0.0] 到达出车点语音播报, 拿到新订单语音播报, 取消订单语音播报文案修改

This commit is contained in:
wangmingjun
2023-08-31 11:28:29 +08:00
committed by zhongchao
parent 84340b1565
commit 3967956bdf
3 changed files with 18 additions and 63 deletions

View File

@@ -24,6 +24,7 @@ import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.common.module.map.AmapNaviToDestinationModel
import com.mogo.och.common.module.map.ICommonNaviChangedCallback
import com.mogo.och.common.module.voice.VoiceNotice
import com.mogo.och.common.module.wigets.OCHCommitDialog
import com.mogo.och.taxi.R
import com.mogo.och.taxi.bean.OrderDetail
@@ -326,6 +327,7 @@ class TaxiCurrentTaskFragment : BaseFragment(),
TaskTypeEnum.VirtualTask.code -> {// 演练任务
if (order != null && currentStatus == TaskStatusEnum.CompleteTask.code) {
updateOrderUI(order)
VoiceNotice.showNotice("已为您接到订单")
return
}
if (startSite == null || endSite == null) return
@@ -345,8 +347,9 @@ class TaxiCurrentTaskFragment : BaseFragment(),
}
TaskTypeEnum.None.code -> {
if (order != null) {
if (order != null && currentStatus == TaskStatusEnum.CompleteTask.code) {
updateOrderUI(order)
VoiceNotice.showNotice("已为您接到订单")
}
}
}

View File

@@ -218,7 +218,7 @@ class TaxiCurrentTaskViewModel : BaseViewModel<UnmannedState, TaskUiIntent>(),
}
override fun onOrderCancel() {
VoiceNotice.showNotice("订单已经取消")
VoiceNotice.showNotice("已取消行程")
// updateTaskAndOrderUi(null)
}

View File

@@ -53,6 +53,7 @@ import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceM
import com.mogo.och.common.module.manager.distancemamager.TrajectoryAndDistanceManager.setStationPoint
import com.mogo.och.common.module.map.AmapNaviToDestinationModel
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil.coordinateConverterWgsToGcjLocations
import com.mogo.och.common.module.voice.VoiceNotice
import com.mogo.och.taxi.bean.PrepareTaskRespBean
import com.mogo.och.taxi.bean.QueryCarOrderByNoRespBean
import com.mogo.och.taxi.bean.QueryCurrentTaskRespBean
@@ -71,7 +72,6 @@ import com.mogo.och.taxi.constant.TaxiOrderStatusEnum
import com.mogo.och.taxi.constant.TaxiUnmannedConst
import com.mogo.och.taxi.constant.TaxiUnmannedConst.Companion.BUSINESSTYPE
import com.mogo.och.taxi.network.TaxiTaskWithOrderServiceManager
import com.mogo.och.taxi.ui.debug.DebugView
import com.mogo.och.taxi.utils.RxJavaUtils
import com.mogo.och.taxi.utils.TaxiAnalyticsManager
import com.mogo.och.taxi.utils.TaxiTrajectoryManager
@@ -326,7 +326,6 @@ object TaxiTaskModel {
override fun onAutopilotSNRequest() {}
override fun onAutopilotArriveAtStation(arrivalNotification: ArrivalNotification?) {
i(TAG, "onAutopilotArriveAtStation = ${arrivalNotification.toString()}")
DebugView.printInfoMsg("[MAP到站通知] 上报到站location=${arrivalNotification?.endLocation}")
if (arrivalNotification == null || !checkCurrentTaskCondition() ||
mCurrentTaskWithOrder?.currentStatus == TaskStatusEnum.CompleteTask.code
) {
@@ -389,7 +388,6 @@ object TaxiTaskModel {
d(
TAG, "getWayPointsList.Size = ${globalPathResp.wayPointsList.size}"
)
DebugView.printInfoMsg("[MAP全局规划回调] 回调getWayPointsList.Size=${globalPathResp.wayPointsList.size}")
if (it.size > 0) {
// 本地计算全路径长度(实时更新剩余距离,剩余时间,预计到达时间)
if (checkCurrentTaskCondition()) {
@@ -419,7 +417,6 @@ object TaxiTaskModel {
startFailedCode: String,
startFailedMessage: String
) {
DebugView.printInfoMsg("[启自驾回调] 执行失败code=$startFailedCode, msg=$startFailedMessage")
TaxiAnalyticsManager.getInstance()
.triggerStartAutopilotFailureEventByAdas(startFailedCode, startFailedMessage)
if (mADASStatusCallback != null && !FunctionBuildConfig.isDemoMode) {
@@ -527,8 +524,7 @@ object TaxiTaskModel {
"judgeDriveToNearestStationTaskStation() ${virtualTask.siteName} distance = $distance"
)
if (distance <= TaxiUnmannedConst.ARRIVE_AT_START_STATION_DISTANCE) { // 15米内到站
DebugView.printInfoMsg("[高德定位围栏] 触发围栏任务类型DriveToNearestStationTask围栏范围${TaxiUnmannedConst.ARRIVE_AT_START_STATION_DISTANCE}")
submitArriveSite(virtualTask.siteId, true)
submitArriveSite(virtualTask.siteId, true, isArrivedNearestStation = true)
}
}
@@ -565,8 +561,8 @@ object TaxiTaskModel {
* @siteId : 站点id
* @isArriveAtEndSite: true 终点, false 起点
*/
fun submitArriveSite(siteId: Long, isArriveAtEndSite: Boolean) {
DebugView.printInfoMsg("[上报ArriveSite] siteId=$siteId, isArriveAtEndSite=$isArriveAtEndSite")
fun submitArriveSite(siteId: Long, isArriveAtEndSite: Boolean,
isArrivedNearestStation : Boolean = false) {
i(TAG, message = "submitArriveSite: siteId=$siteId isArriveAtEndSite=$isArriveAtEndSite")
TaxiTaskWithOrderServiceManager.arriveSite(
mContext,
@@ -574,9 +570,12 @@ object TaxiTaskModel {
object : OchCommonServiceCallback<BaseData> {
override fun onSuccess(data: BaseData?) {
if (data == null || data.code != 0) return
DebugView.printInfoMsg("[上报ArriveSite] success siteId=$siteId, isArriveAtEndSite=$isArriveAtEndSite")
d(TAG, "submitArriveSite-onSuccess data=" + GsonUtil.jsonFromObject(data))
mDriveToNearestStationTask = null
if (isArrivedNearestStation){// 播报提醒
VoiceNotice.showNotice("已到达出车点")
}
if (isArriveAtEndSite) {
updateLocalCalculateStation()
//到站后不再调用取消自驾. 原因是取消自驾,D档位会溜车
@@ -585,7 +584,6 @@ object TaxiTaskModel {
}
override fun onFail(code: Int, msg: String?) {
DebugView.printErrorMsg("[上报ArriveSite] failed, code=$code, msg=$msg")
d(TAG, "code=$code msg=$msg")
}
})
@@ -641,11 +639,10 @@ object TaxiTaskModel {
AbsMogoApplication.getApp().applicationContext,
object : OchCommonServiceCallback<QueryCurrentTaskRespBean> {
override fun onSuccess(data: QueryCurrentTaskRespBean?) {
//DebugView.printInfoMsg("[查询TaskWithOrder信息] success")
if (data?.data == null) {
d(
TAG,
"queryCurrentTaskOnce onSuccess: data == null || data.data == null"
"queryCurrentTaskOnce onSuccess: data.code != 0 || data === null || data.data === null"
)
return
}
@@ -699,8 +696,7 @@ object TaxiTaskModel {
// 主要是解决A-B演练任务同时接到A-B订单状态流转的问题
//注意: 需要去除到达乘客上车点的节点, 这个节点不拉取任务
if (result?.currentStatus == TaskStatusEnum.CompleteTask.code
&& !QueryCurrentTaskRespBean.isOrderArriveAtStart(result)
) {
&& !QueryCurrentTaskRespBean.isOrderArriveAtStart(result)) {
mTaxiTaskWithOrderCallbackMap.forEach {
val listener = it.value
listener.onTaskCompleted(
@@ -758,7 +754,6 @@ object TaxiTaskModel {
override fun onFail(code: Int, msg: String?) {
d(TAG, "queryCurrentTaskOnce onFail: code=$code, msg=$msg")
DebugView.printErrorMsg("[查询TaskWithOrder信息] fail, code=$code, msg=$msg")
}
})
}
@@ -766,18 +761,15 @@ object TaxiTaskModel {
/**
* 取消订单 进行中/待服务
*/
fun cancelOrder(orderNo: String, cancelType: Int) {
DebugView.printInfoMsg("[取消订单] 准备发送请求")
fun cancelOrder(orderNo: String,cancelType: Int){
TaxiTaskWithOrderServiceManager.cancelOrder(AbsMogoApplication.getApp().applicationContext,
orderNo, cancelType,
object : OchCommonServiceCallback<BaseData> {
override fun onSuccess(data: BaseData?) {
DebugView.printInfoMsg("[取消订单] 请求success")
d(TAG, "handleCancelOrder() = onSuccess")
}
override fun onFail(code: Int, msg: String?) {
DebugView.printErrorMsg("[取消订单] 请求fail, code=$code, msg=$msg")
d(TAG, "handleCancelOrder() $code $msg")
}
})
@@ -850,26 +842,22 @@ object TaxiTaskModel {
}
fun startTask(lineId: Long) {
DebugView.printInfoMsg("[开始任务] 准备发送请求")
TaxiTaskWithOrderServiceManager.startTask(
mContext,
lineId,
object : OchCommonServiceCallback<BaseData> {
override fun onSuccess(data: BaseData?) {
DebugView.printInfoMsg("[开始任务] 请求success")
startAutoPilot() //自驾开启
d(TAG, "startTask onSuccess: data=${GsonUtil.jsonFromObject(data)}")
}
override fun onFail(code: Int, msg: String?) {
DebugView.printErrorMsg("[开始任务] 请求fail, code=$code, msg=$msg")
d(TAG, "startTask onFail: code=$code, msg=$msg")
}
})
}
fun prepareNextTask(siteId: Long) {
DebugView.printInfoMsg("[PrepareNextTask] 准备发送请求")
TaxiTaskWithOrderServiceManager.prepareTask(
mContext,
siteId,
@@ -880,7 +868,6 @@ object TaxiTaskModel {
"prepareNextTask onSuccess:${GsonUtil.jsonFromObject(data)}, " +
"isCarServingStatus = ${TaxiCarServingStatusManager.isCarServingStatus()}"
)
DebugView.printInfoMsg("[PrepareNextTask] 请求success")
if (data?.data == null) return
//去下载轨迹, 下发给工控机下载
// queryTaskTrajectoryByLineIds(
@@ -890,7 +877,6 @@ object TaxiTaskModel {
}
override fun onFail(code: Int, msg: String?) {
DebugView.printErrorMsg("[PrepareNextTask] 请求fail, code=$code ,msg=$msg")
d(TAG, "prepareNextTask onFail: code=$code ,msg=$msg")
if (LoginStatusManager.isLogin() && TaxiCarServingStatusManager.isCarServingStatus()) {
startPrepareTaskDelay120S(siteId)
@@ -900,7 +886,6 @@ object TaxiTaskModel {
}
fun startPrepareTaskDelay120S(siteId: Long) {
DebugView.printInfoMsg("[PrepareNextTask] 倒计时${TaxiUnmannedConst.TIMER_PREPARE_TASK_INTERVAL_120S/1000}秒后prepareNextTask")
UiThreadHandler.postDelayed({
prepareNextTask(siteId)
}, TaxiUnmannedConst.TIMER_PREPARE_TASK_INTERVAL_120S)
@@ -910,7 +895,6 @@ object TaxiTaskModel {
* 查询当前任务的轨迹
*/
fun queryTaskTrajectoryByLineIds(planningLineIds: Array<Long>, currentTaskLineId: Long) {
DebugView.printInfoMsg("[查询轨迹信息] 准备发送请求")
TaxiTaskWithOrderServiceManager.queryTrajectoryByLindIds(
mContext,
planningLineIds,
@@ -920,7 +904,6 @@ object TaxiTaskModel {
TAG,
"queryTaskTrajectoryByLineIds onSuccess: ${GsonUtil.jsonFromObject(data?.data)}"
)
DebugView.printInfoMsg("[查询轨迹信息] 请求success")
data?.data?.also {
mTaskTrajectoryList.addAll(it)
mCurrentTaskTrajectory = it.first { currentTaskLineId == it.lineId }
@@ -932,7 +915,6 @@ object TaxiTaskModel {
}
override fun onFail(code: Int, msg: String?) {
DebugView.printErrorMsg("[查询轨迹信息] 请求fail, code=$code, msg=$msg")
d(TAG, "queryTaskTrajectoryByLineIds onFail: code=$code, msg=$msg")
}
})
@@ -944,12 +926,10 @@ object TaxiTaskModel {
return
}
if (TaxiCarServingStatusManager.isCarServingStatus()) {//接单状态下,去结束
DebugView.printInfoMsg("[暂停接单] 准备发送请求")
TaxiTaskWithOrderServiceManager.endService(
mContext,
object : OchCommonServiceCallback<BaseData> {
override fun onSuccess(data: BaseData?) {
DebugView.printInfoMsg("[暂停接单] 请求success")
loginService?.queryLoginStatusByNet()
//需要将虚拟任务停掉, 虚拟任务会再开始接单后获取新的
mDriveToNearestStationTask = null
@@ -961,24 +941,20 @@ object TaxiTaskModel {
override fun onError() {
mTaxiCarServiceCallback?.onCarEndServiceError()
DebugView.printErrorMsg("[暂停接单] 请求error")
}
override fun onFail(code: Int, msg: String) {
DebugView.printErrorMsg("[暂停接单] 请求fail, code=$code, msg=$msg")
mTaxiCarServiceCallback?.onCarEndServiceFailed(code, msg)
}
})
} else {
//暂停接单状态下,去接单
DebugView.printInfoMsg("[开始接单] 准备发送请求")
TaxiTaskWithOrderServiceManager.startService(mContext,
CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02().latitude,
CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02().longitude,
object : OchCommonServiceCallback<StartServiceRespBean> {
override fun onSuccess(data: StartServiceRespBean?) {
if (data == null) return
DebugView.printInfoMsg("[开始接单] 请求success")
d(TAG, "data.data=" + GsonUtil.jsonFromObject(data.data))
loginService?.queryLoginStatusByNet()
mDriveToNearestStationTask = data.data
@@ -989,12 +965,10 @@ object TaxiTaskModel {
}
override fun onFail(code: Int, msg: String) {
DebugView.printErrorMsg("[开始接单] 请求fail, code=$code, msg=$msg")
mTaxiCarServiceCallback?.onCarStartServiceFailed(code, msg)
}
override fun onError() {
DebugView.printErrorMsg("[开始接单] 请求error")
mTaxiCarServiceCallback?.onCarStartServiceError()
}
})
@@ -1013,14 +987,12 @@ object TaxiTaskModel {
fun startAutoPilot() {
if (!checkCurrentTaskCondition()) {
e(TAG, "no order or order is empty.")
DebugView.printErrorMsg("[启自驾] 当前订单不存在或异常!")
ToastUtils.showShort("当前订单不存在或异常!")
return
}
if (mCurrentTaskTrajectory == null) {
e(TAG, "no order or order is empty.")
DebugView.printErrorMsg("[启自驾] 轨迹信息不存在!")
ToastUtils.showShort("轨迹信息不存在!")
}
@@ -1031,7 +1003,6 @@ object TaxiTaskModel {
&& TextUtils.isEmpty(mCurrentTaskTrajectory!!.csvFileUrlDPQP)
) {
ToastUtils.showLong("无发布轨迹, 请发布后重试")
DebugView.printErrorMsg("[启自驾] 无发布轨迹, 请发布后重试")
e(
TAG, "isPassStartAutopilotCommand = " +
FunctionBuildConfig.isPassStartAutopilotCommand
@@ -1049,7 +1020,6 @@ object TaxiTaskModel {
OCHAdasAbilityManager.getInstance().autopilotUnAbilityReason +
", 请稍候重试"
)
DebugView.printErrorMsg("[启自驾] ${OCHAdasAbilityManager.getInstance().autopilotUnAbilityReason}")
TaxiAnalyticsManager.getInstance().triggerUnableStartAPReasonEvent(
mCurrentTaskWithOrder!!.startSite!!.siteName,
mCurrentTaskWithOrder!!.endSite!!.siteName,
@@ -1068,7 +1038,6 @@ object TaxiTaskModel {
return
}
CallerAutoPilotControlManager.startAutoPilot(parameters)
DebugView.printInfoMsg("[启自驾] 调用成功")
d(
TAG, "start autopilot with parameter: %s",
GsonUtil.jsonFromObject(parameters)
@@ -1136,7 +1105,6 @@ object TaxiTaskModel {
fun cancelAutopilot() {
try {
CallerAutoPilotControlManager.cancelAutoPilot()
DebugView.printInfoMsg("[取消自驾] 调用成功")
d(TAG, "结束自动驾驶")
} catch (e: Exception) {
e.printStackTrace()
@@ -1179,25 +1147,11 @@ object TaxiTaskModel {
//3、刚过站且过站距离在15m内 提交到站
if (stationAngle > 90) {
i(TAG, "judgeEndStation() = 刚过站且在15m内")
DebugView.printInfoMsg(
"[高德定位围栏] 触发围栏,任务类型:${
TaskTypeEnum.valueOf(
mCurrentTaskWithOrder?.taskType ?: 0
)?.name
}围栏范围${TaxiUnmannedConst.ARRIVE_AT_START_STATION_DISTANCE} 刚过站且在15m内"
)
submitArriveSite(endSite.siteId, true)
} else {
}else{
// 4、 没有过站距离小于15m 速度小于0.5(根据M1来的模数 可能要调)
if (currentLocation.gnssSpeed < 0.5) {
i(TAG, "judgeEndStation() = 没有过站、速度基本为零且在15m内")
DebugView.printInfoMsg(
"[高德定位围栏] 触发围栏,任务类型:${
TaskTypeEnum.valueOf(
mCurrentTaskWithOrder?.taskType ?: 0
)?.name
}围栏范围${TaxiUnmannedConst.ARRIVE_AT_START_STATION_DISTANCE} 没有过站速度基本为零且在15m内"
)
submitArriveSite(endSite.siteId, true)
}
}
@@ -1261,7 +1215,6 @@ object TaxiTaskModel {
)
mCurrentTaskWithOrder = null
mDriveToNearestStationTask = null
DebugView.printInfoMsg("[登出] 退出登陆")
}
//导航去订单终点目的地
@@ -1335,13 +1288,11 @@ object TaxiTaskModel {
return
}
d(TAG, "AutopilotControlParameters is update.")
DebugView.printInfoMsg("[启自驾] updateAutopilotControlParameters调用成功")
updateAutopilotControlParameters(parameters)
}
private fun clearAutopilotControlParameters() {
d(TAG, "AutopilotControlParameters is clear.")
DebugView.printInfoMsg("[启自驾] clearAutopilotControlParameters调用成功")
updateAutopilotControlParameters(null)
}
@@ -1358,6 +1309,7 @@ object TaxiTaskModel {
ToastUtils.showShort("无任务!")
return
}
// arriveSite(mCurrentTaskAndOrder?.endSite!!.siteId, true)
autopilotArriveAtStation()
}