From 36d1132931d0164a9a723d0b601cecfa3163ec48 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Mon, 11 Nov 2024 14:29:33 +0800 Subject: [PATCH 1/4] [6.7.3] [fix] [used_task_data_table add order by seq] --- .../com/mogo/och/weaknet/repository/db/dao/TaskSiteDataDao.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/TaskSiteDataDao.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/TaskSiteDataDao.kt index 3f939e52dd..614bc86d0a 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/TaskSiteDataDao.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/TaskSiteDataDao.kt @@ -14,7 +14,7 @@ interface TaskSiteDataDao { fun insert(vararg lineDataBean: TaskSiteDataBean):List //查询当天插入的所有数据 - @Query("SELECT * FROM ${TaskSiteDataBean.usedTaskDataTable} WHERE task_id = :taskId") + @Query("SELECT * FROM ${TaskSiteDataBean.usedTaskDataTable} WHERE task_id = :taskId order by seq") fun queryRunningTask(taskId: Long): List? @Query("UPDATE ${TaskSiteDataBean.usedTaskDataTable} SET leaving = :leave WHERE task_id = :taskId and site_id = :siteId") From 29927acaf652ad5c4928397b87d3e3ecb070f130 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Mon, 11 Nov 2024 15:59:42 +0800 Subject: [PATCH 2/4] =?UTF-8?q?[6.7.3]=20[fix]=20[=E7=BA=BF=E8=B7=AF?= =?UTF-8?q?=E5=92=8C=E7=AB=99=E7=82=B9=E6=9B=B4=E6=96=B0=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E5=8F=98=E6=9B=B4]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/db/repository/LineDb.kt | 35 +++++++++++++++---- .../repository/db/repository/SiteDb.kt | 14 ++++++-- 2 files changed, 39 insertions(+), 10 deletions(-) diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/LineDb.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/LineDb.kt index a3cb252780..b6c8690728 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/LineDb.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/LineDb.kt @@ -46,13 +46,6 @@ object LineDb: IDbRepository { // TODO: Ui展示需要动态刷新UI去 return } - val tempList = loadData.groupBy { it.lineId }.filter { it.value.size > 1 } - val needDelete = mutableListOf() - tempList.forEach {multData-> - needDelete.add(multData.value.first()) - } - // 删除本地重复的 - lineDao.delete(*needDelete.toTypedArray()) // 后台新增数据 val needAddDatas = serverDatalist-loadData // 后台没有本地数据库有的未分配线路 @@ -83,6 +76,34 @@ object LineDb: IDbRepository { } } } + + // 交集 服务器端 + val needUpdateByMd5 = serverDatalist-needAddDatas + // 交集 本地数据库 + val oldDataList = loadData-needMinusDatas + + val needDelete = mutableListOf() + val needUpDate = mutableListOf() + + 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()) + lineDao.insert(*needUpDate.toTypedArray()) } } } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/SiteDb.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/SiteDb.kt index 7fea6ce643..726b0692e9 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/SiteDb.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/SiteDb.kt @@ -59,6 +59,10 @@ object SiteDb: IDbRepository { // 交集 本地数据库 val oldDataList = localAllSites-needMinusDatas + val needDelete = mutableListOf() + val needUpDate = mutableListOf() + + needUpdateByMd5.forEach { val md5Source = it.toString() val md5Hex = DigestUtils.md5Hex(md5Source) @@ -67,19 +71,23 @@ object SiteDb: IDbRepository { if(oldList.isNotEmpty()){ oldList.forEachIndexed { index, siteDataBean -> if(index==0){ - if(siteDataBean.md5==md5Hex){ + if (siteDataBean.md5 == md5Hex) { // 数据没有变化 }else{ it.id = siteDataBean.id it.md5 = md5Hex - siteDataDao.insert(it) + needUpDate.add(it) + } }else{ - siteDataDao.deleteById(siteDataBean) + needDelete.add(siteDataBean) + } } } } + siteDataDao.insert(*needUpDate.toTypedArray()) + siteDataDao.deleteById(*needDelete.toTypedArray()) checkData() } } From 06478bd5483d79ce4e0c3022b1bcf5c340579c46 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Mon, 11 Nov 2024 18:45:56 +0800 Subject: [PATCH 3/4] =?UTF-8?q?[6.7.3]=20[fix]=20[line=20=E5=94=AF?= =?UTF-8?q?=E4=B8=80=E6=9D=A1=E4=BB=B6=E5=8F=98=E6=9B=B4]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/db/bean/LineDataBean.kt | 30 ++++++++++++------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/LineDataBean.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/LineDataBean.kt index 301dcfad63..7be426037c 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/LineDataBean.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/LineDataBean.kt @@ -41,17 +41,7 @@ data class LineDataBean( const val lineDataTable: String = "line_data_table" } - override fun equals(other: Any?): Boolean { - if (this === other) return true - if (javaClass != other?.javaClass) return false - other as LineDataBean - - if (lineId != other.lineId) return false - if (lineName != other.lineName) return false - - return true - } fun getLineIdAndName(function: (lineId:Long,lineName:String) -> Unit) { lineId?.let {id-> @@ -60,4 +50,24 @@ data class LineDataBean( } } } + + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (javaClass != other?.javaClass) return false + + other as LineDataBean + + if (lineId != other.lineId) return false + if (lineName != other.lineName) return false + if (endStationName != other.endStationName) return false + + return true + } + + override fun hashCode(): Int { + var result = lineId?.hashCode() ?: 0 + result = 31 * result + (lineName?.hashCode() ?: 0) + result = 31 * result + (endStationName?.hashCode() ?: 0) + return result + } } From 7e18ab921139ce4dbf9781dd8814b8bbe94bf1c6 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Tue, 12 Nov 2024 10:59:39 +0800 Subject: [PATCH 4/4] =?UTF-8?q?[6.7.3]=20[fix]=20[=E9=81=BF=E5=85=8D?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E8=A2=AB=E5=88=A0=E9=99=A4]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/och/weaknet/repository/db/bean/LineDataBean.kt | 3 +-- .../mogo/och/weaknet/ui/switchline/SwitchLineAdapter.kt | 8 ++------ 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/LineDataBean.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/LineDataBean.kt index 7be426037c..d2b7d38eb4 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/LineDataBean.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/LineDataBean.kt @@ -59,7 +59,6 @@ data class LineDataBean( if (lineId != other.lineId) return false if (lineName != other.lineName) return false - if (endStationName != other.endStationName) return false return true } @@ -67,7 +66,7 @@ data class LineDataBean( override fun hashCode(): Int { var result = lineId?.hashCode() ?: 0 result = 31 * result + (lineName?.hashCode() ?: 0) - result = 31 * result + (endStationName?.hashCode() ?: 0) return result } + } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwitchLineAdapter.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwitchLineAdapter.kt index d1b340a761..b3487fa0ce 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwitchLineAdapter.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwitchLineAdapter.kt @@ -28,10 +28,6 @@ class SwitchLineAdapter( private var mItemClickListener: LineItemClickListener? = null fun setDataList(dataList: List) { - if (this.mData == dataList) { - // 如果新旧列表一致,则直接返回 - return - } val diffResult = DiffUtil.calculateDiff(MyDiffCallback(this.mData, dataList)) this.mData.clear() @@ -95,13 +91,13 @@ class SwitchLineAdapter( override fun areItemsTheSame(oldItemPosition: Int, newItemPosition: Int): Boolean { val oldItem = oldData[oldItemPosition] val newItem = newData[newItemPosition] - return oldItem == newItem + return oldItem == newItem && oldItem.endStationName == newItem.endStationName } override fun areContentsTheSame(oldItemPosition: Int, newItemPosition: Int): Boolean { val oldItem = oldData[oldItemPosition] val newItem = newData[newItemPosition] - return oldItem == newItem + return oldItem == newItem && oldItem.endStationName == newItem.endStationName } }