Browse Source

update

main
wangshaoping 1 year ago
parent
commit
40f0e0753e
  1. 2
      gradle.properties
  2. 2
      io.sc.engine.mv.frontend/package.json
  3. 48
      io.sc.engine.mv.frontend/src/i18n/messages.json
  4. 34
      io.sc.engine.mv.frontend/src/i18n/messages_tw_CN.json
  5. 45
      io.sc.engine.mv.frontend/src/i18n/messages_zh_CN.json
  6. 24
      io.sc.engine.mv.frontend/src/menus/menus.json
  7. 2
      io.sc.engine.mv.frontend/src/views/config/binomial.vue
  8. 2
      io.sc.engine.mv.frontend/src/views/config/chiSquare.vue
  9. 2
      io.sc.engine.mv.frontend/src/views/config/cutOffPoint.vue
  10. 41
      io.sc.engine.mv.frontend/src/views/config/dataExtractor.vue
  11. 2
      io.sc.engine.mv.frontend/src/views/config/distribution.vue
  12. 2
      io.sc.engine.mv.frontend/src/views/config/executor.vue
  13. 4
      io.sc.engine.mv.frontend/src/views/config/model.vue
  14. 2
      io.sc.engine.mv.frontend/src/views/config/scale.vue
  15. 2
      io.sc.engine.mv.frontend/src/views/config/threshold.vue
  16. 41
      io.sc.engine.mv.frontend/src/views/result/CurveDataDialog.vue
  17. 83
      io.sc.engine.mv.frontend/src/views/result/Executor.vue
  18. 151
      io.sc.engine.mv.frontend/src/views/result/Result.vue
  19. 211
      io.sc.engine.mv.frontend/src/views/result/ResultDetailDialog.vue
  20. 97
      io.sc.engine.mv.frontend/src/views/sample/Sample.vue
  21. 15
      io.sc.engine.mv.sample/src/main/java/io/sc/engine/mv/sample/controller/SampleWebController.java
  22. 27
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/controller/CfgBinomialWebController.java
  23. 26
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/controller/CfgChiSquareWebController.java
  24. 12
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/controller/CfgCustomerDistributionWebController.java
  25. 12
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/controller/CfgCutOffPointWebController.java
  26. 32
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/controller/CfgDataExtractorWebController.java
  27. 16
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/controller/CfgExecutorWebController.java
  28. 12
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/controller/CfgModelWebController.java
  29. 18
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/controller/CfgScaleWebController.java
  30. 12
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/controller/CfgThresholdWebController.java
  31. 4
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/entity/CfgBinomial.java
  32. 4
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/entity/CfgChiSquare.java
  33. 6
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/entity/CfgCustomerDistribution.java
  34. 5
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/entity/CfgCutOffPoint.java
  35. 6
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/entity/CfgDataExtractor.java
  36. 6
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/entity/CfgModel.java
  37. 4
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/entity/CfgScale.java
  38. 4
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/entity/CfgThreshold.java
  39. 4
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/repository/CfgBinomialRepository.java
  40. 4
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/repository/CfgChiSquareRepository.java
  41. 4
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/repository/CfgCustomerDistributionRepository.java
  42. 4
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/repository/CfgCutOffPointRepository.java
  43. 4
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/repository/CfgDataExtractorRepository.java
  44. 4
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/repository/CfgModelRepository.java
  45. 4
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/repository/CfgScaleRepository.java
  46. 4
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/repository/CfgThresholdRepository.java
  47. 9
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/CfgBinomialService.java
  48. 10
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/CfgChiSquareService.java
  49. 10
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/CfgCustomerDistributionService.java
  50. 12
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/CfgCutOffPointService.java
  51. 6
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/CfgDataExtractorService.java
  52. 8
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/CfgModelService.java
  53. 10
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/CfgScaleService.java
  54. 10
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/CfgThresholdService.java
  55. 8
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/impl/CfgBinomialServiceImpl.java
  56. 8
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/impl/CfgChiSquareServiceImpl.java
  57. 8
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/impl/CfgCustomerDistributionServiceImpl.java
  58. 8
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/impl/CfgCutOffPointServiceImpl.java
  59. 13
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/impl/CfgDataExtractorServiceImpl.java
  60. 10
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/impl/CfgModelServiceImpl.java
  61. 8
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/impl/CfgScaleServiceImpl.java
  62. 8
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/impl/CfgThresholdServiceImpl.java
  63. 2
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/vo/CfgBinomialVo.java
  64. 2
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/vo/CfgChiSquareVo.java
  65. 2
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/vo/CfgCustomerDistributionVo.java
  66. 2
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/vo/CfgCutOffPointVo.java
  67. 2
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/vo/CfgDataExtractorVo.java
  68. 4
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/vo/CfgModelVo.java
  69. 2
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/vo/CfgScaleVo.java
  70. 2
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/vo/CfgThresholdVo.java
  71. 21
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/ShowSampleWebController.java
  72. 33
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/coe/BinomialWebController.java
  73. 33
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/coe/ChiSquareWebController.java
  74. 20
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/configuration/CfgBinomialWebController.java
  75. 20
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/configuration/CfgChiSquareWebController.java
  76. 35
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/configuration/DataExtractorWebController.java
  77. 4
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/echart/Tooltip.java
  78. 2
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/enums/CoeResult.java
  79. 2
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/enums/DataExtractorType.java
  80. 2
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/enums/ExecuteMode.java
  81. 2
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/enums/ModelType.java
  82. 2
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/enums/ScaleType.java
  83. 4
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/exception/CutOffPointNotFoundException.java
  84. 4
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/exception/ExecutorNotRunningException.java
  85. 4
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/exception/ExecutorRunningException.java
  86. 2
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/initializer/ConfigurationInitializer.java
  87. 10
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/repository/CoeBinomialHistoryRepository.java
  88. 10
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/repository/CoeChiSquareHistoryRepository.java
  89. 11
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/repository/DefaultRecordRepository.java
  90. 9
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/repository/ScoreRecordRepository.java
  91. 9
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/configuration/CfgBinomialService.java
  92. 10
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/configuration/CfgChiSquareService.java
  93. 10
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/configuration/CfgCustomerDistributionService.java
  94. 12
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/configuration/CfgCutOffPointService.java
  95. 10
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/configuration/CfgScaleService.java
  96. 10
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/configuration/CfgThresholdService.java
  97. 11
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/result/GeneralResultHistoryService.java
  98. 11
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/result/GeneralSampleHistoryService.java
  99. 13
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/result/impl/GeneralSampleHistoryServiceImpl.java
  100. 9
      io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/sample/DefaultRecordService.java

2
gradle.properties

@ -38,7 +38,7 @@ application_version=1.0.0
platform_group=io.sc
platform_version=8.1.22
platform_plugin_version=8.1.13
platform_core_frontend_version=8.1.111
platform_core_frontend_version=8.1.113
###########################################################
# dependencies version

2
io.sc.engine.mv.frontend/package.json

@ -78,7 +78,7 @@
"luckyexcel": "1.0.1",
"mockjs": "1.1.0",
"pinia": "2.1.7",
"platform-core": "8.1.111",
"platform-core": "8.1.113",
"quasar": "2.14.2",
"tailwindcss": "3.4.0",
"vue": "3.4.3",

48
io.sc.engine.mv.frontend/src/i18n/messages.json

@ -13,6 +13,16 @@
"menu.engine.mv.sample" : "Sample Manager",
"menu.engine.mv.result" : "Validator Result Viewer",
"io.sc.engine.mv.enums.GoodLevel.POOR" : "Poor",
"io.sc.engine.mv.enums.GoodLevel.MEDIUM" : "Medium",
"io.sc.engine.mv.enums.GoodLevel.GOOD" : "Good",
"io.sc.engine.mv.enums.GoodLevel.VERY_GOOD" : "Very Good",
"io.sc.engine.mv.enums.GoodLevel.EXCELLENT" : "Excellent",
"io.sc.engine.mv.enums.GoodLevel.PERFECT" : "Perfect",
"io.sc.engine.mv.enums.Stability.yes" : "Stability",
"io.sc.engine.mv.enums.Stability.no" : "Not Stability",
"io.sc.engine.mv.config.cutOffPoint.grid.title" : "Score Cut Off Point List",
"io.sc.engine.mv.config.cutOffPoint.grid.entity.name" : "Name",
"io.sc.engine.mv.config.cutOffPoint.grid.entity.from" : "From(contain)",
@ -52,7 +62,6 @@
"io.sc.engine.mv.config.distribution.grid.entity.scoreSegEnd" : "End of Score Segment(include)",
"io.sc.engine.mv.config.distribution.grid.entity.count" : "Sample Count",
"io.sc.engine.mv.config.scale.grid.title" : "Main Scale List",
"io.sc.engine.mv.config.scale.grid.entity.modelId" : "Model ID",
"io.sc.engine.mv.config.scale.grid.entity.modelName" : "Model Name",
@ -60,8 +69,19 @@
"io.sc.engine.mv.config.scale.grid.entity.pd" : "PD",
"io.sc.engine.mv.config.scale.grid.entity.order" : "Order",
"io.sc.engine.mv.config.dataExtractor.grid.title" : "Data Extractor List",
"io.sc.engine.mv.config.dataExtractor.grid.toolbar.example" : "Import Example",
"io.sc.engine.mv.config.dataExtractor.grid.toolbar.example.tip" : "Are you sure to import example data extractor?",
"io.sc.engine.mv.config.dataExtractor.grid.entity.datasourceName" : "Datasource Name",
"io.sc.engine.mv.config.dataExtractor.grid.entity.executeTimeWeight" : "Weight of Execute",
"io.sc.engine.mv.config.dataExtractor.grid.entity.groovyScript" : "Groovy Code",
"io.sc.engine.mv.config.executor.grid.title" : "Executor List",
"io.sc.engine.mv.sample.action.importExampleSample" : "Import Example Sample",
"io.sc.engine.mv.sample.action.importExampleSample.tip" : "Are you sure to import example samples?",
"io.sc.engine.mv.sample.action.removeAllSample" : "Remove All Example",
"io.sc.engine.mv.sample.action.removeAllSample.tip" : "Are you sure to remove all samples?",
"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",
@ -98,7 +118,10 @@
"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.task.progress" : "Current Running Task:",
"io.sc.engine.mv.result.grid.title" : "Validate Result List",
"io.sc.engine.mv.result.grid.toolbar.execute" : "Execute",
"io.sc.engine.mv.result.grid.entity.validateDate" : "Validate Date",
"io.sc.engine.mv.result.grid.entity.runtimeParameters" : "Runtime Parameters",
"io.sc.engine.mv.result.grid.entity.runtimeParameters.rateStartDateFrom" : "Rate Start Date From",
@ -159,6 +182,19 @@
"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.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" : "ChiSquare Test",
"io.sc.engine.mv.result.chiSquare.level" : "Level",
"io.sc.engine.mv.result.chiSquare.pd" : "PD",
@ -180,5 +216,13 @@
"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"
"io.sc.engine.mv.result.binomial.geLower" : "Count of >= Lower",
"io.sc.engine.mv.executorDialog.title" : "Execute",
"io.sc.engine.mv.executorDialog.form.entity.rateStartDateFrom" : "Effective Date From",
"io.sc.engine.mv.executorDialog.form.entity.rateStartDateTo" : "Effective Date To",
"io.sc.engine.mv.executorDialog.form.entity.performPeriod" : "Perform Period(month)",
"io.sc.engine.mv.executorDialog.form.entity.binomialSignificanceLevel" : "Binomial Significance Level",
"io.sc.engine.mv.executorDialog.form.entity.chiSquareSignificanceLevel" : "ChiSquare Significance Level",
"io.sc.engine.mv.executorDialog.form.action.execute" : "Execute Now"
}

34
io.sc.engine.mv.frontend/src/i18n/messages_tw_CN.json

@ -13,6 +13,16 @@
"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" : "起始值(含)",
@ -59,8 +69,19 @@
"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" : "違約記錄",
@ -97,9 +118,10 @@
"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" : "評級開始日期從",
@ -181,5 +203,13 @@
"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.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" : "立即執行"
}

45
io.sc.engine.mv.frontend/src/i18n/messages_zh_CN.json

@ -13,6 +13,16 @@
"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" : "起始值(含)",
@ -60,15 +70,18 @@
"io.sc.engine.mv.config.scale.grid.entity.order" : "排序",
"io.sc.engine.mv.config.dataExtractor.grid.title" : "数据抽取器列表",
"io.sc.engine.mv.config.dataExtractor.grid.entity.name" : "名称",
"io.sc.engine.mv.config.dataExtractor.grid.entity.enable" : "是否可用",
"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.order" : "执行顺序",
"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" : "违约记录",
@ -106,7 +119,10 @@
"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" : "评级开始日期从",
@ -167,6 +183,19 @@
"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" : "违约概率",
@ -188,5 +217,13 @@
"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.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" : "立即执行"
}

24
io.sc.engine.mv.frontend/src/menus/menus.json

@ -20,28 +20,28 @@
/**/
{"type":"GROUP", "order":20000, "id":"menu.engine.mv", "titleI18nKey":"menu.engine.mv", "icon":"bi-command"},
/*/*/
{"type":"ROUTE", "order":100, "parentId":"menu.engine.mv", "id":"menu.engine.mv.result", "titleI18nKey":"menu.engine.mv.result", "icon":"bi-link-45deg", "routeName":"route.engine.mv.result"},
{"type":"ROUTE", "order":100, "parentId":"menu.engine.mv", "id":"menu.engine.mv.result", "titleI18nKey":"menu.engine.mv.result", "icon":"bi-display", "routeName":"route.engine.mv.result"},
/*/*/
{"type":"ROUTE", "order":200, "parentId":"menu.engine.mv", "id":"menu.engine.mv.sample", "titleI18nKey":"menu.engine.mv.sample", "icon":"bi-egg", "routeName":"route.engine.mv.sample"},
{"type":"ROUTE", "order":200, "parentId":"menu.engine.mv", "id":"menu.engine.mv.sample", "titleI18nKey":"menu.engine.mv.sample", "icon":"bi-card-list", "routeName":"route.engine.mv.sample"},
/*/*/
{"type":"GROUP", "order":300, "parentId":"menu.engine.mv", "id":"menu.engine.mv.config", "titleI18nKey":"menu.engine.mv.config", "icon":"bi-question-circle"},
{"type":"GROUP", "order":300, "parentId":"menu.engine.mv", "id":"menu.engine.mv.config", "titleI18nKey":"menu.engine.mv.config", "icon":"bi-gear"},
/*//*/
{"type":"ROUTE", "order":200, "parentId":"menu.engine.mv.config", "id":"menu.engine.mv.config.cutOffPoint", "titleI18nKey":"menu.engine.mv.config.cutOffPoint", "icon":"bi-question-circle","routeName":"route.engine.mv.config.cutOffPoint"},
{"type":"ROUTE", "order":200, "parentId":"menu.engine.mv.config", "id":"menu.engine.mv.config.cutOffPoint", "titleI18nKey":"menu.engine.mv.config.cutOffPoint", "icon":"bi-receipt","routeName":"route.engine.mv.config.cutOffPoint"},
/*//*/
{"type":"ROUTE", "order":300, "parentId":"menu.engine.mv.config", "id":"menu.engine.mv.config.threshold", "titleI18nKey":"menu.engine.mv.config.threshold", "icon":"bi-question-circle","routeName":"route.engine.mv.config.threshold"},
{"type":"ROUTE", "order":300, "parentId":"menu.engine.mv.config", "id":"menu.engine.mv.config.threshold", "titleI18nKey":"menu.engine.mv.config.threshold", "icon":"bi-receipt","routeName":"route.engine.mv.config.threshold"},
/*//Z*/
{"type":"ROUTE", "order":400, "parentId":"menu.engine.mv.config", "id":"menu.engine.mv.config.binomial", "titleI18nKey":"menu.engine.mv.config.binomial", "icon":"bi-question-circle","routeName":"route.engine.mv.config.binomial"},
{"type":"ROUTE", "order":400, "parentId":"menu.engine.mv.config", "id":"menu.engine.mv.config.binomial", "titleI18nKey":"menu.engine.mv.config.binomial", "icon":"bi-receipt","routeName":"route.engine.mv.config.binomial"},
/*//*/
{"type":"ROUTE", "order":500, "parentId":"menu.engine.mv.config", "id":"menu.engine.mv.config.chiSquare", "titleI18nKey":"menu.engine.mv.config.chiSquare", "icon":"bi-question-circle","routeName":"route.engine.mv.config.chiSquare"},
{"type":"ROUTE", "order":500, "parentId":"menu.engine.mv.config", "id":"menu.engine.mv.config.chiSquare", "titleI18nKey":"menu.engine.mv.config.chiSquare", "icon":"bi-receipt","routeName":"route.engine.mv.config.chiSquare"},
/*//*/
{"type":"ROUTE", "order":600, "parentId":"menu.engine.mv.config", "id":"menu.engine.mv.config.model", "titleI18nKey":"menu.engine.mv.config.model", "icon":"bi-question-circle","routeName":"route.engine.mv.config.model"},
{"type":"ROUTE", "order":600, "parentId":"menu.engine.mv.config", "id":"menu.engine.mv.config.model", "titleI18nKey":"menu.engine.mv.config.model", "icon":"bi-receipt","routeName":"route.engine.mv.config.model"},
/*//*/
{"type":"ROUTE", "order":700, "parentId":"menu.engine.mv.config", "id":"menu.engine.mv.config.distribution", "titleI18nKey":"menu.engine.mv.config.distribution", "icon":"bi-question-circle","routeName":"route.engine.mv.config.distribution"},
{"type":"ROUTE", "order":700, "parentId":"menu.engine.mv.config", "id":"menu.engine.mv.config.distribution", "titleI18nKey":"menu.engine.mv.config.distribution", "icon":"bi-receipt","routeName":"route.engine.mv.config.distribution"},
/*//*/
{"type":"ROUTE", "order":800, "parentId":"menu.engine.mv.config", "id":"menu.engine.mv.config.scale", "titleI18nKey":"menu.engine.mv.config.scale", "icon":"bi-question-circle","routeName":"route.engine.mv.config.scale"},
{"type":"ROUTE", "order":800, "parentId":"menu.engine.mv.config", "id":"menu.engine.mv.config.scale", "titleI18nKey":"menu.engine.mv.config.scale", "icon":"bi-receipt","routeName":"route.engine.mv.config.scale"},
/*//*/
{"type":"ROUTE", "order":800, "parentId":"menu.engine.mv.config", "id":"menu.engine.mv.config.dataExtractor", "titleI18nKey":"menu.engine.mv.config.dataExtractor", "icon":"bi-question-circle","routeName":"route.engine.mv.config.dataExtractor"},
{"type":"ROUTE", "order":800, "parentId":"menu.engine.mv.config", "id":"menu.engine.mv.config.dataExtractor", "titleI18nKey":"menu.engine.mv.config.dataExtractor", "icon":"bi-receipt","routeName":"route.engine.mv.config.dataExtractor"},
/*//*/
{"type":"ROUTE", "order":100, "parentId":"menu.engine.mv.config", "id":"menu.engine.mv.config.executor", "titleI18nKey":"menu.engine.mv.config.executor", "icon":"bi-question-circle","routeName":"route.engine.mv.config.executor"}
{"type":"ROUTE", "order":100, "parentId":"menu.engine.mv.config", "id":"menu.engine.mv.config.executor", "titleI18nKey":"menu.engine.mv.config.executor", "icon":"bi-receipt","routeName":"route.engine.mv.config.executor"}
]

2
io.sc.engine.mv.frontend/src/views/config/binomial.vue

@ -4,7 +4,7 @@
:config-button="true"
selection="multiple"
:checkbox-selection="true"
:data-url="Environment.apiContextPath('/api/mv/config/binomial')"
:data-url="Environment.apiContextPath('/api/mv/configure/binomial')"
:pageable="false"
:toolbar-configure="{ noIcon: false }"
:toolbar-actions="['refresh', 'separator', 'add', 'edit', 'remove', 'separator', 'resetDefaultValues', 'separator', 'view', 'separator', 'export']"

2
io.sc.engine.mv.frontend/src/views/config/chiSquare.vue

@ -4,7 +4,7 @@
:config-button="true"
selection="multiple"
:checkbox-selection="true"
:data-url="Environment.apiContextPath('/api/mv/config/chiSquare')"
:data-url="Environment.apiContextPath('/api/mv/configure/chiSquare')"
:pageable="false"
:toolbar-configure="{ noIcon: false }"
:toolbar-actions="['refresh', 'separator', 'add', 'edit', 'remove', 'separator', 'resetDefaultValues', 'separator', 'view', 'separator', 'export']"

2
io.sc.engine.mv.frontend/src/views/config/cutOffPoint.vue

@ -4,7 +4,7 @@
:config-button="true"
selection="multiple"
:checkbox-selection="true"
:data-url="Environment.apiContextPath('/api/mv/config/cutOffPoint')"
:data-url="Environment.apiContextPath('/api/mv/configure/cutOffPoint')"
:pageable="false"
:toolbar-configure="{ noIcon: false }"
:toolbar-actions="['refresh', 'separator', 'add', 'edit', 'remove', 'separator', 'resetDefaultValues', 'separator', 'view', 'separator', 'export']"

41
io.sc.engine.mv.frontend/src/views/config/dataExtractor.vue

@ -1,17 +1,41 @@
<template>
<w-grid
ref="gridRef"
:title="$t('io.sc.engine.mv.config.dataExtractor.grid.title')"
:config-button="true"
selection="multiple"
:checkbox-selection="true"
:data-url="Environment.apiContextPath('/api/mv/config/dataExtractor')"
:data-url="Environment.apiContextPath('/api/mv/configure/dataExtractor')"
:pageable="false"
:toolbar-configure="{ noIcon: false }"
:toolbar-actions="['refresh', 'separator', 'add', 'edit', 'remove', 'separator', 'view', 'separator', 'export']"
:toolbar-actions="[
'refresh',
'separator',
'add',
'edit',
'remove',
'separator',
{
name: 'example',
label: $t('io.sc.engine.mv.config.dataExtractor.grid.toolbar.example'),
icon: 'bi-arrow-right-circle',
click: () => {
DialogManager.confirm($t('io.sc.engine.mv.config.dataExtractor.grid.toolbar.example.tip'), () => {
axios.post(Environment.apiContextPath('/api/mv/configure/dataExtractor/generateSample')).then(() => {
gridRef.refresh();
});
});
},
},
'separator',
'view',
'separator',
'export',
]"
:columns="[
{ width: 100, name: 'name', label: $t('io.sc.engine.mv.config.dataExtractor.grid.entity.name') },
{ width: 100, name: 'enable', label: $t('io.sc.engine.mv.config.dataExtractor.grid.entity.enable'), format: Formater.enableTag() },
{ width: 120, name: 'order', label: $t('io.sc.engine.mv.config.dataExtractor.grid.entity.order'), align: 'right' },
{ width: 100, name: 'name', label: $t('name') },
{ width: 100, name: 'enable', label: $t('status'), format: Formater.enableTag() },
{ width: 120, name: 'order', label: $t('order'), align: 'right' },
{ width: 120, name: 'executeTimeWeight', label: $t('io.sc.engine.mv.config.dataExtractor.grid.entity.executeTimeWeight'), align: 'right' },
{ width: 120, name: 'datasourceName', label: $t('io.sc.engine.mv.config.dataExtractor.grid.entity.datasourceName') },
{ width: 100, name: 'lastModifier', label: $t('lastModifier') },
@ -26,7 +50,7 @@
colsNum: 1,
fields: [
{ name: 'name', label: $t('io.sc.engine.mv.config.dataExtractor.grid.entity.name'), type: 'text' },
{ name: 'enable', label: $t('io.sc.engine.mv.config.dataExtractor.grid.entity.enable'), type: 'text' },
{ name: 'enable', label: $t('io.sc.engine.mv.config.dataExtractor.grid.entity.enable'), type: 'checkbox' },
{ name: 'order', label: $t('io.sc.engine.mv.config.dataExtractor.grid.entity.order'), type: 'text' },
{ name: 'executeTimeWeight', label: $t('io.sc.engine.mv.config.dataExtractor.grid.entity.executeTimeWeight'), type: 'text' },
{ name: 'datasourceName', label: $t('io.sc.engine.mv.config.dataExtractor.grid.entity.datasourceName'), type: 'text' },
@ -55,5 +79,8 @@
></w-grid>
</template>
<script setup lang="ts">
import { Environment, Formater } from 'platform-core';
import { ref } from 'vue';
import { axios, Environment, Formater, DialogManager } from 'platform-core';
const gridRef = ref();
</script>

2
io.sc.engine.mv.frontend/src/views/config/distribution.vue

@ -4,7 +4,7 @@
:config-button="true"
selection="multiple"
:checkbox-selection="true"
:data-url="Environment.apiContextPath('/api/mv/config/distribution')"
:data-url="Environment.apiContextPath('/api/mv/configure/distribution')"
:pageable="false"
:toolbar-configure="{ noIcon: false }"
:toolbar-actions="['refresh', 'separator', 'add', 'edit', 'remove', 'separator', 'view', 'separator', 'export']"

2
io.sc.engine.mv.frontend/src/views/config/executor.vue

@ -4,7 +4,7 @@
:config-button="true"
selection="multiple"
:checkbox-selection="true"
:data-url="Environment.apiContextPath('/api/mv/config/executor')"
:data-url="Environment.apiContextPath('/api/mv/configure/executor')"
:pageable="false"
:toolbar-configure="{ noIcon: false }"
:toolbar-actions="['refresh', 'separator', 'view', 'separator', 'export']"

4
io.sc.engine.mv.frontend/src/views/config/model.vue

@ -4,7 +4,7 @@
:config-button="true"
selection="multiple"
:checkbox-selection="true"
:data-url="Environment.apiContextPath('/api/mv/config/model')"
:data-url="Environment.apiContextPath('/api/mv/configure/model')"
:pageable="false"
:toolbar-configure="{ noIcon: false }"
:toolbar-actions="[
@ -65,5 +65,5 @@
<script setup lang="ts">
import { Environment, EnumTools, Formater } from 'platform-core';
const ModelTypeEnum = await EnumTools.fetch('io.sc.engine.mv.ModelType');
const ModelTypeEnum = await EnumTools.fetch('io.sc.engine.mv.enums.ModelType');
</script>

2
io.sc.engine.mv.frontend/src/views/config/scale.vue

@ -4,7 +4,7 @@
:config-button="true"
selection="multiple"
:checkbox-selection="true"
:data-url="Environment.apiContextPath('/api/mv/config/scale')"
:data-url="Environment.apiContextPath('/api/mv/configure/scale')"
:pageable="false"
:toolbar-configure="{ noIcon: false }"
:toolbar-actions="['refresh', 'separator', 'add', 'edit', 'remove', 'separator', 'view', 'separator', 'export']"

2
io.sc.engine.mv.frontend/src/views/config/threshold.vue

@ -4,7 +4,7 @@
:config-button="true"
selection="multiple"
:checkbox-selection="true"
:data-url="Environment.apiContextPath('/api/mv/config/threshold')"
:data-url="Environment.apiContextPath('/api/mv/configure/threshold')"
:pageable="false"
:toolbar-configure="{ noIcon: false }"
:toolbar-actions="['refresh', 'separator', 'add', 'edit', 'remove', 'separator', 'resetDefaultValues', 'separator', 'view', 'separator', 'export']"

41
io.sc.engine.mv.frontend/src/views/result/CurveDataDialog.vue

@ -4,7 +4,7 @@
<w-grid
v-if="'ROC' === curveTypeRef"
:checkbox-selection="false"
:fetch-data-url="Environment.apiContextPath('/api/mv/sc/roc?modelId=' + detailRef.modelId + '&validateDate=' + detailRef.validateDate)"
:fetch-data-url="Environment.apiContextPath('/api/mv/viewer/roc/data?modelId=' + detailRef.modelId + '&validateDate=' + detailRef.validateDate)"
:pageable="true"
:toolbar-actions="['refresh', 'separator', 'export']"
:columns="[
@ -22,7 +22,7 @@
<w-grid
v-if="'CAP' === curveTypeRef"
:checkbox-selection="false"
:fetch-data-url="Environment.apiContextPath('/api/mv/sc/cap?modelId=' + detailRef.modelId + '&validateDate=' + detailRef.validateDate)"
:fetch-data-url="Environment.apiContextPath('/api/mv/viewer/cap/data?modelId=' + detailRef.modelId + '&validateDate=' + detailRef.validateDate)"
:pageable="true"
:toolbar-actions="['refresh', 'separator', 'export']"
:columns="[
@ -38,7 +38,7 @@
<w-grid
v-if="'KS' === curveTypeRef"
:checkbox-selection="false"
:fetch-data-url="Environment.apiContextPath('/api/mv/sc/ks?modelId=' + detailRef.modelId + '&validateDate=' + detailRef.validateDate)"
:fetch-data-url="Environment.apiContextPath('/api/mv/viewer/ks/data?modelId=' + detailRef.modelId + '&validateDate=' + detailRef.validateDate)"
:pageable="true"
:toolbar-actions="['refresh', 'separator', 'export']"
:columns="[
@ -51,6 +51,41 @@
{ width: 100, name: 'y2', label: $t('io.sc.engine.mv.result.curve.ks.y2'), align: 'right' },
]"
></w-grid>
<w-grid
v-if="'PSI' === curveTypeRef"
:checkbox-selection="false"
:fetch-data-url="Environment.apiContextPath('/api/mv/viewer/psi/data?modelId=' + detailRef.modelId + '&validateDate=' + detailRef.validateDate)"
:pageable="true"
:toolbar-actions="['refresh', 'separator', 'export']"
:columns="[
{ width: 60, name: 'scoreSegStart', label: $t('io.sc.engine.mv.result.curve.psi.scoreSegStart'), align: 'right' },
{ width: 60, name: 'scoreSegEnd', label: $t('io.sc.engine.mv.result.curve.psi.scoreSegEnd'), align: 'right' },
{
width: 200,
name: 'dev',
label: '咨询建模时',
columns: [
{ width: 60, name: 'countDev', label: $t('io.sc.engine.mv.result.curve.psi.countDev'), align: 'right' },
{ width: 60, name: 'totalCountDev', label: $t('io.sc.engine.mv.result.curve.psi.totalCountDev'), align: 'right' },
{ width: 80, name: 'percentDev', label: $t('io.sc.engine.mv.result.curve.psi.percentDev'), align: 'right' },
],
},
{
width: 200,
name: 'app',
label: '建模应用时',
columns: [
{ width: 60, name: 'countApp', label: $t('io.sc.engine.mv.result.curve.psi.countApp'), align: 'right' },
{ width: 60, name: 'totalCountApp', label: $t('io.sc.engine.mv.result.curve.psi.totalCountApp'), align: 'right' },
{ width: 80, name: 'percentApp', label: $t('io.sc.engine.mv.result.curve.psi.percentApp'), align: 'right' },
],
},
{ width: 80, name: 'percentDiff', label: $t('io.sc.engine.mv.result.curve.psi.percentDiff'), align: 'right' },
{ width: 80, name: 'percentRate', label: $t('io.sc.engine.mv.result.curve.psi.percentRate'), align: 'right' },
{ width: 80, name: 'weight', label: $t('io.sc.engine.mv.result.curve.psi.weight'), align: 'right' },
{ width: 80, name: 'stWeight', label: $t('io.sc.engine.mv.result.curve.psi.stWeight'), align: 'right' },
]"
></w-grid>
</div>
</w-dialog>
</template>

83
io.sc.engine.mv.frontend/src/views/result/Executor.vue

@ -0,0 +1,83 @@
<template>
<w-dialog ref="dialogRef" width="600px" height="400px" :title="$t('io.sc.engine.mv.executorDialog.title')" :can-maximize="false" :maximized="false">
<div class="px-10">
<w-form
ref="formRef"
:cols-num="1"
:cols-y-gap="10"
:fields="[
{ name: 'rateStartDateFrom', label: $t('io.sc.engine.mv.executorDialog.form.entity.rateStartDateFrom'), type: 'text' },
{ name: 'rateStartDateTo', label: $t('io.sc.engine.mv.executorDialog.form.entity.rateStartDateTo'), type: 'text' },
{ name: 'performPeriod', label: $t('io.sc.engine.mv.executorDialog.form.entity.performPeriod'), type: 'text', defaultValue: '18' },
{
name: 'binomialSignificanceLevel',
label: $t('io.sc.engine.mv.executorDialog.form.entity.binomialSignificanceLevel'),
type: 'select',
options: binomialSignificanceLevelOptionsRef,
defaultValue: binomialSignificanceLevelOptionsRef[0],
},
{
name: 'chiSquareSignificanceLevel',
label: $t('io.sc.engine.mv.executorDialog.form.entity.chiSquareSignificanceLevel'),
type: 'select',
options: chiSquareSignificanceLevelOptionsRef,
defaultValue: chiSquareSignificanceLevelOptionsRef[0],
},
]"
>
</w-form>
<div style="height: 20px"></div>
<div class="row justify-center">
<q-btn :label="$t('io.sc.engine.mv.executorDialog.form.action.execute')" color="primary" @click="execute"></q-btn>
</div>
</div>
</w-dialog>
</template>
<script setup lang="ts">
import { ref, nextTick } from 'vue';
import { axios, Environment } from 'platform-core';
const emit = defineEmits(['afterStartExecute']);
const dialogRef = ref();
const formRef = ref();
const binomialSignificanceLevelOptionsRef = ref([]);
const chiSquareSignificanceLevelOptionsRef = ref([]);
const open = () => {
dialogRef.value.show();
nextTick(() => {
axios.get(Environment.apiContextPath('/api/mv/configure/binomial/significanceLevels')).then((response) => {
binomialSignificanceLevelOptionsRef.value = response.data;
});
axios.get(Environment.apiContextPath('/api/mv/configure/chiSquare/significanceLevels')).then((response) => {
chiSquareSignificanceLevelOptionsRef.value = response.data;
});
});
};
const close = () => {
dialogRef.value.hide();
};
const execute = () => {
axios
.post(Environment.apiContextPath('/api/mv/execute'), {
executeMode: 'MANUAL',
rateStartDateFrom: formRef.value.getFieldValue('rateStartDateFrom'),
rateStartDateTo: formRef.value.getFieldValue('rateStartDateTo'),
performPeriod: formRef.value.getFieldValue('performPeriod'),
binomialSignificanceLevel: formRef.value.getFieldValue('binomialSignificanceLevel'),
chiSquareSignificanceLevel: formRef.value.getFieldValue('chiSquareSignificanceLevel'),
})
.then(() => {
emit('afterStartExecute');
close();
});
};
defineExpose({
open,
close,
});
</script>

151
io.sc.engine.mv.frontend/src/views/result/Result.vue

@ -1,21 +1,45 @@
<template>
<div>
<div v-if="executeProgress.show" class="row pt-2">
<div class="col-2 pl-4">{{ $t('io.sc.engine.mv.result.task.progress') }}</div>
<div class="col-3">
<q-linear-progress size="20px" :value="executeProgress.percentage" color="primary" rounded> </q-linear-progress>
</div>
<div class="col-7 pl-4">{{ executeProgress.message }}</div>
<div class="col-1"></div>
</div>
<w-grid
:ref="gridRef"
ref="gridRef"
:title="$t('menu.engine.mv.result')"
:config-button="true"
selection="multiple"
:checkbox-selection="false"
:data-url="Environment.apiContextPath('/api/mv/result')"
:pageable="false"
:data-url="Environment.apiContextPath('/api/mv/viewer/result')"
:pageable="true"
:pagination="{
sortBy: 'validateDate',
descending: true,
}"
:toolbar-configure="{ noIcon: false }"
:toolbar-actions="[
'refresh',
'separator',
{
name: 'execute',
label: $t('io.sc.engine.mv.result.grid.toolbar.execute'),
icon: 'bi-play-circle',
click: () => {
executorDialogRef.open();
},
},
'separator',
{
name: 'detail',
label: $t('detail'),
icon: 'bi-display',
enableIf: (selecteds) => {
return selecteds && selecteds.length > 0;
},
click: (selecteds) => {
if (selecteds && selecteds.length > 0) {
const selected = selecteds[0];
@ -23,6 +47,23 @@
}
},
},
{
extend: 'remove',
click: (selecteds) => {
if (selecteds && selecteds.length > 0) {
const selected = selecteds[0];
axios
.request({
url: Environment.apiContextPath('/api/mv/viewer/result'),
method: 'delete',
data: [{ validateDate: selected.validateDate, modelId: selected.modelId }],
})
.then(() => {
gridRef.refresh();
});
}
},
},
'separator',
'view',
'separator',
@ -36,46 +77,47 @@
{ width: 100, name: 'totalSampleCount', label: $t('io.sc.engine.mv.result.grid.entity.totalSampleCount'), align: 'right' },
{ width: 100, name: 'defaultSampleCount', label: $t('io.sc.engine.mv.result.grid.entity.defaultSampleCount'), align: 'right' },
{
name: 'total',
label: $t('io.sc.engine.mv.result.grid.entity.total'),
columns: [
{ width: 100, name: 'auc', label: $t('io.sc.engine.mv.result.grid.entity.auc'), align: 'right' },
{ width: 100, name: 'ar', label: $t('io.sc.engine.mv.result.grid.entity.ar'), align: 'right' },
{ width: 100, name: 'ks', label: $t('io.sc.engine.mv.result.grid.entity.ks'), align: 'right' },
],
},
{
name: 'quantitative',
label: $t('quantitative'),
columns: [
{ width: 100, name: 'aucQuantitative', label: $t('io.sc.engine.mv.result.grid.entity.auc'), align: 'right' },
{ width: 100, name: 'arQuantitative', label: $t('io.sc.engine.mv.result.grid.entity.ar'), align: 'right' },
{ width: 100, name: 'ksQuantitative', label: $t('io.sc.engine.mv.result.grid.entity.ks'), align: 'right' },
],
},
{
name: 'qualitative',
label: $t('qualitative'),
columns: [
{ width: 100, name: 'aucQualitative', label: $t('io.sc.engine.mv.result.grid.entity.auc'), align: 'right' },
{ width: 100, name: 'arQualitative', label: $t('io.sc.engine.mv.result.grid.entity.ar'), align: 'right' },
{ width: 100, name: 'ksQualitative', label: $t('io.sc.engine.mv.result.grid.entity.ks'), align: 'right' },
],
},
/*{
width: 900,
name: 'discrimination',
label: $t('io.sc.engine.mv.result.grid.entity.discrimination'),
columns: [
{
name: 'total',
label: $t('io.sc.engine.mv.result.grid.entity.total'),
columns: [
{ width: 100, name: 'auc', label: $t('io.sc.engine.mv.result.grid.entity.auc') },
{ width: 100, name: 'ar', label: $t('io.sc.engine.mv.result.grid.entity.ar') },
{ width: 100, name: 'ks', label: $t('io.sc.engine.mv.result.grid.entity.ks') },
],
},
{
name: 'quantitative',
label: $t('quantitative'),
columns: [
{ width: 100, name: 'aucQuantitative', label: $t('io.sc.engine.mv.result.grid.entity.auc') },
{ width: 100, name: 'arQuantitative', label: $t('io.sc.engine.mv.result.grid.entity.ar') },
{ width: 100, name: 'ksQuantitative', label: $t('io.sc.engine.mv.result.grid.entity.ks') },
],
},
{
name: 'qualitative',
label: $t('qualitative'),
columns: [
{ width: 100, name: 'aucQualitative', label: $t('io.sc.engine.mv.result.grid.entity.auc') },
{ width: 100, name: 'arQualitative', label: $t('io.sc.engine.mv.result.grid.entity.ar') },
{ width: 100, name: 'ksQualitative', label: $t('io.sc.engine.mv.result.grid.entity.ks') },
],
},
],
},
},*/
{
width: 200,
name: 'stability',
label: $t('io.sc.engine.mv.result.grid.entity.stability'),
columns: [
{ width: 100, name: 'svd', label: $t('io.sc.engine.mv.result.grid.entity.svd') },
{ width: 100, name: 'psi', label: $t('io.sc.engine.mv.result.grid.entity.psi') },
{ width: 100, name: 'svd', label: $t('io.sc.engine.mv.result.grid.entity.svd'), align: 'right' },
{ width: 100, name: 'psi', label: $t('io.sc.engine.mv.result.grid.entity.psi'), align: 'right' },
],
},
{
@ -130,16 +172,25 @@
},
}"
></w-grid>
<Executor ref="executorDialogRef" @after-start-execute="afterStartExecute"></Executor>
<ResultDetailDialog ref="resultDetailDialogRef"></ResultDetailDialog>
</div>
</template>
<script setup lang="ts">
import { ref } from 'vue';
import { Environment, Tools, Formater } from 'platform-core';
import { ref, reactive } from 'vue';
import { axios, Environment, Tools, Formater, NotifyManager } from 'platform-core';
import Executor from './Executor.vue';
import ResultDetailDialog from './ResultDetailDialog.vue';
const gridRef = ref();
const resultDetailDialogRef = ref();
const executorDialogRef = ref();
const executeProgress = reactive({
show: false,
percentage: 0,
message: '',
});
let executeProgressInterval;
const passOrNotFormater = (value) => {
if (Tools.isUndefinedOrNull(value)) {
@ -157,4 +208,34 @@ const passOrNotFormater = (value) => {
};
}
};
const afterStartExecute = () => {
executeProgress.show = true;
executeProgress.percentage = 0;
executeProgressInterval = setInterval(() => {
axios
.get(Environment.apiContextPath('/api/mv/traceExecuteProgress'))
.then((response) => {
const progressInfo = response.data;
executeProgress.percentage = progressInfo.currentWeight / progressInfo.totalWeight;
executeProgress.message = progressInfo.messageKey;
if (executeProgress.percentage >= 1) {
clearInterval(executeProgressInterval);
executeProgress.show = false;
gridRef.value.refresh();
}
})
.catch(() => {
clearInterval(executeProgressInterval);
executeProgress.show = false;
gridRef.value.refresh();
});
}, 1000);
};
axios.get(Environment.apiContextPath('/api/mv/isExistsRunningExecutor')).then((response) => {
if (response.data) {
afterStartExecute();
}
});
</script>

211
io.sc.engine.mv.frontend/src/views/result/ResultDetailDialog.vue

@ -2,9 +2,10 @@
<w-dialog ref="dialogRef" :title="detailRef?.modelName + '(' + detailRef?.modelId + ')'" :can-maximize="false" :maximized="true">
<div class="px-2">
<q-tabs v-model="selectedTabRef" inline-label align="left" :breakpoint="0" no-caps @update:model-value="tabChanged">
<q-tab name="discrimination" icon="bi-people" :label="$t('io.sc.engine.mv.result.grid.entity.discrimination')" />
<q-tab name="stability" icon="bi-diagram-3" :label="$t('io.sc.engine.mv.result.grid.entity.stability')" />
<q-tab name="scaleValidate" icon="bi-diagram-3" :label="$t('io.sc.engine.mv.result.grid.entity.scaleValidate')" />
<q-tab name="discrimination" :label="$t('io.sc.engine.mv.result.grid.entity.discrimination')" />
<q-tab name="stability" :label="$t('io.sc.engine.mv.result.grid.entity.stability')" />
<q-tab name="scaleValidate" :label="$t('io.sc.engine.mv.result.grid.entity.scaleValidate')" />
<q-tab name="sample" :label="$t('io.sc.engine.mv.sample.tabs.sample')" />
</q-tabs>
<q-tab-panels v-model="selectedTabRef" animated swipeable keep-alive>
@ -38,16 +39,16 @@
<th class="referenceTh">CAP (AR = {{ detailRef.ar }})</th>
<th class="referenceTh">KS (KS = {{ detailRef.ks }})</th>
</tr>
<tr v-for="(level, index) in referenceLevels" :key="index">
<tr v-for="(level, index) in scReferenceLevels" :key="index">
<td class="referenceTd">{{ level }}</td>
<td :class="valueInRange(detailRef.auc, referenceValues.auc[index]) ? 'referenceTd highlight' : 'referenceTd'">
{{ referenceValues.auc[index].label }}
<td :class="valueInRange(detailRef.auc, scReferenceValues.auc[index]) ? 'referenceTd highlight' : 'referenceTd'">
{{ scReferenceValues.auc[index].label }}
</td>
<td :class="valueInRange(detailRef.ar, referenceValues.ar[index]) ? 'referenceTd highlight' : 'referenceTd'">
{{ referenceValues.ar[index].label }}
<td :class="valueInRange(detailRef.ar, scReferenceValues.ar[index]) ? 'referenceTd highlight' : 'referenceTd'">
{{ scReferenceValues.ar[index].label }}
</td>
<td :class="valueInRange(detailRef.ks, referenceValues.ks[index]) ? 'referenceTd highlight' : 'referenceTd'">
{{ referenceValues.ks[index].label }}
<td :class="valueInRange(detailRef.ks, scReferenceValues.ks[index]) ? 'referenceTd highlight' : 'referenceTd'">
{{ scReferenceValues.ks[index].label }}
</td>
</tr>
</table>
@ -58,19 +59,34 @@
<div class="col-4">
<div id="psiEchart" style="width: 100%; height: 300px"></div>
<div class="row justify-center">
<q-btn color="primary" no-caps flat :label="$t('io.sc.engine.mv.result.curve.viewData', { type: 'ROC' })" @click="showData('ROC')" />
<q-btn color="primary" no-caps flat :label="$t('io.sc.engine.mv.result.curve.viewData', { type: 'PSI' })" @click="showData('PSI')" />
</div>
<h3>{{ $t('io.sc.engine.mv.result.curve.references') }}:</h3>
<table width="100%" style="border-collapse: collapse">
<tr>
<th class="referenceTh">{{ $t('io.sc.engine.mv.performance') }}</th>
<th class="referenceTh">PSI (PSI = {{ detailRef.psi }})</th>
</tr>
<tr v-for="(level, index) in stReferenceLevels" :key="index">
<td class="referenceTd">{{ level }}</td>
<td :class="valueInRange(detailRef.psi, stReferenceValues.psi[index]) ? 'referenceTd highlight' : 'referenceTd'">
{{ stReferenceValues.psi[index].label }}
</td>
</tr>
</table>
</div>
</div>
</q-tab-panel>
<q-tab-panel name="scaleValidate" class="px-0">
<div class="row">
<div class="col-4 pr-4">
<div class="col-6 pr-4">
<w-grid
:title="$t('io.sc.engine.mv.result.chiSquare.grid.title')"
:title="$t('io.sc.engine.mv.result.chiSquare.grid.title') + ' (' + chiSquareValueRef + ')'"
:checkbox-selection="false"
:fetch-data-url="Environment.apiContextPath('/api/mv/coe/chiSquare?modelId=' + detailRef.modelId + '&validateDate=' + detailRef.validateDate)"
:pageable="true"
:fetch-data-url="
Environment.apiContextPath('/api/mv/viewer/chiSquare/data?modelId=' + detailRef.modelId + '&validateDate=' + detailRef.validateDate)
"
:pageable="false"
:toolbar-actions="['refresh', 'separator', 'export']"
:columns="[
{ width: 50, name: 'level', label: $t('io.sc.engine.mv.result.chiSquare.level'), align: 'right' },
@ -81,33 +97,85 @@
]"
></w-grid>
</div>
<div class="col-8 pl-4">
<div class="col-6 pl-4">
<w-grid
:title="$t('io.sc.engine.mv.result.binomial.grid.title')"
:checkbox-selection="false"
:fetch-data-url="Environment.apiContextPath('/api/mv/coe/binomial?modelId=' + detailRef.modelId + '&validateDate=' + detailRef.validateDate)"
:pageable="true"
:fetch-data-url="
Environment.apiContextPath('/api/mv/viewer/binomial/data?modelId=' + detailRef.modelId + '&validateDate=' + detailRef.validateDate)
"
:pageable="false"
:toolbar-actions="['refresh', 'separator', 'export']"
:columns="[
{ width: 50, name: 'level', label: $t('io.sc.engine.mv.result.binomial.level'), align: 'right' },
{ width: 50, name: 'pd', label: $t('io.sc.engine.mv.result.binomial.pd'), align: 'right' },
{ width: 50, name: 'count', label: $t('io.sc.engine.mv.result.binomial.count'), align: 'right' },
{ width: 30, name: 'level', label: $t('io.sc.engine.mv.result.binomial.level'), align: 'right' },
{ width: 30, name: 'pd', label: $t('io.sc.engine.mv.result.binomial.pd'), align: 'right' },
{ width: 30, name: 'count', label: $t('io.sc.engine.mv.result.binomial.count'), align: 'right' },
{ width: 50, name: 'defaultCount', label: $t('io.sc.engine.mv.result.binomial.defaultCount'), align: 'right' },
{ width: 50, name: 'ndAvg', label: $t('io.sc.engine.mv.result.binomial.ndAvg'), align: 'right' },
{ width: 50, name: 'ndSd', label: $t('io.sc.engine.mv.result.binomial.ndSd'), align: 'right' },
{ width: 50, name: 'sl', label: $t('io.sc.engine.mv.result.binomial.sl'), align: 'right' },
{ width: 50, name: 'cl', label: $t('io.sc.engine.mv.result.binomial.cl'), align: 'right' },
{ width: 50, name: 'zUpper', label: $t('io.sc.engine.mv.result.binomial.zUpper'), align: 'right' },
{ width: 50, name: 'zLower', label: $t('io.sc.engine.mv.result.binomial.zLower'), align: 'right' },
{ width: 50, name: 'dUpper', label: $t('io.sc.engine.mv.result.binomial.dUpper'), align: 'right' },
{ width: 50, name: 'dLower', label: $t('io.sc.engine.mv.result.binomial.dLower'), align: 'right' },
{ width: 50, name: 'leUpper', label: $t('io.sc.engine.mv.result.binomial.leUpper'), align: 'right' },
{ width: 50, name: 'geLower', label: $t('io.sc.engine.mv.result.binomial.geLower'), align: 'right' },
{ width: 50, name: 'ndAvg', label: $t('io.sc.engine.mv.result.binomial.ndAvg'), align: 'right', hidden: true },
{ width: 50, name: 'ndSd', label: $t('io.sc.engine.mv.result.binomial.ndSd'), align: 'right', hidden: true },
{ width: 50, name: 'sl', label: $t('io.sc.engine.mv.result.binomial.sl'), align: 'right', hidden: true },
{ width: 50, name: 'cl', label: $t('io.sc.engine.mv.result.binomial.cl'), align: 'right', hidden: true },
{ width: 50, name: 'zUpper', label: $t('io.sc.engine.mv.result.binomial.zUpper'), align: 'right', hidden: true },
{ width: 50, name: 'zLower', label: $t('io.sc.engine.mv.result.binomial.zLower'), align: 'right', hidden: true },
{ width: 50, name: 'dUpper', label: $t('io.sc.engine.mv.result.binomial.dUpper'), align: 'right', hidden: true },
{ width: 50, name: 'dLower', label: $t('io.sc.engine.mv.result.binomial.dLower'), align: 'right', hidden: true },
{ width: 50, name: 'leUpper', label: $t('io.sc.engine.mv.result.binomial.leUpper'), align: 'center', format: passOrNotFormater },
{ width: 50, name: 'geLower', label: $t('io.sc.engine.mv.result.binomial.geLower'), align: 'center', format: passOrNotFormater },
]"
></w-grid>
</div>
</div>
</q-tab-panel>
<q-tab-panel name="sample" class="px-0">
<w-grid
:title="$t('io.sc.engine.mv.sample.sample.grid.title')"
:config-button="true"
selection="multiple"
:checkbox-selection="false"
:data-url="Environment.apiContextPath('/api/mv/viewer/sample/data?modelId=' + detailRef.modelId + '&validateDate=' + detailRef.validateDate)"
:pageable="true"
:toolbar-configure="{ noIcon: false }"
:toolbar-actions="['refresh', 'separator', 'view', 'separator', 'export']"
:columns="[
{ width: 100, name: 'customId', label: $t('io.sc.engine.mv.sample.sample.grid.entity.customId') },
{ width: 100, name: 'customName', label: $t('io.sc.engine.mv.sample.sample.grid.entity.customName') },
{ width: 90, name: 'score', label: $t('io.sc.engine.mv.sample.sample.grid.entity.score'), align: 'right' },
{ width: 90, name: 'scoreQuantitative', label: $t('io.sc.engine.mv.sample.sample.grid.entity.scoreQuantitative'), align: 'right' },
{ width: 90, name: 'scoreQualitative', label: $t('io.sc.engine.mv.sample.sample.grid.entity.scoreQualitative'), align: 'right' },
{ width: 60, name: 'level', label: $t('io.sc.engine.mv.sample.sample.grid.entity.level'), align: 'right' },
{ width: 90, name: 'pd', label: $t('io.sc.engine.mv.sample.sample.grid.entity.pd'), align: 'right' },
{ width: 110, name: 'scoreBeginDate', label: $t('io.sc.engine.mv.sample.sample.grid.entity.beginDate') },
{ width: 110, name: 'scoreEndDate', label: $t('io.sc.engine.mv.sample.sample.grid.entity.endDate') },
{ width: 60, name: 'status', label: $t('status') },
{
width: 110,
name: 'defaultConfirmDate',
label: $t('io.sc.engine.mv.sample.sample.grid.entity.defaultConfirmDate'),
format: Formater.dateOnly(),
},
]"
:viewer="{
panel: {
columnNum: 1,
fields: [
{ name: 'customId', label: $t('io.sc.engine.mv.sample.sample.grid.entity.customId') },
{ name: 'customName', label: $t('io.sc.engine.mv.sample.sample.grid.entity.customName') },
{ name: 'modelId', label: $t('io.sc.engine.mv.sample.sample.grid.entity.modelId') },
{ name: 'modelName', label: $t('io.sc.engine.mv.sample.sample.grid.entity.modelName') },
{ name: 'score', label: $t('io.sc.engine.mv.sample.sample.grid.entity.score') },
{ name: 'scoreQuantitative', label: $t('io.sc.engine.mv.sample.sample.grid.entity.scoreQuantitative') },
{ name: 'scoreQualitative', label: $t('io.sc.engine.mv.sample.sample.grid.entity.scoreQualitative') },
{ name: 'level', label: $t('io.sc.engine.mv.sample.sample.grid.entity.level') },
{ name: 'pd', label: $t('io.sc.engine.mv.sample.sample.grid.entity.pd') },
{ name: 'scoreBeginDate', label: $t('io.sc.engine.mv.sample.sample.grid.entity.beginDate') },
{ name: 'scoreEndDate', label: $t('io.sc.engine.mv.sample.sample.grid.entity.endDate') },
{ width: 60, name: 'status', label: $t('status') },
{ name: 'defaultConfirmDate', label: $t('io.sc.engine.mv.sample.sample.grid.entity.defaultConfirmDate') },
],
},
}"
></w-grid>
</q-tab-panel>
</q-tab-panels>
</div>
<CurveDataDialog ref="curveDataDialogRef"></CurveDataDialog>
@ -117,12 +185,12 @@
import { ref, nextTick, computed } from 'vue';
import { useI18n } from 'vue-i18n';
import * as echarts from 'echarts';
import { axios, Environment } from 'platform-core';
import { axios, Environment, Tools, Formater } from 'platform-core';
import CurveDataDialog from './CurveDataDialog.vue';
const { t } = useI18n();
const referenceValues = {
const scReferenceValues = {
auc: [
{ label: '[0.00 - 0.65)', from: 0, to: 0.65 },
{ label: '[0.65 - 0.75)', from: 0.65, to: 0.75 },
@ -148,70 +216,100 @@ const referenceValues = {
{ label: '[0.75 - 1.00)', from: 0.75, to: 1 },
],
};
const referenceLevels = computed(() => {
const scReferenceLevels = computed(() => {
return [
t('io.sc.platform.core.enums.GoodLevel.POOR'),
t('io.sc.platform.core.enums.GoodLevel.MEDIUM'),
t('io.sc.platform.core.enums.GoodLevel.GOOD'),
t('io.sc.platform.core.enums.GoodLevel.VERY_GOOD'),
t('io.sc.platform.core.enums.GoodLevel.EXCELLENT'),
t('io.sc.platform.core.enums.GoodLevel.PERFECT'),
t('io.sc.engine.mv.enums.GoodLevel.POOR'),
t('io.sc.engine.mv.enums.GoodLevel.MEDIUM'),
t('io.sc.engine.mv.enums.GoodLevel.GOOD'),
t('io.sc.engine.mv.enums.GoodLevel.VERY_GOOD'),
t('io.sc.engine.mv.enums.GoodLevel.EXCELLENT'),
t('io.sc.engine.mv.enums.GoodLevel.PERFECT'),
];
});
const stReferenceValues = {
psi: [
{ label: '[0.00 - 0.25)', from: -999, to: 0.25 },
{ label: '[0.25 - 1.00)', from: 0.25, to: 999 },
],
};
const stReferenceLevels = computed(() => {
return [t('io.sc.engine.mv.enums.Stability.yes'), t('io.sc.engine.mv.enums.Stability.no')];
});
const dialogRef = ref();
const detailRef = ref();
const selectedTabRef = ref('discrimination');
const curveDataDialogRef = ref();
const chiSquareValueRef = ref(0);
let rocEchart;
let capEchart;
let ksEchart;
let psiEchart;
const open = (detail: any) => {
detailRef.value = detail;
dialogRef.value.show();
selectedTabRef.value = 'discrimination';
tabChanged();
};
const tabChanged = () => {
nextTick(() => {
if ('discrimination' === selectedTabRef.value) {
// roc
if (!rocEchart) {
rocEchart = echarts.init(document.getElementById('rocEchart'));
rocEchart = echarts.init(document.getElementById('rocEchart'), null, { width: 400, height: 300 });
} else {
rocEchart.dispose();
rocEchart = echarts.init(document.getElementById('rocEchart'), null, { width: 400, height: 300 });
}
axios
.get(Environment.apiContextPath('/api/mv/sc/cap/option?modelId=' + detailRef.value.modelId + '&validateDate=' + detailRef.value.validateDate))
.get(Environment.apiContextPath('/api/mv/viewer/roc/option?modelId=' + detailRef.value.modelId + '&validateDate=' + detailRef.value.validateDate))
.then((response) => {
rocEchart?.setOption(response.data);
rocEchart?.resize();
});
// cap
if (!capEchart) {
capEchart = echarts.init(document.getElementById('capEchart'));
capEchart = echarts.init(document.getElementById('capEchart'), null, { width: 400, height: 300 });
} else {
capEchart.dispose();
capEchart = echarts.init(document.getElementById('capEchart'), null, { width: 400, height: 300 });
}
axios
.get(Environment.apiContextPath('/api/mv/sc/cap/option?modelId=' + detailRef.value.modelId + '&validateDate=' + detailRef.value.validateDate))
.get(Environment.apiContextPath('/api/mv/viewer/cap/option?modelId=' + detailRef.value.modelId + '&validateDate=' + detailRef.value.validateDate))
.then((response) => {
capEchart?.setOption(response.data);
capEchart?.resize();
});
// ks
if (!ksEchart) {
ksEchart = echarts.init(document.getElementById('ksEchart'));
ksEchart = echarts.init(document.getElementById('ksEchart'), null, { width: 400, height: 300 });
} else {
ksEchart.dispose();
ksEchart = echarts.init(document.getElementById('ksEchart'), null, { width: 400, height: 300 });
}
axios
.get(Environment.apiContextPath('/api/mv/sc/ks/option?modelId=' + detailRef.value.modelId + '&validateDate=' + detailRef.value.validateDate))
.get(Environment.apiContextPath('/api/mv/viewer/ks/option?modelId=' + detailRef.value.modelId + '&validateDate=' + detailRef.value.validateDate))
.then((response) => {
ksEchart?.setOption(response.data);
ksEchart?.resize();
});
} else if ('stability' === selectedTabRef.value) {
// psi
if (!psiEchart) {
psiEchart = echarts.init(document.getElementById('psiEchart'));
psiEchart = echarts.init(document.getElementById('psiEchart'), null, { width: 400, height: 300 });
} else {
psiEchart.dispose();
psiEchart = echarts.init(document.getElementById('psiEchart'), null, { width: 400, height: 300 });
}
axios
.get(Environment.apiContextPath('/api/mv/st/psi/option?modelId=' + detailRef.value.modelId + '&validateDate=' + detailRef.value.validateDate))
.get(Environment.apiContextPath('/api/mv/viewer/psi/option?modelId=' + detailRef.value.modelId + '&validateDate=' + detailRef.value.validateDate))
.then((response) => {
psiEchart?.setOption(response.data);
psiEchart?.resize();
@ -244,6 +342,23 @@ const showData = (type: string) => {
curveDataDialogRef.value.open(type, detailRef.value);
};
const passOrNotFormater = (value) => {
if (Tools.isUndefinedOrNull(value)) {
return '';
}
if (value === 1) {
return {
componentType: 'QIcon',
attrs: { name: 'bi-check-circle', size: '20px', color: 'green' },
};
} else {
return {
componentType: 'QIcon',
attrs: { name: 'bi-x-circle', size: '20px', color: 'red' },
};
}
};
defineExpose({
open,
close,

97
io.sc.engine.mv.frontend/src/views/sample/Sample.vue

@ -1,67 +1,55 @@
<template>
<div>
<q-tabs v-model="selectedTabRef" inline-label align="left" :breakpoint="0" no-caps>
<q-tab name="sample" icon="bi-people" :label="$t('io.sc.engine.mv.sample.tabs.sample')" />
<q-tab name="scoreRecord" icon="bi-diagram-3" :label="$t('io.sc.engine.mv.sample.tabs.scoreRecord')" />
<q-tab name="defaultRecord" icon="bi-diagram-3" :label="$t('io.sc.engine.mv.sample.tabs.defaultRecord')" />
<q-tab name="scoreRecord" :label="$t('io.sc.engine.mv.sample.tabs.scoreRecord')" />
<q-tab name="defaultRecord" :label="$t('io.sc.engine.mv.sample.tabs.defaultRecord')" />
</q-tabs>
<q-tab-panels v-model="selectedTabRef" animated swipeable keep-alive>
<q-tab-panel name="sample" class="px-0">
<w-grid
:title="$t('io.sc.engine.mv.sample.sample.grid.title')"
:config-button="true"
selection="multiple"
:checkbox-selection="false"
:data-url="Environment.apiContextPath('/api/mv/sample')"
:pageable="true"
:toolbar-configure="{ noIcon: false }"
:toolbar-actions="['refresh', 'separator', 'view', 'separator', 'export']"
:columns="[
{ width: 100, name: 'customId', label: $t('io.sc.engine.mv.sample.sample.grid.entity.customId') },
{ width: 100, name: 'customName', label: $t('io.sc.engine.mv.sample.sample.grid.entity.customName') },
{ width: 120, name: 'modelId', label: $t('io.sc.engine.mv.sample.sample.grid.entity.modelId') },
{ width: 120, name: 'modelName', label: $t('io.sc.engine.mv.sample.sample.grid.entity.modelName') },
{ width: 110, name: 'defaultConfirmDate', label: $t('io.sc.engine.mv.sample.sample.grid.entity.defaultConfirmDate'), format: Formater.dateOnly() },
{ width: 90, name: 'pd', label: $t('io.sc.engine.mv.sample.sample.grid.entity.pd'), align: 'right' },
{ width: 90, name: 'score', label: $t('io.sc.engine.mv.sample.sample.grid.entity.score'), align: 'right' },
{ width: 90, name: 'scoreQuantitative', label: $t('io.sc.engine.mv.sample.sample.grid.entity.scoreQuantitative'), align: 'right' },
{ width: 90, name: 'scoreQualitative', label: $t('io.sc.engine.mv.sample.sample.grid.entity.scoreQualitative'), align: 'right' },
{ width: 60, name: 'level', label: $t('io.sc.engine.mv.sample.sample.grid.entity.level'), align: 'right' },
{ width: 110, name: 'scoreBeginDate', label: $t('io.sc.engine.mv.sample.sample.grid.entity.beginDate'), format: Formater.dateOnly() },
{ width: 110, name: 'scoreEndDate', label: $t('io.sc.engine.mv.sample.sample.grid.entity.endDate'), format: Formater.dateOnly() },
]"
:viewer="{
panel: {
columnNum: 1,
fields: [
{ name: 'customId', label: $t('io.sc.engine.mv.sample.sample.grid.entity.customId') },
{ name: 'customName', label: $t('io.sc.engine.mv.sample.sample.grid.entity.customName') },
{ name: 'modelId', label: $t('io.sc.engine.mv.sample.sample.grid.entity.modelId') },
{ name: 'modelName', label: $t('io.sc.engine.mv.sample.sample.grid.entity.modelName') },
{ name: 'pd', label: $t('io.sc.engine.mv.sample.sample.grid.entity.pd') },
{ name: 'score', label: $t('io.sc.engine.mv.sample.sample.grid.entity.score') },
{ name: 'scoreQuantitative', label: $t('io.sc.engine.mv.sample.sample.grid.entity.scoreQuantitative') },
{ name: 'scoreQualitative', label: $t('io.sc.engine.mv.sample.sample.grid.entity.scoreQualitative') },
{ name: 'level', label: $t('io.sc.engine.mv.sample.sample.grid.entity.level') },
{ name: 'scoreBeginDate', label: $t('io.sc.engine.mv.sample.sample.grid.entity.scoreBeginDate'), format: Formater.none() },
{ name: 'scoreEndDate', label: $t('io.sc.engine.mv.sample.sample.grid.entity.scoreEndDate'), format: Formater.none() },
{ name: 'defaultConfirmDate', label: $t('io.sc.engine.mv.sample.sample.grid.entity.defaultConfirmDate'), format: Formater.none() },
],
},
}"
></w-grid>
</q-tab-panel>
<q-tab-panel name="scoreRecord" class="px-0">
<w-grid
ref="scoreRecordGridRef"
:title="$t('io.sc.engine.mv.sample.scoreRecord.grid.title')"
:config-button="true"
selection="multiple"
:checkbox-selection="false"
:data-url="Environment.apiContextPath('/api/mv/sample/scoreRecord')"
:data-url="Environment.apiContextPath('/api/mv/viewer/scoreRecord')"
:pageable="true"
:toolbar-configure="{ noIcon: false }"
:toolbar-actions="['refresh', 'separator', 'view', 'separator', 'export']"
:toolbar-actions="[
'refresh',
'separator',
{
name: 'importExampleSample',
label: $t('io.sc.engine.mv.sample.action.importExampleSample'),
icon: 'bi-arrow-right-circle',
click: () => {
DialogManager.confirm($t('io.sc.engine.mv.sample.action.importExampleSample.tip'), () => {
axios.post(Environment.apiContextPath('/api/mv/sample/importExampleSample')).then(() => {
scoreRecordGridRef.refresh();
defaultRecordGridRef.refresh();
});
});
},
},
{
name: 'removeAllSample',
label: $t('io.sc.engine.mv.sample.action.removeAllSample'),
icon: 'bi-arrow-right-circle',
click: () => {
DialogManager.confirm($t('io.sc.engine.mv.sample.action.removeAllSample.tip'), () => {
axios.post(Environment.apiContextPath('/api/mv/sample/removeAllSample')).then(() => {
scoreRecordGridRef.refresh();
defaultRecordGridRef.refresh();
});
});
},
},
'separator',
'view',
'separator',
'export',
]"
:columns="[
{ width: 100, name: 'customId', label: $t('io.sc.engine.mv.sample.scoreRecord.grid.entity.customId') },
{ width: 100, name: 'customName', label: $t('io.sc.engine.mv.sample.scoreRecord.grid.entity.customName') },
@ -97,11 +85,12 @@
</q-tab-panel>
<q-tab-panel name="defaultRecord" class="px-0">
<w-grid
ref="defaultRecordGridRef"
:title="$t('io.sc.engine.mv.sample.defaultRecord.grid.title')"
:config-button="true"
selection="multiple"
:checkbox-selection="false"
:data-url="Environment.apiContextPath('/api/mv/sample/defaultRecord')"
:data-url="Environment.apiContextPath('/api/mv/viewer/defaultRecord')"
:pageable="true"
:toolbar-configure="{ noIcon: false }"
:toolbar-actions="['refresh', 'separator', 'view', 'separator', 'export']"
@ -125,7 +114,9 @@
</template>
<script setup lang="ts">
import { ref } from 'vue';
import { Environment, Formater } from 'platform-core';
import { axios, Environment, Formater, DialogManager } from 'platform-core';
const selectedTabRef = ref('sample');
const selectedTabRef = ref('scoreRecord');
const defaultRecordGridRef = ref();
const scoreRecordGridRef = ref();
</script>

15
io.sc.engine.mv.sample/src/main/java/io/sc/engine/mv/sample/controller/SampleWebController.java

@ -4,6 +4,8 @@ import io.sc.engine.mv.sample.service.CardGongXinImporterService;
import io.sc.engine.mv.sample.service.CardJingyingImporterService;
import io.sc.engine.mv.sample.service.DaiKuanImporterService;
import io.sc.engine.mv.sample.service.TestCaseImporterService;
import io.sc.engine.mv.viewer.service.DefaultRecordService;
import io.sc.engine.mv.viewer.service.ScoreRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@ -13,20 +15,27 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/api/mv/sample")
public class SampleWebController {
@Autowired private TestCaseImporterService testCaseImporterService;
@Autowired private CardGongXinImporterService cardGongXinImporterService;
@Autowired private CardJingyingImporterService cardJingyingImporterService;
@Autowired private DaiKuanImporterService daiKuanImporterService;
@Autowired private ScoreRecordService scoreRecordService;
@Autowired private DefaultRecordService defaultRecordService;
@PostMapping("testCase")
public void importTestCase() throws Exception {
testCaseImporterService.load();
}
@PostMapping("sample")
public void importSample() throws Exception{
@PostMapping("importExampleSample")
public void importExampleSample() throws Exception{
cardGongXinImporterService.load();
cardJingyingImporterService.load();
daiKuanImporterService.load();
}
@PostMapping("removeAllSample")
public void removeAllSample() throws Exception{
scoreRecordService.removeAll();
defaultRecordService.removeAll();
}
}

27
io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/controller/CfgBinomialWebController.java

@ -0,0 +1,27 @@
package io.sc.engine.mv.configure.controller;
import io.sc.engine.mv.configure.jpa.entity.CfgBinomial;
import io.sc.engine.mv.configure.jpa.repository.CfgBinomialRepository;
import io.sc.engine.mv.configure.service.CfgBinomialService;
import io.sc.engine.mv.configure.vo.CfgBinomialVo;
import io.sc.platform.mvc.controller.support.RestCrudController;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 二项检验标准正态分布显著水平下的Z值常量配置控制器
* @author wangshaoping
*
*/
@RestController
@RequestMapping("/api/mv/configure/binomial")
public class CfgBinomialWebController extends RestCrudController<CfgBinomialVo,CfgBinomial, String, CfgBinomialRepository, CfgBinomialService> {
@GetMapping("significanceLevels")
public List<Double> significanceLevels(){
return service.getRepository().findDistinctSignificanceLevel();
}
}

26
io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/controller/CfgChiSquareWebController.java

@ -0,0 +1,26 @@
package io.sc.engine.mv.configure.controller;
import io.sc.engine.mv.configure.jpa.entity.CfgChiSquare;
import io.sc.engine.mv.configure.jpa.repository.CfgChiSquareRepository;
import io.sc.engine.mv.configure.service.CfgChiSquareService;
import io.sc.engine.mv.configure.vo.CfgChiSquareVo;
import io.sc.platform.mvc.controller.support.RestCrudController;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 卡方分布临界值常量配置信息控制器
* @author wangshaoping
*
*/
@RestController
@RequestMapping("/api/mv/configure/chiSquare")
public class CfgChiSquareWebController extends RestCrudController<CfgChiSquareVo, CfgChiSquare, String, CfgChiSquareRepository, CfgChiSquareService> {
@GetMapping("significanceLevels")
public List<Double> significanceLevels(){
return service.getRepository().findDistinctSignificanceLevel();
}
}

12
io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/configuration/CfgCustomerDistributionWebController.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/controller/CfgCustomerDistributionWebController.java

@ -1,9 +1,9 @@
package io.sc.engine.mv.controller.configuration;
package io.sc.engine.mv.configure.controller;
import io.sc.engine.mv.jpa.entity.CfgCustomerDistribution;
import io.sc.engine.mv.jpa.repository.CfgCustomerDistributionRepository;
import io.sc.engine.mv.service.configuration.CfgCustomerDistributionService;
import io.sc.engine.mv.vo.CfgCustomerDistributionVo;
import io.sc.engine.mv.configure.jpa.entity.CfgCustomerDistribution;
import io.sc.engine.mv.configure.jpa.repository.CfgCustomerDistributionRepository;
import io.sc.engine.mv.configure.service.CfgCustomerDistributionService;
import io.sc.engine.mv.configure.vo.CfgCustomerDistributionVo;
import io.sc.platform.mvc.controller.support.RestCrudController;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.RestController;
*
*/
@RestController
@RequestMapping("/api/mv/config/distribution")
@RequestMapping("/api/mv/configure/distribution")
public class CfgCustomerDistributionWebController extends RestCrudController<CfgCustomerDistributionVo,CfgCustomerDistribution, String, CfgCustomerDistributionRepository, CfgCustomerDistributionService> {
}

12
io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/configuration/CfgCutOffPointWebController.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/controller/CfgCutOffPointWebController.java

@ -1,9 +1,9 @@
package io.sc.engine.mv.controller.configuration;
package io.sc.engine.mv.configure.controller;
import io.sc.engine.mv.jpa.entity.CfgCutOffPoint;
import io.sc.engine.mv.jpa.repository.CfgCutOffPointRepository;
import io.sc.engine.mv.service.configuration.CfgCutOffPointService;
import io.sc.engine.mv.vo.CfgCutOffPointVo;
import io.sc.engine.mv.configure.jpa.entity.CfgCutOffPoint;
import io.sc.engine.mv.configure.jpa.repository.CfgCutOffPointRepository;
import io.sc.engine.mv.configure.service.CfgCutOffPointService;
import io.sc.engine.mv.configure.vo.CfgCutOffPointVo;
import io.sc.platform.mvc.controller.support.RestCrudController;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.RestController;
*
*/
@RestController
@RequestMapping("/api/mv/config/cutOffPoint")
@RequestMapping("/api/mv/configure/cutOffPoint")
public class CfgCutOffPointWebController extends RestCrudController<CfgCutOffPointVo, CfgCutOffPoint, String, CfgCutOffPointRepository, CfgCutOffPointService> {
}

32
io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/controller/CfgDataExtractorWebController.java

@ -0,0 +1,32 @@
package io.sc.engine.mv.configure.controller;
import io.sc.engine.mv.configure.jpa.entity.CfgDataExtractor;
import io.sc.engine.mv.configure.jpa.repository.CfgDataExtractorRepository;
import io.sc.engine.mv.configure.service.CfgDataExtractorService;
import io.sc.engine.mv.configure.vo.CfgDataExtractorVo;
import io.sc.platform.mvc.controller.support.RestCrudController;
import io.sc.platform.system.ds.jpa.repository.DsRepository;
import oracle.jdbc.proxy.annotation.Post;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* 数据抽取器接口配置控制器
* @author wangshaoping
*
*/
@RestController
@RequestMapping("/api/mv/configure/dataExtractor")
public class CfgDataExtractorWebController extends RestCrudController<CfgDataExtractorVo, CfgDataExtractor, String, CfgDataExtractorRepository, CfgDataExtractorService> {
@Autowired private DsRepository dsRepository;
@PostMapping("test")
public void test(@RequestBody CfgDataExtractor object) throws Exception{
service.test(object);
}
@PostMapping("generateSample")
public void generateSample() throws Exception{
service.generateSample();
}
}

16
io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/configuration/CfgExecutorWebController.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/controller/CfgExecutorWebController.java

@ -1,24 +1,16 @@
package io.sc.engine.mv.controller.configuration;
package io.sc.engine.mv.configure.controller;
import io.sc.engine.mv.Executor;
import io.sc.engine.mv.ExecutorManager;
import io.sc.engine.mv.executor.support.ExecutorWrapper;
import io.sc.platform.mvc.controller.support.RestCrudController;
import io.sc.engine.mv.validator.executor.Executor;
import io.sc.engine.mv.validator.executor.ExecutorManager;
import io.sc.platform.orm.service.support.QueryParameter;
import io.sc.platform.orm.service.support.QueryResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
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.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
/**
* 模型验证执行器
@ -26,7 +18,7 @@ import java.util.Locale;
*
*/
@RestController
@RequestMapping("/api/mv/config/executor")
@RequestMapping("/api/mv/configure/executor")
public class CfgExecutorWebController {
@Autowired private ExecutorManager executorManager;

12
io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/configuration/CfgModelWebController.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/controller/CfgModelWebController.java

@ -1,9 +1,9 @@
package io.sc.engine.mv.controller.configuration;
package io.sc.engine.mv.configure.controller;
import io.sc.engine.mv.jpa.entity.CfgModel;
import io.sc.engine.mv.jpa.repository.CfgModelRepository;
import io.sc.engine.mv.service.configuration.CfgModelService;
import io.sc.engine.mv.vo.CfgModelVo;
import io.sc.engine.mv.configure.jpa.entity.CfgModel;
import io.sc.engine.mv.configure.jpa.repository.CfgModelRepository;
import io.sc.engine.mv.configure.service.CfgModelService;
import io.sc.engine.mv.configure.vo.CfgModelVo;
import io.sc.platform.mvc.controller.support.RestCrudController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
@ -17,7 +17,7 @@ import org.springframework.web.bind.annotation.RestController;
*
*/
@RestController
@RequestMapping("/api/mv/config/model")
@RequestMapping("/api/mv/configure/model")
public class CfgModelWebController extends RestCrudController<CfgModelVo, CfgModel, String, CfgModelRepository, CfgModelService> {
@Autowired private CfgModelService service;

18
io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/configuration/CfgScaleWebController.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/controller/CfgScaleWebController.java

@ -1,32 +1,26 @@
package io.sc.engine.mv.controller.configuration;
package io.sc.engine.mv.configure.controller;
import java.util.ArrayList;
import java.util.List;
import io.sc.engine.mv.jpa.entity.CfgScale;
import io.sc.engine.mv.jpa.repository.CfgScaleRepository;
import io.sc.engine.mv.service.configuration.CfgScaleService;
import io.sc.engine.mv.vo.CfgScaleVo;
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.engine.mv.configure.vo.CfgScaleVo;
import io.sc.platform.mvc.controller.support.RestCrudController;
import io.sc.platform.orm.service.support.QueryParameter;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 标尺配置控制器
* @author wangshaoping
*
*/
@RestController
@RequestMapping("/api/mv/config/scale")
@RequestMapping("/api/mv/configure/scale")
public class CfgScaleWebController extends RestCrudController<CfgScaleVo, CfgScale, String, CfgScaleRepository, CfgScaleService> {
@RequestMapping(value="getScaleLevelByModel/{modelId}")
@ResponseBody

12
io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/configuration/CfgThresholdWebController.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/controller/CfgThresholdWebController.java

@ -1,9 +1,9 @@
package io.sc.engine.mv.controller.configuration;
package io.sc.engine.mv.configure.controller;
import io.sc.engine.mv.jpa.entity.CfgThreshold;
import io.sc.engine.mv.jpa.repository.CfgThresholdRepository;
import io.sc.engine.mv.service.configuration.CfgThresholdService;
import io.sc.engine.mv.vo.CfgThresholdVo;
import io.sc.engine.mv.configure.jpa.entity.CfgThreshold;
import io.sc.engine.mv.configure.jpa.repository.CfgThresholdRepository;
import io.sc.engine.mv.configure.service.CfgThresholdService;
import io.sc.engine.mv.configure.vo.CfgThresholdVo;
import io.sc.platform.mvc.controller.support.RestCrudController;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.RestController;
*
*/
@RestController
@RequestMapping("/api/mv/config/threshold")
@RequestMapping("/api/mv/configure/threshold")
public class CfgThresholdWebController extends RestCrudController<CfgThresholdVo, CfgThreshold, String, CfgThresholdRepository, CfgThresholdService> {
}

4
io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/entity/CfgBinomial.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/entity/CfgBinomial.java

@ -1,6 +1,6 @@
package io.sc.engine.mv.jpa.entity;
package io.sc.engine.mv.configure.jpa.entity;
import io.sc.engine.mv.vo.CfgBinomialVo;
import io.sc.engine.mv.configure.vo.CfgBinomialVo;
import io.sc.platform.orm.entity.AuditorEntity;
import org.hibernate.annotations.GenericGenerator;

4
io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/entity/CfgChiSquare.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/entity/CfgChiSquare.java

@ -1,6 +1,6 @@
package io.sc.engine.mv.jpa.entity;
package io.sc.engine.mv.configure.jpa.entity;
import io.sc.engine.mv.vo.CfgChiSquareVo;
import io.sc.engine.mv.configure.vo.CfgChiSquareVo;
import io.sc.platform.orm.entity.AuditorEntity;
import org.hibernate.annotations.GenericGenerator;

6
io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/entity/CfgCustomerDistribution.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/entity/CfgCustomerDistribution.java

@ -1,6 +1,4 @@
package io.sc.engine.mv.jpa.entity;
import java.io.Serializable;
package io.sc.engine.mv.configure.jpa.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
@ -9,7 +7,7 @@ import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.Size;
import io.sc.engine.mv.vo.CfgCustomerDistributionVo;
import io.sc.engine.mv.configure.vo.CfgCustomerDistributionVo;
import io.sc.platform.orm.entity.AuditorEntity;
import org.hibernate.annotations.GenericGenerator;

5
io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/entity/CfgCutOffPoint.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/entity/CfgCutOffPoint.java

@ -1,6 +1,5 @@
package io.sc.engine.mv.jpa.entity;
package io.sc.engine.mv.configure.jpa.entity;
import java.io.Serializable;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
@ -14,7 +13,7 @@ import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.Size;
import io.sc.engine.mv.vo.CfgCutOffPointVo;
import io.sc.engine.mv.configure.vo.CfgCutOffPointVo;
import io.sc.platform.orm.entity.AuditorEntity;
import org.hibernate.annotations.GenericGenerator;

6
io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/entity/CfgDataExtractor.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/entity/CfgDataExtractor.java

@ -1,10 +1,8 @@
package io.sc.engine.mv.jpa.entity;
import java.io.Serializable;
package io.sc.engine.mv.configure.jpa.entity;
import javax.persistence.*;
import io.sc.engine.mv.vo.CfgDataExtractorVo;
import io.sc.engine.mv.configure.vo.CfgDataExtractorVo;
import io.sc.platform.orm.converter.NumericBooleanConverter;
import io.sc.platform.orm.entity.AuditorEntity;
import org.hibernate.annotations.GenericGenerator;

6
io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/entity/CfgModel.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/entity/CfgModel.java

@ -1,7 +1,7 @@
package io.sc.engine.mv.jpa.entity;
package io.sc.engine.mv.configure.jpa.entity;
import io.sc.engine.mv.ModelType;
import io.sc.engine.mv.vo.CfgModelVo;
import io.sc.engine.mv.enums.ModelType;
import io.sc.engine.mv.configure.vo.CfgModelVo;
import io.sc.platform.orm.entity.AuditorEntity;
import org.hibernate.annotations.GenericGenerator;

4
io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/entity/CfgScale.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/entity/CfgScale.java

@ -1,6 +1,6 @@
package io.sc.engine.mv.jpa.entity;
package io.sc.engine.mv.configure.jpa.entity;
import io.sc.engine.mv.vo.CfgScaleVo;
import io.sc.engine.mv.configure.vo.CfgScaleVo;
import io.sc.platform.orm.entity.AuditorEntity;
import org.hibernate.annotations.GenericGenerator;

4
io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/entity/CfgThreshold.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/entity/CfgThreshold.java

@ -1,6 +1,6 @@
package io.sc.engine.mv.jpa.entity;
package io.sc.engine.mv.configure.jpa.entity;
import io.sc.engine.mv.vo.CfgThresholdVo;
import io.sc.engine.mv.configure.vo.CfgThresholdVo;
import io.sc.platform.orm.entity.AuditorEntity;
import org.hibernate.annotations.GenericGenerator;

4
io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/repository/CfgBinomialRepository.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/repository/CfgBinomialRepository.java

@ -1,8 +1,8 @@
package io.sc.engine.mv.jpa.repository;
package io.sc.engine.mv.configure.jpa.repository;
import java.util.List;
import io.sc.engine.mv.jpa.entity.CfgBinomial;
import io.sc.engine.mv.configure.jpa.entity.CfgBinomial;
import io.sc.platform.orm.repository.DaoRepository;
import org.springframework.data.jpa.repository.Query;

4
io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/repository/CfgChiSquareRepository.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/repository/CfgChiSquareRepository.java

@ -1,6 +1,6 @@
package io.sc.engine.mv.jpa.repository;
package io.sc.engine.mv.configure.jpa.repository;
import io.sc.engine.mv.jpa.entity.CfgChiSquare;
import io.sc.engine.mv.configure.jpa.entity.CfgChiSquare;
import io.sc.platform.orm.repository.DaoRepository;
import org.springframework.data.jpa.repository.Query;

4
io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/repository/CfgCustomerDistributionRepository.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/repository/CfgCustomerDistributionRepository.java

@ -1,7 +1,7 @@
package io.sc.engine.mv.jpa.repository;
package io.sc.engine.mv.configure.jpa.repository;
import io.sc.engine.mv.jpa.entity.CfgCustomerDistribution;
import io.sc.engine.mv.configure.jpa.entity.CfgCustomerDistribution;
import io.sc.platform.orm.repository.DaoRepository;
public interface CfgCustomerDistributionRepository extends DaoRepository<CfgCustomerDistribution,String> {

4
io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/repository/CfgCutOffPointRepository.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/repository/CfgCutOffPointRepository.java

@ -1,7 +1,7 @@
package io.sc.engine.mv.jpa.repository;
package io.sc.engine.mv.configure.jpa.repository;
import io.sc.engine.mv.jpa.entity.CfgCutOffPoint;
import io.sc.engine.mv.configure.jpa.entity.CfgCutOffPoint;
import io.sc.platform.orm.repository.DaoRepository;
public interface CfgCutOffPointRepository extends DaoRepository<CfgCutOffPoint,String> {

4
io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/repository/CfgDataExtractorRepository.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/repository/CfgDataExtractorRepository.java

@ -1,6 +1,6 @@
package io.sc.engine.mv.jpa.repository;
package io.sc.engine.mv.configure.jpa.repository;
import io.sc.engine.mv.jpa.entity.CfgDataExtractor;
import io.sc.engine.mv.configure.jpa.entity.CfgDataExtractor;
import io.sc.platform.orm.repository.DaoRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;

4
io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/repository/CfgModelRepository.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/repository/CfgModelRepository.java

@ -1,6 +1,6 @@
package io.sc.engine.mv.jpa.repository;
package io.sc.engine.mv.configure.jpa.repository;
import io.sc.engine.mv.jpa.entity.CfgModel;
import io.sc.engine.mv.configure.jpa.entity.CfgModel;
import io.sc.platform.orm.repository.DaoRepository;
import java.util.List;

4
io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/repository/CfgScaleRepository.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/repository/CfgScaleRepository.java

@ -1,8 +1,8 @@
package io.sc.engine.mv.jpa.repository;
package io.sc.engine.mv.configure.jpa.repository;
import java.util.List;
import io.sc.engine.mv.jpa.entity.CfgScale;
import io.sc.engine.mv.configure.jpa.entity.CfgScale;
import io.sc.platform.orm.repository.DaoRepository;
import org.springframework.data.jpa.repository.Query;

4
io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/repository/CfgThresholdRepository.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/jpa/repository/CfgThresholdRepository.java

@ -1,6 +1,6 @@
package io.sc.engine.mv.jpa.repository;
package io.sc.engine.mv.configure.jpa.repository;
import io.sc.engine.mv.jpa.entity.CfgThreshold;
import io.sc.engine.mv.configure.jpa.entity.CfgThreshold;
import io.sc.platform.orm.repository.DaoRepository;
import java.util.List;

9
io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/CfgBinomialService.java

@ -0,0 +1,9 @@
package io.sc.engine.mv.configure.service;
import io.sc.engine.mv.configure.jpa.entity.CfgBinomial;
import io.sc.engine.mv.configure.jpa.repository.CfgBinomialRepository;
import io.sc.platform.orm.service.DaoService;
public interface CfgBinomialService extends DaoService<CfgBinomial, String, CfgBinomialRepository> {
}

10
io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/CfgChiSquareService.java

@ -0,0 +1,10 @@
package io.sc.engine.mv.configure.service;
import io.sc.engine.mv.configure.jpa.entity.CfgChiSquare;
import io.sc.engine.mv.configure.jpa.repository.CfgChiSquareRepository;
import io.sc.platform.orm.service.DaoService;
public interface CfgChiSquareService extends DaoService<CfgChiSquare, String, CfgChiSquareRepository> {
}

10
io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/CfgCustomerDistributionService.java

@ -0,0 +1,10 @@
package io.sc.engine.mv.configure.service;
import io.sc.engine.mv.configure.jpa.entity.CfgCustomerDistribution;
import io.sc.engine.mv.configure.jpa.repository.CfgCustomerDistributionRepository;
import io.sc.platform.orm.service.DaoService;
public interface CfgCustomerDistributionService extends DaoService<CfgCustomerDistribution, String, CfgCustomerDistributionRepository> {
}

12
io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/CfgCutOffPointService.java

@ -0,0 +1,12 @@
package io.sc.engine.mv.configure.service;
import io.sc.engine.mv.configure.jpa.entity.CfgCutOffPoint;
import io.sc.engine.mv.configure.jpa.repository.CfgCutOffPointRepository;
import io.sc.platform.orm.service.DaoService;
public interface CfgCutOffPointService extends DaoService<CfgCutOffPoint, String, CfgCutOffPointRepository> {
}

6
io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/configuration/CfgDataExtractorService.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/CfgDataExtractorService.java

@ -1,8 +1,8 @@
package io.sc.engine.mv.service.configuration;
package io.sc.engine.mv.configure.service;
import io.sc.engine.mv.jpa.entity.CfgDataExtractor;
import io.sc.engine.mv.jpa.repository.CfgDataExtractorRepository;
import io.sc.engine.mv.configure.jpa.entity.CfgDataExtractor;
import io.sc.engine.mv.configure.jpa.repository.CfgDataExtractorRepository;
import io.sc.platform.orm.service.DaoService;
public interface CfgDataExtractorService extends DaoService<CfgDataExtractor, String, CfgDataExtractorRepository> {

8
io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/configuration/CfgModelService.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/CfgModelService.java

@ -1,11 +1,9 @@
package io.sc.engine.mv.service.configuration;
package io.sc.engine.mv.configure.service;
import io.sc.engine.mv.jpa.entity.CfgModel;
import io.sc.engine.mv.jpa.repository.CfgModelRepository;
import io.sc.engine.mv.configure.jpa.entity.CfgModel;
import io.sc.engine.mv.configure.jpa.repository.CfgModelRepository;
import io.sc.platform.orm.service.DaoService;
import java.util.List;
public interface CfgModelService extends DaoService<CfgModel, String, CfgModelRepository> {
/**

10
io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/CfgScaleService.java

@ -0,0 +1,10 @@
package io.sc.engine.mv.configure.service;
import io.sc.engine.mv.configure.jpa.entity.CfgScale;
import io.sc.engine.mv.configure.jpa.repository.CfgScaleRepository;
import io.sc.platform.orm.service.DaoService;
public interface CfgScaleService extends DaoService<CfgScale, String, CfgScaleRepository> {
}

10
io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/CfgThresholdService.java

@ -0,0 +1,10 @@
package io.sc.engine.mv.configure.service;
import io.sc.engine.mv.configure.jpa.entity.CfgThreshold;
import io.sc.engine.mv.configure.jpa.repository.CfgThresholdRepository;
import io.sc.platform.orm.service.DaoService;
public interface CfgThresholdService extends DaoService<CfgThreshold, String, CfgThresholdRepository> {
}

8
io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/configuration/impl/CfgBinomialServiceImpl.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/impl/CfgBinomialServiceImpl.java

@ -1,10 +1,10 @@
package io.sc.engine.mv.service.configuration.impl;
package io.sc.engine.mv.configure.service.impl;
import java.util.List;
import io.sc.engine.mv.jpa.entity.CfgBinomial;
import io.sc.engine.mv.jpa.repository.CfgBinomialRepository;
import io.sc.engine.mv.service.configuration.CfgBinomialService;
import io.sc.engine.mv.configure.jpa.entity.CfgBinomial;
import io.sc.engine.mv.configure.jpa.repository.CfgBinomialRepository;
import io.sc.engine.mv.configure.service.CfgBinomialService;
import io.sc.platform.orm.service.impl.DaoServiceImpl;
import org.springframework.stereotype.Service;

8
io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/configuration/impl/CfgChiSquareServiceImpl.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/impl/CfgChiSquareServiceImpl.java

@ -1,10 +1,10 @@
package io.sc.engine.mv.service.configuration.impl;
package io.sc.engine.mv.configure.service.impl;
import java.util.List;
import io.sc.engine.mv.jpa.entity.CfgChiSquare;
import io.sc.engine.mv.jpa.repository.CfgChiSquareRepository;
import io.sc.engine.mv.service.configuration.CfgChiSquareService;
import io.sc.engine.mv.configure.jpa.entity.CfgChiSquare;
import io.sc.engine.mv.configure.jpa.repository.CfgChiSquareRepository;
import io.sc.engine.mv.configure.service.CfgChiSquareService;
import io.sc.platform.orm.service.impl.DaoServiceImpl;
import org.springframework.stereotype.Service;

8
io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/configuration/impl/CfgCustomerDistributionServiceImpl.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/impl/CfgCustomerDistributionServiceImpl.java

@ -1,8 +1,8 @@
package io.sc.engine.mv.service.configuration.impl;
package io.sc.engine.mv.configure.service.impl;
import io.sc.engine.mv.jpa.entity.CfgCustomerDistribution;
import io.sc.engine.mv.jpa.repository.CfgCustomerDistributionRepository;
import io.sc.engine.mv.service.configuration.CfgCustomerDistributionService;
import io.sc.engine.mv.configure.jpa.entity.CfgCustomerDistribution;
import io.sc.engine.mv.configure.jpa.repository.CfgCustomerDistributionRepository;
import io.sc.engine.mv.configure.service.CfgCustomerDistributionService;
import io.sc.platform.orm.service.impl.DaoServiceImpl;
import org.springframework.stereotype.Service;

8
io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/configuration/impl/CfgCutOffPointServiceImpl.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/impl/CfgCutOffPointServiceImpl.java

@ -1,10 +1,10 @@
package io.sc.engine.mv.service.configuration.impl;
package io.sc.engine.mv.configure.service.impl;
import java.util.List;
import io.sc.engine.mv.jpa.entity.CfgCutOffPoint;
import io.sc.engine.mv.jpa.repository.CfgCutOffPointRepository;
import io.sc.engine.mv.service.configuration.CfgCutOffPointService;
import io.sc.engine.mv.configure.jpa.entity.CfgCutOffPoint;
import io.sc.engine.mv.configure.jpa.repository.CfgCutOffPointRepository;
import io.sc.engine.mv.configure.service.CfgCutOffPointService;
import io.sc.platform.orm.service.impl.DaoServiceImpl;
import org.springframework.stereotype.Service;

13
io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/configuration/impl/CfgDataExtractorServiceImpl.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/impl/CfgDataExtractorServiceImpl.java

@ -1,17 +1,14 @@
package io.sc.engine.mv.service.configuration.impl;
package io.sc.engine.mv.configure.service.impl;
import io.sc.engine.mv.DataExtractorManager;
import io.sc.engine.mv.jpa.entity.CfgDataExtractor;
import io.sc.engine.mv.jpa.repository.CfgDataExtractorRepository;
import io.sc.engine.mv.service.configuration.CfgDataExtractorService;
import io.sc.platform.core.Environment;
import io.sc.engine.mv.validator.extractor.DataExtractorManager;
import io.sc.engine.mv.configure.jpa.entity.CfgDataExtractor;
import io.sc.engine.mv.configure.jpa.repository.CfgDataExtractorRepository;
import io.sc.engine.mv.configure.service.CfgDataExtractorService;
import io.sc.platform.core.support.ProgressInfo;
import io.sc.platform.core.util.FileUtil;
import io.sc.platform.orm.api.exception.UpdateNullNewObjectException;
import io.sc.platform.orm.service.impl.DaoServiceImpl;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

10
io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/configuration/impl/CfgModelServiceImpl.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/impl/CfgModelServiceImpl.java

@ -1,9 +1,9 @@
package io.sc.engine.mv.service.configuration.impl;
package io.sc.engine.mv.configure.service.impl;
import io.sc.engine.mv.ModelType;
import io.sc.engine.mv.jpa.entity.CfgModel;
import io.sc.engine.mv.jpa.repository.CfgModelRepository;
import io.sc.engine.mv.service.configuration.CfgModelService;
import io.sc.engine.mv.enums.ModelType;
import io.sc.engine.mv.configure.jpa.entity.CfgModel;
import io.sc.engine.mv.configure.jpa.repository.CfgModelRepository;
import io.sc.engine.mv.configure.service.CfgModelService;
import io.sc.platform.orm.service.impl.DaoServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;

8
io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/configuration/impl/CfgScaleServiceImpl.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/impl/CfgScaleServiceImpl.java

@ -1,8 +1,8 @@
package io.sc.engine.mv.service.configuration.impl;
package io.sc.engine.mv.configure.service.impl;
import io.sc.engine.mv.jpa.entity.CfgScale;
import io.sc.engine.mv.jpa.repository.CfgScaleRepository;
import io.sc.engine.mv.service.configuration.CfgScaleService;
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 org.springframework.stereotype.Service;

8
io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/configuration/impl/CfgThresholdServiceImpl.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/service/impl/CfgThresholdServiceImpl.java

@ -1,8 +1,8 @@
package io.sc.engine.mv.service.configuration.impl;
package io.sc.engine.mv.configure.service.impl;
import io.sc.engine.mv.jpa.entity.CfgThreshold;
import io.sc.engine.mv.jpa.repository.CfgThresholdRepository;
import io.sc.engine.mv.service.configuration.CfgThresholdService;
import io.sc.engine.mv.configure.jpa.entity.CfgThreshold;
import io.sc.engine.mv.configure.jpa.repository.CfgThresholdRepository;
import io.sc.engine.mv.configure.service.CfgThresholdService;
import io.sc.platform.orm.service.impl.DaoServiceImpl;
import org.springframework.stereotype.Service;

2
io.sc.engine.mv/src/main/java/io/sc/engine/mv/vo/CfgBinomialVo.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/vo/CfgBinomialVo.java

@ -1,4 +1,4 @@
package io.sc.engine.mv.vo;
package io.sc.engine.mv.configure.vo;
import io.sc.platform.orm.api.vo.AuditorVo;

2
io.sc.engine.mv/src/main/java/io/sc/engine/mv/vo/CfgChiSquareVo.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/vo/CfgChiSquareVo.java

@ -1,4 +1,4 @@
package io.sc.engine.mv.vo;
package io.sc.engine.mv.configure.vo;
import io.sc.platform.orm.api.vo.AuditorVo;

2
io.sc.engine.mv/src/main/java/io/sc/engine/mv/vo/CfgCustomerDistributionVo.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/vo/CfgCustomerDistributionVo.java

@ -1,4 +1,4 @@
package io.sc.engine.mv.vo;
package io.sc.engine.mv.configure.vo;
import io.sc.platform.orm.api.vo.AuditorVo;

2
io.sc.engine.mv/src/main/java/io/sc/engine/mv/vo/CfgCutOffPointVo.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/vo/CfgCutOffPointVo.java

@ -1,4 +1,4 @@
package io.sc.engine.mv.vo;
package io.sc.engine.mv.configure.vo;
import io.sc.platform.orm.api.vo.AuditorVo;

2
io.sc.engine.mv/src/main/java/io/sc/engine/mv/vo/CfgDataExtractorVo.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/vo/CfgDataExtractorVo.java

@ -1,4 +1,4 @@
package io.sc.engine.mv.vo;
package io.sc.engine.mv.configure.vo;
import io.sc.platform.orm.api.vo.AuditorVo;

4
io.sc.engine.mv/src/main/java/io/sc/engine/mv/vo/CfgModelVo.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/vo/CfgModelVo.java

@ -1,6 +1,6 @@
package io.sc.engine.mv.vo;
package io.sc.engine.mv.configure.vo;
import io.sc.engine.mv.ModelType;
import io.sc.engine.mv.enums.ModelType;
import io.sc.platform.orm.api.vo.AuditorVo;

2
io.sc.engine.mv/src/main/java/io/sc/engine/mv/vo/CfgScaleVo.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/vo/CfgScaleVo.java

@ -1,4 +1,4 @@
package io.sc.engine.mv.vo;
package io.sc.engine.mv.configure.vo;
import io.sc.platform.orm.api.vo.AuditorVo;

2
io.sc.engine.mv/src/main/java/io/sc/engine/mv/vo/CfgThresholdVo.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/configure/vo/CfgThresholdVo.java

@ -1,4 +1,4 @@
package io.sc.engine.mv.vo;
package io.sc.engine.mv.configure.vo;
import io.sc.platform.orm.api.vo.AuditorVo;

21
io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/ShowSampleWebController.java

@ -1,21 +0,0 @@
package io.sc.engine.mv.controller;
import io.sc.engine.mv.jpa.entity.GeneralSampleHistory;
import io.sc.engine.mv.jpa.entity.id.GeneralSampleHistoryId;
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.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* 查询模型验证样本数据控制器
* @author wangshaoping
*
*/
@Controller
@RequestMapping("/api/mv/sample")
public class ShowSampleWebController extends RestCrudController<GeneralSampleHistoryVo,GeneralSampleHistory, GeneralSampleHistoryId, GeneralSampleHistoryRepository, GeneralSampleHistoryService> {
}

33
io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/coe/BinomialWebController.java

@ -1,33 +0,0 @@
package io.sc.engine.mv.controller.coe;
import io.sc.engine.mv.jpa.entity.CoeBinomialHistory;
import io.sc.engine.mv.jpa.repository.CoeBinomialHistoryRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.ExampleMatcher;
import org.springframework.data.domain.ExampleMatcher.StringMatcher;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api/mv/coe/binomial")
public class BinomialWebController {
@Autowired private CoeBinomialHistoryRepository coeBinomialHistoryRepository;
@GetMapping(value="")
public List<CoeBinomialHistory> iscFetch(CoeBinomialHistory history){
return fetch(history);
}
private List<CoeBinomialHistory> fetch(CoeBinomialHistory history){
ExampleMatcher matcher = ExampleMatcher.matching()
.withIgnoreNullValues()
.withIgnoreCase()
.withStringMatcher(StringMatcher.CONTAINING);
Example<CoeBinomialHistory> example = Example.of(history, matcher);
List<CoeBinomialHistory> result =coeBinomialHistoryRepository.findAll(example);
return result;
}
}

33
io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/coe/ChiSquareWebController.java

@ -1,33 +0,0 @@
package io.sc.engine.mv.controller.coe;
import io.sc.engine.mv.jpa.entity.CoeChiSquareHistory;
import io.sc.engine.mv.jpa.repository.CoeChiSquareHistoryRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.ExampleMatcher;
import org.springframework.data.domain.ExampleMatcher.StringMatcher;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api/mv/coe/chiSquare")
public class ChiSquareWebController {
@Autowired private CoeChiSquareHistoryRepository coeChiSquareHistoryRepository;
@GetMapping("")
public List<CoeChiSquareHistory> iscFetch(CoeChiSquareHistory psiHistory){
return fetch(psiHistory);
}
private List<CoeChiSquareHistory> fetch(CoeChiSquareHistory history){
ExampleMatcher matcher = ExampleMatcher.matching()
.withIgnoreNullValues()
.withIgnoreCase()
.withStringMatcher(StringMatcher.CONTAINING);
Example<CoeChiSquareHistory> example = Example.of(history, matcher);
List<CoeChiSquareHistory> result =coeChiSquareHistoryRepository.findAll(example);
return result;
}
}

20
io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/configuration/CfgBinomialWebController.java

@ -1,20 +0,0 @@
package io.sc.engine.mv.controller.configuration;
import io.sc.engine.mv.jpa.entity.CfgBinomial;
import io.sc.engine.mv.jpa.repository.CfgBinomialRepository;
import io.sc.engine.mv.service.configuration.CfgBinomialService;
import io.sc.engine.mv.vo.CfgBinomialVo;
import io.sc.platform.mvc.controller.support.RestCrudController;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 二项检验标准正态分布显著水平下的Z值常量配置控制器
* @author wangshaoping
*
*/
@RestController
@RequestMapping("/api/mv/config/binomial")
public class CfgBinomialWebController extends RestCrudController<CfgBinomialVo,CfgBinomial, String, CfgBinomialRepository, CfgBinomialService> {
}

20
io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/configuration/CfgChiSquareWebController.java

@ -1,20 +0,0 @@
package io.sc.engine.mv.controller.configuration;
import io.sc.engine.mv.jpa.entity.CfgChiSquare;
import io.sc.engine.mv.jpa.repository.CfgChiSquareRepository;
import io.sc.engine.mv.service.configuration.CfgChiSquareService;
import io.sc.engine.mv.vo.CfgChiSquareVo;
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/config/chiSquare")
public class CfgChiSquareWebController extends RestCrudController<CfgChiSquareVo, CfgChiSquare, String, CfgChiSquareRepository, CfgChiSquareService> {
}

35
io.sc.engine.mv/src/main/java/io/sc/engine/mv/controller/configuration/DataExtractorWebController.java

@ -1,35 +0,0 @@
package io.sc.engine.mv.controller.configuration;
import io.sc.engine.mv.jpa.entity.CfgDataExtractor;
import io.sc.engine.mv.jpa.repository.CfgDataExtractorRepository;
import io.sc.engine.mv.service.configuration.CfgDataExtractorService;
import io.sc.engine.mv.vo.CfgDataExtractorVo;
import io.sc.platform.mvc.controller.support.RestCrudController;
import io.sc.platform.system.ds.jpa.repository.DsRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
/**
* 数据抽取器接口配置控制器
* @author wangshaoping
*
*/
@RestController
@RequestMapping("/api/mv/config/dataExtractor")
public class DataExtractorWebController extends RestCrudController<CfgDataExtractorVo, CfgDataExtractor, String, CfgDataExtractorRepository, CfgDataExtractorService> {
@Autowired private DsRepository dsRepository;
@RequestMapping(value="test",method=RequestMethod.POST)
@ResponseBody
public void test(@RequestBody CfgDataExtractor object) throws Exception{
service.test(object);
}
@RequestMapping(value="generateSample",method=RequestMethod.POST)
@ResponseBody
public void generateSample() throws Exception{
service.generateSample();
}
}

4
io.sc.engine.mv/src/main/java/io/sc/engine/mv/echart/Tooltip.java

@ -1,4 +0,0 @@
package io.sc.engine.mv.echart;
public class Tooltip {
}

2
io.sc.engine.mv/src/main/java/io/sc/engine/mv/CoeResult.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/enums/CoeResult.java

@ -1,4 +1,4 @@
package io.sc.engine.mv;
package io.sc.engine.mv.enums;
/**
* 估值准确性检验结果枚举值

2
io.sc.engine.mv/src/main/java/io/sc/engine/mv/DataExtractorType.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/enums/DataExtractorType.java

@ -1,4 +1,4 @@
package io.sc.engine.mv;
package io.sc.engine.mv.enums;
public enum DataExtractorType {
SQL, //SQL 语句

2
io.sc.engine.mv/src/main/java/io/sc/engine/mv/ExecuteMode.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/enums/ExecuteMode.java

@ -1,4 +1,4 @@
package io.sc.engine.mv;
package io.sc.engine.mv.enums;
/**
* 模型验证执行模式

2
io.sc.engine.mv/src/main/java/io/sc/engine/mv/ModelType.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/enums/ModelType.java

@ -1,4 +1,4 @@
package io.sc.engine.mv;
package io.sc.engine.mv.enums;
/**
* 模型创建类型

2
io.sc.engine.mv/src/main/java/io/sc/engine/mv/ScaleType.java → io.sc.engine.mv/src/main/java/io/sc/engine/mv/enums/ScaleType.java

@ -1,4 +1,4 @@
package io.sc.engine.mv;
package io.sc.engine.mv.enums;
/**
* 标尺枚举值

4
io.sc.engine.mv/src/main/java/io/sc/engine/mv/exception/CutOffPointNotFoundException.java

@ -0,0 +1,4 @@
package io.sc.engine.mv.exception;
public class CutOffPointNotFoundException extends RuntimeException {
}

4
io.sc.engine.mv/src/main/java/io/sc/engine/mv/exception/ExecutorNotRunningException.java

@ -0,0 +1,4 @@
package io.sc.engine.mv.exception;
public class ExecutorNotRunningException extends RuntimeException{
}

4
io.sc.engine.mv/src/main/java/io/sc/engine/mv/exception/ExecutorRunningException.java

@ -0,0 +1,4 @@
package io.sc.engine.mv.exception;
public class ExecutorRunningException extends RuntimeException{
}

2
io.sc.engine.mv/src/main/java/io/sc/engine/mv/initializer/ConfigurationInitializer.java

@ -1,6 +1,6 @@
package io.sc.engine.mv.initializer;
import io.sc.engine.mv.service.configuration.*;
import io.sc.engine.mv.configure.service.*;
import io.sc.platform.core.initializer.ApplicationInitializer;
import io.sc.platform.core.initializer.ApplicationInitializerExecuteException;
import org.springframework.beans.factory.annotation.Autowired;

10
io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/repository/CoeBinomialHistoryRepository.java

@ -1,10 +0,0 @@
package io.sc.engine.mv.jpa.repository;
import io.sc.engine.mv.jpa.entity.CoeBinomialHistory;
import io.sc.engine.mv.jpa.entity.id.CoeBinomialHistoryId;
import io.sc.platform.orm.repository.DaoRepository;
public interface CoeBinomialHistoryRepository extends DaoRepository<CoeBinomialHistory, CoeBinomialHistoryId> {
}

10
io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/repository/CoeChiSquareHistoryRepository.java

@ -1,10 +0,0 @@
package io.sc.engine.mv.jpa.repository;
import io.sc.engine.mv.jpa.entity.CoeChiSquareHistory;
import io.sc.engine.mv.jpa.entity.id.CoeChiSquareHistoryId;
import io.sc.platform.orm.repository.DaoRepository;
public interface CoeChiSquareHistoryRepository extends DaoRepository<CoeChiSquareHistory, CoeChiSquareHistoryId> {
}

11
io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/repository/DefaultRecordRepository.java

@ -1,11 +0,0 @@
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<DefaultRecord, DefaultRecordId> {
}

9
io.sc.engine.mv/src/main/java/io/sc/engine/mv/jpa/repository/ScoreRecordRepository.java

@ -1,9 +0,0 @@
package io.sc.engine.mv.jpa.repository;
import io.sc.engine.mv.jpa.entity.ScoreRecord;
import io.sc.engine.mv.jpa.entity.id.ScoreRecordId;
import io.sc.platform.orm.repository.DaoRepository;
public interface ScoreRecordRepository extends DaoRepository<ScoreRecord, ScoreRecordId> {
}

9
io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/configuration/CfgBinomialService.java

@ -1,9 +0,0 @@
package io.sc.engine.mv.service.configuration;
import io.sc.engine.mv.jpa.entity.CfgBinomial;
import io.sc.engine.mv.jpa.repository.CfgBinomialRepository;
import io.sc.platform.orm.service.DaoService;
public interface CfgBinomialService extends DaoService<CfgBinomial, String, CfgBinomialRepository> {
}

10
io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/configuration/CfgChiSquareService.java

@ -1,10 +0,0 @@
package io.sc.engine.mv.service.configuration;
import io.sc.engine.mv.jpa.entity.CfgChiSquare;
import io.sc.engine.mv.jpa.repository.CfgChiSquareRepository;
import io.sc.platform.orm.service.DaoService;
public interface CfgChiSquareService extends DaoService<CfgChiSquare, String, CfgChiSquareRepository> {
}

10
io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/configuration/CfgCustomerDistributionService.java

@ -1,10 +0,0 @@
package io.sc.engine.mv.service.configuration;
import io.sc.engine.mv.jpa.entity.CfgCustomerDistribution;
import io.sc.engine.mv.jpa.repository.CfgCustomerDistributionRepository;
import io.sc.platform.orm.service.DaoService;
public interface CfgCustomerDistributionService extends DaoService<CfgCustomerDistribution, String, CfgCustomerDistributionRepository> {
}

12
io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/configuration/CfgCutOffPointService.java

@ -1,12 +0,0 @@
package io.sc.engine.mv.service.configuration;
import io.sc.engine.mv.jpa.entity.CfgCutOffPoint;
import io.sc.engine.mv.jpa.repository.CfgCutOffPointRepository;
import io.sc.platform.orm.service.DaoService;
public interface CfgCutOffPointService extends DaoService<CfgCutOffPoint, String, CfgCutOffPointRepository> {
}

10
io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/configuration/CfgScaleService.java

@ -1,10 +0,0 @@
package io.sc.engine.mv.service.configuration;
import io.sc.engine.mv.jpa.entity.CfgScale;
import io.sc.engine.mv.jpa.repository.CfgScaleRepository;
import io.sc.platform.orm.service.DaoService;
public interface CfgScaleService extends DaoService<CfgScale, String, CfgScaleRepository> {
}

10
io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/configuration/CfgThresholdService.java

@ -1,10 +0,0 @@
package io.sc.engine.mv.service.configuration;
import io.sc.engine.mv.jpa.entity.CfgThreshold;
import io.sc.engine.mv.jpa.repository.CfgThresholdRepository;
import io.sc.platform.orm.service.DaoService;
public interface CfgThresholdService extends DaoService<CfgThreshold, String, CfgThresholdRepository> {
}

11
io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/result/GeneralResultHistoryService.java

@ -1,11 +0,0 @@
package io.sc.engine.mv.service.result;
import io.sc.engine.mv.jpa.entity.GeneralResultHistory;
import io.sc.engine.mv.jpa.entity.id.GeneralResultHistoryId;
import io.sc.engine.mv.jpa.repository.GeneralResultHistoryRepository;
import io.sc.platform.orm.service.DaoService;
public interface GeneralResultHistoryService extends DaoService<GeneralResultHistory, GeneralResultHistoryId, GeneralResultHistoryRepository> {
}

11
io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/result/GeneralSampleHistoryService.java

@ -1,11 +0,0 @@
package io.sc.engine.mv.service.result;
import io.sc.engine.mv.jpa.entity.GeneralSampleHistory;
import io.sc.engine.mv.jpa.entity.id.GeneralSampleHistoryId;
import io.sc.engine.mv.jpa.repository.GeneralSampleHistoryRepository;
import io.sc.platform.orm.service.DaoService;
public interface GeneralSampleHistoryService extends DaoService<GeneralSampleHistory, GeneralSampleHistoryId, GeneralSampleHistoryRepository> {
}

13
io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/result/impl/GeneralSampleHistoryServiceImpl.java

@ -1,13 +0,0 @@
package io.sc.engine.mv.service.result.impl;
import io.sc.engine.mv.jpa.entity.GeneralSampleHistory;
import io.sc.engine.mv.jpa.entity.id.GeneralSampleHistoryId;
import io.sc.engine.mv.jpa.repository.GeneralSampleHistoryRepository;
import io.sc.engine.mv.service.result.GeneralSampleHistoryService;
import io.sc.platform.orm.service.impl.DaoServiceImpl;
import org.springframework.stereotype.Service;
@Service
public class GeneralSampleHistoryServiceImpl extends DaoServiceImpl<GeneralSampleHistory, GeneralSampleHistoryId, GeneralSampleHistoryRepository> implements GeneralSampleHistoryService {
}

9
io.sc.engine.mv/src/main/java/io/sc/engine/mv/service/sample/DefaultRecordService.java

@ -1,9 +0,0 @@
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<DefaultRecord, DefaultRecordId, DefaultRecordRepository> {
}

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save