From b80c34a7842d4d87a9271282307b44eab9f4ce26 Mon Sep 17 00:00:00 2001 From: likunming Date: Thu, 30 May 2024 10:37:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AE=A2=E6=88=B7=E8=AF=84?= =?UTF-8?q?=E7=BA=A7=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rating/controller/HomeController.java | 45 ++++++ .../irbs/cust/rating/service/HomeService.java | 17 +++ .../rating/service/impl/HomeServiceImpl.java | 52 +++++++ irbs.frontend/public/configure.js | 2 +- irbs.frontend/src/components/index.ts | 128 +++++++++--------- irbs.frontend/util-components-generator.cjs | 6 +- irbs.frontend/webpack.env.serve.cjs | 2 +- 7 files changed, 183 insertions(+), 69 deletions(-) create mode 100644 irbs.cust.rating/src/main/java/irbs/cust/rating/controller/HomeController.java create mode 100644 irbs.cust.rating/src/main/java/irbs/cust/rating/service/HomeService.java create mode 100644 irbs.cust.rating/src/main/java/irbs/cust/rating/service/impl/HomeServiceImpl.java diff --git a/irbs.cust.rating/src/main/java/irbs/cust/rating/controller/HomeController.java b/irbs.cust.rating/src/main/java/irbs/cust/rating/controller/HomeController.java new file mode 100644 index 0000000..dabd76b --- /dev/null +++ b/irbs.cust.rating/src/main/java/irbs/cust/rating/controller/HomeController.java @@ -0,0 +1,45 @@ +package irbs.cust.rating.controller; + +import irbs.cust.rating.jpa.support.KeyValueWrapper; +import irbs.cust.rating.service.HomeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * 首页控制器 + * @author likunming + */ +@RestController +@RequestMapping("/api/irbs/home") +public class HomeController { + + @Autowired + private HomeService homeService; + + /** + * 首页,敞口分布统计 + * + * @throws Exception 异常 + */ + @RequestMapping(value = "ratingModelExposure", method = RequestMethod.GET) + @ResponseBody + public List ratingModelExposure() throws Exception { + return homeService.getRatingModelExposureList(); + } + + /** + * 首页,评级分布统计 + * + * @throws Exception 异常 + */ + @RequestMapping(value = "ratingLevelExposure", method = RequestMethod.GET) + @ResponseBody + public List ratingLevelExposureList() throws Exception { + return homeService.getRatingLevelExposureList(); + } +} diff --git a/irbs.cust.rating/src/main/java/irbs/cust/rating/service/HomeService.java b/irbs.cust.rating/src/main/java/irbs/cust/rating/service/HomeService.java new file mode 100644 index 0000000..0ec6b9c --- /dev/null +++ b/irbs.cust.rating/src/main/java/irbs/cust/rating/service/HomeService.java @@ -0,0 +1,17 @@ +package irbs.cust.rating.service; + +import irbs.cust.rating.jpa.support.KeyValueWrapper; + +import java.util.List; + +/** + * 客户评级流程处理服务 + * @author likunming + * + */ +public interface HomeService { + + public List getRatingModelExposureList() throws Exception; + + public List getRatingLevelExposureList() throws Exception; +} diff --git a/irbs.cust.rating/src/main/java/irbs/cust/rating/service/impl/HomeServiceImpl.java b/irbs.cust.rating/src/main/java/irbs/cust/rating/service/impl/HomeServiceImpl.java new file mode 100644 index 0000000..d95b009 --- /dev/null +++ b/irbs.cust.rating/src/main/java/irbs/cust/rating/service/impl/HomeServiceImpl.java @@ -0,0 +1,52 @@ +package irbs.cust.rating.service.impl; + +import irbs.cust.rating.jpa.support.KeyValueWrapper; +import irbs.cust.rating.service.HomeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +@Service +public class HomeServiceImpl implements HomeService { + + @Autowired + NamedParameterJdbcTemplate namedParameterJdbcTemplate; + + @Override + public List getRatingModelExposureList() throws Exception { + String querySql = "select MODEL_NAME, count(*) MODEL_NUMBER from NS_COMPANY_RATING where MODEL_CODE IS NOT NULL "; + querySql += " group by MODEL_CODE, MODEL_NAME order by CAST(substr(MODEL_CODE,4) as DECIMAL) asc "; + List query = namedParameterJdbcTemplate.query(querySql, + (rs, rowNum) -> { + KeyValueWrapper kv = new KeyValueWrapper(); + kv.setKey(rs.getString("MODEL_NAME")); + kv.setValue(rs.getString("MODEL_NUMBER")); + return kv; + }); + return query; + } + + @Override + public List getRatingLevelExposureList() throws Exception { + String querySql1 = "select p.FINAL_LEVEL,count(*) FINAL_NUMBER from (" + + "select distinct(cust_no) as cust_no,FINAL_LEVEL from NS_COMPANY_RATING " + + "WHERE cust_no is not null and FINAL_LEVEL IS NOT NULL AND RATING_STATUS = '010' "; + String querySql2 = "select 'D' FINAL_LEVEL, COUNT(*) FINAL_NUMBER from (" + + "select distinct(cust_no) as cust_no from P_IRS_DEFAULT_COGNIZANCE " + + "where ((VALID = '1' and DEFAULT_TYPE ='02') or (VALID <> '0' and DEFAULT_TYPE = '01')) and cust_no is not null "; + querySql1 += ") p GROUP BY p.FINAL_LEVEL"; + querySql2 += ") q"; + String querySql = querySql1 + " UNION ALL " + querySql2; + List query = namedParameterJdbcTemplate.query(querySql, + (rs, rowNum) -> { + KeyValueWrapper kv = new KeyValueWrapper(); + kv.setKey(rs.getString("FINAL_LEVEL")); + kv.setValue(rs.getString("FINAL_NUMBER")); + return kv; + }); + return query; + } +} diff --git a/irbs.frontend/public/configure.js b/irbs.frontend/public/configure.js index 6960180..cffade3 100644 --- a/irbs.frontend/public/configure.js +++ b/irbs.frontend/public/configure.js @@ -6,7 +6,7 @@ window.APP.configure ={ webContextPath: '[(@{/})]'.startsWith('[')? '/' : '[(@{/})]', // 默认后端 API 请求的服务地址前缀 apiContextPaths: { - DEFAULT: '[(@{/})]'.startsWith('[')? 'http://localhost:8081/' : '[(@{/})]', + DEFAULT: '[(@{/})]'.startsWith('[')? 'http://localhost:8080/' : '[(@{/})]', }, // 是否启用本地 mock enableLocalMock : false, diff --git a/irbs.frontend/src/components/index.ts b/irbs.frontend/src/components/index.ts index 7e1ea78..129e39a 100644 --- a/irbs.frontend/src/components/index.ts +++ b/irbs.frontend/src/components/index.ts @@ -2,72 +2,72 @@ * 此文件为自动生成文件,请勿修改 */ -import home from '@/views/IrbsHome.vue'; -import irbsHome from '@/views/IrbsHome.vue'; -import todoTask from '@/views/workbench/TodoTask.vue'; -import doneTask from '@/views/workbench/DoneTask.vue'; -import endTask from '@/views/workbench/EndTask.vue'; -import custRating from '@/views/custRating/CustRating.vue'; -import custSeparateRating from '@/views/custRating/CustSeparateRating.vue'; -import financialRating from '@/views/custRating/FinancialRating.vue'; -import cognizanceApply from '@/views/default/CognizanceApply.vue'; -import rebirthApply from '@/views/default/RebirthApply.vue'; -import lgdQuery from '@/views/debtRating/LgdQuery.vue'; -import riskExposureApply from '@/views/riskExposure/RiskExposureApply.vue'; -import riskExposureApproval from '@/views/riskExposure/RiskExposureApproval.vue'; -import custRatingHist from '@/views/query/CustRatingHist.vue'; -import defaultHist from '@/views/query/DefaultHist.vue'; -import riskExposureHist from '@/views/query/RiskExposureHist.vue'; -import custInfo from '@/views/query/CustInfo.vue'; -import resultQuery from '@/views/model/ResultQuery.vue'; -import pressureTest from '@/views/model/PressureTest.vue'; -import ratingAdjustment from '@/views/config/RatingAdjustment.vue'; -import debtFactors from '@/views/config/DebtFactors.vue'; -import rptRatingDistribution from '@/views/report/RptRatingDistribution.vue'; -import rptRatingModelFocusDist from '@/views/report/RptRatingModelFocusDist.vue'; -import rptRatingOrgFocusDist from '@/views/report/RptRatingOrgFocusDist.vue'; -import rptRatingNumberMigrate from '@/views/report/RptRatingNumberMigrate.vue'; -import rptRatingLoanBalanceMigrate from '@/views/report/RptRatingLoanBalanceMigrate.vue'; -import rptRatingIndustryFocusDist from '@/views/report/RptRatingIndustryFocusDist.vue'; -import rptModelMonitorDiff from '@/views/report/RptModelMonitorDiff.vue'; -import rptModelMonitorStable from '@/views/report/RptModelMonitorStable.vue'; -import rptRatingOverturn from '@/views/report/RptRatingOverturn.vue'; -import rptRatingAdjust from '@/views/report/RptRatingAdjust.vue'; -import rptModelMonitorBinomialCheck from '@/views/report/RptModelMonitorBinomialCheck.vue'; +import irbs_home from '@/views/IrbsHome.vue'; +import irbs_irbsHome from '@/views/IrbsHome.vue'; +import irbs_todoTask from '@/views/workbench/TodoTask.vue'; +import irbs_doneTask from '@/views/workbench/DoneTask.vue'; +import irbs_endTask from '@/views/workbench/EndTask.vue'; +import irbs_custRating from '@/views/custRating/CustRating.vue'; +import irbs_custSeparateRating from '@/views/custRating/CustSeparateRating.vue'; +import irbs_financialRating from '@/views/custRating/FinancialRating.vue'; +import irbs_cognizanceApply from '@/views/default/CognizanceApply.vue'; +import irbs_rebirthApply from '@/views/default/RebirthApply.vue'; +import irbs_lgdQuery from '@/views/debtRating/LgdQuery.vue'; +import irbs_riskExposureApply from '@/views/riskExposure/RiskExposureApply.vue'; +import irbs_riskExposureApproval from '@/views/riskExposure/RiskExposureApproval.vue'; +import irbs_custRatingHist from '@/views/query/CustRatingHist.vue'; +import irbs_defaultHist from '@/views/query/DefaultHist.vue'; +import irbs_riskExposureHist from '@/views/query/RiskExposureHist.vue'; +import irbs_custInfo from '@/views/query/CustInfo.vue'; +import irbs_resultQuery from '@/views/model/ResultQuery.vue'; +import irbs_pressureTest from '@/views/model/PressureTest.vue'; +import irbs_ratingAdjustment from '@/views/config/RatingAdjustment.vue'; +import irbs_debtFactors from '@/views/config/DebtFactors.vue'; +import irbs_report_rptRatingDistribution from '@/views/report/RptRatingDistribution.vue'; +import irbs_report_rptRatingModelFocusDist from '@/views/report/RptRatingModelFocusDist.vue'; +import irbs_report_rptRatingOrgFocusDist from '@/views/report/RptRatingOrgFocusDist.vue'; +import irbs_report_rptRatingNumberMigrate from '@/views/report/RptRatingNumberMigrate.vue'; +import irbs_report_rptRatingLoanBalanceMigrate from '@/views/report/RptRatingLoanBalanceMigrate.vue'; +import irbs_report_rptRatingIndustryFocusDist from '@/views/report/RptRatingIndustryFocusDist.vue'; +import irbs_report_rptModelMonitorDiff from '@/views/report/RptModelMonitorDiff.vue'; +import irbs_report_rptModelMonitorStable from '@/views/report/RptModelMonitorStable.vue'; +import irbs_report_rptRatingOverturn from '@/views/report/RptRatingOverturn.vue'; +import irbs_report_rptRatingAdjust from '@/views/report/RptRatingAdjust.vue'; +import irbs_report_rptModelMonitorBinomialCheck from '@/views/report/RptModelMonitorBinomialCheck.vue'; const localComponents = { - 'irbs.home': home, - 'irbs.irbsHome': irbsHome, - 'irbs.todoTask': todoTask, - 'irbs.doneTask': doneTask, - 'irbs.endTask': endTask, - 'irbs.custRating': custRating, - 'irbs.custSeparateRating': custSeparateRating, - 'irbs.financialRating': financialRating, - 'irbs.cognizanceApply': cognizanceApply, - 'irbs.rebirthApply': rebirthApply, - 'irbs.lgdQuery': lgdQuery, - 'irbs.riskExposureApply': riskExposureApply, - 'irbs.riskExposureApproval': riskExposureApproval, - 'irbs.custRatingHist': custRatingHist, - 'irbs.defaultHist': defaultHist, - 'irbs.riskExposureHist': riskExposureHist, - 'irbs.custInfo': custInfo, - 'irbs.resultQuery': resultQuery, - 'irbs.pressureTest': pressureTest, - 'irbs.ratingAdjustment': ratingAdjustment, - 'irbs.debtFactors': debtFactors, - 'irbs.report.rptRatingDistribution': rptRatingDistribution, - 'irbs.report.rptRatingModelFocusDist': rptRatingModelFocusDist, - 'irbs.report.rptRatingOrgFocusDist': rptRatingOrgFocusDist, - 'irbs.report.rptRatingNumberMigrate': rptRatingNumberMigrate, - 'irbs.report.rptRatingLoanBalanceMigrate': rptRatingLoanBalanceMigrate, - 'irbs.report.rptRatingIndustryFocusDist': rptRatingIndustryFocusDist, - 'irbs.report.rptModelMonitorDiff': rptModelMonitorDiff, - 'irbs.report.rptModelMonitorStable': rptModelMonitorStable, - 'irbs.report.rptRatingOverturn': rptRatingOverturn, - 'irbs.report.rptRatingAdjust': rptRatingAdjust, - 'irbs.report.rptModelMonitorBinomialCheck': rptModelMonitorBinomialCheck, + 'irbs.home': irbs_home, + 'irbs.irbsHome': irbs_irbsHome, + 'irbs.todoTask': irbs_todoTask, + 'irbs.doneTask': irbs_doneTask, + 'irbs.endTask': irbs_endTask, + 'irbs.custRating': irbs_custRating, + 'irbs.custSeparateRating': irbs_custSeparateRating, + 'irbs.financialRating': irbs_financialRating, + 'irbs.cognizanceApply': irbs_cognizanceApply, + 'irbs.rebirthApply': irbs_rebirthApply, + 'irbs.lgdQuery': irbs_lgdQuery, + 'irbs.riskExposureApply': irbs_riskExposureApply, + 'irbs.riskExposureApproval': irbs_riskExposureApproval, + 'irbs.custRatingHist': irbs_custRatingHist, + 'irbs.defaultHist': irbs_defaultHist, + 'irbs.riskExposureHist': irbs_riskExposureHist, + 'irbs.custInfo': irbs_custInfo, + 'irbs.resultQuery': irbs_resultQuery, + 'irbs.pressureTest': irbs_pressureTest, + 'irbs.ratingAdjustment': irbs_ratingAdjustment, + 'irbs.debtFactors': irbs_debtFactors, + 'irbs.report.rptRatingDistribution': irbs_report_rptRatingDistribution, + 'irbs.report.rptRatingModelFocusDist': irbs_report_rptRatingModelFocusDist, + 'irbs.report.rptRatingOrgFocusDist': irbs_report_rptRatingOrgFocusDist, + 'irbs.report.rptRatingNumberMigrate': irbs_report_rptRatingNumberMigrate, + 'irbs.report.rptRatingLoanBalanceMigrate': irbs_report_rptRatingLoanBalanceMigrate, + 'irbs.report.rptRatingIndustryFocusDist': irbs_report_rptRatingIndustryFocusDist, + 'irbs.report.rptModelMonitorDiff': irbs_report_rptModelMonitorDiff, + 'irbs.report.rptModelMonitorStable': irbs_report_rptModelMonitorStable, + 'irbs.report.rptRatingOverturn': irbs_report_rptRatingOverturn, + 'irbs.report.rptRatingAdjust': irbs_report_rptRatingAdjust, + 'irbs.report.rptModelMonitorBinomialCheck': irbs_report_rptModelMonitorBinomialCheck, }; export default localComponents; diff --git a/irbs.frontend/util-components-generator.cjs b/irbs.frontend/util-components-generator.cjs index dcf297d..884a774 100644 --- a/irbs.frontend/util-components-generator.cjs +++ b/irbs.frontend/util-components-generator.cjs @@ -13,7 +13,7 @@ content +='/**\n'; content +=' * 此文件为自动生成文件,请勿修改\n'; content +=' */\n\n'; for(const route of routesJson){ - const componentName =route.component.substring(route.component.lastIndexOf('.')+1); + const componentName =route.component.replaceAll('.','_'); const componentPath =route.componentPath; content +=`import ${componentName} from '${componentPath}';\n`; } @@ -21,7 +21,7 @@ for(const route of routesJson){ content +='\n'; content +='const localComponents = { \n'; for(const route of routesJson){ - const componentName =route.component.substring(route.component.lastIndexOf('.')+1); + const componentName =route.component.replaceAll('.','_'); content +=`'${route.component}': ${componentName},\n`; } content +='}\n\n'; @@ -29,4 +29,4 @@ content +='export default localComponents;\n'; fs.writeFileSync('./src/components/index.ts', content); -console.info('components generated!'); \ No newline at end of file +console.info('components generated!'); diff --git a/irbs.frontend/webpack.env.serve.cjs b/irbs.frontend/webpack.env.serve.cjs index b8f89d2..e3f793b 100644 --- a/irbs.frontend/webpack.env.serve.cjs +++ b/irbs.frontend/webpack.env.serve.cjs @@ -19,7 +19,7 @@ module.exports = (env)=> merge(common, mf,{ directory: path.join(__dirname, 'public'), }, compress: false, - port: 3001, + port: 3000, hot: true, // 保证在出现 404 错误时,能够导航到 index.html historyApiFallback: true,