[fea]
[本地缓存任务添加任务重等待上传的核销人数]
This commit is contained in:
yangyakun
2024-11-19 18:22:40 +08:00
parent 8af7cfd017
commit 6e2a9df424
10 changed files with 96 additions and 40 deletions

View File

@@ -20,7 +20,7 @@ data class WaitUploadLine(var lineName:String ,var lineId:Long,var task:MutableL
}
}
data class WaitUploadTask(val taskStartTime:Long,val taskId:Long){
data class WaitUploadTask(val taskStartTime:Long,val taskId:Long,val waitUploadWriteOff:Int){
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (javaClass != other?.javaClass) return false

View File

@@ -120,26 +120,7 @@ object EventModel {
}
fun queryWaitUploadInfo(): Observable<MutableList<WaitUploadLine>>? {
return EventDb.queryWaitUploadData()
?.flatMap { waitUploadList->
val result = mutableListOf<WaitUploadLine>()
waitUploadList.forEach { wait->
if(wait.lineId!=null&&wait.lineName!=null&&wait.taskId!=null&&wait.taskStartTime!=null) {
val tempTask = WaitUploadTask(wait.taskStartTime!!,wait.taskId!!)
val tempLine = WaitUploadLine(wait.lineName!!, wait.lineId!!, mutableListOf(tempTask))
val haveSave = result.filter {
it.lineId==tempLine.lineId
}
if(haveSave.isEmpty()){
result.add(tempLine)
}else{
haveSave.first().task.add(tempTask)
}
}
}
Observable.just(result)
}?.subscribeOn(Schedulers.io())
?.observeOn(AndroidSchedulers.mainThread())
return RepositoryManager.queryWaitUploadData()
}
fun getUploadTaskObservable():BehaviorSubject<Boolean>{

View File

@@ -9,6 +9,7 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffDetialMsg
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.weaknet.bean.WaitUploadLine
import com.mogo.och.weaknet.bean.request.ShuttleEventRequest
import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse
@@ -186,6 +187,10 @@ object RepositoryManager {
return writeOffRepository?.writeOffEvent(writeOffDetialMsg)
}
fun queryWaitUploadData(): Observable<MutableList<WaitUploadLine>>? {
return writeOffRepository?.queryWaitUploadData()
}
fun canCanEndTask(taskId: Long): Boolean {
return writeOffRepository?.canCanEndTask(taskId)?:true

View File

@@ -25,9 +25,6 @@ interface WriteOffDataDao {
@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>?
@Query("SELECT * FROM ${WriteOffDataBean.writeoffDataTable} WHERE update_status = ${WriteOffDataBean.notUpdate} LIMIT 10 OFFSET 0")
fun queryWriteOffEventByStatusWithPage():List<WriteOffDataBean>?

View File

@@ -48,5 +48,10 @@ object WriteOffDb: IDbRepository {
return writeOffDataDao?.queryWaitWriteOffByTaskId(taskId)
}
fun queryWaitUpdateEventCountByTaskId(taskId: Long):Int {
val queryWriteOffByOrderNo = writeOffDataDao?.queryWaitWriteOffByTaskId(taskId)
return queryWriteOffByOrderNo?.size?:0
}
}

View File

@@ -3,6 +3,7 @@ package com.mogo.och.weaknet.repository.writeoff
import android.content.Context
import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffDetialMsg
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.weaknet.bean.WaitUploadLine
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse
import com.mogo.och.weaknet.repository.net.bean.response.PassengerWriteOffResponse
import io.reactivex.Observable
@@ -19,4 +20,6 @@ interface IWriteOffRepository {
return true
}
fun queryWaitUploadData(): Observable<MutableList<WaitUploadLine>>?
}

View File

@@ -13,9 +13,12 @@ import com.mogo.och.common.module.manager.cache.OchSPManager
import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffDetialMsg
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.weaknet.bean.WaitUploadLine
import com.mogo.och.weaknet.bean.WaitUploadTask
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse
import com.mogo.och.weaknet.model.LineModel
import com.mogo.och.weaknet.repository.db.bean.WriteOffDataBean
import com.mogo.och.weaknet.repository.db.repository.EventDb
import com.mogo.och.weaknet.repository.db.repository.WriteOffDb
import com.mogo.och.weaknet.repository.exception.DataException
import com.mogo.och.weaknet.repository.net.exception.NetException
@@ -25,6 +28,8 @@ import com.mogo.och.weaknet.repository.net.project.saas.bus.SaasBusServiceManage
import com.mogo.och.weaknet.repository.net.project.saas.shuttle.SaasShuttleServiceManager
import com.mogo.och.weaknet.repository.writeoff.IWriteOffRepository
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers
class WriteOffCacheRepository : IWriteOffRepository {
private val TAG = "ShuttleSaasRepository"
@@ -180,6 +185,30 @@ class WriteOffCacheRepository : IWriteOffRepository {
return queryWaitUpdateEventByTaskId.isNullOrEmpty()
}
override fun queryWaitUploadData(): Observable<MutableList<WaitUploadLine>>? {
return EventDb.queryWaitUploadData()
?.flatMap { waitUploadList->
val result = mutableListOf<WaitUploadLine>()
waitUploadList.forEach { wait->
if(wait.lineId!=null&&wait.lineName!=null&&wait.taskId!=null&&wait.taskStartTime!=null) {
val waitUpdateEventCount = WriteOffDb.queryWaitUpdateEventCountByTaskId(wait.taskId!!)
val tempTask = WaitUploadTask(wait.taskStartTime!!,wait.taskId!!,waitUpdateEventCount)
val tempLine = WaitUploadLine(wait.lineName!!, wait.lineId!!, mutableListOf(tempTask))
val haveSave = result.filter {
it.lineId==tempLine.lineId
}
if(haveSave.isEmpty()){
result.add(tempLine)
}else{
haveSave.first().task.add(tempTask)
}
}
}
Observable.just(result) }
?.subscribeOn(Schedulers.io())
?.observeOn(AndroidSchedulers.mainThread())
}
override fun release() {
weakNetInterface = null
CallerLogger.d(TAG,"重置 weakNetInterface")

View File

@@ -9,7 +9,10 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffDetialMsg
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.weaknet.bean.WaitUploadLine
import com.mogo.och.weaknet.bean.WaitUploadTask
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse
import com.mogo.och.weaknet.repository.db.repository.EventDb
import com.mogo.och.weaknet.repository.net.NetInterface
import com.mogo.och.weaknet.repository.net.bean.request.PassengerWriteOffRequest
import com.mogo.och.weaknet.repository.net.bean.response.PassengerWriteOffResponse
@@ -18,6 +21,8 @@ import com.mogo.och.weaknet.repository.net.project.dali.bus.DaliBusServiceManage
import com.mogo.och.weaknet.repository.net.project.dali.shuttle.DaliShuttleServiceManager
import com.mogo.och.weaknet.repository.writeoff.IWriteOffRepository
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers
class WriteOffNormallRepository: IWriteOffRepository {
@@ -76,5 +81,28 @@ class WriteOffNormallRepository: IWriteOffRepository {
CallerLogger.d(TAG,"重置 normalNetInterface")
}
override fun queryWaitUploadData(): Observable<MutableList<WaitUploadLine>>? {
return EventDb.queryWaitUploadData()
?.flatMap { waitUploadList->
val result = mutableListOf<WaitUploadLine>()
waitUploadList.forEach { wait->
if(wait.lineId!=null&&wait.lineName!=null&&wait.taskId!=null&&wait.taskStartTime!=null) {
val tempTask = WaitUploadTask(wait.taskStartTime!!,wait.taskId!!,0)
val tempLine = WaitUploadLine(wait.lineName!!, wait.lineId!!, mutableListOf(tempTask))
val haveSave = result.filter {
it.lineId==tempLine.lineId
}
if(haveSave.isEmpty()){
result.add(tempLine)
}else{
haveSave.first().task.add(tempTask)
}
}
}
Observable.just(result) }
?.subscribeOn(Schedulers.io())
?.observeOn(AndroidSchedulers.mainThread())
}
}

View File

@@ -44,7 +44,11 @@ class RunningTaskAdapter(
val lineTasks = dataList!![currentPosition]
val sb = StringBuilder().append("班次:")
lineTasks.task.forEach {
sb.append(TimeUtils.millis2String(it.taskStartTime, "HH:mm")).append(" ")
sb.append(TimeUtils.millis2String(it.taskStartTime, "HH:mm"))
if(it.waitUploadWriteOff>0){
sb.append("(${it.waitUploadWriteOff})")
}
sb.append(" ")
}
holder.actvLineTaskName.text = lineTasks.lineName
holder.actvWaitUploadItem.text = sb

View File

@@ -2,6 +2,7 @@ package com.mogo.och.weaknet.ui.taskrunned
import androidx.lifecycle.ViewModel
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.och.common.module.manager.loop.BizLoopManager
import com.mogo.och.common.module.utils.RxUtils
import com.mogo.och.weaknet.bean.WaitUploadLine
import com.mogo.och.weaknet.model.EventModel
@@ -59,25 +60,28 @@ class RunningTastViewModel : ViewModel() {
}
fun queryNewData() {
EventModel.queryWaitUploadInfo()
?.subscribe(object : Observer<MutableList<WaitUploadLine>> {
override fun onSubscribe(d: Disposable) {
CallerLogger.d(TAG, "onSubscribe")
}
BizLoopManager.runInIoThread {
EventModel.queryWaitUploadInfo()
?.subscribe(object : Observer<MutableList<WaitUploadLine>> {
override fun onSubscribe(d: Disposable) {
CallerLogger.d(TAG, "onSubscribe")
}
override fun onError(e: Throwable) {
CallerLogger.d(TAG, "onError${e.printStackTrace()}")
}
override fun onError(e: Throwable) {
CallerLogger.d(TAG, "onError${e.printStackTrace()}")
}
override fun onComplete() {
CallerLogger.d(TAG, "onComplete")
}
override fun onComplete() {
CallerLogger.d(TAG, "onComplete")
}
override fun onNext(data: MutableList<WaitUploadLine>) {
this@RunningTastViewModel.viewCallback?.showData(data)
}
override fun onNext(data: MutableList<WaitUploadLine>) {
this@RunningTastViewModel.viewCallback?.showData(data)
}
})
}
})
}
fun uploadData() {