merge codew
This commit is contained in:
parent
f03d8037d2
commit
b40a9e2ebb
@ -21,6 +21,7 @@ import com.navinfo.omqs.Constant.Companion.installTaskid
|
|||||||
import com.navinfo.omqs.bean.ImportConfig
|
import com.navinfo.omqs.bean.ImportConfig
|
||||||
import com.navinfo.omqs.db.deep.LinkList
|
import com.navinfo.omqs.db.deep.LinkList
|
||||||
import com.navinfo.omqs.hilt.OMDBDataBaseHiltFactory
|
import com.navinfo.omqs.hilt.OMDBDataBaseHiltFactory
|
||||||
|
import com.navinfo.omqs.util.CMLog
|
||||||
import dagger.assisted.Assisted
|
import dagger.assisted.Assisted
|
||||||
import dagger.assisted.AssistedInject
|
import dagger.assisted.AssistedInject
|
||||||
import io.realm.Realm
|
import io.realm.Realm
|
||||||
@ -210,28 +211,36 @@ class ImportOMDBHelper @AssistedInject constructor(
|
|||||||
|
|
||||||
// 遍历解压后的文件,读取该数据返回
|
// 遍历解压后的文件,读取该数据返回
|
||||||
// Log.d("ImportOMDBHelper", "表解析===开始时间$dataImportTime===")
|
// Log.d("ImportOMDBHelper", "表解析===开始时间$dataImportTime===")
|
||||||
|
CMLog.writeLogtoFile(
|
||||||
|
ImportOMDBHelper::class.java.name,
|
||||||
|
"importOmdbZipFile",
|
||||||
|
"开始"
|
||||||
|
)
|
||||||
for (importConfig in importConfigList) {
|
for (importConfig in importConfigList) {
|
||||||
|
|
||||||
for ((index, currentEntry) in importConfig.tableMap.entries.withIndex()) {
|
for ((index, currentEntry) in importConfig.tableMap.entries.withIndex()) {
|
||||||
processIndex += 1
|
processIndex += 1
|
||||||
// Log.d(
|
|
||||||
// "ImportOMDBHelper",
|
|
||||||
// "表解析===开始时间$tableImportTime===${currentEntry.value.table}"
|
|
||||||
// )
|
|
||||||
// Log.d(
|
|
||||||
// "ImportOMDBHelper",
|
|
||||||
// "表解析===processIndex${processIndex}====${processIndex}/${tableNum}"
|
|
||||||
// )
|
|
||||||
// val listResult = mutableListOf<RenderEntity>()
|
|
||||||
val currentConfig = currentEntry.value
|
val currentConfig = currentEntry.value
|
||||||
|
|
||||||
|
CMLog.writeLogtoFile(
|
||||||
|
ImportOMDBHelper::class.java.name,
|
||||||
|
"importOmdbZipFile",
|
||||||
|
"${currentConfig.table}开始"
|
||||||
|
)
|
||||||
|
|
||||||
val txtFile = unZipFiles.find {
|
val txtFile = unZipFiles.find {
|
||||||
it.name == currentConfig.table
|
it.name == currentConfig.table
|
||||||
}
|
}
|
||||||
if (txtFile != null) {
|
Log.e("qj", "开始遍历文件==${currentConfig.table}")
|
||||||
|
if (txtFile != null && txtFile.exists()) {
|
||||||
|
try {
|
||||||
|
|
||||||
|
Log.e("qj", "开始遍历文件1")
|
||||||
val fileReader = FileReader(txtFile)
|
val fileReader = FileReader(txtFile)
|
||||||
val bufferedReader = BufferedReader(fileReader)
|
val bufferedReader = BufferedReader(fileReader)
|
||||||
var line: String? = bufferedReader.readLine()
|
var line: String? = bufferedReader.readLine()
|
||||||
|
|
||||||
while (line != null) {
|
while (line != null) {
|
||||||
if (line == null || line.trim() == "") {
|
if (line == null || line.trim() == "") {
|
||||||
line = bufferedReader.readLine()
|
line = bufferedReader.readLine()
|
||||||
@ -239,7 +248,6 @@ class ImportOMDBHelper @AssistedInject constructor(
|
|||||||
}
|
}
|
||||||
elementIndex += 1
|
elementIndex += 1
|
||||||
dataIndex += 1
|
dataIndex += 1
|
||||||
// Log.d("ImportOMDBHelper", "解析第:${index + 1}行")
|
|
||||||
val map = gson.fromJson<Map<String, Any>>(
|
val map = gson.fromJson<Map<String, Any>>(
|
||||||
line, object : TypeToken<Map<String, Any>>() {}.type
|
line, object : TypeToken<Map<String, Any>>() {}.type
|
||||||
).toMutableMap()
|
).toMutableMap()
|
||||||
@ -259,53 +267,13 @@ class ImportOMDBHelper @AssistedInject constructor(
|
|||||||
renderEntity.zoomMin = map["qi_zoomMin"].toString().toInt()
|
renderEntity.zoomMin = map["qi_zoomMin"].toString().toInt()
|
||||||
renderEntity.zoomMax = map["qi_zoomMax"].toString().toInt()
|
renderEntity.zoomMax = map["qi_zoomMax"].toString().toInt()
|
||||||
|
|
||||||
// 在外层记录当前数据的linkPid
|
|
||||||
if (map.containsKey("linkPid")) {
|
|
||||||
renderEntity.linkPid =
|
|
||||||
map["linkPid"].toString().split(",")[0]
|
|
||||||
} else if (map.containsKey("linkList")) {
|
|
||||||
val linkList = map["linkList"].toString()
|
|
||||||
if (!linkList.isNullOrEmpty() && linkList != "null") {
|
|
||||||
val list: List<LinkList> = gson.fromJson(
|
|
||||||
linkList,
|
|
||||||
object : TypeToken<List<LinkList>>() {}.type
|
|
||||||
)
|
|
||||||
renderEntity.linkPid = list[0].linkPid
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Log.e(
|
Log.e(
|
||||||
"jingo",
|
"jingo",
|
||||||
"安装数据 ${renderEntity.table} ${renderEntity.linkPid} ${elementIndex} ${insertIndex}"
|
"安装数据 ${renderEntity.table} ${renderEntity.linkPid} $elementIndex $insertIndex"
|
||||||
)
|
)
|
||||||
|
|
||||||
renderEntity.geometry = map["geometry"].toString()
|
renderEntity.geometry = map["geometry"].toString()
|
||||||
// Log.d("ImportOMDBHelper", "解析===1处理3D")
|
Log.e("jingo", "map解析开始")
|
||||||
// 其他数据插入到Properties中
|
|
||||||
/* if (!currentConfig.is3D) { // 如果是非3d要素,则自动将Z轴坐标全部置为0
|
|
||||||
val coordinates =
|
|
||||||
renderEntity.wkt?.coordinates?.map { coordinate ->
|
|
||||||
coordinate.z = 0.0
|
|
||||||
coordinate
|
|
||||||
}?.toTypedArray()
|
|
||||||
var newGeometry: Geometry? = null
|
|
||||||
if (renderEntity.wkt?.geometryType == Geometry.TYPENAME_POINT) {
|
|
||||||
newGeometry = GeometryTools.createPoint(
|
|
||||||
coordinates!![0].x,
|
|
||||||
coordinates!![0].y
|
|
||||||
)
|
|
||||||
} else if (renderEntity.wkt?.geometryType == Geometry.TYPENAME_LINESTRING) {
|
|
||||||
newGeometry =
|
|
||||||
GeometryTools.createLineString(coordinates)
|
|
||||||
} else if (renderEntity.wkt?.geometryType == Geometry.TYPENAME_POLYGON) {
|
|
||||||
newGeometry =
|
|
||||||
GeometryTools.createLineString(coordinates)
|
|
||||||
}
|
|
||||||
if (newGeometry != null) {
|
|
||||||
renderEntity.geometry = newGeometry.toString()
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
// Log.d("ImportOMDBHelper", "解析===2处理3D")
|
|
||||||
// Log.d("ImportOMDBHelper", "解析===1处理属性")
|
|
||||||
for ((key, value) in map) {
|
for ((key, value) in map) {
|
||||||
when (value) {
|
when (value) {
|
||||||
is String -> renderEntity.properties[key] = value
|
is String -> renderEntity.properties[key] = value
|
||||||
@ -315,24 +283,25 @@ class ImportOMDBHelper @AssistedInject constructor(
|
|||||||
is Double -> renderEntity.properties[key] =
|
is Double -> renderEntity.properties[key] =
|
||||||
value.toDouble().toString()
|
value.toDouble().toString()
|
||||||
|
|
||||||
else -> renderEntity.properties[key] = value.toString()
|
else -> renderEntity.properties[key] =
|
||||||
|
value.toString()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Log.d("ImportOMDBHelper", "解析===2处理属性")
|
|
||||||
// Log.d("ImportOMDBHelper", "解析===1处理name")
|
|
||||||
// 如果properties中不包含name,那么自动将要素名称添加进properties中
|
// 如果properties中不包含name,那么自动将要素名称添加进properties中
|
||||||
if (!renderEntity.properties.containsKey("name")) {
|
if (!renderEntity.properties.containsKey("name")) {
|
||||||
renderEntity.properties["name"] = renderEntity.name;
|
renderEntity.properties["name"] = renderEntity.name;
|
||||||
}
|
}
|
||||||
// Log.d("ImportOMDBHelper", "解析===2处理name")
|
|
||||||
// Log.d("ImportOMDBHelper", "解析===1处理杆状物")
|
Log.e("jingo", "map解析结束")
|
||||||
|
|
||||||
if (currentConfig.filterData) {
|
if (currentConfig.filterData) {
|
||||||
when (renderEntity.code.toInt()) {
|
when (renderEntity.code.toInt()) {
|
||||||
|
|
||||||
DataCodeEnum.OMDB_POLE.code.toInt() -> {
|
DataCodeEnum.OMDB_POLE.code.toInt() -> {
|
||||||
//过滤树类型的杆状物,无需导入到数据库中
|
//过滤树类型的杆状物,无需导入到数据库中
|
||||||
val poleType = renderEntity.properties["poleType"]
|
val poleType =
|
||||||
|
renderEntity.properties["poleType"]
|
||||||
if (poleType != null && poleType.toInt() == 2) {
|
if (poleType != null && poleType.toInt() == 2) {
|
||||||
line = bufferedReader.readLine()
|
line = bufferedReader.readLine()
|
||||||
continue
|
continue
|
||||||
@ -346,10 +315,6 @@ class ImportOMDBHelper @AssistedInject constructor(
|
|||||||
when (boundaryType.toInt()) {
|
when (boundaryType.toInt()) {
|
||||||
0, 1, 6, 8, 9 -> {
|
0, 1, 6, 8, 9 -> {
|
||||||
renderEntity.enable = 0
|
renderEntity.enable = 0
|
||||||
// Log.e(
|
|
||||||
// "qj",
|
|
||||||
// "过滤不显示数据${renderEntity.table}"
|
|
||||||
// )
|
|
||||||
line = bufferedReader.readLine()
|
line = bufferedReader.readLine()
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@ -364,10 +329,6 @@ class ImportOMDBHelper @AssistedInject constructor(
|
|||||||
when (boundaryType.toInt()) {
|
when (boundaryType.toInt()) {
|
||||||
0, 1, 3, 4, 5, 7, 9 -> {
|
0, 1, 3, 4, 5, 7, 9 -> {
|
||||||
renderEntity.enable = 0
|
renderEntity.enable = 0
|
||||||
// Log.e(
|
|
||||||
// "qj",
|
|
||||||
// "过滤不显示数据${renderEntity.table}"
|
|
||||||
// )
|
|
||||||
line = bufferedReader.readLine()
|
line = bufferedReader.readLine()
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@ -382,10 +343,6 @@ class ImportOMDBHelper @AssistedInject constructor(
|
|||||||
when (locationType.toInt()) {
|
when (locationType.toInt()) {
|
||||||
3, 4 -> {
|
3, 4 -> {
|
||||||
renderEntity.enable = 0
|
renderEntity.enable = 0
|
||||||
// Log.e(
|
|
||||||
// "qj",
|
|
||||||
// "过滤不显示数据${renderEntity.table}"
|
|
||||||
// )
|
|
||||||
line = bufferedReader.readLine()
|
line = bufferedReader.readLine()
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@ -398,15 +355,13 @@ class ImportOMDBHelper @AssistedInject constructor(
|
|||||||
"linkOut"
|
"linkOut"
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
val linkIn = renderEntity.properties["linkIn"]
|
val linkIn =
|
||||||
val linkOut = renderEntity.properties["linkOut"]
|
renderEntity.properties["linkIn"]
|
||||||
|
val linkOut =
|
||||||
|
renderEntity.properties["linkOut"]
|
||||||
if (linkIn != null && linkOut != null) {
|
if (linkIn != null && linkOut != null) {
|
||||||
val checkMsg = "$linkIn$linkOut"
|
val checkMsg = "$linkIn$linkOut"
|
||||||
if (resHashMap.containsKey(checkMsg)) {
|
if (resHashMap.containsKey(checkMsg)) {
|
||||||
// Log.e(
|
|
||||||
// "qj",
|
|
||||||
// "${renderEntity.name}==过滤交限linkin与linkout相同且存在多条数据"
|
|
||||||
// )
|
|
||||||
line = bufferedReader.readLine()
|
line = bufferedReader.readLine()
|
||||||
continue
|
continue
|
||||||
} else {
|
} else {
|
||||||
@ -416,12 +371,8 @@ class ImportOMDBHelper @AssistedInject constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Log.d("ImportOMDBHelper", "解析===2处理杆状物")
|
|
||||||
// Log.d("ImportOMDBHelper", "解析===1任务路线匹配")
|
|
||||||
|
|
||||||
//遍历判断只显示与任务Link相关的任务数据
|
//遍历判断只显示与任务Link相关的任务数据
|
||||||
if (currentConfig.checkLinkId) {
|
if (currentConfig.checkLinkId) {
|
||||||
|
|
||||||
@ -429,10 +380,6 @@ class ImportOMDBHelper @AssistedInject constructor(
|
|||||||
|
|
||||||
val currentLinkPid = renderEntity.linkPid
|
val currentLinkPid = renderEntity.linkPid
|
||||||
|
|
||||||
// Log.d(
|
|
||||||
// "ImportOMDBHelper",
|
|
||||||
// "解析===1任务路线匹配${currentLinkPid}"
|
|
||||||
// )
|
|
||||||
|
|
||||||
if (!currentLinkPid.isNullOrEmpty() && currentLinkPid != "null") {
|
if (!currentLinkPid.isNullOrEmpty() && currentLinkPid != "null") {
|
||||||
|
|
||||||
@ -440,18 +387,9 @@ class ImportOMDBHelper @AssistedInject constructor(
|
|||||||
|
|
||||||
if (list.isNotEmpty()) {
|
if (list.isNotEmpty()) {
|
||||||
|
|
||||||
// Log.d(
|
|
||||||
// "ImportOMDBHelper",
|
|
||||||
// "解析===1任务路线匹配${list.size}"
|
|
||||||
// )
|
|
||||||
|
|
||||||
m@ for (linkPid in list) {
|
m@ for (linkPid in list) {
|
||||||
if (hashMap.containsKey(linkPid.toLong())) {
|
if (hashMap.containsKey(linkPid.toLong())) {
|
||||||
renderEntity.enable = 1
|
renderEntity.enable = 1
|
||||||
// Log.e(
|
|
||||||
// "qj",
|
|
||||||
// "${renderEntity.name}==包括任务link"
|
|
||||||
// )
|
|
||||||
break@m
|
break@m
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -465,32 +403,20 @@ class ImportOMDBHelper @AssistedInject constructor(
|
|||||||
|
|
||||||
if (renderEntity.properties["linkList"] != null) {
|
if (renderEntity.properties["linkList"] != null) {
|
||||||
|
|
||||||
// Log.e(
|
val linkList =
|
||||||
// "qj",
|
renderEntity.properties["linkList"]
|
||||||
// "linkList==开始${renderEntity.name}==${renderEntity.properties["linkList"]}}"
|
|
||||||
// )
|
|
||||||
|
|
||||||
val linkList = renderEntity.properties["linkList"]
|
|
||||||
|
|
||||||
if (!linkList.isNullOrEmpty() && linkList != "null") {
|
if (!linkList.isNullOrEmpty() && linkList != "null") {
|
||||||
|
|
||||||
// Log.e(
|
|
||||||
// "qj",
|
|
||||||
// "linkList==${renderEntity.name}==${renderEntity.properties["linkList"]}}"
|
|
||||||
// )
|
|
||||||
|
|
||||||
val list: List<LinkList> = gson.fromJson(
|
val list: List<LinkList> = gson.fromJson(
|
||||||
linkList,
|
linkList,
|
||||||
object : TypeToken<List<LinkList>>() {}.type
|
object :
|
||||||
|
TypeToken<List<LinkList>>() {}.type
|
||||||
)
|
)
|
||||||
|
|
||||||
m@ for (link in list) {
|
m@ for (link in list) {
|
||||||
if (hashMap.containsKey(link.linkPid.toLong())) {
|
if (hashMap.containsKey(link.linkPid.toLong())) {
|
||||||
renderEntity.enable = 1
|
renderEntity.enable = 1
|
||||||
// Log.e(
|
|
||||||
// "qj",
|
|
||||||
// "${renderEntity.name}==包括任务link"
|
|
||||||
// )
|
|
||||||
break@m
|
break@m
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -503,32 +429,13 @@ class ImportOMDBHelper @AssistedInject constructor(
|
|||||||
}
|
}
|
||||||
//过滤掉非任务路线上的数据
|
//过滤掉非任务路线上的数据
|
||||||
if (renderEntity.enable != 1) {
|
if (renderEntity.enable != 1) {
|
||||||
// Log.e(
|
|
||||||
// "qj",
|
|
||||||
// "${renderEntity.name}==过滤不包括任务路线上的数据"
|
|
||||||
// )
|
|
||||||
line = bufferedReader.readLine()
|
line = bufferedReader.readLine()
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
|
||||||
renderEntity.enable = 1
|
|
||||||
|
|
||||||
/* var geometry = GeometryTools.createGeometry(renderEntity.geometry)
|
|
||||||
if(multipLine.intersects(geometry)){
|
|
||||||
renderEntity.enable = 1
|
|
||||||
}else{
|
|
||||||
val dis = multipLine.distance(GeometryTools.createGeometry(renderEntity.geometry))
|
|
||||||
if(dis>36){
|
|
||||||
continue
|
|
||||||
} else {
|
} else {
|
||||||
renderEntity.enable = 1
|
renderEntity.enable = 1
|
||||||
}
|
}
|
||||||
}*/
|
|
||||||
// Log.e("qj", "${renderEntity.name}==不包括任务linkPid")
|
|
||||||
}
|
|
||||||
// Log.d("ImportOMDBHelper", "解析===2任务路线匹配")
|
|
||||||
// Log.d("ImportOMDBHelper", "解析===1预处理")
|
|
||||||
|
|
||||||
if (currentConfig.catch) {
|
if (currentConfig.catch) {
|
||||||
renderEntity.catchEnable = 1
|
renderEntity.catchEnable = 1
|
||||||
@ -536,33 +443,23 @@ class ImportOMDBHelper @AssistedInject constructor(
|
|||||||
renderEntity.catchEnable = 0
|
renderEntity.catchEnable = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
// 对renderEntity做预处理后再保存
|
var resultEntity = importConfig.transformProperties(renderEntity, realm)
|
||||||
val resultEntity =
|
|
||||||
importConfig.transformProperties(renderEntity, realm)
|
|
||||||
// Log.d("ImportOMDBHelper", "解析===2预处理")
|
|
||||||
if (resultEntity != null) {
|
|
||||||
|
|
||||||
// Log.d("ImportOMDBHelper", "解析===1子code处理")
|
if (resultEntity != null) {
|
||||||
//对code编码需要特殊处理 存在多个属性值时,渲染优先级:SA>PA,存在多个属性值时,渲染优先级:FRONTAGE>MAIN_SIDE_A CCESS
|
|
||||||
|
|
||||||
if (currentConfig.existSubCode) {
|
if (currentConfig.existSubCode) {
|
||||||
when (renderEntity.code.toInt()) {
|
when (renderEntity.code.toInt()) {
|
||||||
DataCodeEnum.OMDB_LINK_ATTRIBUTE.code.toInt() -> {
|
DataCodeEnum.OMDB_LINK_ATTRIBUTE.code.toInt() -> {
|
||||||
|
|
||||||
// Log.e("qj", "道路属性===0")
|
|
||||||
|
|
||||||
var type = renderEntity.properties["sa"]
|
var type = renderEntity.properties["sa"]
|
||||||
|
|
||||||
if (type != null && type == "1") {
|
if (type != null && type == "1") {
|
||||||
renderEntity.code =
|
renderEntity.code =
|
||||||
DataCodeEnum.OMDB_LINK_ATTRIBUTE_SA.code
|
DataCodeEnum.OMDB_LINK_ATTRIBUTE_SA.code
|
||||||
// Log.e("qj", "道路属性===1")
|
|
||||||
} else {
|
} else {
|
||||||
type = renderEntity.properties["pa"]
|
type = renderEntity.properties["pa"]
|
||||||
if (type != null && type == "1") {
|
if (type != null && type == "1") {
|
||||||
renderEntity.code =
|
renderEntity.code =
|
||||||
DataCodeEnum.OMDB_LINK_ATTRIBUTE_PA.code
|
DataCodeEnum.OMDB_LINK_ATTRIBUTE_PA.code
|
||||||
// Log.e("qj", "道路属性===2")
|
|
||||||
} else {
|
} else {
|
||||||
type =
|
type =
|
||||||
renderEntity.properties["frontage"]
|
renderEntity.properties["frontage"]
|
||||||
@ -571,7 +468,6 @@ class ImportOMDBHelper @AssistedInject constructor(
|
|||||||
DataCodeEnum.OMDB_LINK_ATTRIBUTE_FORNTAGE.code
|
DataCodeEnum.OMDB_LINK_ATTRIBUTE_FORNTAGE.code
|
||||||
renderEntity.zoomMin = 15
|
renderEntity.zoomMin = 15
|
||||||
renderEntity.zoomMax = 17
|
renderEntity.zoomMax = 17
|
||||||
// Log.e("qj", "道路属性===3")
|
|
||||||
} else {
|
} else {
|
||||||
type =
|
type =
|
||||||
renderEntity.properties["mainSideAccess"]
|
renderEntity.properties["mainSideAccess"]
|
||||||
@ -580,17 +476,12 @@ class ImportOMDBHelper @AssistedInject constructor(
|
|||||||
DataCodeEnum.OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS.code
|
DataCodeEnum.OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS.code
|
||||||
renderEntity.zoomMin = 15
|
renderEntity.zoomMin = 15
|
||||||
renderEntity.zoomMax = 17
|
renderEntity.zoomMax = 17
|
||||||
// Log.e("qj", "道路属性===4")
|
|
||||||
} else {
|
} else {
|
||||||
renderEntity.enable = 0
|
renderEntity.enable = 0
|
||||||
renderEntity.zoomMin = 15
|
renderEntity.zoomMin = 15
|
||||||
renderEntity.zoomMax = 17
|
renderEntity.zoomMax = 17
|
||||||
// Log.e(
|
line =
|
||||||
// "qj",
|
bufferedReader.readLine()
|
||||||
// "过滤不显示数据${renderEntity.table}"
|
|
||||||
// )
|
|
||||||
// Log.e("qj", "道路属性===5")
|
|
||||||
line = bufferedReader.readLine()
|
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -602,15 +493,16 @@ class ImportOMDBHelper @AssistedInject constructor(
|
|||||||
when (renderEntity.properties["bridgeType"]) {
|
when (renderEntity.properties["bridgeType"]) {
|
||||||
"1" -> renderEntity.code =
|
"1" -> renderEntity.code =
|
||||||
DataCodeEnum.OMDB_BRIDGE_1.code
|
DataCodeEnum.OMDB_BRIDGE_1.code
|
||||||
|
|
||||||
"2" -> renderEntity.code =
|
"2" -> renderEntity.code =
|
||||||
DataCodeEnum.OMDB_BRIDGE_2.code
|
DataCodeEnum.OMDB_BRIDGE_2.code
|
||||||
// "3" -> renderEntity.code = DataCodeEnum.OMDB_BRIDGE_3.code
|
|
||||||
else -> DataCodeEnum.OMDB_BRIDGE.code
|
else -> DataCodeEnum.OMDB_BRIDGE.code
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
DataCodeEnum.OMDB_RAMP.code.toInt() -> {
|
DataCodeEnum.OMDB_RAMP.code.toInt() -> {
|
||||||
/*匝道*/
|
//*匝道*//*
|
||||||
val formWay =
|
val formWay =
|
||||||
renderEntity.properties["formOfWay"]
|
renderEntity.properties["formOfWay"]
|
||||||
if (formWay != null) {
|
if (formWay != null) {
|
||||||
@ -640,7 +532,7 @@ class ImportOMDBHelper @AssistedInject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
DataCodeEnum.OMDB_LINK_FORM1.code.toInt() -> {
|
DataCodeEnum.OMDB_LINK_FORM1.code.toInt() -> {
|
||||||
/*道路形态1*/
|
//*道路形态1*//*
|
||||||
val formWay =
|
val formWay =
|
||||||
renderEntity.properties["formOfWay"]
|
renderEntity.properties["formOfWay"]
|
||||||
if (formWay != null) {
|
if (formWay != null) {
|
||||||
@ -658,11 +550,7 @@ class ImportOMDBHelper @AssistedInject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
DataCodeEnum.OMDB_LINK_FORM2.code.toInt() -> {
|
DataCodeEnum.OMDB_LINK_FORM2.code.toInt() -> {
|
||||||
// Log.e(
|
//*道路形态2*//*
|
||||||
// "qj",
|
|
||||||
// "道路形态2${renderEntity.properties["formOfWay"]}"
|
|
||||||
// )
|
|
||||||
/*道路形态2*/
|
|
||||||
val formWay =
|
val formWay =
|
||||||
renderEntity.properties["formOfWay"]
|
renderEntity.properties["formOfWay"]
|
||||||
if (formWay != null) {
|
if (formWay != null) {
|
||||||
@ -722,16 +610,13 @@ class ImportOMDBHelper @AssistedInject constructor(
|
|||||||
|
|
||||||
if (renderEntity.table == DataCodeEnum.OMDB_NODE_FORM.name) {//特殊处理,因为code相同,使用表名判断
|
if (renderEntity.table == DataCodeEnum.OMDB_NODE_FORM.name) {//特殊处理,因为code相同,使用表名判断
|
||||||
//过滤不需要渲染的要素
|
//过滤不需要渲染的要素
|
||||||
val formOfWay = renderEntity.properties["formOfWay"]
|
val formOfWay =
|
||||||
|
renderEntity.properties["formOfWay"]
|
||||||
if (formOfWay != null && formOfWay.toInt() == 30) {
|
if (formOfWay != null && formOfWay.toInt() == 30) {
|
||||||
renderEntity.enable = 2
|
renderEntity.enable = 2
|
||||||
renderEntity.code =
|
renderEntity.code =
|
||||||
DataCodeEnum.OMDB_NODE_FORM.code
|
DataCodeEnum.OMDB_NODE_FORM.code
|
||||||
} else {
|
} else {
|
||||||
// Log.e(
|
|
||||||
// "qj",
|
|
||||||
// "过滤不显示数据${renderEntity.table}"
|
|
||||||
// )
|
|
||||||
line = bufferedReader.readLine()
|
line = bufferedReader.readLine()
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
@ -744,19 +629,13 @@ class ImportOMDBHelper @AssistedInject constructor(
|
|||||||
renderEntity.code =
|
renderEntity.code =
|
||||||
DataCodeEnum.OMDB_NODE_PA.code
|
DataCodeEnum.OMDB_NODE_PA.code
|
||||||
} else {
|
} else {
|
||||||
// Log.e(
|
|
||||||
// "qj",
|
|
||||||
// "过滤不显示数据${renderEntity.table}"
|
|
||||||
// )
|
|
||||||
line = bufferedReader.readLine()
|
line = bufferedReader.readLine()
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Log.d("ImportOMDBHelper", "解析===2子code处理")
|
|
||||||
++insertIndex
|
++insertIndex
|
||||||
Log.e("qj", "统计==${insertIndex}")
|
|
||||||
|
|
||||||
//移除该字段,减少数据量
|
//移除该字段,减少数据量
|
||||||
if (renderEntity.properties.containsKey("geometry")) {
|
if (renderEntity.properties.containsKey("geometry")) {
|
||||||
@ -780,53 +659,66 @@ class ImportOMDBHelper @AssistedInject constructor(
|
|||||||
renderEntity.linkRelation!!.eNodeId =
|
renderEntity.linkRelation!!.eNodeId =
|
||||||
renderEntity.properties["enodePid"]
|
renderEntity.properties["enodePid"]
|
||||||
}
|
}
|
||||||
renderEntity.propertiesDb = StrZipUtil.compress(
|
|
||||||
gson.toJson(renderEntity.properties).toString()
|
//去掉暂用控件较大的字段多余属性字段
|
||||||
)
|
if (renderEntity.properties.containsKey("shapeList")) {
|
||||||
|
renderEntity.properties.remove("shapeList")
|
||||||
|
}
|
||||||
|
|
||||||
|
var gsonStr = gson.toJson(renderEntity.properties).toString()
|
||||||
|
renderEntity.propertiesDb = StrZipUtil.compress(gsonStr)
|
||||||
|
|
||||||
listRenderEntity.add(renderEntity)
|
listRenderEntity.add(renderEntity)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (listRenderEntity.size > 50000) {
|
||||||
if (listRenderEntity.size > 10000) {
|
Log.e("jingo", "50000刷新")
|
||||||
Log.e(
|
realm.copyToRealmOrUpdate(listRenderEntity)
|
||||||
"jingo", "10000刷新"
|
|
||||||
)
|
|
||||||
realm.copyToRealm(listRenderEntity)
|
|
||||||
realm.commitTransaction()
|
realm.commitTransaction()
|
||||||
realm.close()
|
realm.close()
|
||||||
listRenderEntity.clear()
|
listRenderEntity.clear()
|
||||||
insertIndex = 0
|
insertIndex = 0
|
||||||
// Realm.compactRealm(currentInstallTaskConfig)
|
|
||||||
realm = Realm.getInstance(currentInstallTaskConfig)
|
realm = Realm.getInstance(currentInstallTaskConfig)
|
||||||
realm.beginTransaction()
|
realm.beginTransaction()
|
||||||
}
|
}
|
||||||
line = bufferedReader.readLine()
|
line = bufferedReader.readLine()
|
||||||
}
|
}
|
||||||
|
|
||||||
bufferedReader.close()
|
bufferedReader.close()
|
||||||
|
} catch (e: Exception) {
|
||||||
|
CMLog.writeLogtoFile(
|
||||||
|
ImportOMDBHelper::class.java.name,
|
||||||
|
"importOmdbZipFile",
|
||||||
|
"${currentConfig.table}安装异常"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
CMLog.writeLogtoFile(
|
||||||
|
ImportOMDBHelper::class.java.name,
|
||||||
|
"importOmdbZipFile",
|
||||||
|
"文件不存在"
|
||||||
|
)
|
||||||
}
|
}
|
||||||
// 1个文件发送一次flow流
|
// 1个文件发送一次flow流
|
||||||
emit("${processIndex}/${tableNum}")
|
emit("${processIndex}/${tableNum}")
|
||||||
// Log.d("ImportOMDBHelper", "表解析===2${currentConfig.table}")
|
CMLog.writeLogtoFile(
|
||||||
// Log.d(
|
ImportOMDBHelper::class.java.name,
|
||||||
// "ImportOMDBHelper",
|
"importOmdbZipFile",
|
||||||
// "表解析===结束用时时间${(System.currentTimeMillis() - tableImportTime)}===${currentEntry.value.table}===$elementIndex"
|
"${currentConfig.table}结束==$elementIndex"
|
||||||
// )
|
)
|
||||||
elementIndex = 0
|
elementIndex = 0
|
||||||
// tableImportTime = System.currentTimeMillis()
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
CMLog.writeLogtoFile(
|
||||||
|
ImportOMDBHelper::class.java.name,
|
||||||
|
"importOmdbZipFile",
|
||||||
|
"结束===总量$dataIndex"
|
||||||
|
)
|
||||||
|
|
||||||
realm.copyToRealm(listRenderEntity)
|
realm.copyToRealmOrUpdate(listRenderEntity)
|
||||||
realm.commitTransaction()
|
realm.commitTransaction()
|
||||||
|
|
||||||
realm.close()
|
realm.close()
|
||||||
listRenderEntity.clear()
|
listRenderEntity.clear()
|
||||||
// Log.d(
|
|
||||||
// "ImportOMDBHelper",
|
|
||||||
// "表解析===结束用时时间${(System.currentTimeMillis() - dataImportTime)}===$dataIndex===插入$insertIndex"
|
|
||||||
// )
|
|
||||||
Log.e("qj", "安装结束")
|
Log.e("qj", "安装结束")
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
if (realm.isInTransaction) {
|
if (realm.isInTransaction) {
|
||||||
|
@ -740,9 +740,11 @@ class ImportPreProcess {
|
|||||||
// angleReference.renderEntityId = renderEntity.id
|
// angleReference.renderEntityId = renderEntity.id
|
||||||
angleReference.name = "${renderEntity.name}车道中线面"
|
angleReference.name = "${renderEntity.name}车道中线面"
|
||||||
angleReference.table = renderEntity.table
|
angleReference.table = renderEntity.table
|
||||||
|
Log.e("jingo", "几何转换开始")
|
||||||
angleReference.geometry =
|
angleReference.geometry =
|
||||||
GeometryTools.createGeometry(renderEntity.geometry).buffer(0.000035)
|
GeometryTools.createGeometry(renderEntity.geometry).buffer(0.000010)
|
||||||
.toString()//GeometryTools.computeLine(0.000035,0.000035,renderEntity.geometry)
|
.toString()//GeometryTools.computeLine(0.000035,0.000035,renderEntity.geometry)
|
||||||
|
Log.e("jingo", "几何转换结束")
|
||||||
angleReference.properties["qi_table"] = renderEntity.table
|
angleReference.properties["qi_table"] = renderEntity.table
|
||||||
angleReference.properties["widthProperties"] = "3"
|
angleReference.properties["widthProperties"] = "3"
|
||||||
angleReference.zoomMin = renderEntity.zoomMin
|
angleReference.zoomMin = renderEntity.zoomMin
|
||||||
@ -750,9 +752,6 @@ class ImportPreProcess {
|
|||||||
angleReference.taskId = renderEntity.taskId
|
angleReference.taskId = renderEntity.taskId
|
||||||
angleReference.enable = renderEntity.enable
|
angleReference.enable = renderEntity.enable
|
||||||
val listResult = mutableListOf<ReferenceEntity>()
|
val listResult = mutableListOf<ReferenceEntity>()
|
||||||
angleReference.propertiesDb = StrZipUtil.compress(
|
|
||||||
gson.toJson(angleReference.properties).toString()
|
|
||||||
)
|
|
||||||
listResult.add(angleReference)
|
listResult.add(angleReference)
|
||||||
insertData(listResult)
|
insertData(listResult)
|
||||||
}
|
}
|
||||||
|
@ -473,6 +473,71 @@ class TaskViewModel @Inject constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 重新下载数据任务
|
||||||
|
*/
|
||||||
|
fun resetDownload(context: Context, taskBean: TaskBean) {
|
||||||
|
val mDialog = FirstDialog(context)
|
||||||
|
mDialog.setTitle("提示?")
|
||||||
|
mDialog.setMessage("是否重置下载状态,请确认!")
|
||||||
|
mDialog.setPositiveButton(
|
||||||
|
"确定"
|
||||||
|
) { dialog, _ ->
|
||||||
|
dialog.dismiss()
|
||||||
|
liveDataCloseTask.postValue(TaskDelStatus.TASK_DEL_STATUS_BEGIN)
|
||||||
|
viewModelScope.launch(Dispatchers.IO) {
|
||||||
|
//删除已下载的数据
|
||||||
|
val fileTemp =
|
||||||
|
File("${Constant.DOWNLOAD_PATH}${taskBean.evaluationTaskName}_${taskBean.dataVersion}.zip")
|
||||||
|
if (fileTemp.exists()) {
|
||||||
|
fileTemp.delete()
|
||||||
|
}
|
||||||
|
val taskFileTemp = File(Constant.USER_DATA_PATH + "/${taskBean.id}")
|
||||||
|
//重命名
|
||||||
|
if (taskFileTemp.exists()) {
|
||||||
|
/* var currentSelectTaskFolder = File(Constant.USER_DATA_PATH + "/${taskBean.id}")
|
||||||
|
var currentSelectTaskConfig =
|
||||||
|
RealmConfiguration.Builder().directory(currentSelectTaskFolder)
|
||||||
|
.name("OMQS.realm").encryptionKey(Constant.PASSWORD)
|
||||||
|
.allowQueriesOnUiThread(true)
|
||||||
|
.schemaVersion(2).build()
|
||||||
|
Realm.getInstance(currentSelectTaskConfig).executeTransaction { r ->
|
||||||
|
//删除已有所有数据
|
||||||
|
r.delete(RenderEntity::class.java)
|
||||||
|
r.delete(ReferenceEntity::class.java)
|
||||||
|
}
|
||||||
|
Realm.getInstance(currentSelectTaskConfig).close()*/
|
||||||
|
}
|
||||||
|
//将下载状态修改已下载
|
||||||
|
val realm = realmOperateHelper.getRealmDefaultInstance()
|
||||||
|
taskBean.syncStatus = FileManager.Companion.FileUploadStatus.NONE
|
||||||
|
taskBean.status = FileManager.Companion.FileDownloadStatus.NONE
|
||||||
|
realm.beginTransaction()
|
||||||
|
realm.copyToRealmOrUpdate(taskBean)
|
||||||
|
realm.commitTransaction()
|
||||||
|
realm.close()
|
||||||
|
liveDataCloseTask.postValue(TaskDelStatus.TASK_DEL_STATUS_SUCCESS)
|
||||||
|
withContext(Dispatchers.Main) {
|
||||||
|
if (taskBean.id == currentSelectTaskBean?.id ?: 0) {
|
||||||
|
mapController.layerManagerHandler.updateOMDBVectorTileLayer()
|
||||||
|
} else {
|
||||||
|
setSelectTaskBean(taskBean)
|
||||||
|
}
|
||||||
|
realmOperateHelper.getRealmDefaultInstance().refresh()
|
||||||
|
//重新加载数据
|
||||||
|
getLocalTaskList()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mDialog.setNegativeButton(
|
||||||
|
"取消"
|
||||||
|
) { _, _ ->
|
||||||
|
liveDataCloseTask.postValue(TaskDelStatus.TASK_DEL_STATUS_CANCEL)
|
||||||
|
mDialog.dismiss()
|
||||||
|
}
|
||||||
|
mDialog.show()
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 关闭任务
|
* 关闭任务
|
||||||
*/
|
*/
|
||||||
@ -484,7 +549,9 @@ class TaskViewModel @Inject constructor(
|
|||||||
"确定"
|
"确定"
|
||||||
) { dialog, _ ->
|
) { dialog, _ ->
|
||||||
dialog.dismiss()
|
dialog.dismiss()
|
||||||
|
liveDataCloseTask.postValue(TaskDelStatus.TASK_DEL_STATUS_BEGIN)
|
||||||
viewModelScope.launch(Dispatchers.IO) {
|
viewModelScope.launch(Dispatchers.IO) {
|
||||||
|
liveDataCloseTask.postValue(TaskDelStatus.TASK_DEL_STATUS_LOADING)
|
||||||
val realm = realmOperateHelper.getRealmDefaultInstance()
|
val realm = realmOperateHelper.getRealmDefaultInstance()
|
||||||
realm.executeTransaction {
|
realm.executeTransaction {
|
||||||
val objects =
|
val objects =
|
||||||
@ -518,14 +585,14 @@ class TaskViewModel @Inject constructor(
|
|||||||
FileManager.checkOMDBFileInfo(item)
|
FileManager.checkOMDBFileInfo(item)
|
||||||
}
|
}
|
||||||
liveDataTaskList.postValue(taskList)
|
liveDataTaskList.postValue(taskList)
|
||||||
liveDataCloseTask.postValue(true)
|
liveDataCloseTask.postValue(TaskDelStatus.TASK_DEL_STATUS_SUCCESS)
|
||||||
realm.close()
|
realm.close()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mDialog.setNegativeButton(
|
mDialog.setNegativeButton(
|
||||||
"取消"
|
"取消"
|
||||||
) { _, _ ->
|
) { _, _ ->
|
||||||
liveDataCloseTask.postValue(false)
|
liveDataCloseTask.postValue(TaskDelStatus.TASK_DEL_STATUS_CANCEL)
|
||||||
mDialog.dismiss()
|
mDialog.dismiss()
|
||||||
}
|
}
|
||||||
mDialog.show()
|
mDialog.show()
|
||||||
|
2
vtm
2
vtm
@ -1 +1 @@
|
|||||||
Subproject commit c046e788f5c739612a31c308639fca2de639669a
|
Subproject commit 9e0cc6dcdce04d1082ed6459e8810d6329e8cfdc
|
Loading…
x
Reference in New Issue
Block a user