[6.6.0]
[fea] [线路和任务]
This commit is contained in:
@@ -141,4 +141,12 @@ object BizLoopManager {
|
||||
}
|
||||
}
|
||||
|
||||
fun runInIoThread(runable:Runnable){
|
||||
if(ThreadUtils.isMainThread()){
|
||||
ThreadUtils.getIoPool().submit(runable)
|
||||
}else{
|
||||
runable.run()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
package com.mogo.och.common.module.network
|
||||
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import com.mogo.och.common.module.utils.CallerLoggerUtils.flavorTag
|
||||
import com.mogo.och.weaknet.repository.db.exception.NetDataException
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.ObservableSource
|
||||
import io.reactivex.functions.Function
|
||||
|
||||
|
||||
class OchCommonNet<T:BaseData>(val apiName:String, val writeLog:Boolean) : Function<T?, ObservableSource<T?>> {
|
||||
|
||||
companion object {
|
||||
const val TAG = "CommonNet"
|
||||
}
|
||||
|
||||
private var tag:Long = System.currentTimeMillis()
|
||||
|
||||
|
||||
init {
|
||||
CallerLogger.e("$flavorTag${OchCommonSubscribeImpl.TAG}", "$apiName: 去请求()")
|
||||
if(writeLog) {
|
||||
OchChainLogManager.writeChainLogNet(false,"接口:${apiName}", "去请求_${tag}")
|
||||
}
|
||||
}
|
||||
|
||||
override fun apply(baseData: T): ObservableSource<T?> {
|
||||
if (baseData.code != 0 && baseData.code != 200) {
|
||||
onError(baseData.msg,baseData.code)
|
||||
return Observable.error(NetDataException(baseData.code,baseData.msg))
|
||||
} else {
|
||||
onSuccess(baseData)
|
||||
return Observable.just(baseData)
|
||||
}
|
||||
}
|
||||
|
||||
fun onSuccess(o: T) {
|
||||
CallerLogger.d("$flavorTag${TAG}", "$apiName: onSuccess() ${o.msg}")
|
||||
if(writeLog) {
|
||||
OchChainLogManager.writeChainLogNet(false,"接口:${apiName}", "请求成功:${o}_${tag}")
|
||||
}
|
||||
}
|
||||
|
||||
fun onError(message: String, code: Int) {
|
||||
CallerLogger.e("$flavorTag${TAG}", "$apiName: onError() code = $code; message = $message")
|
||||
if(writeLog) {
|
||||
OchChainLogManager.writeChainLogNet(
|
||||
true,
|
||||
"接口:${apiName}",
|
||||
"请求失败: onError() code = $code; message = $message\" _${tag}"
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.mogo.och.weaknet.repository.db.transform
|
||||
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.ObservableSource
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.functions.Function
|
||||
import io.reactivex.schedulers.Schedulers
|
||||
|
||||
fun <T,V> Observable<T>.transform4DataBase(transfor:Function<T, ObservableSource<V>>): Observable<V> {
|
||||
return flatMap(transfor)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
}
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.mogo.och.weaknet.repository.db.exception
|
||||
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
import com.mogo.eagle.core.utilcode.util.NetworkUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.och.common.module.R
|
||||
import com.mogo.och.common.module.utils.ResourcesUtils
|
||||
|
||||
class NetDataException: RuntimeException {
|
||||
constructor() : super()
|
||||
constructor(message: String?) : super(message)
|
||||
constructor(code:Int,message: String?):super("${code}_${message}"){
|
||||
if (!NetworkUtils.isConnected(AbsMogoApplication.getApp())) {
|
||||
ToastUtils.showShort(ResourcesUtils.getString(R.string.network_error_tip));
|
||||
} else {
|
||||
ToastUtils.showShort(ResourcesUtils.getString(R.string.request_error_tip));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -10,10 +10,10 @@ import com.mogo.eagle.core.utilcode.util.ThreadUtils
|
||||
import com.mogo.och.common.module.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.biz.provider.CommonServiceImpl
|
||||
import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics
|
||||
import com.mogo.och.weaknet.repository.db.repository.EventRepository
|
||||
import com.mogo.och.weaknet.repository.db.repository.LineRepository
|
||||
import com.mogo.och.weaknet.repository.db.repository.TaskRepository
|
||||
import com.mogo.och.weaknet.repository.db.repository.TaskSiteRepository
|
||||
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.ui.fragment.ShuttleFragment
|
||||
import com.mogo.och.weaknet.model.LineModel
|
||||
import com.mogo.och.weaknet.ui.bizswitch.SwitchBizView
|
||||
@@ -33,10 +33,10 @@ class ShuttleDriverProvider : CommonServiceImpl() {
|
||||
override fun init(context: Context) {
|
||||
d(SceneConstant.M_TAXI + TAG, "init")
|
||||
ThreadUtils.getIoPool().submit {
|
||||
LineRepository.deleteObsoleteData()
|
||||
TaskRepository.deleteObsoleteData()
|
||||
TaskSiteRepository.deleteObsoleteData()
|
||||
EventRepository.deleteObsoleteData()
|
||||
LineDb.deleteObsoleteData()
|
||||
TaskDb.deleteObsoleteData()
|
||||
TaskSiteDb.deleteObsoleteData()
|
||||
EventDb.deleteObsoleteData()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ import com.mogo.och.data.bean.BusStationBean
|
||||
import com.mogo.och.data.bean.LineInfo
|
||||
import com.mogo.och.weaknet.model.LineModel
|
||||
import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean
|
||||
import com.mogo.och.weaknet.repository.db.repository.TaskSiteRepository
|
||||
import com.mogo.och.weaknet.repository.db.repository.TaskSiteDb
|
||||
import java.lang.Boolean
|
||||
import kotlin.String
|
||||
|
||||
@@ -86,7 +86,7 @@ class BusRoutesResponse : BaseData() {
|
||||
temp.isPlayTts = it.isPlayTts
|
||||
runnintTaskAndSites.add(temp)
|
||||
}
|
||||
TaskSiteRepository.addOrUpdate(*runnintTaskAndSites.toTypedArray())
|
||||
TaskSiteDb.addOrUpdate(*runnintTaskAndSites.toTypedArray())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,10 +5,10 @@ import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean
|
||||
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
|
||||
import com.mogo.och.weaknet.repository.db.bean.SiteDataBean
|
||||
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
|
||||
import com.mogo.och.weaknet.repository.db.repository.ContraiRepository
|
||||
import com.mogo.och.weaknet.repository.db.repository.LineRepository
|
||||
import com.mogo.och.weaknet.repository.db.repository.SiteRepository
|
||||
import com.mogo.och.weaknet.repository.db.repository.TaskRepository
|
||||
import com.mogo.och.weaknet.repository.db.repository.ContraiDb
|
||||
import com.mogo.och.weaknet.repository.db.repository.LineDb
|
||||
import com.mogo.och.weaknet.repository.db.repository.SiteDb
|
||||
import com.mogo.och.weaknet.repository.db.repository.TaskDb
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -53,13 +53,13 @@ data class CarExecutableTaskResponse(val data: List<Result>?) : BaseData(){
|
||||
taskInfs.forEach {
|
||||
it.lineId = lineId
|
||||
}
|
||||
TaskRepository.addOrUpdate(taskInfs,lineId)
|
||||
TaskDb.addOrUpdate(taskInfs,lineId)
|
||||
}
|
||||
}
|
||||
|
||||
LineRepository.checkAndUpdate(lineList)
|
||||
ContraiRepository.addOrUpdate(contrailList)
|
||||
SiteRepository.addOrUpdate(siteList)
|
||||
LineDb.checkAndUpdate(lineList)
|
||||
ContraiDb.addOrUpdate(contrailList)
|
||||
SiteDb.addOrUpdate(siteList)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -12,14 +12,6 @@ class BusConst {
|
||||
|
||||
// 测试用的广播
|
||||
const val BROADCAST_TEST_BUS_CONTROL_TYPE_EXTRA_KEY = "sceneType"
|
||||
// 无状态
|
||||
const val STATION_STATUS_IDLE = 0
|
||||
// 已过站(历史站)
|
||||
const val STATION_STATUS_LEAVING = 1
|
||||
// 到站(当前站)
|
||||
const val STATION_STATUS_STOPPED = 2
|
||||
// 未到站(未到站)
|
||||
const val STATION_STATUS_ARRIVING = 3
|
||||
|
||||
// 上报心跳轮询ms
|
||||
const val LOOP_PERIOD_60S = 60 * 1000L
|
||||
@@ -49,12 +41,6 @@ class BusConst {
|
||||
//围栏到站 暂定10米
|
||||
const val ARRIVE_AT_END_STATION_DISTANCE = 10
|
||||
|
||||
// 轮询
|
||||
const val LOOP_PASSENGER_5S = 5 * 1000L
|
||||
const val LOOP_PASSENGER_2S = 2 * 1000L
|
||||
const val LOOP_PASSENGER_1S = 1 * 1000L
|
||||
const val LOOP_DELAY_500 = 500L
|
||||
|
||||
const val DELAY_10S = 10 * 1000L
|
||||
}
|
||||
}
|
||||
@@ -9,16 +9,16 @@ import com.mogo.och.common.module.network.OchCommonServiceCallback
|
||||
import com.mogo.och.weaknet.bean.request.ShuttleEventRequest
|
||||
import com.mogo.och.weaknet.bean.WaitUploadLine
|
||||
import com.mogo.och.weaknet.bean.WaitUploadTask
|
||||
import com.mogo.och.weaknet.repository.net.shuttlesaas.OrderServiceManager
|
||||
import com.mogo.och.weaknet.repository.net.impl.shuttlesaas.OrderServiceManager
|
||||
import com.mogo.och.weaknet.repository.db.bean.EventDataBean
|
||||
import com.mogo.och.weaknet.repository.db.repository.EventRepository
|
||||
import com.mogo.och.weaknet.repository.db.repository.EventDb
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.schedulers.Schedulers
|
||||
import io.reactivex.subjects.BehaviorSubject
|
||||
import java.util.concurrent.atomic.AtomicBoolean
|
||||
|
||||
object EventModel : EventRepository.EventCallback {
|
||||
object EventModel : EventDb.EventCallback {
|
||||
|
||||
|
||||
private val isUpdating by lazy { AtomicBoolean(false) }
|
||||
@@ -26,12 +26,12 @@ object EventModel : EventRepository.EventCallback {
|
||||
private val createDefault = BehaviorSubject.createDefault(isUpdating.get())
|
||||
|
||||
fun load(){
|
||||
EventRepository.eventCallback = this
|
||||
EventDb.eventCallback = this
|
||||
BizLoopManager.postDelayed(loopUpdateInfo,2*60*1000)
|
||||
}
|
||||
|
||||
fun release(){
|
||||
EventRepository.eventCallback = null
|
||||
EventDb.eventCallback = null
|
||||
}
|
||||
|
||||
private val loopUpdateInfo = Runnable { updateEvent() }
|
||||
@@ -46,7 +46,7 @@ object EventModel : EventRepository.EventCallback {
|
||||
isUpdating.set(true)
|
||||
createDefault.onNext(isUpdating.get())
|
||||
ThreadUtils.getSinglePool().submit {
|
||||
val waitUpdateEvent = EventRepository.queryWaitUpdateEvent()
|
||||
val waitUpdateEvent = EventDb.queryWaitUpdateEvent()
|
||||
if(waitUpdateEvent.isNullOrEmpty()){
|
||||
OchChainLogManager.writeChainLogDb("上报event","没有数据需要上报${Thread.currentThread().name}")
|
||||
isUpdating.set(false)
|
||||
@@ -62,10 +62,10 @@ object EventModel : EventRepository.EventCallback {
|
||||
it.updateStatus = EventDataBean.updated
|
||||
}
|
||||
OchChainLogManager.writeChainLogDb("上报event成功","$transformDb2Net ${Thread.currentThread().name}")
|
||||
EventRepository.saveUpdateSuccess(waitUpdateEvent)
|
||||
EventDb.saveUpdateSuccess(waitUpdateEvent)
|
||||
isUpdating.set(false)
|
||||
createDefault.onNext(isUpdating.get())
|
||||
val queryWaitUpdateEventCount = EventRepository.queryWaitUpdateEventCount()
|
||||
val queryWaitUpdateEventCount = EventDb.queryWaitUpdateEventCount()
|
||||
if(queryWaitUpdateEventCount!=null&&queryWaitUpdateEventCount>0){
|
||||
updateEvent()
|
||||
return
|
||||
@@ -93,14 +93,14 @@ object EventModel : EventRepository.EventCallback {
|
||||
}
|
||||
|
||||
fun haveDataWaitSyn(): Boolean {
|
||||
EventRepository.queryWaitUpdateEvent()?.let {
|
||||
EventDb.queryWaitUpdateEvent()?.let {
|
||||
return it.isNotEmpty()
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
fun queryWaitUploadInfo(): Observable<MutableList<WaitUploadLine>>? {
|
||||
return EventRepository.queryWaitUploadData()
|
||||
return EventDb.queryWaitUploadData()
|
||||
?.flatMap { waitUploadList->
|
||||
val result = mutableListOf<WaitUploadLine>()
|
||||
waitUploadList.forEach { wait->
|
||||
|
||||
@@ -15,6 +15,7 @@ import com.mogo.och.common.module.manager.autopilot.line.LineManager
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import com.mogo.och.common.module.manager.loop.BizLoopManager
|
||||
import com.mogo.och.common.module.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.network.OchCommonSubscribeImpl
|
||||
import com.mogo.och.common.module.utils.DateTimeUtil
|
||||
import com.mogo.och.common.module.utils.ResourcesUtils
|
||||
import com.mogo.och.data.bean.BusStationBean
|
||||
@@ -22,17 +23,18 @@ import com.mogo.och.shuttle.weaknet.R
|
||||
import com.mogo.och.weaknet.bean.response.BusRoutesResponse
|
||||
import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse
|
||||
import com.mogo.och.weaknet.callback.IBusLinesCallback
|
||||
import com.mogo.och.weaknet.constant.BusConst
|
||||
import com.mogo.och.weaknet.repository.net.shuttlesaas.OrderServiceManager
|
||||
import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean
|
||||
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.ContraiRepository
|
||||
import com.mogo.och.weaknet.repository.db.repository.EventRepository
|
||||
import com.mogo.och.weaknet.repository.db.repository.LineRepository
|
||||
import com.mogo.och.weaknet.repository.db.repository.TaskRepository
|
||||
import com.mogo.och.weaknet.repository.db.repository.TaskSiteRepository
|
||||
import com.mogo.och.weaknet.repository.db.repository.ContraiDb
|
||||
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.RepositoryManager
|
||||
import com.mogo.och.weaknet.repository.net.impl.shuttle.ShuttleRepository
|
||||
import com.mogo.och.weaknet.repository.net.impl.shuttlesaas.OrderServiceManager
|
||||
import io.reactivex.Observer
|
||||
import io.reactivex.disposables.Disposable
|
||||
import java.util.concurrent.ConcurrentHashMap
|
||||
@@ -50,6 +52,8 @@ object LineModel {
|
||||
|
||||
private const val TAG = "BusLineModel"
|
||||
|
||||
private val context = AbsMogoApplication.getApp()
|
||||
|
||||
// 判断接口是否变化
|
||||
private const val EXECUTABLECHANGEMD5 = "EXECUTABLECHANGEMD5"
|
||||
|
||||
@@ -174,7 +178,7 @@ object LineModel {
|
||||
*/
|
||||
@JvmStatic
|
||||
fun queryBusLines() {
|
||||
LineRepository.queryCanUseLine()
|
||||
RepositoryManager.queryCanUseLine()
|
||||
?.subscribe(object : Observer<List<LineDataBean>?> {
|
||||
override fun onSubscribe(d: Disposable) {
|
||||
d(TAG, "onSubscribe")
|
||||
@@ -203,8 +207,8 @@ object LineModel {
|
||||
*/
|
||||
@JvmStatic
|
||||
fun queryBusLineTasksById(lineId: Long) {
|
||||
TaskRepository.queryCanUserTask(lineId)
|
||||
?.subscribe(object : Observer<List<TaskDataBean?>?> {
|
||||
RepositoryManager.queryCanUserTask(lineId)
|
||||
.subscribe(object : Observer<List<TaskDataBean?>?> {
|
||||
override fun onSubscribe(d: Disposable) {
|
||||
d(TAG, "onSubscribe")
|
||||
}
|
||||
@@ -233,13 +237,13 @@ object LineModel {
|
||||
fun commitSwitchLineId(task: TaskDataBean, line: LineDataBean) {
|
||||
line.getLineIdAndName { lineId, lineName ->
|
||||
task.getLineIdAndName { taskId, taskTime ->
|
||||
TaskRepository.startTask(
|
||||
TaskDb.startTask(
|
||||
taskId,
|
||||
lineId,
|
||||
lineName,
|
||||
object : TaskRepository.TaskStatusCallback {
|
||||
object : TaskDb.TaskStatusCallback {
|
||||
override fun startSuccess() {
|
||||
EventRepository.saveEventTaskStart(taskId,lineId,taskTime,lineName)
|
||||
EventDb.saveEventTaskStart(taskId,lineId,taskTime,lineName)
|
||||
OrderModel.queryBusRoutes()
|
||||
mBusLinesCallbackMap.forEach {
|
||||
it.value.onChangeLineIdSuccess()
|
||||
@@ -263,7 +267,7 @@ object LineModel {
|
||||
// 2、本地没有从远端恢复任务
|
||||
fun loadStartedTaskAndDefaultInfo() {
|
||||
// 获取正在运行的任务
|
||||
val runningTaskInfo = TaskRepository.queryRunningTask()
|
||||
val runningTaskInfo = TaskDb.queryRunningTask()
|
||||
|
||||
if (runningTaskInfo.isNullOrEmpty()) {
|
||||
// 本地没有进行中的任务
|
||||
@@ -279,7 +283,7 @@ object LineModel {
|
||||
// 恢复站点信息
|
||||
currentTask?.taskId?.let {
|
||||
// 获取正在进行中的具体信息
|
||||
val runnintTaskAndSites = TaskSiteRepository.queryRunningTask(it)
|
||||
val runnintTaskAndSites = TaskSiteDb.queryRunningTask(it)
|
||||
if(runnintTaskAndSites.isNullOrEmpty()||runnintTaskAndSites.size<2){
|
||||
OchChainLogManager.writeChainLogDb("加载任务", "异常情况:有任务:${runningTaskInfo} runningTask 表格没有对应的数据:${runnintTaskAndSites}")
|
||||
return
|
||||
@@ -298,7 +302,7 @@ object LineModel {
|
||||
}
|
||||
// 设置自动驾驶信息
|
||||
currentTask?.lineId?.let {
|
||||
val contraiInfoTemp = ContraiRepository.queryAutopilotInfoByLineid(it)
|
||||
val contraiInfoTemp = ContraiDb.queryAutopilotInfoByLineid(it)
|
||||
ContrailDataBean.save2Common(contraiInfoTemp)
|
||||
}
|
||||
mBusLinesCallbackMap.forEach { callback->
|
||||
@@ -314,14 +318,14 @@ object LineModel {
|
||||
}
|
||||
val tempList = sorted.toMutableList()
|
||||
val possible = tempList.removeFirst()
|
||||
val queryLastData = EventRepository.queryLastData()
|
||||
val queryLastData = EventDb.queryLastData()
|
||||
if(queryLastData!=null){
|
||||
if(possible.taskId==queryLastData.taskId){
|
||||
// 最后一个事件和最新的task一直 恢复数据
|
||||
tempList.forEach {
|
||||
it.status = TaskDataBean.used
|
||||
}
|
||||
TaskRepository.addOrUpdate(*tempList.toTypedArray())
|
||||
TaskDb.addOrUpdate(*tempList.toTypedArray())
|
||||
loadStartedTaskAndDefaultInfo()
|
||||
OchChainLogManager.writeChainLogDb("加载任务", "异常情况:多个正在进行的任务 task:${runningTaskInfo} event:${queryLastData.taskId}有一个和event表对应使用相同的一个 另一个置为已使用")
|
||||
return
|
||||
@@ -332,7 +336,7 @@ object LineModel {
|
||||
it.status = TaskDataBean.used
|
||||
}
|
||||
OchChainLogManager.writeChainLogDb("加载任务", "异常情况:多个正在进行的任务 task:${runningTaskInfo} 全部置为已使用 从后台加载正在使用的任务")
|
||||
TaskRepository.addOrUpdate(*runningTaskInfo.toTypedArray())
|
||||
TaskDb.addOrUpdate(*runningTaskInfo.toTypedArray())
|
||||
loadServerRuningTask()
|
||||
}
|
||||
|
||||
@@ -347,19 +351,19 @@ object LineModel {
|
||||
}
|
||||
response?.data?.let {
|
||||
if (!it.sites.isNullOrEmpty()&&it.sites.size>1) {
|
||||
val queryTaskById = TaskRepository.queryTaskById(it.taskId.toLong())
|
||||
val queryTaskById = TaskDb.queryTaskById(it.taskId.toLong())
|
||||
if(queryTaskById==null||queryTaskById.status!=TaskDataBean.used) {
|
||||
OchChainLogManager.writeChainLogDb(
|
||||
"业务数据",
|
||||
"本地没有正在运行的数据,服务器端有${it}"
|
||||
)
|
||||
LineRepository.saveRunningInfo(
|
||||
LineDb.saveRunningInfo(
|
||||
it.lineId,
|
||||
it.name,
|
||||
it.sites.last().name
|
||||
)
|
||||
TaskRepository.saveRunningInfo(it.lineId, it.taskId, it.taskTime)
|
||||
ContraiRepository.saveRunningInfo(
|
||||
TaskDb.saveRunningInfo(it.lineId, it.taskId, it.taskTime)
|
||||
ContraiDb.saveRunningInfo(
|
||||
it.lineId,
|
||||
it.csvFileMd5,
|
||||
it.csvFileUrl,
|
||||
@@ -411,14 +415,14 @@ object LineModel {
|
||||
if (task.taskId!=null&&task.lineId!=null) {
|
||||
it.drivingStatus = TaskSiteDataBean.drivingStatusCurrent
|
||||
it.isLeaving = true
|
||||
TaskSiteRepository.updateLeave(task.taskId!!, it.siteId.toLong(), 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 ->
|
||||
EventRepository.saveEventTaskLeaveSite(
|
||||
EventDb.saveEventTaskLeaveSite(
|
||||
task.taskId!!,
|
||||
task.lineId!!,
|
||||
it.siteId.toLong(),
|
||||
@@ -453,10 +457,10 @@ object LineModel {
|
||||
if(currentTask!=null&& currentTask!!.taskId!=null){
|
||||
currentTask?.let { task->
|
||||
if (task.taskId!=null&&task.lineId!=null) {
|
||||
TaskSiteRepository.updateDrivingStatusAndLeave(task.taskId!!,start.siteId.toLong(),TaskSiteDataBean.drivingStatusPassed,false)
|
||||
TaskSiteDb.updateDrivingStatusAndLeave(task.taskId!!,start.siteId.toLong(),TaskSiteDataBean.drivingStatusPassed,false)
|
||||
// 设置到站任务
|
||||
LineManager.getLineInfo { lineInfo ->
|
||||
EventRepository.saveEventTaskArriveSite(task.taskId!!,task.lineId!!,start.siteId.toLong(),start.seq,task.taskStartTime,lineInfo.lineName)
|
||||
EventDb.saveEventTaskArriveSite(task.taskId!!,task.lineId!!,start.siteId.toLong(),start.seq,task.taskStartTime,lineInfo.lineName)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -467,7 +471,7 @@ object LineModel {
|
||||
end.drivingStatus = TaskSiteDataBean.drivingStatusCurrent
|
||||
if(currentTask!=null&& currentTask!!.taskId!=null){
|
||||
currentTask?.taskId?.let { taskId->
|
||||
TaskSiteRepository.updateDrivingStatus(taskId,end.siteId.toLong(),TaskSiteDataBean.drivingStatusCurrent)
|
||||
TaskSiteDb.updateDrivingStatus(taskId,end.siteId.toLong(),TaskSiteDataBean.drivingStatusCurrent)
|
||||
}
|
||||
}else{
|
||||
OchChainLogManager.writeChainLog("到站_数据更新_error","task:${currentTask}__taskId:${currentTask?.taskId}")
|
||||
@@ -510,9 +514,9 @@ object LineModel {
|
||||
fun endTask() {
|
||||
currentTask?.let {task->
|
||||
if (task.taskId!=null&&task.lineId!=null) {
|
||||
TaskRepository.endTask(task.taskId!!)
|
||||
TaskDb.endTask(task.taskId!!)
|
||||
LineManager.getLineInfo { lineInfo ->
|
||||
EventRepository.saveEventTaskEnd(task.taskId!!,task.lineId!!,task.taskStartTime,lineInfo.lineName)
|
||||
EventDb.saveEventTaskEnd(task.taskId!!,task.lineId!!,task.taskStartTime,lineInfo.lineName)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -531,7 +535,7 @@ object LineModel {
|
||||
|
||||
fun startTaskMessage():Boolean {
|
||||
if (!stationList.isNullOrEmpty()) {
|
||||
return startStationIndex == 0 && stationList!!.first().drivingStatus == BusConst.STATION_STATUS_STOPPED && !stationList!!.first().isLeaving
|
||||
return startStationIndex == 0 && stationList!!.first().drivingStatus == TaskSiteDataBean.drivingStatusCurrent && !stationList!!.first().isLeaving
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
@@ -63,12 +63,17 @@ object ThirdDeviceData {
|
||||
override fun onLanMsgReceived(taskDetailsMsg: TaskDetailsMsg?) = sendTaskDetailsToClients()
|
||||
}
|
||||
|
||||
private var delayedTts:Runnable?=null
|
||||
|
||||
// 离站
|
||||
fun leaveStation() {
|
||||
LineManager.getStationsWithLine { start, end, lineInfo ->
|
||||
UiThreadHandler.postDelayed({ //延迟10s播报
|
||||
ShuttleVoiceManager.leaveStationBus(end.name, end.nameKr)
|
||||
}, BusConst.DELAY_10S)
|
||||
delayedTts = object :Runnable{
|
||||
override fun run() {
|
||||
ShuttleVoiceManager.leaveStationBus(end.name, end.nameKr)
|
||||
}
|
||||
}
|
||||
UiThreadHandler.postDelayed(delayedTts, BusConst.DELAY_10S)
|
||||
//给bus外屏发送
|
||||
LedScreenManager.sendTripInfo2Led(
|
||||
LedScreenManager.LEAVE_STATION,
|
||||
@@ -82,6 +87,7 @@ object ThirdDeviceData {
|
||||
|
||||
//到站
|
||||
fun arriveStation() {
|
||||
UiThreadHandler.removeCallbacks(delayedTts)
|
||||
LineManager.getStationsWithLine { start, end, lineInfo ->
|
||||
ShuttleVoiceManager.arrivedStationBus(end.name, end.nameKr)
|
||||
//给bus外屏发送
|
||||
@@ -97,6 +103,7 @@ object ThirdDeviceData {
|
||||
|
||||
//结束任务
|
||||
fun endTask() {
|
||||
UiThreadHandler.removeCallbacks(delayedTts)
|
||||
LineManager.getLineInfo {lineInfo ->
|
||||
LedScreenManager.sendTripInfo2Led(
|
||||
LedScreenManager.END_TRIP,
|
||||
|
||||
@@ -24,7 +24,7 @@ import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffMsg
|
||||
import com.mogo.och.common.module.network.OchCommonServiceCallback
|
||||
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse
|
||||
import com.mogo.och.weaknet.bean.WriteOffPassenger
|
||||
import com.mogo.och.weaknet.repository.net.shuttlesaas.OrderServiceManager
|
||||
import com.mogo.och.weaknet.repository.net.impl.shuttlesaas.OrderServiceManager
|
||||
import com.mogo.och.weaknet.util.ShuttleVoiceManager
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.ObservableEmitter
|
||||
|
||||
@@ -21,6 +21,7 @@ data class LineDataBean(
|
||||
* 线路名称
|
||||
*/
|
||||
@ColumnInfo(name = "line_name", typeAffinity = ColumnInfo.TEXT)
|
||||
@SerializedName("name")
|
||||
var lineName: String? = null,
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
package com.mogo.och.weaknet.repository.db.repository
|
||||
|
||||
import com.mogo.eagle.core.network.utils.digest.DigestUtils
|
||||
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.ContrailDataBean
|
||||
import com.mogo.och.weaknet.repository.db.dao.ContrailDataDao
|
||||
|
||||
object ContraiRepository {
|
||||
object ContraiDb {
|
||||
|
||||
private var contrailDao: ContrailDataDao?=null
|
||||
|
||||
@@ -32,7 +33,7 @@ object ContraiRepository {
|
||||
}
|
||||
}
|
||||
}
|
||||
DbThreadUtils.runInIoThread(runnable)
|
||||
BizLoopManager.runInIoThread(runnable)
|
||||
}
|
||||
|
||||
fun deleteByLineId(lineId: Long) {
|
||||
@@ -1,13 +0,0 @@
|
||||
package com.mogo.och.weaknet.repository.db.repository
|
||||
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils
|
||||
|
||||
object DbThreadUtils {
|
||||
fun runInIoThread(runable:Runnable){
|
||||
if(ThreadUtils.isMainThread()){
|
||||
ThreadUtils.getIoPool().submit(runable)
|
||||
}else{
|
||||
runable.run()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@ package com.mogo.och.weaknet.repository.db.repository
|
||||
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import com.mogo.och.common.module.manager.loop.BizLoopManager
|
||||
import com.mogo.och.common.module.utils.DateTimeUtil
|
||||
import com.mogo.och.weaknet.repository.db.MyDataBase
|
||||
import com.mogo.och.weaknet.repository.db.bean.EventDataBean
|
||||
@@ -9,7 +10,7 @@ import com.mogo.och.weaknet.repository.db.dao.EventDataDao
|
||||
import io.reactivex.Observable
|
||||
|
||||
|
||||
object EventRepository {
|
||||
object EventDb {
|
||||
|
||||
private var eventDataDao: EventDataDao? = null
|
||||
|
||||
@@ -31,7 +32,7 @@ object EventRepository {
|
||||
event.driverId = LoginStatusManager.getLoginInfo()?.driverId?:-1
|
||||
event.siteId = 0L
|
||||
event.seq = 0
|
||||
DbThreadUtils.runInIoThread {
|
||||
BizLoopManager.runInIoThread {
|
||||
eventDataDao?.insert(event)
|
||||
eventCallback?.notifySyn()
|
||||
}
|
||||
@@ -56,7 +57,7 @@ object EventRepository {
|
||||
event.siteId = siteId
|
||||
event.driverId = LoginStatusManager.getLoginInfo()?.driverId?:-1
|
||||
event.seq = seq
|
||||
DbThreadUtils.runInIoThread {
|
||||
BizLoopManager.runInIoThread {
|
||||
eventDataDao?.insert(event)
|
||||
eventCallback?.notifySyn()
|
||||
}
|
||||
@@ -81,7 +82,7 @@ object EventRepository {
|
||||
event.driverId = LoginStatusManager.getLoginInfo()?.driverId?:-1L
|
||||
event.siteId = siteId
|
||||
event.seq = seq
|
||||
DbThreadUtils.runInIoThread {
|
||||
BizLoopManager.runInIoThread {
|
||||
eventDataDao?.insert(event)
|
||||
eventCallback?.notifySyn()
|
||||
}
|
||||
@@ -99,7 +100,7 @@ object EventRepository {
|
||||
event.driverId = LoginStatusManager.getLoginInfo()?.driverId?:-1L
|
||||
event.siteId = 0L
|
||||
event.seq = 0
|
||||
DbThreadUtils.runInIoThread {
|
||||
BizLoopManager.runInIoThread {
|
||||
eventDataDao?.insert(event)
|
||||
eventCallback?.notifySyn()
|
||||
}
|
||||
@@ -1,12 +1,13 @@
|
||||
package com.mogo.och.weaknet.repository.db.repository
|
||||
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
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.LineDataBean
|
||||
import com.mogo.och.weaknet.repository.db.dao.LineDataDao
|
||||
import io.reactivex.Observable
|
||||
|
||||
object LineRepository {
|
||||
object LineDb {
|
||||
|
||||
private var lineDao: LineDataDao?=null
|
||||
|
||||
@@ -54,14 +55,14 @@ object LineRepository {
|
||||
minusLine.lineId?.let { lineId->
|
||||
// 删除线路对应的站点
|
||||
|
||||
SiteRepository.deleteByLineId(lineId)
|
||||
val runingTask = TaskRepository.queryRunningTaskByLineId(lineId)
|
||||
SiteDb.deleteByLineId(lineId)
|
||||
val runingTask = TaskDb.queryRunningTaskByLineId(lineId)
|
||||
if(runingTask.isNullOrEmpty()){
|
||||
// 删除线路对应的自驾信息
|
||||
|
||||
ContraiRepository.deleteByLineId(lineId)
|
||||
ContraiDb.deleteByLineId(lineId)
|
||||
|
||||
TaskRepository.deleteByLineId(lineId)
|
||||
TaskDb.deleteByLineId(lineId)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -70,7 +71,7 @@ object LineRepository {
|
||||
}
|
||||
}
|
||||
|
||||
DbThreadUtils.runInIoThread(runable)
|
||||
BizLoopManager.runInIoThread(runable)
|
||||
}
|
||||
|
||||
fun deleteObsoleteData(){
|
||||
@@ -1,11 +1,12 @@
|
||||
package com.mogo.och.weaknet.repository.db.repository
|
||||
|
||||
import com.mogo.eagle.core.network.utils.digest.DigestUtils
|
||||
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.SiteDataBean
|
||||
import com.mogo.och.weaknet.repository.db.dao.SiteDataDao
|
||||
|
||||
object SiteRepository {
|
||||
object SiteDb {
|
||||
|
||||
private var siteDataDao: SiteDataDao? = null
|
||||
|
||||
@@ -32,7 +33,7 @@ object SiteRepository {
|
||||
}
|
||||
}
|
||||
}
|
||||
DbThreadUtils.runInIoThread(runnable)
|
||||
BizLoopManager.runInIoThread(runnable)
|
||||
}
|
||||
|
||||
fun deleteByLineId(lineId: Long) {
|
||||
@@ -12,7 +12,7 @@ import com.mogo.och.weaknet.repository.db.dao.TaskDataDao
|
||||
import com.mogo.och.weaknet.repository.db.exception.DataException
|
||||
import io.reactivex.Observable
|
||||
|
||||
object TaskRepository {
|
||||
object TaskDb {
|
||||
|
||||
private var taskDataDao: TaskDataDao? = null
|
||||
|
||||
@@ -53,7 +53,7 @@ object TaskRepository {
|
||||
}
|
||||
}
|
||||
}
|
||||
DbThreadUtils.runInIoThread(runable)
|
||||
BizLoopManager.runInIoThread(runable)
|
||||
|
||||
}
|
||||
|
||||
@@ -85,7 +85,7 @@ object TaskRepository {
|
||||
}
|
||||
CallerLogger.d(TAG,"更新任务状态用时:${System.currentTimeMillis()-startTime}")
|
||||
startTime = System.currentTimeMillis()
|
||||
updateCount = TaskSiteRepository.startTask(taskId, lineId, lineName)
|
||||
updateCount = TaskSiteDb.startTask(taskId, lineId, lineName)
|
||||
OchChainLogManager.writeChainLogDb("开始任务", "把正在使用的数据更新到RunningTask表格一共${updateCount}行数据")
|
||||
CallerLogger.d(TAG,"插入正在运行的线路用时:${System.currentTimeMillis()-startTime}")
|
||||
} catch (e: Exception) {
|
||||
@@ -135,7 +135,7 @@ object TaskRepository {
|
||||
|
||||
|
||||
fun endTask(taskId: Long) {
|
||||
DbThreadUtils.runInIoThread{
|
||||
BizLoopManager.runInIoThread{
|
||||
taskDataDao?.endTask(taskId)
|
||||
}
|
||||
}
|
||||
@@ -3,12 +3,14 @@ package com.mogo.och.weaknet.repository.db.repository
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.util.TAG
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
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
|
||||
|
||||
object TaskSiteRepository {
|
||||
object TaskSiteDb {
|
||||
|
||||
private var taskSiteDataDao: TaskSiteDataDao? = null
|
||||
|
||||
@@ -24,7 +26,7 @@ object TaskSiteRepository {
|
||||
fun startTask(taskId: Long, linId: Long,lineName:String):Int? {
|
||||
// 获取线路的站点
|
||||
var startTime = System.currentTimeMillis()
|
||||
val querySites = SiteRepository.querySiteByLineId(linId)
|
||||
val querySites = SiteDb.querySiteByLineId(linId)
|
||||
if(querySites.isNullOrEmpty()){
|
||||
throw DataException("没有站点数据")
|
||||
}
|
||||
@@ -52,19 +54,19 @@ object TaskSiteRepository {
|
||||
|
||||
// 滑动出发
|
||||
fun updateLeave(taskId: Long, siteId: Long, leave:Boolean) {
|
||||
DbThreadUtils.runInIoThread{
|
||||
BizLoopManager.runInIoThread{
|
||||
taskSiteDataDao?.updateLeave(taskId,siteId,if(leave) 1 else 0)
|
||||
}
|
||||
}
|
||||
|
||||
fun updateDrivingStatus(taskId: Long, siteId: Long, drivingStatus: Int){
|
||||
DbThreadUtils.runInIoThread{
|
||||
BizLoopManager.runInIoThread{
|
||||
taskSiteDataDao?.updateDrivingStatus(taskId,siteId,drivingStatus)
|
||||
}
|
||||
}
|
||||
|
||||
fun updateDrivingStatusAndLeave(taskId: Long, siteId: Long, drivingStatus: Int, leave: Boolean){
|
||||
DbThreadUtils.runInIoThread{
|
||||
BizLoopManager.runInIoThread{
|
||||
taskSiteDataDao?.updateDrivingStatusANdLeave(taskId,siteId,drivingStatus,if(leave) 1 else 0)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.mogo.och.weaknet.repository.net
|
||||
|
||||
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
|
||||
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
|
||||
import io.reactivex.Observable
|
||||
|
||||
interface IRepository {
|
||||
fun queryCanUseLine(): Observable<List<LineDataBean>?>?
|
||||
|
||||
fun queryCanUserTask(lineId:Long): Observable<List<TaskDataBean>?>?
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
package com.mogo.och.weaknet.repository.net
|
||||
|
||||
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.och.weaknet.repository.db.bean.LineDataBean
|
||||
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
|
||||
import com.mogo.och.weaknet.repository.net.impl.bus.BusRepository
|
||||
import com.mogo.och.weaknet.repository.net.impl.bussaas.BusSaasRepository
|
||||
import com.mogo.och.weaknet.repository.net.impl.shuttle.OrderServiceManager
|
||||
import com.mogo.och.weaknet.repository.net.impl.shuttle.ShuttleRepository
|
||||
import com.mogo.och.weaknet.repository.net.impl.shuttlesaas.ShuttleSaasRepository
|
||||
import io.reactivex.Observable
|
||||
|
||||
object RepositoryManager {
|
||||
|
||||
|
||||
private lateinit var repository:IRepository
|
||||
|
||||
init {
|
||||
if(ProjectUtils.isSaas()){
|
||||
if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) {
|
||||
repository = ShuttleSaasRepository()
|
||||
}else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) {
|
||||
repository = BusSaasRepository()
|
||||
}
|
||||
}else {
|
||||
if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) {
|
||||
repository = ShuttleRepository()
|
||||
}else if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) {
|
||||
repository = BusRepository()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun queryCanUseLine() : Observable<List<LineDataBean>?>? {
|
||||
return repository.queryCanUseLine()
|
||||
}
|
||||
|
||||
fun queryCanUserTask(lineId: Long): Observable<List<TaskDataBean>?>? {
|
||||
return repository.queryCanUserTask(lineId)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.mogo.och.weaknet.repository.net.bean.request;
|
||||
|
||||
import com.mogo.commons.storage.SharedPrefsMgr;
|
||||
import com.mogo.och.common.module.utils.DateTimeUtil;
|
||||
|
||||
/**
|
||||
* 中止/结束任务请求
|
||||
*/
|
||||
public class BusCloseTaskRequest {
|
||||
|
||||
private String sn;
|
||||
private int taskId;
|
||||
private long writeVersion;
|
||||
public BusCloseTaskRequest(int taskId) {
|
||||
this.sn = SharedPrefsMgr.getInstance().getSn();
|
||||
this.taskId = taskId;
|
||||
this.writeVersion = DateTimeUtil.getCurrentTimeStamp();
|
||||
}
|
||||
|
||||
public String getSn() {
|
||||
return sn;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.mogo.och.weaknet.repository.net.bean.request;
|
||||
|
||||
import com.mogo.commons.storage.SharedPrefsMgr;
|
||||
import com.mogo.och.common.module.utils.DateTimeUtil;
|
||||
|
||||
/**
|
||||
* @author: wangmingjun
|
||||
* @date: 2021/10/18
|
||||
*/
|
||||
public class BusResetDrivingLineRequest {
|
||||
public String sn;
|
||||
public int taskId; //切换到的线路id
|
||||
public long writeVersion; //更新时间戳
|
||||
|
||||
public BusResetDrivingLineRequest(int taskId) {
|
||||
this.sn = SharedPrefsMgr.getInstance().getSn();
|
||||
this.taskId = taskId;
|
||||
this.writeVersion = DateTimeUtil.getCurrentTimeStamp();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.mogo.och.weaknet.repository.net.bean.request
|
||||
|
||||
/**
|
||||
* Created by pangfan on 2021/8/19
|
||||
*
|
||||
* 订单状态更新请求数据结构
|
||||
*/
|
||||
class BusRoutePlanningUpdateReqBean(
|
||||
var sn: String, var lineId: Int, var startSiteId: Int,
|
||||
var endSiteId: Int, var points: List<Result>
|
||||
) {
|
||||
data class Result(
|
||||
var latitude: Double? = null,
|
||||
var longitude: Double? = null
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.mogo.och.weaknet.repository.net.bean.request;
|
||||
|
||||
import com.mogo.commons.storage.SharedPrefsMgr;
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2021/3/22
|
||||
*
|
||||
* 小巴车运营状态请求参数
|
||||
*/
|
||||
public class BusUpdateSiteStatusRequest {
|
||||
|
||||
public String sn;
|
||||
public int taskId;
|
||||
public int seq;//站点序号
|
||||
public int siteId;//站点id
|
||||
public long writeVersion; //更新时间戳
|
||||
|
||||
public BusUpdateSiteStatusRequest(int taskId, int siteId, int seq, long writeVersion) {
|
||||
this.sn = SharedPrefsMgr.getInstance().getSn();
|
||||
this.seq = seq;
|
||||
this.siteId = siteId;
|
||||
this.taskId = taskId;
|
||||
this.writeVersion = writeVersion;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.mogo.och.weaknet.repository.net.bean.request
|
||||
|
||||
import com.mogo.och.weaknet.constant.BusConst
|
||||
import java.util.UUID
|
||||
|
||||
/**
|
||||
* Created on 2021/9/16
|
||||
*
|
||||
* 上传车机心跳信息请求数据
|
||||
*/
|
||||
class CarHeartbeatReqBean(
|
||||
var sn: String, //经度
|
||||
var lon: Double, //纬度
|
||||
var lat: Double,
|
||||
var msgId: String = UUID.randomUUID().toString(), //心跳信息唯一标识
|
||||
var interval: Int = (BusConst.LOOP_PERIOD_60S / 1000).toInt() //上报间隔,单位秒,非必传,默认60秒
|
||||
)
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.mogo.och.weaknet.repository.net.bean.response;
|
||||
|
||||
import com.mogo.eagle.core.data.BaseData;
|
||||
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author: wangmingjun
|
||||
* @date: 2022/2/9
|
||||
*/
|
||||
public class BusQueryLineTaskResponse extends BaseData {
|
||||
public List<TaskDataBean> data;
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
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 java.util.List;
|
||||
|
||||
/**
|
||||
* @author: wangmingjun
|
||||
* @date: 2022/2/9
|
||||
*/
|
||||
public class BusQueryLinesResponse extends BaseData {
|
||||
public List<LineDataBean> data;
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.mogo.och.weaknet.repository.net.impl.bus
|
||||
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
import com.mogo.eagle.core.utilcode.util.NetworkUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.och.common.module.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.utils.ResourcesUtils
|
||||
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.weaknet.repository.net.IRepository
|
||||
import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLinesResponse
|
||||
import io.reactivex.Observable
|
||||
|
||||
class BusRepository: IRepository {
|
||||
|
||||
private val content = AbsMogoApplication.getApp()
|
||||
|
||||
init {
|
||||
|
||||
}
|
||||
|
||||
override fun queryCanUseLine(): Observable<List<LineDataBean>?>? {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun queryCanUserTask(lineId: Long): Observable<List<TaskDataBean>?>? {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,166 @@
|
||||
package com.mogo.och.weaknet.repository.net.impl.bus
|
||||
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest
|
||||
import com.mogo.och.weaknet.bean.response.BusRoutesResponse
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.BusCloseTaskRequest
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.BusResetDrivingLineRequest
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.BusRoutePlanningUpdateReqBean
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.BusUpdateSiteStatusRequest
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.CarHeartbeatReqBean
|
||||
import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLineTaskResponse
|
||||
import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLinesResponse
|
||||
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
|
||||
*/
|
||||
interface IBascApiService {
|
||||
/**
|
||||
* 根据车机坐标获取所在区域全部站点信息
|
||||
*
|
||||
* @param request 请求参数
|
||||
* @return 接口返回数据
|
||||
*/
|
||||
@Headers("Content-Type:application/json;charset=UTF-8")
|
||||
@POST("/autopilot-car-hailing/line/v2/driver/bus/lineDataWithDriver/query")
|
||||
fun queryBusRoutes(
|
||||
@Header("appId") appId: String?,
|
||||
@Header("ticket") ticket: String?,
|
||||
@Body request: BusQueryLineStationsRequest?
|
||||
): Observable<BusRoutesResponse>
|
||||
|
||||
/**
|
||||
* @param request 请求参数{"destLine":1,"sn":"F803EB2046PZD00229"} 这个接口是重置bus线路的, 不是重置线路中站点的
|
||||
* @return 返回值是重置后的车站列表
|
||||
* 开始路线
|
||||
*/
|
||||
@Headers("Content-Type:application/json;charset=UTF-8")
|
||||
@POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/startTask")
|
||||
fun switchLine(
|
||||
@Header("appId") appId: String?,
|
||||
@Header("ticket") ticket: String?,
|
||||
@Body request: BusResetDrivingLineRequest?
|
||||
): Observable<BusRoutesResponse>
|
||||
|
||||
/**
|
||||
* 离站,通知服务器
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@Headers("Content-Type:application/json;charset=UTF-8")
|
||||
@POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/leave")
|
||||
fun leaveStation(
|
||||
@Header("appId") appId: String?,
|
||||
@Header("ticket") ticket: String?,
|
||||
@Body request: BusUpdateSiteStatusRequest?
|
||||
): Observable<BaseData>
|
||||
|
||||
/**
|
||||
* 到站 更新到站信息
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@Headers("Content-type:application/json;charset=UTF-8")
|
||||
@POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/arrive")
|
||||
fun arriveSiteStation(
|
||||
@Header("appId") appId: String?,
|
||||
@Header("ticket") ticket: String?,
|
||||
@Body request: BusUpdateSiteStatusRequest?
|
||||
): Observable<BaseData>
|
||||
|
||||
|
||||
/**
|
||||
* 车机端上传心跳数据(只在出车状态时上传):包含高德坐标系经纬度
|
||||
* @param data
|
||||
* @return
|
||||
*/
|
||||
@Headers("Content-type:application/json;charset=UTF-8")
|
||||
@POST("/autopilot-car-hailing/location/v2/driver/bus/heartbeat")
|
||||
fun runCarHeartbeat(
|
||||
@Header("appId") appId: String?,
|
||||
@Header("ticket") ticket: String?,
|
||||
@Body data: CarHeartbeatReqBean?
|
||||
): Observable<BaseData>
|
||||
|
||||
/**
|
||||
* 查询车辆配置的所有路线
|
||||
* @param appId
|
||||
* @param ticket
|
||||
* @param sn
|
||||
* @return
|
||||
*/
|
||||
@GET("/autopilot-car-hailing/line/v2/driver/bus/bindLine/query")
|
||||
fun queryBusLines(
|
||||
@Header("appId") appId: String?,
|
||||
@Header("ticket") ticket: String?,
|
||||
@Query("sn") sn: String?
|
||||
): Observable<BusQueryLinesResponse>
|
||||
|
||||
/**
|
||||
* 查询路线当天的任务
|
||||
* @param appId
|
||||
* @param ticket
|
||||
* @param lineId 线路id
|
||||
* @return
|
||||
*/
|
||||
@GET("/autopilot-car-hailing/line/v2/driver/bus/task/query")
|
||||
fun queryBusTaskByLineId(@Header("appId") appId: String?, @Header("ticket") ticket: String?, @Query("lineId") lineId: String?): Observable<BusQueryLineTaskResponse>
|
||||
|
||||
|
||||
/**
|
||||
* 上传轨迹信息
|
||||
* @param appId
|
||||
* @param ticket
|
||||
* @param data
|
||||
* @return
|
||||
*/
|
||||
@Headers("Content-type:application/json;charset=UTF-8")
|
||||
@POST("/autopilot-car-hailing/location/v2/driver/bus/saveLineCoordinate")
|
||||
fun updateOrderRoute(
|
||||
@Header("appId") appId: String?,
|
||||
@Header("ticket") ticket: String?,
|
||||
@Body data: BusRoutePlanningUpdateReqBean?
|
||||
): Observable<BaseData>
|
||||
|
||||
/**
|
||||
* 中止任务
|
||||
* @param appId
|
||||
* @param ticket
|
||||
* @param data
|
||||
* @return
|
||||
*/
|
||||
@POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/abortTask")
|
||||
fun abortTask(
|
||||
@Header("appId") appId: String?,
|
||||
@Header("ticket") ticket: String?,
|
||||
@Body data: BusCloseTaskRequest?
|
||||
): Observable<BaseData>
|
||||
|
||||
/**
|
||||
* 任务正常跑完结束
|
||||
* @param appId
|
||||
* @param ticket
|
||||
* @param data
|
||||
* @return
|
||||
*/
|
||||
@Headers("Content-type:application/json;charset=UTF-8")
|
||||
@POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/endTask")
|
||||
fun endTask(
|
||||
@Header("appId") appId: String?,
|
||||
@Header("ticket") ticket: String?,
|
||||
@Body data: BusCloseTaskRequest?
|
||||
): Observable<BaseData>
|
||||
}
|
||||
|
||||
@@ -0,0 +1,236 @@
|
||||
package com.mogo.och.weaknet.repository.net.impl.bus
|
||||
|
||||
import android.content.Context
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
|
||||
import com.mogo.commons.debug.DebugConfig
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.eagle.core.network.MoGoRetrofitFactory
|
||||
import com.mogo.commons.storage.SharedPrefsMgr
|
||||
import com.mogo.eagle.core.data.map.MogoLocation
|
||||
import com.mogo.och.common.module.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.network.OchCommonSubscribeImpl
|
||||
import com.mogo.och.common.module.network.interceptor.transformTry
|
||||
import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest
|
||||
import com.mogo.och.weaknet.bean.response.BusRoutesResponse
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.BusCloseTaskRequest
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.BusResetDrivingLineRequest
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.BusRoutePlanningUpdateReqBean
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.BusUpdateSiteStatusRequest
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.CarHeartbeatReqBean
|
||||
import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLineTaskResponse
|
||||
import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLinesResponse
|
||||
|
||||
/**
|
||||
* @author: wangmingjun
|
||||
* @date: 2021/10/20
|
||||
*/
|
||||
object OrderServiceManager {
|
||||
|
||||
private val M_SERVICE: IBascApiService =
|
||||
MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create(
|
||||
IBascApiService::class.java
|
||||
)
|
||||
|
||||
|
||||
/**
|
||||
* 查询小巴车当前任务
|
||||
* @param context
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun queryBusRoutes(context: Context, callback: OchCommonServiceCallback<BusRoutesResponse>?) {
|
||||
//获取当前高德坐标
|
||||
M_SERVICE.queryBusRoutes(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
BusQueryLineStationsRequest()
|
||||
)
|
||||
.transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "queryBusRoutes"))
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 重置线路站点
|
||||
* @param context
|
||||
* @param taskId
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun switchLine(
|
||||
context: Context,
|
||||
taskId: Int,
|
||||
callback: OchCommonServiceCallback<BusRoutesResponse>?
|
||||
) {
|
||||
M_SERVICE.switchLine(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
BusResetDrivingLineRequest(taskId)
|
||||
)
|
||||
.transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "switchLine"))
|
||||
}
|
||||
|
||||
/**
|
||||
* 中断当前任务
|
||||
* @param context
|
||||
* @param taskId
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun abortTask(context: Context, taskId: Int, callback: OchCommonServiceCallback<BaseData>?) {
|
||||
M_SERVICE.abortTask(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
BusCloseTaskRequest(taskId)
|
||||
)
|
||||
.transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "abortTask"))
|
||||
}
|
||||
|
||||
/**
|
||||
* 正常结束任务
|
||||
* @param context
|
||||
* @param taskId
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun endTask(context: Context, taskId: Int, callback: OchCommonServiceCallback<BaseData>?) {
|
||||
M_SERVICE.endTask(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
BusCloseTaskRequest(taskId)
|
||||
)
|
||||
.transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "endTask"))
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 离站上报
|
||||
* @param context
|
||||
* @param seq
|
||||
* @param siteId
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun leaveStation(
|
||||
context: Context,
|
||||
seq: Int,
|
||||
siteId: Int,
|
||||
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"))
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 到站更新站点状态
|
||||
* @param context
|
||||
* @param seq
|
||||
* @param siteId
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun arriveSiteStation(
|
||||
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"))
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun queryBusLines(
|
||||
context: Context,
|
||||
callback: OchCommonServiceCallback<BusQueryLinesResponse>?
|
||||
) {
|
||||
M_SERVICE.queryBusLines(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
SharedPrefsMgr.getInstance().sn
|
||||
)
|
||||
.transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "queryBusLines"))
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun queryBusTaskByLineId(
|
||||
context: Context,
|
||||
lineId: String?,
|
||||
callback: OchCommonServiceCallback<BusQueryLineTaskResponse>?
|
||||
) {
|
||||
M_SERVICE.queryBusTaskByLineId(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
lineId
|
||||
)
|
||||
.transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "queryBusLines"))
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun updateOrderRoute(
|
||||
context: Context,
|
||||
lineId: Int,
|
||||
startSiteId: Int,
|
||||
endSiteId: Int,
|
||||
points: List<MogoLocation>,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
val pointsResult = mutableListOf<BusRoutePlanningUpdateReqBean.Result>()
|
||||
points.forEach {
|
||||
val result = BusRoutePlanningUpdateReqBean.Result()
|
||||
result.latitude = it.latitude;
|
||||
result.longitude = it.longitude;
|
||||
pointsResult.add(result);
|
||||
}
|
||||
|
||||
M_SERVICE.updateOrderRoute(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
BusRoutePlanningUpdateReqBean(
|
||||
SharedPrefsMgr.getInstance().sn, lineId, startSiteId, endSiteId, pointsResult
|
||||
)
|
||||
)
|
||||
.transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "updateOrderRoute"))
|
||||
}
|
||||
|
||||
/**
|
||||
* 车机端上传心跳数据(只在出车状态时上传):包含高德坐标系经纬度
|
||||
* @param context
|
||||
* @param lon
|
||||
* @param lat
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun runCarHeartbeat(
|
||||
context: Context, lon: Double, lat: Double,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
M_SERVICE.runCarHeartbeat(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
CarHeartbeatReqBean(
|
||||
SharedPrefsMgr.getInstance().sn, lon, lat
|
||||
)
|
||||
)
|
||||
.transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "runCarHeartbeat", false))
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.mogo.och.weaknet.repository.net.impl.bussaas
|
||||
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
import com.mogo.eagle.core.utilcode.util.NetworkUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ToastUtils
|
||||
import com.mogo.och.common.module.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.utils.ResourcesUtils
|
||||
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.weaknet.repository.net.IRepository
|
||||
import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLinesResponse
|
||||
import io.reactivex.Observable
|
||||
|
||||
class BusSaasRepository: IRepository {
|
||||
|
||||
private val content = AbsMogoApplication.getApp()
|
||||
|
||||
init {
|
||||
|
||||
}
|
||||
|
||||
override fun queryCanUseLine(): Observable<List<LineDataBean>?>? {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun queryCanUserTask(lineId: Long): Observable<List<TaskDataBean>?>? {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,143 @@
|
||||
package com.mogo.och.weaknet.repository.net.impl.bussaas
|
||||
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.och.weaknet.bean.response.BusRoutesResponse
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.BusCloseTaskRequest
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.BusResetDrivingLineRequest
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.BusRoutePlanningUpdateReqBean
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.BusUpdateSiteStatusRequest
|
||||
import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLineTaskResponse
|
||||
import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLinesResponse
|
||||
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
|
||||
*/
|
||||
interface ISAASApiService {
|
||||
/**
|
||||
* 根据车机坐标获取所在区域全部站点信息
|
||||
*/
|
||||
@Headers("Content-Type:application/json;charset=UTF-8")
|
||||
@GET("/och-bus-cabin/api/business/v1/driver/bus/lineDataWithDriver/query")
|
||||
fun queryBusRoutes(
|
||||
@Header("appId") appId: String?,
|
||||
@Header("ticket") ticket: String?,
|
||||
@Query("sn") sn: String?
|
||||
): Observable<BusRoutesResponse>
|
||||
|
||||
/**
|
||||
* @param request 请求参数{"destLine":1,"sn":"F803EB2046PZD00229"} 这个接口是重置bus线路的, 不是重置线路中站点的
|
||||
* @return 返回值是重置后的车站列表
|
||||
* 开始路线
|
||||
*/
|
||||
@Headers("Content-Type:application/json;charset=UTF-8")
|
||||
@POST("/och-bus-cabin/cab/flow/v1/bus/driver/startTask")
|
||||
fun switchLine(
|
||||
@Header("appId") appId: String?,
|
||||
@Header("ticket") ticket: String?,
|
||||
@Body request: BusResetDrivingLineRequest?
|
||||
): Observable<BusRoutesResponse>
|
||||
|
||||
/**
|
||||
* 离站,通知服务器
|
||||
*/
|
||||
@Headers("Content-Type:application/json;charset=UTF-8")
|
||||
@POST("/och-bus-cabin/cab/flow/v1/bus/driver/leave")
|
||||
fun leaveStation(
|
||||
@Header("appId") appId: String?,
|
||||
@Header("ticket") ticket: String?,
|
||||
@Body request: BusUpdateSiteStatusRequest?
|
||||
): Observable<BaseData>
|
||||
|
||||
/**
|
||||
* 到站 更新到站信息
|
||||
*/
|
||||
@Headers("Content-type:application/json;charset=UTF-8")
|
||||
@POST("/och-bus-cabin/cab/flow/v1/bus/driver/arrive")
|
||||
fun arriveSiteStation(
|
||||
@Header("appId") appId: String?,
|
||||
@Header("ticket") ticket: String?,
|
||||
@Body request: BusUpdateSiteStatusRequest?
|
||||
): Observable<BaseData>
|
||||
|
||||
|
||||
/**
|
||||
* 查询车辆配置的所有路线
|
||||
*/
|
||||
@Headers("Content-type:application/json;charset=UTF-8")
|
||||
@GET("/och-bus-cabin/api/business/v1/driver/BusBindLine")
|
||||
fun queryBusLines(
|
||||
@Header("appId") appId: String?,
|
||||
@Header("ticket") ticket: String?,
|
||||
@Query("sn") sn: String?
|
||||
): Observable<BusQueryLinesResponse>
|
||||
|
||||
/**
|
||||
* 查询路线当天的任务
|
||||
* @param appId
|
||||
* @param ticket
|
||||
* @param lineId 线路id
|
||||
* @return
|
||||
*/
|
||||
@Headers("Content-type:application/json;charset=UTF-8")
|
||||
@GET("/och-bus-cabin/api/business/v1/driver/bus/task/query")
|
||||
fun queryBusTaskByLineId(
|
||||
@Header("appId") appId: String?,
|
||||
@Header("ticket") ticket: String?,
|
||||
@Query("lineId") lineId: String?
|
||||
): Observable<BusQueryLineTaskResponse>
|
||||
|
||||
|
||||
/**
|
||||
* 上传轨迹信息
|
||||
*/
|
||||
@Headers("Content-type:application/json;charset=UTF-8")
|
||||
@POST("/autopilot-car-hailing/location/v2/driver/bus/saveLineCoordinate")
|
||||
fun updateOrderRoute(
|
||||
@Header("appId") appId: String?,
|
||||
@Header("ticket") ticket: String?,
|
||||
@Body data: BusRoutePlanningUpdateReqBean?
|
||||
): Observable<BaseData>
|
||||
|
||||
/**
|
||||
* 中止任务
|
||||
* @param appId
|
||||
* @param ticket
|
||||
* @param data
|
||||
* @return
|
||||
*/
|
||||
@Headers("Content-type:application/json;charset=UTF-8")
|
||||
@POST("/och-bus-cabin/cab/flow/v1/bus/driver/abortTask")
|
||||
fun abortTask(
|
||||
@Header("appId") appId: String?,
|
||||
@Header("ticket") ticket: String?,
|
||||
@Body data: BusCloseTaskRequest?
|
||||
): Observable<BaseData>
|
||||
|
||||
/**
|
||||
* 任务正常跑完结束
|
||||
* @param appId
|
||||
* @param ticket
|
||||
* @param data
|
||||
* @return
|
||||
*/
|
||||
@Headers("Content-type:application/json;charset=UTF-8")
|
||||
@POST("/och-bus-cabin/cab/flow/v1/bus/driver/endTask")
|
||||
fun endTask(
|
||||
@Header("appId") appId: String?,
|
||||
@Header("ticket") ticket: String?,
|
||||
@Body data: BusCloseTaskRequest?
|
||||
): Observable<BaseData>
|
||||
}
|
||||
|
||||
@@ -0,0 +1,234 @@
|
||||
package com.mogo.och.weaknet.repository.net.impl.bussaas
|
||||
|
||||
import android.content.Context
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
|
||||
import com.mogo.commons.debug.DebugConfig
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.eagle.core.network.MoGoRetrofitFactory
|
||||
import com.mogo.commons.storage.SharedPrefsMgr
|
||||
import com.mogo.eagle.core.data.map.MogoLocation
|
||||
import com.mogo.och.common.module.constant.OchCommonConst
|
||||
import com.mogo.och.common.module.network.OchCommonServiceCallback
|
||||
import com.mogo.och.common.module.network.OchCommonSubscribeImpl
|
||||
import com.mogo.och.common.module.network.interceptor.transformTry
|
||||
import com.mogo.och.weaknet.bean.response.BusRoutesResponse
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.BusCloseTaskRequest
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.BusResetDrivingLineRequest
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.BusRoutePlanningUpdateReqBean
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.BusUpdateSiteStatusRequest
|
||||
import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLineTaskResponse
|
||||
import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLinesResponse
|
||||
|
||||
/**
|
||||
* @author: wangmingjun
|
||||
* @date: 2021/10/20
|
||||
*/
|
||||
object OrderServiceManager {
|
||||
|
||||
private val M_SAAS_SERVICE: ISAASApiService =
|
||||
MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create(
|
||||
ISAASApiService::class.java
|
||||
)
|
||||
|
||||
/**
|
||||
* 查询小巴车当前任务
|
||||
* @param context
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun queryBusRoutes(context: Context, callback: OchCommonServiceCallback<BusRoutesResponse>?) {
|
||||
//获取当前高德坐标
|
||||
|
||||
M_SAAS_SERVICE.queryBusRoutes(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
SharedPrefsMgr.getInstance().sn
|
||||
)
|
||||
.transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "queryBusRoutes"))
|
||||
}
|
||||
|
||||
/**
|
||||
* 重置线路站点
|
||||
* @param context
|
||||
* @param taskId
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun switchLine(
|
||||
context: Context,
|
||||
taskId: Int,
|
||||
callback: OchCommonServiceCallback<BusRoutesResponse>?
|
||||
) {
|
||||
M_SAAS_SERVICE.switchLine(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
BusResetDrivingLineRequest(taskId)
|
||||
)
|
||||
.transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "switchLine"))
|
||||
}
|
||||
|
||||
/**
|
||||
* 中断当前任务
|
||||
* @param context
|
||||
* @param taskId
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun abortTask(context: Context, taskId: Int, callback: OchCommonServiceCallback<BaseData>?) {
|
||||
|
||||
M_SAAS_SERVICE.abortTask(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
BusCloseTaskRequest(taskId)
|
||||
)
|
||||
.transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "abortTask"))
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 正常结束任务
|
||||
* @param context
|
||||
* @param taskId
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun endTask(context: Context, taskId: Int, callback: OchCommonServiceCallback<BaseData>?) {
|
||||
|
||||
M_SAAS_SERVICE.endTask(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
BusCloseTaskRequest(taskId)
|
||||
)
|
||||
.transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "endTask"))
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 离站上报
|
||||
* @param context
|
||||
* @param seq
|
||||
* @param siteId
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun leaveStation(
|
||||
context: Context,
|
||||
seq: Int,
|
||||
siteId: Int,
|
||||
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"))
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 到站更新站点状态
|
||||
* @param context
|
||||
* @param seq
|
||||
* @param siteId
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun arriveSiteStation(
|
||||
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"))
|
||||
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun queryBusLines(
|
||||
context: Context,
|
||||
callback: OchCommonServiceCallback<BusQueryLinesResponse>?
|
||||
) {
|
||||
|
||||
M_SAAS_SERVICE.queryBusLines(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
SharedPrefsMgr.getInstance().sn
|
||||
)
|
||||
.transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "queryBusLines"))
|
||||
|
||||
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun queryBusTaskByLineId(
|
||||
context: Context,
|
||||
lineId: String?,
|
||||
callback: OchCommonServiceCallback<BusQueryLineTaskResponse>?
|
||||
) {
|
||||
M_SAAS_SERVICE.queryBusTaskByLineId(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
lineId
|
||||
)
|
||||
.transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "queryBusLines"))
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun updateOrderRoute(
|
||||
context: Context,
|
||||
lineId: Int,
|
||||
startSiteId: Int,
|
||||
endSiteId: Int,
|
||||
points: List<MogoLocation>,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
val pointsResult = mutableListOf<BusRoutePlanningUpdateReqBean.Result>()
|
||||
points.forEach {
|
||||
val result = BusRoutePlanningUpdateReqBean.Result()
|
||||
result.latitude = it.latitude;
|
||||
result.longitude = it.longitude;
|
||||
pointsResult.add(result);
|
||||
}
|
||||
|
||||
M_SAAS_SERVICE.updateOrderRoute(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
BusRoutePlanningUpdateReqBean(
|
||||
SharedPrefsMgr.getInstance().sn, lineId, startSiteId, endSiteId, pointsResult
|
||||
)
|
||||
)
|
||||
.transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "updateOrderRoute"))
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 车机端上传心跳数据(只在出车状态时上传):包含高德坐标系经纬度
|
||||
* @param context
|
||||
* @param lon
|
||||
* @param lat
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun runCarHeartbeat(
|
||||
context: Context, lon: Double, lat: Double,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,112 @@
|
||||
package com.mogo.och.weaknet.repository.net.impl.shuttle;
|
||||
|
||||
import com.mogo.eagle.core.data.BaseData;
|
||||
import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest;
|
||||
import com.mogo.och.weaknet.bean.response.BusRoutesResponse;
|
||||
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse;
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.BusCloseTaskRequest;
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.BusResetDrivingLineRequest;
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.BusUpdateSiteStatusRequest;
|
||||
import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLineTaskResponse;
|
||||
import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLinesResponse;
|
||||
|
||||
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
|
||||
* <p>
|
||||
*/
|
||||
public interface IBascApiService {
|
||||
/**
|
||||
* 查询当前运行任务
|
||||
*
|
||||
* @param request 请求参数
|
||||
* @return 接口返回数据
|
||||
*/
|
||||
@Headers( {"Content-Type:application/json;charset=UTF-8"} )
|
||||
@POST( "/och-shuttle-cabin/api/business/v1/driver/lineDataWithDriver/query" )
|
||||
Observable<BusRoutesResponse> queryBusRoutes(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusQueryLineStationsRequest request);
|
||||
|
||||
/**
|
||||
* @param request 请求参数{"destLine":1,"sn":"F803EB2046PZD00229"} 这个接口是重置bus线路的, 不是重置线路中站点的
|
||||
* @return 返回值是重置后的车站列表
|
||||
* 开始路线
|
||||
*/
|
||||
@Headers( {"Content-Type:application/json;charset=UTF-8"} )
|
||||
@POST( "/och-shuttle-cabin/api/flow/v1/driver/startTask" )
|
||||
Observable<BusRoutesResponse> switchLine(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusResetDrivingLineRequest request);
|
||||
|
||||
/**
|
||||
* 离站,通知服务器
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@Headers({"Content-Type:application/json;charset=UTF-8"})
|
||||
@POST("/och-shuttle-cabin/api/flow/v1/driver/leave")
|
||||
Observable<BaseData> leaveStation(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusUpdateSiteStatusRequest request);
|
||||
|
||||
/**
|
||||
* 到站 更新到站信息
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@Headers({"Content-type:application/json;charset=UTF-8"})
|
||||
@POST("/och-shuttle-cabin/api/flow/v1/driver/arrive")
|
||||
Observable<BaseData> arriveSiteStation(@Header ("appId") String appId,@Header("ticket") String ticket,@Body BusUpdateSiteStatusRequest request);
|
||||
|
||||
/**
|
||||
* 查询车辆配置的所有路线
|
||||
* @param appId
|
||||
* @param ticket
|
||||
* @param sn
|
||||
* @return
|
||||
*/
|
||||
@GET("/och-shuttle-cabin/api/business/v1/driver/bindLine/query")
|
||||
Observable<BusQueryLinesResponse> queryBusLines(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("sn") String sn);
|
||||
|
||||
/**
|
||||
* 查询线路的任务
|
||||
* @param appId
|
||||
* @param ticket
|
||||
* @param lineId 线路id
|
||||
* @return
|
||||
*/
|
||||
@GET("/och-shuttle-cabin/api/business/v1/driver/task/query")
|
||||
Observable<BusQueryLineTaskResponse> queryBusTaskByLineId(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("lineId") Long lineId);
|
||||
|
||||
/**
|
||||
* 中止任务
|
||||
* @param appId
|
||||
* @param ticket
|
||||
* @param data
|
||||
* @return
|
||||
*/
|
||||
@POST("/och-shuttle-cabin/api/flow/v1/driver/abortTask")
|
||||
Observable<BaseData> abortTask(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusCloseTaskRequest data);
|
||||
|
||||
/**
|
||||
* 任务正常跑完结束
|
||||
* @param appId
|
||||
* @param ticket
|
||||
* @param data
|
||||
* @return
|
||||
*/
|
||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||
@POST("/och-shuttle-cabin/api/flow/v1/driver/endTask")
|
||||
Observable<BaseData> endTask(@Header ("appId") String appId, @Header("ticket") String ticket, @Body BusCloseTaskRequest data);
|
||||
|
||||
|
||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||
@GET("och-shuttle-cabin/api/business/v1/task/writeOffCount")
|
||||
Observable<WriteOffCountResponse> writeOffCount(@Header ("appId") String appId, @Header("ticket") String ticket, @Query("taskId") String taskId, @Query("siteId") String siteId);
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,209 @@
|
||||
package com.mogo.och.weaknet.repository.net.impl.shuttle
|
||||
|
||||
import android.content.Context
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.eagle.core.network.MoGoRetrofitFactory
|
||||
import com.mogo.commons.storage.SharedPrefsMgr
|
||||
import com.mogo.och.common.module.constant.OchCommonConst
|
||||
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.common.module.network.interceptor.transformTry
|
||||
import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest
|
||||
import com.mogo.och.weaknet.bean.response.BusRoutesResponse
|
||||
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse
|
||||
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
|
||||
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.BusCloseTaskRequest
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.BusResetDrivingLineRequest
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.BusUpdateSiteStatusRequest
|
||||
import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLineTaskResponse
|
||||
import com.mogo.och.weaknet.repository.net.bean.response.BusQueryLinesResponse
|
||||
import io.reactivex.Observable
|
||||
|
||||
/**
|
||||
* @author: wangmingjun
|
||||
* @date: 2021/10/20
|
||||
*/
|
||||
object OrderServiceManager {
|
||||
|
||||
private val mService: IBascApiService = MoGoRetrofitFactory.getInstance(OchCommonConst.getShuttleUrl()).create(
|
||||
IBascApiService::class.java
|
||||
)
|
||||
|
||||
|
||||
/**
|
||||
* 查询小巴车当前任务
|
||||
* @param context
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun queryBusRoutes(context: Context, callback: OchCommonServiceCallback<BusRoutesResponse>?) {
|
||||
//获取当前高德坐标
|
||||
mService.queryBusRoutes(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
BusQueryLineStationsRequest()
|
||||
)
|
||||
.transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "queryBusRoutes"))
|
||||
}
|
||||
|
||||
/**
|
||||
* 重置线路站点
|
||||
* @param context
|
||||
* @param taskId
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun switchLine(
|
||||
context: Context,
|
||||
taskId: Int,
|
||||
callback: OchCommonServiceCallback<BusRoutesResponse>?
|
||||
) {
|
||||
mService.switchLine(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
BusResetDrivingLineRequest(taskId)
|
||||
)
|
||||
.transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "switchLine"))
|
||||
}
|
||||
|
||||
/**
|
||||
* 中断当前任务
|
||||
* @param context
|
||||
* @param taskId
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun abortTask(context: Context, taskId: Int, callback: OchCommonServiceCallback<BaseData>?) {
|
||||
mService.abortTask(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
BusCloseTaskRequest(taskId)
|
||||
)
|
||||
.transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "abortTask"))
|
||||
}
|
||||
|
||||
/**
|
||||
* 正常结束任务
|
||||
* @param context
|
||||
* @param taskId
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun endTask(context: Context, taskId: Int, callback: OchCommonServiceCallback<BaseData>?) {
|
||||
mService.endTask(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
BusCloseTaskRequest(taskId)
|
||||
)
|
||||
.transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "endTask"))
|
||||
}
|
||||
|
||||
/**
|
||||
* 离站上报
|
||||
* @param context
|
||||
* @param seq
|
||||
* @param siteId
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun leaveStation(
|
||||
context: Context,
|
||||
seq: Int,
|
||||
siteId: Int,
|
||||
taskId: Int,
|
||||
writeVersion: Long,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
mService.leaveStation(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
BusUpdateSiteStatusRequest(taskId, siteId, seq,writeVersion)
|
||||
)
|
||||
.transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "leaveStation"))
|
||||
}
|
||||
|
||||
/**
|
||||
* 到站更新站点状态
|
||||
* @param context
|
||||
* @param seq
|
||||
* @param siteId
|
||||
* @param callback
|
||||
*/
|
||||
@JvmStatic
|
||||
fun arriveSiteStation(
|
||||
context: Context, seq: Int, siteId: Int, taskId: Int, writeVersion: Long,
|
||||
callback: OchCommonServiceCallback<BaseData>?
|
||||
) {
|
||||
mService.arriveSiteStation(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
BusUpdateSiteStatusRequest(taskId, siteId, seq, writeVersion)
|
||||
)
|
||||
.transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "arriveSiteStation"))
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun queryBusLines(context: Context, callback: OchCommonServiceCallback<BusQueryLinesResponse>?) {
|
||||
mService.queryBusLines(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
SharedPrefsMgr.getInstance().sn
|
||||
)
|
||||
.transformTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "queryBusLines"))
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun queryBusLines(): Observable<List<LineDataBean>?> {
|
||||
return mService.queryBusLines(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
SharedPrefsMgr.getInstance().sn
|
||||
) .transformTry()
|
||||
.flatMap(OchCommonNet("queryBusLines",false))
|
||||
.flatMap {
|
||||
Observable.just(it.data)
|
||||
}
|
||||
|
||||
}
|
||||
@JvmStatic
|
||||
fun queryBusTaskByLineId(
|
||||
lineId: Long?) :Observable<List<TaskDataBean>?> {
|
||||
return mService.queryBusTaskByLineId(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
lineId
|
||||
) .transformTry()
|
||||
.flatMap(OchCommonNet<BusQueryLineTaskResponse>("queryBusLines",false))
|
||||
.flatMap {
|
||||
Observable.just(it.data)
|
||||
}
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun queryWriteOffCountByLineIdAndSiteId(
|
||||
context: Context,
|
||||
taskId: String?,
|
||||
siteId: String?,
|
||||
callback: OchCommonServiceCallback<WriteOffCountResponse>?
|
||||
) {
|
||||
mService.writeOffCount(
|
||||
MoGoAiCloudClientConfig.getInstance().serviceAppId,
|
||||
SharedPrefsMgr.getInstance().token,
|
||||
taskId,
|
||||
siteId
|
||||
)
|
||||
.transformIoTry()
|
||||
.subscribe(OchCommonSubscribeImpl(context, callback, "writeOffCount"))
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.mogo.och.weaknet.repository.net.impl.shuttle
|
||||
|
||||
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
|
||||
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
|
||||
import com.mogo.och.weaknet.repository.net.IRepository
|
||||
import io.reactivex.Observable
|
||||
|
||||
class ShuttleRepository: IRepository {
|
||||
|
||||
init {
|
||||
|
||||
}
|
||||
|
||||
override fun queryCanUseLine(): Observable<List<LineDataBean>?> {
|
||||
return OrderServiceManager.queryBusLines()
|
||||
}
|
||||
|
||||
override fun queryCanUserTask(lineId: Long): Observable<List<TaskDataBean>?> {
|
||||
return OrderServiceManager.queryBusTaskByLineId(lineId)
|
||||
}
|
||||
|
||||
companion object{
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mogo.och.weaknet.repository.net.shuttlesaas;
|
||||
package com.mogo.och.weaknet.repository.net.impl.shuttlesaas;
|
||||
|
||||
import com.mogo.eagle.core.data.BaseData;
|
||||
import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mogo.och.weaknet.repository.net.shuttlesaas
|
||||
package com.mogo.och.weaknet.repository.net.impl.shuttlesaas
|
||||
|
||||
import android.content.Context
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.mogo.och.weaknet.repository.net.impl.shuttlesaas
|
||||
|
||||
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.repository.LineDb
|
||||
import com.mogo.och.weaknet.repository.db.repository.TaskDb
|
||||
import com.mogo.och.weaknet.repository.net.IRepository
|
||||
import io.reactivex.Observable
|
||||
|
||||
class ShuttleSaasRepository: IRepository {
|
||||
|
||||
override fun queryCanUseLine(): Observable<List<LineDataBean>?>? {
|
||||
return LineDb.queryCanUseLine()
|
||||
}
|
||||
|
||||
override fun queryCanUserTask(lineId: Long): Observable<List<TaskDataBean>?>? {
|
||||
return TaskDb.queryCanUserTask(lineId)
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user