diff --git a/app.platform/src/main/resources/app/platform/i18n/messages.properties b/app.platform/src/main/resources/app/platform/i18n/messages.properties index 47d1442f..5c80c7ce 100644 --- a/app.platform/src/main/resources/app/platform/i18n/messages.properties +++ b/app.platform/src/main/resources/app/platform/i18n/messages.properties @@ -1,3 +1,3 @@ -application.title=Application Platform +application.title=Risk Manager Platform application.version=$version application.copyright=Copyright \u00A9 2019\u20132022 \ No newline at end of file diff --git a/app.platform/src/main/resources/app/platform/i18n/messages_tw_CN.properties b/app.platform/src/main/resources/app/platform/i18n/messages_tw_CN.properties index df50125a..1c5d37e3 100644 --- a/app.platform/src/main/resources/app/platform/i18n/messages_tw_CN.properties +++ b/app.platform/src/main/resources/app/platform/i18n/messages_tw_CN.properties @@ -1,3 +1,3 @@ -application.title=\u61C9\u7528\u958B\u767C\u5E73\u53F0 +application.title=\u98A8\u96AA\u7BA1\u7406\u5E73\u53F0 application.version=$version application.copyright=Copyright \u00A9 2019\u20132022 \ No newline at end of file diff --git a/app.platform/src/main/resources/app/platform/i18n/messages_zh_CN.properties b/app.platform/src/main/resources/app/platform/i18n/messages_zh_CN.properties index 590e5ba7..0d793ded 100644 --- a/app.platform/src/main/resources/app/platform/i18n/messages_zh_CN.properties +++ b/app.platform/src/main/resources/app/platform/i18n/messages_zh_CN.properties @@ -1,3 +1,3 @@ -application.title=\u5E94\u7528\u5F00\u53D1\u5E73\u53F0 +application.title=\u98CE\u9669\u7BA1\u7406\u5E73\u53F0 application.version=$version application.copyright=Copyright \u00A9 2019\u20132022 \ No newline at end of file diff --git a/io.sc.algorithm.weka/src/main/resources/META-INF/services/io.sc.platform.core.initializer.ApplicationInitializer b/io.sc.algorithm.weka/src/main/resources/META-INF/services/io.sc.platform.core.initializer.ApplicationInitializer new file mode 100644 index 00000000..019d7272 --- /dev/null +++ b/io.sc.algorithm.weka/src/main/resources/META-INF/services/io.sc.platform.core.initializer.ApplicationInitializer @@ -0,0 +1 @@ +io.sc.algorithm.weka.initializer.WekaInitializer \ No newline at end of file diff --git a/io.sc.engine.st.frontend/src/components/index.ts b/io.sc.engine.st.frontend/src/components/index.ts index fd67a54a..55155f0f 100644 --- a/io.sc.engine.st.frontend/src/components/index.ts +++ b/io.sc.engine.st.frontend/src/components/index.ts @@ -2,14 +2,18 @@ * 此文件为自动生成文件,请勿修改 */ -import component_engine_st_factorManager from '@/views/FactorManager.vue'; -import component_engine_st_target from '@/views/Target.vue'; -import component_engine_st_ead from '@/views/EAD.vue'; +import component_engine_st_indepFactorManager from '@/views/IndepFactor/Manager.vue'; +import component_engine_st_depFactorManager from '@/views/DepFactor/Manager.vue'; +import component_engine_st_modelManager from '@/views/Model/Manager.vue'; +import component_engine_st_scenarioFactorManager from '@/views/Scenario/Manager.vue'; +import component_engine_st_testCaseManager from '@/views/TestCase/Manager.vue'; const localComponents = { - 'component.engine.st.factorManager': component_engine_st_factorManager, - 'component.engine.st.target': component_engine_st_target, - 'component.engine.st.ead': component_engine_st_ead, + 'component.engine.st.indepFactorManager': component_engine_st_indepFactorManager, + 'component.engine.st.depFactorManager': component_engine_st_depFactorManager, + 'component.engine.st.modelManager': component_engine_st_modelManager, + 'component.engine.st.scenarioFactorManager': component_engine_st_scenarioFactorManager, + 'component.engine.st.testCaseManager': component_engine_st_testCaseManager, }; export default localComponents; diff --git a/io.sc.engine.st.frontend/src/i18n/messages.json b/io.sc.engine.st.frontend/src/i18n/messages.json index b04b1e59..f9aaed0e 100644 --- a/io.sc.engine.st.frontend/src/i18n/messages.json +++ b/io.sc.engine.st.frontend/src/i18n/messages.json @@ -1,45 +1,68 @@ { "menu.engine.st":"Stress Test", - "menu.engine.st.factorManager":"Economic Factor", - "menu.engine.st.target": "Test Target Manager", - "menu.engine.st.indicator": "Test Indicator Manager", - "menu.engine.st.scenario": "Scenario Manager", - "menu.engine.st.ead": "Stress Test (EAD)", - - "engine.st.factorType.grid.title": "Factor Type", - "engine.st.factor.grid.title": "Factor", - - "engine.st.economicIndicator.grid.title": "Economic Indicator", - "engine.st.economicIndicator.grid.entity.periodType": "Period Type", - "engine.st.economicIndicator.grid.entity.GDP": "GDP(a hundred million)", - "engine.st.economicIndicator.grid.entity.M2": "M2(a hundred million)", - "engine.st.economicIndicator.grid.entity.CPI": "CPI", - "engine.st.economicIndicator.grid.entity.HPI": "HPI", - "engine.st.economicIndicator.grid.entity.PMI": "PMI", - "engine.st.economicIndicator.grid.entity.BLR": "BLR", - - "engine.st.target.grid.title": "Test Target", - "engine.st.targetIndicator.grid.title": "History Data", - "engine.st.targetIndicator.grid.entity.periodType": "Period Type", - "engine.st.targetIndicator.grid.entity.target": "Test Target", - "engine.st.targetIndicator.grid.entity.PD": "PD", - "engine.st.targetIndicator.grid.entity.PD.title": "Probability of Default", - "engine.st.targetIndicator.grid.entity.LGD": "LGD", - "engine.st.targetIndicator.grid.entity.LGD.title": "Loss Given Default", - "engine.st.targetIndicator.grid.entity.CCF": "CCF", - "engine.st.targetIndicator.grid.entity.CCF.title": "Credit Conversion Factors", + "menu.engine.st.indepFactorManager":"Economic Factor Manager", + "menu.engine.st.depFactorManager": "Test Target Manager", + "menu.engine.st.modelManager": "Conduct Model Manager", + "menu.engine.st.scenarioFactorManager": "Scenario Manager", + "menu.engine.st.testCaseManager": "Stress Test", + + "engine.st.indepFactorDefine.grid.title": "Independence Factors", + "engine.st.indepFactorDefine.grid.toolbar.addTop": "Top Folder", + "engine.st.indepFactorDefine.grid.toolbar.addChild": "Child Folder", + "engine.st.indepFactorDefine.grid.toolbar.addFactorDefine": "Factor", + "engine.st.indepFactorDefine.grid.entity.factorDefine": "Factor Define", + "engine.st.indepFactorDefine.grid.entity.formula": "Formula", + "engine.st.indepFactorDefine.grid.entity.delayFactorDefine": "Delay Reference Factor Define", + "engine.st.indepFactorDefine.grid.entity.delayIssue": "Delay Issue", + "engine.st.indepFactorDefine.grid.entity.differentialFactorDefine": "Differential Reference Factor Define", + "engine.st.indepFactorDefine.grid.entity.differentialDegree": "Differential Degree", + + "engine.st.depFactorDefine.grid.title": "Dependence Factors", + "engine.st.depFactorDefine.grid.toolbar.addTop": "Top Folder", + "engine.st.depFactorDefine.grid.toolbar.addChild": "Child Folder", + "engine.st.depFactorDefine.grid.toolbar.addFactorDefine": "Factor", + "engine.st.depFactorDefine.grid.entity.factorDefine": "Factor Define", + "engine.st.depFactorDefine.grid.entity.formula": "Formula", + "engine.st.depFactorDefine.grid.entity.reserveFormula": "Reserve Formula", + "engine.st.depFactorDefine.grid.entity.delayFactorDefine": "Delay Reference Factor Define", + "engine.st.depFactorDefine.grid.entity.delayIssue": "Delay Issue", + "engine.st.depFactorDefine.grid.entity.differentialFactorDefine": "Differential Reference Factor Define", + "engine.st.depFactorDefine.grid.entity.differentialDegree": "Differential Degree", + + "engine.st.model.grid.title": "Model", + "engine.st.model.grid.toolbar.buildModel": "Build Model", + "engine.st.model.grid.entity.depFactorDefine": "Dependence Factor", + "engine.st.model.grid.entity.raFreedomDegree": "Freedom", + "engine.st.model.grid.entity.raRsquared": "R-Square", + "engine.st.model.grid.entity.raAdjustedRsquared": "Adjust R-Square", + "engine.st.model.grid.entity.raFstatistic": "F", + "engine.st.model.grid.entity.formula": "Model Formula", + + "engine.st.model.indepFactorDefine.grid.title": "Independence Factor", + "engine.st.model.indepFactorDefine.grid.toolbar.selectIn": "Select In", + "engine.st.model.indepFactorDefine.grid.toolbar.selectOut": "Select Out", + "engine.st.model.indepFactorDefine.grid.toolbar.selectOut.tip": "Are you sure to select out?", + + "engine.st.model.selectIndepFactorDialog.title": "Select Independence Factor", + + "engine.st.model.analysisFactor.grid.title": "Variable Validate Result", + "engine.st.model.analysisFactor.grid.entity.variable": "Name", + "engine.st.model.analysisFactor.grid.entity.coefficient": "Coefficient", + "engine.st.model.analysisFactor.grid.entity.coefficientSe": "SE of Coefficient", + "engine.st.model.analysisFactor.grid.entity.t": "t", + + "engine.st.scenario.scenarioFactor.grid.toolbar.fillWithPercentile": "Percentile Fill", + "engine.st.scenario.scenarioFactor.grid.entity.valueLow": "Low Grade", + "engine.st.scenario.scenarioFactor.grid.entity.valueMid": "Mid Grade", + "engine.st.scenario.scenarioFactor.grid.entity.valueHigh": "High Grade", + + "engine.st.scenario.percentileDialog.title": "Percentile Setting", + "engine.st.scenario.percentileDialog.entity.precision": "Precision", + "engine.st.scenario.percentileDialog.entity.low": "Low Grade", + "engine.st.scenario.percentileDialog.entity.mid": "Mid Grade", + "engine.st.scenario.percentileDialog.entity.high": "High Grade", "engine.st.testCase.grid.title": "Test Case", - "engine.st.testCase.grid.toolbar.scenario": "Scenario", + "engine.st.testCase.grid.entity.model": "Stress Test Model", "engine.st.testCase.grid.toolbar.test": "Test", - "engine.st.testCase.grid.toolbar.viewResult": "View Result", - "engine.st.testCase.grid.entity.periodType": "Period Type", - - "engine.st.scenario.dialog.title": "Scenario Setting", - "engine.st.scenario.grid.title": "Indicator", - "engine.st.scenario.grid.entity.testCase": "Test Case", - "engine.st.scenario.grid.entity.indicator": "Indicator", - "engine.st.scenario.grid.entity.lowGrade": "Low Grade", - "engine.st.scenario.grid.entity.midGrade": "Mid Grade", - "engine.st.scenario.grid.entity.highGrade": "High Grade", } \ No newline at end of file diff --git a/io.sc.engine.st.frontend/src/i18n/messages_tw_CN.json b/io.sc.engine.st.frontend/src/i18n/messages_tw_CN.json index e8e761d6..630d0287 100644 --- a/io.sc.engine.st.frontend/src/i18n/messages_tw_CN.json +++ b/io.sc.engine.st.frontend/src/i18n/messages_tw_CN.json @@ -1,57 +1,68 @@ { "menu.engine.st":"壓力測試", - "menu.engine.st.factorManager":"宏觀經濟指標", - "menu.engine.st.target": "測試對象管理", - "menu.engine.st.indicator": "測試指標管理", - "menu.engine.st.scenario": "情景管理", - "menu.engine.st.ead": "壓力測試(風險暴露)", - - "engine.st.factorType.grid.title": "指標定義", - "engine.st.factor.grid.title": "指標", - - - "engine.st.economicIndicator.grid.title": "宏觀經濟指標", - "engine.st.economicIndicator.grid.entity.periodType": "週期", - "engine.st.economicIndicator.grid.entity.GDP": "GDP(億元)", - "engine.st.economicIndicator.grid.entity.GDP.title": "國內生產總值", - - "engine.st.economicIndicator.grid.entity.M2": "M2(億元)", - "engine.st.economicIndicator.grid.entity.M2.title": "廣義貨幣供應量", - - "engine.st.economicIndicator.grid.entity.CPI": "CPI", - "engine.st.economicIndicator.grid.entity.CPI.title": "消費價格指數", - - "engine.st.economicIndicator.grid.entity.HPI": "HPI", - "engine.st.economicIndicator.grid.entity.HPI.title": "房地產價格指數", - - "engine.st.economicIndicator.grid.entity.PMI": "PMI", - "engine.st.economicIndicator.grid.entity.PMI.title": "生產者物價指數", - - "engine.st.economicIndicator.grid.entity.BLR": "BLR", - "engine.st.economicIndicator.grid.entity.BLR.title": "貸款利率", - - "engine.st.target.grid.title": "測試目標", - "engine.st.targetIndicator.grid.title": "歷史數據", - "engine.st.targetIndicator.grid.entity.periodType": "週期", - "engine.st.targetIndicator.grid.entity.target": "測試目標", - "engine.st.targetIndicator.grid.entity.PD": "PD", - "engine.st.targetIndicator.grid.entity.PD.title": "違約概率", - "engine.st.targetIndicator.grid.entity.LGD": "LGD", - "engine.st.targetIndicator.grid.entity.LGD.title": "違約損失率", - "engine.st.targetIndicator.grid.entity.CCF": "CCF", - "engine.st.targetIndicator.grid.entity.CCF.title": "信用轉換係數", + "menu.engine.st.indepFactorManager":"宏觀經濟指標", + "menu.engine.st.depFactorManager": "測試對象管理", + "menu.engine.st.modelManager": "傳導模型", + "menu.engine.st.scenarioFactorManager": "情景管理", + "menu.engine.st.testCaseManager": "壓力測試", + + "engine.st.indepFactorDefine.grid.title": "自變量", + "engine.st.indepFactorDefine.grid.toolbar.addTop": "頂級文件夾", + "engine.st.indepFactorDefine.grid.toolbar.addChild": "子文件夾", + "engine.st.indepFactorDefine.grid.toolbar.addFactorDefine": "自變量", + "engine.st.indepFactorDefine.grid.entity.factorDefine": "自變量定義", + "engine.st.indepFactorDefine.grid.entity.formula": "公式", + "engine.st.indepFactorDefine.grid.entity.delayFactorDefine": "滯後引用自變量定義", + "engine.st.indepFactorDefine.grid.entity.delayIssue": "滯後期數", + "engine.st.indepFactorDefine.grid.entity.differentialFactorDefine": "差分引用自變量定義", + "engine.st.indepFactorDefine.grid.entity.differentialDegree": "差分階數", + + "engine.st.depFactorDefine.grid.title": "因變量", + "engine.st.depFactorDefine.grid.toolbar.addTop": "頂級文件夾", + "engine.st.depFactorDefine.grid.toolbar.addChild": "子文件夾", + "engine.st.depFactorDefine.grid.toolbar.addFactorDefine": "因變量", + "engine.st.depFactorDefine.grid.entity.factorDefine": "因變量定義", + "engine.st.depFactorDefine.grid.entity.formula": "公式", + "engine.st.depFactorDefine.grid.entity.reserveFormula": "反公式", + "engine.st.depFactorDefine.grid.entity.delayFactorDefine": "滯後引用因變量定義", + "engine.st.depFactorDefine.grid.entity.delayIssue": "滯後期數", + "engine.st.depFactorDefine.grid.entity.differentialFactorDefine": "差分引用因變量定義", + "engine.st.depFactorDefine.grid.entity.differentialDegree": "差分階數", + + "engine.st.model.grid.title": "模型列表", + "engine.st.model.grid.toolbar.buildModel": "構建模型", + "engine.st.model.grid.entity.depFactorDefine": "因變量", + "engine.st.model.grid.entity.raFreedomDegree": "自由度", + "engine.st.model.grid.entity.raRsquared": "R方", + "engine.st.model.grid.entity.raAdjustedRsquared": "調整R方", + "engine.st.model.grid.entity.raFstatistic": "F", + "engine.st.model.grid.entity.formula": "模型公式", + + "engine.st.model.indepFactorDefine.grid.title": "自變量列表", + "engine.st.model.indepFactorDefine.grid.toolbar.selectIn": "選入", + "engine.st.model.indepFactorDefine.grid.toolbar.selectOut": "選出", + "engine.st.model.indepFactorDefine.grid.toolbar.selectOut.tip": "您確定要選出嗎?", + + "engine.st.model.selectIndepFactorDialog.title": "選擇自變量", + + "engine.st.model.analysisFactor.grid.title": "變量檢驗結果", + "engine.st.model.analysisFactor.grid.entity.variable": "變量名稱", + "engine.st.model.analysisFactor.grid.entity.coefficient": "回歸係數", + "engine.st.model.analysisFactor.grid.entity.coefficientSe": "回歸係數標準誤差", + "engine.st.model.analysisFactor.grid.entity.t": "t檢驗", + + "engine.st.scenario.scenarioFactor.grid.toolbar.fillWithPercentile": "分位數填充", + "engine.st.scenario.scenarioFactor.grid.entity.valueLow": "輕度", + "engine.st.scenario.scenarioFactor.grid.entity.valueMid": "中度", + "engine.st.scenario.scenarioFactor.grid.entity.valueHigh": "重度", + + "engine.st.scenario.percentileDialog.title": "設置分位數參數", + "engine.st.scenario.percentileDialog.entity.precision": "小數精度", + "engine.st.scenario.percentileDialog.entity.low": "輕度", + "engine.st.scenario.percentileDialog.entity.mid": "中度", + "engine.st.scenario.percentileDialog.entity.high": "重度", "engine.st.testCase.grid.title": "測試用例", - "engine.st.testCase.grid.toolbar.scenario": "壓力情景", + "engine.st.testCase.grid.entity.model": "壓力測試傳導模型", "engine.st.testCase.grid.toolbar.test": "測試", - "engine.st.testCase.grid.toolbar.viewResult": "查看測試結果", - "engine.st.testCase.grid.entity.periodType": "週期", - - "engine.st.scenario.dialog.title": "壓力測試情景設置", - "engine.st.scenario.grid.title": "壓力測試情景指標", - "engine.st.scenario.grid.entity.testCase": "測試用例", - "engine.st.scenario.grid.entity.indicator": "指標", - "engine.st.scenario.grid.entity.lowGrade": "輕度", - "engine.st.scenario.grid.entity.midGrade": "中度", - "engine.st.scenario.grid.entity.highGrade": "重度", } \ No newline at end of file diff --git a/io.sc.engine.st.frontend/src/i18n/messages_zh_CN.json b/io.sc.engine.st.frontend/src/i18n/messages_zh_CN.json index 95c82db5..c9f64aaa 100644 --- a/io.sc.engine.st.frontend/src/i18n/messages_zh_CN.json +++ b/io.sc.engine.st.frontend/src/i18n/messages_zh_CN.json @@ -1,52 +1,71 @@ { "menu.engine.st":"压力测试", - "menu.engine.st.factorManager":"宏观经济指标", - "menu.engine.st.target": "测试对象管理", - "menu.engine.st.indicator": "测试指标管理", - "menu.engine.st.scenario": "情景管理", - "menu.engine.st.ead": "压力测试(风险暴露)", - - "engine.st.factorType.grid.title": "指标定义", - "engine.st.factor.grid.title": "指标", - - - "engine.st.economicIndicator.grid.title": "宏观经济指标", - "engine.st.economicIndicator.grid.entity.periodType": "周期", - "engine.st.economicIndicator.grid.entity.GDP": "GDP(亿元)", - "engine.st.economicIndicator.grid.entity.GDP.title": "国内生产总值", - "engine.st.economicIndicator.grid.entity.M2": "M2(亿元)", - "engine.st.economicIndicator.grid.entity.M2.title": "广义货币供应量", - "engine.st.economicIndicator.grid.entity.CPI": "CPI", - "engine.st.economicIndicator.grid.entity.CPI.title": "消费价格指数", - "engine.st.economicIndicator.grid.entity.HPI": "HPI", - "engine.st.economicIndicator.grid.entity.HPI.title": "房地产价格指数", - "engine.st.economicIndicator.grid.entity.PMI": "PMI", - "engine.st.economicIndicator.grid.entity.PMI.title": "生产者物价指数", - "engine.st.economicIndicator.grid.entity.BLR": "BLR", - "engine.st.economicIndicator.grid.entity.BLR.title": "贷款利率", - - "engine.st.target.grid.title": "测试目标", - "engine.st.targetIndicator.grid.title": "历史数据", - "engine.st.targetIndicator.grid.entity.periodType": "周期", - "engine.st.targetIndicator.grid.entity.target": "测试目标", - "engine.st.targetIndicator.grid.entity.PD": "PD", - "engine.st.targetIndicator.grid.entity.PD.title": "违约概率", - "engine.st.targetIndicator.grid.entity.LGD": "LGD", - "engine.st.targetIndicator.grid.entity.LGD.title": "违约损失率", - "engine.st.targetIndicator.grid.entity.CCF": "CCF", - "engine.st.targetIndicator.grid.entity.CCF.title": "信用转换系数", + "menu.engine.st.indepFactorManager":"宏观经济指标", + "menu.engine.st.depFactorManager": "测试对象", + "menu.engine.st.modelManager": "传导模型", + "menu.engine.st.scenarioFactorManager": "情景管理", + "menu.engine.st.testCaseManager": "压力测试", + + "engine.st.indepFactorDefine.grid.title": "自变量树", + "engine.st.indepFactorDefine.grid.toolbar.addTop": "顶级文件夹", + "engine.st.indepFactorDefine.grid.toolbar.addChild": "子文件夹", + "engine.st.indepFactorDefine.grid.toolbar.addFactorDefine": "自变量", + "engine.st.indepFactorDefine.grid.entity.factorDefine": "自变量定义", + "engine.st.indepFactorDefine.grid.entity.formula": "公式", + "engine.st.indepFactorDefine.grid.entity.delayFactorDefine": "滞后引用自变量定义", + "engine.st.indepFactorDefine.grid.entity.delayIssue": "滞后期数", + "engine.st.indepFactorDefine.grid.entity.differentialFactorDefine": "差分引用自变量定义", + "engine.st.indepFactorDefine.grid.entity.differentialDegree": "差分阶数", + + "engine.st.depFactorDefine.grid.title": "因变量树", + "engine.st.depFactorDefine.grid.toolbar.addTop": "顶级文件夹", + "engine.st.depFactorDefine.grid.toolbar.addChild": "子文件夹", + "engine.st.depFactorDefine.grid.toolbar.addFactorDefine": "因变量", + "engine.st.depFactorDefine.grid.entity.factorDefine": "因变量定义", + "engine.st.depFactorDefine.grid.entity.formula": "公式", + "engine.st.depFactorDefine.grid.entity.reverseFormula": "反公式", + "engine.st.depFactorDefine.grid.entity.delayFactorDefine": "滞后引用因变量定义", + "engine.st.depFactorDefine.grid.entity.delayIssue": "滞后期数", + "engine.st.depFactorDefine.grid.entity.differentialFactorDefine": "差分引用因变量定义", + "engine.st.depFactorDefine.grid.entity.differentialDegree": "差分阶数", + + "engine.st.model.grid.title": "模型列表", + "engine.st.model.grid.toolbar.buildModel": "构建模型", + "engine.st.model.grid.entity.depFactorDefine": "因变量", + "engine.st.model.grid.entity.raFreedomDegree": "自由度", + "engine.st.model.grid.entity.raRsquared": "R方", + "engine.st.model.grid.entity.raAdjustedRsquared": "调整R方", + "engine.st.model.grid.entity.raFstatistic": "F", + "engine.st.model.grid.entity.formula": "模型公式", + + "engine.st.model.indepFactorDefine.grid.title": "自变量列表", + "engine.st.model.indepFactorDefine.grid.toolbar.selectIn": "选入", + "engine.st.model.indepFactorDefine.grid.toolbar.selectOut": "选出", + "engine.st.model.indepFactorDefine.grid.toolbar.selectOut.tip": "您确定要选出吗?", + + "engine.st.model.selectIndepFactorDialog.title": "选择自变量", + + "engine.st.model.analysisFactor.grid.title": "变量检验结果", + "engine.st.model.analysisFactor.grid.entity.variable": "变量名", + "engine.st.model.analysisFactor.grid.entity.coefficient": "回归系数", + "engine.st.model.analysisFactor.grid.entity.coefficientSe": "回归系数标准误差", + "engine.st.model.analysisFactor.grid.entity.t": "t检验", + + "engine.st.scenario.scenarioFactor.grid.toolbar.fillWithPercentile": "分位数填充", + "engine.st.scenario.scenarioFactor.grid.entity.valueLow": "轻度", + "engine.st.scenario.scenarioFactor.grid.entity.valueMid": "中度", + "engine.st.scenario.scenarioFactor.grid.entity.valueHigh": "重度", + + "engine.st.scenario.percentileDialog.title": "设置分位数参数", + "engine.st.scenario.percentileDialog.entity.precision": "小数精度", + "engine.st.scenario.percentileDialog.entity.low": "轻度", + "engine.st.scenario.percentileDialog.entity.mid": "中度", + "engine.st.scenario.percentileDialog.entity.high": "重度", "engine.st.testCase.grid.title": "测试用例", - "engine.st.testCase.grid.toolbar.scenario": "压力情景", + "engine.st.testCase.grid.entity.model": "压力测试传导模型", "engine.st.testCase.grid.toolbar.test": "测试", - "engine.st.testCase.grid.toolbar.viewResult": "查看测试结果", - "engine.st.testCase.grid.entity.periodType": "周期", - - "engine.st.scenario.dialog.title": "压力测试情景设置", - "engine.st.scenario.grid.title": "压力测试情景指标", - "engine.st.scenario.grid.entity.testCase": "测试用例", - "engine.st.scenario.grid.entity.indicator": "压力测试情景指标", - "engine.st.scenario.grid.entity.lowGrade": "轻度", - "engine.st.scenario.grid.entity.midGrade": "中度", - "engine.st.scenario.grid.entity.highGrade": "重度", + + "engine.st.testResult.grid.title": "预测结果", + } \ No newline at end of file diff --git a/io.sc.engine.st.frontend/src/menus/menus.json b/io.sc.engine.st.frontend/src/menus/menus.json index 0827f52f..26bac693 100644 --- a/io.sc.engine.st.frontend/src/menus/menus.json +++ b/io.sc.engine.st.frontend/src/menus/menus.json @@ -18,11 +18,15 @@ [ /*压力测试*/ - {"type":"GROUP", "order":12000, "id":"menu.engine.st", "titleI18nKey":"menu.engine.st", "icon":"bi-arrows-collapse"}, + {"type":"GROUP", "order":12000, "id":"menu.engine.st", "titleI18nKey":"menu.engine.st", "icon":"bi-arrows-collapse"}, /*压力测试/宏观经济指标*/ - {"type":"ROUTE", "order":100, "parentId":"menu.engine.st", "id":"menu.engine.st.factorManager", "titleI18nKey":"menu.engine.st.factorManager", "icon":"bi-activity", "routeName":"route.engine.st.factorManager"}, - /*压力测试/测试对象管理*/ - {"type":"ROUTE", "order":200, "parentId":"menu.engine.st", "id":"menu.engine.st.target", "titleI18nKey":"menu.engine.st.target", "icon":"bi-record-circle", "routeName":"route.engine.st.target"}, + {"type":"ROUTE", "order":100, "parentId":"menu.engine.st", "id":"menu.engine.st.indepFactorManager", "titleI18nKey":"menu.engine.st.indepFactorManager", "icon":"bi-activity", "routeName":"route.engine.st.indepFactorManager"}, + /*压力测试/测试对象*/ + {"type":"ROUTE", "order":200, "parentId":"menu.engine.st", "id":"menu.engine.st.depFactorManager", "titleI18nKey":"menu.engine.st.depFactorManager", "icon":"bi-record-circle", "routeName":"route.engine.st.depFactorManager"}, + /*压力测试/传导模型*/ + {"type":"ROUTE", "order":300, "parentId":"menu.engine.st", "id":"menu.engine.st.modelManager", "titleI18nKey":"menu.engine.st.modelManager", "icon":"bi-graph-up", "routeName":"route.engine.st.modelManager"}, + /*压力测试/测试情景*/ + {"type":"ROUTE", "order":400, "parentId":"menu.engine.st", "id":"menu.engine.st.scenarioFactorManager", "titleI18nKey":"menu.engine.st.scenarioFactorManager", "icon":"bi-pin-angle", "routeName":"route.engine.st.scenarioFactorManager"}, /*压力测试/风险暴露压力测试*/ - {"type":"ROUTE", "order":500, "parentId":"menu.engine.st", "id":"menu.engine.st.ead", "titleI18nKey":"menu.engine.st.ead", "icon":"bi-lightning-charge", "routeName":"route.engine.st.ead"} + {"type":"ROUTE", "order":500, "parentId":"menu.engine.st", "id":"menu.engine.st.testCaseManager", "titleI18nKey":"menu.engine.st.testCaseManager", "icon":"bi-lightning-charge", "routeName":"route.engine.st.testCaseManager"} ] diff --git a/io.sc.engine.st.frontend/src/views/DepFactor/Manager.vue b/io.sc.engine.st.frontend/src/views/DepFactor/Manager.vue new file mode 100644 index 00000000..9383e882 --- /dev/null +++ b/io.sc.engine.st.frontend/src/views/DepFactor/Manager.vue @@ -0,0 +1,35 @@ + + diff --git a/io.sc.engine.st.frontend/src/views/IndepFactor/IndepFactor.vue b/io.sc.engine.st.frontend/src/views/IndepFactor/IndepFactor.vue new file mode 100644 index 00000000..597c7597 --- /dev/null +++ b/io.sc.engine.st.frontend/src/views/IndepFactor/IndepFactor.vue @@ -0,0 +1,189 @@ + + diff --git a/io.sc.engine.st.frontend/src/views/IndepFactor/IndepFactorDefine.vue b/io.sc.engine.st.frontend/src/views/IndepFactor/IndepFactorDefine.vue new file mode 100644 index 00000000..6ef569e0 --- /dev/null +++ b/io.sc.engine.st.frontend/src/views/IndepFactor/IndepFactorDefine.vue @@ -0,0 +1,257 @@ + + diff --git a/io.sc.engine.st.frontend/src/views/IndepFactor/Manager.vue b/io.sc.engine.st.frontend/src/views/IndepFactor/Manager.vue new file mode 100644 index 00000000..161071de --- /dev/null +++ b/io.sc.engine.st.frontend/src/views/IndepFactor/Manager.vue @@ -0,0 +1,35 @@ + + diff --git a/io.sc.engine.st.frontend/src/views/Indicator.vue b/io.sc.engine.st.frontend/src/views/Indicator.vue deleted file mode 100644 index 0c22f17f..00000000 --- a/io.sc.engine.st.frontend/src/views/Indicator.vue +++ /dev/null @@ -1,4 +0,0 @@ - - diff --git a/io.sc.engine.st.frontend/src/views/Scenario/Manager.vue b/io.sc.engine.st.frontend/src/views/Scenario/Manager.vue new file mode 100644 index 00000000..7138b130 --- /dev/null +++ b/io.sc.engine.st.frontend/src/views/Scenario/Manager.vue @@ -0,0 +1,35 @@ + + diff --git a/io.sc.engine.st.frontend/src/views/TestCase/Manager.vue b/io.sc.engine.st.frontend/src/views/TestCase/Manager.vue new file mode 100644 index 00000000..7a7e1699 --- /dev/null +++ b/io.sc.engine.st.frontend/src/views/TestCase/Manager.vue @@ -0,0 +1,40 @@ + + diff --git a/io.sc.engine.st/src/main/java/io/sc/engine/st/controller/IndepFactorDefineWebController.java b/io.sc.engine.st/src/main/java/io/sc/engine/st/controller/IndepFactorDefineWebController.java new file mode 100644 index 00000000..1c987247 --- /dev/null +++ b/io.sc.engine.st/src/main/java/io/sc/engine/st/controller/IndepFactorDefineWebController.java @@ -0,0 +1,20 @@ +package io.sc.engine.st.controller; + +import io.sc.engine.st.jpa.entity.IndepFactorDefineEntity; +import io.sc.engine.st.jpa.repository.IndepFactorDefineRepository; +import io.sc.engine.st.service.IndepFactorDefineService; +import io.sc.engine.st.vo.IndepFactorDefineVo; +import io.sc.platform.mvc.controller.support.RestCrudController; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController("io.sc.engine.st.controller.IndepFactorDefineWebController") +@RequestMapping("/api/st/indepFactorDefine") +public class IndepFactorDefineWebController extends RestCrudController { + + @GetMapping("findAllWithoutById") + public List findAllWithoutById(@RequestParam(name="defineId",required = false)String defineId) throws Exception { + return service.findAllWithoutById(defineId); + } +} diff --git a/io.sc.engine.st/src/main/java/io/sc/engine/st/controller/IndepFactorWebController.java b/io.sc.engine.st/src/main/java/io/sc/engine/st/controller/IndepFactorWebController.java new file mode 100644 index 00000000..d95c4a78 --- /dev/null +++ b/io.sc.engine.st/src/main/java/io/sc/engine/st/controller/IndepFactorWebController.java @@ -0,0 +1,29 @@ +package io.sc.engine.st.controller; + +import io.sc.engine.st.jpa.entity.IndepFactorEntity; +import io.sc.engine.st.jpa.repository.IndepFactorRepository; +import io.sc.engine.st.service.IndepFactorService; +import io.sc.engine.st.vo.IndepFactorVo; +import io.sc.platform.core.util.StringUtil; +import io.sc.platform.mvc.controller.support.RestCrudController; +import io.sc.platform.orm.service.support.QueryParameter; +import io.sc.platform.orm.service.support.QueryResult; +import org.springframework.data.domain.Page; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@RestController("io.sc.engine.st.controller.IndepFactorWebController") +@RequestMapping("/api/st/indepFactor") +public class IndepFactorWebController extends RestCrudController { + @Override + protected Page query(HttpServletRequest request, HttpServletResponse response, QueryParameter queryParameter) throws Exception { + String defineId =request.getParameter("defineId"); + return QueryResult.page(service.findByFactorDefineId(defineId)); + } +} diff --git a/io.sc.engine.st/src/main/java/io/sc/engine/st/enums/ModelAlgorithm.java b/io.sc.engine.st/src/main/java/io/sc/engine/st/enums/ModelAlgorithm.java new file mode 100644 index 00000000..204bd2d9 --- /dev/null +++ b/io.sc.engine.st/src/main/java/io/sc/engine/st/enums/ModelAlgorithm.java @@ -0,0 +1,9 @@ +package io.sc.engine.st.enums; + +/** + * 模型算法 + */ +public enum ModelAlgorithm { + LINEAR_REGRESSION, //线性回归 + VAR; //向量自回归模型 +} diff --git a/io.sc.engine.st/src/main/java/io/sc/engine/st/jpa/entity/IndepFactorDefineEntity.java b/io.sc.engine.st/src/main/java/io/sc/engine/st/jpa/entity/IndepFactorDefineEntity.java new file mode 100644 index 00000000..288b72d1 --- /dev/null +++ b/io.sc.engine.st/src/main/java/io/sc/engine/st/jpa/entity/IndepFactorDefineEntity.java @@ -0,0 +1,208 @@ +package io.sc.engine.st.jpa.entity; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import io.sc.engine.st.enums.FactorDefineType; +import io.sc.engine.st.enums.Period; +import io.sc.engine.st.enums.ValueType; +import io.sc.engine.st.jpa.entity.sub.*; +import io.sc.engine.st.vo.IndepFactorDefineVo; +import io.sc.platform.core.util.DateUtil; +import io.sc.platform.orm.api.validator.ValidatorMessage; +import io.sc.platform.orm.api.validator.ValidatorRegExp; +import io.sc.platform.orm.entity.CorporationAuditorEntity; +import org.hibernate.annotations.GenericGenerator; + +import javax.persistence.*; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Pattern; +import javax.validation.constraints.Size; +import java.math.BigDecimal; +import java.text.ParseException; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Entity(name="io.sc.engine.st.jpa.entity.IndepFactorDefineEntity") +@Table(name="ST_INDEP_FACTOR_DEF") +@Inheritance(strategy = InheritanceType.SINGLE_TABLE) +@DiscriminatorColumn(name="TYPE_",discriminatorType=DiscriminatorType.STRING,length=20) +@JsonIgnoreProperties(ignoreUnknown=true) +@JsonTypeInfo(use=JsonTypeInfo.Id.NAME, include=JsonTypeInfo.As.PROPERTY, property="type",visible=true,defaultImpl = IndepFolderEntity.class ) +@JsonSubTypes({ + @JsonSubTypes.Type(value = IndepFolderEntity.class, name = "FOLDER"), + @JsonSubTypes.Type(value = IndepOriginalFactorDefineEntity.class, name = "ORIGINAL"), + @JsonSubTypes.Type(value = IndepArithmeticFactorDefineEntity.class, name = "EXTEND_ARITHMETIC"), + @JsonSubTypes.Type(value = IndepDelayFactorDefineEntity.class, name = "EXTEND_DELAY"), + @JsonSubTypes.Type(value = IndepDifferentialFactorDefineEntity.class, name = "EXTEND_DIFFERENTIAL") +}) +public class IndepFactorDefineEntity extends CorporationAuditorEntity { + @Id + @GeneratedValue(generator = "system-uuid") + @GenericGenerator(name = "system-uuid", strategy = "uuid2") + @Column(name="ID_", length=36) + @Size(max=36) + protected String id; + + // 类型 + @Column(name="TYPE_",insertable=false,updatable=false) + @Enumerated(EnumType.STRING) + protected FactorDefineType type; + + // 代码 + @Column(name="CODE_", length=255) + @Size(max=255) + @Pattern(regexp = ValidatorRegExp.ID,message = ValidatorMessage.ID) + protected String code; + + // 名称 + @Column(name="NAME_", length=255) + @NotBlank + @Size(max=255) + protected String name; + + // 描述 + @Column(name="DESCRIPTION_", length=255) + @Size(max=255) + protected String description; + + // 顺序 + @Column(name="ORDER_") + protected Integer order; + + // 周期 + @Column(name="PERIOD_", length=20) + @Enumerated(EnumType.STRING) + protected Period period; + + // 值类型 + @Column(name="VALUE_TYPE_", length=20) + @Enumerated(EnumType.STRING) + protected ValueType valueType; + + // 父 + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "PARENT_ID_") + protected IndepFactorDefineEntity parent; + + @OneToMany(mappedBy="define",fetch = FetchType.LAZY) + @OrderBy("year,quarter,month") + protected List factors =new ArrayList<>(); + + + public Object convertValue(String value) throws ParseException { + if(value==null){ + return null; + } + switch (valueType){ + case NUMERIC: + return new BigDecimal(value); + case STRING: + return value; + case DATE: + return DateUtil.tryParseDate(value); + default: + return value; + } + } + @Override + public void toVo(IndepFactorDefineVo vo) { + if(vo!=null){ + vo.setType(this.getType()); + vo.setId(this.getId()); + vo.setCode(this.getCode()); + vo.setName(this.getName()); + vo.setDescription(this.getDescription()); + vo.setOrder(this.getOrder()); + vo.setPeriod(this.getPeriod()); + vo.setValueType(this.getValueType()); + vo.setParent(this.getParent()==null?null:this.getParent().getId()); + } + } + + public IndepFactorDefineEntity(){} + public IndepFactorDefineEntity(String id){ + this.id =id; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public FactorDefineType getType() { + return type; + } + + public void setType(FactorDefineType type) { + this.type = type; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getOrder() { + return order; + } + + public void setOrder(Integer order) { + this.order = order; + } + + public Period getPeriod() { + return period; + } + + public void setPeriod(Period period) { + this.period = period; + } + + public ValueType getValueType() { + return valueType; + } + + public void setValueType(ValueType valueType) { + this.valueType = valueType; + } + + public IndepFactorDefineEntity getParent() { + return parent; + } + + public void setParent(IndepFactorDefineEntity parent) { + this.parent = parent; + } + + public List getFactors() { + return factors; + } + + public void setFactors(List factors) { + this.factors = factors; + } +} diff --git a/io.sc.engine.st/src/main/java/io/sc/engine/st/jpa/entity/IndepFactorEntity.java b/io.sc.engine.st/src/main/java/io/sc/engine/st/jpa/entity/IndepFactorEntity.java new file mode 100644 index 00000000..9b4c473f --- /dev/null +++ b/io.sc.engine.st/src/main/java/io/sc/engine/st/jpa/entity/IndepFactorEntity.java @@ -0,0 +1,119 @@ +package io.sc.engine.st.jpa.entity; + +import io.sc.engine.st.support.PeriodWrapper; +import io.sc.engine.st.vo.IndepFactorVo; +import io.sc.platform.orm.entity.CorporationAuditorEntity; +import org.hibernate.annotations.GenericGenerator; + +import javax.persistence.*; +import javax.validation.constraints.Size; + +@Entity(name="io.sc.engine.st.jpa.entity.IndepFactorEntity") +@Table(name="ST_INDEP_FACTOR") +public class IndepFactorEntity extends CorporationAuditorEntity { + @Id + @GeneratedValue(generator = "system-uuid") + @GenericGenerator(name = "system-uuid", strategy = "uuid2") + @Column(name="ID_", length=36) + @Size(max=36) + protected String id; + + @Column(name="YEAR_") + protected Integer year; + + @Column(name="QUARTER_") + protected Integer quarter; + + @Column(name="MONTH_") + protected Integer month; + + @Column(name="VALUE_", length=255) + @Size(max=255) + protected String value; + + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="DEF_ID_") + protected IndepFactorDefineEntity define; + + public PeriodWrapper calUniqueKey(){ + if(define==null){ + return new PeriodWrapper(null,null,null); + } + switch (define.getPeriod()){ + case YEAR: + return new PeriodWrapper(year,null,null); + case QUARTER: + return new PeriodWrapper(year,quarter,null); + case MONTH: + return new PeriodWrapper(year,quarter,month); + default: + return new PeriodWrapper(null,null,null); + } + } + + @Override + public IndepFactorVo toVo() { + IndepFactorVo vo =new IndepFactorVo(); + super.toVo(vo); + vo.setId(this.getId()); + vo.setYear(this.getYear()); + vo.setQuarter(this.getQuarter()); + vo.setMonth(this.getMonth()); + vo.setValue(this.getValue()); + vo.setDefine(this.getDefine()==null?null:this.getDefine().getId()); + return vo; + } + + public IndepFactorEntity(){} + public IndepFactorEntity(String id){ + this.id =id; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Integer getYear() { + return year; + } + + public void setYear(Integer year) { + this.year = year; + } + + public Integer getQuarter() { + return quarter; + } + + public void setQuarter(Integer quarter) { + this.quarter = quarter; + } + + public Integer getMonth() { + return month; + } + + public void setMonth(Integer month) { + this.month = month; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public IndepFactorDefineEntity getDefine() { + return define; + } + + public void setDefine(IndepFactorDefineEntity define) { + this.define = define; + } +} diff --git a/io.sc.engine.st/src/main/java/io/sc/engine/st/jpa/entity/ModelAnalysisFactorEntity.java b/io.sc.engine.st/src/main/java/io/sc/engine/st/jpa/entity/ModelAnalysisFactorEntity.java new file mode 100644 index 00000000..8e49e76e --- /dev/null +++ b/io.sc.engine.st/src/main/java/io/sc/engine/st/jpa/entity/ModelAnalysisFactorEntity.java @@ -0,0 +1,120 @@ +package io.sc.engine.st.jpa.entity; + +import io.sc.engine.st.vo.ModelAnalysisFactorVo; +import io.sc.platform.orm.entity.BaseEntity; +import org.hibernate.annotations.GenericGenerator; + +import javax.persistence.*; +import javax.validation.constraints.Size; + +/** + * 回归分析结果实体类 + */ +@Entity(name="io.sc.engine.st.jpa.entity.ModelAnalysisFactorEntity") +@Table(name="ST_MODEL_ANALYSIS_FACTOR") +public class ModelAnalysisFactorEntity extends BaseEntity { + @Id + @GeneratedValue(generator = "system-uuid") + @GenericGenerator(name = "system-uuid", strategy = "uuid2") + @Column(name="ID_", length=36) + @Size(max=36) + protected String id; + + @ManyToOne(fetch=FetchType.LAZY) + @JoinColumn(name="MODEL_ID_") + protected ModelEntity model; + + @Column(name="ORDER_") + protected Integer order; + + // 变量 + @Column(name="VARIABLE_") + protected String variable; + + // 回归系数 + @Column(name="COEFFICIENT_") + protected Double coefficient; + + // 回归系数的标准误差 + @Column(name="COEFFICIENT_SE_") + protected Double coefficientSe; + + // t 检验值 + @Column(name="T_") + protected Double t; + + @Override + public ModelAnalysisFactorVo toVo() { + ModelAnalysisFactorVo vo =new ModelAnalysisFactorVo(); + super.toVo(vo); + vo.setId(this.getId()); + vo.setModel(this.getModel()==null?null:this.getModel().getId()); + vo.setOrder(this.getOrder()); + vo.setVariable(this.getVariable()); + vo.setCoefficient(this.getCoefficient()); + vo.setCoefficientSe(this.getCoefficientSe()); + vo.setT(this.getT()); + return vo; + } + + public ModelAnalysisFactorEntity(){} + public ModelAnalysisFactorEntity(String id){ + this.id =id; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public ModelEntity getModel() { + return model; + } + + public void setModel(ModelEntity model) { + this.model = model; + } + + public Integer getOrder() { + return order; + } + + public void setOrder(Integer order) { + this.order = order; + } + + public String getVariable() { + return variable; + } + + public void setVariable(String variable) { + this.variable = variable; + } + + public Double getCoefficient() { + return coefficient; + } + + public void setCoefficient(Double coefficient) { + this.coefficient = coefficient; + } + + public Double getCoefficientSe() { + return coefficientSe; + } + + public void setCoefficientSe(Double coefficientSe) { + this.coefficientSe = coefficientSe; + } + + public Double getT() { + return t; + } + + public void setT(Double t) { + this.t = t; + } +} diff --git a/io.sc.engine.st/src/main/java/io/sc/engine/st/jpa/entity/sub/IndepFolderEntity.java b/io.sc.engine.st/src/main/java/io/sc/engine/st/jpa/entity/sub/IndepFolderEntity.java new file mode 100644 index 00000000..4b22d5f0 --- /dev/null +++ b/io.sc.engine.st/src/main/java/io/sc/engine/st/jpa/entity/sub/IndepFolderEntity.java @@ -0,0 +1,25 @@ +package io.sc.engine.st.jpa.entity.sub; + +import io.sc.engine.st.jpa.entity.IndepFactorDefineEntity; +import io.sc.engine.st.vo.IndepFactorDefineVo; +import io.sc.engine.st.vo.sub.IndepFolderVo; +import io.sc.engine.st.vo.sub.IndepOriginalFactorDefineVo; + +import javax.persistence.DiscriminatorValue; +import javax.persistence.Entity; + +@Entity +@DiscriminatorValue("FOLDER") +public class IndepFolderEntity extends IndepFactorDefineEntity { + @Override + public IndepFactorDefineVo toVo() { + IndepFolderVo vo =new IndepFolderVo(); + super.toVo(vo); + return vo; + } + + public IndepFolderEntity(){} + public IndepFolderEntity(String id){ + this.id =id; + } +} diff --git a/io.sc.engine.st/src/main/java/io/sc/engine/st/jpa/entity/sub/IndepOriginalFactorDefineEntity.java b/io.sc.engine.st/src/main/java/io/sc/engine/st/jpa/entity/sub/IndepOriginalFactorDefineEntity.java new file mode 100644 index 00000000..d981325b --- /dev/null +++ b/io.sc.engine.st/src/main/java/io/sc/engine/st/jpa/entity/sub/IndepOriginalFactorDefineEntity.java @@ -0,0 +1,24 @@ +package io.sc.engine.st.jpa.entity.sub; + +import io.sc.engine.st.jpa.entity.IndepFactorDefineEntity; +import io.sc.engine.st.vo.IndepFactorDefineVo; +import io.sc.engine.st.vo.sub.IndepOriginalFactorDefineVo; + +import javax.persistence.DiscriminatorValue; +import javax.persistence.Entity; + +@Entity +@DiscriminatorValue("ORIGINAL") +public class IndepOriginalFactorDefineEntity extends IndepFactorDefineEntity { + @Override + public IndepFactorDefineVo toVo() { + IndepOriginalFactorDefineVo vo =new IndepOriginalFactorDefineVo(); + super.toVo(vo); + return vo; + } + + public IndepOriginalFactorDefineEntity(){} + public IndepOriginalFactorDefineEntity(String id){ + this.id =id; + } +} diff --git a/io.sc.engine.st/src/main/java/io/sc/engine/st/jpa/repository/IndepFactorDefineRepository.java b/io.sc.engine.st/src/main/java/io/sc/engine/st/jpa/repository/IndepFactorDefineRepository.java new file mode 100644 index 00000000..ff47d4d7 --- /dev/null +++ b/io.sc.engine.st/src/main/java/io/sc/engine/st/jpa/repository/IndepFactorDefineRepository.java @@ -0,0 +1,26 @@ +package io.sc.engine.st.jpa.repository; + +import io.sc.engine.st.jpa.entity.IndepFactorDefineEntity; +import io.sc.engine.st.jpa.entity.IndepFactorEntity; +import io.sc.platform.orm.repository.DaoRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Set; + +@Service("io.sc.engine.st.jpa.repository.IndepFactorDefineRepository") +public interface IndepFactorDefineRepository extends DaoRepository{ + public IndepFactorDefineEntity findByCode(String defineCode); + + @Query("select e from io.sc.engine.st.jpa.entity.IndepFactorDefineEntity e where e.code in (:defineCodes)") + public List findByCodes(@Param("defineCodes") List defineCodes); + + @Query("select e from io.sc.engine.st.jpa.entity.IndepFactorDefineEntity e where e.id<>:defineId") + public List findAllWithoutById(@Param("defineId") String defineId); + + @Query("select e from io.sc.engine.st.jpa.entity.IndepFactorDefineEntity e where e.id in :defineIds") + public List findByIds(@Param("defineIds") Set defineIds); + +} diff --git a/io.sc.engine.st/src/main/java/io/sc/engine/st/jpa/repository/IndepFactorRepository.java b/io.sc.engine.st/src/main/java/io/sc/engine/st/jpa/repository/IndepFactorRepository.java new file mode 100644 index 00000000..5f501176 --- /dev/null +++ b/io.sc.engine.st/src/main/java/io/sc/engine/st/jpa/repository/IndepFactorRepository.java @@ -0,0 +1,15 @@ +package io.sc.engine.st.jpa.repository; + +import io.sc.engine.st.jpa.entity.IndepFactorEntity; +import io.sc.platform.orm.repository.DaoRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service("io.sc.engine.st.jpa.repository.IndepFactorRepository") +public interface IndepFactorRepository extends DaoRepository{ + @Query("select e from io.sc.engine.st.jpa.entity.IndepFactorEntity e where e.define.id=:defineId order by e.year, e.quarter, e.month") + public List findByDefineId(@Param("defineId") String defineId); +} diff --git a/io.sc.engine.st/src/main/java/io/sc/engine/st/jpa/repository/ModelAnalysisFactorRepository.java b/io.sc.engine.st/src/main/java/io/sc/engine/st/jpa/repository/ModelAnalysisFactorRepository.java new file mode 100644 index 00000000..73213651 --- /dev/null +++ b/io.sc.engine.st/src/main/java/io/sc/engine/st/jpa/repository/ModelAnalysisFactorRepository.java @@ -0,0 +1,11 @@ +package io.sc.engine.st.jpa.repository; + +import io.sc.engine.st.jpa.entity.ModelAnalysisFactorEntity; +import io.sc.engine.st.jpa.entity.ModelEntity; +import io.sc.platform.orm.repository.DaoRepository; +import org.springframework.stereotype.Service; + +@Service("io.sc.engine.st.jpa.repository.ModelAnalysisFactorRepository") +public interface ModelAnalysisFactorRepository extends DaoRepository{ + +} diff --git a/io.sc.engine.st/src/main/java/io/sc/engine/st/service/IndepFactorDefineService.java b/io.sc.engine.st/src/main/java/io/sc/engine/st/service/IndepFactorDefineService.java new file mode 100644 index 00000000..acecefa6 --- /dev/null +++ b/io.sc.engine.st/src/main/java/io/sc/engine/st/service/IndepFactorDefineService.java @@ -0,0 +1,13 @@ +package io.sc.engine.st.service; + +import io.sc.engine.st.jpa.entity.IndepFactorDefineEntity; +import io.sc.engine.st.jpa.repository.IndepFactorDefineRepository; +import io.sc.engine.st.vo.IndepFactorDefineVo; +import io.sc.platform.orm.service.DaoService; +import org.springframework.web.bind.annotation.PathVariable; + +import java.util.List; + +public interface IndepFactorDefineService extends DaoService{ + public List findAllWithoutById(String defineId) throws Exception; +} diff --git a/io.sc.engine.st/src/main/java/io/sc/engine/st/service/IndepFactorService.java b/io.sc.engine.st/src/main/java/io/sc/engine/st/service/IndepFactorService.java new file mode 100644 index 00000000..6e6e883b --- /dev/null +++ b/io.sc.engine.st/src/main/java/io/sc/engine/st/service/IndepFactorService.java @@ -0,0 +1,14 @@ +package io.sc.engine.st.service; + +import io.sc.engine.st.jpa.entity.IndepFactorEntity; +import io.sc.engine.st.jpa.repository.IndepFactorRepository; +import io.sc.engine.st.vo.IndepFactorVo; +import io.sc.platform.orm.service.DaoService; +import org.springframework.web.bind.annotation.RequestParam; + +import java.text.ParseException; +import java.util.List; + +public interface IndepFactorService extends DaoService{ + public List findByFactorDefineId(@RequestParam("defineId") String defineId) throws Exception; +} diff --git a/io.sc.engine.st/src/main/java/io/sc/engine/st/service/ModelAnalysisFactorService.java b/io.sc.engine.st/src/main/java/io/sc/engine/st/service/ModelAnalysisFactorService.java new file mode 100644 index 00000000..a9db74c6 --- /dev/null +++ b/io.sc.engine.st/src/main/java/io/sc/engine/st/service/ModelAnalysisFactorService.java @@ -0,0 +1,13 @@ +package io.sc.engine.st.service; + +import io.sc.engine.st.jpa.entity.ModelAnalysisFactorEntity; +import io.sc.engine.st.jpa.entity.ModelEntity; +import io.sc.engine.st.jpa.repository.ModelAnalysisFactorRepository; +import io.sc.engine.st.jpa.repository.ModelRepository; +import io.sc.engine.st.vo.IndepFactorDefineVo; +import io.sc.platform.orm.service.DaoService; + +import java.util.List; + +public interface ModelAnalysisFactorService extends DaoService{ +} diff --git a/io.sc.engine.st/src/main/java/io/sc/engine/st/service/impl/IndepFactorDefineServiceImpl.java b/io.sc.engine.st/src/main/java/io/sc/engine/st/service/impl/IndepFactorDefineServiceImpl.java new file mode 100644 index 00000000..27d6e2d9 --- /dev/null +++ b/io.sc.engine.st/src/main/java/io/sc/engine/st/service/impl/IndepFactorDefineServiceImpl.java @@ -0,0 +1,24 @@ +package io.sc.engine.st.service.impl; + +import io.sc.engine.st.jpa.entity.IndepFactorDefineEntity; +import io.sc.engine.st.jpa.repository.IndepFactorDefineRepository; +import io.sc.engine.st.service.IndepFactorDefineService; +import io.sc.engine.st.vo.IndepFactorDefineVo; +import io.sc.platform.orm.service.impl.DaoServiceImpl; +import io.sc.platform.orm.util.EntityVoUtil; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.util.Collections; +import java.util.List; + +@Service("io.sc.engine.st.service.impl.IndepFactorDefineServiceImpl") +public class IndepFactorDefineServiceImpl extends DaoServiceImpl implements IndepFactorDefineService { + @Override + public List findAllWithoutById(String defineId) throws Exception { + if(!StringUtils.hasText(defineId)){ + EntityVoUtil.toVo(repository.findAll()); + } + return EntityVoUtil.toVo(repository.findAllWithoutById(defineId)); + } +} diff --git a/io.sc.engine.st/src/main/java/io/sc/engine/st/service/impl/IndepFactorServiceImpl.java b/io.sc.engine.st/src/main/java/io/sc/engine/st/service/impl/IndepFactorServiceImpl.java new file mode 100644 index 00000000..db96bf94 --- /dev/null +++ b/io.sc.engine.st/src/main/java/io/sc/engine/st/service/impl/IndepFactorServiceImpl.java @@ -0,0 +1,215 @@ +package io.sc.engine.st.service.impl; + +import io.sc.engine.st.enums.FactorDefineType; +import io.sc.engine.st.enums.Period; +import io.sc.engine.st.exception.FactorDefinePeroidNotSameException; +import io.sc.engine.st.jpa.entity.IndepFactorDefineEntity; +import io.sc.engine.st.jpa.entity.IndepFactorEntity; +import io.sc.engine.st.jpa.entity.sub.IndepArithmeticFactorDefineEntity; +import io.sc.engine.st.jpa.entity.sub.IndepDelayFactorDefineEntity; +import io.sc.engine.st.jpa.entity.sub.IndepDifferentialFactorDefineEntity; +import io.sc.engine.st.jpa.repository.IndepFactorRepository; +import io.sc.engine.st.service.IndepFactorDefineService; +import io.sc.engine.st.service.IndepFactorService; +import io.sc.engine.st.support.FormulaUtil; +import io.sc.engine.st.support.PeriodWrapper; +import io.sc.engine.st.vo.IndepFactorVo; +import io.sc.platform.core.service.SpringExpressionParserService; +import io.sc.platform.groovy.GroovyScriptExecutor; +import io.sc.platform.orm.service.impl.DaoServiceImpl; +import io.sc.platform.orm.service.support.QueryParameter; +import io.sc.platform.orm.service.support.QueryResult; +import io.sc.platform.orm.util.EntityVoUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.math.BigDecimal; +import java.text.ParseException; +import java.util.*; +import java.util.regex.Matcher; + +@Service("io.sc.engine.st.service.impl.IndepFactorServiceImpl") +public class IndepFactorServiceImpl extends DaoServiceImpl implements IndepFactorService { + @Autowired private IndepFactorDefineService indepFactorDefineService; + + @Override + public List findByFactorDefineId(String defineId) throws Exception { + if(!StringUtils.hasText(defineId)){ + return Collections.emptyList(); + } + IndepFactorDefineEntity factorDefineEntity =indepFactorDefineService.findById(defineId); + if(factorDefineEntity==null){ + return Collections.emptyList(); + } + + if(FactorDefineType.FOLDER.equals(factorDefineEntity.getType())){ + return Collections.emptyList(); + } + if(FactorDefineType.ORIGINAL.equals(factorDefineEntity.getType())){ + return EntityVoUtil.toVo(repository.findByDefineId(defineId)); + } + if(factorDefineEntity instanceof IndepArithmeticFactorDefineEntity){ + IndepArithmeticFactorDefineEntity arithmeticFactorDefineEntity =(IndepArithmeticFactorDefineEntity)factorDefineEntity; + return cal(arithmeticFactorDefineEntity); + }else if(factorDefineEntity instanceof IndepDelayFactorDefineEntity){ + IndepDelayFactorDefineEntity delayFactorDefineEntity =(IndepDelayFactorDefineEntity)factorDefineEntity; + return cal(delayFactorDefineEntity); + }else if(factorDefineEntity instanceof IndepDifferentialFactorDefineEntity){ + IndepDifferentialFactorDefineEntity differentialFactorDefineEntity =(IndepDifferentialFactorDefineEntity)factorDefineEntity; + return cal(differentialFactorDefineEntity); + } + return Collections.emptyList(); + } + + private List cal(IndepArithmeticFactorDefineEntity selfEntity) throws Exception { + // 获取算术运算表达式中引用的其他自变量代码 + List variableNames = FormulaUtil.extractVariableNames(selfEntity.getFormula()); + // 查找算术运算表达式中引用的其他自变量定义 + List referenceEntities =indepFactorDefineService.getRepository().findByCodes(variableNames); + // 算术运算表达式中引用的其他自变量的周期是否相同 + if(!isSamePeroid(referenceEntities,selfEntity.getPeriod())){ + throw new FactorDefinePeroidNotSameException(); + } + + // 所有算术运算表达式中引用的其他自变量集合的行 key 集合 + Set rowKeys =new LinkedHashSet<>(); + // 查找算术运算表达式中引用的其他自变量Map + // key : 自变量定义代码 + // value: 自变量的值 Map(key:唯一标识,value:值) + Map> variableValueMap =new HashMap<>(); + for(IndepFactorDefineEntity defineEntity : referenceEntities){ + Map records =new HashMap<>(); + List factorEntities =repository.findByDefineId(defineEntity.getId()); + if(factorEntities!=null){ + for(IndepFactorEntity factorEntity : factorEntities){ + rowKeys.add(new PeriodWrapper(factorEntity.getYear(),factorEntity.getQuarter(),factorEntity.getMonth())); + records.put(factorEntity.calUniqueKey(),defineEntity.convertValue(factorEntity.getValue())); + } + } + variableValueMap.put(defineEntity.getCode(),records); + } + + // 结果集 + List result =new ArrayList<>(); + for(PeriodWrapper rowKey : rowKeys){ + IndepFactorVo vo =new IndepFactorVo(); + vo.setYear(rowKey.getYear()); + vo.setQuarter(rowKey.getQuarter()); + vo.setMonth(rowKey.getMonth()); + Map context =new HashMap<>(); + for(String variableName : variableNames){ + Map values =variableValueMap.get(variableName); + Object value =values.get(rowKey); + context.put(variableName,value); + } + String groovyScript =FormulaUtil.getGroovyScript(selfEntity.getFormula()); + vo.setValue(GroovyScriptExecutor.getInstance().eval(groovyScript,context).toString()); + result.add(vo); + } + return result; + } + + private List cal(IndepDelayFactorDefineEntity selfEntity) throws Exception { + // 获取滞后自变量定义引用的自变量定义实体 + IndepFactorDefineEntity referenceEntity =selfEntity.getDelayFactorDefine(); + if(referenceEntity==null){ + return Collections.emptyList(); + } + + // 滞后自变量定义和引用的自变量定义实体的周期是否相同 + if(!referenceEntity.getPeriod().equals(selfEntity.getPeriod())){ + throw new FactorDefinePeroidNotSameException(); + } + + List factorEntities =repository.findByDefineId(referenceEntity.getId()); + if(factorEntities==null || factorEntities.isEmpty()){ + return Collections.emptyList(); + } + + Map recordCache =new LinkedHashMap<>(); + for(IndepFactorEntity factorEntity : factorEntities){ + recordCache.put(factorEntity.calUniqueKey(),selfEntity.convertValue(factorEntity.getValue())); + } + + // 结果集 + List result =new ArrayList<>(); + for(PeriodWrapper key : recordCache.keySet()){ + IndepFactorVo vo =new IndepFactorVo(); + vo.setYear(key.getYear()); + vo.setQuarter(key.getQuarter()); + vo.setMonth(key.getMonth()); + Object value =recordCache.get(key.previous(selfEntity.getDelayIssue())); + vo.setValue(value==null?null:value.toString()); + result.add(vo); + } + return result; + } + + private List cal(IndepDifferentialFactorDefineEntity selfEntity) throws Exception { + // 获取差分自变量定义引用的自变量定义实体 + IndepFactorDefineEntity referenceEntity =selfEntity.getDifferentialFactorDefine(); + if(referenceEntity==null){ + return Collections.emptyList(); + } + + // 滞后自变量定义和引用的自变量定义实体的周期是否相同 + if(!referenceEntity.getPeriod().equals(selfEntity.getPeriod())){ + throw new FactorDefinePeroidNotSameException(); + } + + List factorEntities =repository.findByDefineId(referenceEntity.getId()); + if(factorEntities==null || factorEntities.isEmpty()){ + return Collections.emptyList(); + } + + Map recordCache =new LinkedHashMap<>(); + for(IndepFactorEntity factorEntity : factorEntities){ + recordCache.put(factorEntity.calUniqueKey(),selfEntity.convertValue(factorEntity.getValue())); + } + + for(int i=0;i recordCacheTemp =new LinkedHashMap<>(); + for (PeriodWrapper key : recordCache.keySet()) { + Object value =recordCache.get(key); + Object value_1 =recordCache.get(key.previous(1)); + if(value_1!=null){ + recordCacheTemp.put(key,new BigDecimal(value.toString()).subtract(new BigDecimal(value_1.toString()))); + }else{ + recordCacheTemp.put(key,null); + } + } + recordCache =recordCacheTemp; + } + + // 结果集 + List result =new ArrayList<>(); + for(PeriodWrapper key : recordCache.keySet()){ + IndepFactorVo vo =new IndepFactorVo(); + vo.setYear(key.getYear()); + vo.setQuarter(key.getQuarter()); + vo.setMonth(key.getMonth()); + Object value =recordCache.get(key); + vo.setValue(value==null?null:value.toString()); + result.add(vo); + } + return result; + } + + + private boolean isSamePeroid(List factorDefineEntities,Period period){ + if(period==null){ + return false; + } + if(factorDefineEntities==null || !factorDefineEntities.isEmpty()){ + return true; + } + for(IndepFactorDefineEntity defineEntity : factorDefineEntities){ + if(!period.equals(defineEntity.getPeriod())){ + return false; + } + } + return true; + } +} diff --git a/io.sc.engine.st/src/main/java/io/sc/engine/st/support/Model.java b/io.sc.engine.st/src/main/java/io/sc/engine/st/support/Model.java new file mode 100644 index 00000000..778ff4cc --- /dev/null +++ b/io.sc.engine.st/src/main/java/io/sc/engine/st/support/Model.java @@ -0,0 +1,22 @@ +package io.sc.engine.st.support; + +public class Model { + private String arff; + private String formula; + + public String getArff() { + return arff; + } + + public void setArff(String arff) { + this.arff = arff; + } + + public String getFormula() { + return formula; + } + + public void setFormula(String formula) { + this.formula = formula; + } +} diff --git a/io.sc.engine.st/src/main/java/io/sc/engine/st/vo/IndepFactorDefineVo.java b/io.sc.engine.st/src/main/java/io/sc/engine/st/vo/IndepFactorDefineVo.java new file mode 100644 index 00000000..1f87f915 --- /dev/null +++ b/io.sc.engine.st/src/main/java/io/sc/engine/st/vo/IndepFactorDefineVo.java @@ -0,0 +1,90 @@ +package io.sc.engine.st.vo; + +import io.sc.engine.st.enums.FactorDefineType; +import io.sc.engine.st.enums.Period; +import io.sc.engine.st.enums.ValueType; +import io.sc.platform.orm.api.vo.CorporationAuditorVo; + +public class IndepFactorDefineVo extends CorporationAuditorVo { + protected String id; + protected FactorDefineType type; + protected String code; + protected String name; + protected String description; + protected Integer order; + protected Period period; + protected ValueType valueType; + protected String parent; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public FactorDefineType getType() { + return type; + } + + public void setType(FactorDefineType type) { + this.type = type; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getOrder() { + return order; + } + + public void setOrder(Integer order) { + this.order = order; + } + + public Period getPeriod() { + return period; + } + + public void setPeriod(Period period) { + this.period = period; + } + + public ValueType getValueType() { + return valueType; + } + + public void setValueType(ValueType valueType) { + this.valueType = valueType; + } + + public String getParent() { + return parent; + } + + public void setParent(String parent) { + this.parent = parent; + } +} diff --git a/io.sc.engine.st/src/main/java/io/sc/engine/st/vo/IndepFactorVo.java b/io.sc.engine.st/src/main/java/io/sc/engine/st/vo/IndepFactorVo.java new file mode 100644 index 00000000..98b79d9b --- /dev/null +++ b/io.sc.engine.st/src/main/java/io/sc/engine/st/vo/IndepFactorVo.java @@ -0,0 +1,65 @@ +package io.sc.engine.st.vo; + +import io.sc.engine.st.support.PeriodWrapper; +import io.sc.platform.orm.api.vo.CorporationAuditorVo; + +public class IndepFactorVo extends CorporationAuditorVo { + protected String id; + protected Integer year; + protected Integer quarter; + protected Integer month; + protected String value; + protected String define; + + public PeriodWrapper calUniqueKey(){ + return new PeriodWrapper(year,quarter,month); + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Integer getYear() { + return year; + } + + public void setYear(Integer year) { + this.year = year; + } + + public Integer getQuarter() { + return quarter; + } + + public void setQuarter(Integer quarter) { + this.quarter = quarter; + } + + public Integer getMonth() { + return month; + } + + public void setMonth(Integer month) { + this.month = month; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public String getDefine() { + return define; + } + + public void setDefine(String define) { + this.define = define; + } +} diff --git a/io.sc.engine.st/src/main/java/io/sc/engine/st/vo/sub/IndepDelayFactorDefineVo.java b/io.sc.engine.st/src/main/java/io/sc/engine/st/vo/sub/IndepDelayFactorDefineVo.java new file mode 100644 index 00000000..3c053b1b --- /dev/null +++ b/io.sc.engine.st/src/main/java/io/sc/engine/st/vo/sub/IndepDelayFactorDefineVo.java @@ -0,0 +1,24 @@ +package io.sc.engine.st.vo.sub; + +import io.sc.engine.st.vo.IndepFactorDefineVo; + +public class IndepDelayFactorDefineVo extends IndepFactorDefineVo { + protected String delayFactorDefine; + protected Integer delayIssue; + + public String getDelayFactorDefine() { + return delayFactorDefine; + } + + public void setDelayFactorDefine(String delayFactorDefine) { + this.delayFactorDefine = delayFactorDefine; + } + + public Integer getDelayIssue() { + return delayIssue; + } + + public void setDelayIssue(Integer delayIssue) { + this.delayIssue = delayIssue; + } +} diff --git a/io.sc.engine.st/src/main/java/io/sc/engine/st/vo/sub/IndepDifferentialFactorDefineVo.java b/io.sc.engine.st/src/main/java/io/sc/engine/st/vo/sub/IndepDifferentialFactorDefineVo.java new file mode 100644 index 00000000..8143d3af --- /dev/null +++ b/io.sc.engine.st/src/main/java/io/sc/engine/st/vo/sub/IndepDifferentialFactorDefineVo.java @@ -0,0 +1,24 @@ +package io.sc.engine.st.vo.sub; + +import io.sc.engine.st.vo.IndepFactorDefineVo; + +public class IndepDifferentialFactorDefineVo extends IndepFactorDefineVo { + protected String differentialFactorDefine; + protected Integer differentialDegree; + + public String getDifferentialFactorDefine() { + return differentialFactorDefine; + } + + public void setDifferentialFactorDefine(String differentialFactorDefine) { + this.differentialFactorDefine = differentialFactorDefine; + } + + public Integer getDifferentialDegree() { + return differentialDegree; + } + + public void setDifferentialDegree(Integer differentialDegree) { + this.differentialDegree = differentialDegree; + } +} diff --git a/io.sc.engine.st/src/main/java/io/sc/engine/st/vo/sub/IndepFolderVo.java b/io.sc.engine.st/src/main/java/io/sc/engine/st/vo/sub/IndepFolderVo.java new file mode 100644 index 00000000..17dc5fac --- /dev/null +++ b/io.sc.engine.st/src/main/java/io/sc/engine/st/vo/sub/IndepFolderVo.java @@ -0,0 +1,10 @@ +package io.sc.engine.st.vo.sub; + +import io.sc.engine.st.vo.IndepFactorDefineVo; + +import javax.persistence.DiscriminatorValue; +import javax.persistence.Entity; + +public class IndepFolderVo extends IndepFactorDefineVo { + +} diff --git a/io.sc.engine.st/src/main/java/io/sc/engine/st/vo/sub/IndepOriginalFactorDefineVo.java b/io.sc.engine.st/src/main/java/io/sc/engine/st/vo/sub/IndepOriginalFactorDefineVo.java new file mode 100644 index 00000000..1882520a --- /dev/null +++ b/io.sc.engine.st/src/main/java/io/sc/engine/st/vo/sub/IndepOriginalFactorDefineVo.java @@ -0,0 +1,10 @@ +package io.sc.engine.st.vo.sub; + +import io.sc.engine.st.vo.IndepFactorDefineVo; + +import javax.persistence.DiscriminatorValue; +import javax.persistence.Entity; + +public class IndepOriginalFactorDefineVo extends IndepFactorDefineVo { + +} diff --git a/io.sc.engine.st/src/main/resources/META-INF/platform/plugins/messages.json b/io.sc.engine.st/src/main/resources/META-INF/platform/plugins/messages.json index 9bd8909d..944718f0 100644 --- a/io.sc.engine.st/src/main/resources/META-INF/platform/plugins/messages.json +++ b/io.sc.engine.st/src/main/resources/META-INF/platform/plugins/messages.json @@ -10,7 +10,8 @@ { "includes":[ - "io/sc/engine/st/i18n/enums" + "io/sc/engine/st/i18n/enums", + "io/sc/engine/st/i18n/exception" ], "excludes":[] } diff --git a/io.sc.engine.st/src/main/resources/liquibase/io.sc.engine.st_1.0.0_20221020__ST Data.xml b/io.sc.engine.st/src/main/resources/liquibase/io.sc.engine.st_1.0.0_20221020__ST Data.xml index 82652bc3..4dcf101f 100644 --- a/io.sc.engine.st/src/main/resources/liquibase/io.sc.engine.st_1.0.0_20221020__ST Data.xml +++ b/io.sc.engine.st/src/main/resources/liquibase/io.sc.engine.st_1.0.0_20221020__ST Data.xml @@ -11,13 +11,49 @@ " > - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/io.sc.engine.st/src/main/resources/liquibase/io.sc.engine.st_8.0.0_20221020__Stress Test Database Schema DDL.xml b/io.sc.engine.st/src/main/resources/liquibase/io.sc.engine.st_8.0.0_20221020__Stress Test Database Schema DDL.xml index c39157b4..06e38e6a 100644 --- a/io.sc.engine.st/src/main/resources/liquibase/io.sc.engine.st_8.0.0_20221020__Stress Test Database Schema DDL.xml +++ b/io.sc.engine.st/src/main/resources/liquibase/io.sc.engine.st_8.0.0_20221020__Stress Test Database Schema DDL.xml @@ -7,17 +7,31 @@ http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd"> - - + + + + - + + + + + + + + + + + + + @@ -28,16 +42,23 @@ - - + + + + + - + - @@ -50,21 +71,60 @@ - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + @@ -76,14 +136,21 @@ - - + + + + + + + + + @@ -94,21 +161,103 @@ - - - + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + @@ -125,11 +274,8 @@ - - + - - @@ -140,17 +286,21 @@ + + - - + + - - - - - + + + + + + + @@ -161,5 +311,6 @@ + diff --git a/io.sc.platform.core.frontend/src/components/index.ts b/io.sc.platform.core.frontend/src/components/index.ts index 940d5b83..f4bf3f53 100644 --- a/io.sc.platform.core.frontend/src/components/index.ts +++ b/io.sc.platform.core.frontend/src/components/index.ts @@ -3,6 +3,7 @@ */ import component_testcase_formElements from '@/views/FormElements.vue'; +import component_testcase_xxx from '@/views/likm/xxx.vue'; import component_testcase_likmDialog from '@/views/likm/Dialog.vue'; import component_testcase_likmDrawer from '@/views/likm/Drawer.vue'; import component_testcase_likmForm from '@/views/likm/Form.vue'; @@ -15,6 +16,7 @@ import component_testcase_likmTreeGrid from '@/views/likm/TreeGrid.vue'; const localComponents = { 'component.testcase.formElements': component_testcase_formElements, + 'component.testcase.xxx': component_testcase_xxx, 'component.testcase.likmDialog': component_testcase_likmDialog, 'component.testcase.likmDrawer': component_testcase_likmDrawer, 'component.testcase.likmForm': component_testcase_likmForm, diff --git a/io.sc.platform.core.frontend/template-project/src/components/index.ts b/io.sc.platform.core.frontend/template-project/src/components/index.ts index 4a0a4783..f4bf3f53 100644 --- a/io.sc.platform.core.frontend/template-project/src/components/index.ts +++ b/io.sc.platform.core.frontend/template-project/src/components/index.ts @@ -2,7 +2,8 @@ * 此文件为自动生成文件,请勿修改 */ -import component_testcase_formElements from '@/views/Standard.vue'; +import component_testcase_formElements from '@/views/FormElements.vue'; +import component_testcase_xxx from '@/views/likm/xxx.vue'; import component_testcase_likmDialog from '@/views/likm/Dialog.vue'; import component_testcase_likmDrawer from '@/views/likm/Drawer.vue'; import component_testcase_likmForm from '@/views/likm/Form.vue'; @@ -15,6 +16,7 @@ import component_testcase_likmTreeGrid from '@/views/likm/TreeGrid.vue'; const localComponents = { 'component.testcase.formElements': component_testcase_formElements, + 'component.testcase.xxx': component_testcase_xxx, 'component.testcase.likmDialog': component_testcase_likmDialog, 'component.testcase.likmDrawer': component_testcase_likmDrawer, 'component.testcase.likmForm': component_testcase_likmForm, diff --git a/io.sc.platform.jdbc.liquibase/src/main/java/io/sc/platform/jdbc/liquibase/exporter/LiquibaseDataCsvExporter.java b/io.sc.platform.jdbc.liquibase/src/main/java/io/sc/platform/jdbc/liquibase/exporter/LiquibaseDataCsvExporter.java index 0ff40dbb..4428c2a9 100644 --- a/io.sc.platform.jdbc.liquibase/src/main/java/io/sc/platform/jdbc/liquibase/exporter/LiquibaseDataCsvExporter.java +++ b/io.sc.platform.jdbc.liquibase/src/main/java/io/sc/platform/jdbc/liquibase/exporter/LiquibaseDataCsvExporter.java @@ -77,6 +77,9 @@ public class LiquibaseDataCsvExporter implements DataExporter { } String[] tableNames =new String[columns.size()]; tableNames[0] =table.getName().toUpperCase(); + if(table.isSelfReference()) { + tableNames[1] = "SELF_REFERENCE"; + } String[] columnNames =new String[columns.size()]; String[] javaTypes =new String[columns.size()]; String[] sqlTypes =new String[columns.size()]; diff --git a/io.sc.platform.orm.api/src/main/resources/META-INF/platform/plugins/messages.json b/io.sc.platform.orm.api/src/main/resources/META-INF/platform/plugins/messages.json index b2ed3ea0..e8100187 100644 --- a/io.sc.platform.orm.api/src/main/resources/META-INF/platform/plugins/messages.json +++ b/io.sc.platform.orm.api/src/main/resources/META-INF/platform/plugins/messages.json @@ -1,6 +1,7 @@ { "includes":[ "io/sc/platform/orm/api/i18n/enum", - "io/sc/platform/orm/api/i18n/exception" + "io/sc/platform/orm/api/i18n/exception", + "io/sc/platform/orm/api/i18n/validator" ] } \ No newline at end of file