From 093cb75fa5f232b88ac74807af947cc87a7f6154 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Mon, 26 Aug 2024 15:09:42 +0800 Subject: [PATCH] =?UTF-8?q?[6.6.0]=20[=E5=88=A0=E9=99=A4=E8=BF=87=E6=9C=9F?= =?UTF-8?q?=E6=95=B0=E6=8D=AE]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../1.json | 12 +++++-- .../mogo/och/weaknet/ShuttleDriverProvider.kt | 15 ++++++-- .../weaknet/database/bean/TaskSiteDataBean.kt | 10 +++++- .../och/weaknet/database/dao/EventDataDao.kt | 5 +++ .../och/weaknet/database/dao/LineDataDao.kt | 5 +++ .../och/weaknet/database/dao/TaskDataDao.kt | 5 +++ .../weaknet/database/dao/TaskSiteDataDao.kt | 5 +++ .../database/repository/EventRepository.kt | 7 ++++ .../database/repository/LineRepository.kt | 8 +++++ .../database/repository/TaskRepository.kt | 8 +++++ .../database/repository/TaskSiteRepository.kt | 8 +++++ .../mogo/och/weaknet/model/BusLineModel.kt | 35 +++++++++++++++++-- 12 files changed, 115 insertions(+), 8 deletions(-) diff --git a/OCH/shuttle/driver_weaknet/schemas/com.mogo.och.weaknet.database.MyDataBase/1.json b/OCH/shuttle/driver_weaknet/schemas/com.mogo.och.weaknet.database.MyDataBase/1.json index 60c3a736b0..9d0be57659 100644 --- a/OCH/shuttle/driver_weaknet/schemas/com.mogo.och.weaknet.database.MyDataBase/1.json +++ b/OCH/shuttle/driver_weaknet/schemas/com.mogo.och.weaknet.database.MyDataBase/1.json @@ -2,7 +2,7 @@ "formatVersion": 1, "database": { "version": 1, - "identityHash": "da53315ef85c8d9609891e105a315a62", + "identityHash": "1fb2dea0f72d7abf11cbb9928b9572c3", "entities": [ { "tableName": "contrail_data_table", @@ -339,7 +339,7 @@ }, { "tableName": "used_task_data_table", - "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `task_id` INTEGER, `line_id` INTEGER, `site_id` INTEGER, `line_name` TEXT, `name` TEXT, `name_kr` TEXT, `seq` INTEGER, `gcj_lon` REAL, `gcj_lat` REAL, `lon` REAL, `lat` REAL, `driving_status` INTEGER, `leaving` INTEGER, `arrived_time` INTEGER, `leave_time` INTEGER, `introduction` TEXT, `is_play_tts` INTEGER)", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `task_id` INTEGER, `line_id` INTEGER, `site_id` INTEGER, `line_name` TEXT, `name` TEXT, `name_kr` TEXT, `seq` INTEGER, `gcj_lon` REAL, `gcj_lat` REAL, `lon` REAL, `lat` REAL, `driving_status` INTEGER, `leaving` INTEGER, `arrived_time` INTEGER, `leave_time` INTEGER, `introduction` TEXT, `is_play_tts` INTEGER, `event_save_time` INTEGER NOT NULL)", "fields": [ { "fieldPath": "id", @@ -448,6 +448,12 @@ "columnName": "is_play_tts", "affinity": "INTEGER", "notNull": false + }, + { + "fieldPath": "eventSaveTime", + "columnName": "event_save_time", + "affinity": "INTEGER", + "notNull": true } ], "primaryKey": { @@ -569,7 +575,7 @@ "views": [], "setupQueries": [ "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)", - "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'da53315ef85c8d9609891e105a315a62')" + "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '1fb2dea0f72d7abf11cbb9928b9572c3')" ] } } \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt index 8ee7feafaa..d16fe1da5e 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt @@ -5,9 +5,14 @@ import androidx.fragment.app.Fragment import com.alibaba.android.arouter.facade.annotation.Route import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant +import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.och.weaknet.fragment.ShuttleFragment import com.mogo.och.common.module.constant.OchCommonConst import com.mogo.och.common.module.biz.provider.CommonServiceImpl +import com.mogo.och.weaknet.database.repository.EventRepository +import com.mogo.och.weaknet.database.repository.LineRepository +import com.mogo.och.weaknet.database.repository.TaskRepository +import com.mogo.och.weaknet.database.repository.TaskSiteRepository import com.mogo.och.weaknet.model.BusLineModel /** @@ -19,14 +24,20 @@ import com.mogo.och.weaknet.model.BusLineModel class ShuttleDriverProvider : CommonServiceImpl() { private val TAG = ShuttleDriverProvider::class.java.simpleName - private var busFragment: ShuttleFragment?=null + private var busFragment: ShuttleFragment? = null override fun init(context: Context) { d(SceneConstant.M_TAXI + TAG, "init") + ThreadUtils.getIoPool().submit { + LineRepository.deleteObsoleteData() + TaskRepository.deleteObsoleteData() + TaskSiteRepository.deleteObsoleteData() + EventRepository.deleteObsoleteData() + } } override fun getFragment(): Fragment { - if(busFragment==null){ + if (busFragment == null) { busFragment = ShuttleFragment() } BusLineModel.init(); diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/TaskSiteDataBean.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/TaskSiteDataBean.kt index a40af11612..8343f51bd3 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/TaskSiteDataBean.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/TaskSiteDataBean.kt @@ -111,7 +111,15 @@ data class TaskSiteDataBean( @ColumnInfo(name = "is_play_tts", typeAffinity = ColumnInfo.INTEGER) var isPlayTts: Boolean? = null, -) { + + /** + * 任务保存到数据库的时间 用来第二天删除前几天的任务 + */ + @ColumnInfo(name = "event_save_time", typeAffinity = ColumnInfo.INTEGER) + var eventSaveTime: Long = System.currentTimeMillis(), + + + ) { companion object { /** * 开始任务 并把第一站置为 2 当前站 diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/EventDataDao.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/EventDataDao.kt index 345564d793..f7b4c0bd18 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/EventDataDao.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/EventDataDao.kt @@ -6,6 +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.database.bean.ContrailDataBean import com.mogo.och.weaknet.database.bean.EventDataBean import com.mogo.och.weaknet.database.bean.LineDataBean @@ -20,6 +21,10 @@ interface EventDataDao { @Delete fun delete(vararg eventDataBean: EventDataBean) + // 删除过时数据 + @Query("DELETE FROM ${EventDataBean.evnetDataTable} WHERE event_save_time < :zeroTime") + fun deleteObsoleteData(zeroTime: Long = DateTimeUtil.getCurrentDateZero()):Int + @Query("SELECT * FROM ${EventDataBean.evnetDataTable} WHERE update_status = ${EventDataBean.notUpdate} LIMIT 10 OFFSET 0") fun queryEventByStatusWithPage():List? diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/LineDataDao.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/LineDataDao.kt index c493884754..0eeb337d24 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/LineDataDao.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/LineDataDao.kt @@ -19,6 +19,11 @@ interface LineDataDao { @Delete fun delete(vararg lineDataBean: LineDataBean) + // 删除过时数据 + @Query("DELETE FROM ${LineDataBean.lineDataTable} WHERE line_get_time < :zeroTime") + fun deleteObsoleteData(zeroTime: Long = DateTimeUtil.getCurrentDateZero()):Int + + //删除非昨天添加的数据 @Query("DELETE FROM ${LineDataBean.lineDataTable} WHERE line_get_time < :zeroTime") fun deleteWeltData(zeroTime: Long = DateTimeUtil.getCurrentDateZero()): Int diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/TaskDataDao.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/TaskDataDao.kt index 3a4b70d86c..6b5b7a3629 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/TaskDataDao.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/TaskDataDao.kt @@ -52,6 +52,11 @@ interface TaskDataDao { @Query("SELECT * FROM ${TaskDataBean.taskDataTable} WHERE task_id = :taskId") fun queryContrailByLineId(taskId:Long): List? + // 删除过时数据 + @Query("DELETE FROM ${TaskDataBean.taskDataTable} WHERE task_get_time < :zeroTime") + fun deleteObsoleteData(zeroTime: Long = DateTimeUtil.getCurrentDateZero()):Int + + //查询线路对应的轨迹信息 只要一个结果 fun queryTaskByTaskIdOne(taskId: Long): TaskDataBean?{ diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/TaskSiteDataDao.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/TaskSiteDataDao.kt index 9496e8b1c6..cd81fe13b2 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/TaskSiteDataDao.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/TaskSiteDataDao.kt @@ -4,6 +4,7 @@ import androidx.room.Dao 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.database.bean.TaskSiteDataBean @Dao @@ -25,4 +26,8 @@ interface TaskSiteDataDao { @Query("UPDATE ${TaskSiteDataBean.usedTaskDataTable} SET driving_status = :drivingStatusCurrent WHERE task_id = :taskId and site_id = :siteId") fun updateDrivingStatus(taskId: Long, siteId: Long, drivingStatusCurrent: Int) + // 删除过时数据 + @Query("DELETE FROM ${TaskSiteDataBean.usedTaskDataTable} WHERE event_save_time < :zeroTime") + fun deleteObsoleteData(zeroTime: Long = DateTimeUtil.getCurrentDateZero()):Int + } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/EventRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/EventRepository.kt index eb4b29966e..a57d6e041d 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/EventRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/EventRepository.kt @@ -1,5 +1,6 @@ package com.mogo.och.weaknet.database.repository +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.weaknet.database.MyDataBase import com.mogo.och.weaknet.database.bean.EventDataBean @@ -79,6 +80,12 @@ object EventRepository { eventDataDao?.insert(*waitUpdateEvent.toTypedArray()) } + fun deleteObsoleteData(){ + eventDataDao?.deleteObsoleteData()?.let { + OchChainLogManager.writeChainLogDb("删除临时数据","Event删除数量:${it}") + } + } + interface EventCallback { fun notifySyn() } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/LineRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/LineRepository.kt index c648b7407b..922730c5c3 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/LineRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/LineRepository.kt @@ -1,5 +1,6 @@ package com.mogo.och.weaknet.database.repository +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.weaknet.database.MyDataBase import com.mogo.och.weaknet.database.bean.LineDataBean import com.mogo.och.weaknet.database.dao.LineDataDao @@ -72,4 +73,11 @@ object LineRepository { DbThreadUtils.runInIoThread(runable) } + fun deleteObsoleteData(){ + lineDao?.deleteObsoleteData()?.let { + OchChainLogManager.writeChainLogDb("删除临时数据","Line删除数量:${it}") + } + } + + } \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/TaskRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/TaskRepository.kt index 6ce1d34626..5062429710 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/TaskRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/TaskRepository.kt @@ -1,6 +1,7 @@ package com.mogo.och.weaknet.database.repository +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.weaknet.database.MyDataBase import com.mogo.och.weaknet.database.bean.TaskDataBean import com.mogo.och.weaknet.database.dao.TaskDataDao @@ -109,6 +110,13 @@ object TaskRepository { } } + fun deleteObsoleteData(){ + taskDataDao?.deleteObsoleteData()?.let { + OchChainLogManager.writeChainLogDb("删除临时数据","Task删除数量:${it}") + } + } + + interface TaskStatusCallback{ fun startSuccess() diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/TaskSiteRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/TaskSiteRepository.kt index 5cd883108b..7bba52a84c 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/TaskSiteRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/TaskSiteRepository.kt @@ -1,5 +1,6 @@ package com.mogo.och.weaknet.database.repository +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.weaknet.database.MyDataBase import com.mogo.och.weaknet.database.bean.TaskSiteDataBean import com.mogo.och.weaknet.database.dao.TaskSiteDataDao @@ -64,4 +65,11 @@ object TaskSiteRepository { return taskSiteDataDao?.queryRunningTask(taskId) } + fun deleteObsoleteData(){ + taskSiteDataDao?.deleteObsoleteData()?.let { + OchChainLogManager.writeChainLogDb("删除临时数据","rurnning Task删除数量:${it}") + } + } + + } \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/BusLineModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/BusLineModel.kt index 251097a12f..5e1d7b2da2 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/BusLineModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/BusLineModel.kt @@ -145,6 +145,7 @@ object BusLineModel { override fun onError() { isRequesting.set(false) + BizLoopManager.postDelayed(loopQueryInfo,60_000) if(!isBackground){ if (!NetworkUtils.isConnected(mContext)) { ToastUtils.showShort(ResourcesUtils.getString(R.string.network_error_tip)); @@ -152,11 +153,11 @@ object BusLineModel { ToastUtils.showShort(ResourcesUtils.getString(R.string.request_error_tip)); } } - BizLoopManager.postDelayed(loopQueryInfo,60_000) } override fun onFail(code: Int, failMsg: String) { isRequesting.set(false) + BizLoopManager.postDelayed(loopQueryInfo,60_000) if(!isBackground){ if (!NetworkUtils.isConnected(mContext)) { ToastUtils.showShort("网络异常,请稍后重试"); @@ -164,7 +165,7 @@ object BusLineModel { ToastUtils.showShort(failMsg); } } - BizLoopManager.postDelayed(loopQueryInfo,60_000) + } }) } @@ -266,6 +267,8 @@ object BusLineModel { if (runningTaskInfo.isNullOrEmpty()) { // 本地没有进行中的任务 // todo: 尝试加载远程数据 + CallerLogger.d(TAG,"没有查询到正在运行的任务") + loadServerRuningTask() } else if (runningTaskInfo.size > 1) { // 本地有多条正在进行的任务 需要check event // TODO:1 比对event表 1 清理错误数据 2 加载后台数据 @@ -292,6 +295,34 @@ object BusLineModel { } } + private fun loadServerRuningTask() { + mContext?.let { + OrderServiceManager.queryBusRoutes(it,object :OchCommonServiceCallback{ + override fun onSuccess(data: BusRoutesResponse?) { + data?.result?.let { + it.sites + } + } + + override fun onError() { + if (!NetworkUtils.isConnected(mContext)) { + ToastUtils.showShort(ResourcesUtils.getString(R.string.network_error_tip)); + } else { + ToastUtils.showShort(ResourcesUtils.getString(R.string.request_error_tip)); + } + } + + override fun onFail(code: Int, msg: String?) { + if (!NetworkUtils.isConnected(mContext)) { + ToastUtils.showShort("网络异常,请稍后重试"); + }else { + ToastUtils.showShort(msg); + } + } + }) + } + } + // 滑动出发 fun leaveStation(){ //开始站点: leaving false->true