[6.9.0]
[fix] [部分db迁移]
This commit is contained in:
@@ -39,6 +39,9 @@ dependencies {
|
||||
implementation rootProject.ext.dependencies.material
|
||||
implementation rootProject.ext.dependencies.rxandroid
|
||||
|
||||
implementation rootProject.ext.dependencies.androidxroomruntime
|
||||
implementation project(":OCH:common:common")
|
||||
|
||||
if (Boolean.valueOf(USE_MAVEN_PACKAGE)) {
|
||||
api rootProject.ext.dependencies.mogoutils
|
||||
api rootProject.ext.dependencies.mogo_core_data
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mogo.och.weaknet.repository.db.bean
|
||||
package com.mogo.och.data.db.bean
|
||||
|
||||
import androidx.room.ColumnInfo
|
||||
import androidx.room.Entity
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mogo.och.weaknet.repository.db.bean
|
||||
package com.mogo.och.data.db.bean
|
||||
|
||||
import androidx.room.ColumnInfo
|
||||
import androidx.room.Entity
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mogo.och.weaknet.repository.db.bean
|
||||
package com.mogo.och.data.db.bean
|
||||
|
||||
import androidx.room.ColumnInfo
|
||||
import androidx.room.Entity
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.mogo.och.weaknet.repository.db.dao
|
||||
package com.mogo.och.data.db.dao
|
||||
|
||||
import androidx.room.Dao
|
||||
import androidx.room.Insert
|
||||
import androidx.room.OnConflictStrategy
|
||||
import androidx.room.Query
|
||||
import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean
|
||||
import com.mogo.och.data.db.bean.ContrailDataBean
|
||||
|
||||
@Dao
|
||||
interface ContrailDataDao {
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mogo.och.weaknet.repository.db.dao
|
||||
package com.mogo.och.data.db.dao
|
||||
|
||||
import androidx.room.Dao
|
||||
import androidx.room.Delete
|
||||
@@ -6,7 +6,7 @@ import androidx.room.Insert
|
||||
import androidx.room.OnConflictStrategy
|
||||
import androidx.room.Query
|
||||
import com.mogo.och.common.module.utils.DateTimeUtil
|
||||
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
|
||||
import com.mogo.och.data.db.bean.LineDataBean
|
||||
import io.reactivex.Observable
|
||||
|
||||
@Dao
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.mogo.och.weaknet.repository.db.dao
|
||||
package com.mogo.och.data.db.dao
|
||||
|
||||
import androidx.room.Dao
|
||||
import androidx.room.Delete
|
||||
import androidx.room.Insert
|
||||
import androidx.room.OnConflictStrategy
|
||||
import androidx.room.Query
|
||||
import com.mogo.och.weaknet.repository.db.bean.SiteDataBean
|
||||
import com.mogo.och.data.db.bean.SiteDataBean
|
||||
|
||||
@Dao
|
||||
interface SiteDataDao {
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mogo.och.weaknet.repository.db.exception
|
||||
package com.mogo.och.data.db.exception
|
||||
|
||||
class DbException: RuntimeException {
|
||||
constructor() : super()
|
||||
@@ -0,0 +1,63 @@
|
||||
package com.mogo.och.data.db.repository
|
||||
|
||||
import com.mogo.eagle.core.network.utils.digest.DigestUtils
|
||||
import com.mogo.och.common.module.manager.loop.BizLoopManager
|
||||
import com.mogo.och.data.db.bean.ContrailDataBean
|
||||
import com.mogo.och.data.db.dao.ContrailDataDao
|
||||
|
||||
abstract class BaseContraiDb {
|
||||
|
||||
open var contrailDao: ContrailDataDao?=null
|
||||
|
||||
fun addOrUpdate(contrailDatalist:List<ContrailDataBean>){
|
||||
val runnable = Runnable {
|
||||
// 校验数据个数
|
||||
contrailDao?.let { contrailDao->
|
||||
contrailDatalist.forEach {
|
||||
val md5Source = it.toString()
|
||||
val md5Hex = DigestUtils.md5Hex(md5Source)
|
||||
val queryContrailByMd5 = contrailDao.queryContrailByMd5(md5Hex)
|
||||
if(queryContrailByMd5.isNullOrEmpty()){// 没有值或者值有变化
|
||||
val needUpdate = contrailDao.queryContrailByLineIdOne(it.lineId!!)
|
||||
it.md5 = md5Hex
|
||||
if(needUpdate!=null){// 更新
|
||||
it.id = needUpdate.id
|
||||
contrailDao.update(it.csvFileUrl?:"",it.csvFileMd5?:"",it.txtFileUrl?:"",it.txtFileMd5?:"",System.currentTimeMillis(),md5Hex,needUpdate.id)
|
||||
}else{// 插入新的
|
||||
contrailDao.insert(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
BizLoopManager.runInIoThread(runnable)
|
||||
}
|
||||
|
||||
fun deleteByLineId(lineId: Long) {
|
||||
contrailDao?.deleteByLineId(lineId)
|
||||
}
|
||||
|
||||
fun queryAutopilotInfoByLineid(lineId: Long): ContrailDataBean? {
|
||||
return contrailDao?.queryContrailByLineIdOne(lineId)
|
||||
}
|
||||
|
||||
fun saveRunningInfo(
|
||||
lineId: Int,
|
||||
csvFileMd5: String?,
|
||||
csvFileUrl: String?,
|
||||
txtFileUrl: String?,
|
||||
txtFileMd5: String?,
|
||||
contrailSaveTime: Long
|
||||
) {
|
||||
val runningLine = ContrailDataBean(
|
||||
lineId = lineId.toLong(),
|
||||
csvFileUrl = csvFileUrl,
|
||||
csvFileMd5 = csvFileMd5,
|
||||
txtFileUrl = txtFileUrl,
|
||||
txtFileMd5 = txtFileMd5,
|
||||
contrailSaveTime = contrailSaveTime
|
||||
)
|
||||
addOrUpdate(mutableListOf(runningLine))
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
package com.mogo.och.data.db.repository
|
||||
|
||||
import androidx.room.Transaction
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import com.mogo.och.common.module.manager.loop.BizLoopManager
|
||||
import com.mogo.och.data.db.bean.LineDataBean
|
||||
import com.mogo.och.data.db.dao.LineDataDao
|
||||
import io.reactivex.Observable
|
||||
|
||||
abstract class BaseLineDb {
|
||||
|
||||
open var lineDao: LineDataDao?=null
|
||||
|
||||
|
||||
fun cleanWeltData(){
|
||||
lineDao?.deleteWeltData()
|
||||
}
|
||||
|
||||
fun queryCanUserLine(): List<LineDataBean>? {
|
||||
return lineDao?.loadData()
|
||||
}
|
||||
|
||||
/**
|
||||
* 读取可用线路
|
||||
*/
|
||||
fun queryCanUseLineRx(): Observable<List<LineDataBean>?>? {
|
||||
return lineDao?.loadDataRx()
|
||||
}
|
||||
|
||||
/**
|
||||
* 后台line 删除 需要连带着把轨迹信息、站点信息和任务信息删除
|
||||
*/
|
||||
abstract fun deleteSitesTaskAndContraiDb(lineId:Long)
|
||||
|
||||
fun checkAndUpdate(serverDatalist:List<LineDataBean>){
|
||||
val runable = object :Runnable{
|
||||
@Transaction
|
||||
override fun run() {
|
||||
// 校验数据个数
|
||||
lineDao?.let { lineDao->
|
||||
val loadData = lineDao.loadData()
|
||||
if(loadData.isNullOrEmpty()){
|
||||
// 插入新的值
|
||||
lineDao.insert(*serverDatalist.toTypedArray())
|
||||
// TODO: Ui展示需要动态刷新UI去
|
||||
return
|
||||
}
|
||||
// 后台新增数据
|
||||
val needAddDatas = serverDatalist-loadData
|
||||
// 后台没有本地数据库有的未分配线路
|
||||
val needMinusDatas = loadData-serverDatalist
|
||||
|
||||
// TODO: Ui展示需要动态刷新UI去
|
||||
|
||||
if (needAddDatas.isNotEmpty()) {
|
||||
// 新增线路
|
||||
lineDao.insert(*needAddDatas.toTypedArray())
|
||||
}
|
||||
if (needMinusDatas.isNotEmpty()) {
|
||||
// 删除线路
|
||||
lineDao.delete(*needMinusDatas.toTypedArray())
|
||||
needMinusDatas.forEach { minusLine->
|
||||
minusLine.lineId?.let { lineId->
|
||||
// 删除线路对应的站点
|
||||
|
||||
deleteSitesTaskAndContraiDb(lineId)
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 交集 服务器端
|
||||
val needUpdateByMd5 = serverDatalist-needAddDatas
|
||||
// 交集 本地数据库
|
||||
val oldDataList = loadData-needMinusDatas
|
||||
|
||||
val needDelete = mutableListOf<LineDataBean>()
|
||||
val needUpDate = mutableListOf<LineDataBean>()
|
||||
|
||||
needUpdateByMd5.forEach {
|
||||
val oldList = oldDataList.filter { local -> local.lineId == it.lineId }
|
||||
if(oldList.isNotEmpty()){
|
||||
oldList.forEachIndexed { index, lineBean ->
|
||||
if(index==0){
|
||||
if (lineBean.lineName == it.lineName && lineBean.endStationName == it.endStationName) {
|
||||
// 数据没有变化
|
||||
}else{
|
||||
it.id = lineBean.id
|
||||
needUpDate.add(it)
|
||||
}
|
||||
}else{
|
||||
// 站点多了 需要删除
|
||||
needDelete.add(lineBean)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
lineDao.delete(*needDelete.toTypedArray())
|
||||
|
||||
needUpDate.forEach { updateItem->
|
||||
// 跟新数据
|
||||
lineDao.updateInfo(updateItem.lineName,updateItem.endStationName,updateItem.id)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BizLoopManager.runInIoThread(runable)
|
||||
}
|
||||
|
||||
fun deleteObsoleteData(){
|
||||
lineDao?.deleteObsoleteData()?.let {
|
||||
OchChainLogManager.writeChainLogDb("删除临时数据","Line删除数量:${it}")
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 没有线路就插入线路
|
||||
*/
|
||||
fun saveRunningInfo(lineId: Int, lineName: String?, endStationName: String?) {
|
||||
val queryByLineId = lineDao?.queryByLineId(lineId)
|
||||
if(queryByLineId.isNullOrEmpty()){
|
||||
lineDao?.insert(LineDataBean(lineId = lineId.toLong(), lineName = lineName, endStationName = endStationName))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
package com.mogo.och.data.db.repository
|
||||
|
||||
import androidx.room.Transaction
|
||||
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.data.db.bean.SiteDataBean
|
||||
import com.mogo.och.data.db.dao.SiteDataDao
|
||||
|
||||
open class BaseSiteDb {
|
||||
|
||||
open var siteDataDao: SiteDataDao? = null
|
||||
|
||||
fun addOrUpdate(serverDataList: List<SiteDataBean>) {
|
||||
val runnable = object :Runnable {
|
||||
@Transaction
|
||||
override fun run() {
|
||||
siteDataDao?.let { siteDataDao ->
|
||||
val localAllSites = siteDataDao.queryAllSites()
|
||||
if (localAllSites.isNullOrEmpty()) {
|
||||
// 插入新数据
|
||||
siteDataDao.insert(*serverDataList.toTypedArray())
|
||||
return
|
||||
}
|
||||
// 后台新增数据
|
||||
val needAddDatas = serverDataList-localAllSites
|
||||
// 后台没有本地数据库有的未分配线路
|
||||
val needMinusDatas = localAllSites - serverDataList
|
||||
|
||||
if (needAddDatas.isNotEmpty()) {
|
||||
// 新增线路
|
||||
needAddDatas.forEach {
|
||||
val md5Source = it.toString()
|
||||
val md5Hex = DigestUtils.md5Hex(md5Source)
|
||||
it.md5 = md5Hex
|
||||
}
|
||||
// 新增插入新数据
|
||||
siteDataDao.insert(*needAddDatas.toTypedArray())
|
||||
}
|
||||
|
||||
if (needMinusDatas.isNotEmpty()) {
|
||||
// 删除线路
|
||||
siteDataDao.deleteById(*needMinusDatas.toTypedArray())
|
||||
}
|
||||
|
||||
// 交集 服务器端
|
||||
val needUpdateByMd5 = serverDataList-needAddDatas
|
||||
// 交集 本地数据库
|
||||
val oldDataList = localAllSites-needMinusDatas
|
||||
|
||||
val needDelete = mutableListOf<SiteDataBean>()
|
||||
val needUpDate = mutableListOf<SiteDataBean>()
|
||||
|
||||
|
||||
needUpdateByMd5.forEach {
|
||||
val md5Source = it.toString()
|
||||
val md5Hex = DigestUtils.md5Hex(md5Source)
|
||||
val oldList =
|
||||
oldDataList.filter { local -> local.siteId == it.siteId && local.lineId == it.lineId }
|
||||
if(oldList.isNotEmpty()){
|
||||
oldList.forEachIndexed { index, siteDataBean ->
|
||||
if(index==0){
|
||||
if (siteDataBean.md5 == md5Hex) {
|
||||
// 数据没有变化
|
||||
}else{
|
||||
it.id = siteDataBean.id
|
||||
it.md5 = md5Hex
|
||||
needUpDate.add(it)
|
||||
|
||||
}
|
||||
}else{
|
||||
needDelete.add(siteDataBean)
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
needUpDate.forEach {updateDateItem->
|
||||
siteDataDao.updateInfo(updateDateItem.siteId,updateDateItem.lineId,updateDateItem.name,updateDateItem.nameKr,
|
||||
updateDateItem.seq,updateDateItem.gcjLon,updateDateItem.gcjLat,updateDateItem.lon,updateDateItem.lat,
|
||||
updateDateItem.introduction,updateDateItem.isPlayTts,updateDateItem.md5,updateDateItem.videoListDB,updateDateItem.id)
|
||||
}
|
||||
siteDataDao.deleteById(*needDelete.toTypedArray())
|
||||
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)
|
||||
}
|
||||
|
||||
fun querySiteByLineId(lineId:Long):List<SiteDataBean>?{
|
||||
siteDataDao?.let { siteDataDao->
|
||||
return siteDataDao.querySitesByLineId(lineId)
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -39,7 +39,7 @@ class ShuttleDriverProvider : CommonServiceImpl() {
|
||||
private var busFragment: ShuttleFragment? = null
|
||||
|
||||
override fun init(context: Context) {
|
||||
d(SceneConstant.M_TAXI + TAG, "init")
|
||||
d(TAG, "init")
|
||||
ThreadUtils.getIoPool().submit {
|
||||
LineDb.deleteObsoleteData()
|
||||
TaskDb.deleteObsoleteData()
|
||||
|
||||
@@ -3,9 +3,9 @@ package com.mogo.och.weaknet.bean.response
|
||||
import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.eagle.core.utilcode.util.GsonUtils
|
||||
import com.mogo.och.data.bean.SiteIntroduce
|
||||
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.data.db.bean.ContrailDataBean
|
||||
import com.mogo.och.data.db.bean.LineDataBean
|
||||
import com.mogo.och.data.db.bean.SiteDataBean
|
||||
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
|
||||
import com.mogo.och.weaknet.repository.db.repository.ContraiDb
|
||||
import com.mogo.och.weaknet.repository.db.repository.LineDb
|
||||
|
||||
@@ -1,10 +1,5 @@
|
||||
package com.mogo.och.weaknet.callback;
|
||||
|
||||
import com.mogo.och.weaknet.repository.db.bean.LineDataBean;
|
||||
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author: wangmingjun
|
||||
* @date: 2022/2/9
|
||||
|
||||
@@ -30,7 +30,7 @@ import com.mogo.och.shuttle.weaknet.R
|
||||
import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse
|
||||
import com.mogo.och.weaknet.callback.IBusLinesCallback
|
||||
import com.mogo.och.weaknet.model.OrderModel.isGoingToNextStation
|
||||
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
|
||||
import com.mogo.och.data.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.EventDb
|
||||
|
||||
@@ -174,6 +174,7 @@ object OrderModel {
|
||||
override fun onError(e: Throwable) {
|
||||
e.printStackTrace()
|
||||
d(TAG, "queryBusRoutes onError${e.printStackTrace()}")
|
||||
e.printStackTrace()
|
||||
LineModel.haveNoRunningTask()
|
||||
d(TAG, "queryBusRoutes 获取到小巴路线数据:空 ")
|
||||
LineManager.setLineInfo(null)
|
||||
|
||||
@@ -16,7 +16,7 @@ import com.mogo.och.weaknet.bean.WriteOffPassenger
|
||||
import com.mogo.och.weaknet.bean.request.ShuttleEventRequest
|
||||
import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse
|
||||
import com.mogo.och.weaknet.repository.db.MyDataBase
|
||||
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
|
||||
import com.mogo.och.data.db.bean.LineDataBean
|
||||
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
|
||||
import com.mogo.och.weaknet.repository.db.repository.EventDb
|
||||
import com.mogo.och.weaknet.repository.line.ILineRepository
|
||||
|
||||
@@ -13,17 +13,17 @@ 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.eagle.core.utilcode.util.FileUtils
|
||||
import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean
|
||||
import com.mogo.och.data.db.bean.ContrailDataBean
|
||||
import com.mogo.och.weaknet.repository.db.bean.EventDataBean
|
||||
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
|
||||
import com.mogo.och.weaknet.repository.db.bean.SiteDataBean
|
||||
import com.mogo.och.data.db.bean.LineDataBean
|
||||
import com.mogo.och.data.db.bean.SiteDataBean
|
||||
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.bean.WriteOffDataBean
|
||||
import com.mogo.och.weaknet.repository.db.dao.ContrailDataDao
|
||||
import com.mogo.och.data.db.dao.ContrailDataDao
|
||||
import com.mogo.och.weaknet.repository.db.dao.EventDataDao
|
||||
import com.mogo.och.weaknet.repository.db.dao.LineDataDao
|
||||
import com.mogo.och.weaknet.repository.db.dao.SiteDataDao
|
||||
import com.mogo.och.data.db.dao.LineDataDao
|
||||
import com.mogo.och.data.db.dao.SiteDataDao
|
||||
import com.mogo.och.weaknet.repository.db.dao.TaskDataDao
|
||||
import com.mogo.och.weaknet.repository.db.dao.TaskSiteDataDao
|
||||
import com.mogo.och.weaknet.repository.db.dao.WriteOffDataDao
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.mogo.och.weaknet.repository.db.bean
|
||||
import androidx.room.ColumnInfo
|
||||
import androidx.room.Entity
|
||||
import androidx.room.PrimaryKey
|
||||
import com.mogo.och.data.db.bean.SiteDataBean
|
||||
|
||||
@Entity(tableName = TaskSiteDataBean.tableName)
|
||||
data class TaskSiteDataBean(
|
||||
|
||||
@@ -1,15 +1,13 @@
|
||||
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.IDbRepository
|
||||
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
|
||||
import com.mogo.och.data.db.dao.ContrailDataDao
|
||||
import com.mogo.och.data.db.repository.BaseContraiDb
|
||||
|
||||
object ContraiDb : IDbRepository {
|
||||
object ContraiDb : IDbRepository, BaseContraiDb() {
|
||||
|
||||
private var contrailDao: ContrailDataDao?=null
|
||||
override var contrailDao: ContrailDataDao?=null
|
||||
get() {
|
||||
if(field==null){
|
||||
field = MyDataBase.instance?.contrailDataDao
|
||||
@@ -22,55 +20,6 @@ object ContraiDb : IDbRepository {
|
||||
contrailDao = null
|
||||
}
|
||||
|
||||
fun addOrUpdate(contrailDatalist:List<ContrailDataBean>){
|
||||
val runnable = Runnable {
|
||||
// 校验数据个数
|
||||
contrailDao?.let { contrailDao->
|
||||
contrailDatalist.forEach {
|
||||
val md5Source = it.toString()
|
||||
val md5Hex = DigestUtils.md5Hex(md5Source)
|
||||
val queryContrailByMd5 = contrailDao.queryContrailByMd5(md5Hex)
|
||||
if(queryContrailByMd5.isNullOrEmpty()){// 没有值或者值有变化
|
||||
val needUpdate = contrailDao.queryContrailByLineIdOne(it.lineId!!)
|
||||
it.md5 = md5Hex
|
||||
if(needUpdate!=null){// 更新
|
||||
it.id = needUpdate.id
|
||||
contrailDao.update(it.csvFileUrl?:"",it.csvFileMd5?:"",it.txtFileUrl?:"",it.txtFileMd5?:"",System.currentTimeMillis(),md5Hex,needUpdate.id)
|
||||
}else{// 插入新的
|
||||
contrailDao.insert(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
BizLoopManager.runInIoThread(runnable)
|
||||
}
|
||||
|
||||
fun deleteByLineId(lineId: Long) {
|
||||
contrailDao?.deleteByLineId(lineId)
|
||||
}
|
||||
|
||||
fun queryAutopilotInfoByLineid(lineId: Long): ContrailDataBean? {
|
||||
return contrailDao?.queryContrailByLineIdOne(lineId)
|
||||
}
|
||||
|
||||
fun saveRunningInfo(
|
||||
lineId: Int,
|
||||
csvFileMd5: String?,
|
||||
csvFileUrl: String?,
|
||||
txtFileUrl: String?,
|
||||
txtFileMd5: String?,
|
||||
contrailSaveTime: Long
|
||||
) {
|
||||
val runningLine = ContrailDataBean(
|
||||
lineId = lineId.toLong(),
|
||||
csvFileUrl = csvFileUrl,
|
||||
csvFileMd5 = csvFileMd5,
|
||||
txtFileUrl = txtFileUrl,
|
||||
txtFileMd5 = txtFileMd5,
|
||||
contrailSaveTime = contrailSaveTime
|
||||
)
|
||||
addOrUpdate(mutableListOf(runningLine))
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,17 +1,14 @@
|
||||
package com.mogo.och.weaknet.repository.db.repository
|
||||
|
||||
import androidx.room.Transaction
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import com.mogo.och.common.module.manager.loop.BizLoopManager
|
||||
import com.mogo.och.data.db.bean.LineDataBean
|
||||
import com.mogo.och.weaknet.repository.db.IDbRepository
|
||||
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
|
||||
import com.mogo.och.data.db.dao.LineDataDao
|
||||
import com.mogo.och.data.db.repository.BaseLineDb
|
||||
|
||||
object LineDb: IDbRepository {
|
||||
object LineDb: IDbRepository, BaseLineDb() {
|
||||
|
||||
private var lineDao: LineDataDao?=null
|
||||
override var lineDao: LineDataDao?=null
|
||||
get() {
|
||||
if(field==null){
|
||||
field = MyDataBase.instance?.lineDataDao
|
||||
@@ -20,124 +17,19 @@ object LineDb: IDbRepository {
|
||||
return field
|
||||
}
|
||||
|
||||
override fun deleteSitesTaskAndContraiDb(lineId: Long) {
|
||||
SiteDb.deleteByLineId(lineId)
|
||||
val runingTask = TaskDb.queryRunningTaskByLineId(lineId)
|
||||
if(runingTask.isNullOrEmpty()){
|
||||
// 删除线路对应的自驾信息
|
||||
ContraiDb.deleteByLineId(lineId)
|
||||
TaskDb.deleteByLineId(lineId)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
override fun release() {
|
||||
lineDao = null
|
||||
}
|
||||
|
||||
|
||||
fun cleanWeltData(){
|
||||
lineDao?.deleteWeltData()
|
||||
}
|
||||
|
||||
fun queryCanUserLine(): List<LineDataBean>? {
|
||||
return lineDao?.loadData()
|
||||
}
|
||||
|
||||
/**
|
||||
* 读取可用线路
|
||||
*/
|
||||
fun queryCanUseLineRx(): Observable<List<LineDataBean>?>? {
|
||||
return lineDao?.loadDataRx()
|
||||
}
|
||||
|
||||
fun checkAndUpdate(serverDatalist:List<LineDataBean>){
|
||||
val runable = object :Runnable{
|
||||
@Transaction
|
||||
override fun run() {
|
||||
// 校验数据个数
|
||||
lineDao?.let { lineDao->
|
||||
val loadData = lineDao.loadData()
|
||||
if(loadData.isNullOrEmpty()){
|
||||
// 插入新的值
|
||||
lineDao.insert(*serverDatalist.toTypedArray())
|
||||
// TODO: Ui展示需要动态刷新UI去
|
||||
return
|
||||
}
|
||||
// 后台新增数据
|
||||
val needAddDatas = serverDatalist-loadData
|
||||
// 后台没有本地数据库有的未分配线路
|
||||
val needMinusDatas = loadData-serverDatalist
|
||||
|
||||
// TODO: Ui展示需要动态刷新UI去
|
||||
|
||||
if (needAddDatas.isNotEmpty()) {
|
||||
// 新增线路
|
||||
lineDao.insert(*needAddDatas.toTypedArray())
|
||||
}
|
||||
if (needMinusDatas.isNotEmpty()) {
|
||||
// 删除线路
|
||||
lineDao.delete(*needMinusDatas.toTypedArray())
|
||||
needMinusDatas.forEach { minusLine->
|
||||
minusLine.lineId?.let { lineId->
|
||||
// 删除线路对应的站点
|
||||
|
||||
SiteDb.deleteByLineId(lineId)
|
||||
val runingTask = TaskDb.queryRunningTaskByLineId(lineId)
|
||||
if(runingTask.isNullOrEmpty()){
|
||||
// 删除线路对应的自驾信息
|
||||
|
||||
ContraiDb.deleteByLineId(lineId)
|
||||
|
||||
TaskDb.deleteByLineId(lineId)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 交集 服务器端
|
||||
val needUpdateByMd5 = serverDatalist-needAddDatas
|
||||
// 交集 本地数据库
|
||||
val oldDataList = loadData-needMinusDatas
|
||||
|
||||
val needDelete = mutableListOf<LineDataBean>()
|
||||
val needUpDate = mutableListOf<LineDataBean>()
|
||||
|
||||
needUpdateByMd5.forEach {
|
||||
val oldList = oldDataList.filter { local -> local.lineId == it.lineId }
|
||||
if(oldList.isNotEmpty()){
|
||||
oldList.forEachIndexed { index, lineBean ->
|
||||
if(index==0){
|
||||
if (lineBean.lineName == it.lineName && lineBean.endStationName == it.endStationName) {
|
||||
// 数据没有变化
|
||||
}else{
|
||||
it.id = lineBean.id
|
||||
needUpDate.add(it)
|
||||
}
|
||||
}else{
|
||||
// 站点多了 需要删除
|
||||
needDelete.add(lineBean)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
lineDao.delete(*needDelete.toTypedArray())
|
||||
|
||||
needUpDate.forEach { updateItem->
|
||||
// 跟新数据
|
||||
lineDao.updateInfo(updateItem.lineName,updateItem.endStationName,updateItem.id)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
BizLoopManager.runInIoThread(runable)
|
||||
}
|
||||
|
||||
fun deleteObsoleteData(){
|
||||
lineDao?.deleteObsoleteData()?.let {
|
||||
OchChainLogManager.writeChainLogDb("删除临时数据","Line删除数量:${it}")
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 没有线路就插入线路
|
||||
*/
|
||||
fun saveRunningInfo(lineId: Int, lineName: String?, endStationName: String?) {
|
||||
val queryByLineId = lineDao?.queryByLineId(lineId)
|
||||
if(queryByLineId.isNullOrEmpty()){
|
||||
lineDao?.insert(LineDataBean(lineId = lineId.toLong(), lineName = lineName, endStationName = endStationName))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,19 +1,13 @@
|
||||
package com.mogo.och.weaknet.repository.db.repository
|
||||
|
||||
import androidx.room.Transaction
|
||||
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.IDbRepository
|
||||
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
|
||||
import com.mogo.och.data.db.dao.SiteDataDao
|
||||
import com.mogo.och.data.db.repository.BaseSiteDb
|
||||
|
||||
object SiteDb: IDbRepository {
|
||||
object SiteDb: IDbRepository, BaseSiteDb() {
|
||||
|
||||
private var siteDataDao: SiteDataDao? = null
|
||||
override var siteDataDao: SiteDataDao? = null
|
||||
get() {
|
||||
if(field==null){
|
||||
field = MyDataBase.instance?.siteDataDao
|
||||
@@ -26,108 +20,4 @@ object SiteDb: IDbRepository {
|
||||
siteDataDao = null
|
||||
}
|
||||
|
||||
fun addOrUpdate(serverDataList: List<SiteDataBean>) {
|
||||
val runnable = object :Runnable {
|
||||
@Transaction
|
||||
override fun run() {
|
||||
siteDataDao?.let { siteDataDao ->
|
||||
val localAllSites = siteDataDao.queryAllSites()
|
||||
if (localAllSites.isNullOrEmpty()) {
|
||||
// 插入新数据
|
||||
siteDataDao.insert(*serverDataList.toTypedArray())
|
||||
return
|
||||
}
|
||||
// 后台新增数据
|
||||
val needAddDatas = serverDataList-localAllSites
|
||||
// 后台没有本地数据库有的未分配线路
|
||||
val needMinusDatas = localAllSites - serverDataList
|
||||
|
||||
if (needAddDatas.isNotEmpty()) {
|
||||
// 新增线路
|
||||
needAddDatas.forEach {
|
||||
val md5Source = it.toString()
|
||||
val md5Hex = DigestUtils.md5Hex(md5Source)
|
||||
it.md5 = md5Hex
|
||||
}
|
||||
// 新增插入新数据
|
||||
siteDataDao.insert(*needAddDatas.toTypedArray())
|
||||
}
|
||||
|
||||
if (needMinusDatas.isNotEmpty()) {
|
||||
// 删除线路
|
||||
siteDataDao.deleteById(*needMinusDatas.toTypedArray())
|
||||
}
|
||||
|
||||
// 交集 服务器端
|
||||
val needUpdateByMd5 = serverDataList-needAddDatas
|
||||
// 交集 本地数据库
|
||||
val oldDataList = localAllSites-needMinusDatas
|
||||
|
||||
val needDelete = mutableListOf<SiteDataBean>()
|
||||
val needUpDate = mutableListOf<SiteDataBean>()
|
||||
|
||||
|
||||
needUpdateByMd5.forEach {
|
||||
val md5Source = it.toString()
|
||||
val md5Hex = DigestUtils.md5Hex(md5Source)
|
||||
val oldList =
|
||||
oldDataList.filter { local -> local.siteId == it.siteId && local.lineId == it.lineId }
|
||||
if(oldList.isNotEmpty()){
|
||||
oldList.forEachIndexed { index, siteDataBean ->
|
||||
if(index==0){
|
||||
if (siteDataBean.md5 == md5Hex) {
|
||||
// 数据没有变化
|
||||
}else{
|
||||
it.id = siteDataBean.id
|
||||
it.md5 = md5Hex
|
||||
needUpDate.add(it)
|
||||
|
||||
}
|
||||
}else{
|
||||
needDelete.add(siteDataBean)
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
needUpDate.forEach {updateDateItem->
|
||||
siteDataDao.updateInfo(updateDateItem.siteId,updateDateItem.lineId,updateDateItem.name,updateDateItem.nameKr,
|
||||
updateDateItem.seq,updateDateItem.gcjLon,updateDateItem.gcjLat,updateDateItem.lon,updateDateItem.lat,
|
||||
updateDateItem.introduction,updateDateItem.isPlayTts,updateDateItem.md5,updateDateItem.videoListDB,updateDateItem.id)
|
||||
}
|
||||
siteDataDao.deleteById(*needDelete.toTypedArray())
|
||||
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)
|
||||
}
|
||||
|
||||
fun querySiteByLineId(lineId:Long):List<SiteDataBean>?{
|
||||
siteDataDao?.let { siteDataDao->
|
||||
return siteDataDao.querySitesByLineId(lineId)
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.mogo.och.weaknet.repository.db.repository
|
||||
|
||||
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
@@ -10,7 +9,7 @@ import com.mogo.och.weaknet.repository.db.IDbRepository
|
||||
import com.mogo.och.weaknet.repository.db.MyDataBase
|
||||
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
|
||||
import com.mogo.och.weaknet.repository.db.dao.TaskDataDao
|
||||
import com.mogo.och.weaknet.repository.db.exception.DbException
|
||||
import com.mogo.och.data.db.exception.DbException
|
||||
import com.mogo.och.weaknet.repository.exception.DataException
|
||||
import io.reactivex.Observable
|
||||
|
||||
|
||||
@@ -6,10 +6,10 @@ 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.IDbRepository
|
||||
import com.mogo.och.weaknet.repository.db.MyDataBase
|
||||
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
|
||||
import com.mogo.och.data.db.bean.LineDataBean
|
||||
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.DbException
|
||||
import com.mogo.och.data.db.exception.DbException
|
||||
|
||||
object TaskSiteDb : IDbRepository {
|
||||
|
||||
|
||||
@@ -7,7 +7,6 @@ import com.mogo.och.weaknet.repository.db.MyDataBase
|
||||
import com.mogo.och.weaknet.repository.db.bean.WriteOffDataBean
|
||||
import com.mogo.och.weaknet.repository.db.dao.WriteOffDataDao
|
||||
|
||||
|
||||
object WriteOffDb: IDbRepository {
|
||||
|
||||
private var writeOffDataDao: WriteOffDataDao? = null
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.mogo.eagle.core.data.BaseData
|
||||
import com.mogo.och.common.module.network.OchCommonServiceCallback
|
||||
import com.mogo.och.weaknet.bean.request.ShuttleEventRequest
|
||||
import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse
|
||||
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
|
||||
import com.mogo.och.data.db.bean.LineDataBean
|
||||
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
|
||||
import io.reactivex.Observable
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ import com.mogo.och.data.bean.LineInfo
|
||||
import com.mogo.och.weaknet.bean.request.ShuttleEventRequest
|
||||
import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse
|
||||
import com.mogo.och.weaknet.model.LineModel
|
||||
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
|
||||
import com.mogo.och.data.db.bean.LineDataBean
|
||||
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
|
||||
import com.mogo.och.weaknet.repository.line.ILineRepository
|
||||
import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean
|
||||
|
||||
@@ -22,7 +22,7 @@ import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse
|
||||
import com.mogo.och.weaknet.constant.BusConst
|
||||
import com.mogo.och.weaknet.model.LineModel
|
||||
import com.mogo.och.weaknet.model.LineModel.currentTask
|
||||
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
|
||||
import com.mogo.och.data.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.ContraiDb
|
||||
|
||||
@@ -7,7 +7,7 @@ import com.mogo.och.data.bean.BusRoutesResult;
|
||||
import com.mogo.och.weaknet.bean.request.ShuttleEventRequest;
|
||||
import com.mogo.och.weaknet.bean.response.CarExecutableTaskResponse;
|
||||
import com.mogo.eagle.core.data.BaseData;
|
||||
import com.mogo.och.weaknet.repository.db.bean.LineDataBean;
|
||||
import com.mogo.och.data.db.bean.LineDataBean;
|
||||
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean;
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.PassengerWriteOffRequest;
|
||||
import com.mogo.och.weaknet.repository.net.bean.response.PassengerWriteOffResponse;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
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 com.mogo.och.data.db.bean.LineDataBean;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import com.mogo.och.common.module.network.OchCommonNet
|
||||
import com.mogo.och.common.module.network.interceptor.transformTry
|
||||
import com.mogo.och.data.bean.BusRoutesResult
|
||||
import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest
|
||||
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
|
||||
import com.mogo.och.data.db.bean.LineDataBean
|
||||
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
|
||||
import com.mogo.och.weaknet.repository.net.NetInterface
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.BusCloseTaskRequest
|
||||
|
||||
@@ -8,7 +8,7 @@ import com.mogo.och.common.module.network.OchCommonNet
|
||||
import com.mogo.och.common.module.network.interceptor.transformTry
|
||||
import com.mogo.och.data.bean.BusRoutesResult
|
||||
import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest
|
||||
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
|
||||
import com.mogo.och.data.db.bean.LineDataBean
|
||||
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
|
||||
import com.mogo.och.weaknet.repository.net.NetInterface
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.BusCloseTaskRequest
|
||||
|
||||
@@ -8,7 +8,7 @@ import com.mogo.och.common.module.network.OchCommonNet
|
||||
import com.mogo.och.common.module.network.interceptor.transformTry
|
||||
import com.mogo.och.data.bean.BusRoutesResult
|
||||
import com.mogo.och.weaknet.bean.request.BusQueryLineStationsRequest
|
||||
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
|
||||
import com.mogo.och.data.db.bean.LineDataBean
|
||||
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
|
||||
import com.mogo.och.weaknet.repository.net.NetInterface
|
||||
import com.mogo.och.weaknet.repository.net.bean.request.BusCloseTaskRequest
|
||||
|
||||
@@ -13,14 +13,14 @@ import com.mogo.och.common.module.utils.ResourcesUtils
|
||||
import com.mogo.och.common.module.utils.RxUtils
|
||||
import com.mogo.och.common.module.wigets.WindowRelativeLayout
|
||||
import com.mogo.och.shuttle.weaknet.R
|
||||
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
|
||||
import com.mogo.och.data.db.bean.LineDataBean
|
||||
import io.reactivex.disposables.Disposable
|
||||
import kotlinx.android.synthetic.main.shuttle_weak_switch_biz.view.loading_biz
|
||||
import kotlinx.android.synthetic.main.shuttle_weak_switch_biz.view.swtichLine
|
||||
import kotlinx.android.synthetic.main.shuttle_weak_switch_biz.view.swtichTask
|
||||
import kotlinx.android.synthetic.main.shuttle_weak_switch_biz.view.taskRunning
|
||||
|
||||
class SwitchBizView: WindowRelativeLayout, SwtichBizeModel.SwtichLineViewCallback {
|
||||
class SwitchBizView: WindowRelativeLayout, SwtichBizModel.SwtichLineViewCallback {
|
||||
|
||||
|
||||
constructor(context: Context?) : super(context)
|
||||
@@ -36,7 +36,7 @@ class SwitchBizView: WindowRelativeLayout, SwtichBizeModel.SwtichLineViewCallbac
|
||||
const val TAG = M_BUS+"SwitchBizView"
|
||||
}
|
||||
|
||||
private var viewModel: SwtichBizeModel?=null
|
||||
private var viewModel: SwtichBizModel?=null
|
||||
|
||||
private var queryTimeout: Disposable? = null
|
||||
|
||||
@@ -54,9 +54,9 @@ class SwitchBizView: WindowRelativeLayout, SwtichBizeModel.SwtichLineViewCallbac
|
||||
CallerLogger.d(TAG,"SwitchBizView:onAttachedToWindow")
|
||||
super.onAttachedToWindow()
|
||||
viewModel = findViewTreeViewModelStoreOwner()?.let {
|
||||
ViewModelProvider(it)[SwtichBizeModel::class.java]
|
||||
ViewModelProvider(it)[SwtichBizModel::class.java]
|
||||
}
|
||||
viewModel?.setDistanceCallback(this)
|
||||
viewModel?.setSwitchBizCallback(this)
|
||||
}
|
||||
|
||||
override fun onDetachedFromWindow() {
|
||||
|
||||
@@ -7,16 +7,16 @@ import com.mogo.eagle.core.utilcode.util.ThreadUtils
|
||||
import com.mogo.och.weaknet.callback.IBusLinesCallback
|
||||
import com.mogo.och.weaknet.model.LineModel
|
||||
import com.mogo.och.weaknet.model.OrderModel
|
||||
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
|
||||
import com.mogo.och.data.db.bean.LineDataBean
|
||||
|
||||
/**
|
||||
* @author XuXinChao
|
||||
* @description BadCase录包管理页面
|
||||
* @since: 2022/12/15
|
||||
*/
|
||||
class SwtichBizeModel : ViewModel(), IBusLinesCallback {
|
||||
class SwtichBizModel : ViewModel(), IBusLinesCallback {
|
||||
|
||||
private val TAG = M_BUS + SwtichBizeModel::class.java.simpleName
|
||||
private val TAG = M_BUS + SwtichBizModel::class.java.simpleName
|
||||
|
||||
private var viewCallback: SwtichLineViewCallback? = null
|
||||
|
||||
@@ -26,8 +26,8 @@ class SwtichBizeModel : ViewModel(), IBusLinesCallback {
|
||||
LineModel.setBusLinesCallback(TAG, null)
|
||||
}
|
||||
|
||||
fun setDistanceCallback(viewCallback: SwtichLineViewCallback) {
|
||||
d(TAG, "setDistanceCallback")
|
||||
fun setSwitchBizCallback(viewCallback: SwtichLineViewCallback) {
|
||||
d(TAG, "setSwitchBizCallback")
|
||||
LineModel.setBusLinesCallback(TAG, this)
|
||||
this.viewCallback = viewCallback
|
||||
this.viewCallback?.showLoadingView()
|
||||
@@ -11,8 +11,7 @@ import androidx.recyclerview.widget.RecyclerView
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
|
||||
import com.mogo.och.weaknet.ui.switchline.SwitchLineAdapter.SwitchLineViewHolder
|
||||
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.data.db.bean.LineDataBean
|
||||
import me.jessyan.autosize.AutoSizeCompat
|
||||
|
||||
/**
|
||||
|
||||
@@ -8,11 +8,7 @@ import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.findViewTreeViewModelStoreOwner
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.mogo.commons.env.ProjectUtils
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.utilcode.kotlin.onClick
|
||||
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.scene.SceneConstant.Companion.M_BUS
|
||||
import com.mogo.eagle.core.utilcode.mogo.view.SpacesItemDecoration
|
||||
@@ -23,11 +19,9 @@ import com.mogo.och.common.module.wigets.WindowRelativeLayout
|
||||
import com.mogo.och.common.module.wigets.WrapContentLinearLayoutManager
|
||||
import com.mogo.och.common.module.wigets.commonview.ErrorView
|
||||
import com.mogo.och.shuttle.weaknet.R
|
||||
import com.mogo.och.weaknet.model.LineModel
|
||||
import com.mogo.och.weaknet.repository.RepositoryManager
|
||||
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
|
||||
import com.mogo.och.weaknet.ui.bizswitch.SwtichBizeModel
|
||||
import kotlinx.android.synthetic.main.shuttle_wadk_task_running.view.no_order_data_view
|
||||
import com.mogo.och.data.db.bean.LineDataBean
|
||||
import com.mogo.och.weaknet.ui.bizswitch.SwtichBizModel
|
||||
import kotlinx.android.synthetic.main.shuttle_weak_switch_line.view.aciv_refresh_task
|
||||
import kotlinx.android.synthetic.main.shuttle_weak_switch_line.view.actv_last_refresh_date
|
||||
import kotlinx.android.synthetic.main.shuttle_weak_switch_line.view.include_empty
|
||||
@@ -53,7 +47,7 @@ class SwitchLineView: WindowRelativeLayout, SwtichLineModel.SwtichLineViewCallba
|
||||
}
|
||||
|
||||
private var viewModel:SwtichLineModel?=null
|
||||
private var viewbizModel:SwtichBizeModel?=null
|
||||
private var viewbizModel:SwtichBizModel?=null
|
||||
|
||||
private lateinit var mAdapter: SwitchLineAdapter
|
||||
|
||||
@@ -125,7 +119,7 @@ class SwitchLineView: WindowRelativeLayout, SwtichLineModel.SwtichLineViewCallba
|
||||
ViewModelProvider(it).get(SwtichLineModel::class.java)
|
||||
}
|
||||
viewbizModel = findViewTreeViewModelStoreOwner()?.let {
|
||||
ViewModelProvider(it).get(SwtichBizeModel::class.java)
|
||||
ViewModelProvider(it).get(SwtichBizModel::class.java)
|
||||
}
|
||||
|
||||
viewModel?.setDistanceCallback(this)
|
||||
@@ -141,7 +135,7 @@ class SwitchLineView: WindowRelativeLayout, SwtichLineModel.SwtichLineViewCallba
|
||||
|
||||
}
|
||||
|
||||
override fun onBusLinesChange(data: MutableList<LineDataBean>?,show:Boolean) {
|
||||
override fun onBusLinesChange(data: MutableList<LineDataBean>?, show:Boolean) {
|
||||
if (data.isNullOrEmpty()) {
|
||||
showNoData(true)
|
||||
}else{
|
||||
|
||||
@@ -1,11 +1,7 @@
|
||||
package com.mogo.och.weaknet.ui.switchline
|
||||
|
||||
import androidx.lifecycle.ViewModel
|
||||
import com.mogo.commons.env.ProjectUtils
|
||||
import com.mogo.commons.storage.SharedPrefsMgr
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
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.d
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS
|
||||
import com.mogo.och.common.module.utils.DateTimeUtil
|
||||
@@ -14,7 +10,7 @@ import com.mogo.och.weaknet.callback.IBusLinesCallback
|
||||
import com.mogo.och.weaknet.model.LineModel
|
||||
import com.mogo.och.weaknet.model.LineModel.EXECUTABLECHANGETIME
|
||||
import com.mogo.och.weaknet.repository.RepositoryManager
|
||||
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
|
||||
import com.mogo.och.data.db.bean.LineDataBean
|
||||
import io.reactivex.Observer
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.disposables.Disposable
|
||||
@@ -93,7 +89,7 @@ class SwtichLineModel : ViewModel(), IBusLinesCallback {
|
||||
|
||||
interface SwtichLineViewCallback{
|
||||
fun startTaskState(success: Boolean)
|
||||
fun onBusLinesChange(data: MutableList<LineDataBean>?,show:Boolean)
|
||||
fun onBusLinesChange(data: MutableList<LineDataBean>?, show:Boolean)
|
||||
fun refreshDate(formatLongToString: String?)
|
||||
fun onBusLinesChangeFaile()
|
||||
}
|
||||
|
||||
@@ -14,10 +14,9 @@ import com.mogo.och.common.module.manager.loop.BizLoopManager
|
||||
import com.mogo.och.common.module.utils.ResourcesUtils
|
||||
import com.mogo.och.common.module.wigets.WindowRelativeLayout
|
||||
import com.mogo.och.shuttle.weaknet.R
|
||||
import com.mogo.och.weaknet.model.LineModel
|
||||
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
|
||||
import com.mogo.och.data.db.bean.LineDataBean
|
||||
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
|
||||
import com.mogo.och.weaknet.ui.bizswitch.SwtichBizeModel
|
||||
import com.mogo.och.weaknet.ui.bizswitch.SwtichBizModel
|
||||
import kotlinx.android.synthetic.main.shuttle_weak_error_view.view.tv_error_msg
|
||||
import kotlinx.android.synthetic.main.shuttle_weak_switch_task.view.actvLineEndStationName
|
||||
import kotlinx.android.synthetic.main.shuttle_weak_switch_task.view.actv_cancle_task
|
||||
@@ -47,7 +46,7 @@ class SwitchTaskView: WindowRelativeLayout, SwtichTaskModel.SwtichLineViewCallba
|
||||
}
|
||||
|
||||
private var viewModel:SwtichTaskModel?=null
|
||||
private var viewbizModel:SwtichBizeModel?=null
|
||||
private var viewbizModel:SwtichBizModel?=null
|
||||
|
||||
private lateinit var mAdapter: SwitchLineTaskAdapter
|
||||
|
||||
@@ -107,7 +106,7 @@ class SwitchTaskView: WindowRelativeLayout, SwtichTaskModel.SwtichLineViewCallba
|
||||
ViewModelProvider(it).get(SwtichTaskModel::class.java)
|
||||
}
|
||||
viewbizModel = findViewTreeViewModelStoreOwner()?.let {
|
||||
ViewModelProvider(it).get(SwtichBizeModel::class.java)
|
||||
ViewModelProvider(it).get(SwtichBizModel::class.java)
|
||||
}
|
||||
viewModel?.setDistanceCallback(this)
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ import com.mogo.och.common.module.utils.RxUtils
|
||||
import com.mogo.och.weaknet.callback.IBusLinesCallback
|
||||
import com.mogo.och.weaknet.model.LineModel
|
||||
import com.mogo.och.weaknet.repository.RepositoryManager
|
||||
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
|
||||
import com.mogo.och.data.db.bean.LineDataBean
|
||||
import com.mogo.och.weaknet.repository.db.bean.TaskDataBean
|
||||
import io.reactivex.Observer
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
|
||||
@@ -17,7 +17,7 @@ import com.mogo.och.common.module.wigets.CommonSlideView
|
||||
import com.mogo.och.common.module.wigets.WrapContentLinearLayoutManager
|
||||
import com.mogo.och.shuttle.weaknet.R
|
||||
import com.mogo.och.weaknet.model.LineModel
|
||||
import com.mogo.och.weaknet.ui.bizswitch.SwtichBizeModel
|
||||
import com.mogo.och.weaknet.ui.bizswitch.SwtichBizModel
|
||||
import kotlinx.android.synthetic.main.shuttle_weak_task_running.view.aciv_task_leave_station_slide_bg
|
||||
import kotlinx.android.synthetic.main.shuttle_weak_task_running.view.actv_arriver_station
|
||||
import kotlinx.android.synthetic.main.shuttle_weak_task_running.view.actv_complete_task
|
||||
@@ -54,7 +54,7 @@ class TaskRunningView : ConstraintLayout, TaskRunningModel.SwtichLineViewCallbac
|
||||
}
|
||||
|
||||
private var viewModel: TaskRunningModel? = null
|
||||
private var viewbizModel: SwtichBizeModel? = null
|
||||
private var viewbizModel: SwtichBizModel? = null
|
||||
|
||||
private lateinit var mAdapter: TaskRunningAdapter
|
||||
|
||||
@@ -107,7 +107,7 @@ class TaskRunningView : ConstraintLayout, TaskRunningModel.SwtichLineViewCallbac
|
||||
ViewModelProvider(it).get(TaskRunningModel::class.java)
|
||||
}
|
||||
viewbizModel = findViewTreeViewModelStoreOwner()?.let {
|
||||
ViewModelProvider(it).get(SwtichBizeModel::class.java)
|
||||
ViewModelProvider(it).get(SwtichBizModel::class.java)
|
||||
}
|
||||
|
||||
viewModel?.setDistanceCallback(this)
|
||||
|
||||
@@ -5,8 +5,8 @@ import com.mogo.och.weaknet.bean.request.Event
|
||||
import com.mogo.och.weaknet.bean.request.EventData
|
||||
import com.mogo.och.weaknet.bean.request.WriteOffEventData
|
||||
import com.mogo.och.weaknet.repository.db.bean.EventDataBean
|
||||
import com.mogo.och.weaknet.repository.db.bean.LineDataBean
|
||||
import com.mogo.och.weaknet.repository.db.bean.SiteDataBean
|
||||
import com.mogo.och.data.db.bean.LineDataBean
|
||||
import com.mogo.och.data.db.bean.SiteDataBean
|
||||
import com.mogo.och.weaknet.repository.db.bean.WriteOffDataBean
|
||||
import org.junit.Test
|
||||
|
||||
|
||||
Reference in New Issue
Block a user