[6.6.0]
[fea] [通用滑动出发]
This commit is contained in:
@@ -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<Boolean>? {
|
||||
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 ->
|
||||
|
||||
@@ -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<Boolean> {
|
||||
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()
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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外屏发送
|
||||
|
||||
@@ -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<List<TaskDataBean>?>?
|
||||
|
||||
fun startTask(taskId:Long,lineId:Long,taskTime:Long,lineName:String): Observable<Boolean>?
|
||||
|
||||
fun leaveStation(seq: Int, siteId: Long, taskId: Long, lineId: Long, taskStartTime:Long): Observable<Boolean>?
|
||||
}
|
||||
@@ -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<Boolean>?{
|
||||
return repository.leaveStation(seq,siteId,taskId,lineId,taskStartTime)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -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<Boolean>? {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -122,13 +122,13 @@ object OrderServiceManager {
|
||||
taskId: Int,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
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<BaseData>?
|
||||
) {
|
||||
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
|
||||
|
||||
@@ -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<Boolean>? {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -123,13 +123,13 @@ object OrderServiceManager {
|
||||
taskId: Int,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
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<BaseData>?
|
||||
) {
|
||||
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"))
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -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<BaseData>?
|
||||
) {
|
||||
mService.leaveStation(
|
||||
): Observable<Boolean>? {
|
||||
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<BaseData>?
|
||||
) {
|
||||
mService.arriveSiteStation(
|
||||
|
||||
@@ -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<Boolean>? {
|
||||
return OrderServiceManager.leaveStation(seq,siteId,taskId,System.currentTimeMillis())
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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<List<LineDataBean>?>? {
|
||||
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<Boolean>? {
|
||||
override fun startTask(
|
||||
taskId: Long,
|
||||
lineId: Long,
|
||||
taskTime: Long,
|
||||
lineName: String
|
||||
): Observable<Boolean>? {
|
||||
return TaskDb.startTask(taskId, lineId, lineName)
|
||||
}
|
||||
|
||||
override fun leaveStation(seq: Int, siteId: Long, taskId: Long, lineId: Long, taskStartTime:Long): Observable<Boolean>? {
|
||||
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)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user