diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/LineModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/LineModel.kt index 7109e35ae7..dde4c03f9d 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/LineModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/LineModel.kt @@ -35,6 +35,7 @@ import com.mogo.och.weaknet.repository.db.repository.TaskSiteDb import com.mogo.och.weaknet.repository.net.RepositoryManager import com.mogo.och.weaknet.repository.net.exception.DataException import com.mogo.och.weaknet.repository.net.impl.shuttlesaas.OrderServiceManager +import io.reactivex.Observable import io.reactivex.Observer import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable @@ -427,47 +428,28 @@ object LineModel { } // 滑动出发 - fun leaveStation(){ - //开始站点: leaving false->true - LineManager.getStartStation { - if (currentTask != null && currentTask!!.taskId != null) { - currentTask?.let { task -> - if (task.taskId!=null&&task.lineId!=null) { - it.drivingStatus = TaskSiteDataBean.drivingStatusCurrent - it.isLeaving = true - TaskSiteDb.updateLeave(task.taskId!!, it.siteId.toLong(), true) - mBusLinesCallbackMap.forEach {map-> - map.value.onLeaveStaionSuccess() - } - OchChainLogManager.writeChainLogDb("滑动出发", "task:${currentTask}__taskId:${currentTask?.taskId}") - // 设置滑动出发任务 - LineManager.getLineInfo { lineInfo -> - EventDb.saveEventTaskLeaveSite( - task.taskId!!, - task.lineId!!, - it.siteId.toLong(), - it.seq, - task.taskStartTime, - lineInfo.lineName - ) - } - } - } - } else { - mBusLinesCallbackMap.forEach {map-> - map.value.onLeaveStaionFail() - } - OchChainLogManager.writeChainLog( - "滑动出发_数据更新_error", - "task:${currentTask}__taskId:${currentTask?.taskId}" - ) + fun leaveStation(): Observable? { + LineManager.getStations().first?.let {startStation-> + startStation.drivingStatus = TaskSiteDataBean.drivingStatusCurrent + startStation.isLeaving = true + currentTask?.let { task-> + return RepositoryManager.leaveStation( + startStation.seq, + startStation.siteId.toLong(), + task.taskId?:0L, + task.lineId?:0L, + task.taskStartTime?:System.currentTimeMillis()) } } - val (startStation, endStation) = LineManager.getStations() - val changeInfo = - "taskId:${currentTask?.taskId}--lineId:${currentTask?.lineId}--currentStationName:${startStation?.name}--finalNextStationName:${endStation?.name}" - OchChainLogManager.writeChainLog("滑动出发", changeInfo) + return null } + + fun leaveStationSuccess(){ + mBusLinesCallbackMap.forEach {map-> + map.value.onLeaveStaionSuccess() + } + } + // 到站 fun arrivedStation() { LineManager.getStations { start, end -> diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt index 5c6f7e6904..01abfbb83f 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt @@ -32,8 +32,13 @@ import com.mogo.och.common.module.utils.ResourcesUtils import com.mogo.och.common.module.utils.RxUtils import com.mogo.och.shuttle.weaknet.R import com.mogo.och.weaknet.constant.BusConst +import com.mogo.och.weaknet.repository.net.exception.DataException import com.mogo.och.weaknet.util.BusTrajectoryManager import com.mogo.och.weaknet.util.ShuttleVoiceManager +import io.reactivex.Observer +import io.reactivex.android.schedulers.AndroidSchedulers +import io.reactivex.disposables.Disposable +import io.reactivex.schedulers.Schedulers /** * @author congtaowang @@ -209,14 +214,39 @@ object OrderModel { completeTask() return } - isArrivedStation = false - onStartAutopilot() - - ThirdDeviceData.leaveStation() LineModel.leaveStation() + ?.subscribeOn(Schedulers.io()) + ?.observeOn(AndroidSchedulers.mainThread()) + ?.subscribe(object : Observer { + override fun onSubscribe(d: Disposable) { + d(TAG, "onSubscribe") + } + + override fun onError(e: Throwable) { + d(TAG, "onError${e.printStackTrace()}") + if (e is DataException) { + + } + } + + override fun onComplete() { + d(TAG, "onComplete") + } + + override fun onNext(data: Boolean) { + if (data) { + LineModel.leaveStationSuccess() + isArrivedStation = false + onStartAutopilot() + + ThirdDeviceData.leaveStation() + + updateBusStatus() + } + } + }) - updateBusStatus() } /** diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/ThirdDeviceData.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/ThirdDeviceData.kt index d846cd4d3e..7a70fb662a 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/ThirdDeviceData.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/ThirdDeviceData.kt @@ -87,7 +87,9 @@ object ThirdDeviceData { //到站 fun arriveStation() { - UiThreadHandler.removeCallbacks(delayedTts) + delayedTts?.let { + UiThreadHandler.removeCallbacks(delayedTts) + } LineManager.getStationsWithLine { start, end, lineInfo -> ShuttleVoiceManager.arrivedStationBus(end.name, end.nameKr) //给bus外屏发送 diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/IRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/IRepository.kt index 92d621aee0..254bcf5f20 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/IRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/IRepository.kt @@ -1,5 +1,8 @@ package com.mogo.och.weaknet.repository.net +import android.content.Context +import com.mogo.eagle.core.data.BaseData +import com.mogo.och.common.module.network.OchCommonServiceCallback import com.mogo.och.weaknet.repository.db.bean.LineDataBean import com.mogo.och.weaknet.repository.db.bean.TaskDataBean import io.reactivex.Observable @@ -10,4 +13,6 @@ interface IRepository { fun queryCanUserTask(lineId:Long): Observable?>? fun startTask(taskId:Long,lineId:Long,taskTime:Long,lineName:String): Observable? + + fun leaveStation(seq: Int, siteId: Long, taskId: Long, lineId: Long, taskStartTime:Long): Observable? } \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/RepositoryManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/RepositoryManager.kt index 4435d5010f..45863b4860 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/RepositoryManager.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/RepositoryManager.kt @@ -45,4 +45,9 @@ object RepositoryManager { return repository.startTask(taskId,lineId,taskTime,lineName) } + fun leaveStation(seq: Int, siteId: Long, taskId: Long, lineId: Long, taskStartTime:Long + ): Observable?{ + return repository.leaveStation(seq,siteId,taskId,lineId,taskStartTime) + } + } \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/request/BusUpdateSiteStatusRequest.java b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/request/BusUpdateSiteStatusRequest.java index 266c46aaa1..e4354dc07a 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/request/BusUpdateSiteStatusRequest.java +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/request/BusUpdateSiteStatusRequest.java @@ -11,12 +11,12 @@ import com.mogo.commons.storage.SharedPrefsMgr; public class BusUpdateSiteStatusRequest { public String sn; - public int taskId; + public long taskId; public int seq;//站点序号 - public int siteId;//站点id + public long siteId;//站点id public long writeVersion; //更新时间戳 - public BusUpdateSiteStatusRequest(int taskId, int siteId, int seq, long writeVersion) { + public BusUpdateSiteStatusRequest(long taskId, long siteId, int seq, long writeVersion) { this.sn = SharedPrefsMgr.getInstance().getSn(); this.seq = seq; this.siteId = siteId; diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bus/BusRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bus/BusRepository.kt index eb5699325d..eebcf00c3d 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bus/BusRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bus/BusRepository.kt @@ -37,5 +37,15 @@ class BusRepository: IRepository { TODO("Not yet implemented") } + override fun leaveStation( + seq: Int, + siteId: Long, + taskId: Long, + lineId: Long, + taskStartTime: Long + ): Observable? { + TODO("Not yet implemented") + } + } \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bus/OrderServiceManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bus/OrderServiceManager.kt index 618efd6931..efa6e496f0 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bus/OrderServiceManager.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bus/OrderServiceManager.kt @@ -122,13 +122,13 @@ object OrderServiceManager { taskId: Int, callback: OchCommonServiceCallback? ) { - M_SERVICE.leaveStation( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - BusUpdateSiteStatusRequest(taskId, siteId, seq, System.currentTimeMillis()) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "leaveStation")) +// M_SERVICE.leaveStation( +// MoGoAiCloudClientConfig.getInstance().serviceAppId, +// SharedPrefsMgr.getInstance().token, +// BusUpdateSiteStatusRequest(taskId, siteId, seq, System.currentTimeMillis()) +// ) +// .transformTry() +// .subscribe(OchCommonSubscribeImpl(context, callback, "leaveStation")) } @@ -144,13 +144,13 @@ object OrderServiceManager { context: Context, seq: Int, siteId: Int, taskId: Int, callback: OchCommonServiceCallback? ) { - M_SERVICE.arriveSiteStation( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - BusUpdateSiteStatusRequest(taskId, siteId, seq, System.currentTimeMillis()) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "arriveSiteStation")) +// M_SERVICE.arriveSiteStation( +// MoGoAiCloudClientConfig.getInstance().serviceAppId, +// SharedPrefsMgr.getInstance().token, +// BusUpdateSiteStatusRequest(taskId, siteId, seq, System.currentTimeMillis()) +// ) +// .transformTry() +// .subscribe(OchCommonSubscribeImpl(context, callback, "arriveSiteStation")) } @JvmStatic diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bussaas/BusSaasRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bussaas/BusSaasRepository.kt index 2d5dad6716..45cd9db6c6 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bussaas/BusSaasRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bussaas/BusSaasRepository.kt @@ -37,5 +37,15 @@ class BusSaasRepository: IRepository { TODO("Not yet implemented") } + override fun leaveStation( + seq: Int, + siteId: Long, + taskId: Long, + lineId: Long, + taskStartTime: Long + ): Observable? { + TODO("Not yet implemented") + } + } \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bussaas/OrderServiceManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bussaas/OrderServiceManager.kt index bf85078b09..c07b371ef7 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bussaas/OrderServiceManager.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/bussaas/OrderServiceManager.kt @@ -123,13 +123,13 @@ object OrderServiceManager { taskId: Int, callback: OchCommonServiceCallback? ) { - M_SAAS_SERVICE.leaveStation( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - BusUpdateSiteStatusRequest(taskId, siteId, seq, System.currentTimeMillis()) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "leaveStation")) +// M_SAAS_SERVICE.leaveStation( +// MoGoAiCloudClientConfig.getInstance().serviceAppId, +// SharedPrefsMgr.getInstance().token, +// BusUpdateSiteStatusRequest(taskId, siteId, seq, System.currentTimeMillis()) +// ) +// .transformTry() +// .subscribe(OchCommonSubscribeImpl(context, callback, "leaveStation")) } @@ -145,13 +145,13 @@ object OrderServiceManager { context: Context, seq: Int, siteId: Int, taskId: Int, callback: OchCommonServiceCallback? ) { - M_SAAS_SERVICE.arriveSiteStation( - MoGoAiCloudClientConfig.getInstance().serviceAppId, - SharedPrefsMgr.getInstance().token, - BusUpdateSiteStatusRequest(taskId, siteId, seq, System.currentTimeMillis()) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "arriveSiteStation")) +// M_SAAS_SERVICE.arriveSiteStation( +// MoGoAiCloudClientConfig.getInstance().serviceAppId, +// SharedPrefsMgr.getInstance().token, +// BusUpdateSiteStatusRequest(taskId, siteId, seq, System.currentTimeMillis()) +// ) +// .transformTry() +// .subscribe(OchCommonSubscribeImpl(context, callback, "arriveSiteStation")) } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttle/OrderServiceManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttle/OrderServiceManager.kt index 11592f24c4..5b335e743b 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttle/OrderServiceManager.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttle/OrderServiceManager.kt @@ -115,20 +115,20 @@ object OrderServiceManager { */ @JvmStatic fun leaveStation( - context: Context, seq: Int, - siteId: Int, - taskId: Int, + siteId: Long, + taskId: Long, writeVersion: Long, - callback: OchCommonServiceCallback? - ) { - mService.leaveStation( + ): Observable? { + return mService.leaveStation( MoGoAiCloudClientConfig.getInstance().serviceAppId, SharedPrefsMgr.getInstance().token, BusUpdateSiteStatusRequest(taskId, siteId, seq,writeVersion) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "leaveStation")) + ).transformTry() + .flatMap(OchCommonNet("leaveStation",false)) + .flatMap { + Observable.just(true) + } } /** @@ -140,7 +140,7 @@ object OrderServiceManager { */ @JvmStatic fun arriveSiteStation( - context: Context, seq: Int, siteId: Int, taskId: Int, writeVersion: Long, + context: Context, seq: Int, siteId: Long, taskId: Long, writeVersion: Long, callback: OchCommonServiceCallback? ) { mService.arriveSiteStation( diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttle/ShuttleRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttle/ShuttleRepository.kt index ed4dfe40c1..6985c3f964 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttle/ShuttleRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttle/ShuttleRepository.kt @@ -19,4 +19,14 @@ class ShuttleRepository: IRepository { return OrderServiceManager.switchLine(taskId) } + override fun leaveStation( + seq: Int, + siteId: Long, + taskId: Long, + lineId: Long, + taskStartTime: Long + ): Observable? { + return OrderServiceManager.leaveStation(seq,siteId,taskId,System.currentTimeMillis()) + } + } \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttlesaas/ShuttleSaasRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttlesaas/ShuttleSaasRepository.kt index 945f7c7a54..c6f6b514db 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttlesaas/ShuttleSaasRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttlesaas/ShuttleSaasRepository.kt @@ -1,13 +1,19 @@ package com.mogo.och.weaknet.repository.net.impl.shuttlesaas +import com.mogo.och.common.module.manager.autopilot.line.LineManager +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager +import com.mogo.och.weaknet.model.LineModel.currentTask import com.mogo.och.weaknet.repository.db.bean.LineDataBean import com.mogo.och.weaknet.repository.db.bean.TaskDataBean +import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean +import com.mogo.och.weaknet.repository.db.repository.EventDb import com.mogo.och.weaknet.repository.db.repository.LineDb import com.mogo.och.weaknet.repository.db.repository.TaskDb +import com.mogo.och.weaknet.repository.db.repository.TaskSiteDb import com.mogo.och.weaknet.repository.net.IRepository import io.reactivex.Observable -class ShuttleSaasRepository: IRepository { +class ShuttleSaasRepository : IRepository { override fun queryCanUseLine(): Observable?>? { return LineDb.queryCanUseLine() @@ -17,8 +23,47 @@ class ShuttleSaasRepository: IRepository { return TaskDb.queryCanUserTask(lineId) } - override fun startTask(taskId:Long,lineId:Long,taskTime:Long,lineName:String): Observable? { + override fun startTask( + taskId: Long, + lineId: Long, + taskTime: Long, + lineName: String + ): Observable? { return TaskDb.startTask(taskId, lineId, lineName) } + override fun leaveStation(seq: Int, siteId: Long, taskId: Long, lineId: Long, taskStartTime:Long): Observable? { + return Observable.just(taskId) + .flatMap { + //开始站点: leaving false->true + LineManager.getStartStation { + TaskSiteDb.updateLeave(taskId, it.siteId.toLong(), true) + OchChainLogManager.writeChainLogDb( + "滑动出发", + "task:${currentTask}__taskId:${currentTask?.taskId}" + ) + // 设置滑动出发任务 + LineManager.getLineInfo { lineInfo -> + EventDb.saveEventTaskLeaveSite( + taskId, + lineId, + it.siteId.toLong(), + it.seq, + taskStartTime, + lineInfo.lineName + ) + } + + } + val (startStation, endStation) = LineManager.getStations() + val changeInfo = + "taskId:${currentTask?.taskId}--lineId:${currentTask?.lineId}--currentStationName:${startStation?.name}--finalNextStationName:${endStation?.name}" + OchChainLogManager.writeChainLog("滑动出发", changeInfo) + // 开始任务成功 + return@flatMap Observable.just(true) + } + + + } + } \ No newline at end of file