[6.8.0]
[fea] [有未上传核销数据 不能结束任务]
This commit is contained in:
@@ -300,75 +300,83 @@ object LineModel {
|
||||
}
|
||||
|
||||
fun endTask() {
|
||||
currentTask?.let { task ->
|
||||
RepositoryManager.endTask(task.taskId?:0L)
|
||||
?.subscribeOn(Schedulers.io())
|
||||
?.observeOn(AndroidSchedulers.mainThread())
|
||||
?.subscribe(object : Observer<Boolean> {
|
||||
override fun onSubscribe(d: Disposable) {
|
||||
startTaskDisposable
|
||||
d(TAG, "endTask onSubscribe")
|
||||
}
|
||||
|
||||
override fun onError(e: Throwable) {
|
||||
d(TAG, "endTask onError${e.printStackTrace()}")
|
||||
if (e is DataException) {
|
||||
|
||||
currentTask?.taskId?.let { taskId ->
|
||||
if (RepositoryManager.canCanEndTask(taskId)) {
|
||||
RepositoryManager.endTask(taskId)
|
||||
?.subscribeOn(Schedulers.io())
|
||||
?.observeOn(AndroidSchedulers.mainThread())
|
||||
?.subscribe(object : Observer<Boolean> {
|
||||
override fun onSubscribe(d: Disposable) {
|
||||
startTaskDisposable
|
||||
d(TAG, "endTask onSubscribe")
|
||||
}
|
||||
if (RepositoryManager.supportDb()) {
|
||||
isGoingToNextStation = false
|
||||
|
||||
ThirdDeviceData.endTask()
|
||||
ThirdDeviceData.sendTaskDetailsToClients()
|
||||
ShuttleVoiceManager.endOrderBus()
|
||||
// 取消自驾
|
||||
CallerAutoPilotControlManager.cancelAutoPilot()
|
||||
currentTask = null
|
||||
LineManager.setLineInfo(null)
|
||||
LineManager.setStartAndEndStation(null,null)
|
||||
stationList = mutableListOf()
|
||||
startStationIndex = 0
|
||||
mBusLinesCallbackMap.forEach {
|
||||
it.value.onCompleteTask()
|
||||
override fun onError(e: Throwable) {
|
||||
d(TAG, "endTask onError${e.printStackTrace()}")
|
||||
if (e is DataException) {
|
||||
|
||||
}
|
||||
val changeInfo = "taskId:${currentTask?.taskId}--lineInfo:${LineManager.lineInfos}"
|
||||
OchChainLogManager.writeChainLog("结束任务", changeInfo)
|
||||
}else{
|
||||
ToastUtils.showShort("结束任务失败请稍后再试")
|
||||
mBusLinesCallbackMap.forEach {
|
||||
it.value.onCompleteTaskFail()
|
||||
if (RepositoryManager.supportDb()) {
|
||||
isGoingToNextStation = false
|
||||
|
||||
ThirdDeviceData.endTask()
|
||||
ThirdDeviceData.sendTaskDetailsToClients()
|
||||
ShuttleVoiceManager.endOrderBus()
|
||||
// 取消自驾
|
||||
CallerAutoPilotControlManager.cancelAutoPilot()
|
||||
currentTask = null
|
||||
LineManager.setLineInfo(null)
|
||||
LineManager.setStartAndEndStation(null, null)
|
||||
stationList = mutableListOf()
|
||||
startStationIndex = 0
|
||||
mBusLinesCallbackMap.forEach {
|
||||
it.value.onCompleteTask()
|
||||
}
|
||||
val changeInfo =
|
||||
"taskId:${currentTask?.taskId}--lineInfo:${LineManager.lineInfos}"
|
||||
OchChainLogManager.writeChainLog("结束任务", changeInfo)
|
||||
} else {
|
||||
ToastUtils.showShort("结束任务失败请稍后再试")
|
||||
mBusLinesCallbackMap.forEach {
|
||||
it.value.onCompleteTaskFail()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onComplete() {
|
||||
d(TAG, "endTask onComplete")
|
||||
}
|
||||
|
||||
override fun onNext(data: Boolean) {
|
||||
d(TAG, "endTask onNext ${data}")
|
||||
if (data) {
|
||||
isGoingToNextStation = false
|
||||
|
||||
ThirdDeviceData.endTask()
|
||||
ThirdDeviceData.sendTaskDetailsToClients()
|
||||
ShuttleVoiceManager.endOrderBus()
|
||||
// 取消自驾
|
||||
CallerAutoPilotControlManager.cancelAutoPilot()
|
||||
currentTask = null
|
||||
LineManager.setLineInfo(null)
|
||||
LineManager.setStartAndEndStation(null,null)
|
||||
stationList = mutableListOf()
|
||||
startStationIndex = 0
|
||||
mBusLinesCallbackMap.forEach {
|
||||
it.value.onCompleteTask()
|
||||
}
|
||||
val changeInfo = "taskId:${currentTask?.taskId}--lineInfo:${LineManager.lineInfos}"
|
||||
OchChainLogManager.writeChainLog("结束任务", changeInfo)
|
||||
override fun onComplete() {
|
||||
d(TAG, "endTask onComplete")
|
||||
}
|
||||
onComplete()
|
||||
}
|
||||
})
|
||||
|
||||
override fun onNext(data: Boolean) {
|
||||
d(TAG, "endTask onNext ${data}")
|
||||
if (data) {
|
||||
isGoingToNextStation = false
|
||||
|
||||
ThirdDeviceData.endTask()
|
||||
ThirdDeviceData.sendTaskDetailsToClients()
|
||||
ShuttleVoiceManager.endOrderBus()
|
||||
// 取消自驾
|
||||
CallerAutoPilotControlManager.cancelAutoPilot()
|
||||
currentTask = null
|
||||
LineManager.setLineInfo(null)
|
||||
LineManager.setStartAndEndStation(null, null)
|
||||
stationList = mutableListOf()
|
||||
startStationIndex = 0
|
||||
mBusLinesCallbackMap.forEach {
|
||||
it.value.onCompleteTask()
|
||||
}
|
||||
val changeInfo =
|
||||
"taskId:${currentTask?.taskId}--lineInfo:${LineManager.lineInfos}"
|
||||
OchChainLogManager.writeChainLog("结束任务", changeInfo)
|
||||
}
|
||||
onComplete()
|
||||
}
|
||||
})
|
||||
}else{
|
||||
ToastUtils.showShort("有待上传核销数据请稍等")
|
||||
// 主动上报一次
|
||||
EventModel.notifySyn()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -186,6 +186,11 @@ object RepositoryManager {
|
||||
return writeOffRepository?.writeOffEvent(writeOffDetialMsg)
|
||||
}
|
||||
|
||||
|
||||
fun canCanEndTask(taskId: Long): Boolean {
|
||||
return writeOffRepository?.canCanEndTask(taskId)?:true
|
||||
}
|
||||
|
||||
fun closeDb() {
|
||||
if (supportDb()) {
|
||||
MyDataBase.instance?.close()
|
||||
|
||||
@@ -22,6 +22,9 @@ interface WriteOffDataDao {
|
||||
@Query("SELECT * FROM ${WriteOffDataBean.writeoffDataTable} WHERE event_save_time > :zeroTime and order_no = :orderNo")
|
||||
fun queryWriteOffByOrderNo(zeroTime: Long = DateTimeUtil.getCurrentDateZero(),orderNo:String): List<WriteOffDataBean>?
|
||||
|
||||
@Query("SELECT * FROM ${WriteOffDataBean.writeoffDataTable} WHERE event_save_time > :zeroTime and task_id = :taskId and update_status = ${WriteOffDataBean.notUpdate}")
|
||||
fun queryWaitWriteOffByTaskId(taskId:Long,zeroTime: Long = DateTimeUtil.getCurrentDateZero()): List<WriteOffDataBean>?
|
||||
|
||||
@Query("SELECT * FROM ${WriteOffDataBean.writeoffDataTable} order by event_save_time LIMIT 5 OFFSET 0")
|
||||
fun queryLastDataByWaritData():List<WriteOffDataBean>?
|
||||
|
||||
|
||||
@@ -44,5 +44,9 @@ object WriteOffDb: IDbRepository {
|
||||
writeOffDataDao?.insert(*writeOffEvents.toTypedArray())
|
||||
}
|
||||
|
||||
fun queryWaitUpdateEventByTaskId(taskId: Long): List<WriteOffDataBean>? {
|
||||
return writeOffDataDao?.queryWaitWriteOffByTaskId(taskId)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -15,4 +15,8 @@ interface IWriteOffRepository {
|
||||
|
||||
fun release()
|
||||
|
||||
fun canCanEndTask(taskId: Long): Boolean {
|
||||
return true
|
||||
}
|
||||
|
||||
}
|
||||
@@ -175,6 +175,11 @@ class WriteOffCacheRepository : IWriteOffRepository {
|
||||
}
|
||||
}
|
||||
|
||||
override fun canCanEndTask(taskId: Long): Boolean {
|
||||
val queryWaitUpdateEventByTaskId = WriteOffDb.queryWaitUpdateEventByTaskId(taskId)
|
||||
return queryWaitUpdateEventByTaskId.isNullOrEmpty()
|
||||
}
|
||||
|
||||
override fun release() {
|
||||
weakNetInterface = null
|
||||
CallerLogger.d(TAG,"重置 weakNetInterface")
|
||||
|
||||
Reference in New Issue
Block a user