merge code

This commit is contained in:
qiji4215
2023-09-05 14:07:11 +08:00
parent ef13f9a926
commit 4230bbd3d0

View File

@@ -112,10 +112,13 @@ class ImportOMDBHelper @AssistedInject constructor(
FIELD_TYPE_NULL -> rowMap[columnName] = "" FIELD_TYPE_NULL -> rowMap[columnName] = ""
FIELD_TYPE_INTEGER -> rowMap[columnName] = FIELD_TYPE_INTEGER -> rowMap[columnName] =
getInt(columnIndex) getInt(columnIndex)
FIELD_TYPE_FLOAT -> rowMap[columnName] = FIELD_TYPE_FLOAT -> rowMap[columnName] =
getFloat(columnIndex) getFloat(columnIndex)
FIELD_TYPE_BLOB -> rowMap[columnName] = FIELD_TYPE_BLOB -> rowMap[columnName] =
String(getBlob(columnIndex), Charsets.UTF_8) String(getBlob(columnIndex), Charsets.UTF_8)
else -> rowMap[columnName] = getString(columnIndex) else -> rowMap[columnName] = getString(columnIndex)
} }
} }
@@ -134,7 +137,8 @@ class ImportOMDBHelper @AssistedInject constructor(
* @param omdbZipFile omdb数据抽取生成的Zip文件 * @param omdbZipFile omdb数据抽取生成的Zip文件
* @param configFile 对应的配置文件 * @param configFile 对应的配置文件
* */ * */
suspend fun importOmdbZipFile(omdbZipFile: File, task: TaskBean): Flow<String> = withContext(Dispatchers.IO) { suspend fun importOmdbZipFile(omdbZipFile: File, task: TaskBean): Flow<String> =
withContext(Dispatchers.IO) {
val unZipFolder = File(omdbZipFile.parentFile, "result") val unZipFolder = File(omdbZipFile.parentFile, "result")
flow { flow {
if (unZipFolder.exists()) { if (unZipFolder.exists()) {
@@ -143,8 +147,7 @@ class ImportOMDBHelper @AssistedInject constructor(
unZipFolder.mkdirs() unZipFolder.mkdirs()
// 开始解压zip文件 // 开始解压zip文件
val unZipFiles = ZipUtils.unzipFile(omdbZipFile, unZipFolder) val unZipFiles = ZipUtils.unzipFile(omdbZipFile, unZipFolder)
// 将listResult数据插入到Realm数据库中
val realm = Realm.getDefaultInstance()
// 先获取当前配置的所有图层的个数,方便后续计算数据解析进度 // 先获取当前配置的所有图层的个数,方便后续计算数据解析进度
var tableNum = 0 var tableNum = 0
var processIndex = 0 var processIndex = 0
@@ -152,23 +155,27 @@ class ImportOMDBHelper @AssistedInject constructor(
tableNum += importConfig.tableMap.size tableNum += importConfig.tableMap.size
} }
realm.beginTransaction()
try {
//缓存任务link信息便于下面与数据进行任务link匹配 //缓存任务link信息便于下面与数据进行任务link匹配
val hashMap:HashMap<String,HadLinkDvoBean> = HashMap<String,HadLinkDvoBean>() //define empty hashmap val hashMap: HashMap<String, HadLinkDvoBean> =
task.hadLinkDvoList.forEach{ HashMap<String, HadLinkDvoBean>() //define empty hashmap
hashMap.put(it.linkPid,it); task.hadLinkDvoList.forEach {
hashMap.put(it.linkPid, it);
} }
val resHashMap:HashMap<String,RenderEntity> = HashMap<String,RenderEntity>() //define empty hashmap val resHashMap: HashMap<String, RenderEntity> =
HashMap<String, RenderEntity>() //define empty hashmap
// 遍历解压后的文件,读取该数据返回 // 遍历解压后的文件,读取该数据返回
for (importConfig in importConfigList) { for (importConfig in importConfigList) {
try {
for ((index, currentEntry) in importConfig.tableMap.entries.withIndex()) { for ((index, currentEntry) in importConfig.tableMap.entries.withIndex()) {
val currentConfig = currentEntry.value val currentConfig = currentEntry.value
val txtFile = unZipFiles.find { val txtFile = unZipFiles.find {
it.name == currentConfig.table it.name == currentConfig.table
} }
// 将listResult数据插入到Realm数据库中
val realm = Realm.getDefaultInstance()
val listResult = mutableListOf<RenderEntity>() val listResult = mutableListOf<RenderEntity>()
currentConfig?.let { currentConfig?.let {
val list = FileIOUtils.readFile2List(txtFile, "UTF-8") val list = FileIOUtils.readFile2List(txtFile, "UTF-8")
@@ -179,12 +186,16 @@ class ImportOMDBHelper @AssistedInject constructor(
if (line == null || line.trim() == "") { if (line == null || line.trim() == "") {
continue continue
} }
Log.d("ImportOMDBHelper", "解析第:${index+1}") Log.d("ImportOMDBHelper", "解析第:${index + 1}")
val map = gson.fromJson<Map<String, Any>>(line, object:TypeToken<Map<String, Any>>(){}.getType()) val map = gson.fromJson<Map<String, Any>>(
line,
object : TypeToken<Map<String, Any>>() {}.getType()
)
.toMutableMap() .toMutableMap()
map["qi_table"] = currentConfig.table map["qi_table"] = currentConfig.table
map["qi_name"] = currentConfig.name map["qi_name"] = currentConfig.name
map["qi_code"] = if (currentConfig.code == 0) currentConfig.code else currentEntry.key map["qi_code"] =
if (currentConfig.code == 0) currentConfig.code else currentEntry.key
map["qi_zoomMin"] = currentConfig.zoomMin map["qi_zoomMin"] = currentConfig.zoomMin
map["qi_zoomMax"] = currentConfig.zoomMax map["qi_zoomMax"] = currentConfig.zoomMax
@@ -201,19 +212,25 @@ class ImportOMDBHelper @AssistedInject constructor(
renderEntity.geometry = map["geometry"].toString() renderEntity.geometry = map["geometry"].toString()
// 其他数据插入到Properties中 // 其他数据插入到Properties中
if (!currentConfig.is3D) { // 如果是非3d要素则自动将Z轴坐标全部置为0 if (!currentConfig.is3D) { // 如果是非3d要素则自动将Z轴坐标全部置为0
val coordinates = renderEntity.wkt?.coordinates?.map { val coordinates =
coordinate -> coordinate.z = 0.0 renderEntity.wkt?.coordinates?.map { coordinate ->
coordinate.z = 0.0
coordinate coordinate
}?.toTypedArray() }?.toTypedArray()
var newGeometry: Geometry? = null var newGeometry: Geometry? = null
if (renderEntity.wkt?.geometryType == Geometry.TYPENAME_POINT) { if (renderEntity.wkt?.geometryType == Geometry.TYPENAME_POINT) {
newGeometry = GeometryTools.createPoint(coordinates!![0].x, coordinates!![0].y) newGeometry = GeometryTools.createPoint(
coordinates!![0].x,
coordinates!![0].y
)
} else if (renderEntity.wkt?.geometryType == Geometry.TYPENAME_LINESTRING) { } else if (renderEntity.wkt?.geometryType == Geometry.TYPENAME_LINESTRING) {
newGeometry = GeometryTools.createLineString(coordinates) newGeometry =
GeometryTools.createLineString(coordinates)
} else if (renderEntity.wkt?.geometryType == Geometry.TYPENAME_POLYGON) { } else if (renderEntity.wkt?.geometryType == Geometry.TYPENAME_POLYGON) {
newGeometry = GeometryTools.createLineString(coordinates) newGeometry =
GeometryTools.createLineString(coordinates)
} }
if (newGeometry!=null) { if (newGeometry != null) {
renderEntity.geometry = newGeometry.toString() renderEntity.geometry = newGeometry.toString()
} }
} }
@@ -225,16 +242,21 @@ class ImportOMDBHelper @AssistedInject constructor(
key, key,
value.toInt().toString() value.toInt().toString()
) )
is Double -> renderEntity.properties.put( is Double -> renderEntity.properties.put(
key, key,
value.toDouble().toString() value.toDouble().toString()
) )
else -> renderEntity.properties.put(key, value.toString())
else -> renderEntity.properties.put(
key,
value.toString()
)
} }
} }
//测试代码 //测试代码
/* if(renderEntity.code == DataCodeEnum.OMDB_RD_LINK_KIND.code) { /* if(renderEntity.code == DataCodeEnum.OMDB_RD_LINK_KIND.code) {
var currentLinkPid = renderEntity.properties["linkPid"] var currentLinkPid = renderEntity.properties["linkPid"]
@@ -253,44 +275,56 @@ class ImportOMDBHelper @AssistedInject constructor(
} }
//优先过滤掉不需要的数据 //优先过滤掉不需要的数据
if(renderEntity.code == DataCodeEnum.OMDB_POLE.code){ // 杆状物 if (renderEntity.code == DataCodeEnum.OMDB_POLE.code) { // 杆状物
//过滤树类型的杆状物,无需导入到数据库中 //过滤树类型的杆状物,无需导入到数据库中
val poleType = renderEntity.properties["poleType"] val poleType = renderEntity.properties["poleType"]
if(poleType!=null&&poleType.toInt()==2){ if (poleType != null && poleType.toInt() == 2) {
continue continue
} }
}else if(renderEntity.code == DataCodeEnum.OMDB_LANE_MARK_BOUNDARYTYPE.code){ } else if (renderEntity.code == DataCodeEnum.OMDB_LANE_MARK_BOUNDARYTYPE.code) {
var boundaryType = renderEntity.properties["boundaryType"] var boundaryType =
if(boundaryType!=null){ renderEntity.properties["boundaryType"]
if (boundaryType != null) {
when (boundaryType) { when (boundaryType) {
"0","1","6","8","9"->{ "0", "1", "6", "8", "9" -> {
renderEntity.enable=0 renderEntity.enable = 0
Log.e("qj","过滤不显示数据${renderEntity.table}") Log.e(
"qj",
"过滤不显示数据${renderEntity.table}"
)
continue continue
} }
} }
} }
}else if(renderEntity.code == DataCodeEnum.OMDB_RDBOUND_BOUNDARYTYPE.code){ } else if (renderEntity.code == DataCodeEnum.OMDB_RDBOUND_BOUNDARYTYPE.code) {
//过滤不需要渲染的要素 //过滤不需要渲染的要素
var boundaryType = renderEntity.properties["boundaryType"] var boundaryType =
if(boundaryType!=null){ renderEntity.properties["boundaryType"]
if (boundaryType != null) {
when (boundaryType) { when (boundaryType) {
"0","3","4","5","7","9"->{ "0", "3", "4", "5", "7", "9" -> {
renderEntity.enable=0 renderEntity.enable = 0
Log.e("qj","过滤不显示数据${renderEntity.table}") Log.e(
"qj",
"过滤不显示数据${renderEntity.table}"
)
continue continue
} }
} }
} }
}else if(renderEntity.code == DataCodeEnum.OMDB_OBJECT_STOPLOCATION.code){ } else if (renderEntity.code == DataCodeEnum.OMDB_OBJECT_STOPLOCATION.code) {
//过滤不需要渲染的要素 //过滤不需要渲染的要素
var locationType = renderEntity.properties["locationType"] var locationType =
if(locationType!=null){ renderEntity.properties["locationType"]
if (locationType != null) {
when (locationType) { when (locationType) {
"3","4"->{ "3", "4" -> {
renderEntity.enable=0 renderEntity.enable = 0
Log.e("qj","过滤不显示数据${renderEntity.table}") Log.e(
"qj",
"过滤不显示数据${renderEntity.table}"
)
continue continue
} }
} }
@@ -298,224 +332,313 @@ class ImportOMDBHelper @AssistedInject constructor(
} }
//交限增加相同LinkIn与LinkOut过滤原则 //交限增加相同LinkIn与LinkOut过滤原则
if(renderEntity.code==DataCodeEnum.OMDB_RESTRICTION.code){ if (renderEntity.code == DataCodeEnum.OMDB_RESTRICTION.code) {
if(renderEntity.properties.containsKey("linkIn")&&renderEntity.properties.containsKey("linkOut")){ if (renderEntity.properties.containsKey("linkIn") && renderEntity.properties.containsKey(
"linkOut"
)
) {
var linkIn = renderEntity.properties["linkIn"] var linkIn = renderEntity.properties["linkIn"]
var linkOut = renderEntity.properties["linkOut"] var linkOut = renderEntity.properties["linkOut"]
if(linkIn!=null&&linkOut!=null){ if (linkIn != null && linkOut != null) {
var checkMsg = "$linkIn$linkOut" var checkMsg = "$linkIn$linkOut"
if(resHashMap.containsKey(checkMsg)){ if (resHashMap.containsKey(checkMsg)) {
Log.e("qj","${renderEntity.name}==过滤交限linkin与linkout相同且存在多条数据") Log.e(
"qj",
"${renderEntity.name}==过滤交限linkin与linkout相同且存在多条数据"
)
continue continue
}else{ } else {
resHashMap.put(checkMsg,renderEntity) resHashMap.put(checkMsg, renderEntity)
} }
} }
} }
} }
//遍历判断只显示与任务Link相关的任务数据 //遍历判断只显示与任务Link相关的任务数据
if(currentConfig.checkLinkId){ if (currentConfig.checkLinkId) {
if(renderEntity.properties.containsKey("linkPid")){ if (renderEntity.properties.containsKey("linkPid")) {
var currentLinkPid = renderEntity.properties["linkPid"] var currentLinkPid =
renderEntity.properties["linkPid"]
if(!currentLinkPid.isNullOrEmpty()&&currentLinkPid!="null"){ if (!currentLinkPid.isNullOrEmpty() && currentLinkPid != "null") {
var list = currentLinkPid.split(",") var list = currentLinkPid.split(",")
if(list!=null&&list.size>0){ if (list != null && list.size > 0) {
m@for (linkPid in list){ m@ for (linkPid in list) {
if(hashMap.containsKey(linkPid)){ if (hashMap.containsKey(linkPid)) {
renderEntity.enable = 1 renderEntity.enable = 1
Log.e("qj","${renderEntity.name}==包括任务link") Log.e(
"qj",
"${renderEntity.name}==包括任务link"
)
break@m break@m
} }
} }
} }
} }
}else if(renderEntity.code == DataCodeEnum.OMDB_INTERSECTION.code && renderEntity.properties.containsKey("linkList")){ } else if (renderEntity.code == DataCodeEnum.OMDB_INTERSECTION.code && renderEntity.properties.containsKey(
"linkList"
)
) {
if (renderEntity.properties["linkList"] != null) { if (renderEntity.properties["linkList"] != null) {
Log.e("qj", "linkList==开始${renderEntity.name}==${renderEntity.properties["linkList"]}}") Log.e(
"qj",
"linkList==开始${renderEntity.name}==${renderEntity.properties["linkList"]}}"
)
val linkList = 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"]}}") Log.e(
"qj",
"linkList==${renderEntity.name}==${renderEntity.properties["linkList"]}}"
)
val list: List<LinkList> = gson.fromJson(linkList, object : TypeToken<List<LinkList>>() {}.type) val list: List<LinkList> = gson.fromJson(
linkList,
object :
TypeToken<List<LinkList>>() {}.type
)
if (list != null) { if (list != null) {
m@for (link in list){ m@ for (link in list) {
if(hashMap.containsKey(link.linkPid)){ if (hashMap.containsKey(link.linkPid)) {
renderEntity.enable = 1 renderEntity.enable = 1
break@m break@m
Log.e("qj","${renderEntity.name}==包括任务link") Log.e(
"qj",
"${renderEntity.name}==包括任务link"
)
} }
} }
} }
}else{ } else {
renderEntity.enable = 2 renderEntity.enable = 2
Log.e("qj", "简单路口") Log.e("qj", "简单路口")
} }
} }
}else{ } else {
renderEntity.enable = 2 renderEntity.enable = 2
Log.e("qj","${renderEntity.name}==不包括任务linkPid") Log.e(
"qj",
"${renderEntity.name}==不包括任务linkPid"
)
} }
}else{ } else {
renderEntity.enable = 2 renderEntity.enable = 2
Log.e("qj","${renderEntity.name}==不包括任务linkPid") Log.e("qj", "${renderEntity.name}==不包括任务linkPid")
} }
// 对renderEntity做预处理后再保存 // 对renderEntity做预处理后再保存
val resultEntity = importConfig.transformProperties(renderEntity) val resultEntity =
importConfig.transformProperties(renderEntity)
if(renderEntity!=null){ if (resultEntity != null) {
if(currentConfig.catch){ if (currentConfig.catch) {
renderEntity.catchEnable=0 renderEntity.catchEnable = 0
}else{ } else {
renderEntity.catchEnable=1 renderEntity.catchEnable = 1
} }
//对code编码需要特殊处理 存在多个属性值时渲染优先级SA>PA,存在多个属性值时渲染优先级FRONTAGE>MAIN_SIDE_A CCESS //对code编码需要特殊处理 存在多个属性值时渲染优先级SA>PA,存在多个属性值时渲染优先级FRONTAGE>MAIN_SIDE_A CCESS
if(renderEntity.code == DataCodeEnum.OMDB_LINK_ATTRIBUTE.code){ if (renderEntity.code == DataCodeEnum.OMDB_LINK_ATTRIBUTE.code) {
Log.e("qj","道路属性===0") 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 = DataCodeEnum.OMDB_LINK_ATTRIBUTE_SA.code renderEntity.code =
Log.e("qj","道路属性===1") DataCodeEnum.OMDB_LINK_ATTRIBUTE_SA.code
}else{ Log.e("qj", "道路属性===1")
} else {
type = renderEntity.properties["pa"] type = renderEntity.properties["pa"]
if(type!=null&&type=="1"){ if (type != null && type == "1") {
renderEntity.code = DataCodeEnum.OMDB_LINK_ATTRIBUTE_PA.code renderEntity.code =
Log.e("qj","道路属性===2") DataCodeEnum.OMDB_LINK_ATTRIBUTE_PA.code
} else{ Log.e("qj", "道路属性===2")
} else {
type = renderEntity.properties["frontage"] type = renderEntity.properties["frontage"]
if(type!=null&&type=="1"){ if (type != null && type == "1") {
renderEntity.code = DataCodeEnum.OMDB_LINK_ATTRIBUTE_FORNTAGE.code renderEntity.code =
Log.e("qj","道路属性===3") DataCodeEnum.OMDB_LINK_ATTRIBUTE_FORNTAGE.code
}else{ Log.e("qj", "道路属性===3")
type = renderEntity.properties["mainSideAccess"] } else {
if(type!=null&&type=="1"){ type =
renderEntity.code = DataCodeEnum.OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS.code renderEntity.properties["mainSideAccess"]
Log.e("qj","道路属性===4") if (type != null && type == "1") {
}else{ renderEntity.code =
renderEntity.enable=0 DataCodeEnum.OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS.code
Log.e("qj","过滤不显示数据${renderEntity.table}") Log.e("qj", "道路属性===4")
Log.e("qj","道路属性===5") } else {
renderEntity.enable = 0
Log.e(
"qj",
"过滤不显示数据${renderEntity.table}"
)
Log.e("qj", "道路属性===5")
continue continue
} }
} }
} }
} }
}else if(renderEntity.code == DataCodeEnum.OMDB_RAMP.code){ } else if (renderEntity.code == DataCodeEnum.OMDB_RAMP.code) {
/*匝道*/ /*匝道*/
var formWay = renderEntity.properties["formOfWay"] var formWay = renderEntity.properties["formOfWay"]
if(formWay!=null){ if (formWay != null) {
when (formWay) { when (formWay) {
"93"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_1.code "93" -> renderEntity.code =
"98"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_2.code DataCodeEnum.OMDB_RAMP_1.code
"99"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_3.code
"100"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_4.code "98" -> renderEntity.code =
"102"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_5.code DataCodeEnum.OMDB_RAMP_2.code
"103"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_6.code
"104"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_7.code "99" -> renderEntity.code =
DataCodeEnum.OMDB_RAMP_3.code
"100" -> renderEntity.code =
DataCodeEnum.OMDB_RAMP_4.code
"102" -> renderEntity.code =
DataCodeEnum.OMDB_RAMP_5.code
"103" -> renderEntity.code =
DataCodeEnum.OMDB_RAMP_6.code
"104" -> renderEntity.code =
DataCodeEnum.OMDB_RAMP_7.code
} }
} }
}else if(renderEntity.code == DataCodeEnum.OMDB_LINK_FORM1.code){ } else if (renderEntity.code == DataCodeEnum.OMDB_LINK_FORM1.code) {
/*道路形态1*/ /*道路形态1*/
var formWay = renderEntity.properties["formOfWay"] var formWay = renderEntity.properties["formOfWay"]
if(formWay!=null){ if (formWay != null) {
when (formWay) { when (formWay) {
"35"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM1_1.code "35" -> renderEntity.code =
"37"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM1_2.code DataCodeEnum.OMDB_LINK_FORM1_1.code
"38"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM1_3.code
"37" -> renderEntity.code =
DataCodeEnum.OMDB_LINK_FORM1_2.code
"38" -> renderEntity.code =
DataCodeEnum.OMDB_LINK_FORM1_3.code
} }
} }
}else if(renderEntity.code == DataCodeEnum.OMDB_LINK_FORM2.code){ } else if (renderEntity.code == DataCodeEnum.OMDB_LINK_FORM2.code) {
Log.e("qj","道路形态2${renderEntity.properties["formOfWay"]}") Log.e(
"qj",
"道路形态2${renderEntity.properties["formOfWay"]}"
)
/*道路形态2*/ /*道路形态2*/
var formWay = renderEntity.properties["formOfWay"] var formWay = renderEntity.properties["formOfWay"]
if(formWay!=null){ if (formWay != null) {
when (formWay) { when (formWay) {
"10"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_1.code "10" -> renderEntity.code =
"11"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_2.code DataCodeEnum.OMDB_LINK_FORM2_1.code
"17"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_3.code
"18"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_4.code "11" -> renderEntity.code =
"20"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_5.code DataCodeEnum.OMDB_LINK_FORM2_2.code
"22"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_6.code
"36"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_7.code "17" -> renderEntity.code =
"52"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_8.code DataCodeEnum.OMDB_LINK_FORM2_3.code
"53"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_9.code
"54"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_10.code "18" -> renderEntity.code =
"60"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_11.code DataCodeEnum.OMDB_LINK_FORM2_4.code
"84"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_12.code
"85"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_13.code "20" -> renderEntity.code =
DataCodeEnum.OMDB_LINK_FORM2_5.code
"22" -> renderEntity.code =
DataCodeEnum.OMDB_LINK_FORM2_6.code
"36" -> renderEntity.code =
DataCodeEnum.OMDB_LINK_FORM2_7.code
"52" -> renderEntity.code =
DataCodeEnum.OMDB_LINK_FORM2_8.code
"53" -> renderEntity.code =
DataCodeEnum.OMDB_LINK_FORM2_9.code
"54" -> renderEntity.code =
DataCodeEnum.OMDB_LINK_FORM2_10.code
"60" -> renderEntity.code =
DataCodeEnum.OMDB_LINK_FORM2_11.code
"84" -> renderEntity.code =
DataCodeEnum.OMDB_LINK_FORM2_12.code
"85" -> renderEntity.code =
DataCodeEnum.OMDB_LINK_FORM2_13.code
} }
} }
}else if(renderEntity.table == DataCodeEnum.OMDB_NODE_FORM.name){//特殊处理因为code相同使用表名判断 } else if (renderEntity.table == DataCodeEnum.OMDB_NODE_FORM.name) {//特殊处理因为code相同使用表名判断
//过滤不需要渲染的要素 //过滤不需要渲染的要素
var formOfWay = renderEntity.properties["formOfWay"] var formOfWay = renderEntity.properties["formOfWay"]
if(formOfWay!=null&&formOfWay=="30"){ if (formOfWay != null && formOfWay == "30") {
renderEntity.enable=2 renderEntity.enable = 2
renderEntity.code = DataCodeEnum.OMDB_NODE_FORM.code renderEntity.code =
}else{ DataCodeEnum.OMDB_NODE_FORM.code
Log.e("qj","过滤不显示数据${renderEntity.table}") } else {
Log.e(
"qj",
"过滤不显示数据${renderEntity.table}"
)
continue continue
} }
}else if(renderEntity.table == DataCodeEnum.OMDB_NODE_PA.name){//特殊处理因为code相同使用表名判断 } else if (renderEntity.table == DataCodeEnum.OMDB_NODE_PA.name) {//特殊处理因为code相同使用表名判断
//过滤不需要渲染的要素 //过滤不需要渲染的要素
var attributeType = renderEntity.properties["attributeType"] var attributeType =
if(attributeType!=null&&attributeType=="30"){ renderEntity.properties["attributeType"]
renderEntity.enable=2 if (attributeType != null && attributeType == "30") {
renderEntity.code = DataCodeEnum.OMDB_NODE_PA.code renderEntity.enable = 2
}else{ renderEntity.code =
Log.e("qj","过滤不显示数据${renderEntity.table}") DataCodeEnum.OMDB_NODE_PA.code
} else {
Log.e(
"qj",
"过滤不显示数据${renderEntity.table}"
)
continue continue
} }
}else if(renderEntity.code == DataCodeEnum.OMDB_LANE_CONSTRUCTION.code){ } else if (renderEntity.code == DataCodeEnum.OMDB_LANE_CONSTRUCTION.code) {
//特殊处理空数据,渲染原则使用 //特殊处理空数据,渲染原则使用
var startTime = renderEntity.properties["startTime"] var startTime = renderEntity.properties["startTime"]
if(startTime==null||startTime=="") { if (startTime == null || startTime == "") {
renderEntity.properties["startTime"] = "null" renderEntity.properties["startTime"] = "null"
} }
} }
realm.insert(renderEntity)
}
listResult.add(renderEntity) listResult.add(renderEntity)
}
} }
} }
} }
// 1个文件发送一次flow流 // 1个文件发送一次flow流
emit("${++processIndex}/${tableNum}") emit("${++processIndex}/${tableNum}")
realm.beginTransaction()
realm.insert(listResult)
realm.commitTransaction()
realm.close()
// 如果当前解析的是OMDB_RD_LINK数据将其缓存在预处理类中以便后续处理其他要素时使用 // 如果当前解析的是OMDB_RD_LINK数据将其缓存在预处理类中以便后续处理其他要素时使用
if (currentConfig.table == "OMDB_RD_LINK") { if (currentConfig.table == "OMDB_RD_LINK") {
importConfig.preProcess.cacheRdLink = importConfig.preProcess.cacheRdLink =
listResult.associateBy { it.properties["linkPid"] } listResult.associateBy { it.properties["linkPid"] }
} }
} }
}
realm.commitTransaction()
realm.close()
} catch (e: Exception) { } catch (e: Exception) {
realm.cancelTransaction()
throw e throw e
} }
}
emit("finish") emit("finish")
} }
} }