From dcdce2f6cc6f9c7acffc13d13c0dd43c01d53e6b Mon Sep 17 00:00:00 2001 From: yangyakun Date: Mon, 23 Sep 2024 19:49:45 +0800 Subject: [PATCH] =?UTF-8?q?[6.6.0]=20[fea]=20[=E4=BB=BB=E5=8A=A1=E7=BD=91?= =?UTF-8?q?=E7=BB=9C=E9=94=99=E8=AF=AF]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../weaknet/callback/IBusLinesCallback.java | 2 + .../com/mogo/och/weaknet/model/LineModel.kt | 52 +++++++++++++------ .../{DataException.kt => DbException.kt} | 2 +- .../repository/db/repository/TaskDb.kt | 36 ++++++------- .../repository/db/repository/TaskSiteDb.kt | 7 ++- .../och/weaknet/repository/net/IRepository.kt | 2 + .../repository/net/RepositoryManager.kt | 5 +- .../request/BusResetDrivingLineRequest.java | 4 +- .../repository/net/exception/DataException.kt | 9 ++++ .../repository/net/impl/bus/BusRepository.kt | 9 ++++ .../net/impl/bus/OrderServiceManager.kt | 2 +- .../net/impl/bussaas/BusSaasRepository.kt | 9 ++++ .../net/impl/bussaas/OrderServiceManager.kt | 2 +- .../net/impl/shuttle/IBascApiService.java | 2 +- .../net/impl/shuttle/OrderServiceManager.kt | 18 +++---- .../net/impl/shuttle/ShuttleRepository.kt | 8 +-- .../impl/shuttlesaas/ShuttleSaasRepository.kt | 4 ++ .../weaknet/ui/switchtask/SwitchTaskView.kt | 20 ++++++- .../weaknet/ui/switchtask/SwtichTaskModel.kt | 7 ++- .../res/layout/shuttle_weak_error_view.xml | 32 ++++++++++++ .../res/layout/shuttle_weak_switch_task.xml | 11 ++++ 21 files changed, 181 insertions(+), 62 deletions(-) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/exception/{DataException.kt => DbException.kt} (77%) create mode 100644 OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/exception/DataException.kt create mode 100644 OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_weak_error_view.xml diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/callback/IBusLinesCallback.java b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/callback/IBusLinesCallback.java index 6f93a47a60..db731ef2be 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/callback/IBusLinesCallback.java +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/callback/IBusLinesCallback.java @@ -29,4 +29,6 @@ public interface IBusLinesCallback { default void onArriveStationSuccess(){} default void onCompleteTask(){} + + default void onBusLineTasksError(){} } 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 cff9cae763..7109e35ae7 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 @@ -33,10 +33,13 @@ 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.RepositoryManager -import com.mogo.och.weaknet.repository.net.impl.shuttle.ShuttleRepository +import com.mogo.och.weaknet.repository.net.exception.DataException import com.mogo.och.weaknet.repository.net.impl.shuttlesaas.OrderServiceManager import io.reactivex.Observer +import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable +import io.reactivex.schedulers.Schedulers +import java.net.UnknownHostException import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.atomic.AtomicBoolean @@ -208,6 +211,8 @@ object LineModel { @JvmStatic fun queryBusLineTasksById(lineId: Long) { RepositoryManager.queryCanUserTask(lineId) + ?.subscribeOn(Schedulers.io()) + ?.observeOn(AndroidSchedulers.mainThread()) ?.subscribe(object : Observer?> { override fun onSubscribe(d: Disposable) { d(TAG, "onSubscribe") @@ -215,6 +220,9 @@ object LineModel { override fun onError(e: Throwable) { d(TAG, "onError${e.printStackTrace()}") + mBusLinesCallbackMap.forEach { + it.value.onBusLineTasksError() + } } override fun onComplete() { @@ -237,26 +245,38 @@ object LineModel { fun commitSwitchLineId(task: TaskDataBean, line: LineDataBean) { line.getLineIdAndName { lineId, lineName -> task.getLineIdAndName { taskId, taskTime -> - TaskDb.startTask( - taskId, - lineId, - lineName, - object : TaskDb.TaskStatusCallback { - override fun startSuccess() { - EventDb.saveEventTaskStart(taskId,lineId,taskTime,lineName) - OrderModel.queryBusRoutes() - mBusLinesCallbackMap.forEach { - it.value.onChangeLineIdSuccess() + RepositoryManager.startTask(taskId, lineId, taskTime, lineName) + ?.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) { + OchChainLogManager.writeChainLog("开始任务", "${e.message}") + ToastUtils.showShort("选择任务失败:${e.message}") + mBusLinesCallbackMap.forEach { + it.value.onChangeLineIdFail() + } } } - override fun startFail(msg: String) { - ToastUtils.showShort("选择任务失败:$msg") - mBusLinesCallbackMap.forEach { - it.value.onChangeLineIdFail() - } + override fun onComplete() { + d(TAG, "onComplete") } + override fun onNext(data: Boolean) { + if (data) { + EventDb.saveEventTaskStart(taskId, lineId, taskTime, lineName) + OrderModel.queryBusRoutes() + mBusLinesCallbackMap.forEach { + it.value.onChangeLineIdSuccess() + } + } + } }) } } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/exception/DataException.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/exception/DbException.kt similarity index 77% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/exception/DataException.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/exception/DbException.kt index a9a6e637c4..82958f81a1 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/exception/DataException.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/exception/DbException.kt @@ -1,6 +1,6 @@ package com.mogo.och.weaknet.repository.db.exception -class DataException: RuntimeException { +class DbException: RuntimeException { constructor() : super() constructor(message: String?) : super(message) } \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskDb.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskDb.kt index 50d1686f92..1599fddf33 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskDb.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskDb.kt @@ -9,7 +9,8 @@ import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.weaknet.repository.db.MyDataBase import com.mogo.och.weaknet.repository.db.bean.TaskDataBean import com.mogo.och.weaknet.repository.db.dao.TaskDataDao -import com.mogo.och.weaknet.repository.db.exception.DataException +import com.mogo.och.weaknet.repository.db.exception.DbException +import com.mogo.och.weaknet.repository.net.exception.DataException import io.reactivex.Observable object TaskDb { @@ -70,8 +71,9 @@ object TaskDb { return null } - fun startTask(taskId: Long, lineId: Long,lineName:String,callback: TaskStatusCallback){ - BizLoopManager.postDelayed({ + fun startTask(taskId: Long, lineId: Long,lineName:String): Observable? { + return Observable.just(taskId) + .flatMap { var updateCount:Int? = 0 var startTime = System.currentTimeMillis() try { @@ -89,7 +91,7 @@ object TaskDb { OchChainLogManager.writeChainLogDb("开始任务", "把正在使用的数据更新到RunningTask表格一共${updateCount}行数据") CallerLogger.d(TAG,"插入正在运行的线路用时:${System.currentTimeMillis()-startTime}") } catch (e: Exception) { - if (e is DataException) { + if (e is DbException) { println("数据不全") // 恢复数据 taskDataDao?.queryTaskByTaskIdOne(taskId)?.let { @@ -100,21 +102,19 @@ object TaskDb { OchChainLogManager.writeChainLogDb("开始任务", "异常情况${lineId}_${lineName}_task:${taskId} 为未使用的状态 原因:${e.message}") } } - updateCount = null - callback.startFail("错误信息:${e.message}") - }finally { - updateCount?.let { - if(it<=0){ - // 插入失败 - callback.startFail("未插入数据") - }else{ - // 开始任务成功 - callback.startSuccess() - } - } - + return@flatMap Observable.error(DataException(DataException.startTaskErrorCode,e.message)) } - },0) + updateCount?.let { + if(it<=0){ + // 插入失败 + return@flatMap Observable.error(DataException(DataException.startTaskErrorCode,"未插入数据")) + }else{ + // 开始任务成功 + return@flatMap Observable.just(true) + } + } + } + } fun queryRunningTaskByLineId(lineId: Long): List? { diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskSiteDb.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskSiteDb.kt index 9b2895c82e..b960c5e857 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskSiteDb.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskSiteDb.kt @@ -7,8 +7,7 @@ import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.weaknet.repository.db.MyDataBase import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean import com.mogo.och.weaknet.repository.db.dao.TaskSiteDataDao -import com.mogo.och.weaknet.repository.db.exception.DataException -import com.mogo.och.weaknet.repository.db.exception.NetDataException +import com.mogo.och.weaknet.repository.db.exception.DbException object TaskSiteDb { @@ -28,7 +27,7 @@ object TaskSiteDb { var startTime = System.currentTimeMillis() val querySites = SiteDb.querySiteByLineId(linId) if(querySites.isNullOrEmpty()){ - throw DataException("没有站点数据") + throw DbException("没有站点数据") } CallerLogger.d(TAG,"查询站点用时:${System.currentTimeMillis()-startTime}") startTime = System.currentTimeMillis() @@ -39,7 +38,7 @@ object TaskSiteDb { ) CallerLogger.d(TAG,"数据转换用时:${System.currentTimeMillis()-startTime}") if(toTaskSiteDatas.size<2){ - throw DataException("站点数据不全请稍后再试") + throw DbException("站点数据不全请稍后再试") } // 把线路所有的站点搬迁到运行中表格中 startTime = System.currentTimeMillis() 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 daff1f4195..92d621aee0 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 @@ -8,4 +8,6 @@ interface IRepository { fun queryCanUseLine(): Observable?>? fun queryCanUserTask(lineId:Long): Observable?>? + + fun startTask(taskId:Long,lineId:Long,taskTime:Long,lineName:String): 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 36bb28bd97..4435d5010f 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 @@ -20,7 +20,7 @@ object RepositoryManager { init { if(ProjectUtils.isSaas()){ if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) { - repository = ShuttleSaasRepository() + repository = ShuttleRepository() }else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) { repository = BusSaasRepository() } @@ -41,5 +41,8 @@ object RepositoryManager { return repository.queryCanUserTask(lineId) } + fun startTask(taskId:Long,lineId:Long,taskTime:Long,lineName:String): Observable? { + return repository.startTask(taskId,lineId,taskTime,lineName) + } } \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/request/BusResetDrivingLineRequest.java b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/request/BusResetDrivingLineRequest.java index 2e5e49dbea..1cc05d60af 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/request/BusResetDrivingLineRequest.java +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/bean/request/BusResetDrivingLineRequest.java @@ -9,10 +9,10 @@ import com.mogo.och.common.module.utils.DateTimeUtil; */ public class BusResetDrivingLineRequest { public String sn; - public int taskId; //切换到的线路id + public Long taskId; //切换到的线路id public long writeVersion; //更新时间戳 - public BusResetDrivingLineRequest(int taskId) { + public BusResetDrivingLineRequest(Long taskId) { this.sn = SharedPrefsMgr.getInstance().getSn(); this.taskId = taskId; this.writeVersion = DateTimeUtil.getCurrentTimeStamp(); diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/exception/DataException.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/exception/DataException.kt new file mode 100644 index 0000000000..f1dd18e373 --- /dev/null +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/exception/DataException.kt @@ -0,0 +1,9 @@ +package com.mogo.och.weaknet.repository.net.exception + +class DataException: RuntimeException { + constructor() : super() + constructor(code:Int,message: String?) : super("${code}_${message}") + companion object{ + val startTaskErrorCode = 10010 + } +} \ No newline at end of file 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 d6caaf5034..eb5699325d 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 @@ -28,5 +28,14 @@ class BusRepository: IRepository { TODO("Not yet implemented") } + override fun startTask( + taskId: Long, + lineId: Long, + taskTime: Long, + lineName: String + ): 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 4bb781e2b5..618efd6931 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 @@ -60,7 +60,7 @@ object OrderServiceManager { @JvmStatic fun switchLine( context: Context, - taskId: Int, + taskId: Long, callback: OchCommonServiceCallback? ) { M_SERVICE.switchLine( 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 0c3d20cbb2..2d5dad6716 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 @@ -28,5 +28,14 @@ class BusSaasRepository: IRepository { TODO("Not yet implemented") } + override fun startTask( + taskId: Long, + lineId: Long, + taskTime: Long, + lineName: String + ): 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 01a7ba3709..bf85078b09 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 @@ -57,7 +57,7 @@ object OrderServiceManager { @JvmStatic fun switchLine( context: Context, - taskId: Int, + taskId: Long, callback: OchCommonServiceCallback? ) { M_SAAS_SERVICE.switchLine( diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttle/IBascApiService.java b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttle/IBascApiService.java index 74fd38375f..53e994e5d6 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttle/IBascApiService.java +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/impl/shuttle/IBascApiService.java @@ -42,7 +42,7 @@ public interface IBascApiService { */ @Headers( {"Content-Type:application/json;charset=UTF-8"} ) @POST( "/och-shuttle-cabin/api/flow/v1/driver/startTask" ) - Observable switchLine(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusResetDrivingLineRequest request); + Observable switchLine(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusResetDrivingLineRequest request); /** * 离站,通知服务器 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 8f1072c143..11592f24c4 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 @@ -59,17 +59,17 @@ object OrderServiceManager { */ @JvmStatic fun switchLine( - context: Context, - taskId: Int, - callback: OchCommonServiceCallback? - ) { - mService.switchLine( + taskId: Long, + ): Observable? { + return mService.switchLine( MoGoAiCloudClientConfig.getInstance().serviceAppId, SharedPrefsMgr.getInstance().token, BusResetDrivingLineRequest(taskId) - ) - .transformTry() - .subscribe(OchCommonSubscribeImpl(context, callback, "switchLine")) + ) .transformTry() + .flatMap(OchCommonNet("switchLine",false)) + .flatMap { + Observable.just(true) + } } /** @@ -184,7 +184,7 @@ object OrderServiceManager { SharedPrefsMgr.getInstance().token, lineId ) .transformTry() - .flatMap(OchCommonNet("queryBusLines",false)) + .flatMap(OchCommonNet("queryBusLines",false)) .flatMap { Observable.just(it.data) } 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 584ebe7177..ed4dfe40c1 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 @@ -7,10 +7,6 @@ import io.reactivex.Observable class ShuttleRepository: IRepository { - init { - - } - override fun queryCanUseLine(): Observable?> { return OrderServiceManager.queryBusLines() } @@ -19,8 +15,8 @@ class ShuttleRepository: IRepository { return OrderServiceManager.queryBusTaskByLineId(lineId) } - companion object{ - + override fun startTask(taskId: Long, lineId: Long, taskTime: Long, lineName: String): Observable? { + return OrderServiceManager.switchLine(taskId) } } \ 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 efeafaa4f5..945f7c7a54 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 @@ -17,4 +17,8 @@ class ShuttleSaasRepository: IRepository { return TaskDb.queryCanUserTask(lineId) } + override fun startTask(taskId:Long,lineId:Long,taskTime:Long,lineName:String): Observable? { + return TaskDb.startTask(taskId, lineId, lineName) + } + } \ No newline at end of file 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 0e6f85a9dc..52bd1df5f9 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 @@ -17,12 +17,13 @@ import com.mogo.och.weaknet.repository.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.switchtask.SwitchLineTaskAdapter.TaskItemClickListener +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 import kotlinx.android.synthetic.main.shuttle_weak_switch_task.view.actv_submit_task import kotlinx.android.synthetic.main.shuttle_weak_switch_task.view.busLineName -import kotlinx.android.synthetic.main.shuttle_weak_switch_task.view.cl_submit_task import kotlinx.android.synthetic.main.shuttle_weak_switch_task.view.include_empty +import kotlinx.android.synthetic.main.shuttle_weak_switch_task.view.include_error import kotlinx.android.synthetic.main.shuttle_weak_switch_task.view.loading_start_line import kotlinx.android.synthetic.main.shuttle_weak_switch_task.view.rv_switch_task import me.jessyan.autosize.utils.AutoSizeUtils @@ -84,6 +85,11 @@ class SwitchTaskView: WindowRelativeLayout, SwtichTaskModel.SwtichLineViewCallba actv_cancle_task.onClick { viewbizModel?.showSwitchLineInfo() } + tv_error_msg.onClick { + viewModel?.tasksBelongLine?.let { + viewbizModel?.loadingSwitchTask(it) + } + } } override fun onAttachedToWindow() { @@ -121,6 +127,7 @@ class SwitchTaskView: WindowRelativeLayout, SwtichTaskModel.SwtichLineViewCallba actv_submit_task.isEnabled = true rv_switch_task.visibility = VISIBLE include_empty.visibility = GONE + include_error.visibility = GONE } override fun showLoading(){ loading_start_line.visibility = VISIBLE @@ -138,11 +145,22 @@ class SwitchTaskView: WindowRelativeLayout, SwtichTaskModel.SwtichLineViewCallba viewbizModel?.showRunningTaskView() } + override fun showErrorInfo() { + tv_error_msg.text = "发生错误点击重试" + actv_submit_task.setTextColor(ResourcesUtils.getColor(R.color.bus_color_66666)) + actv_submit_task.isEnabled = false + include_error.visibility = VISIBLE + rv_switch_task.visibility = GONE + include_empty.visibility = GONE + viewbizModel?.showSwitchTaskInfo() + } + private fun showEmptyView(){ actv_submit_task.setTextColor(ResourcesUtils.getColor(R.color.bus_color_66666)) actv_submit_task.isEnabled = false rv_switch_task.visibility = GONE include_empty.visibility = VISIBLE + include_error.visibility = GONE } } 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 353f3adece..8188df7bbb 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 @@ -22,7 +22,7 @@ class SwtichTaskModel : ViewModel(), IBusLinesCallback { private var viewCallback:SwtichLineViewCallback?=null - private var tasksBelongLine: LineDataBean? = null + var tasksBelongLine: LineDataBean? = null private var subscribe: Disposable? = null @@ -46,12 +46,17 @@ class SwtichTaskModel : ViewModel(), IBusLinesCallback { fun showLoading() fun hideLoading() fun startTaskSuccess() + fun showErrorInfo() } override fun onBusLineTasks(o: MutableList?) { viewCallback?.showTaskByLineIdResult(o) } + override fun onBusLineTasksError() { + viewCallback?.showErrorInfo() + } + override fun onRefreshSuccess(currentTimeStamp: Long) { } diff --git a/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_weak_error_view.xml b/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_weak_error_view.xml new file mode 100644 index 0000000000..ee39e8646f --- /dev/null +++ b/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_weak_error_view.xml @@ -0,0 +1,32 @@ + + + + + + \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_weak_switch_task.xml b/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_weak_switch_task.xml index 9223237a19..8db4a025cd 100644 --- a/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_weak_switch_task.xml +++ b/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_weak_switch_task.xml @@ -112,4 +112,15 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toTopOf="parent" /> + + \ No newline at end of file