Merge remote-tracking branch 'origin/dev_robotaxi-d_240912_6.7.2_local' into dev_robotaxi-d_240912_6.7.2_local

This commit is contained in:
donghongyu-pc
2024-10-23 15:44:04 +08:00
17 changed files with 73 additions and 25 deletions

View File

@@ -99,9 +99,9 @@ class LoginProvider : LoginService {
}
}
override fun queryLoginStatusByNet() {
override fun queryLoginStatusByNet(readCatche:Boolean) {
CallerLogger.d(tag, "queryLoginStatusByNet")
LoginModel.queryCarStatus()
LoginModel.queryCarStatus(readCatche)
}
override fun loginOut() {

View File

@@ -52,7 +52,7 @@ import java.util.concurrent.TimeUnit
@SuppressLint("StaticFieldLeak")
object LoginModel {
private const val TAG = "TaxiLoginModel"
private const val TAG = "LoginModel"
private var mContext: Context? = null
var iTaxiLoginCallback: ITaxiLoginCallback? = null
private var subscribe: Disposable? = null
@@ -63,6 +63,7 @@ object LoginModel {
d(TAG, "onIntentReceived = %s", intentStr)
if (ConnectivityManager.CONNECTIVITY_ACTION == intentStr) {
if (NetworkUtils.isConnected(mContext)) {
// 网络链接成功可以先读取本地再获取服务器
queryCarStatus()
}
}
@@ -139,7 +140,8 @@ object LoginModel {
if (null != data && 0 == data.code) {
// 获取验证码成功
ToastCharterUtils.showToastShort(mContext?.getString(R.string.module_och_taxi_login_login_success))
queryCarStatus()
// 登录成功需要新的值
queryCarStatus(false)
} else {
if (data != null) {
ToastCharterUtils.showToastShort(data.code.toString())
@@ -173,8 +175,9 @@ object LoginModel {
* 7、网络状态变更后查询
* 8、登录页面关闭后查下状态
*/
fun queryCarStatus() {
fun queryCarStatus(readCatche:Boolean = true) {
mContext?.let {
if(readCatche){
val logingInfoJson = OchSPManager.getString(loginInfoKey)
val timeText = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd)
logingInfoJson?.let {logininfo->
@@ -184,6 +187,7 @@ object LoginModel {
go2LoginInfo(oldLoginInfo,"缓存获取")
}
}
}
OchCommonServiceManager.queryDriverServiceStatus(it, object : OchCommonServiceCallback<DriverStatusQueryRespBean> {
override fun onSuccess(data: DriverStatusQueryRespBean?) {
go2LoginInfo(data,"接口获取")
@@ -204,15 +208,17 @@ object LoginModel {
ToastCharterUtils.showToastShort(mContext!!.getString(R.string.request_error_tip))
}
LoginStatusManager.setLoginError(-10012,"网络错误")
// 依赖参数
subscribe = Observable.timer(5, TimeUnit.SECONDS)
.subscribe { _: Long? -> queryCarStatus() }
.subscribe { _: Long? -> queryCarStatus(readCatche) }
}
override fun onFail(code: Int, msg: String) {
LoginStatusManager.setLoginError(code,"msg:${msg}")
ToastUtilsOch.showWithCodeMessage(code, msg)
// 依赖参数
subscribe = Observable.timer(3, TimeUnit.SECONDS)
.subscribe { _: Long? -> queryCarStatus() }
.subscribe { _: Long? -> queryCarStatus(readCatche) }
// if (code == OchCommonConst.WAIT_TAKEN) {
//
// } else {
@@ -223,9 +229,10 @@ object LoginModel {
}
}
@Synchronized
private fun go2LoginInfo(data: DriverStatusQueryRespBean?, source: String) {
CallerLogger.d(TAG,"设置源:${source}")
data?.let {
CallerLogger.d(TAG,"设置源:${source}")
LoginStatusManager.setLoginInfo(data.data)
}
if (FunctionBuildConfig.ochdebug) {
@@ -271,7 +278,8 @@ object LoginModel {
if (null != data && 0 == data.code) {
loginFail(false)
OchSPManager.remove(loginInfoKey)
queryCarStatus()
// 退出登录成功需要查询新的
queryCarStatus(false)
}
}

View File

@@ -112,7 +112,8 @@ class LoginPresenter(view: LoginFragment?) : Presenter<LoginFragment?>(view), IT
gotoOfflineMode()
return
}
LoginModel.queryCarStatus()
// 需要实时查询新的
LoginModel.queryCarStatus(false)
mView?.closeSoftInput()
this.phone = phone
this.code = code

View File

@@ -20,7 +20,7 @@ interface LoginService :CommonService {
fun getBusinessType():BusinessEnum
fun queryLoginStatusByNet()
fun queryLoginStatusByNet(readCatche:Boolean=false)
/**
* 登出

View File

@@ -43,8 +43,8 @@ object LoginStatusManager : CallerBase<ILoginCallback>() {
}
@JvmStatic
fun queryLoginStatusByNet() {
loginService?.queryLoginStatusByNet()
fun queryLoginStatusByNet(readCatche:Boolean=false) {
loginService?.queryLoginStatusByNet(readCatche)
}
@JvmStatic
fun getPurpose(): RoleEnum {

View File

@@ -34,7 +34,8 @@ class FacadeDriverProvider : FacadeProvider() {
sweeperFacadeProvider.init(context)
}else {
super.init(context)
LoginStatusManager.queryLoginStatusByNet()
// 初始化先读取客户端 让客户尽快进入
LoginStatusManager.queryLoginStatusByNet(true)
LanSocketManager.load()
LoginLanDriverSocket.load()
CheckVinManager.load()

View File

@@ -13,6 +13,7 @@ import com.mogo.och.weaknet.repository.net.weaknet.dali.shuttle.DaliShuttleServi
import com.mogo.och.weaknet.repository.db.bean.EventDataBean
import com.mogo.och.weaknet.repository.db.repository.EventDb
import com.mogo.och.weaknet.repository.RepositoryManager
import com.mogo.och.weaknet.repository.db.repository.SiteDb
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers
@@ -43,6 +44,11 @@ object EventModel : EventDb.EventCallback {
override fun notifySyn() {
BizLoopManager.removeCallback(loopUpdateInfo)
updateEvent()
checkDbData()
}
private fun checkDbData() {
SiteDb.checkData()
}

View File

@@ -1,6 +1,7 @@
package com.mogo.och.weaknet.repository.db.dao
import androidx.room.Dao
import androidx.room.Delete
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
@@ -12,6 +13,10 @@ interface SiteDataDao {
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insert(vararg lineDataBean: SiteDataBean)
@Delete()
fun deleteById(vararg siteDataBean: SiteDataBean)
// 线路删除时同步删除所属站点
@Query("DELETE FROM ${SiteDataBean.siteDataTable} WHERE line_id = :lineId")
fun deleteByLineId(lineId: Long)
@@ -26,6 +31,9 @@ interface SiteDataDao {
@Query("SELECT * FROM ${SiteDataBean.siteDataTable} WHERE line_id = :lineId")
fun querySitesByLineId(lineId: Long):List<SiteDataBean>?
@Query("SELECT * FROM ${SiteDataBean.siteDataTable} GROUP by md5 HAVING count(1) > 1")
fun checkData():List<SiteDataBean>?
fun querySiteByLineIdAndSiteId(lineId: Long,siteId:Long): SiteDataBean?{
val queryContrailByLineId = querySitesByLineIdAndSiteId(lineId,siteId)
return if(queryContrailByLineId.isNullOrEmpty()){

View File

@@ -1,6 +1,9 @@
package com.mogo.och.weaknet.repository.db.repository
import com.mogo.eagle.core.network.utils.digest.DigestUtils
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.SiteDataBean
@@ -31,11 +34,25 @@ object SiteDb {
siteDataDao.insert(it)
}
}
checkData()
}
}
BizLoopManager.runInIoThread(runnable)
}
fun checkData() {
CallerLogger.d(TAG,"检测站点数据")
siteDataDao?.checkData()?.let { list ->
list.forEach {
siteDataDao?.deleteById(it)
}
if (list.isNotEmpty()) {
OchChainLogManager.writeChainLogDb("数据检测", "有重复数据${list}")
checkData()
}
}
}
fun deleteByLineId(lineId: Long) {
siteDataDao?.deleteByLineId(lineId)
}

View File

@@ -25,7 +25,7 @@ object TaskSiteDb {
fun startTask(taskId: Long, linId: Long,lineName:String):Int? {
// 获取线路的站点
var startTime = System.currentTimeMillis()
val querySites = SiteDb.querySiteByLineId(linId)
val querySites = SiteDb.querySiteByLineId(linId)?.distinctBy { it.siteId }
if(querySites.isNullOrEmpty()){
throw DbException("没有站点数据")
}

View File

@@ -42,7 +42,7 @@ class DaliBusServiceManager: NormalNetInterface {
SharedPrefsMgr.getInstance().token,
BusQueryLineStationsRequest()
) .transformTry()
.flatMap(OchCommonNet("queryBusRoutes",false))
.flatMap(OchCommonNet("saas bus queryBusRoutes",false))
.flatMap {
Observable.just(it.data?: BusRoutesResult())
}

View File

@@ -40,7 +40,7 @@ class MogoBusServiceManager: NormalNetInterface {
SharedPrefsMgr.getInstance().token,
BusQueryLineStationsRequest()
) .transformTry()
.flatMap(OchCommonNet("queryBusRoutes",false))
.flatMap(OchCommonNet("mogo/dali bus queryBusRoutes",false))
.flatMap {
Observable.just(it.data?: BusRoutesResult())
}

View File

@@ -41,7 +41,7 @@ class MogoShuttleServiceManager: NormalNetInterface {
SharedPrefsMgr.getInstance().token,
BusQueryLineStationsRequest()
) .transformTry()
.flatMap(OchCommonNet("queryBusRoutes",false))
.flatMap(OchCommonNet("mogo/dali shuttle queryBusRoutes",false))
.flatMap {
Observable.just(it.data?: BusRoutesResult())
}

View File

@@ -41,7 +41,7 @@ object DaliShuttleServiceManager: WeakNetInterface {
SharedPrefsMgr.getInstance().token,
BusQueryLineStationsRequest()
) .transformIoTry()
.flatMap(OchCommonNet("queryBusRoutes",false))
.flatMap(OchCommonNet("saas shuttle queryBusRoutes",false))
.flatMap {
Observable.just(it.data?:BusRoutesResult())
}

View File

@@ -107,13 +107,17 @@ class BoneTabLayout @JvmOverloads constructor(
faultReasonView.setClickListener(object: FaultReasonView.ClickListener{
override fun closeFaultReasonView() {
updateTabType(TabType.REPORT_INFO)
if(tabType == TabType.REPORT_INFO){
updateTabType(TabType.REPORT_INFO)
}
}
})
workOrderView.setClickListener(object: WorkOrderView.ClickListener{
override fun closeWorkOrderView() {
updateTabType(TabType.REPORT_INFO)
if(tabType == TabType.REPORT_INFO){
updateTabType(TabType.REPORT_INFO)
}
}
})
}

View File

@@ -580,6 +580,8 @@ class FaultReasonView @JvmOverloads constructor(
level2Name = ""
level3Name = ""
reportNote = "" //上报描述
tvUploadSuccess.visibility = View.GONE
faultReasonGroup.visibility = View.VISIBLE
}
}

View File

@@ -38,7 +38,8 @@
android:textSize="@dimen/sp_32"
app:layout_constraintTop_toTopOf="@id/tvFaultTitle"
app:layout_constraintBottom_toBottomOf="@id/tvFaultTitle"
app:layout_constraintRight_toRightOf="@id/tvFaultType"
app:layout_constraintRight_toRightOf="@id/viewTitleBg"
android:layout_marginEnd="@dimen/dp_40"
/>
<View
@@ -332,10 +333,10 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:constraint_referenced_ids="viewFaultTypeLabel,tvTypeTitle,tvFaultType,
viewFaultReasonLabel,tvFaultReasonTitle,viewFaultTimeLabel,
tvFaultTimeTitle,ivTimeReduce,tvOccurrenceTime,ivTimeAdd,
viewFaultReasonLabel,tvFaultReasonTitle,tvFaultReason,viewFaultTimeLabel,
tvFaultTimeTitle,viewTimeBg,ivTimeReduce,tvOccurrenceTime,ivTimeAdd,
viewFaultNoteLabel,tvFaultNoteTitle,tvFaultNoteSupplement,
etNoteInput,ivNoteAudio,tvFaultReport,tvFaultCancel,tvFaultReason"
etNoteInput,ivNoteAudio,tvFaultReport,tvFaultCancel"
/>
</androidx.constraintlayout.widget.ConstraintLayout>