[fea]
[核销次数查询和展示]
This commit is contained in:
yangyakun
2024-11-19 19:42:18 +08:00
parent 21003a1a8c
commit f62fb218f7
8 changed files with 99 additions and 45 deletions

View File

@@ -68,13 +68,13 @@ object TicketModel {
if(passenger==null||passenger.passengerSize==0){ if(passenger==null||passenger.passengerSize==0){
return return
} }
RepositoryManager.saveWriteOff4Socket(passenger)
writeOffSuccess( writeOffSuccess(
passenger.passengerSize, passenger.passengerSize,
passenger.phone ?: "", passenger.phone ?: "",
passenger.ticketName?:"", passenger.ticketName?:"",
0 0
) )
TODO("服务器端核销需要在本地报备一下 用于计算数据")
} }
} }
@@ -110,29 +110,42 @@ object TicketModel {
private fun selectWriteOffCount(){ private fun selectWriteOffCount(){
LineManager.getStations().first?.let { firstStation-> LineManager.getStations().first?.let { firstStation->
LineModel.currentTask?.let { currentTask-> LineModel.currentTask?.let { currentTask->
RepositoryManager.queryWriteoffCount( val queryWriteoffCount = RepositoryManager.queryWriteoffCount(
AbsMogoApplication.getApp(), AbsMogoApplication.getApp(),
currentTask.taskId?:0L, currentTask.taskId ?: 0L,
firstStation.siteId.toLong(), firstStation.siteId.toLong()
object : OchCommonServiceCallback<WriteOffCountResponse> { )
override fun onSuccess(data: WriteOffCountResponse?) { if(queryWriteoffCount!=null){
data?.let { queryWriteoffCount.subscribe(
val count = if(it.data==null){ object : Observer<Int> {
0 override fun onSubscribe(d: Disposable) {
}else{
it.data
}
emitterMain?.onNext(Pair<Int,Int>(firstStation.siteId,count))
d(SceneConstant.M_BUS + TAG, "${firstStation.name}核销人数:${count}")
OchChainLogManager.writeChainLog("核销人数","任务:${currentTask.taskId} zhan'dian")
} }
}
override fun onFail(code: Int, msg: String?) { override fun onError(e: Throwable) {
}
override fun onComplete() {
}
override fun onNext(count: Int) {
emitterMain?.onNext(Pair<Int, Int>(firstStation.siteId, count))
d(
SceneConstant.M_BUS + TAG,
"${firstStation.name}核销人数:${count}"
)
OchChainLogManager.writeChainLog(
"核销人数",
"任务:${currentTask.taskId} zhan'dian"
)
}
} }
}) )
return return
}
} }
} }

View File

@@ -7,12 +7,13 @@ import com.mogo.eagle.core.data.BaseData
import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.och.common.module.manager.loop.BizLoopManager
import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffDetialMsg 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.network.OchCommonServiceCallback
import com.mogo.och.weaknet.bean.WaitUploadLine import com.mogo.och.weaknet.bean.WaitUploadLine
import com.mogo.och.weaknet.bean.WriteOffPassenger
import com.mogo.och.weaknet.bean.request.ShuttleEventRequest import com.mogo.och.weaknet.bean.request.ShuttleEventRequest
import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse
import com.mogo.och.weaknet.repository.db.MyDataBase import com.mogo.och.weaknet.repository.db.MyDataBase
import com.mogo.och.weaknet.repository.db.bean.LineDataBean 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.TaskDataBean
@@ -179,8 +180,8 @@ object RepositoryManager {
} }
} }
fun queryWriteoffCount(context: Context, taskId: Long, siteId: Long, callback: OchCommonServiceCallback<WriteOffCountResponse>?){ fun queryWriteoffCount(context: Context, taskId: Long, siteId: Long): Observable<Int>? {
writeOffRepository?.queryWriteoffCount(context,taskId,siteId,callback) return writeOffRepository?.queryWriteoffCount(context,taskId,siteId)
} }
fun writeOff(writeOffDetialMsg: WriteOffDetialMsg): Observable<PassengerWriteOffResponse.Result>? { fun writeOff(writeOffDetialMsg: WriteOffDetialMsg): Observable<PassengerWriteOffResponse.Result>? {
@@ -196,6 +197,15 @@ object RepositoryManager {
return writeOffRepository?.canCanEndTask(taskId)?:true return writeOffRepository?.canCanEndTask(taskId)?:true
} }
/**
* 安全员小程序核销成功的用户计数用
*/
fun saveWriteOff4Socket(passenger: WriteOffPassenger) {
BizLoopManager.runInIoThread{
writeOffRepository?.writeOffEvent4Socket(passenger)
}
}
fun closeDb() { fun closeDb() {
if (supportDb()) { if (supportDb()) {
MyDataBase.instance?.close() MyDataBase.instance?.close()

View File

@@ -19,6 +19,11 @@ interface WriteOffDataDao {
@Delete @Delete
fun delete(vararg eventDataBean: WriteOffDataBean) fun delete(vararg eventDataBean: WriteOffDataBean)
// 删除过时数据
@Query("DELETE FROM ${WriteOffDataBean.writeoffDataTable} WHERE event_save_time < :zeroTime")
fun deleteObsoleteData(zeroTime: Long = DateTimeUtil.getCurrentDateZero()):Int
@Query("SELECT * FROM ${WriteOffDataBean.writeoffDataTable} WHERE event_save_time > :zeroTime and order_no = :orderNo order by event_save_time") @Query("SELECT * FROM ${WriteOffDataBean.writeoffDataTable} WHERE event_save_time > :zeroTime and order_no = :orderNo order by event_save_time")
fun queryWriteOffByOrderNo(zeroTime: Long = DateTimeUtil.getCurrentDateZero(),orderNo:String): List<WriteOffDataBean>? fun queryWriteOffByOrderNo(zeroTime: Long = DateTimeUtil.getCurrentDateZero(),orderNo:String): List<WriteOffDataBean>?
@@ -28,5 +33,8 @@ interface WriteOffDataDao {
@Query("SELECT * FROM ${WriteOffDataBean.writeoffDataTable} WHERE update_status = ${WriteOffDataBean.notUpdate} LIMIT 10 OFFSET 0") @Query("SELECT * FROM ${WriteOffDataBean.writeoffDataTable} WHERE update_status = ${WriteOffDataBean.notUpdate} LIMIT 10 OFFSET 0")
fun queryWriteOffEventByStatusWithPage():List<WriteOffDataBean>? fun queryWriteOffEventByStatusWithPage():List<WriteOffDataBean>?
@Query("SELECT * FROM ${WriteOffDataBean.writeoffDataTable} WHERE event_save_time > :zeroTime and task_id = :taskId and site_id = :siteId")
fun queryWriteOffByTaskAndSiteId(taskId: Long, siteId: Long,zeroTime: Long = DateTimeUtil.getCurrentDateZero()):List<WriteOffDataBean>?
} }

View File

@@ -1,5 +1,6 @@
package com.mogo.och.weaknet.repository.db.repository package com.mogo.och.weaknet.repository.db.repository
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import com.mogo.och.weaknet.model.EventModel import com.mogo.och.weaknet.model.EventModel
import com.mogo.och.weaknet.repository.db.IDbRepository import com.mogo.och.weaknet.repository.db.IDbRepository
import com.mogo.och.weaknet.repository.db.MyDataBase import com.mogo.och.weaknet.repository.db.MyDataBase
@@ -50,5 +51,15 @@ object WriteOffDb: IDbRepository {
return queryWriteOffByOrderNo?.size?:0 return queryWriteOffByOrderNo?.size?:0
} }
fun queryWriteOffByTaskAndSiteId(taskId: Long, siteId: Long): List<WriteOffDataBean>? {
return writeOffDataDao?.queryWriteOffByTaskAndSiteId(taskId,siteId)
}
fun deleteObsoleteData() {
writeOffDataDao?.deleteObsoleteData()?.let {
OchChainLogManager.writeChainLogDb("删除临时数据", "WriteOff删除数量:${it}")
}
}
} }

View File

@@ -47,22 +47,6 @@ object SaasBusServiceManager: NetInterface {
} }
} }
/**
* 只发生在大理和saas环境 查询当前站点核销的人数
*/
override fun writeOffCount(context: Context?, taskId: Long?, siteId: Long?): Observable<Int> {
return mService.writeOffCount(
MoGoAiCloudClientConfig.getInstance().serviceAppId,
SharedPrefsMgr.getInstance().token,
WriteOffCountReqBean(OchSPManager.getSn()?:"",taskId?:0, siteId?:0,)
)
.transformIoTry()
.flatMap(OchCommonNet("saas shuttle writeOffCount",false))
.flatMap {
Observable.just(it.data?:0)
}
}
/** /**
* 同步 线路、站点、任务、自驾轨迹信息 * 同步 线路、站点、任务、自驾轨迹信息
*/ */

View File

@@ -4,13 +4,14 @@ import android.content.Context
import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffDetialMsg 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.network.OchCommonServiceCallback
import com.mogo.och.weaknet.bean.WaitUploadLine import com.mogo.och.weaknet.bean.WaitUploadLine
import com.mogo.och.weaknet.bean.WriteOffPassenger
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse import com.mogo.och.weaknet.bean.response.WriteOffCountResponse
import com.mogo.och.weaknet.repository.net.bean.response.PassengerWriteOffResponse import com.mogo.och.weaknet.repository.net.bean.response.PassengerWriteOffResponse
import io.reactivex.Observable import io.reactivex.Observable
interface IWriteOffRepository { interface IWriteOffRepository {
fun queryWriteoffCount(context: Context, taskId: Long, siteId: Long, callback: OchCommonServiceCallback<WriteOffCountResponse>?): Observable<Int>? fun queryWriteoffCount(context: Context, taskId: Long, siteId: Long): Observable<Int>?
fun writeOffEvent(writeOffDetialMsg: WriteOffDetialMsg): Observable<PassengerWriteOffResponse.Result>? fun writeOffEvent(writeOffDetialMsg: WriteOffDetialMsg): Observable<PassengerWriteOffResponse.Result>?
@@ -21,5 +22,8 @@ interface IWriteOffRepository {
} }
fun queryWaitUploadData(): Observable<MutableList<WaitUploadLine>>? fun queryWaitUploadData(): Observable<MutableList<WaitUploadLine>>?
fun writeOffEvent4Socket(passenger: WriteOffPassenger) {
}
} }

View File

@@ -11,11 +11,10 @@ import com.mogo.och.common.module.biz.login.LoginStatusManager
import com.mogo.och.common.module.manager.autopilot.line.LineManager import com.mogo.och.common.module.manager.autopilot.line.LineManager
import com.mogo.och.common.module.manager.cache.OchSPManager 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.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.common.module.utils.DateTimeUtil
import com.mogo.och.weaknet.bean.WaitUploadLine import com.mogo.och.weaknet.bean.WaitUploadLine
import com.mogo.och.weaknet.bean.WaitUploadTask import com.mogo.och.weaknet.bean.WaitUploadTask
import com.mogo.och.weaknet.bean.response.WriteOffCountResponse import com.mogo.och.weaknet.bean.WriteOffPassenger
import com.mogo.och.weaknet.model.LineModel import com.mogo.och.weaknet.model.LineModel
import com.mogo.och.weaknet.repository.db.bean.WriteOffDataBean 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.EventDb
@@ -64,10 +63,13 @@ class WriteOffCacheRepository : IWriteOffRepository {
override fun queryWriteoffCount( override fun queryWriteoffCount(
context: Context, context: Context,
taskId: Long, taskId: Long,
siteId: Long, siteId: Long
callback: OchCommonServiceCallback<WriteOffCountResponse>?
): Observable<Int>? { ): Observable<Int>? {
TODO("本地计算核销数量 数据来源有两个地方 1、本地数据库计算 + 2、服务器核销") val queryWriteOffByTaskAndSiteId = WriteOffDb.queryWriteOffByTaskAndSiteId(taskId, siteId)
return Observable.just(queryWriteOffByTaskAndSiteId)
.flatMap {
return@flatMap Observable.just(it?.size ?:0)
}
} }
override fun writeOffEvent(writeOffDetialMsg: WriteOffDetialMsg): Observable<PassengerWriteOffResponse.Result>? { override fun writeOffEvent(writeOffDetialMsg: WriteOffDetialMsg): Observable<PassengerWriteOffResponse.Result>? {
@@ -212,6 +214,29 @@ class WriteOffCacheRepository : IWriteOffRepository {
?.observeOn(AndroidSchedulers.mainThread()) ?.observeOn(AndroidSchedulers.mainThread())
} }
override fun writeOffEvent4Socket(passenger: WriteOffPassenger) {
val addWrite = WriteOffDataBean()
//addWrite.expiryTime = it.expiryTime
//addWrite.bookingTime = it.bookingTime
//addWrite.type = it.type
addWrite.taskId = LineModel.currentTask?.taskId
LineManager.getStationsWithLine { start, end, lineInfo ->
addWrite.siteId = start.siteId.toLong()
addWrite.lineId = lineInfo.lineId
}
//addWrite.availableTimes = it.availableTimes
addWrite.orderNo = passenger.orderNo
//addWrite.uid = it.uid
addWrite.phone = passenger.phone
addWrite.ticketSize = passenger.passengerSize
addWrite.ticketName = passenger.ticketName
//addWrite.msgId = OchSPManager.getSn()+System.currentTimeMillis()
addWrite.driverId = LoginStatusManager.getLoginInfo()?.driverId?:0
//addWrite.businessTime = System.currentTimeMillis()
addWrite.updateStatus = WriteOffDataBean.updated
WriteOffDb.addOrUpdate(addWrite)
}
override fun release() { override fun release() {
weakNetInterface = null weakNetInterface = null
CallerLogger.d(TAG,"重置 weakNetInterface") CallerLogger.d(TAG,"重置 weakNetInterface")

View File

@@ -62,7 +62,6 @@ class WriteOffNormallRepository: IWriteOffRepository {
context: Context, context: Context,
taskId: Long, taskId: Long,
siteId: Long, siteId: Long,
callback: OchCommonServiceCallback<WriteOffCountResponse>?
): Observable<Int>? { ): Observable<Int>? {
return normalNetInterface?.writeOffCount(context,taskId,siteId) return normalNetInterface?.writeOffCount(context,taskId,siteId)
} }