diff --git a/.zed/settings.json b/.zed/settings.json deleted file mode 100644 index e69de29b..00000000 diff --git a/app.platformnull/platform/schema/liquibase.xml b/app.platformnull/platform/schema/liquibase.xml deleted file mode 100644 index e69de29b..00000000 diff --git a/build.gradle b/build.gradle index 3dd82c39..8cb44a05 100644 --- a/build.gradle +++ b/build.gradle @@ -920,6 +920,8 @@ idea { task clean { doFirst{ delete 'out' + delete 'bin' + delete '.settings' } } diff --git a/gradle.properties b/gradle.properties index 593dc12f..22b03a6a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,7 +6,7 @@ org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 org.gradle.configureondemand=true systemProp.org.gradle.internal.publish.checksums.insecure=true org.gradle.parallel=true -org.gradle.workers.max=1 +org.gradle.workers.max=2 ########################################################### # Maven private repository configuration diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index a4b76b95..1b33c55b 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 5893e933..213c2f8d 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=http\://nexus.sc.io\:8000/repository/maven-releases/gradle/gradle/8.10.1/gradle-8.10.1-bin.zip +distributionUrl=http\://nexus.sc.io\:8000/repository/maven-releases/gradle/gradle/8.14.3/gradle-8.14.3-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index f5feea6d..23d15a93 100755 --- a/gradlew +++ b/gradlew @@ -86,8 +86,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -115,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -206,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. @@ -214,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/gradlew.bat b/gradlew.bat index 9b42019c..5eed7ee8 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -70,11 +70,11 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar +set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/io.sc.engine.mv.frontend/src/i18n/messages_tw_CN.json b/io.sc.engine.mv.frontend/src/i18n/messages_tw_CN.json index cc386113..939f86f1 100644 --- a/io.sc.engine.mv.frontend/src/i18n/messages_tw_CN.json +++ b/io.sc.engine.mv.frontend/src/i18n/messages_tw_CN.json @@ -1,215 +1,216 @@ { - "menu.engine.mv" : "模型驗證工具", - "menu.engine.mv.config" : "配置", - "menu.engine.mv.config.cutOffPoint" : "評分截斷點", - "menu.engine.mv.config.threshold" : "預警閾值", - "menu.engine.mv.config.binomial" : "二項檢驗Z值常量", - "menu.engine.mv.config.chiSquare" : "卡方檢驗臨界值常量", - "menu.engine.mv.config.model" : "模型", - "menu.engine.mv.config.distribution" : "建模時客戶評分分佈", - "menu.engine.mv.config.scale" : "標尺", - "menu.engine.mv.config.dataExtractor" : "數據抽取接口", - "menu.engine.mv.config.executor" : "執行器", - "menu.engine.mv.sample" : "樣本管理", - "menu.engine.mv.result" : "驗證結果查看", - - "io.sc.engine.mv.enums.GoodLevel.POOR" : "差", - "io.sc.engine.mv.enums.GoodLevel.MEDIUM" : "中等", - "io.sc.engine.mv.enums.GoodLevel.GOOD" : "好", - "io.sc.engine.mv.enums.GoodLevel.VERY_GOOD" : "很好", - "io.sc.engine.mv.enums.GoodLevel.EXCELLENT" : "非常好", - "io.sc.engine.mv.enums.GoodLevel.PERFECT" : "完美", - - "io.sc.engine.mv.enums.Stability.yes" : "模型比较稳定", - "io.sc.engine.mv.enums.Stability.no" : "模型发生了偏移", - - "io.sc.engine.mv.config.cutOffPoint.grid.title" : "評分截斷點配置列表", - "io.sc.engine.mv.config.cutOffPoint.grid.entity.name" : "名称", - "io.sc.engine.mv.config.cutOffPoint.grid.entity.from" : "起始值(含)", - "io.sc.engine.mv.config.cutOffPoint.grid.entity.to" : "结束值(含)", - "io.sc.engine.mv.config.cutOffPoint.grid.entity.step" : "增量值", - "io.sc.engine.mv.config.cutOffPoint.grid.entity.scale" : "精度", - - "io.sc.engine.mv.config.threshold.grid.title" : "預警閾值配置列表", - "io.sc.engine.mv.config.threshold.grid.entity.name" : "名稱", - "io.sc.engine.mv.config.threshold.grid.entity.level" : "等級(越大越好)", - "io.sc.engine.mv.config.threshold.grid.entity.color" : "顏色", - "io.sc.engine.mv.config.threshold.grid.entity.range" : "預警閾值范围", - "io.sc.engine.mv.config.threshold.grid.entity.quantitativeRange" : "預警閾值范围(定量)", - "io.sc.engine.mv.config.threshold.grid.entity.qualitativeRange" : "預警閾值范围(定性)", - - "io.sc.engine.mv.config.binomial.grid.title" : "二項檢驗標準正態分佈顯著水平下的Z值常量列表", - "io.sc.engine.mv.config.binomial.grid.entity.significanceLevel" : "顯著水平", - "io.sc.engine.mv.config.binomial.grid.entity.confidenceLevel" : "置信水平", - "io.sc.engine.mv.config.binomial.grid.entity.zUpper" : "Z值上界", - "io.sc.engine.mv.config.binomial.grid.entity.zLower" : "Z值下界", - - "io.sc.engine.mv.config.chiSquare.grid.title" : "卡方檢驗臨界值常量列表", - "io.sc.engine.mv.config.chiSquare.grid.entity.dof" : "自由度", - "io.sc.engine.mv.config.chiSquare.grid.entity.significanceLevel" : "顯著水平", - "io.sc.engine.mv.config.chiSquare.grid.entity.criticalValue" : "臨界值", - - "io.sc.engine.mv.config.model.grid.title" : "模型列表", - "io.sc.engine.mv.config.model.grid.toolbar.importFromScoreRecordTable" : "從評分記錄表中導入", - "io.sc.engine.mv.config.model.grid.entity.type" : "模型創建類型", - "io.sc.engine.mv.config.model.grid.entity.modelId" : "模型標識", - "io.sc.engine.mv.config.model.grid.entity.modelName" : "模型名稱", - - "io.sc.engine.mv.config.distribution.grid.title" : "咨詢建模時樣本分佈情況配置列表", - "io.sc.engine.mv.config.distribution.grid.entity.modelId" : "模型標示", - "io.sc.engine.mv.config.distribution.grid.entity.modelName" : "模型名稱", - "io.sc.engine.mv.config.distribution.grid.entity.scoreSegStart" : "分數段開始值(含該值)", - "io.sc.engine.mv.config.distribution.grid.entity.scoreSegEnd" : "分數段結束值(含該值)", - "io.sc.engine.mv.config.distribution.grid.entity.count" : "評分段內樣本個數", - - "io.sc.engine.mv.config.scale.grid.title" : "標尺列表", - "io.sc.engine.mv.config.scale.grid.entity.modelId" : "模型標識", - "io.sc.engine.mv.config.scale.grid.entity.modelName" : "模型名稱", - "io.sc.engine.mv.config.scale.grid.entity.level" : "等級", - "io.sc.engine.mv.config.scale.grid.entity.pd" : "違約概率", - "io.sc.engine.mv.config.scale.grid.entity.order" : "排序", - - "io.sc.engine.mv.config.dataExtractor.grid.title" : "數據抽取器列表", - "io.sc.engine.mv.config.dataExtractor.grid.toolbar.example" : "導入示例", - "io.sc.engine.mv.config.dataExtractor.grid.toolbar.example.tip" : "您確定要導入示例數據抽取器嗎?", - "io.sc.engine.mv.config.dataExtractor.grid.entity.datasourceName" : "數據源名稱", - "io.sc.engine.mv.config.dataExtractor.grid.entity.executeTimeWeight" : "預計執行時間權重", - "io.sc.engine.mv.config.dataExtractor.grid.entity.groovyScript" : "Groovy 腳本", - - "io.sc.engine.mv.config.executor.grid.title" : "執行器列表", - - "io.sc.engine.mv.sample.action.importExampleSample" : "導入示例樣本", - "io.sc.engine.mv.sample.action.importExampleSample.tip" : "您確定要導入示例樣本嗎?", - "io.sc.engine.mv.sample.action.removeAllSample" : "刪除所有樣本", - "io.sc.engine.mv.sample.action.removeAllSample.tip" : "您確定要刪除所有樣本嗎?", - "io.sc.engine.mv.sample.tabs.sample" : "合格樣本", - "io.sc.engine.mv.sample.tabs.scoreRecord" : "評分記錄", - "io.sc.engine.mv.sample.tabs.defaultRecord" : "違約記錄", - - "io.sc.engine.mv.sample.sample.grid.title" : "合格樣本列表", - "io.sc.engine.mv.sample.sample.grid.entity.validateDate" : "驗證日期", - "io.sc.engine.mv.sample.sample.grid.entity.customId" : "客戶標識", - "io.sc.engine.mv.sample.sample.grid.entity.customName" : "客戶名稱", - "io.sc.engine.mv.sample.sample.grid.entity.modelId" : "模型標識", - "io.sc.engine.mv.sample.sample.grid.entity.modelName" : "模型名稱", - "io.sc.engine.mv.sample.sample.grid.entity.pd" : "違約概率", - "io.sc.engine.mv.sample.sample.grid.entity.score" : "評分", - "io.sc.engine.mv.sample.sample.grid.entity.scoreQuantitative" : "定量評分", - "io.sc.engine.mv.sample.sample.grid.entity.scoreQualitative" : "定性評分", - "io.sc.engine.mv.sample.sample.grid.entity.level" : "等級", - "io.sc.engine.mv.sample.sample.grid.entity.beginDate" : "評分開始日期", - "io.sc.engine.mv.sample.sample.grid.entity.endDate" : "評分結束日期", - "io.sc.engine.mv.sample.sample.grid.entity.defaultConfirmDate" : "評分結束日期", - - "io.sc.engine.mv.sample.scoreRecord.grid.title" : "評分記錄列表", - "io.sc.engine.mv.sample.scoreRecord.grid.entity.customId" : "客戶標識", - "io.sc.engine.mv.sample.scoreRecord.grid.entity.customName" : "客戶名稱", - "io.sc.engine.mv.sample.scoreRecord.grid.entity.modelId" : "模型標識", - "io.sc.engine.mv.sample.scoreRecord.grid.entity.modelName" : "模型名稱", - "io.sc.engine.mv.sample.scoreRecord.grid.entity.pd" : "違約概率", - "io.sc.engine.mv.sample.scoreRecord.grid.entity.score" : "評分", - "io.sc.engine.mv.sample.scoreRecord.grid.entity.scoreQuantitative" : "定量評分", - "io.sc.engine.mv.sample.scoreRecord.grid.entity.scoreQualitative" : "定性評分", - "io.sc.engine.mv.sample.scoreRecord.grid.entity.level" : "等級", - "io.sc.engine.mv.sample.scoreRecord.grid.entity.scoreBeginDate" : "評分開始日期", - "io.sc.engine.mv.sample.scoreRecord.grid.entity.scoreEndDate" : "評分結束日期", - - "io.sc.engine.mv.sample.defaultRecord.grid.title" : "違約記錄列表", - "io.sc.engine.mv.sample.defaultRecord.grid.entity.customId" : "客戶標識", - "io.sc.engine.mv.sample.defaultRecord.grid.entity.defaultConfirmDate" : "違約確定日期", - - "io.sc.engine.mv.result.task.progress" : "當前正在執行的任務進度:", - - "io.sc.engine.mv.result.grid.title" : "驗證結果列表验证结果列表", - "io.sc.engine.mv.result.grid.toolbar.execute" : "執行驗證", - "io.sc.engine.mv.result.grid.entity.validateDate" : "驗證日期", - "io.sc.engine.mv.result.grid.entity.runtimeParameters" : "運行時參數", - "io.sc.engine.mv.result.grid.entity.runtimeParameters.rateStartDateFrom" : "評級開始日期從", - "io.sc.engine.mv.result.grid.entity.runtimeParameters.rateStartDateTo" : "評級開始日期到", - "io.sc.engine.mv.result.grid.entity.runtimeParameters.performPeriod" : "表現期", - "io.sc.engine.mv.result.grid.entity.runtimeParameters.binomialSignificanceLevel" : "二項檢驗顯著水平", - "io.sc.engine.mv.result.grid.entity.runtimeParameters.chiSquareSignificanceLevel" : "卡方檢驗顯著水平", - "io.sc.engine.mv.result.grid.entity.modelId" : "模型標識", - "io.sc.engine.mv.result.grid.entity.modelName" : "模型名稱", - "io.sc.engine.mv.result.grid.entity.executeMode" : "執行模式", - "io.sc.engine.mv.result.grid.entity.totalSampleCount" : "總樣本數", - "io.sc.engine.mv.result.grid.entity.defaultSampleCount" : "違約樣本數", - "io.sc.engine.mv.result.grid.entity.discrimination" : "區分能力", - "io.sc.engine.mv.result.grid.entity.total" : "總體", - "io.sc.engine.mv.result.grid.entity.total.auc" : "AUC(總體)", - "io.sc.engine.mv.result.grid.entity.total.ar" : "AR(總體)", - "io.sc.engine.mv.result.grid.entity.total.ks" : "KS(總體)", - "io.sc.engine.mv.result.grid.entity.quantitative.auc" : "AUC(定量)", - "io.sc.engine.mv.result.grid.entity.quantitative.ar" : "AR(定量)", - "io.sc.engine.mv.result.grid.entity.quantitative.ks" : "KS(定量)", - "io.sc.engine.mv.result.grid.entity.qualitative.auc" : "AUC(定性)", - "io.sc.engine.mv.result.grid.entity.qualitative.ar" : "AR(定性)", - "io.sc.engine.mv.result.grid.entity.qualitative.ks" : "KS(定性)", - "io.sc.engine.mv.result.grid.entity.auc" : "AUC", - "io.sc.engine.mv.result.grid.entity.ar" : "AR", - "io.sc.engine.mv.result.grid.entity.ks" : "KS", - "io.sc.engine.mv.result.grid.entity.stability" : "穩定性", - "io.sc.engine.mv.result.grid.entity.svd" : "SVD", - "io.sc.engine.mv.result.grid.entity.psi" : "PSI", - "io.sc.engine.mv.result.grid.entity.scaleValidate" : "標尺檢驗", - "io.sc.engine.mv.result.grid.entity.chiSquare" : "卡方檢驗", - "io.sc.engine.mv.result.grid.entity.binomial" : "二項檢驗", - - "io.sc.engine.mv.result.curve.references" : "參考標準", - "io.sc.engine.mv.result.curve.viewData" : "查看 {type} 數據", - "io.sc.engine.mv.result.curve.scoreCutOffPoint" : "評分截斷點", - - "io.sc.engine.mv.result.curve.roc.dd" : "(DD)實際違約且預測違約樣本總數", - "io.sc.engine.mv.result.curve.roc.dn" : "(DN)實際違約且預測正常樣本總數", - "io.sc.engine.mv.result.curve.roc.nd" : "(ND)實際正常且預測違約樣本總數", - "io.sc.engine.mv.result.curve.roc.nn" : "(NN)實際正常且預測正常樣本總數", - "io.sc.engine.mv.result.curve.roc.td" : "(TD)實際違約樣本總數", - "io.sc.engine.mv.result.curve.roc.tn" : "(TN)實際正常樣本總數", - "io.sc.engine.mv.result.curve.roc.x" : "(X=ND/TN)違約預測誤警率", - "io.sc.engine.mv.result.curve.roc.y" : "(Y=DD/TD)違約預測命中率", - - "io.sc.engine.mv.result.curve.cap.ts" : "(TS)評分小於等於截斷點的樣本個數", - "io.sc.engine.mv.result.curve.cap.tt" : "(TT)樣本总数", - "io.sc.engine.mv.result.curve.cap.tds" : "(TDS)評分小於等於截斷點的事實違約樣本個數", - "io.sc.engine.mv.result.curve.cap.tdt" : "(TDT)事實違約樣本總數", - "io.sc.engine.mv.result.curve.cap.x" : "(X)違約樣本百分比", - "io.sc.engine.mv.result.curve.cap.y" : "(Y)樣本百分比", - - "io.sc.engine.mv.result.curve.ks.n" : "(N)評分小於等於截斷點事實正常的樣本個數", - "io.sc.engine.mv.result.curve.ks.tn" : "(TN)事實正常樣本總數", - "io.sc.engine.mv.result.curve.ks.d" : "(D)評分小於等於截斷點事實違約樣本個數", - "io.sc.engine.mv.result.curve.ks.td" : "(TD)事實违约樣本總數", - "io.sc.engine.mv.result.curve.ks.y1" : "(Y1)正常樣本占比", - "io.sc.engine.mv.result.curve.ks.y2" : "(Y2)違約樣本占比", - - "io.sc.engine.mv.result.chiSquare.grid.title" : "卡方检验結果", - "io.sc.engine.mv.result.chiSquare.level" : "評分等級", - "io.sc.engine.mv.result.chiSquare.pd" : "違約概率", - "io.sc.engine.mv.result.chiSquare.count" : "樣本總數", - "io.sc.engine.mv.result.chiSquare.defaultCount" : "事實違約樣本個數", - "io.sc.engine.mv.result.chiSquare.chiSquare" : "卡方检验值", - - "io.sc.engine.mv.result.binomial.grid.title" : "二項檢驗結果", - "io.sc.engine.mv.result.binomial.level" : "評分等級", - "io.sc.engine.mv.result.binomial.pd" : "違約概率", - "io.sc.engine.mv.result.binomial.count" : "樣本總數", - "io.sc.engine.mv.result.binomial.defaultCount" : "事實違約樣本個數", - "io.sc.engine.mv.result.binomial.ndAvg" : "正態分佈平均數", - "io.sc.engine.mv.result.binomial.ndSd" : "正態分佈標準差", - "io.sc.engine.mv.result.binomial.sl" : "顯著水平", - "io.sc.engine.mv.result.binomial.cl" : "置信水平", - "io.sc.engine.mv.result.binomial.zUpper" : "正態分佈Z值上界", - "io.sc.engine.mv.result.binomial.zLower" : "正態分佈Z值下界", - "io.sc.engine.mv.result.binomial.dUpper" : "臨界值上界", - "io.sc.engine.mv.result.binomial.dLower" : "臨界值下界", - "io.sc.engine.mv.result.binomial.leUpper" : "事實違約個數是否小於等於上界", - "io.sc.engine.mv.result.binomial.geLower" : "事實違約個數是否大於等於下界", - - "io.sc.engine.mv.executorDialog.title" : "执行", - "io.sc.engine.mv.executorDialog.form.entity.rateStartDateFrom" : "評級有效期開始日期範圍(起始日期)", - "io.sc.engine.mv.executorDialog.form.entity.rateStartDateTo" : "評級有效期開始日期範圍(結束日期)", - "io.sc.engine.mv.executorDialog.form.entity.performPeriod" : "評級表現期(月)", - "io.sc.engine.mv.executorDialog.form.entity.binomialSignificanceLevel" : "二項檢驗採用的顯著水平", - "io.sc.engine.mv.executorDialog.form.entity.chiSquareSignificanceLevel" : "卡方檢驗採用的顯著水平", - "io.sc.engine.mv.executorDialog.form.action.execute" : "立即執行" + "menu.engine.mv": "模型驗證工具", + "menu.engine.mv.config": "配置", + "menu.engine.mv.config.cutOffPoint": "評分截斷點", + "menu.engine.mv.config.threshold": "預警閾值", + "menu.engine.mv.config.binomial": "二項檢驗Z值常量", + "menu.engine.mv.config.chiSquare": "卡方檢驗臨界值常量", + "menu.engine.mv.config.model": "模型", + "menu.engine.mv.config.distribution": "建模時客戶評分分佈", + "menu.engine.mv.config.scale": "標尺", + "menu.engine.mv.config.dataExtractor": "數據抽取接口", + "menu.engine.mv.config.executor": "執行器", + "menu.engine.mv.sample": "樣本管理", + "menu.engine.mv.result": "驗證結果查看", + + "io.sc.engine.mv.enums.GoodLevel.POOR": "差", + "io.sc.engine.mv.enums.GoodLevel.MEDIUM": "中等", + "io.sc.engine.mv.enums.GoodLevel.GOOD": "好", + "io.sc.engine.mv.enums.GoodLevel.VERY_GOOD": "很好", + "io.sc.engine.mv.enums.GoodLevel.EXCELLENT": "非常好", + "io.sc.engine.mv.enums.GoodLevel.PERFECT": "完美", + + "io.sc.engine.mv.enums.Stability.yes": "模型比较稳定", + "io.sc.engine.mv.enums.Stability.no": "模型发生了偏移", + + "io.sc.engine.mv.config.cutOffPoint.grid.title": "評分截斷點配置列表", + "io.sc.engine.mv.config.cutOffPoint.grid.entity.name": "名称", + "io.sc.engine.mv.config.cutOffPoint.grid.entity.from": "起始值(含)", + "io.sc.engine.mv.config.cutOffPoint.grid.entity.to": "结束值(含)", + "io.sc.engine.mv.config.cutOffPoint.grid.entity.step": "增量值", + "io.sc.engine.mv.config.cutOffPoint.grid.entity.scale": "精度", + + "io.sc.engine.mv.config.threshold.grid.title": "預警閾值配置列表", + "io.sc.engine.mv.config.threshold.grid.entity.name": "名稱", + "io.sc.engine.mv.config.threshold.grid.entity.level": "等級(越大越好)", + "io.sc.engine.mv.config.threshold.grid.entity.color": "顏色", + "io.sc.engine.mv.config.threshold.grid.entity.range": "預警閾值范围", + "io.sc.engine.mv.config.threshold.grid.entity.quantitativeRange": "預警閾值范围(定量)", + "io.sc.engine.mv.config.threshold.grid.entity.qualitativeRange": "預警閾值范围(定性)", + + "io.sc.engine.mv.config.binomial.grid.title": "二項檢驗標準正態分佈顯著水平下的Z值常量列表", + "io.sc.engine.mv.config.binomial.grid.entity.significanceLevel": "顯著水平", + "io.sc.engine.mv.config.binomial.grid.entity.confidenceLevel": "置信水平", + "io.sc.engine.mv.config.binomial.grid.entity.zUpper": "Z值上界", + "io.sc.engine.mv.config.binomial.grid.entity.zLower": "Z值下界", + + "io.sc.engine.mv.config.chiSquare.grid.title": "卡方檢驗臨界值常量列表", + "io.sc.engine.mv.config.chiSquare.grid.entity.dof": "自由度", + "io.sc.engine.mv.config.chiSquare.grid.entity.significanceLevel": "顯著水平", + "io.sc.engine.mv.config.chiSquare.grid.entity.criticalValue": "臨界值", + + "io.sc.engine.mv.config.model.grid.title": "模型列表", + "io.sc.engine.mv.config.model.grid.toolbar.importFromScoreRecordTable": "從評分記錄表中導入", + "io.sc.engine.mv.config.model.grid.entity.type": "模型創建類型", + "io.sc.engine.mv.config.model.grid.entity.modelId": "模型標識", + "io.sc.engine.mv.config.model.grid.entity.modelName": "模型名稱", + "io.sc.engine.mv.config.model.grid.action.importFromScoreRecord": "您確定要從評分記錄表中導入模型?", + + "io.sc.engine.mv.config.distribution.grid.title": "咨詢建模時樣本分佈情況配置列表", + "io.sc.engine.mv.config.distribution.grid.entity.modelId": "模型標示", + "io.sc.engine.mv.config.distribution.grid.entity.modelName": "模型名稱", + "io.sc.engine.mv.config.distribution.grid.entity.scoreSegStart": "分數段開始值(含該值)", + "io.sc.engine.mv.config.distribution.grid.entity.scoreSegEnd": "分數段結束值(含該值)", + "io.sc.engine.mv.config.distribution.grid.entity.count": "評分段內樣本個數", + + "io.sc.engine.mv.config.scale.grid.title": "標尺列表", + "io.sc.engine.mv.config.scale.grid.entity.modelId": "模型標識", + "io.sc.engine.mv.config.scale.grid.entity.modelName": "模型名稱", + "io.sc.engine.mv.config.scale.grid.entity.level": "等級", + "io.sc.engine.mv.config.scale.grid.entity.pd": "違約概率", + "io.sc.engine.mv.config.scale.grid.entity.order": "排序", + + "io.sc.engine.mv.config.dataExtractor.grid.title": "數據抽取器列表", + "io.sc.engine.mv.config.dataExtractor.grid.toolbar.example": "導入示例", + "io.sc.engine.mv.config.dataExtractor.grid.toolbar.example.tip": "您確定要導入示例數據抽取器嗎?", + "io.sc.engine.mv.config.dataExtractor.grid.entity.datasourceName": "數據源名稱", + "io.sc.engine.mv.config.dataExtractor.grid.entity.executeTimeWeight": "預計執行時間權重", + "io.sc.engine.mv.config.dataExtractor.grid.entity.groovyScript": "Groovy 腳本", + + "io.sc.engine.mv.config.executor.grid.title": "執行器列表", + + "io.sc.engine.mv.sample.action.importExampleSample": "導入示例樣本", + "io.sc.engine.mv.sample.action.importExampleSample.tip": "您確定要導入示例樣本嗎?", + "io.sc.engine.mv.sample.action.removeAllSample": "刪除所有樣本", + "io.sc.engine.mv.sample.action.removeAllSample.tip": "您確定要刪除所有樣本嗎?", + "io.sc.engine.mv.sample.tabs.sample": "合格樣本", + "io.sc.engine.mv.sample.tabs.scoreRecord": "評分記錄", + "io.sc.engine.mv.sample.tabs.defaultRecord": "違約記錄", + + "io.sc.engine.mv.sample.sample.grid.title": "合格樣本列表", + "io.sc.engine.mv.sample.sample.grid.entity.validateDate": "驗證日期", + "io.sc.engine.mv.sample.sample.grid.entity.customId": "客戶標識", + "io.sc.engine.mv.sample.sample.grid.entity.customName": "客戶名稱", + "io.sc.engine.mv.sample.sample.grid.entity.modelId": "模型標識", + "io.sc.engine.mv.sample.sample.grid.entity.modelName": "模型名稱", + "io.sc.engine.mv.sample.sample.grid.entity.pd": "違約概率", + "io.sc.engine.mv.sample.sample.grid.entity.score": "評分", + "io.sc.engine.mv.sample.sample.grid.entity.scoreQuantitative": "定量評分", + "io.sc.engine.mv.sample.sample.grid.entity.scoreQualitative": "定性評分", + "io.sc.engine.mv.sample.sample.grid.entity.level": "等級", + "io.sc.engine.mv.sample.sample.grid.entity.beginDate": "評分開始日期", + "io.sc.engine.mv.sample.sample.grid.entity.endDate": "評分結束日期", + "io.sc.engine.mv.sample.sample.grid.entity.defaultConfirmDate": "評分結束日期", + + "io.sc.engine.mv.sample.scoreRecord.grid.title": "評分記錄列表", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.customId": "客戶標識", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.customName": "客戶名稱", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.modelId": "模型標識", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.modelName": "模型名稱", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.pd": "違約概率", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.score": "評分", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.scoreQuantitative": "定量評分", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.scoreQualitative": "定性評分", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.level": "等級", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.scoreBeginDate": "評分開始日期", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.scoreEndDate": "評分結束日期", + + "io.sc.engine.mv.sample.defaultRecord.grid.title": "違約記錄列表", + "io.sc.engine.mv.sample.defaultRecord.grid.entity.customId": "客戶標識", + "io.sc.engine.mv.sample.defaultRecord.grid.entity.defaultConfirmDate": "違約確定日期", + + "io.sc.engine.mv.result.task.progress": "當前正在執行的任務進度:", + + "io.sc.engine.mv.result.grid.title": "驗證結果列表验证结果列表", + "io.sc.engine.mv.result.grid.toolbar.execute": "執行驗證", + "io.sc.engine.mv.result.grid.entity.validateDate": "驗證日期", + "io.sc.engine.mv.result.grid.entity.runtimeParameters": "運行時參數", + "io.sc.engine.mv.result.grid.entity.runtimeParameters.rateStartDateFrom": "評級開始日期從", + "io.sc.engine.mv.result.grid.entity.runtimeParameters.rateStartDateTo": "評級開始日期到", + "io.sc.engine.mv.result.grid.entity.runtimeParameters.performPeriod": "表現期", + "io.sc.engine.mv.result.grid.entity.runtimeParameters.binomialSignificanceLevel": "二項檢驗顯著水平", + "io.sc.engine.mv.result.grid.entity.runtimeParameters.chiSquareSignificanceLevel": "卡方檢驗顯著水平", + "io.sc.engine.mv.result.grid.entity.modelId": "模型標識", + "io.sc.engine.mv.result.grid.entity.modelName": "模型名稱", + "io.sc.engine.mv.result.grid.entity.executeMode": "執行模式", + "io.sc.engine.mv.result.grid.entity.totalSampleCount": "總樣本數", + "io.sc.engine.mv.result.grid.entity.defaultSampleCount": "違約樣本數", + "io.sc.engine.mv.result.grid.entity.discrimination": "區分能力", + "io.sc.engine.mv.result.grid.entity.total": "總體", + "io.sc.engine.mv.result.grid.entity.total.auc": "AUC(總體)", + "io.sc.engine.mv.result.grid.entity.total.ar": "AR(總體)", + "io.sc.engine.mv.result.grid.entity.total.ks": "KS(總體)", + "io.sc.engine.mv.result.grid.entity.quantitative.auc": "AUC(定量)", + "io.sc.engine.mv.result.grid.entity.quantitative.ar": "AR(定量)", + "io.sc.engine.mv.result.grid.entity.quantitative.ks": "KS(定量)", + "io.sc.engine.mv.result.grid.entity.qualitative.auc": "AUC(定性)", + "io.sc.engine.mv.result.grid.entity.qualitative.ar": "AR(定性)", + "io.sc.engine.mv.result.grid.entity.qualitative.ks": "KS(定性)", + "io.sc.engine.mv.result.grid.entity.auc": "AUC", + "io.sc.engine.mv.result.grid.entity.ar": "AR", + "io.sc.engine.mv.result.grid.entity.ks": "KS", + "io.sc.engine.mv.result.grid.entity.stability": "穩定性", + "io.sc.engine.mv.result.grid.entity.svd": "SVD", + "io.sc.engine.mv.result.grid.entity.psi": "PSI", + "io.sc.engine.mv.result.grid.entity.scaleValidate": "標尺檢驗", + "io.sc.engine.mv.result.grid.entity.chiSquare": "卡方檢驗", + "io.sc.engine.mv.result.grid.entity.binomial": "二項檢驗", + + "io.sc.engine.mv.result.curve.references": "參考標準", + "io.sc.engine.mv.result.curve.viewData": "查看 {type} 數據", + "io.sc.engine.mv.result.curve.scoreCutOffPoint": "評分截斷點", + + "io.sc.engine.mv.result.curve.roc.dd": "(DD)實際違約且預測違約樣本總數", + "io.sc.engine.mv.result.curve.roc.dn": "(DN)實際違約且預測正常樣本總數", + "io.sc.engine.mv.result.curve.roc.nd": "(ND)實際正常且預測違約樣本總數", + "io.sc.engine.mv.result.curve.roc.nn": "(NN)實際正常且預測正常樣本總數", + "io.sc.engine.mv.result.curve.roc.td": "(TD)實際違約樣本總數", + "io.sc.engine.mv.result.curve.roc.tn": "(TN)實際正常樣本總數", + "io.sc.engine.mv.result.curve.roc.x": "(X=ND/TN)違約預測誤警率", + "io.sc.engine.mv.result.curve.roc.y": "(Y=DD/TD)違約預測命中率", + + "io.sc.engine.mv.result.curve.cap.ts": "(TS)評分小於等於截斷點的樣本個數", + "io.sc.engine.mv.result.curve.cap.tt": "(TT)樣本总数", + "io.sc.engine.mv.result.curve.cap.tds": "(TDS)評分小於等於截斷點的事實違約樣本個數", + "io.sc.engine.mv.result.curve.cap.tdt": "(TDT)事實違約樣本總數", + "io.sc.engine.mv.result.curve.cap.x": "(X)違約樣本百分比", + "io.sc.engine.mv.result.curve.cap.y": "(Y)樣本百分比", + + "io.sc.engine.mv.result.curve.ks.n": "(N)評分小於等於截斷點事實正常的樣本個數", + "io.sc.engine.mv.result.curve.ks.tn": "(TN)事實正常樣本總數", + "io.sc.engine.mv.result.curve.ks.d": "(D)評分小於等於截斷點事實違約樣本個數", + "io.sc.engine.mv.result.curve.ks.td": "(TD)事實违约樣本總數", + "io.sc.engine.mv.result.curve.ks.y1": "(Y1)正常樣本占比", + "io.sc.engine.mv.result.curve.ks.y2": "(Y2)違約樣本占比", + + "io.sc.engine.mv.result.chiSquare.grid.title": "卡方检验結果", + "io.sc.engine.mv.result.chiSquare.level": "評分等級", + "io.sc.engine.mv.result.chiSquare.pd": "違約概率", + "io.sc.engine.mv.result.chiSquare.count": "樣本總數", + "io.sc.engine.mv.result.chiSquare.defaultCount": "事實違約樣本個數", + "io.sc.engine.mv.result.chiSquare.chiSquare": "卡方检验值", + + "io.sc.engine.mv.result.binomial.grid.title": "二項檢驗結果", + "io.sc.engine.mv.result.binomial.level": "評分等級", + "io.sc.engine.mv.result.binomial.pd": "違約概率", + "io.sc.engine.mv.result.binomial.count": "樣本總數", + "io.sc.engine.mv.result.binomial.defaultCount": "事實違約樣本個數", + "io.sc.engine.mv.result.binomial.ndAvg": "正態分佈平均數", + "io.sc.engine.mv.result.binomial.ndSd": "正態分佈標準差", + "io.sc.engine.mv.result.binomial.sl": "顯著水平", + "io.sc.engine.mv.result.binomial.cl": "置信水平", + "io.sc.engine.mv.result.binomial.zUpper": "正態分佈Z值上界", + "io.sc.engine.mv.result.binomial.zLower": "正態分佈Z值下界", + "io.sc.engine.mv.result.binomial.dUpper": "臨界值上界", + "io.sc.engine.mv.result.binomial.dLower": "臨界值下界", + "io.sc.engine.mv.result.binomial.leUpper": "事實違約個數是否小於等於上界", + "io.sc.engine.mv.result.binomial.geLower": "事實違約個數是否大於等於下界", + + "io.sc.engine.mv.executorDialog.title": "执行", + "io.sc.engine.mv.executorDialog.form.entity.rateStartDateFrom": "評級有效期開始日期範圍(起始日期)", + "io.sc.engine.mv.executorDialog.form.entity.rateStartDateTo": "評級有效期開始日期範圍(結束日期)", + "io.sc.engine.mv.executorDialog.form.entity.performPeriod": "評級表現期(月)", + "io.sc.engine.mv.executorDialog.form.entity.binomialSignificanceLevel": "二項檢驗採用的顯著水平", + "io.sc.engine.mv.executorDialog.form.entity.chiSquareSignificanceLevel": "卡方檢驗採用的顯著水平", + "io.sc.engine.mv.executorDialog.form.action.execute": "立即執行" } diff --git a/io.sc.engine.mv.frontend/src/i18n/messages_zh_CN.json b/io.sc.engine.mv.frontend/src/i18n/messages_zh_CN.json index cf007a86..9106f3ee 100644 --- a/io.sc.engine.mv.frontend/src/i18n/messages_zh_CN.json +++ b/io.sc.engine.mv.frontend/src/i18n/messages_zh_CN.json @@ -1,229 +1,229 @@ { - "menu.engine.mv" : "模型验证工具", - "menu.engine.mv.config" : "配置", - "menu.engine.mv.config.cutOffPoint" : "评分截断点", - "menu.engine.mv.config.threshold" : "预警阈值", - "menu.engine.mv.config.binomial" : "二项检验Z值常量", - "menu.engine.mv.config.chiSquare" : "卡方检验临界值常量", - "menu.engine.mv.config.model" : "模型", - "menu.engine.mv.config.distribution" : "建模时评分分布", - "menu.engine.mv.config.scale" : "标尺", - "menu.engine.mv.config.dataExtractor" : "数据抽取器接口", - "menu.engine.mv.config.executor" : "执行器", - "menu.engine.mv.sample" : "样本管理", - "menu.engine.mv.result" : "验证结果查看", - - "io.sc.engine.mv.enums.GoodLevel.POOR" : "差", - "io.sc.engine.mv.enums.GoodLevel.MEDIUM" : "中等", - "io.sc.engine.mv.enums.GoodLevel.GOOD" : "好", - "io.sc.engine.mv.enums.GoodLevel.VERY_GOOD" : "很好", - "io.sc.engine.mv.enums.GoodLevel.EXCELLENT" : "非常好", - "io.sc.engine.mv.enums.GoodLevel.PERFECT" : "完美", - - "io.sc.engine.mv.enums.Stability.yes" : "模型比较稳定", - "io.sc.engine.mv.enums.Stability.no" : "模型发生了偏移", - - "io.sc.engine.mv.config.cutOffPoint.grid.title" : "评分截断点配置列表", - "io.sc.engine.mv.config.cutOffPoint.grid.entity.name" : "名称", - "io.sc.engine.mv.config.cutOffPoint.grid.entity.from" : "起始值(含)", - "io.sc.engine.mv.config.cutOffPoint.grid.entity.to" : "结束值(含)", - "io.sc.engine.mv.config.cutOffPoint.grid.entity.step" : "增量值", - "io.sc.engine.mv.config.cutOffPoint.grid.entity.scale" : "精度", - - "io.sc.engine.mv.config.threshold.grid.title" : "预警阈值配置列表", - "io.sc.engine.mv.config.threshold.grid.entity.name" : "名称", - "io.sc.engine.mv.config.threshold.grid.entity.level" : "等级(越大越好)", - "io.sc.engine.mv.config.threshold.grid.entity.color" : "颜色", - "io.sc.engine.mv.config.threshold.grid.entity.range" : "预警阈值范围", - "io.sc.engine.mv.config.threshold.grid.entity.quantitativeRange" : "预警阈值范围(定量)", - "io.sc.engine.mv.config.threshold.grid.entity.qualitativeRange" : "预警阈值范围(定性)", - - "io.sc.engine.mv.config.binomial.grid.title" : "二项检验标准正态分布显著水平下的Z值常量列表", - "io.sc.engine.mv.config.binomial.grid.entity.significanceLevel" : "显著水平", - "io.sc.engine.mv.config.binomial.grid.entity.confidenceLevel" : "置信水平", - "io.sc.engine.mv.config.binomial.grid.entity.zUpper" : "Z值上界", - "io.sc.engine.mv.config.binomial.grid.entity.zLower" : "Z值下界", - - "io.sc.engine.mv.config.chiSquare.grid.title" : "卡方分布临界值常量", - "io.sc.engine.mv.config.chiSquare.grid.entity.dof" : "自由度", - "io.sc.engine.mv.config.chiSquare.grid.entity.significanceLevel" : "显著水平", - "io.sc.engine.mv.config.chiSquare.grid.entity.criticalValue" : "临界值", - - "io.sc.engine.mv.config.model.grid.title" : "模型列表", - "io.sc.engine.mv.config.model.grid.toolbar.importFromScoreRecordTable" : "从评分记录表中导入", - "io.sc.engine.mv.config.model.grid.entity.type" : "模型创建类型", - "io.sc.engine.mv.config.model.grid.entity.modelId" : "模型标识", - "io.sc.engine.mv.config.model.grid.entity.modelName" : "模型名称", - - "io.sc.engine.mv.config.distribution.grid.title" : "咨询建模时样本分布情况配置列表", - "io.sc.engine.mv.config.distribution.grid.entity.modelId" : "模型标识", - "io.sc.engine.mv.config.distribution.grid.entity.modelName" : "模型名称", - "io.sc.engine.mv.config.distribution.grid.entity.scoreSegStart" : "分数段开始值(含该值)", - "io.sc.engine.mv.config.distribution.grid.entity.scoreSegEnd" : "分数段结束值(含该值)", - "io.sc.engine.mv.config.distribution.grid.entity.count" : "评分段内样本个数", - - "io.sc.engine.mv.config.scale.grid.title" : "标尺列表", - "io.sc.engine.mv.config.scale.grid.entity.modelId" : "模型标识", - "io.sc.engine.mv.config.scale.grid.entity.modelName" : "模型名称", - "io.sc.engine.mv.config.scale.grid.entity.level" : "等级", - "io.sc.engine.mv.config.scale.grid.entity.pd" : "违约概率", - "io.sc.engine.mv.config.scale.grid.entity.order" : "排序", - - "io.sc.engine.mv.config.dataExtractor.grid.title" : "数据抽取器列表", - "io.sc.engine.mv.config.dataExtractor.grid.toolbar.example" : "导入示例", - "io.sc.engine.mv.config.dataExtractor.grid.toolbar.example.tip" : "您确定要导入示例数据抽取器吗?", - "io.sc.engine.mv.config.dataExtractor.grid.entity.datasourceName" : "外部数据源名称", - "io.sc.engine.mv.config.dataExtractor.grid.entity.executeTimeWeight" : "预计执行时间权重", - "io.sc.engine.mv.config.dataExtractor.grid.entity.groovyScript" : "Groovy 脚本", - - "io.sc.engine.mv.config.executor.grid.title" : "执行器列表", - - "io.sc.engine.mv.sample.action.importExampleSample" : "导入示例样本", - "io.sc.engine.mv.sample.action.importExampleSample.tip" : "您确定要导入示例样本吗?", - "io.sc.engine.mv.sample.action.removeAllSample" : "删除所有样本", - "io.sc.engine.mv.sample.action.removeAllSample.tip" : "您确定要删除所有样本吗?", - "io.sc.engine.mv.sample.tabs.sample" : "合格样本", - "io.sc.engine.mv.sample.tabs.scoreRecord" : "评分记录", - "io.sc.engine.mv.sample.tabs.defaultRecord" : "违约记录", - - "io.sc.engine.mv.sample.sample.grid.title" : "合格样本列表", - "io.sc.engine.mv.sample.sample.grid.entity.validateDate" : "验证日期", - "io.sc.engine.mv.sample.sample.grid.entity.customId" : "客户标识", - "io.sc.engine.mv.sample.sample.grid.entity.customName" : "客户名称", - "io.sc.engine.mv.sample.sample.grid.entity.modelId" : "模型标识", - "io.sc.engine.mv.sample.sample.grid.entity.modelName" : "模型名称", - "io.sc.engine.mv.sample.sample.grid.entity.pd" : "违约概率", - "io.sc.engine.mv.sample.sample.grid.entity.score" : "评分", - "io.sc.engine.mv.sample.sample.grid.entity.scoreQuantitative" : "定量评分", - "io.sc.engine.mv.sample.sample.grid.entity.scoreQualitative" : "定性评分", - "io.sc.engine.mv.sample.sample.grid.entity.level" : "等级", - "io.sc.engine.mv.sample.sample.grid.entity.beginDate" : "评分开始日期", - "io.sc.engine.mv.sample.sample.grid.entity.endDate" : "评分结束日期", - "io.sc.engine.mv.sample.sample.grid.entity.defaultConfirmDate" : "违约确定日期", - - - "io.sc.engine.mv.sample.scoreRecord.grid.title" : "评分记录列表", - "io.sc.engine.mv.sample.scoreRecord.grid.entity.customId" : "客户标识", - "io.sc.engine.mv.sample.scoreRecord.grid.entity.customName" : "客户名称", - "io.sc.engine.mv.sample.scoreRecord.grid.entity.modelId" : "模型标识", - "io.sc.engine.mv.sample.scoreRecord.grid.entity.modelName" : "模型名称", - "io.sc.engine.mv.sample.scoreRecord.grid.entity.pd" : "违约概率", - "io.sc.engine.mv.sample.scoreRecord.grid.entity.score" : "评分", - "io.sc.engine.mv.sample.scoreRecord.grid.entity.scoreQuantitative" : "定量评分", - "io.sc.engine.mv.sample.scoreRecord.grid.entity.scoreQualitative" : "定性评分", - "io.sc.engine.mv.sample.scoreRecord.grid.entity.level" : "等级", - "io.sc.engine.mv.sample.scoreRecord.grid.entity.scoreBeginDate" : "评分开始日期", - "io.sc.engine.mv.sample.scoreRecord.grid.entity.scoreEndDate" : "评分结束日期", - - "io.sc.engine.mv.sample.defaultRecord.grid.title" : "违约记录列表", - "io.sc.engine.mv.sample.defaultRecord.grid.entity.customId" : "客户标识", - "io.sc.engine.mv.sample.defaultRecord.grid.entity.defaultConfirmDate" : "违约确定日期", - - "io.sc.engine.mv.result.task.progress" : "当前正在执行的任务进度:", - - "io.sc.engine.mv.result.grid.title" : "验证结果列表", - "io.sc.engine.mv.result.grid.toolbar.execute" : "执行验证", - "io.sc.engine.mv.result.grid.entity.validateDate" : "验证日期", - "io.sc.engine.mv.result.grid.entity.runtimeParameters" : "运行时参数", - "io.sc.engine.mv.result.grid.entity.runtimeParameters.rateStartDateFrom" : "评级开始日期从", - "io.sc.engine.mv.result.grid.entity.runtimeParameters.rateStartDateTo" : "评级开始日期到", - "io.sc.engine.mv.result.grid.entity.runtimeParameters.performPeriod" : "表现期", - "io.sc.engine.mv.result.grid.entity.runtimeParameters.binomialSignificanceLevel" : "二项检验显著水平", - "io.sc.engine.mv.result.grid.entity.runtimeParameters.chiSquareSignificanceLevel" : "卡方检验显著水平", - "io.sc.engine.mv.result.grid.entity.modelId" : "模型标识", - "io.sc.engine.mv.result.grid.entity.modelName" : "模型名称", - "io.sc.engine.mv.result.grid.entity.executeMode" : "执行模式", - "io.sc.engine.mv.result.grid.entity.totalSampleCount" : "总样本数", - "io.sc.engine.mv.result.grid.entity.defaultSampleCount" : "违约样本数", - "io.sc.engine.mv.result.grid.entity.discrimination" : "区分能力", - "io.sc.engine.mv.result.grid.entity.total" : "总体", - "io.sc.engine.mv.result.grid.entity.total.auc" : "AUC(总体)", - "io.sc.engine.mv.result.grid.entity.total.ar" : "AR(总体)", - "io.sc.engine.mv.result.grid.entity.total.ks" : "KS(总体)", - "io.sc.engine.mv.result.grid.entity.quantitative.auc" : "AUC(定量)", - "io.sc.engine.mv.result.grid.entity.quantitative.ar" : "AR(定量)", - "io.sc.engine.mv.result.grid.entity.quantitative.ks" : "KS(定量)", - "io.sc.engine.mv.result.grid.entity.qualitative.auc" : "AUC(定性)", - "io.sc.engine.mv.result.grid.entity.qualitative.ar" : "AR(定性)", - "io.sc.engine.mv.result.grid.entity.qualitative.ks" : "KS(定性)", - "io.sc.engine.mv.result.grid.entity.auc" : "AUC", - "io.sc.engine.mv.result.grid.entity.ar" : "AR", - "io.sc.engine.mv.result.grid.entity.ks" : "KS", - "io.sc.engine.mv.result.grid.entity.stability" : "稳定性", - "io.sc.engine.mv.result.grid.entity.svd" : "SVD", - "io.sc.engine.mv.result.grid.entity.psi" : "PSI", - "io.sc.engine.mv.result.grid.entity.scaleValidate" : "标尺检验", - "io.sc.engine.mv.result.grid.entity.chiSquare" : "卡方检验", - "io.sc.engine.mv.result.grid.entity.binomial" : "二项检验", - - "io.sc.engine.mv.result.curve.references" : "参考标准", - "io.sc.engine.mv.result.curve.viewData" : "查看 {type} 数据", - "io.sc.engine.mv.result.curve.scoreCutOffPoint" : "评分截断点", - - "io.sc.engine.mv.result.curve.roc.dd" : "(DD)实际违约且预测违约样本总数", - "io.sc.engine.mv.result.curve.roc.dn" : "(DN)实际违约且预测正常样本总数", - "io.sc.engine.mv.result.curve.roc.nd" : "(ND)实际正常且预测违约样本总数", - "io.sc.engine.mv.result.curve.roc.nn" : "(NN)实际正常且预测正常样本总数", - "io.sc.engine.mv.result.curve.roc.td" : "(TD)实际违约样本总数", - "io.sc.engine.mv.result.curve.roc.tn" : "(TN)实际正常样本总数", - "io.sc.engine.mv.result.curve.roc.x" : "(X=ND/TN)违约预测误警率", - "io.sc.engine.mv.result.curve.roc.y" : "(Y=DD/TD)违约预测命中率", - - "io.sc.engine.mv.result.curve.cap.ts" : "(TS)评分小于等于截断点的样本个数", - "io.sc.engine.mv.result.curve.cap.tt" : "(TT)样本总数", - "io.sc.engine.mv.result.curve.cap.tds" : "(TDS)评分小于等于截断点的事实违约样本个数", - "io.sc.engine.mv.result.curve.cap.tdt" : "(TDT)事实违约样本总数", - "io.sc.engine.mv.result.curve.cap.x" : "(X)违约样本百分比", - "io.sc.engine.mv.result.curve.cap.y" : "(Y)样本百分比", - - "io.sc.engine.mv.result.curve.ks.n" : "(N)评分小于等于截断点事实正常的样本个数", - "io.sc.engine.mv.result.curve.ks.tn" : "(TN)事实正常样本总数", - "io.sc.engine.mv.result.curve.ks.d" : "(D)评分小于等于截断点事实违约样本个数", - "io.sc.engine.mv.result.curve.ks.td" : "(TD)事实违约样本总数", - "io.sc.engine.mv.result.curve.ks.y1" : "(Y1)正常样本占比", - "io.sc.engine.mv.result.curve.ks.y2" : "(Y2)违约样本占比", - - "io.sc.engine.mv.result.curve.psi.scoreSegStart" : "分数段开始值(含)", - "io.sc.engine.mv.result.curve.psi.scoreSegEnd" : "分数段结束值(含)", - "io.sc.engine.mv.result.curve.psi.countDev" : "段内个数", - "io.sc.engine.mv.result.curve.psi.totalCountDev" : "总数", - "io.sc.engine.mv.result.curve.psi.percentDev" : "百分比", - "io.sc.engine.mv.result.curve.psi.countApp" : "段内个数", - "io.sc.engine.mv.result.curve.psi.totalCountApp" : "总数", - "io.sc.engine.mv.result.curve.psi.percentApp" : "百分比", - "io.sc.engine.mv.result.curve.psi.percentDiff" : "百分比变化", - "io.sc.engine.mv.result.curve.psi.percentRate" : "百分比相对比例", - "io.sc.engine.mv.result.curve.psi.weight" : "加权系数", - "io.sc.engine.mv.result.curve.psi.stWeight" : "稳定性加权", - - "io.sc.engine.mv.result.chiSquare.grid.title" : "卡方检验结果", - "io.sc.engine.mv.result.chiSquare.level" : "评分等级", - "io.sc.engine.mv.result.chiSquare.pd" : "违约概率", - "io.sc.engine.mv.result.chiSquare.count" : "样本总数", - "io.sc.engine.mv.result.chiSquare.defaultCount" : "事实违约样本个数", - "io.sc.engine.mv.result.chiSquare.chiSquare" : "卡方检验值", - - "io.sc.engine.mv.result.binomial.grid.title" : "二项检验结果", - "io.sc.engine.mv.result.binomial.level" : "评分等级", - "io.sc.engine.mv.result.binomial.pd" : "违约概率", - "io.sc.engine.mv.result.binomial.count" : "样本总数", - "io.sc.engine.mv.result.binomial.defaultCount" : "事实违约样本个数", - "io.sc.engine.mv.result.binomial.ndAvg" : "正态分布平均数", - "io.sc.engine.mv.result.binomial.ndSd" : "正态分布标准差", - "io.sc.engine.mv.result.binomial.sl" : "显著水平", - "io.sc.engine.mv.result.binomial.cl" : "置信水平", - "io.sc.engine.mv.result.binomial.zUpper" : "正态分布Z值上界", - "io.sc.engine.mv.result.binomial.zLower" : "正态分布Z值下界", - "io.sc.engine.mv.result.binomial.dUpper" : "临界值上界", - "io.sc.engine.mv.result.binomial.dLower" : "临界值下界", - "io.sc.engine.mv.result.binomial.leUpper" : "事实违约个数是否小于等于上界", - "io.sc.engine.mv.result.binomial.geLower" : "事实违约个数是否大于等于下界", - - "io.sc.engine.mv.executorDialog.title" : "执行", - "io.sc.engine.mv.executorDialog.form.entity.rateStartDateFrom" : "评级有效期开始日期范围(起始日期)", - "io.sc.engine.mv.executorDialog.form.entity.rateStartDateTo" : "评级有效期开始日期范围(结束日期)", - "io.sc.engine.mv.executorDialog.form.entity.performPeriod" : "评级表现期(月)", - "io.sc.engine.mv.executorDialog.form.entity.binomialSignificanceLevel" : "二项检验采用的显著水平", - "io.sc.engine.mv.executorDialog.form.entity.chiSquareSignificanceLevel" : "卡方检验采用的显著水平", - "io.sc.engine.mv.executorDialog.form.action.execute" : "立即执行" + "menu.engine.mv": "模型验证工具", + "menu.engine.mv.config": "配置", + "menu.engine.mv.config.cutOffPoint": "评分截断点", + "menu.engine.mv.config.threshold": "预警阈值", + "menu.engine.mv.config.binomial": "二项检验Z值常量", + "menu.engine.mv.config.chiSquare": "卡方检验临界值常量", + "menu.engine.mv.config.model": "模型", + "menu.engine.mv.config.distribution": "建模时评分分布", + "menu.engine.mv.config.scale": "标尺", + "menu.engine.mv.config.dataExtractor": "数据抽取器接口", + "menu.engine.mv.config.executor": "执行器", + "menu.engine.mv.sample": "样本管理", + "menu.engine.mv.result": "验证结果查看", + + "io.sc.engine.mv.enums.GoodLevel.POOR": "差", + "io.sc.engine.mv.enums.GoodLevel.MEDIUM": "中等", + "io.sc.engine.mv.enums.GoodLevel.GOOD": "好", + "io.sc.engine.mv.enums.GoodLevel.VERY_GOOD": "很好", + "io.sc.engine.mv.enums.GoodLevel.EXCELLENT": "非常好", + "io.sc.engine.mv.enums.GoodLevel.PERFECT": "完美", + + "io.sc.engine.mv.enums.Stability.yes": "模型比较稳定", + "io.sc.engine.mv.enums.Stability.no": "模型发生了偏移", + + "io.sc.engine.mv.config.cutOffPoint.grid.title": "评分截断点配置列表", + "io.sc.engine.mv.config.cutOffPoint.grid.entity.name": "名称", + "io.sc.engine.mv.config.cutOffPoint.grid.entity.from": "起始值(含)", + "io.sc.engine.mv.config.cutOffPoint.grid.entity.to": "结束值(含)", + "io.sc.engine.mv.config.cutOffPoint.grid.entity.step": "增量值", + "io.sc.engine.mv.config.cutOffPoint.grid.entity.scale": "精度", + + "io.sc.engine.mv.config.threshold.grid.title": "预警阈值配置列表", + "io.sc.engine.mv.config.threshold.grid.entity.name": "名称", + "io.sc.engine.mv.config.threshold.grid.entity.level": "等级(越大越好)", + "io.sc.engine.mv.config.threshold.grid.entity.color": "颜色", + "io.sc.engine.mv.config.threshold.grid.entity.range": "预警阈值范围", + "io.sc.engine.mv.config.threshold.grid.entity.quantitativeRange": "预警阈值范围(定量)", + "io.sc.engine.mv.config.threshold.grid.entity.qualitativeRange": "预警阈值范围(定性)", + + "io.sc.engine.mv.config.binomial.grid.title": "二项检验标准正态分布显著水平下的Z值常量列表", + "io.sc.engine.mv.config.binomial.grid.entity.significanceLevel": "显著水平", + "io.sc.engine.mv.config.binomial.grid.entity.confidenceLevel": "置信水平", + "io.sc.engine.mv.config.binomial.grid.entity.zUpper": "Z值上界", + "io.sc.engine.mv.config.binomial.grid.entity.zLower": "Z值下界", + + "io.sc.engine.mv.config.chiSquare.grid.title": "卡方分布临界值常量", + "io.sc.engine.mv.config.chiSquare.grid.entity.dof": "自由度", + "io.sc.engine.mv.config.chiSquare.grid.entity.significanceLevel": "显著水平", + "io.sc.engine.mv.config.chiSquare.grid.entity.criticalValue": "临界值", + + "io.sc.engine.mv.config.model.grid.title": "模型列表", + "io.sc.engine.mv.config.model.grid.toolbar.importFromScoreRecordTable": "从评分记录表中导入", + "io.sc.engine.mv.config.model.grid.entity.type": "模型创建类型", + "io.sc.engine.mv.config.model.grid.entity.modelId": "模型标识", + "io.sc.engine.mv.config.model.grid.entity.modelName": "模型名称", + "io.sc.engine.mv.config.model.grid.action.importFromScoreRecord": "您确定要从评级记录表中导入模型?", + + "io.sc.engine.mv.config.distribution.grid.title": "咨询建模时样本分布情况配置列表", + "io.sc.engine.mv.config.distribution.grid.entity.modelId": "模型标识", + "io.sc.engine.mv.config.distribution.grid.entity.modelName": "模型名称", + "io.sc.engine.mv.config.distribution.grid.entity.scoreSegStart": "分数段开始值(含该值)", + "io.sc.engine.mv.config.distribution.grid.entity.scoreSegEnd": "分数段结束值(含该值)", + "io.sc.engine.mv.config.distribution.grid.entity.count": "评分段内样本个数", + + "io.sc.engine.mv.config.scale.grid.title": "标尺列表", + "io.sc.engine.mv.config.scale.grid.entity.modelId": "模型标识", + "io.sc.engine.mv.config.scale.grid.entity.modelName": "模型名称", + "io.sc.engine.mv.config.scale.grid.entity.level": "等级", + "io.sc.engine.mv.config.scale.grid.entity.pd": "违约概率", + "io.sc.engine.mv.config.scale.grid.entity.order": "排序", + + "io.sc.engine.mv.config.dataExtractor.grid.title": "数据抽取器列表", + "io.sc.engine.mv.config.dataExtractor.grid.toolbar.example": "导入示例", + "io.sc.engine.mv.config.dataExtractor.grid.toolbar.example.tip": "您确定要导入示例数据抽取器吗?", + "io.sc.engine.mv.config.dataExtractor.grid.entity.datasourceName": "外部数据源名称", + "io.sc.engine.mv.config.dataExtractor.grid.entity.executeTimeWeight": "预计执行时间权重", + "io.sc.engine.mv.config.dataExtractor.grid.entity.groovyScript": "Groovy 脚本", + + "io.sc.engine.mv.config.executor.grid.title": "执行器列表", + + "io.sc.engine.mv.sample.action.importExampleSample": "导入示例样本", + "io.sc.engine.mv.sample.action.importExampleSample.tip": "您确定要导入示例样本吗?", + "io.sc.engine.mv.sample.action.removeAllSample": "删除所有样本", + "io.sc.engine.mv.sample.action.removeAllSample.tip": "您确定要删除所有样本吗?", + "io.sc.engine.mv.sample.tabs.sample": "合格样本", + "io.sc.engine.mv.sample.tabs.scoreRecord": "评分记录", + "io.sc.engine.mv.sample.tabs.defaultRecord": "违约记录", + + "io.sc.engine.mv.sample.sample.grid.title": "合格样本列表", + "io.sc.engine.mv.sample.sample.grid.entity.validateDate": "验证日期", + "io.sc.engine.mv.sample.sample.grid.entity.customId": "客户标识", + "io.sc.engine.mv.sample.sample.grid.entity.customName": "客户名称", + "io.sc.engine.mv.sample.sample.grid.entity.modelId": "模型标识", + "io.sc.engine.mv.sample.sample.grid.entity.modelName": "模型名称", + "io.sc.engine.mv.sample.sample.grid.entity.pd": "违约概率", + "io.sc.engine.mv.sample.sample.grid.entity.score": "评分", + "io.sc.engine.mv.sample.sample.grid.entity.scoreQuantitative": "定量评分", + "io.sc.engine.mv.sample.sample.grid.entity.scoreQualitative": "定性评分", + "io.sc.engine.mv.sample.sample.grid.entity.level": "等级", + "io.sc.engine.mv.sample.sample.grid.entity.beginDate": "评分开始日期", + "io.sc.engine.mv.sample.sample.grid.entity.endDate": "评分结束日期", + "io.sc.engine.mv.sample.sample.grid.entity.defaultConfirmDate": "违约确定日期", + + "io.sc.engine.mv.sample.scoreRecord.grid.title": "评分记录列表", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.customId": "客户标识", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.customName": "客户名称", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.modelId": "模型标识", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.modelName": "模型名称", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.pd": "违约概率", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.score": "评分", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.scoreQuantitative": "定量评分", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.scoreQualitative": "定性评分", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.level": "等级", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.scoreBeginDate": "评分开始日期", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.scoreEndDate": "评分结束日期", + + "io.sc.engine.mv.sample.defaultRecord.grid.title": "违约记录列表", + "io.sc.engine.mv.sample.defaultRecord.grid.entity.customId": "客户标识", + "io.sc.engine.mv.sample.defaultRecord.grid.entity.defaultConfirmDate": "违约确定日期", + + "io.sc.engine.mv.result.task.progress": "当前正在执行的任务进度:", + + "io.sc.engine.mv.result.grid.title": "验证结果列表", + "io.sc.engine.mv.result.grid.toolbar.execute": "执行验证", + "io.sc.engine.mv.result.grid.entity.validateDate": "验证日期", + "io.sc.engine.mv.result.grid.entity.runtimeParameters": "运行时参数", + "io.sc.engine.mv.result.grid.entity.runtimeParameters.rateStartDateFrom": "评级开始日期从", + "io.sc.engine.mv.result.grid.entity.runtimeParameters.rateStartDateTo": "评级开始日期到", + "io.sc.engine.mv.result.grid.entity.runtimeParameters.performPeriod": "表现期", + "io.sc.engine.mv.result.grid.entity.runtimeParameters.binomialSignificanceLevel": "二项检验显著水平", + "io.sc.engine.mv.result.grid.entity.runtimeParameters.chiSquareSignificanceLevel": "卡方检验显著水平", + "io.sc.engine.mv.result.grid.entity.modelId": "模型标识", + "io.sc.engine.mv.result.grid.entity.modelName": "模型名称", + "io.sc.engine.mv.result.grid.entity.executeMode": "执行模式", + "io.sc.engine.mv.result.grid.entity.totalSampleCount": "总样本数", + "io.sc.engine.mv.result.grid.entity.defaultSampleCount": "违约样本数", + "io.sc.engine.mv.result.grid.entity.discrimination": "区分能力", + "io.sc.engine.mv.result.grid.entity.total": "总体", + "io.sc.engine.mv.result.grid.entity.total.auc": "AUC(总体)", + "io.sc.engine.mv.result.grid.entity.total.ar": "AR(总体)", + "io.sc.engine.mv.result.grid.entity.total.ks": "KS(总体)", + "io.sc.engine.mv.result.grid.entity.quantitative.auc": "AUC(定量)", + "io.sc.engine.mv.result.grid.entity.quantitative.ar": "AR(定量)", + "io.sc.engine.mv.result.grid.entity.quantitative.ks": "KS(定量)", + "io.sc.engine.mv.result.grid.entity.qualitative.auc": "AUC(定性)", + "io.sc.engine.mv.result.grid.entity.qualitative.ar": "AR(定性)", + "io.sc.engine.mv.result.grid.entity.qualitative.ks": "KS(定性)", + "io.sc.engine.mv.result.grid.entity.auc": "AUC", + "io.sc.engine.mv.result.grid.entity.ar": "AR", + "io.sc.engine.mv.result.grid.entity.ks": "KS", + "io.sc.engine.mv.result.grid.entity.stability": "稳定性", + "io.sc.engine.mv.result.grid.entity.svd": "SVD", + "io.sc.engine.mv.result.grid.entity.psi": "PSI", + "io.sc.engine.mv.result.grid.entity.scaleValidate": "标尺检验", + "io.sc.engine.mv.result.grid.entity.chiSquare": "卡方检验", + "io.sc.engine.mv.result.grid.entity.binomial": "二项检验", + + "io.sc.engine.mv.result.curve.references": "参考标准", + "io.sc.engine.mv.result.curve.viewData": "查看 {type} 数据", + "io.sc.engine.mv.result.curve.scoreCutOffPoint": "评分截断点", + + "io.sc.engine.mv.result.curve.roc.dd": "(DD)实际违约且预测违约样本总数", + "io.sc.engine.mv.result.curve.roc.dn": "(DN)实际违约且预测正常样本总数", + "io.sc.engine.mv.result.curve.roc.nd": "(ND)实际正常且预测违约样本总数", + "io.sc.engine.mv.result.curve.roc.nn": "(NN)实际正常且预测正常样本总数", + "io.sc.engine.mv.result.curve.roc.td": "(TD)实际违约样本总数", + "io.sc.engine.mv.result.curve.roc.tn": "(TN)实际正常样本总数", + "io.sc.engine.mv.result.curve.roc.x": "(X=ND/TN)违约预测误警率", + "io.sc.engine.mv.result.curve.roc.y": "(Y=DD/TD)违约预测命中率", + + "io.sc.engine.mv.result.curve.cap.ts": "(TS)评分小于等于截断点的样本个数", + "io.sc.engine.mv.result.curve.cap.tt": "(TT)样本总数", + "io.sc.engine.mv.result.curve.cap.tds": "(TDS)评分小于等于截断点的事实违约样本个数", + "io.sc.engine.mv.result.curve.cap.tdt": "(TDT)事实违约样本总数", + "io.sc.engine.mv.result.curve.cap.x": "(X)违约样本百分比", + "io.sc.engine.mv.result.curve.cap.y": "(Y)样本百分比", + + "io.sc.engine.mv.result.curve.ks.n": "(N)评分小于等于截断点事实正常的样本个数", + "io.sc.engine.mv.result.curve.ks.tn": "(TN)事实正常样本总数", + "io.sc.engine.mv.result.curve.ks.d": "(D)评分小于等于截断点事实违约样本个数", + "io.sc.engine.mv.result.curve.ks.td": "(TD)事实违约样本总数", + "io.sc.engine.mv.result.curve.ks.y1": "(Y1)正常样本占比", + "io.sc.engine.mv.result.curve.ks.y2": "(Y2)违约样本占比", + + "io.sc.engine.mv.result.curve.psi.scoreSegStart": "分数段开始值(含)", + "io.sc.engine.mv.result.curve.psi.scoreSegEnd": "分数段结束值(含)", + "io.sc.engine.mv.result.curve.psi.countDev": "段内个数", + "io.sc.engine.mv.result.curve.psi.totalCountDev": "总数", + "io.sc.engine.mv.result.curve.psi.percentDev": "百分比", + "io.sc.engine.mv.result.curve.psi.countApp": "段内个数", + "io.sc.engine.mv.result.curve.psi.totalCountApp": "总数", + "io.sc.engine.mv.result.curve.psi.percentApp": "百分比", + "io.sc.engine.mv.result.curve.psi.percentDiff": "百分比变化", + "io.sc.engine.mv.result.curve.psi.percentRate": "百分比相对比例", + "io.sc.engine.mv.result.curve.psi.weight": "加权系数", + "io.sc.engine.mv.result.curve.psi.stWeight": "稳定性加权", + + "io.sc.engine.mv.result.chiSquare.grid.title": "卡方检验结果", + "io.sc.engine.mv.result.chiSquare.level": "评分等级", + "io.sc.engine.mv.result.chiSquare.pd": "违约概率", + "io.sc.engine.mv.result.chiSquare.count": "样本总数", + "io.sc.engine.mv.result.chiSquare.defaultCount": "事实违约样本个数", + "io.sc.engine.mv.result.chiSquare.chiSquare": "卡方检验值", + + "io.sc.engine.mv.result.binomial.grid.title": "二项检验结果", + "io.sc.engine.mv.result.binomial.level": "评分等级", + "io.sc.engine.mv.result.binomial.pd": "违约概率", + "io.sc.engine.mv.result.binomial.count": "样本总数", + "io.sc.engine.mv.result.binomial.defaultCount": "事实违约样本个数", + "io.sc.engine.mv.result.binomial.ndAvg": "正态分布平均数", + "io.sc.engine.mv.result.binomial.ndSd": "正态分布标准差", + "io.sc.engine.mv.result.binomial.sl": "显著水平", + "io.sc.engine.mv.result.binomial.cl": "置信水平", + "io.sc.engine.mv.result.binomial.zUpper": "正态分布Z值上界", + "io.sc.engine.mv.result.binomial.zLower": "正态分布Z值下界", + "io.sc.engine.mv.result.binomial.dUpper": "临界值上界", + "io.sc.engine.mv.result.binomial.dLower": "临界值下界", + "io.sc.engine.mv.result.binomial.leUpper": "事实违约个数是否小于等于上界", + "io.sc.engine.mv.result.binomial.geLower": "事实违约个数是否大于等于下界", + + "io.sc.engine.mv.executorDialog.title": "执行", + "io.sc.engine.mv.executorDialog.form.entity.rateStartDateFrom": "评级有效期开始日期范围(起始日期)", + "io.sc.engine.mv.executorDialog.form.entity.rateStartDateTo": "评级有效期开始日期范围(结束日期)", + "io.sc.engine.mv.executorDialog.form.entity.performPeriod": "评级表现期(月)", + "io.sc.engine.mv.executorDialog.form.entity.binomialSignificanceLevel": "二项检验采用的显著水平", + "io.sc.engine.mv.executorDialog.form.entity.chiSquareSignificanceLevel": "卡方检验采用的显著水平", + "io.sc.engine.mv.executorDialog.form.action.execute": "立即执行" } diff --git a/io.sc.engine.mv.frontend/src/views/config/model.vue b/io.sc.engine.mv.frontend/src/views/config/model.vue index 4193a916..0bf38d7f 100644 --- a/io.sc.engine.mv.frontend/src/views/config/model.vue +++ b/io.sc.engine.mv.frontend/src/views/config/model.vue @@ -1,5 +1,6 @@ diff --git a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/impl/CfgScaleServiceImpl.java b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/impl/CfgScaleServiceImpl.java index 89d8aea1..f50ab56d 100644 --- a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/impl/CfgScaleServiceImpl.java +++ b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/impl/CfgScaleServiceImpl.java @@ -4,6 +4,7 @@ import io.sc.engine.mv.configure.jpa.entity.CfgScale; import io.sc.engine.mv.configure.jpa.repository.CfgScaleRepository; import io.sc.engine.mv.configure.service.CfgScaleService; import io.sc.platform.orm.service.impl.DaoServiceImpl; +import io.sc.platform.util.StringUtil; import org.springframework.stereotype.Service; @Service("io.sc.engine.mv.configure.service.impl.CfgScaleServiceImpl") @@ -15,6 +16,9 @@ public class CfgScaleServiceImpl extends DaoServiceImpl { - console.log('>>>>>>1', args.grid.getEditorForm()); args.grid.getEditorForm().setFieldValue('type', 'FOLDER'); - console.log('>>>>>>2'); }, }, { diff --git a/io.sc.platform.core.frontend/.npmrc b/io.sc.platform.core.frontend/.npmrc index 905ceea3..98b46133 100644 --- a/io.sc.platform.core.frontend/.npmrc +++ b/io.sc.platform.core.frontend/.npmrc @@ -12,4 +12,4 @@ git-checks=false # _authToken 可通过以下命令获取 # curl -X PUT -H "Content-Type:application/json" -d '{"_id":"org.couchdb.user:admin","name":"admin","password":"admin"}' http://nexus.sc.io:8000/repository/npm-releases/-/user/org.couchdb.user:admin # 上海农商银行内网令牌: NpmToken.ed1a68b7-543f-3c15-8451-2edbc0de057f -//nexus.sc.io:8000/repository/npm-releases/:_authToken=NpmToken.67c99588-56a6-3ce1-9bea-a9a6164f8090 +//nexus.sc.io:8000/repository/npm-releases/:_authToken=NpmToken.8d45fdad-a169-3f2d-b245-440815bc5e7e diff --git a/io.sc.platform.core.frontend/.vscode/extensions.json b/io.sc.platform.core.frontend/.vscode/extensions.json deleted file mode 100644 index 5f9db22b..00000000 --- a/io.sc.platform.core.frontend/.vscode/extensions.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "recommendations": [ - "Vue.volar", - "Vue.vscode-typescript-vue-plugin", - "bradlc.vscode-tailwindcss", - "christian-kohler.path-intellisense", - // "esbenp.prettier-vscode" - ] -} diff --git a/io.sc.platform.developer.doc/asciidoc/9999-appendix/java/java.adoc b/io.sc.platform.developer.doc/asciidoc/9999-appendix/java/java.adoc index c0028f4a..4b7a03f2 100644 --- a/io.sc.platform.developer.doc/asciidoc/9999-appendix/java/java.adoc +++ b/io.sc.platform.developer.doc/asciidoc/9999-appendix/java/java.adoc @@ -1,6 +1,28 @@ [appendix] = JAVA == 常用技巧 + +=== JDK 版本管理工具 sdkman +SDKMAN!(Software Development Kit Manager)是类 +Unix 系统(Linux、macOS、Windows WSL 等)上的开源命令行 SDK 版本管理工具, +原名 GVM(Groovy enVironment Manager),主打 JVM 生态工具管理, +能一键安装、切换、卸载多版本 SDK 并自动配置环境变量,轻量且免费开源。 + +[source, bash] +---- +# 设置环境变量, 避免因为网络原因无法正常安装 sdkman +export SDKMAN_CANDIDATES_REPO="https://mirrors.tuna.tsinghua.edu.cn/Adoptium" + +# 开始安装 sdkman +curl -s "https://get.sdkman.io" | bash + +# 初始化 sdkman +source "$HOME/.sdkman/bin/sdkman-init.sh" + +# 测试 sdkman +sdk version +---- + === 日志输出模式 在日志输出时,在拼接字符串时,请使用字符串模版方式。 [source,java] diff --git a/io.sc.platform.help/build.gradle b/io.sc.platform.help/build.gradle new file mode 100644 index 00000000..107043c5 --- /dev/null +++ b/io.sc.platform.help/build.gradle @@ -0,0 +1,5 @@ +dependencies { + api( + project(":io.sc.platform.mvc"), + ) +} diff --git a/io.sc.platform.help/src/main/java/io/sc/platform/help/plugins/PluginManager.java b/io.sc.platform.help/src/main/java/io/sc/platform/help/plugins/PluginManager.java new file mode 100644 index 00000000..e801897e --- /dev/null +++ b/io.sc.platform.help/src/main/java/io/sc/platform/help/plugins/PluginManager.java @@ -0,0 +1,68 @@ +package io.sc.platform.help.plugins; + +import com.fasterxml.jackson.core.type.TypeReference; +import io.sc.platform.core.plugins.Plugin; +import io.sc.platform.core.plugins.PluginParser; +import io.sc.platform.help.plugins.item.Help; + +import java.util.ArrayList; +import java.util.List; + +/** + * 帮助文档处理插件 + */ +public class PluginManager { + private static final String HELP_LOCATION ="META-INF/platform/plugins/helps.json"; + + //系统参数插件 + private List>> helpPlugins; + private List helps; //按优先级合并后的列表 + + /** + * 获取单例模式实例 + * @return 实例 + */ + public static PluginManager getInstance(){ + return PluginManagerHolder.instance; + } + + private static class PluginManagerHolder{ + private static PluginManager instance =new PluginManager(); + } + + private PluginManager(){ + PluginParser parser =new PluginParser(); + loadHelpPlugins(parser); + } + + public List>> getHelpPlugins() { + return helpPlugins; + } + public void setHelpPlugins(List>> helpPlugins) { + this.helpPlugins = helpPlugins; + } + public List getHelps() { + return helps; + } + public void setHelps(List helps) { + this.helps = helps; + } + + private void loadHelpPlugins(PluginParser parser) { + helpPlugins =parser.parse(HELP_LOCATION,new TypeReference>(){}); + //处理未按优先级合并的贡献项列表 + if(helpPlugins!=null && !helpPlugins.isEmpty()){ + List items =new ArrayList<>(); + for(Plugin> plugin : helpPlugins){ + List innerHelps =plugin.getValue(); + if(innerHelps!=null && !innerHelps.isEmpty()){ + for(Help entity : innerHelps){ + entity.setConfigurationFileUrl(plugin.getFileUrl()); + } + items.addAll(innerHelps); + } + } + this.helps =items; + } + } +} \ No newline at end of file diff --git a/io.sc.platform.help/src/main/java/io/sc/platform/help/plugins/PluginSpiServiceImpl.java b/io.sc.platform.help/src/main/java/io/sc/platform/help/plugins/PluginSpiServiceImpl.java new file mode 100644 index 00000000..e2ae274f --- /dev/null +++ b/io.sc.platform.help/src/main/java/io/sc/platform/help/plugins/PluginSpiServiceImpl.java @@ -0,0 +1,12 @@ +package io.sc.platform.help.plugins; + +import io.sc.platform.core.spi.PluginSpiService; + +/** + * 该类为 java SPI(Service Provider Interface) 模式的实现类, 用于加载插件 + */ +public class PluginSpiServiceImpl implements PluginSpiService { + public PluginSpiServiceImpl(){ + PluginManager.getInstance(); + } +} diff --git a/io.sc.platform.help/src/main/java/io/sc/platform/help/plugins/item/Help.java b/io.sc.platform.help/src/main/java/io/sc/platform/help/plugins/item/Help.java new file mode 100644 index 00000000..7f32635c --- /dev/null +++ b/io.sc.platform.help/src/main/java/io/sc/platform/help/plugins/item/Help.java @@ -0,0 +1,33 @@ +package io.sc.platform.help.plugins.item; + +public class Help { + protected String id; + protected String url; + + //附加属性 + private String configurationFileUrl; //帮助贡献项配置文件位置 + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getConfigurationFileUrl() { + return configurationFileUrl; + } + + public void setConfigurationFileUrl(String configurationFileUrl) { + this.configurationFileUrl = configurationFileUrl; + } +} diff --git a/io.sc.platform.springcloud.openfeign/src/main/java/io/sc/platform/springcloud/openfeign/example/Sample.java b/io.sc.platform.springcloud.openfeign/src/main/java/io/sc/platform/springcloud/openfeign/example/Sample.java index 35d198de..db178eba 100644 --- a/io.sc.platform.springcloud.openfeign/src/main/java/io/sc/platform/springcloud/openfeign/example/Sample.java +++ b/io.sc.platform.springcloud.openfeign/src/main/java/io/sc/platform/springcloud/openfeign/example/Sample.java @@ -1,6 +1,5 @@ package io.sc.platform.springcloud.openfeign.example; -import org.bouncycastle.util.Store; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -10,5 +9,5 @@ import java.util.List; @FeignClient("openfeignSample") public interface Sample { @RequestMapping(name = "user", value = "/api/system/user", method = RequestMethod.GET) - public List getUsers(); + public List getUsers(); } diff --git a/io.sc.platform.util/src/main/java/io/sc/platform/util/ManifestUtil.java b/io.sc.platform.util/src/main/java/io/sc/platform/util/ManifestUtil.java index 0f845855..f333b060 100644 --- a/io.sc.platform.util/src/main/java/io/sc/platform/util/ManifestUtil.java +++ b/io.sc.platform.util/src/main/java/io/sc/platform/util/ManifestUtil.java @@ -14,9 +14,38 @@ import java.util.jar.Manifest; */ public class ManifestUtil { private ManifestUtil(){} + + /** + * 获取 MANIFEST.MF 文件中 Main-Class 属性值 + * @return Main-Class 属性值 + */ + public static String getMainClass(){ + return getMainClass(null); + } + + /** + * 获取 MANIFEST.MF 文件中 Main-Class 属性值 + * @param classLoader 类加载器 + * @return Main-Class 属性值 + */ + public static String getMainClass(ClassLoader classLoader){ + Attributes attrs = getMainAttributes(classLoader); + return attrs.getValue(Attributes.Name.MAIN_CLASS); + } + + /** + * 获取 MANIFEST.MF 文件中所有属性 + * @return 所有属性 + */ public static Attributes getMainAttributes(){ return getMainAttributes(null); } + + /** + * 获取 MANIFEST.MF 文件中所有属性 + * @param classLoader 类加载器 + * @return 所有属性 + */ public static Attributes getMainAttributes(ClassLoader classLoader){ Resource rs = new DefaultResourceLoader(classLoader).getResource("classpath:/META-INF/MANIFEST.MF"); if(rs.exists()){ diff --git a/io.sc.platform.util/src/main/java/io/sc/platform/util/MapUtil.java b/io.sc.platform.util/src/main/java/io/sc/platform/util/MapUtil.java index 60945b6e..8e8e5a3f 100644 --- a/io.sc.platform.util/src/main/java/io/sc/platform/util/MapUtil.java +++ b/io.sc.platform.util/src/main/java/io/sc/platform/util/MapUtil.java @@ -7,6 +7,11 @@ import java.util.HashMap; import java.util.Map; public class MapUtil { + /** + * 创建一个不可变的 Map,包含指定的键值对 + * @param kvs 键值对数组 + * @return 不可变的 Map + */ public static Map of(KV... kvs){ if(kvs==null || kvs.length==0){ return Collections.emptyMap(); diff --git a/settings.gradle b/settings.gradle index 91516937..68f8d791 100755 --- a/settings.gradle +++ b/settings.gradle @@ -39,6 +39,7 @@ include ':io.sc.platform.developer.doc' include ':io.sc.platform.developer.frontend' include ':io.sc.platform.flowable' include ':io.sc.platform.groovy' +include ':io.sc.platform.help' include ':io.sc.platform.installer' include ':io.sc.platform.jdbc' include ':io.sc.platform.jdbc.driver'