|
@@ -1,10 +1,14 @@
|
|
|
package com.framework.mvvm.mv
|
|
|
|
|
|
+import android.content.SharedPreferences
|
|
|
+import androidx.core.content.edit
|
|
|
import androidx.lifecycle.ViewModel
|
|
|
import androidx.lifecycle.viewModelScope
|
|
|
import cn.sagacloud.cadengine.OkhttpUtil
|
|
|
import com.framework.app.IP
|
|
|
+import com.framework.app.deviceId
|
|
|
import com.framework.app.pathDownloadMap
|
|
|
+import com.framework.app.timestamp
|
|
|
import com.framework.mvvm.model.db.entity.ObjectEntity
|
|
|
import com.framework.mvvm.model.repository.AdmRepository
|
|
|
import com.framework.mvvm.model.vo.AdmRequest
|
|
@@ -84,6 +88,51 @@ class AdmViewModel(private val repository: AdmRepository) : ViewModel() {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 下载建筑数据
|
|
|
+ */
|
|
|
+ fun downloadBuilding(sp: SharedPreferences, block: (() -> Unit)? = null) {
|
|
|
+ viewModelScope.launch(Dispatchers.IO) {
|
|
|
+ val buildings = repository.getBuildings()
|
|
|
+ println("downloadBuilding will download : ${buildings.size} $buildings")
|
|
|
+ for (building in buildings) {
|
|
|
+ repository.requestBuilding(
|
|
|
+ AdmRequest(
|
|
|
+ userId = "bdtp",
|
|
|
+ projectId = building.projectId,
|
|
|
+ groupCode = "BR",
|
|
|
+ buildingId = building.id,
|
|
|
+ uploadFlag = sp.getString(deviceId, "") ?: "",
|
|
|
+ lastDownloadTime = sp.getString(timestamp, "") ?: ""
|
|
|
+ )
|
|
|
+ ) {
|
|
|
+ println("downloadBuilding save buildingId and Timestamp -> ${it.buildingId}, ${it.timestamp}")
|
|
|
+ sp.edit { putString(it.buildingId, it.timestamp) }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ withContext(Dispatchers.Main) {
|
|
|
+ block?.invoke()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /*val buildings = mVm.getBuildings()
|
|
|
+ println("download buildings: ${buildings.size} $buildings")
|
|
|
+ for (building in buildings) {
|
|
|
+ mVm.requestBuilding(
|
|
|
+ AdmRequest(
|
|
|
+ userId = "bdtp",
|
|
|
+ projectId = building.projectId,
|
|
|
+ groupCode = "BR",
|
|
|
+ buildingId = building.id,
|
|
|
+ uploadFlag = sp.getString(deviceId, "") ?: "",
|
|
|
+ lastDownloadTime = sp.getString(timestamp, "") ?: ""
|
|
|
+ )
|
|
|
+ ) {
|
|
|
+ println("buildingIdTimestamp -> ${it.buildingId}, ${it.timestamp}")
|
|
|
+ sp.edit { putString(it.buildingId, it.timestamp) }
|
|
|
+ }
|
|
|
+ }*/
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 获取建筑数量
|
|
|
*/
|
|
|
val buildings: StateFlow<List<ObjectEntity>> = flow {
|