瀏覽代碼

update budget parameter

masarif 5 天之前
父節點
當前提交
8dd98a76c8
共有 2 個文件被更改,包括 28 次插入6 次删除
  1. 2 2
      config/migration.yml
  2. 26 4
      src/main/kotlin/com/datacomsolusindo/migration/MigrationEntity.kt

+ 2 - 2
config/migration.yml

@@ -78,8 +78,8 @@ phoneUser:
   pbx.list: group.pbx_list
   appliedDate: history.app_datetime
   expiredDate: history.exp_datetime
-#  budget.maxCost: history.max_cost
-#  budget.warnCost: history.warn_cost
+  budget.maxCost: history.max_cost
+  budget.warnCost: history.warn_cost
 corcos:
   command: command
   name: short_desc

+ 26 - 4
src/main/kotlin/com/datacomsolusindo/migration/MigrationEntity.kt

@@ -249,6 +249,19 @@ class MigrationEntity(val passwordEncoder: PasswordEncoder, val queryNativeServi
                 val phoneUserPin = finalizer["pin"]
                 val phoneUserExtension = finalizer["extension"]
 
+                // budget
+                val budgetAnnual = finalizer["budget.maxCost"]?.toString()?.toDoubleOrNull()
+                val warningAnnual = finalizer["budget.warnCost"]?.toString()?.toDoubleOrNull()
+                val budgetMaxCost = budgetAnnual?.let {
+                    val monthBudget = it / 12.0
+                    List(12) { monthBudget }.joinToString(";")
+                }
+                val budgetWarnCost = warningAnnual?.let {
+                    val monthBudget = budgetAnnual?.let { b -> b / 12.0 } ?: 0.0
+                    val warnPercent = ((it / 12.0) / monthBudget) * 100
+                    List(12) { "%.2f".format(warnPercent) }.joinToString(";")
+                }
+
                 // phoneUserPbx
                 val phoneUserPbxIds: MutableList<Any> = mutableListOf()
                 val data = if (clazz.simpleName == "PhoneUser") {
@@ -263,7 +276,16 @@ class MigrationEntity(val passwordEncoder: PasswordEncoder, val queryNativeServi
                         }
                     }
                     val finalMap = finalizer.filterNot { fi ->
-                        listOf("pbx.list", "pbx_id", "extension", "pin").any { a -> a == fi.key }
+                        listOf(
+                            "pbx.list",
+                            "pbx_id",
+                            "extension",
+                            "pin",
+                            "budget.maxCost",
+                            "budget.warnCost",
+                            "maxCost",
+                            "warnCost"
+                        ).any { a -> a == fi.key }
                     } as MutableMap<String, Any?>
                     queryNativeService.insertDataWithNativeQuery(clazz, finalMap)
 //                    apiService.create(clazz, finalMap)
@@ -295,10 +317,10 @@ class MigrationEntity(val passwordEncoder: PasswordEncoder, val queryNativeServi
                             ).ordinal,
                             "userUid" to data,
                             "type" to BudgetType.FLAT.ordinal,
-                            "annualCost" to 0,
+                            "annualCost" to budgetAnnual,
                             "accumulate" to 0,
-                            "maxCost" to "0;0;0;0;0;0;0;0;0;0;0;0",
-                            "warnCostPercentage" to "0;0;0;0;0;0;0;0;0;0;0;0",
+                            "maxCost" to (budgetMaxCost ?: "0;0;0;0;0;0;0;0;0;0;0;0"),
+                            "warnCostPercentage" to (budgetWarnCost ?: "0;0;0;0;0;0;0;0;0;0;0;0"),
                             "tempCost" to "0;0;0;0;0;0;0;0;0;0;0;0"
                         )
                     )