Kaynağa Gözat

perbaikan budget

masarifyuli 20 saat önce
ebeveyn
işleme
28ee7df47d

+ 1 - 1
config/general-setting.yml

@@ -182,7 +182,7 @@ redirectUrl:
 - http://localhost:4200/oauth2redirect
 - https://cmpd.telmessenger.com/oauth2redirect
 - https://app.insomnia.rest/oauth/redirect
-dataKey: aY6tKotSoUoMIi7JiTBZq0KhtC4bslM0qvnU1EZgmMJ9rsAaBP8fCV3cugOaHB%2BO0rdqCT8BLvRpW3zZRMyaZN%2BOgLPchzBSS4WXWMJ2e%2BWfVKtx1U0WBWevGkoDU3IK
+dataKey: aY6tKotSoUoMIi7JiTBZq8x9iwvZyb%2FfASKiQ6z66AJhzPqgjwKJeLHmtQRAz0zL2BCoDrKJl%2BezyyIV72h6NqZL0Lh7m42Nlf2mJKr3SfA%2FdVMpGEtrqllUtT5idZ%2BR
 
 #database: 
 #  type: sqlserver

+ 1 - 0
src/main/kotlin/com/datacomsolusindo/migration/MigrationApplication.kt

@@ -54,6 +54,7 @@ class AppEvent(
     @EventListener(ApplicationReadyEvent::class)
     fun doSomethingAfterStartup() {
         logger.info("started service migration data with support mandiri menghidupi")
+        logger.info("build information 20260520.1")
         val folder = Paths.get("migration")
         migrationService.startInsertWorker()
         migrationService.scanAndQueue(folder)

+ 27 - 17
src/main/kotlin/com/datacomsolusindo/migration/MigrationEntity.kt

@@ -113,7 +113,7 @@ class MigrationEntity(val passwordEncoder: PasswordEncoder, val queryNativeServi
             }
         } else {
             val chunkData = rootData
-//                .take(5)
+//                .take(10)
                 .chunked(1000)
             logger.info("data migration class ${clazz.simpleName} chunk data ${chunkData.size}")
             chunkData.forEachIndexed { _, data ->
@@ -399,7 +399,7 @@ class MigrationEntity(val passwordEncoder: PasswordEncoder, val queryNativeServi
                 }
 
                 // phoneUserPbx
-                val phoneUserPbxIds: MutableList<Any> = mutableListOf()
+                var phoneUserPbxIds: MutableList<String> = mutableListOf()
                 val finalMapEntity = if (clazz.simpleName == "PhoneUser") {
                     val pbxId = finalizer["pbx.list"]?.toString() ?: ""
                     val pbxGroup = finalizer["pbx__list"]?.toString() ?: ""
@@ -418,6 +418,8 @@ class MigrationEntity(val passwordEncoder: PasswordEncoder, val queryNativeServi
                         }
                     }
 
+                    phoneUserPbxIds = phoneUserPbxIds.mapNotNull { findUidByCode(Pbx::class.java, it) }
+                        .toMutableList()
 
                     val finalMap = finalizer.filterNot { fi ->
                         listOf(
@@ -446,9 +448,9 @@ class MigrationEntity(val passwordEncoder: PasswordEncoder, val queryNativeServi
                                     "\"block\":\"${corcosBlock ?: ""}\"}"
                         }
                     }]"
-                    if (phoneUserPbxIds.isEmpty()) {
-                        finalMap["expiredDate"] = finalMap["expiredDate"] ?: LocalDate.now().atStartOfDay()
-                    }
+//                    if (phoneUserPbxIds.isEmpty()) {
+//                        finalMap["expiredDate"] = finalMap["expiredDate"] ?: LocalDate.now().atStartOfDay()
+//                    }
                     finalMap
                 } else finalizer
 
@@ -536,21 +538,29 @@ class MigrationEntity(val passwordEncoder: PasswordEncoder, val queryNativeServi
         }
 
         map.filterNot { it.key == "id" || it.key == "structure" }.forEach { (t, u) ->
-            if (t.contains("_")) {
-                val isParent = t.startsWith("parent")
-                val value = if (t == "pbx_id") {
-                    findUidByCode(Pbx::class.java, u ?: "PBX01")
-                } else u?.toString()?.let { code ->
-                    val clazzEntity = General.clazzEntity(if (isParent) className else t.split("_")[0])
-                    val field = if (t.split("_")[0].lowercase().startsWith("corcos")) "command" else "code"
-                    clazzEntity?.let { findUidByCode(it, code, field) }
+            when {
+                t.contains("__") -> {
+                    mapFinalize[t] = u
+                }
+
+                t.contains("_") -> {
+                    val isParent = t.startsWith("parent")
+                    val value = if (t == "pbx_id") {
+                        findUidByCode(Pbx::class.java, u ?: "PBX01")
+                    } else u?.toString()?.let { code ->
+                        val clazzEntity = General.clazzEntity(if (isParent) className else t.split("_")[0])
+                        val field = if (t.split("_")[0].lowercase().startsWith("corcos")) "command" else "code"
+                        clazzEntity?.let { findUidByCode(it, code, field) }
+                    }
+
+                    if (value != null) {
+                        mapFinalize[t] = value
+                    }
                 }
 
-                if (value != null) {
-                    mapFinalize[t] = value
+                else -> {
+                    mapFinalize[t] = u
                 }
-            } else {
-                mapFinalize[t] = u
             }
         }
 

+ 2 - 0
src/main/kotlin/com/datacomsolusindo/migration/MigrationService.kt

@@ -1,6 +1,7 @@
 package com.datacomsolusindo.migration
 
 import com.datacomsolusindo.cpx_shared_code.entity.BaseEntity
+import com.datacomsolusindo.cpx_shared_code.utility.CacheData
 import com.datacomsolusindo.cpx_shared_code.utility.SimpleLogger
 import org.springframework.beans.factory.config.YamlPropertiesFactoryBean
 import org.springframework.core.io.FileSystemResource
@@ -187,6 +188,7 @@ class MigrationService(
                                 "failed ${process.value.size} " +
                                 "takes time ${process.duration.inWholeMilliseconds}ms"
                     )
+                    CacheData.update(data.first.simpleName, false)
                 } catch (ex: Exception) {
                     logger.error("Insert failed", ex)
                 }