? {
return Observable.just(taskId)
.flatMap {
//开始站点: leaving false->true
@@ -218,6 +360,7 @@ class WeaknetRepository : ILineRepository {
"滑动出发",
"task:${currentTask}__taskId:${currentTask?.taskId}"
)
+ CallerLogger.d(TAG,"滑动出发:task:${currentTask}__taskId:${currentTask?.taskId}")
// 设置滑动出发任务
LineManager.getLineInfo { lineInfo ->
EventDb.saveEventTaskLeaveSite(
@@ -226,7 +369,8 @@ class WeaknetRepository : ILineRepository {
it.siteId.toLong(),
it.seq,
taskStartTime,
- lineInfo.lineName
+ lineInfo.lineName,
+ taskDate
)
}
@@ -235,6 +379,7 @@ class WeaknetRepository : ILineRepository {
val changeInfo =
"taskId:${currentTask?.taskId}--lineId:${currentTask?.lineId}--currentStationName:${startStation?.name}--finalNextStationName:${endStation?.name}"
OchChainLogManager.writeChainLog("滑动出发", changeInfo)
+ CallerLogger.d(TAG,"滑动出发:$changeInfo")
// 开始任务成功
return@flatMap Observable.just(true)
}
@@ -264,7 +409,8 @@ class WeaknetRepository : ILineRepository {
end.siteId.toLong(),
end.seq,
task.taskStartTime,
- lineInfo.lineName
+ lineInfo.lineName,
+ task.taskDate
)
}
}
@@ -274,6 +420,7 @@ class WeaknetRepository : ILineRepository {
"到站_数据更新_error",
"task:${currentTask}__taskId:${currentTask?.taskId}"
)
+ CallerLogger.d(TAG,"到站_数据更新_error:task:${currentTask}__taskId:${currentTask?.taskId}")
}
// 结束站点: drivingStatus 3-2
if (currentTask != null && currentTask!!.taskId != null) {
@@ -289,10 +436,12 @@ class WeaknetRepository : ILineRepository {
"到站_数据更新_error",
"task:${currentTask}__taskId:${currentTask?.taskId}"
)
+ CallerLogger.d(TAG,"到站_数据更新_error:task:${currentTask}__taskId:${currentTask?.taskId}")
}
val changeInfo =
"taskId:${currentTask?.taskId}--lineId:${currentTask?.lineId}--currentStationName:${start.name}--finalNextStationName:${end.name}"
OchChainLogManager.writeChainLog("到站", changeInfo)
+ CallerLogger.d(TAG,"到站:$changeInfo")
}
return@flatMap Observable.just(true)
}
@@ -306,7 +455,7 @@ class WeaknetRepository : ILineRepository {
if (task.taskId!=null&&task.lineId!=null) {
TaskDb.endTask(task.taskId!!)
LineManager.getLineInfo { lineInfo ->
- EventDb.saveEventTaskEnd(task.taskId!!,task.lineId!!,task.taskStartTime,lineInfo.lineName)
+ EventDb.saveEventTaskEnd(task.taskId!!,task.lineId!!,task.taskStartTime,lineInfo.lineName,task.taskDate?:0L)
}
}
}
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/NetInterface.java b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/NetInterface.java
index 3d8ce68708..2ebcdcfcd8 100644
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/NetInterface.java
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/NetInterface.java
@@ -7,7 +7,7 @@ import com.mogo.och.data.bean.BusRoutesResult;
import com.mogo.och.weaknet.bean.request.ShuttleEventRequest;
import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse;
import com.mogo.eagle.core.data.BaseData;
-import com.mogo.och.weaknet.repository.db.bean.LineDataBean;
+import com.mogo.och.data.db.bean.LineDataBean;
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean;
import com.mogo.och.weaknet.repository.net.bean.request.PassengerWriteOffRequest;
import com.mogo.och.weaknet.repository.net.bean.response.PassengerWriteOffResponse;
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/response/BusQueryLinesResponse.java b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/response/BusQueryLinesResponse.java
index 5d0726f457..9d19d0e2c9 100644
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/response/BusQueryLinesResponse.java
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/response/BusQueryLinesResponse.java
@@ -1,7 +1,7 @@
package com.mogo.och.weaknet.repository.net.bean.response;
import com.mogo.eagle.core.data.BaseData;
-import com.mogo.och.weaknet.repository.db.bean.LineDataBean;
+import com.mogo.och.data.db.bean.LineDataBean;
import java.util.List;
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/dali/bus/DaliBusServiceManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/dali/bus/DaliBusServiceManager.kt
index 832e005094..96f078184f 100644
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/dali/bus/DaliBusServiceManager.kt
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/dali/bus/DaliBusServiceManager.kt
@@ -8,7 +8,7 @@ import com.mogo.och.common.module.network.OchCommonNet
import com.mogo.och.common.module.network.interceptor.transformTry
import com.mogo.och.data.bean.BusRoutesResult
import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest
-import com.mogo.och.weaknet.repository.db.bean.LineDataBean
+import com.mogo.och.data.db.bean.LineDataBean
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
import com.mogo.och.weaknet.repository.net.NetInterface
import com.mogo.och.weaknet.repository.net.bean.request.BusCloseTaskRequest
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/mogo/bus/MogoBusServiceManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/mogo/bus/MogoBusServiceManager.kt
index e8532328c8..f211cc3c08 100644
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/mogo/bus/MogoBusServiceManager.kt
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/mogo/bus/MogoBusServiceManager.kt
@@ -8,7 +8,7 @@ import com.mogo.och.common.module.network.OchCommonNet
import com.mogo.och.common.module.network.interceptor.transformTry
import com.mogo.och.data.bean.BusRoutesResult
import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest
-import com.mogo.och.weaknet.repository.db.bean.LineDataBean
+import com.mogo.och.data.db.bean.LineDataBean
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
import com.mogo.och.weaknet.repository.net.NetInterface
import com.mogo.och.weaknet.repository.net.bean.request.BusCloseTaskRequest
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/mogo/shuttle/MogoShuttleServiceManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/mogo/shuttle/MogoShuttleServiceManager.kt
index ce31bed2b5..4939892a13 100644
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/mogo/shuttle/MogoShuttleServiceManager.kt
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/mogo/shuttle/MogoShuttleServiceManager.kt
@@ -8,7 +8,7 @@ import com.mogo.och.common.module.network.OchCommonNet
import com.mogo.och.common.module.network.interceptor.transformTry
import com.mogo.och.data.bean.BusRoutesResult
import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest
-import com.mogo.och.weaknet.repository.db.bean.LineDataBean
+import com.mogo.och.data.db.bean.LineDataBean
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
import com.mogo.och.weaknet.repository.net.NetInterface
import com.mogo.och.weaknet.repository.net.bean.request.BusCloseTaskRequest
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/saas/bus/SaasBusServiceManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/saas/bus/SaasBusServiceManager.kt
index 605a791148..196819f7e6 100644
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/saas/bus/SaasBusServiceManager.kt
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/saas/bus/SaasBusServiceManager.kt
@@ -6,7 +6,6 @@ import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.eagle.core.data.BaseData
import com.mogo.eagle.core.network.MoGoRetrofitFactory
import com.mogo.och.common.module.constant.OchCommonConst
-import com.mogo.och.common.module.manager.cache.OchSPManager
import com.mogo.och.common.module.network.OchCommonNet
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.common.module.network.OchCommonSubscribeImpl
@@ -14,7 +13,6 @@ import com.mogo.och.common.module.network.interceptor.transformIoTry
import com.mogo.och.data.bean.BusRoutesResult
import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse
import com.mogo.och.weaknet.bean.request.ShuttleEventRequest
-import com.mogo.och.weaknet.repository.net.bean.request.WriteOffCountReqBean
import com.mogo.och.weaknet.repository.net.NetInterface
import io.reactivex.Observable
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/saas/scheduled/ISaasScheduledApiService.java b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/saas/scheduled/ISaasScheduledApiService.java
new file mode 100644
index 0000000000..8b6100aa34
--- /dev/null
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/saas/scheduled/ISaasScheduledApiService.java
@@ -0,0 +1,69 @@
+package com.mogo.och.weaknet.repository.net.project.saas.scheduled;
+
+import com.mogo.eagle.core.data.BaseData;
+import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest;
+import com.mogo.och.weaknet.bean.request.ShuttleEventRequest;
+import com.mogo.och.weaknet.bean.response.BusRoutesResponse;
+import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse;
+import com.mogo.och.weaknet.bean.response.WriteOffCountResponse;
+import com.mogo.och.weaknet.repository.net.bean.request.PassengerWriteOffRequest;
+import com.mogo.och.weaknet.repository.net.bean.request.WriteOffCountReqBean;
+import com.mogo.och.weaknet.repository.net.bean.response.PassengerWriteOffResponse;
+
+import io.reactivex.Observable;
+import retrofit2.http.Body;
+import retrofit2.http.GET;
+import retrofit2.http.Header;
+import retrofit2.http.Headers;
+import retrofit2.http.POST;
+import retrofit2.http.Query;
+
+/**
+ * 小巴车相关接口
+ *
+ * @author tongchenfei
+ *
+ * wiki: http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=48970072
+ */
+public interface ISaasScheduledApiService {
+
+ /**
+ * 查询当前运行任务
+ *
+ * @param request 请求参数
+ * @return 接口返回数据
+ */
+ @Headers( {"Content-Type:application/json;charset=UTF-8"} )
+ @POST( "/och-shuttle-cabin/api/business/v1/driver/lineDataWithDriver/query" )
+ Observable queryBusRoutes(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusQueryLineStationsRequest request);
+
+ /**
+ * 查询当前站点核销的人数
+ */
+ @Headers( {"Content-type:application/json;charset=UTF-8"} )
+ @POST("/och-vehicle/api/car/v2/task/site/writeOffCount")
+ Observable writeOffCount(@Header ("appId") String appId, @Header("ticket") String ticket, @Body WriteOffCountReqBean writeOffCountReqBean);
+
+ /**
+ * 同步核销接口
+ */
+ @Headers({"Content-type:application/json;charset=UTF-8"})
+ @POST("/och-vehicle/api/car/v2/device/writeOff")
+ Observable saaswriteOffTicket(@Header ("appId") String appId, @Header("ticket") String ticket, @Body PassengerWriteOffRequest request);
+
+ /**
+ * 同步 线路、站点、任务、自驾轨迹信息
+ */
+ @Headers( {"Content-type:application/json;charset=UTF-8"} )
+ @GET("/och-vehicle/cabin/queryCarExecutableTaskList")
+ Observable queryCarExecutableTaskList(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("sn") String sn);
+
+ /**
+ * 上传 开始线路 滑动出发 到站 完成线路 各个任务到服务器端
+ */
+ @Headers( {"Content-Type:application/json;charset=UTF-8"} )
+ @POST( "/och-vehicle/cabin/reportCabinEvent" )
+ Observable reportCabinEvent(@Header ("appId") String appId, @Header("ticket") String ticket, @Body ShuttleEventRequest request);
+
+}
+
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/saas/scheduled/SaasScheduledServiceManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/saas/scheduled/SaasScheduledServiceManager.kt
new file mode 100644
index 0000000000..c696fefd21
--- /dev/null
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/project/saas/scheduled/SaasScheduledServiceManager.kt
@@ -0,0 +1,81 @@
+package com.mogo.och.weaknet.repository.net.project.saas.scheduled
+
+import android.content.Context
+import com.mogo.cloud.passport.MoGoAiCloudClientConfig
+import com.mogo.commons.storage.SharedPrefsMgr
+import com.mogo.eagle.core.data.BaseData
+import com.mogo.eagle.core.network.MoGoRetrofitFactory
+import com.mogo.och.common.module.constant.OchCommonConst
+import com.mogo.och.common.module.manager.cache.OchSPManager
+import com.mogo.och.common.module.network.OchCommonNet
+import com.mogo.och.common.module.network.OchCommonServiceCallback
+import com.mogo.och.common.module.network.OchCommonSubscribeImpl
+import com.mogo.och.common.module.network.interceptor.transformIoTry
+import com.mogo.och.data.bean.BusRoutesResult
+import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest
+import com.mogo.och.weaknet.bean.request.ShuttleEventRequest
+import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse
+import com.mogo.och.weaknet.repository.net.NetInterface
+import io.reactivex.Observable
+
+/**
+ * @author: wangmingjun
+ * @date: 2021/10/20
+ */
+object SaasScheduledServiceManager: NetInterface {
+
+ private val mService: ISaasScheduledApiService = MoGoRetrofitFactory.getInstance(OchCommonConst.getShuttleUrl()).create(
+ ISaasScheduledApiService::class.java
+ )
+
+
+ /**
+ * 查询小巴车当前任务
+ */
+ override fun queryBusRoutes(): Observable? {
+ //获取当前高德坐标
+ return mService.queryBusRoutes(
+ MoGoAiCloudClientConfig.getInstance().serviceAppId,
+ SharedPrefsMgr.getInstance().token,
+ BusQueryLineStationsRequest()
+ ) .transformIoTry()
+ .flatMap(OchCommonNet("queryBusRoutes",false))
+ .flatMap {
+ Observable.just(it.data?:BusRoutesResult())
+ }
+ }
+
+ /**
+ * 同步 线路、站点、任务、自驾轨迹信息
+ */
+ override fun queryCarExecutableTaskList(
+ context: Context,
+ callback: OchCommonServiceCallback?
+ ) {
+ mService.queryCarExecutableTaskList(
+ MoGoAiCloudClientConfig.getInstance().serviceAppId,
+ SharedPrefsMgr.getInstance().token,
+ OchSPManager.getSn()
+ )
+ .transformIoTry()
+ .subscribe(OchCommonSubscribeImpl(context, callback, "queryCarExecutableTaskList"))
+ }
+
+ /**
+ * 上传 开始线路 滑动出发 到站 完成线路 各个任务到服务器端
+ */
+ override fun reportCabinEvent(
+ context: Context,
+ data: ShuttleEventRequest,
+ callback: OchCommonServiceCallback?,
+ ) {
+ mService.reportCabinEvent(
+ MoGoAiCloudClientConfig.getInstance().serviceAppId,
+ SharedPrefsMgr.getInstance().token,
+ data,
+ )
+ .subscribe(OchCommonSubscribeImpl(context, callback, "reportCabinEvent"))
+ }
+
+
+}
\ No newline at end of file
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/writeoff/impl/WriteOffCacheRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/writeoff/impl/WriteOffCacheRepository.kt
index 51fefe31db..56c053050d 100644
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/writeoff/impl/WriteOffCacheRepository.kt
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/writeoff/impl/WriteOffCacheRepository.kt
@@ -1,14 +1,15 @@
package com.mogo.och.weaknet.repository.writeoff.impl
import android.content.Context
-import com.mogo.commons.AbsMogoApplication
import com.mogo.commons.env.Project
import com.mogo.commons.env.ProjectUtils
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
+import com.mogo.eagle.core.utilcode.mogo.Product
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
+import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
import com.mogo.och.common.module.biz.login.LoginStatusManager
-import com.mogo.och.common.module.manager.autopilot.line.LineManager
+import com.mogo.och.bridge.autopilot.line.LineManager
import com.mogo.och.common.module.manager.cache.OchSPManager
import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffDetialMsg
import com.mogo.och.common.module.utils.DateTimeUtil
@@ -24,15 +25,14 @@ import com.mogo.och.weaknet.repository.net.exception.NetException
import com.mogo.och.weaknet.repository.net.NetInterface
import com.mogo.och.weaknet.repository.net.bean.response.PassengerWriteOffResponse
import com.mogo.och.weaknet.repository.net.project.saas.bus.SaasBusServiceManager
-import com.mogo.och.weaknet.repository.net.project.saas.shuttle.SaasShuttleServiceManager
+import com.mogo.och.weaknet.repository.net.project.saas.scheduled.SaasScheduledServiceManager
import com.mogo.och.weaknet.repository.writeoff.IWriteOffRepository
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers
class WriteOffCacheRepository : IWriteOffRepository {
- private val TAG = "ShuttleSaasRepository"
- private val context = AbsMogoApplication.getApp()
+ private val TAG = "${M_BUS}ShuttleSaasRepository"
private var weakNetInterface: NetInterface?=null
get() {
@@ -40,7 +40,7 @@ class WriteOffCacheRepository : IWriteOffRepository {
when (ProjectUtils.getProjectType()) {
Project.SAAS -> {
if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) {
- field = SaasShuttleServiceManager
+ field = SaasScheduledServiceManager
}else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) {
field = SaasBusServiceManager
}
@@ -124,7 +124,7 @@ class WriteOffCacheRepository : IWriteOffRepository {
}
}
// 3、校验 bus和shuttle
- if (LoginStatusManager.getBusInessType().name.lowercase()!=it.typeBiz) {
+ if (LoginStatusManager.getBusInessType()!=Product.valueOf(it.typeBiz)) {
throw DataException(1005,"车辆未登录、或没有任务")
}
// 4 二维码1分钟失效
@@ -163,10 +163,19 @@ class WriteOffCacheRepository : IWriteOffRepository {
if (start?.siteId?.toLong() == it.startStationId) {
siteId = it.startStationId
} else {
- throw DataException(
- 6003,
- "车票站点信息与当前车辆执行任务的站点信息不符合"
- )
+ throw DataException(6003, "车票站点信息与当前车辆执行任务的站点信息不符合")
+ }
+ } else if(AppIdentityModeUtils.isScheduled(FunctionBuildConfig.appIdentityMode)){
+ val (start, _) = LineManager.getStations()
+ siteId = start?.siteId?.toLong() ?: 0
+ // 8、校验起始站点
+ val task = LineModel.currentTask
+ if(task==null){
+ throw DataException(6004, "车辆未执行任务")
+ }else{
+ if (task.taskId!=it.shiftsId) {
+ throw DataException(6005, "车票站点信息与当前车辆执行任务信息不符合")
+ }
}
}
} else {
@@ -178,6 +187,7 @@ class WriteOffCacheRepository : IWriteOffRepository {
addWrite.bookingTime = it.bookingTime
addWrite.type = it.type
addWrite.taskId = LineModel.currentTask?.taskId
+ addWrite.taskDate = LineModel.currentTask?.taskDate
addWrite.lineId = lineId
addWrite.siteId = siteId
addWrite.availableTimes = it.availableTimes
@@ -224,6 +234,9 @@ class WriteOffCacheRepository : IWriteOffRepository {
?.observeOn(AndroidSchedulers.mainThread())
}
+ /**
+ * 小程序核销的乘客插入到计算核销人数的包中
+ */
override fun writeOffEvent4Socket(passenger: WriteOffPassenger) {
val addWrite = WriteOffDataBean()
//addWrite.expiryTime = it.expiryTime
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/writeoff/impl/WriteOffNormallRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/writeoff/impl/WriteOffNormallRepository.kt
index f9deca8196..1ce1ebd7a0 100644
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/writeoff/impl/WriteOffNormallRepository.kt
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/writeoff/impl/WriteOffNormallRepository.kt
@@ -7,6 +7,7 @@ import com.mogo.commons.env.ProjectUtils
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
+import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffDetialMsg
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.weaknet.bean.WaitUploadLine
@@ -26,7 +27,7 @@ import io.reactivex.schedulers.Schedulers
class WriteOffNormallRepository: IWriteOffRepository {
- private val TAG = "WriteOffNormallRepository"
+ private val TAG = "${M_BUS}WriteOffNormallRepository"
private var normalNetInterface: NetInterface?=null
get() {
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/BusStationCommonItem.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/BusStationCommonItem.kt
deleted file mode 100644
index 4390ae6de0..0000000000
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/BusStationCommonItem.kt
+++ /dev/null
@@ -1,99 +0,0 @@
-package com.mogo.och.weaknet.ui
-
-import android.content.Context
-import android.util.AttributeSet
-import android.view.LayoutInflater
-import android.widget.ImageView
-import android.widget.LinearLayout
-import androidx.core.content.ContextCompat
-import com.mogo.och.common.module.utils.BlinkAnimationUtil
-import com.mogo.och.shuttle.weaknet.R
-import kotlinx.android.synthetic.main.shuttle_weak_stations_common_item.view.*
-
-/**
- * @author: wangmingjun
- * @date: 2022/9/15
- */
-class BusStationCommonItem @JvmOverloads constructor(
- context: Context,
- attrs: AttributeSet? = null,
- defStyleAttr: Int = 0
-) : LinearLayout(context, attrs, defStyleAttr){
-
- init {
- LayoutInflater.from(context).inflate(R.layout.shuttle_weak_stations_common_item,this,true)
- }
-
- fun setStationName(name: String){
- busStationNameTv.text = name
- }
-
- fun setStationNameColor(color: Int){
- busStationNameTv.setTextColor(color)
- }
-
- fun setStationPointBg(type: Int) { // 0:灰色 过站 1:绿色 到站或者即将到站 2:蓝色:未到站
- BlinkAnimationUtil.clearAnimation(busCircleIv)
- when (type) {
- 0 -> {
- busCircleIvBg.visibility = GONE
- busCircleIv.setImageDrawable(
- ContextCompat.getDrawable(
- context,
- R.drawable.icon_point_grey_bus
- )
- )
- }
- 1 -> {
- busCircleIvBg.visibility = VISIBLE
- busCircleIv.setImageDrawable(
- ContextCompat.getDrawable(
- context,
- R.drawable.icon_point_green_bus
- )
- )
- BlinkAnimationUtil.setAnimation(busCircleIv)
- }
- 2 -> {
- busCircleIvBg.visibility = GONE
- busCircleIv.setImageDrawable(
- ContextCompat.getDrawable(
- context,
- R.drawable.icon_point_blue_bus
- )
- )
- }
-
- }
- }
-
- fun getCircleImageView() : ImageView{
- return busCircleIv
- }
-
- fun setStationArrowBg(type: Int){// 0:灰色 过站 1:绿色 前往下一站 2:蓝色 未到站
- when(type){
- 0 -> busArrowBg.setImageResource(R.drawable.icon_arrow_grey_bus)
- 1 -> busArrowBg.setImageResource(R.drawable.icon_arrow_green_bus)
- 2 -> busArrowBg.setImageResource(R.drawable.icon_arrow_blue_bus)
- }
-
- }
-
- fun setStationTag(tag: String){ // 0:起 1:终
- if (tag.isNullOrEmpty()){
- busTagTxt.visibility = GONE
- }else{
- busTagTxt.text = tag
- busTagTxt.visibility = VISIBLE
- }
- }
-
- fun showOrHideStationArrowBg(isShow:Boolean){
- if (isShow){
- busArrowBg.visibility = VISIBLE
- }else{
- busArrowBg.visibility = GONE
- }
- }
-}
\ No newline at end of file
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/bizswitch/SwitchBizView.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/bizswitch/SwitchBizView.kt
index 6731c0d998..796a6cef28 100644
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/bizswitch/SwitchBizView.kt
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/bizswitch/SwitchBizView.kt
@@ -6,20 +6,21 @@ import android.view.LayoutInflater
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.findViewTreeViewModelStoreOwner
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
+import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import com.mogo.och.common.module.utils.ResourcesUtils
import com.mogo.och.common.module.utils.RxUtils
import com.mogo.och.common.module.wigets.WindowRelativeLayout
import com.mogo.och.shuttle.weaknet.R
-import com.mogo.och.weaknet.repository.db.bean.LineDataBean
+import com.mogo.och.data.db.bean.LineDataBean
import io.reactivex.disposables.Disposable
import kotlinx.android.synthetic.main.shuttle_weak_switch_biz.view.loading_biz
import kotlinx.android.synthetic.main.shuttle_weak_switch_biz.view.swtichLine
import kotlinx.android.synthetic.main.shuttle_weak_switch_biz.view.swtichTask
import kotlinx.android.synthetic.main.shuttle_weak_switch_biz.view.taskRunning
-class SwitchBizView: WindowRelativeLayout, SwtichBizeModel.SwtichLineViewCallback {
+class SwitchBizView: WindowRelativeLayout, SwtichBizModel.SwtichLineViewCallback {
constructor(context: Context?) : super(context)
@@ -32,10 +33,10 @@ class SwitchBizView: WindowRelativeLayout, SwtichBizeModel.SwtichLineViewCallbac
companion object {
- const val TAG = "SwitchBizView"
+ const val TAG = M_BUS+"SwitchBizView"
}
- private var viewModel: SwtichBizeModel?=null
+ private var viewModel: SwtichBizModel?=null
private var queryTimeout: Disposable? = null
@@ -50,16 +51,27 @@ class SwitchBizView: WindowRelativeLayout, SwtichBizeModel.SwtichLineViewCallbac
}
override fun onAttachedToWindow() {
+ CallerLogger.d(TAG,"SwitchBizView:onAttachedToWindow")
super.onAttachedToWindow()
viewModel = findViewTreeViewModelStoreOwner()?.let {
- ViewModelProvider(it).get(SwtichBizeModel::class.java)
+ ViewModelProvider(it)[SwtichBizModel::class.java]
}
- viewModel?.setDistanceCallback(this)
+ viewModel?.setSwitchBizCallback(this)
+ }
+
+ override fun onDetachedFromWindow() {
+ super.onDetachedFromWindow()
+ CallerLogger.d(TAG,"SwitchBizView:onDetachedFromWindow")
}
var startLoading = System.currentTimeMillis()
- // 展示loading页面
+ /**
+ * 展示loading页面
+ * 1、
+ * 2、第一次加载页面时展示
+ * 3、
+ */
override fun showLoadingView(){
startLoading = System.currentTimeMillis()
CallerLogger.d(TAG,"开始展示 lading 时间:${startLoading}")
@@ -68,11 +80,11 @@ class SwitchBizView: WindowRelativeLayout, SwtichBizeModel.SwtichLineViewCallbac
swtichTask.visibility = GONE
queryTimeout = RxUtils.createSubscribe(10_1000) {
OchChainLogManager.writeChainLog("Loading超时","loading 展示了10s")
+ CallerLogger.d(TAG,"Loading超时:loading 展示了10s")
viewModel?.queryRuningTask()
}
}
-
/**
* 初始化数据
*/
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/bizswitch/SwtichBizeModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/bizswitch/SwtichBizModel.kt
similarity index 73%
rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/bizswitch/SwtichBizeModel.kt
rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/bizswitch/SwtichBizModel.kt
index aec2d1be72..7de0034dcb 100644
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/bizswitch/SwtichBizeModel.kt
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/bizswitch/SwtichBizModel.kt
@@ -1,49 +1,49 @@
package com.mogo.och.weaknet.ui.bizswitch
import androidx.lifecycle.ViewModel
-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.scene.SceneConstant.Companion.M_BUS
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.weaknet.callback.IBusLinesCallback
import com.mogo.och.weaknet.model.LineModel
import com.mogo.och.weaknet.model.OrderModel
-import com.mogo.och.weaknet.repository.db.bean.LineDataBean
-import com.mogo.och.weaknet.ui.switchtask.SwitchTaskView
-import com.mogo.och.weaknet.ui.switchtask.SwitchTaskView.Companion
+import com.mogo.och.data.db.bean.LineDataBean
/**
* @author XuXinChao
* @description BadCase录包管理页面
* @since: 2022/12/15
*/
-class SwtichBizeModel : ViewModel(), IBusLinesCallback {
+class SwtichBizModel : ViewModel(), IBusLinesCallback {
- private val TAG = SwtichBizeModel::class.java.simpleName
+ private val TAG = M_BUS + SwtichBizModel::class.java.simpleName
private var viewCallback: SwtichLineViewCallback? = null
override fun onCleared() {
+ d(TAG, "onCleared")
LineModel.setBusLinesCallback(TAG, null)
}
- fun setDistanceCallback(viewCallback: SwtichLineViewCallback) {
- this.viewCallback = viewCallback
+ fun setSwitchBizCallback(viewCallback: SwtichLineViewCallback) {
+ d(TAG, "setSwitchBizCallback")
LineModel.setBusLinesCallback(TAG, this)
+ this.viewCallback = viewCallback
this.viewCallback?.showLoadingView()
ThreadUtils.getIoPool().execute {
OrderModel.queryBusRoutes()
}
}
- fun queryRuningTask(){
+ fun queryRuningTask() {
ThreadUtils.getIoPool().execute {
OrderModel.queryBusRoutes()
}
}
fun loadingSwitchTask(lineInfo: LineDataBean) {
- d(LineModel.TAG, "loadingSwitchTask 查询线路的任务线路信息:${lineInfo}")
+ d(TAG, "loadingSwitchTask 查询线路的任务线路信息:${lineInfo}")
viewCallback?.showSwitchTaskByLineInfo(lineInfo)
}
@@ -76,12 +76,12 @@ class SwtichBizeModel : ViewModel(), IBusLinesCallback {
override fun onNoRunningTask() {
this.viewCallback?.loadLineData()
- CallerLogger.d(TAG,"没有任务去加载线路")
+ d(TAG, "没有任务去加载线路")
}
override fun onRunningTask() {
this.viewCallback?.loadRunningTask()
- CallerLogger.d(TAG,"有任务去加载正在执行的任务")
+ d(TAG, "有任务去加载正在执行的任务")
}
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/fragment/BusPresenter.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/fragment/BusPresenter.kt
index ec938a5400..03c2f0e057 100644
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/fragment/BusPresenter.kt
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/fragment/BusPresenter.kt
@@ -4,19 +4,15 @@ import androidx.lifecycle.LifecycleOwner
import com.mogo.commons.AbsMogoApplication
import com.mogo.commons.mvp.Presenter
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
-import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
+import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
import com.mogo.och.common.module.biz.login.ILoginCallback
import com.mogo.och.common.module.biz.login.LoginStatusEnum
import com.mogo.och.common.module.biz.login.LoginStatusManager
import com.mogo.och.common.module.biz.login.LoginStatusManager.isLogin
-import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager
-import com.mogo.och.common.module.manager.autopilot.autopilot.bean.ArrivedStation
-import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener
-import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager
+import com.mogo.och.bridge.autopilot.OCHAdasAbilityManager
import com.mogo.och.weaknet.model.OrderModel
import com.mogo.och.weaknet.util.BusTrajectoryManager
-import mogo_msg.MogoReportMsg.MogoReportMessage
/**
* 网约车小巴
@@ -25,12 +21,6 @@ import mogo_msg.MogoReportMsg.MogoReportMessage
*/
class BusPresenter(view: ShuttleFragment?) : Presenter(view), ILoginCallback {
- init {
- //2021.11.1 鹰眼架构整合,由IMoGoAutopilotStatusListener逐步替代IMogoAdasOCHCallback接口
- OrderModel.init()
- OCHAdasAbilityManager.getInstance().init(AbsMogoApplication.getApp())
- }
-
override fun onCreate(owner: LifecycleOwner) {
super.onCreate(owner)
initModelListener()
@@ -38,31 +28,31 @@ class BusPresenter(view: ShuttleFragment?) : Presenter(view),
override fun onDestroy(owner: LifecycleOwner) {
super.onDestroy(owner)
- OrderModel.release()
+
releaseListener()
}
- fun initModelListener() {
+ private fun initModelListener() {
+ OCHAdasAbilityManager.getInstance().init(AbsMogoApplication.getApp())
LoginStatusManager.addListener(TAG, this)
+ OrderModel.init()
}
- fun releaseListener() {
+ private fun releaseListener() {
OCHAdasAbilityManager.getInstance().release()
-
LoginStatusManager.removeListener(TAG)
+ OrderModel.release()
}
override fun onStatusChange(currentStatus: LoginStatusEnum) {
- d(SceneConstant.M_BUS + TAG, " loginStatus =" + isLogin())
- if (isLogin()) {
- //OrderModel.queryBusRoutes()
- } else {
- BusTrajectoryManager.getInstance().stopTrajReqLoop()
+ d(TAG, " loginStatus =" + isLogin())
+ if (!isLogin()) {
+ BusTrajectoryManager.stopTrajReqLoop()
OrderModel.closeBeautificationMode()
}
}
companion object {
- private const val TAG = "BusPresenter"
+ private const val TAG = M_BUS+"BusPresenter"
}
}
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/fragment/ShuttleFragment.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/fragment/ShuttleFragment.kt
index 51779c99f7..2e952e14b6 100644
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/fragment/ShuttleFragment.kt
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/fragment/ShuttleFragment.kt
@@ -14,7 +14,8 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListener
import com.mogo.eagle.core.function.call.och.CallerEagleBaseFunctionCall4OchManager
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
-import com.mogo.och.common.module.wigets.map.drawline.LineView
+import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
+import com.mogo.och.bridge.ui.drawline.LineView
import com.mogo.och.shuttle.weaknet.R
import com.mogo.och.weaknet.repository.RepositoryManager
import com.mogo.och.weaknet.ui.taskrunned.RunningTaskManager
@@ -109,7 +110,7 @@ class ShuttleFragment : MvpFragment() {
if (mPresenter != null) {
mPresenter!!.onDestroy(this)
}
- if(ProjectUtils.isSaas()&& AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) {
+ if(RepositoryManager.supportDb()){
CallerEagleBaseFunctionCall4OchManager.removeToolkitByTag(mutableListOf(runningTaskGateWay))
}
CallerEagleBaseFunctionCall4OchManager.removeToolKitDefaultItemClickListener(lineView)
@@ -124,6 +125,6 @@ class ShuttleFragment : MvpFragment() {
* END
*/
companion object {
- private const val TAG = "BaseBusTabFragment"
+ private const val TAG = "${M_BUS}BaseBusTabFragment"
}
}
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/qr/QrOpenView.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/qr/QrOpenView.kt
index d8dbf39fa0..1f8ec7466b 100644
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/qr/QrOpenView.kt
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/qr/QrOpenView.kt
@@ -10,6 +10,7 @@ import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
+import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
import com.mogo.eagle.core.utilcode.util.ActivityUtils
import com.mogo.eagle.core.utilcode.util.ImageUtils
import com.mogo.och.common.module.utils.ResourcesUtils
@@ -21,7 +22,7 @@ import me.jessyan.autosize.utils.AutoSizeUtils
class QrOpenView : AppCompatImageView {
- private val TAG = "QrOpenView"
+ private val TAG = M_BUS + "QrOpenView"
constructor(context: Context) : super(context)
@@ -42,7 +43,7 @@ class QrOpenView : AppCompatImageView {
onClick {
d(
- SceneConstant.M_BUS + TAG, "changeOverview Event qrcode,sn = "
+ TAG, "changeOverview Event qrcode,sn = "
+ SharedPrefsMgr.getInstance().sn
)
val qrUrl = String.format(
@@ -64,7 +65,7 @@ class QrOpenView : AppCompatImageView {
.cancelStr(ResourcesUtils.getString(R.string.qr_cancel))
.qrBm(bmQr).build(ActivityUtils.getTopActivity())!!.show()
} else {
- d(SceneConstant.M_BUS + TAG, "bmQr = null ")
+ d(TAG, "bmQr = null ")
}
}
}
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwitchLineAdapter.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwitchLineAdapter.kt
index b3487fa0ce..21a652ae05 100644
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwitchLineAdapter.kt
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwitchLineAdapter.kt
@@ -8,10 +8,10 @@ import androidx.appcompat.widget.AppCompatTextView
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.DiffUtil.Callback
import androidx.recyclerview.widget.RecyclerView
+import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
import com.mogo.och.weaknet.ui.switchline.SwitchLineAdapter.SwitchLineViewHolder
import com.mogo.och.shuttle.weaknet.R
-import com.mogo.och.weaknet.repository.db.bean.LineDataBean
-import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
+import com.mogo.och.data.db.bean.LineDataBean
import me.jessyan.autosize.AutoSizeCompat
/**
@@ -22,7 +22,7 @@ class SwitchLineAdapter(
val mData: MutableList
) : RecyclerView.Adapter() {
companion object{
- const val TAG = "SwitchLineAdapter"
+ const val TAG = M_BUS+"SwitchLineAdapter"
}
// RecyclerView设置点击事件
private var mItemClickListener: LineItemClickListener? = null
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwitchLineView.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwitchLineView.kt
index 81f25f01bf..7f7bedcdff 100644
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwitchLineView.kt
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwitchLineView.kt
@@ -8,12 +8,9 @@ import android.view.LayoutInflater
import android.view.View
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.findViewTreeViewModelStoreOwner
-import androidx.recyclerview.widget.LinearLayoutManager
-import com.mogo.commons.env.ProjectUtils
-import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.utilcode.kotlin.onClick
-import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
+import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
import com.mogo.eagle.core.utilcode.mogo.view.SpacesItemDecoration
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.common.module.manager.loop.BizLoopManager
@@ -22,11 +19,9 @@ import com.mogo.och.common.module.wigets.WindowRelativeLayout
import com.mogo.och.common.module.wigets.WrapContentLinearLayoutManager
import com.mogo.och.common.module.wigets.commonview.ErrorView
import com.mogo.och.shuttle.weaknet.R
-import com.mogo.och.weaknet.model.LineModel
import com.mogo.och.weaknet.repository.RepositoryManager
-import com.mogo.och.weaknet.repository.db.bean.LineDataBean
-import com.mogo.och.weaknet.ui.bizswitch.SwtichBizeModel
-import kotlinx.android.synthetic.main.shuttle_wadk_task_running.view.no_order_data_view
+import com.mogo.och.data.db.bean.LineDataBean
+import com.mogo.och.weaknet.ui.bizswitch.SwtichBizModel
import kotlinx.android.synthetic.main.shuttle_weak_switch_line.view.aciv_refresh_task
import kotlinx.android.synthetic.main.shuttle_weak_switch_line.view.actv_last_refresh_date
import kotlinx.android.synthetic.main.shuttle_weak_switch_line.view.include_empty
@@ -48,11 +43,11 @@ class SwitchLineView: WindowRelativeLayout, SwtichLineModel.SwtichLineViewCallba
companion object {
- const val TAG = "SwitchLineView"
+ const val TAG = "${M_BUS}SwitchLineView"
}
private var viewModel:SwtichLineModel?=null
- private var viewbizModel:SwtichBizeModel?=null
+ private var viewbizModel:SwtichBizModel?=null
private lateinit var mAdapter: SwitchLineAdapter
@@ -81,7 +76,7 @@ class SwitchLineView: WindowRelativeLayout, SwtichLineModel.SwtichLineViewCallba
//设置item 点击事件
mAdapter.setOnLineItemClickListener(object : SwitchLineAdapter.LineItemClickListener{
override fun onItemClick(data: LineDataBean) {
- CallerLogger.d(LineModel.TAG,"选择线路 线路信息:${data}")
+ CallerLogger.d(TAG,"选择线路 线路信息:${data}")
viewbizModel?.loadingSwitchTask(data)
}
})
@@ -124,7 +119,7 @@ class SwitchLineView: WindowRelativeLayout, SwtichLineModel.SwtichLineViewCallba
ViewModelProvider(it).get(SwtichLineModel::class.java)
}
viewbizModel = findViewTreeViewModelStoreOwner()?.let {
- ViewModelProvider(it).get(SwtichBizeModel::class.java)
+ ViewModelProvider(it).get(SwtichBizModel::class.java)
}
viewModel?.setDistanceCallback(this)
@@ -140,7 +135,7 @@ class SwitchLineView: WindowRelativeLayout, SwtichLineModel.SwtichLineViewCallba
}
- override fun onBusLinesChange(data: MutableList?,show:Boolean) {
+ override fun onBusLinesChange(data: MutableList?, show:Boolean) {
if (data.isNullOrEmpty()) {
showNoData(true)
}else{
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwtichLineModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwtichLineModel.kt
index 8c079a44c1..20c95550ae 100644
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwtichLineModel.kt
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwtichLineModel.kt
@@ -1,19 +1,16 @@
package com.mogo.och.weaknet.ui.switchline
import androidx.lifecycle.ViewModel
-import com.mogo.commons.env.ProjectUtils
import com.mogo.commons.storage.SharedPrefsMgr
-import com.mogo.eagle.core.data.config.FunctionBuildConfig
-import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
-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.scene.SceneConstant.Companion.M_BUS
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.common.module.utils.RxUtils
import com.mogo.och.weaknet.callback.IBusLinesCallback
import com.mogo.och.weaknet.model.LineModel
import com.mogo.och.weaknet.model.LineModel.EXECUTABLECHANGETIME
import com.mogo.och.weaknet.repository.RepositoryManager
-import com.mogo.och.weaknet.repository.db.bean.LineDataBean
+import com.mogo.och.data.db.bean.LineDataBean
import io.reactivex.Observer
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
@@ -26,7 +23,7 @@ import io.reactivex.schedulers.Schedulers
*/
class SwtichLineModel : ViewModel(), IBusLinesCallback {
- private val TAG = SwtichLineModel::class.java.simpleName
+ private val TAG = M_BUS+SwtichLineModel::class.java.simpleName
private var viewCallback:SwtichLineViewCallback?=null
@@ -34,7 +31,7 @@ class SwtichLineModel : ViewModel(), IBusLinesCallback {
override fun onCleared() {
- CallerLogger.d(TAG,"onCleared")
+ d(TAG,"onCleared")
LineModel.setBusLinesCallback(TAG,null)
}
@@ -44,7 +41,6 @@ class SwtichLineModel : ViewModel(), IBusLinesCallback {
}
fun queryBusLines(loading:Boolean) {
- LineModel.queryBusLines()
RxUtils.disposeSubscribe(endTaskDisposable)
RepositoryManager.queryCanUseLine()
?.subscribeOn(Schedulers.io())
@@ -52,20 +48,20 @@ class SwtichLineModel : ViewModel(), IBusLinesCallback {
?.subscribe(object : Observer?> {
override fun onSubscribe(d: Disposable) {
endTaskDisposable = d
- d(LineModel.TAG, "queryBusLines onSubscribe")
+ d(TAG, "queryBusLines onSubscribe")
}
override fun onError(e: Throwable) {
- d(LineModel.TAG, "queryBusLines onError${e.printStackTrace()}")
+ d(TAG, "queryBusLines onError${e.printStackTrace()}")
viewCallback?.onBusLinesChangeFaile()
}
override fun onComplete() {
- d(LineModel.TAG, "queryBusLines onComplete")
+ d(TAG, "queryBusLines onComplete")
}
override fun onNext(data: List) {
- d(LineModel.TAG, "queryBusLines onNext ${data}")
+ d(TAG, "queryBusLines onNext ${data}")
val tempData = data.distinctBy { it.lineId }
viewCallback?.onBusLinesChange(tempData.toMutableList(),loading)
if(RepositoryManager.supportDb()) {
@@ -93,7 +89,7 @@ class SwtichLineModel : ViewModel(), IBusLinesCallback {
interface SwtichLineViewCallback{
fun startTaskState(success: Boolean)
- fun onBusLinesChange(data: MutableList?,show:Boolean)
+ fun onBusLinesChange(data: MutableList?, show:Boolean)
fun refreshDate(formatLongToString: String?)
fun onBusLinesChangeFaile()
}
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchtask/SwitchTaskView.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchtask/SwitchTaskView.kt
index f112ccec8a..af90f37929 100644
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchtask/SwitchTaskView.kt
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchtask/SwitchTaskView.kt
@@ -8,15 +8,15 @@ import androidx.lifecycle.findViewTreeViewModelStoreOwner
import androidx.recyclerview.widget.GridLayoutManager
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
+import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.common.module.manager.loop.BizLoopManager
import com.mogo.och.common.module.utils.ResourcesUtils
import com.mogo.och.common.module.wigets.WindowRelativeLayout
import com.mogo.och.shuttle.weaknet.R
-import com.mogo.och.weaknet.model.LineModel
-import com.mogo.och.weaknet.repository.db.bean.LineDataBean
+import com.mogo.och.data.db.bean.LineDataBean
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
-import com.mogo.och.weaknet.ui.bizswitch.SwtichBizeModel
+import com.mogo.och.weaknet.ui.bizswitch.SwtichBizModel
import kotlinx.android.synthetic.main.shuttle_weak_error_view.view.tv_error_msg
import kotlinx.android.synthetic.main.shuttle_weak_switch_task.view.actvLineEndStationName
import kotlinx.android.synthetic.main.shuttle_weak_switch_task.view.actv_cancle_task
@@ -42,11 +42,11 @@ class SwitchTaskView: WindowRelativeLayout, SwtichTaskModel.SwtichLineViewCallba
companion object {
- const val TAG = "BadCaseManagerView"
+ const val TAG = M_BUS+"BadCaseManagerView"
}
private var viewModel:SwtichTaskModel?=null
- private var viewbizModel:SwtichBizeModel?=null
+ private var viewbizModel:SwtichBizModel?=null
private lateinit var mAdapter: SwitchLineTaskAdapter
@@ -93,7 +93,7 @@ class SwitchTaskView: WindowRelativeLayout, SwtichTaskModel.SwtichLineViewCallba
}
tv_error_msg.onClick {
viewModel?.tasksBelongLine?.let {
- d(LineModel.TAG,"刷新线路 线路信息:${it}")
+ d(TAG,"刷新线路 线路信息:${it}")
viewbizModel?.loadingSwitchTask(it)
}
}
@@ -106,13 +106,13 @@ class SwitchTaskView: WindowRelativeLayout, SwtichTaskModel.SwtichLineViewCallba
ViewModelProvider(it).get(SwtichTaskModel::class.java)
}
viewbizModel = findViewTreeViewModelStoreOwner()?.let {
- ViewModelProvider(it).get(SwtichBizeModel::class.java)
+ ViewModelProvider(it).get(SwtichBizModel::class.java)
}
viewModel?.setDistanceCallback(this)
}
fun queryTaskByLineInfo(lineInfo: LineDataBean) {
- d(LineModel.TAG, "queryTaskByLineInfo 查询线路的任务线路id:${lineInfo}")
+ d(TAG, "queryTaskByLineInfo 查询线路的任务线路id:${lineInfo}")
viewModel?.queryBusLineTasksById(lineInfo)
busLineName.text = lineInfo.lineName
actvLineEndStationName.text = "往${lineInfo.endStationName}方向"
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchtask/SwtichTaskModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchtask/SwtichTaskModel.kt
index 4a5691b126..c1654f7f92 100644
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchtask/SwtichTaskModel.kt
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchtask/SwtichTaskModel.kt
@@ -2,6 +2,7 @@ package com.mogo.och.weaknet.ui.switchtask
import androidx.lifecycle.ViewModel
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
+import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.common.module.manager.loop.BizLoopManager
@@ -9,7 +10,7 @@ import com.mogo.och.common.module.utils.RxUtils
import com.mogo.och.weaknet.callback.IBusLinesCallback
import com.mogo.och.weaknet.model.LineModel
import com.mogo.och.weaknet.repository.RepositoryManager
-import com.mogo.och.weaknet.repository.db.bean.LineDataBean
+import com.mogo.och.data.db.bean.LineDataBean
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
import io.reactivex.Observer
import io.reactivex.android.schedulers.AndroidSchedulers
@@ -23,7 +24,7 @@ import io.reactivex.schedulers.Schedulers
*/
class SwtichTaskModel : ViewModel(), IBusLinesCallback {
- private val TAG = SwtichTaskModel::class.java.simpleName
+ private val TAG = M_BUS+SwtichTaskModel::class.java.simpleName
private var viewCallback:SwtichLineViewCallback?=null
@@ -44,27 +45,27 @@ class SwtichTaskModel : ViewModel(), IBusLinesCallback {
fun queryBusLineTasksById(lineInfo: LineDataBean) {
tasksBelongLine = lineInfo
RxUtils.disposeSubscribe(searchTaskBylineIdDisposable)
- d(LineModel.TAG, "queryBusLineTasksById 查询线路的任务线路id:${tasksBelongLine}")
+ d(TAG, "queryBusLineTasksById 查询线路的任务线路id:${tasksBelongLine}")
RepositoryManager.queryCanUserTask(lineInfo.lineId?:-1L)
?.subscribeOn(Schedulers.io())
?.observeOn(AndroidSchedulers.mainThread())
?.subscribe(object : Observer?> {
override fun onSubscribe(d: Disposable) {
searchTaskBylineIdDisposable = d
- d(LineModel.TAG, "queryBusLineTasksById onSubscribe")
+ d(TAG, "queryBusLineTasksById onSubscribe")
}
override fun onError(e: Throwable) {
- d(LineModel.TAG, "queryBusLineTasksById onError${e.printStackTrace()}")
+ d(TAG, "queryBusLineTasksById onError${e.printStackTrace()}")
onBusLineTasksError()
}
override fun onComplete() {
- d(LineModel.TAG, "queryBusLineTasksById onComplete")
+ d(TAG, "queryBusLineTasksById onComplete")
}
override fun onNext(data: List) {
- d(LineModel.TAG, "queryBusLineTasksById onNext ${data}")
+ d(TAG, "queryBusLineTasksById onNext ${data}")
onBusLineTasks(data.toMutableList())
RxUtils.disposeSubscribe(searchTaskBylineIdDisposable)
}
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchtask/TaskBottomDecoration.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchtask/TaskBottomDecoration.kt
index 98faa1e985..22f631e6a0 100644
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchtask/TaskBottomDecoration.kt
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchtask/TaskBottomDecoration.kt
@@ -7,10 +7,11 @@ import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
+import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
class TaskBottomDecoration(val distance: Int) : RecyclerView.ItemDecoration() {
- private val TAG = "TaskBottomDecoration"
+ private val TAG = M_BUS + "TaskBottomDecoration"
override fun getItemOffsets(
outRect: Rect,
@@ -19,22 +20,26 @@ class TaskBottomDecoration(val distance: Int) : RecyclerView.ItemDecoration() {
state: RecyclerView.State
) {
val pos = parent.getChildAdapterPosition(view)
+
/**
* 通过设置Item左右边距实现第一个左侧和最后一个右侧设置边距,确保显示的视图位于屏幕中间
*/
val itemCount = parent.adapter!!.itemCount
val layoutManager = parent.layoutManager
- if(layoutManager is GridLayoutManager){
+ if (layoutManager is GridLayoutManager) {
var lastPathCount = itemCount % layoutManager.spanCount
- //2 5 % 3
- CallerLogger.d(TAG,"位置---${pos}_lastPathCount:${lastPathCount}_____itemCount:${itemCount}__spanCount:${layoutManager.spanCount}")
- if(lastPathCount==0){
+ //2 5 % 3
+ CallerLogger.d(
+ TAG,
+ "位置---${pos}_lastPathCount:${lastPathCount}_____itemCount:${itemCount}__spanCount:${layoutManager.spanCount}"
+ )
+ if (lastPathCount == 0) {
lastPathCount = layoutManager.spanCount
}
- if(pos(R.id.iv_toolkit_item_head).setImageResource(R.drawable.bus_running_task_history)
- findViewById(R.id.iv_toolkit_item_title).text = ResourcesUtils.getString(R.string.bus_running_tasked_gateway)
+ findViewById(R.id.iv_toolkit_item_title).text =
+ ResourcesUtils.getString(R.string.bus_running_tasked_gateway)
}
override fun onAttachedToWindow() {
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunned/RunningTaskManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunned/RunningTaskManager.kt
index c6fc68eadd..b12ff6d343 100644
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunned/RunningTaskManager.kt
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunned/RunningTaskManager.kt
@@ -22,20 +22,20 @@ import androidx.lifecycle.LifecycleEventObserver
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.lifecycleScope
import com.mogo.eagle.core.utilcode.kotlin.lifeCycleOwner
+import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
import com.mogo.eagle.core.utilcode.reminder.Reminder
import com.mogo.eagle.core.utilcode.reminder.api.impl.PopupWindowReminder
import com.mogo.eagle.core.utilcode.util.*
-import com.mogo.och.weaknet.ui.bizswitch.SwitchBizView
import me.jessyan.autosize.utils.AutoSizeUtils
import kotlin.math.abs
-object RunningTaskManager : LifecycleEventObserver{
+object RunningTaskManager : LifecycleEventObserver {
- const val TAG = "BadCase"
+ const val TAG = M_BUS + "RunningTaskManager"
private var hideFloat: (() -> Unit)? = null
- fun init(context: Context) {
+ fun init() {
}
/**
@@ -64,9 +64,21 @@ object RunningTaskManager : LifecycleEventObserver{
}
- fun enqueuePop(content: View, width: Int, height: Int, key: String = "", startX: Int = 0, startY: Int = 0, gravity: Int = Gravity.START, onOuterViewClicked:((focus: View) -> Unit)? = null, isOverride: Boolean = false, isFocusable: Boolean = true): () -> Unit {
- val topActivity = ActivityUtils.getTopActivity()
- val activity = (topActivity as? FragmentActivity) ?: throw IllegalStateException("please use Activity to trigger pop show.")
+ fun enqueuePop(
+ content: View,
+ width: Int,
+ height: Int,
+ key: String = "",
+ startX: Int = 0,
+ startY: Int = 0,
+ gravity: Int = Gravity.START,
+ onOuterViewClicked: ((focus: View) -> Unit)? = null,
+ isOverride: Boolean = false,
+ isFocusable: Boolean = true
+ ): () -> Unit {
+ val topActivity = ActivityUtils.getTopActivity()
+ val activity = (topActivity as? FragmentActivity)
+ ?: throw IllegalStateException("please use Activity to trigger pop show.")
val isImmersiveMode = BarUtils.isImmersiveMode(activity)
var tempReminder: PopupWindowReminder? = null
activity.lifecycleScope.launchWhenResumed {
@@ -87,16 +99,18 @@ object RunningTaskManager : LifecycleEventObserver{
return@setTouchInterceptor false
}
- when(event.actionMasked) {
- MotionEvent.ACTION_DOWN -> {
+ when (event.actionMasked) {
+ MotionEvent.ACTION_DOWN -> {
x = event.x
y = event.y
}
+
MotionEvent.ACTION_MOVE -> {
val deltaX = event.x - x
val deltaY = event.y - y
isClicked = !(abs(deltaX) > touchSlop || abs(deltaY) > touchSlop)
}
+
MotionEvent.ACTION_UP -> {
if (isClicked) {
isClicked = false
@@ -130,6 +144,7 @@ object RunningTaskManager : LifecycleEventObserver{
override fun show() {
pop.showAtLocation(activity.window.decorView, gravity, startX, startY)
}
+
override fun isOverride(): Boolean = isOverride
}
tempReminder = reminder
@@ -141,6 +156,4 @@ object RunningTaskManager : LifecycleEventObserver{
}
-
-
}
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunned/RunningTaskManagerView.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunned/RunningTaskManagerView.kt
index aa5ebea43d..be9de0da6e 100644
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunned/RunningTaskManagerView.kt
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunned/RunningTaskManagerView.kt
@@ -6,6 +6,7 @@ import android.view.LayoutInflater
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import com.mogo.eagle.core.utilcode.kotlin.onClick
+import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.common.module.utils.ResourcesUtils
import com.mogo.och.common.module.wigets.WindowRelativeLayout
@@ -23,24 +24,33 @@ import kotlinx.android.synthetic.main.shuttle_wadk_task_running.view.upload_btn_
import me.jessyan.autosize.utils.AutoSizeUtils
-class RunningTaskManagerView: WindowRelativeLayout, RunningTastViewModel.RunningTaskViewCallback {
+class RunningTaskManagerView : WindowRelativeLayout, RunningTastViewModel.RunningTaskViewCallback {
constructor(context: Context?) : super(context)
constructor(context: Context?, attributeSet: AttributeSet) : super(context, attributeSet)
- constructor(context: Context?, attributeSet: AttributeSet, defStyleAttr: Int) : super(context, attributeSet, defStyleAttr)
+ constructor(context: Context?, attributeSet: AttributeSet, defStyleAttr: Int) : super(
+ context,
+ attributeSet,
+ defStyleAttr
+ )
- constructor(context: Context?, attributeSet: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attributeSet, defStyleAttr, defStyleRes)
+ constructor(
+ context: Context?,
+ attributeSet: AttributeSet,
+ defStyleAttr: Int,
+ defStyleRes: Int
+ ) : super(context, attributeSet, defStyleAttr, defStyleRes)
companion object {
- const val TAG = "BadCaseManagerView"
+ const val TAG = M_BUS + "RunningTaskManagerView"
}
- private var clickListener:ClickListener?=null
- private var viewModel:RunningTastViewModel?=null
+ private var clickListener: ClickListener? = null
+ private var viewModel: RunningTastViewModel? = null
private lateinit var mAdapter: RunningTaskAdapter
private lateinit var linearLayoutManager: WrapContentLinearLayoutManager
@@ -50,7 +60,7 @@ class RunningTaskManagerView: WindowRelativeLayout, RunningTastViewModel.Running
initView()
}
- private fun initView(){
+ private fun initView() {
//关闭BadCase管理窗口
ivTaskRunningClose.setOnClickListener {
clickListener?.onClose()
@@ -90,9 +100,14 @@ class RunningTaskManagerView: WindowRelativeLayout, RunningTastViewModel.Running
override fun onVisibilityAggregated(isVisible: Boolean) {
super.onVisibilityAggregated(isVisible)
- if(isVisible){
+ if (isVisible) {
viewModel?.queryNewData()
- actvCurrentDate.setText(DateTimeUtil.formatLongToString(System.currentTimeMillis(),DateTimeUtil.MM_dd_HH_mm_china))
+ actvCurrentDate.setText(
+ DateTimeUtil.formatLongToString(
+ System.currentTimeMillis(),
+ DateTimeUtil.MM_dd_HH_mm_china
+ )
+ )
}
}
@@ -102,12 +117,12 @@ class RunningTaskManagerView: WindowRelativeLayout, RunningTastViewModel.Running
override fun showData(data: MutableList) {
mAdapter.setDataList(data)
- if(data.isEmpty()){
+ if (data.isEmpty()) {
rvDataLiet.visibility = GONE
no_order_data_view.visibility = VISIBLE
aciv_show_data.visibility = GONE
upload_btn_commit.visibility = GONE
- }else{
+ } else {
rvDataLiet.visibility = VISIBLE
no_order_data_view.visibility = GONE
aciv_show_data.visibility = VISIBLE
@@ -116,12 +131,13 @@ class RunningTaskManagerView: WindowRelativeLayout, RunningTastViewModel.Running
}
override fun showUpdating(isupload: Boolean) {
- if(isupload){
+ if (isupload) {
upload_btn_commit_progress.visibility = VISIBLE
upload_btn_commit_title.text = "上传中"
- }else{
+ } else {
upload_btn_commit_progress.visibility = GONE
- upload_btn_commit_title.text = ResourcesUtils.getString(R.string.bus_running_task_upload)
+ upload_btn_commit_title.text =
+ ResourcesUtils.getString(R.string.bus_running_task_upload)
}
}
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunned/RunningTastViewModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunned/RunningTastViewModel.kt
index 42d144c1ef..f2ee48c88b 100644
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunned/RunningTastViewModel.kt
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunned/RunningTastViewModel.kt
@@ -2,6 +2,7 @@ package com.mogo.och.weaknet.ui.taskrunned
import androidx.lifecycle.ViewModel
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
+import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
import com.mogo.och.common.module.manager.loop.BizLoopManager
import com.mogo.och.common.module.utils.RxUtils
import com.mogo.och.weaknet.bean.WaitUploadLine
@@ -16,42 +17,42 @@ import io.reactivex.schedulers.Schedulers
* @description BadCase录包管理页面
* @since: 2022/12/15
*/
-class RunningTastViewModel : ViewModel() {
+class RunningTastViewModel : ViewModel() {
- private val TAG = RunningTastViewModel::class.java.simpleName
+ private val TAG = M_BUS + RunningTastViewModel::class.java.simpleName
- private var viewCallback:RunningTaskViewCallback?=null
- private var subscribe: Disposable?=null
+ private var viewCallback: RunningTaskViewCallback? = null
+ private var subscribe: Disposable? = null
- fun setDistanceCallback(viewCallback:RunningTaskViewCallback){
+ fun setDistanceCallback(viewCallback: RunningTaskViewCallback) {
this.viewCallback = viewCallback
- EventModel.getUploadTaskObservable()
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(object : Observer {
- override fun onSubscribe(d: Disposable) {
- subscribe = d
- CallerLogger.d(TAG, "onSubscribe")
- }
-
- override fun onError(e: Throwable) {
- CallerLogger.d(TAG, "onError${e.printStackTrace()}")
- }
-
- override fun onComplete() {
- CallerLogger.d(TAG, "onComplete")
- }
-
- override fun onNext(data: Boolean) {
- CallerLogger.d(TAG, "onNext:${data}")
- this@RunningTastViewModel.viewCallback?.showUpdating(data)
- if(!data){
- queryNewData()
+ EventModel.getUploadTaskObservable()
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(object : Observer {
+ override fun onSubscribe(d: Disposable) {
+ subscribe = d
+ CallerLogger.d(TAG, "onSubscribe")
}
- }
- })
+ override fun onError(e: Throwable) {
+ CallerLogger.d(TAG, "onError${e.printStackTrace()}")
+ }
+
+ override fun onComplete() {
+ CallerLogger.d(TAG, "onComplete")
+ }
+
+ override fun onNext(data: Boolean) {
+ CallerLogger.d(TAG, "onNext:${data}")
+ this@RunningTastViewModel.viewCallback?.showUpdating(data)
+ if (!data) {
+ queryNewData()
+ }
+ }
+
+ })
}
override fun onCleared() {
@@ -88,9 +89,9 @@ class RunningTastViewModel : ViewModel() {
EventModel.notifySyn()
}
- interface RunningTaskViewCallback{
+ interface RunningTaskViewCallback {
fun showData(data: MutableList)
- fun showUpdating(isupload:Boolean)
+ fun showUpdating(isupload: Boolean)
}
}
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/TaskRunningAdapter.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/TaskRunningAdapter.kt
index f0b932e176..3a4149ae64 100644
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/TaskRunningAdapter.kt
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/TaskRunningAdapter.kt
@@ -11,6 +11,7 @@ import androidx.appcompat.widget.AppCompatImageView
import androidx.appcompat.widget.AppCompatTextView
import androidx.recyclerview.widget.RecyclerView
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
+import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
import com.mogo.och.common.module.utils.ResourcesUtils
import com.mogo.och.data.bean.BusStationBean
import com.mogo.och.shuttle.weaknet.R
@@ -26,8 +27,8 @@ class TaskRunningAdapter(
val mData: MutableList
) : RecyclerView.Adapter() {
- companion object{
- const val TAG = "TaskRunningAdapter"
+ companion object {
+ const val TAG = "${M_BUS}TaskRunningAdapter"
}
private val argbEvaluator: ArgbEvaluator = ArgbEvaluator()
@@ -40,12 +41,13 @@ class TaskRunningAdapter(
fun setDataList(dataList: List) {
this.mData.clear()
this.mData.addAll(dataList)
- if(LineModel.startStationIndex==0){
- totalHeight = 33 + (dataList.size-2)*heightItem
- }else{
- totalHeight = (halfHeight+(dataList.size-1-LineModel.startStationIndex)*heightItem).toFloat()
+ if (LineModel.startStationIndex == 0) {
+ totalHeight = 33 + (dataList.size - 2) * heightItem
+ } else {
+ totalHeight =
+ (halfHeight + (dataList.size - 1 - LineModel.startStationIndex) * heightItem).toFloat()
}
- notifyItemRangeChanged(0,dataList.size,true)
+ notifyItemRangeChanged(0, dataList.size, true)
}
override fun onCreateViewHolder(
@@ -64,27 +66,36 @@ class TaskRunningAdapter(
holder.actvStationName.text = line.name
holder.actvWriteOffCount.setSiteId(line.siteId)
val startStationIndex = LineModel.startStationIndex
- if (startStationIndex>0) {
+ if (startStationIndex > 0) {
CallerLogger.d(TAG, "位置:$currentPosition 当前站${mData[startStationIndex]} ")
}
- if(currentPosition {
+
+ mData.size - 1 -> {
holder.acivStationHeadBig.visibility = View.VISIBLE
holder.acivStationHead.visibility = View.INVISIBLE
holder.acivStationHeadBig.setImageResource(R.drawable.bus_runnint_task_end)
holder.middleStationBg.visibility = View.GONE
holder.startStationBg.visibility = View.GONE
holder.endStationBg.visibility = View.VISIBLE
- if(startStationIndex==itemCount-1){
- if(line.isLeaving){
+ if (startStationIndex == itemCount - 1) {
+ if (line.isLeaving) {
holder.endStationBg.setBackgroundResource(R.color.shuttle_driver_4DFFFFFF)
holder.itemView.setBackgroundResource(R.drawable.bus_task_current_station_bg)
- }else{
+ } else {
holder.itemView.setBackgroundResource(R.drawable.bus_task_current_station_bg)
holder.endStationBg.setBackgroundResource(R.color.shuttle_driver_4DFFFFFF)
}
- }else{
+ } else {
// 上端 彩色
holder.itemView.background = null
- val startColorTemp = argbEvaluator.evaluate(((totalHeight-halfHeight)/totalHeight).toFloat(),startColor,endColor) as Int
- val endColorTemp = argbEvaluator.evaluate(1f,startColor,endColor) as Int
+ val startColorTemp = argbEvaluator.evaluate(
+ ((totalHeight - halfHeight) / totalHeight).toFloat(),
+ startColor,
+ endColor
+ ) as Int
+ val endColorTemp = argbEvaluator.evaluate(1f, startColor, endColor) as Int
val orientation = GradientDrawable.Orientation.TOP_BOTTOM
- val temp01 = GradientDrawable(orientation, intArrayOf(
- startColorTemp,
- endColorTemp
- ))
+ val temp01 = GradientDrawable(
+ orientation, intArrayOf(
+ startColorTemp,
+ endColorTemp
+ )
+ )
holder.endStationBg.background = temp01
}
}
+
else -> {
holder.acivStationHeadBig.visibility = View.GONE
holder.acivStationHead.visibility = View.VISIBLE
holder.middleStationBg.visibility = View.VISIBLE
holder.startStationBg.visibility = View.GONE
holder.endStationBg.visibility = View.GONE
- if(currentPosition==startStationIndex){
- if(line.isLeaving){
+ if (currentPosition == startStationIndex) {
+ if (line.isLeaving) {
// 灰色
holder.middleStationBg.setBackgroundResource(R.color.shuttle_driver_4DFFFFFF)
holder.itemView.background = null
- }else{
+ } else {
// 彩色
holder.itemView.setBackgroundResource(R.drawable.bus_task_current_station_bg)
- val startColorTemp = argbEvaluator.evaluate(0f,startColor,endColor) as Int
- val endColorTemp = argbEvaluator.evaluate(100f/totalHeight,startColor,endColor) as Int
+ val startColorTemp = argbEvaluator.evaluate(0f, startColor, endColor) as Int
+ val endColorTemp =
+ argbEvaluator.evaluate(100f / totalHeight, startColor, endColor) as Int
val orientation = GradientDrawable.Orientation.TOP_BOTTOM
- val temp01 = GradientDrawable(orientation, intArrayOf(
- startColorTemp,
- endColorTemp
- ))
+ val temp01 = GradientDrawable(
+ orientation, intArrayOf(
+ startColorTemp,
+ endColorTemp
+ )
+ )
holder.middleStationBg.background = temp01
}
- }else if(currentPosition
+ LineManager.getLineInfo { lineInfo ->
bus_task_running_line_name.text = lineInfo.lineName
}
actv_running_task_time.text = "班次:${LineModel.getTaskTime()}"
- LineModel.stationList?.takeIf { it.size>=2 }?.let {
+ LineModel.stationList?.takeIf { it.size >= 2 }?.let {
actv_running_task_last_station.text = "往${it.last().name ?: ""}"
mAdapter.setDataList(it)
- CallerLogger.d(TAG,"BusLineModel.startStationIndex:${LineModel.startStationIndex}___$it")
+ CallerLogger.d(
+ TAG,
+ "BusLineModel.startStationIndex:${LineModel.startStationIndex}___$it"
+ )
val currentStation = it.get(LineModel.startStationIndex)
- if(currentStation.isLeaving){
- showArriverStationAndCompleteTask()
- }else{
- showLeaveStationView()
- }
- if(LineModel.startStationIndex==it.size-1){
+ if (currentStation.isLeaving) {
+ showArriverStationAndCompleteTask()
+ } else {
+ showLeaveStationView()
+ }
+ if (LineModel.startStationIndex == it.size - 1) {
aciv_task_leave_station_slide_bg.setTextValue("单程结束")
- }else{
+ } else {
aciv_task_leave_station_slide_bg.setTextValue("滑动出发")
}
}
@@ -140,19 +151,19 @@ class TaskRunningView: ConstraintLayout, TaskRunningModel.SwtichLineViewCallback
override fun smoothScrollToPosition(position: Int) {
try {
rl_running_task_station_list.smoothScrollToPosition(position)
- }catch (e:Exception){
- OchChainLogManager.writeChainLog("错误","e:${e.message}")
+ } catch (e: Exception) {
+ OchChainLogManager.writeChainLog("错误", "e:${e.message}")
}
}
- fun showLeaveStationView(){
+ fun showLeaveStationView() {
aciv_task_leave_station_slide_bg.visibility = VISIBLE
actv_arriver_station.visibility = GONE
actv_complete_task.visibility = GONE
}
- fun showArriverStationAndCompleteTask(){
+ fun showArriverStationAndCompleteTask() {
aciv_task_leave_station_slide_bg.visibility = INVISIBLE
actv_arriver_station.visibility = VISIBLE
actv_complete_task.visibility = VISIBLE
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/writeoff/WriteOffView.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/writeoff/WriteOffView.kt
index 665c35d960..d2d36650d7 100644
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/writeoff/WriteOffView.kt
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/writeoff/WriteOffView.kt
@@ -7,30 +7,35 @@ import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.findViewTreeViewModelStoreOwner
import com.mogo.commons.AbsMogoApplication
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
+import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
import com.mogo.och.shuttle.weaknet.R
import com.mogo.och.weaknet.repository.RepositoryManager
import com.mogo.och.weaknet.ui.taskrunning.TaskRunningAdapter
class WriteOffView : AppCompatTextView, WriteOffViewModel.IwriteOffViewCallback {
- private val TAG = "ItineraryView"
+ private val TAG = M_BUS + "WriteOffView"
constructor(context: Context) : super(context)
constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet)
- constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super(context, attributeSet, defStyleAttr)
+ constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super(
+ context,
+ attributeSet,
+ defStyleAttr
+ )
- private var viewModel:WriteOffViewModel? = null
+ private var viewModel: WriteOffViewModel? = null
- private var siteId:Int = 0
+ private var siteId: Int = 0
override fun onAttachedToWindow() {
super.onAttachedToWindow()
- if(RepositoryManager.supportWriteOff()) {
+ if (RepositoryManager.supportWriteOff()) {
val showText =
- AbsMogoApplication.getApp().getString(R.string.shuttle_write_off_count,0)
+ AbsMogoApplication.getApp().getString(R.string.shuttle_write_off_count, 0)
text = showText
}
viewModel = findViewTreeViewModelStoreOwner()?.let {
@@ -38,12 +43,13 @@ class WriteOffView : AppCompatTextView, WriteOffViewModel.IwriteOffViewCallback
}
}
- private fun startListenerWriteOff(){
+ private fun startListenerWriteOff() {
viewModel?.setWriteOffCallback(this)
}
- private fun stopListenerWriteOff(){
+
+ private fun stopListenerWriteOff() {
viewModel?.setWriteOffCallback(null)
- if(RepositoryManager.supportWriteOff()) {
+ if (RepositoryManager.supportWriteOff()) {
val showText =
AbsMogoApplication.getApp().getString(R.string.shuttle_write_off_count, 0)
text = showText
@@ -52,9 +58,9 @@ class WriteOffView : AppCompatTextView, WriteOffViewModel.IwriteOffViewCallback
override fun onVisibilityAggregated(isVisible: Boolean) {
super.onVisibilityAggregated(isVisible)
- if(isVisible){
+ if (isVisible) {
startListenerWriteOff()
- }else{
+ } else {
stopListenerWriteOff()
}
}
@@ -67,8 +73,8 @@ class WriteOffView : AppCompatTextView, WriteOffViewModel.IwriteOffViewCallback
}
}
- override fun setWriteOffCount(showText: String,siteId: Int) {
- if(this.siteId==siteId) {
+ override fun setWriteOffCount(showText: String, siteId: Int) {
+ if (this.siteId == siteId) {
text = showText
}
}
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/writeoff/WriteOffViewModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/writeoff/WriteOffViewModel.kt
index 5f75e85334..5e1ffb6d2b 100644
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/writeoff/WriteOffViewModel.kt
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/writeoff/WriteOffViewModel.kt
@@ -4,6 +4,7 @@ import androidx.lifecycle.ViewModel
import com.mogo.commons.AbsMogoApplication
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
+import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
import com.mogo.och.weaknet.model.TicketModel
import com.mogo.och.common.module.utils.RxUtils
import com.mogo.och.shuttle.weaknet.R
@@ -14,7 +15,7 @@ import io.reactivex.disposables.Disposable
class WriteOffViewModel : ViewModel() {
- private val TAG = WriteOffViewModel::class.java.simpleName
+ private val TAG = M_BUS + WriteOffViewModel::class.java.simpleName
private var viewCallback: IwriteOffViewCallback? = null
@@ -24,7 +25,7 @@ class WriteOffViewModel : ViewModel() {
private var disposable: Disposable? = null
- private val observer = object : Observer> {
+ private val observer = object : Observer> {
override fun onSubscribe(d: Disposable) {
disposable = d
}
@@ -37,24 +38,24 @@ class WriteOffViewModel : ViewModel() {
}
- override fun onNext(countInfo: Pair) {
- viewCallback?.setWriteOffCount(countInfo.first,countInfo.second)
+ override fun onNext(countInfo: Pair) {
+ viewCallback?.setWriteOffCount(countInfo.first, countInfo.second)
}
}
fun setWriteOffCallback(viewCallback: IwriteOffViewCallback?) {
this.viewCallback = viewCallback
- if(viewCallback==null){
+ if (viewCallback == null) {
RxUtils.disposeSubscribe(disposable)
}
TicketModel
.getWriteOffCountObservable()
.flatMap { t ->
val showText =
- AbsMogoApplication.getApp().getString(R.string.shuttle_write_off_count, t.second)
- CallerLogger.d(SceneConstant.M_BUS + TAG, "显示文案:${showText}")
- Observable.just(Pair(showText,t.first))
+ AbsMogoApplication.getApp()
+ .getString(R.string.shuttle_write_off_count, t.second)
+ Observable.just(Pair(showText, t.first))
}
.observeOn(AndroidSchedulers.mainThread())
.subscribe(observer)
@@ -67,7 +68,7 @@ class WriteOffViewModel : ViewModel() {
}
interface IwriteOffViewCallback {
- fun setWriteOffCount(count:String,siteId: Int)
+ fun setWriteOffCount(count: String, siteId: Int)
}
}
\ No newline at end of file
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/util/BusAnalyticsManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/util/BusAnalyticsManager.kt
index 9181f1468c..abc1c5fac0 100644
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/util/BusAnalyticsManager.kt
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/util/BusAnalyticsManager.kt
@@ -1,6 +1,6 @@
package com.mogo.och.weaknet.util
-import com.mogo.och.common.module.manager.autopilot.autopilot.IOchEventKey
+import com.mogo.och.bridge.autopilot.autopilot.IOchEventKey
/**
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/util/BusTrajectoryManager.java b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/util/BusTrajectoryManager.java
deleted file mode 100644
index 8e50bfdf4f..0000000000
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/util/BusTrajectoryManager.java
+++ /dev/null
@@ -1,161 +0,0 @@
-package com.mogo.och.weaknet.util;
-
-import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS;
-
-import androidx.annotation.Nullable;
-
-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.common.module.biz.login.LoginStatusManager;
-import com.mogo.och.common.module.manager.autopilot.line.LineManager;
-import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager;
-import com.mogo.och.data.bean.ContraiInfo;
-import com.mogo.och.data.bean.LineInfo;
-import com.mogo.och.weaknet.constant.BusConst;
-import com.mogo.och.weaknet.model.OrderModel;
-import com.mogo.och.weaknet.model.LineModel;
-import com.zhjt.mogo.adas.data.bean.MogoReport;
-
-import java.util.concurrent.TimeUnit;
-
-import io.reactivex.Observable;
-import io.reactivex.android.schedulers.AndroidSchedulers;
-import io.reactivex.disposables.Disposable;
-import io.reactivex.schedulers.Schedulers;
-import mogo_msg.MogoReportMsg;
-
-/**
- * Bus轨迹管理:给MEC下发用于轨迹下载的信息
- * Created on 2022/6/23
- */
-public class BusTrajectoryManager {
- private static final String TAG = BusTrajectoryManager.class.getSimpleName();
-
- private static final class SingletonHolder {
- private static final BusTrajectoryManager INSTANCE = new BusTrajectoryManager();
- }
-
- public static BusTrajectoryManager getInstance() {
- return SingletonHolder.INSTANCE;
- }
-
- private AutopilotControlParameters mAutopilotControlParameters = null;
- private Disposable mSendReqDisposable = null;
-
- public BusTrajectoryManager() {
- mAutopilotControlParameters = new AutopilotControlParameters();
- }
-
- /**
- * 同步Bus路线信息
- */
- public void syncTrajectoryInfo() {
- if(mAutopilotControlParameters==null||mAutopilotControlParameters.autoPilotLine==null){
- OchChainLogManager.writeChainLog("轨迹监控", "开始或者结束下发轨迹 轨迹id" + -1, true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY);
- }else {
- OchChainLogManager.writeChainLog("轨迹监控", "开始或者结束下发轨迹 轨迹id" + mAutopilotControlParameters.autoPilotLine.getLineId(), true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY);
- }
- if (LoginStatusManager.isLogin() && LineModel.INSTANCE.getCurrentTask() != null
- && LineModel.getStartStationIndex() == 0
- && !OrderModel.isGoingToNextStation()) {
- CallerLogger.d(M_BUS + TAG, "syncTrajectoryInfo() start.");
- startTrajReqLoop();
- } else {
- // 无路线信息or当前未在始发站
- CallerLogger.d(M_BUS + TAG, "syncTrajectoryInfo() stop.");
- stopTrajReqLoop();
- }
- }
-
- public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo,long lineId) {
- onAutopilotGuardian(guardianInfo);
- }
-
- /**
- * 接口MEC反馈的常规信息(MAP v2.5.0新增轨迹相关信息)
- * @param guardianInfo
- */
- public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo) {
- if (guardianInfo == null || !guardianInfo.hasCode()) return;
- if (MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_START.equals(guardianInfo.getCode())) {
- stopTrajReqLoop();
- } else if (MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_SUCCESS.equals(guardianInfo.getCode())) {
- stopTrajReqLoop();
- } else if (MogoReport.Code.Info.ISSM.FUNC_AUTO_PILOT_READY.equals(guardianInfo.getCode())) {
- syncTrajectoryInfo();
- }
- }
-
- private void setupAutoPilotLine() {
- ContraiInfo contraiInfo = LineManager.getContraiInfo();
- LineInfo lineInfos = LineManager.getLineInfos();
- if (contraiInfo == null || lineInfos == null) {
- CallerLogger.e(M_BUS + TAG,
- "setupAutoPilotLine(): routesResult is null.");
- return;
- } else {
- mAutopilotControlParameters = LineManager.INSTANCE.initAutopilotControlParameters();
- }
- }
-
- private void clearAutoPilotLine() {
- if (mAutopilotControlParameters == null) return;
- mAutopilotControlParameters = null;
- }
-
- private void startTrajReqLoop() {
- if(mAutopilotControlParameters==null||mAutopilotControlParameters.autoPilotLine==null){
- OchChainLogManager.writeChainLog("轨迹监控", "开始下发轨迹 轨迹id" + -1, true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY);
- }else {
- OchChainLogManager.writeChainLog("轨迹监控", "开始下发轨迹 轨迹id" + mAutopilotControlParameters.autoPilotLine.getLineId(), true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY);
- }
- if (mSendReqDisposable != null && !mSendReqDisposable.isDisposed()) {
- return;
- }
- CallerLogger.d(M_BUS + TAG, "startTrajReqLoop()");
- setupAutoPilotLine();
- mSendReqDisposable = Observable.interval(BusConst.LOOP_DELAY,
- BusConst.LOOP_PERIOD_10S, TimeUnit.MILLISECONDS)
- .map((aLong -> aLong + 1))
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(aLong -> {
- if (aLong > BusConst.LOOP_SEND_TRAJ_TIMES) {
- stopTrajReqLoop();
- return;
- }
- CallerLogger.d(M_BUS + TAG, "loop sendTrajectoryReq: " + aLong);
- sendTrajectoryReq();
- });
- }
-
- public void stopTrajReqLoop() {
- if(mAutopilotControlParameters==null||mAutopilotControlParameters.autoPilotLine==null){
- OchChainLogManager.writeChainLog("轨迹监控", "结束下发轨迹 轨迹id" + -1, true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY);
- }else {
- OchChainLogManager.writeChainLog("轨迹监控", "结束下发轨迹 轨迹id" + mAutopilotControlParameters.autoPilotLine.getLineId(), true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY);
- }
- if (mSendReqDisposable != null) {
- CallerLogger.d(M_BUS + TAG, "stopTrajReqLoop()");
- mSendReqDisposable.dispose();
- mSendReqDisposable = null;
- clearAutoPilotLine();
- }
- }
-
- private void sendTrajectoryReq() {
- if(mAutopilotControlParameters==null||mAutopilotControlParameters.autoPilotLine==null||mAutopilotControlParameters.autoPilotLine.getLineId()==-1){
- CallerLogger.e(M_BUS + TAG, "sendTrajectoryReq(): mAutoPilotLine is null!!!");
- setupAutoPilotLine();
- if(mAutopilotControlParameters==null||mAutopilotControlParameters.autoPilotLine==null||mAutopilotControlParameters.autoPilotLine.getLineId()==-1){
- return;
- }
- }
- OchChainLogManager.writeChainLog("轨迹监控","sendTrajectoryReq() 下发轨迹 轨迹id"+ mAutopilotControlParameters.autoPilotLine.getLineId(), true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY);
- CallerAutoPilotControlManager.INSTANCE.sendTrajectoryDownloadReq(mAutopilotControlParameters.autoPilotLine,0);
- CallerLogger.d(M_BUS + TAG, "sendTrajectoryReq(): "
- + GsonUtils.toJson(mAutopilotControlParameters));
- }
-}
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/util/BusTrajectoryManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/util/BusTrajectoryManager.kt
new file mode 100644
index 0000000000..39eaf1b19f
--- /dev/null
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/util/BusTrajectoryManager.kt
@@ -0,0 +1,167 @@
+package com.mogo.och.weaknet.util
+
+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.d
+import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e
+import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
+import com.mogo.eagle.core.utilcode.util.GsonUtils
+import com.mogo.och.bridge.autopilot.line.LineManager
+import com.mogo.och.common.module.biz.login.LoginStatusManager.isLogin
+import com.mogo.och.bridge.autopilot.trajectory.ITrajectoryListListener
+import com.mogo.och.bridge.autopilot.trajectory.TrajectoryManager
+import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
+import com.mogo.och.weaknet.constant.BusConst
+import com.mogo.och.weaknet.model.LineModel.currentTask
+import com.mogo.och.weaknet.model.OrderModel.isGoingToNextStation
+import io.reactivex.Observable
+import io.reactivex.android.schedulers.AndroidSchedulers
+import io.reactivex.disposables.Disposable
+import io.reactivex.functions.Function
+import io.reactivex.schedulers.Schedulers
+import java.util.concurrent.TimeUnit
+
+/**
+ * Bus轨迹管理:给MEC下发用于轨迹下载的信息
+ * Created on 2022/6/23
+ */
+object BusTrajectoryManager : ITrajectoryListListener {
+
+ private val TAG: String = M_BUS + BusTrajectoryManager::class.java.simpleName
+
+ private var mAutopilotControlParameters: AutopilotControlParameters? = null
+ private var mSendReqDisposable: Disposable? = null
+
+ init {
+ mAutopilotControlParameters = AutopilotControlParameters()
+ }
+
+ fun load() {
+ TrajectoryManager.addListener(TAG, this)
+ }
+
+ fun release() {
+ TrajectoryManager.removeListener(TAG)
+ }
+
+
+ /**
+ * 同步Bus路线信息
+ */
+ fun syncTrajectoryInfo() {
+ if (mAutopilotControlParameters == null || mAutopilotControlParameters!!.autoPilotLine == null) {
+ OchChainLogManager.writeChainLogTrajectory("轨迹监控", "开始或者结束下发轨迹 轨迹id:-1")
+ } else {
+ OchChainLogManager.writeChainLogTrajectory(
+ "轨迹监控",
+ "开始或者结束下发轨迹 轨迹id:${mAutopilotControlParameters!!.autoPilotLine!!.lineId}"
+ )
+ }
+ if (isLogin() && currentTask != null && !isGoingToNextStation) {
+ d(TAG, "syncTrajectoryInfo() start.")
+ startTrajReqLoop()
+ } else {
+ // 无路线信息or当前未在始发站
+ d(TAG, "syncTrajectoryInfo() stop.")
+ stopTrajReqLoop()
+ }
+ }
+
+ override fun onDownLoadStart(lineId: Long) {
+ stopTrajReqLoop()
+ }
+
+ override fun onDownLoadSuccess(lineId: Long) {
+ stopTrajReqLoop()
+ }
+
+ override fun onDownLoadReady(lineId: Long) {
+ syncTrajectoryInfo()
+ }
+
+ private fun setupAutoPilotLine() {
+ if (LineManager.contraiInfo == null || LineManager.lineInfos == null) {
+ e(
+ TAG,
+ "下发轨迹报错:没有轨迹或线路信息 contraiInfo:${LineManager.contraiInfo} lineInfos:${LineManager.lineInfos}"
+ )
+ } else {
+ mAutopilotControlParameters = LineManager.initAutopilotControlParameters()
+ }
+ }
+
+ private fun clearAutoPilotLine() {
+ if (mAutopilotControlParameters == null) return
+ mAutopilotControlParameters = null
+ }
+
+ private fun startTrajReqLoop() {
+ if (mAutopilotControlParameters == null || mAutopilotControlParameters!!.autoPilotLine == null) {
+ OchChainLogManager.writeChainLogTrajectory("轨迹监控", "开始下发轨迹 轨迹id:-1")
+ } else {
+ OchChainLogManager.writeChainLogTrajectory(
+ "轨迹监控",
+ "开始下发轨迹 轨迹id:${mAutopilotControlParameters?.autoPilotLine?.lineId}"
+ )
+ }
+ if (mSendReqDisposable != null && !mSendReqDisposable!!.isDisposed) {
+ return
+ }
+ d(TAG, "startTrajReqLoop()")
+ setupAutoPilotLine()
+ mSendReqDisposable = Observable.interval(
+ BusConst.LOOP_DELAY, BusConst.LOOP_PERIOD_10S, TimeUnit.MILLISECONDS
+ ).map((Function { aLong: Long -> aLong + 1 })).subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread()).subscribe { aLong: Long ->
+ if (aLong > BusConst.LOOP_SEND_TRAJ_TIMES) {
+ stopTrajReqLoop()
+ return@subscribe
+ }
+ d(TAG, "loop sendTrajectoryReq: $aLong")
+ sendTrajectoryReq()
+ }
+ }
+
+ fun stopTrajReqLoop() {
+ if (mAutopilotControlParameters == null || mAutopilotControlParameters!!.autoPilotLine == null) {
+ OchChainLogManager.writeChainLogTrajectory("轨迹监控", "结束下发轨迹 轨迹id:-1")
+ } else {
+ OchChainLogManager.writeChainLogTrajectory(
+ "轨迹监控",
+ "结束下发轨迹 轨迹id:${mAutopilotControlParameters!!.autoPilotLine!!.lineId}"
+ )
+ }
+ if (mSendReqDisposable != null) {
+ d(TAG, "stopTrajReqLoop()")
+ mSendReqDisposable!!.dispose()
+ mSendReqDisposable = null
+ clearAutoPilotLine()
+ }
+ }
+
+ /**
+ * download 加orderid
+ * fsm 回传orderid
+ * 下载轨迹 添加回执超时处理
+ */
+ private fun sendTrajectoryReq() {
+ if (mAutopilotControlParameters == null || mAutopilotControlParameters!!.autoPilotLine == null || mAutopilotControlParameters!!.autoPilotLine!!.lineId == -1L) {
+ e(TAG, "下发轨迹报错:自己参数:${mAutopilotControlParameters}")
+ setupAutoPilotLine()
+ if (mAutopilotControlParameters == null || mAutopilotControlParameters!!.autoPilotLine == null || mAutopilotControlParameters!!.autoPilotLine!!.lineId == -1L) {
+ return
+ }
+ }
+ mAutopilotControlParameters?.let {
+ OchChainLogManager.writeChainLogTrajectory(
+ "轨迹监控",
+ "sendTrajectoryReq() 下发轨迹 轨迹id:${it.autoPilotLine!!.lineId}"
+ )
+ CallerAutoPilotControlManager.sendTrajectoryDownloadReq(it.autoPilotLine!!, 0,
+ it.orderId)
+ }
+
+ d(TAG, "sendTrajectoryReq(): " + GsonUtils.toJson(mAutopilotControlParameters))
+ }
+
+}
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/view/BizLeaveStationView.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/view/BizLeaveStationView.kt
deleted file mode 100644
index 7504d76eb1..0000000000
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/view/BizLeaveStationView.kt
+++ /dev/null
@@ -1,146 +0,0 @@
-package com.mogo.och.weaknet.view
-
-import android.animation.ObjectAnimator
-import android.content.Context
-import android.util.AttributeSet
-import android.view.LayoutInflater
-import android.view.MotionEvent
-import androidx.appcompat.widget.AppCompatTextView
-import androidx.constraintlayout.widget.ConstraintLayout
-import androidx.constraintlayout.widget.ConstraintSet
-import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
-import com.mogo.och.common.module.utils.ResourcesUtils
-import com.mogo.och.common.module.utils.RxUtils
-import com.mogo.och.shuttle.weaknet.R
-import kotlinx.android.synthetic.main.shuttle_weak_task_leave_station_view.view.actv_draggable
-import kotlinx.android.synthetic.main.shuttle_weak_task_leave_station_view.view.lottie_bg
-
-class BizLeaveStationView @JvmOverloads constructor(
- context: Context,
- attrs: AttributeSet? = null,
- defStyleAttr: Int = 0
-) : ConstraintLayout(context, attrs, defStyleAttr) {
- companion object {
- const val TAG = "LoadingMapStatusView"
- }
-
-
- private var initialX = 0f
- private var initialY = 0f
- private val tempSet = ConstraintSet()
-
- private var draggableButton: AppCompatTextView
-
- private var slideListener:SlideListener?=null
-
- fun setSlideListener(slideListener:SlideListener){
- this.slideListener = slideListener
- }
-
-
- init {
- LayoutInflater.from(context).inflate(R.layout.shuttle_weak_task_leave_station_view, this, true)
- draggableButton = findViewById(R.id.actv_draggable)
- lottie_bg.setImageAssetsFolder("images")
- }
-
- override fun onAttachedToWindow() {
- super.onAttachedToWindow()
- CallerLogger.d(TAG,"onAttachedToWindow")
- }
-
-
- /**
- * 为该组件的触碰事件重写事件处理方法
- */
- override fun onTouchEvent(event: MotionEvent?): Boolean {
- when (event?.action) {
- MotionEvent.ACTION_DOWN -> {
- initialX = event.rawX;
- initialY = event.rawY;
- }
- MotionEvent.ACTION_MOVE -> {
- val dx = event.rawX - initialX;
- val dy = event.rawY - initialY;
- initialX = event.rawX;
- initialY = event.rawY;
-
- if(draggableButton.translationX<0){
- tempSet.clone(this)
- tempSet.setTranslationX(draggableButton.id, 0f)
- tempSet.applyTo(this)
- }else if(draggableButton.translationX>=0&&draggableButton.translationX<=width-draggableButton.width){
- tempSet.clone(this)
- val dex = (draggableButton.translationX + dx).takeIf { it>=0 }?:0f
- val newDex = dex.takeIf { it<=width-draggableButton.width }?:(width-draggableButton.width).toFloat()
- tempSet.setTranslationX(draggableButton.id, newDex)
- tempSet.applyTo(this)
- }else{
- tempSet.clone(this)
- val dex = (draggableButton.translationX + dx).takeIf { it<=width-draggableButton.width }?:(width-draggableButton.width).toFloat()
- tempSet.setTranslationX(draggableButton.id, dex)
- tempSet.applyTo(this)
- }
- }
- MotionEvent.ACTION_UP -> {
- if(draggableButton.translationX<(width-draggableButton.width)){
- ObjectAnimator.ofFloat(
- draggableButton, "translationX", draggableButton.translationX,
- 0f
- ).apply {
- duration = 100
- }.start()
- }else if (draggableButton.translationX>=(width-draggableButton.width)){
- lottie_bg.setAnimation("data.json")
- lottie_bg.playAnimation()
- actv_draggable.setTextColor(ResourcesUtils.getColor(R.color.shuttle_driver_80FFFFFF))
- RxUtils.createSubscribe(1_000) {
- slideListener?.slideEnd()
- }
- }else{
- ObjectAnimator.ofFloat(
- draggableButton, "translationX", draggableButton.translationX,
- 0f
- ).apply {
- duration = 100
- }.start()
- }
- }
- else -> {}
- }
- return true
- }
-
-
- override fun onVisibilityAggregated(isVisible: Boolean) {
- super.onVisibilityAggregated(isVisible)
- if(isVisible){
- lottie_bg.setAnimation("slide.json")
- lottie_bg.playAnimation()
- actv_draggable.setTextColor(ResourcesUtils.getColor(R.color.white))
- ObjectAnimator.ofFloat(
- draggableButton, "translationX", draggableButton.translationX,
- 0f
- ).apply {
- duration = 100
- }.start()
- }
- }
-
-
- override fun onDetachedFromWindow() {
- super.onDetachedFromWindow()
- CallerLogger.d(TAG,"onDetachedFromWindow")
- }
-
- fun setTextValue(value: String) {
- actv_draggable.text = value
- }
-
- interface SlideListener{
- fun slideEnd()
- }
-
-
-
-}
\ No newline at end of file
diff --git a/OCH/shuttle/driver_weaknet/src/test/java/com/mogo/och/common/module/ExampleUnitTest.kt b/OCH/shuttle/driver_weaknet/src/test/java/com/mogo/och/common/module/ExampleUnitTest.kt
index 1872937998..c02fc0d608 100644
--- a/OCH/shuttle/driver_weaknet/src/test/java/com/mogo/och/common/module/ExampleUnitTest.kt
+++ b/OCH/shuttle/driver_weaknet/src/test/java/com/mogo/och/common/module/ExampleUnitTest.kt
@@ -5,8 +5,8 @@ import com.mogo.och.weaknet.bean.request.Event
import com.mogo.och.weaknet.bean.request.EventData
import com.mogo.och.weaknet.bean.request.WriteOffEventData
import com.mogo.och.weaknet.repository.db.bean.EventDataBean
-import com.mogo.och.weaknet.repository.db.bean.LineDataBean
-import com.mogo.och.weaknet.repository.db.bean.SiteDataBean
+import com.mogo.och.data.db.bean.LineDataBean
+import com.mogo.och.data.db.bean.SiteDataBean
import com.mogo.och.weaknet.repository.db.bean.WriteOffDataBean
import org.junit.Test
diff --git a/OCH/shuttle/passenger_weaknet/build.gradle b/OCH/shuttle/passenger_weaknet/build.gradle
index 6e34a57ef0..6de3388d2b 100644
--- a/OCH/shuttle/passenger_weaknet/build.gradle
+++ b/OCH/shuttle/passenger_weaknet/build.gradle
@@ -67,6 +67,8 @@ dependencies {
implementation rootProject.ext.dependencies.arouter
implementation rootProject.ext.dependencies.androidxrecyclerview
implementation rootProject.ext.dependencies.material
+ implementation project(':OCH:common:data')
+ implementation project(':OCH:common:bridge')
kapt rootProject.ext.dependencies.aroutercompiler
implementation rootProject.ext.dependencies.rxandroid
implementation rootProject.ext.dependencies.androidxconstraintlayout
diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/ShuttlePassengerProvider.kt b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/ShuttlePassengerProvider.kt
index dec8f5e354..8e36cd5534 100644
--- a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/ShuttlePassengerProvider.kt
+++ b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/ShuttlePassengerProvider.kt
@@ -9,6 +9,7 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.util.ActivityUtils
import com.mogo.eagle.core.utilcode.util.DeviceUtils
import com.mogo.eagle.core.utilcode.util.MultiDisplayUtils
+import com.mogo.och.bridge.ui.autopilot.AutopilotState
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.biz.provider.CommonServiceImpl
import com.mogo.och.common.module.voice.OutOffVoice
@@ -72,4 +73,8 @@ class ShuttlePassengerProvider : CommonServiceImpl() {
mPM2Fragment = null
}
+ override fun createStartAutopilotView(context: Context?): View? {
+ return null
+ }
+
}
\ No newline at end of file
diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/CommonModel.kt b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/CommonModel.kt
index a2473d8c4c..ea68602ad5 100644
--- a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/CommonModel.kt
+++ b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/CommonModel.kt
@@ -19,11 +19,11 @@ import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.och.common.module.biz.lansocket.IOchLanPassengerStatusListener
import com.mogo.och.common.module.biz.lansocket.LoginLanPassengerSocket
import com.mogo.och.common.module.biz.media.MediaManager
-import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener
-import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager
-import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager
-import com.mogo.och.common.module.manager.distance.IDistanceListener
-import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager
+import com.mogo.och.bridge.autopilot.autopilot.IOchAutopilotStatusListener
+import com.mogo.och.bridge.autopilot.autopilot.OchAutoPilotStatusListenerManager
+import com.mogo.och.bridge.autopilot.location.OchLocationManager
+import com.mogo.och.bridge.distance.IDistanceListener
+import com.mogo.och.bridge.distance.TrajectoryAndDistanceManager
import com.mogo.och.common.module.manager.download.DownloadManager
import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager
import com.mogo.och.common.module.manager.socket.lan.ILanMessageListener
@@ -49,7 +49,7 @@ import kotlin.math.abs
@SuppressLint("StaticFieldLeak")
object CommonModel {
- private val TAG: String = CommonModel::class.java.simpleName
+ private val TAG: String = SceneConstant.M_BUS_P+CommonModel::class.java.simpleName
var mContext: Context? = null
@@ -106,24 +106,22 @@ object CommonModel {
}
- val connectDriverListener = object : IOchLanPassengerStatusListener {
+ private val connectDriverListener = object : IOchLanPassengerStatusListener {
// 和司机屏连接发生变化后
override fun onDriverConnectChangeListener(isConnect: Boolean) {
- super.onDriverConnectChangeListener(isConnect)
if(isConnect){
queryDriverByLocalDriver()
}
}
// 司机屏sn 发生变化后
override fun onDriverSnChagneListner(sn: String?) {
- super.onDriverSnChagneListner(sn)
sn?.let {
querySiteIntroduce()
}
}
}
- val mMapLocationListener: IMoGoChassisLocationGCJ02Listener =
+ private val mMapLocationListener: IMoGoChassisLocationGCJ02Listener =
object : IMoGoChassisLocationGCJ02Listener {
override fun onChassisLocationGCJ02(mogoLocation: MogoLocation?) {
if (null == mogoLocation) return
@@ -131,11 +129,11 @@ object CommonModel {
}
}
- val mAutoPilotStatusListener: IOchAutopilotStatusListener =
+ private val mAutoPilotStatusListener: IOchAutopilotStatusListener =
object : IOchAutopilotStatusListener {
override fun onAutopilotStatusResponse(state: Int) {
- d(SceneConstant.M_BUS_P, "onAutopilotStatusResponse ===== $state")
+ d(TAG, "onAutopilotStatusResponse ===== $state")
if (IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING != state){
//美化模式下且行程中
if (FunctionBuildConfig.isDemoMode &&
@@ -152,10 +150,10 @@ object CommonModel {
}
}
- val trajectoryListener: IDistanceListener = object : IDistanceListener {
+ private val trajectoryListener: IDistanceListener = object : IDistanceListener {
override fun distanceCallback(distance: Float) {
val lastTime = distance / BusPassengerConst.BUS_AVERAGE_SPEED * 3.6 //秒
- d(SceneConstant.M_BUS_P, "轨迹排查==lastSumLength = $distance")
+ d(TAG, "轨迹排查==lastSumLength = $distance")
if (routesResult != null) {
for (site in routesResult!!.sites) {
if (site.drivingStatus == BusPassengerConst.STATION_STATUS_STOPPED && !site.isLeaving) {
@@ -180,7 +178,7 @@ object CommonModel {
}
}
- val typeTaskDetails = object : ILanMessageListener {
+ private val typeTaskDetails = object : ILanMessageListener {
override fun targetLan(): Class {
return TaskDetailsMsg::class.java
}
@@ -189,11 +187,13 @@ object CommonModel {
first?.let {
if (first.msg?.isEmpty() == true) {
+ clearAutopilotControlParameters()
clearLocalRouteResult()
return
}
val result = GsonUtils.fromJson(first.msg, BusTransferData::class.java)
if (result != null && result.routesResult == null) {
+ clearAutopilotControlParameters()
clearLocalRouteResult()
}
@@ -236,11 +236,11 @@ object CommonModel {
}
if (routesResult != null && routesResult!!.lineId != result.lineId) {
- d(SceneConstant.M_BUS_P + TAG, "lineId change= clearCustomPolyline")
+ d(TAG, "lineId change= clearCustomPolyline")
mCommonCallback?.clearCustomPolyline()
}
- d(SceneConstant.M_BUS_P + TAG, "queryDriverSiteByCoordinate = update")
+ d(TAG, "queryDriverSiteByCoordinate = update")
routesResult = result
if (result.sites != null) {
@@ -253,27 +253,27 @@ object CommonModel {
mCommonCallback?.updateLineStations(mStations)
for (i in stations.indices) {
val station = stations[i]
- if (station.drivingStatus == BusPassengerConst.STATION_STATUS_STOPPED
- && station.isLeaving && i + 1 < stations.size
- ) {
- isGoingToNextStation = true
- mCommonCallback?.updateStationsInfo(stations, i + 1, false)
- mNextStationIndex = i + 1
- val startStation = mStations[i]
- val endStation = mStations[i + 1]
- startStationVideo(endStation)
- setTrajectoryStation(startStation, endStation, result.lineId)
+ if(station.drivingStatus == BusPassengerConst.STATION_STATUS_STOPPED){
updateAutopilotControlParameters(result, i)
- return
- } else if (station.drivingStatus == BusPassengerConst.STATION_STATUS_STOPPED && !station.isLeaving) {
- if (i == stations.size - 1) {
- cleanStation("updatePassengerRouteInfo最后一个站点")
+ if (station.isLeaving && i + 1 < stations.size
+ ) {
+ isGoingToNextStation = true
+ mCommonCallback?.updateStationsInfo(stations, i + 1, false)
+ mNextStationIndex = i + 1
+ val startStation = mStations[i]
+ val endStation = mStations[i + 1]
+ startStationVideo(endStation)
+ setTrajectoryStation(startStation, endStation, result.lineId)
+ return
+ } else if (!station.isLeaving) {
+ if (i == stations.size - 1) {
+ cleanStation("updatePassengerRouteInfo最后一个站点")
+ }
+ isGoingToNextStation = false
+ Logger.d(TAG, "order = station= arrive")
+ mCommonCallback?.updateStationsInfo(stations, i, true)
+ return
}
- isGoingToNextStation = false
- Logger.d(SceneConstant.M_BUS_P + TAG, "order = station= arrive")
- mCommonCallback?.updateStationsInfo(stations, i, true)
- clearAutopilotControlParameters()
- return
}
}
}
@@ -315,16 +315,16 @@ object CommonModel {
}
}
- fun updateAutopilotControlParameters(
+ private fun updateAutopilotControlParameters(
busRoutesResult: BusRoutesResult,
leaveIndex: Int
) {
val parameters = initAutopilotControlParameters(busRoutesResult, leaveIndex)
if (null == parameters) {
- CallerLogger.e(SceneConstant.M_BUS_P, "AutopilotControlParameters is empty.")
+ CallerLogger.e(TAG, "AutopilotControlParameters is empty.")
return
}
- CallerLogger.d(SceneConstant.M_BUS_P, "AutopilotControlParameters is update.")
+ d(TAG, "AutopilotControlParameters is update.")
CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters(parameters)
}
@@ -338,7 +338,7 @@ object CommonModel {
}
val stations = busRoutesResult.sites
if (leaveIndex + 1 > stations.size - 1) {
- CallerLogger.e(SceneConstant.M_BUS_P, "行程日志-mismatch condition1.")
+ CallerLogger.e(TAG, "行程日志-mismatch condition1.")
return null
}
val currentStation = stations[leaveIndex]
@@ -368,7 +368,7 @@ object CommonModel {
}
fun clearAutopilotControlParameters() {
- CallerLogger.d(SceneConstant.M_BUS_P, "AutopilotControlParameters is clear.")
+ d(TAG, "AutopilotControlParameters is clear.")
CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters(null)
}
@@ -400,8 +400,8 @@ object CommonModel {
TrajectoryAndDistanceManager.setStationPoint(startStation, endStation, lineId.toLong())
}
- fun cleanStation(type: String) {
- d(SceneConstant.M_BUS_P, "清理站点:$type")
+ private fun cleanStation(type: String) {
+ d(TAG, "清理站点:$type")
TrajectoryAndDistanceManager.setStationPoint(null, null, -1L)
}
diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/TicketModel.kt b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/TicketModel.kt
index 0ef84a8e72..b87d0469e2 100644
--- a/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/TicketModel.kt
+++ b/OCH/shuttle/passenger_weaknet/src/main/java/com/mogo/och/shuttle/weaknet/passenger/model/TicketModel.kt
@@ -93,6 +93,7 @@ object TicketModel : StateChangeListener {
val pipe = params["pipe"]
val startStationId = params["startStationId"]
val tenantId = params["tenantId"]
+ val shiftsId = params["shiftsId"]
if(orderNo is String && uid is String){
var phoneNum = ""
@@ -112,7 +113,8 @@ object TicketModel : StateChangeListener {
phoneNum,
ticketSize?.toInt()?:0,
URLDecoder.decode(ticketName?:"","UTF-8"),
- type,
+ type?.toInt()?:0,
+ shiftsId?.toLong()?:0,
pipe,
startStationId?.toLong()?:0,
tenantId?.toLong()?:0
diff --git a/OCH/shuttle/passenger_weaknet/src/main/java/jinlv/com/mogo/och/shuttle/weaknet/passenger/ui/BusPassengerRouteFragment.java b/OCH/shuttle/passenger_weaknet/src/main/java/jinlv/com/mogo/och/shuttle/weaknet/passenger/ui/BusPassengerRouteFragment.java
index 339a416291..171ccfc774 100644
--- a/OCH/shuttle/passenger_weaknet/src/main/java/jinlv/com/mogo/och/shuttle/weaknet/passenger/ui/BusPassengerRouteFragment.java
+++ b/OCH/shuttle/passenger_weaknet/src/main/java/jinlv/com/mogo/och/shuttle/weaknet/passenger/ui/BusPassengerRouteFragment.java
@@ -28,7 +28,7 @@ import com.mogo.och.shuttle.weaknet.passenger.R;
import com.mogo.och.shuttle.weaknet.passenger.ui.adapter.BusPassengerLineStationsAdapter;
import com.mogo.och.shuttle.weaknet.passenger.presenter.BaseBusPassengerPresenter;
import com.mogo.och.shuttle.weaknet.passenger.ui.layoutmanager.CenterLayoutManager;
-import com.mogo.och.common.module.wigets.mapdirectionview.MapDirectionView;
+import com.mogo.och.bridge.ui.mapdirectionview.MapDirectionView;
import com.mogo.och.common.module.utils.NumberFormatUtil;
import com.mogo.och.common.module.wigets.MarqueeTextView;
import com.mogo.och.common.module.wigets.OCHGradientTextView;
diff --git a/OCH/shuttle/passenger_weaknet/src/main/res/jinlv/layout/shuttle_p_weak_jl_route_fragment.xml b/OCH/shuttle/passenger_weaknet/src/main/res/jinlv/layout/shuttle_p_weak_jl_route_fragment.xml
index 73c2306227..5a6800f3b2 100644
--- a/OCH/shuttle/passenger_weaknet/src/main/res/jinlv/layout/shuttle_p_weak_jl_route_fragment.xml
+++ b/OCH/shuttle/passenger_weaknet/src/main/res/jinlv/layout/shuttle_p_weak_jl_route_fragment.xml
@@ -265,7 +265,7 @@
-
-
\ No newline at end of file
diff --git a/OCH/taxi/driver/src/main/assets/map_style.data b/OCH/taxi/driver/src/main/assets/map_style.data
deleted file mode 100644
index b200669659..0000000000
Binary files a/OCH/taxi/driver/src/main/assets/map_style.data and /dev/null differ
diff --git a/OCH/taxi/driver/src/main/assets/map_style_extra.data b/OCH/taxi/driver/src/main/assets/map_style_extra.data
deleted file mode 100644
index 7aa8fa7b45..0000000000
Binary files a/OCH/taxi/driver/src/main/assets/map_style_extra.data and /dev/null differ
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/TaxiDriverProvider.kt b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/TaxiDriverProvider.kt
deleted file mode 100644
index 6edd49e86e..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/TaxiDriverProvider.kt
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.mogo.och.taxi
-
-import android.content.Context
-import androidx.fragment.app.Fragment
-import com.alibaba.android.arouter.facade.annotation.Route
-import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
-import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
-import com.mogo.och.common.module.constant.OchCommonConst
-import com.mogo.och.common.module.biz.provider.CommonService
-import com.mogo.och.common.module.biz.provider.CommonServiceImpl
-import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics
-import com.mogo.och.taxi.ui.TaxiFragment
-import com.mogo.och.taxi.utils.TaxiAnalyticsManager
-
-/**
- * @author congtaowang
- * @since 2021/1/15
- *
- *
- * 网约车-出租车
- */
-@Route(path = OchCommonConst.TAXI_DRIVER)
-class TaxiDriverProvider : CommonServiceImpl() {
-
- private val tag = TaxiDriverProvider::class.java.simpleName
- private var ochTaxiFragment: TaxiFragment? = null
-
- override fun init(context: Context) {
- d(SceneConstant.M_TAXI + tag, "init")
-
- }
-
- override fun getFragment(): Fragment {
- if (ochTaxiFragment == null) {
- ochTaxiFragment = TaxiFragment()
- }
- OchAutopilotAnalytics.ochEventKey = TaxiAnalyticsManager
- return ochTaxiFragment!!
- }
-
- override fun resetFragment() {
- super.resetFragment()
- OchAutopilotAnalytics.ochEventKey = null
- ochTaxiFragment = null
- }
-}
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/CarHeartbeatReqBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/CarHeartbeatReqBean.java
deleted file mode 100644
index d82de2425e..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/CarHeartbeatReqBean.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.mogo.och.taxi.bean;
-
-import com.mogo.och.taxi.constant.TaxiConst;
-
-import java.util.UUID;
-
-/**
- * Created on 2021/9/16
- *
- * 上传车机心跳信息请求数据
- */
-public class CarHeartbeatReqBean {
- public String sn;
- public double lon; //经度
- public double lat; //纬度
- public String msgId; //心跳信息唯一标识
- public int interval; //上报间隔,单位秒,非必传,默认60秒
-
- public CarHeartbeatReqBean(String sn, double lon, double lat) {
- this.sn = sn;
- this.lon = lon;
- this.lat = lat;
- this.msgId = UUID.randomUUID().toString();
- this.interval = (int) (TaxiConst.LOOP_PERIOD_60S / 1000);
- }
-}
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/DriverServiceDataRespBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/DriverServiceDataRespBean.java
deleted file mode 100644
index 15d47effd0..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/DriverServiceDataRespBean.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.mogo.och.taxi.bean;
-
-import com.mogo.eagle.core.data.BaseData;
-
-/**
- * Created on 2021/9/17
- *
- * 司机运营数据返回数据结构
- */
-public class DriverServiceDataRespBean extends BaseData {
- public Result data;
-
- public static class Result {
- public long timeDuration; //当日在线时长,单位秒
- public long orderNum; //当日完成订单数
- }
-}
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/DriverStatusUpdateReqBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/DriverStatusUpdateReqBean.java
deleted file mode 100644
index cb018309d7..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/DriverStatusUpdateReqBean.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.mogo.och.taxi.bean;
-
-/**
- * Created by pangfan on 2021/8/19
- *
- * 状态更新请求数据结构
- */
-public class DriverStatusUpdateReqBean {
- public String sn;
-
- public DriverStatusUpdateReqBean(String sn) {
- this.sn = sn;
- }
-}
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderCancelReqBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderCancelReqBean.java
deleted file mode 100644
index 23187c3e81..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderCancelReqBean.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.mogo.och.taxi.bean;
-
-/**
- * Created by pangfan on 2021/8/19
- *
- * 司机取消订单请求的数据结构
- */
-public class OrderCancelReqBean {
- public String sn;
- public String orderNo; //订单号(必须)
- public int cancelType; //取消类型(必须)
- public String cancelReason; //取消原因(必须)
-
- public OrderCancelReqBean(String sn, String orderNo, int cancelType, String cancelReason) {
- this.sn = sn;
- this.orderNo = orderNo;
- this.cancelType = cancelType;
- this.cancelReason = cancelReason;
- }
-}
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderGrabReqBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderGrabReqBean.java
deleted file mode 100644
index da925b8359..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderGrabReqBean.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.mogo.och.taxi.bean;
-
-/**
- * Created on 2021/9/7
- *
- * (预约单)抢单动作的请求数据结构
- */
-public class OrderGrabReqBean {
- public String sn;
- public String orderNo;
-
- public OrderGrabReqBean(String sn, String orderNo) {
- this.sn = sn;
- this.orderNo = orderNo;
- }
-}
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderGrabRespBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderGrabRespBean.java
deleted file mode 100644
index 60cc8b4b2a..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderGrabRespBean.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.mogo.och.taxi.bean;
-
-import com.mogo.eagle.core.data.BaseData;
-
-/**
- * Created on 2021/9/7
- *
- * (预约单)抢单动作的返回数据结构
- */
-public class OrderGrabRespBean extends BaseData {
- public String data; // 暂不使用 返回的orderNo,不再是orderId
-}
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderGrabStatusQueryRespBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderGrabStatusQueryRespBean.java
deleted file mode 100644
index 3fe8d877af..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderGrabStatusQueryRespBean.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.mogo.och.taxi.bean;
-
-import com.mogo.eagle.core.data.BaseData;
-
-/**
- * Created on 2021/9/7
- *
- * (预约单)查询抢单结果的返回数据结构
- */
-public class OrderGrabStatusQueryRespBean extends BaseData {
- public Result data;
-
- public static class Result {
- public int grabStatus; //0:抢单中; 1:抢单结束,匹配; 2:抢单结束,匹配到其他司机;3:订单已取消;4:非法,不是选择的自己
- }
-}
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderQueryReqBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderQueryReqBean.java
deleted file mode 100644
index 207668db4f..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderQueryReqBean.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.mogo.och.taxi.bean;
-
-/**
- * Created by pangfan on 2021/8/19
- *
- * 查询订单信息请求数据结构
- */
-public class OrderQueryReqBean {
-
- public String sn;
- public String orderNo;
-
- public OrderQueryReqBean(String sn, String orderNo) {
- this.sn = sn;
- this.orderNo = orderNo;
- }
-}
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderQueryRespBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderQueryRespBean.java
deleted file mode 100644
index eb21df6157..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderQueryRespBean.java
+++ /dev/null
@@ -1,148 +0,0 @@
-package com.mogo.och.taxi.bean;
-
-import com.mogo.eagle.core.data.BaseData;
-import com.mogo.och.data.taxi.BaseOrderBean;
-
-import java.util.List;
-import java.util.Objects;
-
-/**
- * Created by pangfan on 2021/8/19
- *
- * 查询订单返回数据结构
- */
-public class OrderQueryRespBean extends BaseData {
- public Result data;
-
- public static class Result extends BaseOrderBean implements Comparable{
-
- // 订单类型
- public int orderType; //1即时单 2预约单
-
- // 订单运营类型 (9出租车,10小巴)
- public int businessType;
- // 起始站点id
- public int startSiteId;
- // 起始站点名称
- public String startSiteAddr;
- // 起始站点坐标
- public List startSitePoint; //wgs坐标,用于自动驾驶 [lon,lat]
- public List startSiteGcjPoint; //高德坐标,用于本地计算距离 [lon,lat]
- // 终点站点id
- public int endSiteId;
- // 终点站点名称
- public String endSiteAddr;
- // 终点站点坐标
- public List endSitePoint; //wgs坐标,用于自动驾驶 [lon,lat]
- public List endSiteGcjPoint; //高德坐标,用于计算距离 [lon,lat]
-
- // 车牌号
- public String carNumber;
- //订单创建时间戳
- public long createTime;
- //开始服务时间戳:司机点击'开始服务'后订单状态更新成功的时间
- public long startTime;
- //预计用车时间:预约单=下单时的预约用车时间;即时单=派单成功的时间+预估的达到上车点的时间
- public long bookingTime;
- //乘客手机号
- public String passengerPhone;
- //订单多少乘客
- public String passengerNum;
-
- //线路轨迹相关字段
- public long lineId = -1; //路线id,默认-1
- public String lineName = ""; //路线名称,默认""
- public String csvFileUrl = ""; //轨迹文件下载的cos url,默认“”
- public String csvFileMd5 = ""; //轨迹文件md5,默认“”
- public String txtFileUrl = ""; //打点文件下载的cos url,默认“”
- public String txtFileMd5 = ""; //轨迹文件md5,默认“”
- public long contrailSaveTime; //上传轨迹完成时间戳ms:用于MEC本地手动导入轨迹验证时不会被云端轨迹覆盖
- public String carModel = ""; //[optional] 车型号(如红旗H9),默认“”,暂不加入校验逻辑、用于人工排查问题
- public String csvFileUrlDPQP = ""; //轨迹文件下载的cos url,默认“”
- public String csvFileMd5DPQP = ""; //轨迹文件md5,默认“”
- public String txtFileUrlDPQP = ""; //打点文件下载的cos url,默认“”
- public String txtFileMd5DPQP = ""; //轨迹文件md5,默认“”
- public long contrailSaveTimeDPQP; //上传轨迹完成时间戳ms:用于MEC本地手动导入轨迹验证时不会被云端轨迹覆盖
-
- // !!!接口中暂无此字段,仅用于本地实现逻辑使用:起始站目的站距离km
- public double travelDistance;
-
- @Override
- public String getEndSiteAddr() {
- return endSiteAddr;
- }
-
- /**
- * @param distance
- */
- public void decreaseTravelDistance( double distance ) {
- travelDistance = ( ( float ) distance / 1000f );
- if ( travelDistance < 0 ) {
- travelDistance = 0;
- }
- }
-
- @Override
- public int compareTo(Result o) {
- boolean isEqual = this.orderNo.equals(o.orderNo);
- return isEqual ? 0 : 1;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
- Result result = (Result) o;
- return Objects.equals(orderNo, result.orderNo) &&
- orderType == result.orderType &&
- orderStatus == result.orderStatus &&
- businessType == result.businessType;
-
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(orderNo, orderType, orderStatus, businessType, startSiteId,
- startSiteAddr, startSitePoint, startSiteGcjPoint, endSiteId, endSiteAddr,
- endSitePoint, endSiteGcjPoint, carNumber, createTime, startTime, travelDistance);
- }
-
- @Override
- public String toString() {
- return "Result{" +
- "orderNo='" + orderNo + '\'' +
- ", orderType=" + orderType +
- ", orderStatus=" + orderStatus +
- ", businessType=" + businessType +
- ", startSiteId=" + startSiteId +
- ", startSiteAddr='" + startSiteAddr + '\'' +
- ", startSitePoint=" + startSitePoint +
- ", startSiteGcjPoint=" + startSiteGcjPoint +
- ", endSiteId=" + endSiteId +
- ", endSiteAddr='" + endSiteAddr + '\'' +
- ", endSitePoint=" + endSitePoint +
- ", endSiteGcjPoint=" + endSiteGcjPoint +
- ", carNumber='" + carNumber + '\'' +
- ", createTime=" + createTime +
- ", startTime=" + startTime +
- ", bookingTime=" + bookingTime +
- ", passengerPhone='" + passengerPhone + '\'' +
- ", passengerNum='" + passengerNum + '\'' +
- ", lineId=" + lineId +
- ", lineName='" + lineName + '\'' +
- ", csvFileUrl='" + csvFileUrl + '\'' +
- ", csvFileMd5='" + csvFileMd5 + '\'' +
- ", txtFileUrl='" + txtFileUrl + '\'' +
- ", txtFileMd5='" + txtFileMd5 + '\'' +
- ", contrailSaveTime=" + contrailSaveTime +
- ", carModel='" + carModel + '\'' +
- ", csvFileUrlDPQP='" + csvFileUrlDPQP + '\'' +
- ", csvFileMd5DPQP='" + csvFileMd5DPQP + '\'' +
- ", txtFileUrlDPQP='" + txtFileUrlDPQP + '\'' +
- ", txtFileMd5DPQP='" + txtFileMd5DPQP + '\'' +
- ", contrailSaveTimeDPQP=" + contrailSaveTimeDPQP +
- ", travelDistance=" + travelDistance +
- '}';
- }
- }
-}
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderRouteUpdateReqBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderRouteUpdateReqBean.java
deleted file mode 100644
index 470869b5a8..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderRouteUpdateReqBean.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.mogo.och.taxi.bean;
-
-import java.util.List;
-
-/**
- * Created by pangfan on 2021/8/19
- *
- * 订单状态更新请求数据结构
- */
-public class OrderRouteUpdateReqBean {
- public String orderNo;
- public List points;
-
- public static class Result {
- public Double latitude;
- public Double longitude;
- }
-
- public OrderRouteUpdateReqBean(String orderNo, List points) {
- this.orderNo = orderNo;
- this.points = points;
- }
-}
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderStatusUpdateReqBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderStatusUpdateReqBean.java
deleted file mode 100644
index f31d0cc70c..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrderStatusUpdateReqBean.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.mogo.och.taxi.bean;
-
-/**
- * Created by pangfan on 2021/8/19
- *
- * 订单状态更新请求数据结构
- */
-public class OrderStatusUpdateReqBean {
- public String sn;
- public String orderNo;
- public int orderStatus;
-
- public OrderStatusUpdateReqBean(String sn, String orderNo, int orderStatus) {
- this.sn = sn;
- this.orderNo = orderNo;
- this.orderStatus = orderStatus;
- }
-}
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrdersInServiceQueryRespBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrdersInServiceQueryRespBean.java
deleted file mode 100644
index 2311ff0f03..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrdersInServiceQueryRespBean.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.mogo.och.taxi.bean;
-
-import com.mogo.eagle.core.data.BaseData;
-
-import java.util.List;
-
-/**
- * Created on 2021/9/8
- *
- * 查询全部服务中/待服务订单的返回数据
- */
-public class OrdersInServiceQueryRespBean extends BaseData {
- public Result data;
-
- public static class Result {
- public List servicing; //服务中订单
- public List waitService; //待服务订单
-
- @Override
- public String toString() {
- return "Result{" +
- "servicing=" + servicing +
- ", waitService=" + waitService +
- '}';
- }
- }
-
- @Override
- public String toString() {
- return "OrdersInServiceQueryRespBean{" +
- "data=" + data +
- ", code=" + code +
- ", msg='" + msg + '\'' +
- '}';
- }
-}
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrdersListQueryReqBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrdersListQueryReqBean.java
deleted file mode 100644
index de74f2f794..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrdersListQueryReqBean.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.mogo.och.taxi.bean;
-
-/**
- * Created by pangfan on 2021/8/19
- *
- * 查询订单列表请求数据结构
- */
-public class OrdersListQueryReqBean {
-
- public String sn;
- public int page; //页码,从0开始
- public int size; //每页条数
-
- public OrdersListQueryReqBean(String sn, int page, int size) {
- this.sn = sn;
- this.page = page;
- this.size = size;
- }
-}
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrdersListQueryRespBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrdersListQueryRespBean.java
deleted file mode 100644
index 7627953a54..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrdersListQueryRespBean.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.mogo.och.taxi.bean;
-
-import com.mogo.eagle.core.data.BaseData;
-
-import java.util.List;
-
-/**
- * Created by pangfan on 2021/8/19
- */
-public class OrdersListQueryRespBean extends BaseData {
- public Result data;
-
- public static class Result {
- public List orders;
- }
-}
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrdersNewBookingQueryRespBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrdersNewBookingQueryRespBean.java
deleted file mode 100644
index 69f7e0341c..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/OrdersNewBookingQueryRespBean.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.mogo.och.taxi.bean;
-
-import com.mogo.eagle.core.data.BaseData;
-
-import java.util.List;
-
-/**
- * Created on 2021/9/8
- *
- * 查询新到的预约单的返回数据结构
- */
-public class OrdersNewBookingQueryRespBean extends BaseData {
- public Result data;
-
- public static class Result {
- public List orders; // 返回的是order的orderNo集合, 不再是orderId集合
- }
-}
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/QueryOrderRouteResp.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/QueryOrderRouteResp.java
deleted file mode 100644
index 0c21598580..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/QueryOrderRouteResp.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.mogo.och.taxi.bean;
-
-import com.amap.api.maps.model.LatLng;
-import com.mogo.eagle.core.data.BaseData;
-
-import java.util.List;
-
-/**
- * Created by pangfan on 2021/8/19
- */
-public class QueryOrderRouteResp extends BaseData {
- public List data;
-}
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/TaxiDataBaseRespBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/TaxiDataBaseRespBean.java
deleted file mode 100644
index 8d6ca6d4df..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/TaxiDataBaseRespBean.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.mogo.och.taxi.bean;
-
-import com.mogo.eagle.core.data.BaseData;
-
-/**
- * Created by pangfan on 2021/8/19
- *
- * 查询订单返回数据结构
- */
-public class TaxiDataBaseRespBean extends BaseData {
- public Object data;
-}
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/TaxiOrPassengerReadyReqBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/TaxiOrPassengerReadyReqBean.java
deleted file mode 100644
index 5bb888fcc9..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/TaxiOrPassengerReadyReqBean.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.mogo.och.taxi.bean;
-
-/**
- * Created by pangfan on 2021/8/19
- * 司机端准备好或者乘客已验证上车请求参数
- */
-public class TaxiOrPassengerReadyReqBean {
-
- public String orderNo;
- public String sn;
- public TaxiOrPassengerReadyReqBean.Result loc;
-
- public static class Result {
- public Double lat;
- public Double lon;
- }
-
- public TaxiOrPassengerReadyReqBean(String sn, String orderNo, TaxiOrPassengerReadyReqBean.Result point) {
- this.sn = sn;
- this.orderNo = orderNo;
- this.loc = point;
- }
-}
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/UpdateOrderDisAndTimeReqBean.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/UpdateOrderDisAndTimeReqBean.java
deleted file mode 100644
index 29e7e2b0e8..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/bean/UpdateOrderDisAndTimeReqBean.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.mogo.och.taxi.bean;
-
-
-public class UpdateOrderDisAndTimeReqBean {
- public String orderNo; //订单号(必须)
- public long distance; //剩余里程 单位米(必须)
- public long duration; //剩余时间 单位秒(必须)
-
- public UpdateOrderDisAndTimeReqBean(String orderNo, long distance, long duration) {
- this.orderNo = orderNo;
- this.distance = distance;
- this.duration = duration;
- }
-}
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/IOCHTaxiAutopilotPlanningCallback.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/IOCHTaxiAutopilotPlanningCallback.java
deleted file mode 100644
index 481bb3c470..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/IOCHTaxiAutopilotPlanningCallback.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.mogo.och.taxi.callback;
-
-
-import com.amap.api.maps.model.LatLng;
-import com.mogo.eagle.core.data.map.MogoLocation;
-
-import java.util.List;
-
-/**
- * @author: wangmingjun
- * @date: 2021/11/1
- */
-public interface IOCHTaxiAutopilotPlanningCallback {
- void setLineMarker(LatLng startStation,LatLng endStation);
- void routeResult(List routeArrivied,List routeArriving, MogoLocation location);
-}
\ No newline at end of file
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiADASStatusCallback.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiADASStatusCallback.java
deleted file mode 100644
index 9bcd37a905..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiADASStatusCallback.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.mogo.och.taxi.callback;
-
-/**
- * Created on 2021/9/8
- *
- * Model->Presenter回调:ADAS相关(自动驾驶状态回调,到达终点等等)
- */
-public interface ITaxiADASStatusCallback {
- // 自动驾驶触发的已到达目的地:暂未用到
- void onAutopilotArriveEnd();
-
- // 自动驾驶可用状态
- void onAutopilotEnable(boolean canStartAuto);
-
- // 自动驾驶不可用状态
- void onAutopilotDisable(boolean canStartAuto);
-
- // 自动驾驶运行中
- void onAutopilotRunning(boolean canStartAuto);
-
- //人机共驾
- void onManMachineCoDriving(boolean canStartAuto);
-
- void updateAutopilotStatus(boolean canStartAuto);
-
- //自驾返回失败
- void onStartAdasFailure();
-}
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiCarOperationalCallback.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiCarOperationalCallback.java
deleted file mode 100644
index 40b352acfa..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiCarOperationalCallback.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.mogo.och.taxi.callback;
-
-import com.mogo.och.taxi.bean.OrderQueryRespBean;
-
-import java.util.List;
-
-/**
- * Created on 2021/9/8
- *
- * Model->Presenter回调:接单车状态变更 登录状态变更
- */
-public interface ITaxiCarOperationalCallback {
-
- void onServiceDataUpdate(long dailyTimeDuration, long dailyOrderNum);
-
- void onOrdersListPageRefresh(List ordersList);
-}
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiControllerStatusCallback.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiControllerStatusCallback.java
deleted file mode 100644
index d8e49cca85..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiControllerStatusCallback.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.mogo.och.taxi.callback;
-
-import com.mogo.eagle.core.data.map.MogoLocation;
-
-/**
- * Created on 2021/9/10
- *
- * Model->Presenter回调:状态控制器监听(accOn、adas ui show、voice ui show、push ui show、v2x ui show等等)
- */
-public interface ITaxiControllerStatusCallback {
- //开始开启自动驾驶
- void startOpenAutopilot();
-}
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiOrderStatusCallback.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiOrderStatusCallback.java
deleted file mode 100644
index 4ced7e787a..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/callback/ITaxiOrderStatusCallback.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package com.mogo.och.taxi.callback;
-
-import androidx.annotation.NonNull;
-
-import com.mogo.och.taxi.bean.OrderQueryRespBean;
-import com.mogo.och.data.taxi.OrderQueryRouteInfoRespBean;
-
-import java.util.List;
-
-/**
- * Created on 2021/9/8
- *
- * Model->Presenter回调:订单相关(进行中/待服务单变更,当前进行单状态变更,新到预约单,抢单,抢单结果状态等等)
- */
-public interface ITaxiOrderStatusCallback {
- // 进行中单变更:暂未用到
- void onOrdersInServiceChanged(@NonNull List inServiceList);
- // 待服务单变更
- void onOrdersWaitServiceChanged(@NonNull List waitServiceList);
-
- // 当前进行单状态变更:新到进行中订单、进行中单状态变更
- void onCurrentOrderStatusChanged(OrderQueryRespBean.Result order);
- // 当前订单取消完成:用于司机主动取消订单的结果反馈
- void onCurrentOrderCancelDone();
- // 待服务单被取消
- void onOrderCancelDone(String orderNo);
- // 当前订单route信息查询反馈
- void onCurrentOrderRouteInfoGot(OrderQueryRouteInfoRespBean.Result routeInfo);
- // 当前位置距离上车点的距离(米)、预估时间(秒)
- void onCurrentOrderDistToStartChanged(long meters, long timeInSecond);
- // 当前位置距离上车点的距离(米)、预估时间(秒)
- void onCurrentOrderDistToEndChanged(long meters, long timeInSecond);
-
- // 新到预约单
- void onNewBookingOrderGot(OrderQueryRespBean.Result order);
-
- // 执行抢单动作完成:可进入抢单中状态
- void onGrabOrderExecuteDone();
-
- // 抢到预约单
- void onGrabOrderSuccess(OrderQueryRespBean.Result order);
-
- // 未抢到预约单
- void onGrabOrderFailed(OrderQueryRespBean.Result order);
-
- // 司机已确认开启自动驾驶环境
- void onDriverHasCheckedPilotCondition();
-
- /**
- * 导航到目的地
- * @param isAmap 是否是高德导航
- * @param isShow 是否显示导航地图(否播报声音)
- */
- void onNaviToEnd(boolean isAmap, boolean isShow);
-}
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt
deleted file mode 100644
index 458d03895c..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt
+++ /dev/null
@@ -1,54 +0,0 @@
-package com.mogo.och.taxi.constant
-
-import com.mogo.commons.debug.DebugConfig
-
-/**
- * Created on 2021/12/6
- */
-class TaxiConst {
- companion object {
-
- // 到达起始点围栏
- const val ARRIVE_AT_START_STATION_DISTANCE = 15 //围栏由20m改为50m 再次改为15m
-
- // 上报心跳轮询ms
- const val LOOP_PERIOD_60S = 60 * 1000L
-
- // 轮询查询进行中/待服务订单的间隔时间 2秒
- const val LOOP_PERIOD_2S = 2 * 1000L
- // 轮询查询新到预约单 1秒
- const val LOOP_PERIOD_1S = 1 * 1000L
- const val LOOP_DELAY = 100L
-
- // 下发给MEC轨迹信息间隔时间 10秒
- const val LOOP_PERIOD_10S = 10 * 1000L
- // 尝试下发给MEC轨迹最多10次
- const val LOOP_SEND_TRAJ_TIMES = 10
-
- // 订单信息
- const val SP_KEY_OCH_TAXI_ORDER = "SP_KEY_OCH_TAXI_ORDER"
-
- //起点UUID
- const val TAXI_START_MAP_MAKER = "taxi_start_map_maker"
- //终点UUID
- const val TAXI_END_MAP_MAKER = "taxi_end_map_maker"
-
- //演示:V 测试:内测
- const val DEMO_USER = "V"
- const val TEST_USER = "内测"
-
- // 实时计算当前剩余里程和时间 间隔 2秒
- const val LOOP_CALCULATEROUTE_2S = 2 * 1000L
-
- //总里程/平均车速。(bus的平均里程:25km/h,taxi的平均里程:38km/h),单位为:分钟,不足1分钟时,显示1分钟。
- const val TAXI_AVERAGE_SPEED = 38
-
- /**
- * 订单起终点Marker类型
- */
- const val TYPE_MARKER_TAXI_ORDER = "TYPE_MARKER_TAXI_ORDER"
-
- const val TIMER_START_AUTOPILOT_INTERVAL = 20 * 1000L
-
- }
-}
\ No newline at end of file
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/constant/TaxiOrderCancelReasons.kt b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/constant/TaxiOrderCancelReasons.kt
deleted file mode 100644
index c55993eddf..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/constant/TaxiOrderCancelReasons.kt
+++ /dev/null
@@ -1,54 +0,0 @@
-package com.mogo.och.taxi.constant
-
-/**
- * 司机端取消订单的原因定义
- * Created on 2021/12/7
- *
- * * String int
- * 进行中订单:
- * 车况异常 0
- * 设备异常 1
- * 电量不足 2
- * 身体不适 3
- * 乘客未到 4
- * 乘客中途下车 5
- * 1099前都可用
- *
- * 待服务订单:
- * 2000 车辆故障
- * 2001 乘客联系取消
- * 2002 行程冲突
- * 2003 车电量不足
- * 2004 其他
- */
-enum class TaxiOrderCancelReasons(val type: Int, val msg: String) {
- CarBroken(1000, "车况异常"),
- DeviceBroken(1001, "设备异常"),
- BatteryLow(1002, "电量不足"),
- DriverIsIll(1003, "身体不适"),
- PassengerNotArrive(1004, "乘客未到"),
- PassengerStopOver(1005, "乘客中途下车"),
- PassengerCancel(1006, "乘客联系安全员取消"),
- UnContractPassenger(1007, "联系不上乘客"),
- JourneyConflict(1008, "行程冲突"),
- StartStationFaraway(1009,"距离过远 无法接单"),
- Other( 1010, "其他原因"),
-
- BookCarBroken(2000, "车辆故障"),
- BookPassengerCancel(2001, "乘客联系取消"),
- BookJourneyConflict(2002, "行程冲突"),
- BookBatteryLow(2003, "车电量不足"),
- BookOther(2004, "其他");
-
- companion object {
- @JvmStatic
- fun getType(msg: String): Int {
- for (value in values()) {
- if (value.msg == msg) {
- return value.type
- }
- }
- return 0
- }
- }
-}
\ No newline at end of file
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/constant/TaxiOrderTypeEnum.kt b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/constant/TaxiOrderTypeEnum.kt
deleted file mode 100644
index 34b09c6cc7..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/constant/TaxiOrderTypeEnum.kt
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.mogo.och.taxi.constant
-
-/**
- * RoboTaxi订单类型声明
- *
- * Created on 2021/12/6
- */
-enum class TaxiOrderTypeEnum(val type: Int) {
- Instant(1), // 即时单
- Reserved(2) // 预约单
-}
\ No newline at end of file
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/model/TaxiModel.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/model/TaxiModel.java
deleted file mode 100644
index a6b9bbf141..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/model/TaxiModel.java
+++ /dev/null
@@ -1,1737 +0,0 @@
-package com.mogo.och.taxi.model;
-
-import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_CODE_OCH_TAXI_START_AUTOPILOT;
-import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_SOURCE_ADAS;
-import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_TYPE_SOCKET_AUTOPILOT;
-import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI;
-
-import static java.util.Collections.emptyList;
-
-import android.content.Context;
-import android.content.Intent;
-import android.net.ConnectivityManager;
-import android.text.TextUtils;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.amap.api.maps.model.LatLng;
-import com.elegant.network.utils.GsonUtil;
-import com.mogo.commons.module.intent.IMogoIntentListener;
-import com.mogo.commons.module.intent.IntentManager;
-import com.mogo.eagle.core.data.BaseData;
-import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters;
-import com.mogo.eagle.core.data.config.FunctionBuildConfig;
-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.CallerAutoPilotStatusListenerManager;
-import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager;
-import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
-import com.mogo.commons.storage.SharedPrefsMgr;
-import com.mogo.eagle.core.utilcode.util.CoordinateUtils;
-import com.mogo.eagle.core.utilcode.util.DrivingDirectionUtils;
-import com.mogo.eagle.core.utilcode.util.NetworkUtils;
-import com.mogo.eagle.core.utilcode.util.StringUtils;
-import com.mogo.eagle.core.utilcode.util.ToastUtils;
-import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
-import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics;
-import com.mogo.och.common.module.manager.autopilot.autopilot.bean.ArrivedStation;
-import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener;
-import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotManager;
-import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager;
-import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager;
-import com.mogo.och.common.module.manager.autopilot.line.LineManager;
-import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager;
-import com.mogo.och.common.module.manager.socket.cloud.action.OperateAction2;
-import com.mogo.och.common.module.biz.login.LoginStatusManager;
-import com.mogo.och.common.module.network.OchCommonServiceCallback;
-import com.mogo.och.common.module.callback.OchAdasStartFailureCallback;
-import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager;
-import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager;
-import com.mogo.och.common.module.manager.distance.IDistanceListener;
-import com.mogo.och.common.module.manager.distance.ITrajectoryListener;
-import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager;
-import com.mogo.och.common.module.map.AmapNaviToDestinationModel;
-import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil;
-import com.mogo.och.common.module.utils.OCHThreadPoolManager;
-import com.mogo.och.common.module.utils.PinYinUtil;
-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.bean.DriverServiceDataRespBean;
-import com.mogo.och.taxi.bean.OrderGrabRespBean;
-import com.mogo.och.taxi.bean.OrderGrabStatusQueryRespBean;
-import com.mogo.och.taxi.bean.OrderQueryRespBean;
-import com.mogo.och.data.taxi.OrderQueryRouteInfoRespBean;
-import com.mogo.och.taxi.bean.OrderRouteUpdateReqBean;
-import com.mogo.och.taxi.bean.OrdersInServiceQueryRespBean;
-import com.mogo.och.taxi.bean.OrdersListQueryRespBean;
-import com.mogo.och.taxi.bean.OrdersNewBookingQueryRespBean;
-import com.mogo.och.taxi.bean.QueryOrderRouteResp;
-import com.mogo.och.taxi.bean.TaxiDataBaseRespBean;
-import com.mogo.och.taxi.bean.TaxiOrPassengerReadyReqBean;
-import com.mogo.och.taxi.callback.IOCHTaxiAutopilotPlanningCallback;
-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.TaxiConst;
-import com.mogo.och.common.module.biz.order.TaxiOrderStatusEnum;
-import com.mogo.och.taxi.constant.TaxiOrderTypeEnum;
-import com.mogo.och.taxi.network.TaxiServiceManager;
-import com.mogo.och.taxi.utils.OrderUtil;
-import com.mogo.och.taxi.utils.TaxiTrajectoryManager;
-import com.zhjt.service.chain.ChainLog;
-
-import org.jetbrains.annotations.NotNull;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import io.reactivex.exceptions.UndeliverableException;
-import io.reactivex.plugins.RxJavaPlugins;
-import mogo.telematics.pad.MessagePad;
-import mogo_msg.MogoReportMsg;
-
-/**
- * Created by pangfan on 2021/8/19
- *
- * 网约车 - 出租车业务逻辑处理
- */
-public class TaxiModel {
-
- private static final String TAG = TaxiModel.class.getSimpleName();
-
- private static final class SingletonHolder {
- private static final TaxiModel INSTANCE = new TaxiModel();
- }
-
- public static TaxiModel getInstance() {
- return SingletonHolder.INSTANCE;
- }
-
- private Context mContext;
- private volatile String mPrevOrderNo = ""; //前一次的新到单id(当次和前一次orderId相同时,本次不再弹出)
- private volatile OrderQueryRespBean.Result mNewBookingOrder; //新到待抢预约单
- private volatile OrderQueryRespBean.Result mCurrentOCHOrder; //当前订单
- private List mInServiceList = Collections.synchronizedList(emptyList()); //进行中订单
- private volatile List mWaitServiceList = emptyList(); //待服务订单
-
- private ITaxiADASStatusCallback mADASStatusCallback; //Model->Presenter:自动驾驶状态相关
- private ITaxiCarOperationalCallback mCarOperationalCallback; //Model->Presenter:登录状态和司机今日接单状态
- private ITaxiControllerStatusCallback mControllerStatusCallback; //Model->Presenter:VR mode等
- private ITaxiOrderStatusCallback mOrderStatusCallback; //Model->Presenter:订单变更
- private IOCHTaxiAutopilotPlanningCallback mAutopilotPlanningCallback;
-
- private volatile boolean isRestartAutopilot = false;
-
- private final List mRoutePoints = new ArrayList<>();
- private final int mPreRouteIndex = 0;
-
-
- private TaxiModel() {
- }
-
- public void setMoGoAutopilotPlanningListener(IOCHTaxiAutopilotPlanningCallback
- moGoAutopilotPlanningCallback) {
- this.mAutopilotPlanningCallback = moGoAutopilotPlanningCallback;
- }
-
- public void setADASStatusCallback(ITaxiADASStatusCallback callback) {
- this.mADASStatusCallback = callback;
- }
-
- public void setCarStatusCallback(ITaxiCarOperationalCallback callback) {
- this.mCarOperationalCallback = callback;
- }
-
- public void setControllerStatusCallback(ITaxiControllerStatusCallback callback) {
- this.mControllerStatusCallback = callback;
- }
-
- public void setOrderStatusCallback(ITaxiOrderStatusCallback callback) {
- this.mOrderStatusCallback = callback;
- }
-
- public void init(Context context) {
- mContext = context.getApplicationContext();
- initListeners();
-
- // TODO: 2021/8/27 因需要通过此回调的location进行坐标上传,暂改为全程监听,退出后再反注册,
- // 待后续整体调整location获取来源
-// if (DebugConfig.getCarMachineType() != DebugConfig.CAR_MACHINE_TYPE_SELF_INNOVATE) {
-// apis.getLocationInfoApi().start();
-// }
-
- //2022.1.28
- // 调用Disposable.dispose() 时候会出现InterruptedException 导致出现崩溃
- // The exception could not be delivered to the consumer because it has already canceled/disposed the flow or the excTeption has nowhere to go to begin with
- RxJavaPlugins.setErrorHandler(e -> {
- if (e instanceof UndeliverableException) {
- e = e.getCause();
- CallerLogger.d(M_TAXI + TAG, "UndeliverableException");
- }
- if ((e instanceof IOException)) {//
- // fine, irrelevant network problem or API that throws on cancellation
- CallerLogger.d(M_TAXI + TAG, "IOException");
- return;
- }
- if (e instanceof InterruptedException) {
- // fine, some blocking code was interrupted by a dispose call
- CallerLogger.d(M_TAXI + TAG, "InterruptedException");
- return;
- }
- if ((e instanceof NullPointerException) || (e instanceof IllegalArgumentException)) {
- // that's likely a bug in the application
- CallerLogger.d(M_TAXI + TAG, "NullPointerException or IllegalArgumentException");
- Thread.currentThread().getUncaughtExceptionHandler().uncaughtException(Thread.currentThread(), e);
- return;
- }
- if (e instanceof IllegalStateException) {
- // that's a bug in RxJava or in a custom operator
- CallerLogger.d(M_TAXI + TAG, "IllegalStateException");
- Thread.currentThread().getUncaughtExceptionHandler().uncaughtException(Thread.currentThread(), e);
- return;
- }
- CallerLogger.d(M_TAXI + TAG, "Undeliverable exception");
- });
- }
-
- public void release() {
- startOrStopOrderLoop(false);
- startOrStopCalculateRouteInfo(false);
- releaseListeners();
- }
-
- private void initListeners() {
- // 2021.11.1重构自动驾驶 实现接口 IMoGoAutopilotStatusListener 注册监听 替换IMogoAdasOCHCallback接口
- OchAutoPilotStatusListenerManager.INSTANCE.addListener(TAG, mGoAutopilotStatusListener);
- IntentManager.getInstance().registerIntentListener(ConnectivityManager.CONNECTIVITY_ACTION, mNetWorkIntentListener);
-
- //定位监听, 传false是高德坐标系
- OchLocationManager.addGCJ02Listener(TAG,5, mMapLocationListener);
-
- //2021.11.1 自动驾驶路线规划接口
- CallerPlanningRottingListenerManager.INSTANCE.addListener(TAG, moGoAutopilotPlanningListener);
-
- //开启自驾后 异常信息返回
- OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(mAdasStartFailureListener);
-
- OCHSocketMessageManager.INSTANCE.registerSocketMessageListener(
- OCHSocketMessageManager.msgMonitorType,
- new OperateAction2());
-
- AbnormalFactorsLoopManager.INSTANCE.startLoopAbnormalFactors(mContext);
-
- TrajectoryAndDistanceManager.INSTANCE.addDistanceListener(TAG,distanceListener);
- TrajectoryAndDistanceManager.INSTANCE.addTrajectoryListener(TAG,trajectoryListener);
-
- }
-
- private void releaseListeners() {
-
- // 注销地图监听
- OchLocationManager.removeGCJ02Listener(TAG);
-
- OCHSocketMessageManager.INSTANCE.releaseSocketMessageListener(OCHSocketMessageManager.msgMonitorType);
-
- OchAutoPilotStatusListenerManager.INSTANCE.removeListener(mGoAutopilotStatusListener);
- CallerPlanningRottingListenerManager.INSTANCE.removeListener(moGoAutopilotPlanningListener);
- OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(null);
-
- AbnormalFactorsLoopManager.INSTANCE.stopLoopAbnormalFactors();
- }
-
- public void startOrStopOrderLoop(boolean start) {
- CallerLogger.d(M_TAXI + TAG, "startOrStopOrderLoop() " + start);
- if (start) {
- TaxiModelLoopManager.getInstance().startInAndWaitOrdersLoop();
- TaxiModelLoopManager.getInstance().startNewBookingOrderLoop();
- TaxiModelLoopManager.getInstance().startHeartbeatLoop();
- } else {
- TaxiModelLoopManager.getInstance().stopInAndWaitOrdersLoop();
- TaxiModelLoopManager.getInstance().stopNewBookingOrderLoop();
- TaxiModelLoopManager.getInstance().stopHeartbeatLoop();
- }
- }
-
- //更新接单状态
- public void updateCarStatus() {
- if (!LoginStatusManager.isLogin()) {
- LoginStatusManager.queryLoginStatusByNet(false);
- return;
- }
- boolean currentOrderStatus = LoginStatusManager.isOpenOrderType();
-
- TaxiServiceManager.changeOrderServing(mContext, currentOrderStatus,
- new OchCommonServiceCallback() {
- @Override
- public void onSuccess(BaseData data) {
- if (null != data && 0 == data.code) {
- if(currentOrderStatus){
- // 上个状态是接单 暂停成功
- VoiceNotice.showNotice("暂停接单啦!");
- }else {
- // 上个状态是暂停接单 暂停成功
- VoiceNotice.showNotice("开始接单啦!");
- }
- LoginStatusManager.queryLoginStatusByNet(false);
- }
- }
-
- @Override
- public void onError() {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
- } else {
- ToastUtils.showShort(mContext.getString(R.string.request_error_tip));
- }
- }
-
- @Override
- public void onFail(int code, String msg) {
- ToastUtilsOch.showWithCodeMessage(code, msg);
- }
- });
-
- }
-
- /**
- * 查询订单状态:进行中/待服务(轮询防止因crash导致应用重启、断网没收到推送等)
- *
- * 注:只有在本地缓存mCurrentOCHOrder为null时(已完成or已取消有明确结果)或id相同且status不同时,
- * 才更新最新进行中单到本地
- */
- public void queryInAndWaitOrders() {
- TaxiServiceManager.queryOrdersInAndWaitService(mContext,
- new OchCommonServiceCallback() {
- @Override
- public void onSuccess(OrdersInServiceQueryRespBean data) {
- if (data == null || data.data == null) {
- return;
- }
-
- //1. 处理进行中订单
- mInServiceList = data.data.servicing;
- if (data.data.servicing != null && !data.data.servicing.isEmpty()) {
- // 1.1. 当存在进行中单时:对本地currentOrder进行更新
- if (mCurrentOCHOrder == null) {
- //1.1.1. 当本地无currentOrder(已经完成or取消),则更新currentOrder,并通知ui更新
- updateNativeCurrentOrder(data.data.servicing.get(0));
- if (mOrderStatusCallback != null) {
- mOrderStatusCallback.onCurrentOrderStatusChanged(mCurrentOCHOrder);
- }
- } else {
- //1.1.2. 当本地有currentOrder:
- //orderId不一致时:通过currentOrder.orderId查询订单状态,并通知ui更新
- //orderId一致且orderStatus不一致时:则更新currentOrder,并通知ui更新
- CallerLogger.d(M_TAXI + TAG, "AutopilotControl-mCurrentOCHOrder = " + mCurrentOCHOrder.orderStatus
- + ", orderStatus = " + data.data.servicing.get(0).orderStatus);
- if (!mCurrentOCHOrder.orderNo.equals(data.data.servicing.get(0).orderNo)) {
- queryCurOrderStatus();
- } else if (mCurrentOCHOrder.orderStatus != data.data.servicing.get(0).orderStatus) {
- updateNativeCurrentOrder(data.data.servicing.get(0));
- if (mOrderStatusCallback != null) {
- mOrderStatusCallback.onCurrentOrderStatusChanged(mCurrentOCHOrder);
- }
- }
- }
- } else {
- // 1.2. 当无进行中订单时:如果本地也无则跳过;如果本地仍存在currentOrder,查询此单(完成or取消)并通知ui更新
- if (mCurrentOCHOrder != null) {
- queryCurOrderStatus();
- }
- }
-
- //2. 处理待服务订单列表
- if (data.data.waitService != null && !data.data.waitService.isEmpty()) {
- //2.1. 当存在待服务订单列表:跟本地待服务列表比较
- if (mWaitServiceList.isEmpty()
- || (mWaitServiceList.size() != data.data.waitService.size())
- || !OrderUtil.haveSameOrders(mWaitServiceList, data.data.waitService)) {
- // 2.1.1. 当本地无待服务单,或数量和内容不一致,更新本地待服务列表,并通知ui更新
- mWaitServiceList = data.data.waitService;
- if (mOrderStatusCallback != null) {
- mOrderStatusCallback.onOrdersWaitServiceChanged(mWaitServiceList);
- }
- }
- } else {
- //2.2. 当无待服务单时:如果本地也无则跳过;如果本地有,则清除并通知ui更新
- if (!mWaitServiceList.isEmpty()) {
- mWaitServiceList.clear();
- if (mOrderStatusCallback != null) {
- mOrderStatusCallback.onOrdersWaitServiceChanged(mWaitServiceList);
- }
- }
- }
- }
-
- @Override
- public void onFail(int code, String msg) {
-
- }
- });
- }
-
- //仅用于轮询时查到本地有mCurrentOCHOrder但请求结果无进行中单or orderId不一致是复查本地currentOrder
- private void queryCurOrderStatus() {
- if (mCurrentOCHOrder == null) {
- return;
- }
- final String orderNo = mCurrentOCHOrder.orderNo;
- TaxiServiceManager.queryOrderById(mContext, orderNo,
- new OchCommonServiceCallback() {
- @Override
- public void onSuccess(OrderQueryRespBean data) {
- if (data != null && data.data != null
- && mCurrentOCHOrder != null && mCurrentOCHOrder.orderNo.equals(data.data.orderNo)) {
- if (data.data.orderStatus == TaxiOrderStatusEnum.Cancel.getCode()
- || data.data.orderStatus == TaxiOrderStatusEnum.JourneyCompleted.getCode()
- || data.data.orderStatus == TaxiOrderStatusEnum.None.getCode()) {
- clearCurrentOCHOrder();
- cancelAutopilot();
- } else {
- updateNativeCurrentOrder(data.data);
- }
- if (mOrderStatusCallback != null) {
- mOrderStatusCallback.onCurrentOrderStatusChanged(data.data);
- }
- }
- }
-
- @Override
- public void onFail(int code, String msg) {
-
- }
- });
- }
-
- // 取消当前订单
- public void cancelCurrentOrder(int reasonType, String reason) {
- if (mCurrentOCHOrder == null) {
- mOrderStatusCallback.onCurrentOrderCancelDone();
- return;
- }
- final String orderNo = mCurrentOCHOrder.orderNo;
- TaxiServiceManager.cancelOrder(mContext, orderNo, reasonType, reason,
- new OchCommonServiceCallback() {
- @Override
- public void onSuccess(BaseData data) {
- if (null != data && 0 == data.code
- && mCurrentOCHOrder != null && mCurrentOCHOrder.orderNo.equals(orderNo)) {
- if (mOrderStatusCallback != null) {
- mOrderStatusCallback.onCurrentOrderCancelDone();
- }
- LineManager.setLineInfo(null);
- clearCurrentOCHOrder();
- cancelAutopilot();
- }
- }
-
- @Override
- public void onError() {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
- } else {
- ToastUtils.showShort(mContext.getString(R.string.request_error_tip));
- }
- }
-
- @Override
- public void onFail(int code, String msg) {
- ToastUtilsOch.showWithCodeMessage(code, msg);
- }
- });
- }
-
- // 取消待服务中订单
- public void cancelOrderById(final String orderNo, int reasonType, String reason) {
- TaxiServiceManager.cancelOrder(mContext, orderNo, reasonType, reason,
- new OchCommonServiceCallback() {
- @Override
- public void onSuccess(BaseData data) {
- if (null != data && 0 == data.code) {
- if (mOrderStatusCallback != null) {
- mOrderStatusCallback.onOrderCancelDone(orderNo);
- }
- }
- }
-
- @Override
- public void onError() {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
- } else {
- ToastUtils.showShort(mContext.getString(R.string.request_error_tip));
- }
- }
-
- @Override
- public void onFail(int code, String msg) {
- ToastUtilsOch.showWithCodeMessage(code, msg);
- }
- });
- }
-
- // 查询当前订单route信息:预估时间、里程等
- public void queryCurOrderRouteInfo() {
- if (mCurrentOCHOrder == null) {
- return;
- }
- final String orderNo = mCurrentOCHOrder.orderNo;
- TaxiServiceManager.queryOrderRouteInfo(mContext, orderNo,
- new OchCommonServiceCallback() {
- @Override
- public void onSuccess(OrderQueryRouteInfoRespBean data) {
- if (null != data && 0 == data.code
- && mCurrentOCHOrder != null && mCurrentOCHOrder.orderNo.equals(orderNo)) {
- if (mOrderStatusCallback != null) {
- mOrderStatusCallback.onCurrentOrderRouteInfoGot(data.data);
- }
- }
- }
-
- @Override
- public void onFail(int code, String msg) {
-// ToastUtils.showShort(code + "," + msg);
- }
- });
- }
-
- // 获取全部订单列表
- public void queryOrdersList(int page, int size) {
- TaxiServiceManager.queryOrdersList(mContext, page, size,
- new OchCommonServiceCallback() {
- @Override
- public void onSuccess(OrdersListQueryRespBean data) {
- if (null != data && 0 == data.code) {
- if (mCarOperationalCallback != null) {
- mCarOperationalCallback.onOrdersListPageRefresh(data.data.orders);
- }
- }
- }
-
- @Override
- public void onError() {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
- } else {
- ToastUtils.showShort(mContext.getString(R.string.request_error_tip));
- }
- }
-
- @Override
- public void onFail(int code, String msg) {
- ToastUtilsOch.showWithCodeMessage(code, msg);
- }
- });
- }
-
- /**
- * 查询新到预约单
- *
- * 注:只有在本地缓存mNewBookingOrder为null时(执行完抢单or司机关闭改单),才更新新到待抢单
- */
- public void queryNewBookingOrder() {
- TaxiServiceManager.queryNewBookingOrder(mContext,
- new OchCommonServiceCallback() {
- @Override
- public void onSuccess(OrdersNewBookingQueryRespBean data) {
- if (data != null && data.code == 0
- && data.data != null && data.data.orders != null
- && data.data.orders.size() > 0) {
- // 本地无新到单,且本次新到单id与上次收到的新单id不同时:显示本次新到单
- if (mNewBookingOrder == null) {
- for (String orderNo : data.data.orders) {
- if (!mPrevOrderNo.equals(orderNo)) {
- queryNewBookingContent(orderNo);
- break;
- }
- }
- }
- }
- }
-
- @Override
- public void onFail(int code, String msg) {
-
- }
- });
- }
-
- // 仅限于获取到新待抢单且需要展示时查询该单信息:(queryOrderById接口可以查询属于该车的单、未派的单)
- private void queryNewBookingContent(final String orderNo) {
- TaxiServiceManager.queryOrderById(mContext, orderNo,
- new OchCommonServiceCallback() {
- @Override
- public void onSuccess(OrderQueryRespBean data) {
- if (data != null && data.code == 0
- && data.data != null && data.data.orderNo.equals(orderNo)
- && data.data.orderType == TaxiOrderTypeEnum.Reserved.getType()) {
- mNewBookingOrder = data.data;
- mPrevOrderNo = data.data.orderNo;
- if (mOrderStatusCallback != null) {
- mOrderStatusCallback.onNewBookingOrderGot(mNewBookingOrder);
- }
- }
- }
-
- @Override
- public void onFail(int code, String msg) {
-
- }
- });
- }
-
- // 执行抢单动作
- public void grabOrder() {
- if (mNewBookingOrder == null) {
- if (mOrderStatusCallback != null) {
- mOrderStatusCallback.onGrabOrderFailed(null);
- }
- return;
- }
- final String orderNo = mNewBookingOrder.orderNo;
- TaxiServiceManager.grabOrder(mContext, orderNo,
- new OchCommonServiceCallback() {
- @Override
- public void onSuccess(OrderGrabRespBean data) {
- if (data != null && data.code == 0
- && mNewBookingOrder != null && mNewBookingOrder.orderNo.equals(orderNo)) {
- if (mOrderStatusCallback != null) {
- mOrderStatusCallback.onGrabOrderExecuteDone();
- TaxiModelLoopManager.getInstance().startGrabResultLoop();
- }
- }
- }
-
- @Override
- public void onError() {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
- } else {
- ToastUtils.showShort(mContext.getString(R.string.request_error_tip));
- }
- }
-
- @Override
- public void onFail(int code, String msg) {
- ToastUtilsOch.showWithCodeMessage(code, msg);
- }
- });
- }
-
- // 查询抢单结果
- public void queryOrderGrabStatus() {
- if (mNewBookingOrder == null) {
- TaxiModelLoopManager.getInstance().stopGrabResultLoop();
- if (mOrderStatusCallback != null) {
- mOrderStatusCallback.onGrabOrderFailed(null);
- }
- return;
- }
- final String orderNo = mNewBookingOrder.orderNo;
- TaxiServiceManager.queryOrderGrabStatus(mContext, orderNo,
- new OchCommonServiceCallback() {
- @Override
- public void onSuccess(OrderGrabStatusQueryRespBean data) {
- //TaxiModelLoopManager.getInstance().stopGrabResultLoop();
- if (data != null && data.code == 0
- && mNewBookingOrder != null && mNewBookingOrder.orderNo.equals(orderNo)) {
- if (data.data.grabStatus == 0) {
- return; //抢单中,不处理继续轮询结果
- }
- if (mOrderStatusCallback != null) {
- if (data.data.grabStatus == 1) {
- mOrderStatusCallback.onGrabOrderSuccess(mNewBookingOrder);
- } else if (data.data.grabStatus == 2) {
- mOrderStatusCallback.onGrabOrderFailed(mNewBookingOrder);
- } else {
- // TODO: 2021/9/22 需根据具体内容给予提示,如订单已取消
- mOrderStatusCallback.onGrabOrderFailed(mNewBookingOrder);
- }
- }
- } else {
- if (mOrderStatusCallback != null) {
- // TODO: 2021/9/22 如果用户已取消单,抢单失败时暂返回null,UI当前直接恢复原页面内容,后续优化
- mOrderStatusCallback.onGrabOrderFailed(null);
- }
- }
- TaxiModelLoopManager.getInstance().stopGrabResultLoop();
- cancelNewBookingOrder();
- }
-
- @Override
- public void onFail(int code, String msg) {
-
- }
- });
- }
-
- // 车机端上传心跳数据(只在出车状态时上传)
- public void runCarHeartbeat() {
- MogoLocation gcj02Location = OchLocationManager.getGCJ02Location();
- TaxiServiceManager.runCarHeartbeat(mContext,
- gcj02Location.getLongitude(), gcj02Location.getLatitude(),
- new OchCommonServiceCallback() {
- @Override
- public void onSuccess(BaseData data) {
-
- }
-
- @Override
- public void onFail(int code, String msg) {
-
- }
- });
- }
-
- // 查询司机服务数据
- public void queryDriverServiceData() {
- TaxiServiceManager.queryDriverServiceData(mContext,
- new OchCommonServiceCallback() {
- @Override
- public void onSuccess(DriverServiceDataRespBean data) {
- if (data != null && data.code == 0
- && data.data != null) {
- if (mCarOperationalCallback != null) {
- mCarOperationalCallback.onServiceDataUpdate(
- data.data.timeDuration, data.data.orderNum);
- }
- }
- }
-
- @Override
- public void onError() {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
- } else {
- ToastUtils.showShort(mContext.getString(R.string.request_error_tip));
- }
- }
-
- @Override
- public void onFail(int code, String msg) {
- ToastUtilsOch.showWithCodeMessage(code, msg);
- }
- });
- }
-
- /**
- * 司机端确认可开始自动驾驶
- */
- public void confirmAutopilotConditionByDriver() {
- if (mCurrentOCHOrder == null) return;
- TaxiOrPassengerReadyReqBean.Result result = new TaxiOrPassengerReadyReqBean.Result();
- TaxiServiceManager.confirmAutopilotConditionByDriver(mContext,
- mCurrentOCHOrder.orderNo,
- result,
- new OchCommonServiceCallback() {
-
- @Override
- public void onSuccess(TaxiDataBaseRespBean data) {
- /** 2023.12.18 1.去除"自驾/安全"模式选择,默认自驾模式且无需点击;
- * 2.server去除订单流转对"安全确认"的限制(读写接口默认反馈ok,但"开启自动驾驶成功"不再限制)
- */
- // updateAutopilotStatus(data.code == 0);
- updateAutopilotStatus();
- }
-
- @Override
- public void onFail(int code, String msg) {
- /** 2023.12.18 1.去除"自驾/安全"模式选择,默认自驾模式且无需点击;
- * 2.server去除订单流转对"安全确认"的限制(读写接口默认反馈ok,但"开启自动驾驶成功"不再限制)
- */
- // updateAutopilotStatus(false);
- updateAutopilotStatus();
- }
- });
- }
-
- public void updateAutopilotStatus() {
- if (mOrderStatusCallback != null) {
- mOrderStatusCallback.onDriverHasCheckedPilotCondition();
- }
- }
-
- public void queryAutopilotStatus(boolean isStart) {
- if (isStart) {
- queryAutopilotStatus();
- }
- }
-
- public void queryAutopilotStatus() {
- if (mCurrentOCHOrder == null) return;
- TaxiServiceManager.queryAutopilotStatus(mContext, mCurrentOCHOrder.orderNo,
- new OchCommonServiceCallback() {
- @Override
- public void onSuccess(TaxiDataBaseRespBean data) {
- /** 2023.12.18 1.去除"自驾/安全"模式选择,默认自驾模式且无需点击;
- * 2.server去除订单流转对"安全确认"的限制(读写接口默认反馈ok,但"开启自动驾驶成功"不再限制)
- */
- // updateAutopilotStatus(data.data.equals(true));
- updateAutopilotStatus();
- }
-
- @Override
- public void onFail(int code, String msg) {
- /** 2023.12.18 1.去除"自驾/安全"模式选择,默认自驾模式且无需点击;
- * 2.server去除订单流转对"安全确认"的限制(读写接口默认反馈ok,但"开启自动驾驶成功"不再限制)
- */
- // updateAutopilotStatus(false);
- updateAutopilotStatus();
- }
- });
- }
-
- // 取消当前新到预约单
- public void cancelNewBookingOrder() {
- mNewBookingOrder = null;
- }
-
- // 获取当前订单
- public OrderQueryRespBean.Result getCurrentOCHOrder() {
- return mCurrentOCHOrder;
- }
-
- // 获取当前订单状态
- public TaxiOrderStatusEnum getCurOrderStatus() {
- OrderQueryRespBean.Result order = TaxiModel.getInstance().getCurrentOCHOrder();
- if (order == null) {
- return TaxiOrderStatusEnum.None;
- }
- return TaxiOrderStatusEnum.valueOf(order.orderStatus);
- }
-
- //更新本地currentOrder信息,并保存订单到本地避免车机重启丢失数据
- private void updateNativeCurrentOrder(OrderQueryRespBean.Result data) {
- if (data == null) {
- return;
- }
- mCurrentOCHOrder = data;
- TaxiTrajectoryManager.getInstance().syncTrajectoryInfo();
- SharedPrefsMgr.getInstance().putString(TaxiConst.SP_KEY_OCH_TAXI_ORDER,
- GsonUtil.jsonFromObject(data));
-
- if (mCurrentOCHOrder.orderStatus == TaxiOrderStatusEnum.OnTheWayToEnd.getCode()) {
- if (FunctionBuildConfig.isDemoMode) {
- // 当美化模式(演示模式)开启时: 订单对应自动驾驶开启后,置true
- FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = true;
- CallerAutoPilotControlManager.INSTANCE.setIgnoreConditionDraw(true);
- CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(true);
- CallerLogger.d(M_TAXI + TAG, "美化模式-ignore:置为true(更新本地order信息)");
- }
-
- updateAutopilotControlParameters();
- }
- if (mCurrentOCHOrder.orderStatus == TaxiOrderStatusEnum.ArriveAtEnd.getCode()) {
- if (FunctionBuildConfig.isDemoMode) {
- CallerLogger.d(M_TAXI + TAG, "setIPCDemoMode:false");
- CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(false);
- if (mADASStatusCallback != null) {
- mADASStatusCallback.updateAutopilotStatus(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0));
- }
- }
-
- clearAutopilotControlParameters();
- }
- }
-
- /**
- * 将业务订单信息保存,鹰眼可取用
- */
- private void updateAutopilotControlParameters() {
-
- AutopilotControlParameters parameters = initAutopilotControlParameters();
- if (null == parameters) {
- CallerLogger.e(M_TAXI + TAG, "AutopilotControlParameters is empty.");
- return;
- }
- CallerLogger.d(M_TAXI + TAG, "AutopilotControlParameters is update.");
- CallerAutoPilotStatusListenerManager.INSTANCE.updateAutopilotControlParameters(parameters);
- }
-
- private void clearAutopilotControlParameters() {
- CallerLogger.d(M_TAXI + TAG, "AutopilotControlParameters is clear.");
- CallerAutoPilotStatusListenerManager.INSTANCE.updateAutopilotControlParameters(null);
- }
-
- //清除订单信息
- public void clearCurrentOCHOrder() {
- startOrStopCalculateRouteInfo(false);
- mCurrentOCHOrder = null;
- clearAutopilotControlParameters();
- TaxiTrajectoryManager.getInstance().syncTrajectoryInfo();
- SharedPrefsMgr.getInstance().remove(TaxiConst.SP_KEY_OCH_TAXI_ORDER);
- isRestartAutopilot = false;
- if (FunctionBuildConfig.isDemoMode) {
- // 当美化模式(演示模式)开启时: 取消或订单已完成时,置false
- FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = false;
- CallerAutoPilotControlManager.INSTANCE.setIgnoreConditionDraw(false);
- CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(false);
- CallerLogger.d(M_TAXI + TAG, "美化模式-ignore:置为false(已完成or清除当前订单)");
- }
- }
-
- //检测当前订单
- public boolean checkCurrentOCHOrder() {
- return mCurrentOCHOrder != null
- && mCurrentOCHOrder.startSiteGcjPoint != null
- && mCurrentOCHOrder.endSiteGcjPoint != null;
- }
-
- /**
- * 以当前订单为基础,开启自动驾驶
- **/
- @ChainLog(
- linkChainLog = CHAIN_TYPE_SOCKET_AUTOPILOT,
- linkCode = CHAIN_SOURCE_ADAS,
- nodeAliasCode = CHAIN_CODE_OCH_TAXI_START_AUTOPILOT,
- paramIndexes = {-1}
- )
- public void startAutoPilot() {
-
- /**
- * 存在Session
- */
- if (!OchAutoPilotManager.canStartAutopilotBySessionId()) {
- return;
- }
-
- OchAutopilotAnalytics.INSTANCE.triggerClickStartAutopilotTime(System.currentTimeMillis());
-
-
- if (!checkCurrentOCHOrder()) {
- CallerLogger.e(M_TAXI + TAG, "no order or order is empty.");
- ToastUtils.showShort("当前订单不存在或异常!");
- return;
- }
-
- //1、判断轨迹url是否可用
- if (FunctionBuildConfig.isPassStartAutopilotCommand
- && TextUtils.isEmpty(mCurrentOCHOrder.csvFileUrl)
- && TextUtils.isEmpty(mCurrentOCHOrder.csvFileUrlDPQP)
- ) {
- ToastUtils.showLong("无发布轨迹, 请发布后重试");
- CallerLogger.e(M_TAXI + TAG, "isPassStartAutopilotCommand = " +
- FunctionBuildConfig.isPassStartAutopilotCommand
- + "busRoutesResult.csvFileUrl = " + mCurrentOCHOrder.csvFileUrl
- + "busRoutesResult.csvFileUrlDPQP = " + mCurrentOCHOrder.csvFileUrlDPQP);
- return;
- }
- //2、6个条件判断
- if (!CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(true, 0)) {
- return;
- }
-
- //3、距离轨迹15m计算
- String resion = OchAutoPilotManager.canStartAutoPilotByDistance(mCurrentOCHOrder.lineId);
- if(TrajectoryAndDistanceManager.errorTypeNoneLineId.equals(resion)){
- setStation();
- resion = OchAutoPilotManager.canStartAutoPilotByDistance(mCurrentOCHOrder.lineId);
- }
- if(!StringUtils.isEmpty(resion)){
- ToastUtils.showShort(resion);
- VoiceNotice.showNotice(resion);
- return;
- }
-
- CallerLogger.e(M_TAXI + TAG, "isPassStartAutopilotCommand = " +
- FunctionBuildConfig.isPassStartAutopilotCommand);
- //4、ssm 给出数据
- if (!OchAutoPilotManager.canStartAutoPilotSSM()) {
- OchAutopilotAnalytics.INSTANCE.triggerUnableStartAPReasonEvent(
- mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr,
- String.valueOf(mCurrentOCHOrder.lineId),mCurrentOCHOrder.orderNo,
- OCHAdasAbilityManager.getInstance().getAutopilotUnAbilityReason());
- return;
- }
- if(CallerAutoPilotStatusListenerManager.INSTANCE.getState()
- == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){
- ToastUtils.showShort("自驾中、请勿重复启动");
- return;
- }
-
- //点击开始自动驾驶按钮订单状态去流转, 不再与自动驾驶是否启动成功挂钩
- if (mCurrentOCHOrder.orderStatus == TaxiOrderStatusEnum.UserArriveAtStart.getCode()) {
- startServicePilotDone();
- isRestartAutopilot = false;
- } else {
- isRestartAutopilot = true;
- }
-
- AutopilotControlParameters parameters = initAutopilotControlParameters();
-
- if (null == parameters) {
- CallerLogger.e(M_TAXI + TAG, "AutopilotControlParameters is empty.");
- return;
- }
-
- long sessionId = OchAutoPilotManager.startAutoPilot(parameters);
-
- CallerLogger.d(M_TAXI + TAG, "start autopilot with parameter: %s",
- GsonUtil.jsonFromObject(parameters)
- + " ,startSiteName=" + mCurrentOCHOrder.startSiteAddr
- + " ,endSiteName=" + mCurrentOCHOrder.endSiteAddr
- + "isRestartAutopilot = " + isRestartAutopilot);
-
- OchAutopilotAnalytics.INSTANCE.triggerStartAutopilotEvent(isRestartAutopilot, false,
- mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr,
- (int) mCurrentOCHOrder.lineId,
- mCurrentOCHOrder.orderNo,System.currentTimeMillis(),0);
- OchAutopilotAnalytics.INSTANCE.triggerUpdateStartAutoPilotSessionId(sessionId);
-
- if (mControllerStatusCallback != null) {
- mControllerStatusCallback.startOpenAutopilot();
- }
-
- // TODO: 2021/8/20 无工控机环境, 手动调起自动驾驶开启返回结果,有工控机环境要删除
-// OCHTaxiUiController.getInstance().onAutoPilotStatusChanged( IMogoAdasOCHCallback.STATUS_AUTOPILOT_RUNNING, "开启自动驾驶" );
- }
-
- private AutopilotControlParameters initAutopilotControlParameters() {
-
- if (!checkCurrentOCHOrder()) {
- CallerLogger.e(M_TAXI + TAG, "no order or order is empty.");
- return null;
- }
-
- AutopilotControlParameters parameters = new AutopilotControlParameters();
-
- double startWgsLon = mCurrentOCHOrder.startSitePoint.get(0);
- double startWgsLat = mCurrentOCHOrder.startSitePoint.get(1);
- double endWgsLon = mCurrentOCHOrder.endSitePoint.get(0);
- double endWgsLat = mCurrentOCHOrder.endSitePoint.get(1);
-
- parameters.vehicleType = mCurrentOCHOrder.businessType;
- parameters.startName = PinYinUtil.getPinYinHeadChar(mCurrentOCHOrder.startSiteAddr); // 起点名称拼音首字母大写:科学城B区2号门(KXCBQ2HM)
- parameters.endName = PinYinUtil.getPinYinHeadChar(mCurrentOCHOrder.endSiteAddr); // 终点名称拼音首字母大写:科学城C区三号门(KXCCQSHM)
- parameters.startLatLon = new AutopilotControlParameters.AutoPilotLonLat(startWgsLat, startWgsLon);
- parameters.endLatLon = new AutopilotControlParameters.AutoPilotLonLat(endWgsLat, endWgsLon);
-
- // TODO 这里需要增加传入 白名单点列表、黑名单点列表,顺序按照服务端传入顺序为准。
- //parameters.wayLatLons
- //parameters.blackLatLons
-
- if (parameters.autoPilotLine == null) {
- parameters.autoPilotLine = new AutopilotControlParameters.AutoPilotLine(
- mCurrentOCHOrder.lineId, mCurrentOCHOrder.lineName,
- mCurrentOCHOrder.csvFileUrl, mCurrentOCHOrder.csvFileMd5,
- mCurrentOCHOrder.txtFileUrl, mCurrentOCHOrder.txtFileMd5,
- mCurrentOCHOrder.contrailSaveTime, mCurrentOCHOrder.carModel,
- mCurrentOCHOrder.csvFileUrlDPQP, mCurrentOCHOrder.csvFileMd5DPQP,
- mCurrentOCHOrder.txtFileUrlDPQP, mCurrentOCHOrder.txtFileMd5DPQP,
- mCurrentOCHOrder.contrailSaveTimeDPQP);
- }
- return parameters;
- }
-
- //结束自动驾驶
- public void cancelAutopilot() {
- try {
- CallerAutoPilotControlManager.INSTANCE.cancelAutoPilot();
- CallerLogger.d(M_TAXI + TAG, "结束自动驾驶");
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- //根据围栏判断,是否到达起点
- private void judgeStartStation(MogoLocation location) {
- if (mCurrentOCHOrder == null || mCurrentOCHOrder.startSiteGcjPoint == null
- || mCurrentOCHOrder.startSiteGcjPoint.size() < 2) {
- return;
- }
- double startLon = mCurrentOCHOrder.startSiteGcjPoint.get(0);
- double startLat = mCurrentOCHOrder.startSiteGcjPoint.get(1);
- double distance = CoordinateUtils.calculateLineDistance(
- startLon, startLat,
- location.getLongitude(), location.getLatitude());
-
- CallerLogger.i(M_TAXI + TAG, "judgeStartStation() distance = " + distance);
-
- if (distance <= TaxiConst.ARRIVE_AT_START_STATION_DISTANCE) {
- arrivedStartPoint();
- }
- }
-
- //监听网络变化,避免启动机器时无网导致无法更新订单信息
- private final IMogoIntentListener mNetWorkIntentListener = new IMogoIntentListener() {
- @Override
- public void onIntentReceived(String intentStr, Intent intent) {
- CallerLogger.d(M_TAXI + TAG, "onIntentReceived = %s", intentStr);
- if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intentStr)) {
- if (NetworkUtils.isConnected(mContext)) {
- startOrStopOrderLoop(LoginStatusManager.isLogin() && LoginStatusManager.isOpenOrderType());
- LoginStatusManager.queryLoginStatusByNet(false);
- }
- }
- }
- };
-
- private final OchAdasStartFailureCallback mAdasStartFailureListener = new OchAdasStartFailureCallback() {
-
- @Override
- public void onStartAutopilotFailure(@NotNull String startFailedCode, @NonNull String startFailedMessage) {
- if (mADASStatusCallback != null && !FunctionBuildConfig.isDemoMode) {
- CallerLogger.e(M_TAXI + TAG, "mAdasStartFailureListener = " + startFailedMessage);
- mADASStatusCallback.onStartAdasFailure();
- }
- }
- };
-
- // 自车定位
- private final IMoGoChassisLocationGCJ02Listener mMapLocationListener = new IMoGoChassisLocationGCJ02Listener() {
- @Override
- public void onChassisLocationGCJ02(@Nullable MogoLocation gnssInfo) {
- //位置变化时,通过围栏判断是否到达x点
- if (null == gnssInfo) return;
- OCHThreadPoolManager.getsInstance().locationExecute(new Runnable() {
- @Override
- public void run() {
- if (checkCurrentOCHOrder()) {
- if (getCurOrderStatus() == TaxiOrderStatusEnum.OnTheWayToStart) {
- judgeStartStation(gnssInfo);
- }
- if (getCurOrderStatus() == TaxiOrderStatusEnum.OnTheWayToEnd) {
- judgeEndStation(gnssInfo);
- }
- }
- }
- });
- }
- };
-
- private void judgeEndStation(MogoLocation currentLocation) {
- if (mCurrentOCHOrder == null || mCurrentOCHOrder.endSiteGcjPoint == null
- || mCurrentOCHOrder.endSiteGcjPoint.size() < 2) {
- return;
- }
- double endLon = mCurrentOCHOrder.endSiteGcjPoint.get(0);
- double endLat = mCurrentOCHOrder.endSiteGcjPoint.get(1);
- double distance = CoordinateUtils.calculateLineDistance(
- endLon, endLat,
- currentLocation.getLongitude(), currentLocation.getLatitude());
-
- CallerLogger.i(M_TAXI + TAG, "judgeEndStation() distance = " + distance);
-
- if (distance <= TaxiConst.ARRIVE_AT_START_STATION_DISTANCE) { //1、当前位置和站点围栏15m内
-
- if (!checkCurrentOCHOrder()
- || (getCurOrderStatus() == TaxiOrderStatusEnum.ArriveAtEnd)) {
- CallerLogger.i(M_TAXI + TAG, "order exception or order ArriveAtEnd");
- return;
- }
-
- //2、开始计算当前位置和站点的向量角度 < 90度 未经过 >90度 经过
- double stationAngle = DrivingDirectionUtils.getDegreeOfCar2Poi(
- currentLocation.getLongitude(),
- currentLocation.getLatitude(),
- endLon,
- endLat,
- (int) currentLocation.getHeading());
-
- CallerLogger.i(M_TAXI + TAG, "judgeEndStation() stationAngle = " + stationAngle);
-
- if (!checkCurrentOCHOrder()
- || getCurOrderStatus() == TaxiOrderStatusEnum.ArriveAtEnd
- ) {
- CallerLogger.i(M_TAXI + TAG, "order exception or order ArriveAtEnd");
- return;
- }
-
- //3、刚过站且过站距离在15m内, 提交到站
- if (stationAngle > 90) {
- CallerLogger.i(M_TAXI + TAG, "judgeEndStation() = 刚过站且在15m内");
- arriveTerminal();
- } else {
- // 4、 没有过站距离小于15m 速度小于0.3(根据M1来的模数 可能要调)
- if (currentLocation.getGnssSpeed() < 0.3) {
- CallerLogger.i(TAG, "judgeEndStation() = 没有过站、速度基本为零且在15m内");
- arriveTerminal();
- }
- }
- }
-
- }
-
- /**
- * 订单流转debug START
- */
- public void setArriveAtStartStation() {
- if (mCurrentOCHOrder == null
- || mCurrentOCHOrder.orderStatus != TaxiOrderStatusEnum.OnTheWayToStart.getCode()) {
- ToastUtils.showShort("订单状态不匹配该操作!");
- return;
- }
- arrivedStartPoint();
- }
-
- public void setDriverConfirmCondition() {
- if (mCurrentOCHOrder == null
- || mCurrentOCHOrder.orderStatus != TaxiOrderStatusEnum.UserArriveAtStart.getCode()) {
- ToastUtils.showShort("订单状态不匹配该操作!");
- return;
- }
- confirmAutopilotConditionByDriver();
- }
-
- public void setArriveAtEndStation() {
- if (mCurrentOCHOrder == null
- || mCurrentOCHOrder.orderStatus != TaxiOrderStatusEnum.OnTheWayToEnd.getCode()) {
- ToastUtils.showShort("订单状态不匹配该操作!");
- return;
- }
- arriveTerminal();
- }
-
- /**
- * 测试开启自动驾驶
- */
- public void setOnTheWayToEndStation() {
- if (mCurrentOCHOrder == null
- || mCurrentOCHOrder.orderStatus != TaxiOrderStatusEnum.UserArriveAtStart.getCode()) {
- ToastUtils.showShort("订单状态不匹配该操作!");
- }
- startServicePilotDone();
- }
-
- private final IOchAutopilotStatusListener mGoAutopilotStatusListener = new IOchAutopilotStatusListener() {
-
- @Override
- public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo, long lineId) {
- TaxiTrajectoryManager.getInstance().onAutopilotGuardian(guardianInfo,lineId);
- }
-
- @Override
- public void onAutopilotStatusResponseFromCan(int state) {
- if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
- OchAutopilotAnalytics.INSTANCE.triggerStartAutopilotEvent(isRestartAutopilot, true,
- mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr,
- (int) mCurrentOCHOrder.lineId, mCurrentOCHOrder.orderNo,System.currentTimeMillis(),1);
- }
- }
-
- @Override
- public void onAutopilotStatusResponse(int state) {
- if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
- if (mADASStatusCallback != null) {
- mADASStatusCallback.onAutopilotRunning(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0));
- }
- if (mCurrentOCHOrder != null
- && TaxiOrderStatusEnum.OnTheWayToEnd.getCode() == mCurrentOCHOrder.orderStatus) {
- OchAutopilotAnalytics.INSTANCE.triggerStartAutopilotEvent(isRestartAutopilot, true,
- mCurrentOCHOrder.startSiteAddr, mCurrentOCHOrder.endSiteAddr,
- (int) mCurrentOCHOrder.lineId, mCurrentOCHOrder.orderNo,System.currentTimeMillis(),0);
- if (FunctionBuildConfig.isDemoMode) {
- // 当美化模式(演示模式)开启时: 订单对应自动驾驶开启后,置true
- FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = true;
- CallerAutoPilotControlManager.INSTANCE.setIgnoreConditionDraw(true);
- CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(true);
- CallerLogger.d(M_TAXI + TAG, "美化模式-ignore:置为true(到达出发点且已开启自动驾驶)");
- }
- }
- } else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE) {
- if (FunctionBuildConfig.isDemoMode
- && checkCurrentOCHOrder()
- && (getCurOrderStatus() == TaxiOrderStatusEnum.OnTheWayToEnd
- || getCurOrderStatus() == TaxiOrderStatusEnum.ArriveAtEnd)) {
- // 当美化模式(演示模式)开启时:且有订单、且为去往目的地状态,维持自动驾驶icon开启状态
- return;
- }
- if (mADASStatusCallback != null) {
- mADASStatusCallback.onAutopilotEnable(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0));
- }
- } else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE) {
- if (FunctionBuildConfig.isDemoMode
- && checkCurrentOCHOrder()
- && (getCurOrderStatus() == TaxiOrderStatusEnum.OnTheWayToEnd
- || getCurOrderStatus() == TaxiOrderStatusEnum.ArriveAtEnd)) {
- // 当美化模式(演示模式)开启时:且有订单、且为去往目的地状态,维持自动驾驶icon开启状态
- return;
- }
- if (mADASStatusCallback != null) {
- mADASStatusCallback.onAutopilotDisable(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0));
- }
- } else if (state == IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING) {
- if (FunctionBuildConfig.isDemoMode) {
- if (checkCurrentOCHOrder()
- && (getCurOrderStatus() == TaxiOrderStatusEnum.OnTheWayToEnd
- || getCurOrderStatus() == TaxiOrderStatusEnum.ArriveAtEnd)) {//订单中
- // 当美化模式(演示模式)开启时:且有订单、且为去往目的地状态,维持自动驾驶icon开启状态
- } else { //美化模式下没订单,显示人工驾驶
- if (mADASStatusCallback != null) {
- mADASStatusCallback.onAutopilotDisable(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0));
- }
- }
- return;
- }
- if (mADASStatusCallback != null) {
- mADASStatusCallback.onManMachineCoDriving(CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0));
- }
- }
- }
-
- @Override
- public void canStartAutopilot(boolean canStart) {
- if (mADASStatusCallback != null) {
- mADASStatusCallback.updateAutopilotStatus(canStart);
- }
- }
-
- @Override
- public void onAutopilotArriveAtStation(ArrivedStation data) {
- CallerLogger.i(M_TAXI + TAG, "onAutopilotArriveAtStation = " + data.toString());
-
- if (data == null || !checkCurrentOCHOrder()
- || (getCurOrderStatus() == TaxiOrderStatusEnum.ArriveAtEnd)) {
- return;
- }
- arriveTerminal();
-
- if (FunctionBuildConfig.isDemoMode) {
- // 当美化模式(演示模式)开启时: 到达目的地,置false
- CallerAutoPilotControlManager.INSTANCE.setIPCDemoMode(false);
- CallerLogger.d(M_TAXI + TAG, "美化模式-ignore:置为false(到达目的地)");
- }
- }
- };
-
- private final IMoGoPlanningRottingListener moGoAutopilotPlanningListener = new IMoGoPlanningRottingListener() {
-
- @Override
- public void onAutopilotRotting(MessagePad.GlobalPathResp routeList) {
- if (null != routeList && routeList.getWayPointsList() != null) {
- CallerLogger.d(M_TAXI + TAG, "getWayPointsList = "
- + routeList.getWayPointsList().size());
- }
- if (null != routeList && routeList.getWayPointsList().size() > 0) {
- updateOrderRoute(routeList.getWayPointsList());
- updateOrderRouteInfo(routeList.getWayPointsList());
- }
- }
-
- };
-
- /**
- * 设置路径规划起终点
- *
- */
- public void setRouteLineMarker() {
- OrderQueryRespBean.Result currentOCHOrder = getCurrentOCHOrder();
- if(currentOCHOrder!=null) {
- if (currentOCHOrder.startSiteGcjPoint == null || currentOCHOrder.startSiteGcjPoint.isEmpty() || currentOCHOrder.startSiteGcjPoint.size() < 2||
- currentOCHOrder.endSiteGcjPoint == null || currentOCHOrder.endSiteGcjPoint.isEmpty() || currentOCHOrder.endSiteGcjPoint.size() < 2) {
- cleanLineMarker();
- return;
- }
- LatLng startStation = new LatLng(currentOCHOrder.startSiteGcjPoint.get(1),currentOCHOrder.startSiteGcjPoint.get(0));
- LatLng endStation = new LatLng(currentOCHOrder.endSiteGcjPoint.get(1),currentOCHOrder.endSiteGcjPoint.get(0));
- if (mAutopilotPlanningCallback != null) {
- mAutopilotPlanningCallback.setLineMarker(startStation,endStation);
- }
- }
- }
- public void cleanLineMarker(){
- if (mAutopilotPlanningCallback != null) {
- mAutopilotPlanningCallback.setLineMarker(null,null);
- }
- }
-
- /**
- * 上报订单全路径规划数据
- *
- * @param models
- */
- public void updateOrderRoute(List models) {
- if (null == mCurrentOCHOrder) return;
- List points = coordinateConverterWgsToGcjList(mContext, models);
- TaxiServiceManager.updateOrderRoute(mContext, mCurrentOCHOrder.orderNo
- , points, new OchCommonServiceCallback() {
- @Override
- public void onSuccess(BaseData data) {
-
- }
-
- @Override
- public void onError() {
- // TODO: 2022/5/18 是否在请求异常时候进行提示
- }
-
- @Override
- public void onFail(int code, String msg) {
-
- }
- });
- }
-
- public static List coordinateConverterWgsToGcjList(Context mContext, List mogoLatLngList) {
- List points = new ArrayList<>();
- for (MessagePad.Location m : mogoLatLngList) {
- LatLng mogoLatLng = CoordinateCalculateRouteUtil.coordinateConverterWgsToGcj(mContext, m);
- OrderRouteUpdateReqBean.Result result = new OrderRouteUpdateReqBean.Result();
- result.latitude = mogoLatLng.latitude;
- result.longitude = mogoLatLng.longitude;
- points.add(result);
- }
- return points;
- }
-
- /**
- * 计算全路径长度,以及实时更新剩余距离,剩余时间,预计时间
- *
- * @param models
- */
- public void updateOrderRouteInfo(List models) {
- if (null == models || models.size() == 0) return;
- if (mCurrentOCHOrder == null) return;
- CallerLogger.d(M_TAXI + TAG, "--------计算出sumLength开始---------- ");
-
- //转换成高德坐标系
- if (mRoutePoints.size() > 0) {
- mRoutePoints.clear();
- }
- mRoutePoints.addAll(CoordinateCalculateRouteUtil
- .coordinateConverterWgsToGcjLocations(mContext, models));
- startDynamicCalculateRouteInfo();
- }
-
- public void startDynamicCalculateRouteInfo() {
- CallerLogger.d(M_TAXI + TAG, "--------mCurrentOCHOrder---------- " + mCurrentOCHOrder);
-
- if (mCurrentOCHOrder != null && mRoutePoints.size() == 0) {//根据orderNo去查询
- queryOrderRouteList(mCurrentOCHOrder.orderNo);
- }
- CallerLogger.d(M_TAXI + TAG, "--------mRoutePoints.size---------- " + mRoutePoints.size());
-
- if (mRoutePoints.size() > 0) {
- reportTotalDisAndTime();
- }
- if (mCurrentOCHOrder.orderStatus == TaxiOrderStatusEnum.ArriveAtStart.getCode() ||//司机到达上车点
- mCurrentOCHOrder.orderStatus == TaxiOrderStatusEnum.UserArriveAtStart.getCode() ||//乘客到达上车点
- mCurrentOCHOrder.orderStatus == TaxiOrderStatusEnum.OnTheWayToEnd.getCode()//服务中(去往目的地)
- ) {
- //开启实时计算剩余距离,剩余时间,预计时间
- startOrStopCalculateRouteInfo(true);
- AmapNaviToDestinationModel.getInstance(mContext).destroyAmaNavi();
- if (mOrderStatusCallback != null) {
- mOrderStatusCallback.onNaviToEnd(false, false);
- }
- }
- }
-
- private void reportTotalDisAndTime() {
- float lastSumLength = CoordinateCalculateRouteUtil.calculateRouteSumLength(mRoutePoints);
- double lastTime = lastSumLength / TaxiConst.TAXI_AVERAGE_SPEED * 3.6; //秒
-
- reportOrderRemain((long) lastSumLength, (long) lastTime);
- }
-
- /**
- * 实时计算当前剩余里程和时间
- */
- public void dynamicCalculateRouteInfo() {
-// if (mLocation == null) {
-// return;
-// }
-// if (mRoutePoints.size() > 0 && mLocation != null) {
-// Map> lastPointsMap = CoordinateCalculateRouteUtil
-// .getRemainPointListByCompareNew(mPreRouteIndex, mRoutePoints, mLocation);
-//
-// for (int index : lastPointsMap.keySet()) {
-// mPreRouteIndex = index;
-// break;
-// }
-// for (List lastPoints : lastPointsMap.values()) {
-// float lastSumLength = 0;
-// if (lastPoints.size() == 1) { //只是最后一个点,计算当前位置和最后一个点的距离
-// lastSumLength = CoordinateUtils.calculateLineDistance(
-// lastPoints.get(0).getLongitude(), lastPoints.get(0).getLatitude(),
-// mLocation.getLongitude(), mLocation.getLatitude());
-// } else {
-// lastSumLength = CoordinateCalculateRouteUtil.calculateRouteSumLength(lastPoints);
-// }
-// updateDistance(lastSumLength);
-// break;
-// }
-// routeAndWipe();
-// }
- }
-
- private void updateDistance(float lastSumLength){
- double lastTime = lastSumLength / TaxiConst.TAXI_AVERAGE_SPEED * 3.6; //秒
- CallerLogger.d(M_TAXI + "dynamicCalculateRouteInfo"
- , "---lastSumLength: " + lastSumLength + "----lastTime : " + lastTime
- + " thread = " + Thread.currentThread().getName());
-
- if (mCurrentOCHOrder != null) {
- mCurrentOCHOrder.decreaseTravelDistance(lastSumLength);
- }
- if (mOrderStatusCallback != null) {
- mOrderStatusCallback.onCurrentOrderDistToEndChanged((long) lastSumLength, (long) lastTime);
- }
-
- reportOrderRemain((long) lastSumLength, (long) lastTime);
- }
-
- private final IDistanceListener distanceListener = new IDistanceListener() {
- @Override
- public void distanceCallback(float distance) {
- updateDistance(distance);
- }
-
- @Override
- public void stationDistanceCallback(float stationDistance) {
- }
- };
-
- private final ITrajectoryListener trajectoryListener = (routeArrivied, routeArriving, location) -> {
- if (mAutopilotPlanningCallback != null) {
- List routeArriviedTemp = new ArrayList<>();
- List routeArrivingTemp = new ArrayList<>();
- LatLng temp;
- for (MogoLocation mogoLocation : routeArrivied) {
- temp = new LatLng(mogoLocation.getLatitude(),mogoLocation.getLongitude());
- routeArriviedTemp.add(temp);
- }
- for (MogoLocation mogoLocation : routeArriving) {
- temp = new LatLng(mogoLocation.getLatitude(),mogoLocation.getLongitude());
- routeArrivingTemp.add(temp);
- }
- mAutopilotPlanningCallback.routeResult(routeArriviedTemp, routeArrivingTemp,location);
- setRouteLineMarker();
- }
- };
-
-
- /**
- * 查询当前订单的全局路径 (当自动驾驶开启后,订单前往乘客上车点,杀掉应用再次进来时候)
- */
- private void queryOrderRouteList(String orderNo) {
- if (mCurrentOCHOrder != null) {
- TaxiServiceManager.queryOrderRoute(mContext, orderNo,
- new OchCommonServiceCallback() {
- @Override
- public void onSuccess(QueryOrderRouteResp data) {
- if (data != null && data.data != null && mRoutePoints.size() == 0) {
- mRoutePoints.clear();
- List routePoints = CoordinateCalculateRouteUtil
- .coordinateConverterLatlngToLocation(data.data);
- mRoutePoints.addAll(routePoints);
- }
- }
-
- @Override
- public void onError() {
- // TODO: 2022/5/18 是否在请求异常的时候提示
- }
-
- @Override
- public void onFail(int code, String msg) {
-
- }
- });
- }
- }
-
- /**
- * 开始轮询计算剩余里程和时间
- *
- * @param isStart
- */
- public void startOrStopCalculateRouteInfo(boolean isStart) {
- CallerLogger.d(M_TAXI + TAG, "startOrStopOrderLoop() " + isStart);
- if (isStart) {
- TaxiModelLoopManager.getInstance().startCalculateRouteInfoLoop();
- } else {
- mRoutePoints.clear();
- TaxiModelLoopManager.getInstance().stopCalculateRouteInfoLoop();
- }
- }
-
- /**
- * 上报订单剩余里程和时间 单位:KM, M, 单位:秒
- *
- * @param lastSumLength 上报订单剩余里程
- * @param duration 上报订单剩余时间
- */
- public void reportOrderRemain(long lastSumLength, long duration) {// 米/秒
- if (mCurrentOCHOrder == null) return;
- TaxiServiceManager.reportOrderRemain(mContext, mCurrentOCHOrder.orderNo
- , lastSumLength, duration, new OchCommonServiceCallback() {
- @Override
- public void onSuccess(BaseData data) {
-
- }
-
- @Override
- public void onFail(int code, String msg) {
-
- }
- });
- }
-
- /**
- * 司机端可确认乘客已上车,调用后,后台将订单置为乘客已上车状态
- */
- public void jumpPassengerCheckDone() {
- if (mCurrentOCHOrder == null
- || mCurrentOCHOrder.orderStatus != TaxiOrderStatusEnum.ArriveAtStart.getCode()) {
- ToastUtils.showShort("订单状态不匹配该操作或者订单为空!");
- return;
- }
- TaxiOrPassengerReadyReqBean.Result result = new TaxiOrPassengerReadyReqBean.Result();
- MogoLocation gcj02Location = OchLocationManager.getGCJ02Location();
- result.lat = gcj02Location.getLatitude();
- result.lon = gcj02Location.getLongitude();
- TaxiServiceManager.updatePassengerHasBoardedStatus(mContext
- , mCurrentOCHOrder.orderNo
- , result
- , new OchCommonServiceCallback() {
- @Override
- public void onSuccess(TaxiDataBaseRespBean data) {
-
- }
-
- @Override
- public void onFail(int code, String msg) {
- ToastUtils.showShort(msg);
- }
- });
- }
-
- public void startServicePilotDone() {
- if (mCurrentOCHOrder == null) return;
-
- TaxiOrPassengerReadyReqBean.Result result = new TaxiOrPassengerReadyReqBean.Result();
- MogoLocation gcj02Location = OchLocationManager.getGCJ02Location();
- result.lat = gcj02Location.getLatitude();
- result.lon = gcj02Location.getLongitude();
- TaxiServiceManager.startServicePilotDone(mContext
- , mCurrentOCHOrder.orderNo
- , result
- , new OchCommonServiceCallback() {
- @Override
- public void onSuccess(TaxiDataBaseRespBean data) {
-
- }
-
- @Override
- public void onFail(int code, String msg) {
- }
- });
- }
-
- public void arrivedStartPoint() {
- if (mCurrentOCHOrder == null) return;
- TaxiOrPassengerReadyReqBean.Result result = new TaxiOrPassengerReadyReqBean.Result();
- MogoLocation gcj02Location = OchLocationManager.getGCJ02Location();
- result.lat = gcj02Location.getLatitude();
- result.lon = gcj02Location.getLongitude();
- TaxiServiceManager.arrivedStartPoint(mContext
- , mCurrentOCHOrder.orderNo
- , result
- , new OchCommonServiceCallback() {
- @Override
- public void onSuccess(TaxiDataBaseRespBean data) {
-
- }
-
- @Override
- public void onFail(int code, String msg) {
-
- }
- });
- }
-
- public void arriveTerminal() {
- if (mCurrentOCHOrder == null) return;
- TaxiOrPassengerReadyReqBean.Result result = new TaxiOrPassengerReadyReqBean.Result();
- MogoLocation gcj02Location = OchLocationManager.getGCJ02Location();
- result.lat = gcj02Location.getLatitude();
- result.lon = gcj02Location.getLongitude();
- TaxiServiceManager.arriveTerminal(mContext
- , mCurrentOCHOrder.orderNo
- , result
- , new OchCommonServiceCallback() {
- @Override
- public void onSuccess(TaxiDataBaseRespBean data) {
-
- }
-
- @Override
- public void onFail(int code, String msg) {
-
- }
- });
- }
-
- public void orderCompleted() {
- if (mCurrentOCHOrder == null) return;
- TaxiOrPassengerReadyReqBean.Result result = new TaxiOrPassengerReadyReqBean.Result();
- MogoLocation gcj02Location = OchLocationManager.getGCJ02Location();
- result.lat = gcj02Location.getLatitude();
- result.lon = gcj02Location.getLongitude();
- TaxiServiceManager.orderCompleted(mContext
- , mCurrentOCHOrder.orderNo
- , result
- , new OchCommonServiceCallback() {
- @Override
- public void onSuccess(TaxiDataBaseRespBean data) {
- }
-
- @Override
- public void onFail(int code, String msg) {
- ToastUtils.showShort(msg);
- }
- });
- }
-
- // 登出
- public void logout() {
- LoginStatusManager.loginOut();
- }
-
- //导航去订单终点目的地
- public void startNaviToEndStation(boolean isShow) {
- if (mRoutePoints.size() > 0) { //使用自驾轨迹
- if (mOrderStatusCallback != null) {
- mOrderStatusCallback.onNaviToEnd(false, isShow);
- }
- } else {//若直接要显示导航地图则直接导航, 若不是则2s后若无轨迹数据使用高德导航
- if (isShow && mOrderStatusCallback != null) {
-
- mOrderStatusCallback.onNaviToEnd(true, true);
- } else {
- UiThreadHandler.postDelayed(() -> {
- if (mRoutePoints.size() == 0 && mOrderStatusCallback != null) {
- mOrderStatusCallback.onNaviToEnd(true, false);
- }
- }, 2000L);
- }
-
- }
- }
-
- public void setStation(){
- OrderQueryRespBean.Result currentOCHOrder = getCurrentOCHOrder();
- if(currentOCHOrder!=null){
- MogoLocation startStation = new MogoLocation();
- startStation.setLongitude(currentOCHOrder.startSiteGcjPoint.get(0));
- startStation.setLatitude(currentOCHOrder.startSiteGcjPoint.get(1));
- MogoLocation endStation = new MogoLocation();
- endStation.setLongitude(currentOCHOrder.endSiteGcjPoint.get(0));
- endStation.setLatitude(currentOCHOrder.endSiteGcjPoint.get(1));
- TrajectoryAndDistanceManager.INSTANCE.setStationPoint(startStation,endStation,currentOCHOrder.lineId);
- }
- }
-
- public void cleanStation(){
- TrajectoryAndDistanceManager.INSTANCE.setStationPoint(null,null,-1L);
- }
-}
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/model/TaxiModelLoopManager.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/model/TaxiModelLoopManager.java
deleted file mode 100644
index 83bfe4b59f..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/model/TaxiModelLoopManager.java
+++ /dev/null
@@ -1,176 +0,0 @@
-package com.mogo.och.taxi.model;
-
-import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI;
-import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI_P;
-
-import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
-import com.mogo.och.taxi.constant.TaxiConst;
-
-import java.util.concurrent.TimeUnit;
-
-import io.reactivex.Observable;
-import io.reactivex.ObservableEmitter;
-import io.reactivex.ObservableOnSubscribe;
-import io.reactivex.android.schedulers.AndroidSchedulers;
-import io.reactivex.disposables.CompositeDisposable;
-import io.reactivex.disposables.Disposable;
-import io.reactivex.functions.Consumer;
-import io.reactivex.schedulers.Schedulers;
-
-/**
- * Created on 2021/9/10
- *
- * 管理轮询逻辑(订单轮询、新单轮询、新单抢单结果轮询等等)
- */
-public class TaxiModelLoopManager {
-
- private static final String TAG = TaxiModelLoopManager.class.getSimpleName();
-
- private static final class SingletonHolder {
- private static final TaxiModelLoopManager INSTANCE = new TaxiModelLoopManager();
- }
-
- public static TaxiModelLoopManager getInstance() {
- return SingletonHolder.INSTANCE;
- }
-
- private Disposable mInAndWaitServiceDisposable; //进行中、待服务订单列表轮询
- private Disposable mNewBookingOrderDisposable; //新到待抢预约单轮询
- private Disposable mGrabResultDisposable; //抢单结果轮询
- private Disposable mHeartbeatDisposable; //心跳轮询
- private CompositeDisposable mCalculateRouteDisposable; //每隔2s计算一次剩余里程和时间
-
- public void startInAndWaitOrdersLoop() {
- if (mInAndWaitServiceDisposable != null && !mInAndWaitServiceDisposable.isDisposed()) {
- return;
- }
- CallerLogger.i(M_TAXI + TAG, "startInAndWaitOrdersLoop()");
- mInAndWaitServiceDisposable = Observable.interval(TaxiConst.LOOP_DELAY,
- TaxiConst.LOOP_PERIOD_2S, TimeUnit.MILLISECONDS)
- .map((aLong -> aLong + 1))
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(aLong -> TaxiModel.getInstance().queryInAndWaitOrders());
- }
-
- public void stopInAndWaitOrdersLoop() {
- if (mInAndWaitServiceDisposable != null) {
- CallerLogger.i(M_TAXI + TAG, "stopInAndWaitOrdersLoop()");
- mInAndWaitServiceDisposable.dispose();
- mInAndWaitServiceDisposable = null;
- }
- }
-
- public void startNewBookingOrderLoop() {
- if (mNewBookingOrderDisposable != null && !mNewBookingOrderDisposable.isDisposed()) {
- return;
- }
- CallerLogger.i(M_TAXI + TAG, "startNewBookingOrderLoop()");
- mNewBookingOrderDisposable = Observable.interval(TaxiConst.LOOP_DELAY,
- TaxiConst.LOOP_PERIOD_1S, TimeUnit.MILLISECONDS)
- .map((aLong -> aLong + 1))
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(aLong -> TaxiModel.getInstance().queryNewBookingOrder());
- }
-
- public void stopNewBookingOrderLoop() {
- if (mNewBookingOrderDisposable != null) {
- CallerLogger.i(M_TAXI + TAG, "stopNewBookingOrderLoop()");
- mNewBookingOrderDisposable.dispose();
- mNewBookingOrderDisposable = null;
- }
- }
-
- public void startGrabResultLoop() {
- if (mGrabResultDisposable != null && !mGrabResultDisposable.isDisposed()) {
- return;
- }
- CallerLogger.i(M_TAXI + TAG, "startGrabResultLoop()");
- mGrabResultDisposable = Observable.interval(TaxiConst.LOOP_DELAY,
- TaxiConst.LOOP_PERIOD_1S, TimeUnit.MILLISECONDS)
- .map((aLong -> aLong + 1))
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(aLong -> TaxiModel.getInstance().queryOrderGrabStatus());
- }
-
- public void stopGrabResultLoop() {
- if (mGrabResultDisposable != null) {
- CallerLogger.i(M_TAXI + TAG, "stopGrabResultLoop()");
- mGrabResultDisposable.dispose();
- mGrabResultDisposable = null;
- }
- }
-
- public void startHeartbeatLoop() {
- if (mHeartbeatDisposable != null && !mHeartbeatDisposable.isDisposed()) {
- return;
- }
- CallerLogger.i(M_TAXI + TAG, "startHeartbeatLoop()");
- mHeartbeatDisposable = Observable.interval(TaxiConst.LOOP_DELAY,
- TaxiConst.LOOP_PERIOD_60S, TimeUnit.MILLISECONDS)
- .map((aLong -> aLong + 1))
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(aLong -> TaxiModel.getInstance().runCarHeartbeat());
- }
-
- public void stopHeartbeatLoop() {
- if (mHeartbeatDisposable != null) {
- CallerLogger.i(M_TAXI + TAG, "stopHeartbeatLoop()");
- mHeartbeatDisposable.dispose();
- mHeartbeatDisposable = null;
- }
- }
-
- public void startCalculateRouteInfoLoop() {
-
- CallerLogger.i(M_TAXI + TAG, "startCalculateRouteInfoLoop()");
- if (mCalculateRouteDisposable != null) return;
-
- mCalculateRouteDisposable = new CompositeDisposable();
-
- Disposable disposable = loopDynamicCalculateRouteInfo()
- .doOnSubscribe(new Consumer() {
- @Override
- public void accept(Disposable disposable) throws Exception {
-
- }
- }).doOnError(new Consumer() {
- @Override
- public void accept(Throwable throwable) throws Exception {
- }
- })
- .delay(TaxiConst.LOOP_CALCULATEROUTE_2S, TimeUnit.MILLISECONDS, true) // 设置delayError为true,表示出现错误的时候也需要延迟5s进行通知,达到无论是请求正常还是请求失败,都是5s后重新订阅,即重新请求。
- .subscribeOn(Schedulers.io())
- .repeat() // repeat保证请求成功后能够重新订阅。
- .retry() // retry保证请求失败后能重新订阅
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(new Consumer() {
- @Override
- public void accept(Integer integer) throws Exception {
- }
- });
- mCalculateRouteDisposable.add(disposable);
- }
-
- private Observable loopDynamicCalculateRouteInfo(){
- return Observable.create(new ObservableOnSubscribe() {
- @Override
- public void subscribe(ObservableEmitter emitter) throws Exception {
- if (emitter.isDisposed()) return;
- TaxiModel.getInstance().dynamicCalculateRouteInfo();
- emitter.onComplete();
- }
- });
- }
-
- public void stopCalculateRouteInfoLoop() {
- if (mCalculateRouteDisposable != null) {
- CallerLogger.i(M_TAXI + TAG, "stopCalculateRouteInfoLoop()");
- mCalculateRouteDisposable.dispose();
- mCalculateRouteDisposable = null;
- }
- }
-}
diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/network/TaxiServiceApiNew.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/network/TaxiServiceApiNew.java
deleted file mode 100644
index d94db25dfe..0000000000
--- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/network/TaxiServiceApiNew.java
+++ /dev/null
@@ -1,308 +0,0 @@
-package com.mogo.och.taxi.network;
-import com.mogo.eagle.core.data.BaseData;
-import com.mogo.och.taxi.bean.CarHeartbeatReqBean;
-import com.mogo.och.taxi.bean.DriverServiceDataRespBean;
-import com.mogo.och.taxi.bean.DriverStatusUpdateReqBean;
-import com.mogo.och.taxi.bean.OrderCancelReqBean;
-import com.mogo.och.taxi.bean.OrderGrabReqBean;
-import com.mogo.och.taxi.bean.OrderGrabRespBean;
-import com.mogo.och.taxi.bean.OrderGrabStatusQueryRespBean;
-import com.mogo.och.taxi.bean.OrderQueryReqBean;
-import com.mogo.och.taxi.bean.OrderQueryRespBean;
-import com.mogo.och.data.taxi.OrderQueryRouteInfoReqBean;
-import com.mogo.och.data.taxi.OrderQueryRouteInfoRespBean;
-import com.mogo.och.taxi.bean.OrderRouteUpdateReqBean;
-import com.mogo.och.taxi.bean.OrderStatusUpdateReqBean;
-import com.mogo.och.taxi.bean.OrdersInServiceQueryRespBean;
-import com.mogo.och.taxi.bean.OrdersListQueryReqBean;
-import com.mogo.och.taxi.bean.OrdersListQueryRespBean;
-import com.mogo.och.taxi.bean.OrdersNewBookingQueryRespBean;
-import com.mogo.och.taxi.bean.QueryOrderRouteResp;
-import com.mogo.och.taxi.bean.TaxiDataBaseRespBean;
-import com.mogo.och.taxi.bean.TaxiOrPassengerReadyReqBean;
-import com.mogo.och.taxi.bean.UpdateOrderDisAndTimeReqBean;
-
-import io.reactivex.Observable;
-import retrofit2.http.Body;
-import retrofit2.http.GET;
-import retrofit2.http.Header;
-import retrofit2.http.Headers;
-import retrofit2.http.POST;
-import retrofit2.http.Query;
-
-/**
- * Created by pangfan on 2021/8/19
- *
- * 网约车-出租车接口定义
- */
-interface TaxiServiceApiNew {
-
- /**
- * 查询全部服务中/待服务订单(没有的时候返回code 0,空列表)
- * @param sn
- * @return
- */
- @Headers( {"Content-type:application/json;charset=UTF-8"} )
-// @GET("/autopilot-car-hailing/api/v1/driver/orderInService/query")
- @GET("/autopilot-car-hailing/order/v2/driver/taxi/orderInService/query")
- Observable queryOrdersInAndWaitService(@Header("appId") String appId
- , @Header("ticket") String ticket, @Query("sn") String sn);
-
- /**
- * 查询新到的预约单
- * @param sn
- * @return
- */
- @Headers( {"Content-type:application/json;charset=UTF-8"} )
-// @GET( "/autopilot-car-hailing/api/v1/driver/newBookingOrder/query" )
- @GET( "/autopilot-car-hailing/order/v2/driver/taxi/newBookingOrder/query" )
- Observable queryNewBookingOrder(@Header ("appId") String appId
- ,@Header("ticket") String ticket,@Query("sn") String sn);
-
- /**
- * (预约单)执行抢单动作
- * @param data
- * @return
- */
- @Headers( {"Content-type:application/json;charset=UTF-8"} )
-// @POST( "/autopilot-car-hailing/api/v1/driver/grabOrder" )
- @POST( "/autopilot-car-hailing/order/v2/driver/taxi/grabOrder" )
- Observable grabOrder(@Header ("appId") String appId,@Header("ticket") String ticket
- ,@Body OrderGrabReqBean data);
-
- /**
- * (预约单)查询抢单结果
- * @param data
- * @return
- */
- @Headers( {"Content-type:application/json;charset=UTF-8"} )
-// @POST( "/autopilot-car-hailing/api/v1/driver/grabStatus/query" )
- @POST( "/autopilot-car-hailing/order/v2/driver/taxi/grabStatus/query" )
- Observable queryOrderGrabStatus(@Header ("appId") String appId,@Header("ticket") String ticket
- ,@Body OrderGrabReqBean data);
-
- /**
- * 查询订单路径规划信息(到上车点、起始点间的距离和预估时间)
- * @param data
- * @return
- */
- @Headers( {"Content-type:application/json;charset=UTF-8"} )
-// @POST( "/autopilot-car-hailing/api/v1/driver/routeInfo/query" )
- @POST( "/autopilot-car-hailing/order/v2/driver/taxi/routeInfo/query" )
- Observable queryOrderRouteInfo(@Header ("appId") String appId,@Header("ticket") String ticket
- ,@Body OrderQueryRouteInfoReqBean data);
-
- /**
- * 通过orderId查询订单信息(用于本地已经有orderId时)
- * @param data
- * @return
- * @deprecated v2.1_0930需求中暂不再使用此接口
- */
- @Headers( {"Content-type:application/json;charset=UTF-8"} )
-// @POST( "/autopilot-car-hailing/api/v1/driver/queryOrderById" )
- @POST( "/autopilot-car-hailing/order/v2/driver/taxi/queryOrderById" )
- Observable queryOrderById(@Header ("appId") String appId,@Header("ticket") String ticket
- ,@Body OrderQueryReqBean data);
-
- /**
- * 查询服务中订单信息(用于本地无orderId时)
- * 如果有多条,只会返回时间最近的一条
- * @param sn
- * @return
- * @deprecated v2.1_0930需求中暂不再使用此接口
- */
- @Headers( {"Content-type:application/json;charset=UTF-8"} )
-// @GET( "/autopilot-car-hailing/api/v1/driver/queryOrderInService" )
- @GET( "/autopilot-car-hailing/order/v2/driver/taxi/queryOrderInService" )
- Observable queryOrderInService(@Header ("appId") String appId,@Header("ticket") String ticket
- ,@Query("sn") String sn);
-
- /**
- * 取消订单
- */
- @Headers({"Content-type:application/json;charset=UTF-8"})
-// @POST("/autopilot-car-hailing/api/v1/driver/cancelOrder")
- @POST("/autopilot-car-hailing/order/v2/driver/taxi/cancelOrder")
- Observable cancelOrder(@Header ("appId") String appId,@Header("ticket") String ticket
- ,@Body OrderCancelReqBean data);
-
- /**
- * 订单列表获取
- * @param data
- * @return
- */
- @Headers( {"Content-type:application/json;charset=UTF-8"} )
-// @POST( "/autopilot-car-hailing/api/v1/driver/queryOrders" )
- @POST( "/autopilot-car-hailing/order/v2/driver/taxi/queryOrders" )
- Observable queryOrdersList(@Header ("appId") String appId,@Header("ticket") String ticket
- ,@Body OrdersListQueryReqBean data);
-
- /**
- * 订单状态更新
- * @param data
- * @return
- */
- @Headers( {"Content-type:application/json;charset=UTF-8"} )
-// @POST( "/autopilot-car-hailing/api/v1/driver/order/updateStatus" )
-// @POST( "/autopilot-car-hailing/order/v2/driver/taxi/order/updateStatus" )
- @POST( "/autopilot-car-hailing/order/v2/vehicle/taxi/driver/updateStatus" )
- Observable updateOrderStatus(@Header ("appId") String appId,@Header("ticket") String ticket
- ,@Body OrderStatusUpdateReqBean data);
-
- /**
- * 车机端上传心跳数据(只在出车状态时上传):包含高德坐标系经纬度
- * @param data
- * @return
- */
- @Headers( {"Content-type:application/json;charset=UTF-8"} )
-// @POST( "/autopilot-car-hailing/api/v1/driver/heartbeat" )
- @POST( "/autopilot-car-hailing/location/v2/driver/taxi/heartbeat" )
- Observable runCarHeartbeat(@Header ("appId") String appId,@Header("ticket") String ticket
- ,@Body CarHeartbeatReqBean data);
-
- /**
- * 查询司机服务数据
- * @param sn
- * @return
- */
- @Headers( {"Content-type:application/json;charset=UTF-8"} )
-// @GET( "/autopilot-car-hailing/api/v1/driver/serviceData/query" )
- @GET( "/autopilot-car-hailing/order/v2/driver/taxi/serviceData/query" )
- Observable queryServiceData(@Header ("appId") String appId
- ,@Header("ticket") String ticket,@Query("sn") String sn);
-
- /**
- * 上传工控机返回的全路径规划数据
- * @param appId
- * @param ticket
- * @param data
- * @return
- */
- @Headers( {"Content-type:application/json;charset=UTF-8"} )
- @POST("/autopilot-car-hailing/order/v2/driver/taxi/saveOrderRoute")
-// @POST("/mock/268/autopilot-car-hailing/order/v2/driver/taxi/orderRoute")
- Observable updateOrderRoute(@Header ("appId") String appId
- , @Header("ticket") String ticket, @Body OrderRouteUpdateReqBean data);
-
- /**
- * 上报订单剩余里程和剩余时间
- * @param appId
- * @param ticket
- * @param data
- * @return
- */
- @Headers( {"Content-type:application/json;charset=UTF-8"} )
- @POST("/autopilot-car-hailing/order/v2/driver/taxi/reportOrderRemain")
- Observable reportOrderRemain(@Header ("appId") String appId
- , @Header("ticket") String ticket, @Body UpdateOrderDisAndTimeReqBean data);
-
-
- @Headers( {"Content-type:application/json;charset=UTF-8"} )
-// @GET( "/autopilot-car-hailing/api/v1/driver/serviceStatus/query" )
- @GET( "/autopilot-car-hailing/order/v2/driver/taxi/orderRoute" )
- Observable queryOrderRoute(@Header ("appId") String appId
- , @Header("ticket") String ticket, @Query("orderNo") String orderNo);
-
- /**
- * 司机端跳过乘客验证,订单状态流转为乘客已上车
- * @param data
- * @return
- */
- @Headers( {"Content-type:application/json;charset=UTF-8"} )
- @POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/ready/passenger" )
- Observable updatePassengerHasBoardedStatus(@Header ("appId") String appId
- , @Header("ticket") String ticket, @Body TaxiOrPassengerReadyReqBean data);
-
- /**
- * 司机端确认可开启自动驾驶
- * @param appId
- * @param ticket
- * @param data
- * @return
- */
- @Headers( {"Content-type:application/json;charset=UTF-8"} )
- @POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/ready/pilot" )
- Observable confirmAutopilotConditionByDriver(@Header ("appId") String appId
- , @Header("ticket") String ticket,@Body TaxiOrPassengerReadyReqBean data);
-
- /**
- * 查询司机是否已确认可开启自动驾驶
- * @param appId
- * @param ticket
- * @param orderNo
- * @return
- */
- @Headers( {"Content-type:application/json;charset=UTF-8"} )
- @GET( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/pilot/status" )
- Observable queryPilotStatus(@Header ("appId") String appId
- , @Header("ticket") String ticket,@Query("orderNo") String orderNo);
-
- /**
- * 开启自动驾驶成功
- * @param appId
- * @param ticket
- * @param data
- * @return
- */
- @Headers( {"Content-type:application/json;charset=UTF-8"} )
- @POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/startServicePilot" )
- Observable