Browse Source

'报表代码提交'

main
chengjie 11 months ago
parent
commit
3452e6e534
  1. 1
      app.irbs/build.gradle
  2. 25
      app.irbs/src/main/resources/META-INF/platform/plugins/liquibase.json
  3. 190
      app.irbs/src/main/resources/liquibase/20240326_ALL_TABLES_DDL.xml
  4. 32
      app.irbs/src/main/resources/liquibase/20240401_REPORTS_TABLES_DATA.xml
  5. 44
      app.irbs/src/main/resources/liquibase/20240401_REPORTS_TABLES_DDL.xml
  6. 13
      app.irbs/src/main/resources/liquibase/20240401_REPORTS_VIEW.xml
  7. 18413
      app.irbs/src/main/resources/liquibase/data/irbs_cust_cp_info.csv
  8. 267
      app.irbs/src/main/resources/liquibase/data/irbs_loan_borr_info.csv
  9. 20
      app.irbs/src/main/resources/liquibase/data/ns_cfg_main_scale.csv
  10. 2741
      app.irbs/src/main/resources/liquibase/data/ns_company_rating.csv
  11. 918
      app.irbs/src/main/resources/liquibase/data/ns_r_cfg_rpt_sql.csv
  12. 41
      app.irbs/src/main/resources/liquibase/data/rpt_init_data.csv
  13. 35
      app.irbs/src/main/resources/liquibase/sql/rpt_views.sql
  14. 1
      irbs.cust.rating/src/main/java/irbs/cust/rating/service/impl/CompanyRatingServiceImpl.java
  15. 4
      irbs.cust.rating/src/main/resources/META-INF/platform/plugins/liquibase.json
  16. 1264
      irbs.cust.rating/src/main/resources/liquibase/sql/NS_COMPANY_RATING.sql
  17. 4
      irbs.frontend/.npmrc
  18. 2
      irbs.frontend/package.json
  19. 22
      irbs.frontend/src/components/index.ts
  20. 13
      irbs.frontend/src/i18n/messages.json
  21. 13
      irbs.frontend/src/i18n/messages_tw_CN.json
  22. 13
      irbs.frontend/src/i18n/messages_zh_CN.json
  23. 25
      irbs.frontend/src/menus/menus.json
  24. 143
      irbs.frontend/src/routes/routes.json
  25. 95
      irbs.frontend/src/views/report/RptModelMonitorBinomialCheck.vue
  26. 109
      irbs.frontend/src/views/report/RptModelMonitorDiff.vue
  27. 86
      irbs.frontend/src/views/report/RptModelMonitorStable.vue
  28. 121
      irbs.frontend/src/views/report/RptRatingAdjust.vue
  29. 140
      irbs.frontend/src/views/report/RptRatingDistribution.vue
  30. 227
      irbs.frontend/src/views/report/RptRatingIndustryFocusDist.vue
  31. 147
      irbs.frontend/src/views/report/RptRatingLoanBalanceMigrate.vue
  32. 197
      irbs.frontend/src/views/report/RptRatingModelFocusDist.vue
  33. 146
      irbs.frontend/src/views/report/RptRatingNumberMigrate.vue
  34. 197
      irbs.frontend/src/views/report/RptRatingOrgFocusDist.vue
  35. 129
      irbs.frontend/src/views/report/RptRatingOverturn.vue
  36. 0
      irbs.reports/README.adoc
  37. 5
      irbs.reports/build.gradle
  38. 0
      irbs.reports/gradle.properties
  39. 23
      irbs.reports/src/main/java/irbs/reports/controller/RptModelBinomialCheckController.java
  40. 23
      irbs.reports/src/main/java/irbs/reports/controller/RptModelMonitorDiffController.java
  41. 25
      irbs.reports/src/main/java/irbs/reports/controller/RptModelMonitorStableController.java
  42. 24
      irbs.reports/src/main/java/irbs/reports/controller/RptRatingAdjustController.java
  43. 23
      irbs.reports/src/main/java/irbs/reports/controller/RptRatingDistributionController.java
  44. 26
      irbs.reports/src/main/java/irbs/reports/controller/RptRatingIndustryFocusDistController.java
  45. 26
      irbs.reports/src/main/java/irbs/reports/controller/RptRatingLoanBalanceMigrateController.java
  46. 24
      irbs.reports/src/main/java/irbs/reports/controller/RptRatingModelFocusDistController.java
  47. 26
      irbs.reports/src/main/java/irbs/reports/controller/RptRatingNumberMigrateController.java
  48. 26
      irbs.reports/src/main/java/irbs/reports/controller/RptRatingOrgFocusDistController.java
  49. 23
      irbs.reports/src/main/java/irbs/reports/controller/RptRatingOverturnController.java
  50. 69
      irbs.reports/src/main/java/irbs/reports/jpa/entity/ReportSqlConfig.java
  51. 8
      irbs.reports/src/main/java/irbs/reports/jpa/repository/ReportSqlConfigRepository.java
  52. 58
      irbs.reports/src/main/java/irbs/reports/jpa/support/RptModelBinomialCheckVo.java
  53. 20
      irbs.reports/src/main/java/irbs/reports/jpa/support/RptModelBinomialCheckVoRowMapper.java
  54. 67
      irbs.reports/src/main/java/irbs/reports/jpa/support/RptModelMonitorDiffVo.java
  55. 21
      irbs.reports/src/main/java/irbs/reports/jpa/support/RptModelMonitorDiffVoRowMapper.java
  56. 31
      irbs.reports/src/main/java/irbs/reports/jpa/support/RptModelMonitorStableVo.java
  57. 17
      irbs.reports/src/main/java/irbs/reports/jpa/support/RptModelMonitorStableVoRowMapper.java
  58. 77
      irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingAdjustVo.java
  59. 22
      irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingAdjustVoRowMapper.java
  60. 85
      irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingDistributionVo.java
  61. 23
      irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingDistributionVoRowMapper.java
  62. 283
      irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingIndustryFocusDistVo.java
  63. 45
      irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingIndustryFocusDistVoRowMapper.java
  64. 202
      irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingLoanBalanceMigrateVo.java
  65. 36
      irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingLoanBalanceMigrateVoRowMapper.java
  66. 283
      irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingModelFocusDistVo.java
  67. 45
      irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingModelFocusDistVoRowMapper.java
  68. 202
      irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingNumberMigrateVo.java
  69. 36
      irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingNumberMigrateVoRowMapper.java
  70. 284
      irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingOrgFocusDistVo.java
  71. 45
      irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingOrgFocusDistVoRowMapper.java
  72. 94
      irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingOverturnVo.java
  73. 24
      irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingOverturnVoRowMapper.java
  74. 12
      irbs.reports/src/main/java/irbs/reports/service/RptModelBinomialCheckService.java
  75. 12
      irbs.reports/src/main/java/irbs/reports/service/RptModelMonitorDiffService.java
  76. 12
      irbs.reports/src/main/java/irbs/reports/service/RptModelMonitorStableService.java
  77. 12
      irbs.reports/src/main/java/irbs/reports/service/RptRatingAdjustService.java
  78. 12
      irbs.reports/src/main/java/irbs/reports/service/RptRatingDistributionService.java
  79. 12
      irbs.reports/src/main/java/irbs/reports/service/RptRatingIndustryFocusDistService.java
  80. 12
      irbs.reports/src/main/java/irbs/reports/service/RptRatingLoanBalanceMigrateService.java
  81. 12
      irbs.reports/src/main/java/irbs/reports/service/RptRatingModelFocusDistService.java
  82. 12
      irbs.reports/src/main/java/irbs/reports/service/RptRatingNumberMigrateService.java
  83. 12
      irbs.reports/src/main/java/irbs/reports/service/RptRatingOrgFocusDistService.java
  84. 12
      irbs.reports/src/main/java/irbs/reports/service/RptRatingOverturnService.java
  85. 57
      irbs.reports/src/main/java/irbs/reports/service/impl/RptModelBinomialCheckServiceImpl.java
  86. 62
      irbs.reports/src/main/java/irbs/reports/service/impl/RptModelMonitorDiffServiceImpl.java
  87. 57
      irbs.reports/src/main/java/irbs/reports/service/impl/RptModelMonitorStableServiceImpl.java
  88. 54
      irbs.reports/src/main/java/irbs/reports/service/impl/RptRatingAdjustServiceImpl.java
  89. 54
      irbs.reports/src/main/java/irbs/reports/service/impl/RptRatingDistributionServiceImpl.java
  90. 53
      irbs.reports/src/main/java/irbs/reports/service/impl/RptRatingIndustryFocusDistServiceImpl.java
  91. 54
      irbs.reports/src/main/java/irbs/reports/service/impl/RptRatingLoanBalanceMigrateServiceImpl.java
  92. 53
      irbs.reports/src/main/java/irbs/reports/service/impl/RptRatingModelFocusDistServiceImpl.java
  93. 53
      irbs.reports/src/main/java/irbs/reports/service/impl/RptRatingNumberMigrateServiceImpl.java
  94. 52
      irbs.reports/src/main/java/irbs/reports/service/impl/RptRatingOrgFocusDistServiceImpl.java
  95. 56
      irbs.reports/src/main/java/irbs/reports/service/impl/RptRatingOverturnServiceImpl.java
  96. 41
      irbs.reports/src/main/java/irbs/reports/service/support/QueryParams.java
  97. 36
      irbs.reports/src/main/java/irbs/reports/utils/RptSqlFormat.java
  98. 25
      irbs.reports/src/main/resources/META-INF/platform/plugins/application-properties.json
  99. 16
      irbs.reports/src/main/resources/META-INF/platform/plugins/components.json
  100. 17
      irbs.reports/src/main/resources/META-INF/platform/plugins/directories.json

1
app.irbs/build.gradle

@ -21,6 +21,7 @@ dependencies {
"io.sc:app.rwa.frontend:${platform_version}", "io.sc:app.rwa.frontend:${platform_version}",
project(":irbs.frontend"), project(":irbs.frontend"),
project(":irbs.cust.rating"), project(":irbs.cust.rating"),
project(":irbs.reports"),
) )
} }

25
app.irbs/src/main/resources/META-INF/platform/plugins/liquibase.json

@ -0,0 +1,25 @@
/*
* Liquibase ChangeLog XML
* :
* 使:
* category: ,:
* install :
* order:
* description:
* locations: liquibase changelog xml
*/
/* */
[
{
"category" : "install",
"order" : 1000,
"description":"授权与认证相关数据库表结构",
"locations":[
"liquibase/20240326_ALL_TABLES_DDL.xml",
"liquibase/20240401_REPORTS_TABLES_DDL.xml",
"liquibase/20240401_REPORTS_TABLES_DATA.xml",
"liquibase/20240401_REPORTS_VIEW.xml"
]
}
]

190
app.irbs/src/main/resources/liquibase/20240326_ALL_TABLES_DDL.xml

@ -0,0 +1,190 @@
<?xml version='1.0' encoding='UTF-8'?><databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">
<property name="now" value="CURRENT TIMESTAMP" dbms="db2"/>
<property name="now" value="CURRENT_TIMESTAMP" dbms="h2"/>
<property name="now" value="sysdate" dbms="oracle"/>
<property name="now" value="now()" dbms="mysql"/>
<property name="now" value="now()" dbms="postgresql"/>
<changeSet id="20240326_ALL_TABLES_DDL" author="platform">
<createTable tableName="FR_AA_ORG" remarks="机构表">
<column name="ID_" type="java.sql.Types.VARCHAR(36)" remarks="ID">
<constraints primaryKey="true"/>
</column>
<column name="FD_CODE" type="java.sql.Types.VARCHAR(255)" remarks="机构代码"/>
<column name="FD_NAME" type="java.sql.Types.VARCHAR(255)" remarks="机构名称"/>
<column name="FD_ENABLE" type="java.sql.Types.NUMERIC(5, 0)" remarks="是否可用"/>
<column name="FD_DESCRIPTION" type="java.sql.Types.VARCHAR(255)" remarks="描述"/>
<column name="FD_IS_DEPARTMENT" type="java.sql.Types.NUMERIC(5, 0)" remarks="是否是部门"/>
<column name="FD_PARENT_ID" type="java.sql.Types.VARCHAR(255)" remarks="父机构ID"/>
<column name="FD_DATA_COME_FROM" type="java.sql.Types.VARCHAR(10)" remarks="数据来源(MANUAL:手工录入,AUTO:系统自动导入)"/>
<column name="FD_CREATOR" type="java.sql.Types.VARCHAR(255)" remarks="创建人"/>
<column name="FD_CREATE_DATE" type="DATETIME" remarks="创建日期"/>
<column name="FD_LAST_MODIFIER" type="java.sql.Types.VARCHAR(255)" remarks="最后修改人"/>
<column name="FD_LAST_MODIFYDATE" type="DATETIME" remarks="最后修改日期"/>
<column name="FD_CORPORATION_CODE" type="java.sql.Types.VARCHAR(255)" remarks="所属法人代码"/>
</createTable>
<createTable tableName="IRBS_CUST_CP_INFO" remarks="">
<column name="DATA_DT" type="java.sql.Types.VARCHAR(100)" remarks=""/>
<column name="CUST_NO" type="java.sql.Types.VARCHAR(100)" remarks="客户编号"/>
<column name="CUST_CNA" type="java.sql.Types.VARCHAR(300)" remarks="客户名称"/>
<column name="CUST_TYPE_CD" type="java.sql.Types.VARCHAR(100)" remarks="客户类型"/>
<column name="ORGN_CD" type="java.sql.Types.VARCHAR(100)" remarks="组织机构代码"/>
<column name="LEGA_BOOK_NO" type="java.sql.Types.VARCHAR(100)" remarks="法人证书号"/>
<column name="ORG_CRDT_CD" type="java.sql.Types.VARCHAR(100)" remarks="统一信用代码证号"/>
<column name="CUST_SORT_CD" type="java.sql.Types.VARCHAR(100)" remarks="客户分类"/>
<column name="CORP_SIZE_CD" type="java.sql.Types.VARCHAR(100)" remarks="企业规模"/>
<column name="INDU_SORT_CD" type="java.sql.Types.VARCHAR(100)" remarks="国标行业分类"/>
<column name="CHASTEN_CUST_FLAG" type="java.sql.Types.VARCHAR(100)" remarks="是否为联合惩戒名单客户"/>
<column name="FIRST_CRTD_CRDT_RELA_DT" type="java.sql.Types.VARCHAR(100)" remarks="与我行建立信贷关系时间"/>
<column name="BUILD_DT" type="java.sql.Types.VARCHAR(100)" remarks="成立日期"/>
<column name="UPDATE_DT" type="java.sql.Types.VARCHAR(100)" remarks="更新日期"/>
<column name="LEGAL_REP" type="java.sql.Types.VARCHAR(500)" remarks="法人代表"/>
<column name="RGST_GROUND" type="java.sql.Types.VARCHAR(300)" remarks="注册地址"/>
<column name="MGER_NO" type="java.sql.Types.VARCHAR(100)" remarks="管户人编号"/>
<column name="MGER_CNA" type="java.sql.Types.VARCHAR(100)" remarks="管户人"/>
<column name="MGER_ORG_NM" type="java.sql.Types.VARCHAR(100)" remarks="管户机构"/>
<column name="MGER_ORG_NO" type="java.sql.Types.VARCHAR(100)" remarks="管户机构编号"/>
<column name="MGER_ORG_NO_UP" type="java.sql.Types.VARCHAR(100)" remarks="管户机构上级"/>
<column name="CORP_SUBJ" type="java.sql.Types.VARCHAR(100)" remarks="企业隶属"/>
<column name="NATION_CD" type="java.sql.Types.VARCHAR(100)" remarks="所在国家地区"/>
<column name="RGST_GROUND_ADMIN_REGION_CD" type="java.sql.Types.VARCHAR(100)" remarks="所在行政区域"/>
<column name="LT_TRD_YEAR_INCOME_FLAG" type="java.sql.Types.VARCHAR(100)" remarks="近三年营业收入不大于三亿"/>
<column name="GOVER_FIN_FLT_FLAG" type="java.sql.Types.VARCHAR(100)" remarks="是否政府融资平台"/>
<column name="PRI_RIGHT_LIST_FLAG" type="java.sql.Types.VARCHAR(100)" remarks="是否主权名单"/>
<column name="YEARS3_OVDUE_30_DAY_FLAG" type="java.sql.Types.VARCHAR(100)" remarks="3年内借据逾期超过30天标志"/>
<column name="YEARS3_EXPAND_2_CNT_FLAG" type="java.sql.Types.VARCHAR(100)" remarks="3年内贷款展期次数2次及以上标志"/>
<column name="YEARS3_ADV_MONEY_30_DAY_FLAG" type="java.sql.Types.VARCHAR(100)" remarks="3年内垫款超过30天标志"/>
<column name="YEARS3_BOR_REPAY_2_CNT_FLAG" type="java.sql.Types.VARCHAR(100)" remarks="3年内借新还旧次数2次及以上标志"/>
<column name="YEARS3_MODE_MODIF_OVERDUE_2_CNT_FLAG" type="java.sql.Types.VARCHAR(100)" remarks="3年内结息方式变更后是否出现逾期2次及以上标志"/>
<column name="YEARS3_PRIN_REPAY_PLAN_MODIF_2_CNT_FLAG" type="java.sql.Types.VARCHAR(100)" remarks="3年内合同的本金还款计划是否变更2次及以上标志"/>
<column name="YEARS3_REGROUP_2_CNT_FLAG" type="java.sql.Types.CHAR" remarks="3年内重组2次及以上标志"/>
</createTable>
<createTable tableName="IRBS_LOAN_BORR_INFO" remarks="">
<column name="DATA_DT" type="java.sql.Types.VARCHAR(100)" remarks=""/>
<column name="CUST_NO" type="java.sql.Types.VARCHAR(100)" remarks="客户号"/>
<column name="CUST_CNA" type="java.sql.Types.VARCHAR(300)" remarks="客户名称"/>
<column name="DEBENTURE_NO" type="java.sql.Types.VARCHAR(100)" remarks="借据编号"/>
<column name="CONT_NO" type="java.sql.Types.VARCHAR(100)" remarks="合同编号"/>
<column name="ORG_NO" type="java.sql.Types.VARCHAR(100)" remarks="借据所属机构编号"/>
<column name="FIN_ORG_NO" type="java.sql.Types.VARCHAR(100)" remarks="借据入账机构编号"/>
<column name="PRD_CD" type="java.sql.Types.VARCHAR(100)" remarks="借据相关产品编号"/>
<column name="BUSI_STATUS_CD" type="java.sql.Types.VARCHAR(100)" remarks="借据状态代码"/>
<column name="PRD_CD_DESC" type="java.sql.Types.VARCHAR(100)" remarks="借据业务品种"/>
<column name="BORR_START_DT" type="java.sql.Types.VARCHAR(100)" remarks="借据起始日期"/>
<column name="BORR_GIVE_DT" type="java.sql.Types.VARCHAR(100)" remarks="借据放款日期"/>
<column name="BORR_MATURE_DT" type="java.sql.Types.VARCHAR(100)" remarks="借据到期日期"/>
<column name="BORR_GIVE_AMT" type="java.sql.Types.VARCHAR(100)" remarks="借据发放金额"/>
<column name="TERM_UNIT_CD" type="java.sql.Types.VARCHAR(100)" remarks="期限单位代码"/>
<column name="CONT_TERM" type="java.sql.Types.NUMERIC(38, 6)" remarks="贷款期限"/>
<column name="BORR_BAL" type="java.sql.Types.NUMERIC(38, 6)" remarks="借据余额"/>
<column name="GUAR_TYPE_CD" type="java.sql.Types.VARCHAR(100)" remarks="担保方式"/>
<column name="OVERDUE_FLAG" type="java.sql.Types.VARCHAR(100)" remarks="借据逾期标志"/>
<column name="OVERDUE_DAYS" type="java.sql.Types.NUMERIC(38, 6)" remarks="借据逾期天数"/>
<column name="INT_OVER_DAYS" type="java.sql.Types.NUMERIC(38, 6)" remarks="利息逾期天数"/>
<column name="PRIN_OVER_DAYS" type="java.sql.Types.NUMERIC(38, 6)" remarks="本金逾期天数"/>
<column name="BORR_OVERDUE_BAL" type="java.sql.Types.NUMERIC(38, 6)" remarks="借据逾期余额"/>
<column name="OFF_OWEINT_BAL" type="java.sql.Types.NUMERIC(38, 6)" remarks="表外欠息余额"/>
<column name="IN_OWEINT_BAL" type="java.sql.Types.NUMERIC(38, 6)" remarks="表内欠息余额"/>
<column name="RECE_INT_CUMU" type="java.sql.Types.NUMERIC(38, 6)" remarks="应收利息累计"/>
<column name="STOP_INT_FLAG" type="java.sql.Types.VARCHAR(100)" remarks="停止计息标识"/>
<column name="CCY_CD" type="java.sql.Types.VARCHAR(100)" remarks="借据结算币种"/>
<column name="TEN_CLASS_CD" type="java.sql.Types.VARCHAR(100)" remarks="借据十级分类结果"/>
<column name="CANCEL_FLAG" type="java.sql.Types.VARCHAR(100)" remarks="核销标识"/>
<column name="CANCEL_DT" type="java.sql.Types.VARCHAR(100)" remarks="核销日期"/>
<column name="LOAN_USAGE" type="java.sql.Types.VARCHAR(100)" remarks="贷款用途"/>
<column name="EXTEND_FLAG" type="java.sql.Types.VARCHAR(100)" remarks="是否发生展期"/>
<column name="EXTEND_NUM" type="java.sql.Types.NUMERIC(38, 6)" remarks="贷款展期次数"/>
<column name="ADV_MONEY_FLAG" type="java.sql.Types.VARCHAR(100)" remarks="垫款标志"/>
<column name="ADV_MONEY_DAYS" type="java.sql.Types.NUMERIC(38, 6)" remarks="垫款天数"/>
<column name="ADV_MONEY_DAYS_LX" type="java.sql.Types.NUMERIC(38, 6)" remarks="连续垫款天数"/>
<column name="BOR_REPAY_CNT" type="java.sql.Types.VARCHAR(100)" remarks="借新还旧次数"/>
<column name="MODE_MODIF_OVERDUE_FLAG" type="java.sql.Types.VARCHAR(100)" remarks="结息方式变更后是否出现逾期"/>
<column name="MAJOR_LOAN_LIST_FLAG" type="java.sql.Types.VARCHAR(100)" remarks="是否符合专业贷款名单"/>
</createTable>
<createTable tableName="IRBS_ORG_INFO_CORE" remarks="">
<column name="DATA_DT" type="java.sql.Types.VARCHAR(100)" remarks="数据日期"/>
<column name="ORG_NO" type="java.sql.Types.VARCHAR(100)" remarks="机构编号"/>
<column name="ORG_NAME" type="java.sql.Types.VARCHAR(100)" remarks="机构名称"/>
<column name="ORG_SNAME" type="java.sql.Types.VARCHAR(100)" remarks="机构简称"/>
<column name="UP_ORG_NO" type="java.sql.Types.VARCHAR(100)" remarks="上级机构编号"/>
<column name="UP_ORG_NAME" type="java.sql.Types.VARCHAR(100)" remarks="上级机构名称"/>
<column name="ORG_LVL" type="java.sql.Types.VARCHAR(100)" remarks="机构等级"/>
<column name="LEGAL_TYPE" type="java.sql.Types.VARCHAR(100)" remarks="法人类型"/>
<column name="VM_FLAG" type="java.sql.Types.VARCHAR(100)" remarks="虚体机构标识"/>
<column name="ORG_TYPE" type="java.sql.Types.VARCHAR(100)" remarks="机构类型代码"/>
<column name="ORG_EXELVL" type="java.sql.Types.VARCHAR(100)" remarks="机构级别代码"/>
<column name="ORG_STATUS" type="java.sql.Types.VARCHAR(100)" remarks="机构状态代码"/>
</createTable>
<createTable tableName="NS_CFG_MAIN_SCALE" remarks="">
<column name="ID_" type="java.sql.Types.VARCHAR(36)" remarks="">
<constraints primaryKey="true"/>
</column>
<column name="SCALE_LEVEL" type="java.sql.Types.VARCHAR(10)" remarks=""/>
<column name="PD" type="java.sql.Types.NUMERIC(10, 4)" remarks=""/>
<column name="SCALE_TYPE" type="java.sql.Types.VARCHAR(10)" remarks=""/>
<column name="ORDER_NUM" type="java.sql.Types.NUMERIC(10, 0)" remarks=""/>
<column name="ADMISSION_SUGGEST" type="java.sql.Types.VARCHAR(60)" remarks=""/>
<column name="CREATOR" type="java.sql.Types.VARCHAR(255)" remarks=""/>
<column name="CREATE_DATE" type="DATETIME" remarks=""/>
<column name="LAST_MODIFIER" type="java.sql.Types.VARCHAR(255)" remarks=""/>
<column name="LAST_MODIFY_DATE" type="DATETIME" remarks=""/>
<column name="UP_LIMIT" type="java.sql.Types.NUMERIC(10, 4)" remarks=""/>
<column name="DOWN_LIMIT" type="java.sql.Types.NUMERIC(10, 4)" remarks=""/>
</createTable>
<!-- 公司客户评级主表 -->
<createTable tableName="NS_COMPANY_RATING" remarks="公司客户评级主表">
<column name="ID_" type="java.sql.Types.NVARCHAR(50)" remarks="ID主键">
<constraints primaryKey="true"/>
</column>
<column name="CUST_ID" type="java.sql.Types.NVARCHAR(50)" remarks="客户ID"></column>
<column name="CUST_NO" type="java.sql.Types.NVARCHAR(100)" remarks="客户编号"></column>
<column name="CUST_NAME" type="java.sql.Types.NVARCHAR(200)" remarks="客户中文名称"></column>
<column name="CUST_TYPE" type="java.sql.Types.NVARCHAR(10)" remarks="客户类别(1:一般公司客户;2:金融机构及发债企业客户)"></column>
<column name="MANAGER_NAME" type="java.sql.Types.NVARCHAR(50)" remarks="客户经理名称"></column>
<column name="MANAGER_CODE" type="java.sql.Types.NVARCHAR(50)" remarks="客户经理编号"></column>
<column name="MANAGER_ORG_CODE" type="java.sql.Types.NVARCHAR(50)" remarks="客户经理所在机构编号"></column>
<column name="MANAGER_ORG_NAME" type="java.sql.Types.NVARCHAR(200)" remarks="客户经理所在机构名称"></column>
<column name="LAUNCH_USER" type="java.sql.Types.NVARCHAR(100)" remarks="发起人"></column>
<column name="QUAN_SCORE" type="java.sql.Types.NUMERIC(24, 8)" remarks="定量得分"></column>
<column name="QUAL_SCORE" type="java.sql.Types.NUMERIC(24, 8)" remarks="定性得分"></column>
<column name="MODEL_SCORE" type="java.sql.Types.NUMERIC(24, 8)" remarks="模型得分"></column>
<column name="INIT_LEVEL" type="java.sql.Types.NVARCHAR(10)" remarks="初始级别"></column>
<column name="ADJ_LEVEL" type="java.sql.Types.NVARCHAR(10)" remarks="调整项级别"></column>
<column name="SP_LEVEL" type="java.sql.Types.NVARCHAR(10)" remarks="评级推翻级别"></column>
<column name="FINAL_LEVEL" type="java.sql.Types.NVARCHAR(10)" remarks="最终认定级别"></column>
<column name="PD" type="java.sql.Types.NUMERIC(24, 8)" remarks="违约概率"></column>
<column name="PROCESS_INSTANCE_ID" type="java.sql.Types.NVARCHAR(50)" remarks="流程实例主键"></column>
<column name="PROCESS_STATUS" type="java.sql.Types.NVARCHAR(50)" remarks="流程状态"></column>
<column name="RATING_STATUS" type="java.sql.Types.NVARCHAR(50)" remarks="评级状态"></column>
<column name="TRIGGER_TYPE" type="java.sql.Types.NVARCHAR(50)" remarks="评级任务触发类型"></column>
<column name="TRIGGER_REA" type="java.sql.Types.NVARCHAR(500)" remarks="评级任务触发原因"></column>
<column name="RATE_TYPE" type="java.sql.Types.NVARCHAR(10)" remarks="评级类型"></column>
<column name="RATE_TYPE_DES" type="java.sql.Types.NVARCHAR(500)" remarks="评级类型描述"></column>
<column name="START_TIME" type="DATETIME" remarks="评级发起日期"></column>
<column name="EFFECTIVE_TIME" type="DATETIME" remarks="评级生效时间"></column>
<column name="MATURE_TIME" type="DATETIME" remarks="评级到期时间"></column>
<column name="MODEL_ID" type="java.sql.Types.NVARCHAR(50)" remarks="评级模型ID"></column>
<column name="MODEL_CODE" type="java.sql.Types.NVARCHAR(50)" remarks="评级模型编号"></column>
<column name="MODEL_NAME" type="java.sql.Types.NVARCHAR(100)" remarks="评级模型名称"></column>
<column name="RATING_CFG_ID" type="java.sql.Types.NVARCHAR(50)" remarks="评级配置ID"></column>
<column name="IS_ADMIT" type="java.sql.Types.SMALLINT" remarks="准入建议"></column>
<column name="IS_TRIAL" type="java.sql.Types.SMALLINT" remarks="是否试算"></column>
<column name="MODEL_LEVEL" type="java.sql.Types.NVARCHAR(50)" remarks="模型评级等级"></column>
<column name="CURRENT_STEP" type="java.sql.Types.NVARCHAR(50)" remarks="当前评级步骤(页面位置)"></column>
<column name="OVER_NUM" type="java.sql.Types.SMALLINT" remarks="意见位置"></column>
<column name="OUT_IMAGE_ID" type="java.sql.Types.NVARCHAR(50)" remarks="外部数据授权标志"></column>
<column name="ACCESS_LEVEL" type="java.sql.Types.NVARCHAR(10)" remarks="准入级别"></column>
<column name="DEFAULT_IND" type="java.sql.Types.NVARCHAR(10)" remarks="违约标识"></column>
<column name="QUAL_CALC_COUNT" type="java.sql.Types.SMALLINT" remarks="定性计算次数"></column>
<column name="PWH_COMMITTEE_NUM" type="java.sql.Types.SMALLINT" remarks="评级委员会人数"></column>
<column name="GX_END_TIME" type="DATETIME" remarks="评级更新任务到期时间"></column>
<column name="DATA_COME_FROM_" type="java.sql.Types.NVARCHAR(10)" remarks="数据来源(INPUT:手工录入,IMPORT:系统自动导入)" defaultValue="INPUT"></column>
<column name="CREATOR_" type="java.sql.Types.NVARCHAR(255)" remarks="创建人"></column>
<column name="CREATE_DATE_" type="DATETIME" remarks="创建日期"></column>
<column name="LAST_MODIFIER_" type="java.sql.Types.NVARCHAR(255)" remarks="最后修改人"></column>
<column name="LAST_MODIFYDATE_" type="DATETIME" remarks="最后修改日期"></column>
<column name="CORP_CODE_" type="java.sql.Types.NVARCHAR(255)" remarks="所属法人代码" defaultValue="_PRIMARY_">
<constraints nullable="false"/>
</column>
</createTable>
</changeSet>
</databaseChangeLog>

32
app.irbs/src/main/resources/liquibase/20240401_REPORTS_TABLES_DATA.xml

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
xsi:schemaLocation="
http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.1.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd
">
<changeSet id="20240401_REPORTS_TABLES_DATA" author="platform">
<customChange class="io.sc.platform.jdbc.liquibase.task.CsvImportTaskChange">
<param name="dataFile" value="classpath:/liquibase/data/ns_r_cfg_rpt_sql.csv"/>
</customChange>
<customChange class="io.sc.platform.jdbc.liquibase.task.CsvImportTaskChange">
<param name="dataFile" value="classpath:/liquibase/data/rpt_init_data.csv"/>
</customChange>
<customChange class="io.sc.platform.jdbc.liquibase.task.CsvImportTaskChange">
<param name="dataFile" value="classpath:/liquibase/data/ns_company_rating.csv"/>
</customChange>
<customChange class="io.sc.platform.jdbc.liquibase.task.CsvImportTaskChange">
<param name="dataFile" value="classpath:/liquibase/data/irbs_cust_cp_info.csv"/>
</customChange>
<customChange class="io.sc.platform.jdbc.liquibase.task.CsvImportTaskChange">
<param name="dataFile" value="classpath:/liquibase/data/irbs_loan_borr_info.csv"/>
</customChange>
<customChange class="io.sc.platform.jdbc.liquibase.task.CsvImportTaskChange">
<param name="dataFile" value="classpath:/liquibase/data/ns_cfg_main_scale.csv"/>
</customChange>
</changeSet>
</databaseChangeLog>

44
app.irbs/src/main/resources/liquibase/20240401_REPORTS_TABLES_DDL.xml

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">
<changeSet id="20240401_REPORTS_TABLES_DDL" author="platform">
<!-- 报表sql配置表 -->
<createTable tableName="NS_R_CFG_RPT_SQL" remarks="报表sql配置表">
<column name="ID_" type="java.sql.Types.NVARCHAR(50)" remarks="ID主键">
<constraints primaryKey="true"/>
</column>
<column name="REPORT_ID" type="java.sql.Types.NVARCHAR(255)" remarks="报表ID"></column>
<column name="REPORT_NAME" type="java.sql.Types.NVARCHAR(255)" remarks="报表名称"></column>
<column name="DATABASE_TYPE" type="java.sql.Types.NVARCHAR(255)" remarks="数据库类型"></column>
<column name="SQL_TEXT" type="CLOB" remarks="报表的sql语句"></column>
<column name="DATA_COME_FROM_" type="java.sql.Types.NVARCHAR(10)" remarks="数据来源(INPUT:手工录入,IMPORT:系统自动导入)" defaultValue="INPUT"></column>
<column name="CREATOR_" type="java.sql.Types.NVARCHAR(255)" remarks="创建人"></column>
<column name="CREATE_DATE_" type="DATETIME" remarks="创建日期"></column>
<column name="LAST_MODIFIER_" type="java.sql.Types.NVARCHAR(255)" remarks="最后修改人"></column>
<column name="LAST_MODIFYDATE_" type="DATETIME" remarks="最后修改日期"></column>
<column name="CORP_CODE_" type="java.sql.Types.NVARCHAR(255)" remarks="所属法人代码" defaultValue="_PRIMARY_">
<constraints nullable="false"/>
</column>
</createTable>
<!-- 报表初始数据表 -->
<createTable tableName="RPT_INIT_DATA" remarks="报表初始数据表">
<column name="DATA_TP_CD" type="java.sql.Types.NVARCHAR(50)" remarks="数据类型"></column>
<column name="DATA_TP_NM" type="java.sql.Types.NVARCHAR(255)" remarks="数据类型名称"></column>
<column name="ITEM_NAME" type="java.sql.Types.NVARCHAR(255)" remarks="数据项名称"></column>
<column name="ITEM_VALUE" type="java.sql.Types.NVARCHAR(255)" remarks="数据项值"></column>
<column name="DATA_COME_FROM_" type="java.sql.Types.NVARCHAR(10)" remarks="数据来源(INPUT:手工录入,IMPORT:系统自动导入)" defaultValue="INPUT"></column>
<column name="CREATOR_" type="java.sql.Types.NVARCHAR(255)" remarks="创建人"></column>
<column name="CREATE_DATE_" type="DATETIME" remarks="创建日期"></column>
<column name="LAST_MODIFIER_" type="java.sql.Types.NVARCHAR(255)" remarks="最后修改人"></column>
<column name="LAST_MODIFYDATE_" type="DATETIME" remarks="最后修改日期"></column>
<column name="CORP_CODE_" type="java.sql.Types.NVARCHAR(255)" remarks="所属法人代码" defaultValue="_PRIMARY_">
<constraints nullable="false"/>
</column>
</createTable>
</changeSet>
</databaseChangeLog>

13
app.irbs/src/main/resources/liquibase/20240401_REPORTS_VIEW.xml

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">
<changeSet id="20240401_REPORTS_VIEW" author="platform">
<!-- 初始化基础数据 -->
<sqlFile dbms="oracle, mysql" path="classpath:/liquibase/sql/rpt_views.sql"/>
</changeSet>
</databaseChangeLog>

18413
app.irbs/src/main/resources/liquibase/data/irbs_cust_cp_info.csv

File diff suppressed because it is too large

267
app.irbs/src/main/resources/liquibase/data/irbs_loan_borr_info.csv

@ -0,0 +1,267 @@
"IRBS_LOAN_BORR_INFO",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
"DATA_DT","CUST_NO","CUST_CNA","DEBENTURE_NO","CONT_NO","ORG_NO","FIN_ORG_NO","PRD_CD","BUSI_STATUS_CD","PRD_CD_DESC","BORR_START_DT","BORR_GIVE_DT","BORR_MATURE_DT","BORR_GIVE_AMT","TERM_UNIT_CD","CONT_TERM","BORR_BAL","GUAR_TYPE_CD","OVERDUE_FLAG","OVERDUE_DAYS","INT_OVER_DAYS","PRIN_OVER_DAYS","BORR_OVERDUE_BAL","OFF_OWEINT_BAL","IN_OWEINT_BAL","RECE_INT_CUMU","STOP_INT_FLAG","CCY_CD","TEN_CLASS_CD","CANCEL_FLAG","CANCEL_DT","LOAN_USAGE","EXTEND_FLAG","EXTEND_NUM","ADV_MONEY_FLAG","ADV_MONEY_DAYS","ADV_MONEY_DAYS_LX","BOR_REPAY_CNT","MODE_MODIF_OVERDUE_FLAG","MAJOR_LOAN_LIST_FLAG"
"","客户号","客户名称","借据编号","合同编号","借据所属机构编号","借据入账机构编号","借据相关产品编号","借据状态代码","借据业务品种","借据起始日期","借据放款日期","借据到期日期","借据发放金额","期限单位代码","贷款期限","借据余额","担保方式","借据逾期标志","借据逾期天数","利息逾期天数","本金逾期天数","借据逾期余额","表外欠息余额","表内欠息余额","应收利息累计","停止计息标识","借据结算币种","借据十级分类结果","核销标识","核销日期","贷款用途","是否发生展期","贷款展期次数","垫款标志","垫款天数","连续垫款天数","借新还旧次数","结息方式变更后是否出现逾期","是否符合专业贷款名单"
"VARCHAR","VARCHAR","VARCHAR","VARCHAR","VARCHAR","VARCHAR","VARCHAR","VARCHAR","VARCHAR","VARCHAR","VARCHAR","VARCHAR","VARCHAR","VARCHAR","VARCHAR","DECIMAL","DECIMAL","VARCHAR","VARCHAR","DECIMAL","DECIMAL","DECIMAL","DECIMAL","DECIMAL","DECIMAL","DECIMAL","VARCHAR","VARCHAR","VARCHAR","VARCHAR","VARCHAR","VARCHAR","VARCHAR","DECIMAL","VARCHAR","DECIMAL","DECIMAL","VARCHAR","VARCHAR","VARCHAR"
"java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.math.BigDecimal","java.math.BigDecimal","java.lang.String","java.lang.String","java.math.BigDecimal","java.math.BigDecimal","java.math.BigDecimal","java.math.BigDecimal","java.math.BigDecimal","java.math.BigDecimal","java.math.BigDecimal","java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.math.BigDecimal","java.lang.String","java.math.BigDecimal","java.math.BigDecimal","java.lang.String","java.lang.String","java.lang.String"
"20230228","2112909445",,"009128764","HT0112603030120221226001",,,,,,,,,,,,"50000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2104904964",,"JJ0124720420220531001","HT0124703010220220526001",,,,,,,,,,,,"750000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2006499525",,"JJ0106820420220808001","HT0106803012120220804001",,,,,,,,,,,,"350000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2112605859",,"JJ1120620420220616002","HT1120603010220220609001",,,,,,,,,,,,"1625000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","C168663969115226",,"009130918","HT1100303030120230213001",,,,,,,,,,,,"250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","C168663965061035",,"000125273","HT0103503030120220811002",,,,,,,,,,,,"1250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","C168663953361471",,"131365107007520220527250184198","HT0107503070220220531004",,,,,,,,,,,,"250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","C168663961353515",,"JJ0103520420230112001","HT0103503010220230112001",,,,,,,,,,,,"987500.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","C168663958007379",,"JJ0101820420220930001","HT0101803010920220929001",,,,,,,,,,,,"137500.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","C168688372082545",,"JJ0127320420220711001","HT0127303010220220705001",,,,,,,,,,,,"750000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","C168664427324739",,"132352101206620220518239313004","HT0104803070220220519001",,,,,,,,,,,,"1250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","C168791748883227",,"JJ0122120420230118005","020122120230116002",,,,,,,,,,,,"875000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","C168722865029555",,"000126092","HT1110203030120220908002",,,,,,,,,,,,"50000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","C168791872039499",,"HT0104103080120230106001","HT0104103080120230106001",,,,,,,,,,,,"0.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","C168792232554955",,"JJ1110820420221215001","HT1110803010220221214001",,,,,,,,,,,,"75000000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","C168793367754333",,"009129979","HT0127303030120230118001",,,,,,,,,,,,"10732.500000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","C168793618985050",,"JJ0107320420211124001","HT0107303020420211124001",,,,,,,,,,,,"500000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","C168793709784578",,"JJ0103720420210508008","020103720210507006",,,,,,,,,,,,"7500000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","C168923091006164",,"JJ0118620420230112001","HT0118603040220220516001",,,,,,,,,,,,"7520000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","C62411846",,"000120920","HT0112803030120220418001",,,,,,,,,,,,"1250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2100601306",,"JJ0123520420201224001","HT0123503020520201130001",,,,,,,,,,,,"388728.840000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2114406111",,"JJ0100720420220429001","HT0100703012120220426001",,,,,,,,,,,,"250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2006313353",,"JJ0120920420210531009","020120920210531003",,,,,,,,,,,,"2425000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2114006028",,"JJ0124420420220825001","HT0124403040220220817001",,,,,,,,,,,,"4734225.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2102002293",,"JJ0114820420220621002","HT0114803010220220617001",,,,,,,,,,,,"10000000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007719447",,"009127155","HT1110203030120221027002",,,,,,,,,,,,"25000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2110308673",,"JJ1110220420221026002","HT1110203010220221026001",,,,,,,,,,,,"2500000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2100000856",,"JJ0100620420220323001","HT0100603010220220317001",,,,,,,,,,,,"600000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2112910047",,"000046024","HT0113103030120150917001",,,,,,,,,,,,"750000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2108205706",,"009128961","HT0112603030120230106001",,,,,,,,,,,,"1250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2115105907",,"JJ0100220420220523002","HT0100203010220220520001",,,,,,,,,,,,"9000000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2112909400",,"JJ0114320420220824001","HT0114303010320210824001",,,,,,,,,,,,"3750000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007701660",,"131365107007520220530250762487","HT0105703070220220531002",,,,,,,,,,,,"1250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2100301271",,"000043341","HT0113103030120150714003",,,,,,,,,,,,"745160.470000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007683249",,"009126944","HT0100203030120221013001",,,,,,,,,,,,"12500.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007709883",,"JJ0124720420200924001","HT0124703020220200713001",,,,,,,,,,,,"615000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2104606042",,"009127716","HT0127303030120221114001",,,,,,,,,,,,"25000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2100802192",,"JJ0108220420221229001","HT0108203010220221226001",,,,,,,,,,,,"1800000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2101302082",,"106808075130012","106808075130012",,,,,,,,,,,,"24350.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007694110",,"JJ0114420420200910001","HT0114403020420200908001",,,,,,,,,,,,"163750000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2005642083",,"JJ1100320420221205001","HT1100303010220221202001",,,,,,,,,,,,"2375000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2005653783",,"JJ0112820420221104007","020112820221102006",,,,,,,,,,,,"1500000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2115705978",,"JJ0127320420230117006","HT0127303010520230113004",,,,,,,,,,,,"515493.210000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2110606109",,"JJ0113720420220728002","HT0113703010220220715001",,,,,,,,,,,,"1975000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2005538406",,"JJ0124420420221215001","020124420221215001",,,,,,,,,,,,"672500.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007601244",,"JJ0102720420220331007","HT0102703010220220330009",,,,,,,,,,,,"12500000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2112909366",,"JJ0102220420221010001","HT0102203010220221009001",,,,,,,,,,,,"750000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2100301172",,"JJ0100920420220805002","HT0100903010220220804001",,,,,,,,,,,,"1250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2109205407",,"JJ0124720420210325001","HT0124703020220200713001",,,,,,,,,,,,"250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007723561",,"000125989","HT1110603030120220907001",,,,,,,,,,,,"2382.500000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2107103195",,"JJ0123020420180927001","HT0123003020420180322002",,,,,,,,,,,,"42500000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2103003794",,"JJ0127320420220620001","HT0127303010220220617003",,,,,,,,,,,,"2500000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2100902157",,"JJ0117820420211105001","HT0117803010220211013001",,,,,,,,,,,,"500000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007520303",,"JJ0120420420220829001","HT0120403010920220823001",,,,,,,,,,,,"250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2006490052",,"JJ1110920420221125001","HT1110903010220221123001",,,,,,,,,,,,"750000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007644475",,"JJ0113720420221012001","HT0113703010920221010001",,,,,,,,,,,,"1250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2115205997",,"009127305","HT0106903030120221103001",,,,,,,,,,,,"5000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007724816",,"JJ0115120420230203006","HT0115103010220230130002",,,,,,,,,,,,"250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007717397",,"JJ0121020420210719003","HT0121003010220210714001",,,,,,,,,,,,"187500.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2006461707",,"JJ0112920420180202002","HT0112903010220180202002",,,,,,,,,,,,"1235000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2113605937",,"JJ0124720420221121001","HT0124703010220221019001",,,,,,,,,,,,"809537.650000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007698830",,"JJ0108020420160119002","HT0108003010420151230001",,,,,,,,,,,,"1300000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2006285460",,"JJ0103320420190918001","HT0103303010220190918001",,,,,,,,,,,,"4499999.970000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007705587",,"009128124","HT1110203030120221202001",,,,,,,,,,,,"25000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2113205843",,"131365107007520220527249280471","HT0105703070220220531002",,,,,,,,,,,,"250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2006312280",,"009129930","HT0127303030120230118001",,,,,,,,,,,,"900.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2005642984",,"000081514","HT0112503030120180427001",,,,,,,,,,,,"87500.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2005710245",,"JJ0112520420221209001","HT0112503010520221207001",,,,,,,,,,,,"1250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2005713991",,"JJ0114520420220929002","HT0114503010220220620001",,,,,,,,,,,,"650000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2005715723",,"009127854","HT1110603030120221124001",,,,,,,,,,,,"12500.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2006455519",,"009128673","HT1110603030120221221002",,,,,,,,,,,,"50000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007613967",,"JJ0114820420210126001","HT0114803020220200331002",,,,,,,,,,,,"56700.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007562651",,"009127064","HT1110603030120221024001",,,,,,,,,,,,"3218.250000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007555150",,"JJ0104420420170126001","HT0104403010220170126001",,,,,,,,,,,,"863776.922500",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007698100",,"JJ0110220420181128002","HT0110203010220181127003",,,,,,,,,,,,"125000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007699150",,"JJ0109420420220929001","HT0109403010220220614001",,,,,,,,,,,,"240000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007705923",,"JJ0127320420221014002","HT0127303010220220928001",,,,,,,,,,,,"500000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2100801912",,"000124560","HT0113203030120220729001",,,,,,,,,,,,"500000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2101202301",,"200767853130021","BC20110630000639",,,,,,,,,,,,"75000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2101702030",,"JJ0118620420220609005","HT0118603010220220609003",,,,,,,,,,,,"600000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2102004305",,"000126045","HT0127303030120220908001",,,,,,,,,,,,"20000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2112706218",,"JJ0127320420220627008","HT0127303010220220620005",,,,,,,,,,,,"2497500.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2102303197",,"JJ0104520420210205003","HT0104503040220210202001",,,,,,,,,,,,"23937500.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007724577",,"JJ0115920420220427001","HT0115903011920220425001",,,,,,,,,,,,"750000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2115005915",,"JJ0127320420220606002","HT0127303010220220527002",,,,,,,,,,,,"220000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2113705889",,"JJ0110220420220119006","HT0110203010220220117002",,,,,,,,,,,,"562500.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007701044",,"000082092","HT0112503030120180522002",,,,,,,,,,,,"87500.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2111607536",,"JJ0116720420220523001","HT0116703010920220519001",,,,,,,,,,,,"1175000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2107207452",,"000076251","HT0112503030120171218001",,,,,,,,,,,,"35000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2112909020",,"009129098","HT1110603030120230106001",,,,,,,,,,,,"1245.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2102004995",,"JJ0120920420220913001","HT0120903010220220913001",,,,,,,,,,,,"375000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2103303351",,"131411000221020220530251037251","HT0107503070220220531004",,,,,,,,,,,,"1250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007709381",,"JJ1110620420191223001","HT1110603020420190930001",,,,,,,,,,,,"7500000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2006312660",,"JJ0115920420221108001","HT0115903010520221027001",,,,,,,,,,,,"1225000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2006432922",,"JJ0118620420220624005","HT0118603010220220624001",,,,,,,,,,,,"75000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2111205836",,"JJ0108220420200930024","HT0108203040220200901001",,,,,,,,,,,,"995000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2112706264",,"JJ0127320420220621002","HT0127303011620220617003",,,,,,,,,,,,"1250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2113405613",,"009127170","HT1110203030120221027002",,,,,,,,,,,,"75000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007642974",,"JJ0103520420220620001","HT0103503010220220620001",,,,,,,,,,,,"1000000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2110706026",,"JJ1100220420220726004","HT1100203010220220720001",,,,,,,,,,,,"1250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007698206",,"JJ0103720420180920002","010103720180919002",,,,,,,,,,,,"15000000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007698788",,"JJ0123420420230117001","HT0123403010320220607001",,,,,,,,,,,,"33435.350000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2109906423",,"JJ0107520420220510001","HT0107503010220220510001",,,,,,,,,,,,"1250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2006388744",,"JJ0103320420221228001","HT0103303010920221227001",,,,,,,,,,,,"487500.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2005506791",,"JJ0120920420220930003","HT0120903010220220914002",,,,,,,,,,,,"500000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007709977",,"JJ0104420420151217006","HT0104403010320151217003",,,,,,,,,,,,"0.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2110506796",,"131311006711320220530250646733","HT0107503070220220531004",,,,,,,,,,,,"250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2006477596",,"JJ0103720420220922002","HT0103703010220220922001",,,,,,,,,,,,"3225000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007722447",,"JJ0105420420161223014","020105420161223013",,,,,,,,,,,,"2375000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007510353",,"JJ0116820420221202001","HT0116803010920221130001",,,,,,,,,,,,"1250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2102403534",,"JJ0112620420220527002","HT0112603010220220527005",,,,,,,,,,,,"1250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2107204561",,"000124075","HT0113203030120220705003",,,,,,,,,,,,"75000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007641604",,"009128385","HT1110603030120221220001",,,,,,,,,,,,"25000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2100300506",,"131365107007520220324197025662","HT0103703070220220328002",,,,,,,,,,,,"250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007545797",,"JJ0127320420221228002","HT0127303010520221222004",,,,,,,,,,,,"750000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007599539",,"JJ0116320420111215002","HT0116303010220111213001",,,,,,,,,,,,"0.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2108205614",,"JJ0109420420220930004","HT0109403010220220926001",,,,,,,,,,,,"837500.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007716932",,"JJ0120920420221231002","HT0120903011920221230001",,,,,,,,,,,,"125000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2102004181",,"JJ0114520420190328002","HT0114503010220190326001",,,,,,,,,,,,"0.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007716182",,"200553331630018","200553331630018",,,,,,,,,,,,"4250.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007549419",,"JJ0120920420220124002","HT0120903010920220118001",,,,,,,,,,,,"80000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2005840828",,"JJ0120920420221206009","020120920221128001",,,,,,,,,,,,"199250.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2115605532",,"JJ0103320420220531002","HT0103303010220220531001",,,,,,,,,,,,"940000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2115605536",,"JJ0107520420171229004","HT0107503010220171228002",,,,,,,,,,,,"0.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2006317552",,"JJ0117920420220419004","HT0117903010220220414001",,,,,,,,,,,,"504250.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2107207207",,"131365510601720220622269065001","HT0117903070220220623001",,,,,,,,,,,,"1000000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2109905500",,"JJ1110720420230211001","HT1110703010220230209001",,,,,,,,,,,,"5000000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2112206287",,"130342805329720220329203466176","HT0109003070220220330001",,,,,,,,,,,,"1250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2112606162",,"106811285130038","106811285130038",,,,,,,,,,,,"15000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2111405607",,"JJ1110620420221114004","HT1110603010220221109001",,,,,,,,,,,,"1000000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2106703203",,"JJ0120920420220429002","HT0120903010220220427002",,,,,,,,,,,,"137500.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2112908209",,"JJ0120920420220125003","HT0120903010220220124005",,,,,,,,,,,,"700000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007716092",,"JJ0114520420220628003","HT0114503010220220622001",,,,,,,,,,,,"500000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2112206453",,"000075282","HT0112503030120171123001",,,,,,,,,,,,"87500.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2107203906",,"000126397","HT0109003030120220920001",,,,,,,,,,,,"1250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2112906405",,"131411000221020220530251021466","HT0107503070220220531004",,,,,,,,,,,,"1250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007719706",,"009128700","HT1110603030120221221002",,,,,,,,,,,,"12500.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2111607193",,"JJ0116620420210924001","HT0116603010320200923004",,,,,,,,,,,,"7500000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007702459",,"JJ0107920420220705002","HT0107903010220220704001",,,,,,,,,,,,"350000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2112207684",,"131365500102820220614262056132","HT0117903070220220616001",,,,,,,,,,,,"1250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2103103386",,"JJ0106820420220915002","HT0106803012120220915001",,,,,,,,,,,,"350000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2005639048",,"JJ0123020420220129005","HT0123003020420220129002",,,,,,,,,,,,"23250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2006306845",,"JJ0111220420221101001","HT0111203040220220614001",,,,,,,,,,,,"75000000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2006628149",,"JJ0107520420220331004","HT0107503010220220328002",,,,,,,,,,,,"250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007601806",,"JJ0116320420210531001","HT0116303010220210524001",,,,,,,,,,,,"425000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007692855",,"JJ0105720420221018001","HT0105703011920221014001",,,,,,,,,,,,"725000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007683049",,"009127096","HT1110203030120221027001",,,,,,,,,,,,"25000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007683046",,"000023717","HT0110203030120140417001",,,,,,,,,,,,"0.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007626951",,"009130660","HT0123003030120230119001",,,,,,,,,,,,"125000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007697229",,"130458401123220220324197446826","HT0103503070220220325001",,,,,,,,,,,,"1250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007697296",,"009126779","HT0112503030120220930001",,,,,,,,,,,,"98728.972500",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007695722",,"131365107007520220530250736732","HT0105703070220220531001",,,,,,,,,,,,"1250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007700352",,"JJ0113420420220808020","020113420220802001",,,,,,,,,,,,"75000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2112907542",,"JJ0116720420220811001","HT0116703010220220809001",,,,,,,,,,,,"4750000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007723930",,"000075021","HT0113003030120171110001",,,,,,,,,,,,"0.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2113305978",,"JJ0121020420191226010","020121020191201001",,,,,,,,,,,,"670000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007592781",,"JJ0116320420190628006","HT0116303010320180619001",,,,,,,,,,,,"275000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2112907252",,"JJ0107920420220630003","HT0107903010220220629001",,,,,,,,,,,,"1747500.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007709747",,"JJ0120920420190329001","HT0120903010220190329003",,,,,,,,,,,,"1999817.430000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2110305435",,"000124454","HT0112603030120220722001",,,,,,,,,,,,"500000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007709861",,"JJ0121020420211130008","HT0121003010220211029001",,,,,,,,,,,,"500000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007699332",,"JJ0123420420220623002","HT0123403010220220622002",,,,,,,,,,,,"372500.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007699379",,"JJ0102720420230216001","HT0102703010220230209001",,,,,,,,,,,,"1736335.927500",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007718076",,"JJ0104020420220112002","HT0104003010220211223001",,,,,,,,,,,,"263417.687500",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2100702241",,"009128215","HT0123503030120221206001",,,,,,,,,,,,"37500.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2102002771",,"JJ0127320420221104001","HT0127303010520221027001",,,,,,,,,,,,"172000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2103005168",,"009126853","HT0107703030120221011001",,,,,,,,,,,,"2500000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2103203861",,"JJ0114520420220928001","HT0114503012120220926001",,,,,,,,,,,,"125000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2103503263",,"JJ1100720420220628002","HT1100703010920220624001",,,,,,,,,,,,"1250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2110505899",,"JJ1100720420220324003","HT1100703010220220323003",,,,,,,,,,,,"1200000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2110606425",,"000126104","HT1110203030120220908002",,,,,,,,,,,,"50000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2107207368",,"JJ0120920420230208001","020120920230203002",,,,,,,,,,,,"975000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2111607117",,"JJ0100520420220704004","HT0100503012120220701001",,,,,,,,,,,,"125000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007602788",,"JJ0121020420220516002","HT0121003010220220511001",,,,,,,,,,,,"362500.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2411400013",,"JJ0100620420150626034","010100620150528001",,,,,,,,,,,,"187500.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2007710221",,"JJ0103620420200430013","010103620200430007",,,,,,,,,,,,"10762499.665000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2005737313",,"000120467","HT1110603030120220315001",,,,,,,,,,,,"1250000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2102803683",,"JJ0109220420221230001","HT0109203010920221229001",,,,,,,,,,,,"1125000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","2107206126",,"JJ0106720420220628001","HT0106703010220220623001",,,,,,,,,,,,"500000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","NC62411846",,"009128764","HT0112603030120221226001",,,,,,,,,,,,"171082.680000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2115605532",,"JJ0124720420220531001","HT0124703010220220526001",,,,,,,,,,,,"753113.800000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2114406111",,"JJ0106820420220808001","HT0106803012120220804001",,,,,,,,,,,,"964529.190000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2115605536",,"JJ1120620420220616002","HT1120603010220220609001",,,,,,,,,,,,"4495616.740000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2006490052",,"009130918","HT1100303030120230213001",,,,,,,,,,,,"391318.480000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2007723561",,"000125273","HT0103503030120220811002",,,,,,,,,,,,"4408462.100000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2107207207",,"131365107007520220527250184198","HT0107503070220220531004",,,,,,,,,,,,"234506.680000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2107207452",,"JJ0103520420230112001","HT0103503010220230112001",,,,,,,,,,,,"2083451.870000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2007562651",,"JJ0101820420220930001","HT0101803010920220929001",,,,,,,,,,,,"513568.460000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2007705923",,"JJ0127320420220711001","HT0127303010220220705001",,,,,,,,,,,,"259307.080000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2103003794",,"132352101206620220518239313004","HT0104803070220220519001",,,,,,,,,,,,"3154480.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2109905500",,"JJ0122120420230118005","020122120230116002",,,,,,,,,,,,"3133105.330000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2007701660",,"000126092","HT1110203030120220908002",,,,,,,,,,,,"116635.360000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2112206287",,"HT0104103080120230106001","HT0104103080120230106001",,,,,,,,,,,,"0.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2100601306",,"JJ1110820420221215001","HT1110803010220221214001",,,,,,,,,,,,"120688564.630000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2112606162",,"009129979","HT0127303030120230118001",,,,,,,,,,,,"13753.950000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2106703203",,"JJ0107320420211124001","HT0107303020420211124001",,,,,,,,,,,,"790036.580000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2112908209",,"JJ0103720420210508008","020103720210507006",,,,,,,,,,,,"418474.140000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2007716092",,"JJ0118620420230112001","HT0118603040220220516001",,,,,,,,,,,,"26611500.790000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2111607193",,"000120920","HT0112803030120220418001",,,,,,,,,,,,"1908034.350000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2007702459",,"JJ0123520420201224001","HT0123503020520201130001",,,,,,,,,,,,"394889.150000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2112207684",,"JJ0100720420220429001","HT0100703012120220426001",,,,,,,,,,,,"124988.580000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2007723930",,"JJ0120920420210531009","020120920210531003",,,,,,,,,,,,"8371656.960000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2007592781",,"JJ0124420420220825001","HT0124403040220220817001",,,,,,,,,,,,"17806772.210000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2112907252",,"JJ0114820420220621002","HT0114803010220220617001",,,,,,,,,,,,"4497389.830000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2007709747",,"009127155","HT1110203030120221027002",,,,,,,,,,,,"74120.960000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2005713991",,"JJ1110220420221026002","HT1110203010220221026001",,,,,,,,,,,,"3687436.810000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2102002293",,"JJ0100620420220323001","HT0100603010220220317001",,,,,,,,,,,,"1488215.280000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2007613967",,"000046024","HT0113103030120150917001",,,,,,,,,,,,"2982652.490000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2006312280",,"009128961","HT0112603030120230106001",,,,,,,,,,,,"554092.080000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2100702241",,"JJ0100220420220523002","HT0100203010220220520001",,,,,,,,,,,,"20571826.180000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2103103386",,"JJ0114320420220824001","HT0114303010320210824001",,,,,,,,,,,,"7871142.940000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2103503263",,"131365107007520220530250762487","HT0105703070220220531002",,,,,,,,,,,,"4546977.480000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2110505899",,"000043341","HT0113103030120150714003",,,,,,,,,,,,"2899416.180000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2007719447",,"009126944","HT0100203030120221013001",,,,,,,,,,,,"6777.910000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2112605859",,"JJ0124720420200924001","HT0124703020220200713001",,,,,,,,,,,,"1868478.410000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2007709861",,"009127716","HT0127303030120221114001",,,,,,,,,,,,"39104.590000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2100000856",,"JJ0108220420221229001","HT0108203010220221226001",,,,,,,,,,,,"4871500.320000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2007555150",,"106808075130012","106808075130012",,,,,,,,,,,,"20439.260000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2005710245",,"JJ0114420420200910001","HT0114403020420200908001",,,,,,,,,,,,"12740873.370000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2005715723",,"JJ1100320420221205001","HT1100303010220221202001",,,,,,,,,,,,"4443268.910000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2108205706",,"JJ0112820420221104007","020112820221102006",,,,,,,,,,,,"1681244.810000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2007699150",,"JJ0127320420230117006","HT0127303010520230113004",,,,,,,,,,,,"2057642.320000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2107207368",,"JJ0113720420220728002","HT0113703010220220715001",,,,,,,,,,,,"1176126.120000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2101702030",,"JJ0124420420221215001","020124420221215001",,,,,,,,,,,,"2019340.480000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2007699332",,"JJ0102720420220331007","HT0102703010220220330009",,,,,,,,,,,,"15339541.220000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2007699379",,"JJ0102220420221010001","HT0102203010220221009001",,,,,,,,,,,,"845704.720000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2007718076",,"JJ0100920420220805002","HT0100903010220220804001",,,,,,,,,,,,"2445677.120000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2107203906",,"JJ0124720420210325001","HT0124703020220200713001",,,,,,,,,,,,"599972.430000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2112206453",,"000125989","HT1110603030120220907001",,,,,,,,,,,,"5074.300000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2111607117",,"JJ0123020420180927001","HT0123003020420180322002",,,,,,,,,,,,"146601580.850000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2007602788",,"JJ0127320420220620001","HT0127303010220220617003",,,,,,,,,,,,"7144435.370000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2102002771",,"JJ0117820420211105001","HT0117803010220211013001",,,,,,,,,,,,"1970261.990000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2107103195",,"JJ0120420420220829001","HT0120403010920220823001",,,,,,,,,,,,"782324.400000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2006461707",,"JJ1110920420221125001","HT1110903010220221123001",,,,,,,,,,,,"2868687.080000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2007710221",,"JJ0113720420221012001","HT0113703010920221010001",,,,,,,,,,,,"2170859.910000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2100301172",,"009127305","HT0106903030120221103001",,,,,,,,,,,,"6043.460000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2007717397",,"JJ0115120420230203006","HT0115103010220230130002",,,,,,,,,,,,"208348.360000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2007705587",,"JJ0121020420210719003","HT0121003010220210714001",,,,,,,,,,,,"101417.430000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2007520303",,"JJ0112920420180202002","HT0112903010220180202002",,,,,,,,,,,,"252291.710000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2007698100",,"JJ0124720420221121001","HT0124703010220221019001",,,,,,,,,,,,"2751412.110000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2007545797",,"JJ0108020420160119002","HT0108003010420151230001",,,,,,,,,,,,"495132.560000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2102803683",,"JJ0103320420190918001","HT0103303010220190918001",,,,,,,,,,,,"16686543.780000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2103303351",,"009128124","HT1110203030120221202001",,,,,,,,,,,,"34949.770000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N3006461707",,"131365107007520220527249280471","HT0105703070220220531002",,,,,,,,,,,,"966397.940000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N3007710221",,"009129930","HT0127303030120230118001",,,,,,,,,,,,"2820.590000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N3100301172",,"000081514","HT0112503030120180427001",,,,,,,,,,,,"6401.190000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N3007717397",,"JJ0112520420221209001","HT0112503010520221207001",,,,,,,,,,,,"3704779.580000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N3007705587",,"JJ0114520420220929002","HT0114503010220220620001",,,,,,,,,,,,"1689771.810000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N3007520303",,"009127854","HT1110603030120221124001",,,,,,,,,,,,"1334.670000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N3007698100",,"009128673","HT1110603030120221221002",,,,,,,,,,,,"36746.120000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N3007545797",,"JJ0114820420210126001","HT0114803020220200331002",,,,,,,,,,,,"190188.280000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2104904964",,"009127064","HT1110603030120221024001",,,,,,,,,,,,"8260.240000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","N2006499525",,"JJ0104420420170126001","HT0104403010220170126001",,,,,,,,,,,,"2393143.690000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","NC168923091006164",,"JJ0110220420181128002","HT0110203010220181127003",,,,,,,,,,,,"269091.310000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","3006461707",,"JJ0124720420220531001","HT0124703010220220526001",,,,,,,,,,,,"3000000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","3007710221",,"JJ0106820420220808001","HT0106803012120220804001",,,,,,,,,,,,"1400000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","3100301172",,"JJ1120620420220616002","HT1120603010220220609001",,,,,,,,,,,,"6500000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","3007717397",,"009130918","HT1100303030120230213001",,,,,,,,,,,,"1000000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","3007705587",,"000125273","HT0103503030120220811002",,,,,,,,,,,,"5000000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","3007520303",,"131365107007520220527250184198","HT0107503070220220531004",,,,,,,,,,,,"1000000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","3007698100",,"JJ0103520420230112001","HT0103503010220230112001",,,,,,,,,,,,"3950000.000000",,,,,,,,,,,,,,,,,,,,,,,
"20230228","3007545797",,"JJ0101820420220930001","HT0101803010920220929001",,,,,,,,,,,,"550000.000000",,,,,,,,,,,,,,,,,,,,,,,
1 IRBS_LOAN_BORR_INFO
2 DATA_DT CUST_NO CUST_CNA DEBENTURE_NO CONT_NO ORG_NO FIN_ORG_NO PRD_CD BUSI_STATUS_CD PRD_CD_DESC BORR_START_DT BORR_GIVE_DT BORR_MATURE_DT BORR_GIVE_AMT TERM_UNIT_CD CONT_TERM BORR_BAL GUAR_TYPE_CD OVERDUE_FLAG OVERDUE_DAYS INT_OVER_DAYS PRIN_OVER_DAYS BORR_OVERDUE_BAL OFF_OWEINT_BAL IN_OWEINT_BAL RECE_INT_CUMU STOP_INT_FLAG CCY_CD TEN_CLASS_CD CANCEL_FLAG CANCEL_DT LOAN_USAGE EXTEND_FLAG EXTEND_NUM ADV_MONEY_FLAG ADV_MONEY_DAYS ADV_MONEY_DAYS_LX BOR_REPAY_CNT MODE_MODIF_OVERDUE_FLAG MAJOR_LOAN_LIST_FLAG
3 客户号 客户名称 借据编号 合同编号 借据所属机构编号 借据入账机构编号 借据相关产品编号 借据状态代码 借据业务品种 借据起始日期 借据放款日期 借据到期日期 借据发放金额 期限单位代码 贷款期限 借据余额 担保方式 借据逾期标志 借据逾期天数 利息逾期天数 本金逾期天数 借据逾期余额 表外欠息余额 表内欠息余额 应收利息累计 停止计息标识 借据结算币种 借据十级分类结果 核销标识 核销日期 贷款用途 是否发生展期 贷款展期次数 垫款标志 垫款天数 连续垫款天数 借新还旧次数 结息方式变更后是否出现逾期 是否符合专业贷款名单
4 VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR DECIMAL DECIMAL VARCHAR VARCHAR DECIMAL DECIMAL DECIMAL DECIMAL DECIMAL DECIMAL DECIMAL VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR DECIMAL VARCHAR DECIMAL DECIMAL VARCHAR VARCHAR VARCHAR
5 java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.math.BigDecimal java.math.BigDecimal java.lang.String java.lang.String java.math.BigDecimal java.math.BigDecimal java.math.BigDecimal java.math.BigDecimal java.math.BigDecimal java.math.BigDecimal java.math.BigDecimal java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.math.BigDecimal java.lang.String java.math.BigDecimal java.math.BigDecimal java.lang.String java.lang.String java.lang.String
6 20230228 2112909445 009128764 HT0112603030120221226001 50000.000000
7 20230228 2104904964 JJ0124720420220531001 HT0124703010220220526001 750000.000000
8 20230228 2006499525 JJ0106820420220808001 HT0106803012120220804001 350000.000000
9 20230228 2112605859 JJ1120620420220616002 HT1120603010220220609001 1625000.000000
10 20230228 C168663969115226 009130918 HT1100303030120230213001 250000.000000
11 20230228 C168663965061035 000125273 HT0103503030120220811002 1250000.000000
12 20230228 C168663953361471 131365107007520220527250184198 HT0107503070220220531004 250000.000000
13 20230228 C168663961353515 JJ0103520420230112001 HT0103503010220230112001 987500.000000
14 20230228 C168663958007379 JJ0101820420220930001 HT0101803010920220929001 137500.000000
15 20230228 C168688372082545 JJ0127320420220711001 HT0127303010220220705001 750000.000000
16 20230228 C168664427324739 132352101206620220518239313004 HT0104803070220220519001 1250000.000000
17 20230228 C168791748883227 JJ0122120420230118005 020122120230116002 875000.000000
18 20230228 C168722865029555 000126092 HT1110203030120220908002 50000.000000
19 20230228 C168791872039499 HT0104103080120230106001 HT0104103080120230106001 0.000000
20 20230228 C168792232554955 JJ1110820420221215001 HT1110803010220221214001 75000000.000000
21 20230228 C168793367754333 009129979 HT0127303030120230118001 10732.500000
22 20230228 C168793618985050 JJ0107320420211124001 HT0107303020420211124001 500000.000000
23 20230228 C168793709784578 JJ0103720420210508008 020103720210507006 7500000.000000
24 20230228 C168923091006164 JJ0118620420230112001 HT0118603040220220516001 7520000.000000
25 20230228 C62411846 000120920 HT0112803030120220418001 1250000.000000
26 20230228 2100601306 JJ0123520420201224001 HT0123503020520201130001 388728.840000
27 20230228 2114406111 JJ0100720420220429001 HT0100703012120220426001 250000.000000
28 20230228 2006313353 JJ0120920420210531009 020120920210531003 2425000.000000
29 20230228 2114006028 JJ0124420420220825001 HT0124403040220220817001 4734225.000000
30 20230228 2102002293 JJ0114820420220621002 HT0114803010220220617001 10000000.000000
31 20230228 2007719447 009127155 HT1110203030120221027002 25000.000000
32 20230228 2110308673 JJ1110220420221026002 HT1110203010220221026001 2500000.000000
33 20230228 2100000856 JJ0100620420220323001 HT0100603010220220317001 600000.000000
34 20230228 2112910047 000046024 HT0113103030120150917001 750000.000000
35 20230228 2108205706 009128961 HT0112603030120230106001 1250000.000000
36 20230228 2115105907 JJ0100220420220523002 HT0100203010220220520001 9000000.000000
37 20230228 2112909400 JJ0114320420220824001 HT0114303010320210824001 3750000.000000
38 20230228 2007701660 131365107007520220530250762487 HT0105703070220220531002 1250000.000000
39 20230228 2100301271 000043341 HT0113103030120150714003 745160.470000
40 20230228 2007683249 009126944 HT0100203030120221013001 12500.000000
41 20230228 2007709883 JJ0124720420200924001 HT0124703020220200713001 615000.000000
42 20230228 2104606042 009127716 HT0127303030120221114001 25000.000000
43 20230228 2100802192 JJ0108220420221229001 HT0108203010220221226001 1800000.000000
44 20230228 2101302082 106808075130012 106808075130012 24350.000000
45 20230228 2007694110 JJ0114420420200910001 HT0114403020420200908001 163750000.000000
46 20230228 2005642083 JJ1100320420221205001 HT1100303010220221202001 2375000.000000
47 20230228 2005653783 JJ0112820420221104007 020112820221102006 1500000.000000
48 20230228 2115705978 JJ0127320420230117006 HT0127303010520230113004 515493.210000
49 20230228 2110606109 JJ0113720420220728002 HT0113703010220220715001 1975000.000000
50 20230228 2005538406 JJ0124420420221215001 020124420221215001 672500.000000
51 20230228 2007601244 JJ0102720420220331007 HT0102703010220220330009 12500000.000000
52 20230228 2112909366 JJ0102220420221010001 HT0102203010220221009001 750000.000000
53 20230228 2100301172 JJ0100920420220805002 HT0100903010220220804001 1250000.000000
54 20230228 2109205407 JJ0124720420210325001 HT0124703020220200713001 250000.000000
55 20230228 2007723561 000125989 HT1110603030120220907001 2382.500000
56 20230228 2107103195 JJ0123020420180927001 HT0123003020420180322002 42500000.000000
57 20230228 2103003794 JJ0127320420220620001 HT0127303010220220617003 2500000.000000
58 20230228 2100902157 JJ0117820420211105001 HT0117803010220211013001 500000.000000
59 20230228 2007520303 JJ0120420420220829001 HT0120403010920220823001 250000.000000
60 20230228 2006490052 JJ1110920420221125001 HT1110903010220221123001 750000.000000
61 20230228 2007644475 JJ0113720420221012001 HT0113703010920221010001 1250000.000000
62 20230228 2115205997 009127305 HT0106903030120221103001 5000.000000
63 20230228 2007724816 JJ0115120420230203006 HT0115103010220230130002 250000.000000
64 20230228 2007717397 JJ0121020420210719003 HT0121003010220210714001 187500.000000
65 20230228 2006461707 JJ0112920420180202002 HT0112903010220180202002 1235000.000000
66 20230228 2113605937 JJ0124720420221121001 HT0124703010220221019001 809537.650000
67 20230228 2007698830 JJ0108020420160119002 HT0108003010420151230001 1300000.000000
68 20230228 2006285460 JJ0103320420190918001 HT0103303010220190918001 4499999.970000
69 20230228 2007705587 009128124 HT1110203030120221202001 25000.000000
70 20230228 2113205843 131365107007520220527249280471 HT0105703070220220531002 250000.000000
71 20230228 2006312280 009129930 HT0127303030120230118001 900.000000
72 20230228 2005642984 000081514 HT0112503030120180427001 87500.000000
73 20230228 2005710245 JJ0112520420221209001 HT0112503010520221207001 1250000.000000
74 20230228 2005713991 JJ0114520420220929002 HT0114503010220220620001 650000.000000
75 20230228 2005715723 009127854 HT1110603030120221124001 12500.000000
76 20230228 2006455519 009128673 HT1110603030120221221002 50000.000000
77 20230228 2007613967 JJ0114820420210126001 HT0114803020220200331002 56700.000000
78 20230228 2007562651 009127064 HT1110603030120221024001 3218.250000
79 20230228 2007555150 JJ0104420420170126001 HT0104403010220170126001 863776.922500
80 20230228 2007698100 JJ0110220420181128002 HT0110203010220181127003 125000.000000
81 20230228 2007699150 JJ0109420420220929001 HT0109403010220220614001 240000.000000
82 20230228 2007705923 JJ0127320420221014002 HT0127303010220220928001 500000.000000
83 20230228 2100801912 000124560 HT0113203030120220729001 500000.000000
84 20230228 2101202301 200767853130021 BC20110630000639 75000.000000
85 20230228 2101702030 JJ0118620420220609005 HT0118603010220220609003 600000.000000
86 20230228 2102004305 000126045 HT0127303030120220908001 20000.000000
87 20230228 2112706218 JJ0127320420220627008 HT0127303010220220620005 2497500.000000
88 20230228 2102303197 JJ0104520420210205003 HT0104503040220210202001 23937500.000000
89 20230228 2007724577 JJ0115920420220427001 HT0115903011920220425001 750000.000000
90 20230228 2115005915 JJ0127320420220606002 HT0127303010220220527002 220000.000000
91 20230228 2113705889 JJ0110220420220119006 HT0110203010220220117002 562500.000000
92 20230228 2007701044 000082092 HT0112503030120180522002 87500.000000
93 20230228 2111607536 JJ0116720420220523001 HT0116703010920220519001 1175000.000000
94 20230228 2107207452 000076251 HT0112503030120171218001 35000.000000
95 20230228 2112909020 009129098 HT1110603030120230106001 1245.000000
96 20230228 2102004995 JJ0120920420220913001 HT0120903010220220913001 375000.000000
97 20230228 2103303351 131411000221020220530251037251 HT0107503070220220531004 1250000.000000
98 20230228 2007709381 JJ1110620420191223001 HT1110603020420190930001 7500000.000000
99 20230228 2006312660 JJ0115920420221108001 HT0115903010520221027001 1225000.000000
100 20230228 2006432922 JJ0118620420220624005 HT0118603010220220624001 75000.000000
101 20230228 2111205836 JJ0108220420200930024 HT0108203040220200901001 995000.000000
102 20230228 2112706264 JJ0127320420220621002 HT0127303011620220617003 1250000.000000
103 20230228 2113405613 009127170 HT1110203030120221027002 75000.000000
104 20230228 2007642974 JJ0103520420220620001 HT0103503010220220620001 1000000.000000
105 20230228 2110706026 JJ1100220420220726004 HT1100203010220220720001 1250000.000000
106 20230228 2007698206 JJ0103720420180920002 010103720180919002 15000000.000000
107 20230228 2007698788 JJ0123420420230117001 HT0123403010320220607001 33435.350000
108 20230228 2109906423 JJ0107520420220510001 HT0107503010220220510001 1250000.000000
109 20230228 2006388744 JJ0103320420221228001 HT0103303010920221227001 487500.000000
110 20230228 2005506791 JJ0120920420220930003 HT0120903010220220914002 500000.000000
111 20230228 2007709977 JJ0104420420151217006 HT0104403010320151217003 0.000000
112 20230228 2110506796 131311006711320220530250646733 HT0107503070220220531004 250000.000000
113 20230228 2006477596 JJ0103720420220922002 HT0103703010220220922001 3225000.000000
114 20230228 2007722447 JJ0105420420161223014 020105420161223013 2375000.000000
115 20230228 2007510353 JJ0116820420221202001 HT0116803010920221130001 1250000.000000
116 20230228 2102403534 JJ0112620420220527002 HT0112603010220220527005 1250000.000000
117 20230228 2107204561 000124075 HT0113203030120220705003 75000.000000
118 20230228 2007641604 009128385 HT1110603030120221220001 25000.000000
119 20230228 2100300506 131365107007520220324197025662 HT0103703070220220328002 250000.000000
120 20230228 2007545797 JJ0127320420221228002 HT0127303010520221222004 750000.000000
121 20230228 2007599539 JJ0116320420111215002 HT0116303010220111213001 0.000000
122 20230228 2108205614 JJ0109420420220930004 HT0109403010220220926001 837500.000000
123 20230228 2007716932 JJ0120920420221231002 HT0120903011920221230001 125000.000000
124 20230228 2102004181 JJ0114520420190328002 HT0114503010220190326001 0.000000
125 20230228 2007716182 200553331630018 200553331630018 4250.000000
126 20230228 2007549419 JJ0120920420220124002 HT0120903010920220118001 80000.000000
127 20230228 2005840828 JJ0120920420221206009 020120920221128001 199250.000000
128 20230228 2115605532 JJ0103320420220531002 HT0103303010220220531001 940000.000000
129 20230228 2115605536 JJ0107520420171229004 HT0107503010220171228002 0.000000
130 20230228 2006317552 JJ0117920420220419004 HT0117903010220220414001 504250.000000
131 20230228 2107207207 131365510601720220622269065001 HT0117903070220220623001 1000000.000000
132 20230228 2109905500 JJ1110720420230211001 HT1110703010220230209001 5000000.000000
133 20230228 2112206287 130342805329720220329203466176 HT0109003070220220330001 1250000.000000
134 20230228 2112606162 106811285130038 106811285130038 15000.000000
135 20230228 2111405607 JJ1110620420221114004 HT1110603010220221109001 1000000.000000
136 20230228 2106703203 JJ0120920420220429002 HT0120903010220220427002 137500.000000
137 20230228 2112908209 JJ0120920420220125003 HT0120903010220220124005 700000.000000
138 20230228 2007716092 JJ0114520420220628003 HT0114503010220220622001 500000.000000
139 20230228 2112206453 000075282 HT0112503030120171123001 87500.000000
140 20230228 2107203906 000126397 HT0109003030120220920001 1250000.000000
141 20230228 2112906405 131411000221020220530251021466 HT0107503070220220531004 1250000.000000
142 20230228 2007719706 009128700 HT1110603030120221221002 12500.000000
143 20230228 2111607193 JJ0116620420210924001 HT0116603010320200923004 7500000.000000
144 20230228 2007702459 JJ0107920420220705002 HT0107903010220220704001 350000.000000
145 20230228 2112207684 131365500102820220614262056132 HT0117903070220220616001 1250000.000000
146 20230228 2103103386 JJ0106820420220915002 HT0106803012120220915001 350000.000000
147 20230228 2005639048 JJ0123020420220129005 HT0123003020420220129002 23250000.000000
148 20230228 2006306845 JJ0111220420221101001 HT0111203040220220614001 75000000.000000
149 20230228 2006628149 JJ0107520420220331004 HT0107503010220220328002 250000.000000
150 20230228 2007601806 JJ0116320420210531001 HT0116303010220210524001 425000.000000
151 20230228 2007692855 JJ0105720420221018001 HT0105703011920221014001 725000.000000
152 20230228 2007683049 009127096 HT1110203030120221027001 25000.000000
153 20230228 2007683046 000023717 HT0110203030120140417001 0.000000
154 20230228 2007626951 009130660 HT0123003030120230119001 125000.000000
155 20230228 2007697229 130458401123220220324197446826 HT0103503070220220325001 1250000.000000
156 20230228 2007697296 009126779 HT0112503030120220930001 98728.972500
157 20230228 2007695722 131365107007520220530250736732 HT0105703070220220531001 1250000.000000
158 20230228 2007700352 JJ0113420420220808020 020113420220802001 75000.000000
159 20230228 2112907542 JJ0116720420220811001 HT0116703010220220809001 4750000.000000
160 20230228 2007723930 000075021 HT0113003030120171110001 0.000000
161 20230228 2113305978 JJ0121020420191226010 020121020191201001 670000.000000
162 20230228 2007592781 JJ0116320420190628006 HT0116303010320180619001 275000.000000
163 20230228 2112907252 JJ0107920420220630003 HT0107903010220220629001 1747500.000000
164 20230228 2007709747 JJ0120920420190329001 HT0120903010220190329003 1999817.430000
165 20230228 2110305435 000124454 HT0112603030120220722001 500000.000000
166 20230228 2007709861 JJ0121020420211130008 HT0121003010220211029001 500000.000000
167 20230228 2007699332 JJ0123420420220623002 HT0123403010220220622002 372500.000000
168 20230228 2007699379 JJ0102720420230216001 HT0102703010220230209001 1736335.927500
169 20230228 2007718076 JJ0104020420220112002 HT0104003010220211223001 263417.687500
170 20230228 2100702241 009128215 HT0123503030120221206001 37500.000000
171 20230228 2102002771 JJ0127320420221104001 HT0127303010520221027001 172000.000000
172 20230228 2103005168 009126853 HT0107703030120221011001 2500000.000000
173 20230228 2103203861 JJ0114520420220928001 HT0114503012120220926001 125000.000000
174 20230228 2103503263 JJ1100720420220628002 HT1100703010920220624001 1250000.000000
175 20230228 2110505899 JJ1100720420220324003 HT1100703010220220323003 1200000.000000
176 20230228 2110606425 000126104 HT1110203030120220908002 50000.000000
177 20230228 2107207368 JJ0120920420230208001 020120920230203002 975000.000000
178 20230228 2111607117 JJ0100520420220704004 HT0100503012120220701001 125000.000000
179 20230228 2007602788 JJ0121020420220516002 HT0121003010220220511001 362500.000000
180 20230228 2411400013 JJ0100620420150626034 010100620150528001 187500.000000
181 20230228 2007710221 JJ0103620420200430013 010103620200430007 10762499.665000
182 20230228 2005737313 000120467 HT1110603030120220315001 1250000.000000
183 20230228 2102803683 JJ0109220420221230001 HT0109203010920221229001 1125000.000000
184 20230228 2107206126 JJ0106720420220628001 HT0106703010220220623001 500000.000000
185 20230228 NC62411846 009128764 HT0112603030120221226001 171082.680000
186 20230228 N2115605532 JJ0124720420220531001 HT0124703010220220526001 753113.800000
187 20230228 N2114406111 JJ0106820420220808001 HT0106803012120220804001 964529.190000
188 20230228 N2115605536 JJ1120620420220616002 HT1120603010220220609001 4495616.740000
189 20230228 N2006490052 009130918 HT1100303030120230213001 391318.480000
190 20230228 N2007723561 000125273 HT0103503030120220811002 4408462.100000
191 20230228 N2107207207 131365107007520220527250184198 HT0107503070220220531004 234506.680000
192 20230228 N2107207452 JJ0103520420230112001 HT0103503010220230112001 2083451.870000
193 20230228 N2007562651 JJ0101820420220930001 HT0101803010920220929001 513568.460000
194 20230228 N2007705923 JJ0127320420220711001 HT0127303010220220705001 259307.080000
195 20230228 N2103003794 132352101206620220518239313004 HT0104803070220220519001 3154480.000000
196 20230228 N2109905500 JJ0122120420230118005 020122120230116002 3133105.330000
197 20230228 N2007701660 000126092 HT1110203030120220908002 116635.360000
198 20230228 N2112206287 HT0104103080120230106001 HT0104103080120230106001 0.000000
199 20230228 N2100601306 JJ1110820420221215001 HT1110803010220221214001 120688564.630000
200 20230228 N2112606162 009129979 HT0127303030120230118001 13753.950000
201 20230228 N2106703203 JJ0107320420211124001 HT0107303020420211124001 790036.580000
202 20230228 N2112908209 JJ0103720420210508008 020103720210507006 418474.140000
203 20230228 N2007716092 JJ0118620420230112001 HT0118603040220220516001 26611500.790000
204 20230228 N2111607193 000120920 HT0112803030120220418001 1908034.350000
205 20230228 N2007702459 JJ0123520420201224001 HT0123503020520201130001 394889.150000
206 20230228 N2112207684 JJ0100720420220429001 HT0100703012120220426001 124988.580000
207 20230228 N2007723930 JJ0120920420210531009 020120920210531003 8371656.960000
208 20230228 N2007592781 JJ0124420420220825001 HT0124403040220220817001 17806772.210000
209 20230228 N2112907252 JJ0114820420220621002 HT0114803010220220617001 4497389.830000
210 20230228 N2007709747 009127155 HT1110203030120221027002 74120.960000
211 20230228 N2005713991 JJ1110220420221026002 HT1110203010220221026001 3687436.810000
212 20230228 N2102002293 JJ0100620420220323001 HT0100603010220220317001 1488215.280000
213 20230228 N2007613967 000046024 HT0113103030120150917001 2982652.490000
214 20230228 N2006312280 009128961 HT0112603030120230106001 554092.080000
215 20230228 N2100702241 JJ0100220420220523002 HT0100203010220220520001 20571826.180000
216 20230228 N2103103386 JJ0114320420220824001 HT0114303010320210824001 7871142.940000
217 20230228 N2103503263 131365107007520220530250762487 HT0105703070220220531002 4546977.480000
218 20230228 N2110505899 000043341 HT0113103030120150714003 2899416.180000
219 20230228 N2007719447 009126944 HT0100203030120221013001 6777.910000
220 20230228 N2112605859 JJ0124720420200924001 HT0124703020220200713001 1868478.410000
221 20230228 N2007709861 009127716 HT0127303030120221114001 39104.590000
222 20230228 N2100000856 JJ0108220420221229001 HT0108203010220221226001 4871500.320000
223 20230228 N2007555150 106808075130012 106808075130012 20439.260000
224 20230228 N2005710245 JJ0114420420200910001 HT0114403020420200908001 12740873.370000
225 20230228 N2005715723 JJ1100320420221205001 HT1100303010220221202001 4443268.910000
226 20230228 N2108205706 JJ0112820420221104007 020112820221102006 1681244.810000
227 20230228 N2007699150 JJ0127320420230117006 HT0127303010520230113004 2057642.320000
228 20230228 N2107207368 JJ0113720420220728002 HT0113703010220220715001 1176126.120000
229 20230228 N2101702030 JJ0124420420221215001 020124420221215001 2019340.480000
230 20230228 N2007699332 JJ0102720420220331007 HT0102703010220220330009 15339541.220000
231 20230228 N2007699379 JJ0102220420221010001 HT0102203010220221009001 845704.720000
232 20230228 N2007718076 JJ0100920420220805002 HT0100903010220220804001 2445677.120000
233 20230228 N2107203906 JJ0124720420210325001 HT0124703020220200713001 599972.430000
234 20230228 N2112206453 000125989 HT1110603030120220907001 5074.300000
235 20230228 N2111607117 JJ0123020420180927001 HT0123003020420180322002 146601580.850000
236 20230228 N2007602788 JJ0127320420220620001 HT0127303010220220617003 7144435.370000
237 20230228 N2102002771 JJ0117820420211105001 HT0117803010220211013001 1970261.990000
238 20230228 N2107103195 JJ0120420420220829001 HT0120403010920220823001 782324.400000
239 20230228 N2006461707 JJ1110920420221125001 HT1110903010220221123001 2868687.080000
240 20230228 N2007710221 JJ0113720420221012001 HT0113703010920221010001 2170859.910000
241 20230228 N2100301172 009127305 HT0106903030120221103001 6043.460000
242 20230228 N2007717397 JJ0115120420230203006 HT0115103010220230130002 208348.360000
243 20230228 N2007705587 JJ0121020420210719003 HT0121003010220210714001 101417.430000
244 20230228 N2007520303 JJ0112920420180202002 HT0112903010220180202002 252291.710000
245 20230228 N2007698100 JJ0124720420221121001 HT0124703010220221019001 2751412.110000
246 20230228 N2007545797 JJ0108020420160119002 HT0108003010420151230001 495132.560000
247 20230228 N2102803683 JJ0103320420190918001 HT0103303010220190918001 16686543.780000
248 20230228 N2103303351 009128124 HT1110203030120221202001 34949.770000
249 20230228 N3006461707 131365107007520220527249280471 HT0105703070220220531002 966397.940000
250 20230228 N3007710221 009129930 HT0127303030120230118001 2820.590000
251 20230228 N3100301172 000081514 HT0112503030120180427001 6401.190000
252 20230228 N3007717397 JJ0112520420221209001 HT0112503010520221207001 3704779.580000
253 20230228 N3007705587 JJ0114520420220929002 HT0114503010220220620001 1689771.810000
254 20230228 N3007520303 009127854 HT1110603030120221124001 1334.670000
255 20230228 N3007698100 009128673 HT1110603030120221221002 36746.120000
256 20230228 N3007545797 JJ0114820420210126001 HT0114803020220200331002 190188.280000
257 20230228 N2104904964 009127064 HT1110603030120221024001 8260.240000
258 20230228 N2006499525 JJ0104420420170126001 HT0104403010220170126001 2393143.690000
259 20230228 NC168923091006164 JJ0110220420181128002 HT0110203010220181127003 269091.310000
260 20230228 3006461707 JJ0124720420220531001 HT0124703010220220526001 3000000.000000
261 20230228 3007710221 JJ0106820420220808001 HT0106803012120220804001 1400000.000000
262 20230228 3100301172 JJ1120620420220616002 HT1120603010220220609001 6500000.000000
263 20230228 3007717397 009130918 HT1100303030120230213001 1000000.000000
264 20230228 3007705587 000125273 HT0103503030120220811002 5000000.000000
265 20230228 3007520303 131365107007520220527250184198 HT0107503070220220531004 1000000.000000
266 20230228 3007698100 JJ0103520420230112001 HT0103503010220230112001 3950000.000000
267 20230228 3007545797 JJ0101820420220930001 HT0101803010920220929001 550000.000000

20
app.irbs/src/main/resources/liquibase/data/ns_cfg_main_scale.csv

@ -0,0 +1,20 @@
"NS_CFG_MAIN_SCALE",,,,,,,,,,,
"ID_","SCALE_LEVEL","PD","SCALE_TYPE","ORDER_NUM","ADMISSION_SUGGEST","CREATOR","CREATE_DATE","LAST_MODIFIER","LAST_MODIFY_DATE","UP_LIMIT","DOWN_LIMIT"
"","","","","","","","","","","",""
"VARCHAR","VARCHAR","DECIMAL","VARCHAR","DECIMAL","VARCHAR","VARCHAR","TIMESTAMP","VARCHAR","TIMESTAMP","DECIMAL","DECIMAL"
"java.lang.String","java.lang.String","java.math.BigDecimal","java.lang.String","java.math.BigDecimal","java.lang.String","java.lang.String","java.sql.Timestamp","java.lang.String","java.sql.Timestamp","java.math.BigDecimal","java.math.BigDecimal"
"000FF7C798814EAFBDC38203B0B1065D","AAA","0.0005","010","1","重点支持,优先满足 ","","2024-01-07 18:29:02.0","admin","2024-01-07 18:29:02.0","0.0008","0.0000"
"03261543C44145AA9FCBFD730705EA98","BB+","0.0300","010","7","适度支持,合理满足 ","","2024-03-27 11:30:28.0","admin","2024-03-27 11:30:35.0","0.0420","0.0220"
"04B77E8A609C41A3A9C7463F156196AD","BB-","0.0900","010","9","谨慎支持,审慎满足 ","","2024-03-27 11:31:13.0","admin","2024-03-27 11:31:17.0","0.1100","0.0730"
"1857B6532F6844CFA97A02D139D29406","B+","0.1400","010","10","谨慎支持,审慎满足 ","","2024-03-27 11:31:37.0","admin","2024-03-27 11:31:41.0","0.1600","0.1100"
"1857B6532F6844CFA97A02D139D29407","B","0.2000","010","11","谨慎支持,审慎满足 ","","2024-03-27 11:31:59.0","admin","2024-03-27 11:32:05.0","0.2500","0.1600"
"2378CC22F3844383ABA81E340271B0CA","C","0.6500","010","14","压缩退出,严禁新增 ","","2024-03-27 11:32:24.0","admin","2024-03-27 11:32:28.0","1.0000","0.5500"
"6623733D626246498FBAACCAB4BC4866","A","0.0040","010","4","积极支持,积极满足 ","","2024-03-27 11:32:53.0","admin","2024-03-27 11:32:57.0","0.0056","0.0029"
"7C8E178BB14E441AB931F682228B0554","BBB","0.0150","010","6","适度支持,合理满足 ","","2024-03-27 11:33:36.0","admin","2024-03-27 11:33:40.0","0.0220","0.0110"
"9E3A255184884AE6A310EBFC7095F52C","D","1.0000","010","15","压缩退出,严禁新增 ","","2024-03-27 11:34:08.0","admin","2024-03-27 11:34:12.0","1.0000","1.0000"
"A26A6393A04C4D2CB6004FCD772C9757","A+","0.0025","010","3","积极支持,积极满足 ","","2024-03-27 11:34:29.0","admin","2024-01-07 18:29:31.0","0.0029","0.0016"
"B137424B4227455AB7CD813D7733B203","BB","0.0600","010","8","适度支持,合理满足 ","","2024-03-27 11:34:45.0","admin","2024-03-27 11:34:50.0","0.0730","0.0420"
"B23797E3AA04429CA91CA16C0AA6E2D1","AA","0.0015","010","2","重点支持,优先满足 ","","2024-03-27 11:35:08.0","admin","2024-01-07 18:29:16.0","0.0016","0.0008"
"C5717CCFC1F74F21B0638164A6C03CC8","A-","0.0080","010","5","积极支持,积极满足 ","","2024-03-27 11:35:23.0","admin","2024-03-27 11:35:27.0","0.0110","0.0056"
"CCCE2172CFC94548BF9401F0116E8F84","CC","0.4500","010","13","限制支持,严格控制准入","","2024-03-27 11:35:44.0","admin","2024-03-27 11:35:48.0","0.5500","0.3700"
"E60A6EDB2A7549DB894324130E490BDE","CCC","0.3000","010","12","限制支持,严格控制准入","","2024-03-27 11:36:04.0","admin","2024-03-27 11:36:09.0","0.3700","0.2500"
1 NS_CFG_MAIN_SCALE
2 ID_ SCALE_LEVEL PD SCALE_TYPE ORDER_NUM ADMISSION_SUGGEST CREATOR CREATE_DATE LAST_MODIFIER LAST_MODIFY_DATE UP_LIMIT DOWN_LIMIT
3
4 VARCHAR VARCHAR DECIMAL VARCHAR DECIMAL VARCHAR VARCHAR TIMESTAMP VARCHAR TIMESTAMP DECIMAL DECIMAL
5 java.lang.String java.lang.String java.math.BigDecimal java.lang.String java.math.BigDecimal java.lang.String java.lang.String java.sql.Timestamp java.lang.String java.sql.Timestamp java.math.BigDecimal java.math.BigDecimal
6 000FF7C798814EAFBDC38203B0B1065D AAA 0.0005 010 1 重点支持,优先满足 2024-01-07 18:29:02.0 admin 2024-01-07 18:29:02.0 0.0008 0.0000
7 03261543C44145AA9FCBFD730705EA98 BB+ 0.0300 010 7 适度支持,合理满足 2024-03-27 11:30:28.0 admin 2024-03-27 11:30:35.0 0.0420 0.0220
8 04B77E8A609C41A3A9C7463F156196AD BB- 0.0900 010 9 谨慎支持,审慎满足 2024-03-27 11:31:13.0 admin 2024-03-27 11:31:17.0 0.1100 0.0730
9 1857B6532F6844CFA97A02D139D29406 B+ 0.1400 010 10 谨慎支持,审慎满足 2024-03-27 11:31:37.0 admin 2024-03-27 11:31:41.0 0.1600 0.1100
10 1857B6532F6844CFA97A02D139D29407 B 0.2000 010 11 谨慎支持,审慎满足 2024-03-27 11:31:59.0 admin 2024-03-27 11:32:05.0 0.2500 0.1600
11 2378CC22F3844383ABA81E340271B0CA C 0.6500 010 14 压缩退出,严禁新增 2024-03-27 11:32:24.0 admin 2024-03-27 11:32:28.0 1.0000 0.5500
12 6623733D626246498FBAACCAB4BC4866 A 0.0040 010 4 积极支持,积极满足 2024-03-27 11:32:53.0 admin 2024-03-27 11:32:57.0 0.0056 0.0029
13 7C8E178BB14E441AB931F682228B0554 BBB 0.0150 010 6 适度支持,合理满足 2024-03-27 11:33:36.0 admin 2024-03-27 11:33:40.0 0.0220 0.0110
14 9E3A255184884AE6A310EBFC7095F52C D 1.0000 010 15 压缩退出,严禁新增 2024-03-27 11:34:08.0 admin 2024-03-27 11:34:12.0 1.0000 1.0000
15 A26A6393A04C4D2CB6004FCD772C9757 A+ 0.0025 010 3 积极支持,积极满足 2024-03-27 11:34:29.0 admin 2024-01-07 18:29:31.0 0.0029 0.0016
16 B137424B4227455AB7CD813D7733B203 BB 0.0600 010 8 适度支持,合理满足 2024-03-27 11:34:45.0 admin 2024-03-27 11:34:50.0 0.0730 0.0420
17 B23797E3AA04429CA91CA16C0AA6E2D1 AA 0.0015 010 2 重点支持,优先满足 2024-03-27 11:35:08.0 admin 2024-01-07 18:29:16.0 0.0016 0.0008
18 C5717CCFC1F74F21B0638164A6C03CC8 A- 0.0080 010 5 积极支持,积极满足 2024-03-27 11:35:23.0 admin 2024-03-27 11:35:27.0 0.0110 0.0056
19 CCCE2172CFC94548BF9401F0116E8F84 CC 0.4500 010 13 限制支持,严格控制准入 2024-03-27 11:35:44.0 admin 2024-03-27 11:35:48.0 0.5500 0.3700
20 E60A6EDB2A7549DB894324130E490BDE CCC 0.3000 010 12 限制支持,严格控制准入 2024-03-27 11:36:04.0 admin 2024-03-27 11:36:09.0 0.3700 0.2500

2741
app.irbs/src/main/resources/liquibase/data/ns_company_rating.csv

File diff suppressed because it is too large

918
app.irbs/src/main/resources/liquibase/data/ns_r_cfg_rpt_sql.csv

@ -0,0 +1,918 @@
"NS_R_CFG_RPT_SQL",,,,,,,,,,
"ID_","REPORT_ID","REPORT_NAME","DATABASE_TYPE","SQL_TEXT","DATA_COME_FROM_","CREATOR_","CREATE_DATE_","LAST_MODIFIER_","LAST_MODIFYDATE_","CORP_CODE_"
"主键","报表ID","报表名称","数据库类型","报表的sql语句","数据来源","创建人","创建日期","最后修改人","最后修改日期","所属法人代码"
"VARCHAR","VARCHAR","VARCHAR","VARCHAR","LONGVARCHAR","VARCHAR","VARCHAR","TIMESTAMP","VARCHAR","TIMESTAMP","VARCHAR"
"java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.sql.Timestamp","java.lang.String","java.sql.Timestamp","java.lang.String"
"1","rptRatingDistribution","客户评级分布报表","MYSQL","WITH A AS (
SELECT
T.ORIGINAL_LEVEL AS FINAL_LEVEL
,T.ORDER_NUM
,COUNT(1) AS CUST_CNT
,SUM(IFNULL(T.BORR_BAL,0)) AS BORR_BAL
,SUM(CASE WHEN T.EFFECTIVE_MONTH = CAST( DATE_FORMAT('#EFFECTIVE_MONTH', '%Y%m') AS DECIMAL) THEN 1 ELSE 0 END) AS CURR_INCT_CNT
,SUM(CASE WHEN T.FINAL_LEVEL = 'D' THEN 1 ELSE 0 END) AS DEF_CUST_CNT
FROM (
SELECT
V.CUST_NO,
V.ORIGINAL_LEVEL,
V.ORDER_NUM,
V.FINAL_LEVEL,
V.BORR_BAL,
V.EFFECTIVE_MONTH
FROM VIEW_RPT_BASE_INFO V
WHERE V.EFFECTIVE_TIME = V.MAX_EFFECTIVE_TIME
AND V.EFFECTIVE_MONTH <= CAST(DATE_FORMAT('#EFFECTIVE_MONTH', '%Y%m') AS DECIMAL)
<MODEL_CODE> AND V.MODEL_CODE = '#MODEL_CODE' </MODEL_CODE>
<MANAGER_ORG_CODE> AND V.MANAGER_ORG_CODE = '#MANAGER_ORG_CODE' </MANAGER_ORG_CODE>
) T GROUP BY T.ORIGINAL_LEVEL, T.ORDER_NUM
),
B AS (
SELECT
SUM(CUST_CNT) AS TOTAL_CUST_CNT
,SUM(BORR_BAL) AS TOTAL_BORR_BAL
,SUM(CURR_INCT_CNT) AS TOTAL_CURR_INCT_CNT
,SUM(DEF_CUST_CNT) AS TOTAL_DEF_CUST_CNT
FROM A
)
SELECT
A.FINAL_LEVEL,
A.CUST_CNT,
CASE WHEN A.CUST_CNT = 0 THEN 0 ELSE A.CUST_CNT / B.TOTAL_CUST_CNT END AS CUST_RATIO,
A.BORR_BAL,
CASE WHEN A.BORR_BAL = 0 THEN 0 ELSE A.BORR_BAL / B.TOTAL_BORR_BAL END AS BORR_BAL_RATIO,
A.CURR_INCT_CNT,
CASE WHEN A.CURR_INCT_CNT = 0 THEN 0 ELSE A.CURR_INCT_CNT / B.TOTAL_CURR_INCT_CNT END AS CURR_INCT_RATIO,
A.DEF_CUST_CNT,
CASE WHEN A.DEF_CUST_CNT = 0 THEN 0 ELSE A.DEF_CUST_CNT / B.TOTAL_DEF_CUST_CNT END AS DEF_CUST_RATIO
FROM A LEFT JOIN B ON 1 = 1
ORDER BY A.ORDER_NUM",,,,,,
"10","rptRatingAdjust","客户评级特例调整情况报表","MYSQL","SELECT
T.EFFECTIVE_MONTH,
T.CUST_CNT,
T.ADJ_CNT,
CASE WHEN T.ADJ_CNT = 0 THEN 0 ELSE T.ADJ_CNT/T.CUST_CNT END AS ADJ_RATIO,
CASE WHEN ONE_LVL_CNT = 0 THEN 0 ELSE ONE_LVL_CNT/T.CUST_CNT END AS ONE_LVL_RATIO,
CASE WHEN TWO_LVL_CNT = 0 THEN 0 ELSE TWO_LVL_CNT/T.CUST_CNT END AS TWO_LVL_RATIO,
CASE WHEN THREE_LVL_CNT = 0 THEN 0 ELSE THREE_LVL_CNT/T.CUST_CNT END AS THREE_LVL_RATIO,
CASE WHEN THREE_MORE_LVL_CNT = 0 THEN 0 ELSE THREE_MORE_LVL_CNT/T.CUST_CNT END AS THREE_MORE_LVL_RATIO
FROM (
SELECT
V.EFFECTIVE_MONTH,
COUNT(V.CUST_NO) AS CUST_CNT,
SUM(CASE WHEN V.ADJ_LEVEL <> V.INIT_LEVEL THEN 1 ELSE 0 END) AS ADJ_CNT,
SUM(CASE WHEN ABS(V.ADJ_ORDER_NUM-V.INIT_ORDER_NUM) = 1 THEN 1 ELSE 0 END) AS ONE_LVL_CNT,
SUM(CASE WHEN ABS(V.ADJ_ORDER_NUM-V.INIT_ORDER_NUM) = 2 THEN 1 ELSE 0 END) AS TWO_LVL_CNT,
SUM(CASE WHEN ABS(V.ADJ_ORDER_NUM-V.INIT_ORDER_NUM) = 3 THEN 1 ELSE 0 END) AS THREE_LVL_CNT,
SUM(CASE WHEN ABS(V.ADJ_ORDER_NUM-V.INIT_ORDER_NUM) > 3 THEN 1 ELSE 0 END) AS THREE_MORE_LVL_CNT
FROM VIEW_RPT_BASE_INFO V
WHERE V.EFFECTIVE_TIME = V.MAX_EFFECTIVE_TIME
AND V.EFFECTIVE_MONTH <= CAST(DATE_FORMAT('#EFFECTIVE_MONTH','%Y%m') AS DECIMAL)
<MODEL_CODE>AND V.MODEL_CODE = '#MODEL_CODE'</MODEL_CODE>
<MANAGER_ORG_CODE>AND V.MANAGER_ORG_CODE = '#MANAGER_ORG_CODE'</MANAGER_ORG_CODE>
GROUP BY V.EFFECTIVE_MONTH
) T ORDER BY T.EFFECTIVE_MONTH",,,,,,
"11","rptModelMonitorBinomialCheck","模型审慎性监控报表","MYSQL","WITH A AS(
SELECT
TT.FINAL_LEVEL,
TT.ORDER_NUM,
TT.PD,
TT.MODEL_CODE,
TT.EFFECTIVE_Y,
TT.CUST_CNT,
TT.DEF_CNT,
TT.NORMAL_CNT,
TT.ACT_DEF_RATIO,
CASE WHEN TT.DEF_CNT < TT.DOWN_AREA_99 OR TT.DEF_CNT > TT.UP_AREA_99 THEN '否'
ELSE '是' END AS BINOMIAL
FROM (
SELECT
FINAL_LEVEL,
ORDER_NUM,
PD,
MODEL_CODE,
EFFECTIVE_Y,
CUST_CNT,
DEF_CNT,
NORMAL_CNT,
ACT_DEF_RATIO,
CUST_CNT*PD AS AVG_K,
SQRT(CUST_CNT*PD*(1-PD)) AS DEVI_K,
CASE WHEN (ROUND(CUST_CNT*PD-2.576*SQRT(CUST_CNT*PD*(1-PD)),0)) < 0 THEN 0
ELSE (ROUND(CUST_CNT*PD-2.576*SQRT(CUST_CNT*PD*(1-PD)),0)) END AS DOWN_AREA_99,
ROUND(CUST_CNT*PD+2.576*SQRT(CUST_CNT*PD*(1-PD)),0) AS UP_AREA_99
FROM (
SELECT
V.ORIGINAL_LEVEL AS FINAL_LEVEL,
V.ORDER_NUM,
V.PD,
V.MODEL_CODE,
V.EFFECTIVE_Y,
COUNT(V.CUST_NO) AS CUST_CNT,
SUM(CASE WHEN V.FINAL_LEVEL = 'D' THEN 1 ELSE 0 END) AS DEF_CNT,
COUNT(V.CUST_NO)-SUM(CASE WHEN V.FINAL_LEVEL = 'D' THEN 1 ELSE 0 END) AS NORMAL_CNT,
IFNULL(SUM(CASE WHEN V.FINAL_LEVEL = 'D' THEN 1 ELSE 0 END)/COUNT(V.CUST_NO),0) AS ACT_DEF_RATIO
FROM VIEW_RPT_BASE_INFO V
WHERE V.EFFECTIVE_TIME = V.MAX_EFFECTIVE_TIME
AND V.EFFECTIVE_MONTH <= CAST(DATE_FORMAT('#EFFECTIVE_MONTH','%Y%m') AS DECIMAL)
AND V.MODEL_CODE = '#MODEL_CODE'
GROUP BY V.ORIGINAL_LEVEL,V.ORDER_NUM,V.PD,V.MODEL_CODE,V.EFFECTIVE_Y
ORDER BY V.EFFECTIVE_Y,V.ORDER_NUM
) T
) TT ORDER BY TT.EFFECTIVE_Y,TT.ORDER_NUM
),
B AS (
SELECT
A.EFFECTIVE_Y,
SUM(CASE WHEN A.BINOMIAL='是' THEN 1 ELSE 0 END) AS PASS_LVL_NUM
FROM A GROUP BY A.EFFECTIVE_Y
),
C AS (
SELECT
A.EFFECTIVE_Y,
SUM(NORMAL_CNT) NORMAL_CNT,
SUM(DEF_CNT) DEF_CNT,
SUM(CUST_CNT) CUST_CNT
FROM A
GROUP BY A.EFFECTIVE_Y
)
SELECT
B.EFFECTIVE_Y,
CASE WHEN B.PASS_LVL_NUM=14 THEN '各级别均通过'
WHEN B.PASS_LVL_NUM=13 THEN '1个级别未通过'
WHEN B.PASS_LVL_NUM=12 THEN '2个级别未通过'
WHEN B.PASS_LVL_NUM=11 THEN '3个级别未通过'
WHEN B.PASS_LVL_NUM=10 THEN '4个级别未通过'
WHEN B.PASS_LVL_NUM=9 THEN '5个级别未通过'
WHEN B.PASS_LVL_NUM=8 THEN '6个级别未通过'
ELSE '6个以上级别未通过' END AS BINOMIAL_CHECK,
CASE WHEN B.PASS_LVL_NUM>=11 THEN '低度'
WHEN B.PASS_LVL_NUM>=8 THEN '中度'
ELSE '高度' END AS RISK_LEVEL,
C.NORMAL_CNT,C.DEF_CNT,C.CUST_CNT
FROM B LEFT JOIN C ON C.EFFECTIVE_Y = B.EFFECTIVE_Y",,,,,,
"2","rptRatingModelFocusDist","客户评级模型敞口集中度分布报表","MYSQL","WITH A AS (
SELECT
T.MODEL_CODE,
T.MODEL_NAME,
SUM( CASE WHEN T.FINAL_LEVEL = 'AAA' THEN 1 ELSE 0 END ) AS AAA_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'AA' THEN 1 ELSE 0 END ) AS AA_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'A+' THEN 1 ELSE 0 END ) AS A_PLUS_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'A' THEN 1 ELSE 0 END ) AS A_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'A-' THEN 1 ELSE 0 END ) AS A_MINUS_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'BBB' THEN 1 ELSE 0 END ) AS BBB_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'BB+' THEN 1 ELSE 0 END ) AS BB_PLUS_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'BB' THEN 1 ELSE 0 END ) AS BB_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'BB-' THEN 1 ELSE 0 END ) AS BB_MINUS_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'B+' THEN 1 ELSE 0 END ) AS B_PLUS_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'B' THEN 1 ELSE 0 END ) AS B_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'CCC' THEN 1 ELSE 0 END ) AS CCC_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'CC' THEN 1 ELSE 0 END ) AS CC_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'C' THEN 1 ELSE 0 END ) AS C_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'D' THEN 1 ELSE 0 END ) AS D_CNT
FROM (
SELECT
V.FINAL_LEVEL,
V.MODEL_CODE,
V.MODEL_NAME
FROM VIEW_RPT_BASE_INFO V
WHERE V.EFFECTIVE_TIME = V.MAX_EFFECTIVE_TIME
AND V.EFFECTIVE_MONTH <= CAST(DATE_FORMAT('#EFFECTIVE_MONTH', '%Y%m') AS DECIMAL)
<MANAGER_ORG_CODE> AND V.MANAGER_ORG_CODE = '#MANAGER_ORG_CODE' </MANAGER_ORG_CODE>
) T GROUP BY T.MODEL_CODE, T.MODEL_NAME
),
B AS (
SELECT
COUNT(CUST_NO) AS TOTAL_CUST_CNT
FROM VIEW_RPT_BASE_INFO V
WHERE V.EFFECTIVE_TIME = V.MAX_EFFECTIVE_TIME
AND V.EFFECTIVE_MONTH <= CAST(DATE_FORMAT('#EFFECTIVE_MONTH', '%Y%m') AS DECIMAL)
<MANAGER_ORG_CODE> AND V.MANAGER_ORG_CODE = '#MANAGER_ORG_CODE' </MANAGER_ORG_CODE>
)
SELECT
A.MODEL_NAME,
A.AAA_CNT,
CASE WHEN A.AAA_CNT=0 THEN 0 ELSE A.AAA_CNT/B.TOTAL_CUST_CNT END AS AAA_RATIO,
A.AA_CNT,
CASE WHEN A.AA_CNT=0 THEN 0 ELSE A.AA_CNT/B.TOTAL_CUST_CNT END AS AA_RATIO,
A.A_PLUS_CNT,
CASE WHEN A.A_PLUS_CNT=0 THEN 0 ELSE A.A_PLUS_CNT/B.TOTAL_CUST_CNT END AS A_PLUS_RATIO,
A.A_CNT,
CASE WHEN A.A_CNT=0 THEN 0 ELSE A.A_CNT/B.TOTAL_CUST_CNT END AS A_RATIO,
A.A_MINUS_CNT,
CASE WHEN A.A_MINUS_CNT=0 THEN 0 ELSE A.A_MINUS_CNT/B.TOTAL_CUST_CNT END AS A_MINUS_RATIO,
A.BBB_CNT,
CASE WHEN A.BBB_CNT=0 THEN 0 ELSE A.BBB_CNT/B.TOTAL_CUST_CNT END AS BBB_RATIO,
A.BB_PLUS_CNT,
CASE WHEN A.BB_PLUS_CNT=0 THEN 0 ELSE A.BB_PLUS_CNT/B.TOTAL_CUST_CNT END AS BB_PLUS_RATIO,
A.BB_CNT,
CASE WHEN A.BB_CNT=0 THEN 0 ELSE A.BB_CNT/B.TOTAL_CUST_CNT END AS BB_RATIO,
A.BB_MINUS_CNT,
CASE WHEN A.BB_MINUS_CNT=0 THEN 0 ELSE A.BB_MINUS_CNT/B.TOTAL_CUST_CNT END AS BB_MINUS_RATIO,
A.B_PLUS_CNT,
CASE WHEN A.B_PLUS_CNT=0 THEN 0 ELSE A.B_PLUS_CNT/B.TOTAL_CUST_CNT END AS B_PLUS_RATIO,
A.B_CNT,
CASE WHEN A.B_CNT=0 THEN 0 ELSE A.B_CNT/B.TOTAL_CUST_CNT END AS B_RATIO,
A.CCC_CNT,
CASE WHEN A.CCC_CNT=0 THEN 0 ELSE A.CCC_CNT/B.TOTAL_CUST_CNT END AS CCC_RATIO,
A.CC_CNT,
CASE WHEN A.CC_CNT=0 THEN 0 ELSE A.CC_CNT/B.TOTAL_CUST_CNT END AS CC_RATIO,
A.C_CNT,
CASE WHEN A.C_CNT=0 THEN 0 ELSE A.C_CNT/B.TOTAL_CUST_CNT END AS C_RATIO,
A.D_CNT,
CASE WHEN A.D_CNT=0 THEN 0 ELSE A.D_CNT/B.TOTAL_CUST_CNT END AS D_RATIO
FROM A LEFT JOIN B ON 1=1
ORDER BY A.MODEL_CODE",,,,,,
"3","rptRatingOrgFocusDist","客户评级分支机构集中度分布报表","MYSQL","WITH A AS (
SELECT
T.MANAGER_ORG_CODE,
SUM( CASE WHEN T.FINAL_LEVEL = 'AAA' THEN 1 ELSE 0 END ) AS AAA_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'AA' THEN 1 ELSE 0 END ) AS AA_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'A+' THEN 1 ELSE 0 END ) AS A_PLUS_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'A' THEN 1 ELSE 0 END ) AS A_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'A-' THEN 1 ELSE 0 END ) AS A_MINUS_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'BBB' THEN 1 ELSE 0 END ) AS BBB_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'BB+' THEN 1 ELSE 0 END ) AS BB_PLUS_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'BB' THEN 1 ELSE 0 END ) AS BB_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'BB-' THEN 1 ELSE 0 END ) AS BB_MINUS_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'B+' THEN 1 ELSE 0 END ) AS B_PLUS_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'B' THEN 1 ELSE 0 END ) AS B_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'CCC' THEN 1 ELSE 0 END ) AS CCC_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'CC' THEN 1 ELSE 0 END ) AS CC_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'C' THEN 1 ELSE 0 END ) AS C_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'D' THEN 1 ELSE 0 END ) AS D_CNT
FROM (
SELECT
V.FINAL_LEVEL,
V.MANAGER_ORG_CODE
FROM VIEW_RPT_BASE_INFO V
WHERE V.EFFECTIVE_TIME = V.MAX_EFFECTIVE_TIME
AND V.EFFECTIVE_MONTH <= CAST(DATE_FORMAT('#EFFECTIVE_MONTH', '%Y%m') AS DECIMAL)
<MODEL_CODE> AND V.MODEL_CODE = '#MODEL_CODE' </MODEL_CODE>
) T GROUP BY T.MANAGER_ORG_CODE
),
B AS (
SELECT
COUNT(CUST_NO) AS TOTAL_CUST_CNT
FROM VIEW_RPT_BASE_INFO V
WHERE V.EFFECTIVE_TIME = V.MAX_EFFECTIVE_TIME
AND V.EFFECTIVE_MONTH <= CAST(DATE_FORMAT('#EFFECTIVE_MONTH', '%Y%m') AS DECIMAL)
<MODEL_CODE> AND V.MODEL_CODE = '#MODEL_CODE' </MODEL_CODE>
)
SELECT
O.FD_NAME AS MANAGER_ORG_NAME,
A.AAA_CNT,
CASE WHEN A.AAA_CNT=0 THEN 0 ELSE A.AAA_CNT/B.TOTAL_CUST_CNT END AS AAA_RATIO,
A.AA_CNT,
CASE WHEN A.AA_CNT=0 THEN 0 ELSE A.AA_CNT/B.TOTAL_CUST_CNT END AS AA_RATIO,
A.A_PLUS_CNT,
CASE WHEN A.A_PLUS_CNT=0 THEN 0 ELSE A.A_PLUS_CNT/B.TOTAL_CUST_CNT END AS A_PLUS_RATIO,
A.A_CNT,
CASE WHEN A.A_CNT=0 THEN 0 ELSE A.A_CNT/B.TOTAL_CUST_CNT END AS A_RATIO,
A.A_MINUS_CNT,
CASE WHEN A.A_MINUS_CNT=0 THEN 0 ELSE A.A_MINUS_CNT/B.TOTAL_CUST_CNT END AS A_MINUS_RATIO,
A.BBB_CNT,
CASE WHEN A.BBB_CNT=0 THEN 0 ELSE A.BBB_CNT/B.TOTAL_CUST_CNT END AS BBB_RATIO,
A.BB_PLUS_CNT,
CASE WHEN A.BB_PLUS_CNT=0 THEN 0 ELSE A.BB_PLUS_CNT/B.TOTAL_CUST_CNT END AS BB_PLUS_RATIO,
A.BB_CNT,
CASE WHEN A.BB_CNT=0 THEN 0 ELSE A.BB_CNT/B.TOTAL_CUST_CNT END AS BB_RATIO,
A.BB_MINUS_CNT,
CASE WHEN A.BB_MINUS_CNT=0 THEN 0 ELSE A.BB_MINUS_CNT/B.TOTAL_CUST_CNT END AS BB_MINUS_RATIO,
A.B_PLUS_CNT,
CASE WHEN A.B_PLUS_CNT=0 THEN 0 ELSE A.B_PLUS_CNT/B.TOTAL_CUST_CNT END AS B_PLUS_RATIO,
A.B_CNT,
CASE WHEN A.B_CNT=0 THEN 0 ELSE A.B_CNT/B.TOTAL_CUST_CNT END AS B_RATIO,
A.CCC_CNT,
CASE WHEN A.CCC_CNT=0 THEN 0 ELSE A.CCC_CNT/B.TOTAL_CUST_CNT END AS CCC_RATIO,
A.CC_CNT,
CASE WHEN A.CC_CNT=0 THEN 0 ELSE A.CC_CNT/B.TOTAL_CUST_CNT END AS CC_RATIO,
A.C_CNT,
CASE WHEN A.C_CNT=0 THEN 0 ELSE A.C_CNT/B.TOTAL_CUST_CNT END AS C_RATIO,
A.D_CNT,
CASE WHEN A.D_CNT=0 THEN 0 ELSE A.D_CNT/B.TOTAL_CUST_CNT END AS D_RATIO
FROM A LEFT JOIN B ON 1=1
LEFT JOIN FR_AA_ORG O ON O.FD_CODE = A.MANAGER_ORG_CODE
ORDER BY A.MANAGER_ORG_CODE",,,,,,
"4","rptRatingIndustryFocusDist","客户评级行业集中度分布报表","MYSQL","WITH A AS (
SELECT
T.INDUSTRY_CODE,
SUM( CASE WHEN T.FINAL_LEVEL = 'AAA' THEN 1 ELSE 0 END ) AS AAA_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'AA' THEN 1 ELSE 0 END ) AS AA_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'A+' THEN 1 ELSE 0 END ) AS A_PLUS_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'A' THEN 1 ELSE 0 END ) AS A_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'A-' THEN 1 ELSE 0 END ) AS A_MINUS_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'BBB' THEN 1 ELSE 0 END ) AS BBB_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'BB+' THEN 1 ELSE 0 END ) AS BB_PLUS_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'BB' THEN 1 ELSE 0 END ) AS BB_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'BB-' THEN 1 ELSE 0 END ) AS BB_MINUS_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'B+' THEN 1 ELSE 0 END ) AS B_PLUS_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'B' THEN 1 ELSE 0 END ) AS B_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'CCC' THEN 1 ELSE 0 END ) AS CCC_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'CC' THEN 1 ELSE 0 END ) AS CC_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'C' THEN 1 ELSE 0 END ) AS C_CNT,
SUM( CASE WHEN T.FINAL_LEVEL = 'D' THEN 1 ELSE 0 END ) AS D_CNT
FROM (
SELECT
V.FINAL_LEVEL,
V.INDUSTRY_CODE
FROM VIEW_RPT_BASE_INFO V
WHERE V.EFFECTIVE_TIME = V.MAX_EFFECTIVE_TIME
AND V.EFFECTIVE_MONTH <= CAST(DATE_FORMAT('#EFFECTIVE_MONTH', '%Y%m') AS DECIMAL)
<MODEL_CODE> AND B.MODEL_CODE='#MODEL_CODE' </MODEL_CODE>
<MANAGER_ORG_CODE> AND B.MANAGER_ORG_CODE='#MANAGER_ORG_CODE' </MANAGER_ORG_CODE>
) T GROUP BY T.INDUSTRY_CODE
),
B AS (
SELECT
COUNT(CUST_NO) AS TOTAL_CUST_CNT
FROM VIEW_RPT_BASE_INFO V
WHERE V.EFFECTIVE_TIME = V.MAX_EFFECTIVE_TIME
AND V.EFFECTIVE_MONTH <= CAST(DATE_FORMAT('#EFFECTIVE_MONTH', '%Y%m') AS DECIMAL)
<MODEL_CODE> AND B.MODEL_CODE='#MODEL_CODE' </MODEL_CODE>
<MANAGER_ORG_CODE> AND B.MANAGER_ORG_CODE='#MANAGER_ORG_CODE' </MANAGER_ORG_CODE>
)
SELECT
I.INDUSTRY_NAME,
A.AAA_CNT,
CASE WHEN A.AAA_CNT=0 THEN 0 ELSE A.AAA_CNT/B.TOTAL_CUST_CNT END AS AAA_RATIO,
A.AA_CNT,
CASE WHEN A.AA_CNT=0 THEN 0 ELSE A.AA_CNT/B.TOTAL_CUST_CNT END AS AA_RATIO,
A.A_PLUS_CNT,
CASE WHEN A.A_PLUS_CNT=0 THEN 0 ELSE A.A_PLUS_CNT/B.TOTAL_CUST_CNT END AS A_PLUS_RATIO,
A.A_CNT,
CASE WHEN A.A_CNT=0 THEN 0 ELSE A.A_CNT/B.TOTAL_CUST_CNT END AS A_RATIO,
A.A_MINUS_CNT,
CASE WHEN A.A_MINUS_CNT=0 THEN 0 ELSE A.A_MINUS_CNT/B.TOTAL_CUST_CNT END AS A_MINUS_RATIO,
A.BBB_CNT,
CASE WHEN A.BBB_CNT=0 THEN 0 ELSE A.BBB_CNT/B.TOTAL_CUST_CNT END AS BBB_RATIO,
A.BB_PLUS_CNT,
CASE WHEN A.BB_PLUS_CNT=0 THEN 0 ELSE A.BB_PLUS_CNT/B.TOTAL_CUST_CNT END AS BB_PLUS_RATIO,
A.BB_CNT,
CASE WHEN A.BB_CNT=0 THEN 0 ELSE A.BB_CNT/B.TOTAL_CUST_CNT END AS BB_RATIO,
A.BB_MINUS_CNT,
CASE WHEN A.BB_MINUS_CNT=0 THEN 0 ELSE A.BB_MINUS_CNT/B.TOTAL_CUST_CNT END AS BB_MINUS_RATIO,
A.B_PLUS_CNT,
CASE WHEN A.B_PLUS_CNT=0 THEN 0 ELSE A.B_PLUS_CNT/B.TOTAL_CUST_CNT END AS B_PLUS_RATIO,
A.B_CNT,
CASE WHEN A.B_CNT=0 THEN 0 ELSE A.B_CNT/B.TOTAL_CUST_CNT END AS B_RATIO,
A.CCC_CNT,
CASE WHEN A.CCC_CNT=0 THEN 0 ELSE A.CCC_CNT/B.TOTAL_CUST_CNT END AS CCC_RATIO,
A.CC_CNT,
CASE WHEN A.CC_CNT=0 THEN 0 ELSE A.CC_CNT/B.TOTAL_CUST_CNT END AS CC_RATIO,
A.C_CNT,
CASE WHEN A.C_CNT=0 THEN 0 ELSE A.C_CNT/B.TOTAL_CUST_CNT END AS C_RATIO,
A.D_CNT,
CASE WHEN A.D_CNT=0 THEN 0 ELSE A.D_CNT/B.TOTAL_CUST_CNT END AS D_RATIO
FROM A LEFT JOIN B ON 1=1
LEFT JOIN (
SELECT
'A' AS INDUSTRY_CODE,
'农林牧渔' AS INDUSTRY_NAME,
1 AS ORDER_NUM UNION
SELECT
'B' AS INDUSTRY_CODE,
'采矿业' AS INDUSTRY_NAME,
2 AS ORDER_NUM UNION
SELECT
'C' AS INDUSTRY_CODE,
'制造业' AS INDUSTRY_NAME,
3 AS ORDER_NUM UNION
SELECT
'D' AS INDUSTRY_CODE,
'电力、燃气及水的生产和供应业' AS INDUSTRY_NAME,
4 AS ORDER_NUM UNION
SELECT
'E' AS INDUSTRY_CODE,
'建筑业' AS INDUSTRY_NAME,
5 AS ORDER_NUM UNION
SELECT
'F' AS INDUSTRY_CODE,
'交通运输、仓储及邮政业' AS INDUSTRY_NAME,
6 AS ORDER_NUM UNION
SELECT
'G' AS INDUSTRY_CODE,
'信息传输、计算机服务和软件业' AS INDUSTRY_NAME,
7 AS ORDER_NUM UNION
SELECT
'H' AS INDUSTRY_CODE,
'批发和零售业' AS INDUSTRY_NAME,
8 AS ORDER_NUM UNION
SELECT
'I' AS INDUSTRY_CODE,
'住宿和餐饮业' AS INDUSTRY_NAME,
9 AS ORDER_NUM UNION
SELECT
'J' AS INDUSTRY_CODE,
'金融业' AS INDUSTRY_NAME,
10 AS ORDER_NUM UNION
SELECT
'K' AS INDUSTRY_CODE,
'房地产业' AS INDUSTRY_NAME,
11 AS ORDER_NUM UNION
SELECT
'L' AS INDUSTRY_CODE,
'租赁和商务服务业' AS INDUSTRY_NAME,
12 AS ORDER_NUM UNION
SELECT
'M' AS INDUSTRY_CODE,
'科学研究、技术服务和地质勘查业' AS INDUSTRY_NAME,
13 AS ORDER_NUM UNION
SELECT
'N' AS INDUSTRY_CODE,
'水利、环境和公共设施管理业' AS INDUSTRY_NAME,
14 AS ORDER_NUM UNION
SELECT
'O' AS INDUSTRY_CODE,
'居民服务和其他服务业' AS INDUSTRY_NAME,
15 AS ORDER_NUM UNION
SELECT
'P' AS INDUSTRY_CODE,
'教育' AS INDUSTRY_NAME,
16 AS ORDER_NUM UNION
SELECT
'Q' AS INDUSTRY_CODE,
'卫生、社会保障和社会服务业' AS INDUSTRY_NAME,
17 AS ORDER_NUM UNION
SELECT
'R' AS INDUSTRY_CODE,
'文化、体育和娱乐业' AS INDUSTRY_NAME,
18 AS ORDER_NUM UNION
SELECT
'S' AS INDUSTRY_CODE,
'公共管理和社会组织' AS INDUSTRY_NAME,
19 AS ORDER_NUM UNION
SELECT
'T' AS INDUSTRY_CODE,
'国际组织' AS INDUSTRY_NAME,
20 AS ORDER_NUM UNION
SELECT
'X' AS INDUSTRY_CODE,
'未知行业' AS INDUSTRY_NAME,
21 AS ORDER_NUM
) I ON I.INDUSTRY_CODE = A.INDUSTRY_CODE
ORDER BY I.ORDER_NUM",,,,,,
"5","rptRatingNumberMigrate","客户评级迁移报表(客户数)","MYSQL","WITH CURR AS (
SELECT
R.CUST_NO,
R.FINAL_LEVEL,
R.ORDER_NUM,
R.EFFECTIVE_MONTH,
R.RATING_STATUS
FROM
VIEW_RPT_BASE_INFO R
WHERE R.EFFECTIVE_TIME = R.MAX_EFFECTIVE_TIME
AND R.EFFECTIVE_MONTH BETWEEN CAST(DATE_FORMAT( DATE_ADD( '#EFFECTIVE_MONTH', INTERVAL - 1 YEAR ), '%Y%m' ) AS DECIMAL )
AND CAST(DATE_FORMAT( '#EFFECTIVE_MONTH', '%Y%m' ) AS DECIMAL)
<MODEL_CODE>AND R.MODEL_CODE='#MODEL_CODE'</MODEL_CODE>
<MANAGER_ORG_CODE>AND R.MANAGER_ORG_CODE='#MANAGER_ORG_CODE'</MANAGER_ORG_CODE>
),
LAST AS (
SELECT
R.CUST_NO,
R.FINAL_LEVEL,
R.ORDER_NUM,
R.EFFECTIVE_MONTH,
R.RATING_STATUS
FROM VIEW_RPT_BASE_INFO R
WHERE R.EFFECTIVE_MONTH BETWEEN CAST(DATE_FORMAT( DATE_ADD( '#EFFECTIVE_MONTH', INTERVAL - 2 YEAR ), '%Y%m' ) AS DECIMAL)
AND CAST(DATE_FORMAT( DATE_ADD( DATE_ADD( '#EFFECTIVE_MONTH', INTERVAL - 1 YEAR ), INTERVAL - 1 MONTH ), '%Y%m' ) AS DECIMAL)
<MODEL_CODE>AND R.MODEL_CODE='#MODEL_CODE'</MODEL_CODE>
<MANAGER_ORG_CODE>AND R.MANAGER_ORG_CODE='#MANAGER_ORG_CODE'</MANAGER_ORG_CODE>
),
NEW AS (
SELECT
'新增客户' AS FINAL_LEVEL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'AAA' THEN 1 ELSE 0 END ) AS AAA_CNT,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'AA' THEN 1 ELSE 0 END ) AS AA_CNT,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'A+' THEN 1 ELSE 0 END ) AS A_PLUS_CNT,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'A' THEN 1 ELSE 0 END ) AS A_CNT,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'A-' THEN 1 ELSE 0 END ) AS A_MINUS_CNT,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'BBB' THEN 1 ELSE 0 END ) AS BBB_CNT,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'BB+' THEN 1 ELSE 0 END ) AS BB_PLUS_CNT,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'BB' THEN 1 ELSE 0 END ) AS BB_CNT,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'BB-' THEN 1 ELSE 0 END ) AS BB_MINUS_CNT,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'B+' THEN 1 ELSE 0 END ) AS B_PLUS_CNT,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'B' THEN 1 ELSE 0 END ) AS B_CNT,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'CCC' THEN 1 ELSE 0 END ) AS CCC_CNT,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'CC' THEN 1 ELSE 0 END ) AS CC_CNT,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'C' THEN 1 ELSE 0 END ) AS C_CNT,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'D' THEN 1 ELSE 0 END ) AS D_CNT,
0 AS NOT_RATING_CNT,0 AS UP_CNT,0 AS DOWN_CNT,0 AS UP_RATIO,
0 AS DOWN_RATIO,0 AS CHG_EXPONENT
FROM CURR WHERE NOT EXISTS ( SELECT 1 FROM LAST WHERE LAST.CUST_NO = CURR.CUST_NO )
),
NR AS (
SELECT
LAST.FINAL_LEVEL,
COUNT( 1 ) AS NOT_RATING_CNT
FROM LAST
WHERE NOT EXISTS ( SELECT 1 FROM CURR WHERE CURR.CUST_NO = LAST.CUST_NO )
GROUP BY LAST.FINAL_LEVEL
),
CHG AS (
SELECT
SUM( CASE WHEN CURR.FINAL_LEVEL <> LAST.FINAL_LEVEL THEN 1 ELSE 0 END ) AS CHG_CNT
FROM CURR LEFT JOIN LAST ON LAST.CUST_NO = CURR.CUST_NO
)
SELECT
*
FROM
(
SELECT
S.SCALE_LEVEL AS FINAL_LEVEL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'AAA' THEN 1 ELSE 0 END ) AS AAA_CNT,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'AA' THEN 1 ELSE 0 END ) AS AA_CNT,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'A+' THEN 1 ELSE 0 END ) AS A_PLUS_CNT,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'A' THEN 1 ELSE 0 END ) AS A_CNT,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'A-' THEN 1 ELSE 0 END ) AS A_MINUS_CNT,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'BBB' THEN 1 ELSE 0 END ) AS BBB_CNT,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'BB+' THEN 1 ELSE 0 END ) AS BB_PLUS_CNT,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'BB' THEN 1 ELSE 0 END ) AS BB_CNT,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'BB-' THEN 1 ELSE 0 END ) AS BB_MINUS_CNT,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'B+' THEN 1 ELSE 0 END ) AS B_PLUS_CNT,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'B' THEN 1 ELSE 0 END ) AS B_CNT,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'CCC' THEN 1 ELSE 0 END ) AS CCC_CNT,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'CC' THEN 1 ELSE 0 END ) AS CC_CNT,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'C' THEN 1 ELSE 0 END ) AS C_CNT,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'D' THEN 1 ELSE 0 END ) AS D_CNT,
IFNULL( NR.NOT_RATING_CNT, 0 ) AS NOT_RATING_CNT,
SUM( CASE WHEN CURR.ORDER_NUM < LAST.ORDER_NUM THEN 1 ELSE 0 END ) AS UP_CNT,
SUM( CASE WHEN CURR.ORDER_NUM > LAST.ORDER_NUM THEN 1 ELSE 0 END ) AS DOWN_CNT,
CASE WHEN CHG.CHG_CNT = 0 THEN 0
ELSE SUM( CASE WHEN CURR.ORDER_NUM < LAST.ORDER_NUM THEN 1 ELSE 0 END )/ CHG.CHG_CNT
END AS UP_RATIO,
CASE WHEN CHG.CHG_CNT = 0 THEN 0
ELSE SUM( CASE WHEN CURR.ORDER_NUM > LAST.ORDER_NUM THEN 1 ELSE 0 END )/ CHG.CHG_CNT
END AS DOWN_RATIO,(
CASE
WHEN CHG.CHG_CNT = 0 THEN
0 ELSE SUM( CASE WHEN CURR.ORDER_NUM < LAST.ORDER_NUM THEN 1 ELSE 0 END )/ CHG.CHG_CNT
END
)-(
CASE
WHEN CHG.CHG_CNT = 0 THEN
0 ELSE SUM( CASE WHEN CURR.ORDER_NUM > LAST.ORDER_NUM THEN 1 ELSE 0 END )/ CHG.CHG_CNT
END
) AS CHG_EXPONENT
FROM
NS_CFG_MAIN_SCALE S
LEFT JOIN LAST ON LAST.FINAL_LEVEL = S.SCALE_LEVEL
LEFT JOIN CURR ON CURR.CUST_NO = LAST.CUST_NO
LEFT JOIN NR ON NR.FINAL_LEVEL = S.SCALE_LEVEL
LEFT JOIN CHG ON 1 = 1
GROUP BY
S.SCALE_LEVEL,
S.ORDER_NUM,
NR.NOT_RATING_CNT,
CHG.CHG_CNT
ORDER BY
S.ORDER_NUM
) A UNION
SELECT
*
FROM
NEW",,,,,,
"6","rptRatingLoanBalanceMigrate","客户评级迁移报表(信贷余额)","MYSQL","WITH CURR AS (
SELECT
R.CUST_NO,
R.FINAL_LEVEL,
R.ORDER_NUM,
R.EFFECTIVE_MONTH,
R.RATING_STATUS,
R.BORR_BAL
FROM
VIEW_RPT_BASE_INFO R
WHERE R.EFFECTIVE_TIME = R.MAX_EFFECTIVE_TIME
AND R.EFFECTIVE_MONTH BETWEEN CAST(DATE_FORMAT( DATE_ADD( '#EFFECTIVE_MONTH', INTERVAL - 1 YEAR ), '%Y%m' ) AS DECIMAL )
AND CAST(DATE_FORMAT( '#EFFECTIVE_MONTH', '%Y%m' ) AS DECIMAL)
<MODEL_CODE>AND R.MODEL_CODE='#MODEL_CODE'</MODEL_CODE>
<MANAGER_ORG_CODE>AND R.MANAGER_ORG_CODE='#MANAGER_ORG_CODE'</MANAGER_ORG_CODE>
),
LAST AS (
SELECT
R.CUST_NO,
R.FINAL_LEVEL,
R.ORDER_NUM,
R.EFFECTIVE_MONTH,
R.RATING_STATUS,
R.BORR_BAL
FROM VIEW_RPT_BASE_INFO R
WHERE R.EFFECTIVE_MONTH BETWEEN CAST(DATE_FORMAT( DATE_ADD( '#EFFECTIVE_MONTH', INTERVAL - 2 YEAR ), '%Y%m' ) AS DECIMAL)
AND CAST(DATE_FORMAT( DATE_ADD( DATE_ADD( '#EFFECTIVE_MONTH', INTERVAL - 1 YEAR ), INTERVAL - 1 MONTH ), '%Y%m' ) AS DECIMAL)
<MODEL_CODE>AND R.MODEL_CODE='#MODEL_CODE'</MODEL_CODE>
<MANAGER_ORG_CODE>AND R.MANAGER_ORG_CODE='#MANAGER_ORG_CODE'</MANAGER_ORG_CODE>
),
NEW AS (
SELECT
'新增客户' AS FINAL_LEVEL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'AAA' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS AAA_BAL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'AA' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS AA_BAL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'A+' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS A_PLUS_BAL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'A' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS A_BAL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'A-' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS A_MINUS_BAL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'BBB' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS BBB_BAL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'BB+' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS BB_PLUS_BAL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'BB' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS BB_BAL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'BB-' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS BB_MINUS_BAL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'B+' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS B_PLUS_BAL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'B' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS B_BAL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'CCC' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS CCC_BAL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'CC' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS CC_BAL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'C' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS C_BAL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'D' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS D_BAL,
0 AS NOT_RATING_BAL,0 AS UP_BAL,0 AS DOWN_BAL,0 AS UP_RATIO,0 AS DOWN_RATIO,0 AS CHG_EXPONENT
FROM CURR
WHERE NOT EXISTS ( SELECT 1 FROM LAST WHERE LAST.CUST_NO = CURR.CUST_NO )
),
NR AS (
SELECT
LAST.FINAL_LEVEL,SUM(IFNULL( LAST.BORR_BAL, 0 )) AS NOT_RATING_BAL
FROM LAST
WHERE NOT EXISTS ( SELECT 1 FROM CURR WHERE CURR.CUST_NO = LAST.CUST_NO )
GROUP BY LAST.FINAL_LEVEL
),
CHG AS (
SELECT
SUM( CASE WHEN CURR.FINAL_LEVEL <> LAST.FINAL_LEVEL THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS CHG_BAL
FROM CURR LEFT JOIN LAST ON LAST.CUST_NO = CURR.CUST_NO
)
SELECT * FROM (
SELECT
S.SCALE_LEVEL AS FINAL_LEVEL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'AAA' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS AAA_BAL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'AA' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS AA_BAL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'A+' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS A_PLUS_BAL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'A' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS A_BAL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'A-' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS A_MINUS_BAL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'BBB' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS BBB_BAL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'BB+' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS BB_PLUS_BAL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'BB' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS BB_BAL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'BB-' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS BB_MINUS_BAL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'B+' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS B_PLUS_BAL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'B' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS B_BAL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'CCC' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS CCC_BAL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'CC' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS CC_BAL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'C' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS C_BAL,
SUM( CASE WHEN CURR.FINAL_LEVEL = 'D' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS D_BAL,
NR.NOT_RATING_BAL,
SUM( CASE WHEN CURR.ORDER_NUM < LAST.ORDER_NUM THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS UP_BAL,
SUM( CASE WHEN CURR.ORDER_NUM > LAST.ORDER_NUM THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS DOWN_BAL,
CASE WHEN CHG.CHG_BAL = 0 THEN 0 ELSE SUM( CASE WHEN CURR.ORDER_NUM < LAST.ORDER_NUM THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END )/ CHG.CHG_BAL
END AS UP_RATIO,
CASE WHEN CHG.CHG_BAL = 0 THEN 0 ELSE SUM( CASE WHEN CURR.ORDER_NUM > LAST.ORDER_NUM THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END )/ CHG.CHG_BAL
END AS DOWN_RATIO,(
CASE WHEN CHG.CHG_BAL = 0 THEN 0 ELSE SUM( CASE WHEN CURR.ORDER_NUM < LAST.ORDER_NUM THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END )/ CHG.CHG_BAL
END)-(CASE WHEN CHG.CHG_BAL = 0 THEN 0 ELSE SUM( CASE WHEN CURR.ORDER_NUM > LAST.ORDER_NUM THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END )/ CHG.CHG_BAL END ) AS CHG_EXPONENT
FROM NS_CFG_MAIN_SCALE S
LEFT JOIN LAST ON LAST.FINAL_LEVEL = S.SCALE_LEVEL
LEFT JOIN CURR ON CURR.CUST_NO = LAST.CUST_NO
LEFT JOIN NR ON NR.FINAL_LEVEL = S.SCALE_LEVEL
LEFT JOIN CHG ON 1 = 1
GROUP BY S.SCALE_LEVEL,S.ORDER_NUM,NOT_RATING_BAL,CHG.CHG_BAL
ORDER BY S.ORDER_NUM ) A
UNION
SELECT * FROM NEW",,,,,,
"7","rptModelMonitorDiff","模型区分能力监控报表","MYSQL","WITH A AS (
SELECT 0 AS DOWN, 10 AS UP, 1 AS SCORE_AREA UNION
SELECT 10 AS DOWN, 20 AS UP, 2 AS SCORE_AREA UNION
SELECT 20 AS DOWN, 30 AS UP, 3 AS SCORE_AREA UNION
SELECT 30 AS DOWN, 40 AS UP, 4 AS SCORE_AREA UNION
SELECT 40 AS DOWN, 50 AS UP, 5 AS SCORE_AREA UNION
SELECT 50 AS DOWN, 60 AS UP, 6 AS SCORE_AREA UNION
SELECT 60 AS DOWN, 70 AS UP, 7 AS SCORE_AREA UNION
SELECT 70 AS DOWN, 80 AS UP, 8 AS SCORE_AREA UNION
SELECT 80 AS DOWN, 90 AS UP, 9 AS SCORE_AREA UNION
SELECT 90 AS DOWN, 100 AS UP, 10 AS SCORE_AREA
),
B AS (
SELECT
V.EFFECTIVE_Q,
A.SCORE_AREA,
COUNT( V.FINAL_LEVEL ) AS CUST_CNT,
SUM( CASE WHEN V.FINAL_LEVEL <> 'D' THEN 1 ELSE 0 END ) AS GOOD_CNT,
SUM( CASE WHEN V.FINAL_LEVEL = 'D' THEN 1 ELSE 0 END ) AS BAD_CNT
FROM VIEW_RPT_BASE_INFO V, A
WHERE V.MODEL_SCORE > A.DOWN
AND V.MODEL_SCORE <= A.UP
AND V.EFFECTIVE_MONTH BETWEEN DATE_FORMAT( DATE_ADD( '#EFFECTIVE_MONTH', INTERVAL -#YEAR_PERIOD YEAR ), '%Y%m' )
AND DATE_FORMAT( '#EFFECTIVE_MONTH', '%Y%m' )
AND V.MODEL_CODE='#MODEL_CODE'
GROUP BY V.EFFECTIVE_Q,A.SCORE_AREA
),
C AS (
SELECT DISTINCT
B.EFFECTIVE_Q,
B.SCORE_AREA,
SUM( CUST_CNT ) OVER ( PARTITION BY B.EFFECTIVE_Q ) AS TOT_CUST_CNT,
SUM( B.GOOD_CNT ) OVER ( PARTITION BY B.EFFECTIVE_Q ) AS TOT_GOOD_CNT,
SUM( B.BAD_CNT ) OVER ( PARTITION BY B.EFFECTIVE_Q ) AS TOT_BAD_CNT
FROM B
),
D AS (
SELECT
T1.EFFECTIVE_Q,
T1.SCORE_AREA,
SUM( T2.GOOD_CNT ) AS GOOD_CNT,
SUM( T2.BAD_CNT ) AS BAD_CNT
FROM(
SELECT
B.EFFECTIVE_Q,
B.SCORE_AREA,
SUM( B.GOOD_CNT ) AS GOOD_CNT,
SUM( B.BAD_CNT ) AS BAD_CNT
FROM B
GROUP BY B.EFFECTIVE_Q, B.SCORE_AREA
) T1 INNER JOIN (
SELECT
B.EFFECTIVE_Q,
B.SCORE_AREA,
SUM( B.GOOD_CNT ) AS GOOD_CNT,
SUM( B.BAD_CNT ) AS BAD_CNT
FROM B
GROUP BY B.EFFECTIVE_Q, B.SCORE_AREA
) T2 ON T1.EFFECTIVE_Q = T2.EFFECTIVE_Q
AND T1.SCORE_AREA >= T2.SCORE_AREA
GROUP BY T1.EFFECTIVE_Q, T1.SCORE_AREA
),
E AS (
SELECT
T1.EFFECTIVE_Q,
T1.SCORE_AREA,
SUM( T2.CUST_CNT ) AS CUST_CNT,
SUM( T2.BAD_CNT ) AS BAD_CNT
FROM(
SELECT
B.EFFECTIVE_Q,
B.SCORE_AREA,
SUM( B.CUST_CNT ) AS CUST_CNT,
SUM( B.BAD_CNT ) AS BAD_CNT
FROM B
GROUP BY B.EFFECTIVE_Q, B.SCORE_AREA
) T1 INNER JOIN (
SELECT
B.EFFECTIVE_Q,
B.SCORE_AREA,
SUM( B.CUST_CNT ) AS CUST_CNT,
SUM( B.BAD_CNT ) AS BAD_CNT
FROM B
GROUP BY B.EFFECTIVE_Q, B.SCORE_AREA
) T2 ON T1.EFFECTIVE_Q = T2.EFFECTIVE_Q
AND T1.SCORE_AREA >= T2.SCORE_AREA
GROUP BY T1.EFFECTIVE_Q, T1.SCORE_AREA
),
KS AS (
SELECT
T.EFFECTIVE_Q,
MAX( T.DIFF ) AS KS
FROM(
SELECT
D.EFFECTIVE_Q,
D.SCORE_AREA,
D.GOOD_CNT / C.TOT_GOOD_CNT AS GOOD_RATIO,
D.BAD_CNT / C.TOT_BAD_CNT AS BAD_RATIO,
ABS( D.GOOD_CNT / C.TOT_GOOD_CNT - D.BAD_CNT / C.TOT_BAD_CNT ) AS DIFF
FROM D
LEFT JOIN C ON C.EFFECTIVE_Q = D.EFFECTIVE_Q
AND C.SCORE_AREA = D.SCORE_AREA
) T
GROUP BY T.EFFECTIVE_Q
),
AR AS (
SELECT
T.EFFECTIVE_Q,
ROUND( SUM( T.DIFF )/( T.NORMAL_RATIO / 2 ), 4 ) AS AR
FROM (
SELECT
E.EFFECTIVE_Q,
E.SCORE_AREA,
E.CUST_CNT / C.TOT_CUST_CNT AS CUST_RATIO,
E.BAD_CNT / C.TOT_BAD_CNT AS BAD_RATIO,
(E.BAD_CNT/C.TOT_BAD_CNT-E.CUST_CNT/C.TOT_CUST_CNT)/2*1/CC.TOT_CUST_CNT AS DIFF,
(CC.TOT_CUST_CNT-CC.TOT_BAD_CNT)/CC.TOT_CUST_CNT AS NORMAL_RATIO
FROM E LEFT JOIN C ON C.EFFECTIVE_Q = E.EFFECTIVE_Q
AND C.SCORE_AREA = E.SCORE_AREA
LEFT JOIN ( SELECT DISTINCT C.EFFECTIVE_Q, C.TOT_CUST_CNT, C.TOT_BAD_CNT FROM C ) CC
ON CC.EFFECTIVE_Q = E.EFFECTIVE_Q
) T GROUP BY T.EFFECTIVE_Q, T.NORMAL_RATIO
)
SELECT
KS.EFFECTIVE_Q,
KS.KS,
AR.AR,
CASE WHEN AR.AR >= 0.4 AND KS.KS >= 0.4 THEN '低度'
WHEN AR.AR >= 0.3 AND AR.AR < 0.4 AND KS.KS < 0.4 THEN '中度'
WHEN AR.AR < 0.3 OR KS.KS < 0.3 THEN '高度'
ELSE '低度' END AS RISK_LEVEL,
CC.TOT_NORMAL_CNT,
CC.TOT_BAD_CNT,
CC.TOT_CUST_CNT
FROM KS INNER JOIN AR ON AR.EFFECTIVE_Q = KS.EFFECTIVE_Q
LEFT JOIN (SELECT DISTINCT C.EFFECTIVE_Q, C.TOT_CUST_CNT, C.TOT_BAD_CNT, C.TOT_CUST_CNT - C.TOT_BAD_CNT AS TOT_NORMAL_CNT FROM C ) CC
ON CC.EFFECTIVE_Q = KS.EFFECTIVE_Q
ORDER BY KS.EFFECTIVE_Q",,,,,,
"8","rptModelMonitorStable","模型稳定性监控报表","MYSQL","WITH A AS (
SELECT 0 AS DOWN, 10 AS UP, 1 AS SCORE_AREA UNION
SELECT 10 AS DOWN, 20 AS UP, 2 AS SCORE_AREA UNION
SELECT 20 AS DOWN, 30 AS UP, 3 AS SCORE_AREA UNION
SELECT 30 AS DOWN, 40 AS UP, 4 AS SCORE_AREA UNION
SELECT 40 AS DOWN, 50 AS UP, 5 AS SCORE_AREA UNION
SELECT 50 AS DOWN, 60 AS UP, 6 AS SCORE_AREA UNION
SELECT 60 AS DOWN, 70 AS UP, 7 AS SCORE_AREA UNION
SELECT 70 AS DOWN, 80 AS UP, 8 AS SCORE_AREA UNION
SELECT 80 AS DOWN, 90 AS UP, 9 AS SCORE_AREA UNION
SELECT 90 AS DOWN, 100 AS UP, 10 AS SCORE_AREA
),
B AS (
SELECT
V.EFFECTIVE_Q,
A.SCORE_AREA,
V.CUST_NO
FROM VIEW_RPT_BASE_INFO V,A
WHERE V.MODEL_SCORE > A.DOWN
AND V.MODEL_SCORE <= A.UP
AND V.EFFECTIVE_MONTH BETWEEN DATE_FORMAT( DATE_ADD( '#EFFECTIVE_MONTH', INTERVAL - 1 YEAR ), '%Y%m' )
AND DATE_FORMAT( '#EFFECTIVE_MONTH', '%Y%m' )
AND V.MODEL_CODE='#MODEL_CODE'
),
B1 AS ( SELECT EFFECTIVE_Q, SCORE_AREA, COUNT( 1 ) AS CUST_CNT FROM B GROUP BY EFFECTIVE_Q, SCORE_AREA ),
B2 AS ( SELECT EFFECTIVE_Q, SUM( CUST_CNT ) AS TOT_CUST_CNT FROM B1 GROUP BY EFFECTIVE_Q ),
B3 AS (
SELECT
B1.EFFECTIVE_Q,
B1.SCORE_AREA,
B1.CUST_CNT / B2.TOT_CUST_CNT AS CURR_RATIO
FROM B1 LEFT JOIN B2 ON B2.EFFECTIVE_Q = B1.EFFECTIVE_Q
ORDER BY B1.EFFECTIVE_Q, B1.SCORE_AREA
),
C AS (
SELECT
V.EFFECTIVE_Q,
A.SCORE_AREA,
V.CUST_NO
FROM VIEW_RPT_BASE_INFO V,A
WHERE V.MODEL_SCORE > A.DOWN AND V.MODEL_SCORE <= A.UP
AND V.EFFECTIVE_MONTH BETWEEN DATE_FORMAT( DATE_ADD( '#EFFECTIVE_MONTH', INTERVAL - 2 YEAR ), '%Y%m' )
AND DATE_FORMAT( DATE_ADD( DATE_ADD( '#EFFECTIVE_MONTH', INTERVAL - 1 YEAR ), INTERVAL - 1 MONTH ), '%Y%m' )
AND V.MODEL_CODE='#MODEL_CODE'
),
C1 AS ( SELECT EFFECTIVE_Q, SCORE_AREA, COUNT( 1 ) AS CUST_CNT FROM C GROUP BY EFFECTIVE_Q, SCORE_AREA ),
C2 AS ( SELECT EFFECTIVE_Q, SUM( CUST_CNT ) AS TOT_CUST_CNT FROM C1 GROUP BY EFFECTIVE_Q ),
C3 AS (
SELECT
C1.EFFECTIVE_Q,
C1.SCORE_AREA,
C1.CUST_CNT / C2.TOT_CUST_CNT AS LAST_RATIO
FROM C1 LEFT JOIN C2 ON C2.EFFECTIVE_Q = C1.EFFECTIVE_Q
)
SELECT
EFFECTIVE_Q,
ROUND(PSI,4) AS PSI,
CASE WHEN PSI <= 0.1 THEN '低度' WHEN PSI > 0.1 AND PSI <= 0.25 THEN '中度'
ELSE '高度' END AS RISK_LEVEL
FROM (
SELECT
EFFECTIVE_Q,
SUM( IFNULL(PSI,0) ) AS PSI
FROM (
SELECT
B3.EFFECTIVE_Q,
B3.SCORE_AREA,
ROUND(( B3.CURR_RATIO - C3.LAST_RATIO )*LN( B3.CURR_RATIO / C3.LAST_RATIO ), 4 ) AS PSI
FROM B3 LEFT JOIN C3 ON RIGHT ( C3.EFFECTIVE_Q, 1 )= RIGHT ( B3.EFFECTIVE_Q, 1 )
AND C3.SCORE_AREA = B3.SCORE_AREA
) T GROUP BY T.EFFECTIVE_Q
) TT ORDER BY TT.EFFECTIVE_Q",,,,,,
"9","rptRatingOverturn","客户评级推翻情况报表","MYSQL","SELECT
T.EFFECTIVE_MONTH,
T.CUST_CNT,
T.OVERTURN_CNT,
CASE WHEN T.OVERTURN_CNT = 0 THEN 0 ELSE T.OVERTURN_CNT/T.CUST_CNT END AS OVERTURN_RATIO,
CASE WHEN UP_OVERTURN_CNT = 0 THEN 0 ELSE UP_OVERTURN_CNT/T.CUST_CNT END AS UP_OVERTURN_RATIO,
CASE WHEN DOWN_OVERTURN_CNT = 0 THEN 0 ELSE DOWN_OVERTURN_CNT/T.CUST_CNT END AS DOWN_OVERTURN_RATIO,
CASE WHEN ONE_LVL_CNT = 0 THEN 0 ELSE ONE_LVL_CNT/T.CUST_CNT END AS ONE_LVL_RATIO,
CASE WHEN TWO_LVL_CNT = 0 THEN 0 ELSE TWO_LVL_CNT/T.CUST_CNT END AS TWO_LVL_RATIO,
CASE WHEN THREE_LVL_CNT = 0 THEN 0 ELSE THREE_LVL_CNT/T.CUST_CNT END AS THREE_LVL_RATIO,
CASE WHEN THREE_MORE_LVL_CNT = 0 THEN 0 ELSE THREE_MORE_LVL_CNT/T.CUST_CNT END AS THREE_MORE_LVL_RATIO
FROM (
SELECT
V.EFFECTIVE_MONTH,
COUNT(V.CUST_NO) AS CUST_CNT,
SUM(CASE WHEN V.ORIGINAL_LEVEL <> V.INIT_LEVEL THEN 1 ELSE 0 END) AS OVERTURN_CNT,
SUM(CASE WHEN V.ORDER_NUM > V.INIT_ORDER_NUM THEN 1 ELSE 0 END) AS UP_OVERTURN_CNT,
SUM(CASE WHEN V.ORDER_NUM < V.INIT_ORDER_NUM THEN 1 ELSE 0 END) AS DOWN_OVERTURN_CNT,
SUM(CASE WHEN ABS(V.ORDER_NUM-V.INIT_ORDER_NUM) = 1 THEN 1 ELSE 0 END) AS ONE_LVL_CNT,
SUM(CASE WHEN ABS(V.ORDER_NUM-V.INIT_ORDER_NUM) = 2 THEN 1 ELSE 0 END) AS TWO_LVL_CNT,
SUM(CASE WHEN ABS(V.ORDER_NUM-V.INIT_ORDER_NUM) = 3 THEN 1 ELSE 0 END) AS THREE_LVL_CNT,
SUM(CASE WHEN ABS(V.ORDER_NUM-V.INIT_ORDER_NUM) > 3 THEN 1 ELSE 0 END) AS THREE_MORE_LVL_CNT
FROM VIEW_RPT_BASE_INFO V
WHERE V.EFFECTIVE_TIME = V.MAX_EFFECTIVE_TIME
AND V.EFFECTIVE_MONTH <= CAST(DATE_FORMAT('#EFFECTIVE_MONTH','%Y%m') AS DECIMAL)
<MODEL_CODE>AND V.MODEL_CODE = '#MODEL_CODE'</MODEL_CODE>
<MANAGER_ORG_CODE>AND V.MANAGER_ORG_CODE = '#MANAGER_ORG_CODE'</MANAGER_ORG_CODE>
GROUP BY V.EFFECTIVE_MONTH
) T ORDER BY T.EFFECTIVE_MONTH",,,,,,
1 NS_R_CFG_RPT_SQL
2 ID_ REPORT_ID REPORT_NAME DATABASE_TYPE SQL_TEXT DATA_COME_FROM_ CREATOR_ CREATE_DATE_ LAST_MODIFIER_ LAST_MODIFYDATE_ CORP_CODE_
3 主键 报表ID 报表名称 数据库类型 报表的sql语句 数据来源 创建人 创建日期 最后修改人 最后修改日期 所属法人代码
4 VARCHAR VARCHAR VARCHAR VARCHAR LONGVARCHAR VARCHAR VARCHAR TIMESTAMP VARCHAR TIMESTAMP VARCHAR
5 java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.lang.String java.sql.Timestamp java.lang.String java.sql.Timestamp java.lang.String
6 1 rptRatingDistribution 客户评级分布报表 MYSQL WITH A AS ( SELECT T.ORIGINAL_LEVEL AS FINAL_LEVEL ,T.ORDER_NUM ,COUNT(1) AS CUST_CNT ,SUM(IFNULL(T.BORR_BAL,0)) AS BORR_BAL ,SUM(CASE WHEN T.EFFECTIVE_MONTH = CAST( DATE_FORMAT('#EFFECTIVE_MONTH', '%Y%m') AS DECIMAL) THEN 1 ELSE 0 END) AS CURR_INCT_CNT ,SUM(CASE WHEN T.FINAL_LEVEL = 'D' THEN 1 ELSE 0 END) AS DEF_CUST_CNT FROM ( SELECT V.CUST_NO, V.ORIGINAL_LEVEL, V.ORDER_NUM, V.FINAL_LEVEL, V.BORR_BAL, V.EFFECTIVE_MONTH FROM VIEW_RPT_BASE_INFO V WHERE V.EFFECTIVE_TIME = V.MAX_EFFECTIVE_TIME AND V.EFFECTIVE_MONTH <= CAST(DATE_FORMAT('#EFFECTIVE_MONTH', '%Y%m') AS DECIMAL) <MODEL_CODE> AND V.MODEL_CODE = '#MODEL_CODE' </MODEL_CODE> <MANAGER_ORG_CODE> AND V.MANAGER_ORG_CODE = '#MANAGER_ORG_CODE' </MANAGER_ORG_CODE> ) T GROUP BY T.ORIGINAL_LEVEL, T.ORDER_NUM ), B AS ( SELECT SUM(CUST_CNT) AS TOTAL_CUST_CNT ,SUM(BORR_BAL) AS TOTAL_BORR_BAL ,SUM(CURR_INCT_CNT) AS TOTAL_CURR_INCT_CNT ,SUM(DEF_CUST_CNT) AS TOTAL_DEF_CUST_CNT FROM A ) SELECT A.FINAL_LEVEL, A.CUST_CNT, CASE WHEN A.CUST_CNT = 0 THEN 0 ELSE A.CUST_CNT / B.TOTAL_CUST_CNT END AS CUST_RATIO, A.BORR_BAL, CASE WHEN A.BORR_BAL = 0 THEN 0 ELSE A.BORR_BAL / B.TOTAL_BORR_BAL END AS BORR_BAL_RATIO, A.CURR_INCT_CNT, CASE WHEN A.CURR_INCT_CNT = 0 THEN 0 ELSE A.CURR_INCT_CNT / B.TOTAL_CURR_INCT_CNT END AS CURR_INCT_RATIO, A.DEF_CUST_CNT, CASE WHEN A.DEF_CUST_CNT = 0 THEN 0 ELSE A.DEF_CUST_CNT / B.TOTAL_DEF_CUST_CNT END AS DEF_CUST_RATIO FROM A LEFT JOIN B ON 1 = 1 ORDER BY A.ORDER_NUM
7 10 rptRatingAdjust 客户评级特例调整情况报表 MYSQL SELECT T.EFFECTIVE_MONTH, T.CUST_CNT, T.ADJ_CNT, CASE WHEN T.ADJ_CNT = 0 THEN 0 ELSE T.ADJ_CNT/T.CUST_CNT END AS ADJ_RATIO, CASE WHEN ONE_LVL_CNT = 0 THEN 0 ELSE ONE_LVL_CNT/T.CUST_CNT END AS ONE_LVL_RATIO, CASE WHEN TWO_LVL_CNT = 0 THEN 0 ELSE TWO_LVL_CNT/T.CUST_CNT END AS TWO_LVL_RATIO, CASE WHEN THREE_LVL_CNT = 0 THEN 0 ELSE THREE_LVL_CNT/T.CUST_CNT END AS THREE_LVL_RATIO, CASE WHEN THREE_MORE_LVL_CNT = 0 THEN 0 ELSE THREE_MORE_LVL_CNT/T.CUST_CNT END AS THREE_MORE_LVL_RATIO FROM ( SELECT V.EFFECTIVE_MONTH, COUNT(V.CUST_NO) AS CUST_CNT, SUM(CASE WHEN V.ADJ_LEVEL <> V.INIT_LEVEL THEN 1 ELSE 0 END) AS ADJ_CNT, SUM(CASE WHEN ABS(V.ADJ_ORDER_NUM-V.INIT_ORDER_NUM) = 1 THEN 1 ELSE 0 END) AS ONE_LVL_CNT, SUM(CASE WHEN ABS(V.ADJ_ORDER_NUM-V.INIT_ORDER_NUM) = 2 THEN 1 ELSE 0 END) AS TWO_LVL_CNT, SUM(CASE WHEN ABS(V.ADJ_ORDER_NUM-V.INIT_ORDER_NUM) = 3 THEN 1 ELSE 0 END) AS THREE_LVL_CNT, SUM(CASE WHEN ABS(V.ADJ_ORDER_NUM-V.INIT_ORDER_NUM) > 3 THEN 1 ELSE 0 END) AS THREE_MORE_LVL_CNT FROM VIEW_RPT_BASE_INFO V WHERE V.EFFECTIVE_TIME = V.MAX_EFFECTIVE_TIME AND V.EFFECTIVE_MONTH <= CAST(DATE_FORMAT('#EFFECTIVE_MONTH','%Y%m') AS DECIMAL) <MODEL_CODE>AND V.MODEL_CODE = '#MODEL_CODE'</MODEL_CODE> <MANAGER_ORG_CODE>AND V.MANAGER_ORG_CODE = '#MANAGER_ORG_CODE'</MANAGER_ORG_CODE> GROUP BY V.EFFECTIVE_MONTH ) T ORDER BY T.EFFECTIVE_MONTH
8 11 rptModelMonitorBinomialCheck 模型审慎性监控报表 MYSQL WITH A AS( SELECT TT.FINAL_LEVEL, TT.ORDER_NUM, TT.PD, TT.MODEL_CODE, TT.EFFECTIVE_Y, TT.CUST_CNT, TT.DEF_CNT, TT.NORMAL_CNT, TT.ACT_DEF_RATIO, CASE WHEN TT.DEF_CNT < TT.DOWN_AREA_99 OR TT.DEF_CNT > TT.UP_AREA_99 THEN '否' ELSE '是' END AS BINOMIAL FROM ( SELECT FINAL_LEVEL, ORDER_NUM, PD, MODEL_CODE, EFFECTIVE_Y, CUST_CNT, DEF_CNT, NORMAL_CNT, ACT_DEF_RATIO, CUST_CNT*PD AS AVG_K, SQRT(CUST_CNT*PD*(1-PD)) AS DEVI_K, CASE WHEN (ROUND(CUST_CNT*PD-2.576*SQRT(CUST_CNT*PD*(1-PD)),0)) < 0 THEN 0 ELSE (ROUND(CUST_CNT*PD-2.576*SQRT(CUST_CNT*PD*(1-PD)),0)) END AS DOWN_AREA_99, ROUND(CUST_CNT*PD+2.576*SQRT(CUST_CNT*PD*(1-PD)),0) AS UP_AREA_99 FROM ( SELECT V.ORIGINAL_LEVEL AS FINAL_LEVEL, V.ORDER_NUM, V.PD, V.MODEL_CODE, V.EFFECTIVE_Y, COUNT(V.CUST_NO) AS CUST_CNT, SUM(CASE WHEN V.FINAL_LEVEL = 'D' THEN 1 ELSE 0 END) AS DEF_CNT, COUNT(V.CUST_NO)-SUM(CASE WHEN V.FINAL_LEVEL = 'D' THEN 1 ELSE 0 END) AS NORMAL_CNT, IFNULL(SUM(CASE WHEN V.FINAL_LEVEL = 'D' THEN 1 ELSE 0 END)/COUNT(V.CUST_NO),0) AS ACT_DEF_RATIO FROM VIEW_RPT_BASE_INFO V WHERE V.EFFECTIVE_TIME = V.MAX_EFFECTIVE_TIME AND V.EFFECTIVE_MONTH <= CAST(DATE_FORMAT('#EFFECTIVE_MONTH','%Y%m') AS DECIMAL) AND V.MODEL_CODE = '#MODEL_CODE' GROUP BY V.ORIGINAL_LEVEL,V.ORDER_NUM,V.PD,V.MODEL_CODE,V.EFFECTIVE_Y ORDER BY V.EFFECTIVE_Y,V.ORDER_NUM ) T ) TT ORDER BY TT.EFFECTIVE_Y,TT.ORDER_NUM ), B AS ( SELECT A.EFFECTIVE_Y, SUM(CASE WHEN A.BINOMIAL='是' THEN 1 ELSE 0 END) AS PASS_LVL_NUM FROM A GROUP BY A.EFFECTIVE_Y ), C AS ( SELECT A.EFFECTIVE_Y, SUM(NORMAL_CNT) NORMAL_CNT, SUM(DEF_CNT) DEF_CNT, SUM(CUST_CNT) CUST_CNT FROM A GROUP BY A.EFFECTIVE_Y ) SELECT B.EFFECTIVE_Y, CASE WHEN B.PASS_LVL_NUM=14 THEN '各级别均通过' WHEN B.PASS_LVL_NUM=13 THEN '1个级别未通过' WHEN B.PASS_LVL_NUM=12 THEN '2个级别未通过' WHEN B.PASS_LVL_NUM=11 THEN '3个级别未通过' WHEN B.PASS_LVL_NUM=10 THEN '4个级别未通过' WHEN B.PASS_LVL_NUM=9 THEN '5个级别未通过' WHEN B.PASS_LVL_NUM=8 THEN '6个级别未通过' ELSE '6个以上级别未通过' END AS BINOMIAL_CHECK, CASE WHEN B.PASS_LVL_NUM>=11 THEN '低度' WHEN B.PASS_LVL_NUM>=8 THEN '中度' ELSE '高度' END AS RISK_LEVEL, C.NORMAL_CNT,C.DEF_CNT,C.CUST_CNT FROM B LEFT JOIN C ON C.EFFECTIVE_Y = B.EFFECTIVE_Y
9 2 rptRatingModelFocusDist 客户评级模型敞口集中度分布报表 MYSQL WITH A AS ( SELECT T.MODEL_CODE, T.MODEL_NAME, SUM( CASE WHEN T.FINAL_LEVEL = 'AAA' THEN 1 ELSE 0 END ) AS AAA_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'AA' THEN 1 ELSE 0 END ) AS AA_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'A+' THEN 1 ELSE 0 END ) AS A_PLUS_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'A' THEN 1 ELSE 0 END ) AS A_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'A-' THEN 1 ELSE 0 END ) AS A_MINUS_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'BBB' THEN 1 ELSE 0 END ) AS BBB_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'BB+' THEN 1 ELSE 0 END ) AS BB_PLUS_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'BB' THEN 1 ELSE 0 END ) AS BB_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'BB-' THEN 1 ELSE 0 END ) AS BB_MINUS_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'B+' THEN 1 ELSE 0 END ) AS B_PLUS_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'B' THEN 1 ELSE 0 END ) AS B_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'CCC' THEN 1 ELSE 0 END ) AS CCC_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'CC' THEN 1 ELSE 0 END ) AS CC_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'C' THEN 1 ELSE 0 END ) AS C_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'D' THEN 1 ELSE 0 END ) AS D_CNT FROM ( SELECT V.FINAL_LEVEL, V.MODEL_CODE, V.MODEL_NAME FROM VIEW_RPT_BASE_INFO V WHERE V.EFFECTIVE_TIME = V.MAX_EFFECTIVE_TIME AND V.EFFECTIVE_MONTH <= CAST(DATE_FORMAT('#EFFECTIVE_MONTH', '%Y%m') AS DECIMAL) <MANAGER_ORG_CODE> AND V.MANAGER_ORG_CODE = '#MANAGER_ORG_CODE' </MANAGER_ORG_CODE> ) T GROUP BY T.MODEL_CODE, T.MODEL_NAME ), B AS ( SELECT COUNT(CUST_NO) AS TOTAL_CUST_CNT FROM VIEW_RPT_BASE_INFO V WHERE V.EFFECTIVE_TIME = V.MAX_EFFECTIVE_TIME AND V.EFFECTIVE_MONTH <= CAST(DATE_FORMAT('#EFFECTIVE_MONTH', '%Y%m') AS DECIMAL) <MANAGER_ORG_CODE> AND V.MANAGER_ORG_CODE = '#MANAGER_ORG_CODE' </MANAGER_ORG_CODE> ) SELECT A.MODEL_NAME, A.AAA_CNT, CASE WHEN A.AAA_CNT=0 THEN 0 ELSE A.AAA_CNT/B.TOTAL_CUST_CNT END AS AAA_RATIO, A.AA_CNT, CASE WHEN A.AA_CNT=0 THEN 0 ELSE A.AA_CNT/B.TOTAL_CUST_CNT END AS AA_RATIO, A.A_PLUS_CNT, CASE WHEN A.A_PLUS_CNT=0 THEN 0 ELSE A.A_PLUS_CNT/B.TOTAL_CUST_CNT END AS A_PLUS_RATIO, A.A_CNT, CASE WHEN A.A_CNT=0 THEN 0 ELSE A.A_CNT/B.TOTAL_CUST_CNT END AS A_RATIO, A.A_MINUS_CNT, CASE WHEN A.A_MINUS_CNT=0 THEN 0 ELSE A.A_MINUS_CNT/B.TOTAL_CUST_CNT END AS A_MINUS_RATIO, A.BBB_CNT, CASE WHEN A.BBB_CNT=0 THEN 0 ELSE A.BBB_CNT/B.TOTAL_CUST_CNT END AS BBB_RATIO, A.BB_PLUS_CNT, CASE WHEN A.BB_PLUS_CNT=0 THEN 0 ELSE A.BB_PLUS_CNT/B.TOTAL_CUST_CNT END AS BB_PLUS_RATIO, A.BB_CNT, CASE WHEN A.BB_CNT=0 THEN 0 ELSE A.BB_CNT/B.TOTAL_CUST_CNT END AS BB_RATIO, A.BB_MINUS_CNT, CASE WHEN A.BB_MINUS_CNT=0 THEN 0 ELSE A.BB_MINUS_CNT/B.TOTAL_CUST_CNT END AS BB_MINUS_RATIO, A.B_PLUS_CNT, CASE WHEN A.B_PLUS_CNT=0 THEN 0 ELSE A.B_PLUS_CNT/B.TOTAL_CUST_CNT END AS B_PLUS_RATIO, A.B_CNT, CASE WHEN A.B_CNT=0 THEN 0 ELSE A.B_CNT/B.TOTAL_CUST_CNT END AS B_RATIO, A.CCC_CNT, CASE WHEN A.CCC_CNT=0 THEN 0 ELSE A.CCC_CNT/B.TOTAL_CUST_CNT END AS CCC_RATIO, A.CC_CNT, CASE WHEN A.CC_CNT=0 THEN 0 ELSE A.CC_CNT/B.TOTAL_CUST_CNT END AS CC_RATIO, A.C_CNT, CASE WHEN A.C_CNT=0 THEN 0 ELSE A.C_CNT/B.TOTAL_CUST_CNT END AS C_RATIO, A.D_CNT, CASE WHEN A.D_CNT=0 THEN 0 ELSE A.D_CNT/B.TOTAL_CUST_CNT END AS D_RATIO FROM A LEFT JOIN B ON 1=1 ORDER BY A.MODEL_CODE
10 3 rptRatingOrgFocusDist 客户评级分支机构集中度分布报表 MYSQL WITH A AS ( SELECT T.MANAGER_ORG_CODE, SUM( CASE WHEN T.FINAL_LEVEL = 'AAA' THEN 1 ELSE 0 END ) AS AAA_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'AA' THEN 1 ELSE 0 END ) AS AA_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'A+' THEN 1 ELSE 0 END ) AS A_PLUS_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'A' THEN 1 ELSE 0 END ) AS A_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'A-' THEN 1 ELSE 0 END ) AS A_MINUS_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'BBB' THEN 1 ELSE 0 END ) AS BBB_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'BB+' THEN 1 ELSE 0 END ) AS BB_PLUS_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'BB' THEN 1 ELSE 0 END ) AS BB_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'BB-' THEN 1 ELSE 0 END ) AS BB_MINUS_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'B+' THEN 1 ELSE 0 END ) AS B_PLUS_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'B' THEN 1 ELSE 0 END ) AS B_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'CCC' THEN 1 ELSE 0 END ) AS CCC_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'CC' THEN 1 ELSE 0 END ) AS CC_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'C' THEN 1 ELSE 0 END ) AS C_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'D' THEN 1 ELSE 0 END ) AS D_CNT FROM ( SELECT V.FINAL_LEVEL, V.MANAGER_ORG_CODE FROM VIEW_RPT_BASE_INFO V WHERE V.EFFECTIVE_TIME = V.MAX_EFFECTIVE_TIME AND V.EFFECTIVE_MONTH <= CAST(DATE_FORMAT('#EFFECTIVE_MONTH', '%Y%m') AS DECIMAL) <MODEL_CODE> AND V.MODEL_CODE = '#MODEL_CODE' </MODEL_CODE> ) T GROUP BY T.MANAGER_ORG_CODE ), B AS ( SELECT COUNT(CUST_NO) AS TOTAL_CUST_CNT FROM VIEW_RPT_BASE_INFO V WHERE V.EFFECTIVE_TIME = V.MAX_EFFECTIVE_TIME AND V.EFFECTIVE_MONTH <= CAST(DATE_FORMAT('#EFFECTIVE_MONTH', '%Y%m') AS DECIMAL) <MODEL_CODE> AND V.MODEL_CODE = '#MODEL_CODE' </MODEL_CODE> ) SELECT O.FD_NAME AS MANAGER_ORG_NAME, A.AAA_CNT, CASE WHEN A.AAA_CNT=0 THEN 0 ELSE A.AAA_CNT/B.TOTAL_CUST_CNT END AS AAA_RATIO, A.AA_CNT, CASE WHEN A.AA_CNT=0 THEN 0 ELSE A.AA_CNT/B.TOTAL_CUST_CNT END AS AA_RATIO, A.A_PLUS_CNT, CASE WHEN A.A_PLUS_CNT=0 THEN 0 ELSE A.A_PLUS_CNT/B.TOTAL_CUST_CNT END AS A_PLUS_RATIO, A.A_CNT, CASE WHEN A.A_CNT=0 THEN 0 ELSE A.A_CNT/B.TOTAL_CUST_CNT END AS A_RATIO, A.A_MINUS_CNT, CASE WHEN A.A_MINUS_CNT=0 THEN 0 ELSE A.A_MINUS_CNT/B.TOTAL_CUST_CNT END AS A_MINUS_RATIO, A.BBB_CNT, CASE WHEN A.BBB_CNT=0 THEN 0 ELSE A.BBB_CNT/B.TOTAL_CUST_CNT END AS BBB_RATIO, A.BB_PLUS_CNT, CASE WHEN A.BB_PLUS_CNT=0 THEN 0 ELSE A.BB_PLUS_CNT/B.TOTAL_CUST_CNT END AS BB_PLUS_RATIO, A.BB_CNT, CASE WHEN A.BB_CNT=0 THEN 0 ELSE A.BB_CNT/B.TOTAL_CUST_CNT END AS BB_RATIO, A.BB_MINUS_CNT, CASE WHEN A.BB_MINUS_CNT=0 THEN 0 ELSE A.BB_MINUS_CNT/B.TOTAL_CUST_CNT END AS BB_MINUS_RATIO, A.B_PLUS_CNT, CASE WHEN A.B_PLUS_CNT=0 THEN 0 ELSE A.B_PLUS_CNT/B.TOTAL_CUST_CNT END AS B_PLUS_RATIO, A.B_CNT, CASE WHEN A.B_CNT=0 THEN 0 ELSE A.B_CNT/B.TOTAL_CUST_CNT END AS B_RATIO, A.CCC_CNT, CASE WHEN A.CCC_CNT=0 THEN 0 ELSE A.CCC_CNT/B.TOTAL_CUST_CNT END AS CCC_RATIO, A.CC_CNT, CASE WHEN A.CC_CNT=0 THEN 0 ELSE A.CC_CNT/B.TOTAL_CUST_CNT END AS CC_RATIO, A.C_CNT, CASE WHEN A.C_CNT=0 THEN 0 ELSE A.C_CNT/B.TOTAL_CUST_CNT END AS C_RATIO, A.D_CNT, CASE WHEN A.D_CNT=0 THEN 0 ELSE A.D_CNT/B.TOTAL_CUST_CNT END AS D_RATIO FROM A LEFT JOIN B ON 1=1 LEFT JOIN FR_AA_ORG O ON O.FD_CODE = A.MANAGER_ORG_CODE ORDER BY A.MANAGER_ORG_CODE
11 4 rptRatingIndustryFocusDist 客户评级行业集中度分布报表 MYSQL WITH A AS ( SELECT T.INDUSTRY_CODE, SUM( CASE WHEN T.FINAL_LEVEL = 'AAA' THEN 1 ELSE 0 END ) AS AAA_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'AA' THEN 1 ELSE 0 END ) AS AA_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'A+' THEN 1 ELSE 0 END ) AS A_PLUS_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'A' THEN 1 ELSE 0 END ) AS A_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'A-' THEN 1 ELSE 0 END ) AS A_MINUS_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'BBB' THEN 1 ELSE 0 END ) AS BBB_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'BB+' THEN 1 ELSE 0 END ) AS BB_PLUS_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'BB' THEN 1 ELSE 0 END ) AS BB_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'BB-' THEN 1 ELSE 0 END ) AS BB_MINUS_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'B+' THEN 1 ELSE 0 END ) AS B_PLUS_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'B' THEN 1 ELSE 0 END ) AS B_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'CCC' THEN 1 ELSE 0 END ) AS CCC_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'CC' THEN 1 ELSE 0 END ) AS CC_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'C' THEN 1 ELSE 0 END ) AS C_CNT, SUM( CASE WHEN T.FINAL_LEVEL = 'D' THEN 1 ELSE 0 END ) AS D_CNT FROM ( SELECT V.FINAL_LEVEL, V.INDUSTRY_CODE FROM VIEW_RPT_BASE_INFO V WHERE V.EFFECTIVE_TIME = V.MAX_EFFECTIVE_TIME AND V.EFFECTIVE_MONTH <= CAST(DATE_FORMAT('#EFFECTIVE_MONTH', '%Y%m') AS DECIMAL) <MODEL_CODE> AND B.MODEL_CODE='#MODEL_CODE' </MODEL_CODE> <MANAGER_ORG_CODE> AND B.MANAGER_ORG_CODE='#MANAGER_ORG_CODE' </MANAGER_ORG_CODE> ) T GROUP BY T.INDUSTRY_CODE ), B AS ( SELECT COUNT(CUST_NO) AS TOTAL_CUST_CNT FROM VIEW_RPT_BASE_INFO V WHERE V.EFFECTIVE_TIME = V.MAX_EFFECTIVE_TIME AND V.EFFECTIVE_MONTH <= CAST(DATE_FORMAT('#EFFECTIVE_MONTH', '%Y%m') AS DECIMAL) <MODEL_CODE> AND B.MODEL_CODE='#MODEL_CODE' </MODEL_CODE> <MANAGER_ORG_CODE> AND B.MANAGER_ORG_CODE='#MANAGER_ORG_CODE' </MANAGER_ORG_CODE> ) SELECT I.INDUSTRY_NAME, A.AAA_CNT, CASE WHEN A.AAA_CNT=0 THEN 0 ELSE A.AAA_CNT/B.TOTAL_CUST_CNT END AS AAA_RATIO, A.AA_CNT, CASE WHEN A.AA_CNT=0 THEN 0 ELSE A.AA_CNT/B.TOTAL_CUST_CNT END AS AA_RATIO, A.A_PLUS_CNT, CASE WHEN A.A_PLUS_CNT=0 THEN 0 ELSE A.A_PLUS_CNT/B.TOTAL_CUST_CNT END AS A_PLUS_RATIO, A.A_CNT, CASE WHEN A.A_CNT=0 THEN 0 ELSE A.A_CNT/B.TOTAL_CUST_CNT END AS A_RATIO, A.A_MINUS_CNT, CASE WHEN A.A_MINUS_CNT=0 THEN 0 ELSE A.A_MINUS_CNT/B.TOTAL_CUST_CNT END AS A_MINUS_RATIO, A.BBB_CNT, CASE WHEN A.BBB_CNT=0 THEN 0 ELSE A.BBB_CNT/B.TOTAL_CUST_CNT END AS BBB_RATIO, A.BB_PLUS_CNT, CASE WHEN A.BB_PLUS_CNT=0 THEN 0 ELSE A.BB_PLUS_CNT/B.TOTAL_CUST_CNT END AS BB_PLUS_RATIO, A.BB_CNT, CASE WHEN A.BB_CNT=0 THEN 0 ELSE A.BB_CNT/B.TOTAL_CUST_CNT END AS BB_RATIO, A.BB_MINUS_CNT, CASE WHEN A.BB_MINUS_CNT=0 THEN 0 ELSE A.BB_MINUS_CNT/B.TOTAL_CUST_CNT END AS BB_MINUS_RATIO, A.B_PLUS_CNT, CASE WHEN A.B_PLUS_CNT=0 THEN 0 ELSE A.B_PLUS_CNT/B.TOTAL_CUST_CNT END AS B_PLUS_RATIO, A.B_CNT, CASE WHEN A.B_CNT=0 THEN 0 ELSE A.B_CNT/B.TOTAL_CUST_CNT END AS B_RATIO, A.CCC_CNT, CASE WHEN A.CCC_CNT=0 THEN 0 ELSE A.CCC_CNT/B.TOTAL_CUST_CNT END AS CCC_RATIO, A.CC_CNT, CASE WHEN A.CC_CNT=0 THEN 0 ELSE A.CC_CNT/B.TOTAL_CUST_CNT END AS CC_RATIO, A.C_CNT, CASE WHEN A.C_CNT=0 THEN 0 ELSE A.C_CNT/B.TOTAL_CUST_CNT END AS C_RATIO, A.D_CNT, CASE WHEN A.D_CNT=0 THEN 0 ELSE A.D_CNT/B.TOTAL_CUST_CNT END AS D_RATIO FROM A LEFT JOIN B ON 1=1 LEFT JOIN ( SELECT 'A' AS INDUSTRY_CODE, '农林牧渔' AS INDUSTRY_NAME, 1 AS ORDER_NUM UNION SELECT 'B' AS INDUSTRY_CODE, '采矿业' AS INDUSTRY_NAME, 2 AS ORDER_NUM UNION SELECT 'C' AS INDUSTRY_CODE, '制造业' AS INDUSTRY_NAME, 3 AS ORDER_NUM UNION SELECT 'D' AS INDUSTRY_CODE, '电力、燃气及水的生产和供应业' AS INDUSTRY_NAME, 4 AS ORDER_NUM UNION SELECT 'E' AS INDUSTRY_CODE, '建筑业' AS INDUSTRY_NAME, 5 AS ORDER_NUM UNION SELECT 'F' AS INDUSTRY_CODE, '交通运输、仓储及邮政业' AS INDUSTRY_NAME, 6 AS ORDER_NUM UNION SELECT 'G' AS INDUSTRY_CODE, '信息传输、计算机服务和软件业' AS INDUSTRY_NAME, 7 AS ORDER_NUM UNION SELECT 'H' AS INDUSTRY_CODE, '批发和零售业' AS INDUSTRY_NAME, 8 AS ORDER_NUM UNION SELECT 'I' AS INDUSTRY_CODE, '住宿和餐饮业' AS INDUSTRY_NAME, 9 AS ORDER_NUM UNION SELECT 'J' AS INDUSTRY_CODE, '金融业' AS INDUSTRY_NAME, 10 AS ORDER_NUM UNION SELECT 'K' AS INDUSTRY_CODE, '房地产业' AS INDUSTRY_NAME, 11 AS ORDER_NUM UNION SELECT 'L' AS INDUSTRY_CODE, '租赁和商务服务业' AS INDUSTRY_NAME, 12 AS ORDER_NUM UNION SELECT 'M' AS INDUSTRY_CODE, '科学研究、技术服务和地质勘查业' AS INDUSTRY_NAME, 13 AS ORDER_NUM UNION SELECT 'N' AS INDUSTRY_CODE, '水利、环境和公共设施管理业' AS INDUSTRY_NAME, 14 AS ORDER_NUM UNION SELECT 'O' AS INDUSTRY_CODE, '居民服务和其他服务业' AS INDUSTRY_NAME, 15 AS ORDER_NUM UNION SELECT 'P' AS INDUSTRY_CODE, '教育' AS INDUSTRY_NAME, 16 AS ORDER_NUM UNION SELECT 'Q' AS INDUSTRY_CODE, '卫生、社会保障和社会服务业' AS INDUSTRY_NAME, 17 AS ORDER_NUM UNION SELECT 'R' AS INDUSTRY_CODE, '文化、体育和娱乐业' AS INDUSTRY_NAME, 18 AS ORDER_NUM UNION SELECT 'S' AS INDUSTRY_CODE, '公共管理和社会组织' AS INDUSTRY_NAME, 19 AS ORDER_NUM UNION SELECT 'T' AS INDUSTRY_CODE, '国际组织' AS INDUSTRY_NAME, 20 AS ORDER_NUM UNION SELECT 'X' AS INDUSTRY_CODE, '未知行业' AS INDUSTRY_NAME, 21 AS ORDER_NUM ) I ON I.INDUSTRY_CODE = A.INDUSTRY_CODE ORDER BY I.ORDER_NUM
12 5 rptRatingNumberMigrate 客户评级迁移报表(客户数) MYSQL WITH CURR AS ( SELECT R.CUST_NO, R.FINAL_LEVEL, R.ORDER_NUM, R.EFFECTIVE_MONTH, R.RATING_STATUS FROM VIEW_RPT_BASE_INFO R WHERE R.EFFECTIVE_TIME = R.MAX_EFFECTIVE_TIME AND R.EFFECTIVE_MONTH BETWEEN CAST(DATE_FORMAT( DATE_ADD( '#EFFECTIVE_MONTH', INTERVAL - 1 YEAR ), '%Y%m' ) AS DECIMAL ) AND CAST(DATE_FORMAT( '#EFFECTIVE_MONTH', '%Y%m' ) AS DECIMAL) <MODEL_CODE>AND R.MODEL_CODE='#MODEL_CODE'</MODEL_CODE> <MANAGER_ORG_CODE>AND R.MANAGER_ORG_CODE='#MANAGER_ORG_CODE'</MANAGER_ORG_CODE> ), LAST AS ( SELECT R.CUST_NO, R.FINAL_LEVEL, R.ORDER_NUM, R.EFFECTIVE_MONTH, R.RATING_STATUS FROM VIEW_RPT_BASE_INFO R WHERE R.EFFECTIVE_MONTH BETWEEN CAST(DATE_FORMAT( DATE_ADD( '#EFFECTIVE_MONTH', INTERVAL - 2 YEAR ), '%Y%m' ) AS DECIMAL) AND CAST(DATE_FORMAT( DATE_ADD( DATE_ADD( '#EFFECTIVE_MONTH', INTERVAL - 1 YEAR ), INTERVAL - 1 MONTH ), '%Y%m' ) AS DECIMAL) <MODEL_CODE>AND R.MODEL_CODE='#MODEL_CODE'</MODEL_CODE> <MANAGER_ORG_CODE>AND R.MANAGER_ORG_CODE='#MANAGER_ORG_CODE'</MANAGER_ORG_CODE> ), NEW AS ( SELECT '新增客户' AS FINAL_LEVEL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'AAA' THEN 1 ELSE 0 END ) AS AAA_CNT, SUM( CASE WHEN CURR.FINAL_LEVEL = 'AA' THEN 1 ELSE 0 END ) AS AA_CNT, SUM( CASE WHEN CURR.FINAL_LEVEL = 'A+' THEN 1 ELSE 0 END ) AS A_PLUS_CNT, SUM( CASE WHEN CURR.FINAL_LEVEL = 'A' THEN 1 ELSE 0 END ) AS A_CNT, SUM( CASE WHEN CURR.FINAL_LEVEL = 'A-' THEN 1 ELSE 0 END ) AS A_MINUS_CNT, SUM( CASE WHEN CURR.FINAL_LEVEL = 'BBB' THEN 1 ELSE 0 END ) AS BBB_CNT, SUM( CASE WHEN CURR.FINAL_LEVEL = 'BB+' THEN 1 ELSE 0 END ) AS BB_PLUS_CNT, SUM( CASE WHEN CURR.FINAL_LEVEL = 'BB' THEN 1 ELSE 0 END ) AS BB_CNT, SUM( CASE WHEN CURR.FINAL_LEVEL = 'BB-' THEN 1 ELSE 0 END ) AS BB_MINUS_CNT, SUM( CASE WHEN CURR.FINAL_LEVEL = 'B+' THEN 1 ELSE 0 END ) AS B_PLUS_CNT, SUM( CASE WHEN CURR.FINAL_LEVEL = 'B' THEN 1 ELSE 0 END ) AS B_CNT, SUM( CASE WHEN CURR.FINAL_LEVEL = 'CCC' THEN 1 ELSE 0 END ) AS CCC_CNT, SUM( CASE WHEN CURR.FINAL_LEVEL = 'CC' THEN 1 ELSE 0 END ) AS CC_CNT, SUM( CASE WHEN CURR.FINAL_LEVEL = 'C' THEN 1 ELSE 0 END ) AS C_CNT, SUM( CASE WHEN CURR.FINAL_LEVEL = 'D' THEN 1 ELSE 0 END ) AS D_CNT, 0 AS NOT_RATING_CNT,0 AS UP_CNT,0 AS DOWN_CNT,0 AS UP_RATIO, 0 AS DOWN_RATIO,0 AS CHG_EXPONENT FROM CURR WHERE NOT EXISTS ( SELECT 1 FROM LAST WHERE LAST.CUST_NO = CURR.CUST_NO ) ), NR AS ( SELECT LAST.FINAL_LEVEL, COUNT( 1 ) AS NOT_RATING_CNT FROM LAST WHERE NOT EXISTS ( SELECT 1 FROM CURR WHERE CURR.CUST_NO = LAST.CUST_NO ) GROUP BY LAST.FINAL_LEVEL ), CHG AS ( SELECT SUM( CASE WHEN CURR.FINAL_LEVEL <> LAST.FINAL_LEVEL THEN 1 ELSE 0 END ) AS CHG_CNT FROM CURR LEFT JOIN LAST ON LAST.CUST_NO = CURR.CUST_NO ) SELECT * FROM ( SELECT S.SCALE_LEVEL AS FINAL_LEVEL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'AAA' THEN 1 ELSE 0 END ) AS AAA_CNT, SUM( CASE WHEN CURR.FINAL_LEVEL = 'AA' THEN 1 ELSE 0 END ) AS AA_CNT, SUM( CASE WHEN CURR.FINAL_LEVEL = 'A+' THEN 1 ELSE 0 END ) AS A_PLUS_CNT, SUM( CASE WHEN CURR.FINAL_LEVEL = 'A' THEN 1 ELSE 0 END ) AS A_CNT, SUM( CASE WHEN CURR.FINAL_LEVEL = 'A-' THEN 1 ELSE 0 END ) AS A_MINUS_CNT, SUM( CASE WHEN CURR.FINAL_LEVEL = 'BBB' THEN 1 ELSE 0 END ) AS BBB_CNT, SUM( CASE WHEN CURR.FINAL_LEVEL = 'BB+' THEN 1 ELSE 0 END ) AS BB_PLUS_CNT, SUM( CASE WHEN CURR.FINAL_LEVEL = 'BB' THEN 1 ELSE 0 END ) AS BB_CNT, SUM( CASE WHEN CURR.FINAL_LEVEL = 'BB-' THEN 1 ELSE 0 END ) AS BB_MINUS_CNT, SUM( CASE WHEN CURR.FINAL_LEVEL = 'B+' THEN 1 ELSE 0 END ) AS B_PLUS_CNT, SUM( CASE WHEN CURR.FINAL_LEVEL = 'B' THEN 1 ELSE 0 END ) AS B_CNT, SUM( CASE WHEN CURR.FINAL_LEVEL = 'CCC' THEN 1 ELSE 0 END ) AS CCC_CNT, SUM( CASE WHEN CURR.FINAL_LEVEL = 'CC' THEN 1 ELSE 0 END ) AS CC_CNT, SUM( CASE WHEN CURR.FINAL_LEVEL = 'C' THEN 1 ELSE 0 END ) AS C_CNT, SUM( CASE WHEN CURR.FINAL_LEVEL = 'D' THEN 1 ELSE 0 END ) AS D_CNT, IFNULL( NR.NOT_RATING_CNT, 0 ) AS NOT_RATING_CNT, SUM( CASE WHEN CURR.ORDER_NUM < LAST.ORDER_NUM THEN 1 ELSE 0 END ) AS UP_CNT, SUM( CASE WHEN CURR.ORDER_NUM > LAST.ORDER_NUM THEN 1 ELSE 0 END ) AS DOWN_CNT, CASE WHEN CHG.CHG_CNT = 0 THEN 0 ELSE SUM( CASE WHEN CURR.ORDER_NUM < LAST.ORDER_NUM THEN 1 ELSE 0 END )/ CHG.CHG_CNT END AS UP_RATIO, CASE WHEN CHG.CHG_CNT = 0 THEN 0 ELSE SUM( CASE WHEN CURR.ORDER_NUM > LAST.ORDER_NUM THEN 1 ELSE 0 END )/ CHG.CHG_CNT END AS DOWN_RATIO,( CASE WHEN CHG.CHG_CNT = 0 THEN 0 ELSE SUM( CASE WHEN CURR.ORDER_NUM < LAST.ORDER_NUM THEN 1 ELSE 0 END )/ CHG.CHG_CNT END )-( CASE WHEN CHG.CHG_CNT = 0 THEN 0 ELSE SUM( CASE WHEN CURR.ORDER_NUM > LAST.ORDER_NUM THEN 1 ELSE 0 END )/ CHG.CHG_CNT END ) AS CHG_EXPONENT FROM NS_CFG_MAIN_SCALE S LEFT JOIN LAST ON LAST.FINAL_LEVEL = S.SCALE_LEVEL LEFT JOIN CURR ON CURR.CUST_NO = LAST.CUST_NO LEFT JOIN NR ON NR.FINAL_LEVEL = S.SCALE_LEVEL LEFT JOIN CHG ON 1 = 1 GROUP BY S.SCALE_LEVEL, S.ORDER_NUM, NR.NOT_RATING_CNT, CHG.CHG_CNT ORDER BY S.ORDER_NUM ) A UNION SELECT * FROM NEW
13 6 rptRatingLoanBalanceMigrate 客户评级迁移报表(信贷余额) MYSQL WITH CURR AS ( SELECT R.CUST_NO, R.FINAL_LEVEL, R.ORDER_NUM, R.EFFECTIVE_MONTH, R.RATING_STATUS, R.BORR_BAL FROM VIEW_RPT_BASE_INFO R WHERE R.EFFECTIVE_TIME = R.MAX_EFFECTIVE_TIME AND R.EFFECTIVE_MONTH BETWEEN CAST(DATE_FORMAT( DATE_ADD( '#EFFECTIVE_MONTH', INTERVAL - 1 YEAR ), '%Y%m' ) AS DECIMAL ) AND CAST(DATE_FORMAT( '#EFFECTIVE_MONTH', '%Y%m' ) AS DECIMAL) <MODEL_CODE>AND R.MODEL_CODE='#MODEL_CODE'</MODEL_CODE> <MANAGER_ORG_CODE>AND R.MANAGER_ORG_CODE='#MANAGER_ORG_CODE'</MANAGER_ORG_CODE> ), LAST AS ( SELECT R.CUST_NO, R.FINAL_LEVEL, R.ORDER_NUM, R.EFFECTIVE_MONTH, R.RATING_STATUS, R.BORR_BAL FROM VIEW_RPT_BASE_INFO R WHERE R.EFFECTIVE_MONTH BETWEEN CAST(DATE_FORMAT( DATE_ADD( '#EFFECTIVE_MONTH', INTERVAL - 2 YEAR ), '%Y%m' ) AS DECIMAL) AND CAST(DATE_FORMAT( DATE_ADD( DATE_ADD( '#EFFECTIVE_MONTH', INTERVAL - 1 YEAR ), INTERVAL - 1 MONTH ), '%Y%m' ) AS DECIMAL) <MODEL_CODE>AND R.MODEL_CODE='#MODEL_CODE'</MODEL_CODE> <MANAGER_ORG_CODE>AND R.MANAGER_ORG_CODE='#MANAGER_ORG_CODE'</MANAGER_ORG_CODE> ), NEW AS ( SELECT '新增客户' AS FINAL_LEVEL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'AAA' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS AAA_BAL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'AA' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS AA_BAL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'A+' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS A_PLUS_BAL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'A' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS A_BAL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'A-' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS A_MINUS_BAL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'BBB' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS BBB_BAL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'BB+' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS BB_PLUS_BAL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'BB' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS BB_BAL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'BB-' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS BB_MINUS_BAL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'B+' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS B_PLUS_BAL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'B' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS B_BAL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'CCC' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS CCC_BAL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'CC' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS CC_BAL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'C' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS C_BAL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'D' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS D_BAL, 0 AS NOT_RATING_BAL,0 AS UP_BAL,0 AS DOWN_BAL,0 AS UP_RATIO,0 AS DOWN_RATIO,0 AS CHG_EXPONENT FROM CURR WHERE NOT EXISTS ( SELECT 1 FROM LAST WHERE LAST.CUST_NO = CURR.CUST_NO ) ), NR AS ( SELECT LAST.FINAL_LEVEL,SUM(IFNULL( LAST.BORR_BAL, 0 )) AS NOT_RATING_BAL FROM LAST WHERE NOT EXISTS ( SELECT 1 FROM CURR WHERE CURR.CUST_NO = LAST.CUST_NO ) GROUP BY LAST.FINAL_LEVEL ), CHG AS ( SELECT SUM( CASE WHEN CURR.FINAL_LEVEL <> LAST.FINAL_LEVEL THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS CHG_BAL FROM CURR LEFT JOIN LAST ON LAST.CUST_NO = CURR.CUST_NO ) SELECT * FROM ( SELECT S.SCALE_LEVEL AS FINAL_LEVEL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'AAA' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS AAA_BAL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'AA' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS AA_BAL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'A+' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS A_PLUS_BAL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'A' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS A_BAL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'A-' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS A_MINUS_BAL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'BBB' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS BBB_BAL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'BB+' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS BB_PLUS_BAL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'BB' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS BB_BAL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'BB-' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS BB_MINUS_BAL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'B+' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS B_PLUS_BAL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'B' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS B_BAL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'CCC' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS CCC_BAL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'CC' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS CC_BAL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'C' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS C_BAL, SUM( CASE WHEN CURR.FINAL_LEVEL = 'D' THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS D_BAL, NR.NOT_RATING_BAL, SUM( CASE WHEN CURR.ORDER_NUM < LAST.ORDER_NUM THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS UP_BAL, SUM( CASE WHEN CURR.ORDER_NUM > LAST.ORDER_NUM THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END ) AS DOWN_BAL, CASE WHEN CHG.CHG_BAL = 0 THEN 0 ELSE SUM( CASE WHEN CURR.ORDER_NUM < LAST.ORDER_NUM THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END )/ CHG.CHG_BAL END AS UP_RATIO, CASE WHEN CHG.CHG_BAL = 0 THEN 0 ELSE SUM( CASE WHEN CURR.ORDER_NUM > LAST.ORDER_NUM THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END )/ CHG.CHG_BAL END AS DOWN_RATIO,( CASE WHEN CHG.CHG_BAL = 0 THEN 0 ELSE SUM( CASE WHEN CURR.ORDER_NUM < LAST.ORDER_NUM THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END )/ CHG.CHG_BAL END)-(CASE WHEN CHG.CHG_BAL = 0 THEN 0 ELSE SUM( CASE WHEN CURR.ORDER_NUM > LAST.ORDER_NUM THEN IFNULL( CURR.BORR_BAL, 0 ) ELSE 0 END )/ CHG.CHG_BAL END ) AS CHG_EXPONENT FROM NS_CFG_MAIN_SCALE S LEFT JOIN LAST ON LAST.FINAL_LEVEL = S.SCALE_LEVEL LEFT JOIN CURR ON CURR.CUST_NO = LAST.CUST_NO LEFT JOIN NR ON NR.FINAL_LEVEL = S.SCALE_LEVEL LEFT JOIN CHG ON 1 = 1 GROUP BY S.SCALE_LEVEL,S.ORDER_NUM,NOT_RATING_BAL,CHG.CHG_BAL ORDER BY S.ORDER_NUM ) A UNION SELECT * FROM NEW
14 7 rptModelMonitorDiff 模型区分能力监控报表 MYSQL WITH A AS ( SELECT 0 AS DOWN, 10 AS UP, 1 AS SCORE_AREA UNION SELECT 10 AS DOWN, 20 AS UP, 2 AS SCORE_AREA UNION SELECT 20 AS DOWN, 30 AS UP, 3 AS SCORE_AREA UNION SELECT 30 AS DOWN, 40 AS UP, 4 AS SCORE_AREA UNION SELECT 40 AS DOWN, 50 AS UP, 5 AS SCORE_AREA UNION SELECT 50 AS DOWN, 60 AS UP, 6 AS SCORE_AREA UNION SELECT 60 AS DOWN, 70 AS UP, 7 AS SCORE_AREA UNION SELECT 70 AS DOWN, 80 AS UP, 8 AS SCORE_AREA UNION SELECT 80 AS DOWN, 90 AS UP, 9 AS SCORE_AREA UNION SELECT 90 AS DOWN, 100 AS UP, 10 AS SCORE_AREA ), B AS ( SELECT V.EFFECTIVE_Q, A.SCORE_AREA, COUNT( V.FINAL_LEVEL ) AS CUST_CNT, SUM( CASE WHEN V.FINAL_LEVEL <> 'D' THEN 1 ELSE 0 END ) AS GOOD_CNT, SUM( CASE WHEN V.FINAL_LEVEL = 'D' THEN 1 ELSE 0 END ) AS BAD_CNT FROM VIEW_RPT_BASE_INFO V, A WHERE V.MODEL_SCORE > A.DOWN AND V.MODEL_SCORE <= A.UP AND V.EFFECTIVE_MONTH BETWEEN DATE_FORMAT( DATE_ADD( '#EFFECTIVE_MONTH', INTERVAL -#YEAR_PERIOD YEAR ), '%Y%m' ) AND DATE_FORMAT( '#EFFECTIVE_MONTH', '%Y%m' ) AND V.MODEL_CODE='#MODEL_CODE' GROUP BY V.EFFECTIVE_Q,A.SCORE_AREA ), C AS ( SELECT DISTINCT B.EFFECTIVE_Q, B.SCORE_AREA, SUM( CUST_CNT ) OVER ( PARTITION BY B.EFFECTIVE_Q ) AS TOT_CUST_CNT, SUM( B.GOOD_CNT ) OVER ( PARTITION BY B.EFFECTIVE_Q ) AS TOT_GOOD_CNT, SUM( B.BAD_CNT ) OVER ( PARTITION BY B.EFFECTIVE_Q ) AS TOT_BAD_CNT FROM B ), D AS ( SELECT T1.EFFECTIVE_Q, T1.SCORE_AREA, SUM( T2.GOOD_CNT ) AS GOOD_CNT, SUM( T2.BAD_CNT ) AS BAD_CNT FROM( SELECT B.EFFECTIVE_Q, B.SCORE_AREA, SUM( B.GOOD_CNT ) AS GOOD_CNT, SUM( B.BAD_CNT ) AS BAD_CNT FROM B GROUP BY B.EFFECTIVE_Q, B.SCORE_AREA ) T1 INNER JOIN ( SELECT B.EFFECTIVE_Q, B.SCORE_AREA, SUM( B.GOOD_CNT ) AS GOOD_CNT, SUM( B.BAD_CNT ) AS BAD_CNT FROM B GROUP BY B.EFFECTIVE_Q, B.SCORE_AREA ) T2 ON T1.EFFECTIVE_Q = T2.EFFECTIVE_Q AND T1.SCORE_AREA >= T2.SCORE_AREA GROUP BY T1.EFFECTIVE_Q, T1.SCORE_AREA ), E AS ( SELECT T1.EFFECTIVE_Q, T1.SCORE_AREA, SUM( T2.CUST_CNT ) AS CUST_CNT, SUM( T2.BAD_CNT ) AS BAD_CNT FROM( SELECT B.EFFECTIVE_Q, B.SCORE_AREA, SUM( B.CUST_CNT ) AS CUST_CNT, SUM( B.BAD_CNT ) AS BAD_CNT FROM B GROUP BY B.EFFECTIVE_Q, B.SCORE_AREA ) T1 INNER JOIN ( SELECT B.EFFECTIVE_Q, B.SCORE_AREA, SUM( B.CUST_CNT ) AS CUST_CNT, SUM( B.BAD_CNT ) AS BAD_CNT FROM B GROUP BY B.EFFECTIVE_Q, B.SCORE_AREA ) T2 ON T1.EFFECTIVE_Q = T2.EFFECTIVE_Q AND T1.SCORE_AREA >= T2.SCORE_AREA GROUP BY T1.EFFECTIVE_Q, T1.SCORE_AREA ), KS AS ( SELECT T.EFFECTIVE_Q, MAX( T.DIFF ) AS KS FROM( SELECT D.EFFECTIVE_Q, D.SCORE_AREA, D.GOOD_CNT / C.TOT_GOOD_CNT AS GOOD_RATIO, D.BAD_CNT / C.TOT_BAD_CNT AS BAD_RATIO, ABS( D.GOOD_CNT / C.TOT_GOOD_CNT - D.BAD_CNT / C.TOT_BAD_CNT ) AS DIFF FROM D LEFT JOIN C ON C.EFFECTIVE_Q = D.EFFECTIVE_Q AND C.SCORE_AREA = D.SCORE_AREA ) T GROUP BY T.EFFECTIVE_Q ), AR AS ( SELECT T.EFFECTIVE_Q, ROUND( SUM( T.DIFF )/( T.NORMAL_RATIO / 2 ), 4 ) AS AR FROM ( SELECT E.EFFECTIVE_Q, E.SCORE_AREA, E.CUST_CNT / C.TOT_CUST_CNT AS CUST_RATIO, E.BAD_CNT / C.TOT_BAD_CNT AS BAD_RATIO, (E.BAD_CNT/C.TOT_BAD_CNT-E.CUST_CNT/C.TOT_CUST_CNT)/2*1/CC.TOT_CUST_CNT AS DIFF, (CC.TOT_CUST_CNT-CC.TOT_BAD_CNT)/CC.TOT_CUST_CNT AS NORMAL_RATIO FROM E LEFT JOIN C ON C.EFFECTIVE_Q = E.EFFECTIVE_Q AND C.SCORE_AREA = E.SCORE_AREA LEFT JOIN ( SELECT DISTINCT C.EFFECTIVE_Q, C.TOT_CUST_CNT, C.TOT_BAD_CNT FROM C ) CC ON CC.EFFECTIVE_Q = E.EFFECTIVE_Q ) T GROUP BY T.EFFECTIVE_Q, T.NORMAL_RATIO ) SELECT KS.EFFECTIVE_Q, KS.KS, AR.AR, CASE WHEN AR.AR >= 0.4 AND KS.KS >= 0.4 THEN '低度' WHEN AR.AR >= 0.3 AND AR.AR < 0.4 AND KS.KS < 0.4 THEN '中度' WHEN AR.AR < 0.3 OR KS.KS < 0.3 THEN '高度' ELSE '低度' END AS RISK_LEVEL, CC.TOT_NORMAL_CNT, CC.TOT_BAD_CNT, CC.TOT_CUST_CNT FROM KS INNER JOIN AR ON AR.EFFECTIVE_Q = KS.EFFECTIVE_Q LEFT JOIN (SELECT DISTINCT C.EFFECTIVE_Q, C.TOT_CUST_CNT, C.TOT_BAD_CNT, C.TOT_CUST_CNT - C.TOT_BAD_CNT AS TOT_NORMAL_CNT FROM C ) CC ON CC.EFFECTIVE_Q = KS.EFFECTIVE_Q ORDER BY KS.EFFECTIVE_Q
15 8 rptModelMonitorStable 模型稳定性监控报表 MYSQL WITH A AS ( SELECT 0 AS DOWN, 10 AS UP, 1 AS SCORE_AREA UNION SELECT 10 AS DOWN, 20 AS UP, 2 AS SCORE_AREA UNION SELECT 20 AS DOWN, 30 AS UP, 3 AS SCORE_AREA UNION SELECT 30 AS DOWN, 40 AS UP, 4 AS SCORE_AREA UNION SELECT 40 AS DOWN, 50 AS UP, 5 AS SCORE_AREA UNION SELECT 50 AS DOWN, 60 AS UP, 6 AS SCORE_AREA UNION SELECT 60 AS DOWN, 70 AS UP, 7 AS SCORE_AREA UNION SELECT 70 AS DOWN, 80 AS UP, 8 AS SCORE_AREA UNION SELECT 80 AS DOWN, 90 AS UP, 9 AS SCORE_AREA UNION SELECT 90 AS DOWN, 100 AS UP, 10 AS SCORE_AREA ), B AS ( SELECT V.EFFECTIVE_Q, A.SCORE_AREA, V.CUST_NO FROM VIEW_RPT_BASE_INFO V,A WHERE V.MODEL_SCORE > A.DOWN AND V.MODEL_SCORE <= A.UP AND V.EFFECTIVE_MONTH BETWEEN DATE_FORMAT( DATE_ADD( '#EFFECTIVE_MONTH', INTERVAL - 1 YEAR ), '%Y%m' ) AND DATE_FORMAT( '#EFFECTIVE_MONTH', '%Y%m' ) AND V.MODEL_CODE='#MODEL_CODE' ), B1 AS ( SELECT EFFECTIVE_Q, SCORE_AREA, COUNT( 1 ) AS CUST_CNT FROM B GROUP BY EFFECTIVE_Q, SCORE_AREA ), B2 AS ( SELECT EFFECTIVE_Q, SUM( CUST_CNT ) AS TOT_CUST_CNT FROM B1 GROUP BY EFFECTIVE_Q ), B3 AS ( SELECT B1.EFFECTIVE_Q, B1.SCORE_AREA, B1.CUST_CNT / B2.TOT_CUST_CNT AS CURR_RATIO FROM B1 LEFT JOIN B2 ON B2.EFFECTIVE_Q = B1.EFFECTIVE_Q ORDER BY B1.EFFECTIVE_Q, B1.SCORE_AREA ), C AS ( SELECT V.EFFECTIVE_Q, A.SCORE_AREA, V.CUST_NO FROM VIEW_RPT_BASE_INFO V,A WHERE V.MODEL_SCORE > A.DOWN AND V.MODEL_SCORE <= A.UP AND V.EFFECTIVE_MONTH BETWEEN DATE_FORMAT( DATE_ADD( '#EFFECTIVE_MONTH', INTERVAL - 2 YEAR ), '%Y%m' ) AND DATE_FORMAT( DATE_ADD( DATE_ADD( '#EFFECTIVE_MONTH', INTERVAL - 1 YEAR ), INTERVAL - 1 MONTH ), '%Y%m' ) AND V.MODEL_CODE='#MODEL_CODE' ), C1 AS ( SELECT EFFECTIVE_Q, SCORE_AREA, COUNT( 1 ) AS CUST_CNT FROM C GROUP BY EFFECTIVE_Q, SCORE_AREA ), C2 AS ( SELECT EFFECTIVE_Q, SUM( CUST_CNT ) AS TOT_CUST_CNT FROM C1 GROUP BY EFFECTIVE_Q ), C3 AS ( SELECT C1.EFFECTIVE_Q, C1.SCORE_AREA, C1.CUST_CNT / C2.TOT_CUST_CNT AS LAST_RATIO FROM C1 LEFT JOIN C2 ON C2.EFFECTIVE_Q = C1.EFFECTIVE_Q ) SELECT EFFECTIVE_Q, ROUND(PSI,4) AS PSI, CASE WHEN PSI <= 0.1 THEN '低度' WHEN PSI > 0.1 AND PSI <= 0.25 THEN '中度' ELSE '高度' END AS RISK_LEVEL FROM ( SELECT EFFECTIVE_Q, SUM( IFNULL(PSI,0) ) AS PSI FROM ( SELECT B3.EFFECTIVE_Q, B3.SCORE_AREA, ROUND(( B3.CURR_RATIO - C3.LAST_RATIO )*LN( B3.CURR_RATIO / C3.LAST_RATIO ), 4 ) AS PSI FROM B3 LEFT JOIN C3 ON RIGHT ( C3.EFFECTIVE_Q, 1 )= RIGHT ( B3.EFFECTIVE_Q, 1 ) AND C3.SCORE_AREA = B3.SCORE_AREA ) T GROUP BY T.EFFECTIVE_Q ) TT ORDER BY TT.EFFECTIVE_Q
16 9 rptRatingOverturn 客户评级推翻情况报表 MYSQL SELECT T.EFFECTIVE_MONTH, T.CUST_CNT, T.OVERTURN_CNT, CASE WHEN T.OVERTURN_CNT = 0 THEN 0 ELSE T.OVERTURN_CNT/T.CUST_CNT END AS OVERTURN_RATIO, CASE WHEN UP_OVERTURN_CNT = 0 THEN 0 ELSE UP_OVERTURN_CNT/T.CUST_CNT END AS UP_OVERTURN_RATIO, CASE WHEN DOWN_OVERTURN_CNT = 0 THEN 0 ELSE DOWN_OVERTURN_CNT/T.CUST_CNT END AS DOWN_OVERTURN_RATIO, CASE WHEN ONE_LVL_CNT = 0 THEN 0 ELSE ONE_LVL_CNT/T.CUST_CNT END AS ONE_LVL_RATIO, CASE WHEN TWO_LVL_CNT = 0 THEN 0 ELSE TWO_LVL_CNT/T.CUST_CNT END AS TWO_LVL_RATIO, CASE WHEN THREE_LVL_CNT = 0 THEN 0 ELSE THREE_LVL_CNT/T.CUST_CNT END AS THREE_LVL_RATIO, CASE WHEN THREE_MORE_LVL_CNT = 0 THEN 0 ELSE THREE_MORE_LVL_CNT/T.CUST_CNT END AS THREE_MORE_LVL_RATIO FROM ( SELECT V.EFFECTIVE_MONTH, COUNT(V.CUST_NO) AS CUST_CNT, SUM(CASE WHEN V.ORIGINAL_LEVEL <> V.INIT_LEVEL THEN 1 ELSE 0 END) AS OVERTURN_CNT, SUM(CASE WHEN V.ORDER_NUM > V.INIT_ORDER_NUM THEN 1 ELSE 0 END) AS UP_OVERTURN_CNT, SUM(CASE WHEN V.ORDER_NUM < V.INIT_ORDER_NUM THEN 1 ELSE 0 END) AS DOWN_OVERTURN_CNT, SUM(CASE WHEN ABS(V.ORDER_NUM-V.INIT_ORDER_NUM) = 1 THEN 1 ELSE 0 END) AS ONE_LVL_CNT, SUM(CASE WHEN ABS(V.ORDER_NUM-V.INIT_ORDER_NUM) = 2 THEN 1 ELSE 0 END) AS TWO_LVL_CNT, SUM(CASE WHEN ABS(V.ORDER_NUM-V.INIT_ORDER_NUM) = 3 THEN 1 ELSE 0 END) AS THREE_LVL_CNT, SUM(CASE WHEN ABS(V.ORDER_NUM-V.INIT_ORDER_NUM) > 3 THEN 1 ELSE 0 END) AS THREE_MORE_LVL_CNT FROM VIEW_RPT_BASE_INFO V WHERE V.EFFECTIVE_TIME = V.MAX_EFFECTIVE_TIME AND V.EFFECTIVE_MONTH <= CAST(DATE_FORMAT('#EFFECTIVE_MONTH','%Y%m') AS DECIMAL) <MODEL_CODE>AND V.MODEL_CODE = '#MODEL_CODE'</MODEL_CODE> <MANAGER_ORG_CODE>AND V.MANAGER_ORG_CODE = '#MANAGER_ORG_CODE'</MANAGER_ORG_CODE> GROUP BY V.EFFECTIVE_MONTH ) T ORDER BY T.EFFECTIVE_MONTH

41
app.irbs/src/main/resources/liquibase/data/rpt_init_data.csv

@ -0,0 +1,41 @@
"RPT_INIT_DATA",,,
"DATA_TP_CD","DATA_TP_NM","ITEM_NAME","ITEM_VALUE"
"数据类型","数据类型名称","数据项名称","数据项值"
"VARCHAR","VARCHAR","VARCHAR","VARCHAR"
"java.lang.String","java.lang.String","java.lang.String","java.lang.String"
"MONTH2QUARTER","月份与季度映射","2022-01","20221"
"MONTH2QUARTER","月份与季度映射","2022-02","20221"
"MONTH2QUARTER","月份与季度映射","2022-03","20221"
"MONTH2QUARTER","月份与季度映射","2022-04","20222"
"MONTH2QUARTER","月份与季度映射","2022-05","20222"
"MONTH2QUARTER","月份与季度映射","2022-06","20222"
"MONTH2QUARTER","月份与季度映射","2022-07","20223"
"MONTH2QUARTER","月份与季度映射","2022-08","20223"
"MONTH2QUARTER","月份与季度映射","2022-09","20223"
"MONTH2QUARTER","月份与季度映射","2022-10","20224"
"MONTH2QUARTER","月份与季度映射","2022-11","20224"
"MONTH2QUARTER","月份与季度映射","2022-12","20224"
"MONTH2QUARTER","月份与季度映射","2023-01","20231"
"MONTH2QUARTER","月份与季度映射","2023-02","20231"
"MONTH2QUARTER","月份与季度映射","2023-03","20231"
"MONTH2QUARTER","月份与季度映射","2023-04","20232"
"MONTH2QUARTER","月份与季度映射","2023-05","20232"
"MONTH2QUARTER","月份与季度映射","2023-06","20232"
"MONTH2QUARTER","月份与季度映射","2023-07","20233"
"MONTH2QUARTER","月份与季度映射","2023-08","20233"
"MONTH2QUARTER","月份与季度映射","2023-09","20233"
"MONTH2QUARTER","月份与季度映射","2023-10","20234"
"MONTH2QUARTER","月份与季度映射","2023-11","20234"
"MONTH2QUARTER","月份与季度映射","2023-12","20235"
"MONTH2QUARTER","月份与季度映射","2024-01","20231"
"MONTH2QUARTER","月份与季度映射","2024-02","20231"
"MONTH2QUARTER","月份与季度映射","2024-03","20231"
"MONTH2QUARTER","月份与季度映射","2024-04","20232"
"MONTH2QUARTER","月份与季度映射","2024-05","20232"
"MONTH2QUARTER","月份与季度映射","2024-06","20232"
"MONTH2QUARTER","月份与季度映射","2024-07","20233"
"MONTH2QUARTER","月份与季度映射","2024-08","20233"
"MONTH2QUARTER","月份与季度映射","2024-09","20233"
"MONTH2QUARTER","月份与季度映射","2024-10","20234"
"MONTH2QUARTER","月份与季度映射","2024-11","20234"
"MONTH2QUARTER","月份与季度映射","2024-12","20234"
1 RPT_INIT_DATA
2 DATA_TP_CD DATA_TP_NM ITEM_NAME ITEM_VALUE
3 数据类型 数据类型名称 数据项名称 数据项值
4 VARCHAR VARCHAR VARCHAR VARCHAR
5 java.lang.String java.lang.String java.lang.String java.lang.String
6 MONTH2QUARTER 月份与季度映射 2022-01 20221
7 MONTH2QUARTER 月份与季度映射 2022-02 20221
8 MONTH2QUARTER 月份与季度映射 2022-03 20221
9 MONTH2QUARTER 月份与季度映射 2022-04 20222
10 MONTH2QUARTER 月份与季度映射 2022-05 20222
11 MONTH2QUARTER 月份与季度映射 2022-06 20222
12 MONTH2QUARTER 月份与季度映射 2022-07 20223
13 MONTH2QUARTER 月份与季度映射 2022-08 20223
14 MONTH2QUARTER 月份与季度映射 2022-09 20223
15 MONTH2QUARTER 月份与季度映射 2022-10 20224
16 MONTH2QUARTER 月份与季度映射 2022-11 20224
17 MONTH2QUARTER 月份与季度映射 2022-12 20224
18 MONTH2QUARTER 月份与季度映射 2023-01 20231
19 MONTH2QUARTER 月份与季度映射 2023-02 20231
20 MONTH2QUARTER 月份与季度映射 2023-03 20231
21 MONTH2QUARTER 月份与季度映射 2023-04 20232
22 MONTH2QUARTER 月份与季度映射 2023-05 20232
23 MONTH2QUARTER 月份与季度映射 2023-06 20232
24 MONTH2QUARTER 月份与季度映射 2023-07 20233
25 MONTH2QUARTER 月份与季度映射 2023-08 20233
26 MONTH2QUARTER 月份与季度映射 2023-09 20233
27 MONTH2QUARTER 月份与季度映射 2023-10 20234
28 MONTH2QUARTER 月份与季度映射 2023-11 20234
29 MONTH2QUARTER 月份与季度映射 2023-12 20235
30 MONTH2QUARTER 月份与季度映射 2024-01 20231
31 MONTH2QUARTER 月份与季度映射 2024-02 20231
32 MONTH2QUARTER 月份与季度映射 2024-03 20231
33 MONTH2QUARTER 月份与季度映射 2024-04 20232
34 MONTH2QUARTER 月份与季度映射 2024-05 20232
35 MONTH2QUARTER 月份与季度映射 2024-06 20232
36 MONTH2QUARTER 月份与季度映射 2024-07 20233
37 MONTH2QUARTER 月份与季度映射 2024-08 20233
38 MONTH2QUARTER 月份与季度映射 2024-09 20233
39 MONTH2QUARTER 月份与季度映射 2024-10 20234
40 MONTH2QUARTER 月份与季度映射 2024-11 20234
41 MONTH2QUARTER 月份与季度映射 2024-12 20234

35
app.irbs/src/main/resources/liquibase/sql/rpt_views.sql

@ -0,0 +1,35 @@
CREATE OR REPLACE VIEW VIEW_RPT_BASE_INFO AS
SELECT
T.CUST_NO,
IFNULL(T.CUST_TYPE,'1') AS CUST_TYPE,
T.FINAL_LEVEL AS ORIGINAL_LEVEL,
T.INIT_LEVEL AS INIT_LEVEL,
T.ADJ_LEVEL AS ADJ_LEVEL,
CASE WHEN T.DEFAULT_IND = '1' THEN 'D' ELSE T.FINAL_LEVEL END AS FINAL_LEVEL,
S.PD,
CAST(DATE_FORMAT(T.EFFECTIVE_TIME,'%Y%m') AS DECIMAL) AS EFFECTIVE_MONTH,
D.ITEM_VALUE AS EFFECTIVE_Q,
LEFT(D.ITEM_VALUE,4) EFFECTIVE_Y,
IFNULL(T.MANAGER_ORG_CODE, '01002') MANAGER_ORG_CODE,
T.MODEL_CODE,
T.MODEL_NAME,
SUBSTR(IFNULL(C.INDU_SORT_CD, 'X'),1,1) AS INDUSTRY_CODE,
S.ORDER_NUM,
S1.ORDER_NUM AS INIT_ORDER_NUM,
S2.ORDER_NUM AS ADJ_ORDER_NUM,
T.MODEL_SCORE,
T.RATING_STATUS,
T.EFFECTIVE_TIME,
MAX(T.EFFECTIVE_TIME) OVER(PARTITION BY T.CUST_NO) AS MAX_EFFECTIVE_TIME,
SUM(BORR.BORR_BAL) OVER(PARTITION BY T.CUST_NO) AS BORR_BAL
FROM NS_COMPANY_RATING T
LEFT JOIN IRBS_CUST_CP_INFO C ON C.CUST_NO = T.CUST_NO
LEFT JOIN NS_CFG_MAIN_SCALE S ON S.SCALE_LEVEL = T.FINAL_LEVEL
LEFT JOIN NS_CFG_MAIN_SCALE S1 ON S1.SCALE_LEVEL = T.INIT_LEVEL
LEFT JOIN NS_CFG_MAIN_SCALE S2 ON S2.SCALE_LEVEL = T.ADJ_LEVEL
LEFT JOIN RPT_INIT_DATA D ON D.DATA_TP_CD = 'MONTH2QUARTER'
AND D.ITEM_NAME = LEFT(T.EFFECTIVE_TIME,7)
LEFT JOIN (
select t.CUST_NO, t.BORR_BAL from irbs_loan_borr_info t
) BORR ON BORR.CUST_NO = T.CUST_NO
WHERE T.RATING_STATUS IN ('010','020') AND T.FINAL_LEVEL IS NOT NULL

1
irbs.cust.rating/src/main/java/irbs/cust/rating/service/impl/CompanyRatingServiceImpl.java

@ -9,4 +9,5 @@ import org.springframework.stereotype.Service;
@Service("companyRatingService") @Service("companyRatingService")
public class CompanyRatingServiceImpl extends DaoServiceImpl<CompanyRating, String, CompanyRatingRepository> implements CompanyRatingService { public class CompanyRatingServiceImpl extends DaoServiceImpl<CompanyRating, String, CompanyRatingRepository> implements CompanyRatingService {
} }

4
irbs.cust.rating/src/main/resources/META-INF/platform/plugins/liquibase.json

@ -23,7 +23,7 @@
} }
] ]
*/ */
/*
[ [
{ {
"category" : "install", "category" : "install",
@ -31,8 +31,8 @@
"description":"评级相关表结构", "description":"评级相关表结构",
"locations":[ "locations":[
"liquibase/20240321_CUST_RATING_DDL.xml", "liquibase/20240321_CUST_RATING_DDL.xml",
"liquibase/20240325_CUST_RATING_SQL.XML" "liquibase/20240325_CUST_RATING_SQL.XML"
] ]
} }
] ]
*/

1264
irbs.cust.rating/src/main/resources/liquibase/sql/NS_COMPANY_RATING.sql

File diff suppressed because it is too large

4
irbs.frontend/.npmrc

@ -1,5 +1,5 @@
# npm 仓库地址, 在 npm install 时使用 # npm 仓库地址, 在 npm install 时使用
registry=http://nexus.sc.io:8000/repository/npm-public/ registry=http://124.222.99.204:8000/repository/npm-public/
# 用户邮箱 # 用户邮箱
email= email=
@ -8,4 +8,4 @@ email=
# 登录 npm 仓库的用户认证信息, 在 npm publish 时使用, publish 的 npm registry 在 package.json 文件中 publishConfig 部分配置 # 登录 npm 仓库的用户认证信息, 在 npm publish 时使用, publish 的 npm registry 在 package.json 文件中 publishConfig 部分配置
# _authToken 可通过以下命令获取 # _authToken 可通过以下命令获取
# curl -X PUT -H "Content-Type:application/json" -d '{"_id":"org.couchdb.user:admin","name":"admin","password":"admin"}' http://nexus.sc.io:8000/repository/npm-releases/-/user/org.couchdb.user:admin # curl -X PUT -H "Content-Type:application/json" -d '{"_id":"org.couchdb.user:admin","name":"admin","password":"admin"}' http://nexus.sc.io:8000/repository/npm-releases/-/user/org.couchdb.user:admin
//nexus.sc.io:8000/repository/npm-releases/:_authToken=NpmToken.193db44c-7ca5-3cb6-a990-d24b93fb0d10 //124.222.99.204:8000/repository/npm-releases/:_authToken=NpmToken.193db44c-7ca5-3cb6-a990-d24b93fb0d10

2
irbs.frontend/package.json

@ -80,7 +80,7 @@
"luckyexcel": "1.0.1", "luckyexcel": "1.0.1",
"mockjs": "1.1.0", "mockjs": "1.1.0",
"pinia": "2.1.7", "pinia": "2.1.7",
"platform-core": "8.1.146", "platform-core": "8.1.148",
"quasar": "2.14.2", "quasar": "2.14.2",
"tailwindcss": "3.4.0", "tailwindcss": "3.4.0",
"vue": "3.4.3", "vue": "3.4.3",

22
irbs.frontend/src/components/index.ts

@ -23,6 +23,17 @@ import resultQuery from '@/views/model/ResultQuery.vue';
import pressureTest from '@/views/model/PressureTest.vue'; import pressureTest from '@/views/model/PressureTest.vue';
import ratingAdjustment from '@/views/config/RatingAdjustment.vue'; import ratingAdjustment from '@/views/config/RatingAdjustment.vue';
import debtFactors from '@/views/config/DebtFactors.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';
const localComponents = { const localComponents = {
'irbs.home': home, 'irbs.home': home,
@ -46,6 +57,17 @@ const localComponents = {
'irbs.pressureTest': pressureTest, 'irbs.pressureTest': pressureTest,
'irbs.ratingAdjustment': ratingAdjustment, 'irbs.ratingAdjustment': ratingAdjustment,
'irbs.debtFactors': debtFactors, '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,
}; };
export default localComponents; export default localComponents;

13
irbs.frontend/src/i18n/messages.json

@ -37,5 +37,16 @@
"menu.irbs.config.debtFactors": "Debt Factors", "menu.irbs.config.debtFactors": "Debt Factors",
"menu.irbs.report": "Report ", "menu.irbs.report": "Report ",
"menu.irbs.report.test1": "test1" "menu.irbs.report.test1": "test1",
"menu.irbs.report.rptRatingDistribution": "RatingDistribution",
"menu.irbs.report.rptRatingModelFocusDist": "RatingModelFocusDistribution",
"menu.irbs.report.rptRatingOrgFocusDist": "RatingOrganizationFocusDistribution",
"menu.irbs.report.rptRatingIndustryFocusDist": "RatingIndustryFocusDistribution",
"menu.irbs.report.rptRatingNumberMigrate": "RatingNumberMigrate",
"menu.irbs.report.rptRatingLoanBalanceMigrate": "RatingLoanBalanceMigrate",
"menu.irbs.report.rptRatingOverturn": "RatingOverturn",
"menu.irbs.report.rptRatingAdjust": "RatingAdjust",
"menu.irbs.report.rptModelMonitorDiff": "ModelMonitorDiffrentAbility",
"menu.irbs.report.rptModelMonitorStable": "ModelMonitorStable",
"menu.irbs.report.rptModelMonitorBinomialCheck": "ModelMonitorBinomialCheck"
} }

13
irbs.frontend/src/i18n/messages_tw_CN.json

@ -37,5 +37,16 @@
"menu.irbs.config.debtFactors": "债项因素调整参数管理", "menu.irbs.config.debtFactors": "债项因素调整参数管理",
"menu.irbs.report": "报表管理", "menu.irbs.report": "报表管理",
"menu.irbs.report.test1": "测试报表1" "menu.irbs.report.test1": "测试报表1",
"menu.irbs.report.rptRatingDistribution": "客户评级分布报表",
"menu.irbs.report.rptRatingModelFocusDist": "客户评级模型敞口集中度分布报表",
"menu.irbs.report.rptRatingOrgFocusDist": "客户评级分支机构集中度分布报表",
"menu.irbs.report.rptRatingIndustryFocusDist": "客户评级行业集中度分布报表",
"menu.irbs.report.rptRatingNumberMigrate": "客户评级迁移报表(客户数)",
"menu.irbs.report.rptRatingLoanBalanceMigrate": "客户评级迁移报表(信贷余额)",
"menu.irbs.report.rptRatingOverturn": "客户评级推翻情况报表",
"menu.irbs.report.rptRatingAdjust": "客户评级特例调整情况报表",
"menu.irbs.report.rptModelMonitorDiff": "模型区分能力监控报表",
"menu.irbs.report.rptModelMonitorStable": "模型稳定性监控报表",
"menu.irbs.report.rptModelMonitorBinomialCheck": "模型审慎性监控报表"
} }

13
irbs.frontend/src/i18n/messages_zh_CN.json

@ -37,5 +37,16 @@
"menu.irbs.config.debtFactors": "债项因素调整参数管理", "menu.irbs.config.debtFactors": "债项因素调整参数管理",
"menu.irbs.report": "报表管理", "menu.irbs.report": "报表管理",
"menu.irbs.report.test1": "测试报表1" "menu.irbs.report.test1": "测试报表1",
"menu.irbs.report.rptRatingDistribution": "客户评级分布报表",
"menu.irbs.report.rptRatingModelFocusDist": "客户评级模型敞口集中度分布报表",
"menu.irbs.report.rptRatingOrgFocusDist": "客户评级分支机构集中度分布报表",
"menu.irbs.report.rptRatingIndustryFocusDist": "客户评级行业集中度分布报表",
"menu.irbs.report.rptRatingNumberMigrate": "客户评级迁移报表(客户数)",
"menu.irbs.report.rptRatingLoanBalanceMigrate": "客户评级迁移报表(信贷余额)",
"menu.irbs.report.rptRatingOverturn": "客户评级推翻情况报表",
"menu.irbs.report.rptRatingAdjust": "客户评级特例调整情况报表",
"menu.irbs.report.rptModelMonitorDiff": "模型区分能力监控报表",
"menu.irbs.report.rptModelMonitorStable": "模型稳定性监控报表",
"menu.irbs.report.rptModelMonitorBinomialCheck": "模型审慎性监控报表"
} }

25
irbs.frontend/src/menus/menus.json

@ -65,6 +65,29 @@
{"type":"ROUTE", "order":200, "parentId":"menu.irbs.config", "id":"menu.irbs.config.debtFactors", "titleI18nKey":"menu.irbs.config.debtFactors", "icon":"", "routeName":"route.irbs.config.debtFactors"}, {"type":"ROUTE", "order":200, "parentId":"menu.irbs.config", "id":"menu.irbs.config.debtFactors", "titleI18nKey":"menu.irbs.config.debtFactors", "icon":"", "routeName":"route.irbs.config.debtFactors"},
{"type":"GROUP", "order":800, "parentId":"menu.irbs", "id":"menu.irbs.report", "titleI18nKey":"menu.irbs.report", "icon":"find_in_page"}, {"type":"GROUP", "order":800, "parentId":"menu.irbs", "id":"menu.irbs.report", "titleI18nKey":"menu.irbs.report", "icon":"find_in_page"},
/*/*/ /*/*/
{"type":"ROUTE", "order":100, "parentId":"menu.irbs.report", "id":"menu.irbs.report.test1", "titleI18nKey":"menu.irbs.report.test1", "icon":"", "routeName":"route.sys.comm.page", "routeQuery":{"id": "0bfdf016-c029-4097-ad8b-50bd4bc19483"} } {"type":"ROUTE", "order":100, "parentId":"menu.irbs.report", "id":"menu.irbs.report.test1", "titleI18nKey":"menu.irbs.report.test1", "icon":"", "routeName":"route.sys.comm.page", "routeQuery":{"id": "0bfdf016-c029-4097-ad8b-50bd4bc19483"} },
/*/*/
{"type":"ROUTE", "order":200, "parentId":"menu.irbs.report", "id":"menu.irbs.report.rptRatingDistribution", "titleI18nKey":"menu.irbs.report.rptRatingDistribution", "icon":"", "routeName":"route.irbs.report.rptRatingDistribution"},
/*/*/
{"type":"ROUTE", "order":201, "parentId":"menu.irbs.report", "id":"menu.irbs.report.rptRatingModelFocusDist", "titleI18nKey":"menu.irbs.report.rptRatingModelFocusDist", "icon":"", "routeName":"route.irbs.report.rptRatingModelFocusDist"},
/*/*/
{"type":"ROUTE", "order":202, "parentId":"menu.irbs.report", "id":"menu.irbs.report.rptRatingOrgFocusDist", "titleI18nKey":"menu.irbs.report.rptRatingOrgFocusDist", "icon":"", "routeName":"route.irbs.report.rptRatingOrgFocusDist"},
/*/*/
{"type":"ROUTE", "order":203, "parentId":"menu.irbs.report", "id":"menu.irbs.report.rptRatingIndustryFocusDist", "titleI18nKey":"menu.irbs.report.rptRatingIndustryFocusDist", "icon":"", "routeName":"route.irbs.report.rptRatingIndustryFocusDist"},
/*/*/
{"type":"ROUTE", "order":300, "parentId":"menu.irbs.report", "id":"menu.irbs.report.rptRatingNumberMigrate", "titleI18nKey":"menu.irbs.report.rptRatingNumberMigrate", "icon":"", "routeName":"route.irbs.report.rptRatingNumberMigrate"},
/*/*/
{"type":"ROUTE", "order":301, "parentId":"menu.irbs.report", "id":"menu.irbs.report.rptRatingLoanBalanceMigrate", "titleI18nKey":"menu.irbs.report.rptRatingLoanBalanceMigrate", "icon":"", "routeName":"route.irbs.report.rptRatingLoanBalanceMigrate"},
/*/*/
{"type":"ROUTE", "order":400, "parentId":"menu.irbs.report", "id":"menu.irbs.report.rptRatingOverturn", "titleI18nKey":"menu.irbs.report.rptRatingOverturn", "icon":"", "routeName":"route.irbs.report.rptRatingOverturn"},
/*/*/
{"type":"ROUTE", "order":401, "parentId":"menu.irbs.report", "id":"menu.irbs.report.rptRatingAdjust", "titleI18nKey":"menu.irbs.report.rptRatingAdjust", "icon":"", "routeName":"route.irbs.report.rptRatingAdjust"},
/*/*/
{"type":"ROUTE", "order":500, "parentId":"menu.irbs.report", "id":"menu.irbs.report.rptModelMonitorDiff", "titleI18nKey":"menu.irbs.report.rptModelMonitorDiff", "icon":"", "routeName":"route.irbs.report.rptModelMonitorDiff"},
/*/*/
{"type":"ROUTE", "order":501, "parentId":"menu.irbs.report", "id":"menu.irbs.report.rptModelMonitorStable", "titleI18nKey":"menu.irbs.report.rptModelMonitorStable", "icon":"", "routeName":"route.irbs.report.rptModelMonitorStable"},
/*/*/
{"type":"ROUTE", "order":502, "parentId":"menu.irbs.report", "id":"menu.irbs.report.rptModelMonitorBinomialCheck", "titleI18nKey":"menu.irbs.report.rptModelMonitorBinomialCheck", "icon":"", "routeName":"route.irbs.report.rptModelMonitorBinomialCheck"}
] ]

143
irbs.frontend/src/routes/routes.json

@ -271,5 +271,148 @@
"permissions": ["/example/**/*"] "permissions": ["/example/**/*"]
}, },
"children": [] "children": []
},
{
"name": "route.irbs.report.rptRatingDistribution",
"path": "irbs/report/rptRatingDistribution",
"parent": "/",
"priority": -1,
"component": "irbs.report.rptRatingDistribution",
"componentPath": "@/views/report/RptRatingDistribution.vue",
"redirect": null,
"meta": {
"permissions": ["/example/**/*"]
},
"children": []
},
{
"name": "route.irbs.report.rptRatingModelFocusDist",
"path": "irbs/report/rptRatingModelFocusDist",
"parent": "/",
"priority": -1,
"component": "irbs.report.rptRatingModelFocusDist",
"componentPath": "@/views/report/RptRatingModelFocusDist.vue",
"redirect": null,
"meta": {
"permissions": ["/example/**/*"]
},
"children": []
},
{
"name": "route.irbs.report.rptRatingOrgFocusDist",
"path": "irbs/report/rptRatingOrgFocusDist",
"parent": "/",
"priority": -1,
"component": "irbs.report.rptRatingOrgFocusDist",
"componentPath": "@/views/report/RptRatingOrgFocusDist.vue",
"redirect": null,
"meta": {
"permissions": ["/example/**/*"]
},
"children": []
},
{
"name": "route.irbs.report.rptRatingNumberMigrate",
"path": "irbs/report/rptRatingNumberMigrate",
"parent": "/",
"priority": -1,
"component": "irbs.report.rptRatingNumberMigrate",
"componentPath": "@/views/report/RptRatingNumberMigrate.vue",
"redirect": null,
"meta": {
"permissions": ["/example/**/*"]
},
"children": []
},
{
"name": "route.irbs.report.rptRatingLoanBalanceMigrate",
"path": "irbs/report/rptRatingLoanBalanceMigrate",
"parent": "/",
"priority": -1,
"component": "irbs.report.rptRatingLoanBalanceMigrate",
"componentPath": "@/views/report/RptRatingLoanBalanceMigrate.vue",
"redirect": null,
"meta": {
"permissions": ["/example/**/*"]
},
"children": []
},
{
"name": "route.irbs.report.rptRatingIndustryFocusDist",
"path": "irbs/report/rptRatingIndustryFocusDist",
"parent": "/",
"priority": -1,
"component": "irbs.report.rptRatingIndustryFocusDist",
"componentPath": "@/views/report/RptRatingIndustryFocusDist.vue",
"redirect": null,
"meta": {
"permissions": ["/example/**/*"]
},
"children": []
},
{
"name": "route.irbs.report.rptModelMonitorDiff",
"path": "irbs/report/rptModelMonitorDiff",
"parent": "/",
"priority": -1,
"component": "irbs.report.rptModelMonitorDiff",
"componentPath": "@/views/report/RptModelMonitorDiff.vue",
"redirect": null,
"meta": {
"permissions": ["/example/**/*"]
},
"children": []
},
{
"name": "route.irbs.report.rptModelMonitorStable",
"path": "irbs/report/rptModelMonitorStable",
"parent": "/",
"priority": -1,
"component": "irbs.report.rptModelMonitorStable",
"componentPath": "@/views/report/RptModelMonitorStable.vue",
"redirect": null,
"meta": {
"permissions": ["/example/**/*"]
},
"children": []
},
{
"name": "route.irbs.report.rptRatingOverturn",
"path": "irbs/report/rptRatingOverturn",
"parent": "/",
"priority": -1,
"component": "irbs.report.rptRatingOverturn",
"componentPath": "@/views/report/RptRatingOverturn.vue",
"redirect": null,
"meta": {
"permissions": ["/example/**/*"]
},
"children": []
},
{
"name": "route.irbs.report.rptRatingAdjust",
"path": "irbs/report/rptRatingAdjust",
"parent": "/",
"priority": -1,
"component": "irbs.report.rptRatingAdjust",
"componentPath": "@/views/report/RptRatingAdjust.vue",
"redirect": null,
"meta": {
"permissions": ["/example/**/*"]
},
"children": []
},
{
"name": "route.irbs.report.rptModelMonitorBinomialCheck",
"path": "irbs/report/rptModelMonitorBinomialCheck",
"parent": "/",
"priority": -1,
"component": "irbs.report.rptModelMonitorBinomialCheck",
"componentPath": "@/views/report/RptModelMonitorBinomialCheck.vue",
"redirect": null,
"meta": {
"permissions": ["/example/**/*"]
},
"children": []
} }
] ]

95
irbs.frontend/src/views/report/RptModelMonitorBinomialCheck.vue

@ -0,0 +1,95 @@
<template>
<div>
<w-grid
ref="rptModelMonitorBinomialCheckGridRef"
title="模型审慎性监控报表"
:data-url="Environment.apiContextPath('api/irbs/rptModelMonitorBinomialCheck/list')"
:sort-no="true"
:checkbox-selection="false"
:query-form-cols-num="4"
:query-form-fields="rptModelMonitorBinomialCheckGrid.queryFormFields"
:columns="rptModelMonitorBinomialCheckGrid.columns"
:toolbar-actions="rptModelMonitorBinomialCheckGrid.buttons"
:pageable="false"
></w-grid>
</div>
</template>
<script setup lang="ts">
import { ref, reactive } from 'vue';
import { useQuasar } from 'quasar';
import { Environment, EnumTools, DictionaryTools, Options, Formater, axios, NotifyManager } from 'platform-core';
const $q = useQuasar();
const rptModelMonitorBinomialCheckGridRef = ref();
const rptModelMonitorBinomialCheckGrid = {
buttons: [
{
extend: 'query',
click: () => {
const QueryParams = rptModelMonitorBinomialCheckGridRef.value.getQueryForm().getData();
axios.get(Environment.apiContextPath('api/irbs/rptModelMonitorBinomialCheck/list'), { params: QueryParams }).then((resp) => {
rptModelMonitorBinomialCheckGridRef.value.setLocalData(resp.data);
});
},
},
'reset',
'separator',
],
queryFormFields: [
{ label: '报表日期', name: 'ratingMonth', type: 'date', defaultValue: '2023-07-01' },
{
label: '模型敞口',
name: 'modelCode',
type: 'select',
options: [
{ value: 'WHM1', label: '政府投融资平台' },
{ value: 'WHM2', label: '事业单位' },
{ value: 'WHM3', label: '银行类金融机构' },
{ value: 'WHM41', label: '金融租赁与消费金融公司' },
{ value: 'WHM42', label: '证券公司' },
{ value: 'WHM43', label: '其他非银行金融机构' },
{ value: 'WHM44', label: '基金公司' },
{ value: 'WHM5', label: '新建企业' },
{ value: 'WHM6', label: '综合性集团' },
{ value: 'WHM7', label: '大型其他行业' },
{ value: 'WHM8', label: '中小微其他行业' },
{ value: 'WHM9', label: '大中型租赁和商务服务行业' },
{ value: 'WHM10', label: '小微租赁和商务服务业' },
{ value: 'WHM12', label: '房地产业' },
{ value: 'WHM13', label: '大中型农林牧渔业' },
{ value: 'WHM14', label: '小微农林牧渔业' },
{ value: 'WHM15', label: '大型建筑业' },
{ value: 'WHM16', label: '中小微建筑业' },
{ value: 'WHM17', label: '大中型制造业' },
{ value: 'WHM18', label: '小微制造业' },
{ value: 'WHM19', label: '大中型批发和零售业' },
{ value: 'WHM20', label: '小微批发和零售业' },
{ value: 'WHM22', label: '科技行业' },
],
defaultValue: 'WHM8',
},
],
columns: [
{ label: '时间区间', name: 'ratingYear', align: 'center' },
{
label: '审慎性',
name: 'prudentHeader',
columns: [
{ label: '二项检验', name: 'binomialCheck', align: 'center' },
{ label: '风险等级', name: 'riskLevel', align: 'center' },
],
},
{
label: '客户数',
name: 'custCntHeader',
columns: [
{ label: '正常客户数', name: 'totalNormalCnt', align: 'center' },
{ label: '违约客户数', name: 'totalBadCnt', align: 'center' },
{ label: '总客户数', name: 'totalCustCnt', align: 'center' },
],
},
],
};
</script>

109
irbs.frontend/src/views/report/RptModelMonitorDiff.vue

@ -0,0 +1,109 @@
<template>
<div>
<w-grid
ref="rptModelMonitorDiffGridRef"
title="模型区分能力监控报表"
:data-url="Environment.apiContextPath('api/irbs/rptModelMonitorDiff/list')"
:sort-no="true"
:checkbox-selection="false"
:query-form-cols-num="4"
:query-form-fields="rptModelMonitorDiffGrid.queryFormFields"
:columns="rptModelMonitorDiffGrid.columns"
:toolbar-actions="rptModelMonitorDiffGrid.buttons"
:pageable="false"
></w-grid>
</div>
</template>
<script setup lang="ts">
import { ref, reactive } from 'vue';
import { useQuasar } from 'quasar';
import { Environment, EnumTools, DictionaryTools, Options, Formater, axios, NotifyManager } from 'platform-core';
const $q = useQuasar();
const rptModelMonitorDiffGridRef = ref();
const rptModelMonitorDiffGrid = {
buttons: [
{
extend: 'query',
click: () => {
const QueryParams = rptModelMonitorDiffGridRef.value.getQueryForm().getData();
axios.get(Environment.apiContextPath('api/irbs/rptRatingDistribution/list'), { params: QueryParams }).then((resp) => {
rptModelMonitorDiffGridRef.value.setLocalData(resp.data);
});
},
},
'reset',
'separator',
],
queryFormFields: [
{ label: '报表日期', name: 'ratingMonth', type: 'date', defaultValue: '2023-07-01' },
{
label: '报告期',
name: 'yearPeriod',
type: 'select',
options: [
{ label: '往前推1年', value: '1' },
{ label: '往前推2年', value: '2' },
{ label: '往前推3年', value: '3' },
{ label: '往前推4年', value: '4' },
{ label: '往前推5年', value: '5' },
],
defaultValue: '1',
},
{
label: '模型敞口',
name: 'modelCode',
type: 'select',
options: [
{ value: 'WHM1', label: '政府投融资平台' },
{ value: 'WHM2', label: '事业单位' },
{ value: 'WHM3', label: '银行类金融机构' },
{ value: 'WHM41', label: '金融租赁与消费金融公司' },
{ value: 'WHM42', label: '证券公司' },
{ value: 'WHM43', label: '其他非银行金融机构' },
{ value: 'WHM44', label: '基金公司' },
{ value: 'WHM5', label: '新建企业' },
{ value: 'WHM6', label: '综合性集团' },
{ value: 'WHM7', label: '大型其他行业' },
{ value: 'WHM8', label: '中小微其他行业' },
{ value: 'WHM9', label: '大中型租赁和商务服务行业' },
{ value: 'WHM10', label: '小微租赁和商务服务业' },
{ value: 'WHM12', label: '房地产业' },
{ value: 'WHM13', label: '大中型农林牧渔业' },
{ value: 'WHM14', label: '小微农林牧渔业' },
{ value: 'WHM15', label: '大型建筑业' },
{ value: 'WHM16', label: '中小微建筑业' },
{ value: 'WHM17', label: '大中型制造业' },
{ value: 'WHM18', label: '小微制造业' },
{ value: 'WHM19', label: '大中型批发和零售业' },
{ value: 'WHM20', label: '小微批发和零售业' },
{ value: 'WHM22', label: '科技行业' },
],
defaultValue: 'WHM18',
},
],
columns: [
{ label: '时间区间', name: 'ratingQuarter', align: 'center' },
{
label: '区分能力',
name: 'diffHeader',
columns: [
{ label: 'AR', name: 'ar', align: 'center' },
{ label: 'KS', name: 'ks', align: 'center' },
{ label: '风险等级', name: 'riskLevel', align: 'center' },
],
},
{
label: '客户数',
name: 'custCntHeader',
columns: [
{ label: '正常客户数', name: 'totalNormalCnt', align: 'center' },
{ label: '违约客户数', name: 'totalBadCnt', align: 'center' },
{ label: '总客户数', name: 'totalCustCnt', align: 'center' },
],
},
],
};
</script>

86
irbs.frontend/src/views/report/RptModelMonitorStable.vue

@ -0,0 +1,86 @@
<template>
<div>
<w-grid
ref="rptModelMonitorStableGridRef"
title="模型稳定性监控报表"
:data-url="Environment.apiContextPath('api/irbs/rptModelMonitorStable/list')"
:sort-no="true"
:checkbox-selection="false"
:query-form-cols-num="4"
:query-form-fields="rptModelMonitorStableGrid.queryFormFields"
:columns="rptModelMonitorStableGrid.columns"
:toolbar-actions="rptModelMonitorStableGrid.buttons"
:pageable="false"
></w-grid>
</div>
</template>
<script setup lang="ts">
import { ref, reactive } from 'vue';
import { useQuasar } from 'quasar';
import { Environment, EnumTools, DictionaryTools, Options, Formater, axios, NotifyManager } from 'platform-core';
const $q = useQuasar();
const rptModelMonitorStableGridRef = ref();
const rptModelMonitorStableGrid = {
buttons: [
{
extend: 'query',
click: () => {
const QueryParams = rptModelMonitorStableGridRef.value.getQueryForm().getData();
axios.get(Environment.apiContextPath('api/irbs/rptModelMonitorStable/list'), { params: QueryParams }).then((resp) => {
rptModelMonitorStableGridRef.value.setLocalData(resp.data);
});
},
},
'reset',
'separator',
],
queryFormFields: [
{ label: '报表日期', name: 'ratingMonth', type: 'date', defaultValue: '2023-07-01' },
{
label: '模型敞口',
name: 'modelCode',
type: 'select',
options: [
{ value: 'WHM1', label: '政府投融资平台' },
{ value: 'WHM2', label: '事业单位' },
{ value: 'WHM3', label: '银行类金融机构' },
{ value: 'WHM41', label: '金融租赁与消费金融公司' },
{ value: 'WHM42', label: '证券公司' },
{ value: 'WHM43', label: '其他非银行金融机构' },
{ value: 'WHM44', label: '基金公司' },
{ value: 'WHM5', label: '新建企业' },
{ value: 'WHM6', label: '综合性集团' },
{ value: 'WHM7', label: '大型其他行业' },
{ value: 'WHM8', label: '中小微其他行业' },
{ value: 'WHM9', label: '大中型租赁和商务服务行业' },
{ value: 'WHM10', label: '小微租赁和商务服务业' },
{ value: 'WHM12', label: '房地产业' },
{ value: 'WHM13', label: '大中型农林牧渔业' },
{ value: 'WHM14', label: '小微农林牧渔业' },
{ value: 'WHM15', label: '大型建筑业' },
{ value: 'WHM16', label: '中小微建筑业' },
{ value: 'WHM17', label: '大中型制造业' },
{ value: 'WHM18', label: '小微制造业' },
{ value: 'WHM19', label: '大中型批发和零售业' },
{ value: 'WHM20', label: '小微批发和零售业' },
{ value: 'WHM22', label: '科技行业' },
],
defaultValue: 'WHM18',
},
],
columns: [
{ label: '时间区间', name: 'ratingQuarter', align: 'center' },
{
label: '稳定性',
name: 'stableHeader',
columns: [
{ label: 'PSI', name: 'psi', align: 'center' },
{ label: '风险等级', name: 'riskLevel', align: 'center' },
],
},
],
};
</script>

121
irbs.frontend/src/views/report/RptRatingAdjust.vue

@ -0,0 +1,121 @@
<template>
<div>
<w-grid
ref="rptRatingAdjustGridRef"
title="客户评级特例调整情况报表"
:data-url="Environment.apiContextPath('api/irbs/rptRatingAdjust/list')"
:sort-no="true"
:checkbox-selection="false"
:query-form-cols-num="4"
:query-form-fields="rptRatingAdjustGrid.queryFormFields"
:columns="rptRatingAdjustGrid.columns"
:toolbar-actions="rptRatingAdjustGrid.buttons"
:pageable="false"
></w-grid>
</div>
</template>
<script setup lang="ts">
import { ref, reactive } from 'vue';
import { useQuasar } from 'quasar';
import { Environment, EnumTools, DictionaryTools, Options, Formater, axios, NotifyManager } from 'platform-core';
const $q = useQuasar();
const rptRatingAdjustGridRef = ref();
const rptRatingAdjustGrid = {
buttons: [
{
extend: 'query',
click: () => {
const QueryParams = rptRatingAdjustGridRef.value.getQueryForm().getData();
axios.get(Environment.apiContextPath('api/irbs/rptRatingAdjust/list'), { params: QueryParams }).then((resp) => {
rptRatingAdjustGridRef.value.setLocalData(resp.data);
});
},
},
'reset',
'separator',
'export',
],
queryFormFields: [
{ label: '报表日期', name: 'ratingMonth', type: 'date', defaultValue: '2023-07-01' },
{
label: '模型敞口',
name: 'modelCode',
type: 'select',
options: [
{ value: 'WHM1', label: '政府投融资平台' },
{ value: 'WHM2', label: '事业单位' },
{ value: 'WHM3', label: '银行类金融机构' },
{ value: 'WHM41', label: '金融租赁与消费金融公司' },
{ value: 'WHM42', label: '证券公司' },
{ value: 'WHM43', label: '其他非银行金融机构' },
{ value: 'WHM44', label: '基金公司' },
{ value: 'WHM5', label: '新建企业' },
{ value: 'WHM6', label: '综合性集团' },
{ value: 'WHM7', label: '大型其他行业' },
{ value: 'WHM8', label: '中小微其他行业' },
{ value: 'WHM9', label: '大中型租赁和商务服务行业' },
{ value: 'WHM10', label: '小微租赁和商务服务业' },
{ value: 'WHM12', label: '房地产业' },
{ value: 'WHM13', label: '大中型农林牧渔业' },
{ value: 'WHM14', label: '小微农林牧渔业' },
{ value: 'WHM15', label: '大型建筑业' },
{ value: 'WHM16', label: '中小微建筑业' },
{ value: 'WHM17', label: '大中型制造业' },
{ value: 'WHM18', label: '小微制造业' },
{ value: 'WHM19', label: '大中型批发和零售业' },
{ value: 'WHM20', label: '小微批发和零售业' },
{ value: 'WHM22', label: '科技行业' },
],
},
{
label: '分支机构',
name: 'managerOrgCode',
type: 'select',
options: [
{ value: '01002', label: '总行营业部' },
{ value: '01003', label: 'JJJS开发区支行' },
{ value: '01005', label: 'XF支行' },
{ value: '01006', label: 'GCZ支行' },
{ value: '01007', label: 'ZL支行' },
{ value: '01008', label: 'HKJ支行' },
{ value: '01009', label: 'HL支行' },
{ value: '01010', label: 'LJ支行' },
{ value: '01012', label: 'GG分行' },
{ value: '01013', label: 'ZY支行' },
{ value: '01014', label: 'ZD支行' },
{ value: '01015', label: 'HK支行' },
{ value: '01016', label: 'DS支行' },
{ value: '01017', label: 'LF支行' },
{ value: '01018', label: 'GS支行' },
{ value: '01019', label: 'LX支行' },
{ value: '01020', label: 'BX支行' },
{ value: '01021', label: 'ZQ支行' },
{ value: '01022', label: 'JF支行' },
{ value: '01023', label: 'CC支行' },
{ value: '01024', label: 'LQ支行' },
{ value: '01025', label: 'DH支行' },
{ value: '01027', label: 'SGH支行' },
],
},
],
columns: [
{ label: '评级时间', name: 'ratingMonth', align: 'center' },
{ label: '评级客户数', name: 'custCnt', align: 'center' },
{ label: '调整客户数', name: 'adjCnt', align: 'center' },
{ label: '调整客户占比', name: 'adjRatio', align: 'center' },
{
label: '调整级别',
name: 'adjustLevelHeader',
columns: [
{ label: '1级', name: 'oneLvlRatio' },
{ label: '2级', name: 'twoLvlRatio' },
{ label: '3级', name: 'threeLvlRatio' },
{ label: '3级以上', name: 'threeMoreLvlRatio' },
],
},
],
};
</script>

140
irbs.frontend/src/views/report/RptRatingDistribution.vue

@ -0,0 +1,140 @@
<template>
<div>
<w-grid
ref="rptRatingDistributionGridRef"
title="客户评级分布报表"
:data-url="Environment.apiContextPath('api/irbs/rptRatingDistribution/list')"
:sort-no="true"
:checkbox-selection="false"
:query-form-cols-num="3"
:query-form-fields="rptRatingDistributionGrid.queryFormFields"
:columns="rptRatingDistributionGrid.columns"
:toolbar-actions="rptRatingDistributionGrid.buttons"
:pageable="false"
></w-grid>
</div>
</template>
<script setup lang="ts">
import { ref, reactive } from 'vue';
import { useQuasar } from 'quasar';
import { Environment, EnumTools, DictionaryTools, Options, Formater, axios, NotifyManager } from 'platform-core';
const $q = useQuasar();
const rptRatingDistributionGridRef = ref();
const rptRatingDistributionGrid = {
buttons: [
{
extend: 'query',
click: () => {
const QueryParams = rptRatingDistributionGridRef.value.getQueryForm().getData();
axios.get(Environment.apiContextPath('api/irbs/rptRatingDistribution/list'), { params: QueryParams }).then((resp) => {
rptRatingDistributionGridRef.value.setLocalData(resp.data);
});
},
},
'reset',
'separator',
'export',
],
queryFormFields: [
{ label: '报表日期', name: 'ratingMonth', type: 'date', defaultValue: '2023-07-01' },
{
label: '模型敞口',
name: 'modelCode',
type: 'select',
options: [
{ value: 'WHM1', label: '政府投融资平台' },
{ value: 'WHM2', label: '事业单位' },
{ value: 'WHM3', label: '银行类金融机构' },
{ value: 'WHM41', label: '金融租赁与消费金融公司' },
{ value: 'WHM42', label: '证券公司' },
{ value: 'WHM43', label: '其他非银行金融机构' },
{ value: 'WHM44', label: '基金公司' },
{ value: 'WHM5', label: '新建企业' },
{ value: 'WHM6', label: '综合性集团' },
{ value: 'WHM7', label: '大型其他行业' },
{ value: 'WHM8', label: '中小微其他行业' },
{ value: 'WHM9', label: '大中型租赁和商务服务行业' },
{ value: 'WHM10', label: '小微租赁和商务服务业' },
{ value: 'WHM12', label: '房地产业' },
{ value: 'WHM13', label: '大中型农林牧渔业' },
{ value: 'WHM14', label: '小微农林牧渔业' },
{ value: 'WHM15', label: '大型建筑业' },
{ value: 'WHM16', label: '中小微建筑业' },
{ value: 'WHM17', label: '大中型制造业' },
{ value: 'WHM18', label: '小微制造业' },
{ value: 'WHM19', label: '大中型批发和零售业' },
{ value: 'WHM20', label: '小微批发和零售业' },
{ value: 'WHM22', label: '科技行业' },
],
},
{
label: '分支机构',
name: 'managerOrgCode',
type: 'select',
options: [
{ value: '01002', label: '总行营业部' },
{ value: '01003', label: 'JJJS开发区支行' },
{ value: '01005', label: 'XF支行' },
{ value: '01006', label: 'GCZ支行' },
{ value: '01007', label: 'ZL支行' },
{ value: '01008', label: 'HKJ支行' },
{ value: '01009', label: 'HL支行' },
{ value: '01010', label: 'LJ支行' },
{ value: '01012', label: 'GG分行' },
{ value: '01013', label: 'ZY支行' },
{ value: '01014', label: 'ZD支行' },
{ value: '01015', label: 'HK支行' },
{ value: '01016', label: 'DS支行' },
{ value: '01017', label: 'LF支行' },
{ value: '01018', label: 'GS支行' },
{ value: '01019', label: 'LX支行' },
{ value: '01020', label: 'BX支行' },
{ value: '01021', label: 'ZQ支行' },
{ value: '01022', label: 'JF支行' },
{ value: '01023', label: 'CC支行' },
{ value: '01024', label: 'LQ支行' },
{ value: '01025', label: 'DH支行' },
{ value: '01027', label: 'SGH支行' },
],
},
],
columns: [
{ label: '评级等级', name: 'ratingLevel', align: 'center' },
{
label: '全部客户',
name: 'totalCustHeader',
columns: [
{ label: '客户数', name: 'custCnt', align: 'center' },
{ label: '占比', name: 'custRatio', align: 'center' },
],
},
{
label: '本月新增客户',
name: 'currInctCustHeader',
columns: [
{ label: '客户数', name: 'currInctCnt', align: 'center' },
{ label: '占比', name: 'currInctRatio', align: 'center' },
],
},
{
label: '违约客户',
name: 'defCustHeader',
columns: [
{ label: '客户数', name: 'defCustCnt', align: 'center' },
{ label: '违约率', name: 'defCustRatio', align: 'center' },
],
},
{
label: '信贷余额',
name: 'borrBalHeader',
columns: [
{ label: '余额', name: 'borrBal', align: 'center' },
{ label: '占比', name: 'borrBalRatio', align: 'center' },
],
},
],
};
</script>

227
irbs.frontend/src/views/report/RptRatingIndustryFocusDist.vue

@ -0,0 +1,227 @@
<template>
<div>
<w-grid
ref="rptRatingIndustryFocusDistGridRef"
title="客户评级行业集中度分布报表"
:data-url="Environment.apiContextPath('api/irbs/rptRatingIndustryFocusDist/list')"
:sort-no="true"
:checkbox-selection="false"
:query-form-cols-num="4"
:query-form-fields="rptRatingIndustryFocusDistGrid.queryFormFields"
:columns="rptRatingIndustryFocusDistGrid.tableColumns"
:toolbar-actions="rptRatingIndustryFocusDistGrid.buttons"
:pageable="false"
></w-grid>
</div>
</template>
<script setup lang="ts">
import { ref, reactive } from 'vue';
import { useQuasar } from 'quasar';
import { Environment, EnumTools, DictionaryTools, Options, Formater, axios, NotifyManager } from 'platform-core';
const $q = useQuasar();
const rptRatingIndustryFocusDistGridRef = ref();
const rptRatingIndustryFocusDistGrid = {
buttons: [
{
extend: 'query',
click: () => {
const QueryParams = rptRatingIndustryFocusDistGridRef.value.getQueryForm().getData();
axios.get(Environment.apiContextPath('api/irbs/rptRatingIndustryFocusDist/list'), { params: QueryParams }).then((resp) => {
rptRatingIndustryFocusDistGridRef.value.setLocalData(resp.data);
});
},
},
'reset',
'separator',
],
queryFormFields: [
{ label: '报表日期', name: 'ratingMonth', type: 'date', defaultValue: '2023-07-01' },
{
label: '模型敞口',
name: 'modelCode',
type: 'select',
options: [
{ value: 'WHM1', label: '政府投融资平台' },
{ value: 'WHM2', label: '事业单位' },
{ value: 'WHM3', label: '银行类金融机构' },
{ value: 'WHM41', label: '金融租赁与消费金融公司' },
{ value: 'WHM42', label: '证券公司' },
{ value: 'WHM43', label: '其他非银行金融机构' },
{ value: 'WHM44', label: '基金公司' },
{ value: 'WHM5', label: '新建企业' },
{ value: 'WHM6', label: '综合性集团' },
{ value: 'WHM7', label: '大型其他行业' },
{ value: 'WHM8', label: '中小微其他行业' },
{ value: 'WHM9', label: '大中型租赁和商务服务行业' },
{ value: 'WHM10', label: '小微租赁和商务服务业' },
{ value: 'WHM12', label: '房地产业' },
{ value: 'WHM13', label: '大中型农林牧渔业' },
{ value: 'WHM14', label: '小微农林牧渔业' },
{ value: 'WHM15', label: '大型建筑业' },
{ value: 'WHM16', label: '中小微建筑业' },
{ value: 'WHM17', label: '大中型制造业' },
{ value: 'WHM18', label: '小微制造业' },
{ value: 'WHM19', label: '大中型批发和零售业' },
{ value: 'WHM20', label: '小微批发和零售业' },
{ value: 'WHM22', label: '科技行业' },
],
},
{
label: '分支机构',
name: 'managerOrgCode',
type: 'select',
options: [
{ value: '01002', label: '总行营业部' },
{ value: '01003', label: 'JJJS开发区支行' },
{ value: '01005', label: 'XF支行' },
{ value: '01006', label: 'GCZ支行' },
{ value: '01007', label: 'ZL支行' },
{ value: '01008', label: 'HKJ支行' },
{ value: '01009', label: 'HL支行' },
{ value: '01010', label: 'LJ支行' },
{ value: '01012', label: 'GG分行' },
{ value: '01013', label: 'ZY支行' },
{ value: '01014', label: 'ZD支行' },
{ value: '01015', label: 'HK支行' },
{ value: '01016', label: 'DS支行' },
{ value: '01017', label: 'LF支行' },
{ value: '01018', label: 'GS支行' },
{ value: '01019', label: 'LX支行' },
{ value: '01020', label: 'BX支行' },
{ value: '01021', label: 'ZQ支行' },
{ value: '01022', label: 'JF支行' },
{ value: '01023', label: 'CC支行' },
{ value: '01024', label: 'LQ支行' },
{ value: '01025', label: 'DH支行' },
{ value: '01027', label: 'SGH支行' },
],
},
],
tableColumns: [
{ label: '所属行业', name: 'industryName', align: 'center' },
{
name: 'AAA',
label: 'AAA',
columns: [
{ label: '客户数', name: 'aaaCnt', align: 'center' },
{ label: '占比', name: 'aaaRatio', align: 'center' },
],
},
{
name: 'AA',
label: 'AA',
columns: [
{ label: '客户数', name: 'aaCnt', align: 'center' },
{ label: '占比', name: 'aaRatio', align: 'center' },
],
},
{
name: 'A+',
label: 'A+',
columns: [
{ label: '客户数', name: 'aPlusCnt', align: 'center' },
{ label: '占比', name: 'aPlusRatio', align: 'center' },
],
},
{
name: 'A',
label: 'A',
columns: [
{ label: '客户数', name: 'aCnt', align: 'center' },
{ label: '占比', name: 'aRatio', align: 'center' },
],
},
{
name: 'A-',
label: 'A-',
columns: [
{ label: '客户数', name: 'aMinusCnt', align: 'center' },
{ label: '占比', name: 'aMinusRatio', align: 'center' },
],
},
{
name: 'BBB',
label: 'BBB',
columns: [
{ label: '客户数', name: 'bbbCnt', align: 'center' },
{ label: '占比', name: 'bbbRatio', align: 'center' },
],
},
{
name: 'BB+',
label: 'BB+',
columns: [
{ label: '客户数', name: 'bbPlusCnt', align: 'center' },
{ label: '占比', name: 'bbPlusRatio', align: 'center' },
],
},
{
name: 'BB',
label: 'BB',
columns: [
{ label: '客户数', name: 'bbCnt', align: 'center' },
{ label: '占比', name: 'bbRatio', align: 'center' },
],
},
{
name: 'BB-',
label: 'BB-',
columns: [
{ label: '客户数', name: 'bbMinusCnt', align: 'center' },
{ label: '占比', name: 'bbMinusRatio', align: 'center' },
],
},
{
name: 'B+',
label: 'B+',
columns: [
{ label: '客户数', name: 'bPlusCnt', align: 'center' },
{ label: '占比', name: 'bPlusRatio', align: 'center' },
],
},
{
name: 'B',
label: 'B',
columns: [
{ label: '客户数', name: 'bCnt', align: 'center' },
{ label: '占比', name: 'bRatio', align: 'center' },
],
},
{
name: 'CCC',
label: 'CCC',
columns: [
{ label: '客户数', name: 'cccCnt', align: 'center' },
{ label: '占比', name: 'cccRatio', align: 'center' },
],
},
{
name: 'CC',
label: 'CC',
columns: [
{ label: '客户数', name: 'ccCnt', align: 'center' },
{ label: '占比', name: 'ccRatio', align: 'center' },
],
},
{
name: 'C',
label: 'C',
columns: [
{ label: '客户数', name: 'cCnt', align: 'center' },
{ label: '占比', name: 'cRatio', align: 'center' },
],
},
{
name: 'D',
label: 'D',
columns: [
{ label: '客户数', name: 'dCnt', align: 'center' },
{ label: '占比', name: 'dRatio', align: 'center' },
],
},
],
};
</script>

147
irbs.frontend/src/views/report/RptRatingLoanBalanceMigrate.vue

@ -0,0 +1,147 @@
<template>
<div>
<w-grid
ref="rptRatingLoanBalanceMigrateRef"
title="客户评级迁移报表(信贷余额)"
:data-url="Environment.apiContextPath('api/irbs/rptRatingLoanBalanceMigrate/list')"
:sort-no="true"
:checkbox-selection="false"
:query-form-cols-num="2"
:query-form-fields="rptRatingLoanBalanceMigrateGrid.queryFormFields"
:columns="rptRatingLoanBalanceMigrateGrid.tableColumns"
:toolbar-actions="rptRatingLoanBalanceMigrateGrid.buttons"
:pageable="false"
></w-grid>
</div>
</template>
<script setup lang="ts">
import { ref, reactive } from 'vue';
import { useQuasar } from 'quasar';
import { Environment, EnumTools, DictionaryTools, Options, Formater, axios, NotifyManager } from 'platform-core';
const $q = useQuasar();
const rptRatingLoanBalanceMigrateRef = ref();
const rptRatingLoanBalanceMigrateGrid = {
buttons: [
{
extend: 'query',
click: () => {
const QueryParams = rptRatingLoanBalanceMigrateRef.value.getQueryForm().getData();
axios.get(Environment.apiContextPath('api/irbs/rptRatingLoanBalanceMigrate/list'), { params: QueryParams }).then((resp) => {
rptRatingLoanBalanceMigrateRef.value.setLocalData(resp.data);
});
},
},
'reset',
'separator',
],
queryFormFields: [
{ label: '报表日期', name: 'ratingMonth', type: 'date', defaultValue: '2023-07-01' },
{
label: '模型敞口',
name: 'modelCode',
type: 'select',
options: [
{ value: 'WHM1', label: '政府投融资平台' },
{ value: 'WHM2', label: '事业单位' },
{ value: 'WHM3', label: '银行类金融机构' },
{ value: 'WHM41', label: '金融租赁与消费金融公司' },
{ value: 'WHM42', label: '证券公司' },
{ value: 'WHM43', label: '其他非银行金融机构' },
{ value: 'WHM44', label: '基金公司' },
{ value: 'WHM5', label: '新建企业' },
{ value: 'WHM6', label: '综合性集团' },
{ value: 'WHM7', label: '大型其他行业' },
{ value: 'WHM8', label: '中小微其他行业' },
{ value: 'WHM9', label: '大中型租赁和商务服务行业' },
{ value: 'WHM10', label: '小微租赁和商务服务业' },
{ value: 'WHM12', label: '房地产业' },
{ value: 'WHM13', label: '大中型农林牧渔业' },
{ value: 'WHM14', label: '小微农林牧渔业' },
{ value: 'WHM15', label: '大型建筑业' },
{ value: 'WHM16', label: '中小微建筑业' },
{ value: 'WHM17', label: '大中型制造业' },
{ value: 'WHM18', label: '小微制造业' },
{ value: 'WHM19', label: '大中型批发和零售业' },
{ value: 'WHM20', label: '小微批发和零售业' },
{ value: 'WHM22', label: '科技行业' },
],
defaultValue: 'WHM18',
},
{
label: '分支机构',
name: 'managerOrgCode',
type: 'select',
options: [
{ value: '01002', label: '总行营业部' },
{ value: '01003', label: 'JJJS开发区支行' },
{ value: '01005', label: 'XF支行' },
{ value: '01006', label: 'GCZ支行' },
{ value: '01007', label: 'ZL支行' },
{ value: '01008', label: 'HKJ支行' },
{ value: '01009', label: 'HL支行' },
{ value: '01010', label: 'LJ支行' },
{ value: '01012', label: 'GG分行' },
{ value: '01013', label: 'ZY支行' },
{ value: '01014', label: 'ZD支行' },
{ value: '01015', label: 'HK支行' },
{ value: '01016', label: 'DS支行' },
{ value: '01017', label: 'LF支行' },
{ value: '01018', label: 'GS支行' },
{ value: '01019', label: 'LX支行' },
{ value: '01020', label: 'BX支行' },
{ value: '01021', label: 'ZQ支行' },
{ value: '01022', label: 'JF支行' },
{ value: '01023', label: 'CC支行' },
{ value: '01024', label: 'LQ支行' },
{ value: '01025', label: 'DH支行' },
{ value: '01027', label: 'SGH支行' },
],
},
],
tableColumns: [
{ label: '上期客户评级分布', name: 'ratingLevel', align: 'center' },
{
name: 'currRatingDist',
label: '本期客户评级分布',
columns: [
{ label: 'AAA', name: 'aaaBal', align: 'center' },
{ label: 'AA', name: 'aaBal', align: 'center' },
{ label: 'A+', name: 'aPlusBal', align: 'center' },
{ label: 'A', name: 'aBal', align: 'center' },
{ label: 'A-', name: 'aMinusBal', align: 'center' },
{ label: 'BBB', name: 'bbbBal', align: 'center' },
{ label: 'BB+', name: 'bbPlusBal', align: 'center' },
{ label: 'BB', name: 'bbBal', align: 'center' },
{ label: 'BB-', name: 'bbMinusBal', align: 'center' },
{ label: 'B+', name: 'bPlusBal', align: 'center' },
{ label: 'B', name: 'bBal', align: 'center' },
{ label: 'CCC', name: 'cccBal', align: 'center' },
{ label: 'CC', name: 'ccBal', align: 'center' },
{ label: 'C', name: 'cBal', align: 'center' },
{ label: 'D', name: 'dBal', align: 'center' },
{ label: '未评级', name: 'notRatingBal', align: 'center' },
],
},
{
name: 'ratingUpMigrate',
label: '向上迁移',
columns: [
{ label: '信贷余额', name: 'upBal', align: 'center' },
{ label: '占比', name: 'upRatio', align: 'center' },
],
},
{
name: 'ratingDownMigrate',
label: '向下迁移',
columns: [
{ label: '信贷余额', name: 'downBal', align: 'center' },
{ label: '占比', name: 'downRatio', align: 'center' },
],
},
{ label: '迁移指数', name: 'chgExponent', align: 'center' },
],
};
</script>

197
irbs.frontend/src/views/report/RptRatingModelFocusDist.vue

@ -0,0 +1,197 @@
<template>
<div>
<w-grid
ref="rptRatingModelFocusDistGridRef"
title="客户评级模型敞口集中度分布报表"
:data-url="Environment.apiContextPath('api/irbs/rptRatingModelFocusDist/list')"
:sort-no="true"
:checkbox-selection="false"
:query-form-cols-num="4"
:query-form-fields="rptRatingModelFocusDistGrid.queryFormFields"
:columns="rptRatingModelFocusDistGrid.tableColumns"
:toolbar-actions="rptRatingModelFocusDistGrid.buttons"
:pageable="false"
></w-grid>
</div>
</template>
<script setup lang="ts">
import { ref, reactive } from 'vue';
import { useQuasar } from 'quasar';
import { Environment, EnumTools, DictionaryTools, Options, Formater, axios, NotifyManager } from 'platform-core';
const $q = useQuasar();
const rptRatingModelFocusDistGridRef = ref();
const rptRatingModelFocusDistGrid = {
buttons: [
{
extend: 'query',
click: () => {
const QueryParams = rptRatingModelFocusDistGridRef.value.getQueryForm().getData();
axios.get(Environment.apiContextPath('api/irbs/rptRatingModelFocusDist/list'), { params: QueryParams }).then((resp) => {
rptRatingModelFocusDistGridRef.value.setLocalData(resp.data);
});
},
},
'reset',
'separator',
],
queryFormFields: [
{ label: '报表日期', name: 'ratingMonth', type: 'date', defaultValue: '2023-07-01' },
{
label: '分支机构',
name: 'managerOrgCode',
type: 'select',
options: [
{ value: '01002', label: '总行营业部' },
{ value: '01003', label: 'JJJS开发区支行' },
{ value: '01005', label: 'XF支行' },
{ value: '01006', label: 'GCZ支行' },
{ value: '01007', label: 'ZL支行' },
{ value: '01008', label: 'HKJ支行' },
{ value: '01009', label: 'HL支行' },
{ value: '01010', label: 'LJ支行' },
{ value: '01012', label: 'GG分行' },
{ value: '01013', label: 'ZY支行' },
{ value: '01014', label: 'ZD支行' },
{ value: '01015', label: 'HK支行' },
{ value: '01016', label: 'DS支行' },
{ value: '01017', label: 'LF支行' },
{ value: '01018', label: 'GS支行' },
{ value: '01019', label: 'LX支行' },
{ value: '01020', label: 'BX支行' },
{ value: '01021', label: 'ZQ支行' },
{ value: '01022', label: 'JF支行' },
{ value: '01023', label: 'CC支行' },
{ value: '01024', label: 'LQ支行' },
{ value: '01025', label: 'DH支行' },
{ value: '01027', label: 'SGH支行' },
],
},
],
tableColumns: [
{ label: '模型敞口', name: 'modelName', align: 'center' },
{
name: 'AAA',
label: 'AAA',
columns: [
{ label: '客户数', name: 'aaaCnt', align: 'center' },
{ label: '占比', name: 'aaaRatio', align: 'center' },
],
},
{
name: 'AA',
label: 'AA',
columns: [
{ label: '客户数', name: 'aaCnt', align: 'center' },
{ label: '占比', name: 'aaRatio', align: 'center' },
],
},
{
name: 'A+',
label: 'A+',
columns: [
{ label: '客户数', name: 'aPlusCnt', align: 'center' },
{ label: '占比', name: 'aPlusRatio', align: 'center' },
],
},
{
name: 'A',
label: 'A',
columns: [
{ label: '客户数', name: 'aCnt', align: 'center' },
{ label: '占比', name: 'aRatio', align: 'center' },
],
},
{
name: 'A-',
label: 'A-',
columns: [
{ label: '客户数', name: 'aMinusCnt', align: 'center' },
{ label: '占比', name: 'aMinusRatio', align: 'center' },
],
},
{
name: 'BBB',
label: 'BBB',
columns: [
{ label: '客户数', name: 'bbbCnt', align: 'center' },
{ label: '占比', name: 'bbbRatio', align: 'center' },
],
},
{
name: 'BB+',
label: 'BB+',
columns: [
{ label: '客户数', name: 'bbPlusCnt', align: 'center' },
{ label: '占比', name: 'bbPlusRatio', align: 'center' },
],
},
{
name: 'BB',
label: 'BB',
columns: [
{ label: '客户数', name: 'bbCnt', align: 'center' },
{ label: '占比', name: 'bbRatio', align: 'center' },
],
},
{
name: 'BB-',
label: 'BB-',
columns: [
{ label: '客户数', name: 'bbMinusCnt', align: 'center' },
{ label: '占比', name: 'bbMinusRatio', align: 'center' },
],
},
{
name: 'B+',
label: 'B+',
columns: [
{ label: '客户数', name: 'bPlusCnt', align: 'center' },
{ label: '占比', name: 'bPlusRatio', align: 'center' },
],
},
{
name: 'B',
label: 'B',
columns: [
{ label: '客户数', name: 'bCnt', align: 'center' },
{ label: '占比', name: 'bRatio', align: 'center' },
],
},
{
name: 'CCC',
label: 'CCC',
columns: [
{ label: '客户数', name: 'cccCnt', align: 'center' },
{ label: '占比', name: 'cccRatio', align: 'center' },
],
},
{
name: 'CC',
label: 'CC',
columns: [
{ label: '客户数', name: 'ccCnt', align: 'center' },
{ label: '占比', name: 'ccRatio', align: 'center' },
],
},
{
name: 'C',
label: 'C',
columns: [
{ label: '客户数', name: 'cCnt', align: 'center' },
{ label: '占比', name: 'cRatio', align: 'center' },
],
},
{
name: 'D',
label: 'D',
columns: [
{ label: '客户数', name: 'dCnt', align: 'center' },
{ label: '占比', name: 'dRatio', align: 'center' },
],
},
],
};
</script>

146
irbs.frontend/src/views/report/RptRatingNumberMigrate.vue

@ -0,0 +1,146 @@
<template>
<div>
<w-grid
ref="rptRatingNumberMigrateRef"
title="客户评级迁移报表(客户数)"
:data-url="Environment.apiContextPath('api/irbs/rptRatingNumberMigrate/list')"
:sort-no="true"
:checkbox-selection="false"
:query-form-cols-num="2"
:query-form-fields="rptRatingNumberMigrateGrid.queryFormFields"
:columns="rptRatingNumberMigrateGrid.tableColumns"
:toolbar-actions="rptRatingNumberMigrateGrid.buttons"
:pageable="false"
></w-grid>
</div>
</template>
<script setup lang="ts">
import { ref, reactive } from 'vue';
import { useQuasar } from 'quasar';
import { Environment, EnumTools, DictionaryTools, Options, Formater, axios, NotifyManager } from 'platform-core';
const $q = useQuasar();
const rptRatingNumberMigrateRef = ref();
const rptRatingNumberMigrateGrid = {
buttons: [
{
extend: 'query',
click: () => {
const QueryParams = rptRatingNumberMigrateRef.value.getQueryForm().getData();
axios.get(Environment.apiContextPath('api/irbs/rptRatingNumberMigrate/list'), { params: QueryParams }).then((resp) => {
rptRatingNumberMigrateRef.value.setLocalData(resp.data);
});
},
},
'reset',
'separator',
],
queryFormFields: [
{ label: '报表日期', name: 'ratingMonth', type: 'date', defaultValue: '2023-07-01' },
{
label: '模型敞口',
name: 'modelCode',
type: 'select',
options: [
{ value: 'WHM1', label: '政府投融资平台' },
{ value: 'WHM2', label: '事业单位' },
{ value: 'WHM3', label: '银行类金融机构' },
{ value: 'WHM41', label: '金融租赁与消费金融公司' },
{ value: 'WHM42', label: '证券公司' },
{ value: 'WHM43', label: '其他非银行金融机构' },
{ value: 'WHM44', label: '基金公司' },
{ value: 'WHM5', label: '新建企业' },
{ value: 'WHM6', label: '综合性集团' },
{ value: 'WHM7', label: '大型其他行业' },
{ value: 'WHM8', label: '中小微其他行业' },
{ value: 'WHM9', label: '大中型租赁和商务服务行业' },
{ value: 'WHM10', label: '小微租赁和商务服务业' },
{ value: 'WHM12', label: '房地产业' },
{ value: 'WHM13', label: '大中型农林牧渔业' },
{ value: 'WHM14', label: '小微农林牧渔业' },
{ value: 'WHM15', label: '大型建筑业' },
{ value: 'WHM16', label: '中小微建筑业' },
{ value: 'WHM17', label: '大中型制造业' },
{ value: 'WHM18', label: '小微制造业' },
{ value: 'WHM19', label: '大中型批发和零售业' },
{ value: 'WHM20', label: '小微批发和零售业' },
{ value: 'WHM22', label: '科技行业' },
],
},
{
label: '分支机构',
name: 'managerOrgCode',
type: 'select',
options: [
{ value: '01002', label: '总行营业部' },
{ value: '01003', label: 'JJJS开发区支行' },
{ value: '01005', label: 'XF支行' },
{ value: '01006', label: 'GCZ支行' },
{ value: '01007', label: 'ZL支行' },
{ value: '01008', label: 'HKJ支行' },
{ value: '01009', label: 'HL支行' },
{ value: '01010', label: 'LJ支行' },
{ value: '01012', label: 'GG分行' },
{ value: '01013', label: 'ZY支行' },
{ value: '01014', label: 'ZD支行' },
{ value: '01015', label: 'HK支行' },
{ value: '01016', label: 'DS支行' },
{ value: '01017', label: 'LF支行' },
{ value: '01018', label: 'GS支行' },
{ value: '01019', label: 'LX支行' },
{ value: '01020', label: 'BX支行' },
{ value: '01021', label: 'ZQ支行' },
{ value: '01022', label: 'JF支行' },
{ value: '01023', label: 'CC支行' },
{ value: '01024', label: 'LQ支行' },
{ value: '01025', label: 'DH支行' },
{ value: '01027', label: 'SGH支行' },
],
},
],
tableColumns: [
{ label: '上期客户评级分布', name: 'ratingLevel', align: 'center' },
{
name: 'currRatingDist',
label: '本期客户评级分布',
columns: [
{ label: 'AAA', name: 'aaaCnt', align: 'center' },
{ label: 'AA', name: 'aaCnt', align: 'center' },
{ label: 'A+', name: 'aPlusCnt', align: 'center' },
{ label: 'A', name: 'aCnt', align: 'center' },
{ label: 'A-', name: 'aMinusCnt', align: 'center' },
{ label: 'BBB', name: 'bbbCnt', align: 'center' },
{ label: 'BB+', name: 'bbPlusCnt', align: 'center' },
{ label: 'BB', name: 'bbCnt', align: 'center' },
{ label: 'BB-', name: 'bbMinusCnt', align: 'center' },
{ label: 'B+', name: 'bPlusCnt', align: 'center' },
{ label: 'B', name: 'bCnt', align: 'center' },
{ label: 'CCC', name: 'cccCnt', align: 'center' },
{ label: 'CC', name: 'ccCnt', align: 'center' },
{ label: 'C', name: 'cCnt', align: 'center' },
{ label: 'D', name: 'dCnt', align: 'center' },
{ label: '未评级', name: 'notRatingCnt', align: 'center' },
],
},
{
name: 'ratingUpMigrate',
label: '向上迁移',
columns: [
{ label: '客户数', name: 'upCnt', align: 'center' },
{ label: '占比', name: 'upRatio', align: 'center' },
],
},
{
name: 'ratingDownMigrate',
label: '向下迁移',
columns: [
{ label: '客户数', name: 'downCnt', align: 'center' },
{ label: '占比', name: 'downRatio', align: 'center' },
],
},
{ label: '迁移指数', name: 'chgExponent', align: 'center' },
],
};
</script>

197
irbs.frontend/src/views/report/RptRatingOrgFocusDist.vue

@ -0,0 +1,197 @@
<template>
<div>
<w-grid
ref="rptRatingOrgFocusDistGridRef"
title="客户评级分支机构集中度分布报表"
:data-url="Environment.apiContextPath('api/irbs/rptRatingOrgFocusDist/list')"
:sort-no="true"
:checkbox-selection="false"
:query-form-cols-num="4"
:query-form-fields="rptRatingOrgFocusDistGrid.queryFormFields"
:columns="rptRatingOrgFocusDistGrid.tableColumns"
:toolbar-actions="rptRatingOrgFocusDistGrid.buttons"
:pageable="false"
></w-grid>
</div>
</template>
<script setup lang="ts">
import { ref, reactive } from 'vue';
import { useQuasar } from 'quasar';
import { Environment, EnumTools, DictionaryTools, Options, Formater, axios, NotifyManager } from 'platform-core';
const $q = useQuasar();
const rptRatingOrgFocusDistGridRef = ref();
const rptRatingOrgFocusDistGrid = {
buttons: [
{
extend: 'query',
click: () => {
const QueryParams = rptRatingOrgFocusDistGridRef.value.getQueryForm().getData();
axios.get(Environment.apiContextPath('api/irbs/rptRatingOrgFocusDist/list'), { params: QueryParams }).then((resp) => {
rptRatingOrgFocusDistGridRef.value.setLocalData(resp.data);
});
},
},
'reset',
'separator',
],
queryFormFields: [
{ label: '报表日期', name: 'ratingMonth', type: 'date', defaultValue: '2023-07-01' },
{
label: '模型敞口',
name: 'modelCode',
type: 'select',
options: [
{ value: 'WHM1', label: '政府投融资平台' },
{ value: 'WHM2', label: '事业单位' },
{ value: 'WHM3', label: '银行类金融机构' },
{ value: 'WHM41', label: '金融租赁与消费金融公司' },
{ value: 'WHM42', label: '证券公司' },
{ value: 'WHM43', label: '其他非银行金融机构' },
{ value: 'WHM44', label: '基金公司' },
{ value: 'WHM5', label: '新建企业' },
{ value: 'WHM6', label: '综合性集团' },
{ value: 'WHM7', label: '大型其他行业' },
{ value: 'WHM8', label: '中小微其他行业' },
{ value: 'WHM9', label: '大中型租赁和商务服务行业' },
{ value: 'WHM10', label: '小微租赁和商务服务业' },
{ value: 'WHM12', label: '房地产业' },
{ value: 'WHM13', label: '大中型农林牧渔业' },
{ value: 'WHM14', label: '小微农林牧渔业' },
{ value: 'WHM15', label: '大型建筑业' },
{ value: 'WHM16', label: '中小微建筑业' },
{ value: 'WHM17', label: '大中型制造业' },
{ value: 'WHM18', label: '小微制造业' },
{ value: 'WHM19', label: '大中型批发和零售业' },
{ value: 'WHM20', label: '小微批发和零售业' },
{ value: 'WHM22', label: '科技行业' },
],
},
],
tableColumns: [
{ label: '分支机构', name: 'managerOrgName', align: 'center' },
{
name: 'AAA',
label: 'AAA',
columns: [
{ label: '客户数', name: 'aaaCnt', align: 'center' },
{ label: '占比', name: 'aaaRatio', align: 'center' },
],
},
{
name: 'AA',
label: 'AA',
columns: [
{ label: '客户数', name: 'aaCnt', align: 'center' },
{ label: '占比', name: 'aaRatio', align: 'center' },
],
},
{
name: 'A+',
label: 'A+',
columns: [
{ label: '客户数', name: 'aPlusCnt', align: 'center' },
{ label: '占比', name: 'aPlusRatio', align: 'center' },
],
},
{
name: 'A',
label: 'A',
columns: [
{ label: '客户数', name: 'aCnt', align: 'center' },
{ label: '占比', name: 'aRatio', align: 'center' },
],
},
{
name: 'A-',
label: 'A-',
columns: [
{ label: '客户数', name: 'aMinusCnt', align: 'center' },
{ label: '占比', name: 'aMinusRatio', align: 'center' },
],
},
{
name: 'BBB',
label: 'BBB',
columns: [
{ label: '客户数', name: 'bbbCnt', align: 'center' },
{ label: '占比', name: 'bbbRatio', align: 'center' },
],
},
{
name: 'BB+',
label: 'BB+',
columns: [
{ label: '客户数', name: 'bbPlusCnt', align: 'center' },
{ label: '占比', name: 'bbPlusRatio', align: 'center' },
],
},
{
name: 'BB',
label: 'BB',
columns: [
{ label: '客户数', name: 'bbCnt', align: 'center' },
{ label: '占比', name: 'bbRatio', align: 'center' },
],
},
{
name: 'BB-',
label: 'BB-',
columns: [
{ label: '客户数', name: 'bbMinusCnt', align: 'center' },
{ label: '占比', name: 'bbMinusRatio', align: 'center' },
],
},
{
name: 'B+',
label: 'B+',
columns: [
{ label: '客户数', name: 'bPlusCnt', align: 'center' },
{ label: '占比', name: 'bPlusRatio', align: 'center' },
],
},
{
name: 'B',
label: 'B',
columns: [
{ label: '客户数', name: 'bCnt', align: 'center' },
{ label: '占比', name: 'bRatio', align: 'center' },
],
},
{
name: 'CCC',
label: 'CCC',
columns: [
{ label: '客户数', name: 'cccCnt', align: 'center' },
{ label: '占比', name: 'cccRatio', align: 'center' },
],
},
{
name: 'CC',
label: 'CC',
columns: [
{ label: '客户数', name: 'ccCnt', align: 'center' },
{ label: '占比', name: 'ccRatio', align: 'center' },
],
},
{
name: 'C',
label: 'C',
columns: [
{ label: '客户数', name: 'cCnt', align: 'center' },
{ label: '占比', name: 'cRatio', align: 'center' },
],
},
{
name: 'D',
label: 'D',
columns: [
{ label: '客户数', name: 'dCnt', align: 'center' },
{ label: '占比', name: 'dRatio', align: 'center' },
],
},
],
};
</script>

129
irbs.frontend/src/views/report/RptRatingOverturn.vue

@ -0,0 +1,129 @@
<template>
<div>
<w-grid
ref="rptRatingOverturnGridRef"
title="客户评级推翻情况报表"
:data-url="Environment.apiContextPath('api/irbs/rptRatingOverturn/list')"
:sort-no="true"
:checkbox-selection="false"
:query-form-cols-num="4"
:query-form-fields="rptRatingOverturnGrid.queryFormFields"
:columns="rptRatingOverturnGrid.columns"
:toolbar-actions="rptRatingOverturnGrid.buttons"
:pageable="false"
></w-grid>
</div>
</template>
<script setup lang="ts">
import { ref, reactive } from 'vue';
import { useQuasar } from 'quasar';
import { Environment, EnumTools, DictionaryTools, Options, Formater, axios, NotifyManager } from 'platform-core';
const $q = useQuasar();
const rptRatingOverturnGridRef = ref();
const rptRatingOverturnGrid = {
buttons: [
{
extend: 'query',
click: () => {
const QueryParams = rptRatingOverturnGridRef.value.getQueryForm().getData();
axios.get(Environment.apiContextPath('api/irbs/rptRatingOverturn/list'), { params: QueryParams }).then((resp) => {
rptRatingOverturnGridRef.value.setLocalData(resp.data);
});
},
},
'reset',
'separator',
'export',
],
queryFormFields: [
{ label: '报表日期', name: 'ratingMonth', type: 'date', defaultValue: '2023-07-01' },
{
label: '模型敞口',
name: 'modelCode',
type: 'select',
options: [
{ value: 'WHM1', label: '政府投融资平台' },
{ value: 'WHM2', label: '事业单位' },
{ value: 'WHM3', label: '银行类金融机构' },
{ value: 'WHM41', label: '金融租赁与消费金融公司' },
{ value: 'WHM42', label: '证券公司' },
{ value: 'WHM43', label: '其他非银行金融机构' },
{ value: 'WHM44', label: '基金公司' },
{ value: 'WHM5', label: '新建企业' },
{ value: 'WHM6', label: '综合性集团' },
{ value: 'WHM7', label: '大型其他行业' },
{ value: 'WHM8', label: '中小微其他行业' },
{ value: 'WHM9', label: '大中型租赁和商务服务行业' },
{ value: 'WHM10', label: '小微租赁和商务服务业' },
{ value: 'WHM12', label: '房地产业' },
{ value: 'WHM13', label: '大中型农林牧渔业' },
{ value: 'WHM14', label: '小微农林牧渔业' },
{ value: 'WHM15', label: '大型建筑业' },
{ value: 'WHM16', label: '中小微建筑业' },
{ value: 'WHM17', label: '大中型制造业' },
{ value: 'WHM18', label: '小微制造业' },
{ value: 'WHM19', label: '大中型批发和零售业' },
{ value: 'WHM20', label: '小微批发和零售业' },
{ value: 'WHM22', label: '科技行业' },
],
},
{
label: '分支机构',
name: 'managerOrgCode',
type: 'select',
options: [
{ value: '01002', label: '总行营业部' },
{ value: '01003', label: 'JJJS开发区支行' },
{ value: '01005', label: 'XF支行' },
{ value: '01006', label: 'GCZ支行' },
{ value: '01007', label: 'ZL支行' },
{ value: '01008', label: 'HKJ支行' },
{ value: '01009', label: 'HL支行' },
{ value: '01010', label: 'LJ支行' },
{ value: '01012', label: 'GG分行' },
{ value: '01013', label: 'ZY支行' },
{ value: '01014', label: 'ZD支行' },
{ value: '01015', label: 'HK支行' },
{ value: '01016', label: 'DS支行' },
{ value: '01017', label: 'LF支行' },
{ value: '01018', label: 'GS支行' },
{ value: '01019', label: 'LX支行' },
{ value: '01020', label: 'BX支行' },
{ value: '01021', label: 'ZQ支行' },
{ value: '01022', label: 'JF支行' },
{ value: '01023', label: 'CC支行' },
{ value: '01024', label: 'LQ支行' },
{ value: '01025', label: 'DH支行' },
{ value: '01027', label: 'SGH支行' },
],
},
],
columns: [
{ label: '评级时间', name: 'ratingMonth', align: 'center' },
{ label: '评级客户数', name: 'custCnt', align: 'center' },
{ label: '推翻客户数', name: 'overturnCnt', align: 'center' },
{ label: '推翻率', name: 'overturnRatio', align: 'center' },
{
label: '推翻方向',
name: 'overturnPositionHeader',
columns: [
{ label: '向下推翻', name: 'upOverturnRatio', align: 'center' },
{ label: '向上推翻', name: 'downOverturnRatio', align: 'center' },
],
},
{
label: '推翻幅度',
name: 'overturnRangeHeader',
columns: [
{ label: '1级', name: 'oneLvlRatio' },
{ label: '2级', name: 'twoLvlRatio' },
{ label: '3级', name: 'threeLvlRatio' },
{ label: '3级以上', name: 'threeMoreLvlRatio' },
],
},
],
};
</script>

0
irbs.reports/README.adoc

5
irbs.reports/build.gradle

@ -0,0 +1,5 @@
dependencies {
api(
"io.sc:io.sc.platform.mvc:${platform_version}",
)
}

0
irbs.reports/gradle.properties

23
irbs.reports/src/main/java/irbs/reports/controller/RptModelBinomialCheckController.java

@ -0,0 +1,23 @@
package irbs.reports.controller;
import irbs.reports.jpa.support.RptModelBinomialCheckVo;
import irbs.reports.service.RptModelBinomialCheckService;
import irbs.reports.service.support.QueryParams;
import org.springframework.beans.factory.annotation.Autowired;
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;
@RestController
@RequestMapping("/api/irbs/rptModelMonitorBinomialCheck")
public class RptModelBinomialCheckController {
@Autowired
private RptModelBinomialCheckService rptModelBinomialCheckService;
@GetMapping("list")
public List<RptModelBinomialCheckVo> list(QueryParams queryParams) throws Exception{
return rptModelBinomialCheckService.query(queryParams);
}
}

23
irbs.reports/src/main/java/irbs/reports/controller/RptModelMonitorDiffController.java

@ -0,0 +1,23 @@
package irbs.reports.controller;
import irbs.reports.jpa.support.RptModelMonitorDiffVo;
import irbs.reports.service.RptModelMonitorDiffService;
import irbs.reports.service.support.QueryParams;
import org.springframework.beans.factory.annotation.Autowired;
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;
@RestController
@RequestMapping("/api/irbs/rptModelMonitorDiff")
public class RptModelMonitorDiffController {
@Autowired
private RptModelMonitorDiffService rptModelMonitorDiffService;
@GetMapping("list")
public List<RptModelMonitorDiffVo> list(QueryParams queryParams) throws Exception{
return rptModelMonitorDiffService.query(queryParams);
}
}

25
irbs.reports/src/main/java/irbs/reports/controller/RptModelMonitorStableController.java

@ -0,0 +1,25 @@
package irbs.reports.controller;
import irbs.reports.jpa.support.RptModelMonitorDiffVo;
import irbs.reports.jpa.support.RptModelMonitorStableVo;
import irbs.reports.service.RptModelMonitorDiffService;
import irbs.reports.service.RptModelMonitorStableService;
import irbs.reports.service.support.QueryParams;
import org.springframework.beans.factory.annotation.Autowired;
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;
@RestController
@RequestMapping("/api/irbs/rptModelMonitorStable")
public class RptModelMonitorStableController {
@Autowired
private RptModelMonitorStableService rptModelMonitorStableService;
@GetMapping("list")
public List<RptModelMonitorStableVo> list(QueryParams queryParams) throws Exception{
return rptModelMonitorStableService.query(queryParams);
}
}

24
irbs.reports/src/main/java/irbs/reports/controller/RptRatingAdjustController.java

@ -0,0 +1,24 @@
package irbs.reports.controller;
import irbs.reports.jpa.support.RptRatingAdjustVo;
import irbs.reports.service.RptRatingAdjustService;
import irbs.reports.service.support.QueryParams;
import org.springframework.beans.factory.annotation.Autowired;
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;
@RestController
@RequestMapping("/api/irbs/rptRatingAdjust")
public class RptRatingAdjustController {
@Autowired
private RptRatingAdjustService rptRatingAdjustService;
@GetMapping("list")
public List<RptRatingAdjustVo> list(QueryParams queryParams) throws Exception{
List<RptRatingAdjustVo> list = rptRatingAdjustService.query(queryParams);
return list;
}
}

23
irbs.reports/src/main/java/irbs/reports/controller/RptRatingDistributionController.java

@ -0,0 +1,23 @@
package irbs.reports.controller;
import irbs.reports.jpa.support.RptRatingDistributionVo;
import irbs.reports.service.RptRatingDistributionService;
import irbs.reports.service.support.QueryParams;
import org.springframework.beans.factory.annotation.Autowired;
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;
@RestController
@RequestMapping("/api/irbs/rptRatingDistribution")
public class RptRatingDistributionController {
@Autowired
private RptRatingDistributionService rptRatingDistributionService;
@GetMapping("list")
public List<RptRatingDistributionVo> list(QueryParams queryParams) throws Exception{
return rptRatingDistributionService.query(queryParams);
}
}

26
irbs.reports/src/main/java/irbs/reports/controller/RptRatingIndustryFocusDistController.java

@ -0,0 +1,26 @@
package irbs.reports.controller;
import irbs.reports.jpa.support.RptRatingIndustryFocusDistVo;
import irbs.reports.jpa.support.RptRatingOrgFocusDistVo;
import irbs.reports.service.RptRatingIndustryFocusDistService;
import irbs.reports.service.RptRatingOrgFocusDistService;
import irbs.reports.service.support.QueryParams;
import org.springframework.beans.factory.annotation.Autowired;
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;
@RestController
@RequestMapping("/api/irbs/rptRatingIndustryFocusDist")
public class RptRatingIndustryFocusDistController {
@Autowired
private RptRatingIndustryFocusDistService rptRatingIndustryFocusDistService;
@GetMapping("list")
public List<RptRatingIndustryFocusDistVo> list(QueryParams queryParams) throws Exception{
List<RptRatingIndustryFocusDistVo> list = rptRatingIndustryFocusDistService.query(queryParams);
return list;
}
}

26
irbs.reports/src/main/java/irbs/reports/controller/RptRatingLoanBalanceMigrateController.java

@ -0,0 +1,26 @@
package irbs.reports.controller;
import irbs.reports.jpa.support.RptRatingLoanBalanceMigrateVo;
import irbs.reports.jpa.support.RptRatingNumberMigrateVo;
import irbs.reports.service.RptRatingLoanBalanceMigrateService;
import irbs.reports.service.RptRatingNumberMigrateService;
import irbs.reports.service.support.QueryParams;
import org.springframework.beans.factory.annotation.Autowired;
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;
@RestController
@RequestMapping("/api/irbs/rptRatingLoanBalanceMigrate")
public class RptRatingLoanBalanceMigrateController {
@Autowired
private RptRatingLoanBalanceMigrateService rptRatingLoanBalanceMigrateService;
@GetMapping("list")
public List<RptRatingLoanBalanceMigrateVo> list(QueryParams queryParams) throws Exception{
List<RptRatingLoanBalanceMigrateVo> list = rptRatingLoanBalanceMigrateService.query(queryParams);
return list;
}
}

24
irbs.reports/src/main/java/irbs/reports/controller/RptRatingModelFocusDistController.java

@ -0,0 +1,24 @@
package irbs.reports.controller;
import irbs.reports.jpa.support.RptRatingModelFocusDistVo;
import irbs.reports.service.RptRatingModelFocusDistService;
import irbs.reports.service.support.QueryParams;
import org.springframework.beans.factory.annotation.Autowired;
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;
@RestController
@RequestMapping("/api/irbs/rptRatingModelFocusDist")
public class RptRatingModelFocusDistController {
@Autowired
private RptRatingModelFocusDistService rptRatingModelFocusDistService;
@GetMapping("list")
public List<RptRatingModelFocusDistVo> list(QueryParams queryParams) throws Exception{
List<RptRatingModelFocusDistVo> list = rptRatingModelFocusDistService.query(queryParams);
return list;
}
}

26
irbs.reports/src/main/java/irbs/reports/controller/RptRatingNumberMigrateController.java

@ -0,0 +1,26 @@
package irbs.reports.controller;
import irbs.reports.jpa.support.RptRatingNumberMigrateVo;
import irbs.reports.jpa.support.RptRatingOrgFocusDistVo;
import irbs.reports.service.RptRatingNumberMigrateService;
import irbs.reports.service.RptRatingOrgFocusDistService;
import irbs.reports.service.support.QueryParams;
import org.springframework.beans.factory.annotation.Autowired;
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;
@RestController
@RequestMapping("/api/irbs/rptRatingNumberMigrate")
public class RptRatingNumberMigrateController {
@Autowired
private RptRatingNumberMigrateService rptRatingOrgFocusDistService;
@GetMapping("list")
public List<RptRatingNumberMigrateVo> list(QueryParams queryParams) throws Exception{
List<RptRatingNumberMigrateVo> list = rptRatingOrgFocusDistService.query(queryParams);
return list;
}
}

26
irbs.reports/src/main/java/irbs/reports/controller/RptRatingOrgFocusDistController.java

@ -0,0 +1,26 @@
package irbs.reports.controller;
import irbs.reports.jpa.support.RptRatingModelFocusDistVo;
import irbs.reports.jpa.support.RptRatingOrgFocusDistVo;
import irbs.reports.service.RptRatingModelFocusDistService;
import irbs.reports.service.RptRatingOrgFocusDistService;
import irbs.reports.service.support.QueryParams;
import org.springframework.beans.factory.annotation.Autowired;
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;
@RestController
@RequestMapping("/api/irbs/rptRatingOrgFocusDist")
public class RptRatingOrgFocusDistController {
@Autowired
private RptRatingOrgFocusDistService rptRatingOrgFocusDistService;
@GetMapping("list")
public List<RptRatingOrgFocusDistVo> list(QueryParams queryParams) throws Exception{
List<RptRatingOrgFocusDistVo> list = rptRatingOrgFocusDistService.query(queryParams);
return list;
}
}

23
irbs.reports/src/main/java/irbs/reports/controller/RptRatingOverturnController.java

@ -0,0 +1,23 @@
package irbs.reports.controller;
import irbs.reports.jpa.support.RptRatingOverturnVo;
import irbs.reports.service.RptRatingOverturnService;
import irbs.reports.service.support.QueryParams;
import org.springframework.beans.factory.annotation.Autowired;
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;
@RestController
@RequestMapping("/api/irbs/rptRatingOverturn")
public class RptRatingOverturnController {
@Autowired
private RptRatingOverturnService rptRatingOverturnService;
@GetMapping("list")
public List<RptRatingOverturnVo> list(QueryParams queryParams) throws Exception{
return rptRatingOverturnService.query(queryParams);
}
}

69
irbs.reports/src/main/java/irbs/reports/jpa/entity/ReportSqlConfig.java

@ -0,0 +1,69 @@
package irbs.reports.jpa.entity;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import javax.validation.constraints.Size;
/**
* 报表sql配置
* @author chengjie
*
*/
@Entity
@Table(name="NS_R_CFG_RPT_SQL")
public class ReportSqlConfig {
//主键
@Id
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid2")
@Column(name="ID_")
@Size(max=50)
protected String id;
// 报表ID
@Column(name="REPORT_ID")
@Size(max=255)
protected String reportId;
// 数据库类型
@Column(name="DATABASE_TYPE")
protected String dataBaseType;
// 报表的sql语句
@Column(name="SQL_TEXT")
protected String sqlText;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getReportId() {
return reportId;
}
public void setReportId(String reportId) {
this.reportId = reportId;
}
public String getDataBaseType() {
return dataBaseType;
}
public void setDataBaseType(String dataBaseType) {
this.dataBaseType = dataBaseType;
}
public String getSqlText() {
return sqlText;
}
public void setSqlText(String sqlText) {
this.sqlText = sqlText;
}
}

8
irbs.reports/src/main/java/irbs/reports/jpa/repository/ReportSqlConfigRepository.java

@ -0,0 +1,8 @@
package irbs.reports.jpa.repository;
import io.sc.platform.orm.repository.DaoRepository;
import irbs.reports.jpa.entity.ReportSqlConfig;
public interface ReportSqlConfigRepository extends DaoRepository<ReportSqlConfig, String> {
public ReportSqlConfig findByReportIdAndDataBaseType(String reportId, String dataBaseType);
}

58
irbs.reports/src/main/java/irbs/reports/jpa/support/RptModelBinomialCheckVo.java

@ -0,0 +1,58 @@
package irbs.reports.jpa.support;
public class RptModelBinomialCheckVo {
private String ratingYear;
private String binomialCheck;
private String riskLevel;
private Integer totalNormalCnt;
private Integer totalBadCnt;
private Integer totalCustCnt;
public String getRatingYear() {
return ratingYear;
}
public void setRatingYear(String ratingYear) {
this.ratingYear = ratingYear;
}
public String getBinomialCheck() {
return binomialCheck;
}
public void setBinomialCheck(String binomialCheck) {
this.binomialCheck = binomialCheck;
}
public String getRiskLevel() {
return riskLevel;
}
public void setRiskLevel(String riskLevel) {
this.riskLevel = riskLevel;
}
public Integer getTotalNormalCnt() {
return totalNormalCnt;
}
public void setTotalNormalCnt(Integer totalNormalCnt) {
this.totalNormalCnt = totalNormalCnt;
}
public Integer getTotalBadCnt() {
return totalBadCnt;
}
public void setTotalBadCnt(Integer totalBadCnt) {
this.totalBadCnt = totalBadCnt;
}
public Integer getTotalCustCnt() {
return totalCustCnt;
}
public void setTotalCustCnt(Integer totalCustCnt) {
this.totalCustCnt = totalCustCnt;
}
}

20
irbs.reports/src/main/java/irbs/reports/jpa/support/RptModelBinomialCheckVoRowMapper.java

@ -0,0 +1,20 @@
package irbs.reports.jpa.support;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
public class RptModelBinomialCheckVoRowMapper implements RowMapper<RptModelBinomialCheckVo> {
@Override
public RptModelBinomialCheckVo mapRow(ResultSet rs, int rowNum) throws SQLException {
RptModelBinomialCheckVo vo = new RptModelBinomialCheckVo();
vo.setRatingYear(rs.getString("EFFECTIVE_Y"));
vo.setBinomialCheck(rs.getString("BINOMIAL_CHECK"));
vo.setRiskLevel(rs.getString("RISK_LEVEL"));
vo.setTotalNormalCnt(rs.getInt("NORMAL_CNT"));
vo.setTotalBadCnt(rs.getInt("DEF_CNT"));
vo.setTotalCustCnt(rs.getInt("CUST_CNT"));
return vo;
}
}

67
irbs.reports/src/main/java/irbs/reports/jpa/support/RptModelMonitorDiffVo.java

@ -0,0 +1,67 @@
package irbs.reports.jpa.support;
public class RptModelMonitorDiffVo {
private String ratingQuarter;
private Double ks;
private Double ar;
private String riskLevel;
private Integer totalNormalCnt;
private Integer totalBadCnt;
private Integer totalCustCnt;
public String getRatingQuarter() {
return ratingQuarter;
}
public void setRatingQuarter(String ratingQuarter) {
this.ratingQuarter = ratingQuarter;
}
public Double getKs() {
return ks;
}
public void setKs(Double ks) {
this.ks = ks;
}
public Double getAr() {
return ar;
}
public void setAr(Double ar) {
this.ar = ar;
}
public String getRiskLevel() {
return riskLevel;
}
public void setRiskLevel(String riskLevel) {
this.riskLevel = riskLevel;
}
public Integer getTotalNormalCnt() {
return totalNormalCnt;
}
public void setTotalNormalCnt(Integer totalNormalCnt) {
this.totalNormalCnt = totalNormalCnt;
}
public Integer getTotalBadCnt() {
return totalBadCnt;
}
public void setTotalBadCnt(Integer totalBadCnt) {
this.totalBadCnt = totalBadCnt;
}
public Integer getTotalCustCnt() {
return totalCustCnt;
}
public void setTotalCustCnt(Integer totalCustCnt) {
this.totalCustCnt = totalCustCnt;
}
}

21
irbs.reports/src/main/java/irbs/reports/jpa/support/RptModelMonitorDiffVoRowMapper.java

@ -0,0 +1,21 @@
package irbs.reports.jpa.support;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
public class RptModelMonitorDiffVoRowMapper implements RowMapper<RptModelMonitorDiffVo> {
@Override
public RptModelMonitorDiffVo mapRow(ResultSet rs, int rowNum) throws SQLException {
RptModelMonitorDiffVo vo = new RptModelMonitorDiffVo();
vo.setRatingQuarter(rs.getString("EFFECTIVE_Q"));
vo.setAr(rs.getDouble("AR"));
vo.setKs(rs.getDouble("KS"));
vo.setRiskLevel(rs.getString("RISK_LEVEL"));
vo.setTotalNormalCnt(rs.getInt("TOT_NORMAL_CNT"));
vo.setTotalBadCnt(rs.getInt("TOT_BAD_CNT"));
vo.setTotalCustCnt(rs.getInt("TOT_CUST_CNT"));
return vo;
}
}

31
irbs.reports/src/main/java/irbs/reports/jpa/support/RptModelMonitorStableVo.java

@ -0,0 +1,31 @@
package irbs.reports.jpa.support;
public class RptModelMonitorStableVo {
private String ratingQuarter;
private Double psi;
private String riskLevel;
public String getRatingQuarter() {
return ratingQuarter;
}
public void setRatingQuarter(String ratingQuarter) {
this.ratingQuarter = ratingQuarter;
}
public Double getPsi() {
return psi;
}
public void setPsi(Double psi) {
this.psi = psi;
}
public String getRiskLevel() {
return riskLevel;
}
public void setRiskLevel(String riskLevel) {
this.riskLevel = riskLevel;
}
}

17
irbs.reports/src/main/java/irbs/reports/jpa/support/RptModelMonitorStableVoRowMapper.java

@ -0,0 +1,17 @@
package irbs.reports.jpa.support;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
public class RptModelMonitorStableVoRowMapper implements RowMapper<RptModelMonitorStableVo> {
@Override
public RptModelMonitorStableVo mapRow(ResultSet rs, int rowNum) throws SQLException {
RptModelMonitorStableVo vo = new RptModelMonitorStableVo();
vo.setRatingQuarter(rs.getString("EFFECTIVE_Q"));
vo.setPsi(rs.getDouble("PSI"));
vo.setRiskLevel(rs.getString("RISK_LEVEL"));
return vo;
}
}

77
irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingAdjustVo.java

@ -0,0 +1,77 @@
package irbs.reports.jpa.support;
public class RptRatingAdjustVo {
private String ratingMonth;
private Integer custCnt;
private Integer adjCnt;
private Double adjRatio;
private Double oneLvlRatio;
private Double twoLvlRatio;
private Double threeLvlRatio;
private Double threeMoreLvlRatio;
public String getRatingMonth() {
return ratingMonth;
}
public void setRatingMonth(String ratingMonth) {
this.ratingMonth = ratingMonth;
}
public Integer getCustCnt() {
return custCnt;
}
public void setCustCnt(Integer custCnt) {
this.custCnt = custCnt;
}
public Double getOneLvlRatio() {
return oneLvlRatio;
}
public void setOneLvlRatio(Double oneLvlRatio) {
this.oneLvlRatio = oneLvlRatio;
}
public Double getTwoLvlRatio() {
return twoLvlRatio;
}
public Integer getAdjCnt() {
return adjCnt;
}
public void setAdjCnt(Integer adjCnt) {
this.adjCnt = adjCnt;
}
public Double getAdjRatio() {
return adjRatio;
}
public void setAdjRatio(Double adjRatio) {
this.adjRatio = adjRatio;
}
public void setTwoLvlRatio(Double twoLvlRatio) {
this.twoLvlRatio = twoLvlRatio;
}
public Double getThreeLvlRatio() {
return threeLvlRatio;
}
public void setThreeLvlRatio(Double threeLvlRatio) {
this.threeLvlRatio = threeLvlRatio;
}
public Double getThreeMoreLvlRatio() {
return threeMoreLvlRatio;
}
public void setThreeMoreLvlRatio(Double threeMoreLvlRatio) {
this.threeMoreLvlRatio = threeMoreLvlRatio;
}
}

22
irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingAdjustVoRowMapper.java

@ -0,0 +1,22 @@
package irbs.reports.jpa.support;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
public class RptRatingAdjustVoRowMapper implements RowMapper<RptRatingAdjustVo> {
@Override
public RptRatingAdjustVo mapRow(ResultSet rs, int rowNum) throws SQLException {
RptRatingAdjustVo vo = new RptRatingAdjustVo();
vo.setRatingMonth(rs.getString("EFFECTIVE_MONTH"));
vo.setCustCnt(rs.getInt("CUST_CNT"));
vo.setAdjCnt(rs.getInt("ADJ_CNT"));
vo.setAdjRatio(rs.getDouble("ADJ_RATIO"));
vo.setOneLvlRatio(rs.getDouble("ONE_LVL_RATIO"));
vo.setTwoLvlRatio(rs.getDouble("TWO_LVL_RATIO"));
vo.setThreeLvlRatio(rs.getDouble("THREE_LVL_RATIO"));
vo.setThreeMoreLvlRatio(rs.getDouble("THREE_MORE_LVL_RATIO"));
return vo;
}
}

85
irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingDistributionVo.java

@ -0,0 +1,85 @@
package irbs.reports.jpa.support;
public class RptRatingDistributionVo {
private String ratingLevel;
private Integer custCnt;
private Double custRatio;
private Double borrBal;
private Double borrBalRatio;
private Integer currInctCnt;
private Double currInctRatio;
private Integer defCustCnt;
private Double defCustRatio;
public String getRatingLevel() {
return ratingLevel;
}
public void setRatingLevel(String ratingLevel) {
this.ratingLevel = ratingLevel;
}
public Integer getCustCnt() {
return custCnt;
}
public void setCustCnt(Integer custCnt) {
this.custCnt = custCnt;
}
public Double getCustRatio() {
return custRatio;
}
public void setCustRatio(Double custRatio) {
this.custRatio = custRatio;
}
public Double getBorrBal() {
return borrBal;
}
public void setBorrBal(Double borrBal) {
this.borrBal = borrBal;
}
public Double getBorrBalRatio() {
return borrBalRatio;
}
public void setBorrBalRatio(Double borrBalRatio) {
this.borrBalRatio = borrBalRatio;
}
public Integer getCurrInctCnt() {
return currInctCnt;
}
public void setCurrInctCnt(Integer currInctCnt) {
this.currInctCnt = currInctCnt;
}
public Double getCurrInctRatio() {
return currInctRatio;
}
public void setCurrInctRatio(Double currInctRatio) {
this.currInctRatio = currInctRatio;
}
public Integer getDefCustCnt() {
return defCustCnt;
}
public void setDefCustCnt(Integer defCustCnt) {
this.defCustCnt = defCustCnt;
}
public Double getDefCustRatio() {
return defCustRatio;
}
public void setDefCustRatio(Double defCustRatio) {
this.defCustRatio = defCustRatio;
}
}

23
irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingDistributionVoRowMapper.java

@ -0,0 +1,23 @@
package irbs.reports.jpa.support;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
public class RptRatingDistributionVoRowMapper implements RowMapper<RptRatingDistributionVo> {
@Override
public RptRatingDistributionVo mapRow(ResultSet rs, int rowNum) throws SQLException {
RptRatingDistributionVo vo = new RptRatingDistributionVo();
vo.setRatingLevel(rs.getString("FINAL_LEVEL"));
vo.setCustCnt(rs.getInt("CUST_CNT"));
vo.setCustRatio(rs.getDouble("CUST_RATIO"));
vo.setCurrInctCnt(rs.getInt("CURR_INCT_CNT"));
vo.setCurrInctRatio(rs.getDouble("CURR_INCT_RATIO"));
vo.setBorrBal(rs.getDouble("BORR_BAL"));
vo.setBorrBalRatio(rs.getDouble("BORR_BAL_RATIO"));
vo.setDefCustCnt(rs.getInt("DEF_CUST_CNT"));
vo.setDefCustRatio(rs.getDouble("DEF_CUST_RATIO"));
return vo;
}
}

283
irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingIndustryFocusDistVo.java

@ -0,0 +1,283 @@
package irbs.reports.jpa.support;
public class RptRatingIndustryFocusDistVo {
private String industryName;
private Integer aaaCnt;
private Double aaaRatio;
private Integer aaCnt;
private Double aaRatio;
private Integer aPlusCnt;
private Double aPlusRatio;
private Integer aCnt;
private Double aRatio;
private Integer aMinusCnt;
private Double aMinusRatio;
private Integer bbbCnt;
private Double bbbRatio;
private Integer bbPlusCnt;
private Double bbPlusRatio;
private Integer bbCnt;
private Double bbRatio;
private Integer bbMinusCnt;
private Double bbMinusRatio;
private Integer bPlusCnt;
private Double bPlusRatio;
private Integer bCnt;
private Double bRatio;
private Integer cccCnt;
private Double cccRatio;
private Integer ccCnt;
private Double ccRatio;
private Integer cCnt;
private Double cRatio;
private Integer dCnt;
private Double dRatio;
public Integer getdCnt() {
return dCnt;
}
public void setdCnt(Integer dCnt) {
this.dCnt = dCnt;
}
public Double getdRatio() {
return dRatio;
}
public void setdRatio(Double dRatio) {
this.dRatio = dRatio;
}
public String getIndustryName() {
return industryName;
}
public void setIndustryName(String industryName) {
this.industryName = industryName;
}
public Integer getBbCnt() {
return bbCnt;
}
public void setBbCnt(Integer bbCnt) {
this.bbCnt = bbCnt;
}
public Double getBbRatio() {
return bbRatio;
}
public void setBbRatio(Double bbRatio) {
this.bbRatio = bbRatio;
}
public Integer getAaaCnt() {
return aaaCnt;
}
public void setAaaCnt(Integer aaaCnt) {
this.aaaCnt = aaaCnt;
}
public Double getAaaRatio() {
return aaaRatio;
}
public void setAaaRatio(Double aaaRatio) {
this.aaaRatio = aaaRatio;
}
public Integer getAaCnt() {
return aaCnt;
}
public void setAaCnt(Integer aaCnt) {
this.aaCnt = aaCnt;
}
public Double getAaRatio() {
return aaRatio;
}
public void setAaRatio(Double aaRatio) {
this.aaRatio = aaRatio;
}
public Integer getaPlusCnt() {
return aPlusCnt;
}
public void setaPlusCnt(Integer aPlusCnt) {
this.aPlusCnt = aPlusCnt;
}
public Double getaPlusRatio() {
return aPlusRatio;
}
public void setaPlusRatio(Double aPlusRatio) {
this.aPlusRatio = aPlusRatio;
}
public Integer getaCnt() {
return aCnt;
}
public void setaCnt(Integer aCnt) {
this.aCnt = aCnt;
}
public Double getaRatio() {
return aRatio;
}
public void setaRatio(Double aRatio) {
this.aRatio = aRatio;
}
public Integer getaMinusCnt() {
return aMinusCnt;
}
public void setaMinusCnt(Integer aMinusCnt) {
this.aMinusCnt = aMinusCnt;
}
public Double getaMinusRatio() {
return aMinusRatio;
}
public void setaMinusRatio(Double aMinusRatio) {
this.aMinusRatio = aMinusRatio;
}
public Integer getBbbCnt() {
return bbbCnt;
}
public void setBbbCnt(Integer bbbCnt) {
this.bbbCnt = bbbCnt;
}
public Double getBbbRatio() {
return bbbRatio;
}
public void setBbbRatio(Double bbbRatio) {
this.bbbRatio = bbbRatio;
}
public Integer getBbPlusCnt() {
return bbPlusCnt;
}
public void setBbPlusCnt(Integer bbPlusCnt) {
this.bbPlusCnt = bbPlusCnt;
}
public Double getBbPlusRatio() {
return bbPlusRatio;
}
public void setBbPlusRatio(Double bbPlusRatio) {
this.bbPlusRatio = bbPlusRatio;
}
public Integer getBbMinusCnt() {
return bbMinusCnt;
}
public void setBbMinusCnt(Integer bbMinusCnt) {
this.bbMinusCnt = bbMinusCnt;
}
public Double getBbMinusRatio() {
return bbMinusRatio;
}
public void setBbMinusRatio(Double bbMinusRatio) {
this.bbMinusRatio = bbMinusRatio;
}
public Integer getbPlusCnt() {
return bPlusCnt;
}
public void setbPlusCnt(Integer bPlusCnt) {
this.bPlusCnt = bPlusCnt;
}
public Double getbPlusRatio() {
return bPlusRatio;
}
public void setbPlusRatio(Double bPlusRatio) {
this.bPlusRatio = bPlusRatio;
}
public Integer getbCnt() {
return bCnt;
}
public void setbCnt(Integer bCnt) {
this.bCnt = bCnt;
}
public Double getbRatio() {
return bRatio;
}
public void setbRatio(Double bRatio) {
this.bRatio = bRatio;
}
public Integer getCccCnt() {
return cccCnt;
}
public void setCccCnt(Integer cccCnt) {
this.cccCnt = cccCnt;
}
public Double getCccRatio() {
return cccRatio;
}
public void setCccRatio(Double cccRatio) {
this.cccRatio = cccRatio;
}
public Integer getCcCnt() {
return ccCnt;
}
public void setCcCnt(Integer ccCnt) {
this.ccCnt = ccCnt;
}
public Double getCcRatio() {
return ccRatio;
}
public void setCcRatio(Double ccRatio) {
this.ccRatio = ccRatio;
}
public Integer getcCnt() {
return cCnt;
}
public void setcCnt(Integer cCnt) {
this.cCnt = cCnt;
}
public Double getcRatio() {
return cRatio;
}
public void setcRatio(Double cRatio) {
this.cRatio = cRatio;
}
}

45
irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingIndustryFocusDistVoRowMapper.java

@ -0,0 +1,45 @@
package irbs.reports.jpa.support;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
public class RptRatingIndustryFocusDistVoRowMapper implements RowMapper<RptRatingIndustryFocusDistVo> {
@Override
public RptRatingIndustryFocusDistVo mapRow(ResultSet rs, int rowNum) throws SQLException {
RptRatingIndustryFocusDistVo vo = new RptRatingIndustryFocusDistVo();
vo.setIndustryName(rs.getString("INDUSTRY_NAME"));
vo.setAaaCnt(rs.getInt("AAA_CNT"));
vo.setAaaRatio(rs.getDouble("AAA_RATIO"));
vo.setAaCnt(rs.getInt("AA_CNT"));
vo.setAaRatio(rs.getDouble("AA_RATIO"));
vo.setaPlusCnt(rs.getInt("A_PLUS_CNT"));
vo.setaPlusRatio(rs.getDouble("A_PLUS_RATIO"));
vo.setaCnt(rs.getInt("A_CNT"));
vo.setaRatio(rs.getDouble("A_RATIO"));
vo.setaMinusCnt(rs.getInt("A_MINUS_CNT"));
vo.setaMinusRatio(rs.getDouble("A_MINUS_RATIO"));
vo.setBbbCnt(rs.getInt("BBB_CNT"));
vo.setBbbRatio(rs.getDouble("BBB_RATIO"));
vo.setBbPlusCnt(rs.getInt("BB_PLUS_CNT"));
vo.setBbPlusRatio(rs.getDouble("BB_PLUS_RATIO"));
vo.setBbCnt(rs.getInt("BB_CNT"));
vo.setBbRatio(rs.getDouble("BB_RATIO"));
vo.setBbMinusCnt(rs.getInt("BB_MINUS_CNT"));
vo.setBbMinusRatio(rs.getDouble("BB_MINUS_RATIO"));
vo.setbPlusCnt(rs.getInt("B_PLUS_CNT"));
vo.setbPlusRatio(rs.getDouble("B_PLUS_RATIO"));
vo.setbCnt(rs.getInt("B_CNT"));
vo.setbRatio(rs.getDouble("B_RATIO"));
vo.setCccCnt(rs.getInt("CCC_CNT"));
vo.setCccRatio(rs.getDouble("CCC_RATIO"));
vo.setCcCnt(rs.getInt("CC_CNT"));
vo.setCcRatio(rs.getDouble("CC_RATIO"));
vo.setcCnt(rs.getInt("C_CNT"));
vo.setcRatio(rs.getDouble("C_RATIO"));
vo.setdCnt(rs.getInt("D_CNT"));
vo.setdRatio(rs.getDouble("D_RATIO"));
return vo;
}
}

202
irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingLoanBalanceMigrateVo.java

@ -0,0 +1,202 @@
package irbs.reports.jpa.support;
public class RptRatingLoanBalanceMigrateVo {
private String ratingLevel;
private Double aaaBal;
private Double aaBal;
private Double aPlusBal;
private Double aBal;
private Double aMinusBal;
private Double bbbBal;
private Double bbPlusBal;
private Double bbBal;
private Double bbMinusBal;
private Double bPlusBal;
private Double bBal;
private Double cccBal;
private Double ccBal;
private Double cBal;
private Double dBal;
private Double notRatingBal;
private Double upBal;
private Double downBal;
private Double upRatio;
private Double downRatio;
private Double chgExponent;
public String getRatingLevel() {
return ratingLevel;
}
public void setRatingLevel(String ratingLevel) {
this.ratingLevel = ratingLevel;
}
public Double getAaaBal() {
return aaaBal;
}
public void setAaaBal(Double aaaBal) {
this.aaaBal = aaaBal;
}
public Double getAaBal() {
return aaBal;
}
public void setAaBal(Double aaBal) {
this.aaBal = aaBal;
}
public Double getaPlusBal() {
return aPlusBal;
}
public void setaPlusBal(Double aPlusBal) {
this.aPlusBal = aPlusBal;
}
public Double getaBal() {
return aBal;
}
public void setaBal(Double aBal) {
this.aBal = aBal;
}
public Double getaMinusBal() {
return aMinusBal;
}
public void setaMinusBal(Double aMinusBal) {
this.aMinusBal = aMinusBal;
}
public Double getBbbBal() {
return bbbBal;
}
public void setBbbBal(Double bbbBal) {
this.bbbBal = bbbBal;
}
public Double getBbPlusBal() {
return bbPlusBal;
}
public void setBbPlusBal(Double bbPlusBal) {
this.bbPlusBal = bbPlusBal;
}
public Double getBbBal() {
return bbBal;
}
public void setBbBal(Double bbBal) {
this.bbBal = bbBal;
}
public Double getBbMinusBal() {
return bbMinusBal;
}
public void setBbMinusBal(Double bbMinusBal) {
this.bbMinusBal = bbMinusBal;
}
public Double getbPlusBal() {
return bPlusBal;
}
public void setbPlusBal(Double bPlusBal) {
this.bPlusBal = bPlusBal;
}
public Double getbBal() {
return bBal;
}
public void setbBal(Double bBal) {
this.bBal = bBal;
}
public Double getCccBal() {
return cccBal;
}
public void setCccBal(Double cccBal) {
this.cccBal = cccBal;
}
public Double getCcBal() {
return ccBal;
}
public void setCcBal(Double ccBal) {
this.ccBal = ccBal;
}
public Double getcBal() {
return cBal;
}
public void setcBal(Double cBal) {
this.cBal = cBal;
}
public Double getdBal() {
return dBal;
}
public void setdBal(Double dBal) {
this.dBal = dBal;
}
public Double getNotRatingBal() {
return notRatingBal;
}
public void setNotRatingBal(Double notRatingBal) {
this.notRatingBal = notRatingBal;
}
public Double getUpBal() {
return upBal;
}
public void setUpBal(Double upBal) {
this.upBal = upBal;
}
public Double getDownBal() {
return downBal;
}
public void setDownBal(Double downBal) {
this.downBal = downBal;
}
public Double getUpRatio() {
return upRatio;
}
public void setUpRatio(Double upRatio) {
this.upRatio = upRatio;
}
public Double getDownRatio() {
return downRatio;
}
public void setDownRatio(Double downRatio) {
this.downRatio = downRatio;
}
public Double getChgExponent() {
return chgExponent;
}
public void setChgExponent(Double chgExponent) {
this.chgExponent = chgExponent;
}
}

36
irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingLoanBalanceMigrateVoRowMapper.java

@ -0,0 +1,36 @@
package irbs.reports.jpa.support;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
public class RptRatingLoanBalanceMigrateVoRowMapper implements RowMapper<RptRatingLoanBalanceMigrateVo> {
@Override
public RptRatingLoanBalanceMigrateVo mapRow(ResultSet rs, int rowNum) throws SQLException {
RptRatingLoanBalanceMigrateVo vo = new RptRatingLoanBalanceMigrateVo();
vo.setRatingLevel(rs.getString("FINAL_LEVEL"));
vo.setAaaBal(rs.getDouble("AAA_BAL"));
vo.setAaBal(rs.getDouble("AA_BAL"));
vo.setaPlusBal(rs.getDouble("A_PLUS_BAL"));
vo.setaBal(rs.getDouble("A_BAL"));
vo.setaMinusBal(rs.getDouble("A_MINUS_BAL"));
vo.setBbbBal(rs.getDouble("BBB_BAL"));
vo.setBbPlusBal(rs.getDouble("BB_PLUS_BAL"));
vo.setBbBal(rs.getDouble("BB_BAL"));
vo.setBbMinusBal(rs.getDouble("BB_MINUS_BAL"));
vo.setbPlusBal(rs.getDouble("B_PLUS_BAL"));
vo.setbBal(rs.getDouble("B_BAL"));
vo.setCccBal(rs.getDouble("CCC_BAL"));
vo.setCcBal(rs.getDouble("CC_BAL"));
vo.setcBal(rs.getDouble("C_BAL"));
vo.setdBal(rs.getDouble("D_BAL"));
vo.setNotRatingBal(rs.getDouble("NOT_RATING_BAL"));
vo.setUpBal(rs.getDouble("UP_BAL"));
vo.setDownBal(rs.getDouble("DOWN_BAL"));
vo.setUpRatio(rs.getDouble("UP_RATIO"));
vo.setDownRatio(rs.getDouble("DOWN_RATIO"));
vo.setChgExponent(rs.getDouble("CHG_EXPONENT"));
return vo;
}
}

283
irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingModelFocusDistVo.java

@ -0,0 +1,283 @@
package irbs.reports.jpa.support;
public class RptRatingModelFocusDistVo {
private String modelName;
private Integer aaaCnt;
private Double aaaRatio;
private Integer aaCnt;
private Double aaRatio;
private Integer aPlusCnt;
private Double aPlusRatio;
private Integer aCnt;
private Double aRatio;
private Integer aMinusCnt;
private Double aMinusRatio;
private Integer bbbCnt;
private Double bbbRatio;
private Integer bbPlusCnt;
private Double bbPlusRatio;
private Integer bbCnt;
private Double bbRatio;
private Integer bbMinusCnt;
private Double bbMinusRatio;
private Integer bPlusCnt;
private Double bPlusRatio;
private Integer bCnt;
private Double bRatio;
private Integer cccCnt;
private Double cccRatio;
private Integer ccCnt;
private Double ccRatio;
private Integer cCnt;
private Double cRatio;
private Integer dCnt;
private Double dRatio;
public String getModelName() {
return modelName;
}
public void setModelName(String modelName) {
this.modelName = modelName;
}
public Integer getBbCnt() {
return bbCnt;
}
public void setBbCnt(Integer bbCnt) {
this.bbCnt = bbCnt;
}
public Double getBbRatio() {
return bbRatio;
}
public void setBbRatio(Double bbRatio) {
this.bbRatio = bbRatio;
}
public Integer getAaaCnt() {
return aaaCnt;
}
public void setAaaCnt(Integer aaaCnt) {
this.aaaCnt = aaaCnt;
}
public Double getAaaRatio() {
return aaaRatio;
}
public void setAaaRatio(Double aaaRatio) {
this.aaaRatio = aaaRatio;
}
public Integer getAaCnt() {
return aaCnt;
}
public void setAaCnt(Integer aaCnt) {
this.aaCnt = aaCnt;
}
public Double getAaRatio() {
return aaRatio;
}
public void setAaRatio(Double aaRatio) {
this.aaRatio = aaRatio;
}
public Integer getaPlusCnt() {
return aPlusCnt;
}
public void setaPlusCnt(Integer aPlusCnt) {
this.aPlusCnt = aPlusCnt;
}
public Double getaPlusRatio() {
return aPlusRatio;
}
public void setaPlusRatio(Double aPlusRatio) {
this.aPlusRatio = aPlusRatio;
}
public Integer getaCnt() {
return aCnt;
}
public void setaCnt(Integer aCnt) {
this.aCnt = aCnt;
}
public Double getaRatio() {
return aRatio;
}
public void setaRatio(Double aRatio) {
this.aRatio = aRatio;
}
public Integer getaMinusCnt() {
return aMinusCnt;
}
public void setaMinusCnt(Integer aMinusCnt) {
this.aMinusCnt = aMinusCnt;
}
public Double getaMinusRatio() {
return aMinusRatio;
}
public void setaMinusRatio(Double aMinusRatio) {
this.aMinusRatio = aMinusRatio;
}
public Integer getBbbCnt() {
return bbbCnt;
}
public void setBbbCnt(Integer bbbCnt) {
this.bbbCnt = bbbCnt;
}
public Double getBbbRatio() {
return bbbRatio;
}
public void setBbbRatio(Double bbbRatio) {
this.bbbRatio = bbbRatio;
}
public Integer getBbPlusCnt() {
return bbPlusCnt;
}
public void setBbPlusCnt(Integer bbPlusCnt) {
this.bbPlusCnt = bbPlusCnt;
}
public Double getBbPlusRatio() {
return bbPlusRatio;
}
public void setBbPlusRatio(Double bbPlusRatio) {
this.bbPlusRatio = bbPlusRatio;
}
public Integer getBbMinusCnt() {
return bbMinusCnt;
}
public void setBbMinusCnt(Integer bbMinusCnt) {
this.bbMinusCnt = bbMinusCnt;
}
public Double getBbMinusRatio() {
return bbMinusRatio;
}
public void setBbMinusRatio(Double bbMinusRatio) {
this.bbMinusRatio = bbMinusRatio;
}
public Integer getbPlusCnt() {
return bPlusCnt;
}
public void setbPlusCnt(Integer bPlusCnt) {
this.bPlusCnt = bPlusCnt;
}
public Double getbPlusRatio() {
return bPlusRatio;
}
public void setbPlusRatio(Double bPlusRatio) {
this.bPlusRatio = bPlusRatio;
}
public Integer getbCnt() {
return bCnt;
}
public void setbCnt(Integer bCnt) {
this.bCnt = bCnt;
}
public Double getbRatio() {
return bRatio;
}
public void setbRatio(Double bRatio) {
this.bRatio = bRatio;
}
public Integer getCccCnt() {
return cccCnt;
}
public void setCccCnt(Integer cccCnt) {
this.cccCnt = cccCnt;
}
public Double getCccRatio() {
return cccRatio;
}
public void setCccRatio(Double cccRatio) {
this.cccRatio = cccRatio;
}
public Integer getCcCnt() {
return ccCnt;
}
public void setCcCnt(Integer ccCnt) {
this.ccCnt = ccCnt;
}
public Double getCcRatio() {
return ccRatio;
}
public void setCcRatio(Double ccRatio) {
this.ccRatio = ccRatio;
}
public Integer getcCnt() {
return cCnt;
}
public void setcCnt(Integer cCnt) {
this.cCnt = cCnt;
}
public Double getcRatio() {
return cRatio;
}
public void setcRatio(Double cRatio) {
this.cRatio = cRatio;
}
public Integer getdCnt() {
return dCnt;
}
public void setdCnt(Integer dCnt) {
this.dCnt = dCnt;
}
public Double getdRatio() {
return dRatio;
}
public void setdRatio(Double dRatio) {
this.dRatio = dRatio;
}
}

45
irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingModelFocusDistVoRowMapper.java

@ -0,0 +1,45 @@
package irbs.reports.jpa.support;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
public class RptRatingModelFocusDistVoRowMapper implements RowMapper<RptRatingModelFocusDistVo> {
@Override
public RptRatingModelFocusDistVo mapRow(ResultSet rs, int rowNum) throws SQLException {
RptRatingModelFocusDistVo vo = new RptRatingModelFocusDistVo();
vo.setModelName(rs.getString("MODEL_NAME"));
vo.setAaaCnt(rs.getInt("AAA_CNT"));
vo.setAaaRatio(rs.getDouble("AAA_RATIO"));
vo.setAaCnt(rs.getInt("AA_CNT"));
vo.setAaRatio(rs.getDouble("AA_RATIO"));
vo.setaPlusCnt(rs.getInt("A_PLUS_CNT"));
vo.setaPlusRatio(rs.getDouble("A_PLUS_RATIO"));
vo.setaCnt(rs.getInt("A_CNT"));
vo.setaRatio(rs.getDouble("A_RATIO"));
vo.setaMinusCnt(rs.getInt("A_MINUS_CNT"));
vo.setaMinusRatio(rs.getDouble("A_MINUS_RATIO"));
vo.setBbbCnt(rs.getInt("BBB_CNT"));
vo.setBbbRatio(rs.getDouble("BBB_RATIO"));
vo.setBbPlusCnt(rs.getInt("BB_PLUS_CNT"));
vo.setBbPlusRatio(rs.getDouble("BB_PLUS_RATIO"));
vo.setBbCnt(rs.getInt("BB_CNT"));
vo.setBbRatio(rs.getDouble("BB_RATIO"));
vo.setBbMinusCnt(rs.getInt("BB_MINUS_CNT"));
vo.setBbMinusRatio(rs.getDouble("BB_MINUS_RATIO"));
vo.setbPlusCnt(rs.getInt("B_PLUS_CNT"));
vo.setbPlusRatio(rs.getDouble("B_PLUS_RATIO"));
vo.setbCnt(rs.getInt("B_CNT"));
vo.setbRatio(rs.getDouble("B_RATIO"));
vo.setCccCnt(rs.getInt("CCC_CNT"));
vo.setCccRatio(rs.getDouble("CCC_RATIO"));
vo.setCcCnt(rs.getInt("CC_CNT"));
vo.setCcRatio(rs.getDouble("CC_RATIO"));
vo.setcCnt(rs.getInt("C_CNT"));
vo.setcRatio(rs.getDouble("C_RATIO"));
vo.setdCnt(rs.getInt("D_CNT"));
vo.setdRatio(rs.getDouble("D_RATIO"));
return vo;
}
}

202
irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingNumberMigrateVo.java

@ -0,0 +1,202 @@
package irbs.reports.jpa.support;
public class RptRatingNumberMigrateVo {
private String ratingLevel;
private Integer aaaCnt;
private Integer aaCnt;
private Integer aPlusCnt;
private Integer aCnt;
private Integer aMinusCnt;
private Integer bbbCnt;
private Integer bbPlusCnt;
private Integer bbCnt;
private Integer bbMinusCnt;
private Integer bPlusCnt;
private Integer bCnt;
private Integer cccCnt;
private Integer ccCnt;
private Integer cCnt;
private Integer dCnt;
private Integer notRatingCnt;
private Integer upCnt;
private Integer downCnt;
private Double upRatio;
private Double downRatio;
private Double chgExponent;
public Integer getNotRatingCnt() {
return notRatingCnt;
}
public void setNotRatingCnt(Integer notRatingCnt) {
this.notRatingCnt = notRatingCnt;
}
public String getRatingLevel() {
return ratingLevel;
}
public void setRatingLevel(String ratingLevel) {
this.ratingLevel = ratingLevel;
}
public Integer getAaaCnt() {
return aaaCnt;
}
public void setAaaCnt(Integer aaaCnt) {
this.aaaCnt = aaaCnt;
}
public Integer getAaCnt() {
return aaCnt;
}
public void setAaCnt(Integer aaCnt) {
this.aaCnt = aaCnt;
}
public Integer getaPlusCnt() {
return aPlusCnt;
}
public void setaPlusCnt(Integer aPlusCnt) {
this.aPlusCnt = aPlusCnt;
}
public Integer getaCnt() {
return aCnt;
}
public void setaCnt(Integer aCnt) {
this.aCnt = aCnt;
}
public Integer getaMinusCnt() {
return aMinusCnt;
}
public void setaMinusCnt(Integer aMinusCnt) {
this.aMinusCnt = aMinusCnt;
}
public Integer getBbbCnt() {
return bbbCnt;
}
public void setBbbCnt(Integer bbbCnt) {
this.bbbCnt = bbbCnt;
}
public Integer getBbPlusCnt() {
return bbPlusCnt;
}
public void setBbPlusCnt(Integer bbPlusCnt) {
this.bbPlusCnt = bbPlusCnt;
}
public Integer getBbCnt() {
return bbCnt;
}
public void setBbCnt(Integer bbCnt) {
this.bbCnt = bbCnt;
}
public Integer getBbMinusCnt() {
return bbMinusCnt;
}
public void setBbMinusCnt(Integer bbMinusCnt) {
this.bbMinusCnt = bbMinusCnt;
}
public Integer getbPlusCnt() {
return bPlusCnt;
}
public void setbPlusCnt(Integer bPlusCnt) {
this.bPlusCnt = bPlusCnt;
}
public Integer getbCnt() {
return bCnt;
}
public void setbCnt(Integer bCnt) {
this.bCnt = bCnt;
}
public Integer getCccCnt() {
return cccCnt;
}
public void setCccCnt(Integer cccCnt) {
this.cccCnt = cccCnt;
}
public Integer getCcCnt() {
return ccCnt;
}
public void setCcCnt(Integer ccCnt) {
this.ccCnt = ccCnt;
}
public Integer getcCnt() {
return cCnt;
}
public void setcCnt(Integer cCnt) {
this.cCnt = cCnt;
}
public Integer getdCnt() {
return dCnt;
}
public void setdCnt(Integer dCnt) {
this.dCnt = dCnt;
}
public Integer getUpCnt() {
return upCnt;
}
public void setUpCnt(Integer upCnt) {
this.upCnt = upCnt;
}
public Integer getDownCnt() {
return downCnt;
}
public void setDownCnt(Integer downCnt) {
this.downCnt = downCnt;
}
public Double getUpRatio() {
return upRatio;
}
public void setUpRatio(Double upRatio) {
this.upRatio = upRatio;
}
public Double getDownRatio() {
return downRatio;
}
public void setDownRatio(Double downRatio) {
this.downRatio = downRatio;
}
public Double getChgExponent() {
return chgExponent;
}
public void setChgExponent(Double chgExponent) {
this.chgExponent = chgExponent;
}
}

36
irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingNumberMigrateVoRowMapper.java

@ -0,0 +1,36 @@
package irbs.reports.jpa.support;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
public class RptRatingNumberMigrateVoRowMapper implements RowMapper<RptRatingNumberMigrateVo> {
@Override
public RptRatingNumberMigrateVo mapRow(ResultSet rs, int rowNum) throws SQLException {
RptRatingNumberMigrateVo vo = new RptRatingNumberMigrateVo();
vo.setRatingLevel(rs.getString("FINAL_LEVEL"));
vo.setAaaCnt(rs.getInt("AAA_CNT"));
vo.setAaCnt(rs.getInt("AA_CNT"));
vo.setaPlusCnt(rs.getInt("A_PLUS_CNT"));
vo.setaCnt(rs.getInt("A_CNT"));
vo.setaMinusCnt(rs.getInt("A_MINUS_CNT"));
vo.setBbbCnt(rs.getInt("BBB_CNT"));
vo.setBbPlusCnt(rs.getInt("BB_PLUS_CNT"));
vo.setBbCnt(rs.getInt("BB_CNT"));
vo.setBbMinusCnt(rs.getInt("BB_MINUS_CNT"));
vo.setbPlusCnt(rs.getInt("B_PLUS_CNT"));
vo.setbCnt(rs.getInt("B_CNT"));
vo.setCccCnt(rs.getInt("CCC_CNT"));
vo.setCcCnt(rs.getInt("CC_CNT"));
vo.setcCnt(rs.getInt("C_CNT"));
vo.setdCnt(rs.getInt("D_CNT"));
vo.setNotRatingCnt(rs.getInt("NOT_RATING_CNT"));
vo.setUpCnt(rs.getInt("UP_CNT"));
vo.setDownCnt(rs.getInt("DOWN_CNT"));
vo.setUpRatio(rs.getDouble("UP_RATIO"));
vo.setDownRatio(rs.getDouble("DOWN_RATIO"));
vo.setChgExponent(rs.getDouble("CHG_EXPONENT"));
return vo;
}
}

284
irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingOrgFocusDistVo.java

@ -0,0 +1,284 @@
package irbs.reports.jpa.support;
public class RptRatingOrgFocusDistVo {
private String managerOrgName;
private Integer aaaCnt;
private Double aaaRatio;
private Integer aaCnt;
private Double aaRatio;
private Integer aPlusCnt;
private Double aPlusRatio;
private Integer aCnt;
private Double aRatio;
private Integer aMinusCnt;
private Double aMinusRatio;
private Integer bbbCnt;
private Double bbbRatio;
private Integer bbPlusCnt;
private Double bbPlusRatio;
private Integer bbCnt;
private Double bbRatio;
private Integer bbMinusCnt;
private Double bbMinusRatio;
private Integer bPlusCnt;
private Double bPlusRatio;
private Integer bCnt;
private Double bRatio;
private Integer cccCnt;
private Double cccRatio;
private Integer ccCnt;
private Double ccRatio;
private Integer cCnt;
private Double cRatio;
public Integer getdCnt() {
return dCnt;
}
public void setdCnt(Integer dCnt) {
this.dCnt = dCnt;
}
public Double getdRatio() {
return dRatio;
}
public void setdRatio(Double dRatio) {
this.dRatio = dRatio;
}
private Integer dCnt;
private Double dRatio;
public String getManagerOrgName() {
return managerOrgName;
}
public void setManagerOrgName(String managerOrgName) {
this.managerOrgName = managerOrgName;
}
public Integer getBbCnt() {
return bbCnt;
}
public void setBbCnt(Integer bbCnt) {
this.bbCnt = bbCnt;
}
public Double getBbRatio() {
return bbRatio;
}
public void setBbRatio(Double bbRatio) {
this.bbRatio = bbRatio;
}
public Integer getAaaCnt() {
return aaaCnt;
}
public void setAaaCnt(Integer aaaCnt) {
this.aaaCnt = aaaCnt;
}
public Double getAaaRatio() {
return aaaRatio;
}
public void setAaaRatio(Double aaaRatio) {
this.aaaRatio = aaaRatio;
}
public Integer getAaCnt() {
return aaCnt;
}
public void setAaCnt(Integer aaCnt) {
this.aaCnt = aaCnt;
}
public Double getAaRatio() {
return aaRatio;
}
public void setAaRatio(Double aaRatio) {
this.aaRatio = aaRatio;
}
public Integer getaPlusCnt() {
return aPlusCnt;
}
public void setaPlusCnt(Integer aPlusCnt) {
this.aPlusCnt = aPlusCnt;
}
public Double getaPlusRatio() {
return aPlusRatio;
}
public void setaPlusRatio(Double aPlusRatio) {
this.aPlusRatio = aPlusRatio;
}
public Integer getaCnt() {
return aCnt;
}
public void setaCnt(Integer aCnt) {
this.aCnt = aCnt;
}
public Double getaRatio() {
return aRatio;
}
public void setaRatio(Double aRatio) {
this.aRatio = aRatio;
}
public Integer getaMinusCnt() {
return aMinusCnt;
}
public void setaMinusCnt(Integer aMinusCnt) {
this.aMinusCnt = aMinusCnt;
}
public Double getaMinusRatio() {
return aMinusRatio;
}
public void setaMinusRatio(Double aMinusRatio) {
this.aMinusRatio = aMinusRatio;
}
public Integer getBbbCnt() {
return bbbCnt;
}
public void setBbbCnt(Integer bbbCnt) {
this.bbbCnt = bbbCnt;
}
public Double getBbbRatio() {
return bbbRatio;
}
public void setBbbRatio(Double bbbRatio) {
this.bbbRatio = bbbRatio;
}
public Integer getBbPlusCnt() {
return bbPlusCnt;
}
public void setBbPlusCnt(Integer bbPlusCnt) {
this.bbPlusCnt = bbPlusCnt;
}
public Double getBbPlusRatio() {
return bbPlusRatio;
}
public void setBbPlusRatio(Double bbPlusRatio) {
this.bbPlusRatio = bbPlusRatio;
}
public Integer getBbMinusCnt() {
return bbMinusCnt;
}
public void setBbMinusCnt(Integer bbMinusCnt) {
this.bbMinusCnt = bbMinusCnt;
}
public Double getBbMinusRatio() {
return bbMinusRatio;
}
public void setBbMinusRatio(Double bbMinusRatio) {
this.bbMinusRatio = bbMinusRatio;
}
public Integer getbPlusCnt() {
return bPlusCnt;
}
public void setbPlusCnt(Integer bPlusCnt) {
this.bPlusCnt = bPlusCnt;
}
public Double getbPlusRatio() {
return bPlusRatio;
}
public void setbPlusRatio(Double bPlusRatio) {
this.bPlusRatio = bPlusRatio;
}
public Integer getbCnt() {
return bCnt;
}
public void setbCnt(Integer bCnt) {
this.bCnt = bCnt;
}
public Double getbRatio() {
return bRatio;
}
public void setbRatio(Double bRatio) {
this.bRatio = bRatio;
}
public Integer getCccCnt() {
return cccCnt;
}
public void setCccCnt(Integer cccCnt) {
this.cccCnt = cccCnt;
}
public Double getCccRatio() {
return cccRatio;
}
public void setCccRatio(Double cccRatio) {
this.cccRatio = cccRatio;
}
public Integer getCcCnt() {
return ccCnt;
}
public void setCcCnt(Integer ccCnt) {
this.ccCnt = ccCnt;
}
public Double getCcRatio() {
return ccRatio;
}
public void setCcRatio(Double ccRatio) {
this.ccRatio = ccRatio;
}
public Integer getcCnt() {
return cCnt;
}
public void setcCnt(Integer cCnt) {
this.cCnt = cCnt;
}
public Double getcRatio() {
return cRatio;
}
public void setcRatio(Double cRatio) {
this.cRatio = cRatio;
}
}

45
irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingOrgFocusDistVoRowMapper.java

@ -0,0 +1,45 @@
package irbs.reports.jpa.support;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
public class RptRatingOrgFocusDistVoRowMapper implements RowMapper<RptRatingOrgFocusDistVo> {
@Override
public RptRatingOrgFocusDistVo mapRow(ResultSet rs, int rowNum) throws SQLException {
RptRatingOrgFocusDistVo vo = new RptRatingOrgFocusDistVo();
vo.setManagerOrgName(rs.getString("MANAGER_ORG_NAME"));
vo.setAaaCnt(rs.getInt("AAA_CNT"));
vo.setAaaRatio(rs.getDouble("AAA_RATIO"));
vo.setAaCnt(rs.getInt("AA_CNT"));
vo.setAaRatio(rs.getDouble("AA_RATIO"));
vo.setaPlusCnt(rs.getInt("A_PLUS_CNT"));
vo.setaPlusRatio(rs.getDouble("A_PLUS_RATIO"));
vo.setaCnt(rs.getInt("A_CNT"));
vo.setaRatio(rs.getDouble("A_RATIO"));
vo.setaMinusCnt(rs.getInt("A_MINUS_CNT"));
vo.setaMinusRatio(rs.getDouble("A_MINUS_RATIO"));
vo.setBbbCnt(rs.getInt("BBB_CNT"));
vo.setBbbRatio(rs.getDouble("BBB_RATIO"));
vo.setBbPlusCnt(rs.getInt("BB_PLUS_CNT"));
vo.setBbPlusRatio(rs.getDouble("BB_PLUS_RATIO"));
vo.setBbCnt(rs.getInt("BB_CNT"));
vo.setBbRatio(rs.getDouble("BB_RATIO"));
vo.setBbMinusCnt(rs.getInt("BB_MINUS_CNT"));
vo.setBbMinusRatio(rs.getDouble("BB_MINUS_RATIO"));
vo.setbPlusCnt(rs.getInt("B_PLUS_CNT"));
vo.setbPlusRatio(rs.getDouble("B_PLUS_RATIO"));
vo.setbCnt(rs.getInt("B_CNT"));
vo.setbRatio(rs.getDouble("B_RATIO"));
vo.setCccCnt(rs.getInt("CCC_CNT"));
vo.setCccRatio(rs.getDouble("CCC_RATIO"));
vo.setCcCnt(rs.getInt("CC_CNT"));
vo.setCcRatio(rs.getDouble("CC_RATIO"));
vo.setcCnt(rs.getInt("C_CNT"));
vo.setcRatio(rs.getDouble("C_RATIO"));
vo.setdCnt(rs.getInt("D_CNT"));
vo.setdRatio(rs.getDouble("D_RATIO"));
return vo;
}
}

94
irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingOverturnVo.java

@ -0,0 +1,94 @@
package irbs.reports.jpa.support;
public class RptRatingOverturnVo {
private String ratingMonth;
private Integer custCnt;
private Integer overturnCnt;
private Double overturnRatio;
private Double upOverturnRatio;
private Double downOverturnRatio;
private Double oneLvlRatio;
private Double twoLvlRatio;
private Double threeLvlRatio;
private Double threeMoreLvlRatio;
public String getRatingMonth() {
return ratingMonth;
}
public void setRatingMonth(String ratingMonth) {
this.ratingMonth = ratingMonth;
}
public Integer getCustCnt() {
return custCnt;
}
public void setCustCnt(Integer custCnt) {
this.custCnt = custCnt;
}
public Integer getOverturnCnt() {
return overturnCnt;
}
public void setOverturnCnt(Integer overturnCnt) {
this.overturnCnt = overturnCnt;
}
public Double getOverturnRatio() {
return overturnRatio;
}
public void setOverturnRatio(Double overturnRatio) {
this.overturnRatio = overturnRatio;
}
public Double getUpOverturnRatio() {
return upOverturnRatio;
}
public void setUpOverturnRatio(Double upOverturnRatio) {
this.upOverturnRatio = upOverturnRatio;
}
public Double getDownOverturnRatio() {
return downOverturnRatio;
}
public void setDownOverturnRatio(Double downOverturnRatio) {
this.downOverturnRatio = downOverturnRatio;
}
public Double getOneLvlRatio() {
return oneLvlRatio;
}
public void setOneLvlRatio(Double oneLvlRatio) {
this.oneLvlRatio = oneLvlRatio;
}
public Double getTwoLvlRatio() {
return twoLvlRatio;
}
public void setTwoLvlRatio(Double twoLvlRatio) {
this.twoLvlRatio = twoLvlRatio;
}
public Double getThreeLvlRatio() {
return threeLvlRatio;
}
public void setThreeLvlRatio(Double threeLvlRatio) {
this.threeLvlRatio = threeLvlRatio;
}
public Double getThreeMoreLvlRatio() {
return threeMoreLvlRatio;
}
public void setThreeMoreLvlRatio(Double threeMoreLvlRatio) {
this.threeMoreLvlRatio = threeMoreLvlRatio;
}
}

24
irbs.reports/src/main/java/irbs/reports/jpa/support/RptRatingOverturnVoRowMapper.java

@ -0,0 +1,24 @@
package irbs.reports.jpa.support;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
public class RptRatingOverturnVoRowMapper implements RowMapper<RptRatingOverturnVo> {
@Override
public RptRatingOverturnVo mapRow(ResultSet rs, int rowNum) throws SQLException {
RptRatingOverturnVo vo = new RptRatingOverturnVo();
vo.setRatingMonth(rs.getString("EFFECTIVE_MONTH"));
vo.setCustCnt(rs.getInt("CUST_CNT"));
vo.setOverturnCnt(rs.getInt("OVERTURN_CNT"));
vo.setOverturnRatio(rs.getDouble("OVERTURN_RATIO"));
vo.setUpOverturnRatio(rs.getDouble("UP_OVERTURN_RATIO"));
vo.setDownOverturnRatio(rs.getDouble("DOWN_OVERTURN_RATIO"));
vo.setOneLvlRatio(rs.getDouble("ONE_LVL_RATIO"));
vo.setTwoLvlRatio(rs.getDouble("TWO_LVL_RATIO"));
vo.setThreeLvlRatio(rs.getDouble("THREE_LVL_RATIO"));
vo.setThreeMoreLvlRatio(rs.getDouble("THREE_MORE_LVL_RATIO"));
return vo;
}
}

12
irbs.reports/src/main/java/irbs/reports/service/RptModelBinomialCheckService.java

@ -0,0 +1,12 @@
package irbs.reports.service;
import irbs.reports.jpa.support.RptModelBinomialCheckVo;
import irbs.reports.service.support.QueryParams;
import java.sql.SQLException;
import java.util.List;
public interface RptModelBinomialCheckService {
public List<RptModelBinomialCheckVo> query(QueryParams queryParams) throws SQLException;
}

12
irbs.reports/src/main/java/irbs/reports/service/RptModelMonitorDiffService.java

@ -0,0 +1,12 @@
package irbs.reports.service;
import irbs.reports.jpa.support.RptModelMonitorDiffVo;
import irbs.reports.service.support.QueryParams;
import java.sql.SQLException;
import java.util.List;
public interface RptModelMonitorDiffService {
public List<RptModelMonitorDiffVo> query(QueryParams queryParams) throws SQLException;
}

12
irbs.reports/src/main/java/irbs/reports/service/RptModelMonitorStableService.java

@ -0,0 +1,12 @@
package irbs.reports.service;
import irbs.reports.jpa.support.RptModelMonitorStableVo;
import irbs.reports.service.support.QueryParams;
import java.sql.SQLException;
import java.util.List;
public interface RptModelMonitorStableService {
public List<RptModelMonitorStableVo> query(QueryParams queryParams) throws SQLException;
}

12
irbs.reports/src/main/java/irbs/reports/service/RptRatingAdjustService.java

@ -0,0 +1,12 @@
package irbs.reports.service;
import irbs.reports.jpa.support.RptRatingAdjustVo;
import irbs.reports.service.support.QueryParams;
import java.sql.SQLException;
import java.util.List;
public interface RptRatingAdjustService {
public List<RptRatingAdjustVo> query(QueryParams queryParams) throws SQLException;
}

12
irbs.reports/src/main/java/irbs/reports/service/RptRatingDistributionService.java

@ -0,0 +1,12 @@
package irbs.reports.service;
import irbs.reports.jpa.support.RptRatingDistributionVo;
import irbs.reports.service.support.QueryParams;
import java.sql.SQLException;
import java.util.List;
public interface RptRatingDistributionService {
public List<RptRatingDistributionVo> query(QueryParams queryParams) throws SQLException;
}

12
irbs.reports/src/main/java/irbs/reports/service/RptRatingIndustryFocusDistService.java

@ -0,0 +1,12 @@
package irbs.reports.service;
import irbs.reports.jpa.support.RptRatingIndustryFocusDistVo;
import irbs.reports.service.support.QueryParams;
import java.sql.SQLException;
import java.util.List;
public interface RptRatingIndustryFocusDistService {
public List<RptRatingIndustryFocusDistVo> query(QueryParams queryParams) throws SQLException;
}

12
irbs.reports/src/main/java/irbs/reports/service/RptRatingLoanBalanceMigrateService.java

@ -0,0 +1,12 @@
package irbs.reports.service;
import irbs.reports.jpa.support.RptRatingLoanBalanceMigrateVo;
import irbs.reports.service.support.QueryParams;
import java.sql.SQLException;
import java.util.List;
public interface RptRatingLoanBalanceMigrateService {
public List<RptRatingLoanBalanceMigrateVo> query(QueryParams queryParams) throws SQLException;
}

12
irbs.reports/src/main/java/irbs/reports/service/RptRatingModelFocusDistService.java

@ -0,0 +1,12 @@
package irbs.reports.service;
import irbs.reports.jpa.support.RptRatingModelFocusDistVo;
import irbs.reports.service.support.QueryParams;
import java.sql.SQLException;
import java.util.List;
public interface RptRatingModelFocusDistService {
public List<RptRatingModelFocusDistVo> query(QueryParams queryParams) throws SQLException;
}

12
irbs.reports/src/main/java/irbs/reports/service/RptRatingNumberMigrateService.java

@ -0,0 +1,12 @@
package irbs.reports.service;
import irbs.reports.jpa.support.RptRatingNumberMigrateVo;
import irbs.reports.service.support.QueryParams;
import java.sql.SQLException;
import java.util.List;
public interface RptRatingNumberMigrateService {
public List<RptRatingNumberMigrateVo> query(QueryParams queryParams) throws SQLException;
}

12
irbs.reports/src/main/java/irbs/reports/service/RptRatingOrgFocusDistService.java

@ -0,0 +1,12 @@
package irbs.reports.service;
import irbs.reports.jpa.support.RptRatingOrgFocusDistVo;
import irbs.reports.service.support.QueryParams;
import java.sql.SQLException;
import java.util.List;
public interface RptRatingOrgFocusDistService {
public List<RptRatingOrgFocusDistVo> query(QueryParams queryParams) throws SQLException;
}

12
irbs.reports/src/main/java/irbs/reports/service/RptRatingOverturnService.java

@ -0,0 +1,12 @@
package irbs.reports.service;
import irbs.reports.jpa.support.RptRatingOverturnVo;
import irbs.reports.service.support.QueryParams;
import java.sql.SQLException;
import java.util.List;
public interface RptRatingOverturnService {
public List<RptRatingOverturnVo> query(QueryParams queryParams) throws SQLException;
}

57
irbs.reports/src/main/java/irbs/reports/service/impl/RptModelBinomialCheckServiceImpl.java

@ -0,0 +1,57 @@
package irbs.reports.service.impl;
import dm.jdbc.util.StringUtil;
import irbs.reports.jpa.entity.ReportSqlConfig;
import irbs.reports.jpa.repository.ReportSqlConfigRepository;
import irbs.reports.jpa.support.RptModelBinomialCheckVo;
import irbs.reports.jpa.support.RptModelBinomialCheckVoRowMapper;
import irbs.reports.jpa.support.RptModelMonitorDiffVo;
import irbs.reports.jpa.support.RptModelMonitorDiffVoRowMapper;
import irbs.reports.service.RptModelBinomialCheckService;
import irbs.reports.service.RptModelMonitorDiffService;
import irbs.reports.service.support.QueryParams;
import irbs.reports.utils.RptSqlFormat;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 模型区分能力监控报表
*/
@Service
public class RptModelBinomialCheckServiceImpl implements RptModelBinomialCheckService {
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private ReportSqlConfigRepository reportSqlConfigRepository;
@Override
public List<RptModelBinomialCheckVo> query(QueryParams queryParams) throws SQLException {
//设置默认查询条件,默认查询当前所在月份的数据
if(StringUtil.isEmpty(queryParams.getRatingMonth())){
queryParams.setRatingMonth("2023-07-01");
}
//默认WHM1模型
if(StringUtil.isEmpty(queryParams.getModelCode())){
queryParams.setModelCode("WHM8");
}
DatabaseMetaData md = jdbcTemplate.getDataSource().getConnection().getMetaData();
String dataBaseType = md.getDatabaseProductName();
ReportSqlConfig reportSqlConfig = reportSqlConfigRepository.findByReportIdAndDataBaseType("rptModelMonitorBinomialCheck", dataBaseType);
if(reportSqlConfig != null){
String sql = reportSqlConfig.getSqlText();
Map<String, String> params = new HashMap<>();
params.put("EFFECTIVE_MONTH", queryParams.getRatingMonth());
params.put("MODEL_CODE", queryParams.getModelCode());
sql = RptSqlFormat.format(sql, params);
return jdbcTemplate.query(sql, new RptModelBinomialCheckVoRowMapper());
}
return null;
}
}

62
irbs.reports/src/main/java/irbs/reports/service/impl/RptModelMonitorDiffServiceImpl.java

@ -0,0 +1,62 @@
package irbs.reports.service.impl;
import dm.jdbc.util.StringUtil;
import io.sc.platform.core.util.DateUtil;
import irbs.reports.jpa.entity.ReportSqlConfig;
import irbs.reports.jpa.repository.ReportSqlConfigRepository;
import irbs.reports.jpa.support.RptModelMonitorDiffVo;
import irbs.reports.jpa.support.RptModelMonitorDiffVoRowMapper;
import irbs.reports.jpa.support.RptRatingLoanBalanceMigrateVoRowMapper;
import irbs.reports.service.RptModelMonitorDiffService;
import irbs.reports.service.support.QueryParams;
import irbs.reports.utils.RptSqlFormat;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 模型区分能力监控报表
*/
@Service
public class RptModelMonitorDiffServiceImpl implements RptModelMonitorDiffService {
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private ReportSqlConfigRepository reportSqlConfigRepository;
@Override
public List<RptModelMonitorDiffVo> query(QueryParams queryParams) throws SQLException {
//设置默认查询条件,默认查询当前所在月份的数据
if(StringUtil.isEmpty(queryParams.getRatingMonth())){
queryParams.setRatingMonth("2023-07-01");
}
//默认报告期为一年
if(StringUtil.isEmpty(queryParams.getYearPeriod())){
queryParams.setYearPeriod("1");
}
//默认WHM1模型
if(StringUtil.isEmpty(queryParams.getModelCode())){
queryParams.setModelCode("WHM18");
}
DatabaseMetaData md = jdbcTemplate.getDataSource().getConnection().getMetaData();
String dataBaseType = md.getDatabaseProductName();
ReportSqlConfig reportSqlConfig = reportSqlConfigRepository.findByReportIdAndDataBaseType("rptModelMonitorDiff", dataBaseType);
if(reportSqlConfig != null){
String sql = reportSqlConfig.getSqlText();
Map<String, String> params = new HashMap<>();
params.put("EFFECTIVE_MONTH", queryParams.getRatingMonth());
params.put("YEAR_PERIOD", queryParams.getYearPeriod());
params.put("MODEL_CODE", queryParams.getModelCode());
sql = RptSqlFormat.format(sql, params);
return jdbcTemplate.query(sql, new RptModelMonitorDiffVoRowMapper());
}
return null;
}
}

57
irbs.reports/src/main/java/irbs/reports/service/impl/RptModelMonitorStableServiceImpl.java

@ -0,0 +1,57 @@
package irbs.reports.service.impl;
import dm.jdbc.util.StringUtil;
import io.sc.platform.core.util.DateUtil;
import irbs.reports.jpa.entity.ReportSqlConfig;
import irbs.reports.jpa.repository.ReportSqlConfigRepository;
import irbs.reports.jpa.support.RptModelMonitorStableVo;
import irbs.reports.jpa.support.RptModelMonitorStableVoRowMapper;
import irbs.reports.service.RptModelMonitorStableService;
import irbs.reports.service.support.QueryParams;
import irbs.reports.utils.RptSqlFormat;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 模型区分能力监控报表
*/
@Service
public class RptModelMonitorStableServiceImpl implements RptModelMonitorStableService {
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private ReportSqlConfigRepository reportSqlConfigRepository;
@Override
public List<RptModelMonitorStableVo> query(QueryParams queryParams) throws SQLException {
//设置默认查询条件,默认查询当前所在月份的数据
if(StringUtil.isEmpty(queryParams.getRatingMonth())){
queryParams.setRatingMonth("2023-07-01");
}
//默认WHM1模型
if(StringUtil.isEmpty(queryParams.getModelCode())){
queryParams.setModelCode("WHM18");
}
DatabaseMetaData md = jdbcTemplate.getDataSource().getConnection().getMetaData();
String dataBaseType = md.getDatabaseProductName();
ReportSqlConfig reportSqlConfig = reportSqlConfigRepository.findByReportIdAndDataBaseType("rptModelMonitorStable", dataBaseType);
if(reportSqlConfig != null){
String sql = reportSqlConfig.getSqlText();
Map<String, String> params = new HashMap<>();
params.put("EFFECTIVE_MONTH", queryParams.getRatingMonth());
params.put("YEAR_PERIOD", queryParams.getYearPeriod());
params.put("MODEL_CODE", queryParams.getModelCode());
sql = RptSqlFormat.format(sql, params);
return jdbcTemplate.query(sql, new RptModelMonitorStableVoRowMapper());
}
return null;
}
}

54
irbs.reports/src/main/java/irbs/reports/service/impl/RptRatingAdjustServiceImpl.java

@ -0,0 +1,54 @@
package irbs.reports.service.impl;
import dm.jdbc.util.StringUtil;
import irbs.reports.jpa.entity.ReportSqlConfig;
import irbs.reports.jpa.repository.ReportSqlConfigRepository;
import irbs.reports.jpa.support.RptRatingAdjustVo;
import irbs.reports.jpa.support.RptRatingAdjustVoRowMapper;
import irbs.reports.jpa.support.RptRatingOverturnVo;
import irbs.reports.jpa.support.RptRatingOverturnVoRowMapper;
import irbs.reports.service.RptRatingAdjustService;
import irbs.reports.service.RptRatingOverturnService;
import irbs.reports.service.support.QueryParams;
import irbs.reports.utils.RptSqlFormat;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 模型区分能力监控报表
*/
@Service
public class RptRatingAdjustServiceImpl implements RptRatingAdjustService {
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private ReportSqlConfigRepository reportSqlConfigRepository;
@Override
public List<RptRatingAdjustVo> query(QueryParams queryParams) throws SQLException {
//设置默认查询条件,默认查询当前所在月份的数据
if(StringUtil.isEmpty(queryParams.getRatingMonth())){
queryParams.setRatingMonth("2023-07-01");
}
DatabaseMetaData md = jdbcTemplate.getDataSource().getConnection().getMetaData();
String dataBaseType = md.getDatabaseProductName();
ReportSqlConfig reportSqlConfig = reportSqlConfigRepository.findByReportIdAndDataBaseType("rptRatingAdjust", dataBaseType);
if(reportSqlConfig != null){
String sql = reportSqlConfig.getSqlText();
Map<String, String> params = new HashMap<>();
params.put("EFFECTIVE_MONTH", queryParams.getRatingMonth());
params.put("MANAGER_ORG_CODE", queryParams.getManagerOrgCode());
params.put("MODEL_CODE", queryParams.getModelCode());
sql = RptSqlFormat.format(sql, params);
return jdbcTemplate.query(sql, new RptRatingAdjustVoRowMapper());
}
return null;
}
}

54
irbs.reports/src/main/java/irbs/reports/service/impl/RptRatingDistributionServiceImpl.java

@ -0,0 +1,54 @@
package irbs.reports.service.impl;
import dm.jdbc.util.StringUtil;
import io.sc.platform.core.util.DateUtil;
import irbs.reports.jpa.entity.ReportSqlConfig;
import irbs.reports.jpa.repository.ReportSqlConfigRepository;
import irbs.reports.jpa.support.RptRatingDistributionVo;
import irbs.reports.jpa.support.RptRatingDistributionVoRowMapper;
import irbs.reports.service.RptRatingDistributionService;
import irbs.reports.service.support.QueryParams;
import irbs.reports.utils.RptSqlFormat;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import java.text.MessageFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 评级分布情况
*/
@Service
public class RptRatingDistributionServiceImpl implements RptRatingDistributionService {
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private ReportSqlConfigRepository reportSqlConfigRepository;
@Override
public List<RptRatingDistributionVo> query(QueryParams queryParams) throws SQLException {
//设置默认查询条件,默认查询当前所在月份的数据
if(StringUtil.isEmpty(queryParams.getRatingMonth())){
queryParams.setRatingMonth("2023-07-01");
}
DatabaseMetaData md = jdbcTemplate.getDataSource().getConnection().getMetaData();
String dataBaseType = md.getDatabaseProductName();
ReportSqlConfig reportSqlConfig = reportSqlConfigRepository.findByReportIdAndDataBaseType("rptRatingDistribution", dataBaseType);
if(reportSqlConfig != null){
String sql = reportSqlConfig.getSqlText();
Map<String, String> params = new HashMap<>();
params.put("EFFECTIVE_MONTH", queryParams.getRatingMonth());
params.put("MODEL_CODE", queryParams.getModelCode());
params.put("MANAGER_ORG_CODE", queryParams.getManagerOrgCode());
sql = RptSqlFormat.format(sql, params);
return jdbcTemplate.query(sql, new RptRatingDistributionVoRowMapper());
}
return null;
}
}

53
irbs.reports/src/main/java/irbs/reports/service/impl/RptRatingIndustryFocusDistServiceImpl.java

@ -0,0 +1,53 @@
package irbs.reports.service.impl;
import dm.jdbc.util.StringUtil;
import io.sc.platform.core.util.DateUtil;
import irbs.reports.jpa.entity.ReportSqlConfig;
import irbs.reports.jpa.repository.ReportSqlConfigRepository;
import irbs.reports.jpa.support.RptRatingIndustryFocusDistVo;
import irbs.reports.jpa.support.RptRatingIndustryFocusDistVoRowMapper;
import irbs.reports.service.RptRatingIndustryFocusDistService;
import irbs.reports.service.support.QueryParams;
import irbs.reports.utils.RptSqlFormat;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 评级分布情况
*/
@Service
public class RptRatingIndustryFocusDistServiceImpl implements RptRatingIndustryFocusDistService {
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private ReportSqlConfigRepository reportSqlConfigRepository;
@Override
public List<RptRatingIndustryFocusDistVo> query(QueryParams queryParams) throws SQLException {
//设置默认查询条件,默认查询当前所在月份的数据
if(StringUtil.isEmpty(queryParams.getRatingMonth())){
queryParams.setRatingMonth("2023-07-01");
}
DatabaseMetaData md = jdbcTemplate.getDataSource().getConnection().getMetaData();
String dataBaseType = md.getDatabaseProductName();
ReportSqlConfig reportSqlConfig = reportSqlConfigRepository.findByReportIdAndDataBaseType("rptRatingIndustryFocusDist", dataBaseType);
if(reportSqlConfig != null){
String sql = reportSqlConfig.getSqlText();
Map<String, String> params = new HashMap<>();
params.put("EFFECTIVE_MONTH", queryParams.getRatingMonth());
params.put("MODEL_CODE", queryParams.getModelCode());
params.put("MANAGER_ORG_CODE", queryParams.getManagerOrgCode());
sql = RptSqlFormat.format(sql, params);
return jdbcTemplate.query(sql, new RptRatingIndustryFocusDistVoRowMapper());
}
return null;
}
}

54
irbs.reports/src/main/java/irbs/reports/service/impl/RptRatingLoanBalanceMigrateServiceImpl.java

@ -0,0 +1,54 @@
package irbs.reports.service.impl;
import dm.jdbc.util.StringUtil;
import io.sc.platform.core.util.DateUtil;
import irbs.reports.jpa.entity.ReportSqlConfig;
import irbs.reports.jpa.repository.ReportSqlConfigRepository;
import irbs.reports.jpa.support.RptRatingLoanBalanceMigrateVo;
import irbs.reports.jpa.support.RptRatingLoanBalanceMigrateVoRowMapper;
import irbs.reports.jpa.support.RptRatingNumberMigrateVoRowMapper;
import irbs.reports.service.RptRatingLoanBalanceMigrateService;
import irbs.reports.service.support.QueryParams;
import irbs.reports.utils.RptSqlFormat;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 评级分布情况
*/
@Service
public class RptRatingLoanBalanceMigrateServiceImpl implements RptRatingLoanBalanceMigrateService {
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private ReportSqlConfigRepository reportSqlConfigRepository;
@Override
public List<RptRatingLoanBalanceMigrateVo> query(QueryParams queryParams) throws SQLException {
//设置默认查询条件,默认查询当前所在月份的数据
if(StringUtil.isEmpty(queryParams.getRatingMonth())){
queryParams.setRatingMonth("2023-07-01");
}
DatabaseMetaData md = jdbcTemplate.getDataSource().getConnection().getMetaData();
String dataBaseType = md.getDatabaseProductName();
ReportSqlConfig reportSqlConfig = reportSqlConfigRepository.findByReportIdAndDataBaseType("rptRatingLoanBalanceMigrate", dataBaseType);
if(reportSqlConfig != null){
String sql = reportSqlConfig.getSqlText();
Map<String, String> params = new HashMap<>();
params.put("EFFECTIVE_MONTH", queryParams.getRatingMonth());
params.put("MODEL_CODE", queryParams.getModelCode());
params.put("MANAGER_ORG_CODE", queryParams.getManagerOrgCode());
sql = RptSqlFormat.format(sql, params);
return jdbcTemplate.query(sql, new RptRatingLoanBalanceMigrateVoRowMapper());
}
return null;
}
}

53
irbs.reports/src/main/java/irbs/reports/service/impl/RptRatingModelFocusDistServiceImpl.java

@ -0,0 +1,53 @@
package irbs.reports.service.impl;
import dm.jdbc.util.StringUtil;
import io.sc.platform.core.util.DateUtil;
import irbs.reports.jpa.entity.ReportSqlConfig;
import irbs.reports.jpa.repository.ReportSqlConfigRepository;
import irbs.reports.jpa.support.RptRatingDistributionVoRowMapper;
import irbs.reports.jpa.support.RptRatingModelFocusDistVo;
import irbs.reports.jpa.support.RptRatingModelFocusDistVoRowMapper;
import irbs.reports.service.RptRatingModelFocusDistService;
import irbs.reports.service.support.QueryParams;
import irbs.reports.utils.RptSqlFormat;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 评级分布情况
*/
@Service
public class RptRatingModelFocusDistServiceImpl implements RptRatingModelFocusDistService {
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private ReportSqlConfigRepository reportSqlConfigRepository;
@Override
public List<RptRatingModelFocusDistVo> query(QueryParams queryParams) throws SQLException {
//设置默认查询条件,默认查询当前所在月份的数据
if(StringUtil.isEmpty(queryParams.getRatingMonth())){
queryParams.setRatingMonth("2023-07-01");
}
DatabaseMetaData md = jdbcTemplate.getDataSource().getConnection().getMetaData();
String dataBaseType = md.getDatabaseProductName();
ReportSqlConfig reportSqlConfig = reportSqlConfigRepository.findByReportIdAndDataBaseType("rptRatingModelFocusDist", dataBaseType);
if(reportSqlConfig != null){
String sql = reportSqlConfig.getSqlText();
Map<String, String> params = new HashMap<>();
params.put("EFFECTIVE_MONTH", queryParams.getRatingMonth());
params.put("MANAGER_ORG_CODE", queryParams.getManagerOrgCode());
sql = RptSqlFormat.format(sql, params);
return jdbcTemplate.query(sql, new RptRatingModelFocusDistVoRowMapper());
}
return null;
}
}

53
irbs.reports/src/main/java/irbs/reports/service/impl/RptRatingNumberMigrateServiceImpl.java

@ -0,0 +1,53 @@
package irbs.reports.service.impl;
import dm.jdbc.util.StringUtil;
import io.sc.platform.core.util.DateUtil;
import irbs.reports.jpa.entity.ReportSqlConfig;
import irbs.reports.jpa.repository.ReportSqlConfigRepository;
import irbs.reports.jpa.support.RptRatingNumberMigrateVo;
import irbs.reports.jpa.support.RptRatingNumberMigrateVoRowMapper;
import irbs.reports.service.RptRatingNumberMigrateService;
import irbs.reports.service.support.QueryParams;
import irbs.reports.utils.RptSqlFormat;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 评级分布情况
*/
@Service
public class RptRatingNumberMigrateServiceImpl implements RptRatingNumberMigrateService {
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private ReportSqlConfigRepository reportSqlConfigRepository;
@Override
public List<RptRatingNumberMigrateVo> query(QueryParams queryParams) throws SQLException {
//设置默认查询条件,默认查询当前所在月份的数据
if(StringUtil.isEmpty(queryParams.getRatingMonth())){
queryParams.setRatingMonth("2023-07-01");
}
DatabaseMetaData md = jdbcTemplate.getDataSource().getConnection().getMetaData();
String dataBaseType = md.getDatabaseProductName();
ReportSqlConfig reportSqlConfig = reportSqlConfigRepository.findByReportIdAndDataBaseType("rptRatingNumberMigrate", dataBaseType);
if(reportSqlConfig != null){
String sql = reportSqlConfig.getSqlText();
Map<String, String> params = new HashMap<>();
params.put("EFFECTIVE_MONTH", queryParams.getRatingMonth());
params.put("MODEL_CODE", queryParams.getModelCode());
params.put("MANAGER_ORG_CODE", queryParams.getManagerOrgCode());
sql = RptSqlFormat.format(sql, params);
return jdbcTemplate.query(sql, new RptRatingNumberMigrateVoRowMapper());
}
return null;
}
}

52
irbs.reports/src/main/java/irbs/reports/service/impl/RptRatingOrgFocusDistServiceImpl.java

@ -0,0 +1,52 @@
package irbs.reports.service.impl;
import dm.jdbc.util.StringUtil;
import io.sc.platform.core.util.DateUtil;
import irbs.reports.jpa.entity.ReportSqlConfig;
import irbs.reports.jpa.repository.ReportSqlConfigRepository;
import irbs.reports.jpa.support.RptRatingOrgFocusDistVo;
import irbs.reports.jpa.support.RptRatingOrgFocusDistVoRowMapper;
import irbs.reports.service.RptRatingOrgFocusDistService;
import irbs.reports.service.support.QueryParams;
import irbs.reports.utils.RptSqlFormat;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 评级分布情况
*/
@Service
public class RptRatingOrgFocusDistServiceImpl implements RptRatingOrgFocusDistService {
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private ReportSqlConfigRepository reportSqlConfigRepository;
@Override
public List<RptRatingOrgFocusDistVo> query(QueryParams queryParams) throws SQLException {
//设置默认查询条件,默认查询当前所在月份的数据
if(StringUtil.isEmpty(queryParams.getRatingMonth())){
queryParams.setRatingMonth("2023-07-01");
}
DatabaseMetaData md = jdbcTemplate.getDataSource().getConnection().getMetaData();
String dataBaseType = md.getDatabaseProductName();
ReportSqlConfig reportSqlConfig = reportSqlConfigRepository.findByReportIdAndDataBaseType("rptRatingOrgFocusDist", dataBaseType);
if(reportSqlConfig != null){
String sql = reportSqlConfig.getSqlText();
Map<String, String> params = new HashMap<>();
params.put("EFFECTIVE_MONTH", queryParams.getRatingMonth());
params.put("MODEL_CODE", queryParams.getModelCode());
sql = RptSqlFormat.format(sql, params);
return jdbcTemplate.query(sql, new RptRatingOrgFocusDistVoRowMapper());
}
return null;
}
}

56
irbs.reports/src/main/java/irbs/reports/service/impl/RptRatingOverturnServiceImpl.java

@ -0,0 +1,56 @@
package irbs.reports.service.impl;
import dm.jdbc.util.StringUtil;
import io.sc.platform.core.util.DateUtil;
import irbs.reports.jpa.entity.ReportSqlConfig;
import irbs.reports.jpa.repository.ReportSqlConfigRepository;
import irbs.reports.jpa.support.RptModelMonitorDiffVo;
import irbs.reports.jpa.support.RptModelMonitorDiffVoRowMapper;
import irbs.reports.jpa.support.RptRatingOverturnVo;
import irbs.reports.jpa.support.RptRatingOverturnVoRowMapper;
import irbs.reports.service.RptModelMonitorDiffService;
import irbs.reports.service.RptRatingOverturnService;
import irbs.reports.service.support.QueryParams;
import irbs.reports.utils.RptSqlFormat;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 模型区分能力监控报表
*/
@Service
public class RptRatingOverturnServiceImpl implements RptRatingOverturnService {
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private ReportSqlConfigRepository reportSqlConfigRepository;
@Override
public List<RptRatingOverturnVo> query(QueryParams queryParams) throws SQLException {
//设置默认查询条件,默认查询当前所在月份的数据
if(StringUtil.isEmpty(queryParams.getRatingMonth())){
queryParams.setRatingMonth("2023-07-01");
}
DatabaseMetaData md = jdbcTemplate.getDataSource().getConnection().getMetaData();
String dataBaseType = md.getDatabaseProductName();
ReportSqlConfig reportSqlConfig = reportSqlConfigRepository.findByReportIdAndDataBaseType("rptRatingOverturn", dataBaseType);
if(reportSqlConfig != null){
String sql = reportSqlConfig.getSqlText();
Map<String, String> params = new HashMap<>();
params.put("EFFECTIVE_MONTH", queryParams.getRatingMonth());
params.put("MANAGER_ORG_CODE", queryParams.getManagerOrgCode());
params.put("MODEL_CODE", queryParams.getModelCode());
sql = RptSqlFormat.format(sql, params);
return jdbcTemplate.query(sql, new RptRatingOverturnVoRowMapper());
}
return null;
}
}

41
irbs.reports/src/main/java/irbs/reports/service/support/QueryParams.java

@ -0,0 +1,41 @@
package irbs.reports.service.support;
public class QueryParams {
private String ratingMonth;
private String yearPeriod;
private String modelCode;
private String managerOrgCode;
public String getYearPeriod() {
return yearPeriod;
}
public void setYearPeriod(String yearPeriod) {
this.yearPeriod = yearPeriod;
}
public String getRatingMonth() {
return ratingMonth;
}
public void setRatingMonth(String ratingMonth) {
this.ratingMonth = ratingMonth;
}
public String getModelCode() {
return modelCode;
}
public void setModelCode(String modelCode) {
this.modelCode = modelCode;
}
public String getManagerOrgCode() {
return managerOrgCode;
}
public void setManagerOrgCode(String managerOrgCode) {
this.managerOrgCode = managerOrgCode;
}
}

36
irbs.reports/src/main/java/irbs/reports/utils/RptSqlFormat.java

@ -0,0 +1,36 @@
package irbs.reports.utils;
import io.sc.platform.core.util.StringUtil;
import java.util.Map;
public class RptSqlFormat {
public static String format(String sql, Map<String, String> params){
if(params != null) {
for(String p : params.keySet()){
if(StringUtil.isNullOrEmpty(params.get(p))){
sql = replace(sql, p);
continue;
}
String c = "#" + p;
sql = sql.replaceAll(c, params.get(p));
if(!StringUtil.isNullOrEmpty(params.get(p)) && sql.indexOf("<" + p + ">") != -1){
sql = sql.replaceAll("<" + p + ">", "").replaceAll("</" + p + ">", "");
}
}
}
return sql;
}
public static String replace(String sql, String code){
if(sql.indexOf("<"+code+">") == -1){
return sql;
}
sql = sql.substring(0, sql.indexOf("<"+code+">")) + sql.substring(sql.indexOf("</"+code+">")+code.length()+4);
if(sql.indexOf("<"+code+">") != -1){
sql = replace(sql, code);
}
return sql;
}
}

25
irbs.reports/src/main/resources/META-INF/platform/plugins/application-properties.json

@ -0,0 +1,25 @@
/*
*
* : application.properties ,
* 使:
* module:
* order:
* description: , application.properties
* properties:
*/
/* */
/*
[
{
"module" : "io.sc.platform.core",
"order" : 150,
"description": "application configuration",
"properties": [
"application.audit-log-mode = none",
"#application.audit-log-mode = log",
"#application.audit-log-mode = database"
]
}
]
*/

16
irbs.reports/src/main/resources/META-INF/platform/plugins/components.json

@ -0,0 +1,16 @@
/*
*
* : , spring
* 使:
* includes:
* excludes:
* : includes excludes , excludes ,
*/
{
"includes":[
"irbs.reports.controller",
"irbs.reports.service.impl"
],
"excludes":[]
}

17
irbs.reports/src/main/resources/META-INF/platform/plugins/directories.json

@ -0,0 +1,17 @@
/*
*
* :
* 使:
* name : , DirectoryManager.getInstance().getByName(name)
* path : , home
* autoCreate :
*/
/* */
/*
[
{"name":"dir.config" ,"path":"/config" ,"autoCreate":true},
{"name":"dir.log" ,"path":"/logs" ,"autoCreate":true},
{"name":"dir.work" ,"path":"/work" ,"autoCreate":true}
]
*/

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

Loading…
Cancel
Save