fix: 生成json

This commit is contained in:
xiaoyan 2023-04-19 17:32:44 +08:00
parent 7ea778780c
commit 0a9376d398
3 changed files with 94 additions and 10 deletions

View File

@ -1,5 +1,12 @@
package com.navinfo.omqs.bean
class ImportConfig {
var tables: MutableList<String> = mutableListOf()
var tables: MutableList<TableInfo> = mutableListOf()
}
class TableInfo {
val table: String = ""
val code: Int = 0
val name: String = ""
}

View File

@ -5,7 +5,10 @@ import android.net.Uri
import android.util.Log
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.blankj.utilcode.util.FileIOUtils
import com.blankj.utilcode.util.UriUtils
import com.google.gson.Gson
import com.navinfo.collect.library.data.entity.HAD_LINK
import com.navinfo.collect.library.data.entity.OMDBEntity
import com.navinfo.omqs.bean.ScProblemTypeBean
import com.navinfo.omqs.bean.ScRootCauseAnalysisBean
@ -35,24 +38,43 @@ class PersonalCenterViewModel @Inject constructor(
suspend fun importOMDBData(importOMDBHelper: ImportOMDBHelper) {
Log.d("OMQSApplication", "开始导入数据")
// Realm.getDefaultInstance().beginTransaction()
for (table in importOMDBHelper.openConfigFile().tables/*listOf<String>("HAD_LINK")*/) {
importOMDBHelper.getOMDBTableData(table).collect {
val gson = Gson()
for (tableName in listOf<String>("HAD_LINK", "HAD_LINK_SPEEDLIMIT", "HAD_LINK_SPEEDLIMIT_COND", "HAD_LINK_SPEEDLIMIT_VAR")/*listOf<String>("HAD_LINK")*/) {
importOMDBHelper.getOMDBTableData(tableName).collect {
val hadLinkFile = File(importOMDBHelper.omdbFile, "HAD_LINK.txt")
for (map in it) {
if ("HAD_LINK" == tableName) {
// 根据HAD_Link生成json文件
val hadLink = HAD_LINK()
hadLink.LINK_PID = map["LINK_PID"].toString()
hadLink.MESH = map["MESH"].toString()
hadLink.S_NODE_PID = map["S_NODE_PID"].toString()
hadLink.E_NODE_PID = map["E_NODE_PID"].toString()
hadLink.GEOMETRY = map["GEOMETRY"].toString()
// 将该数据写入到对应的txt文件
FileIOUtils.writeFileFromString(hadLinkFile, gson.toJson(hadLink)+"\r", true)
}
val properties = RealmDictionary<String?>()
for (entry in map.entries) {
properties.putIfAbsent(entry.key, entry.value.toString())
}
// 将读取到的sqlite数据插入到Realm中
Realm.getDefaultInstance().insert(OMDBEntity(table, properties))
// 将读取到的数据写入到json中
// // 将读取到的sqlite数据插入到Realm中
// Realm.getDefaultInstance().insert(OMDBEntity(tableName, properties))
}
}
}
// Realm.getDefaultInstance().commitTransaction()
// 数据导入结束后开始生成渲染表所需的json文件并生成压缩包
// val gson = Gson()
// // 数据导入结束后开始生成渲染表所需的json文件并生成压缩包
// for (table in importOMDBHelper.openConfigFile().tables/*listOf<String>("HAD_LINK")*/) {
// val omdbList = Realm.getDefaultInstance().where(OMDBEntity::class.java).equalTo("table", table.table).findAll()
// val outputFile = File(importOMDBHelper.omdbFile, "${table.table}.txt")
// // 将读取到的数据转换为json数据文件
// for (omdb in omdbList) {
// FileIOUtils.writeFileFromString(outputFile, gson.toJson(omdb))
// }
// }
Log.d("OMQSApplication", "导入数据完成")
}

View File

@ -14,4 +14,59 @@ open class OMDBEntity(): RealmObject() {
this.table = table
this.properties = properties
}
}
}
class HAD_LINK() {
var LINK_PID: String = ""
var MESH: String = ""
var S_NODE_PID: String = ""
var E_NODE_PID: String = ""
var GEOMETRY: String = ""
}
class HAD_LINK_KIND() {
var LINK_PID: String = ""
var MESH: String = ""
var KIND: Int = 0
var GEOMETRY: String = ""
}
class HAD_LINK_DIRECT() {
var LINK_PID: String = ""
var MESH: String = ""
var DIRECT: Int = 0
var GEOMETRY: String = ""
}
class HAD_SPEEDLIMIT() {
var SPEED_ID: String = ""
var MESH: String = ""
var LINK_PID: String = ""
var GEOMETRY: String = ""
var DIRECT: Int = 0
var SPEED_FLAG: Int = 0
var MAX_SPEED: Int = 0
var MIN_SPEED: Int = 0
}
class HAD_SPEEDLIMIT_COND() {
var SPEED_COND_ID: String = ""
var MESH: String = ""
var LINK_PID: String = ""
var GEOMETRY: String = ""
var DIRECT: Int = 0
var SPEED_FLAG: Int = 0
var MAX_SPEED: Int = 0
var SPEED_DEPENDENT: Int = 0
var VEHICLE_TYPE: Int = 0
var VALID_PERIOD: String = ""
}
class HAD_SPEEDLIMIT_VAR() {
var SPEED_VAR_ID: String = ""
var MESH: String = ""
var LINK_PID: String = ""
var GEOMETRY: String = ""
var DIRECT: Int = 0
var LOCATION: String = ""
}