From b1e5e308801e7d92ef8ccd03518565869c6a2bf9 Mon Sep 17 00:00:00 2001
From: xiaoyan <xiaoyan159@163.com>
Date: Tue, 5 Sep 2023 16:58:46 +0800
Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E6=95=B0=E6=8D=AE?=
 =?UTF-8?q?=E5=AE=89=E8=A3=85=E4=BA=8B=E5=8A=A1=E6=8F=90=E4=BA=A4=E6=9C=BA?=
 =?UTF-8?q?=E5=88=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../java/com/navinfo/omqs/db/ImportOMDBHelper.kt | 16 +++++++++-------
 vtm                                              |  2 +-
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/app/src/main/java/com/navinfo/omqs/db/ImportOMDBHelper.kt b/app/src/main/java/com/navinfo/omqs/db/ImportOMDBHelper.kt
index f1c962cc..b3075f93 100644
--- a/app/src/main/java/com/navinfo/omqs/db/ImportOMDBHelper.kt
+++ b/app/src/main/java/com/navinfo/omqs/db/ImportOMDBHelper.kt
@@ -168,14 +168,15 @@ class ImportOMDBHelper @AssistedInject constructor(
 
                 // 遍历解压后的文件,读取该数据返回
                 for (importConfig in importConfigList) {
+                    val realm = Realm.getDefaultInstance()
                     try {
                         for ((index, currentEntry) in importConfig.tableMap.entries.withIndex()) {
+                            realm.beginTransaction()
                             val currentConfig = currentEntry.value
                             val txtFile = unZipFiles.find {
                                 it.name == currentConfig.table
                             }
                             // 将listResult数据插入到Realm数据库中
-                            val realm = Realm.getDefaultInstance()
                             val listResult = mutableListOf<RenderEntity>()
                             currentConfig?.let {
                                 val list = FileIOUtils.readFile2List(txtFile, "UTF-8")
@@ -619,24 +620,25 @@ class ImportOMDBHelper @AssistedInject constructor(
                                                 }
                                             }
                                             listResult.add(renderEntity)
+                                            realm.insert(renderEntity)
                                         }
                                     }
                                 }
                             }
-                            // 1个文件发送一次flow流
-                            emit("${++processIndex}/${tableNum}")
-                            realm.beginTransaction()
-                            realm.insert(listResult)
-                            realm.commitTransaction()
-                            realm.close()
                             // 如果当前解析的是OMDB_RD_LINK数据,将其缓存在预处理类中,以便后续处理其他要素时使用
                             if (currentConfig.table == "OMDB_RD_LINK") {
                                 importConfig.preProcess.cacheRdLink =
                                     listResult.associateBy { it.properties["linkPid"] }
                             }
+                            realm.commitTransaction()
+                            // 1个文件发送一次flow流
+                            emit("${++processIndex}/${tableNum}")
                         }
                     } catch (e: Exception) {
+                        realm.cancelTransaction()
                         throw e
+                    } finally {
+                        realm.close()
                     }
                 }
                 emit("finish")
diff --git a/vtm b/vtm
index 985dc0a0..a087521b 160000
--- a/vtm
+++ b/vtm
@@ -1 +1 @@
-Subproject commit 985dc0a0d590ef6f6784ee2ee5c1c148dff1c46d
+Subproject commit a087521b6e1b312d7ed2bdf20f83b0e674fad9b5