Merge branch 'refs/heads/dev_robobus-d_241028_6.7.3'
This commit is contained in:
@@ -41,6 +41,16 @@ data class LineDataBean(
|
||||
const val lineDataTable: String = "line_data_table"
|
||||
}
|
||||
|
||||
|
||||
|
||||
fun getLineIdAndName(function: (lineId:Long,lineName:String) -> Unit) {
|
||||
lineId?.let {id->
|
||||
lineName?.let {name->
|
||||
function(id,name)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun equals(other: Any?): Boolean {
|
||||
if (this === other) return true
|
||||
if (javaClass != other?.javaClass) return false
|
||||
@@ -53,11 +63,10 @@ data class LineDataBean(
|
||||
return true
|
||||
}
|
||||
|
||||
fun getLineIdAndName(function: (lineId:Long,lineName:String) -> Unit) {
|
||||
lineId?.let {id->
|
||||
lineName?.let {name->
|
||||
function(id,name)
|
||||
}
|
||||
}
|
||||
override fun hashCode(): Int {
|
||||
var result = lineId?.hashCode() ?: 0
|
||||
result = 31 * result + (lineName?.hashCode() ?: 0)
|
||||
return result
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ interface TaskSiteDataDao {
|
||||
fun insert(vararg lineDataBean: TaskSiteDataBean):List<Long>
|
||||
|
||||
//查询当天插入的所有数据
|
||||
@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<TaskSiteDataBean>?
|
||||
|
||||
@Query("UPDATE ${TaskSiteDataBean.usedTaskDataTable} SET leaving = :leave WHERE task_id = :taskId and site_id = :siteId")
|
||||
|
||||
@@ -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<LineDataBean>()
|
||||
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<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())
|
||||
lineDao.insert(*needUpDate.toTypedArray())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,6 +59,10 @@ object SiteDb: IDbRepository {
|
||||
// 交集 本地数据库
|
||||
val oldDataList = localAllSites-needMinusDatas
|
||||
|
||||
val needDelete = mutableListOf<SiteDataBean>()
|
||||
val needUpDate = mutableListOf<SiteDataBean>()
|
||||
|
||||
|
||||
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()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,10 +28,6 @@ class SwitchLineAdapter(
|
||||
private var mItemClickListener: LineItemClickListener? = null
|
||||
|
||||
fun setDataList(dataList: List<LineDataBean>) {
|
||||
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
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user