diff --git a/app.platform/build-jetty.gradle b/app.platform/build-jetty.gradle index 6cf02057..337e18ac 100644 --- a/app.platform/build-jetty.gradle +++ b/app.platform/build-jetty.gradle @@ -2,7 +2,7 @@ println "[Jetty] 环境 ......" configurations { all*.exclude group: "org.springframework.boot", module: "spring-boot-starter-tomcat" - all*.exclude group: "org.apache.tomcat.embed", module: "tomcat-embed-core" + all*.exclude group: "org.apache.tomcat.embed", module: "tomcat-embed-coe" all*.exclude group: "org.apache.tomcat.embed", module: "tomcat-embed-websocket" } diff --git a/app.platform/build-undertow.gradle b/app.platform/build-undertow.gradle index 00d3b492..2ef429e7 100644 --- a/app.platform/build-undertow.gradle +++ b/app.platform/build-undertow.gradle @@ -2,7 +2,7 @@ println "[Undertow] 环境 ......" configurations { all*.exclude group: "org.springframework.boot", module: "spring-boot-starter-tomcat" - all*.exclude group: "org.apache.tomcat.embed", module: "tomcat-embed-core" + all*.exclude group: "org.apache.tomcat.embed", module: "tomcat-embed-coe" all*.exclude group: "org.apache.tomcat.embed", module: "tomcat-embed-websocket" } diff --git a/app.platform/build.gradle b/app.platform/build.gradle index c63cef5e..2bfede38 100644 --- a/app.platform/build.gradle +++ b/app.platform/build.gradle @@ -17,7 +17,7 @@ dependencies { project(":io.sc.engine.mv.frontend"), project(":io.sc.engine.mv.sample"), - //project(":io.sc.platform.job.core"), + //project(":io.sc.platform.job.coe"), //project(":io.sc.platform.job.executor"), //project(":io.sc.platform.job.manager"), diff --git a/com.xxl.job.admin/build-jetty.gradle b/com.xxl.job.admin/build-jetty.gradle index 6cf02057..337e18ac 100644 --- a/com.xxl.job.admin/build-jetty.gradle +++ b/com.xxl.job.admin/build-jetty.gradle @@ -2,7 +2,7 @@ println "[Jetty] 环境 ......" configurations { all*.exclude group: "org.springframework.boot", module: "spring-boot-starter-tomcat" - all*.exclude group: "org.apache.tomcat.embed", module: "tomcat-embed-core" + all*.exclude group: "org.apache.tomcat.embed", module: "tomcat-embed-coe" all*.exclude group: "org.apache.tomcat.embed", module: "tomcat-embed-websocket" } diff --git a/com.xxl.job.admin/build-undertow.gradle b/com.xxl.job.admin/build-undertow.gradle index 00d3b492..2ef429e7 100644 --- a/com.xxl.job.admin/build-undertow.gradle +++ b/com.xxl.job.admin/build-undertow.gradle @@ -2,7 +2,7 @@ println "[Undertow] 环境 ......" configurations { all*.exclude group: "org.springframework.boot", module: "spring-boot-starter-tomcat" - all*.exclude group: "org.apache.tomcat.embed", module: "tomcat-embed-core" + all*.exclude group: "org.apache.tomcat.embed", module: "tomcat-embed-coe" all*.exclude group: "org.apache.tomcat.embed", module: "tomcat-embed-websocket" } diff --git a/com.xxl.job.executor/build-jetty.gradle b/com.xxl.job.executor/build-jetty.gradle index 6cf02057..337e18ac 100644 --- a/com.xxl.job.executor/build-jetty.gradle +++ b/com.xxl.job.executor/build-jetty.gradle @@ -2,7 +2,7 @@ println "[Jetty] 环境 ......" configurations { all*.exclude group: "org.springframework.boot", module: "spring-boot-starter-tomcat" - all*.exclude group: "org.apache.tomcat.embed", module: "tomcat-embed-core" + all*.exclude group: "org.apache.tomcat.embed", module: "tomcat-embed-coe" all*.exclude group: "org.apache.tomcat.embed", module: "tomcat-embed-websocket" } diff --git a/com.xxl.job.executor/build-undertow.gradle b/com.xxl.job.executor/build-undertow.gradle index 00d3b492..2ef429e7 100644 --- a/com.xxl.job.executor/build-undertow.gradle +++ b/com.xxl.job.executor/build-undertow.gradle @@ -2,7 +2,7 @@ println "[Undertow] 环境 ......" configurations { all*.exclude group: "org.springframework.boot", module: "spring-boot-starter-tomcat" - all*.exclude group: "org.apache.tomcat.embed", module: "tomcat-embed-core" + all*.exclude group: "org.apache.tomcat.embed", module: "tomcat-embed-coe" all*.exclude group: "org.apache.tomcat.embed", module: "tomcat-embed-websocket" } diff --git a/io.sc.engine.mv.frontend/src/i18n/messages.json b/io.sc.engine.mv.frontend/src/i18n/messages.json index 48cb1293..561b9603 100644 --- a/io.sc.engine.mv.frontend/src/i18n/messages.json +++ b/io.sc.engine.mv.frontend/src/i18n/messages.json @@ -62,12 +62,42 @@ "io.sc.engine.mv.config.executor.grid.title" : "Executor List", - "io.sc.engine.mv.sample.tabs.goodSample" : "Good Sample", + "io.sc.engine.mv.sample.tabs.sample" : "Sample", "io.sc.engine.mv.sample.tabs.scoreRecord" : "Score Records", "io.sc.engine.mv.sample.tabs.defaultRecord" : "Default Records", - "io.sc.engine.mv.sample.goodSample.grid.title" : "Good Sample List", + "io.sc.engine.mv.sample.sample.grid.title" : "Sample List", + "io.sc.engine.mv.sample.sample.grid.entity.validateDate" : "Validate Date", + "io.sc.engine.mv.sample.sample.grid.entity.customId" : "Customer ID", + "io.sc.engine.mv.sample.sample.grid.entity.customName" : "Customer Name", + "io.sc.engine.mv.sample.sample.grid.entity.modelId" : "Model ID", + "io.sc.engine.mv.sample.sample.grid.entity.modelName" : "Model Name", + "io.sc.engine.mv.sample.sample.grid.entity.pd" : "PD", + "io.sc.engine.mv.sample.sample.grid.entity.score" : "Score", + "io.sc.engine.mv.sample.sample.grid.entity.scoreQuantitative" : "Quantitative Score", + "io.sc.engine.mv.sample.sample.grid.entity.scoreQualitative" : "Qualitative Score", + "io.sc.engine.mv.sample.sample.grid.entity.level" : "Level", + "io.sc.engine.mv.sample.sample.grid.entity.beginDate" : "Begin Date", + "io.sc.engine.mv.sample.sample.grid.entity.endDate" : "End Date", + "io.sc.engine.mv.sample.sample.grid.entity.defaultConfirmDate" : "Default Confirm Date", + "io.sc.engine.mv.sample.scoreRecord.grid.title" : "Score Record List", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.customId" : "Customer ID", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.customName" : "Customer Name", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.modelId" : "Model ID", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.modelName" : "Model Name", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.pd" : "PD", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.score" : "Score", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.scoreQuantitative" : "Quantitative Score", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.scoreQualitative" : "Qualitative Score", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.level" : "Level", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.scoreBeginDate" : "Begin Date", + "io.sc.engine.mv.sample.scoreRecord.grid.entity.scoreEndDate" : "End Date", + + "io.sc.engine.mv.sample.defaultRecord.grid.title" : "Default Record List", + "io.sc.engine.mv.sample.defaultRecord.grid.entity.customId" : "Customer ID", + "io.sc.engine.mv.sample.defaultRecord.grid.entity.defaultConfirmDate" : "Default Confirm Date", + "io.sc.engine.mv.result.grid.title" : "Validate Result List", "io.sc.engine.mv.result.grid.entity.validateDate" : "Validate Date", "io.sc.engine.mv.result.grid.entity.runtimeParameters" : "Runtime Parameters", @@ -83,6 +113,15 @@ "io.sc.engine.mv.result.grid.entity.defaultSampleCount" : "Default Sample Count", "io.sc.engine.mv.result.grid.entity.discrimination" : "Discrimination", "io.sc.engine.mv.result.grid.entity.total" : "Total", + "io.sc.engine.mv.result.grid.entity.total.auc" : "AUC(Total)", + "io.sc.engine.mv.result.grid.entity.total.ar" : "AR(Total)", + "io.sc.engine.mv.result.grid.entity.total.ks" : "KS(Total)", + "io.sc.engine.mv.result.grid.entity.quantitative.auc" : "AUC(Quantitative)", + "io.sc.engine.mv.result.grid.entity.quantitative.ar" : "AR(Quantitative)", + "io.sc.engine.mv.result.grid.entity.quantitative.ks" : "KS(Quantitative)", + "io.sc.engine.mv.result.grid.entity.qualitative.auc" : "AUC(Qualitative)", + "io.sc.engine.mv.result.grid.entity.qualitative.ar" : "AR(Qualitative)", + "io.sc.engine.mv.result.grid.entity.qualitative.ks" : "KS(Qualitative)", "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", @@ -91,5 +130,53 @@ "io.sc.engine.mv.result.grid.entity.psi" : "PSI", "io.sc.engine.mv.result.grid.entity.scaleValidate" : "Scale Validate", "io.sc.engine.mv.result.grid.entity.chiSquare" : "Chi-Square", - "io.sc.engine.mv.result.grid.entity.binomial" : "Binomial" + "io.sc.engine.mv.result.grid.entity.binomial" : "Binomial", + + "io.sc.engine.mv.result.curve.references" : "References", + "io.sc.engine.mv.result.curve.viewData" : "View {type} Data", + "io.sc.engine.mv.result.curve.scoreCutOffPoint" : "Cut Off Point", + + "io.sc.engine.mv.result.curve.roc.dd" : "(DD)Predict defaults and Actual defaults", + "io.sc.engine.mv.result.curve.roc.dn" : "(DN)Predict normal and Actual defaults", + "io.sc.engine.mv.result.curve.roc.nd" : "(ND)Predict defaults and Actual normal", + "io.sc.engine.mv.result.curve.roc.nn" : "(NN)Predict normal and Actual normal", + "io.sc.engine.mv.result.curve.roc.td" : "(TD)Actual defaults", + "io.sc.engine.mv.result.curve.roc.tn" : "(TN)Actual normal", + "io.sc.engine.mv.result.curve.roc.x" : "(X=ND/TN)False Alarm Rate of defaults", + "io.sc.engine.mv.result.curve.roc.y" : "(Y=DD/TD)Hit Rate of defaults", + + "io.sc.engine.mv.result.curve.cap.ts" : "(TS)Score <= cut off point", + "io.sc.engine.mv.result.curve.cap.tt" : "(TT)Total of defaults", + "io.sc.engine.mv.result.curve.cap.tds" : "(TDS)Score <= cut off point and Actual defaults", + "io.sc.engine.mv.result.curve.cap.tdt" : "(TDT)Actual defaults", + "io.sc.engine.mv.result.curve.cap.x" : "(X)Percent of defaults", + "io.sc.engine.mv.result.curve.cap.y" : "(Y)Percent of total", + + "io.sc.engine.mv.result.curve.ks.n" : "(N)Score <= cut off point and Actual normal", + "io.sc.engine.mv.result.curve.ks.tn" : "(TN)Total of normal", + "io.sc.engine.mv.result.curve.ks.d" : "(D)Score <= cut off point and Actual defaults", + "io.sc.engine.mv.result.curve.ks.td" : "(TD)Actual defaults", + "io.sc.engine.mv.result.curve.ks.y1" : "(Y1)Percent of normal", + "io.sc.engine.mv.result.curve.ks.y2" : "(Y2)Percent of defaults", + + "io.sc.engine.mv.result.chiSquare.level" : "Level", + "io.sc.engine.mv.result.chiSquare.pd" : "PD", + "io.sc.engine.mv.result.chiSquare.count" : "Total Count", + "io.sc.engine.mv.result.chiSquare.defaultCount" : "Default Count", + "io.sc.engine.mv.result.chiSquare.chiSquare" : "ChiSquare Value", + + "io.sc.engine.mv.result.binomial.level" : "Level", + "io.sc.engine.mv.result.binomial.pd" : "PD", + "io.sc.engine.mv.result.binomial.count" : "Total Count", + "io.sc.engine.mv.result.binomial.defaultCount" : "Default Count", + "io.sc.engine.mv.result.binomial.ndAvg" : "Avg of ND", + "io.sc.engine.mv.result.binomial.ndSd" : "SD of ND", + "io.sc.engine.mv.result.binomial.sl" : "Significance Level", + "io.sc.engine.mv.result.binomial.cl" : "Confidence Level", + "io.sc.engine.mv.result.binomial.zUpper" : "Z Upper of ND", + "io.sc.engine.mv.result.binomial.zLower" : "Z Lower of ND", + "io.sc.engine.mv.result.binomial.dUpper" : "Upper of Critical", + "io.sc.engine.mv.result.binomial.dLower" : "Lower of Critical", + "io.sc.engine.mv.result.binomial.leUpper" : "Count of <= Upper", + "io.sc.engine.mv.result.binomial.geLower" : "Count of >= Lower" } \ No newline at end of file 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 eaf1df93..e6055c98 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 @@ -61,11 +61,41 @@ "io.sc.engine.mv.config.executor.grid.title" : "執行器列表", - "io.sc.engine.mv.sample.tabs.goodSample" : "合格樣本", + "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.goodSample.grid.title" : "合格樣本列表", + "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" : "違約確定日期", @@ -84,6 +114,15 @@ "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", @@ -92,5 +131,53 @@ "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.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.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.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" : "事實違約個數是否大於等於下界" } \ No newline at end of file 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 8c023805..9ffe3cff 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 @@ -69,11 +69,42 @@ "io.sc.engine.mv.config.executor.grid.title" : "执行器列表", - "io.sc.engine.mv.sample.tabs.goodSample" : "合格样本", + "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.goodSample.grid.title" : "合格样本列表", + "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.grid.title" : "验证结果列表", "io.sc.engine.mv.result.grid.entity.validateDate" : "验证日期", @@ -90,6 +121,15 @@ "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", @@ -98,5 +138,53 @@ "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.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.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.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" : "事实违约个数是否大于等于下界" } \ No newline at end of file diff --git a/io.sc.engine.mv.frontend/src/views/result/CurveDataDialog.vue b/io.sc.engine.mv.frontend/src/views/result/CurveDataDialog.vue new file mode 100644 index 00000000..9d034004 --- /dev/null +++ b/io.sc.engine.mv.frontend/src/views/result/CurveDataDialog.vue @@ -0,0 +1,83 @@ + + diff --git a/io.sc.engine.mv.frontend/src/views/result/Result.vue b/io.sc.engine.mv.frontend/src/views/result/Result.vue index ee800b14..516b93cc 100644 --- a/io.sc.engine.mv.frontend/src/views/result/Result.vue +++ b/io.sc.engine.mv.frontend/src/views/result/Result.vue @@ -1,119 +1,160 @@ diff --git a/io.sc.engine.mv.frontend/src/views/result/ResultDetailDialog.vue b/io.sc.engine.mv.frontend/src/views/result/ResultDetailDialog.vue new file mode 100644 index 00000000..c5fd0066 --- /dev/null +++ b/io.sc.engine.mv.frontend/src/views/result/ResultDetailDialog.vue @@ -0,0 +1,271 @@ + + + + diff --git a/io.sc.engine.mv.frontend/src/views/sample/Sample.vue b/io.sc.engine.mv.frontend/src/views/sample/Sample.vue index d36617c9..7d71d742 100644 --- a/io.sc.engine.mv.frontend/src/views/sample/Sample.vue +++ b/io.sc.engine.mv.frontend/src/views/sample/Sample.vue @@ -1,169 +1,131 @@ diff --git a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/ShowSampleWebController.java b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/ShowSampleWebController.java index 2f6061b1..ed30f212 100644 --- a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/ShowSampleWebController.java +++ b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/ShowSampleWebController.java @@ -6,7 +6,6 @@ import io.sc.engine.mv.jpa.repository.GeneralSampleHistoryRepository; import io.sc.engine.mv.service.result.GeneralSampleHistoryService; import io.sc.engine.mv.vo.GeneralSampleHistoryVo; import io.sc.platform.mvc.controller.support.RestCrudController; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -16,8 +15,7 @@ import org.springframework.web.bind.annotation.RequestMapping; * */ @Controller -@RequestMapping("/api/mv/sample/goodSample") +@RequestMapping("/api/mv/sample") public class ShowSampleWebController extends RestCrudController { - @Autowired private GeneralSampleHistoryRepository generalSampleHistoryRepository; } diff --git a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/core/BinomialWebController.java b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/coe/BinomialWebController.java similarity index 97% rename from io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/core/BinomialWebController.java rename to io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/coe/BinomialWebController.java index 54be5849..90cc83a9 100644 --- a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/core/BinomialWebController.java +++ b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/coe/BinomialWebController.java @@ -1,4 +1,4 @@ -package io.sc.engine.mv.controller.core; +package io.sc.engine.mv.controller.coe; import io.sc.engine.mv.jpa.entity.CoeBinomialHistory; import io.sc.engine.mv.jpa.repository.CoeBinomialHistoryRepository; diff --git a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/core/ChiSquareWebController.java b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/coe/ChiSquareWebController.java similarity index 97% rename from io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/core/ChiSquareWebController.java rename to io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/coe/ChiSquareWebController.java index 3e3d19fc..0b6344b8 100644 --- a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/core/ChiSquareWebController.java +++ b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/coe/ChiSquareWebController.java @@ -1,4 +1,4 @@ -package io.sc.engine.mv.controller.core; +package io.sc.engine.mv.controller.coe; import io.sc.engine.mv.jpa.entity.CoeChiSquareHistory; import io.sc.engine.mv.jpa.repository.CoeChiSquareHistoryRepository; diff --git a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/sample/DefaultRecordWebController.java b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/sample/DefaultRecordWebController.java new file mode 100644 index 00000000..e30bef5c --- /dev/null +++ b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/sample/DefaultRecordWebController.java @@ -0,0 +1,21 @@ +package io.sc.engine.mv.controller.sample; + +import io.sc.engine.mv.jpa.entity.DefaultRecord; +import io.sc.engine.mv.jpa.entity.id.DefaultRecordId; +import io.sc.engine.mv.jpa.repository.DefaultRecordRepository; +import io.sc.engine.mv.service.sample.DefaultRecordService; +import io.sc.engine.mv.vo.DefaultRecordVo; +import io.sc.platform.mvc.controller.support.RestCrudController; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 评分记录控制器 + * @author wangshaoping + * + */ +@RestController +@RequestMapping("/api/mv/sample/defaultRecord") +public class DefaultRecordWebController extends RestCrudController { + +} diff --git a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/sc/CapWebController.java b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/sc/CapWebController.java index 47b5db58..f6c677d4 100644 --- a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/sc/CapWebController.java +++ b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/sc/CapWebController.java @@ -4,8 +4,10 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.Locale; -import io.sc.engine.mv.jpa.entity.GeneralResultHistory; +import io.sc.engine.mv.echart.Option; +import io.sc.engine.mv.echart.Series; import io.sc.engine.mv.jpa.entity.ScCapHistory; import io.sc.engine.mv.jpa.entity.id.ScCapHistoryId; import io.sc.engine.mv.jpa.repository.GeneralResultHistoryRepository; @@ -13,20 +15,20 @@ import io.sc.engine.mv.jpa.repository.ScCapHistoryRepository; import io.sc.engine.mv.sc.echarts.Coordinates; import io.sc.engine.mv.service.sc.ScCapHistoryService; import io.sc.engine.mv.vo.ScCapHistoryVo; -import io.sc.platform.core.util.CollectionUtil; import io.sc.platform.mvc.controller.support.RestCrudController; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.MessageSource; import org.springframework.dao.DataAccessException; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.PreparedStatementCreator; import org.springframework.jdbc.core.ResultSetExtractor; -import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.servlet.ModelAndView; +import org.springframework.web.bind.annotation.RestController; -@Controller -@RequestMapping("/mv/sc/cap") +@RestController +@RequestMapping("/api/mv/sc/cap") public class CapWebController extends RestCrudController { //模型验证结果DAO @Autowired private GeneralResultHistoryRepository generalResultHistoryRepository; @@ -34,43 +36,41 @@ public class CapWebController extends RestCrudController { //模型验证结果DAO @Autowired private GeneralResultHistoryRepository generalResultHistoryRepository; //jdbc 模板 @Autowired private JdbcTemplate jdbcTemplate; + @Autowired private MessageSource messageSource; - /** - * 查看模型区分能力验证 KS 指标数据UI - * @param modelId 模型标识 - * @param validateDate 验证日期 - * @return UI视图 - */ - @RequestMapping("ksDataView") - public ModelAndView rocDataView( - @RequestParam(name="modelId",required=false) String modelId, - @RequestParam(name="validateDate",required=false) String validateDate + @GetMapping("option") + public Option ks(@RequestParam("modelId") String modelId, + @RequestParam("validateDate") String validateDate, + Locale locale ){ - ModelAndView mv =new ModelAndView("org/wsp/model/validator/view/sc/ksDataView.html"); - mv.addObject("removeNavbar", true); - mv.addObject("modelId", modelId); - mv.addObject("validateDate", validateDate); - mv.addObject("distinctModelIdAndNames", CollectionUtil.arrayList2Map(service.getRepository().findDistinctModelIdAndNames())); - return mv; - } + Coordinates coordinates =getCoordinates(modelId,validateDate); + Option option =new Option(); + option.setAnimation(false); + option.getTitle().setText(messageSource.getMessage("io.sc.engine.mv.curve.ks.title",null,locale)); + option.getTitle().setLeft("center"); + option.getGrid().setShow(true); + option.getGrid().setContainLabel(true); + option.getLegend().setTop(30); + option.getLegend().getData().add(messageSource.getMessage("io.sc.engine.mv.curve.ks.series1.title",null,locale)); + option.getLegend().getData().add(messageSource.getMessage("io.sc.engine.mv.curve.ks.series2.title",null,locale)); + option.getxAxis().setGridIndex(0); + option.getxAxis().setName(messageSource.getMessage("io.sc.engine.mv.curve.ks.xAxis.title",null,locale)); + option.getxAxis().setNameLocation("middle"); + option.getxAxis().setNameGap(30); + option.getxAxis().setSmooth(true); + option.getxAxis().setBoundaryGap(false); + option.getxAxis().getData().addAll(coordinates.getXs()); + option.getyAxis().setName(messageSource.getMessage("io.sc.engine.mv.curve.ks.yAxis.title",null,locale)); + option.getyAxis().setNameLocation("middle"); + option.getyAxis().setNameGap(10); + option.getyAxis().setBoundaryGap(false); - /** - * 获取模型区分能力 KS 曲线的 echarts Options - * @param modelId 模型标识 - * @param validateDate 验证日期 - * @return 模型区分能力 KS 曲线的 echarts Options 的 javascript - * @throws Exception 违例 - */ - @RequestMapping("ks.js") - public ModelAndView ks( - @RequestParam("modelId") String modelId, - @RequestParam("validateDate") String validateDate - ) throws Exception{ - ModelAndView mv =new ModelAndView("org/wsp/model/validator/view/sc/echarts/ks.js"); - GeneralResultHistory resultSummary =generalResultHistoryRepository.findByModelIdAndValidateDate(modelId, validateDate); - mv.addObject("resultSummary", resultSummary); - mv.addObject("coordinates",getCoordinates(modelId,validateDate)); - return mv; + Series series1 =new Series(); + series1.setName(messageSource.getMessage("io.sc.engine.mv.curve.ks.series1.title",null,locale)); + series1.setType("line"); + series1.getData().addAll(coordinates.getY1s()); + + + Series series2 =new Series(); + series2.setName(messageSource.getMessage("io.sc.engine.mv.curve.ks.series2.title",null,locale)); + series2.setType("line"); + series2.getData().addAll(coordinates.getY2s()); + + option.getSeries().add(series1); + option.getSeries().add(series2); + + return option; } /** diff --git a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/sc/RocWebController.java b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/sc/RocWebController.java index fd790137..c637472e 100644 --- a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/sc/RocWebController.java +++ b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/sc/RocWebController.java @@ -1,6 +1,7 @@ package io.sc.engine.mv.controller.sc; -import io.sc.engine.mv.jpa.entity.GeneralResultHistory; +import io.sc.engine.mv.echart.Option; +import io.sc.engine.mv.echart.Series; import io.sc.engine.mv.jpa.entity.ScRocHistory; import io.sc.engine.mv.jpa.entity.id.ScRocHistoryId; import io.sc.engine.mv.jpa.repository.GeneralResultHistoryRepository; @@ -8,67 +9,64 @@ import io.sc.engine.mv.jpa.repository.ScRocHistoryRepository; import io.sc.engine.mv.sc.echarts.Coordinates; import io.sc.engine.mv.service.sc.ScRocHistoryService; import io.sc.engine.mv.vo.ScRocHistoryVo; -import io.sc.platform.core.util.CollectionUtil; import io.sc.platform.mvc.controller.support.RestCrudController; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.MessageSource; import org.springframework.dao.DataAccessException; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.PreparedStatementCreator; import org.springframework.jdbc.core.ResultSetExtractor; -import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.servlet.ModelAndView; +import org.springframework.web.bind.annotation.RestController; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.util.Locale; -@Controller -@RequestMapping("/mv/sc/roc") +@RestController +@RequestMapping("/api/mv/sc/roc") public class RocWebController extends RestCrudController { //模型验证结果DAO @Autowired private GeneralResultHistoryRepository generalResultHistoryRepository; //jdbc 模板 @Autowired private JdbcTemplate jdbcTemplate; + @Autowired private MessageSource messageSource; - /** - * 查看模型区分能力验证 ROC 指标数据UI - * @param modelId 模型标识 - * @param validateDate 验证日期 - * @return UI视图 - */ - @RequestMapping("rocDataView") - public ModelAndView rocDataView( - @RequestParam(name="modelId",required=false) String modelId, - @RequestParam(name="validateDate",required=false) String validateDate + @GetMapping("option") + public Option roc(@RequestParam("modelId") String modelId, + @RequestParam("validateDate") String validateDate, + Locale locale ){ - ModelAndView mv =new ModelAndView("org/wsp/model/validator/view/sc/rocDataView.html"); - mv.addObject("removeNavbar", true); - mv.addObject("modelId", modelId); - mv.addObject("validateDate", validateDate); - mv.addObject("distinctModelIdAndNames", CollectionUtil.arrayList2Map(service.getRepository().findDistinctModelIdAndNames())); - return mv; - } - - /** - * 获取模型区分能力 ROC 曲线的 echarts Options - * @param modelId 模型标识 - * @param validateDate 验证日期 - * @return 模型区分能力 ROC 曲线的 echarts Options 的 javascript - * @throws Exception 违例 - */ - @RequestMapping("roc.js") - public ModelAndView roc( - @RequestParam("modelId") String modelId, - @RequestParam("validateDate") String validateDate - ) throws Exception{ - ModelAndView mv =new ModelAndView("org/wsp/model/validator/view/sc/echarts/roc.js"); - GeneralResultHistory resultSummary =generalResultHistoryRepository.findByModelIdAndValidateDate(modelId, validateDate); - mv.addObject("resultSummary", resultSummary); - mv.addObject("coordinates",getCoordinates(modelId,validateDate)); - return mv; + Coordinates coordinates =getCoordinates(modelId,validateDate); + Option option =new Option(); + option.setAnimation(false); + option.getTitle().setText(messageSource.getMessage("io.sc.engine.mv.curve.roc.title",null,locale)); + option.getTitle().setLeft("center"); + option.getLegend().setTop(30); + option.getLegend().getData().add(messageSource.getMessage("io.sc.engine.mv.performance",null,locale)); + //option.getLegend().getData().add(messageSource.getMessage("io.sc.engine.mv.performance.perfect",null,locale)); + //option.getLegend().getData().add(messageSource.getMessage("io.sc.engine.mv.performance.random",null,locale)); + option.getxAxis().setName(messageSource.getMessage("io.sc.engine.mv.curve.roc.xAxis.title",null,locale)); + option.getxAxis().setNameLocation("middle"); + option.getxAxis().setNameGap(30); + option.getxAxis().setSmooth(true); + option.getxAxis().setBoundaryGap(false); + option.getxAxis().getAxisTick().setInterval(0); + option.getxAxis().getData().addAll(coordinates.getXs()); + option.getyAxis().setName(messageSource.getMessage("io.sc.engine.mv.curve.roc.yAxis.title",null,locale)); + option.getyAxis().setNameLocation("middle"); + option.getyAxis().setNameGap(10); + option.getyAxis().setBoundaryGap(false); + Series series =new Series(); + series.setName(messageSource.getMessage("io.sc.engine.mv.performance",null,locale)); + series.setType("line"); + series.getData().addAll(coordinates.getY1s()); + option.getSeries().add(series); + return option; } /** diff --git a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/st/PsiWebController.java b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/st/PsiWebController.java index 8a8e9d8e..75a5e424 100644 --- a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/st/PsiWebController.java +++ b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/st/PsiWebController.java @@ -1,12 +1,7 @@ package io.sc.engine.mv.controller.st; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.text.DecimalFormat; - -import io.sc.engine.mv.jpa.entity.GeneralResultHistory; +import io.sc.engine.mv.echart.Option; +import io.sc.engine.mv.echart.Series; import io.sc.engine.mv.jpa.entity.StPsiHistory; import io.sc.engine.mv.jpa.entity.id.StPsiHistoryId; import io.sc.engine.mv.jpa.repository.GeneralResultHistoryRepository; @@ -14,47 +9,74 @@ import io.sc.engine.mv.jpa.repository.StPsiHistoryRepository; import io.sc.engine.mv.sc.echarts.XyCoordinates; import io.sc.engine.mv.service.st.StPsiHistoryService; import io.sc.engine.mv.vo.StPsiHistoryVo; -import io.sc.platform.core.util.CollectionUtil; import io.sc.platform.mvc.controller.support.RestCrudController; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.MessageSource; import org.springframework.dao.DataAccessException; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.PreparedStatementCreator; import org.springframework.jdbc.core.ResultSetExtractor; -import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.servlet.ModelAndView; +import org.springframework.web.bind.annotation.RestController; -@Controller -@RequestMapping("/mv/st/psi") +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.text.DecimalFormat; +import java.util.Locale; + +@RestController +@RequestMapping("/api/mv/st/psi") public class PsiWebController extends RestCrudController { @Autowired private GeneralResultHistoryRepository generalResultHistoryRepository; @Autowired private JdbcTemplate jdbcTemplate; + @Autowired private MessageSource messageSource; - @RequestMapping("psiDataView") - public ModelAndView rocKpiDataView( - @RequestParam(name="modelId",required=false) String modelId, - @RequestParam(name="validateDate",required=false) String validateDate + @GetMapping("option") + public Option cap(@RequestParam("modelId") String modelId, + @RequestParam("validateDate") String validateDate, + Locale locale ){ - ModelAndView mv =new ModelAndView("org/wsp/model/validator/view/st/psiDataView.html"); - mv.addObject("removeNavbar", true); - mv.addObject("modelId", modelId); - mv.addObject("validateDate", validateDate); - mv.addObject("distinctModelIdAndNames", CollectionUtil.arrayList2Map(service.getRepository().findDistinctModelIdAndNames())); - return mv; - } + XyCoordinates coordinates =getCoordinates(modelId,validateDate); + Option option =new Option(); + + option.setAnimation(false); + option.getTitle().setText(messageSource.getMessage("io.sc.engine.mv.curve.psi.title",null,locale)); + option.getTitle().setLeft("center"); + option.getGrid().setShow(true); + option.getGrid().setContainLabel(true); + option.getLegend().setTop(30); + option.getLegend().getData().add(messageSource.getMessage("io.sc.engine.mv.curve.psi.series1.title",null,locale)); + option.getLegend().getData().add(messageSource.getMessage("io.sc.engine.mv.curve.psi.series2.title",null,locale)); + option.getxAxis().setGridIndex(0); + option.getxAxis().setName(messageSource.getMessage("io.sc.engine.mv.curve.psi.xAxis.title",null,locale)); + option.getxAxis().setNameLocation("middle"); + option.getxAxis().setNameGap(30); + option.getxAxis().setSmooth(true); + option.getxAxis().setBoundaryGap(false); + option.getxAxis().getData().addAll(coordinates.getXs()); + option.getyAxis().setName(messageSource.getMessage("io.sc.engine.mv.curve.psi.yAxis.title",null,locale)); + option.getyAxis().setNameLocation("middle"); + option.getyAxis().setNameGap(10); + option.getyAxis().setBoundaryGap(false); + + Series series1 =new Series(); + series1.setName(messageSource.getMessage("io.sc.engine.mv.curve.psi.series1.title",null,locale)); + series1.setType("bar"); + series1.getData().addAll(coordinates.getY1s()); + + + Series series2 =new Series(); + series2.setName(messageSource.getMessage("io.sc.engine.mv.curve.psi.series2.title",null,locale)); + series2.setType("bar"); + series2.getData().addAll(coordinates.getY2s()); - @RequestMapping("psi.js") - public ModelAndView cap( - @RequestParam("modelId") String modelId, - @RequestParam("validateDate") String validateDate - ) throws Exception{ - ModelAndView mv =new ModelAndView("org/wsp/model/validator/view/st/echarts/psi.js"); - GeneralResultHistory resultSummary =generalResultHistoryRepository.findByModelIdAndValidateDate(modelId, validateDate); - mv.addObject("resultSummary", resultSummary); - mv.addObject("coordinates",getCoordinates(modelId,validateDate)); - return mv; + option.getSeries().add(series1); + option.getSeries().add(series2); + return option; } private XyCoordinates getCoordinates(final String modelId, final String validateDate){ diff --git a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/echart/Axis.java b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/echart/Axis.java new file mode 100644 index 00000000..40ab76fd --- /dev/null +++ b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/echart/Axis.java @@ -0,0 +1,79 @@ +package io.sc.engine.mv.echart; + +import java.util.ArrayList; +import java.util.List; + +public class Axis { + private int gridIndex; + private String name; + private String nameLocation; + private int nameGap; + private boolean smooth; + private boolean boundaryGap; + private AxisTick axisTick =new AxisTick(); + private List data =new ArrayList<>(); + + public int getGridIndex() { + return gridIndex; + } + + public void setGridIndex(int gridIndex) { + this.gridIndex = gridIndex; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getNameLocation() { + return nameLocation; + } + + public void setNameLocation(String nameLocation) { + this.nameLocation = nameLocation; + } + + public int getNameGap() { + return nameGap; + } + + public void setNameGap(int nameGap) { + this.nameGap = nameGap; + } + + public boolean isSmooth() { + return smooth; + } + + public void setSmooth(boolean smooth) { + this.smooth = smooth; + } + + public boolean isBoundaryGap() { + return boundaryGap; + } + + public void setBoundaryGap(boolean boundaryGap) { + this.boundaryGap = boundaryGap; + } + + public AxisTick getAxisTick() { + return axisTick; + } + + public void setAxisTick(AxisTick axisTick) { + this.axisTick = axisTick; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } +} diff --git a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/echart/AxisTick.java b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/echart/AxisTick.java new file mode 100644 index 00000000..3d1b5c97 --- /dev/null +++ b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/echart/AxisTick.java @@ -0,0 +1,13 @@ +package io.sc.engine.mv.echart; + +public class AxisTick { + private int interval; + + public int getInterval() { + return interval; + } + + public void setInterval(int interval) { + this.interval = interval; + } +} diff --git a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/echart/Grid.java b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/echart/Grid.java new file mode 100644 index 00000000..6147cef3 --- /dev/null +++ b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/echart/Grid.java @@ -0,0 +1,22 @@ +package io.sc.engine.mv.echart; + +public class Grid { + private boolean show =true; + private boolean containLabel =true; + + public boolean isShow() { + return show; + } + + public void setShow(boolean show) { + this.show = show; + } + + public boolean getContainLabel() { + return containLabel; + } + + public void setContainLabel(boolean containLabel) { + this.containLabel = containLabel; + } +} diff --git a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/echart/Legend.java b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/echart/Legend.java new file mode 100644 index 00000000..003fc7d5 --- /dev/null +++ b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/echart/Legend.java @@ -0,0 +1,25 @@ +package io.sc.engine.mv.echart; + +import java.util.ArrayList; +import java.util.List; + +public class Legend { + private int top; + private List data =new ArrayList<>(); + + public int getTop() { + return top; + } + + public void setTop(int top) { + this.top = top; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } +} diff --git a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/echart/Option.java b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/echart/Option.java new file mode 100644 index 00000000..d1413524 --- /dev/null +++ b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/echart/Option.java @@ -0,0 +1,79 @@ +package io.sc.engine.mv.echart; + +import java.util.ArrayList; +import java.util.List; + +public class Option { + private boolean animation; + private Title title =new Title(); + private Grid grid =new Grid(); + private Legend legend =new Legend(); + private Tooltip tooltip =new Tooltip(); + private Axis xAxis =new Axis(); + private Axis yAxis=new Axis(); + private List series =new ArrayList<>(); + + public boolean isAnimation() { + return animation; + } + + public void setAnimation(boolean animation) { + this.animation = animation; + } + + public Title getTitle() { + return title; + } + + public void setTitle(Title title) { + this.title = title; + } + + public Grid getGrid() { + return grid; + } + + public void setGrid(Grid grid) { + this.grid = grid; + } + + public Legend getLegend() { + return legend; + } + + public void setLegend(Legend legend) { + this.legend = legend; + } + + public Tooltip getTooltip() { + return tooltip; + } + + public void setTooltip(Tooltip tooltip) { + this.tooltip = tooltip; + } + + public Axis getxAxis() { + return xAxis; + } + + public void setxAxis(Axis xAxis) { + this.xAxis = xAxis; + } + + public Axis getyAxis() { + return yAxis; + } + + public void setyAxis(Axis yAxis) { + this.yAxis = yAxis; + } + + public List getSeries() { + return series; + } + + public void setSeries(List series) { + this.series = series; + } +} diff --git a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/echart/Series.java b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/echart/Series.java new file mode 100644 index 00000000..d1b50bbd --- /dev/null +++ b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/echart/Series.java @@ -0,0 +1,43 @@ +package io.sc.engine.mv.echart; + +import java.util.ArrayList; +import java.util.List; + +public class Series { + private String name; + private String type; + private int barWidth; + private List data=new ArrayList<>(); + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public int getBarWidth() { + return barWidth; + } + + public void setBarWidth(int barWidth) { + this.barWidth = barWidth; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } +} diff --git a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/echart/Title.java b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/echart/Title.java new file mode 100644 index 00000000..01b1efb7 --- /dev/null +++ b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/echart/Title.java @@ -0,0 +1,22 @@ +package io.sc.engine.mv.echart; + +public class Title { + private String text; + private String left; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getLeft() { + return left; + } + + public void setLeft(String left) { + this.left = left; + } +} diff --git a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/echart/Tooltip.java b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/echart/Tooltip.java new file mode 100644 index 00000000..b6f1818f --- /dev/null +++ b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/echart/Tooltip.java @@ -0,0 +1,4 @@ +package io.sc.engine.mv.echart; + +public class Tooltip { +} diff --git a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/entity/DefaultRecord.java b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/entity/DefaultRecord.java new file mode 100644 index 00000000..f0a2f5e2 --- /dev/null +++ b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/entity/DefaultRecord.java @@ -0,0 +1,52 @@ +package io.sc.engine.mv.jpa.entity; + +import io.sc.engine.mv.jpa.entity.id.DefaultRecordId; +import io.sc.engine.mv.jpa.entity.id.ScoreRecordId; +import io.sc.engine.mv.vo.DefaultRecordVo; +import io.sc.engine.mv.vo.ScoreRecordVo; +import io.sc.platform.orm.entity.BaseEntity; + +import javax.persistence.*; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 评分记录实体类 + * + */ +@Entity +@Table(name="MV_DEFAULT_RECORD") +@IdClass(DefaultRecordId.class) +public class DefaultRecord extends BaseEntity { + @Id + @Column(name="FD_CUSTOM_ID") + private String customId; + + @Id + @Column(name="FD_DEFAULT_CONFIRM_DATE") + private Date defaultConfirmDate; + + @Override + public DefaultRecordVo toVo() { + DefaultRecordVo vo =new DefaultRecordVo(); + vo.setCustomId(this.getCustomId()); + vo.setDefaultConfirmDate(this.getDefaultConfirmDate()); + return vo; + } + + public String getCustomId() { + return customId; + } + + public void setCustomId(String customId) { + this.customId = customId; + } + + public Date getDefaultConfirmDate() { + return defaultConfirmDate; + } + + public void setDefaultConfirmDate(Date defaultConfirmDate) { + this.defaultConfirmDate = defaultConfirmDate; + } +} diff --git a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/entity/ScoreRecord.java b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/entity/ScoreRecord.java index 9af789b7..cac3b74b 100644 --- a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/entity/ScoreRecord.java +++ b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/entity/ScoreRecord.java @@ -4,10 +4,7 @@ import io.sc.engine.mv.jpa.entity.id.ScoreRecordId; import io.sc.engine.mv.vo.ScoreRecordVo; import io.sc.platform.orm.entity.BaseEntity; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.IdClass; -import javax.persistence.Table; +import javax.persistence.*; import java.math.BigDecimal; import java.util.Date; @@ -19,12 +16,14 @@ import java.util.Date; @Table(name="MV_SCORE_RECORD") @IdClass(ScoreRecordId.class) public class ScoreRecord extends BaseEntity { + @Id @Column(name="FD_CUSTOM_ID") private String customId; @Column(name="FD_CUSTOM_NAME") private String customName; + @Id @Column(name="FD_MODEL_ID") private String modelId; @@ -46,6 +45,7 @@ public class ScoreRecord extends BaseEntity { @Column(name="FD_LEVEL") private String level; + @Id @Column(name="FD_SCORE_BEGIN_DATE") private Date scoreBeginDate; diff --git a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/entity/id/DefaultRecordId.java b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/entity/id/DefaultRecordId.java new file mode 100644 index 00000000..e3e9daab --- /dev/null +++ b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/entity/id/DefaultRecordId.java @@ -0,0 +1,39 @@ +package io.sc.engine.mv.jpa.entity.id; + +import java.io.Serializable; +import java.util.Date; +import java.util.Objects; + +public class DefaultRecordId implements Serializable{ + private String customId; + private Date defaultConfirmDate; + + public String getCustomId() { + return customId; + } + + public void setCustomId(String customId) { + this.customId = customId; + } + + public Date getDefaultConfirmDate() { + return defaultConfirmDate; + } + + public void setDefaultConfirmDate(Date defaultConfirmDate) { + this.defaultConfirmDate = defaultConfirmDate; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + DefaultRecordId that = (DefaultRecordId) o; + return Objects.equals(customId, that.customId) && Objects.equals(defaultConfirmDate, that.defaultConfirmDate); + } + + @Override + public int hashCode() { + return Objects.hash(customId, defaultConfirmDate); + } +} diff --git a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/repository/DefaultRecordRepository.java b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/repository/DefaultRecordRepository.java new file mode 100644 index 00000000..fe42eb4c --- /dev/null +++ b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/repository/DefaultRecordRepository.java @@ -0,0 +1,11 @@ +package io.sc.engine.mv.jpa.repository; + +import io.sc.engine.mv.jpa.entity.DefaultRecord; +import io.sc.engine.mv.jpa.entity.ScoreRecord; +import io.sc.engine.mv.jpa.entity.id.DefaultRecordId; +import io.sc.engine.mv.jpa.entity.id.ScoreRecordId; +import io.sc.platform.orm.repository.DaoRepository; + +public interface DefaultRecordRepository extends DaoRepository { + +} diff --git a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/result/impl/GeneralResultHistoryServiceImpl.java b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/result/impl/GeneralResultHistoryServiceImpl.java index bb1301a9..ae5f066f 100644 --- a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/result/impl/GeneralResultHistoryServiceImpl.java +++ b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/result/impl/GeneralResultHistoryServiceImpl.java @@ -9,5 +9,8 @@ import org.springframework.stereotype.Service; @Service public class GeneralResultHistoryServiceImpl extends DaoServiceImpl implements GeneralResultHistoryService { - + @Override + public String[] getDefaultSortBy() { + return new String[]{"-validateDate"}; + } } diff --git a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/sample/DefaultRecordService.java b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/sample/DefaultRecordService.java new file mode 100644 index 00000000..672cd0f9 --- /dev/null +++ b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/sample/DefaultRecordService.java @@ -0,0 +1,9 @@ +package io.sc.engine.mv.service.sample; + +import io.sc.engine.mv.jpa.entity.DefaultRecord; +import io.sc.engine.mv.jpa.entity.id.DefaultRecordId; +import io.sc.engine.mv.jpa.repository.DefaultRecordRepository; +import io.sc.platform.orm.service.DaoService; + +public interface DefaultRecordService extends DaoService { +} diff --git a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/sample/impl/DefaultRecordServiceImpl.java b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/sample/impl/DefaultRecordServiceImpl.java new file mode 100644 index 00000000..2dc2650b --- /dev/null +++ b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/sample/impl/DefaultRecordServiceImpl.java @@ -0,0 +1,12 @@ +package io.sc.engine.mv.service.sample.impl; + +import io.sc.engine.mv.jpa.entity.DefaultRecord; +import io.sc.engine.mv.jpa.entity.id.DefaultRecordId; +import io.sc.engine.mv.jpa.repository.DefaultRecordRepository; +import io.sc.engine.mv.service.sample.DefaultRecordService; +import io.sc.platform.orm.service.impl.DaoServiceImpl; +import org.springframework.stereotype.Service; + +@Service +public class DefaultRecordServiceImpl extends DaoServiceImpl implements DefaultRecordService { +} diff --git a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/vo/DefaultRecordVo.java b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/vo/DefaultRecordVo.java new file mode 100644 index 00000000..1bd09b8d --- /dev/null +++ b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/vo/DefaultRecordVo.java @@ -0,0 +1,29 @@ +package io.sc.engine.mv.vo; + +import io.sc.platform.orm.api.vo.AuditorVo; +import io.sc.platform.orm.api.vo.BaseVo; + +import java.math.BigDecimal; +import java.util.Date; + + +public class DefaultRecordVo extends BaseVo { + private String customId; + private Date defaultConfirmDate; + + public String getCustomId() { + return customId; + } + + public void setCustomId(String customId) { + this.customId = customId; + } + + public Date getDefaultConfirmDate() { + return defaultConfirmDate; + } + + public void setDefaultConfirmDate(Date defaultConfirmDate) { + this.defaultConfirmDate = defaultConfirmDate; + } +} diff --git a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/vo/ScoreRecordVo.java b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/vo/ScoreRecordVo.java index 97f73ece..cd9e7e7d 100644 --- a/io.sc.engine.mv/src/main/java/io/sc/engine/mv/vo/ScoreRecordVo.java +++ b/io.sc.engine.mv/src/main/java/io/sc/engine/mv/vo/ScoreRecordVo.java @@ -1,12 +1,12 @@ package io.sc.engine.mv.vo; -import io.sc.platform.orm.api.vo.AuditorVo; +import io.sc.platform.orm.api.vo.BaseVo; import java.math.BigDecimal; import java.util.Date; -public class ScoreRecordVo extends AuditorVo { +public class ScoreRecordVo extends BaseVo { private String customId; private String customName; private String modelId; diff --git a/io.sc.engine.mv/src/main/resources/io/sc/engine/mv/i18n/enums.properties b/io.sc.engine.mv/src/main/resources/io/sc/engine/mv/i18n/enums.properties index 3715608e..836a8b62 100644 --- a/io.sc.engine.mv/src/main/resources/io/sc/engine/mv/i18n/enums.properties +++ b/io.sc.engine.mv/src/main/resources/io/sc/engine/mv/i18n/enums.properties @@ -1,2 +1,11 @@ io.sc.engine.mv.ModelType.IMPORT_FROM_SCORE_RECORD=Import From Score Record -io.sc.engine.mv.ModelType.MANUAL=Manual \ No newline at end of file +io.sc.engine.mv.ModelType.MANUAL=Manual + +io.sc.engine.mv.ExecuteMode.MANUAL=Manual +io.sc.engine.mv.ExecuteMode.BATCH=Batch + +io.sc.engine.mv.ScaleType.SINGLE=Single +io.sc.engine.mv.ScaleType.MULTIPLE=Multiple + +io.sc.engine.mv.CoeResult.PASS=Pass +io.sc.engine.mv.CoeResult.NOT_PASS=Not Pass \ No newline at end of file diff --git a/io.sc.engine.mv/src/main/resources/io/sc/engine/mv/i18n/enums_tw_CN.properties b/io.sc.engine.mv/src/main/resources/io/sc/engine/mv/i18n/enums_tw_CN.properties index 82b01b05..67eff52a 100644 --- a/io.sc.engine.mv/src/main/resources/io/sc/engine/mv/i18n/enums_tw_CN.properties +++ b/io.sc.engine.mv/src/main/resources/io/sc/engine/mv/i18n/enums_tw_CN.properties @@ -1,2 +1,11 @@ io.sc.engine.mv.ModelType.IMPORT_FROM_SCORE_RECORD=\u5F9E\u8A55\u5206\u8A18\u9304\u8868\u4E2D\u5C0E\u5165 -io.sc.engine.mv.ModelType.MANUAL=\u624B\u5DE5\u5275\u5EFA \ No newline at end of file +io.sc.engine.mv.ModelType.MANUAL=\u624B\u5DE5\u5275\u5EFA + +io.sc.engine.mv.ExecuteMode.MANUAL=\u624B\u5DE5 +io.sc.engine.mv.ExecuteMode.BATCH=\u8DD1\u6279 + +io.sc.engine.mv.ScaleType.SINGLE=\u55AE\u500B +io.sc.engine.mv.ScaleType.MULTIPLE=\u591A\u500B + +io.sc.engine.mv.CoeResult.PASS=\u901A\u904E +io.sc.engine.mv.CoeResult.NOT_PASS=\u672A\u901A\u904E \ No newline at end of file diff --git a/io.sc.engine.mv/src/main/resources/io/sc/engine/mv/i18n/enums_zh_CN.properties b/io.sc.engine.mv/src/main/resources/io/sc/engine/mv/i18n/enums_zh_CN.properties index d1b1b0e8..678bd43e 100644 --- a/io.sc.engine.mv/src/main/resources/io/sc/engine/mv/i18n/enums_zh_CN.properties +++ b/io.sc.engine.mv/src/main/resources/io/sc/engine/mv/i18n/enums_zh_CN.properties @@ -1,2 +1,11 @@ io.sc.engine.mv.ModelType.IMPORT_FROM_SCORE_RECORD=\u4ECE\u8BC4\u5206\u8BB0\u5F55\u8868\u4E2D\u5BFC\u5165 -io.sc.engine.mv.ModelType.MANUAL=\u624B\u5DE5\u521B\u5EFA \ No newline at end of file +io.sc.engine.mv.ModelType.MANUAL=\u624B\u5DE5\u521B\u5EFA + +io.sc.engine.mv.ExecuteMode.MANUAL=\u624B\u5DE5 +io.sc.engine.mv.ExecuteMode.BATCH=\u8DD1\u6279 + +io.sc.engine.mv.ScaleType.SINGLE=\u5355\u4E2A +io.sc.engine.mv.ScaleType.MULTIPLE=\u591A\u4E2A + +io.sc.engine.mv.CoeResult.PASS=\u901A\u8FC7 +io.sc.engine.mv.CoeResult.NOT_PASS=\u672A\u901A\u8FC7 \ No newline at end of file diff --git a/io.sc.engine.mv/src/main/resources/io/sc/engine/mv/i18n/messages.properties b/io.sc.engine.mv/src/main/resources/io/sc/engine/mv/i18n/messages.properties index 064a6ec0..906da9a6 100644 --- a/io.sc.engine.mv/src/main/resources/io/sc/engine/mv/i18n/messages.properties +++ b/io.sc.engine.mv/src/main/resources/io/sc/engine/mv/i18n/messages.properties @@ -8,8 +8,8 @@ io.sc.engine.mv.executor.ResultExecutor.description=save the result and runtime io.sc.engine.mv.executor.ResultInitExecutor.name=Result Initializer io.sc.engine.mv.executor.ResultInitExecutor.description=clear previous result -io.sc.engine.mv.executor.SampleCountExecutor.name=Good Sample Counter -io.sc.engine.mv.executor.SampleCountExecutor.description=count the score records and default records +io.sc.engine.mv.executor.SampleCountExecutor.name=Sample Counter +io.sc.engine.mv.executor.SampleCountExecutor.description=count the good and default samples io.sc.engine.mv.executor.SampleExecutor.name=Good Sample Handler io.sc.engine.mv.executor.SampleExecutor.description=generate good sample @@ -49,3 +49,29 @@ io.sc.engine.mv.executor.CoeChiSquareExecutor.description=chi-square validater io.sc.engine.mv.executor.CoeBinomialExecutor.name=Binomial io.sc.engine.mv.executor.CoeBinomialExecutor.description=binomial validater + +io.sc.engine.mv.performance=Model Performance +io.sc.engine.mv.performance.random=Random Model Performance +io.sc.engine.mv.performance.perfect=Perfect Model Performance +io.sc.engine.mv.curve.roc.title=ROC Curve +io.sc.engine.mv.curve.roc.xAxis.title=False Alarm Rate +io.sc.engine.mv.curve.roc.yAxis.title=Hit Rate +io.sc.engine.mv.curve.roc.series.title=Current Model +io.sc.engine.mv.curve.cap.title=CAP Curve +io.sc.engine.mv.curve.cap.xAxis.title=Percent of Sample +io.sc.engine.mv.curve.cap.yAxis.title=Percent of Default +io.sc.engine.mv.curve.cap.series.title=Current Model +io.sc.engine.mv.curve.ks.title=KS Curve +io.sc.engine.mv.curve.ks.xAxis.title=Score +io.sc.engine.mv.curve.ks.yAxis.title=Rate +io.sc.engine.mv.curve.ks.series1.title=Normal Sample Rate +io.sc.engine.mv.curve.ks.series2.title=Default Sample Rate +io.sc.engine.mv.curve.psi.title=PSI Bar +io.sc.engine.mv.curve.psi.xAxis.title=Score Segment +io.sc.engine.mv.curve.psi.yAxis.title=Sample Count +io.sc.engine.mv.curve.psi.series1.title=Consult +io.sc.engine.mv.curve.psi.series2.title=Application + + + + diff --git a/io.sc.engine.mv/src/main/resources/io/sc/engine/mv/i18n/messages_tw_CN.properties b/io.sc.engine.mv/src/main/resources/io/sc/engine/mv/i18n/messages_tw_CN.properties new file mode 100644 index 00000000..82d514b1 --- /dev/null +++ b/io.sc.engine.mv/src/main/resources/io/sc/engine/mv/i18n/messages_tw_CN.properties @@ -0,0 +1,73 @@ +# executor +io.sc.engine.mv.executor.DatabaseInitExecutor.name=\u6578\u64DA\u5EAB\u521D\u59CB\u5316\u57F7\u884C\u5668 +io.sc.engine.mv.executor.DatabaseInitExecutor.description=\u5728\u6A21\u578B\u9A57\u8B49\u57F7\u884C\u524D\u5C0D\u6578\u64DA\u5EAB\u9032\u884C\u5FC5\u8981\u7684\u521D\u59CB\u5316\u64CD\u4F5C + +io.sc.engine.mv.executor.ResultExecutor.name=\u6A21\u578B\u9A57\u8B49\u7D50\u679C\u57F7\u884C\u5668 +io.sc.engine.mv.executor.ResultExecutor.description=\u5C07\u6A21\u578B\u9A57\u8B49\u7D50\u679C\u5B58\u5165\u9A57\u8B49\u7D50\u679C\u6B77\u53F2\u8868\u4E2D,\u4E26\u5C07\u57F7\u884C\u74B0\u5883\u548C\u53C3\u6578\u4FDD\u5B58 + +io.sc.engine.mv.executor.ResultInitExecutor.name=\u6A21\u578B\u9A57\u8B49\u7D50\u679C\u521D\u59CB\u5316\u57F7\u884C\u5668 +io.sc.engine.mv.executor.ResultInitExecutor.description=\u6E05\u7A7A\u4E0A\u4E00\u6B21\u904B\u884C\u7684\u6A21\u578B\u9A57\u8B49\u7D50\u679C,\u70BA\u672C\u6B21\u6A21\u578B\u9A57\u8B49\u7D50\u679C\u6E96\u5099\u521D\u59CB\u5316\u74B0\u5883 + +io.sc.engine.mv.executor.SampleCountExecutor.name=\u6A23\u672C\u6578\u64DA\u7D71\u8A08\u57F7\u884C\u5668 +io.sc.engine.mv.executor.SampleCountExecutor.description=\u7D71\u8A08\u5408\u683C\u6A23\u672C\u7684\u500B\u6578\u548C\u9055\u7D04\u6A23\u672C\u500B\u6578 + +io.sc.engine.mv.executor.SampleExecutor.name=\u5408\u683C\u6A23\u672C\u8655\u7406\u57F7\u884C\u5668 +io.sc.engine.mv.executor.SampleExecutor.description=\u751F\u6210\u5408\u683C\u6A23\u672C\u96C6 + +io.sc.engine.mv.executor.ScCapExecutor.name=\u6A21\u578B\u5340\u5206\u80FD\u529B\u9A57\u8B49,CAP \u66F2\u7DDA\u57F7\u884C\u5668(\u7E3D\u9AD4) +io.sc.engine.mv.executor.ScCapExecutor.description=\u9A57\u8B49\u6A21\u578B\u5340\u5206\u80FD\u529B,\u751F\u6210 CAP \u66F2\u7DDA(\u7E3D\u9AD4),\u540C\u6642\u8A08\u7B97 AR \u503C(\u7E3D\u9AD4) + +io.sc.engine.mv.executor.ScCapQualitativeExecutor.name=\u6A21\u578B\u5340\u5206\u80FD\u529B\u9A57\u8B49,CAP \u66F2\u7DDA\u57F7\u884C\u5668(\u5B9A\u6027) +io.sc.engine.mv.executor.ScCapQualitativeExecutor.description=\u9A57\u8B49\u6A21\u578B\u5340\u5206\u80FD\u529B,\u751F\u6210 CAP \u66F2\u7DDA(\u5B9A\u6027),\u540C\u6642\u8A08\u7B97 AR \u503C(\u5B9A\u6027) + +io.sc.engine.mv.executor.ScCapQuantitativeExecutor.name=\u6A21\u578B\u5340\u5206\u80FD\u529B\u9A57\u8B49,CAP \u66F2\u7DDA\u57F7\u884C\u5668(\u5B9A\u91CF) +io.sc.engine.mv.executor.ScCapQuantitativeExecutor.description=\u9A57\u8B49\u6A21\u578B\u5340\u5206\u80FD\u529B,\u751F\u6210 CAP \u66F2\u7DDA(\u5B9A\u91CF),\u540C\u6642\u8A08\u7B97 AR \u503C(\u5B9A\u91CF) + +io.sc.engine.mv.executor.ScKsExecutor.name=\u6A21\u578B\u5340\u5206\u80FD\u529B\u9A57\u8B49,KS \u66F2\u7DDA\u57F7\u884C\u5668(\u7E3D\u9AD4) +io.sc.engine.mv.executor.ScKsExecutor.description=\u9A57\u8B49\u6A21\u578B\u5340\u5206\u80FD\u529B,\u751F\u6210 KS \u66F2\u7DDA(\u7E3D\u9AD4),\u540C\u6642\u8A08\u7B97 KS \u503C(\u7E3D\u9AD4) + +io.sc.engine.mv.executor.ScKsQualitativeExecutor.name=\u6A21\u578B\u5340\u5206\u80FD\u529B\u9A57\u8B49,KS \u66F2\u7DDA\u57F7\u884C\u5668(\u5B9A\u6027) +io.sc.engine.mv.executor.ScKsQualitativeExecutor.description=\u9A57\u8B49\u6A21\u578B\u5340\u5206\u80FD\u529B,\u751F\u6210 KS \u66F2\u7DDA(\u5B9A\u6027),\u540C\u6642\u8A08\u7B97 KS \u503C(\u5B9A\u6027) + +io.sc.engine.mv.executor.ScKsQuantitativeExecutor.name=\u6A21\u578B\u5340\u5206\u80FD\u529B\u9A57\u8B49,KS \u66F2\u7DDA\u57F7\u884C\u5668(\u5B9A\u91CF) +io.sc.engine.mv.executor.ScKsQuantitativeExecutor.description=\u9A57\u8B49\u6A21\u578B\u5340\u5206\u80FD\u529B,\u751F\u6210 KS \u66F2\u7DDA(\u5B9A\u91CF),\u540C\u6642\u8A08\u7B97 KS \u503C(\u5B9A\u91CF) + +io.sc.engine.mv.executor.ScRocExecutor.name=\u6A21\u578B\u5340\u5206\u80FD\u529B\u9A57\u8B49,ROC \u66F2\u7DDA\u57F7\u884C\u5668(\u7E3D\u9AD4) +io.sc.engine.mv.executor.ScRocExecutor.description=\u9A57\u8B49\u6A21\u578B\u5340\u5206\u80FD\u529B,\u751F\u6210 ROC \u66F2\u7DDA(\u7E3D\u9AD4),\u540C\u6642\u8A08\u7B97 AUC \u503C(\u7E3D\u9AD4) + +io.sc.engine.mv.executor.ScRocQualitativeExecutor.name=\u6A21\u578B\u5340\u5206\u80FD\u529B\u9A57\u8B49,ROC \u66F2\u7DDA\u57F7\u884C\u5668(\u5B9A\u6027) +io.sc.engine.mv.executor.ScRocQualitativeExecutor.description=\u9A57\u8B49\u6A21\u578B\u5340\u5206\u80FD\u529B,\u751F\u6210 ROC \u66F2\u7DDA(\u5B9A\u6027),\u540C\u6642\u8A08\u7B97 AUC \u503C(\u5B9A\u6027) + +io.sc.engine.mv.executor.ScRocQuantitativeExecutor.name=\u6A21\u578B\u5340\u5206\u80FD\u529B\u9A57\u8B49,ROC \u66F2\u7DDA\u57F7\u884C\u5668(\u5B9A\u91CF) +io.sc.engine.mv.executor.ScRocQuantitativeExecutor.description=\u9A57\u8B49\u6A21\u578B\u5340\u5206\u80FD\u529B,\u751F\u6210 ROC \u66F2\u7DDA(\u5B9A\u91CF),\u540C\u6642\u8A08\u7B97 AUC \u503C(\u5B9A\u91CF) + +io.sc.engine.mv.executor.StPsiExecutor.name=\u6A21\u578B\u7A69\u5B9A\u6027\u9A57\u8B49,\u6A23\u672C\u7FA4\u9AD4\u7A69\u5B9A\u6027\u5831\u544A\u57F7\u884C\u5668 +io.sc.engine.mv.executor.StPsiExecutor.description=\u751F\u6210\u6A23\u672C\u7FA4\u9AD4\u7A69\u5B9A\u6027\u5831\u544A,\u540C\u6642\u8A08\u7B97 PSI \u503C + +io.sc.engine.mv.executor.CoeChiSquareExecutor.name=\u6A21\u578B\u4F30\u503C\u6E96\u78BA\u6027\u9A57\u8B49(\u5361\u65B9\u6AA2\u9A57) +io.sc.engine.mv.executor.CoeChiSquareExecutor.description=\u8A08\u7B97\u5361\u65B9\u6AA2\u9A57\u503C + +io.sc.engine.mv.executor.CoeBinomialExecutor.name=\u6A21\u578B\u4F30\u503C\u6E96\u78BA\u6027\u9A57\u8B49(\u4E8C\u9805\u6AA2\u9A57) +io.sc.engine.mv.executor.CoeBinomialExecutor.description=\u4E8C\u9805\u6AA2\u9A57\u503C + +io.sc.engine.mv.performance=\u6A21\u578B\u8868\u73FE +io.sc.engine.mv.performance.random=\u96A8\u6A5F\u6A21\u578B\u8868\u73FE +io.sc.engine.mv.performance.perfect=\u5B8C\u7F8E\u6A21\u578B\u8868\u73FE +io.sc.engine.mv.curve.roc.title=ROC \u66F2\u7DDA +io.sc.engine.mv.curve.roc.xAxis.title=\u8AA4\u8B66\u7387 +io.sc.engine.mv.curve.roc.yAxis.title=\u547D\u4E2D\u7387 +io.sc.engine.mv.curve.roc.series.title=\u6A21\u578B\u8868\u73FE +io.sc.engine.mv.curve.cap.title=CAP \u66F2\u7DDA +io.sc.engine.mv.curve.cap.xAxis.title=\u6A23\u672C\u500B\u6578\u767E\u5206\u6BD4 +io.sc.engine.mv.curve.cap.yAxis.title=\u9055\u7D04\u6A23\u672C\u500B\u6578\u767E\u5206\u6BD4 +io.sc.engine.mv.curve.cap.series.title=\u6A21\u578B\u8868\u73FE +io.sc.engine.mv.curve.ks.title=KS \u66F2\u7DDA +io.sc.engine.mv.curve.ks.xAxis.title=\u8A55\u5206 +io.sc.engine.mv.curve.ks.yAxis.title=\u6A23\u672C\u5360\u6BD4 +io.sc.engine.mv.curve.ks.series1.title=\u6B63\u5E38\u6A23\u672C\u5360\u6BD4 +io.sc.engine.mv.curve.ks.series2.title=\u9055\u7D04\u6A23\u672C\u5360\u6BD4 +io.sc.engine.mv.curve.psi.title=PSI \u67F1\u72C0\u5716 +io.sc.engine.mv.curve.psi.xAxis.title=\u5206\u6578\u6BB5 +io.sc.engine.mv.curve.psi.yAxis.title=\u6A23\u672C\u6578 +io.sc.engine.mv.curve.psi.series1.title=\u54A8\u8A62\u5EFA\u6A21\u6642 +io.sc.engine.mv.curve.psi.series2.title=\u6A21\u578B\u61C9\u7528\u6642 diff --git a/io.sc.engine.mv/src/main/resources/io/sc/engine/mv/i18n/messages_zh_CN.properties b/io.sc.engine.mv/src/main/resources/io/sc/engine/mv/i18n/messages_zh_CN.properties index 1c850775..c961e8e3 100644 --- a/io.sc.engine.mv/src/main/resources/io/sc/engine/mv/i18n/messages_zh_CN.properties +++ b/io.sc.engine.mv/src/main/resources/io/sc/engine/mv/i18n/messages_zh_CN.properties @@ -8,8 +8,8 @@ io.sc.engine.mv.executor.ResultExecutor.description=\u5C06\u6A21\u578B\u9A8C\u8B io.sc.engine.mv.executor.ResultInitExecutor.name=\u6A21\u578B\u9A8C\u8BC1\u7ED3\u679C\u521D\u59CB\u5316\u6267\u884C\u5668 io.sc.engine.mv.executor.ResultInitExecutor.description=\u6E05\u7A7A\u4E0A\u4E00\u6B21\u8FD0\u884C\u7684\u6A21\u578B\u9A8C\u8BC1\u7ED3\u679C,\u4E3A\u672C\u6B21\u6A21\u578B\u9A8C\u8BC1\u7ED3\u679C\u51C6\u5907\u521D\u59CB\u5316\u73AF\u5883 -io.sc.engine.mv.executor.SampleCountExecutor.name=\u5408\u683C\u6837\u672C\u6570\u91CF\u7EDF\u8BA1\u6267\u884C\u5668 -io.sc.engine.mv.executor.SampleCountExecutor.description=\u7EDF\u8BA1\u5408\u683C\u6837\u672C\u7684\u603B\u4E2A\u6570\u548C\u4E8B\u5B9E\u8FDD\u7EA6\u4E2A\u6570 +io.sc.engine.mv.executor.SampleCountExecutor.name=\u6837\u672C\u6570\u91CF\u7EDF\u8BA1\u6267\u884C\u5668 +io.sc.engine.mv.executor.SampleCountExecutor.description=\u7EDF\u8BA1\u5408\u683C\u6837\u672C\u7684\u4E2A\u6570\u548C\u8FDD\u7EA6\u6A23\u672C\u4E2A\u6570 io.sc.engine.mv.executor.SampleExecutor.name=\u5408\u683C\u6837\u672C\u5904\u7406\u6267\u884C\u5668 io.sc.engine.mv.executor.SampleExecutor.description=\u751F\u6210\u5408\u683C\u6837\u672C\u96C6 @@ -49,3 +49,25 @@ io.sc.engine.mv.executor.CoeChiSquareExecutor.description=\u8BA1\u7B97\u5361\u65 io.sc.engine.mv.executor.CoeBinomialExecutor.name=\u6A21\u578B\u4F30\u503C\u51C6\u786E\u6027\u9A8C\u8BC1(\u4E8C\u9879\u68C0\u9A8C) io.sc.engine.mv.executor.CoeBinomialExecutor.description=\u4E8C\u9879\u68C0\u9A8C\u503C + +io.sc.engine.mv.performance=\u6A21\u578B\u8868\u73B0 +io.sc.engine.mv.performance.random=\u968F\u673A\u6A21\u578B\u8868\u73B0 +io.sc.engine.mv.performance.perfect=\u5B8C\u7F8E\u6A21\u578B\u8868\u73B0 +io.sc.engine.mv.curve.roc.title=ROC \u66F2\u7EBF +io.sc.engine.mv.curve.roc.xAxis.title=\u8BEF\u8B66\u7387 +io.sc.engine.mv.curve.roc.yAxis.title=\u547D\u4E2D\u7387 +io.sc.engine.mv.curve.roc.series.title=\u6A21\u578B\u8868\u73B0 +io.sc.engine.mv.curve.cap.title=CAP \u66F2\u7EBF +io.sc.engine.mv.curve.cap.xAxis.title=\u6837\u672C\u4E2A\u6570\u767E\u5206\u6BD4 +io.sc.engine.mv.curve.cap.yAxis.title=\u8FDD\u7EA6\u6837\u672C\u4E2A\u6570\u767E\u5206\u6BD4 +io.sc.engine.mv.curve.cap.series.title=\u6A21\u578B\u8868\u73B0 +io.sc.engine.mv.curve.ks.title=KS \u66F2\u7EBF +io.sc.engine.mv.curve.ks.xAxis.title=\u8BC4\u5206 +io.sc.engine.mv.curve.ks.yAxis.title=\u6837\u672C\u5360\u6BD4 +io.sc.engine.mv.curve.ks.series1.title=\u6B63\u5E38\u6837\u672C\u5360\u6BD4 +io.sc.engine.mv.curve.ks.series2.title=\u8FDD\u7EA6\u6837\u672C\u5360\u6BD4 +io.sc.engine.mv.curve.psi.title=PSI \u67F1\u72B6\u56FE +io.sc.engine.mv.curve.psi.xAxis.title=\u5206\u6570\u6BB5 +io.sc.engine.mv.curve.psi.yAxis.title=\u6837\u672C\u6570 +io.sc.engine.mv.curve.psi.series1.title=\u54A8\u8BE2\u5EFA\u6A21\u65F6 +io.sc.engine.mv.curve.psi.series2.title=\u6A21\u578B\u5E94\u7528\u65F6 diff --git a/io.sc.platform.core/src/main/java/io/sc/platform/core/autoconfigure/RestarterInterceptorAutoConfiguration.java b/io.sc.platform.core/src/main/java/io/sc/platform/core/autoconfigure/RestarterInterceptorAutoConfiguration.java index 0bf24b3b..ffa56859 100644 --- a/io.sc.platform.core/src/main/java/io/sc/platform/core/autoconfigure/RestarterInterceptorAutoConfiguration.java +++ b/io.sc.platform.core/src/main/java/io/sc/platform/core/autoconfigure/RestarterInterceptorAutoConfiguration.java @@ -37,7 +37,7 @@ import java.util.Set; public class RestarterInterceptorAutoConfiguration implements WebMvcConfigurer { private static final String[] excludePathPatterns =new String[] { "/" + Environment.getInstance().getApplicationName() + "/**", - "/io.sc.platform.core/**", + "/io.sc.platform.coe/**", "/error" }; @Autowired private ApplicationContext applicationContext; diff --git a/io.sc.platform.core/src/main/java/io/sc/platform/core/controller/RestarterWebController.java b/io.sc.platform.core/src/main/java/io/sc/platform/core/controller/RestarterWebController.java index b4ac6638..048a714f 100644 --- a/io.sc.platform.core/src/main/java/io/sc/platform/core/controller/RestarterWebController.java +++ b/io.sc.platform.core/src/main/java/io/sc/platform/core/controller/RestarterWebController.java @@ -14,7 +14,7 @@ import org.springframework.web.servlet.ModelAndView; * 当系统检测到需要重启时, 所有的请求都将被重定向到本控制器 */ @Controller -@RequestMapping("/io.sc.platform.core") +@RequestMapping("/io.sc.platform.coe") public class RestarterWebController { @RequestMapping(value="restarter.html") public ModelAndView restarter(Model model){ diff --git a/io.sc.platform.core/src/main/java/io/sc/platform/core/enums/GoodLevel.java b/io.sc.platform.core/src/main/java/io/sc/platform/core/enums/GoodLevel.java new file mode 100644 index 00000000..be9c617b --- /dev/null +++ b/io.sc.platform.core/src/main/java/io/sc/platform/core/enums/GoodLevel.java @@ -0,0 +1,10 @@ +package io.sc.platform.core.enums; + +public enum GoodLevel { + POOR, + MEDIUM, + GOOD, + VERY_GOOD, + EXCELLENT, + PERFECT; +} diff --git a/io.sc.platform.core/src/main/java/io/sc/platform/core/interceptor/RestarterInterceptor.java b/io.sc.platform.core/src/main/java/io/sc/platform/core/interceptor/RestarterInterceptor.java index ac801894..836733a0 100644 --- a/io.sc.platform.core/src/main/java/io/sc/platform/core/interceptor/RestarterInterceptor.java +++ b/io.sc.platform.core/src/main/java/io/sc/platform/core/interceptor/RestarterInterceptor.java @@ -15,7 +15,7 @@ public class RestarterInterceptor implements HandlerInterceptor{ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { if(RuntimeStatus.RESTARTING.equals(Environment.getInstance().getRuntimeStatus())) { - RedirectView view = new RedirectView("/io.sc.platform.core/restarter.html"); + RedirectView view = new RedirectView("/io.sc.platform.coe/restarter.html"); view.setContextRelative(true); view.render(null, request, response); return false; diff --git a/io.sc.platform.core/src/main/java/io/sc/platform/core/springboot/BeforeEnvironmentProcessor.java b/io.sc.platform.core/src/main/java/io/sc/platform/core/springboot/BeforeEnvironmentProcessor.java index c325a7d8..27a94c43 100644 --- a/io.sc.platform.core/src/main/java/io/sc/platform/core/springboot/BeforeEnvironmentProcessor.java +++ b/io.sc.platform.core/src/main/java/io/sc/platform/core/springboot/BeforeEnvironmentProcessor.java @@ -139,21 +139,21 @@ public class BeforeEnvironmentProcessor implements EnvironmentPostProcessor, Ord exportConfigurationFile(new String[]{ "classpath:/logback-spring.xml", "classpath:/config/logback-spring.xml", - "classpath:/io/sc/platform/core/config/logback-spring.xml" + "classpath:/io/sc/platform/coe/config/logback-spring.xml" },"/config/logback-spring.xml",environment); // banner.txt exportConfigurationFile(new String[]{ "classpath:/banner.txt", "classpath:/config/banner.txt", - "classpath:/io/sc/platform/core/config/banner.txt" + "classpath:/io/sc/platform/coe/config/banner.txt" },"/config/banner.txt",environment); // license.txt exportConfigurationFile(new String[]{ "classpath:/license.txt", "classpath:/config/license.txt", - "classpath:/io/sc/platform/core/config/license.txt" + "classpath:/io/sc/platform/coe/config/license.txt" },"/config/license.txt",environment); } diff --git a/io.sc.platform.core/src/main/java/io/sc/platform/core/support/ProgressInfo.java b/io.sc.platform.core/src/main/java/io/sc/platform/core/support/ProgressInfo.java index 968fa853..97988f6b 100644 --- a/io.sc.platform.core/src/main/java/io/sc/platform/core/support/ProgressInfo.java +++ b/io.sc.platform.core/src/main/java/io/sc/platform/core/support/ProgressInfo.java @@ -12,9 +12,9 @@ public class ProgressInfo { //完成时间 private Date completedDatetime; //总计需要执行的数量 - private AtomicInteger totalWeight; + private AtomicInteger totalWeight =new AtomicInteger(0); //当前已经执行的数量 - private AtomicInteger currentWeight; + private AtomicInteger currentWeight =new AtomicInteger(0); //执行进度消息 private String messageKey; //是否出现错误 diff --git a/io.sc.platform.core/src/main/java/io/sc/platform/core/util/EnumUtil.java b/io.sc.platform.core/src/main/java/io/sc/platform/core/util/EnumUtil.java index 7719e99d..19d018a7 100644 --- a/io.sc.platform.core/src/main/java/io/sc/platform/core/util/EnumUtil.java +++ b/io.sc.platform.core/src/main/java/io/sc/platform/core/util/EnumUtil.java @@ -16,7 +16,7 @@ public class EnumUtil { * 将枚举转换成 Map * 示例: * 1) 枚举定义 - * package io.sc.platform.core.util; + * package io.sc.platform.coe.util; * enum Color{ * RED,YELLOW,GREEN * } @@ -28,9 +28,9 @@ public class EnumUtil { * } * * 3) 结果 - * RED : io.sc.platform.core.util.Color.RED - * YELLOW : io.sc.platform.core.util.Color.YELLOW - * GREEN : io.sc.platform.core.util.Color.GREEN + * RED : io.sc.platform.coe.util.Color.RED + * YELLOW : io.sc.platform.coe.util.Color.YELLOW + * GREEN : io.sc.platform.coe.util.Color.GREEN * @param type 枚举类 * @return 枚举 Map, 其中 key:表示枚举名称, value: 表示枚举的全路径类名称 */ diff --git a/io.sc.platform.core/src/main/resources/io/sc/platform/core/config/logback-spring.xml b/io.sc.platform.core/src/main/resources/io/sc/platform/core/config/logback-spring.xml index 6d411899..90e8947d 100644 --- a/io.sc.platform.core/src/main/resources/io/sc/platform/core/config/logback-spring.xml +++ b/io.sc.platform.core/src/main/resources/io/sc/platform/core/config/logback-spring.xml @@ -48,16 +48,16 @@