Browse Source

initial commit

master
chengjie 2 months ago
commit
fff86c1dd5
  1. 97
      .gitignore
  2. 2
      CHANGELOG
  3. 0
      README.adoc
  4. 0
      app.engine.rwa/README.adoc
  5. 19
      app.engine.rwa/build-common.gradle
  6. 15
      app.engine.rwa/build-jetty.gradle
  7. 7
      app.engine.rwa/build-tomcat.gradle
  8. 15
      app.engine.rwa/build-undertow.gradle
  9. 103
      app.engine.rwa/build.gradle
  10. 0
      app.engine.rwa/gradle.properties
  11. 16
      app.engine.rwa/src/main/java/app/engine/rwa/Application.java
  12. 5
      app.engine.rwa/src/main/resources/META-INF/platform/plugins/messages.json
  13. 3
      app.engine.rwa/src/main/resources/app/engine/rwa/i18n/messages.properties
  14. 3
      app.engine.rwa/src/main/resources/app/engine/rwa/i18n/messages_zh_CN.properties
  15. 11
      app.engine.rwa/src/main/resources/datasource.ini
  16. 1
      app.engine.rwa/src/main/resources/running-mode.properties
  17. 1
      app.engine.rwa/src/main/resources/static/app.engine.rwa/images/background.svg
  18. 5
      app.engine.rwa/src/main/resources/static/app.engine.rwa/images/logo.svg
  19. 201
      build-version.gradle
  20. 835
      build.gradle
  21. 88
      gradle.properties
  22. 249
      gradlew
  23. 92
      gradlew.bat
  24. 0
      io.sc.engine.rwa.calculator/CHANGELOG
  25. 0
      io.sc.engine.rwa.calculator/README.adoc
  26. 13
      io.sc.engine.rwa.calculator/build.gradle
  27. 1
      io.sc.engine.rwa.calculator/gradle.properties
  28. 77
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/IrsRWACalculator.java
  29. 71
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/RWACalculator.java
  30. 17
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/RWAReportor.java
  31. 229
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/RWATestDataGenerator.java
  32. 7
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/cache/CacheException.java
  33. 22
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/cache/KeyValue.java
  34. 17
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/cache/KeyValueCache.java
  35. 8
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/cache/KeyValueIterator.java
  36. 121
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/cache/impl/RocksDbCache.java
  37. 41
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/cache/impl/RocksDbIterator.java
  38. 35
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/cache/impl/StringAndLongRocksDbCache.java
  39. 153
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/controller/RwaCalculateController.java
  40. 39
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/controller/RwaCalculatorWithDBController.java
  41. 308
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceAssetMagProd.java
  42. 271
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceBh.java
  43. 295
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceCommitment.java
  44. 315
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceCredit.java
  45. 307
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceCreditCard.java
  46. 745
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceCustomer.java
  47. 594
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceDebt.java
  48. 308
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceDiscount.java
  49. 101
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceExchRate.java
  50. 94
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceGuarDebtRela.java
  51. 229
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceGuarantee.java
  52. 272
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceIBOut.java
  53. 164
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceLgd.java
  54. 305
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceOthAsset.java
  55. 153
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourcePd.java
  56. 326
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourcePled.java
  57. 405
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceRepo.java
  58. 349
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceSecurityPosition.java
  59. 283
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceTrade.java
  60. 341
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceWeightResult.java
  61. 96
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/AccordRiskToolDtl.java
  62. 71
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/AccordRiskToolMain.java
  63. 326
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/AccordRiskToolParam.java
  64. 248
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/AccordRiskToolRecogn.java
  65. 154
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/AccordRiskToolResult.java
  66. 448
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/BnfxqzParam.java
  67. 237
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/BwztfxzqParam.java
  68. 119
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/CircCounterpartyParam.java
  69. 321
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/CustomerParam.java
  70. 107
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/DataCheckRuleMain.java
  71. 48
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/DebtGuarRel.java
  72. 255
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/DebtRiskClsResult.java
  73. 549
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/DebtRiskParam.java
  74. 104
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/ParamRuleDtl.java
  75. 103
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/ParamRuleMain.java
  76. 324
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RiskExpoWideResult.java
  77. 504
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RiskMitigResult.java
  78. 104
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RiskToolMappingParam.java
  79. 67
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaConfigRiskExpoRule.java
  80. 186
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaIrsCorpSizeRule.java
  81. 442
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaIrsDebt.java
  82. 284
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaIrsExposureRule.java
  83. 155
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaIrsLgd.java
  84. 94
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaIrsNameList.java
  85. 89
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaIrsPd.java
  86. 107
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaIrsPledgeCashRule.java
  87. 115
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaIrsPledgeClassRule.java
  88. 133
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaIrsPledgeDistribution.java
  89. 101
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaIrsRatingModelGrade.java
  90. 257
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaIrsResult.java
  91. 91
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaMGuarDebtRela.java
  92. 218
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaMIrsCustomer.java
  93. 431
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaMIrsDebt.java
  94. 331
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaMWeightResult.java
  95. 85
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaOrgAreaMapping.java
  96. 138
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaRequireParam.java
  97. 184
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaRptG4E.java
  98. 304
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaRptG4E1.java
  99. 304
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaRptG4E2.java
  100. 404
      io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaRptG4E4.java

97
.gitignore

@ -0,0 +1,97 @@
# 前端==============================================
# Logs
**/logs/
**/*.log
**/npm-debug.log*
**/yarn-debug.log*
**/yarn-error.log*
**/pnpm-debug.log*
**/lerna-debug.log*
**/node_modules/
**/dist/
**/dist-ssr/
**/coverage/
**/*.local
**/package-lock.json
**/pnpm-lock.yaml
**/contribution/frontend-components.json
**/java-src/main/resources/ui/*.html
**/cypress/videos/
**/cypress/screenshots/
# Editor directories and files
**/.vscode/*
!**/.vscode/extensions.json
**/.idea/
**/*.suo
**/*.ntvs*
**/*.njsproj
**/*.sln
**/*.sw?
**/test-results/
**/playwright-report/
# 后端==============================================
# mac os 隐藏文件
**/.DS_Store
# 缓存缩略图文件
**/Thumbs.db
# gradle 文件夹
**/.gradle/
# svn 文件夹
**/.svn/
# cvs 文件夹及文件
**/.checkstyle
**/.cvsignore
# eclipse project 文件夹及文件
**/.settings/
**/.classpath
**/.project
# idea project 文件夹及文件
**/*.ipr
**/*.iws
**/*.iml
**/.shelf
# eclipse 构建文件夹
**/bin/
# idea 构建文件夹
**/out/
**/work/
# gradle 构建文件夹
**/build/
# 第三方工具自动产生的源代码文件夹
**/src/generated/
# spring boot 框架应用运行时自动生成的文件夹
**/app.*/config/
**/app.*/logs/
**/app.*/work/
**/app.*/tmp/
# 日志文件夹及文件
**/logs/
**/*.log
# 所有 jar 文件
**/*.jar
# 所有 jrebel 文件
**/rebel.xml
# 保留 gradle wrapper 的 jar 文件
!gradle/wrapper/gradle-wrapper.jar

2
CHANGELOG

@ -0,0 +1,2 @@
= 6.0.0(2022-04-29)
. 初始版本发布

0
README.adoc

0
app.engine.rwa/README.adoc

19
app.engine.rwa/build-common.gradle

@ -0,0 +1,19 @@
/**
* (target)
* : -D
* :
* 1. gradle bootwar # , target=tomcat
* 2. gradle bootwar -Dtarget=undertow # undertow, target=undertow
* 3. gradle bootwar -Dtarget=jetty # jetty, target=jetty
*/
def target =System.getProperty("target") ?: "tomcat";
System.setProperty('target',target);
// targetRuntime build.gradle
apply from: "build-${target}.gradle"
//
publishPublicationPublicationToMavenRepository.enabled=false
// docker
jibBuildTar.enabled =true

15
app.engine.rwa/build-jetty.gradle

@ -0,0 +1,15 @@
println "[Jetty] 环境 ......"
configurations {
all*.exclude group: "org.springframework.boot", module: "spring-boot-starter-tomcat"
all*.exclude group: "org.apache.tomcat.embed", module: "tomcat-embed-core"
all*.exclude group: "org.apache.tomcat.embed", module: "tomcat-embed-websocket"
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter-jetty")
providedRuntime(
"org.springframework.boot:spring-boot-starter-jetty",
)
}

7
app.engine.rwa/build-tomcat.gradle

@ -0,0 +1,7 @@
println "[Tomcat] 环境 ......"
dependencies {
providedRuntime(
"org.springframework.boot:spring-boot-starter-tomcat",
)
}

15
app.engine.rwa/build-undertow.gradle

@ -0,0 +1,15 @@
println "[Undertow] 环境 ......"
configurations {
all*.exclude group: "org.springframework.boot", module: "spring-boot-starter-tomcat"
all*.exclude group: "org.apache.tomcat.embed", module: "tomcat-embed-core"
all*.exclude group: "org.apache.tomcat.embed", module: "tomcat-embed-websocket"
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter-undertow")
providedRuntime(
"org.springframework.boot:spring-boot-starter-undertow",
)
}

103
app.engine.rwa/build.gradle

@ -0,0 +1,103 @@
apply plugin: 'war'
apply plugin: 'com.google.cloud.tools.jib'
apply from: "build-common.gradle"
dependencies {
implementation("org.springframework.boot:spring-boot-starter-web"){
exclude group: "org.springframework.boot", module: "spring-boot-starter-tomcat"
}
}
dependencies {
implementation (
project(":io.sc.engine.rwa"),
"io.sc:io.sc.platform.app:${platform_version}",
"io.sc:io.sc.platform.security.loginform:${platform_version}",
"io.sc:io.sc.platform.developer:${platform_version}",
)
}
/**
* replace [application.version] in i18n message file
*/
processResources {
filesMatching('**/messages*.properties') {
println 'replace ${version} in [' + it + ']'
filteringCharset = 'iso8859-1'
filter(org.apache.tools.ant.filters.ReplaceTokens, beginToken: '$version', endToken: '',tokens: [version: '' + project.version])
}
doLast{
// eclipse idea ,:
// 1. environment.properties src/main/resources
// 2. ,
delete "$buildDir/resources/main/running-mode.properties"
}
}
bootWar{
mainClass = "${project.name}.Application"
//launchScript()
manifest {
attributes 'Implementation-Version': archiveVersion,
'Implementation-Title': project.name
}
}
bootJar{
mainClass = "${project.name}.Application"
//launchScript()
manifest {
attributes 'Implementation-Version': archiveVersion,
'Implementation-Title': project.name
}
}
jib {
outputPaths {
tar = "build/libs/${project.name}-${project.version}-image.tar"
}
from {
image = "openjdk:8u342-slim"
//image = "eclipse-temurin:8u382-b05-jdk-focal"
platforms {
platform {
architecture ="arm64"
os ="linux"
}
}
}
to {
image = "${project.name}:${project.version}"
}
extraDirectories {
paths {
path {
from = "build/libs/"
into = "/opt/${project.name}/"
includes = ["${project.name}-${project.version}.war"]
}
}
}
container {
/**
* jvm的启动参数
* user.timezone - Java程序的时区问题
*/
jvmFlags = ["-Duser.timezone=Asia/Shanghai"]
creationTime = "USE_CURRENT_TIMESTAMP"
ports = ["8080"]
entrypoint = [
"java",
"-jar",
"/opt/" + project.name + "/" + project.name + "-" + project.version + ".war",
"--" + project.name + ".home.dir=" + "/opt/" + project.name
]
//entrypoint = "java -version"
//appRoot = "/usr/local/tomcat/webapps/ROOT"
}
}

0
app.engine.rwa/gradle.properties

16
app.engine.rwa/src/main/java/app/engine/rwa/Application.java

@ -0,0 +1,16 @@
package app.engine.rwa;
import io.sc.platform.core.ApplicationLauncher;
import io.sc.platform.core.PlatformSpringBootServletInitializer;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.WebApplicationInitializer;
/**
* 应用程序入口
*/
@SpringBootApplication(proxyBeanMethods = false)
public class Application extends PlatformSpringBootServletInitializer implements WebApplicationInitializer {
public static void main(String[] args) throws Exception {
ApplicationLauncher.run(Application.class,args);
}
}

5
app.engine.rwa/src/main/resources/META-INF/platform/plugins/messages.json

@ -0,0 +1,5 @@
{
"includes":[
"app/engine/rwa/i18n/messages"
]
}

3
app.engine.rwa/src/main/resources/app/engine/rwa/i18n/messages.properties

@ -0,0 +1,3 @@
application.title=RWA Metering Engine
application.version=$version
application.copyright=Copyright \u00A9 2019\u20132022

3
app.engine.rwa/src/main/resources/app/engine/rwa/i18n/messages_zh_CN.properties

@ -0,0 +1,3 @@
application.title=RWA \u8BA1\u91CF\u5F15\u64CE
application.version=$version
application.copyright=Copyright \u00A9 2019\u20132022

11
app.engine.rwa/src/main/resources/datasource.ini

@ -0,0 +1,11 @@
[engine]
JdbcDriver=org.sqlite.JDBC
JdbcUrl=jdbc:sqlite:/Users/wangshaoping/wspsc/workspace/wangshaoping/v11/engine-rwa/work/db/rwa.db
Username=
Password=
[app]
JdbcDriver=com.mysql.cj.jdbc.Driver
JdbcUrl=jdbc:mysql://localhost:3306/platform?autoReconnect=true&allowPublicKeyRetrieval=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
Username=platform
Password=platform

1
app.engine.rwa/src/main/resources/running-mode.properties

@ -0,0 +1 @@
development=true

1
app.engine.rwa/src/main/resources/static/app.engine.rwa/images/background.svg

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 45 KiB

5
app.engine.rwa/src/main/resources/static/app.engine.rwa/images/logo.svg

@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-browser-edge" viewBox="0 0 16 16">
<path d="M9.482 9.341c-.069.062-.17.153-.17.309 0 .162.107.325.3.456.877.613 2.521.54 2.592.538h.002c.667 0 1.32-.18 1.894-.519A3.838 3.838 0 0 0 16 6.819c.018-1.316-.44-2.218-.666-2.664l-.04-.08C13.963 1.487 11.106 0 8 0A8 8 0 0 0 .473 5.29C1.488 4.048 3.183 3.262 5 3.262c2.83 0 5.01 1.885 5.01 4.797h-.004v.002c0 .338-.168.832-.487 1.244l.006-.006a.594.594 0 0 1-.043.041Z"/>
<path d="M.01 7.753a8.137 8.137 0 0 0 .753 3.641 8 8 0 0 0 6.495 4.564 5.21 5.21 0 0 1-.785-.377h-.01l-.12-.075a5.45 5.45 0 0 1-1.56-1.463A5.543 5.543 0 0 1 6.81 5.8l.01-.004.025-.012c.208-.098.62-.292 1.167-.285.129.001.257.012.384.033a4.037 4.037 0 0 0-.993-.698l-.01-.005C6.348 4.282 5.199 4.263 5 4.263c-2.44 0-4.824 1.634-4.99 3.49Zm10.263 7.912c.088-.027.177-.054.265-.084-.102.032-.204.06-.307.086l.042-.002Z"/>
<path d="M10.228 15.667a5.21 5.21 0 0 0 .303-.086l.082-.025a8.019 8.019 0 0 0 4.162-3.3.25.25 0 0 0-.331-.35c-.215.112-.436.21-.663.294a6.367 6.367 0 0 1-2.243.4c-2.957 0-5.532-2.031-5.532-4.644.002-.135.017-.268.046-.399a4.543 4.543 0 0 0-.46 5.898l.003.005c.315.441.707.821 1.158 1.121h.003l.144.09c.877.55 1.721 1.078 3.328.996Z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

201
build-version.gradle

@ -0,0 +1,201 @@
/***********************************************************************
* springboot
**********************************************************************/
subprojects {
// ext['activemq.version'] =
// ext['antlr2.version'] =
// ext['appengine-sdk.version'] =
// ext['artemis.version'] =
// ext['aspectj.version'] =
// ext['assertj.version'] =
// ext['atomikos.version'] =
// ext['awaitility.version'] =
// ext['bitronix.version'] =
// ext['build-helper-maven-plugin.version'] =
// ext['byte-buddy.version'] =
// ext['caffeine.version'] =
// ext['cassandra-driver.version'] =
// ext['classmate.version'] =
// ext['commons-codec.version'] =
// ext['commons-dbcp2.version'] =
// ext['commons-lang3.version'] =
// ext['commons-pool.version'] =
// ext['commons-pool2.version'] =
// ext['couchbase-client.version'] =
// ext['db2-jdbc.version'] =
// ext['dependency-management-plugin.version'] =
// ext['derby.version'] =
// ext['dropwizard-metrics.version'] =
// ext['ehcache.version'] =
// ext['ehcache3.version'] =
// ext['elasticsearch.version'] =
// ext['embedded-mongo.version'] =
// ext['flyway.version'] =
// ext['freemarker.version'] =
// ext['git-commit-id-plugin.version'] =
// ext['glassfish-el.version'] =
// ext['glassfish-jaxb.version'] =
// ext['groovy.version'] =
// ext['gson.version'] =
// ext['h2.version'] =
// ext['hamcrest.version'] =
// ext['hazelcast.version'] =
// ext['hazelcast-hibernate5.version'] =
// ext['hibernate.version'] =
// ext['hibernate-validator.version'] =
// ext['hikaricp.version'] =
// ext['hsqldb.version'] =
// ext['htmlunit.version'] =
// ext['httpasyncclient.version'] =
// ext['httpclient.version'] =
// ext['httpcore.version'] =
// ext['infinispan.version'] =
// ext['influxdb-java.version'] =
// ext['jackson-bom.version'] =
// ext['jakarta-activation.version'] =
// ext['jakarta-annotation.version'] =
// ext['jakarta-jms.version'] =
// ext['jakarta-json.version'] =
// ext['jakarta-json-bind.version'] =
// ext['jakarta-mail.version'] =
// ext['jakarta-persistence.version'] =
// ext['jakarta-servlet.version'] =
// ext['jakarta-servlet-jsp-jstl.version'] =
// ext['jakarta-transaction.version'] =
// ext['jakarta-validation.version'] =
// ext['jakarta-websocket.version'] =
// ext['jakarta-ws-rs.version'] =
// ext['jakarta-xml-bind.version'] =
// ext['jakarta-xml-soap.version'] =
// ext['jakarta-xml-ws.version'] =
// ext['janino.version'] =
// ext['javax-activation.version'] =
// ext['javax-annotation.version'] =
// ext['javax-cache.version'] =
// ext['javax-jaxb.version'] =
// ext['javax-jaxws.version'] =
// ext['javax-jms.version'] =
// ext['javax-json.version'] =
// ext['javax-jsonb.version'] =
// ext['javax-mail.version'] =
// ext['javax-money.version'] =
// ext['javax-persistence.version'] =
// ext['javax-transaction.version'] =
// ext['javax-validation.version'] =
// ext['javax-websocket.version'] =
// ext['jaxen.version'] =
// ext['jaybird.version'] =
// ext['jboss-logging.version'] =
// ext['jboss-transaction-spi.version'] =
// ext['jdom2.version'] =
// ext['jedis.version'] =
// ext['jersey.version'] =
// ext['jetty.version'] =
// ext['jetty-el.version'] =
// ext['jetty-jsp.version'] =
// ext['jetty-reactive-httpclient.version'] =
// ext['jmustache.version'] =
// ext['johnzon.version'] =
// ext['jolokia.version'] =
// ext['jooq.version'] =
// ext['json-path.version'] =
// ext['json-smart.version'] =
// ext['jsonassert.version'] =
// ext['jstl.version'] =
// ext['jtds.version'] =
// ext['junit.version'] =
// ext['junit-jupiter.version'] =
// ext['kafka.version'] =
// ext['kotlin.version'] =
// ext['kotlin-coroutines.version'] =
// ext['lettuce.version'] =
// ext['liquibase.version'] =
// ext['log4j2.version'] =
// ext['logback.version'] =
// ext['lombok.version'] =
// ext['mariadb.version'] =
// ext['maven-antrun-plugin.version'] =
// ext['maven-assembly-plugin.version'] =
// ext['maven-clean-plugin.version'] =
// ext['maven-compiler-plugin.version'] =
// ext['maven-dependency-plugin.version'] =
// ext['maven-deploy-plugin.version'] =
// ext['maven-enforcer-plugin.version'] =
// ext['maven-failsafe-plugin.version'] =
// ext['maven-help-plugin.version'] =
// ext['maven-install-plugin.version'] =
// ext['maven-invoker-plugin.version'] =
// ext['maven-jar-plugin.version'] =
// ext['maven-javadoc-plugin.version'] =
// ext['maven-resources-plugin.version'] =
// ext['maven-shade-plugin.version'] =
// ext['maven-source-plugin.version'] =
// ext['maven-surefire-plugin.version'] =
// ext['maven-war-plugin.version'] =
// ext['micrometer.version'] =
// ext['mimepull.version'] =
// ext['mockito.version'] =
// ext['mongodb.version'] =
// ext['mssql-jdbc.version'] =
// ext['mysql.version'] =
// ext['nekohtml.version'] =
// ext['neo4j-java-driver.version'] =
// ext['netty.version'] =
// ext['netty-tcnative.version'] =
// ext['nimbus-jose-jwt.version'] =
// ext['oauth2-oidc-sdk.version'] =
// ext['ojdbc.version'] =
// ext['okhttp3.version'] =
// ext['oracle-database.version'] ='12.2.0.1'
// ext['pooled-jms.version'] =
// ext['postgresql.version'] =
// ext['prometheus-pushgateway.version'] =
// ext['quartz.version'] =
// ext['querydsl.version'] =
// ext['r2dbc-bom.version'] =
// ext['rabbit-amqp-client.version'] =
// ext['reactive-streams.version'] =
// ext['reactor-bom.version'] =
// ext['rest-assured.version'] =
// ext['rsocket.version'] =
// ext['rxjava.version'] =
// ext['rxjava-adapter.version'] =
// ext['rxjava2.version'] =
// ext['saaj-impl.version'] =
// ext['selenium.version'] =
// ext['selenium-htmlunit.version'] =
// ext['sendgrid.version'] =
// ext['servlet-api.version'] =
// ext['slf4j.version'] =
// ext['snakeyaml.version'] =
// ext['solr.version'] =
// ext['spring-amqp.version'] =
// ext['spring-batch.version'] =
// ext['spring-data-bom.version'] =
// ext['spring-framework.version'] =
// ext['spring-hateoas.version'] =
// ext['spring-integration.version'] =
// ext['spring-kafka.version'] =
// ext['spring-ldap.version'] =
// ext['spring-restdocs.version'] =
// ext['spring-retry.version'] =
// ext['spring-security.version'] =
// ext['spring-session-bom.version'] =
// ext['spring-ws.version'] =
// ext['sqlite-jdbc.version'] =
// ext['sun-mail.version'] =
// ext['thymeleaf.version'] =
// ext['thymeleaf-extras-data-attribute.version'] =
// ext['thymeleaf-extras-java8time.version'] =
// ext['thymeleaf-extras-springsecurity.version'] =
// ext['thymeleaf-layout-dialect.version'] =
// ext['tomcat.version'] =
// ext['unboundid-ldapsdk.version'] =
// ext['undertow.version'] =
// ext['versions-maven-plugin.version'] =
// ext['webjars-hal-browser.version'] =
// ext['webjars-locator-core.version'] =
// ext['wsdl4j.version'] =
// ext['xml-maven-plugin.version'] =
// ext['xmlunit2.version'] =
}

835
build.gradle

@ -0,0 +1,835 @@
apply from: "build-version.gradle"
def isFrontendProject(currentDir){
return file(currentDir.getAbsolutePath() + '/package.json').exists() && !file(currentDir.getAbsolutePath() + '/webpack.env.lib.cjs').exists();
}
/***********************************************************************
* gradle
**********************************************************************/
buildscript {
repositories {
maven {
allowInsecureProtocol = true
url "${repository_url}"
}
}
dependencies {
classpath "org.springframework.boot:org.springframework.boot.gradle.plugin:${spring_boot_version}"
classpath "io.sc:io.sc.platform.gradle:${platform_plugin_version}"
classpath "org.asciidoctor:asciidoctor-gradle-jvm:${asciidoctor_version}"
classpath "com.google.cloud.tools:jib-gradle-plugin:${jib_version}"
}
}
/***********************************************************************
* ()
**********************************************************************/
allprojects {
apply plugin: 'idea'
apply plugin: 'io.sc.platform.gradle'
}
/***********************************************************************
*
**********************************************************************/
subprojects {
apply plugin: 'java'
apply plugin: 'java-library'
apply plugin: 'eclipse'
apply plugin: 'maven-publish'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: "org.asciidoctor.jvm.convert"
configurations.all {
// gradle
//resolutionStrategy.cacheDynamicVersionsFor 0, 'seconds' //: 1.1.+
//resolutionStrategy.cacheChangingModulesFor 0, 'seconds' //: 1.1.2
//
exclude group: "org.apache.logging.log4j", module: "log4j-api"
exclude group: "org.apache.logging.log4j", module: "log4j-to-slf4j"
exclude group: "org.slf4j", module: "slf4j-jdk14"
exclude group: "org.slf4j", module: "slf4j-nop"
}
dependencyManagement {
resolutionStrategy {
// gradle
//cacheDynamicVersionsFor 0, 'seconds' //: 1.1.+
//cacheChangingModulesFor 0, 'seconds' //: 1.1.2
}
imports {
//mavenBom "org.springframework.cloud:spring-cloud-dependencies:${spring_cloud_version}"
mavenBom "com.alibaba.cloud:spring-cloud-alibaba-dependencies:${spring_cloud_alibaba_version}"
mavenBom "org.springframework.statemachine:spring-statemachine-bom:${spring_statemachine_version}"
}
}
/*-----------------------------------------------------------------
* url
* url ${repository_url}
*----------------------------------------------------------------*/
repositories {
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (
url.startsWith('https://repo1.maven.org/maven2')
|| url.startsWith('https://jcenter.bintray.com/')
|| url.startsWith('https://maven.aliyun.com')
) {
remove repo
}
}
}
maven {
allowInsecureProtocol = true
url "${repository_url}"
}
}
/*-----------------------------------------------------------------
* java
*----------------------------------------------------------------*/
sourceCompatibility ="${java_version}"
targetCompatibility ="${java_version}"
compileJava.options.encoding ="${java_encoding}"
compileTestJava.options.encoding ="${java_encoding}"
tasks.withType(JavaCompile) {
options.compilerArgs += ["-Xlint:deprecation","-Xlint:unchecked"]
}
/*-----------------------------------------------------------------
*
*----------------------------------------------------------------*/
group ="${application_group}"
version ="${application_version}"
if(file('package.json').exists()){
mkdir 'java-src/main/java';
mkdir 'java-src/main/resources';
mkdir 'dist';
sourceSets.main.java.srcDir 'java-src/main/java'
sourceSets.main.resources.srcDir 'java-src/main/resources'
sourceSets.main.resources.srcDir 'dist'
}
/*-----------------------------------------------------------------
*
*----------------------------------------------------------------*/
task sourcesJar (type : Jar) {
from sourceSets.main.allJava
archiveClassifier = 'sources'
}
/*-----------------------------------------------------------------
* Java
*----------------------------------------------------------------*/
javadoc {
options.encoding = 'UTF-8'
// java doc , java doc
failOnError=false
}
task javadocJar (type: Jar) {
from javadoc
archiveClassifier = 'javadoc'
}
clean {
delete 'dist' //
delete 'bin' // eclipse bin
delete 'build' // gradle
}
/*-----------------------------------------------------------------
* eclipse
*----------------------------------------------------------------*/
eclipse{
jdt{
sourceCompatibility ="${java_version}"
targetCompatibility ="${java_version}"
}
}
/*-----------------------------------------------------------------
* springboot
*----------------------------------------------------------------*/
jar {
// jar
enabled = true
archiveClassifier.set("")
manifest {
attributes 'Manifest-Version' : '1.0',
'Implementation-Title' : name,
'Implementation-Vendor' : group,
'Implementation-Version': archiveVersion
}
}
/*-----------------------------------------------------------------
* asciidoctor , asciidoc , jar
*----------------------------------------------------------------*/
asciidoctor {
baseDirFollowsSourceDir()
outputs.upToDateWhen { true }
logDocuments = true
sourceDir = file('asciidoc')
sources {
include '*.adoc'
}
outputDir = file("dist/help/" + project.name)
resources {
from(sourceDir) {
include 'resources/**'
}
}
}
asciidoctorj {
modules {
diagram.use()
}
}
/*-----------------------------------------------------------------
* , asciidoc web ,便
*----------------------------------------------------------------*/
task doc(type: org.asciidoctor.gradle.jvm.AsciidoctorTask){
baseDirFollowsSourceDir()
outputs.upToDateWhen { true }
logDocuments = true
sourceDir = file('asciidoc')
sources {
include '*.adoc'
}
outputDir = file("$asciidoc_deploy_dir" + project.name)
// asciidoc
// : -D
// gradle doc -DdocResource=true #
// gradle doc -DdocResource=false #
def docResource =System.getProperty("docResource")?:"true";
if(docResource=="true"){
resources {
from(sourceDir) {
include 'resources/**'
}
}
}
}
/*-----------------------------------------------------------------
* asciidoctor
*----------------------------------------------------------------*/
processResources {
dependsOn asciidoctor
doLast{
// jrebel
delete "$buildDir/resources/main/rebel.xml"
}
}
/*-----------------------------------------------------------------
* jrebel.xml (eclipse)
*----------------------------------------------------------------*/
task jrebelEclipse() {}
tasks.jrebelEclipse.doLast {
File resourcesFile =file('src/main/resources')
if(resourcesFile!=null && resourcesFile.exists()){
File rebelFile = file('src/main/resources/rebel.xml')
rebelFile.withWriter('UTF-8') { writer ->
writer.write('<?xml version="1.0" encoding="UTF-8"?>\n');
writer.write('<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.zeroturnaround.com" xsi:schemaLocation="http://www.zeroturnaround.com http://update.zeroturnaround.com/jrebel/rebel-2_1.xsd">\n');
writer.write('\t<classpath>\n');
if(file(project.name + '/src/main').exists()){
writer.write('\t\t<dir name="' + project.projectDir + '/bin/main"/>\n');
}
if(file(project.name + '/src/generated').exists()){
writer.write('\t\t<dir name="' + project.projectDir + '/bin/generated"/>\n');
}
writer.write('\t</classpath>\n');
writer.write('</application>');
}
}
}
/*-----------------------------------------------------------------
* jrebel.xml (idea)
*----------------------------------------------------------------*/
task jrebelIdea() {}
tasks.jrebelIdea.doLast {
if(isFrontendProject(file('.'))) {
File resourcesFile = file('java-src/main/resources')
if (resourcesFile != null && resourcesFile.exists()) {
File rebelFile = file('java-src/main/resources/rebel.xml')
rebelFile.withWriter('UTF-8') { writer ->
writer.write('<?xml version="1.0" encoding="UTF-8"?>\n');
writer.write('<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.zeroturnaround.com" xsi:schemaLocation="http://www.zeroturnaround.com http://update.zeroturnaround.com/jrebel/rebel-2_1.xsd">\n');
writer.write('\t<classpath>\n');
if (file(project.name + '/java-src/main').exists()) {
writer.write('\t\t<dir name="' + project.rootProject.projectDir + '/out/production/' + project.name + '"/>\n');
}
writer.write('\t</classpath>\n');
writer.write('</application>');
}
}
}else {
File resourcesFile = file('src/main/resources')
if (resourcesFile != null && resourcesFile.exists()) {
File rebelFile = file('src/main/resources/rebel.xml')
rebelFile.withWriter('UTF-8') { writer ->
writer.write('<?xml version="1.0" encoding="UTF-8"?>\n');
writer.write('<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.zeroturnaround.com" xsi:schemaLocation="http://www.zeroturnaround.com http://update.zeroturnaround.com/jrebel/rebel-2_1.xsd">\n');
writer.write('\t<classpath>\n');
if (file(project.name + '/src/main').exists()) {
writer.write('\t\t<dir name="' + project.rootProject.projectDir + '/out/production/' + project.name + '"/>\n');
}
writer.write('\t</classpath>\n');
writer.write('</application>');
}
}
}
}
/*-----------------------------------------------------------------
* maven publish
*----------------------------------------------------------------*/
publishing {
repositories {
maven {
allowInsecureProtocol = true // http
url = version.contains('SNAPSHOT') ? "${repository_snapshot_url}" : "${repository_release_url}"
credentials {
username = (version.contains('SNAPSHOT') ? "${repository_snapshot_username}" : "${repository_release_username}")
password = (version.contains('SNAPSHOT') ? "${repository_snapshot_password}" : "${repository_release_password}")
}
}
}
publications{
publication(MavenPublication){
from components.java
//artifact sourcesJar
//artifact javadocJar
versionMapping {
usage('java-api') {
fromResolutionOf('runtimeClasspath')
}
usage('java-runtime') {
fromResolutionResult()
}
}
}
}
}
/*-----------------------------------------------------------------
* package.json , name version
*----------------------------------------------------------------*/
task frontendUpdatePackageJson(){}
tasks.frontendUpdatePackageJson.doFirst {
if(isFrontendProject(file('.'))) {
println '开始执行 frontendUpdatePackageJson ......'
}
}
tasks.frontendUpdatePackageJson.doLast {
if(isFrontendProject(file('.'))){
String content =file('package.json').text;
def packageJson = new groovy.json.JsonSlurper().parseText(content);
if(packageJson!=null){
println packageJson.dependencies;
packageJson.name =project.name;
packageJson.version =project.version;
packageJson.dependencies['platform-core']=platform_core_frontend_version;
def json = groovy.json.JsonOutput.toJson(packageJson);
file('package.json').withWriter('UTF-8') { writer ->
writer.write(groovy.json.JsonOutput.prettyPrint(json));
}
}
}
}
/*-----------------------------------------------------------------
* pnpm install
*----------------------------------------------------------------*/
task frontendNpmInstall(type:Exec){
if(isFrontendProject(file('.'))){
workingDir '.'
if(org.gradle.internal.os.OperatingSystem.current().isWindows()){
commandLine 'cmd', '/c', 'pnpm', 'install'
}else{
commandLine 'pnpm', 'install'
}
}else{
if(org.gradle.internal.os.OperatingSystem.current().isWindows()){
commandLine 'cmd', '/c', 'cd', '.'
}else{
commandLine 'cd', '.'
}
}
}
tasks.frontendNpmInstall.doFirst {
if(isFrontendProject(file('.'))) {
println '开始执行 pnpm install ......';
}
}
/*-----------------------------------------------------------------
* pnpm sync
*----------------------------------------------------------------*/
task frontendNpmSync(type:Exec){
if(isFrontendProject(file('.')) && !project.name.contains("io.sc.platform.security.frontend")){
workingDir '.'
if(org.gradle.internal.os.OperatingSystem.current().isWindows()){
commandLine 'cmd', '/c', 'pnpm', 'sync'
}else{
commandLine 'pnpm', 'sync'
}
}else{
if(org.gradle.internal.os.OperatingSystem.current().isWindows()){
commandLine 'cmd', '/c', 'cd', '.'
}else{
commandLine 'cd', '.'
}
}
}
tasks.frontendNpmSync.doFirst {
if(isFrontendProject(file('.'))) {
println '开始执行 pnpm sync ......';
}
}
/*-----------------------------------------------------------------
* pnpm run build
*----------------------------------------------------------------*/
task frontendNpmBuild(type:Exec) {
if(isFrontendProject(file('.'))){
workingDir '.'
if(org.gradle.internal.os.OperatingSystem.current().isWindows()){
commandLine 'cmd', '/c', 'pnpm', 'run', 'build'
}else{
commandLine 'pnpm', 'run', 'build'
}
}else{
if(org.gradle.internal.os.OperatingSystem.current().isWindows()){
commandLine 'cmd', '/c', 'cd', '.'
}else{
commandLine 'cd', '.'
}
}
}
tasks.frontendNpmBuild.doFirst {
if (isFrontendProject(file('.'))) {
println '开始执行 pnpm run build ......'
}
}
/*-----------------------------------------------------------------
* pnpm run prod
*----------------------------------------------------------------*/
task frontendNpmProd(type:Exec) {
if(isFrontendProject(file('.'))){
workingDir '.'
if(org.gradle.internal.os.OperatingSystem.current().isWindows()){
commandLine 'cmd', '/c', 'pnpm', 'run', 'prod'
}else{
commandLine 'pnpm', 'run', 'prod'
}
}else{
if(org.gradle.internal.os.OperatingSystem.current().isWindows()){
commandLine 'cmd', '/c', 'cd', '.'
}else{
commandLine 'cd', '.'
}
}
}
tasks.frontendNpmProd.doFirst {
if(isFrontendProject(file('.'))){
println '开始执行 pnpm run prod ......'
}
}
/*-----------------------------------------------------------------
* dist/public/ index.html classpath:/templates/.html
* thymeleaf 使
*----------------------------------------------------------------*/
task frontendGenerateThymeleafTemplate {}
tasks.frontendGenerateThymeleafTemplate.doFirst {
if(isFrontendProject(file('.'))) {
println '开始执行 frontendGenerateThymeleafTemplate ......'
delete "java-src/main/resources/templates"
mkdir "java-src/main/resources/templates"
}
}
tasks.frontendGenerateThymeleafTemplate.doLast {
if(isFrontendProject(file('.'))) {
def content = file("dist/public/${project.name}/index.html").text;
content = content.replace('<script defer src="javascript/main', """<script defer src="${project.name}/javascript/main""");
def output = file("java-src/main/resources/templates/${project.name}.html");
output.withWriter('utf-8') { writer ->
writer.write content;
}
}
}
/*-----------------------------------------------------------------
* json properties
*----------------------------------------------------------------*/
task frontendGenerateI18n {}
tasks.frontendGenerateI18n.doFirst {
if(isFrontendProject(file('.'))){
println '开始执行 frontendGenerateI18n ......'
delete 'java-src/main/resources/' + project.name.replace('.', '/') + '/i18n';
delete 'java-src/main/resources/META-INF/platform/plugins/messages.json';
mkdir 'java-src/main/resources/' + project.name.replace('.', '/') + '/i18n';
mkdir 'java-src/main/resources/META-INF/platform/plugins';
}
}
tasks.frontendGenerateI18n.doLast {
if(isFrontendProject(file('.'))){
def messagesDir ='java-src/main/resources/' + project.name.replace('.', '/') + '/i18n';
def pluginDir ='java-src/main/resources/META-INF/platform/plugins';
def jsonDir ='src/i18n';
//
def tree = fileTree(jsonDir) { include '**/*.json' }
def i18nMessageFileList =new ArrayList<String>();
tree.each { File jsonFile -> i18nMessageFileList.add(jsonFile.getName()) }
if(i18nMessageFileList.size()>0){
// java-src/main/resources/META-INF/platform/plugins/messages.json
def content ='';
content +='{\n';
content +=' includes:[\n';
content +=' "' + project.name.replace('.','/') + '/i18n/messages"' + '\n';
content +=' ]\n';
content +='}\n';
def output =file(pluginDir + '/messages.json');
output.withWriter('utf-8') { writer ->
writer.write content;
}
// java-src/main/resources/{project.name}/messages_{locale}.properties
for(String fileName : i18nMessageFileList){
def json = new groovy.json.JsonSlurper().parseText(file(jsonDir + '/' + fileName).text);
def sb =new StringBuilder();
json.keySet().each { String key ->
sb.append(key).append("=").append(groovy.json.StringEscapeUtils.escapeJava(json.get(key))).append("\n");
};
def outputFilePath =messagesDir + '/' + fileName.replace('.json','.properties');
file(outputFilePath).withWriter('utf-8') { writer ->
writer.write sb.toString();
}
}
}
}
}
/*-----------------------------------------------------------------
* json json
*----------------------------------------------------------------*/
task frontendGenerateMenus {}
tasks.frontendGenerateMenus.doFirst {
if(isFrontendProject(file('.'))){
println '开始执行 frontendGenerateMenus ......'
delete 'java-src/main/resources/META-INF/platform/plugins/menus.json';
}
}
tasks.frontendGenerateMenus.doLast {
if(isFrontendProject(file('.'))) {
java.nio.file.Files.copy(file('src/menus/menus.json').toPath(), file('java-src/main/resources/META-INF/platform/plugins/menus.json').toPath());
}
}
/*-----------------------------------------------------------------
* json json
*----------------------------------------------------------------*/
task frontendGenerateRoutes {}
tasks.frontendGenerateRoutes.doFirst {
if(isFrontendProject(file('.'))){
println '开始执行 frontendGenerateRoutes ......'
delete 'java-src/main/resources/META-INF/platform/plugins/frontend-routes.json';
}
}
tasks.frontendGenerateRoutes.doLast {
if(isFrontendProject(file('.'))) {
def routes = new groovy.json.JsonSlurper().parseText(file("src/routes/routes.json").text);
for(def route : routes){
route.module=project.name;
}
def json = groovy.json.JsonOutput.toJson(routes);
def outputFile =file("java-src/main/resources/META-INF/platform/plugins/frontend-routes.json");
outputFile.withWriter('UTF-8') { writer ->
writer.write(groovy.json.JsonOutput.prettyPrint(json));
}
}
}
/*-----------------------------------------------------------------
* ,便
*----------------------------------------------------------------*/
task frontendModule {}
tasks.frontendModule.doFirst {
if(isFrontendProject(file('.'))) {
println '开始执行 frontendModule ......'
delete 'java-src/main/resources/META-INF/platform/plugins/frontend-module.json'
}
}
tasks.frontendModule.doLast {
if(isFrontendProject(file('.'))) {
//components---------------------------------------
List<String> components =new ArrayList<String>();
def routes = new groovy.json.JsonSlurper().parseText(file("java-src/main/resources/META-INF/platform/plugins/frontend-routes.json").text);
for(def route : routes){
components.add(route.component);
}
//resources----------------------------------------
List<String> resources = new ArrayList<String>();
def dirPath = file('dist').absolutePath;
if(project.name.contains('io.sc.platform.mvc.frontend')){
def tree = fileTree('dist') {
include '**/*.*'
exclude "public/${project.name}/configure.js"
exclude "public/${project.name}/favicon.svg"
exclude "public/${project.name}/index.html"
exclude "public/${project.name}/login-bg.jpg"
exclude "public/${project.name}/logo.svg"
}
tree.each { File file ->
resources.add(file.absolutePath.substring(dirPath.length()));
}
}else{
def tree = fileTree('dist') {
include '**/*.*'
exclude '**/webjars/**/*.*'
exclude "public/${project.name}/configure.js"
exclude "public/${project.name}/favicon.svg"
exclude "public/${project.name}/index.html"
exclude "public/${project.name}/login-bg.jpg"
exclude "public/${project.name}/logo.svg"
}
tree.each { File file ->
resources.add(file.absolutePath.substring(dirPath.length()));
}
}
//all-in-one------------------------------------
Map<String,Object> allInOne =new LinkedHashMap<>();
allInOne.put("name",project.name);
allInOne.put("components",components);
allInOne.put("resources",resources);
def json = groovy.json.JsonOutput.toJson(allInOne);
def outputFile =file('java-src/main/resources/META-INF/platform/plugins/frontend-module.json');
outputFile.withWriter('UTF-8') { writer ->
writer.write(groovy.json.JsonOutput.prettyPrint(json));
}
}
}
/*-----------------------------------------------------------------
* jar
*----------------------------------------------------------------*/
task frontend() {}
tasks.frontend.doFirst {
if(isFrontendProject(file('.'))){
println '开始执行 frontend ......'
}
}
//
frontendNpmInstall.dependsOn(frontendUpdatePackageJson)
frontendNpmSync.dependsOn(frontendNpmInstall)
frontendNpmBuild.dependsOn(frontendNpmSync)
frontendNpmProd.dependsOn(frontendNpmSync)
//
// : -D
// gradle bootwar -Dfrontend=dev # pnpm build
// gradle bootwar -Dfrontend=prod # pnpm prod
// gradle bootwar -Dfrontend=none # ,
def isFrontend =System.getProperty("frontend")?:"prod";
if(isFrontend=="dev"){
frontendGenerateThymeleafTemplate.dependsOn(frontendNpmBuild);
}else if(isFrontend=="prod"){
frontendGenerateThymeleafTemplate.dependsOn(frontendNpmProd);
}
frontendGenerateI18n.dependsOn(frontendGenerateThymeleafTemplate);
frontendGenerateMenus.dependsOn(frontendGenerateI18n);
frontendGenerateRoutes.dependsOn(frontendGenerateMenus);
frontendModule.dependsOn(frontendGenerateRoutes);
frontend.dependsOn(frontendModule);
//tasks.preBuild.dependsOn(frontend);
processResources.dependsOn(frontend)
processResources {
if(isFrontendProject(file('.'))) {
exclude("**/${project.name}/*.*")
}
}
}
/***********************************************************************
* (Root),
**********************************************************************/
/*-----------------------------------------------------------------
* idea
*----------------------------------------------------------------*/
tasks.ideaProject.enabled=true // ideaProject , ipr
tasks.ideaModule.enabled=false // ideaModule
tasks.ideaWorkspace.enabled=true // ideaWorkspace , iws
tasks.ideaProject.doFirst {
delete project.name + '.ipr'
}
/*-----------------------------------------------------------------
* idea xml
*----------------------------------------------------------------*/
idea {
workspace {
iws {
// iws ,
// 1. Automatically show first error in editor false
withXml {
// 1. Automatically show first error in editor false
def node = it.asNode();
def compilerWorkspaceConfigurationNode =node.find{it.@name=='CompilerWorkspaceConfiguration'}
if(compilerWorkspaceConfigurationNode==null){
compilerWorkspaceConfigurationNode =node.appendNode("component",[name:"CompilerWorkspaceConfiguration"]);
}
def autoShowErrorsInEditorNode =compilerWorkspaceConfigurationNode.find{it.@name=='AUTO_SHOW_ERRORS_IN_EDITOR'}
if(autoShowErrorsInEditorNode==null){
autoShowErrorsInEditorNode =compilerWorkspaceConfigurationNode.appendNode("option",[name:"AUTO_SHOW_ERRORS_IN_EDITOR"]);
}
autoShowErrorsInEditorNode.@value ="false";
}
}
}
project {
vcs = 'Git'
ipr {
// ipr ,
// 1.
// <component name="ProjectModuleManager">
// <modules>
// <module fileurl="file://$PROJECT_DIR$/projectName.iml" filepath="$PROJECT_DIR$/projectName.iml"/> #
// ......
// </modules>
// </component>
// 2. .properties ()
//
// <component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false"/>
// :
// <component name="Encoding" native2AsciiForPropertiesFiles="true" />
// 3. 使 idea (enable annotation processing)
//
// <annotationProcessing enabled="false" useClasspath="true"/>
// :
// <annotationProcessing>
// <profile default="true" name="" enabled="true" />
// </annotationProcessing>
withXml {
// 1.
def node = it.asNode()
def projectModuleManagerNode =node.find{it.@name=='ProjectModuleManager'}
def rootImlNode =projectModuleManagerNode.modules.module.find{it.@fileurl=='file://$PROJECT_DIR$/' + project.name + '.iml'}
def rootImlParentNode =rootImlNode.parent()
rootImlParentNode.remove(rootImlNode)
// 2. Encoding
def encodingNode =node.find{it.@name=='Encoding'}
encodingNode.@native2AsciiForPropertiesFiles="true"
// 3. 使 idea (enable annotation processing)
def compilerConfigurationNode =node.find{it.@name=='CompilerConfiguration'}
def annotationProcessingNode =compilerConfigurationNode.annotationProcessing[0]
def annotationProcessingParentNode =annotationProcessingNode.parent()
annotationProcessingParentNode.remove(annotationProcessingNode)
annotationProcessingNode =annotationProcessingParentNode.appendNode("annotationProcessing")
annotationProcessingNode.appendNode("profile",[default:true,enabled:true])
// 4. SaveActions , , .ipr xml
// <component name="SaveActionSettings">
// <option name="actions">
// <set>
// <option value="activate" />
// <option value="reload" />
// </set>
// </option>
// <option name="configurationPath" value="" />
// </component>
// <component name="SaveActionSettings">
def saveActionSettingsNode =node.find{it.@name=='SaveActionSettings'}
if(saveActionSettingsNode==null){
saveActionSettingsNode =node.appendNode("component",[name:"SaveActionSettings"])
}
// <option name="actions">
def actionsNode =saveActionSettingsNode.find{it.@name=='actions'}
if(actionsNode==null){
actionsNode =saveActionSettingsNode.appendNode("option",[name:"actions"])
}
// <set>
def setNode =actionsNode.set[0]
if(setNode==null){
setNode =actionsNode.appendNode("set")
}
// <option value="activate" />
// <option value="reload" />
def options =setNode.option
if(options!=null && options.size()>0){
//
for(int i=0;i<options.size();i++){
setNode.remove(options.get(i));
}
}
//
setNode.appendNode("option",[value:"activate"])
setNode.appendNode("option",[value:"reload"])
}
}
}
}
/*-----------------------------------------------------------------
* clean
* idea out , out ,
* gradle clean , clean
*----------------------------------------------------------------*/
task clean {
doFirst{
delete 'out'
}
}
/*-----------------------------------------------------------------
* cleanIdea , cleanIdea :
* cleanIdeaProject, cleanIdeaModule ,
* gradle cleanIdeaWorkspace , .iws
* 便, cleanIdea 3
* cleanIdeaProject, cleanIdeaModule, cleanIdeaWorkspace
*----------------------------------------------------------------*/
cleanIdea {
dependsOn cleanIdeaWorkspace
}
task github {
println ''
}
tasks.named('wrapper') {
distributionUrl = "http://nexus.sc.io:8000/repository/maven-releases/gradle/gradle/${gradleVersion}/gradle-${gradleVersion}.zip"
}

88
gradle.properties

@ -0,0 +1,88 @@
###########################################################
# gradle configuration
###########################################################
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.configureondemand=true
systemProp.org.gradle.internal.publish.checksums.insecure=true
###########################################################
# Maven private repository configuration
###########################################################
repository_url=http://58.33.84.154:8000/repository/maven-public/
repository_release_url=http://58.33.84.154:8000/repository/maven-releases/
repository_release_username=admin
repository_release_password=admin
repository_snapshot_url=http://58.33.84.154:8000/repository/maven-snapshots/
repository_snapshot_username=admin
repository_snapshot_password=admin
###########################################################
# java
###########################################################
java_version=8
java_encoding=UTF-8
###########################################################
# application
###########################################################
application_group=io.sc
application_version=8.1.40
###########################################################
# platform
###########################################################
platform_group=io.sc
#platform_version=8.1.44
platform_version=8.2.0
#platform_plugin_version=8.1.44
platform_plugin_version=8.2.0
#platform_core_frontend_version=8.1.217
platform_core_frontend_version=8.2.6
###########################################################
# dependencies version
###########################################################
asciidoctor_version=3.3.2
commons_fileupload_version=1.4
commons_io_version=2.11.0
cxf_version=3.2.7
dm_hibernate_version=8.1.2.192
flowable_version=6.8.0
guava_version=31.1-jre
ipaddress_version=5.4.0
jackson_version=2.13.5
jasypt_version=2.1.2
jboss_logging_version=3.3.2.Final
jcommander_version=1.82
jdbc_dm_version=8.1.2.192
jib_version=3.3.2
jjwt_version=0.9.1
jxls_jexcel_version=1.0.7
jxls_poi_version=1.0.15
jxls_version=2.4.6
mybatis_version=3.5.10
ooxml_schemas_version=1.4
opencsv_version=5.7.1
oshi_version=6.4.2
p6spy_version=3.9.1
pinyin4j_version=2.5.1
poi_version=5.2.5
schemacrawler_version=16.19.11
spring_boot_version=2.7.18
spring_cloud_alibaba_version=2021.0.4.0
spring_cloud_context_version=3.1.4
spring_cloud_version=2021.0.8
spring_security_oauth2_authorization_server_version=0.4.5
spring_statemachine_version=3.2.1
webjars_locator_weblogic_version=0.10
zip4j_version=2.11.5
###########################################################
# asciidoc deploy directory,the path must end with '/'
###########################################################
asciidoc_deploy_dir=/Users/wangshaoping/wspsc/website/www/books/

249
gradlew

@ -0,0 +1,249 @@
#!/bin/sh
#
# Copyright © 2015-2021 the original authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
##############################################################################
#
# Gradle start up script for POSIX generated by Gradle.
#
# Important for running:
#
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
# noncompliant, but you have some other compliant shell such as ksh or
# bash, then to run this script, type that shell name before the whole
# command line, like:
#
# ksh Gradle
#
# Busybox and similar reduced shells will NOT work, because this script
# requires all of these POSIX shell features:
# * functions;
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
# * compound commands having a testable exit status, especially «case»;
# * various built-in commands including «command», «set», and «ulimit».
#
# Important for patching:
#
# (2) This script targets any POSIX shell, so it avoids extensions provided
# by Bash, Ksh, etc; in particular arrays are avoided.
#
# The "traditional" practice of packing multiple parameters into a
# space-separated string is a well documented source of bugs and security
# problems, so this is (mostly) avoided, by progressively accumulating
# options in "$@", and eventually passing that to Java.
#
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
# see the in-line comments for details.
#
# There are tweaks for specific operating systems such as AIX, CygWin,
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
#
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
app_path=$0
# Need this for daisy-chained symlinks.
while
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
[ -h "$app_path" ]
do
ls=$( ls -ld "$app_path" )
link=${ls#*' -> '}
case $link in #(
/*) app_path=$link ;; #(
*) app_path=$APP_HOME$link ;;
esac
done
# This is normally unused
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
warn () {
echo "$*"
} >&2
die () {
echo
echo "$*"
echo
exit 1
} >&2
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "$( uname )" in #(
CYGWIN* ) cygwin=true ;; #(
Darwin* ) darwin=true ;; #(
MSYS* | MINGW* ) msys=true ;; #(
NONSTOP* ) nonstop=true ;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD=$JAVA_HOME/jre/sh/java
else
JAVACMD=$JAVA_HOME/bin/java
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD=java
if ! command -v java >/dev/null 2>&1
then
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
fi
# Increase the maximum file descriptors if we can.
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC2039,SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
case $MAX_FD in #(
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC2039,SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
fi
# Collect all arguments for the java command, stacking in reverse order:
# * args from the command line
# * the main class name
# * -classpath
# * -D...appname settings
# * --module-path (only if needed)
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
# For Cygwin or MSYS, switch paths to Windows format before running java
if "$cygwin" || "$msys" ; then
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
JAVACMD=$( cygpath --unix "$JAVACMD" )
# Now convert the arguments - kludge to limit ourselves to /bin/sh
for arg do
if
case $arg in #(
-*) false ;; # don't mess with options #(
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
[ -e "$t" ] ;; #(
*) false ;;
esac
then
arg=$( cygpath --path --ignore --mixed "$arg" )
fi
# Roll the args list around exactly as many times as the number of
# args, so each arg winds up back in the position where it started, but
# possibly modified.
#
# NB: a `for` loop captures its iteration list before it begins, so
# changing the positional parameters here affects neither the number of
# iterations, nor the values presented in `arg`.
shift # remove old arg
set -- "$@" "$arg" # push replacement arg
done
fi
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Collect all arguments for the java command:
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# and any embedded shellness will be escaped.
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# treated as '${Hostname}' itself on the command line.
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \
org.gradle.wrapper.GradleWrapperMain \
"$@"
# Stop when "xargs" is not available.
if ! command -v xargs >/dev/null 2>&1
then
die "xargs is not available"
fi
# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
#
# In Bash we could simply go:
#
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
# set -- "${ARGS[@]}" "$@"
#
# but POSIX shell has neither arrays nor command substitution, so instead we
# post-process each arg (as a line of input to sed) to backslash-escape any
# character that might be a shell metacharacter, then use eval to reverse
# that process (while maintaining the separation between arguments), and wrap
# the whole thing up as a single "set" statement.
#
# This will of course break if any of these variables contains a newline or
# an unmatched quote.
#
eval "set -- $(
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
xargs -n1 |
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
tr '\n' ' '
)" '"$@"'
exec "$JAVACMD" "$@"

92
gradlew.bat

@ -0,0 +1,92 @@
@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem https://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%"=="" set DIRNAME=.
@rem This is normally unused
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if %ERRORLEVEL% equ 0 goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
:end
@rem End local scope for the variables with windows NT shell
if %ERRORLEVEL% equ 0 goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
set EXIT_CODE=%ERRORLEVEL%
if %EXIT_CODE% equ 0 set EXIT_CODE=1
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
exit /b %EXIT_CODE%
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega

0
io.sc.engine.rwa.calculator/CHANGELOG

0
io.sc.engine.rwa.calculator/README.adoc

13
io.sc.engine.rwa.calculator/build.gradle

@ -0,0 +1,13 @@
dependencies {
api(
project(":io.sc.engine.rwa.importer"),
"io.sc:io.sc.platform.jdbc.liquibase:${platform_version}",
"io.sc:io.sc.platform.orm:${platform_version}",
"io.sc:io.sc.platform.core:${platform_version}",
"io.sc:io.sc.platform.mvc:${platform_version}",
"io.sc:io.sc.platform.scheduler.executor:${platform_version}",
"org.rocksdb:rocksdbjni:${rocksdb_version}",
"com.opencsv:opencsv:5.7.1",
"jep:jep:2.24"
)
}

1
io.sc.engine.rwa.calculator/gradle.properties

@ -0,0 +1 @@
rocksdb_version=8.1.1.1

77
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/IrsRWACalculator.java

@ -0,0 +1,77 @@
package io.sc.engine.rwa.calculator;
import io.sc.engine.rwa.calculator.cache.impl.RocksDbCache;
import io.sc.engine.rwa.calculator.domain.RiskMitigResult;
import io.sc.engine.rwa.calculator.step.irs.*;
import io.sc.engine.rwa.calculator.utils.CsvUtil;
import io.sc.platform.util.TimeMonitor;
import javax.sql.DataSource;
import java.util.List;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
/**
* RWA计量
*/
public class IrsRWACalculator {
private DataSource ds;
public IrsRWACalculator(){}
public IrsRWACalculator(DataSource ds){
this.ds =ds;
}
private List<RiskMitigResult> riskMitigResultList;
public void setRiskMitigResultList(List<RiskMitigResult> riskMitigResultList) {
this.riskMitigResultList = riskMitigResultList;
}
public List<RiskMitigResult> getRiskMitigResultList() {
return riskMitigResultList;
}
public void calculate() {
try {
CsvUtil.init();
TimeMonitor tm = new TimeMonitor();
RocksDbCache cache = new RocksDbCache(String.class, String.class);
//准备工作:将规则参数等配置信息写入内存
tm.info("配置信息写入内存,启动......");
IrsParamCache paramCache = new IrsParamCache(ds);
paramCache.cache();
tm.info("配置信息写入内存,完成。");
//第一步:将源数据映射成RWA计量所需的标准数据模型
tm.info("标准数据模型映射,启动......");
IrsStep1 step1 = new IrsStep1(cache, paramCache);
step1.exec();
tm.info("标准数据模型映射,完成。");
//第二步:识别内评法下债项的风险暴露分类
tm.info("债项内评法风险暴露分类,启动......");
IrsStep2 step2 = new IrsStep2(cache, paramCache);
step2.exec();
tm.info("债项内评法风险暴露分类,完成。");
//第三步:内评法下缓释品的风险缓释分配
tm.info("缓释品的风险缓释分配,启动......");
IrsStep3 step3 = new IrsStep3(cache, paramCache);
step3.exec();
tm.info("缓释品的风险缓释分配,完成。");
//第四步:生成债项风险暴露分类结果
tm.info("生成债项风险暴露分类结果,启动......");
IrsStep4 step4 = new IrsStep4(cache);
step4.exec();
tm.info("生成债项风险暴露分类结果,完成。");
//第五步:将RWA计量结果写入数据库
tm.info("RWA计量结果异步写入数据库,启动......");
IrsStep5 step5 = new IrsStep5(ds, false);
step5.exec();
//第六步:生成报表
// IrsStep6 step6 = new IrsStep6(ds);
// step6.exec();
cache.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

71
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/RWACalculator.java

@ -0,0 +1,71 @@
package io.sc.engine.rwa.calculator;
import io.sc.engine.rwa.calculator.cache.impl.RocksDbCache;
import io.sc.engine.rwa.calculator.domain.RiskMitigResult;
import io.sc.engine.rwa.calculator.step.*;
import io.sc.engine.rwa.calculator.utils.CsvUtil;
import io.sc.platform.util.TimeMonitor;
import javax.sql.DataSource;
import java.text.MessageFormat;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
/**
* RWA计量
*/
public class RWACalculator {
private DataSource ds;
public RWACalculator(){}
public RWACalculator(DataSource ds){
this.ds =ds;
}
private List<RiskMitigResult> riskMitigResultList;
public void setRiskMitigResultList(List<RiskMitigResult> riskMitigResultList) {
this.riskMitigResultList = riskMitigResultList;
}
public List<RiskMitigResult> getRiskMitigResultList() {
return riskMitigResultList;
}
public void calculate() {
try {
CsvUtil.init();
TimeMonitor tm = new TimeMonitor();
RocksDbCache cache = new RocksDbCache(String.class, String.class);
//准备工作:将规则参数等配置信息写入内存
tm.info("配置信息写入内存,启动......");
ParamCache paramCache = new ParamCache();
paramCache.cache();
tm.info("配置信息写入内存,成功。");
//第一步:将源数据映射成RWA计量所需的标准数据模型
tm.info("标准数据模型映射,启动......");
Step1 step1 = new Step1(cache, paramCache);
step1.exec();
tm.info("标准数据模型映射,成功。");
//第二步:识别表内风险暴露分类
tm.info("债项表内风险暴露分类,启动......");
Step2 step2 = new Step2(cache, paramCache);
step2.exec();
tm.info("债项表内风险暴露分类,成功。");
//第四步:识别合格缓释工具,并进行缓释分配
tm.info("合格缓释工具识别及缓释分配,启动......");
Step4 step4 = new Step4(cache, paramCache);
step4.exec();
tm.info("合格缓释工具识别及缓释分配,成功。");
//第五步:合并债项信息和缓释分配信息,生成债项风险暴露分类结果数据
tm.info("生成债项风险暴露分类结果,启动......");
Step5 step5 = new Step5(cache);
step5.exec();
this.setRiskMitigResultList(step5.getRiskMitigResultList());
tm.info("生成债项风险暴露分类结果,成功。");
cache.close();
}catch(Exception e){
e.printStackTrace();
}
}
}

17
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/RWAReportor.java

@ -0,0 +1,17 @@
package io.sc.engine.rwa.calculator;
import javax.sql.DataSource;
/**
* 生成RWA报表
*/
public class RWAReportor {
private DataSource ds;
public RWAReportor(){}
public RWAReportor(DataSource ds){
this.ds = ds;
}
public void exec() throws Exception {
}
}

229
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/RWATestDataGenerator.java

@ -0,0 +1,229 @@
package io.sc.engine.rwa.calculator;
import io.sc.engine.rwa.calculator.utils.CsvUtil;
import io.sc.platform.util.TimeMonitor;
import java.io.BufferedWriter;
public class RWATestDataGenerator {
public static void main(String[] args) throws Exception {
RWATestDataGenerator t = new RWATestDataGenerator();
t.generateTestData(100,100,100);
}
public void generateTestData(Integer pers_cnt, Integer corp_cnt, Integer oth_cnt) throws Exception {
TimeMonitor tm =new TimeMonitor();
//个人客户
tm.info("生成个人客户信息"+ pers_cnt +"笔....");
BufferedWriter writer = CsvUtil.getWriter("RWA_S_CUSTOMER", false);
int i = 1;
while(i <= pers_cnt){
String line = "C2023113000001,XXXXXX,INDIV,10,9999888333,,,CNY,,CHINA,,,,800000,30000,0,0,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,INDIV,1,1,0";
String newLine = "20231130," + line.split(",")[0]+ "_" + i + "," + line.substring(line.indexOf(",")+1)+"\n";
writer.write(newLine);
writer.flush();
i ++;
}
//公司客户
tm.info("生成对公客户信息"+ corp_cnt +"笔....");
writer = CsvUtil.getWriter("RWA_S_CUSTOMER", true);
i = 1;
while(i <= corp_cnt){
String line = "C2023113000002,XXXXXX,CORP,20,16667363,A,10,,A0112,CHINA,AAA,0,1,100000000,,0,0,0,0,0,0,1,1,0,0,0,0.65,0.8,101,101,101,101,无保留意见,1,90000000,90000000,90000000,90000000,90000000,90000000,90000000,90000000,90000000,90000000,90000000,90000000,90000000,90000000,90000000,0.1,90000000,10000000,A+,CORP,0,0,1";
String newLine = "20231130," + line.split(",")[0]+ "_" + i + "," + line.substring(line.indexOf(",")+1)+"\n";
writer.write(newLine);
writer.flush();
i ++;
}
//个人贷款
tm.info("生成个人贷款信息"+ pers_cnt*5 +"笔....");
writer = CsvUtil.getWriter("RWA_S_DEBT", false);
i = 1;
while(i <= pers_cnt){
String line = "D202311300001,I,CNY,100000,xxxx,C2023113000001,XXXXX,2021-01-21,2025-01-22,10,,,4500000,160000,0,,,02,0,1,0.4,0.4,1,1,1,1,1,1,0,0,4500000,1,6000000,6000000,6000000,0,0,1,1,1,0";
String[] arr = line.split(",");
for(int j = 1; j < 6; j ++) {
String newLine = "20231130," + arr[0] + "_" + i + "_" + j + "," + arr[1] + "," + arr[2] + "," + arr[3] + "," + arr[4] + ",C2023113000001_" + i + ",XXXXXX," + arr[7] + "," + arr[8] + "," + arr[9] + "," + arr[10] + "," + arr[11] + "," + arr[12] + "," + arr[13] + "," + arr[14] + "," + arr[15] + "," + arr[16] + "," + arr[17] + "," + arr[18] + "," + arr[19] + "," + arr[20] + "," + arr[21] + "," + arr[22] + "," + arr[23] + "," + arr[24] + "," + arr[25] + "," + arr[26] + "," + arr[27] + "," + arr[28] + "," + arr[29] + "," + arr[30] + "," + arr[31] + "," + arr[32] + "," + arr[33] + "," + arr[34] + "," + arr[35] + "," + arr[36] + "," + arr[37] + "," + arr[38] + "," + arr[39] + "," + arr[40] + "\n";
writer.write(newLine);
writer.flush();
}
i ++;
}
//对公贷款
tm.info("生成对公贷款信息"+ corp_cnt*2 +"笔....");
writer = CsvUtil.getWriter("RWA_S_DEBT", true);
i = 1;
while(i <= corp_cnt){
String line = "D202311300002,I,CNY,100000,xxxx,C2023113000002,XXXXX,2021-01-21,2025-01-22,10,,,90000000,160000,0,,,02,0,1,0.4,0.4,1,1,1,1,1,1,0,0,4500000,1,6000000,6000000,6000000,0,0,1,1,1,0";
String[] arr = line.split(",");
for(int j = 1; j < 3; j ++) {
String newLine = "20231130," + arr[0] + "_" + i + "_" + j + "," + arr[1] + "," + arr[2] + "," + arr[3] + "," + arr[4] + ",C2023113000002_" + i + ",XXXXXX," + arr[7] + "," + arr[8] + "," + arr[9] + "," + arr[10] + "," + arr[11] + "," + arr[12] + "," + arr[13] + "," + arr[14] + "," + arr[15] + "," + arr[16] + "," + arr[17] + "," + arr[18] + "," + arr[19] + "," + arr[20] + "," + arr[21] + "," + arr[22] + "," + arr[23] + "," + arr[24] + "," + arr[25] + "," + arr[26] + "," + arr[27] + "," + arr[28] + "," + arr[29] + "," + arr[30] + "," + arr[31] + "," + arr[32] + "," + arr[33] + "," + arr[34] + "," + arr[35] + "," + arr[36] + "," + arr[37] + "," + arr[38] + "," + arr[39] + "," + arr[40] + "\n";
writer.write(newLine);
writer.flush();
}
i ++;
}
//信用卡
tm.info("生成信用卡信息"+ pers_cnt*10 +"笔....");
writer = CsvUtil.getWriter("RWA_S_CREDIT_CARD", false);
i = 1;
while(i <= pers_cnt){
String line = "XYK202311300001,I,CNY,88888,XXXXX,C2023113000001,XXXXX,2021-11-20,2024-12-22,,,10,999999,8888,0,1,0,0,0";
String[] arr = line.split(",");
for(int j = 1; j < 11; j ++) {
String newLine = "20231130," + arr[0] + "_" + i + "_" + j + "," + arr[1] + "," + arr[2] + "," + arr[3] + "," + arr[4] + ",C2023113000001_" + i + ",XXXXXX," + arr[7] + "," + arr[8] + "," + arr[9] + "," + arr[10] + "," + arr[11] + "," + arr[12] + "," + arr[13] + "," + arr[14] + "," + arr[15] + "," + arr[16] + "," + arr[17] + "," + arr[18] + "\n";
writer.write(newLine);
writer.flush();
}
i ++;
}
//贷款承诺
tm.info("生成贷款承诺信息"+ oth_cnt +"笔....");
writer = CsvUtil.getWriter("RWA_S_COMMITMENT", false);
i = 1;
while(i <= oth_cnt){
String line = "CN202311300001,I,CNY,33333,XXXXX,C2023113000001,XXXXXX,2023-01-03,2025-12-01,35,,,10,77777,9872,0,1,0";
String[] arr = line.split(",");
String newLine = "20231130," + arr[0] + "_" + i + "," + arr[1] + "," + arr[2] + "," + arr[3] + "," + arr[4] + ",C2023113000001_" + i + ",XXXXXX," + arr[7] + "," + arr[8] + "," + arr[9] + "," + arr[10] + "," + arr[11] + "," + arr[12] + "," + arr[13] + "," + arr[14] + "," + arr[15] + "," + arr[16] + "," + arr[17] +"\n";
writer.write(newLine);
writer.flush();
i ++;
}
//信用证
tm.info("生成信用证信息"+ oth_cnt +"笔....");
writer = CsvUtil.getWriter("RWA_S_CREDIT", false);
i = 1;
while(i <= oth_cnt){
String line = "XYZ202311300001,O,CNY,50100,开出信用证,C2023113000001,XXXXX,01,02,2021-01-21,2025-01-22,35,,,10,1000000,100000,0,0,01";
String[] arr = line.split(",");
String newLine = "20231130," + arr[0] + "_" + i + "," + arr[1] + "," + arr[2] + "," + arr[3] + "," + arr[4] + ",C2023113000002_" + i + ",XXXXXX," + arr[7] + "," + arr[8] + "," + arr[9] + "," + arr[10] + "," + arr[11] + "," + arr[12] + "," + arr[13] + "," + arr[14] + "," + arr[15] + "," + arr[16] + "," + arr[17] + "," + arr[18] + "," + arr[19] +"\n";
writer.write(newLine);
writer.flush();
i ++;
}
//证券投资
tm.info("生成证券投资信息"+ oth_cnt +"笔....");
writer = CsvUtil.getWriter("RWA_S_SECURITY_POSITION", false);
i = 1;
while(i <= oth_cnt){
String line = "ZZTZ202311300001,I,CNY,10000,XXXX,C2023113000001,财政部,2021-01-21,2025-01-22,,,10,1000000,100000,AA,10,01,10,0,1,0,0,0";
String[] arr = line.split(",");
String newLine = "20231130," + arr[0] + "_" + i + "," + arr[1] + "," + arr[2] + "," + arr[3] + "," + arr[4] + ",C2023113000002_" + i + ",中国工商银行股份有限公司," + arr[7] + "," + arr[8] + "," + arr[9] + "," + arr[10] + "," + arr[11] + "," + arr[12] + "," + arr[13] + "," + arr[14] + "," + arr[15] + "," + arr[16] + "," + arr[17] + "," + arr[18] + "," + arr[19] + "," + arr[20] + "," + arr[21] + "," + arr[21] +"\n";
writer.write(newLine);
writer.flush();
i ++;
}
//保函
tm.info("生成保函信息"+ oth_cnt +"笔....");
writer = CsvUtil.getWriter("RWA_S_BH", false);
i = 1;
while(i <= oth_cnt){
String line = "BH202311300001,O,CNY,50201,融资性保函,C2023113000001,XXXXX,2021-01-21,2025-01-22,,,10,1000000,100000,0,0";
String[] arr = line.split(",");
String newLine = "20231130," + arr[0] + "_" + i + "," + arr[1] + "," + arr[2] + "," + arr[3] + "," + arr[4] + ",C2023113000002_" + i + ",XXXXX," + arr[7] + "," + arr[8] + "," + arr[9] + "," + arr[10] + "," + arr[11] + "," + arr[12] + "," + arr[13] + "," + arr[14] + "," + arr[15] +"\n";
writer.write(newLine);
writer.flush();
i ++;
}
//存放同业及拆借
tm.info("生成存放同业及拆借信息"+ oth_cnt +"笔....");
writer = CsvUtil.getWriter("RWA_S_IBOUT", false);
i = 1;
while(i <= oth_cnt){
String line = "IBO202311300001,I,CNY,10000,XXXXX,C2023113000001,财政部,2021-01-21,2025-01-22,,,10,1000000,100000,0,0";
String[] arr = line.split(",");
String newLine = "20231130," + arr[0] + "_" + i + "," + arr[1] + "," + arr[2] + "," + arr[3] + "," + arr[4] + ",C2023113000002_" + i + ",中国工商银行股份有限公司," + arr[7] + "," + arr[8] + "," + arr[9] + "," + arr[10] + "," + arr[11] + "," + arr[12] + "," + arr[13] + "," + arr[14] + "," + arr[15] +"\n";
writer.write(newLine);
writer.flush();
i ++;
}
//保证人1
tm.info("生成个人贷款保证人信息"+ pers_cnt*5 +"笔....");
writer = CsvUtil.getWriter("RWA_S_GUARANTEE", false);
i = 1;
while(i <= pers_cnt){
String line = "G202312060001,C2023113000001,财政部,2023-06-09,2025-06-09,1000000,CNY,1,1,10,0,1,1,D202311300001";
String[] arr = line.split(",");
for(int j = 1; j < 6; j ++) {
String newLine = "20231130," + arr[0] + "_" + i + "_" + j + ",C2023113000001_" + i + ",财政部," + arr[3] + "," + arr[4] + "," + arr[5] + "," + arr[6] + "," + arr[7] + "," + arr[8] + "," + arr[9] + "," + arr[10] + "," + arr[11] + "," + arr[12] + ",D202311300001_" + i + "_" + j + "\n";
writer.write(newLine);
writer.flush();
}
i ++;
}
//保证人2
tm.info("生成对公贷款保证人信息"+ corp_cnt +"笔....");
writer = CsvUtil.getWriter("RWA_S_GUARANTEE", true);
i = 1;
while(i <= corp_cnt){
String line = "G202312060002,C2023113000001,财政部,2023-06-09,2025-06-09,1000000,CNY,1,1,10,0,1,1,D202311300001";
String[] arr = line.split(",");
for(int j = 1; j < 3; j ++) {
String newLine = "20231130," + arr[0] + "_" + i + "_" + j + ",C2023113000002_" + i + ",财政部," + arr[3] + "," + arr[4] + "," + arr[5] + "," + arr[6] + "," + arr[7] + "," + arr[8] + "," + arr[9] + "," + arr[10] + "," + arr[11] + "," + arr[12] + ",D202311300002_" + i + "_" + j + "\n";
writer.write(newLine);
writer.flush();
}
i ++;
}
// //保证人3
// tm.info("生成信用证业务保证人信息"+ oth_cnt +"笔....");
// writer = CsvUtil.getWriter("RWA_S_GUARANTEE", true);
// i = 1;
// while(i <= oth_cnt){
// String line = "G202312060003,C2023113000001,财政部,2023-06-09,2025-06-09,1000000,CNY,1,1,10,0,1,1,D202311300001";
// String[] arr = line.split(",");
// String newLine = "20231130," + arr[0] + "_" + i + ",C2023113000002_" + i + ",财政部," + arr[3] + "," + arr[4] + "," + arr[5] + "," + arr[6] + "," + arr[7] + "," + arr[8] + "," + arr[9] + "," + arr[10] + "," + arr[11] + "," + arr[12] + ",XYZ202311300001_" + i +"\n";
// writer.write(newLine);
// writer.flush();
// i ++;
// }
//
// //保证人4
// tm.info("生成保函业务保证人信息"+ oth_cnt +"笔....");
// writer = CsvUtil.getWriter("RWA_S_GUARANTEE", true);
// i = 1;
// while(i <= oth_cnt){
// String line = "G202312060004,C2023113000001,财政部,2023-06-09,2025-06-09,1000000,CNY,1,1,10,0,1,1,D202311300001";
// String[] arr = line.split(",");
// String newLine = "20231130," + arr[0] + "_" + i + ",C2023113000002_" + i + ",财政部," + arr[3] + "," + arr[4] + "," + arr[5] + "," + arr[6] + "," + arr[7] + "," + arr[8] + "," + arr[9] + "," + arr[10] + "," + arr[11] + "," + arr[12] + ",BH202311300001_" + i +"\n";
// writer.write(newLine);
// writer.flush();
// i ++;
// }
//质押物1
tm.info("生成个人贷款质押物信息"+ pers_cnt*2 +"笔....");
writer = CsvUtil.getWriter("RWA_S_PLED", false);
i = 1;
while(i <= pers_cnt){
String line = "P2023120600001,XXX质押品,A010201,C2023113000001,财政部,2025-05-06,2025-05-06,100,RMB,1,1,10,,,10,,0,1,1,1,D202311300001";
String[] arr = line.split(",");
for(int j = 1; j < 3; j ++) {
String newLine = "20231130," + arr[0] + "_" + i + "_" + j + "," + arr[1] + "," + arr[2] + ",C2023113000001_" + i + ",财政部," + arr[5] + "," + arr[6] + "," + arr[7] + "," + arr[8] + "," + arr[9] + "," + arr[10] + "," + arr[11] + "," + arr[12] + "," + arr[13] + "," + arr[14] + "," + arr[15] + "," + arr[16] + "," + arr[17] + "," + arr[18] + "," + arr[19] + ",D202311300001_" + i + "_" + j + "\n";
writer.write(newLine);
writer.flush();
}
i ++;
}
//质押物2
tm.info("生成对公贷款质押物信息"+ corp_cnt +"笔....");
writer = CsvUtil.getWriter("RWA_S_PLED", true);
i = 1;
while(i <= corp_cnt){
String line = "P2023120600002,XXX质押品,A010201,C2023113000001,财政部,2025-05-06,2025-05-06,100,RMB,1,1,10,,,10,,0,1,1,1,D202311300001";
String[] arr = line.split(",");
String newLine = "20231130," + arr[0] + "_" + i + "," + arr[1] + "," + arr[2] + ",C2023113000002_" + i + ",财政部," + arr[5] + "," + arr[6] + "," + arr[7] + "," + arr[8] + "," + arr[9] + "," + arr[10] + "," + arr[11] + "," + arr[12] + "," + arr[13] + "," + arr[14] + "," + arr[15] + "," + arr[16] + "," + arr[17] + "," + arr[18] + "," + arr[19] + ",D202311300002_" + i + "_1" +"\n";
writer.write(newLine);
writer.flush();
i ++;
}
writer.close();
}
}

7
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/cache/CacheException.java

@ -0,0 +1,7 @@
package io.sc.engine.rwa.calculator.cache;
public class CacheException extends RuntimeException{
public CacheException(Exception e){
super(e);
}
}

22
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/cache/KeyValue.java

@ -0,0 +1,22 @@
package io.sc.engine.rwa.calculator.cache;
public class KeyValue<K,V> {
private K key;
private V value;
public K getKey() {
return key;
}
public void setKey(K key) {
this.key = key;
}
public V getValue() {
return value;
}
public void setValue(V value) {
this.value = value;
}
}

17
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/cache/KeyValueCache.java

@ -0,0 +1,17 @@
package io.sc.engine.rwa.calculator.cache;
import io.sc.engine.rwa.calculator.cache.impl.StringAndLongRocksDbCache;
import org.rocksdb.RocksDBException;
import java.io.IOException;
public interface KeyValueCache<K,V> extends AutoCloseable{
public void put(K key, V value) throws CacheException;
public V get(K key) throws CacheException;
public KeyValueIterator<K,V> iterator();
public static KeyValueCache stringAndLongCache(){
return new StringAndLongRocksDbCache();
}
}

8
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/cache/KeyValueIterator.java

@ -0,0 +1,8 @@
package io.sc.engine.rwa.calculator.cache;
public interface KeyValueIterator<K,V> {
public void seekToFirst();
public boolean isValid();
public void next();
public KeyValue<K,V> get();
}

121
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/cache/impl/RocksDbCache.java

@ -0,0 +1,121 @@
package io.sc.engine.rwa.calculator.cache.impl;
import io.sc.engine.rwa.calculator.cache.CacheException;
import io.sc.engine.rwa.calculator.cache.KeyValueCache;
import io.sc.engine.rwa.calculator.cache.KeyValueIterator;
import io.sc.platform.core.DirectoryManager;
import io.sc.platform.util.ByteUtil;
import org.rocksdb.*;
import java.io.File;
import java.io.FileInputStream;
import java.util.Properties;
public class RocksDbCache<K,V> implements KeyValueCache<K,V> {
protected Options options;
protected RocksDB db;
protected Class<K> keyClass;
protected Class<V> valueClass;
public RocksDbCache(){}
public RocksDbCache(Class<K> keyClass, Class<V> valueClass) throws CacheException {
this.keyClass =keyClass;
this.valueClass =valueClass;
initRocksDb();
}
public RocksDbCache(Class<K> keyClass, Class<V> valueClass, String config) throws CacheException {
this.keyClass =keyClass;
this.valueClass =valueClass;
initRocksDb(config);
}
public void initRocksDb(String config) throws CacheException {
try {
Properties properties = new Properties();
properties.load(new FileInputStream(config));
DBOptions o = DBOptions.getDBOptionsFromProps(properties);
options = new Options();
options.setCreateIfMissing(true);
options.setMaxWriteBufferNumber(4);
options.setMaxBackgroundJobs(4);
options.setCompressionType(CompressionType.LZ4_COMPRESSION);
options.setCompactionStyle(CompactionStyle.UNIVERSAL);
options.setDbWriteBufferSize(1 << 30);
options.setBytesPerSync(256 << 20);
if(null == db){
db = RocksDB.open(options, (String) properties.get("cache.disk.path"));
}
}catch (Exception e){
throw new CacheException(e);
}
}
protected void initRocksDb() throws CacheException {
try {
Properties properties = new Properties();
properties.load(this.getClass().getResourceAsStream("/config/rocksdb.properties"));
DBOptions o = DBOptions.getDBOptionsFromProps(properties);
options = new Options();
options.setCreateIfMissing(true);
options.setMaxWriteBufferNumber(4);
options.setMaxBackgroundJobs(4);
options.setCompressionType(CompressionType.LZ4_COMPRESSION);
options.setCompactionStyle(CompactionStyle.UNIVERSAL);
options.setDbWriteBufferSize(1 << 30);
options.setBytesPerSync(256 << 20);
db = RocksDB.open(options, (String) properties.get("cache.disk.path"));
}catch (Exception e){
throw new CacheException(e);
}
}
@Override
public void close() throws Exception {
if(options!=null){
options.close();
}
if(db!=null){
db.close();
}
}
@Override
public void put(K key, V value) throws CacheException {
try {
db.put(ByteUtil.value2bytes(key),ByteUtil.value2bytes(value));
} catch (RocksDBException e) {
throw new CacheException(e);
}
}
@Override
public V get(K key) throws CacheException {
try {
return ByteUtil.bytes2value(db.get(ByteUtil.value2bytes(key)),valueClass);
} catch (RocksDBException e) {
throw new CacheException(e);
}
}
@Override
public KeyValueIterator<K, V> iterator() {
return new RocksDbIterator<K,V>(this);
}
public RocksDB getDb() {
return db;
}
public Class<K> getKeyClass() {
return keyClass;
}
public Class<V> getValueClass() {
return valueClass;
}
}

41
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/cache/impl/RocksDbIterator.java

@ -0,0 +1,41 @@
package io.sc.engine.rwa.calculator.cache.impl;
import io.sc.engine.rwa.calculator.cache.KeyValue;
import io.sc.engine.rwa.calculator.cache.KeyValueIterator;
import io.sc.platform.util.ByteUtil;
import org.rocksdb.RocksIterator;
public class RocksDbIterator<K,V> implements KeyValueIterator<K,V> {
private RocksDbCache cache;
private RocksIterator iterator;
public RocksDbIterator(RocksDbCache cache){
this.cache =cache;
this.iterator =cache.db.newIterator();
}
@Override
public void seekToFirst() {
this.iterator.seekToFirst();
}
@Override
public boolean isValid() {
return this.iterator.isValid();
}
@Override
@SuppressWarnings("unchecked")
public void next() {
iterator.next();
}
@Override
@SuppressWarnings("unchecked")
public KeyValue<K, V> get() {
KeyValue<K,V> result =new KeyValue<K,V>();
result.setKey((K) ByteUtil.bytes2value(iterator.key(),cache.getKeyClass()));
result.setValue((V)ByteUtil.bytes2value(iterator.value(),cache.getValueClass()));
return result;
}
}

35
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/cache/impl/StringAndLongRocksDbCache.java

@ -0,0 +1,35 @@
package io.sc.engine.rwa.calculator.cache.impl;
import io.sc.engine.rwa.calculator.cache.CacheException;
import io.sc.engine.rwa.calculator.cache.KeyValueCache;
import io.sc.platform.util.ByteUtil;
import org.checkerframework.checker.units.qual.C;
import org.rocksdb.*;
import java.util.Properties;
public class StringAndLongRocksDbCache extends RocksDbCache<String,Long> {
public StringAndLongRocksDbCache() throws CacheException {
super.initRocksDb();
keyClass =String.class;
valueClass =Long.class;
}
@Override
public void put(String key, Long value) throws CacheException {
try {
db.put(key.getBytes(), ByteUtil.long2bytes(value));
}catch (RocksDBException e){
throw new CacheException(e);
}
}
@Override
public Long get(String key) throws CacheException {
try {
return ByteUtil.bytes2Long(db.get(key.getBytes()));
}catch (RocksDBException e){
throw new CacheException(e);
}
}
}

153
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/controller/RwaCalculateController.java

@ -0,0 +1,153 @@
package io.sc.engine.rwa.calculator.controller;
import io.sc.engine.rwa.calculator.RWACalculator;
import io.sc.engine.rwa.calculator.RWATestDataGenerator;
import io.sc.engine.rwa.calculator.domain.RiskMitigResult;
import io.sc.engine.rwa.calculator.jpa.entity.RwaRiskMigitResult;
import io.sc.engine.rwa.calculator.service.RwaCalcLocService;
import io.sc.engine.rwa.calculator.service.RwaIrsCalcLocService;
import io.sc.engine.rwa.calculator.support.WsRequestBody;
import io.sc.engine.rwa.calculator.ws.WsRWACalculator;
import io.sc.engine.rwa.importer.Importer;
import io.sc.engine.rwa.importer.executor.CsvExecutor;
import io.sc.engine.rwa.model.User;
import io.sc.platform.core.DirectoryManager;
import io.sc.platform.mvc.service.SystemParameterService;
import liquibase.pro.packaged.W;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import io.sc.engine.rwa.calculator.support.WsResponseBody;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.DefaultResourceLoader;
import org.springframework.core.io.Resource;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
import java.io.*;
import java.text.MessageFormat;
import java.util.List;
@RestController
@RequestMapping("/test/calc")
public class RwaCalculateController {
private static final Logger log = LoggerFactory.getLogger(RwaCalculateController.class);
@Autowired
private RwaCalcLocService rwaCalcLocService;
@Autowired
private RwaIrsCalcLocService rwaIrsCalcLocService;
@Autowired
private SystemParameterService systemParameterService;
@GetMapping("rwacalc")
public void rwacalc() {
long start = System.currentTimeMillis();
RWACalculator calc = new RWACalculator();
calc.calculate();
long end = System.currentTimeMillis();
long posttime = (end-start)/1000;
log.info(MessageFormat.format("RWA计算完成,总耗时{0}秒", posttime));
}
@GetMapping("rwaCalcLoc")
public List<RiskMitigResult> rwaCalcLoc() throws Exception {
long start = System.currentTimeMillis();
String csvDataDir = "D:\\work\\workspace\\engine_project\\test\\csv";
String paramDir = "D:\\work\\workspace\\engine_project\\test\\param";
List<RiskMitigResult> list = rwaCalcLocService.rwaCalcFromCsv(csvDataDir,paramDir);
long end = System.currentTimeMillis();
long posttime = (end-start)/1000;
log.info(MessageFormat.format("RWA计算完成,总耗时{0}秒", posttime));
return list;
}
@GetMapping("irsInitParameters")
public void irsInitParameters() throws Exception {
long start = System.currentTimeMillis();
rwaIrsCalcLocService.initCalcParams();
long end = System.currentTimeMillis();
long posttime = (end-start)/1000;
log.info(MessageFormat.format("初始化计量参数,总耗时{0}秒", posttime));
}
@GetMapping("irsRwaCalcBatch")
public void irsRwaCalcLoc() throws Exception {
long start = System.currentTimeMillis();
rwaIrsCalcLocService.rwaCalcFromCsvBatch();
long end = System.currentTimeMillis();
long posttime = (end-start)/1000;
log.info(MessageFormat.format("RWA计算完成,总耗时{0}秒", posttime));
}
@GetMapping("irsGenRpt")
public void irsGenRpt() throws Exception {
long start = System.currentTimeMillis();
rwaIrsCalcLocService.generateReport();
long end = System.currentTimeMillis();
long posttime = (end-start)/1000;
log.info(MessageFormat.format("报表生成完成,总耗时{0}秒", posttime));
}
@GetMapping("gentestdata")
public void genarateTestData(@RequestParam Integer persCnt, @RequestParam Integer corpCnt, @RequestParam Integer othCnt) throws Exception {
RWATestDataGenerator gen = new RWATestDataGenerator();
gen.generateTestData(persCnt, corpCnt, othCnt);
}
@RequestMapping(value="rwaCalcServ", method= RequestMethod.POST,produces = "application/xml; charset=utf-8")
@ResponseBody
public String rwaCalcServ(HttpServletRequest request, HttpServletResponse response) {
String resBody = "<RETURN_CODE>000000</RETURN_CODE><RETURN_MESSAGE>交易成功</RETURN_MESSAGE>";
StringBuffer inputString = new StringBuffer();
try{
BufferedReader reader = request.getReader();
String line = "";
while ((line = reader.readLine()) != null) {
inputString.append(line);
}
}catch(Exception e){
resBody = "<RETURN_CODE>900001</RETURN_CODE><RETURN_MESSAGE>接口输入报文读取异常</RETURN_MESSAGE>";
}
String sysheader = substr(inputString.toString(),"<SYS_HEAD>","</SYS_HEAD>");
String body = substr(inputString.toString(),"<BODY>","</BODY>");
WsRequestBody requestBody = null;
try {
JAXBContext context = JAXBContext.newInstance(WsRequestBody.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
requestBody = (WsRequestBody) unmarshaller.unmarshal(new StringReader(body));
}catch(Exception e){
resBody = "<RETURN_CODE>900002</RETURN_CODE><RETURN_MESSAGE>接口输入报文格式异常</RETURN_MESSAGE>";
}
String batchNo = requestBody.getBatchNo();
try {
long start = System.currentTimeMillis();
WsRWACalculator calc = new WsRWACalculator(batchNo);
String ret = calc.calculate();
resBody += "<RETURN_CONTENT>" + ret + "</RETURN_CONTENT>";
long end = System.currentTimeMillis();
long posttime = (end - start) / 1000;
log.info(MessageFormat.format("RWA计算完成,总耗时{0}秒", posttime));
}catch(Exception e){
resBody = "<RETURN_CODE>900003</RETURN_CODE><RETURN_MESSAGE>" + e.getMessage() + "</RETURN_MESSAGE>";
}
return "<SDOROOT>" + sysheader + resBody + "</SDOROOT>";
}
/**
* 截取BODY中的内容
* @param whole
* @param sub1
* @param sub2
* @return
*/
private String substr(String whole, String sub1, String sub2) {
if(StringUtils.isNotEmpty(whole)) {
int start = whole.indexOf(sub1);
int end = whole.indexOf(sub2) + sub2.length();
return whole.substring(start, end);
}
return "";
}
}

39
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/controller/RwaCalculatorWithDBController.java

@ -0,0 +1,39 @@
package io.sc.engine.rwa.calculator.controller;
import io.sc.engine.rwa.calculator.RWACalculator;
import io.sc.engine.rwa.calculator.service.RwaCalcParamCacheService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.text.MessageFormat;
@RestController
@RequestMapping("/rwa_engine/calc/db")
public class RwaCalculatorWithDBController {
private static final Logger log = LoggerFactory.getLogger(RwaCalculatorWithDBController.class);
@Autowired
RwaCalcParamCacheService rwaCalcParamCacheService;
/**
* 初始化RWA计量的规则和参数配置信息
* @throws Exception
*/
@GetMapping("initRwaCalcParam")
public void initRwaCalcParam() throws Exception {
long start = System.currentTimeMillis();
//解析表内风险暴露分类规则配置
rwaCalcParamCacheService.getInTableExpoRule();
//解析表外风险暴露分类规则配置
rwaCalcParamCacheService.getOutTableExpoRule();
//解析合格缓释工具识别规则配置
rwaCalcParamCacheService.getAccordRiskToolRecognRule();
long end = System.currentTimeMillis();
long posttime = (end-start)/1000;
log.info(MessageFormat.format("RWA计算完成,总耗时{0}秒", posttime));
}
}

308
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceAssetMagProd.java

@ -0,0 +1,308 @@
package io.sc.engine.rwa.calculator.data;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import java.util.HashMap;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.toEmptyDouble;
/**
* 源数据资产管理产品信息
* @author chengjie
* @time 2023-07-20
*/
public class SourceAssetMagProd extends BaseEntity {
public SourceAssetMagProd(){setColMap();}
public SourceAssetMagProd(String[] row){
setColumnValue(row);
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("CORP_CD",2);
colMap.put("IMPORT_SOURCE",3);
colMap.put("PRODUCT_CD",4);
colMap.put("PRODUCT_NM",5);
colMap.put("PRODUCT_TP",6);
colMap.put("BOOK_VALUE",7);
colMap.put("COUNTERPARTY",8);
colMap.put("RISK_EXPO_TP",9);
colMap.put("PRODUCT_AMT",10);
colMap.put("PENETRATION_TP",11);
colMap.put("BASE_ASSET_ID",12);
colMap.put("BASE_ASSET_NM",13);
colMap.put("BASE_ASSET_TP",14);
colMap.put("BASE_ASSET_NOMINAL_PRIN",15);
colMap.put("BASE_ASSET_UNIT_PRICE",16);
colMap.put("BASE_ASSET_INTEREST_RATE",17);
colMap.put("START_DT",18);
colMap.put("MATURE_DT",19);
colMap.put("BOTTOM_BORR_CD",20);
colMap.put("BOTTOM_BORR_NM",21);
colMap.put("BELONG_ORG",22);
}
@Override
public String getTable() {
return "RWA_S_ASSETS_MAG_PROD";
}
@Override
public Integer getColumnCount() {
return 29;
}
@Override
public String[] getColumnDataType() {
return new String[]{
"String","String","String","String","String","String","String","Double","String","String","Double","String","String","String","String","Double","Double","Double","String","String","String","String","String"
};
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID (row[0]);
setDATA_DT (row[1]);
setCORP_CD (row[2]);
setIMPORT_SOURCE (row[3]);
setPRODUCT_CD (row[4]);
setPRODUCT_NM (row[5]);
setPRODUCT_TP (row[6]);
setBOOK_VALUE (toEmptyDouble(row[7]));
setCOUNTERPARTY (row[8]);
setRISK_EXPO_TP (row[9]);
setPRODUCT_AMT (toEmptyDouble(row[10]));
setPENETRATION_TP (row[11]);
setBASE_ASSET_ID (row[12]);
setBASE_ASSET_NM (row[13]);
setBASE_ASSET_TP (row[14]);
setBASE_ASSET_NOMINAL_PRIN (toEmptyDouble(row[15]));
setBASE_ASSET_UNIT_PRICE (toEmptyDouble(row[16]));
setBASE_ASSET_INTEREST_RATE(toEmptyDouble(row[17]));
setSTART_DT (row[18]);
setMATURE_DT (row[19]);
setBOTTOM_BORR_CD (row[20]);
setBOTTOM_BORR_NM (row[21]);
setBELONG_ORG (row[22]);
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID ; //主键
private String DATA_DT ; //数据日期
private String CORP_CD ; //公司代码
private String IMPORT_SOURCE ; //数据来源
private String PRODUCT_CD ; //产品编号
private String PRODUCT_NM ; //产品名称
private String PRODUCT_TP ; //产品类型
private Double BOOK_VALUE ; //账面价值
private String COUNTERPARTY ; //交易对手
private String RISK_EXPO_TP ; //风险暴露分类
private Double PRODUCT_AMT ; //产品金额
private String PENETRATION_TP ; //穿透方式
private String BASE_ASSET_ID ; //基础资产编号
private String BASE_ASSET_NM ; //基础资产名称
private String BASE_ASSET_TP ; //基础资产类型
private Double BASE_ASSET_NOMINAL_PRIN ; //基础资产名义本金
private Double BASE_ASSET_UNIT_PRICE ; //基础资产单位价格
private Double BASE_ASSET_INTEREST_RATE ; //基础资产利率
private String START_DT ; //基础资产起息日
private String MATURE_DT ; //基础资产到期日
private String BOTTOM_BORR_CD ; //底层债务人代码
private String BOTTOM_BORR_NM ; //底层债务人名称
private String BELONG_ORG ; //业务所属机构
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getCORP_CD() {
return CORP_CD;
}
public void setCORP_CD(String CORP_CD) {
this.CORP_CD = CORP_CD;
}
public String getIMPORT_SOURCE() {
return IMPORT_SOURCE;
}
public void setIMPORT_SOURCE(String IMPORT_SOURCE) {
this.IMPORT_SOURCE = IMPORT_SOURCE;
}
public String getPRODUCT_CD() {
return PRODUCT_CD;
}
public void setPRODUCT_CD(String PRODUCT_CD) {
this.PRODUCT_CD = PRODUCT_CD;
}
public String getPRODUCT_NM() {
return PRODUCT_NM;
}
public void setPRODUCT_NM(String PRODUCT_NM) {
this.PRODUCT_NM = PRODUCT_NM;
}
public String getPRODUCT_TP() {
return PRODUCT_TP;
}
public void setPRODUCT_TP(String PRODUCT_TP) {
this.PRODUCT_TP = PRODUCT_TP;
}
public Double getBOOK_VALUE() {
return BOOK_VALUE;
}
public void setBOOK_VALUE(Double BOOK_VALUE) {
this.BOOK_VALUE = BOOK_VALUE;
}
public String getCOUNTERPARTY() {
return COUNTERPARTY;
}
public void setCOUNTERPARTY(String COUNTERPARTY) {
this.COUNTERPARTY = COUNTERPARTY;
}
public String getRISK_EXPO_TP() {
return RISK_EXPO_TP;
}
public void setRISK_EXPO_TP(String RISK_EXPO_TP) {
this.RISK_EXPO_TP = RISK_EXPO_TP;
}
public Double getPRODUCT_AMT() {
return PRODUCT_AMT;
}
public void setPRODUCT_AMT(Double PRODUCT_AMT) {
this.PRODUCT_AMT = PRODUCT_AMT;
}
public String getPENETRATION_TP() {
return PENETRATION_TP;
}
public void setPENETRATION_TP(String PENETRATION_TP) {
this.PENETRATION_TP = PENETRATION_TP;
}
public String getBASE_ASSET_ID() {
return BASE_ASSET_ID;
}
public void setBASE_ASSET_ID(String BASE_ASSET_ID) {
this.BASE_ASSET_ID = BASE_ASSET_ID;
}
public String getBASE_ASSET_NM() {
return BASE_ASSET_NM;
}
public void setBASE_ASSET_NM(String BASE_ASSET_NM) {
this.BASE_ASSET_NM = BASE_ASSET_NM;
}
public String getBASE_ASSET_TP() {
return BASE_ASSET_TP;
}
public void setBASE_ASSET_TP(String BASE_ASSET_TP) {
this.BASE_ASSET_TP = BASE_ASSET_TP;
}
public Double getBASE_ASSET_NOMINAL_PRIN() {
return BASE_ASSET_NOMINAL_PRIN;
}
public void setBASE_ASSET_NOMINAL_PRIN(Double BASE_ASSET_NOMINAL_PRIN) {
this.BASE_ASSET_NOMINAL_PRIN = BASE_ASSET_NOMINAL_PRIN;
}
public Double getBASE_ASSET_UNIT_PRICE() {
return BASE_ASSET_UNIT_PRICE;
}
public void setBASE_ASSET_UNIT_PRICE(Double BASE_ASSET_UNIT_PRICE) {
this.BASE_ASSET_UNIT_PRICE = BASE_ASSET_UNIT_PRICE;
}
public Double getBASE_ASSET_INTEREST_RATE() {
return BASE_ASSET_INTEREST_RATE;
}
public void setBASE_ASSET_INTEREST_RATE(Double BASE_ASSET_INTEREST_RATE) {
this.BASE_ASSET_INTEREST_RATE = BASE_ASSET_INTEREST_RATE;
}
public String getSTART_DT() {
return START_DT;
}
public void setSTART_DT(String START_DT) {
this.START_DT = START_DT;
}
public String getMATURE_DT() {
return MATURE_DT;
}
public void setMATURE_DT(String MATURE_DT) {
this.MATURE_DT = MATURE_DT;
}
public String getBOTTOM_BORR_CD() {
return BOTTOM_BORR_CD;
}
public void setBOTTOM_BORR_CD(String BOTTOM_BORR_CD) {
this.BOTTOM_BORR_CD = BOTTOM_BORR_CD;
}
public String getBOTTOM_BORR_NM() {
return BOTTOM_BORR_NM;
}
public void setBOTTOM_BORR_NM(String BOTTOM_BORR_NM) {
this.BOTTOM_BORR_NM = BOTTOM_BORR_NM;
}
public String getBELONG_ORG() {
return BELONG_ORG;
}
public void setBELONG_ORG(String BELONG_ORG) {
this.BELONG_ORG = BELONG_ORG;
}
}

271
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceBh.java

@ -0,0 +1,271 @@
package io.sc.engine.rwa.calculator.data;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import java.util.HashMap;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.toEmptyDouble;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.toEmptyInteger;
/**
* 源数据保函信息
* @author chengjie
* @time 2023-07-20
*/
public class SourceBh extends BaseEntity {
public SourceBh(){setColMap();}
public SourceBh(String[] row){
setColumnValue(row);
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("LOAN_REF_NO",2);
colMap.put("ON_OFF_FLAG",3);
colMap.put("CCY_CD",4);
colMap.put("PRODUCT_CD",5);
colMap.put("PRODUCT_NAME",6);
colMap.put("CUST_NO",7);
colMap.put("CUST_NAME",8);
colMap.put("START_DATE",9);
colMap.put("DUE_DATE",10);
colMap.put("SUBJECT_CD",11);
colMap.put("SUBJECT_NAME",12);
colMap.put("FIVE_CLASS_CD",13);
colMap.put("ASSET_BALANCE",14);
colMap.put("PROVISION",15);
colMap.put("OVERDUE_DTS",16);
colMap.put("DEFAULT_FLAG",17);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID(row[0]);
setDATA_DT(row[1]); //数据日期
setLOAN_REF_NO(row[2]); //债项编号
setON_OFF_FLAG(row[3]); //表内外标识
setCCY_CD(row[4]); //币种代码
setPRODUCT_CD(row[5]); //产品代码
setPRODUCT_NAME(row[6]); //产品名称
setCUST_NO(row[7]); //交易对手编号
setCUST_NAME(row[8]); //交易对手名称
setSTART_DATE(row[9]); //开始日期
setDUE_DATE(row[10]); //到期日期
setSUBJECT_CD(row[11]); //科目代码
setSUBJECT_NAME(row[12]); //科目名称
setFIVE_CLASS_CD(row[13]); //五级分类代码
setASSET_BALANCE(toEmptyDouble(Double.valueOf(row[14]))); //资产余额
setPROVISION(toEmptyDouble(Double.valueOf(row[15]))); //计提准备金
setOVERDUE_DTS(toEmptyInteger(Integer.valueOf(row[16]))); //逾期天数
setDEFAULT_FLAG(row[17]); //违约标志
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID; //主键
private String DATA_DT; //数据日期
private String LOAN_REF_NO; //债项编号
private String ON_OFF_FLAG; //表内外标识
private String CCY_CD; //币种代码
private String PRODUCT_CD; //产品代码
private String PRODUCT_NAME; //产品名称
private String CUST_NO; //交易对手编号
private String CUST_NAME; //交易对手名称
private String START_DATE; //开始日期
private String DUE_DATE; //到期日期
private String SUBJECT_CD; //科目代码
private String SUBJECT_NAME; //科目名称
private String FIVE_CLASS_CD; //五级分类代码
private Double ASSET_BALANCE; //资产余额
private Double PROVISION; //计提准备金
private Integer OVERDUE_DTS; //逾期天数
private String DEFAULT_FLAG; //违约标志
private Double LGD; //违约损失率
private String BELONG_ORG; //业务所属机构
public String getBELONG_ORG() {
return BELONG_ORG;
}
public void setBELONG_ORG(String BELONG_ORG) {
this.BELONG_ORG = BELONG_ORG;
}
public Double getLGD() {
return LGD;
}
public void setLGD(Double LGD) {
this.LGD = LGD;
}
@Override
public String getTable() {
return "RWA_S_BH";
}
@Override
public Integer getColumnCount() {
return 24;
}
@Override
public String[] getColumnDataType() {
return new String[]{
"String","String","String","String","String","String","String","String","String","String","String","String","String","String","Double","Double","Integer","String","Double","String"
};
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getLOAN_REF_NO() {
return LOAN_REF_NO;
}
public void setLOAN_REF_NO(String LOAN_REF_NO) {
this.LOAN_REF_NO = LOAN_REF_NO;
}
public String getCCY_CD() {
return CCY_CD;
}
public void setCCY_CD(String CCY_CD) {
this.CCY_CD = CCY_CD;
}
public String getPRODUCT_CD() {
return PRODUCT_CD;
}
public void setPRODUCT_CD(String PRODUCT_CD) {
this.PRODUCT_CD = PRODUCT_CD;
}
public String getPRODUCT_NAME() {
return PRODUCT_NAME;
}
public void setPRODUCT_NAME(String PRODUCT_NAME) {
this.PRODUCT_NAME = PRODUCT_NAME;
}
public String getCUST_NO() {
return CUST_NO;
}
public void setCUST_NO(String CUST_NO) {
this.CUST_NO = CUST_NO;
}
public String getCUST_NAME() {
return CUST_NAME;
}
public void setCUST_NAME(String CUST_NAME) {
this.CUST_NAME = CUST_NAME;
}
public String getON_OFF_FLAG() {
return ON_OFF_FLAG;
}
public void setON_OFF_FLAG(String ON_OFF_FLAG) {
this.ON_OFF_FLAG = ON_OFF_FLAG;
}
public String getSTART_DATE() {
return START_DATE;
}
public void setSTART_DATE(String START_DATE) {
this.START_DATE = START_DATE;
}
public String getDUE_DATE() {
return DUE_DATE;
}
public void setDUE_DATE(String DUE_DATE) {
this.DUE_DATE = DUE_DATE;
}
public String getSUBJECT_CD() {
return SUBJECT_CD;
}
public void setSUBJECT_CD(String SUBJECT_CD) {
this.SUBJECT_CD = SUBJECT_CD;
}
public String getSUBJECT_NAME() {
return SUBJECT_NAME;
}
public void setSUBJECT_NAME(String SUBJECT_NAME) {
this.SUBJECT_NAME = SUBJECT_NAME;
}
public String getFIVE_CLASS_CD() {
return FIVE_CLASS_CD;
}
public void setFIVE_CLASS_CD(String FIVE_CLASS_CD) {
this.FIVE_CLASS_CD = FIVE_CLASS_CD;
}
public Double getASSET_BALANCE() {
return ASSET_BALANCE;
}
public void setASSET_BALANCE(Double ASSET_BALANCE) {
this.ASSET_BALANCE = ASSET_BALANCE;
}
public Double getPROVISION() {
return PROVISION;
}
public void setPROVISION(Double PROVISION) {
this.PROVISION = PROVISION;
}
public Integer getOVERDUE_DTS() {
return OVERDUE_DTS;
}
public void setOVERDUE_DTS(Integer OVERDUE_DTS) {
this.OVERDUE_DTS = OVERDUE_DTS;
}
public String getDEFAULT_FLAG() {
return DEFAULT_FLAG;
}
public void setDEFAULT_FLAG(String DEFAULT_FLAG) {
this.DEFAULT_FLAG = DEFAULT_FLAG;
}
}

295
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceCommitment.java

@ -0,0 +1,295 @@
package io.sc.engine.rwa.calculator.data;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import java.util.HashMap;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.toEmptyDouble;
/**
* 源数据贷款承诺信息
* @author chengjie
* @time 2023-07-20
*/
public class SourceCommitment extends BaseEntity {
public SourceCommitment(){setColMap();}
public SourceCommitment(String[] row){
setColumnValue(row);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID(row[0]); //ID
setDATA_DT(row[1]); //数据日期
setLOAN_REF_NO(row[2]); //债项编号
setON_OFF_FLAG(row[3]); //表内表外标识
setCCY_CD(row[4]); //币种代码
setPRODUCT_CD(row[5]); //产品代码
setPRODUCT_NAME(row[6]); //产品名称
setCUST_NO(row[7]); //交易对手编号
setCUST_NAME(row[8]); //交易对手名称
setSTART_DATE(row[9]); //开始日期
setDUE_DATE(row[10]); //到期日期
setORIGINAL_TERM(toEmptyDouble(Double.valueOf(row[11]))); //原始期限(月)
setSUBJECT_CD(row[12]); //科目代码
setSUBJECT_NAME(row[13]); //科目名称
setFIVE_CLASS_CD(row[14]); //五级分类代码
setCOMMITMENT_BALANCE(toEmptyDouble(Double.valueOf(row[15]))); //承诺余额
setPROVISION(toEmptyDouble(Double.valueOf(row[16]))); //计提准备金
setOFF_BALANCE_RWA(row[17]); //可免于计量表外项目风险加权资产
setCANCEL_FLAG(row[18]); //可随时无条件撤销的贷款承诺
setCURR_MISMATCH_FLAG(row[19]); //币种错配标识
setLGD(toEmptyDouble(Double.valueOf(row[20])));
setBELONG_ORG(row[21]);
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID; //ID
private String DATA_DT; //数据日期
private String LOAN_REF_NO; //债项编号
private String ON_OFF_FLAG; //表内表外标识
private String CCY_CD; //币种代码
private String PRODUCT_CD; //产品代码
private String PRODUCT_NAME; //产品名称
private String CUST_NO; //交易对手编号
private String CUST_NAME; //交易对手名称
private String START_DATE; //开始日期
private String DUE_DATE; //到期日期
private Double ORIGINAL_TERM; //原始期限(月)
private String SUBJECT_CD; //科目代码
private String SUBJECT_NAME; //科目名称
private String FIVE_CLASS_CD; //五级分类代码
private Double COMMITMENT_BALANCE; //承诺余额
private Double PROVISION; //计提准备金
private String OFF_BALANCE_RWA; //可免于计量表外项目风险加权资产
private String CANCEL_FLAG; //可随时无条件撤销的贷款承诺
private String CURR_MISMATCH_FLAG; //币种错配标识
private Double LGD; //违约损失率
private String BELONG_ORG; //业务所属机构
public Double getLGD() {
return LGD;
}
public void setLGD(Double LGD) {
this.LGD = LGD;
}
public String getBELONG_ORG() {
return BELONG_ORG;
}
public void setBELONG_ORG(String BELONG_ORG) {
this.BELONG_ORG = BELONG_ORG;
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getCURR_MISMATCH_FLAG() {
return CURR_MISMATCH_FLAG;
}
public void setCURR_MISMATCH_FLAG(String CURR_MISMATCH_FLAG) {
this.CURR_MISMATCH_FLAG = CURR_MISMATCH_FLAG;
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("LOAN_REF_NO",2);
colMap.put("ON_OFF_FLAG",3);
colMap.put("CCY_CD",4);
colMap.put("PRODUCT_CD",5);
colMap.put("PRODUCT_NAME",6);
colMap.put("CUST_NO",7);
colMap.put("CUST_NAME",8);
colMap.put("START_DATE",9);
colMap.put("DUE_DATE",10);
colMap.put("ORIGINAL_TERM",11);
colMap.put("SUBJECT_CD",12);
colMap.put("SUBJECT_NAME",13);
colMap.put("FIVE_CLASS_CD",14);
colMap.put("COMMITMENT_BALANCE",15);
colMap.put("PROVISION",16);
colMap.put("OFF_BALANCE_RWA",17);
colMap.put("CANCEL_FLAG",18);
colMap.put("CURR_MISMATCH_FLAG",19);
colMap.put("LGD",20);
colMap.put("BELONG_ORG",21);
}
public Double getORIGINAL_TERM() {
return ORIGINAL_TERM;
}
public void setORIGINAL_TERM(Double ORIGINAL_TERM) {
this.ORIGINAL_TERM = ORIGINAL_TERM;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getLOAN_REF_NO() {
return LOAN_REF_NO;
}
public void setLOAN_REF_NO(String LOAN_REF_NO) {
this.LOAN_REF_NO = LOAN_REF_NO;
}
public String getCCY_CD() {
return CCY_CD;
}
public void setCCY_CD(String CCY_CD) {
this.CCY_CD = CCY_CD;
}
public String getPRODUCT_CD() {
return PRODUCT_CD;
}
public void setPRODUCT_CD(String PRODUCT_CD) {
this.PRODUCT_CD = PRODUCT_CD;
}
public String getPRODUCT_NAME() {
return PRODUCT_NAME;
}
public void setPRODUCT_NAME(String PRODUCT_NAME) {
this.PRODUCT_NAME = PRODUCT_NAME;
}
public String getCUST_NO() {
return CUST_NO;
}
public void setCUST_NO(String CUST_NO) {
this.CUST_NO = CUST_NO;
}
public String getCUST_NAME() {
return CUST_NAME;
}
public void setCUST_NAME(String CUST_NAME) {
this.CUST_NAME = CUST_NAME;
}
public String getOFF_BALANCE_RWA() {
return OFF_BALANCE_RWA;
}
public void setOFF_BALANCE_RWA(String OFF_BALANCE_RWA) {
this.OFF_BALANCE_RWA = OFF_BALANCE_RWA;
}
public String getCANCEL_FLAG() {
return CANCEL_FLAG;
}
public void setCANCEL_FLAG(String CANCEL_FLAG) {
this.CANCEL_FLAG = CANCEL_FLAG;
}
public String getSTART_DATE() {
return START_DATE;
}
public void setSTART_DATE(String START_DATE) {
this.START_DATE = START_DATE;
}
public String getDUE_DATE() {
return DUE_DATE;
}
public void setDUE_DATE(String DUE_DATE) {
this.DUE_DATE = DUE_DATE;
}
public String getSUBJECT_CD() {
return SUBJECT_CD;
}
public void setSUBJECT_CD(String SUBJECT_CD) {
this.SUBJECT_CD = SUBJECT_CD;
}
public String getSUBJECT_NAME() {
return SUBJECT_NAME;
}
public void setSUBJECT_NAME(String SUBJECT_NAME) {
this.SUBJECT_NAME = SUBJECT_NAME;
}
public String getFIVE_CLASS_CD() {
return FIVE_CLASS_CD;
}
public void setFIVE_CLASS_CD(String FIVE_CLASS_CD) {
this.FIVE_CLASS_CD = FIVE_CLASS_CD;
}
public Double getCOMMITMENT_BALANCE() {
return COMMITMENT_BALANCE;
}
public void setCOMMITMENT_BALANCE(Double COMMITMENT_BALANCE) {
this.COMMITMENT_BALANCE = COMMITMENT_BALANCE;
}
public Double getPROVISION() {
return PROVISION;
}
public void setPROVISION(Double PROVISION) {
this.PROVISION = PROVISION;
}
public String getON_OFF_FLAG() {
return ON_OFF_FLAG;
}
public void setON_OFF_FLAG(String ON_OFF_FLAG) {
this.ON_OFF_FLAG = ON_OFF_FLAG;
}
@Override
public String getTable() {
return "RWA_S_COMMITMENT";
}
@Override
public Integer getColumnCount() {
return 28;
}
@Override
public String[] getColumnDataType() {
return new String[]{
"String","String","String","String","String","String","String","String","String","String","String","Double","String","String","String","Double","Double","String","String","String","Double","String"
};
}
}

315
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceCredit.java

@ -0,0 +1,315 @@
package io.sc.engine.rwa.calculator.data;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.*;
import java.util.HashMap;
/**
* 源数据信用证信息
* @author chengjie
* @time 2023-07-20
*/
public class SourceCredit extends BaseEntity {
public SourceCredit(){setColMap();}
public SourceCredit(String[] row){
setColumnValue(row);
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("LOAN_REF_NO",2);
colMap.put("ON_OFF_FLAG",3);
colMap.put("CCY_CD",4);
colMap.put("PRODUCT_CD",5);
colMap.put("PRODUCT_NAME",6);
colMap.put("CUST_NO",7);
colMap.put("CUST_NAME",8);
colMap.put("CREDIT_TYPE",9);
colMap.put("TRADE_TYPE",10);
colMap.put("START_DATE",11);
colMap.put("DUE_DATE",12);
colMap.put("ORIGINAL_TERM",13);
colMap.put("SUBJECT_CD",14);
colMap.put("SUBJECT_NAME",15);
colMap.put("FIVE_CLASS_CD",16);
colMap.put("ASSET_BALANCE",17);
colMap.put("PROVISION",18);
colMap.put("OVERDUE_DTS",19);
colMap.put("DEFAULT_FLAG",20);
colMap.put("ORIGINAL_TERM_TYPE",21);
colMap.put("LGD",22);
colMap.put("BELONG_ORG",23);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID(row[0]); //ID
setDATA_DT(row[1]); //数据日期
setLOAN_REF_NO(row[2]); //债项编号
setON_OFF_FLAG(row[3]); //表内外标识
setCCY_CD(row[4]); //币种代码
setPRODUCT_CD(row[5]); //产品代码
setPRODUCT_NAME(row[6]); //产品名称
setCUST_NO(row[7]); //代理行客户编号
setCUST_NAME(row[8]); //代理行客户名称
setCREDIT_TYPE(row[9]); //信用证类型
setTRADE_TYPE(row[10]); //贸易类型
setSTART_DATE(row[11]); //开始日期
setDUE_DATE(row[12]); //到期日期
setORIGINAL_TERM(toEmptyDouble(Double.valueOf(row[13]))); //原始期限(月)
setSUBJECT_CD(row[14]); //科目代码
setSUBJECT_NAME(row[15]); //科目名称
setFIVE_CLASS_CD(row[16]); //五级分类代码
setASSET_BALANCE(toEmptyDouble(Double.valueOf(row[17]))); //资产余额
setPROVISION(toEmptyDouble(Double.valueOf(row[18]))); //计提准备金
setOVERDUE_DTS(toEmptyInteger(Integer.valueOf(row[19]))); //逾期天数
setDEFAULT_FLAG(row[20]); //违约标志
setORIGINAL_TERM_TYPE(row[21]); //原始期限类型
setLGD(toEmptyDouble(Double.valueOf(row[22])));
setBELONG_ORG(row[23]);
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID; //ID
private String DATA_DT; //数据日期
private String LOAN_REF_NO; //债项编号
private String ON_OFF_FLAG; //表内外标识
private String CCY_CD; //币种代码
private String PRODUCT_CD; //产品代码
private String PRODUCT_NAME; //产品名称
private String CUST_NO; //代理行客户编号
private String CUST_NAME; //代理行客户名称
private String CREDIT_TYPE; //信用证类型
private String TRADE_TYPE; //贸易类型
private String START_DATE; //开始日期
private String DUE_DATE; //到期日期
private Double ORIGINAL_TERM; //原始期限(月)
private String SUBJECT_CD; //科目代码
private String SUBJECT_NAME; //科目名称
private String FIVE_CLASS_CD; //五级分类代码
private Double ASSET_BALANCE; //资产余额
private Double PROVISION; //计提准备金
private Integer OVERDUE_DTS; //逾期天数
private String DEFAULT_FLAG; //违约标志
private String ORIGINAL_TERM_TYPE; //原始期限类型
private Double LGD; //违约损失率
private String BELONG_ORG; //业务所属机构
public Double getLGD() {
return LGD;
}
public void setLGD(Double LGD) {
this.LGD = LGD;
}
public String getBELONG_ORG() {
return BELONG_ORG;
}
public void setBELONG_ORG(String BELONG_ORG) {
this.BELONG_ORG = BELONG_ORG;
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getORIGINAL_TERM_TYPE() {
return ORIGINAL_TERM_TYPE;
}
public void setORIGINAL_TERM_TYPE(String ORIGINAL_TERM_TYPE) {
this.ORIGINAL_TERM_TYPE = ORIGINAL_TERM_TYPE;
}
@Override
public String getTable() {
return "RWA_S_CREDIT";
}
@Override
public Integer getColumnCount() {
return 30;
}
@Override
public String[] getColumnDataType() {
return new String[]{
"String","String","String","String","String","String","String","String","String","String","String","String","String","Double","String","String","String","Double","Double","Integer","String","String","Double","String"
};
}
public Double getORIGINAL_TERM() {
return ORIGINAL_TERM;
}
public void setORIGINAL_TERM(Double ORIGINAL_TERM) {
this.ORIGINAL_TERM = ORIGINAL_TERM;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getLOAN_REF_NO() {
return LOAN_REF_NO;
}
public void setLOAN_REF_NO(String LOAN_REF_NO) {
this.LOAN_REF_NO = LOAN_REF_NO;
}
public String getCCY_CD() {
return CCY_CD;
}
public void setCCY_CD(String CCY_CD) {
this.CCY_CD = CCY_CD;
}
public String getPRODUCT_CD() {
return PRODUCT_CD;
}
public void setPRODUCT_CD(String PRODUCT_CD) {
this.PRODUCT_CD = PRODUCT_CD;
}
public String getPRODUCT_NAME() {
return PRODUCT_NAME;
}
public void setPRODUCT_NAME(String PRODUCT_NAME) {
this.PRODUCT_NAME = PRODUCT_NAME;
}
public String getCUST_NO() {
return CUST_NO;
}
public void setCUST_NO(String CUST_NO) {
this.CUST_NO = CUST_NO;
}
public String getCUST_NAME() {
return CUST_NAME;
}
public void setCUST_NAME(String CUST_NAME) {
this.CUST_NAME = CUST_NAME;
}
public String getON_OFF_FLAG() {
return ON_OFF_FLAG;
}
public void setON_OFF_FLAG(String ON_OFF_FLAG) {
this.ON_OFF_FLAG = ON_OFF_FLAG;
}
public String getCREDIT_TYPE() {
return CREDIT_TYPE;
}
public void setCREDIT_TYPE(String CREDIT_TYPE) {
this.CREDIT_TYPE = CREDIT_TYPE;
}
public String getSTART_DATE() {
return START_DATE;
}
public void setSTART_DATE(String START_DATE) {
this.START_DATE = START_DATE;
}
public String getDUE_DATE() {
return DUE_DATE;
}
public void setDUE_DATE(String DUE_DATE) {
this.DUE_DATE = DUE_DATE;
}
public String getSUBJECT_CD() {
return SUBJECT_CD;
}
public void setSUBJECT_CD(String SUBJECT_CD) {
this.SUBJECT_CD = SUBJECT_CD;
}
public String getSUBJECT_NAME() {
return SUBJECT_NAME;
}
public void setSUBJECT_NAME(String SUBJECT_NAME) {
this.SUBJECT_NAME = SUBJECT_NAME;
}
public String getFIVE_CLASS_CD() {
return FIVE_CLASS_CD;
}
public void setFIVE_CLASS_CD(String FIVE_CLASS_CD) {
this.FIVE_CLASS_CD = FIVE_CLASS_CD;
}
public Double getASSET_BALANCE() {
return ASSET_BALANCE;
}
public void setASSET_BALANCE(Double ASSET_BALANCE) {
this.ASSET_BALANCE = ASSET_BALANCE;
}
public Double getPROVISION() {
return PROVISION;
}
public void setPROVISION(Double PROVISION) {
this.PROVISION = PROVISION;
}
public Integer getOVERDUE_DTS() {
return OVERDUE_DTS;
}
public void setOVERDUE_DTS(Integer OVERDUE_DTS) {
this.OVERDUE_DTS = OVERDUE_DTS;
}
public String getDEFAULT_FLAG() {
return DEFAULT_FLAG;
}
public void setDEFAULT_FLAG(String DEFAULT_FLAG) {
this.DEFAULT_FLAG = DEFAULT_FLAG;
}
public String getTRADE_TYPE() {
return TRADE_TYPE;
}
public void setTRADE_TYPE(String TRADE_TYPE) {
this.TRADE_TYPE = TRADE_TYPE;
}
}

307
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceCreditCard.java

@ -0,0 +1,307 @@
package io.sc.engine.rwa.calculator.data;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import java.util.HashMap;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.toEmptyDouble;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.toEmptyInteger;
/**
* 源数据信用卡信息
* @author chengjie
* @time 2023-07-20
*/
public class SourceCreditCard extends BaseEntity {
public SourceCreditCard(){setColMap();}
public SourceCreditCard(String[] row){
setColumnValue(row);
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("ACT_NBR",2);
colMap.put("ON_OFF_FLAG",3);
colMap.put("CCY_CD",4);
colMap.put("PRODUCT_CD",5);
colMap.put("PRODUCT_NAME",6);
colMap.put("CUST_NO",7);
colMap.put("CUST_NAME",8);
colMap.put("START_DATE",9);
colMap.put("DUE_DATE",10);
colMap.put("SUBJECT_CD",11);
colMap.put("SUBJECT_NAME",12);
colMap.put("FIVE_CLASS_CD",13);
colMap.put("ASSET_BAL",14);
colMap.put("PROVISION",15);
colMap.put("OVERDUE_DTS",16);
colMap.put("NO_USED_LMT_FLAG",17);
colMap.put("CORP_CART_FLAG",18);
colMap.put("DEFAULT_FLAG",19);
colMap.put("CURR_MISMATCH_FLAG",20);
colMap.put("LGD",21);
colMap.put("BELONG_ORG",22);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID(row[0]); //ID
setDATA_DT(row[1]); //数据日期
setACT_NBR(row[2]); //信用卡账户号
setON_OFF_FLAG(row[3]); //表内外标识
setCCY_CD(row[4]); //币种代码
setPRODUCT_CD(row[5]); //产品代码
setPRODUCT_NAME(row[6]); //产品名称
setCUST_NO(row[7]); //交易对手编号
setCUST_NAME(row[8]); //交易对手名称
setSTART_DATE(row[9]); //开始日期
setDUE_DATE(row[10]); //到期日期
setSUBJECT_CD(row[11]); //科目代码
setSUBJECT_NAME(row[12]); //科目名称
setFIVE_CLASS_CD(row[13]); //五级分类代码
setASSET_BAL(toEmptyDouble(Double.valueOf(row[14]))); //资产余额
setPROVISION(toEmptyDouble(Double.valueOf(row[15]))); //计提准备金
setOVERDUE_DTS(toEmptyInteger(Integer.valueOf(row[16]))); //逾期期数
setNO_USED_LMT_FLAG(row[17]); //符合标准的未使用额度标识
setCORP_CART_FLAG(row[18]); //单位信用卡标识
setDEFAULT_FLAG(row[19]); //违约标志
setCURR_MISMATCH_FLAG(row[20]); //币种错配标识
setLGD(toEmptyDouble(Double.valueOf(row[21])));
setBELONG_ORG(row[22]);
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID; //ID
private String DATA_DT; //数据日期
private String ACT_NBR; //信用卡账户号
private String ON_OFF_FLAG; //表内外标识
private String CCY_CD; //币种代码
private String PRODUCT_CD; //产品代码
private String PRODUCT_NAME; //产品名称
private String CUST_NO; //交易对手编号
private String CUST_NAME; //交易对手名称
private String START_DATE; //开始日期
private String DUE_DATE; //到期日期
private String SUBJECT_CD; //科目代码
private String SUBJECT_NAME; //本金科目名称
private String FIVE_CLASS_CD; //五级分类代码
private Double ASSET_BAL; //资产余额
private Double PROVISION; //计提准备金
private Integer OVERDUE_DTS; //逾期期数
private String NO_USED_LMT_FLAG; //符合标准的未使用额度标识
private String CORP_CART_FLAG; //单位信用卡标识
private String DEFAULT_FLAG; //违约标志
private String CURR_MISMATCH_FLAG; //币种错配标识
private Double LGD; //违约损失率
private String BELONG_ORG; //业务所属机构
public String getID() {
return ID;
}
public Double getLGD() {
return LGD;
}
public void setLGD(Double LGD) {
this.LGD = LGD;
}
public String getBELONG_ORG() {
return BELONG_ORG;
}
public void setBELONG_ORG(String BELONG_ORG) {
this.BELONG_ORG = BELONG_ORG;
}
public void setID(String ID) {
this.ID = ID;
}
public String getCURR_MISMATCH_FLAG() {
return CURR_MISMATCH_FLAG;
}
public void setCURR_MISMATCH_FLAG(String CURR_MISMATCH_FLAG) {
this.CURR_MISMATCH_FLAG = CURR_MISMATCH_FLAG;
}
@Override
public String getTable() {
return "RWA_S_CREDIT_CARD";
}
@Override
public Integer getColumnCount() {
return 29;
}
@Override
public String[] getColumnDataType() {
return new String[]{
"String","String","String","String","String","String","String","String","String","String","String","String","String","String","Double","Double","Integer","String","String","String","String","Double","String"
};
}
public String getNO_USED_LMT_FLAG() {
return NO_USED_LMT_FLAG;
}
public void setNO_USED_LMT_FLAG(String NO_USED_LMT_FLAG) {
this.NO_USED_LMT_FLAG = NO_USED_LMT_FLAG;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getACT_NBR() {
return ACT_NBR;
}
public void setACT_NBR(String ACT_NBR) {
this.ACT_NBR = ACT_NBR;
}
public String getCCY_CD() {
return CCY_CD;
}
public void setCCY_CD(String CCY_CD) {
this.CCY_CD = CCY_CD;
}
public String getPRODUCT_CD() {
return PRODUCT_CD;
}
public void setPRODUCT_CD(String PRODUCT_CD) {
this.PRODUCT_CD = PRODUCT_CD;
}
public String getPRODUCT_NAME() {
return PRODUCT_NAME;
}
public void setPRODUCT_NAME(String PRODUCT_NAME) {
this.PRODUCT_NAME = PRODUCT_NAME;
}
public String getCUST_NO() {
return CUST_NO;
}
public void setCUST_NO(String CUST_NO) {
this.CUST_NO = CUST_NO;
}
public String getCUST_NAME() {
return CUST_NAME;
}
public void setCUST_NAME(String CUST_NAME) {
this.CUST_NAME = CUST_NAME;
}
public String getON_OFF_FLAG() {
return ON_OFF_FLAG;
}
public void setON_OFF_FLAG(String ON_OFF_FLAG) {
this.ON_OFF_FLAG = ON_OFF_FLAG;
}
public String getSTART_DATE() {
return START_DATE;
}
public void setSTART_DATE(String START_DATE) {
this.START_DATE = START_DATE;
}
public String getDUE_DATE() {
return DUE_DATE;
}
public void setDUE_DATE(String DUE_DATE) {
this.DUE_DATE = DUE_DATE;
}
public String getSUBJECT_CD() {
return SUBJECT_CD;
}
public void setSUBJECT_CD(String SUBJECT_CD) {
this.SUBJECT_CD = SUBJECT_CD;
}
public String getSUBJECT_NAME() {
return SUBJECT_NAME;
}
public void setSUBJECT_NAME(String SUBJECT_NAME) {
this.SUBJECT_NAME = SUBJECT_NAME;
}
public String getFIVE_CLASS_CD() {
return FIVE_CLASS_CD;
}
public void setFIVE_CLASS_CD(String FIVE_CLASS_CD) {
this.FIVE_CLASS_CD = FIVE_CLASS_CD;
}
public Double getPROVISION() {
return PROVISION;
}
public void setPROVISION(Double PROVISION) {
this.PROVISION = PROVISION;
}
public Integer getOVERDUE_DTS() {
return OVERDUE_DTS;
}
public void setOVERDUE_DTS(Integer OVERDUE_DTS) {
this.OVERDUE_DTS = OVERDUE_DTS;
}
public String getDEFAULT_FLAG() {
return DEFAULT_FLAG;
}
public void setDEFAULT_FLAG(String DEFAULT_FLAG) {
this.DEFAULT_FLAG = DEFAULT_FLAG;
}
public Double getASSET_BAL() {
return ASSET_BAL;
}
public void setASSET_BAL(Double ASSET_BAL) {
this.ASSET_BAL = ASSET_BAL;
}
public String getCORP_CART_FLAG() {
return CORP_CART_FLAG;
}
public void setCORP_CART_FLAG(String CORP_CART_FLAG) {
this.CORP_CART_FLAG = CORP_CART_FLAG;
}
}

745
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceCustomer.java

@ -0,0 +1,745 @@
package io.sc.engine.rwa.calculator.data;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import java.util.HashMap;
/**
* 源数据交易对手信息
* @author chengjie
* @time 2023-07-20
*/
public class SourceCustomer extends BaseEntity {
public SourceCustomer(){
setColMap();
}
public SourceCustomer(String[] row){
setColumnValue(row);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID(row[0]); //ID
setDATA_DT(row[1]); //数据日期
setCUST_NO(row[2]); //交易对手编号
setCUST_NAME(row[3]); //交易对手名称
setCUST_TYPE(row[4]); //客户类型
setCERT_TYPE(row[5]); //交易对手证件类型
setCERT_NO(row[6]); //交易对手证件号码
setCUST_RATING(row[7]); //交易对手外部评级
setCUST_RATING_TYPE(row[8]); //交易对手外部评级类型
setCUST_INCOME_CURRENCY(row[9]); //个人收入币种
setCUST_INDUSTRY_CD(row[10]); //客户所属行业代码
setREG_COUNTRY_CD(row[11]); //注册地所在国家
setREG_COUNTRY_RATING(row[12]); //所在国家或地区评级
setPUBLIC_ENTITY_FLAG(row[13]); //公共部门实体标识
setSCALE_CD(row[14]); //企业规模
setCREDIT_LINE(row[15]); //授信额度
setM12_CRED_BAL(row[16]); //过去3年最近12个月信用卡余额
setM12_CRED_OVD_FLAG(row[17]); //过去3年最近12个月信用卡是否逾期标识
setBLACKLIST_FLAG(row[18]); //纳入人民法院失信黑名单标识
setREPORT_LIE_RECORD(row[19]); //财务会计文件存在虚假记载标识
setDEFAULT_LOAN_FLAG(row[20]); //近三年有无债务违约标识
setDELAY_REPAYMENT_LOAN_FLAG(row[21]); //近三年有无迟延支付本息标识
setFIVE_CLASS_UNNORMAL_FLAG(row[22]); //有无五级分类非正常的债权标识
setIS_LISTED_COP(row[23]); //是否上市企业判定标识
setREASONABLE_EXTERNAL_GUARANTEES(row[24]); //对外担保规模处于合理水平判定标识
setDEFAULT_GUARANTEES(row[25]); //是否存在违规担保情况判定标识
setVIOLATION_LAWS_REGULATIONS_FLAG(row[26]); //近三年有无重大违法违规行为标识
setENORMOUS_RISK_PROVISION_FLAG(row[27]); //重大风险情形标识
setLEVERAGE_RATIO(row[28]); //杠杆率
setCAPITAL_ADEQUACY_RATIO(row[29]); //资本充足率
setTIER1_CAPITAL_ADEQUACY_RATIO(row[30]); //一级资本充足率
setCORE_CAPITAL_ADEQUACY_RATIO(row[31]); //核心一级资本充足率
setBUFFER_ADEQUACY(row[32]); //缓冲资本
setRISK_WEIGHTED_ASSETS(row[33]); //风险加权资产
setAUDIT_OPINION(row[34]); //最新一期财报审计意见
setANNUAL_REPO_TIMELINESS(row[35]); //按时披露财务报告(年报、年中报、季报)标识
setNEAREST_YEAR_INCOME(row[36]); //最近一年营业收入
setLAST_YEAR_NETINCOME_PR_CONS(row[37]); //前一年度归属母公司净利润(合并口径)
setPRIOR_TWO_YEAR_NETINCOME_PR_CONS(row[38]); //前二年度归属母公司净利润(合并口径)
setPRIOR_THREE_YEAR_NETINCOME_PR_CONS(row[39]); //前三年度归属母公司净利润(合并口径)
setLAST_YEAR_EBT_CONS(row[40]); //前一年度利润总额(合并口径)
setPRIOR_TWO_YEAR_EBT_CONS(row[41]); //前二年度利润总额(合并口径)
setPRIOR_THREE_YEAR_EBT_CONS(row[42]); //前三年度利润总额(合并口径)
setLAST_YEAR_EBT_CORP(row[43]); //前一年度利润总额(法人口径)
setPRIOR_TWO_YEAR_EBT_CORP(row[44]); //前二年度利润总额(法人口径)
setPRIOR_THREE_YEAR_EBT_CORP(row[45]); //前三年度利润总额(法人口径)
setLAST_YEAR_NETPRFT_CORP(row[46]); //前一年度净利润(法人口径)
setPRIOR_TWO_YEAR_NETPRFT_CORP(row[47]); //前二年度净利润(法人口径)
setPRIOR_THREE_YEAR_NETPRFT_CORP(row[48]); //前三年度净利润(法人口径)
setNETINCOME_PR_CONS(row[49]); //最新一期(季度频率)归属母公司净利润(合并口径)
setNETPRFT_PR_CORP(row[50]); //最新一期(季度频率)净利润(法人口径)
setDEBT_ASSET_RATIO(row[51]); //上年度资产负债率
setCASH_GENERATED_BY_OPERATING_ACTIVITIES(row[52]); //上年度经营活动产生的现金流量净额
setNET_INT_FEE(row[53]); //上年度净利息费用
setCIRC_RATING(row[54]); //商业银行标准信用评级
setPARAM_CUST_TYPE(row[55]); //表内业务客户类型
setCRBC_RETAIL_FLAG(row[56]); //监管零售标识
setACCORD_TRADE_FLAG(row[57]); //合格交易者标识
setINVESTMENT_FLAG(row[58]); //投资级标识
setPD(row[59]); //违约概率
setL3_INCOME_AVG(row[60]); //近3年营业收入平均值
setTOTAL_ASSET(row[61]); //总资产
}
}
private String ID; //ID
private String DATA_DT; //数据日期
private String CUST_NO; //交易对手编号
private String CUST_NAME; //交易对手名称
private String CUST_TYPE; //客户类型
private String CERT_TYPE; //交易对手证件类型
private String CERT_NO; //交易对手证件号码
private String CUST_RATING; //交易对手外部评级
/**
* 10 短期评级
* 20 长期评级
*/
private String CUST_RATING_TYPE; //交易对手外部评级类型
private String CUST_INCOME_CURRENCY; //个人收入币种
private String CUST_INDUSTRY_CD; //客户所属行业代码
private String REG_COUNTRY_CD; //注册地所在国家
private String REG_COUNTRY_RATING; //所在国家或地区评级
private String PUBLIC_ENTITY_FLAG; //公共部门实体标识
/**
* 1 大型
* 2 中型
* 3 小型
* 4 微型
* 9 其他
*/
private String SCALE_CD; //企业规模
private String CREDIT_LINE; //授信额度
private String M12_CRED_BAL; //过去3年最近12个月信用卡余额
private String M12_CRED_OVD_FLAG; //过去3年最近12个月信用卡是否逾期标识
private String BLACKLIST_FLAG; //纳入人民法院失信黑名单标识
private String REPORT_LIE_RECORD; //财务会计文件存在虚假记载标识
private String DEFAULT_LOAN_FLAG; //近三年有无债务违约标识
private String DELAY_REPAYMENT_LOAN_FLAG; //近三年有无迟延支付本息标识
private String FIVE_CLASS_UNNORMAL_FLAG; //有无五级分类非正常的债权标识
private String IS_LISTED_COP; //是否上市企业判定标识
private String REASONABLE_EXTERNAL_GUARANTEES; //对外担保规模处于合理水平判定标识
private String DEFAULT_GUARANTEES; //是否存在违规担保情况判定标识
private String VIOLATION_LAWS_REGULATIONS_FLAG; //重大违法违规行为标识
private String ENORMOUS_RISK_PROVISION_FLAG; //重大风险情形标识
private String LEVERAGE_RATIO; //杠杆率
private String CAPITAL_ADEQUACY_RATIO; //资本充足率
private String TIER1_CAPITAL_ADEQUACY_RATIO; //一级资本充足率
private String CORE_CAPITAL_ADEQUACY_RATIO; //核心一级资本充足率
private String BUFFER_ADEQUACY; //缓冲资本
private String RISK_WEIGHTED_ASSETS; //风险加权资产
private String AUDIT_OPINION; //最新一期财报审计意见
private String ANNUAL_REPO_TIMELINESS; //按时披露财务报告(年报、年中报、季报)标识
private String NEAREST_YEAR_INCOME; //最近一年营业收入
private String LAST_YEAR_NETINCOME_PR_CONS; //前一年度归属母公司净利润(合并口径)
private String PRIOR_TWO_YEAR_NETINCOME_PR_CONS; //前二年度归属母公司净利润(合并口径)
private String PRIOR_THREE_YEAR_NETINCOME_PR_CONS; //前三年度归属母公司净利润(合并口径)
private String LAST_YEAR_EBT_CONS; //前一年度利润总额(合并口径)
private String PRIOR_TWO_YEAR_EBT_CONS; //前二年度利润总额(合并口径)
private String PRIOR_THREE_YEAR_EBT_CONS; //前三年度利润总额(合并口径)
private String LAST_YEAR_EBT_CORP; //前一年度利润总额(法人口径)
private String PRIOR_TWO_YEAR_EBT_CORP; //前二年度利润总额(法人口径)
private String PRIOR_THREE_YEAR_EBT_CORP; //前三年度利润总额(法人口径)
private String LAST_YEAR_NETPRFT_CORP; //前一年度净利润(法人口径)
private String PRIOR_TWO_YEAR_NETPRFT_CORP; //前二年度净利润(法人口径)
private String PRIOR_THREE_YEAR_NETPRFT_CORP; //前三年度净利润(法人口径)
private String NETINCOME_PR_CONS; //最新一期(季度频率)归属母公司净利润(合并口径)
private String NETPRFT_PR_CORP; //最新一期(季度频率)净利润(法人口径)
private String DEBT_ASSET_RATIO; //上年度资产负债率
private String CASH_GENERATED_BY_OPERATING_ACTIVITIES; //上年度经营活动产生的现金流量净额
private String NET_INT_FEE; //上年度净利息费用
private String CIRC_RATING; //商业银行标准信用评级
private String PARAM_CUST_TYPE; //表内业务客户类型
private String CRBC_RETAIL_FLAG; //监管零售标识
private String ACCORD_TRADE_FLAG; //合格交易者标识
private String INVESTMENT_FLAG; //投资级标识
private String PD; //违约概率
private String L3_INCOME_AVG; //近三年营业收入平均值
private String TOTAL_ASSET; //总资产
public String getTOTAL_ASSET() {
return TOTAL_ASSET;
}
public void setTOTAL_ASSET(String TOTAL_ASSET) {
this.TOTAL_ASSET = TOTAL_ASSET;
}
public String getPD() {
return PD;
}
public void setPD(String PD) {
this.PD = PD;
}
public String getL3_INCOME_AVG() {
return L3_INCOME_AVG;
}
public void setL3_INCOME_AVG(String l3_INCOME_AVG) {
L3_INCOME_AVG = l3_INCOME_AVG;
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getCIRC_RATING() {
return CIRC_RATING;
}
public void setCIRC_RATING(String CIRC_RATING) {
this.CIRC_RATING = CIRC_RATING;
}
public String getPARAM_CUST_TYPE() {
return PARAM_CUST_TYPE;
}
public void setPARAM_CUST_TYPE(String PARAM_CUST_TYPE) {
this.PARAM_CUST_TYPE = PARAM_CUST_TYPE;
}
public String getCRBC_RETAIL_FLAG() {
return CRBC_RETAIL_FLAG;
}
public void setCRBC_RETAIL_FLAG(String CRBC_RETAIL_FLAG) {
this.CRBC_RETAIL_FLAG = CRBC_RETAIL_FLAG;
}
public String getACCORD_TRADE_FLAG() {
return ACCORD_TRADE_FLAG;
}
public void setACCORD_TRADE_FLAG(String ACCORD_TRADE_FLAG) {
this.ACCORD_TRADE_FLAG = ACCORD_TRADE_FLAG;
}
public String getINVESTMENT_FLAG() {
return INVESTMENT_FLAG;
}
public void setINVESTMENT_FLAG(String INVESTMENT_FLAG) {
this.INVESTMENT_FLAG = INVESTMENT_FLAG;
}
@Override
public String getTable() {
return "RWA_S_CUSTOMER";
}
@Override
public Integer getColumnCount() {
return 68;
}
@Override
public String[] getColumnDataType() {
return new String[]{
"String","String","String","String","String","String","String","String","String","String","String","String","String","String","String","Double","Double","Double","String","String","String","String","String","String","String","String","String","String","Double","Double","Double","Double","Double","Double","String","String","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","String","String","String","String","String","Double","Double","Double"
};
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column){
return 0;
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("CUST_NO",2);
colMap.put("CUST_NAME",3);
colMap.put("CUST_TYPE",4);
colMap.put("CERT_TYPE",5);
colMap.put("CERT_NO",6);
colMap.put("CUST_RATING",7);
colMap.put("CUST_RATING_TYPE",8);
colMap.put("CUST_INCOME_CURRENCY",9);
colMap.put("CUST_INDUSTRY_CD",10);
colMap.put("REG_COUNTRY_CD",11);
colMap.put("REG_COUNTRY_RATING",12);
colMap.put("PUBLIC_ENTITY_FLAG",13);
colMap.put("SCALE_CD",14);
colMap.put("CREDIT_LINE",15);
colMap.put("M12_CRED_BAL",16);
colMap.put("M12_CRED_OVD_FLAG",17);
colMap.put("BLACKLIST_FLAG",18);
colMap.put("REPORT_LIE_RECORD",19);
colMap.put("DEFAULT_LOAN_FLAG",20);
colMap.put("DELAY_REPAYMENT_LOAN_FLAG",21);
colMap.put("FIVE_CLASS_UNNORMAL_FLAG",22);
colMap.put("IS_LISTED_COP",23);
colMap.put("REASONABLE_EXTERNAL_GUARANTEES",24);
colMap.put("DEFAULT_GUARANTEES",25);
colMap.put("VIOLATION_LAWS_REGULATIONS_FLAG",26);
colMap.put("ENORMOUS_RISK_PROVISION_FLAG",27);
colMap.put("LEVERAGE_RATIO",28);
colMap.put("CAPITAL_ADEQUACY_RATIO",29);
colMap.put("TIER1_CAPITAL_ADEQUACY_RATIO",30);
colMap.put("CORE_CAPITAL_ADEQUACY_RATIO",31);
colMap.put("BUFFER_ADEQUACY",32);
colMap.put("RISK_WEIGHTED_ASSETS",33);
colMap.put("AUDIT_OPINION",34);
colMap.put("ANNUAL_REPO_TIMELINESS",35);
colMap.put("NEAREST_YEAR_INCOME",36);
colMap.put("LAST_YEAR_NETINCOME_PR_CONS",37);
colMap.put("PRIOR_TWO_YEAR_NETINCOME_PR_CONS",38);
colMap.put("PRIOR_THREE_YEAR_NETINCOME_PR_CONS",39);
colMap.put("LAST_YEAR_EBT_CONS",40);
colMap.put("PRIOR_TWO_YEAR_EBT_CONS",41);
colMap.put("PRIOR_THREE_YEAR_EBT_CONS",42);
colMap.put("LAST_YEAR_EBT_CORP",43);
colMap.put("PRIOR_TWO_YEAR_EBT_CORP",44);
colMap.put("PRIOR_THREE_YEAR_EBT_CORP",45);
colMap.put("LAST_YEAR_NETPRFT_CORP",46);
colMap.put("PRIOR_TWO_YEAR_NETPRFT_CORP",47);
colMap.put("PRIOR_THREE_YEAR_NETPRFT_CORP",48);
colMap.put("NETINCOME_PR_CONS",49);
colMap.put("NETPRFT_PR_CORP",50);
colMap.put("DEBT_ASSET_RATIO",51);
colMap.put("CASH_GENERATED_BY_OPERATING_ACTIVITIES",52);
colMap.put("NET_INT_FEE",53);
colMap.put("CIRC_RATING" ,54);
colMap.put("PARAM_CUST_TYPE" ,55);
colMap.put("CRBC_RETAIL_FLAG" ,56);
colMap.put("ACCORD_TRADE_FLAG" ,57);
colMap.put("INVESTMENT_FLAG" ,58);
colMap.put("PD" ,59);
colMap.put("L3_INCOME_AVG" ,60);
colMap.put("TOTAL_ASSET" ,61);
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getCUST_NO() {
return CUST_NO;
}
public void setCUST_NO(String CUST_NO) {
this.CUST_NO = CUST_NO;
}
public String getCUST_NAME() {
return CUST_NAME;
}
public void setCUST_NAME(String CUST_NAME) {
this.CUST_NAME = CUST_NAME;
}
public String getCUST_TYPE() {
return CUST_TYPE;
}
public void setCUST_TYPE(String CUST_TYPE) {
this.CUST_TYPE = CUST_TYPE;
}
public String getCERT_TYPE() {
return CERT_TYPE;
}
public void setCERT_TYPE(String CERT_TYPE) {
this.CERT_TYPE = CERT_TYPE;
}
public String getCERT_NO() {
return CERT_NO;
}
public void setCERT_NO(String CERT_NO) {
this.CERT_NO = CERT_NO;
}
public String getCUST_INCOME_CURRENCY() {
return CUST_INCOME_CURRENCY;
}
public void setCUST_INCOME_CURRENCY(String CUST_INCOME_CURRENCY) {
this.CUST_INCOME_CURRENCY = CUST_INCOME_CURRENCY;
}
public String getCUST_INDUSTRY_CD() {
return CUST_INDUSTRY_CD;
}
public void setCUST_INDUSTRY_CD(String CUST_INDUSTRY_CD) {
this.CUST_INDUSTRY_CD = CUST_INDUSTRY_CD;
}
public String getREG_COUNTRY_CD() {
return REG_COUNTRY_CD;
}
public void setREG_COUNTRY_CD(String REG_COUNTRY_CD) {
this.REG_COUNTRY_CD = REG_COUNTRY_CD;
}
public String getREG_COUNTRY_RATING() {
return REG_COUNTRY_RATING;
}
public void setREG_COUNTRY_RATING(String REG_COUNTRY_RATING) {
this.REG_COUNTRY_RATING = REG_COUNTRY_RATING;
}
public String getSCALE_CD() {
return SCALE_CD;
}
public void setSCALE_CD(String SCALE_CD) {
this.SCALE_CD = SCALE_CD;
}
public String getCREDIT_LINE() {
return CREDIT_LINE;
}
public void setCREDIT_LINE(String CREDIT_LINE) {
this.CREDIT_LINE = CREDIT_LINE;
}
public String getDEFAULT_LOAN_FLAG() {
return DEFAULT_LOAN_FLAG;
}
public void setDEFAULT_LOAN_FLAG(String DEFAULT_LOAN_FLAG) {
this.DEFAULT_LOAN_FLAG = DEFAULT_LOAN_FLAG;
}
public String getDELAY_REPAYMENT_LOAN_FLAG() {
return DELAY_REPAYMENT_LOAN_FLAG;
}
public void setDELAY_REPAYMENT_LOAN_FLAG(String DELAY_REPAYMENT_LOAN_FLAG) {
this.DELAY_REPAYMENT_LOAN_FLAG = DELAY_REPAYMENT_LOAN_FLAG;
}
public String getIS_LISTED_COP() {
return IS_LISTED_COP;
}
public void setIS_LISTED_COP(String IS_LISTED_COP) {
this.IS_LISTED_COP = IS_LISTED_COP;
}
public String getREASONABLE_EXTERNAL_GUARANTEES() {
return REASONABLE_EXTERNAL_GUARANTEES;
}
public void setREASONABLE_EXTERNAL_GUARANTEES(String REASONABLE_EXTERNAL_GUARANTEES) {
this.REASONABLE_EXTERNAL_GUARANTEES = REASONABLE_EXTERNAL_GUARANTEES;
}
public String getDEFAULT_GUARANTEES() {
return DEFAULT_GUARANTEES;
}
public void setDEFAULT_GUARANTEES(String DEFAULT_GUARANTEES) {
this.DEFAULT_GUARANTEES = DEFAULT_GUARANTEES;
}
public String getVIOLATION_LAWS_REGULATIONS_FLAG() {
return VIOLATION_LAWS_REGULATIONS_FLAG;
}
public void setVIOLATION_LAWS_REGULATIONS_FLAG(String VIOLATION_LAWS_REGULATIONS_FLAG) {
this.VIOLATION_LAWS_REGULATIONS_FLAG = VIOLATION_LAWS_REGULATIONS_FLAG;
}
public String getENORMOUS_RISK_PROVISION_FLAG() {
return ENORMOUS_RISK_PROVISION_FLAG;
}
public void setENORMOUS_RISK_PROVISION_FLAG(String ENORMOUS_RISK_PROVISION_FLAG) {
this.ENORMOUS_RISK_PROVISION_FLAG = ENORMOUS_RISK_PROVISION_FLAG;
}
public String getLEVERAGE_RATIO() {
return LEVERAGE_RATIO;
}
public void setLEVERAGE_RATIO(String LEVERAGE_RATIO) {
this.LEVERAGE_RATIO = LEVERAGE_RATIO;
}
public String getCAPITAL_ADEQUACY_RATIO() {
return CAPITAL_ADEQUACY_RATIO;
}
public void setCAPITAL_ADEQUACY_RATIO(String CAPITAL_ADEQUACY_RATIO) {
this.CAPITAL_ADEQUACY_RATIO = CAPITAL_ADEQUACY_RATIO;
}
public String getTIER1_CAPITAL_ADEQUACY_RATIO() {
return TIER1_CAPITAL_ADEQUACY_RATIO;
}
public void setTIER1_CAPITAL_ADEQUACY_RATIO(String TIER1_CAPITAL_ADEQUACY_RATIO) {
this.TIER1_CAPITAL_ADEQUACY_RATIO = TIER1_CAPITAL_ADEQUACY_RATIO;
}
public String getCORE_CAPITAL_ADEQUACY_RATIO() {
return CORE_CAPITAL_ADEQUACY_RATIO;
}
public void setCORE_CAPITAL_ADEQUACY_RATIO(String CORE_CAPITAL_ADEQUACY_RATIO) {
this.CORE_CAPITAL_ADEQUACY_RATIO = CORE_CAPITAL_ADEQUACY_RATIO;
}
public String getAUDIT_OPINION() {
return AUDIT_OPINION;
}
public void setAUDIT_OPINION(String AUDIT_OPINION) {
this.AUDIT_OPINION = AUDIT_OPINION;
}
public String getANNUAL_REPO_TIMELINESS() {
return ANNUAL_REPO_TIMELINESS;
}
public void setANNUAL_REPO_TIMELINESS(String ANNUAL_REPO_TIMELINESS) {
this.ANNUAL_REPO_TIMELINESS = ANNUAL_REPO_TIMELINESS;
}
public String getNEAREST_YEAR_INCOME() {
return NEAREST_YEAR_INCOME;
}
public void setNEAREST_YEAR_INCOME(String NEAREST_YEAR_INCOME) {
this.NEAREST_YEAR_INCOME = NEAREST_YEAR_INCOME;
}
public String getLAST_YEAR_NETINCOME_PR_CONS() {
return LAST_YEAR_NETINCOME_PR_CONS;
}
public void setLAST_YEAR_NETINCOME_PR_CONS(String LAST_YEAR_NETINCOME_PR_CONS) {
this.LAST_YEAR_NETINCOME_PR_CONS = LAST_YEAR_NETINCOME_PR_CONS;
}
public String getPRIOR_TWO_YEAR_NETINCOME_PR_CONS() {
return PRIOR_TWO_YEAR_NETINCOME_PR_CONS;
}
public void setPRIOR_TWO_YEAR_NETINCOME_PR_CONS(String PRIOR_TWO_YEAR_NETINCOME_PR_CONS) {
this.PRIOR_TWO_YEAR_NETINCOME_PR_CONS = PRIOR_TWO_YEAR_NETINCOME_PR_CONS;
}
public String getPRIOR_THREE_YEAR_NETINCOME_PR_CONS() {
return PRIOR_THREE_YEAR_NETINCOME_PR_CONS;
}
public void setPRIOR_THREE_YEAR_NETINCOME_PR_CONS(String PRIOR_THREE_YEAR_NETINCOME_PR_CONS) {
this.PRIOR_THREE_YEAR_NETINCOME_PR_CONS = PRIOR_THREE_YEAR_NETINCOME_PR_CONS;
}
public String getLAST_YEAR_EBT_CONS() {
return LAST_YEAR_EBT_CONS;
}
public void setLAST_YEAR_EBT_CONS(String LAST_YEAR_EBT_CONS) {
this.LAST_YEAR_EBT_CONS = LAST_YEAR_EBT_CONS;
}
public String getPRIOR_TWO_YEAR_EBT_CONS() {
return PRIOR_TWO_YEAR_EBT_CONS;
}
public void setPRIOR_TWO_YEAR_EBT_CONS(String PRIOR_TWO_YEAR_EBT_CONS) {
this.PRIOR_TWO_YEAR_EBT_CONS = PRIOR_TWO_YEAR_EBT_CONS;
}
public String getPRIOR_THREE_YEAR_EBT_CONS() {
return PRIOR_THREE_YEAR_EBT_CONS;
}
public void setPRIOR_THREE_YEAR_EBT_CONS(String PRIOR_THREE_YEAR_EBT_CONS) {
this.PRIOR_THREE_YEAR_EBT_CONS = PRIOR_THREE_YEAR_EBT_CONS;
}
public String getLAST_YEAR_EBT_CORP() {
return LAST_YEAR_EBT_CORP;
}
public void setLAST_YEAR_EBT_CORP(String LAST_YEAR_EBT_CORP) {
this.LAST_YEAR_EBT_CORP = LAST_YEAR_EBT_CORP;
}
public String getPRIOR_TWO_YEAR_EBT_CORP() {
return PRIOR_TWO_YEAR_EBT_CORP;
}
public void setPRIOR_TWO_YEAR_EBT_CORP(String PRIOR_TWO_YEAR_EBT_CORP) {
this.PRIOR_TWO_YEAR_EBT_CORP = PRIOR_TWO_YEAR_EBT_CORP;
}
public String getPRIOR_THREE_YEAR_EBT_CORP() {
return PRIOR_THREE_YEAR_EBT_CORP;
}
public void setPRIOR_THREE_YEAR_EBT_CORP(String PRIOR_THREE_YEAR_EBT_CORP) {
this.PRIOR_THREE_YEAR_EBT_CORP = PRIOR_THREE_YEAR_EBT_CORP;
}
public String getLAST_YEAR_NETPRFT_CORP() {
return LAST_YEAR_NETPRFT_CORP;
}
public void setLAST_YEAR_NETPRFT_CORP(String LAST_YEAR_NETPRFT_CORP) {
this.LAST_YEAR_NETPRFT_CORP = LAST_YEAR_NETPRFT_CORP;
}
public String getPRIOR_TWO_YEAR_NETPRFT_CORP() {
return PRIOR_TWO_YEAR_NETPRFT_CORP;
}
public void setPRIOR_TWO_YEAR_NETPRFT_CORP(String PRIOR_TWO_YEAR_NETPRFT_CORP) {
this.PRIOR_TWO_YEAR_NETPRFT_CORP = PRIOR_TWO_YEAR_NETPRFT_CORP;
}
public String getPRIOR_THREE_YEAR_NETPRFT_CORP() {
return PRIOR_THREE_YEAR_NETPRFT_CORP;
}
public void setPRIOR_THREE_YEAR_NETPRFT_CORP(String PRIOR_THREE_YEAR_NETPRFT_CORP) {
this.PRIOR_THREE_YEAR_NETPRFT_CORP = PRIOR_THREE_YEAR_NETPRFT_CORP;
}
public String getNETINCOME_PR_CONS() {
return NETINCOME_PR_CONS;
}
public void setNETINCOME_PR_CONS(String NETINCOME_PR_CONS) {
this.NETINCOME_PR_CONS = NETINCOME_PR_CONS;
}
public String getNETPRFT_PR_CORP() {
return NETPRFT_PR_CORP;
}
public void setNETPRFT_PR_CORP(String NETPRFT_PR_CORP) {
this.NETPRFT_PR_CORP = NETPRFT_PR_CORP;
}
public String getDEBT_ASSET_RATIO() {
return DEBT_ASSET_RATIO;
}
public void setDEBT_ASSET_RATIO(String DEBT_ASSET_RATIO) {
this.DEBT_ASSET_RATIO = DEBT_ASSET_RATIO;
}
public String getCASH_GENERATED_BY_OPERATING_ACTIVITIES() {
return CASH_GENERATED_BY_OPERATING_ACTIVITIES;
}
public void setCASH_GENERATED_BY_OPERATING_ACTIVITIES(String CASH_GENERATED_BY_OPERATING_ACTIVITIES) {
this.CASH_GENERATED_BY_OPERATING_ACTIVITIES = CASH_GENERATED_BY_OPERATING_ACTIVITIES;
}
public String getNET_INT_FEE() {
return NET_INT_FEE;
}
public void setNET_INT_FEE(String NET_INT_FEE) {
this.NET_INT_FEE = NET_INT_FEE;
}
public String getBLACKLIST_FLAG() {
return BLACKLIST_FLAG;
}
public void setBLACKLIST_FLAG(String BLACKLIST_FLAG) {
this.BLACKLIST_FLAG = BLACKLIST_FLAG;
}
public String getREPORT_LIE_RECORD() {
return REPORT_LIE_RECORD;
}
public void setREPORT_LIE_RECORD(String REPORT_LIE_RECORD) {
this.REPORT_LIE_RECORD = REPORT_LIE_RECORD;
}
public String getFIVE_CLASS_UNNORMAL_FLAG() {
return FIVE_CLASS_UNNORMAL_FLAG;
}
public void setFIVE_CLASS_UNNORMAL_FLAG(String FIVE_CLASS_UNNORMAL_FLAG) {
this.FIVE_CLASS_UNNORMAL_FLAG = FIVE_CLASS_UNNORMAL_FLAG;
}
public String getBUFFER_ADEQUACY() {
return BUFFER_ADEQUACY;
}
public void setBUFFER_ADEQUACY(String BUFFER_ADEQUACY) {
this.BUFFER_ADEQUACY = BUFFER_ADEQUACY;
}
public String getRISK_WEIGHTED_ASSETS() {
return RISK_WEIGHTED_ASSETS;
}
public void setRISK_WEIGHTED_ASSETS(String RISK_WEIGHTED_ASSETS) {
this.RISK_WEIGHTED_ASSETS = RISK_WEIGHTED_ASSETS;
}
public String getM12_CRED_BAL() {
return M12_CRED_BAL;
}
public void setM12_CRED_BAL(String m12_CRED_BAL) {
M12_CRED_BAL = m12_CRED_BAL;
}
public String getM12_CRED_OVD_FLAG() {
return M12_CRED_OVD_FLAG;
}
public void setM12_CRED_OVD_FLAG(String m12_CRED_OVD_FLAG) {
M12_CRED_OVD_FLAG = m12_CRED_OVD_FLAG;
}
public String getPUBLIC_ENTITY_FLAG() {
return PUBLIC_ENTITY_FLAG;
}
public void setPUBLIC_ENTITY_FLAG(String PUBLIC_ENTITY_FLAG) {
this.PUBLIC_ENTITY_FLAG = PUBLIC_ENTITY_FLAG;
}
public String getCUST_RATING() {
return CUST_RATING;
}
public void setCUST_RATING(String CUST_RATING) {
this.CUST_RATING = CUST_RATING;
}
public String getCUST_RATING_TYPE() {
return CUST_RATING_TYPE;
}
public void setCUST_RATING_TYPE(String CUST_RATING_TYPE) {
this.CUST_RATING_TYPE = CUST_RATING_TYPE;
}
}

594
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceDebt.java

@ -0,0 +1,594 @@
package io.sc.engine.rwa.calculator.data;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import java.util.HashMap;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.toEmptyDouble;
/**
* 源数据贷款借据信息
* @author chengjie
* @time 2023-07-20
*/
public class SourceDebt extends BaseEntity {
public SourceDebt(){
setColMap();
}
public SourceDebt(String[] row){
setColumnValue(row);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID(row[0]); //ID
setDATA_DT(row[1]); //数据日期
setLOAN_REF_NO(row[2]); //债项编号
setON_OFF_FLAG(row[3]); //表内表外标识
setCCY_CD(row[4]); //币种代码
setPRODUCT_CD(row[5]); //产品代码
setPRODUCT_NAME(row[6]); //产品名称
setCUST_NO(row[7]); //交易对手编号
setCUST_NAME(row[8]); //交易对手名称
setSTART_DATE(row[9]); //开始日期
setDUE_DATE(row[10]); //到期日期
setFIVE_CLASS_CD(row[11]); //五级分类代码
setSUBJECT_CD(row[12]); //科目代码
setSUBJECT_NAME(row[13]); //科目名称
setASSET_BAL(toEmptyDouble(Double.valueOf(row[14]))); //资产余额
setPROVISION(toEmptyDouble(Double.valueOf(row[15]))); //计提准备金
setSPE_LENDING_FLAG(row[16]); //专业贷款标志
setSPE_LENDING_TYPE(row[17]); //专业贷款分类
setOPERATION_PF_FLAG(row[18]); //项目融资运营阶段标识
setREAL_ESTATE_DEP_TYPE(row[19]); //房地产风险暴露类型
setAFFORDABLE_HOUSING_PROJECT_FLAG(row[20]); //保障性住房开发项目标志
setRESIDENTIAL_HOUSING_PROJECT(row[21]); //居住用房地产开发项目标志
setPROJECT_CAPITAL_RATIO(toEmptyDouble(Double.valueOf(row[22]))); //项目资本金比例
setPRINCIPAL_PAYMENT_RATIO(toEmptyDouble(Double.valueOf(row[23]))); //本金偿还比例
setIS_COMPLET(row[24]); //房地产是否已完工
setIS_CASHABLE(row[25]); //是否法律上可执行
setIS_FIRST_SEQ(row[26]); //是否符合第一顺位抵质押权
setIS_PRU_APPR_STAN(row[27]); //是否审慎的房地产贷款审批标准
setIS_PRU_EST_VAL(row[28]); //是否审慎的房地产估值
setDOC_REQUIR(row[29]); //是否全面记录贷款发放及监测的文档要求
setMORTGAGE_LOAN_OVER_THREE(row[30]); //三套及以上个人住房按揭贷款标志
setDEPEND_ON_CASHFLOW(row[31]); //实质依赖房地产所产生的的现金流标志
setSAME_PLED_TOTAL_BALANCE(toEmptyDouble(Double.valueOf(row[32]))); //被同一房地产担保且无其他银行中间抵押权的多笔债项合计贷款余额
setTOGETHER_MORTGAGE_FLAG(row[33]); //被商用房和居住用房共同抵押标识
setTOGETHER_MORT_VALUE(toEmptyDouble(Double.valueOf(row[34]))); //被商用房和居住用房共同抵押的合计房地产价值
setTOGETHER_MORT_HOUSE_VALUE(toEmptyDouble(Double.valueOf(row[35]))); //被商用房和居住用房共同抵押的居住用房地产价值
setMORT_ESTATE_VALUE(toEmptyDouble(Double.valueOf(row[36]))); //房地产抵押物价值
setIS_OVERDUE(row[37]); //是否逾期标志
setIS_ROLLOVER(row[38]); //是否展期标志
setIS_DEFAULTING(row[39]); //是否违约
setPRUD_REAL_ESTATE_DEVP_FLAG(row[40]); //审慎的房地产开发风险暴露标识
setPRUD_REAL_ESTATE_MORT_FLAG(row[41]); //审慎的房地产按揭风险暴露标识
setCURR_MISMATCH_FLAG(row[42]); //币种错配标识
setREMAIN_TERM(toEmptyDouble(Double.valueOf(row[43]))); //剩余期限
setLGD(toEmptyDouble(Double.valueOf(row[44]))); //违约损失率
setBELONG_ORG(row[45]); //业务所属机构
setFLUCTUATION_FLAG(row[46]); //波动性较大标识
}
}
private String ID; //ID
private String DATA_DT; //数据日期
private String LOAN_REF_NO; //债项编号
private String ON_OFF_FLAG; //表内表外标识
private String CCY_CD; //币种代码
private String PRODUCT_CD; //产品代码
private String PRODUCT_NAME; //产品名称
private String CUST_NO; //交易对手编号
private String CUST_NAME; //交易对手名称
private String START_DATE; //开始日期
private String DUE_DATE; //到期日期
private String FIVE_CLASS_CD; //五级分类代码
private String SUBJECT_CD; //科目代码
private String SUBJECT_NAME; //科目名称
private Double ASSET_BAL; //资产余额
private Double PROVISION; //计提准备金
private String SPE_LENDING_FLAG; //专业贷款标志
/**
* 01 项目融资
* 02 物品融资
* 03 商品融资
*/
private String SPE_LENDING_TYPE; //专业贷款分类
/**
* 01 运营前
* 02 运营中
*/
private String OPERATION_PF_FLAG; //项目融资运营阶段标识
/**
* 01 房地产开发贷款
* 02 用于购买居住用房且以居住用房地产为抵押
* 03 用于购买商用房且以居商用房地产为抵押
*/
private String REAL_ESTATE_DEP_TYPE; //房地产风险暴露类型
private String AFFORDABLE_HOUSING_PROJECT_FLAG; //保障性住房开发项目标志
private String RESIDENTIAL_HOUSING_PROJECT; //居住用房地产开发项目标志
private Double PROJECT_CAPITAL_RATIO; //项目资本金比例
private Double PRINCIPAL_PAYMENT_RATIO; //本金偿还比例
private String IS_COMPLET; //房地产是否已完工
private String IS_CASHABLE; //是否法律上可执行
private String IS_FIRST_SEQ; //是否符合第一顺位抵质押权
private String IS_PRU_APPR_STAN; //是否审慎的房地产贷款审批标准
private String IS_PRU_EST_VAL; //是否审慎的房地产估值
private String DOC_REQUIR; //是否全面记录贷款发放及监测的文档要求
private String MORTGAGE_LOAN_OVER_THREE; //三套及以上个人住房按揭贷款标志
private String DEPEND_ON_CASHFLOW; //实质依赖房地产所产生的的现金流标志
private Double SAME_PLED_TOTAL_BALANCE; //被同一房地产担保且无其他银行中间抵押权的多笔债项合计贷款余额
private String TOGETHER_MORTGAGE_FLAG; //被商用房和居住用房共同抵押标识
private Double TOGETHER_MORT_VALUE; //被商用房和居住用房共同抵押的合计房地产价值
private Double TOGETHER_MORT_HOUSE_VALUE; //被商用房和居住用房共同抵押的居住用房地产价值
private Double MORT_ESTATE_VALUE; //房地产抵押物价值
private String IS_OVERDUE; //是否逾期标志
private String IS_ROLLOVER; //是否展期标志
private String IS_DEFAULTING; //是否违约
private String PRUD_REAL_ESTATE_DEVP_FLAG; //审慎的房地产开发风险暴露标识
private String PRUD_REAL_ESTATE_MORT_FLAG; //审慎的房地产按揭风险暴露标识
private String CURR_MISMATCH_FLAG; //币种错配标识
private Double REMAIN_TERM; //剩余期限(年)
private Double LGD; //违约损失率
private String BELONG_ORG; //业务所属机构
private String FLUCTUATION_FLAG; //产生收入的房地产贷款的未来房地产出租收入、销售收入或土地出让收入的波动性较大标识
public String getFLUCTUATION_FLAG() {
return FLUCTUATION_FLAG;
}
public void setFLUCTUATION_FLAG(String FLUCTUATION_FLAG) {
this.FLUCTUATION_FLAG = FLUCTUATION_FLAG;
}
public String getBELONG_ORG() {
return BELONG_ORG;
}
public void setBELONG_ORG(String BELONG_ORG) {
this.BELONG_ORG = BELONG_ORG;
}
public String getID() {
return ID;
}
public Double getLGD() {
return LGD;
}
public void setLGD(Double LGD) {
this.LGD = LGD;
}
public void setID(String ID) {
this.ID = ID;
}
public String getPRUD_REAL_ESTATE_DEVP_FLAG() {
return PRUD_REAL_ESTATE_DEVP_FLAG;
}
public void setPRUD_REAL_ESTATE_DEVP_FLAG(String PRUD_REAL_ESTATE_DEVP_FLAG) {
this.PRUD_REAL_ESTATE_DEVP_FLAG = PRUD_REAL_ESTATE_DEVP_FLAG;
}
public String getPRUD_REAL_ESTATE_MORT_FLAG() {
return PRUD_REAL_ESTATE_MORT_FLAG;
}
public void setPRUD_REAL_ESTATE_MORT_FLAG(String PRUD_REAL_ESTATE_MORT_FLAG) {
this.PRUD_REAL_ESTATE_MORT_FLAG = PRUD_REAL_ESTATE_MORT_FLAG;
}
public String getCURR_MISMATCH_FLAG() {
return CURR_MISMATCH_FLAG;
}
public void setCURR_MISMATCH_FLAG(String CURR_MISMATCH_FLAG) {
this.CURR_MISMATCH_FLAG = CURR_MISMATCH_FLAG;
}
public Double getREMAIN_TERM() {
return REMAIN_TERM;
}
public void setREMAIN_TERM(Double REMAIN_TERM) {
this.REMAIN_TERM = REMAIN_TERM;
}
@Override
public String getTable() {
return "RWA_S_DEBT";
}
@Override
public Integer getColumnCount() {
return 53;
}
public String[] getColumnDataType(){
return new String[]{
"String","String","String","String","String","String","String","String","String","String","String","String","String","String","Double","Double","String","String","String","String","String","String","Double","Double","String","String","String","String","String","String","String","String","Double","String","Double","Double","Double","String","String","String","String","String","String","Double","Double","String","String"
};
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getLOAN_REF_NO() {
return LOAN_REF_NO;
}
public void setLOAN_REF_NO(String LOAN_REF_NO) {
this.LOAN_REF_NO = LOAN_REF_NO;
}
public String getCCY_CD() {
return CCY_CD;
}
public void setCCY_CD(String CCY_CD) {
this.CCY_CD = CCY_CD;
}
public String getPRODUCT_CD() {
return PRODUCT_CD;
}
public void setPRODUCT_CD(String PRODUCT_CD) {
this.PRODUCT_CD = PRODUCT_CD;
}
public String getPRODUCT_NAME() {
return PRODUCT_NAME;
}
public void setPRODUCT_NAME(String PRODUCT_NAME) {
this.PRODUCT_NAME = PRODUCT_NAME;
}
public String getCUST_NO() {
return CUST_NO;
}
public void setCUST_NO(String CUST_NO) {
this.CUST_NO = CUST_NO;
}
public String getCUST_NAME() {
return CUST_NAME;
}
public void setCUST_NAME(String CUST_NAME) {
this.CUST_NAME = CUST_NAME;
}
public String getSTART_DATE() {
return START_DATE;
}
public void setSTART_DATE(String START_DATE) {
this.START_DATE = START_DATE;
}
public String getDUE_DATE() {
return DUE_DATE;
}
public void setDUE_DATE(String DUE_DATE) {
this.DUE_DATE = DUE_DATE;
}
public String getFIVE_CLASS_CD() {
return FIVE_CLASS_CD;
}
public void setFIVE_CLASS_CD(String FIVE_CLASS_CD) {
this.FIVE_CLASS_CD = FIVE_CLASS_CD;
}
public String getSUBJECT_CD() {
return SUBJECT_CD;
}
public void setSUBJECT_CD(String SUBJECT_CD) {
this.SUBJECT_CD = SUBJECT_CD;
}
public String getSUBJECT_NAME() {
return SUBJECT_NAME;
}
public void setSUBJECT_NAME(String SUBJECT_NAME) {
this.SUBJECT_NAME = SUBJECT_NAME;
}
public Double getASSET_BAL() {
return ASSET_BAL;
}
public void setASSET_BAL(Double ASSET_BAL) {
this.ASSET_BAL = ASSET_BAL;
}
public Double getPROVISION() {
return PROVISION;
}
public void setPROVISION(Double PROVISION) {
this.PROVISION = PROVISION;
}
public String getSPE_LENDING_FLAG() {
return SPE_LENDING_FLAG;
}
public void setSPE_LENDING_FLAG(String SPE_LENDING_FLAG) {
this.SPE_LENDING_FLAG = SPE_LENDING_FLAG;
}
public String getSPE_LENDING_TYPE() {
return SPE_LENDING_TYPE;
}
public void setSPE_LENDING_TYPE(String SPE_LENDING_TYPE) {
this.SPE_LENDING_TYPE = SPE_LENDING_TYPE;
}
public String getOPERATION_PF_FLAG() {
return OPERATION_PF_FLAG;
}
public void setOPERATION_PF_FLAG(String OPERATION_PF_FLAG) {
this.OPERATION_PF_FLAG = OPERATION_PF_FLAG;
}
public String getREAL_ESTATE_DEP_TYPE() {
return REAL_ESTATE_DEP_TYPE;
}
public void setREAL_ESTATE_DEP_TYPE(String REAL_ESTATE_DEP_TYPE) {
this.REAL_ESTATE_DEP_TYPE = REAL_ESTATE_DEP_TYPE;
}
public String getAFFORDABLE_HOUSING_PROJECT_FLAG() {
return AFFORDABLE_HOUSING_PROJECT_FLAG;
}
public void setAFFORDABLE_HOUSING_PROJECT_FLAG(String AFFORDABLE_HOUSING_PROJECT_FLAG) {
this.AFFORDABLE_HOUSING_PROJECT_FLAG = AFFORDABLE_HOUSING_PROJECT_FLAG;
}
public String getRESIDENTIAL_HOUSING_PROJECT() {
return RESIDENTIAL_HOUSING_PROJECT;
}
public void setRESIDENTIAL_HOUSING_PROJECT(String RESIDENTIAL_HOUSING_PROJECT) {
this.RESIDENTIAL_HOUSING_PROJECT = RESIDENTIAL_HOUSING_PROJECT;
}
public Double getPROJECT_CAPITAL_RATIO() {
return PROJECT_CAPITAL_RATIO;
}
public void setPROJECT_CAPITAL_RATIO(Double PROJECT_CAPITAL_RATIO) {
this.PROJECT_CAPITAL_RATIO = PROJECT_CAPITAL_RATIO;
}
public Double getPRINCIPAL_PAYMENT_RATIO() {
return PRINCIPAL_PAYMENT_RATIO;
}
public void setPRINCIPAL_PAYMENT_RATIO(Double PRINCIPAL_PAYMENT_RATIO) {
this.PRINCIPAL_PAYMENT_RATIO = PRINCIPAL_PAYMENT_RATIO;
}
public String getIS_COMPLET() {
return IS_COMPLET;
}
public void setIS_COMPLET(String IS_COMPLET) {
this.IS_COMPLET = IS_COMPLET;
}
public String getIS_CASHABLE() {
return IS_CASHABLE;
}
public void setIS_CASHABLE(String IS_CASHABLE) {
this.IS_CASHABLE = IS_CASHABLE;
}
public String getIS_FIRST_SEQ() {
return IS_FIRST_SEQ;
}
public void setIS_FIRST_SEQ(String IS_FIRST_SEQ) {
this.IS_FIRST_SEQ = IS_FIRST_SEQ;
}
public String getIS_PRU_APPR_STAN() {
return IS_PRU_APPR_STAN;
}
public void setIS_PRU_APPR_STAN(String IS_PRU_APPR_STAN) {
this.IS_PRU_APPR_STAN = IS_PRU_APPR_STAN;
}
public String getIS_PRU_EST_VAL() {
return IS_PRU_EST_VAL;
}
public void setIS_PRU_EST_VAL(String IS_PRU_EST_VAL) {
this.IS_PRU_EST_VAL = IS_PRU_EST_VAL;
}
public String getDOC_REQUIR() {
return DOC_REQUIR;
}
public void setDOC_REQUIR(String DOC_REQUIR) {
this.DOC_REQUIR = DOC_REQUIR;
}
public String getMORTGAGE_LOAN_OVER_THREE() {
return MORTGAGE_LOAN_OVER_THREE;
}
public void setMORTGAGE_LOAN_OVER_THREE(String MORTGAGE_LOAN_OVER_THREE) {
this.MORTGAGE_LOAN_OVER_THREE = MORTGAGE_LOAN_OVER_THREE;
}
public String getDEPEND_ON_CASHFLOW() {
return DEPEND_ON_CASHFLOW;
}
public void setDEPEND_ON_CASHFLOW(String DEPEND_ON_CASHFLOW) {
this.DEPEND_ON_CASHFLOW = DEPEND_ON_CASHFLOW;
}
public String getIS_OVERDUE() {
return IS_OVERDUE;
}
public void setIS_OVERDUE(String IS_OVERDUE) {
this.IS_OVERDUE = IS_OVERDUE;
}
public String getIS_ROLLOVER() {
return IS_ROLLOVER;
}
public void setIS_ROLLOVER(String IS_ROLLOVER) {
this.IS_ROLLOVER = IS_ROLLOVER;
}
public String getON_OFF_FLAG() {
return ON_OFF_FLAG;
}
public void setON_OFF_FLAG(String ON_OFF_FLAG) {
this.ON_OFF_FLAG = ON_OFF_FLAG;
}
public String getIS_DEFAULTING() {
return IS_DEFAULTING;
}
public void setIS_DEFAULTING(String IS_DEFAULTING) {
this.IS_DEFAULTING = IS_DEFAULTING;
}
public String getTOGETHER_MORTGAGE_FLAG() {
return TOGETHER_MORTGAGE_FLAG;
}
public void setTOGETHER_MORTGAGE_FLAG(String TOGETHER_MORTGAGE_FLAG) {
this.TOGETHER_MORTGAGE_FLAG = TOGETHER_MORTGAGE_FLAG;
}
public Double getTOGETHER_MORT_VALUE() {
return TOGETHER_MORT_VALUE;
}
public void setTOGETHER_MORT_VALUE(Double TOGETHER_MORT_VALUE) {
this.TOGETHER_MORT_VALUE = TOGETHER_MORT_VALUE;
}
public Double getTOGETHER_MORT_HOUSE_VALUE() {
return TOGETHER_MORT_HOUSE_VALUE;
}
public void setTOGETHER_MORT_HOUSE_VALUE(Double TOGETHER_MORT_HOUSE_VALUE) {
this.TOGETHER_MORT_HOUSE_VALUE = TOGETHER_MORT_HOUSE_VALUE;
}
public Double getSAME_PLED_TOTAL_BALANCE() {
return SAME_PLED_TOTAL_BALANCE;
}
public void setSAME_PLED_TOTAL_BALANCE(Double SAME_PLED_TOTAL_BALANCE) {
this.SAME_PLED_TOTAL_BALANCE = SAME_PLED_TOTAL_BALANCE;
}
public Double getMORT_ESTATE_VALUE() {
return MORT_ESTATE_VALUE;
}
public void setMORT_ESTATE_VALUE(Double MORT_ESTATE_VALUE) {
this.MORT_ESTATE_VALUE = MORT_ESTATE_VALUE;
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
int index = 0;
String columns = "ID#0,DATA_DT#1,LOAN_REF_NO#2,ON_OFF_FLAG#3,CCY_CD#4,PRODUCT_CD#5,PRODUCT_NAME#6,CUST_NO#7,CUST_NAME#8,START_DATE#9,DUE_DATE#10,FIVE_CLASS_CD#11,SUBJECT_CD#12,SUBJECT_NAME#13,ASSET_BAL#14,PROVISION#15,SPE_LENDING_FLAG#\t16,SPE_LENDING_TYPE#\t17,OPERATION_PF_FLAG#\t18,REAL_ESTATE_DEP_TYPE#19,AFFORDABLE_HOUSING_PROJECT_FLAG#20,RESIDENTIAL_HOUSING_PROJECT#21,PROJECT_CAPITAL_RATIO#22,PRINCIPAL_PAYMENT_RATIO#23,IS_COMPLET#24,IS_CASHABLE#25,IS_FIRST_SEQ#26,IS_PRU_APPR_STAN#27,IS_PRU_EST_VAL#28,DOC_REQUIR#29,MORTGAGE_LOAN_OVER_THREE#30,DEPEND_ON_CASHFLOW#31,SAME_PLED_TOTAL_BALANCE#32,TOGETHER_MORTGAGE_FLAG#33,TOGETHER_MORT_VALUE#34,TOGETHER_MORT_HOUSE_VALUE#35,MORT_ESTATE_VALUE#36,IS_OVERDUE#37,IS_ROLLOVER#38,IS_DEFAULTING#39,PRUD_REAL_ESTATE_DEVP_FLAG#40,PRUD_REAL_ESTATE_MORT_FLAG#41,CURR_MISMATCH_FLAG#42,REMAIN_TERM#43,LGD#44,BELONG_ORG#45";
String[] arr = columns.split(",");
for(String s : arr){
if(s.substring(0, s.indexOf("#")).equals(column)){
index = Integer.valueOf(s.substring(s.indexOf("#")+1));
break;
}
}
return index;
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("LOAN_REF_NO",2);
colMap.put("ON_OFF_FLAG",3);
colMap.put("CCY_CD",4);
colMap.put("PRODUCT_CD",5);
colMap.put("PRODUCT_NAME",6);
colMap.put("CUST_NO",7);
colMap.put("CUST_NAME",8);
colMap.put("START_DATE",9);
colMap.put("DUE_DATE",10);
colMap.put("FIVE_CLASS_CD",11);
colMap.put("SUBJECT_CD",12);
colMap.put("SUBJECT_NAME",13);
colMap.put("ASSET_BAL",14);
colMap.put("PROVISION",15);
colMap.put("SPE_LENDING_FLAG",16);
colMap.put("SPE_LENDING_TYPE",17);
colMap.put("OPERATION_PF_FLAG",18);
colMap.put("REAL_ESTATE_DEP_TYPE",19);
colMap.put("AFFORDABLE_HOUSING_PROJECT_FLAG",20);
colMap.put("RESIDENTIAL_HOUSING_PROJECT",21);
colMap.put("PROJECT_CAPITAL_RATIO",22);
colMap.put("PRINCIPAL_PAYMENT_RATIO",23);
colMap.put("IS_COMPLET",24);
colMap.put("IS_CASHABLE",25);
colMap.put("IS_FIRST_SEQ",26);
colMap.put("IS_PRU_APPR_STAN",27);
colMap.put("IS_PRU_EST_VAL",28);
colMap.put("DOC_REQUIR",29);
colMap.put("MORTGAGE_LOAN_OVER_THREE",30);
colMap.put("DEPEND_ON_CASHFLOW",31);
colMap.put("SAME_PLED_TOTAL_BALANCE",32);
colMap.put("TOGETHER_MORTGAGE_FLAG",33);
colMap.put("TOGETHER_MORT_VALUE",34);
colMap.put("TOGETHER_MORT_HOUSE_VALUE",35);
colMap.put("MORT_ESTATE_VALUE",36);
colMap.put("IS_OVERDUE",37);
colMap.put("IS_ROLLOVER",38);
colMap.put("IS_DEFAULTING",39);
colMap.put("PRUD_REAL_ESTATE_DEVP_FLAG",40);
colMap.put("PRUD_REAL_ESTATE_MORT_FLAG",41);
colMap.put("CURR_MISMATCH_FLAG",42);
colMap.put("REMAIN_TERM",43);
colMap.put("LGD",44);
colMap.put("BELONG_ORG",45);
colMap.put("FLUCTUATION_FLAG",46);
}
}

308
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceDiscount.java

@ -0,0 +1,308 @@
package io.sc.engine.rwa.calculator.data;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import java.util.HashMap;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.toEmptyDouble;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.toEmptyInteger;
/**
* 源数据票据贴现与转贴现信息
* @author chengjie
* @time 2023-07-20
*/
public class SourceDiscount extends BaseEntity {
public SourceDiscount(){setColMap();}
public SourceDiscount(String[] row){
setColumnValue(row);
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("LOAN_REF_NO",2);
colMap.put("ON_OFF_FLAG",3);
colMap.put("CCY_CD",4);
colMap.put("PRODUCT_CD",5);
colMap.put("PRODUCT_NAME",6);
colMap.put("CUST_NO",7);
colMap.put("CUST_NAME",8);
colMap.put("BILL_TYPE",9);
colMap.put("DISCOUNT_CATEGORY",10);
colMap.put("ACCEPT_DISCOUNT_SELF_FLAG",11);
colMap.put("DISCOUNT_DATE",12);
colMap.put("DUE_DATE",13);
colMap.put("SUBJECT_CD",14);
colMap.put("SUBJECT_NAME",15);
colMap.put("FIVE_CLASS_CD",16);
colMap.put("ASSET_BAL",17);
colMap.put("PROVISION",18);
colMap.put("OVERDUE_DTS",19);
colMap.put("DEFAULT_FLAG",20);
colMap.put("LGD",21);
colMap.put("BELONG_ORG",22);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID(row[0]); //ID
setDATA_DT(row[1]); //数据日期
setLOAN_REF_NO(row[2]); //债项编号
setON_OFF_FLAG(row[3]); //表内外标识
setCCY_CD(row[4]); //币种代码
setPRODUCT_CD(row[5]); //产品代码
setPRODUCT_NAME(row[6]); //产品名称
setCUST_NO(row[7]); //贴现行编号
setCUST_NAME(row[8]); //贴现行名称
setBILL_TYPE(row[9]); //票据类型标识
setDISCOUNT_CATEGORY(row[10]); //贴现类别标识
setACCEPT_DISCOUNT_SELF_FLAG(row[11]); //自承自贴标识
setDISCOUNT_DATE(row[12]); //贴现日期
setDUE_DATE(row[13]); //到期日期
setSUBJECT_CD(row[14]); //科目代码
setSUBJECT_NAME(row[15]); //科目名称
setFIVE_CLASS_CD(row[16]); //五级分类代码
setASSET_BAL(toEmptyDouble(Double.valueOf(row[17]))); //资产余额
setPROVISION(toEmptyDouble(Double.valueOf(row[18]))); //计提准备金
setOVERDUE_DTS(toEmptyInteger(Integer.valueOf(row[19]))); //逾期天数
setDEFAULT_FLAG(row[20]); //违约标志
setLGD(toEmptyDouble(Double.valueOf(row[21]))); //违约损失率
setBELONG_ORG(row[22]); //业务所属机构
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID; //ID
private String DATA_DT; //数据日期
private String LOAN_REF_NO; //债项编号
private String ON_OFF_FLAG; //表内外标识
private String CCY_CD; //币种代码
private String PRODUCT_CD; //产品代码
private String PRODUCT_NAME; //产品名称
private String CUST_NO; //贴现行编号
private String CUST_NAME; //贴现行名称
private String BILL_TYPE; //票据类型
private String DISCOUNT_CATEGORY; //贴现类别
private String ACCEPT_DISCOUNT_SELF_FLAG; //自承自贴标识
private String DISCOUNT_DATE; //贴现日期
private String DUE_DATE; //到期日期
private String SUBJECT_CD; //科目代码
private String SUBJECT_NAME; //科目名称
private String FIVE_CLASS_CD; //五级分类代码
private Double ASSET_BAL; //资产余额
private Double PROVISION; //计提准备金
private Integer OVERDUE_DTS; //逾期天数
private String DEFAULT_FLAG; //违约标志
private Double LGD; //违约损失率
private String BELONG_ORG; //业务所属机构
public Double getLGD() {
return LGD;
}
public void setLGD(Double LGD) {
this.LGD = LGD;
}
public String getBELONG_ORG() {
return BELONG_ORG;
}
public void setBELONG_ORG(String BELONG_ORG) {
this.BELONG_ORG = BELONG_ORG;
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getTable() {
return "RWA_S_DISCOUNT";
}
@Override
public Integer getColumnCount() {
return 29;
}
@Override
public String[] getColumnDataType() {
return new String[]{
"String","String","String","String","String","String","String","String","String","String","String","String","String","String","String","String","String","Double","Double","Integer","String","Double","String"
};
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getLOAN_REF_NO() {
return LOAN_REF_NO;
}
public void setLOAN_REF_NO(String LOAN_REF_NO) {
this.LOAN_REF_NO = LOAN_REF_NO;
}
public String getON_OFF_FLAG() {
return ON_OFF_FLAG;
}
public void setON_OFF_FLAG(String ON_OFF_FLAG) {
this.ON_OFF_FLAG = ON_OFF_FLAG;
}
public String getBILL_TYPE() {
return BILL_TYPE;
}
public void setBILL_TYPE(String BILL_TYPE) {
this.BILL_TYPE = BILL_TYPE;
}
public String getDISCOUNT_CATEGORY() {
return DISCOUNT_CATEGORY;
}
public void setDISCOUNT_CATEGORY(String DISCOUNT_CATEGORY) {
this.DISCOUNT_CATEGORY = DISCOUNT_CATEGORY;
}
public String getCCY_CD() {
return CCY_CD;
}
public void setCCY_CD(String CCY_CD) {
this.CCY_CD = CCY_CD;
}
public String getPRODUCT_CD() {
return PRODUCT_CD;
}
public void setPRODUCT_CD(String PRODUCT_CD) {
this.PRODUCT_CD = PRODUCT_CD;
}
public String getPRODUCT_NAME() {
return PRODUCT_NAME;
}
public void setPRODUCT_NAME(String PRODUCT_NAME) {
this.PRODUCT_NAME = PRODUCT_NAME;
}
public String getCUST_NO() {
return CUST_NO;
}
public void setCUST_NO(String CUST_NO) {
this.CUST_NO = CUST_NO;
}
public String getCUST_NAME() {
return CUST_NAME;
}
public void setCUST_NAME(String CUST_NAME) {
this.CUST_NAME = CUST_NAME;
}
public String getACCEPT_DISCOUNT_SELF_FLAG() {
return ACCEPT_DISCOUNT_SELF_FLAG;
}
public void setACCEPT_DISCOUNT_SELF_FLAG(String ACCEPT_DISCOUNT_SELF_FLAG) {
this.ACCEPT_DISCOUNT_SELF_FLAG = ACCEPT_DISCOUNT_SELF_FLAG;
}
public String getDISCOUNT_DATE() {
return DISCOUNT_DATE;
}
public void setDISCOUNT_DATE(String DISCOUNT_DATE) {
this.DISCOUNT_DATE = DISCOUNT_DATE;
}
public String getDUE_DATE() {
return DUE_DATE;
}
public void setDUE_DATE(String DUE_DATE) {
this.DUE_DATE = DUE_DATE;
}
public String getSUBJECT_CD() {
return SUBJECT_CD;
}
public void setSUBJECT_CD(String SUBJECT_CD) {
this.SUBJECT_CD = SUBJECT_CD;
}
public String getSUBJECT_NAME() {
return SUBJECT_NAME;
}
public void setSUBJECT_NAME(String SUBJECT_NAME) {
this.SUBJECT_NAME = SUBJECT_NAME;
}
public String getFIVE_CLASS_CD() {
return FIVE_CLASS_CD;
}
public void setFIVE_CLASS_CD(String FIVE_CLASS_CD) {
this.FIVE_CLASS_CD = FIVE_CLASS_CD;
}
public Double getASSET_BAL() {
return ASSET_BAL;
}
public void setASSET_BAL(Double ASSET_BAL) {
this.ASSET_BAL = ASSET_BAL;
}
public Double getPROVISION() {
return PROVISION;
}
public void setPROVISION(Double PROVISION) {
this.PROVISION = PROVISION;
}
public Integer getOVERDUE_DTS() {
return OVERDUE_DTS;
}
public void setOVERDUE_DTS(Integer OVERDUE_DTS) {
this.OVERDUE_DTS = OVERDUE_DTS;
}
public String getDEFAULT_FLAG() {
return DEFAULT_FLAG;
}
public void setDEFAULT_FLAG(String DEFAULT_FLAG) {
this.DEFAULT_FLAG = DEFAULT_FLAG;
}
}

101
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceExchRate.java

@ -0,0 +1,101 @@
package io.sc.engine.rwa.calculator.data;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import java.util.HashMap;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.toEmptyDouble;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.toEmptyInteger;
/**
* 源数据汇率信息
* @author chengjie
* @time 2023-07-20
*/
public class SourceExchRate extends BaseEntity {
public SourceExchRate(){setColMap();}
public SourceExchRate(String[] row){
setColumnValue(row);
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("ORIG_CCY_CD",2);
colMap.put("CNVT_EXCH_RATE",3);
}
@Override
public String getTable() {
return "RWA_S_EXCH_RATE";
}
@Override
public Integer getColumnCount() {
return 10;
}
@Override
public String[] getColumnDataType() {
return new String[]{
"String","String","String","Double"
};
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID (row[0]);
setDATA_DT (row[1]);
setORIG_CCY_CD (row[2]);
setCNVT_EXCH_RATE(row[3]);
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID ; //ID
private String DATA_DT ; //数据日期
private String ORIG_CCY_CD ; //原始币种代码
private String CNVT_EXCH_RATE; //折算汇率
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getORIG_CCY_CD() {
return ORIG_CCY_CD;
}
public void setORIG_CCY_CD(String ORIG_CCY_CD) {
this.ORIG_CCY_CD = ORIG_CCY_CD;
}
public String getCNVT_EXCH_RATE() {
return CNVT_EXCH_RATE;
}
public void setCNVT_EXCH_RATE(String CNVT_EXCH_RATE) {
this.CNVT_EXCH_RATE = CNVT_EXCH_RATE;
}
}

94
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceGuarDebtRela.java

@ -0,0 +1,94 @@
package io.sc.engine.rwa.calculator.data;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import java.util.HashMap;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.toEmptyDouble;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.toEmptyInteger;
/**
* 源数据缓释工具与债项关联关系表
* @author chengjie
* @time 2023-07-20
*/
public class SourceGuarDebtRela extends BaseEntity {
public SourceGuarDebtRela(){setColMap();}
public SourceGuarDebtRela(String[] row){
setColumnValue(row);
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("GUAR_ID",2);
colMap.put("DEBT_ID",3);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID(row[0]);
setDATA_DT(row[1]); //数据日期
setGUAR_ID(row[2]); //缓释品ID
setDEBT_ID(row[3]); //债项ID
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID; //主键
private String DATA_DT; //数据日期
private String GUAR_ID; //缓释品ID
private String DEBT_ID; //债项ID
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getGUAR_ID() {
return GUAR_ID;
}
public void setGUAR_ID(String GUAR_ID) {
this.GUAR_ID = GUAR_ID;
}
public String getDEBT_ID() {
return DEBT_ID;
}
public void setDEBT_ID(String DEBT_ID) {
this.DEBT_ID = DEBT_ID;
}
@Override
public String getTable() {
return "RWA_S_GUAR_DEBT_RELA";
}
@Override
public Integer getColumnCount() {
return 10;
}
}

229
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceGuarantee.java

@ -0,0 +1,229 @@
package io.sc.engine.rwa.calculator.data;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.*;
import java.util.HashMap;
/**
* 源数据保证信息
* @author chengjie
* @time 2023-07-20
*/
public class SourceGuarantee extends BaseEntity {
public SourceGuarantee(){ setColMap(); }
public SourceGuarantee(String[] row){
setColumnValue(row);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID(row[0]); //ID
setDATA_DT(row[1]); //保证编号
setASSUID(row[2]); //保证编号
setASSUCUSTID(row[3]); //保证人编号
setASSUCUSTNAME(row[4]); //保证人名称
setGUAR_START_DATE(row[5]); //担保开始日期
setGUAR_DUE_DATE(row[6]); //担保到期日期
setGUAR_AMOUNT(toEmptyDouble(row[7])); //担保金额
setCURRSIGN(row[8]); //币种代码
setPOSITIVE_CORRELATION_FLAG(row[9]); //债务人与缓释工具实质正相关性标识
setPRUDENT_VALUATION_FLAG(row[10]); //审慎估值标识
setRE_EVALUAT_FREQUENCY(row[11]); //重估频率
setRECORD_CURR(row[12]); //币种错配
setIS_GUAR_TERM_MORE_DEBT_TERM(row[13]); //担保到期日是否大于等于债项到期日
setREG_COUNTRY_CHINA_FLAG(row[14]); //注册国是否中国
setLOAN_REF_NO(row[15]); //债项编号
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID; //ID
private String DATA_DT; //数据日期
private String ASSUID; //保证编号
private String ASSUCUSTID; //保证人编号
private String ASSUCUSTNAME; //保证人名称
private String GUAR_START_DATE; //担保开始日期
private String GUAR_DUE_DATE; //担保到期日期
private Double GUAR_AMOUNT; //担保金额
private String CURRSIGN; //币种代码
private String POSITIVE_CORRELATION_FLAG; //债务人与缓释工具实质正相关性标识
private String PRUDENT_VALUATION_FLAG; //审慎估值标识
private String RE_EVALUAT_FREQUENCY; //重估频率
private String RECORD_CURR; //币种错配
private String IS_GUAR_TERM_MORE_DEBT_TERM; //担保到期日是否大于等于债项到期日
private String REG_COUNTRY_CHINA_FLAG; //注册国是否中国
private String LOAN_REF_NO; //债项编号
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getIS_GUAR_TERM_MORE_DEBT_TERM() {
return IS_GUAR_TERM_MORE_DEBT_TERM;
}
public void setIS_GUAR_TERM_MORE_DEBT_TERM(String IS_GUAR_TERM_MORE_DEBT_TERM) {
this.IS_GUAR_TERM_MORE_DEBT_TERM = IS_GUAR_TERM_MORE_DEBT_TERM;
}
public String getREG_COUNTRY_CHINA_FLAG() {
return REG_COUNTRY_CHINA_FLAG;
}
public void setREG_COUNTRY_CHINA_FLAG(String REG_COUNTRY_CHINA_FLAG) {
this.REG_COUNTRY_CHINA_FLAG = REG_COUNTRY_CHINA_FLAG;
}
public String getRECORD_CURR() {
return RECORD_CURR;
}
public void setRECORD_CURR(String RECORD_CURR) {
this.RECORD_CURR = RECORD_CURR;
}
@Override
public String getTable() {
return "RWA_S_GUARANTEE";
}
@Override
public Integer getColumnCount() {
return 22;
}
@Override
public String[] getColumnDataType() {
return new String[]{
"String","String","String","String","String","String","String","Double","String","String","String","String","String","String","String","String"
};
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("ASSUID",2);
colMap.put("ASSUCUSTID",3);
colMap.put("ASSUCUSTNAME",4);
colMap.put("GUAR_START_DATE",5);
colMap.put("GUAR_DUE_DATE",6);
colMap.put("GUAR_AMOUNT",7);
colMap.put("CURRSIGN",8);
colMap.put("POSITIVE_CORRELATION_FLAG",9);
colMap.put("PRUDENT_VALUATION_FLAG",10);
colMap.put("RE_EVALUAT_FREQUENCY",11);
colMap.put("RECORD_CURR",12);
colMap.put("IS_GUAR_TERM_MORE_DEBT_TERM",13);
colMap.put("REG_COUNTRY_CHINA_FLAG",14);
colMap.put("LOAN_REF_NO",15);
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getASSUID() {
return ASSUID;
}
public void setASSUID(String ASSUID) {
this.ASSUID = ASSUID;
}
public String getASSUCUSTID() {
return ASSUCUSTID;
}
public void setASSUCUSTID(String ASSUCUSTID) {
this.ASSUCUSTID = ASSUCUSTID;
}
public String getASSUCUSTNAME() {
return ASSUCUSTNAME;
}
public void setASSUCUSTNAME(String ASSUCUSTNAME) {
this.ASSUCUSTNAME = ASSUCUSTNAME;
}
public String getGUAR_START_DATE() {
return GUAR_START_DATE;
}
public void setGUAR_START_DATE(String GUAR_START_DATE) {
this.GUAR_START_DATE = GUAR_START_DATE;
}
public String getGUAR_DUE_DATE() {
return GUAR_DUE_DATE;
}
public void setGUAR_DUE_DATE(String GUAR_DUE_DATE) {
this.GUAR_DUE_DATE = GUAR_DUE_DATE;
}
public Double getGUAR_AMOUNT() {
return GUAR_AMOUNT;
}
public void setGUAR_AMOUNT(Double GUAR_AMOUNT) {
this.GUAR_AMOUNT = GUAR_AMOUNT;
}
public String getCURRSIGN() {
return CURRSIGN;
}
public void setCURRSIGN(String CURRSIGN) {
this.CURRSIGN = CURRSIGN;
}
public String getLOAN_REF_NO() {
return LOAN_REF_NO;
}
public void setLOAN_REF_NO(String LOAN_REF_NO) {
this.LOAN_REF_NO = LOAN_REF_NO;
}
public String getPOSITIVE_CORRELATION_FLAG() {
return POSITIVE_CORRELATION_FLAG;
}
public void setPOSITIVE_CORRELATION_FLAG(String POSITIVE_CORRELATION_FLAG) {
this.POSITIVE_CORRELATION_FLAG = POSITIVE_CORRELATION_FLAG;
}
public String getPRUDENT_VALUATION_FLAG() {
return PRUDENT_VALUATION_FLAG;
}
public void setPRUDENT_VALUATION_FLAG(String PRUDENT_VALUATION_FLAG) {
this.PRUDENT_VALUATION_FLAG = PRUDENT_VALUATION_FLAG;
}
public String getRE_EVALUAT_FREQUENCY() {
return RE_EVALUAT_FREQUENCY;
}
public void setRE_EVALUAT_FREQUENCY(String RE_EVALUAT_FREQUENCY) {
this.RE_EVALUAT_FREQUENCY = RE_EVALUAT_FREQUENCY;
}
}

272
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceIBOut.java

@ -0,0 +1,272 @@
package io.sc.engine.rwa.calculator.data;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.*;
import java.util.HashMap;
/**
* 源数据存放同业及拆借信息
* @author chengjie
* @time 2023-07-20
*/
public class SourceIBOut extends BaseEntity {
public SourceIBOut(){setColMap();}
public SourceIBOut(String[] row){
setColumnValue(row);
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("LOAN_REF_NO",2);
colMap.put("ON_OFF_FLAG",3);
colMap.put("CCY_CD",4);
colMap.put("PRODUCT_CD",5);
colMap.put("PRODUCT_NAME",6);
colMap.put("CUST_NO",7);
colMap.put("CUST_NAME",8);
colMap.put("START_DATE",9);
colMap.put("DUE_DATE",10);
colMap.put("SUBJECT_CD",11);
colMap.put("SUBJECT_NAME",12);
colMap.put("FIVE_CLASS_CD",13);
colMap.put("ASSET_BAL",14);
colMap.put("PROVISION",15);
colMap.put("OVERDUE_DTS",16);
colMap.put("DEFAULT_FLAG",17);
colMap.put("LGD",18);
colMap.put("BELONG_ORG",19);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID(row[0]); //ID
setDATA_DT(row[1]); //数据日期
setLOAN_REF_NO(row[2]); //债项编号
setON_OFF_FLAG(row[3]); //表内外标识
setCCY_CD(row[4]); //币种代码
setPRODUCT_CD(row[5]); //产品代码
setPRODUCT_NAME(row[6]); //产品名称
setCUST_NO(row[7]); //交易对手编号
setCUST_NAME(row[8]); //交易对手名称
setSTART_DATE(row[9]); //开证日期
setDUE_DATE(row[10]); //到期日期
setSUBJECT_CD(row[11]); //科目代码
setSUBJECT_NAME(row[12]); //科目名称
setFIVE_CLASS_CD(row[13]); //五级分类代码
setASSET_BAL(toEmptyDouble(Double.valueOf(row[14]))); //本金余额
setPROVISION(toEmptyDouble(Double.valueOf(row[15]))); //计提准备金
setOVERDUE_DTS(toEmptyInteger(Integer.valueOf(row[16]))); //逾期天数
setDEFAULT_FLAG(row[17]); //违约标志
setLGD(toEmptyDouble(Double.valueOf(row[18])));
setBELONG_ORG(row[19]);
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID; //ID
private String DATA_DT; //数据日期
private String LOAN_REF_NO; //债项编号
private String ON_OFF_FLAG; //表内外标识
private String CCY_CD; //币种代码
private String PRODUCT_CD; //产品代码
private String PRODUCT_NAME; //产品名称
private String CUST_NO; //交易对手编号
private String CUST_NAME; //交易对手名称
private String START_DATE; //开始日期
private String DUE_DATE; //到期日期
private String SUBJECT_CD; //科目代码
private String SUBJECT_NAME; //科目名称
private String FIVE_CLASS_CD; //五级分类代码
private Double ASSET_BAL; //本金余额
private Double PROVISION; //计提准备金
private Integer OVERDUE_DTS; //逾期天数
private String DEFAULT_FLAG; //违约标志
private Double LGD; //违约损失率
private String BELONG_ORG; //业务所属机构
public Double getLGD() {
return LGD;
}
public void setLGD(Double LGD) {
this.LGD = LGD;
}
public String getBELONG_ORG() {
return BELONG_ORG;
}
public void setBELONG_ORG(String BELONG_ORG) {
this.BELONG_ORG = BELONG_ORG;
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
@Override
public String getTable() {
return "RWA_S_IBOUT";
}
@Override
public Integer getColumnCount() {
return 26;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getLOAN_REF_NO() {
return LOAN_REF_NO;
}
public void setLOAN_REF_NO(String LOAN_REF_NO) {
this.LOAN_REF_NO = LOAN_REF_NO;
}
public String getCCY_CD() {
return CCY_CD;
}
public void setCCY_CD(String CCY_CD) {
this.CCY_CD = CCY_CD;
}
public String getPRODUCT_CD() {
return PRODUCT_CD;
}
public void setPRODUCT_CD(String PRODUCT_CD) {
this.PRODUCT_CD = PRODUCT_CD;
}
public String getPRODUCT_NAME() {
return PRODUCT_NAME;
}
public void setPRODUCT_NAME(String PRODUCT_NAME) {
this.PRODUCT_NAME = PRODUCT_NAME;
}
public String getCUST_NO() {
return CUST_NO;
}
public void setCUST_NO(String CUST_NO) {
this.CUST_NO = CUST_NO;
}
public String getCUST_NAME() {
return CUST_NAME;
}
public void setCUST_NAME(String CUST_NAME) {
this.CUST_NAME = CUST_NAME;
}
public String getON_OFF_FLAG() {
return ON_OFF_FLAG;
}
public void setON_OFF_FLAG(String ON_OFF_FLAG) {
this.ON_OFF_FLAG = ON_OFF_FLAG;
}
public String getSTART_DATE() {
return START_DATE;
}
public void setSTART_DATE(String START_DATE) {
this.START_DATE = START_DATE;
}
public String getDUE_DATE() {
return DUE_DATE;
}
public void setDUE_DATE(String DUE_DATE) {
this.DUE_DATE = DUE_DATE;
}
public String getSUBJECT_CD() {
return SUBJECT_CD;
}
public void setSUBJECT_CD(String SUBJECT_CD) {
this.SUBJECT_CD = SUBJECT_CD;
}
public String getSUBJECT_NAME() {
return SUBJECT_NAME;
}
public void setSUBJECT_NAME(String SUBJECT_NAME) {
this.SUBJECT_NAME = SUBJECT_NAME;
}
public String getFIVE_CLASS_CD() {
return FIVE_CLASS_CD;
}
public void setFIVE_CLASS_CD(String FIVE_CLASS_CD) {
this.FIVE_CLASS_CD = FIVE_CLASS_CD;
}
public Double getPROVISION() {
return PROVISION;
}
public void setPROVISION(Double PROVISION) {
this.PROVISION = PROVISION;
}
public Integer getOVERDUE_DTS() {
return OVERDUE_DTS;
}
public void setOVERDUE_DTS(Integer OVERDUE_DTS) {
this.OVERDUE_DTS = OVERDUE_DTS;
}
public String getDEFAULT_FLAG() {
return DEFAULT_FLAG;
}
public void setDEFAULT_FLAG(String DEFAULT_FLAG) {
this.DEFAULT_FLAG = DEFAULT_FLAG;
}
public Double getASSET_BAL() {
return ASSET_BAL;
}
public void setASSET_BAL(Double ASSET_BAL) {
this.ASSET_BAL = ASSET_BAL;
}
@Override
public String[] getColumnDataType() {
return new String[]{
"String","String","String","String","String","String","String","String","String","String","String","String","String","String","Double","Double","Integer","String","Double","String"
};
}
}

164
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceLgd.java

@ -0,0 +1,164 @@
package io.sc.engine.rwa.calculator.data;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import java.util.HashMap;
/**
* 源数据LGD信息
* @author chengjie
* @time 2024-05-07
*/
public class SourceLgd extends BaseEntity {
public SourceLgd(){
setColMap();
}
public SourceLgd(String[] row){
setColumnValue(row);
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("DEBT_ID",2);
colMap.put("ON_OFF_FLG",3);
colMap.put("LGD",4);
colMap.put("EAD",5);
colMap.put("CCF",6);
colMap.put("BEEF",7);
colMap.put("RISK_EXPOSURE_CD",8);
colMap.put("RISK_EXPOSURE_NM",9);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID (row[0]);
setDATA_DT (row[1]);
setDEBT_ID (row[2]);
setON_OFF_FLG (row[3]);
setLGD (row[4]);
setEAD (row[5]);
setCCF (row[6]);
setBEEF (row[7]);
setRISK_EXPOSURE_CD(row[8]);
setRISK_EXPOSURE_NM(row[9]);
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID ; //主键
private String DATA_DT ; //数据日期
private String DEBT_ID ; //债项编号
private String ON_OFF_FLG ; //表内表外标识
private String LGD ; //违约损失率
private String EAD ; //违约风险暴露
private String CCF ; //信用转换系数
private String BEEF ; //预期损失率的最佳估计值
private String RISK_EXPOSURE_CD ; //内评法风险暴露分类代码
private String RISK_EXPOSURE_NM ; //内评法风险暴露分类名称
@Override
public String getTable() {
return "RWA_S_LGD";
}
@Override
public Integer getColumnCount() {
return 16;
}
@Override
public String[] getColumnDataType() {
return new String[]{
"String","String","String","String","Double","Double","Double","Double","String","String"
};
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getDEBT_ID() {
return DEBT_ID;
}
public void setDEBT_ID(String DEBT_ID) {
this.DEBT_ID = DEBT_ID;
}
public String getON_OFF_FLG() {
return ON_OFF_FLG;
}
public void setON_OFF_FLG(String ON_OFF_FLG) {
this.ON_OFF_FLG = ON_OFF_FLG;
}
public String getLGD() {
return LGD;
}
public void setLGD(String LGD) {
this.LGD = LGD;
}
public String getEAD() {
return EAD;
}
public void setEAD(String EAD) {
this.EAD = EAD;
}
public String getCCF() {
return CCF;
}
public void setCCF(String CCF) {
this.CCF = CCF;
}
public String getRISK_EXPOSURE_CD() {
return RISK_EXPOSURE_CD;
}
public void setRISK_EXPOSURE_CD(String RISK_EXPOSURE_CD) {
this.RISK_EXPOSURE_CD = RISK_EXPOSURE_CD;
}
public String getRISK_EXPOSURE_NM() {
return RISK_EXPOSURE_NM;
}
public void setRISK_EXPOSURE_NM(String RISK_EXPOSURE_NM) {
this.RISK_EXPOSURE_NM = RISK_EXPOSURE_NM;
}
public String getBEEF() {
return BEEF;
}
public void setBEEF(String BEEF) {
this.BEEF = BEEF;
}
}

305
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceOthAsset.java

@ -0,0 +1,305 @@
package io.sc.engine.rwa.calculator.data;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.*;
import java.util.HashMap;
/**
* 源数据其他资产信息
* @author chengjie
* @time 2023-07-20
*/
public class SourceOthAsset extends BaseEntity {
public SourceOthAsset(){setColMap();}
public SourceOthAsset(String[] row){
setColumnValue(row);
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("LOAN_REF_NO",2);
colMap.put("CCY_CD",3);
colMap.put("PRODUCT_CD",4);
colMap.put("PRODUCT_NAME",5);
colMap.put("CUST_NO",6);
colMap.put("CUST_NAME",7);
colMap.put("OTHER_ASSET_CATEGORY_ID",8);
colMap.put("ON_OFF_ID",9);
colMap.put("START_DATE",10);
colMap.put("DUE_DATE",11);
colMap.put("SUBJECT_CD",12);
colMap.put("SUBJECT_NAME",13);
colMap.put("FIVE_CLASS_CD",14);
colMap.put("FIXED_ASSET_DEPR",15);
colMap.put("ASSET_BALANCE",16);
colMap.put("PROVISION",17);
colMap.put("REAL_ESTATE_FLAG",18);
colMap.put("SELF_FLAG",19);
colMap.put("IS_PLED_REAL_ESTATE_FLAG",20);
colMap.put("LGD",21);
colMap.put("BELONG_ORG",22);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID (row[0]);
setDATA_DT (row[1]);
setLOAN_REF_NO (row[2]);
setCCY_CD (row[3]);
setPRODUCT_CD (row[4]);
setPRODUCT_NAME (row[5]);
setCUST_NO (row[6]);
setCUST_NAME (row[7]);
setOTHER_ASSET_CATEGORY_ID (row[8]);
setON_OFF_ID (row[9]);
setSTART_DATE (row[10]);
setDUE_DATE (row[11]);
setSUBJECT_CD (row[12]);
setSUBJECT_NAME (row[13]);
setFIVE_CLASS_CD (row[14]);
setFIXED_ASSET_DEPR (toEmptyDouble(row[15]));
setASSET_BALANCE (toEmptyDouble(row[16]));
setPROVISION (toEmptyDouble(row[17]));
setREAL_ESTATE_FLAG (row[18]);
setSELF_FLAG (row[19]);
setIS_PLED_REAL_ESTATE_FLAG(row[20]);
setLGD (toEmptyDouble(row[21]));
setBELONG_ORG (row[22]);
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID; //ID
private String DATA_DT; //数据日期
private String LOAN_REF_NO; //债项编号
private String CCY_CD; //币种代码
private String PRODUCT_CD; //产品代码
private String PRODUCT_NAME; //产品名称
private String CUST_NO; //客户编号
private String CUST_NAME; //客户名称
private String OTHER_ASSET_CATEGORY_ID; //其它资产类别标识
private String ON_OFF_ID; //表内外标识
private String START_DATE; //开始日期
private String DUE_DATE; //到期日期
private String SUBJECT_CD; //科目代码
private String SUBJECT_NAME; //科目名称
private String FIVE_CLASS_CD; //五级分类代码
private Double FIXED_ASSET_DEPR; //固定资产折旧
private Double ASSET_BALANCE; //资产余额
private Double PROVISION; //减值准备
private String REAL_ESTATE_FLAG; //是否为不动产
private String SELF_FLAG; //不动产是否自用
private String IS_PLED_REAL_ESTATE_FLAG; //是否为因行使抵押权等方式而持有并在法律规定处分期限内的非自用不动产
private Double LGD; //违约损失率
private String BELONG_ORG; //业务所属机构
public String getCUST_NO() {
return CUST_NO;
}
public void setCUST_NO(String CUST_NO) {
this.CUST_NO = CUST_NO;
}
public String getCUST_NAME() {
return CUST_NAME;
}
public void setCUST_NAME(String CUST_NAME) {
this.CUST_NAME = CUST_NAME;
}
public Double getLGD() {
return LGD;
}
public void setLGD(Double LGD) {
this.LGD = LGD;
}
public String getBELONG_ORG() {
return BELONG_ORG;
}
public void setBELONG_ORG(String BELONG_ORG) {
this.BELONG_ORG = BELONG_ORG;
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getDATA_DT() {
return DATA_DT;
}
@Override
public String getTable() {
return "RWA_S_OTH_ASSET";
}
@Override
public Integer getColumnCount() {
return 29;
}
@Override
public String[] getColumnDataType() {
return new String[]{
"String","String","String","String","String","String","String","String","String","String","String","String","String","String","String","Double","Double","Double","String","String","String","Double","String"
};
}
public String getLOAN_REF_NO() {
return LOAN_REF_NO;
}
public void setLOAN_REF_NO(String LOAN_REF_NO) {
this.LOAN_REF_NO = LOAN_REF_NO;
}
public String getCCY_CD() {
return CCY_CD;
}
public void setCCY_CD(String CCY_CD) {
this.CCY_CD = CCY_CD;
}
public String getPRODUCT_CD() {
return PRODUCT_CD;
}
public void setPRODUCT_CD(String PRODUCT_CD) {
this.PRODUCT_CD = PRODUCT_CD;
}
public String getPRODUCT_NAME() {
return PRODUCT_NAME;
}
public void setPRODUCT_NAME(String PRODUCT_NAME) {
this.PRODUCT_NAME = PRODUCT_NAME;
}
public String getOTHER_ASSET_CATEGORY_ID() {
return OTHER_ASSET_CATEGORY_ID;
}
public void setOTHER_ASSET_CATEGORY_ID(String OTHER_ASSET_CATEGORY_ID) {
this.OTHER_ASSET_CATEGORY_ID = OTHER_ASSET_CATEGORY_ID;
}
public String getON_OFF_ID() {
return ON_OFF_ID;
}
public void setON_OFF_ID(String ON_OFF_ID) {
this.ON_OFF_ID = ON_OFF_ID;
}
public String getSTART_DATE() {
return START_DATE;
}
public void setSTART_DATE(String START_DATE) {
this.START_DATE = START_DATE;
}
public String getDUE_DATE() {
return DUE_DATE;
}
public void setDUE_DATE(String DUE_DATE) {
this.DUE_DATE = DUE_DATE;
}
public String getSUBJECT_CD() {
return SUBJECT_CD;
}
public void setSUBJECT_CD(String SUBJECT_CD) {
this.SUBJECT_CD = SUBJECT_CD;
}
public String getSUBJECT_NAME() {
return SUBJECT_NAME;
}
public void setSUBJECT_NAME(String SUBJECT_NAME) {
this.SUBJECT_NAME = SUBJECT_NAME;
}
public String getFIVE_CLASS_CD() {
return FIVE_CLASS_CD;
}
public void setFIVE_CLASS_CD(String FIVE_CLASS_CD) {
this.FIVE_CLASS_CD = FIVE_CLASS_CD;
}
public Double getFIXED_ASSET_DEPR() {
return FIXED_ASSET_DEPR;
}
public void setFIXED_ASSET_DEPR(Double FIXED_ASSET_DEPR) {
this.FIXED_ASSET_DEPR = FIXED_ASSET_DEPR;
}
public Double getASSET_BALANCE() {
return ASSET_BALANCE;
}
public void setASSET_BALANCE(Double ASSET_BALANCE) {
this.ASSET_BALANCE = ASSET_BALANCE;
}
public Double getPROVISION() {
return PROVISION;
}
public void setPROVISION(Double PROVISION) {
this.PROVISION = PROVISION;
}
public String getREAL_ESTATE_FLAG() {
return REAL_ESTATE_FLAG;
}
public void setREAL_ESTATE_FLAG(String REAL_ESTATE_FLAG) {
this.REAL_ESTATE_FLAG = REAL_ESTATE_FLAG;
}
public String getSELF_FLAG() {
return SELF_FLAG;
}
public void setSELF_FLAG(String SELF_FLAG) {
this.SELF_FLAG = SELF_FLAG;
}
public String getIS_PLED_REAL_ESTATE_FLAG() {
return IS_PLED_REAL_ESTATE_FLAG;
}
public void setIS_PLED_REAL_ESTATE_FLAG(String IS_PLED_REAL_ESTATE_FLAG) {
this.IS_PLED_REAL_ESTATE_FLAG = IS_PLED_REAL_ESTATE_FLAG;
}
}

153
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourcePd.java

@ -0,0 +1,153 @@
package io.sc.engine.rwa.calculator.data;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import java.util.HashMap;
/**
* 源数据PD信息
* @author chengjie
* @time 2024-05-07
*/
public class SourcePd extends BaseEntity {
public SourcePd(){
setColMap();
}
public SourcePd(String[] row){
setColumnValue(row);
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("CUST_NO",2);
colMap.put("CUST_NAME",3);
colMap.put("RATING_LVL",4);
colMap.put("PD",5);
colMap.put("EFFECTIVE_DATE",6);
colMap.put("DUE_DATE",7);
colMap.put("EXPIRING_DATE",8);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID(row[0]);
setDATA_DT(row[1]);
setCUST_NO(row[2]);
setCUST_NAME(row[3]);
setRATING_LVL(row[4]);
setPD(row[5]);
setEFFECTIVE_DATE(row[6]);
setDUE_DATE(row[7]);
setEXPIRING_DATE(row[8]);
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID ; //主键
private String DATA_DT ; //数据日期
private String CUST_NO ; //客户编号
private String CUST_NAME ; //客户名称
private String RATING_LVL ; //信用评级等级
private String PD ; //违约概率
private String EFFECTIVE_DATE; //生效日期
private String DUE_DATE ; //到期日期
private String EXPIRING_DATE ; //失效日期
@Override
public String getTable() {
return "RWA_S_PD";
}
@Override
public Integer getColumnCount() {
return 15;
}
@Override
public String[] getColumnDataType() {
return new String[]{
"String","String","String","String","String","Double","String","String","String"
};
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getCUST_NO() {
return CUST_NO;
}
public void setCUST_NO(String CUST_NO) {
this.CUST_NO = CUST_NO;
}
public String getCUST_NAME() {
return CUST_NAME;
}
public void setCUST_NAME(String CUST_NAME) {
this.CUST_NAME = CUST_NAME;
}
public String getRATING_LVL() {
return RATING_LVL;
}
public void setRATING_LVL(String RATING_LVL) {
this.RATING_LVL = RATING_LVL;
}
public String getPD() {
return PD;
}
public void setPD(String PD) {
this.PD = PD;
}
public String getEFFECTIVE_DATE() {
return EFFECTIVE_DATE;
}
public void setEFFECTIVE_DATE(String EFFECTIVE_DATE) {
this.EFFECTIVE_DATE = EFFECTIVE_DATE;
}
public String getDUE_DATE() {
return DUE_DATE;
}
public void setDUE_DATE(String DUE_DATE) {
this.DUE_DATE = DUE_DATE;
}
public String getEXPIRING_DATE() {
return EXPIRING_DATE;
}
public void setEXPIRING_DATE(String EXPIRING_DATE) {
this.EXPIRING_DATE = EXPIRING_DATE;
}
}

326
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourcePled.java

@ -0,0 +1,326 @@
package io.sc.engine.rwa.calculator.data;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import java.util.HashMap;
/**
* 源数据质押物信息
* @author chengjie
* @time 2023-07-20
*/
public class SourcePled extends BaseEntity {
public SourcePled(){ setColMap(); }
public SourcePled(String[] row){
setColumnValue(row);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID(row[0]); //ID
setDATA_DT(row[1]); //数据日期
setGUAR_NO(row[2]); //缓释工具编号
setGUAR_NAME(row[3]); //缓释工具名称
setGUAR_TYPE_NO(row[4]); //缓释工具类型
setCUST_NO(row[5]); //客户编号
setCUST_NAME(row[6]); //客户名称
setCONTRACT_EXPIRE_DATE(row[7]); //担保合同到期日期
setMITIGATION_EXPIRE_DATE(row[8]); //缓释工具到期日期
setCONFIRM_VALUE(row[9]); //我行认定价值
setCCY_CD(row[10]); //币种
setPOSITIVE_CORRELATION_FLAG(row[11]); //债务人与缓释工具实质正相关性标识
setPRUDENT_VALUATION_FLAG(row[12]); //审慎估值标识
setRE_EVALUAT_FREQUENCY(row[13]); //重估频率
setBOND_TYPE(row[14]); //债券类型
setTRADE_TERM(row[15]); //交易期限
setTRADE_TYPE(row[16]); //交易类型
setCREDIT_PROTECT_TYPE(row[17]); //信用保护
setRECORD_CURR(row[18]); //币种错配标识
setIS_TERM__DEBT_TERM(row[19]); //缓释物到期日是否大于等于债项到期日
setIS_GUAR_TERM_MORE_DEBT_TERM(row[20]); //担保到期日是否大于等于债项到期日
setREG_COUNTRY_CHINA_FLAG(row[21]); //注册国是否中国
setLOAN_REF_NO(row[22]); //缓释债项编号
setPLEDGE_CLASS(row[23]); //缓释品分类
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
int index = 0;
String columns = "DATA_DT#0,GUAR_NO#1,GUAR_NAME#2,GUAR_TYPE_NO#3,CUST_NO#4,CUST_NAME#5,CONTRACT_EXPIRE_DATE#6,MITIGATION_EXPIRE_DATE#7,CONFIRM_VALUE#8,CCY_CD#9,POSITIVE_CORRELATION_FLAG#10,PRUDENT_VALUATION_FLAG#11,RE_EVALUAT_FREQUENCY#12,BOND_TYPE#13,TRADE_TERM#14,TRADE_TYPE#15,CREDIT_PROTECT_TYPE#16,LOAN_REF_NO#17";
String[] arr = columns.split(",");
for(String s : arr){
if(s.substring(0, s.indexOf("#")).equals(column)){
index = Integer.valueOf(s.substring(s.indexOf("#")+1));
break;
}
}
return index;
}
private String ID; //ID
private String DATA_DT; //数据日期
private String GUAR_NO; //缓释工具编号
private String GUAR_NAME; //缓释工具名称
private String GUAR_TYPE_NO; //缓释工具类型
private String CUST_NO; //客户编号
private String CUST_NAME; //客户名称
private String CONTRACT_EXPIRE_DATE; //担保合同到期日期
private String MITIGATION_EXPIRE_DATE; //缓释工具到期日期
private String CONFIRM_VALUE; //我行认定价值
private String CCY_CD; //币种
private String POSITIVE_CORRELATION_FLAG; //债务人与缓释工具实质正相关性标识
private String PRUDENT_VALUATION_FLAG; //审慎估值标识
private String RE_EVALUAT_FREQUENCY; //重估频率
private String BOND_TYPE; //债券类型
private String TRADE_TERM; //交易期限
private String TRADE_TYPE; //交易类型
private String CREDIT_PROTECT_TYPE; //信用保护
private String RECORD_CURR; //币种错配标识
private String IS_TERM__DEBT_TERM; //缓释物到期日是否大于等于债项到期日
private String IS_GUAR_TERM_MORE_DEBT_TERM; //担保到期日是否大于等于债项到期日
private String REG_COUNTRY_CHINA_FLAG; //注册国是否中国
private String LOAN_REF_NO; //缓释债项编号
private String PLEDGE_CLASS; //缓释品分类
public String getPLEDGE_CLASS() {
return PLEDGE_CLASS;
}
public void setPLEDGE_CLASS(String PLEDGE_CLASS) {
this.PLEDGE_CLASS = PLEDGE_CLASS;
}
public String getRECORD_CURR() {
return RECORD_CURR;
}
public void setRECORD_CURR(String RECORD_CURR) {
this.RECORD_CURR = RECORD_CURR;
}
public String getIS_TERM__DEBT_TERM() {
return IS_TERM__DEBT_TERM;
}
public void setIS_TERM__DEBT_TERM(String IS_TERM__DEBT_TERM) {
this.IS_TERM__DEBT_TERM = IS_TERM__DEBT_TERM;
}
public String getIS_GUAR_TERM_MORE_DEBT_TERM() {
return IS_GUAR_TERM_MORE_DEBT_TERM;
}
public void setIS_GUAR_TERM_MORE_DEBT_TERM(String IS_GUAR_TERM_MORE_DEBT_TERM) {
this.IS_GUAR_TERM_MORE_DEBT_TERM = IS_GUAR_TERM_MORE_DEBT_TERM;
}
public String getREG_COUNTRY_CHINA_FLAG() {
return REG_COUNTRY_CHINA_FLAG;
}
public void setREG_COUNTRY_CHINA_FLAG(String REG_COUNTRY_CHINA_FLAG) {
this.REG_COUNTRY_CHINA_FLAG = REG_COUNTRY_CHINA_FLAG;
}
@Override
public String getTable() {
return "RWA_S_PLED";
}
@Override
public Integer getColumnCount() {
return 30;
}
@Override
public String[] getColumnDataType() {
return new String[]{
"String","String","String","String","String","String","String","String","String","Double","String","String","String","String","String","String","String","String","String","String","String","String","String","String"
};
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("GUAR_NO",2);
colMap.put("GUAR_NAME",3);
colMap.put("GUAR_TYPE_NO",4);
colMap.put("CUST_NO",5);
colMap.put("CUST_NAME",6);
colMap.put("CONTRACT_EXPIRE_DATE",7);
colMap.put("MITIGATION_EXPIRE_DATE",8);
colMap.put("CONFIRM_VALUE",9);
colMap.put("CCY_CD",10);
colMap.put("POSITIVE_CORRELATION_FLAG",11);
colMap.put("PRUDENT_VALUATION_FLAG",12);
colMap.put("RE_EVALUAT_FREQUENCY",13);
colMap.put("BOND_TYPE",14);
colMap.put("TRADE_TERM",15);
colMap.put("TRADE_TYPE",16);
colMap.put("CREDIT_PROTECT_TYPE",17);
colMap.put("RECORD_CURR",18); //币种错配标识
colMap.put("IS_TERM__DEBT_TERM",19); //缓释物到期日是否大于等于债项到期日
colMap.put("IS_GUAR_TERM_MORE_DEBT_TERM",20); //担保到期日是否大于等于债项到期日
colMap.put("REG_COUNTRY_CHINA_FLAG",21); //注册国是否中国
colMap.put("LOAN_REF_NO",22);
colMap.put("PLEDGE_CLASS",23);
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getGUAR_NO() {
return GUAR_NO;
}
public void setGUAR_NO(String GUAR_NO) {
this.GUAR_NO = GUAR_NO;
}
public String getGUAR_NAME() {
return GUAR_NAME;
}
public void setGUAR_NAME(String GUAR_NAME) {
this.GUAR_NAME = GUAR_NAME;
}
public String getGUAR_TYPE_NO() {
return GUAR_TYPE_NO;
}
public void setGUAR_TYPE_NO(String GUAR_TYPE_NO) {
this.GUAR_TYPE_NO = GUAR_TYPE_NO;
}
public String getCUST_NO() {
return CUST_NO;
}
public void setCUST_NO(String CUST_NO) {
this.CUST_NO = CUST_NO;
}
public String getCUST_NAME() {
return CUST_NAME;
}
public void setCUST_NAME(String CUST_NAME) {
this.CUST_NAME = CUST_NAME;
}
public String getCONTRACT_EXPIRE_DATE() {
return CONTRACT_EXPIRE_DATE;
}
public void setCONTRACT_EXPIRE_DATE(String CONTRACT_EXPIRE_DATE) {
this.CONTRACT_EXPIRE_DATE = CONTRACT_EXPIRE_DATE;
}
public String getMITIGATION_EXPIRE_DATE() {
return MITIGATION_EXPIRE_DATE;
}
public void setMITIGATION_EXPIRE_DATE(String MITIGATION_EXPIRE_DATE) {
this.MITIGATION_EXPIRE_DATE = MITIGATION_EXPIRE_DATE;
}
public String getCONFIRM_VALUE() {
return CONFIRM_VALUE;
}
public void setCONFIRM_VALUE(String CONFIRM_VALUE) {
this.CONFIRM_VALUE = CONFIRM_VALUE;
}
public String getCCY_CD() {
return CCY_CD;
}
public void setCCY_CD(String CCY_CD) {
this.CCY_CD = CCY_CD;
}
public String getPOSITIVE_CORRELATION_FLAG() {
return POSITIVE_CORRELATION_FLAG;
}
public void setPOSITIVE_CORRELATION_FLAG(String POSITIVE_CORRELATION_FLAG) {
this.POSITIVE_CORRELATION_FLAG = POSITIVE_CORRELATION_FLAG;
}
public String getPRUDENT_VALUATION_FLAG() {
return PRUDENT_VALUATION_FLAG;
}
public void setPRUDENT_VALUATION_FLAG(String PRUDENT_VALUATION_FLAG) {
this.PRUDENT_VALUATION_FLAG = PRUDENT_VALUATION_FLAG;
}
public String getRE_EVALUAT_FREQUENCY() {
return RE_EVALUAT_FREQUENCY;
}
public void setRE_EVALUAT_FREQUENCY(String RE_EVALUAT_FREQUENCY) {
this.RE_EVALUAT_FREQUENCY = RE_EVALUAT_FREQUENCY;
}
public String getBOND_TYPE() {
return BOND_TYPE;
}
public void setBOND_TYPE(String BOND_TYPE) {
this.BOND_TYPE = BOND_TYPE;
}
public String getTRADE_TERM() {
return TRADE_TERM;
}
public void setTRADE_TERM(String TRADE_TERM) {
this.TRADE_TERM = TRADE_TERM;
}
public String getTRADE_TYPE() {
return TRADE_TYPE;
}
public void setTRADE_TYPE(String TRADE_TYPE) {
this.TRADE_TYPE = TRADE_TYPE;
}
public String getCREDIT_PROTECT_TYPE() {
return CREDIT_PROTECT_TYPE;
}
public void setCREDIT_PROTECT_TYPE(String CREDIT_PROTECT_TYPE) {
this.CREDIT_PROTECT_TYPE = CREDIT_PROTECT_TYPE;
}
public String getLOAN_REF_NO() {
return LOAN_REF_NO;
}
public void setLOAN_REF_NO(String LOAN_REF_NO) {
this.LOAN_REF_NO = LOAN_REF_NO;
}
}

405
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceRepo.java

@ -0,0 +1,405 @@
package io.sc.engine.rwa.calculator.data;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.*;
import java.util.HashMap;
/**
* 源数据质押回购信息
* @author chengjie
* @time 2023-07-20
*/
public class SourceRepo extends BaseEntity {
public SourceRepo(){setColMap();}
public SourceRepo(String[] row){
setColumnValue(row);
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("LOAN_REF_NO",2);
colMap.put("ON_OFF_FLAG",3);
colMap.put("CCY_CD",4);
colMap.put("PRODUCT_CD",5);
colMap.put("PRODUCT_NAME",6);
colMap.put("CUST_NO",7);
colMap.put("CUST_NAME",8);
colMap.put("FUND_OPERA_MODE",9);
colMap.put("MOTHOD_RAISING",10);
colMap.put("OWNERSHIP_TRANSFER_FLAG",11);
colMap.put("REPO_DIRECTION_ID",12);
colMap.put("START_DATE",13);
colMap.put("DUE_DATE",14);
colMap.put("SUBJECT_CD",15);
colMap.put("SUBJECT_NAME",16);
colMap.put("FIVE_CLASS_CD",17);
colMap.put("REPO_OB_TOTAL_FAVALUE",18);
colMap.put("REPO_OB_TOTAL_MKVALUE",19);
colMap.put("PRINCIPAL_BAL",20);
colMap.put("DEFERRED_INT",21);
colMap.put("RECEIVABLE_INT",22);
colMap.put("PROVISION",23);
colMap.put("EXT_RATING",24);
colMap.put("PLEDGE_ISSUER",25);
colMap.put("PLEDGE_CCY",26);
colMap.put("PLEDGE_CODE",27);
colMap.put("OVERDUE_DTS",28);
colMap.put("DEFAULT_FLAG",29);
colMap.put("LGD",30);
colMap.put("BELONG_ORG",31);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID(row[0]); //ID
setDATA_DT(row[1]); //数据日期
setLOAN_REF_NO(row[2]); //债项编号
setON_OFF_FLAG(row[3]); //表内外标识
setCCY_CD(row[4]); //币种代码
setPRODUCT_CD(row[5]); //产品代码
setPRODUCT_NAME(row[6]); //产品名称
setCUST_NO(row[7]); //基金管理人客户号
setCUST_NAME(row[8]); //基金管理人名称
setFUND_OPERA_MODE(row[9]); //基金运作方式
setMOTHOD_RAISING(row[10]); //募集方式
setOWNERSHIP_TRANSFER_FLAG(row[11]); //所有权转移标志
setREPO_DIRECTION_ID(row[12]); //回购方向标识
setSTART_DATE(row[13]); //开始日期
setDUE_DATE(row[14]); //到期日期
setSUBJECT_CD(row[15]); //科目代码
setSUBJECT_NAME(row[16]); //科目名称
setFIVE_CLASS_CD(row[17]); //五级分类代码
setREPO_OB_TOTAL_FAVALUE(toEmptyDouble(Double.valueOf(row[18]))); //回购标的物总面值
setREPO_OB_TOTAL_MKVALUE(toEmptyDouble(Double.valueOf(row[19]))); //回购标的物总市值
setPRINCIPAL_BAL(toEmptyDouble(Double.valueOf(row[20]))); //本金余额
setDEFERRED_INT(toEmptyDouble(Double.valueOf(row[21]))); //递延利息收入
setRECEIVABLE_INT(toEmptyDouble(Double.valueOf(row[22]))); //应收未收利息
setPROVISION(toEmptyDouble(Double.valueOf(row[23]))); //计提准备金
setEXT_RATING(row[24]); //外部评级
setPLEDGE_ISSUER(row[25]); //质押品发行人
setPLEDGE_CCY(row[26]); //押品币种
setPLEDGE_CODE(row[27]); //质押品证券代码
setOVERDUE_DTS(toEmptyInteger(Integer.valueOf(row[28]))); //逾期天数
setDEFAULT_FLAG(row[29]); //违约标志
setLGD(toEmptyDouble(Double.valueOf(row[30])));
setBELONG_ORG(row[31]);
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID; //ID
private String DATA_DT; //数据日期
private String LOAN_REF_NO; //债项编号
private String ON_OFF_FLAG; //表内外标识
private String CCY_CD; //币种代码
private String PRODUCT_CD; //产品代码
private String PRODUCT_NAME; //产品名称
private String CUST_NO; //基金管理人客户号
private String CUST_NAME; //基金管理人名称
private String FUND_OPERA_MODE; //基金运作方式
private String MOTHOD_RAISING; //募集方式
private String OWNERSHIP_TRANSFER_FLAG; //所有权转移标志
private String REPO_DIRECTION_ID; //回购方向标识
private String START_DATE; //开始日期
private String DUE_DATE; //到期日期
private String SUBJECT_CD; //科目代码
private String SUBJECT_NAME; //科目名称
private String FIVE_CLASS_CD; //五级分类代码
private Double REPO_OB_TOTAL_FAVALUE; //回购标的物总面值
private Double REPO_OB_TOTAL_MKVALUE; //回购标的物总市值
private Double PRINCIPAL_BAL; //本金余额
private Double DEFERRED_INT; //递延利息收入
private Double RECEIVABLE_INT; //应收未收利息
private Double PROVISION; //计提准备金
private String EXT_RATING; //外部评级
private String PLEDGE_ISSUER; //质押品发行人
private String PLEDGE_CCY; //押品币种
private String PLEDGE_CODE; //质押品证券代码
private Integer OVERDUE_DTS; //逾期天数
private String DEFAULT_FLAG; //违约标志
private Double LGD; //违约损失率
private String BELONG_ORG; //业务所属机构
public Double getLGD() {
return LGD;
}
public void setLGD(Double LGD) {
this.LGD = LGD;
}
public String getBELONG_ORG() {
return BELONG_ORG;
}
public void setBELONG_ORG(String BELONG_ORG) {
this.BELONG_ORG = BELONG_ORG;
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getLOAN_REF_NO() {
return LOAN_REF_NO;
}
public void setLOAN_REF_NO(String LOAN_REF_NO) {
this.LOAN_REF_NO = LOAN_REF_NO;
}
public String getCCY_CD() {
return CCY_CD;
}
public void setCCY_CD(String CCY_CD) {
this.CCY_CD = CCY_CD;
}
public String getPRODUCT_CD() {
return PRODUCT_CD;
}
public void setPRODUCT_CD(String PRODUCT_CD) {
this.PRODUCT_CD = PRODUCT_CD;
}
public String getPRODUCT_NAME() {
return PRODUCT_NAME;
}
public void setPRODUCT_NAME(String PRODUCT_NAME) {
this.PRODUCT_NAME = PRODUCT_NAME;
}
public String getCUST_NO() {
return CUST_NO;
}
public void setCUST_NO(String CUST_NO) {
this.CUST_NO = CUST_NO;
}
public String getCUST_NAME() {
return CUST_NAME;
}
public void setCUST_NAME(String CUST_NAME) {
this.CUST_NAME = CUST_NAME;
}
public String getFUND_OPERA_MODE() {
return FUND_OPERA_MODE;
}
public void setFUND_OPERA_MODE(String FUND_OPERA_MODE) {
this.FUND_OPERA_MODE = FUND_OPERA_MODE;
}
public String getMOTHOD_RAISING() {
return MOTHOD_RAISING;
}
public void setMOTHOD_RAISING(String MOTHOD_RAISING) {
this.MOTHOD_RAISING = MOTHOD_RAISING;
}
@Override
public String getTable() {
return "RWA_S_REPO";
}
@Override
public Integer getColumnCount() {
return 38;
}
@Override
public String[] getColumnDataType() {
return new String[]{
"String","String","String","String","String","String","String","String","String","String","String","String","String","String","String","String","String","String","Double","Double","Double","Double","Double","Double","String","String","String","String","Integer","String","Double","String"
};
}
public String getON_OFF_FLAG() {
return ON_OFF_FLAG;
}
public void setON_OFF_FLAG(String ON_OFF_FLAG) {
this.ON_OFF_FLAG = ON_OFF_FLAG;
}
public String getOWNERSHIP_TRANSFER_FLAG() {
return OWNERSHIP_TRANSFER_FLAG;
}
public void setOWNERSHIP_TRANSFER_FLAG(String OWNERSHIP_TRANSFER_FLAG) {
this.OWNERSHIP_TRANSFER_FLAG = OWNERSHIP_TRANSFER_FLAG;
}
public String getREPO_DIRECTION_ID() {
return REPO_DIRECTION_ID;
}
public void setREPO_DIRECTION_ID(String REPO_DIRECTION_ID) {
this.REPO_DIRECTION_ID = REPO_DIRECTION_ID;
}
public String getSTART_DATE() {
return START_DATE;
}
public void setSTART_DATE(String START_DATE) {
this.START_DATE = START_DATE;
}
public String getDUE_DATE() {
return DUE_DATE;
}
public void setDUE_DATE(String DUE_DATE) {
this.DUE_DATE = DUE_DATE;
}
public String getSUBJECT_CD() {
return SUBJECT_CD;
}
public void setSUBJECT_CD(String SUBJECT_CD) {
this.SUBJECT_CD = SUBJECT_CD;
}
public String getSUBJECT_NAME() {
return SUBJECT_NAME;
}
public void setSUBJECT_NAME(String SUBJECT_NAME) {
this.SUBJECT_NAME = SUBJECT_NAME;
}
public String getFIVE_CLASS_CD() {
return FIVE_CLASS_CD;
}
public void setFIVE_CLASS_CD(String FIVE_CLASS_CD) {
this.FIVE_CLASS_CD = FIVE_CLASS_CD;
}
public Double getREPO_OB_TOTAL_FAVALUE() {
return REPO_OB_TOTAL_FAVALUE;
}
public void setREPO_OB_TOTAL_FAVALUE(Double REPO_OB_TOTAL_FAVALUE) {
this.REPO_OB_TOTAL_FAVALUE = REPO_OB_TOTAL_FAVALUE;
}
public Double getREPO_OB_TOTAL_MKVALUE() {
return REPO_OB_TOTAL_MKVALUE;
}
public void setREPO_OB_TOTAL_MKVALUE(Double REPO_OB_TOTAL_MKVALUE) {
this.REPO_OB_TOTAL_MKVALUE = REPO_OB_TOTAL_MKVALUE;
}
public Double getPRINCIPAL_BAL() {
return PRINCIPAL_BAL;
}
public void setPRINCIPAL_BAL(Double PRINCIPAL_BAL) {
this.PRINCIPAL_BAL = PRINCIPAL_BAL;
}
public Double getDEFERRED_INT() {
return DEFERRED_INT;
}
public void setDEFERRED_INT(Double DEFERRED_INT) {
this.DEFERRED_INT = DEFERRED_INT;
}
public Double getRECEIVABLE_INT() {
return RECEIVABLE_INT;
}
public void setRECEIVABLE_INT(Double RECEIVABLE_INT) {
this.RECEIVABLE_INT = RECEIVABLE_INT;
}
public Double getPROVISION() {
return PROVISION;
}
public void setPROVISION(Double PROVISION) {
this.PROVISION = PROVISION;
}
public String getEXT_RATING() {
return EXT_RATING;
}
public void setEXT_RATING(String EXT_RATING) {
this.EXT_RATING = EXT_RATING;
}
public String getPLEDGE_ISSUER() {
return PLEDGE_ISSUER;
}
public void setPLEDGE_ISSUER(String PLEDGE_ISSUER) {
this.PLEDGE_ISSUER = PLEDGE_ISSUER;
}
public String getPLEDGE_CCY() {
return PLEDGE_CCY;
}
public void setPLEDGE_CCY(String PLEDGE_CCY) {
this.PLEDGE_CCY = PLEDGE_CCY;
}
public String getPLEDGE_CODE() {
return PLEDGE_CODE;
}
public void setPLEDGE_CODE(String PLEDGE_CODE) {
this.PLEDGE_CODE = PLEDGE_CODE;
}
public Integer getOVERDUE_DTS() {
return OVERDUE_DTS;
}
public void setOVERDUE_DTS(Integer OVERDUE_DTS) {
this.OVERDUE_DTS = OVERDUE_DTS;
}
public String getDEFAULT_FLAG() {
return DEFAULT_FLAG;
}
public void setDEFAULT_FLAG(String DEFAULT_FLAG) {
this.DEFAULT_FLAG = DEFAULT_FLAG;
}
}

349
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceSecurityPosition.java

@ -0,0 +1,349 @@
package io.sc.engine.rwa.calculator.data;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.*;
import java.util.HashMap;
/**
* 源数据证券投资信息
* @author chengjie
* @time 2023-07-20
*/
public class SourceSecurityPosition extends BaseEntity {
public SourceSecurityPosition(){setColMap();}
public SourceSecurityPosition(String[] row){
setColumnValue(row);
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("SEC_NO",2);
colMap.put("ON_OFF_FLAG",3);
colMap.put("CCY_CD",4);
colMap.put("PRODUCT_CD",5);
colMap.put("PRODUCT_NAME",6);
colMap.put("CUST_NO",7);
colMap.put("CUST_NAME",8);
colMap.put("START_DATE",9);
colMap.put("DUE_DATE",10);
colMap.put("SUBJECT_CD",11);
colMap.put("SUBJECT_NAME",12);
colMap.put("FIVE_CLASS_CD",13);
colMap.put("ASSET_BAL",14);
colMap.put("PROVISION",15);
colMap.put("EXT_RATING",16);
colMap.put("EXT_RATING_TYPE",17);
colMap.put("BOND_TYPE",18);
colMap.put("LOCAL_GOV_BOND_TYPE",19);
colMap.put("JUNIOR_DEBT_FLAG",20);
colMap.put("COVER_BOND_FLG",21);
colMap.put("OVERDUE_DTS",22);
colMap.put("DEFAULT_FLAG",23);
colMap.put("SPE_ITEM_BOND_FLAG",24);
colMap.put("LGD",26);
colMap.put("BELONG_ORG",27);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID(row[0]); //ID
setDATA_DT(row[1]); //数据日期
setSEC_NO(row[2]); //证券编码
setON_OFF_FLAG(row[3]); //表内外标识
setCCY_CD(row[4]); //币种代码
setPRODUCT_CD(row[5]); //产品代码
setPRODUCT_NAME(row[6]); //产品名称
setCUST_NO(row[7]); //交易对手编号
setCUST_NAME(row[8]); //交易对手名称
setSTART_DATE(row[9]); //开始日期
setDUE_DATE(row[10]); //到期日期
setSUBJECT_CD(row[11]); //科目代码
setSUBJECT_NAME(row[12]); //科目名称
setFIVE_CLASS_CD(row[13]); //五级分类代码
setASSET_BAL(toEmptyDouble(Double.valueOf(row[14]))); //资产余额
setPROVISION(toEmptyDouble(Double.valueOf(row[15]))); //计提准备金
setEXT_RATING(row[16]); //外部评级
setEXT_RATING_TYPE(row[17]); //外部评级类型
setBOND_TYPE(row[18]); //债券类型
setLOCAL_GOV_BOND_TYPE(row[19]); //地方政府债债券类型
setJUNIOR_DEBT_FLAG(row[20]); //次级债标识
setCOVER_BOND_FLG(row[21]); //合格资产担保债券标识
setOVERDUE_DTS(toEmptyInteger(Integer.valueOf(row[22]))); //逾期天数
setDEFAULT_FLAG(row[23]); //违约标志
setSPE_ITEM_BOND_FLAG(row[24]); //专项债券标识
setLGD(toEmptyDouble(Double.valueOf(row[25])));
setBELONG_ORG(row[26]);
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID; //ID
private String DATA_DT; //数据日期
private String SEC_NO; //证券编码
private String ON_OFF_FLAG; //表内外标识
private String CCY_CD; //币种代码
private String PRODUCT_CD; //产品代码
private String PRODUCT_NAME; //产品名称
private String CUST_NO; //交易对手编号
private String CUST_NAME; //交易对手名称
private String START_DATE; //开始日期
private String DUE_DATE; //到期日期
private String SUBJECT_CD; //科目代码
private String SUBJECT_NAME; //科目名称
private String FIVE_CLASS_CD; //五级分类代码
private Double ASSET_BAL; //资产余额
private Double PROVISION; //计提准备金
private String EXT_RATING; //外部评级
private String EXT_RATING_TYPE; //外部评级类型
private String BOND_TYPE; //债券类型
private String LOCAL_GOV_BOND_TYPE; //地方政府债债券类型
private String JUNIOR_DEBT_FLAG; //次级债标识
private String COVER_BOND_FLG; //合格资产担保债券标识
private Integer OVERDUE_DTS; //逾期天数
private String DEFAULT_FLAG; //违约标志
private String SPE_ITEM_BOND_FLAG; //专项债券标识
private Double LGD; //违约损失率
private String BELONG_ORG; //业务所属机构
public Double getLGD() {
return LGD;
}
public void setLGD(Double LGD) {
this.LGD = LGD;
}
public String getBELONG_ORG() {
return BELONG_ORG;
}
public void setBELONG_ORG(String BELONG_ORG) {
this.BELONG_ORG = BELONG_ORG;
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getSPE_ITEM_BOND_FLAG() {
return SPE_ITEM_BOND_FLAG;
}
public void setSPE_ITEM_BOND_FLAG(String SPE_ITEM_BOND_FLAG) {
this.SPE_ITEM_BOND_FLAG = SPE_ITEM_BOND_FLAG;
}
@Override
public String getTable() {
return "RWA_S_SECURITY_POSITION";
}
@Override
public Integer getColumnCount() {
return 33;
}
@Override
public String[] getColumnDataType() {
return new String[]{
"String","String","String","String","String","String","String","String","String","String","String","String","String","String","Double","Double","String","String","String","String","String","String","Integer","String","String","Double","String"
};
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getSEC_NO() {
return SEC_NO;
}
public void setSEC_NO(String SEC_NO) {
this.SEC_NO = SEC_NO;
}
public String getCCY_CD() {
return CCY_CD;
}
public void setCCY_CD(String CCY_CD) {
this.CCY_CD = CCY_CD;
}
public String getPRODUCT_CD() {
return PRODUCT_CD;
}
public void setPRODUCT_CD(String PRODUCT_CD) {
this.PRODUCT_CD = PRODUCT_CD;
}
public String getPRODUCT_NAME() {
return PRODUCT_NAME;
}
public void setPRODUCT_NAME(String PRODUCT_NAME) {
this.PRODUCT_NAME = PRODUCT_NAME;
}
public String getCUST_NO() {
return CUST_NO;
}
public void setCUST_NO(String CUST_NO) {
this.CUST_NO = CUST_NO;
}
public String getCUST_NAME() {
return CUST_NAME;
}
public void setCUST_NAME(String CUST_NAME) {
this.CUST_NAME = CUST_NAME;
}
public String getON_OFF_FLAG() {
return ON_OFF_FLAG;
}
public void setON_OFF_FLAG(String ON_OFF_FLAG) {
this.ON_OFF_FLAG = ON_OFF_FLAG;
}
public String getSTART_DATE() {
return START_DATE;
}
public void setSTART_DATE(String START_DATE) {
this.START_DATE = START_DATE;
}
public String getDUE_DATE() {
return DUE_DATE;
}
public void setDUE_DATE(String DUE_DATE) {
this.DUE_DATE = DUE_DATE;
}
public String getSUBJECT_CD() {
return SUBJECT_CD;
}
public void setSUBJECT_CD(String SUBJECT_CD) {
this.SUBJECT_CD = SUBJECT_CD;
}
public String getSUBJECT_NAME() {
return SUBJECT_NAME;
}
public void setSUBJECT_NAME(String SUBJECT_NAME) {
this.SUBJECT_NAME = SUBJECT_NAME;
}
public String getFIVE_CLASS_CD() {
return FIVE_CLASS_CD;
}
public void setFIVE_CLASS_CD(String FIVE_CLASS_CD) {
this.FIVE_CLASS_CD = FIVE_CLASS_CD;
}
public Double getASSET_BAL() {
return ASSET_BAL;
}
public void setASSET_BAL(Double ASSET_BAL) {
this.ASSET_BAL = ASSET_BAL;
}
public Double getPROVISION() {
return PROVISION;
}
public void setPROVISION(Double PROVISION) {
this.PROVISION = PROVISION;
}
public String getEXT_RATING() {
return EXT_RATING;
}
public void setEXT_RATING(String EXT_RATING) {
this.EXT_RATING = EXT_RATING;
}
public String getEXT_RATING_TYPE() {
return EXT_RATING_TYPE;
}
public void setEXT_RATING_TYPE(String EXT_RATING_TYPE) {
this.EXT_RATING_TYPE = EXT_RATING_TYPE;
}
public String getBOND_TYPE() {
return BOND_TYPE;
}
public void setBOND_TYPE(String BOND_TYPE) {
this.BOND_TYPE = BOND_TYPE;
}
public String getLOCAL_GOV_BOND_TYPE() {
return LOCAL_GOV_BOND_TYPE;
}
public void setLOCAL_GOV_BOND_TYPE(String LOCAL_GOV_BOND_TYPE) {
this.LOCAL_GOV_BOND_TYPE = LOCAL_GOV_BOND_TYPE;
}
public String getCOVER_BOND_FLG() {
return COVER_BOND_FLG;
}
public void setCOVER_BOND_FLG(String COVER_BOND_FLG) {
this.COVER_BOND_FLG = COVER_BOND_FLG;
}
public Integer getOVERDUE_DTS() {
return OVERDUE_DTS;
}
public void setOVERDUE_DTS(Integer OVERDUE_DTS) {
this.OVERDUE_DTS = OVERDUE_DTS;
}
public String getDEFAULT_FLAG() {
return DEFAULT_FLAG;
}
public void setDEFAULT_FLAG(String DEFAULT_FLAG) {
this.DEFAULT_FLAG = DEFAULT_FLAG;
}
public String getJUNIOR_DEBT_FLAG() {
return JUNIOR_DEBT_FLAG;
}
public void setJUNIOR_DEBT_FLAG(String JUNIOR_DEBT_FLAG) {
this.JUNIOR_DEBT_FLAG = JUNIOR_DEBT_FLAG;
}
}

283
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceTrade.java

@ -0,0 +1,283 @@
package io.sc.engine.rwa.calculator.data;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.*;
import java.util.HashMap;
/**
* 源数据贸易融资信息
* @author chengjie
* @time 2023-07-20
*/
public class SourceTrade extends BaseEntity {
public SourceTrade(){setColMap();}
public SourceTrade(String[] row){
setColumnValue(row);
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("LOAN_REF_NO",2);
colMap.put("ON_OFF_FLAG",3);
colMap.put("CCY_CD",4);
colMap.put("PRODUCT_CD",5);
colMap.put("PRODUCT_NAME",6);
colMap.put("CUST_NO",7);
colMap.put("CUST_NAME",8);
colMap.put("START_DATE",9);
colMap.put("DUE_DATE",10);
colMap.put("SUBJECT_CD",11);
colMap.put("SUBJECT_NAME",12);
colMap.put("FIVE_CLASS_CD",13);
colMap.put("ASSET_BAL",14);
colMap.put("PROVISION",15);
colMap.put("OVERDUE_DTS",16);
colMap.put("CROSS_BORDER_TRADE_FLAGE",17);
colMap.put("DEFAULT_FLAG",18);
colMap.put("LGD",19);
colMap.put("BELONG_ORG",20);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID(row[0]); //ID
setDATA_DT(row[1]); //数据日期
setLOAN_REF_NO(row[2]); //债项编号
setON_OFF_FLAG(row[3]); //表内外标识
setCCY_CD(row[4]); //币种代码
setPRODUCT_CD(row[5]); //产品代码
setPRODUCT_NAME(row[6]); //产品名称
setCUST_NO(row[7]); //开证行客户号
setCUST_NAME(row[8]); //开证行名称
setSTART_DATE(row[9]); //开证日期
setDUE_DATE(row[10]); //到期日期
setSUBJECT_CD(row[11]); //科目代码
setSUBJECT_NAME(row[12]); //科目名称
setFIVE_CLASS_CD(row[13]); //五级分类代码
setASSET_BAL(toEmptyDouble(Double.valueOf(row[14]))); //资产余额
setPROVISION(toEmptyDouble(Double.valueOf(row[15]))); //计提准备金
setOVERDUE_DTS(toEmptyInteger(Integer.valueOf(row[16]))); //逾期天数
setCROSS_BORDER_TRADE_FLAGE(row[17]); //跨境商品贸易融资标识
setDEFAULT_FLAG(row[18]); //违约标志
setLGD(toEmptyDouble(Double.valueOf(row[19])));
setBELONG_ORG(row[20]);
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID; //ID
private String DATA_DT; //数据日期
private String LOAN_REF_NO; //债项编号
private String ON_OFF_FLAG; //表内外标识
private String CCY_CD; //币种代码
private String PRODUCT_CD; //产品代码
private String PRODUCT_NAME; //产品名称
private String CUST_NO; //开证行客户号
private String CUST_NAME; //开证行名称
private String START_DATE; //开证日期
private String DUE_DATE; //到期日期
private String SUBJECT_CD; //科目代码
private String SUBJECT_NAME; //科目名称
private String FIVE_CLASS_CD; //五级分类代码
private Double ASSET_BAL; //本金余额
private Double PROVISION; //计提准备金
private Integer OVERDUE_DTS; //逾期天数
private String CROSS_BORDER_TRADE_FLAGE; //跨境商品贸易融资标识
private String DEFAULT_FLAG; //违约标志
private Double LGD; //违约损失率
private String BELONG_ORG; //业务所属机构
public Double getLGD() {
return LGD;
}
public void setLGD(Double LGD) {
this.LGD = LGD;
}
public String getBELONG_ORG() {
return BELONG_ORG;
}
public void setBELONG_ORG(String BELONG_ORG) {
this.BELONG_ORG = BELONG_ORG;
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getLOAN_REF_NO() {
return LOAN_REF_NO;
}
public void setLOAN_REF_NO(String LOAN_REF_NO) {
this.LOAN_REF_NO = LOAN_REF_NO;
}
public String getCCY_CD() {
return CCY_CD;
}
public void setCCY_CD(String CCY_CD) {
this.CCY_CD = CCY_CD;
}
public String getPRODUCT_CD() {
return PRODUCT_CD;
}
public void setPRODUCT_CD(String PRODUCT_CD) {
this.PRODUCT_CD = PRODUCT_CD;
}
public String getPRODUCT_NAME() {
return PRODUCT_NAME;
}
public void setPRODUCT_NAME(String PRODUCT_NAME) {
this.PRODUCT_NAME = PRODUCT_NAME;
}
public String getCUST_NO() {
return CUST_NO;
}
public void setCUST_NO(String CUST_NO) {
this.CUST_NO = CUST_NO;
}
public String getCUST_NAME() {
return CUST_NAME;
}
public void setCUST_NAME(String CUST_NAME) {
this.CUST_NAME = CUST_NAME;
}
@Override
public String getTable() {
return "RWA_S_TRADE";
}
@Override
public Integer getColumnCount() {
return 27;
}
@Override
public String[] getColumnDataType() {
return new String[]{
"String","String","String","String","String","String","String","String","String","String","String","String","String","String","Double","Double","Integer","String","String","Double","String"
};
}
public String getON_OFF_FLAG() {
return ON_OFF_FLAG;
}
public void setON_OFF_FLAG(String ON_OFF_FLAG) {
this.ON_OFF_FLAG = ON_OFF_FLAG;
}
public String getCROSS_BORDER_TRADE_FLAGE() {
return CROSS_BORDER_TRADE_FLAGE;
}
public void setCROSS_BORDER_TRADE_FLAGE(String CROSS_BORDER_TRADE_FLAGE) {
this.CROSS_BORDER_TRADE_FLAGE = CROSS_BORDER_TRADE_FLAGE;
}
public String getSTART_DATE() {
return START_DATE;
}
public void setSTART_DATE(String START_DATE) {
this.START_DATE = START_DATE;
}
public String getDUE_DATE() {
return DUE_DATE;
}
public void setDUE_DATE(String DUE_DATE) {
this.DUE_DATE = DUE_DATE;
}
public String getSUBJECT_CD() {
return SUBJECT_CD;
}
public void setSUBJECT_CD(String SUBJECT_CD) {
this.SUBJECT_CD = SUBJECT_CD;
}
public String getSUBJECT_NAME() {
return SUBJECT_NAME;
}
public void setSUBJECT_NAME(String SUBJECT_NAME) {
this.SUBJECT_NAME = SUBJECT_NAME;
}
public String getFIVE_CLASS_CD() {
return FIVE_CLASS_CD;
}
public void setFIVE_CLASS_CD(String FIVE_CLASS_CD) {
this.FIVE_CLASS_CD = FIVE_CLASS_CD;
}
public Double getASSET_BAL() {
return ASSET_BAL;
}
public void setASSET_BAL(Double ASSET_BAL) {
this.ASSET_BAL = ASSET_BAL;
}
public Double getPROVISION() {
return PROVISION;
}
public void setPROVISION(Double PROVISION) {
this.PROVISION = PROVISION;
}
public Integer getOVERDUE_DTS() {
return OVERDUE_DTS;
}
public void setOVERDUE_DTS(Integer OVERDUE_DTS) {
this.OVERDUE_DTS = OVERDUE_DTS;
}
public String getDEFAULT_FLAG() {
return DEFAULT_FLAG;
}
public void setDEFAULT_FLAG(String DEFAULT_FLAG) {
this.DEFAULT_FLAG = DEFAULT_FLAG;
}
}

341
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/data/SourceWeightResult.java

@ -0,0 +1,341 @@
package io.sc.engine.rwa.calculator.data;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import java.util.HashMap;
/**
* 权重法风险缓释结果表
* @author chengjie
* @time 2025-05-15
*/
public class SourceWeightResult extends BaseEntity {
public SourceWeightResult(){
setColMap();
}
public SourceWeightResult(String[] row){
this.setColumnValue(row);
}
@Override
public void setColumnValue(String [] row){
if(row != null){
setID (row[0]);
setDATA_DT (row[1]);
setDEBT_ID (row[2]);
setBUSI_TYPE (row[3]);
setON_OFF_FLAG (row[4]);
setCUST_NO (row[5]);
setCUST_NAME (row[6]);
setEAD_TYPE_CODE (row[7]);
setEAD_TYPE_NAME (row[8]);
setEAD_TYPE_NUMBER (row[9]);
setASSET_AMT (row[10]);
setRESERVE (row[11]);
setCCF (row[12]);
setDEBT_RISK_WEIGHT (row[13]);
setEAD_WEIGHT (row[14]);
setCOLL_ID (row[15]);
setACCORD_RISK_TOOL_TYPE_CD (row[16]);
setACCORD_RISK_TOOL_TYPE_NM (row[17]);
setRISK_TOOL_RISK_WEIGHT (row[18]);
setRISK_TOLL_EXPO_TYPE_CODE (row[19]);
setCOLL_VALUE (row[20]);
setMITIG_AMT (row[21]);
setRWA_WEIGHT (row[22]);
setBELONG_ORG (row[23]);
setLTV (row[24]);
setRES_TERM (row[25]);
}
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("DEBT_ID",2);
colMap.put("BUSI_TYPE",3);
colMap.put("ON_OFF_FLAG",4);
colMap.put("CUST_NO",5);
colMap.put("CUST_NAME",6);
colMap.put("EAD_TYPE_CODE",7);
colMap.put("EAD_TYPE_NAME",8);
colMap.put("EAD_TYPE_NUMBER",9);
colMap.put("ASSET_AMT",10);
colMap.put("RESERVE",11);
colMap.put("CCF",12);
colMap.put("DEBT_RISK_WEIGHT",13);
colMap.put("EAD_WEIGHT",14);
colMap.put("COLL_ID",15);
colMap.put("ACCORD_RISK_TOOL_TYPE_CD",16);
colMap.put("ACCORD_RISK_TOOL_TYPE_NM",17);
colMap.put("RISK_TOOL_RISK_WEIGHT",18);
colMap.put("RISK_TOLL_EXPO_TYPE_CODE",19);
colMap.put("COLL_VALUE",20);
colMap.put("MITIG_AMT",21);
colMap.put("RWA_WEIGHT",22);
colMap.put("BELONG_ORG",23);
colMap.put("LTV",24);
colMap.put("RES_TERM",25);
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID; //ID
private String DATA_DT; //数据日期
private String DEBT_ID; //债项编号
private String BUSI_TYPE; //业务类型
private String ON_OFF_FLAG; //表内外标识
private String CUST_NO; //客户编号
private String CUST_NAME; //客户名称
private String EAD_TYPE_CODE; //风险暴露分类代码
private String EAD_TYPE_NAME; //风险暴露分类名称
private String EAD_TYPE_NUMBER; //风险暴露分类序号
private String ASSET_AMT; //资产余额
private String RESERVE; //计提准备金
private String CCF; //信用风险转换系数(CCF)
private String DEBT_RISK_WEIGHT; //债项风险权重
private String EAD_WEIGHT; //风险暴露EAD
private String COLL_ID; //风险缓释工具编号
private String ACCORD_RISK_TOOL_TYPE_CD; //合格缓释工具类型代码
private String ACCORD_RISK_TOOL_TYPE_NM; //合格缓释工具类型名称
private String RISK_TOOL_RISK_WEIGHT; //缓释工具风险权重
private String RISK_TOLL_EXPO_TYPE_CODE; //缓释工具风险暴露分类
private String COLL_VALUE; //风险缓释工具我行认定价值
private String MITIG_AMT; //已缓释金额
private String RWA_WEIGHT; //权重法风险加权资产
private String BELONG_ORG; //业务所属机构
private String LTV; //贷款价值比
private String RES_TERM; //剩余期限
public String getRES_TERM() {
return RES_TERM;
}
public void setRES_TERM(String RES_TERM) {
this.RES_TERM = RES_TERM;
}
public String getLTV() {
return LTV;
}
public void setLTV(String LTV) {
this.LTV = LTV;
}
@Override
public String getTable() {
return "RWA_S_WEIGHT_RESULT";
}
@Override
public Integer getColumnCount() {
return 32;
}
@Override
public String[] getColumnDataType() {
return new String[]{
"String","String","String","String","String","String","String","String","String","String","Double","Double","Double","Double","Double","String","String","String","String","String","Double","Double","Double","String","Double","Double"
};
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getDEBT_ID() {
return DEBT_ID;
}
public void setDEBT_ID(String DEBT_ID) {
this.DEBT_ID = DEBT_ID;
}
public String getBUSI_TYPE() {
return BUSI_TYPE;
}
public void setBUSI_TYPE(String BUSI_TYPE) {
this.BUSI_TYPE = BUSI_TYPE;
}
public String getON_OFF_FLAG() {
return ON_OFF_FLAG;
}
public void setON_OFF_FLAG(String ON_OFF_FLAG) {
this.ON_OFF_FLAG = ON_OFF_FLAG;
}
public String getCUST_NO() {
return CUST_NO;
}
public void setCUST_NO(String CUST_NO) {
this.CUST_NO = CUST_NO;
}
public String getCUST_NAME() {
return CUST_NAME;
}
public void setCUST_NAME(String CUST_NAME) {
this.CUST_NAME = CUST_NAME;
}
public String getEAD_TYPE_CODE() {
return EAD_TYPE_CODE;
}
public void setEAD_TYPE_CODE(String EAD_TYPE_CODE) {
this.EAD_TYPE_CODE = EAD_TYPE_CODE;
}
public String getEAD_TYPE_NAME() {
return EAD_TYPE_NAME;
}
public void setEAD_TYPE_NAME(String EAD_TYPE_NAME) {
this.EAD_TYPE_NAME = EAD_TYPE_NAME;
}
public String getEAD_TYPE_NUMBER() {
return EAD_TYPE_NUMBER;
}
public void setEAD_TYPE_NUMBER(String EAD_TYPE_NUMBER) {
this.EAD_TYPE_NUMBER = EAD_TYPE_NUMBER;
}
public String getASSET_AMT() {
return ASSET_AMT;
}
public void setASSET_AMT(String ASSET_AMT) {
this.ASSET_AMT = ASSET_AMT;
}
public String getRESERVE() {
return RESERVE;
}
public void setRESERVE(String RESERVE) {
this.RESERVE = RESERVE;
}
public String getCCF() {
return CCF;
}
public void setCCF(String CCF) {
this.CCF = CCF;
}
public String getDEBT_RISK_WEIGHT() {
return DEBT_RISK_WEIGHT;
}
public void setDEBT_RISK_WEIGHT(String DEBT_RISK_WEIGHT) {
this.DEBT_RISK_WEIGHT = DEBT_RISK_WEIGHT;
}
public String getEAD_WEIGHT() {
return EAD_WEIGHT;
}
public void setEAD_WEIGHT(String EAD_WEIGHT) {
this.EAD_WEIGHT = EAD_WEIGHT;
}
public String getCOLL_ID() {
return COLL_ID;
}
public void setCOLL_ID(String COLL_ID) {
this.COLL_ID = COLL_ID;
}
public String getACCORD_RISK_TOOL_TYPE_CD() {
return ACCORD_RISK_TOOL_TYPE_CD;
}
public void setACCORD_RISK_TOOL_TYPE_CD(String ACCORD_RISK_TOOL_TYPE_CD) {
this.ACCORD_RISK_TOOL_TYPE_CD = ACCORD_RISK_TOOL_TYPE_CD;
}
public String getACCORD_RISK_TOOL_TYPE_NM() {
return ACCORD_RISK_TOOL_TYPE_NM;
}
public void setACCORD_RISK_TOOL_TYPE_NM(String ACCORD_RISK_TOOL_TYPE_NM) {
this.ACCORD_RISK_TOOL_TYPE_NM = ACCORD_RISK_TOOL_TYPE_NM;
}
public String getRISK_TOOL_RISK_WEIGHT() {
return RISK_TOOL_RISK_WEIGHT;
}
public void setRISK_TOOL_RISK_WEIGHT(String RISK_TOOL_RISK_WEIGHT) {
this.RISK_TOOL_RISK_WEIGHT = RISK_TOOL_RISK_WEIGHT;
}
public String getRISK_TOLL_EXPO_TYPE_CODE() {
return RISK_TOLL_EXPO_TYPE_CODE;
}
public void setRISK_TOLL_EXPO_TYPE_CODE(String RISK_TOLL_EXPO_TYPE_CODE) {
this.RISK_TOLL_EXPO_TYPE_CODE = RISK_TOLL_EXPO_TYPE_CODE;
}
public String getCOLL_VALUE() {
return COLL_VALUE;
}
public void setCOLL_VALUE(String COLL_VALUE) {
this.COLL_VALUE = COLL_VALUE;
}
public String getMITIG_AMT() {
return MITIG_AMT;
}
public void setMITIG_AMT(String MITIG_AMT) {
this.MITIG_AMT = MITIG_AMT;
}
public String getRWA_WEIGHT() {
return RWA_WEIGHT;
}
public void setRWA_WEIGHT(String RWA_WEIGHT) {
this.RWA_WEIGHT = RWA_WEIGHT;
}
public String getBELONG_ORG() {
return BELONG_ORG;
}
public void setBELONG_ORG(String BELONG_ORG) {
this.BELONG_ORG = BELONG_ORG;
}
}

96
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/AccordRiskToolDtl.java

@ -0,0 +1,96 @@
package io.sc.engine.rwa.calculator.domain;
public class AccordRiskToolDtl {
public AccordRiskToolDtl(){ }
public AccordRiskToolDtl(String[] row){
setColumnValue(row);
}
private void setColumnValue(String[] row) {
if (row != null) {
setID(row[0]);
setACCORD_TOOL_ID(row[1]);
setRULE_NAME(row[2]);
setRULE_DATA(row[3]);
setRULE_DATA_TP(row[4]);
setMATCH_TP(row[5]);
setIS_EMPTY_RULE(row[6]);
}
}
private String ID; //主键
private String ACCORD_TOOL_ID; //缓释工具合格认定规则主表ID
private String RULE_NAME; //规则名称
private String RULE_DATA; //规则值
private String RULE_DATA_TP; //规则值数据类型
private String MATCH_TP; //值匹配方式
private String IS_EMPTY_RULE; //是否空规则
private String table = "RWA_P_ACCORD_RISK_TOOL_DTL"; //数据库表名称
private String insert = "insert into RWA_P_ACCORD_RISK_TOOL_DTL(ID,ACCORD_TOOL_ID,RULE_NAME,RULE_DATA,RULE_DATA_TP,MATCH_TP,IS_EMPTY_RULE) values(?,?,?,?,?,?,?)";
private String select = "select ID,ACCORD_TOOL_ID,RULE_NAME,RULE_DATA,RULE_DATA_TP,MATCH_TP,IS_EMPTY_RULE from RWA_P_ACCORD_RISK_TOOL_DTL order by ACCORD_TOOL_ID";
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getACCORD_TOOL_ID() {
return ACCORD_TOOL_ID;
}
public void setACCORD_TOOL_ID(String ACCORD_TOOL_ID) {
this.ACCORD_TOOL_ID = ACCORD_TOOL_ID;
}
public String getRULE_NAME() {
return RULE_NAME;
}
public void setRULE_NAME(String RULE_NAME) {
this.RULE_NAME = RULE_NAME;
}
public String getRULE_DATA() {
return RULE_DATA;
}
public void setRULE_DATA(String RULE_DATA) {
this.RULE_DATA = RULE_DATA;
}
public String getRULE_DATA_TP() {
return RULE_DATA_TP;
}
public void setRULE_DATA_TP(String RULE_DATA_TP) {
this.RULE_DATA_TP = RULE_DATA_TP;
}
public String getMATCH_TP() {
return MATCH_TP;
}
public void setMATCH_TP(String MATCH_TP) {
this.MATCH_TP = MATCH_TP;
}
public String getIS_EMPTY_RULE() {
return IS_EMPTY_RULE;
}
public void setIS_EMPTY_RULE(String IS_EMPTY_RULE) {
this.IS_EMPTY_RULE = IS_EMPTY_RULE;
}
public String getTable() {
return table;
}
public String getInsert() {
return insert;
}
public String getSelect() {
return select;
}
}

71
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/AccordRiskToolMain.java

@ -0,0 +1,71 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.utils.DateUtil;
public class AccordRiskToolMain {
public AccordRiskToolMain(){ }
public AccordRiskToolMain(String[] row){
setColumnValue(row);
}
private void setColumnValue(String[] row) {
if (row != null) {
setID(row[0]);
setCRBC_RISK_TOOL_TYPE_CD(row[1]);
setCRBC_RISK_TOOL_TYPE_NM(row[2]);
setRISK_WEIGHT(row[3]==null?9999:Double.valueOf(row[3]));
setRISK_TOOL_EXPO_CD(row[4]);
}
}
private String ID; //主键
private String CRBC_RISK_TOOL_TYPE_CD; //监管缓释工具类型代码
private String CRBC_RISK_TOOL_TYPE_NM; //监管缓释工具类型名称
private Double RISK_WEIGHT; //风险权重
private String RISK_TOOL_EXPO_CD; //缓释工具风险暴露分类
private String table = "RWA_P_ACCORD_RISK_TOOL_MAIN"; //CSV表名称
public String getRISK_TOOL_EXPO_CD() {
return RISK_TOOL_EXPO_CD;
}
public void setRISK_TOOL_EXPO_CD(String RISK_TOOL_EXPO_CD) {
this.RISK_TOOL_EXPO_CD = RISK_TOOL_EXPO_CD;
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getCRBC_RISK_TOOL_TYPE_CD() {
return CRBC_RISK_TOOL_TYPE_CD;
}
public void setCRBC_RISK_TOOL_TYPE_CD(String CRBC_RISK_TOOL_TYPE_CD) {
this.CRBC_RISK_TOOL_TYPE_CD = CRBC_RISK_TOOL_TYPE_CD;
}
public String getCRBC_RISK_TOOL_TYPE_NM() {
return CRBC_RISK_TOOL_TYPE_NM;
}
public void setCRBC_RISK_TOOL_TYPE_NM(String CRBC_RISK_TOOL_TYPE_NM) {
this.CRBC_RISK_TOOL_TYPE_NM = CRBC_RISK_TOOL_TYPE_NM;
}
public Double getRISK_WEIGHT() {
return RISK_WEIGHT;
}
public void setRISK_WEIGHT(Double RISK_WEIGHT) {
this.RISK_WEIGHT = RISK_WEIGHT;
}
public String getTable() {
return table;
}
}

326
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/AccordRiskToolParam.java

@ -0,0 +1,326 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import java.util.HashMap;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.*;
public class AccordRiskToolParam extends BaseEntity {
public AccordRiskToolParam(){ setColMap(); }
public AccordRiskToolParam(String[] row){
setColumnValue(row);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID(row[0]); //ID
setDATA_DT(row[1]); //数据日期
setCOLL_ID(row[2]); //风险缓释工具编号
setCOLL_VALUE(toEmptyDouble(row[3])); //风险缓释工具我行认定价值
setGUAR_CLS(row[4]); //缓释工具分类
setCRBC_CUST_TYPE_CD(row[5]); //监管交易对手类型代码
setCRBC_CUST_TYPE_NM(row[6]); //监管交易对手类别名称
setPOSITIVE_CORRELATION_FLAG(row[7]); //债务人与缓释工具实质正相关性标识
setPRUDENT_VALUATION_FLAG(row[8]); //审慎估值标识
setRE_EVALUAT_FREQUENCY(row[9]); //重估频率
setRECORD_CURR(row[10]); //币种错配标识
setIS_TERM_MORE_DEBT_TERM(row[11]); //缓释物到期日是否大于等于债项到期日
setIS_GUAR_TERM_MORE_DEBT_TERM(row[12]); //担保到期日是否大于等于债项到期日
setREG_COUNTRY_CHINA_FLAG(row[13]); //注册国是否中国
setBOND_TYPE(row[14]); //债券类型
setCUST_BELG_COUNTRY_RATING(row[15]); //注册国外部评级
setCUST_BANK_STANDARD_RATING(row[16]); //交易对手的商业银行标准信用评级
setTRADE_TERM(row[17]); //交易期限
setTRADE_TYPE(row[18]); //交易类型
setCREDIT_PROTECT_TYPE(row[19]); //信用保护
setDEBT_ID(row[20]); //债项编号
setCRBC_RISK_TOOL_TYPE_CD(row[21]); //监管缓释工具类型代码
setCRBC_RISK_TOOL_TYPE_NM(row[22]); //监管缓释工具类型名称
setPLEDGE_CLASS(row[23]); //内评法下缓释品风险分类
setEXCH_RATE(row[24]); //汇率
setLIQUIDITY_RATE(row[25]); //变现率
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private void setColMap(){
colMap = new HashMap<>();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("COLL_ID",2);
colMap.put("COLL_VALUE",3);
colMap.put("GUAR_CLS",4);
colMap.put("CRBC_CUST_TYPE_CD",5);
colMap.put("CRBC_CUST_TYPE_NM",6);
colMap.put("POSITIVE_CORRELATION_FLAG",7);
colMap.put("PRUDENT_VALUATION_FLAG",8);
colMap.put("RE_EVALUAT_FREQUENCY",9);
colMap.put("RECORD_CURR",10);
colMap.put("IS_TERM_MORE_DEBT_TERM",11);
colMap.put("IS_GUAR_TERM_MORE_DEBT_TERM",12);
colMap.put("REG_COUNTRY_CHINA_FLAG",13);
colMap.put("BOND_TYPE",14);
colMap.put("CUST_BELG_COUNTRY_RATING",15);
colMap.put("CUST_BANK_STANDARD_RATING",16);
colMap.put("TRADE_TERM",17);
colMap.put("TRADE_TYPE",18);
colMap.put("CREDIT_PROTECT_TYPE",19);
colMap.put("DEBT_ID",20);
colMap.put("CRBC_RISK_TOOL_TYPE_CD",21);
colMap.put("CRBC_RISK_TOOL_TYPE_NM",22);
colMap.put("PLEDGE_CLASS",23);
colMap.put("EXCH_RATE",24);
colMap.put("LIQUIDITY_RATE",25);
}
private String ID; //ID
private String DATA_DT; //数据日期
private String COLL_ID; //风险缓释工具编号
private Double COLL_VALUE; //风险缓释工具我行认定价值
private String GUAR_CLS; //缓释工具分类
private String CRBC_CUST_TYPE_CD; //监管交易对手类型代码
private String CRBC_CUST_TYPE_NM; //监管交易对手类别名称
private String POSITIVE_CORRELATION_FLAG; //债务人与缓释工具实质正相关性标识
private String PRUDENT_VALUATION_FLAG; //审慎估值标识
private String RE_EVALUAT_FREQUENCY; //重估频率
private String RECORD_CURR; //币种错配标识
private String IS_TERM_MORE_DEBT_TERM; //缓释物到期日是否大于等于债项到期日
private String IS_GUAR_TERM_MORE_DEBT_TERM; //担保到期日是否大于等于债项到期日
private String REG_COUNTRY_CHINA_FLAG; //注册国是否中国
private String BOND_TYPE; //债券类型
private String CUST_BELG_COUNTRY_RATING; //注册国外部评级
private String CUST_BANK_STANDARD_RATING; //交易对手的商业银行标准信用评级
private String TRADE_TERM; //交易期限
private String TRADE_TYPE; //交易类型
private String CREDIT_PROTECT_TYPE; //信用保护
private String DEBT_ID; //债项编号
private String CRBC_RISK_TOOL_TYPE_CD; //监管缓释工具类型代码
private String CRBC_RISK_TOOL_TYPE_NM; //监管缓释工具类型名称
private String PLEDGE_CLASS; //内评法下缓释品风险分类
private String EXCH_RATE; //汇率
private String LIQUIDITY_RATE; //变现率
public String getPLEDGE_CLASS() {
return PLEDGE_CLASS;
}
public void setPLEDGE_CLASS(String PLEDGE_CLASS) {
this.PLEDGE_CLASS = PLEDGE_CLASS;
}
public String getEXCH_RATE() {
return EXCH_RATE;
}
public void setEXCH_RATE(String EXCH_RATE) {
this.EXCH_RATE = EXCH_RATE;
}
public String getLIQUIDITY_RATE() {
return LIQUIDITY_RATE;
}
public void setLIQUIDITY_RATE(String LIQUIDITY_RATE) {
this.LIQUIDITY_RATE = LIQUIDITY_RATE;
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getCOLL_ID() {
return COLL_ID;
}
public void setCOLL_ID(String COLL_ID) {
this.COLL_ID = COLL_ID;
}
public Double getCOLL_VALUE() {
return COLL_VALUE;
}
public void setCOLL_VALUE(Double COLL_VALUE) {
this.COLL_VALUE = COLL_VALUE;
}
public String getGUAR_CLS() {
return GUAR_CLS;
}
public void setGUAR_CLS(String GUAR_CLS) {
this.GUAR_CLS = GUAR_CLS;
}
public String getCRBC_CUST_TYPE_CD() {
return CRBC_CUST_TYPE_CD;
}
public void setCRBC_CUST_TYPE_CD(String CRBC_CUST_TYPE_CD) {
this.CRBC_CUST_TYPE_CD = CRBC_CUST_TYPE_CD;
}
public String getCRBC_CUST_TYPE_NM() {
return CRBC_CUST_TYPE_NM;
}
public void setCRBC_CUST_TYPE_NM(String CRBC_CUST_TYPE_NM) {
this.CRBC_CUST_TYPE_NM = CRBC_CUST_TYPE_NM;
}
public String getPOSITIVE_CORRELATION_FLAG() {
return POSITIVE_CORRELATION_FLAG;
}
public void setPOSITIVE_CORRELATION_FLAG(String POSITIVE_CORRELATION_FLAG) {
this.POSITIVE_CORRELATION_FLAG = POSITIVE_CORRELATION_FLAG;
}
public String getPRUDENT_VALUATION_FLAG() {
return PRUDENT_VALUATION_FLAG;
}
public void setPRUDENT_VALUATION_FLAG(String PRUDENT_VALUATION_FLAG) {
this.PRUDENT_VALUATION_FLAG = PRUDENT_VALUATION_FLAG;
}
public String getRE_EVALUAT_FREQUENCY() {
return RE_EVALUAT_FREQUENCY;
}
public void setRE_EVALUAT_FREQUENCY(String RE_EVALUAT_FREQUENCY) {
this.RE_EVALUAT_FREQUENCY = RE_EVALUAT_FREQUENCY;
}
public String getRECORD_CURR() {
return RECORD_CURR;
}
public void setRECORD_CURR(String RECORD_CURR) {
this.RECORD_CURR = RECORD_CURR;
}
public String getIS_TERM_MORE_DEBT_TERM() {
return IS_TERM_MORE_DEBT_TERM;
}
public void setIS_TERM_MORE_DEBT_TERM(String IS_TERM_MORE_DEBT_TERM) {
this.IS_TERM_MORE_DEBT_TERM = IS_TERM_MORE_DEBT_TERM;
}
public String getIS_GUAR_TERM_MORE_DEBT_TERM() {
return IS_GUAR_TERM_MORE_DEBT_TERM;
}
public void setIS_GUAR_TERM_MORE_DEBT_TERM(String IS_GUAR_TERM_MORE_DEBT_TERM) {
this.IS_GUAR_TERM_MORE_DEBT_TERM = IS_GUAR_TERM_MORE_DEBT_TERM;
}
public String getREG_COUNTRY_CHINA_FLAG() {
return REG_COUNTRY_CHINA_FLAG;
}
public void setREG_COUNTRY_CHINA_FLAG(String REG_COUNTRY_CHINA_FLAG) {
this.REG_COUNTRY_CHINA_FLAG = REG_COUNTRY_CHINA_FLAG;
}
public String getBOND_TYPE() {
return BOND_TYPE;
}
public void setBOND_TYPE(String BOND_TYPE) {
this.BOND_TYPE = BOND_TYPE;
}
public String getCUST_BELG_COUNTRY_RATING() {
return CUST_BELG_COUNTRY_RATING;
}
public void setCUST_BELG_COUNTRY_RATING(String CUST_BELG_COUNTRY_RATING) {
this.CUST_BELG_COUNTRY_RATING = CUST_BELG_COUNTRY_RATING;
}
public String getCUST_BANK_STANDARD_RATING() {
return CUST_BANK_STANDARD_RATING;
}
public void setCUST_BANK_STANDARD_RATING(String CUST_BANK_STANDARD_RATING) {
this.CUST_BANK_STANDARD_RATING = CUST_BANK_STANDARD_RATING;
}
public String getTRADE_TERM() {
return TRADE_TERM;
}
public void setTRADE_TERM(String TRADE_TERM) {
this.TRADE_TERM = TRADE_TERM;
}
public String getTRADE_TYPE() {
return TRADE_TYPE;
}
public void setTRADE_TYPE(String TRADE_TYPE) {
this.TRADE_TYPE = TRADE_TYPE;
}
public String getCREDIT_PROTECT_TYPE() {
return CREDIT_PROTECT_TYPE;
}
public void setCREDIT_PROTECT_TYPE(String CREDIT_PROTECT_TYPE) {
this.CREDIT_PROTECT_TYPE = CREDIT_PROTECT_TYPE;
}
public String getDEBT_ID() {
return DEBT_ID;
}
public void setDEBT_ID(String DEBT_ID) {
this.DEBT_ID = DEBT_ID;
}
public String getCRBC_RISK_TOOL_TYPE_CD() {
return CRBC_RISK_TOOL_TYPE_CD;
}
public void setCRBC_RISK_TOOL_TYPE_CD(String CRBC_RISK_TOOL_TYPE_CD) {
this.CRBC_RISK_TOOL_TYPE_CD = CRBC_RISK_TOOL_TYPE_CD;
}
public String getCRBC_RISK_TOOL_TYPE_NM() {
return CRBC_RISK_TOOL_TYPE_NM;
}
public void setCRBC_RISK_TOOL_TYPE_NM(String CRBC_RISK_TOOL_TYPE_NM) {
this.CRBC_RISK_TOOL_TYPE_NM = CRBC_RISK_TOOL_TYPE_NM;
}
public String getTable() {
return "RWA_C_ACCORD_RISK_TOOL_PARAM";
}
@Override
public Integer getColumnCount() {
return 32;
}
}

248
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/AccordRiskToolRecogn.java

@ -0,0 +1,248 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
/**
* 缓释品风险权重识别
*/
public class AccordRiskToolRecogn extends BaseEntity {
public AccordRiskToolRecogn(){}
public AccordRiskToolRecogn(String[] row){
setColumnValue(row);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID(row[0]); //主键
setGUAR_CLS(row[1]); //缓释工具分类
setCRBC_RISK_TOOL_TYPE_CD(row[2]); //监管缓释工具类型代码
setCRBC_RISK_TOOL_TYPE_NM(row[3]); //监管缓释工具类型名称
setCRBC_CUST_TYPE_CD(row[4]); //监管交易对手类型代码
setCRBC_CUST_TYPE_NM(row[5]); //监管交易对手类别名称
setPOSITIVE_CORRELATION_FLAG(row[6]); //债务人与缓释工具实质正相关性标识
setPRUDENT_VALUATION_FLAG(row[7]); //审慎估值标识
setRE_EVALUAT_FREQUENCY(row[8]); //重估频率
setRECORD_CURR(row[9]); //币种错配标识
setIS_TERM__DEBT_TERM(row[10]); //缓释物到期日是否大于等于债项到期日
setIS_GUAR_TERM_MORE_DEBT_TERM(row[11]); //担保到期日是否大于等于债项到期日
setREG_COUNTRY_CHINA_FLAG(row[12]); //注册国是否中国
setBOND_TYPE(row[13]); //债券类型
setCUST_BELG_COUNTRY_RATING(row[14]); //注册国外部评级
setCUST_BANK_STANDARD_RATING(row[15]); //交易对手的商业银行标准信用评级
setTRADE_TERM(row[16]); //交易期限
setTRADE_TYPE(row[17]); //交易类型
setCREDIT_PROTECT_TYPE(row[18]); //信用保护
setRISK_WEIGHT(row[19]==null?9999:Double.valueOf(row[19])); //风险权重
setRISK_TOOL_EXPO_CD(row[20]); //缓释工具风险暴露分类
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID; //主键
private String GUAR_CLS; //缓释工具分类
private String CRBC_RISK_TOOL_TYPE_CD; //监管缓释工具类型代码
private String CRBC_RISK_TOOL_TYPE_NM; //监管缓释工具类型名称
private String CRBC_CUST_TYPE_CD; //监管交易对手类型代码
private String CRBC_CUST_TYPE_NM; //监管交易对手类别名称
private String POSITIVE_CORRELATION_FLAG; //债务人与缓释工具实质正相关性标识
private String PRUDENT_VALUATION_FLAG; //审慎估值标识
private String RE_EVALUAT_FREQUENCY; //重估频率
private String RECORD_CURR; //币种错配标识
private String IS_TERM__DEBT_TERM; //缓释物到期日是否大于等于债项到期日
private String IS_GUAR_TERM_MORE_DEBT_TERM; //担保到期日是否大于等于债项到期日
private String REG_COUNTRY_CHINA_FLAG; //注册国是否中国
private String BOND_TYPE; //债券类型
private String CUST_BELG_COUNTRY_RATING; //注册国外部评级
private String CUST_BANK_STANDARD_RATING; //交易对手的商业银行标准信用评级
private String TRADE_TERM; //交易期限
private String TRADE_TYPE; //交易类型
private String CREDIT_PROTECT_TYPE; //信用保护
private Double RISK_WEIGHT; //风险权重
private String RISK_TOOL_EXPO_CD; //缓释工具风险暴露分类
public String getRISK_TOOL_EXPO_CD() {
return RISK_TOOL_EXPO_CD;
}
public void setRISK_TOOL_EXPO_CD(String RISK_TOOL_EXPO_CD) {
this.RISK_TOOL_EXPO_CD = RISK_TOOL_EXPO_CD;
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getCRBC_RISK_TOOL_TYPE_CD() {
return CRBC_RISK_TOOL_TYPE_CD;
}
public void setCRBC_RISK_TOOL_TYPE_CD(String CRBC_RISK_TOOL_TYPE_CD) {
this.CRBC_RISK_TOOL_TYPE_CD = CRBC_RISK_TOOL_TYPE_CD;
}
public String getCRBC_RISK_TOOL_TYPE_NM() {
return CRBC_RISK_TOOL_TYPE_NM;
}
public void setCRBC_RISK_TOOL_TYPE_NM(String CRBC_RISK_TOOL_TYPE_NM) {
this.CRBC_RISK_TOOL_TYPE_NM = CRBC_RISK_TOOL_TYPE_NM;
}
public String getGUAR_CLS() {
return GUAR_CLS;
}
public void setGUAR_CLS(String GUAR_CLS) {
this.GUAR_CLS = GUAR_CLS;
}
public String getCRBC_CUST_TYPE_CD() {
return CRBC_CUST_TYPE_CD;
}
public void setCRBC_CUST_TYPE_CD(String CRBC_CUST_TYPE_CD) {
this.CRBC_CUST_TYPE_CD = CRBC_CUST_TYPE_CD;
}
public String getCRBC_CUST_TYPE_NM() {
return CRBC_CUST_TYPE_NM;
}
public void setCRBC_CUST_TYPE_NM(String CRBC_CUST_TYPE_NM) {
this.CRBC_CUST_TYPE_NM = CRBC_CUST_TYPE_NM;
}
public String getPOSITIVE_CORRELATION_FLAG() {
return POSITIVE_CORRELATION_FLAG;
}
public void setPOSITIVE_CORRELATION_FLAG(String POSITIVE_CORRELATION_FLAG) {
this.POSITIVE_CORRELATION_FLAG = POSITIVE_CORRELATION_FLAG;
}
public String getPRUDENT_VALUATION_FLAG() {
return PRUDENT_VALUATION_FLAG;
}
public void setPRUDENT_VALUATION_FLAG(String PRUDENT_VALUATION_FLAG) {
this.PRUDENT_VALUATION_FLAG = PRUDENT_VALUATION_FLAG;
}
public String getRE_EVALUAT_FREQUENCY() {
return RE_EVALUAT_FREQUENCY;
}
public void setRE_EVALUAT_FREQUENCY(String RE_EVALUAT_FREQUENCY) {
this.RE_EVALUAT_FREQUENCY = RE_EVALUAT_FREQUENCY;
}
public String getRECORD_CURR() {
return RECORD_CURR;
}
public void setRECORD_CURR(String RECORD_CURR) {
this.RECORD_CURR = RECORD_CURR;
}
public String getIS_TERM__DEBT_TERM() {
return IS_TERM__DEBT_TERM;
}
public void setIS_TERM__DEBT_TERM(String IS_TERM__DEBT_TERM) {
this.IS_TERM__DEBT_TERM = IS_TERM__DEBT_TERM;
}
public String getIS_GUAR_TERM_MORE_DEBT_TERM() {
return IS_GUAR_TERM_MORE_DEBT_TERM;
}
public void setIS_GUAR_TERM_MORE_DEBT_TERM(String IS_GUAR_TERM_MORE_DEBT_TERM) {
this.IS_GUAR_TERM_MORE_DEBT_TERM = IS_GUAR_TERM_MORE_DEBT_TERM;
}
public String getREG_COUNTRY_CHINA_FLAG() {
return REG_COUNTRY_CHINA_FLAG;
}
public void setREG_COUNTRY_CHINA_FLAG(String REG_COUNTRY_CHINA_FLAG) {
this.REG_COUNTRY_CHINA_FLAG = REG_COUNTRY_CHINA_FLAG;
}
public String getBOND_TYPE() {
return BOND_TYPE;
}
public void setBOND_TYPE(String BOND_TYPE) {
this.BOND_TYPE = BOND_TYPE;
}
public String getCUST_BELG_COUNTRY_RATING() {
return CUST_BELG_COUNTRY_RATING;
}
public void setCUST_BELG_COUNTRY_RATING(String CUST_BELG_COUNTRY_RATING) {
this.CUST_BELG_COUNTRY_RATING = CUST_BELG_COUNTRY_RATING;
}
public String getCUST_BANK_STANDARD_RATING() {
return CUST_BANK_STANDARD_RATING;
}
public void setCUST_BANK_STANDARD_RATING(String CUST_BANK_STANDARD_RATING) {
this.CUST_BANK_STANDARD_RATING = CUST_BANK_STANDARD_RATING;
}
public String getTRADE_TERM() {
return TRADE_TERM;
}
public void setTRADE_TERM(String TRADE_TERM) {
this.TRADE_TERM = TRADE_TERM;
}
public String getTRADE_TYPE() {
return TRADE_TYPE;
}
public void setTRADE_TYPE(String TRADE_TYPE) {
this.TRADE_TYPE = TRADE_TYPE;
}
public String getCREDIT_PROTECT_TYPE() {
return CREDIT_PROTECT_TYPE;
}
public void setCREDIT_PROTECT_TYPE(String CREDIT_PROTECT_TYPE) {
this.CREDIT_PROTECT_TYPE = CREDIT_PROTECT_TYPE;
}
public Double getRISK_WEIGHT() {
return RISK_WEIGHT;
}
public void setRISK_WEIGHT(Double RISK_WEIGHT) {
this.RISK_WEIGHT = RISK_WEIGHT;
}
@Override
public String getTable() {
return "RWA_P_ACCORD_RISK_TOOL_RECOGN";
}
@Override
public Integer getColumnCount() {
return 27;
}
}

154
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/AccordRiskToolResult.java

@ -0,0 +1,154 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.platform.util.StringUtil;
/**
* 合格缓释工具缓释结果
* @author chengjie
* @time 2023-07-05
*/
public class AccordRiskToolResult {
public AccordRiskToolResult(){}
public AccordRiskToolResult(String[] row){
setColumnValue(row);
}
public void setColumnValue(String[] row) {
if (row != null) {
setDATA_DT(row[0]);
setCOLL_ID(row[1]);
setCOLL_VALUE(StringUtil.isNullOrEmpty(row[2])?0.0:Double.valueOf(row[2]));
setACCORD_RISK_TOOL_TYPE_CD(row[3]);
setACCORD_RISK_TOOL_TYPE_NM(row[4]);
setRISK_WEIGHT(StringUtil.isNullOrEmpty(row[5])?0.0:Double.valueOf(row[5]));
setRISK_TOOL_EXPO_CD(row[6]);
setSURPLUS_VALUE(StringUtil.isNullOrEmpty(row[7])?0.0:Double.valueOf(row[7]));
setMITIG_AMT(StringUtil.isNullOrEmpty(row[8])?0.0:Double.valueOf(row[8]));
setDEBT_ID(row[9]);
}
}
private String DATA_DT; //数据日期
private String COLL_ID; //风险缓释工具编号
private Double COLL_VALUE; //风险缓释工具我行认定价值
private String ACCORD_RISK_TOOL_TYPE_CD; //合格缓释工具类型代码
private String ACCORD_RISK_TOOL_TYPE_NM; //合格缓释工具类型名称
private Double RISK_WEIGHT; //缓释工具风险权重
private String RISK_TOOL_EXPO_CD; //缓释工具风险暴露分类
private Double SURPLUS_VALUE; //缓释工具剩余价值
private Double MITIG_AMT; //已缓释金额
private String DEBT_ID; //债项编号
private String table = "RWA_R_ACCORD_RISK_TOOL_RESULT";
public String getTable() {
return table;
}
public String pass2String(){
StringBuffer sf = new StringBuffer();
sf.append(this.DATA_DT).append(",");
sf.append(this.COLL_ID).append(",");
sf.append(this.COLL_VALUE).append(",");
sf.append(this.ACCORD_RISK_TOOL_TYPE_CD).append(",");
sf.append(this.ACCORD_RISK_TOOL_TYPE_NM).append(",");
sf.append(this.RISK_WEIGHT).append(",");
sf.append(this.RISK_TOOL_EXPO_CD).append(",");
sf.append(this.SURPLUS_VALUE).append(",");
sf.append(this.MITIG_AMT).append(",");
sf.append(this.DEBT_ID);
return sf.toString();
}
public String[] parse2String(){
return new String[]{
this.DATA_DT,
this.COLL_ID,
this.COLL_VALUE==null?"":String.valueOf(this.COLL_VALUE),
this.ACCORD_RISK_TOOL_TYPE_CD,
this.ACCORD_RISK_TOOL_TYPE_NM,
this.RISK_WEIGHT==null?"":String.valueOf(this.RISK_WEIGHT),
this.RISK_TOOL_EXPO_CD,
this.SURPLUS_VALUE==null?"":String.valueOf(this.SURPLUS_VALUE),
this.MITIG_AMT==null?"":String.valueOf(this.MITIG_AMT),
this.DEBT_ID
};
}
public String getRISK_TOOL_EXPO_CD() {
return RISK_TOOL_EXPO_CD;
}
public void setRISK_TOOL_EXPO_CD(String RISK_TOOL_EXPO_CD) {
this.RISK_TOOL_EXPO_CD = RISK_TOOL_EXPO_CD;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getDEBT_ID() {
return DEBT_ID;
}
public void setDEBT_ID(String DEBT_ID) {
this.DEBT_ID = DEBT_ID;
}
public Double getSURPLUS_VALUE() {
return SURPLUS_VALUE;
}
public void setSURPLUS_VALUE(Double SURPLUS_VALUE) {
this.SURPLUS_VALUE = SURPLUS_VALUE;
}
public Double getCOLL_VALUE() {
return COLL_VALUE;
}
public void setCOLL_VALUE(Double COLL_VALUE) {
this.COLL_VALUE = COLL_VALUE;
}
public String getCOLL_ID() {
return COLL_ID;
}
public String getACCORD_RISK_TOOL_TYPE_CD() {
return ACCORD_RISK_TOOL_TYPE_CD;
}
public String getACCORD_RISK_TOOL_TYPE_NM() {
return ACCORD_RISK_TOOL_TYPE_NM;
}
public void setCOLL_ID(String COLL_ID) {
this.COLL_ID = COLL_ID;
}
public void setACCORD_RISK_TOOL_TYPE_CD(String ACCORD_RISK_TOOL_TYPE_CD) {
this.ACCORD_RISK_TOOL_TYPE_CD = ACCORD_RISK_TOOL_TYPE_CD;
}
public void setACCORD_RISK_TOOL_TYPE_NM(String ACCORD_RISK_TOOL_TYPE_NM) {
this.ACCORD_RISK_TOOL_TYPE_NM = ACCORD_RISK_TOOL_TYPE_NM;
}
public Double getRISK_WEIGHT() {
return RISK_WEIGHT;
}
public void setRISK_WEIGHT(Double RISK_WEIGHT) {
this.RISK_WEIGHT = RISK_WEIGHT;
}
public Double getMITIG_AMT() {
return MITIG_AMT;
}
public void setMITIG_AMT(Double MITIG_AMT) {
this.MITIG_AMT = MITIG_AMT;
}
}

448
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/BnfxqzParam.java

@ -0,0 +1,448 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import io.sc.engine.rwa.calculator.utils.DateUtil;
import java.util.Date;
public class BnfxqzParam extends BaseEntity {
public BnfxqzParam(){ }
public BnfxqzParam(String[] row){
setColumnValue(row);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID(row[0]);
setEAD_TYPE_PRIORITY(row[1]);
setEAD_TYPE_CODE(row[2]);
setEAD_TYPE_NUMBER(row[3]);
setEAD_TYPE_NAME(row[4]);
setRISK_WEIGHT(row[5].equals("")?null:Double.valueOf(row[5]));
setCUST_TYPE_CODE(row[6]);
setCUST_TYPE_NAME(row[7]);
setCOUNTRY_AREA_GRADE(row[8]);
setBOUND_TYPE(row[9]);
setSPE_LOAN_TYPE(row[10]);
setHOUSE_EAD_TYPE(row[11]);
setOUT_GRADE(row[12]);
setIN_STAND_GRADE(row[13]);
setRETAIL_FLAG(row[14]);
setPASS_PARTY_FLAG(row[15]);
setPRUDENT_HOUSE_LOAN_FLAG(row[16]);
setPRUDENT_HOUSE_EAD_FLAG(row[17]);
setHOUSE_CASH_FLAG(row[18]);
setLTV_MIN(row[19].equals("")?null:Double.valueOf(row[19]));
setLTV_MAX(row[20].equals("")?null:Double.valueOf(row[20]));
setLTV(row[21]);
setCURRENCY_MISMATCH_FLAG(row[22]);
setSPE_BOUND_FLAG(row[23]);
setJUNIOR_DEBT_FLAG(row[24]);
setCROSS_BORDER_TRADE_FLAG(row[25]);
setTERM_MIN(row[26].equals("")?null:Integer.valueOf(row[26]));
setTERM_MAX(row[27].equals("")?null:Integer.valueOf(row[27]));
setTERM(row[28]);
setOPERATION_PHASE(row[29]);
setRESERVE_ASSET_BAL_RATE_MIN(row[30].equals("")?null:Double.valueOf(row[30]));
setRESERVE_ASSET_BAL_RATE_MAX(row[31].equals("")?null:Double.valueOf(row[31]));
setRESERVE_ASSET_BAL_RATE(row[32]);
setINVESTMENT_FLAG(row[33]);
setDEFAULT_FLAG(row[34]);
setREMARK(row[35]);
setIS_VALID(row[36]);
}
}
public String[] toArray(){
return new String[]{
getID(),
getEAD_TYPE_PRIORITY(),
getEAD_TYPE_CODE(),
getEAD_TYPE_NUMBER(),
getEAD_TYPE_NAME(),
getRISK_WEIGHT()==null?"":String.valueOf(getRISK_WEIGHT()),
getCUST_TYPE_CODE(),
getCUST_TYPE_NAME(),
getCOUNTRY_AREA_GRADE(),
getBOUND_TYPE(),
getSPE_LOAN_TYPE(),
getHOUSE_EAD_TYPE(),
getOUT_GRADE(),
getIN_STAND_GRADE(),
getRETAIL_FLAG(),
getPASS_PARTY_FLAG(),
getPRUDENT_HOUSE_LOAN_FLAG(),
getPRUDENT_HOUSE_EAD_FLAG(),
getHOUSE_CASH_FLAG(),
getLTV_MIN()==null?"":String.valueOf(getLTV_MIN()),
getLTV_MAX()==null?"":String.valueOf(getLTV_MAX()),
getLTV(),
getCURRENCY_MISMATCH_FLAG(),
getSPE_BOUND_FLAG(),
getJUNIOR_DEBT_FLAG(),
getCROSS_BORDER_TRADE_FLAG(),
getTERM_MIN()==null?"":String.valueOf(getTERM_MIN()),
getTERM_MAX()==null?"":String.valueOf(getTERM_MAX()),
getTERM(),
getOPERATION_PHASE(),
getRESERVE_ASSET_BAL_RATE_MIN()==null?"":String.valueOf(getRESERVE_ASSET_BAL_RATE_MIN()),
getRESERVE_ASSET_BAL_RATE_MAX()==null?"":String.valueOf(getRESERVE_ASSET_BAL_RATE_MAX()),
getRESERVE_ASSET_BAL_RATE(),
getINVESTMENT_FLAG(),
getDEFAULT_FLAG(),
getREMARK(),
getIS_VALID()
};
}
private String ID; //主键ID
private String EAD_TYPE_PRIORITY; //风险暴露划分顺序
private String EAD_TYPE_CODE; //风险暴露分类代码
private String EAD_TYPE_NUMBER; //风险暴露分类序号
private String EAD_TYPE_NAME; //风险暴露分类名称
private Double RISK_WEIGHT; //风险权重
private String CUST_TYPE_CODE; //客户类型代码
private String CUST_TYPE_NAME; //客户类型名称
private String COUNTRY_AREA_GRADE; //所在国家或地区评级(中央政府、中央银行、境外公共部门实体)
private String BOUND_TYPE; //债券类型
private String SPE_LOAN_TYPE; //专业贷款类型
private String HOUSE_EAD_TYPE; //房地产风险暴露类型
private String OUT_GRADE; //外部评级
private String IN_STAND_GRADE; //商业银行标准信用评估结果
private String RETAIL_FLAG; //监管零售标识
private String PASS_PARTY_FLAG; //合格交易者标识
private String PRUDENT_HOUSE_LOAN_FLAG; //是否审慎的房地产开发贷款
private String PRUDENT_HOUSE_EAD_FLAG; //是否审慎房地产抵押风险暴露
private String HOUSE_CASH_FLAG; //还款实质是否依赖于房地产所产生的现金流
private Double LTV_MIN; //LTV下限
private Double LTV_MAX; //LTV上限
private String LTV; //LTV
private String CURRENCY_MISMATCH_FLAG; //是否存在币种错配情形
private String SPE_BOUND_FLAG; //专项债券标识
private String JUNIOR_DEBT_FLAG; //次级债标识
private String CROSS_BORDER_TRADE_FLAG; //跨境商品贸易标识
private Integer TERM_MIN; //期限下限
private Integer TERM_MAX; //期限上限
private String TERM; //期限
private String OPERATION_PHASE; //运营阶段
private Double RESERVE_ASSET_BAL_RATE_MIN; //减值准备/资产余额下限
private Double RESERVE_ASSET_BAL_RATE_MAX; //减值准备/资产余额上限
private String RESERVE_ASSET_BAL_RATE; //减值准备/资产余额
private String INVESTMENT_FLAG; //投资级标识
private String DEFAULT_FLAG; //违约标识
private String REMARK; //备注
private String IS_VALID; //是否有效
public String getID() {
return ID;
}
public String getEAD_TYPE_PRIORITY() {
return EAD_TYPE_PRIORITY;
}
public String getEAD_TYPE_CODE() {
return EAD_TYPE_CODE;
}
public String getEAD_TYPE_NUMBER() {
return EAD_TYPE_NUMBER;
}
public String getEAD_TYPE_NAME() {
return EAD_TYPE_NAME;
}
public Double getRISK_WEIGHT() {
return RISK_WEIGHT;
}
public String getCUST_TYPE_CODE() {
return CUST_TYPE_CODE;
}
public String getCUST_TYPE_NAME() {
return CUST_TYPE_NAME;
}
public String getCOUNTRY_AREA_GRADE() {
return COUNTRY_AREA_GRADE;
}
public String getBOUND_TYPE() {
return BOUND_TYPE;
}
public String getSPE_LOAN_TYPE() {
return SPE_LOAN_TYPE;
}
public String getHOUSE_EAD_TYPE() {
return HOUSE_EAD_TYPE;
}
public String getOUT_GRADE() {
return OUT_GRADE;
}
public String getIN_STAND_GRADE() {
return IN_STAND_GRADE;
}
public String getRETAIL_FLAG() {
return RETAIL_FLAG;
}
public String getPASS_PARTY_FLAG() {
return PASS_PARTY_FLAG;
}
public String getPRUDENT_HOUSE_LOAN_FLAG() {
return PRUDENT_HOUSE_LOAN_FLAG;
}
public String getPRUDENT_HOUSE_EAD_FLAG() {
return PRUDENT_HOUSE_EAD_FLAG;
}
public String getHOUSE_CASH_FLAG() {
return HOUSE_CASH_FLAG;
}
public Double getLTV_MIN() {
return LTV_MIN;
}
public Double getLTV_MAX() {
return LTV_MAX;
}
public String getLTV() {
return LTV;
}
public String getCURRENCY_MISMATCH_FLAG() {
return CURRENCY_MISMATCH_FLAG;
}
public String getSPE_BOUND_FLAG() {
return SPE_BOUND_FLAG;
}
public String getJUNIOR_DEBT_FLAG() {
return JUNIOR_DEBT_FLAG;
}
public String getCROSS_BORDER_TRADE_FLAG() {
return CROSS_BORDER_TRADE_FLAG;
}
public Integer getTERM_MIN() {
return TERM_MIN;
}
public Integer getTERM_MAX() {
return TERM_MAX;
}
public String getTERM() {
return TERM;
}
public String getOPERATION_PHASE() {
return OPERATION_PHASE;
}
public Double getRESERVE_ASSET_BAL_RATE_MIN() {
return RESERVE_ASSET_BAL_RATE_MIN;
}
public Double getRESERVE_ASSET_BAL_RATE_MAX() {
return RESERVE_ASSET_BAL_RATE_MAX;
}
public String getRESERVE_ASSET_BAL_RATE() {
return RESERVE_ASSET_BAL_RATE;
}
public String getINVESTMENT_FLAG() {
return INVESTMENT_FLAG;
}
public String getDEFAULT_FLAG() {
return DEFAULT_FLAG;
}
public String getREMARK() {
return REMARK;
}
public void setID(String ID) {
this.ID = ID;
}
public void setEAD_TYPE_PRIORITY(String EAD_TYPE_PRIORITY) {
this.EAD_TYPE_PRIORITY = EAD_TYPE_PRIORITY;
}
public void setEAD_TYPE_CODE(String EAD_TYPE_CODE) {
this.EAD_TYPE_CODE = EAD_TYPE_CODE;
}
public void setEAD_TYPE_NUMBER(String EAD_TYPE_NUMBER) {
this.EAD_TYPE_NUMBER = EAD_TYPE_NUMBER;
}
public void setEAD_TYPE_NAME(String EAD_TYPE_NAME) {
this.EAD_TYPE_NAME = EAD_TYPE_NAME;
}
public void setRISK_WEIGHT(Double RISK_WEIGHT) {
this.RISK_WEIGHT = RISK_WEIGHT;
}
public void setCUST_TYPE_CODE(String CUST_TYPE_CODE) {
this.CUST_TYPE_CODE = CUST_TYPE_CODE;
}
public void setCUST_TYPE_NAME(String CUST_TYPE_NAME) {
this.CUST_TYPE_NAME = CUST_TYPE_NAME;
}
public void setCOUNTRY_AREA_GRADE(String COUNTRY_AREA_GRADE) {
this.COUNTRY_AREA_GRADE = COUNTRY_AREA_GRADE;
}
public void setBOUND_TYPE(String BOUND_TYPE) {
this.BOUND_TYPE = BOUND_TYPE;
}
public void setSPE_LOAN_TYPE(String SPE_LOAN_TYPE) {
this.SPE_LOAN_TYPE = SPE_LOAN_TYPE;
}
public void setHOUSE_EAD_TYPE(String HOUSE_EAD_TYPE) {
this.HOUSE_EAD_TYPE = HOUSE_EAD_TYPE;
}
public void setOUT_GRADE(String OUT_GRADE) {
this.OUT_GRADE = OUT_GRADE;
}
public void setIN_STAND_GRADE(String IN_STAND_GRADE) {
this.IN_STAND_GRADE = IN_STAND_GRADE;
}
public void setRETAIL_FLAG(String RETAIL_FLAG) {
this.RETAIL_FLAG = RETAIL_FLAG;
}
public void setPASS_PARTY_FLAG(String PASS_PARTY_FLAG) {
this.PASS_PARTY_FLAG = PASS_PARTY_FLAG;
}
public void setPRUDENT_HOUSE_LOAN_FLAG(String PRUDENT_HOUSE_LOAN_FLAG) {
this.PRUDENT_HOUSE_LOAN_FLAG = PRUDENT_HOUSE_LOAN_FLAG;
}
public void setPRUDENT_HOUSE_EAD_FLAG(String PRUDENT_HOUSE_EAD_FLAG) {
this.PRUDENT_HOUSE_EAD_FLAG = PRUDENT_HOUSE_EAD_FLAG;
}
public void setHOUSE_CASH_FLAG(String HOUSE_CASH_FLAG) {
this.HOUSE_CASH_FLAG = HOUSE_CASH_FLAG;
}
public void setLTV_MIN(Double LTV_MIN) {
this.LTV_MIN = LTV_MIN;
}
public void setLTV_MAX(Double LTV_MAX) {
this.LTV_MAX = LTV_MAX;
}
public void setLTV(String LTV) {
this.LTV = LTV;
}
public void setCURRENCY_MISMATCH_FLAG(String CURRENCY_MISMATCH_FLAG) {
this.CURRENCY_MISMATCH_FLAG = CURRENCY_MISMATCH_FLAG;
}
public void setSPE_BOUND_FLAG(String SPE_BOUND_FLAG) {
this.SPE_BOUND_FLAG = SPE_BOUND_FLAG;
}
public void setJUNIOR_DEBT_FLAG(String JUNIOR_DEBT_FLAG) {
this.JUNIOR_DEBT_FLAG = JUNIOR_DEBT_FLAG;
}
public void setCROSS_BORDER_TRADE_FLAG(String CROSS_BORDER_TRADE_FLAG) {
this.CROSS_BORDER_TRADE_FLAG = CROSS_BORDER_TRADE_FLAG;
}
public void setTERM_MIN(Integer TERM_MIN) {
this.TERM_MIN = TERM_MIN;
}
public void setTERM_MAX(Integer TERM_MAX) {
this.TERM_MAX = TERM_MAX;
}
public void setTERM(String TERM) {
this.TERM = TERM;
}
public void setOPERATION_PHASE(String OPERATION_PHASE) {
this.OPERATION_PHASE = OPERATION_PHASE;
}
public void setRESERVE_ASSET_BAL_RATE_MIN(Double RESERVE_ASSET_BAL_RATE_MIN) {
this.RESERVE_ASSET_BAL_RATE_MIN = RESERVE_ASSET_BAL_RATE_MIN;
}
public void setRESERVE_ASSET_BAL_RATE_MAX(Double RESERVE_ASSET_BAL_RATE_MAX) {
this.RESERVE_ASSET_BAL_RATE_MAX = RESERVE_ASSET_BAL_RATE_MAX;
}
public void setRESERVE_ASSET_BAL_RATE(String RESERVE_ASSET_BAL_RATE) {
this.RESERVE_ASSET_BAL_RATE = RESERVE_ASSET_BAL_RATE;
}
public void setINVESTMENT_FLAG(String INVESTMENT_FLAG) {
this.INVESTMENT_FLAG = INVESTMENT_FLAG;
}
public void setDEFAULT_FLAG(String DEFAULT_FLAG) {
this.DEFAULT_FLAG = DEFAULT_FLAG;
}
public void setREMARK(String REMARK) {
this.REMARK = REMARK;
}
public String getIS_VALID() {
return IS_VALID;
}
public void setIS_VALID(String IS_VALID) {
this.IS_VALID = IS_VALID;
}
public String getTable() {
return "RWA_P_BNFXQZ_CTL";
}
@Override
public Integer getColumnCount() {
return 43;
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
}

237
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/BwztfxzqParam.java

@ -0,0 +1,237 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import io.sc.engine.rwa.calculator.utils.DateUtil;
import java.util.Date;
public class BwztfxzqParam extends BaseEntity {
public BwztfxzqParam(){ }
public BwztfxzqParam(String[] row){
setColumnValue(row);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID(row[0]);
setEAD_TYPE_CODE(row[1]);
setEAD_TYPE_NUMBER(row[2]);
setEAD_TYPE_NAME(row[3]);
setEAD_WEIGHT(row[4].equals("")?null:Double.valueOf(row[4]));
setITEM_CODE(row[5]);
setITEM_NAME(row[6]);
setC_PRODUCT_ID(row[7]);
setPRODUCT_ID(row[8]);
setPRODUCT_NAME(row[9]);
setTERM_TYPE(row[10]);
setCREDIT_TYPE(row[11]);
setC_TRADE_TYPE(row[12]);
setTRADE_TYPE(row[13]);
setREVOCABLE_PROMS_FLG(row[14]);
setEXEMPTABLE_PROMS_FLAG(row[15]);
setSTANDARD_CREDIT_CARD_FLAG(row[16]);
setCOMMERCIAL_CARD_FLAG(row[17]);
setREMARK(row[18]);
setIS_VALID(row[19]);
}
}
private String ID; //主键ID
private String EAD_TYPE_CODE; //风险暴露分类代码
private String EAD_TYPE_NUMBER; //风险暴露分类序号
private String EAD_TYPE_NAME; //风险暴露分类名称
private Double EAD_WEIGHT; //新标准法CCF
private String ITEM_CODE; //科目号
private String ITEM_NAME; //科目名称
private String C_PRODUCT_ID; //产品编号判断条件(0-不等于,1-等于)
private String PRODUCT_ID; //产品编号
private String PRODUCT_NAME; //产品名称
private String TERM_TYPE; //期限类型(到期日-起始日,01-一年以内,02-一年一上)
private String CREDIT_TYPE; //信用证类型(01-国内信用证,02-国际信用证)
private String C_TRADE_TYPE; //贸易类型代码判断条件(0-不等于,1-等于)
private String TRADE_TYPE; //贸易类型代码(02-货物贸易)
private String REVOCABLE_PROMS_FLG; //贷款承诺可撤销标识(0-不可撤销,1-可撤销)
private String EXEMPTABLE_PROMS_FLAG; //可豁免的贷款承诺标识(0-不可豁免,1-可豁免)
private String STANDARD_CREDIT_CARD_FLAG; //符合标准的信用卡(0-不符合标准,1-符合标准)
private String COMMERCIAL_CARD_FLAG; //是否公务卡
private String REMARK; //备注
private String IS_VALID; //是否有效
public void setID(String ID) {
this.ID = ID;
}
public void setEAD_TYPE_CODE(String EAD_TYPE_CODE) {
this.EAD_TYPE_CODE = EAD_TYPE_CODE;
}
public void setEAD_TYPE_NUMBER(String EAD_TYPE_NUMBER) {
this.EAD_TYPE_NUMBER = EAD_TYPE_NUMBER;
}
public void setEAD_TYPE_NAME(String EAD_TYPE_NAME) {
this.EAD_TYPE_NAME = EAD_TYPE_NAME;
}
public void setEAD_WEIGHT(Double EAD_WEIGHT) {
this.EAD_WEIGHT = EAD_WEIGHT;
}
public void setITEM_CODE(String ITEM_CODE) {
this.ITEM_CODE = ITEM_CODE;
}
public void setITEM_NAME(String ITEM_NAME) {
this.ITEM_NAME = ITEM_NAME;
}
public void setC_PRODUCT_ID(String c_PRODUCT_ID) {
C_PRODUCT_ID = c_PRODUCT_ID;
}
public void setPRODUCT_ID(String PRODUCT_ID) {
this.PRODUCT_ID = PRODUCT_ID;
}
public void setPRODUCT_NAME(String PRODUCT_NAME) {
this.PRODUCT_NAME = PRODUCT_NAME;
}
public void setTERM_TYPE(String TERM_TYPE) {
this.TERM_TYPE = TERM_TYPE;
}
public void setCREDIT_TYPE(String CREDIT_TYPE) {
this.CREDIT_TYPE = CREDIT_TYPE;
}
public void setC_TRADE_TYPE(String c_TRADE_TYPE) {
C_TRADE_TYPE = c_TRADE_TYPE;
}
public void setTRADE_TYPE(String TRADE_TYPE) {
this.TRADE_TYPE = TRADE_TYPE;
}
public void setREVOCABLE_PROMS_FLG(String REVOCABLE_PROMS_FLG) {
this.REVOCABLE_PROMS_FLG = REVOCABLE_PROMS_FLG;
}
public void setEXEMPTABLE_PROMS_FLAG(String EXEMPTABLE_PROMS_FLAG) {
this.EXEMPTABLE_PROMS_FLAG = EXEMPTABLE_PROMS_FLAG;
}
public void setSTANDARD_CREDIT_CARD_FLAG(String STANDARD_CREDIT_CARD_FLAG) {
this.STANDARD_CREDIT_CARD_FLAG = STANDARD_CREDIT_CARD_FLAG;
}
public void setCOMMERCIAL_CARD_FLAG(String COMMERCIAL_CARD_FLAG) {
this.COMMERCIAL_CARD_FLAG = COMMERCIAL_CARD_FLAG;
}
public void setREMARK(String REMARK) {
this.REMARK = REMARK;
}
public String getID() {
return ID;
}
public String getEAD_TYPE_CODE() {
return EAD_TYPE_CODE;
}
public String getEAD_TYPE_NUMBER() {
return EAD_TYPE_NUMBER;
}
public String getEAD_TYPE_NAME() {
return EAD_TYPE_NAME;
}
public Double getEAD_WEIGHT() {
return EAD_WEIGHT;
}
public String getITEM_CODE() {
return ITEM_CODE;
}
public String getITEM_NAME() {
return ITEM_NAME;
}
public String getC_PRODUCT_ID() {
return C_PRODUCT_ID;
}
public String getPRODUCT_ID() {
return PRODUCT_ID;
}
public String getPRODUCT_NAME() {
return PRODUCT_NAME;
}
public String getTERM_TYPE() {
return TERM_TYPE;
}
public String getCREDIT_TYPE() {
return CREDIT_TYPE;
}
public String getC_TRADE_TYPE() {
return C_TRADE_TYPE;
}
public String getTRADE_TYPE() {
return TRADE_TYPE;
}
public String getREVOCABLE_PROMS_FLG() {
return REVOCABLE_PROMS_FLG;
}
public String getEXEMPTABLE_PROMS_FLAG() {
return EXEMPTABLE_PROMS_FLAG;
}
public String getSTANDARD_CREDIT_CARD_FLAG() {
return STANDARD_CREDIT_CARD_FLAG;
}
public String getCOMMERCIAL_CARD_FLAG() {
return COMMERCIAL_CARD_FLAG;
}
public String getREMARK() {
return REMARK;
}
public String getIS_VALID() {
return IS_VALID;
}
public void setIS_VALID(String IS_VALID) {
this.IS_VALID = IS_VALID;
}
@Override
public String getTable() {
return "RWA_P_BWZTFXQZ_CTL";
}
@Override
public Integer getColumnCount() {
return 26;
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
}

119
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/CircCounterpartyParam.java

@ -0,0 +1,119 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import io.sc.platform.util.StringUtil;
import java.util.HashMap;
/**
* 监管交易对手参数表
* @author chengjie
* @time 2023-07-20
*/
public class CircCounterpartyParam extends BaseEntity {
public CircCounterpartyParam(){ setColMap(); }
public CircCounterpartyParam(String[] row){
setColumnValue(row);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID(row[0]); //唯一标识
setCUST_NAME(row[1]); //交易对手名称
setCIRC_CUST_TYPE(row[2]); //监管交易对手类型
setCIRC_CUST_TYPE_NAME(row[3]); //监管交易对手类型名称
}
}
@Override
public String[] parse2Array(){
return new String[]{
ID,
CUST_NAME,
CIRC_CUST_TYPE,
CIRC_CUST_TYPE_NAME
};
}
private String ID; //唯一标识
private String CUST_NAME; //交易对手名称
private String CIRC_CUST_TYPE; //监管交易对手类型
private String CIRC_CUST_TYPE_NAME; //监管交易对手类型名称
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getCUST_NAME() {
return CUST_NAME;
}
public void setCUST_NAME(String CUST_NAME) {
this.CUST_NAME = CUST_NAME;
}
public String getCIRC_CUST_TYPE() {
return CIRC_CUST_TYPE;
}
public void setCIRC_CUST_TYPE(String CIRC_CUST_TYPE) {
this.CIRC_CUST_TYPE = CIRC_CUST_TYPE;
}
public String getCIRC_CUST_TYPE_NAME() {
return CIRC_CUST_TYPE_NAME;
}
public void setCIRC_CUST_TYPE_NAME(String CIRC_CUST_TYPE_NAME) {
this.CIRC_CUST_TYPE_NAME = CIRC_CUST_TYPE_NAME;
}
public String getTable() {
return "RWA_P_CIRC_COUNTERPARTY";
}
@Override
public Integer getColumnCount() {
return 10;
}
@Override
public String getFieldVal(String column) {
String val = "";
if(StringUtil.isNullOrEmpty(column)){
val = "";
}else if(column.equals("ID")){
val = ID;
}else if(column.equals("CUST_NAME")){
val = CUST_NAME;
}else if(column.equals("CIRC_CUST_TYPE")){
val = CIRC_CUST_TYPE;
} else if(column.equals("CIRC_CUST_TYPE_NAME")){
val = CIRC_CUST_TYPE_NAME;
}
return val;
}
@Override
public int getIndex(String column) {
int index = 0;
String columns = "ID#0,CUST_NAME#1,CIRC_CUST_TYPE#2,CIRC_CUST_TYPE_NAME#3";
String[] arr = columns.split(",");
for(String s : arr){
if(s.substring(0, s.indexOf("#")).equals(column)){
index = Integer.valueOf(s.substring(s.indexOf("#")+1));
break;
}
}
return index;
}
private void setColMap() {
colMap = new HashMap();
colMap.put("DATA_DT", 0);
colMap.put("CUST_NAME", 1);
colMap.put("CIRC_CUST_TYPE", 2);
colMap.put("CIRC_CUST_TYPE_NAME", 3);
}
}

321
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/CustomerParam.java

@ -0,0 +1,321 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import java.util.HashMap;
public class CustomerParam extends BaseEntity {
public CustomerParam(){ setColMap(); }
public CustomerParam(String[] row){
setColumnValue(row);
}
@Override
public void setColumnValue(String[] row) {
if (row != null) {
setID(row[0]);
setDATA_DT(row[1]);
setCUST_NO(row[2]);
setCUST_NAME(row[3]);
setCUST_TYPE(row[4]);
setCIRC_CUST_TYPE(row[5]);
setCIRC_RATING(row[6]);
setPARAM_CUST_TYPE(row[7]);
setREG_COUNTRY_CD(row[8]);
setCOUNTRY_RATING(row[9]);
setCUST_RATING(row[10]);
setCUST_RATING_TYPE(row[11]);
setSCALE_CD(row[12]);
setCREDIT_LINE(row[13]==null?0:Double.valueOf(row[13]));
setNEAREST_YEAR_INCOME(row[14]==null?0:Double.valueOf(row[14]));
setCUST_INCOME_CURRENCY(row[15]);
setCRBC_RETAIL_FLAG(row[16]);
setACCORD_TRADE_FLAG(row[17]);
setPUBLIC_ENTITY_FLAG(row[18]);
setINVESTMENT_FLAG(row[19]);
}
}
private String ID; //ID
private String DATA_DT; //数据日期
private String CUST_NO; //客户编号
private String CUST_NAME; //客户名称
private String CUST_TYPE; //客户类型
private String CIRC_CUST_TYPE; //监管交易对手类型映射
private String CIRC_RATING; //商业银行标准信用评级
private String PARAM_CUST_TYPE; //表内业务客户类型映射
private String REG_COUNTRY_CD; //注册地所在国家
private String COUNTRY_RATING; //所在国家或地区评级
private String CUST_RATING; //交易对手外部评级
private String CUST_RATING_TYPE; //交易对手外部评级类型
private String SCALE_CD; //企业规模
private Double CREDIT_LINE; //授信总额
private Double NEAREST_YEAR_INCOME; //营业收入
private String CUST_INCOME_CURRENCY; //个人收入币种
private String CRBC_RETAIL_FLAG; //监管零售标识
private String ACCORD_TRADE_FLAG; //合格交易者标识
private String PUBLIC_ENTITY_FLAG; //公共部门实体标识
private String INVESTMENT_FLAG; //投资级判定
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("CUST_NO",2);
colMap.put("CUST_NAME",3);
colMap.put("CUST_TYPE",4);
colMap.put("CIRC_CUST_TYPE",5);
colMap.put("CIRC_RATING",6);
colMap.put("PARAM_CUST_TYPE",7);
colMap.put("REG_COUNTRY_CD",8);
colMap.put("COUNTRY_RATING",9);
colMap.put("CUST_RATING",10);
colMap.put("CUST_RATING_TYPE",11);
colMap.put("SCALE_CD",12);
colMap.put("CREDIT_LINE",13);
colMap.put("NEAREST_YEAR_INCOME",14);
colMap.put("CUST_INCOME_CURRENCY",15);
colMap.put("CRBC_RETAIL_FLAG",16);
colMap.put("ACCORD_TRADE_FLAG",17);
colMap.put("PUBLIC_ENTITY_FLAG",18);
colMap.put("INVESTMENT_FLAG",19);
}
public String getTable() {
return "RWA_C_CUST_PARAM";
}
@Override
public Integer getColumnCount() {
return 26;
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getCUST_NO() {
return CUST_NO;
}
public void setCUST_NO(String CUST_NO) {
this.CUST_NO = CUST_NO;
}
public String getCUST_NAME() {
return CUST_NAME;
}
public void setCUST_NAME(String CUST_NAME) {
this.CUST_NAME = CUST_NAME;
}
public String getCUST_TYPE() {
return CUST_TYPE;
}
public void setCUST_TYPE(String CUST_TYPE) {
this.CUST_TYPE = CUST_TYPE;
}
public String getCIRC_CUST_TYPE() {
return CIRC_CUST_TYPE;
}
public void setCIRC_CUST_TYPE(String CIRC_CUST_TYPE) {
this.CIRC_CUST_TYPE = CIRC_CUST_TYPE;
}
public String getCIRC_RATING() {
return CIRC_RATING;
}
public void setCIRC_RATING(String CIRC_RATING) {
this.CIRC_RATING = CIRC_RATING;
}
public String getPARAM_CUST_TYPE() {
return PARAM_CUST_TYPE;
}
public void setPARAM_CUST_TYPE(String PARAM_CUST_TYPE) {
this.PARAM_CUST_TYPE = PARAM_CUST_TYPE;
}
public String getREG_COUNTRY_CD() {
return REG_COUNTRY_CD;
}
public void setREG_COUNTRY_CD(String REG_COUNTRY_CD) {
this.REG_COUNTRY_CD = REG_COUNTRY_CD;
}
public String getCOUNTRY_RATING() {
return COUNTRY_RATING;
}
public void setCOUNTRY_RATING(String COUNTRY_RATING) {
this.COUNTRY_RATING = COUNTRY_RATING;
}
public String getCUST_RATING() {
return CUST_RATING;
}
public void setCUST_RATING(String CUST_RATING) {
this.CUST_RATING = CUST_RATING;
}
public String getCUST_RATING_TYPE() {
return CUST_RATING_TYPE;
}
public void setCUST_RATING_TYPE(String CUST_RATING_TYPE) {
this.CUST_RATING_TYPE = CUST_RATING_TYPE;
}
public String getSCALE_CD() {
return SCALE_CD;
}
public void setSCALE_CD(String SCALE_CD) {
this.SCALE_CD = SCALE_CD;
}
public Double getCREDIT_LINE() {
return CREDIT_LINE;
}
public void setCREDIT_LINE(Double CREDIT_LINE) {
this.CREDIT_LINE = CREDIT_LINE;
}
public Double getNEAREST_YEAR_INCOME() {
return NEAREST_YEAR_INCOME;
}
public void setNEAREST_YEAR_INCOME(Double NEAREST_YEAR_INCOME) {
this.NEAREST_YEAR_INCOME = NEAREST_YEAR_INCOME;
}
public String getCUST_INCOME_CURRENCY() {
return CUST_INCOME_CURRENCY;
}
public void setCUST_INCOME_CURRENCY(String CUST_INCOME_CURRENCY) {
this.CUST_INCOME_CURRENCY = CUST_INCOME_CURRENCY;
}
public String getCRBC_RETAIL_FLAG() {
return CRBC_RETAIL_FLAG;
}
public void setCRBC_RETAIL_FLAG(String CRBC_RETAIL_FLAG) {
this.CRBC_RETAIL_FLAG = CRBC_RETAIL_FLAG;
}
public String getACCORD_TRADE_FLAG() {
return ACCORD_TRADE_FLAG;
}
public void setACCORD_TRADE_FLAG(String ACCORD_TRADE_FLAG) {
this.ACCORD_TRADE_FLAG = ACCORD_TRADE_FLAG;
}
public String getPUBLIC_ENTITY_FLAG() {
return PUBLIC_ENTITY_FLAG;
}
public void setPUBLIC_ENTITY_FLAG(String PUBLIC_ENTITY_FLAG) {
this.PUBLIC_ENTITY_FLAG = PUBLIC_ENTITY_FLAG;
}
public String getINVESTMENT_FLAG() {
return INVESTMENT_FLAG;
}
public void setINVESTMENT_FLAG(String INVESTMENT_FLAG) {
this.INVESTMENT_FLAG = INVESTMENT_FLAG;
}
@Override
public String getFieldVal(String column) {
String val = "";
if(column.equals("DATA_DT")){
val = DATA_DT;
}
if(column.equals("CUST_NO")){
val = CUST_NO;
}
if(column.equals("CUST_TYPE")){
val = CUST_TYPE;
}
if(column.equals("CIRC_CUST_TYPE")){
val = CIRC_CUST_TYPE;
}
if(column.equals("CIRC_RATING")){
val = CIRC_RATING;
}
if(column.equals("PARAM_CUST_TYPE")){
val = PARAM_CUST_TYPE;
}
if(column.equals("REG_COUNTRY_CD")){
val = REG_COUNTRY_CD;
}
if(column.equals("COUNTRY_RATING")){
val = COUNTRY_RATING;
}
if(column.equals("CUST_RATING")){
val = CUST_RATING;
}
if(column.equals("CUST_RATING_TYPE")){
val = CUST_RATING_TYPE;
}
if(column.equals("SCALE_CD")){
val = SCALE_CD;
}
if(column.equals("CREDIT_LINE") && CREDIT_LINE != null){
val = String.valueOf(CREDIT_LINE);
}
if(column.equals("NEAREST_YEAR_INCOME") && NEAREST_YEAR_INCOME != null){
val = String.valueOf(NEAREST_YEAR_INCOME);
}
if(column.equals("CUST_INCOME_CURRENCY")){
val = CUST_INCOME_CURRENCY;
}
if(column.equals("CRBC_RETAIL_FLAG")){
val = CRBC_RETAIL_FLAG;
}
if(column.equals("ACCORD_TRADE_FLAG")){
val = ACCORD_TRADE_FLAG;
}
if(column.equals("PUBLIC_ENTITY_FLAG")){
val = PUBLIC_ENTITY_FLAG;
}
if(column.equals("INVESTMENT_FLAG")){
val = INVESTMENT_FLAG;
}
return val;
}
@Override
public int getIndex(String column) {
int index = 0;
String columns = "DATA_DT#0,CUST_NO#1,CUST_NAME#2,CUST_TYPE#3,CIRC_CUST_TYPE#4,CIRC_RATING#5,PARAM_CUST_TYPE#6,REG_COUNTRY_CD#7,COUNTRY_RATING#8,CUST_RATING#9,CUST_RATING_TYPE#10,SCALE_CD#11,CREDIT_LINE#12,NEAREST_YEAR_INCOME#13,CUST_INCOME_CURRENCY#14,CRBC_RETAIL_FLAG#15,ACCORD_TRADE_FLAG#16,PUBLIC_ENTITY_FLAG#17,INVESTMENT_FLAG#18";
String[] arr = columns.split(",");
for(String s : arr){
if(s.substring(0, s.indexOf("#")).equals(column)){
index = Integer.valueOf(s.substring(s.indexOf("#")+1));
}
}
return index;
}
}

107
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/DataCheckRuleMain.java

@ -0,0 +1,107 @@
package io.sc.engine.rwa.calculator.domain;
public class DataCheckRuleMain {
public DataCheckRuleMain(){ }
public DataCheckRuleMain(String[] row){
setColumnValue(row);
}
private void setColumnValue(String[] row) {
if (row != null) {
setID(row[0]);
setCHECK_TABLE(row[1]);
setCHECK_FEILD(row[2]);
setCHECK_RULE(row[3]);
setDIC_TABLE(row[4]);
setDIC_CODE(row[5]);
setNUM_RANGE(row[6]);
setIS_VALID(row[7]);
setREMARK(row[8]);
}
}
private String ID; //主键
private String CHECK_TABLE; //目标表
private String CHECK_FEILD; //目标字段
private String CHECK_RULE; //检查规则
private String DIC_TABLE; //码值表
private String DIC_CODE; //码值表码值类型代码
private String NUM_RANGE; //数据阈值
private String IS_VALID; //是否有效
private String REMARK; //备注
private String table = "RWA_P_DATA_CHECK_RULE_MAIN"; //CSV表名称
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getCHECK_TABLE() {
return CHECK_TABLE;
}
public void setCHECK_TABLE(String CHECK_TABLE) {
this.CHECK_TABLE = CHECK_TABLE;
}
public String getCHECK_FEILD() {
return CHECK_FEILD;
}
public void setCHECK_FEILD(String CHECK_FEILD) {
this.CHECK_FEILD = CHECK_FEILD;
}
public String getCHECK_RULE() {
return CHECK_RULE;
}
public void setCHECK_RULE(String CHECK_RULE) {
this.CHECK_RULE = CHECK_RULE;
}
public String getDIC_TABLE() {
return DIC_TABLE;
}
public void setDIC_TABLE(String DIC_TABLE) {
this.DIC_TABLE = DIC_TABLE;
}
public String getDIC_CODE() {
return DIC_CODE;
}
public void setDIC_CODE(String DIC_CODE) {
this.DIC_CODE = DIC_CODE;
}
public String getNUM_RANGE() {
return NUM_RANGE;
}
public void setNUM_RANGE(String NUM_RANGE) {
this.NUM_RANGE = NUM_RANGE;
}
public String getIS_VALID() {
return IS_VALID;
}
public void setIS_VALID(String IS_VALID) {
this.IS_VALID = IS_VALID;
}
public String getREMARK() {
return REMARK;
}
public void setREMARK(String REMARK) {
this.REMARK = REMARK;
}
public String getTable() {
return table;
}
}

48
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/DebtGuarRel.java

@ -0,0 +1,48 @@
package io.sc.engine.rwa.calculator.domain;
import org.apache.commons.collections.map.HashedMap;
import java.lang.reflect.Method;
import java.util.Map;
public class DebtGuarRel {
private String DEBT_ID; //债项编号
private String CONTR_ID; //合同编号
private String COLL_ID; //风险缓释工具编号
public String getDEBT_ID() {
return DEBT_ID;
}
public String getCONTR_ID() {
return CONTR_ID;
}
public String getCOLL_ID() {
return COLL_ID;
}
public void setDEBT_ID(String DEBT_ID) {
this.DEBT_ID = DEBT_ID;
}
public void setCONTR_ID(String CONTR_ID) {
this.CONTR_ID = CONTR_ID;
}
public void setCOLL_ID(String COLL_ID) {
this.COLL_ID = COLL_ID;
}
public static Map<String, Object> returnTypeMap = new HashedMap();
static {
Method[] methods = DebtGuarRel.class.getMethods();
for(Method m : methods){
if(m.getName().startsWith("get")) {
String fieldName = m.getName().substring(3);
Class returnType = m.getReturnType();
returnTypeMap.put(fieldName, returnType);
}
}
}
}

255
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/DebtRiskClsResult.java

@ -0,0 +1,255 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import io.sc.platform.util.StringUtil;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.*;
/**
* 权重法风险暴露分类结果表
* @author chengjie
* @time 2023-07-05
*/
public class DebtRiskClsResult extends BaseEntity {
public DebtRiskClsResult(){
}
public DebtRiskClsResult(String[] row){
setColumnValue(row);
}
public String pass2String(){
StringBuffer sf = new StringBuffer();
sf.append(this.ID).append(",");
sf.append(this.DATA_DT).append(",");
sf.append(this.DEBT_ID).append(",");
sf.append(this.ON_OFF_FLAG).append(",");
sf.append(this.EAD_TYPE_CODE).append(",");
sf.append(this.EAD_TYPE_NAME).append(",");
sf.append(this.EAD_TYPE_NUMBER).append(",");
sf.append(this.ASSET_AMT==null?"":this.ASSET_AMT).append(",");
sf.append(this.RESERVE==null?"":this.RESERVE).append(",");
sf.append(this.CCF==null?"":this.CCF).append(",");
sf.append(this.RISK_WEIGHT==null?"":this.RISK_WEIGHT).append(",");
sf.append(this.EAD_WEIGHT==null?"":this.EAD_WEIGHT).append(",");
sf.append(this.EAD0_WEIGHT==null?"":this.EAD0_WEIGHT).append(",");
sf.append(this.SURPLUS_VALUE==null?"":this.SURPLUS_VALUE).append(",");
sf.append(this.CUST_NO==null?"":this.CUST_NO).append(",");
sf.append(this.CUST_NAME==null?"":this.CUST_NAME);
return sf.toString();
}
@Override
public String[] parse2Array(){
return new String[]{
this.ID,
this.DATA_DT,
this.DEBT_ID,
this.ON_OFF_FLAG,
this.EAD_TYPE_CODE,
this.EAD_TYPE_NAME,
this.EAD_TYPE_NUMBER,
this.ASSET_AMT==null?"":String.valueOf(this.ASSET_AMT),
this.RESERVE==null?"":String.valueOf(this.RESERVE),
this.CCF==null?"":String.valueOf(this.CCF),
this.RISK_WEIGHT==null?"":String.valueOf(this.RISK_WEIGHT),
this.EAD_WEIGHT==null?"":String.valueOf(this.EAD_WEIGHT),
this.EAD0_WEIGHT==null?"":String.valueOf(this.EAD0_WEIGHT),
this.SURPLUS_VALUE==null?"":String.valueOf(this.SURPLUS_VALUE),
this.CUST_NO==null?"":String.valueOf(this.CUST_NO),
this.CUST_NAME==null?"":String.valueOf(this.CUST_NAME)
};
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID(row[0]);
setDATA_DT(row[1]);
setDEBT_ID(row[2]);
setON_OFF_FLAG(row[3]);
setEAD_TYPE_CODE(row[4]);
setEAD_TYPE_NAME(row[5]);
setEAD_TYPE_NUMBER(row[6]);
setASSET_AMT(toEmptyDouble(row[7]));
setRESERVE(toEmptyDouble(row[8]));
setCCF(toEmptyDouble(row[9]));
setRISK_WEIGHT(toEmptyDouble(row[10]));
setEAD_WEIGHT(toEmptyDouble(row[11]));
setEAD0_WEIGHT(toEmptyDouble(row[12]));
setSURPLUS_VALUE(StringUtil.isNullOrEmpty(row[13])?Double.valueOf(row[13]):Double.valueOf(row[13]));
setCUST_NO(row[14]);
setCUST_NAME(row[15]);
}
}
private String ID; //ID
private String DATA_DT; //数据日期
private String DEBT_ID; //债项编号
private String ON_OFF_FLAG; //表内外标识
private String EAD_TYPE_CODE; //风险暴露分类代码
private String EAD_TYPE_NAME; //风险暴露分类名称
private String EAD_TYPE_NUMBER; //风险暴露分类序号
private Double ASSET_AMT; //资产余额
private Double RESERVE; //计提准备金
private Double CCF; //信用风险转换系数(CCF)
private Double RISK_WEIGHT; //风险权重
private Double EAD_WEIGHT; //风险暴露EAD_权重法
private Double EAD0_WEIGHT; //风险暴露EAD0_其中,资产管理产品风险暴露
private Double SURPLUS_VALUE; //被缓释物缓释后的剩余资产余额
private String CUST_NO; //客户名称
private String CUST_NAME; //客户名称
public String getCUST_NO() {
return CUST_NO;
}
public void setCUST_NO(String CUST_NO) {
this.CUST_NO = CUST_NO;
}
public String getCUST_NAME() {
return CUST_NAME;
}
public void setCUST_NAME(String CUST_NAME) {
this.CUST_NAME = CUST_NAME;
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public Double getSURPLUS_VALUE() {
return SURPLUS_VALUE;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public void setSURPLUS_VALUE(Double SURPLUS_VALUE) {
this.SURPLUS_VALUE = SURPLUS_VALUE;
}
public String getDEBT_ID() {
return DEBT_ID;
}
public String getON_OFF_FLAG() {
return ON_OFF_FLAG;
}
public String getEAD_TYPE_CODE() {
return EAD_TYPE_CODE;
}
public String getEAD_TYPE_NAME() {
return EAD_TYPE_NAME;
}
public String getEAD_TYPE_NUMBER() {
return EAD_TYPE_NUMBER;
}
public Double getASSET_AMT() {
return ASSET_AMT;
}
public Double getRESERVE() {
return RESERVE;
}
public Double getCCF() {
return CCF;
}
public Double getRISK_WEIGHT() {
return RISK_WEIGHT;
}
public Double getEAD_WEIGHT() {
return EAD_WEIGHT;
}
public Double getEAD0_WEIGHT() {
return EAD0_WEIGHT;
}
public void setDEBT_ID(String DEBT_ID) {
this.DEBT_ID = DEBT_ID;
}
public void setON_OFF_FLAG(String ON_OFF_FLAG) {
this.ON_OFF_FLAG = ON_OFF_FLAG;
}
public void setEAD_TYPE_CODE(String EAD_TYPE_CODE) {
this.EAD_TYPE_CODE = EAD_TYPE_CODE;
}
public void setEAD_TYPE_NAME(String EAD_TYPE_NAME) {
this.EAD_TYPE_NAME = EAD_TYPE_NAME;
}
public void setEAD_TYPE_NUMBER(String EAD_TYPE_NUMBER) {
this.EAD_TYPE_NUMBER = EAD_TYPE_NUMBER;
}
public void setASSET_AMT(Double ASSET_AMT) {
this.ASSET_AMT = ASSET_AMT;
}
public void setRESERVE(Double RESERVE) {
this.RESERVE = RESERVE;
}
public void setCCF(Double CCF) {
this.CCF = CCF;
}
public void setRISK_WEIGHT(Double RISK_WEIGHT) {
this.RISK_WEIGHT = RISK_WEIGHT;
}
public void setEAD_WEIGHT(Double EAD_WEIGHT) {
this.EAD_WEIGHT = EAD_WEIGHT;
}
public void setEAD0_WEIGHT(Double EAD0_WEIGHT) {
this.EAD0_WEIGHT = EAD0_WEIGHT;
}
public String getTable() {
return "RWA_R_RISK_EXPO_CLS_RES";
}
@Override
public Integer getColumnCount() {
return 22;
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
int index = 0;
String columns = "DATA_DT#0,DEBT_ID#1,ON_OFF_FLAG#2,EAD_TYPE_CODE#3,EAD_TYPE_NAME#4,EAD_TYPE_NUMBER#5,ASSET_AMT#6,RESERVE#7,CCF#8,RISK_WEIGHT#9,EAD_WEIGHT#10,EAD0_WEIGHT#11,SURPLUS_VALUE#12";
String[] arr = columns.split(",");
for(String s : arr){
if(s.substring(0, s.indexOf("#")).equals(column)){
index = Integer.valueOf(s.substring(s.indexOf("#")+1));
}
}
return index;
}
}

549
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/DebtRiskParam.java

@ -0,0 +1,549 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import java.util.HashMap;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.*;
/**
* 债项风险暴露标记表
* @author chengjie
* @time 2023-07-05
*/
public class DebtRiskParam extends BaseEntity {
public DebtRiskParam(){ setColMap(); }
public DebtRiskParam(String[] row){
setColumnValue(row);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID(row[0]); //ID
setDATA_DT(row[1]); //数据日期
setDEBT_ID(row[2]); //债项编号
setON_OFF_FLAG(row[3]); //表内外标识
setEXPO_AS_DEF(toEmptyDouble(row[4])); //风险暴露余额
setPROVISION(toEmptyDouble(row[5])); //计提准备金
setCRBC_CUST_TYPE_CD(row[6]); //监管交易对手类型代码
setCRBC_CUST_TYPE_NM(row[7]); //监管交易对手名称
setCOUNTRY_RATING(row[8]); //注册地所在国家或地区评级
setBOND_TYPE(row[9]); //债券类型
setSPE_LOAN_CLS(row[10]); //专业贷款分类
setREAL_ESTATE_RISK_TYPE(row[11]); //房地产风险暴露类型
setREAL_ESTATE_MORT_RISK_TYPE(row[12]); //房地产抵押风险暴露类型
setRISK_RATING(row[13]); //外部评级
setBANK_STANDARD_RATING(row[14]); //商业银行标准信用评级
setCRBC_RETAIL_FLAG(row[15]); //监管零售标识
setACCORD_TRADER_FLAG(row[16]); //合格交易者标识
setPRUD_REAL_ESTATE_DEVP_FLAG(row[17]); //审慎的房地产开发风险暴露标识
setPRUD_REAL_ESTATE_MORT_FLAG(row[18]); //审慎的房地产按揭风险暴露标识
setDEPEND_ON_CASHFLOW(row[19]); //还款实质依赖房地产所产生的的现金流标识
setLTV(toEmptyDouble(row[20])); //贷款价值比
setCURR_MISMATCH_FLAG(row[21]); //币种错配标识
setSPE_ITEM_BOND_FLAG(row[22]); //专项债券标识
setJUNIOR_DEBT_FLAG(row[23]); //次级债标识
setCROSS_BORDER_TRADE_FLAG(row[24]); //跨境商品贸易标识
setORIGINAL_TERM(toEmptyDouble(row[25])); //原始期限
setOPER_STG(row[26]); //项目融资运营阶段
setPROVISION_EXPO_RATIO(toEmptyDouble(row[27])); //减值准备与风险暴露比例
setINVESTMENT_FLAG(row[28]); //投资级标识
setDEFAULT_FLAG(row[29]); //违约标识
setSUBJ_CD(row[30]); //科目代码
setSUBJ_NM(row[31]); //科目名称
setPRODUCT_CD(row[32]); //产品代码
setPRODUCT_NM(row[33]); //产品名称
setORIGINAL_TERM_TYPE(row[34]); //原始期限类型
setCRED_LETTER_TYPE_CD(row[35]); //信用证类型
setTRADE_TYPE_CD(row[36]); //贸易类型
setCAN_MOMNT_RECALL_PROMS_IND(row[37]); //可随时撤销的承诺标识
setIS_LOAN_ALLOW_PROMS(row[38]); //可豁免的贷款承诺标识
setCBRC_UNUSED_CRED_LMT_FLAG(row[39]); //符合标准的未使用额度标识
setCORP_CRED_CARD_FLAG(row[40]); //单位信用卡标识
setCURRENCY(row[41]); //债项币种
setDUE_DT(row[42]); //债项到期日
setCUST_NO(row[43]); //客户编号
setCUST_NAME(row[44]); //客户名称
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
int index = 0;
String columns = "DATA_DT#0,DEBT_ID#1,ON_OFF_FLAG#2,CURRENCY#3,EXPO_AS_DEF#4,PROVISION#5,CRBC_CUST_TYPE_CD#6,CRBC_CUST_TYPE_NM#7,COUNTRY_RATING#8,BOND_TYPE#9,SPE_LOAN_CLS#10,REAL_ESTATE_RISK_TYPE#11,REAL_ESTATE_MORT_RISK_TYPE#12,RISK_RATING#13,BANK_STANDARD_RATING#14,CRBC_RETAIL_FLAG#15,ACCORD_TRADER_FLAG#16,PRUD_REAL_ESTATE_DEVP_FLAG#17,PRUD_REAL_ESTATE_MORT_FLAG#18,DEPEND_ON_CASHFLOW#19,LTV#20,CURR_MISMATCH_FLAG#21,SPE_ITEM_BOND_FLAG#22,JUNIOR_DEBT_FLAG#23,CROSS_BORDER_TRADE_FLAG#24,ORIGINAL_TERM#25,OPER_STG#26,PROVISION_EXPO_RATIO#27,INVESTMENT_FLAG#28,DEFAULT_FLAG#29,SUBJ_CD#30,SUBJ_NM#31,PRODUCT_CD#32,PRODUCT_NM#33,ORIGINAL_TERM_TYPE#34,CRED_LETTER_TYPE_CD#35,TRADE_TYPE_CD#36,CAN_MOMNT_RECALL_PROMS_IND#37,IS_LOAN_ALLOW_PROMS#38,CBRC_UNUSED_CRED_LMT_FLAG#39,CORP_CRED_CARD_FLAG#40,DUE_DT#41";
String[] arr = columns.split(",");
for(String s : arr){
if(s.substring(0, s.indexOf("#")).equals(column)){
index = Integer.valueOf(s.substring(s.indexOf("#")+1));
}
}
return index;
}
private String ID; //ID
private String DATA_DT; //数据日期
private String DEBT_ID; //债项编号
private String ON_OFF_FLAG; //表内外标识
private Double EXPO_AS_DEF; //风险暴露余额
private Double PROVISION; //计提准备金
private String CRBC_CUST_TYPE_CD; //监管交易对手类型代码
private String CRBC_CUST_TYPE_NM; //监管交易对手名称
private String COUNTRY_RATING; //注册地所在国家或地区评级
private String BOND_TYPE; //债券类型
private String SPE_LOAN_CLS; //专业贷款分类
private String REAL_ESTATE_RISK_TYPE; //房地产风险暴露类型
private String REAL_ESTATE_MORT_RISK_TYPE; //房地产抵押风险暴露类型
private String RISK_RATING; //外部评级
private String BANK_STANDARD_RATING; //商业银行标准信用评级
private String CRBC_RETAIL_FLAG; //监管零售标识
private String ACCORD_TRADER_FLAG; //合格交易者标识
private String PRUD_REAL_ESTATE_DEVP_FLAG; //审慎的房地产开发风险暴露标识
private String PRUD_REAL_ESTATE_MORT_FLAG; //审慎的房地产按揭风险暴露标识
private String DEPEND_ON_CASHFLOW; //还款实质依赖房地产所产生的的现金流标识
private Double LTV; //贷款价值比
private String CURR_MISMATCH_FLAG; //币种错配标识
private String SPE_ITEM_BOND_FLAG; //专项债券标识
private String JUNIOR_DEBT_FLAG; //次级债标识
private String CROSS_BORDER_TRADE_FLAG; //跨境商品贸易标识
private Double ORIGINAL_TERM; //原始期限
private String OPER_STG; //项目融资运营阶段
private Double PROVISION_EXPO_RATIO; //减值准备与风险暴露比例
private String INVESTMENT_FLAG; //投资级标识
private String DEFAULT_FLAG; //违约标识
private String SUBJ_CD; //科目代码
private String SUBJ_NM; //科目名称
private String PRODUCT_CD; //产品代码
private String PRODUCT_NM; //产品名称
private String ORIGINAL_TERM_TYPE; //原始期限类型
private String CRED_LETTER_TYPE_CD; //信用证类型
private String TRADE_TYPE_CD; //贸易类型
private String CAN_MOMNT_RECALL_PROMS_IND; //可随时撤销的承诺标识
private String IS_LOAN_ALLOW_PROMS; //可豁免的贷款承诺标识
private String CBRC_UNUSED_CRED_LMT_FLAG; //符合标准的未使用额度标识
private String CORP_CRED_CARD_FLAG; //单位信用卡标识
private String CURRENCY; //债项币种
private String DUE_DT; //债项到期日
private String CUST_NO; //客户名称
private String CUST_NAME; //客户名称
public String getCUST_NO() {
return CUST_NO;
}
public void setCUST_NO(String CUST_NO) {
this.CUST_NO = CUST_NO;
}
public String getCUST_NAME() {
return CUST_NAME;
}
public void setCUST_NAME(String CUST_NAME) {
this.CUST_NAME = CUST_NAME;
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("DEBT_ID",2);
colMap.put("ON_OFF_FLAG",3);
colMap.put("EXPO_AS_DEF",4);
colMap.put("PROVISION",5);
colMap.put("CRBC_CUST_TYPE_CD",6);
colMap.put("CRBC_CUST_TYPE_NM",7);
colMap.put("COUNTRY_RATING",8);
colMap.put("BOND_TYPE",9);
colMap.put("SPE_LOAN_CLS",10);
colMap.put("REAL_ESTATE_RISK_TYPE",11);
colMap.put("REAL_ESTATE_MORT_RISK_TYPE",12);
colMap.put("RISK_RATING",13);
colMap.put("BANK_STANDARD_RATING",14);
colMap.put("CRBC_RETAIL_FLAG",15);
colMap.put("ACCORD_TRADER_FLAG",16);
colMap.put("PRUD_REAL_ESTATE_DEVP_FLAG",17);
colMap.put("PRUD_REAL_ESTATE_MORT_FLAG",18);
colMap.put("DEPEND_ON_CASHFLOW",19);
colMap.put("LTV",20);
colMap.put("CURR_MISMATCH_FLAG",21);
colMap.put("SPE_ITEM_BOND_FLAG",22);
colMap.put("JUNIOR_DEBT_FLAG",23);
colMap.put("CROSS_BORDER_TRADE_FLAG",24);
colMap.put("ORIGINAL_TERM",25);
colMap.put("OPER_STG",26);
colMap.put("PROVISION_EXPO_RATIO",27);
colMap.put("INVESTMENT_FLAG",28);
colMap.put("DEFAULT_FLAG",29);
colMap.put("SUBJ_CD",30);
colMap.put("SUBJ_NM",31);
colMap.put("PRODUCT_CD",32);
colMap.put("PRODUCT_NM",33);
colMap.put("ORIGINAL_TERM_TYPE",34);
colMap.put("CRED_LETTER_TYPE_CD",35);
colMap.put("TRADE_TYPE_CD",36);
colMap.put("CAN_MOMNT_RECALL_PROMS_IND",37);
colMap.put("IS_LOAN_ALLOW_PROMS",38);
colMap.put("CBRC_UNUSED_CRED_LMT_FLAG",39);
colMap.put("CORP_CRED_CARD_FLAG",40);
colMap.put("CURRENCY",41);
colMap.put("DUE_DT",42);
colMap.put("CUST_NO",43);
colMap.put("CUST_NAME",44);
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getTable() {
return "RWA_C_DEBT_RISK_PARAM";
}
@Override
public Integer getColumnCount() {
return 51;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getORIGINAL_TERM_TYPE() {
return ORIGINAL_TERM_TYPE;
}
public void setORIGINAL_TERM_TYPE(String ORIGINAL_TERM_TYPE) {
this.ORIGINAL_TERM_TYPE = ORIGINAL_TERM_TYPE;
}
public String getCURRENCY() {
return CURRENCY;
}
public void setCURRENCY(String CURRENCY) {
this.CURRENCY = CURRENCY;
}
public String getDUE_DT() {
return DUE_DT;
}
public void setDUE_DT(String DUE_DT) {
this.DUE_DT = DUE_DT;
}
public String getDEBT_ID() {
return DEBT_ID;
}
public String getON_OFF_FLAG() {
return ON_OFF_FLAG;
}
public Double getEXPO_AS_DEF() {
return EXPO_AS_DEF;
}
public Double getPROVISION() {
return PROVISION;
}
public String getCRBC_CUST_TYPE_CD() {
return CRBC_CUST_TYPE_CD;
}
public String getCRBC_CUST_TYPE_NM() {
return CRBC_CUST_TYPE_NM;
}
public String getCOUNTRY_RATING() {
return COUNTRY_RATING;
}
public String getBOND_TYPE() {
return BOND_TYPE;
}
public String getSPE_LOAN_CLS() {
return SPE_LOAN_CLS;
}
public String getREAL_ESTATE_RISK_TYPE() {
return REAL_ESTATE_RISK_TYPE;
}
public String getREAL_ESTATE_MORT_RISK_TYPE() {
return REAL_ESTATE_MORT_RISK_TYPE;
}
public String getRISK_RATING() {
return RISK_RATING;
}
public String getBANK_STANDARD_RATING() {
return BANK_STANDARD_RATING;
}
public String getCRBC_RETAIL_FLAG() {
return CRBC_RETAIL_FLAG;
}
public String getACCORD_TRADER_FLAG() {
return ACCORD_TRADER_FLAG;
}
public String getPRUD_REAL_ESTATE_DEVP_FLAG() {
return PRUD_REAL_ESTATE_DEVP_FLAG;
}
public String getPRUD_REAL_ESTATE_MORT_FLAG() {
return PRUD_REAL_ESTATE_MORT_FLAG;
}
public String getDEPEND_ON_CASHFLOW() {
return DEPEND_ON_CASHFLOW;
}
public Double getLTV() {
return LTV;
}
public String getCURR_MISMATCH_FLAG() {
return CURR_MISMATCH_FLAG;
}
public String getSPE_ITEM_BOND_FLAG() {
return SPE_ITEM_BOND_FLAG;
}
public String getJUNIOR_DEBT_FLAG() {
return JUNIOR_DEBT_FLAG;
}
public String getCROSS_BORDER_TRADE_FLAG() {
return CROSS_BORDER_TRADE_FLAG;
}
public Double getORIGINAL_TERM() {
return ORIGINAL_TERM;
}
public String getOPER_STG() {
return OPER_STG;
}
public Double getPROVISION_EXPO_RATIO() {
return PROVISION_EXPO_RATIO;
}
public String getINVESTMENT_FLAG() {
return INVESTMENT_FLAG;
}
public String getDEFAULT_FLAG() {
return DEFAULT_FLAG;
}
public String getSUBJ_CD() {
return SUBJ_CD;
}
public String getSUBJ_NM() {
return SUBJ_NM;
}
public String getPRODUCT_CD() {
return PRODUCT_CD;
}
public String getPRODUCT_NM() {
return PRODUCT_NM;
}
public String getTRADE_TYPE_CD() {
return TRADE_TYPE_CD;
}
public String getCRED_LETTER_TYPE_CD() {
return CRED_LETTER_TYPE_CD;
}
public String getCAN_MOMNT_RECALL_PROMS_IND() {
return CAN_MOMNT_RECALL_PROMS_IND;
}
public String getIS_LOAN_ALLOW_PROMS() {
return IS_LOAN_ALLOW_PROMS;
}
public String getCBRC_UNUSED_CRED_LMT_FLAG() {
return CBRC_UNUSED_CRED_LMT_FLAG;
}
public String getCORP_CRED_CARD_FLAG() {
return CORP_CRED_CARD_FLAG;
}
public void setDEBT_ID(String DEBT_ID) {
this.DEBT_ID = DEBT_ID;
}
public void setON_OFF_FLAG(String ON_OFF_FLAG) {
this.ON_OFF_FLAG = ON_OFF_FLAG;
}
public void setEXPO_AS_DEF(Double EXPO_AS_DEF) {
this.EXPO_AS_DEF = EXPO_AS_DEF;
}
public void setPROVISION(Double PROVISION) {
this.PROVISION = PROVISION;
}
public void setCRBC_CUST_TYPE_CD(String CRBC_CUST_TYPE_CD) {
this.CRBC_CUST_TYPE_CD = CRBC_CUST_TYPE_CD;
}
public void setCRBC_CUST_TYPE_NM(String CRBC_CUST_TYPE_NM) {
this.CRBC_CUST_TYPE_NM = CRBC_CUST_TYPE_NM;
}
public void setCOUNTRY_RATING(String COUNTRY_RATING) {
this.COUNTRY_RATING = COUNTRY_RATING;
}
public void setBOND_TYPE(String BOND_TYPE) {
this.BOND_TYPE = BOND_TYPE;
}
public void setSPE_LOAN_CLS(String SPE_LOAN_CLS) {
this.SPE_LOAN_CLS = SPE_LOAN_CLS;
}
public void setREAL_ESTATE_RISK_TYPE(String REAL_ESTATE_RISK_TYPE) {
this.REAL_ESTATE_RISK_TYPE = REAL_ESTATE_RISK_TYPE;
}
public void setREAL_ESTATE_MORT_RISK_TYPE(String REAL_ESTATE_MORT_RISK_TYPE) {
this.REAL_ESTATE_MORT_RISK_TYPE = REAL_ESTATE_MORT_RISK_TYPE;
}
public void setRISK_RATING(String RISK_RATING) {
this.RISK_RATING = RISK_RATING;
}
public void setBANK_STANDARD_RATING(String BANK_STANDARD_RATING) {
this.BANK_STANDARD_RATING = BANK_STANDARD_RATING;
}
public void setCRBC_RETAIL_FLAG(String CRBC_RETAIL_FLAG) {
this.CRBC_RETAIL_FLAG = CRBC_RETAIL_FLAG;
}
public void setACCORD_TRADER_FLAG(String ACCORD_TRADER_FLAG) {
this.ACCORD_TRADER_FLAG = ACCORD_TRADER_FLAG;
}
public void setPRUD_REAL_ESTATE_DEVP_FLAG(String PRUD_REAL_ESTATE_DEVP_FLAG) {
this.PRUD_REAL_ESTATE_DEVP_FLAG = PRUD_REAL_ESTATE_DEVP_FLAG;
}
public void setPRUD_REAL_ESTATE_MORT_FLAG(String PRUD_REAL_ESTATE_MORT_FLAG) {
this.PRUD_REAL_ESTATE_MORT_FLAG = PRUD_REAL_ESTATE_MORT_FLAG;
}
public void setDEPEND_ON_CASHFLOW(String DEPEND_ON_CASHFLOW) {
this.DEPEND_ON_CASHFLOW = DEPEND_ON_CASHFLOW;
}
public void setLTV(Double LTV) {
this.LTV = LTV;
}
public void setCURR_MISMATCH_FLAG(String CURR_MISMATCH_FLAG) {
this.CURR_MISMATCH_FLAG = CURR_MISMATCH_FLAG;
}
public void setSPE_ITEM_BOND_FLAG(String SPE_ITEM_BOND_FLAG) {
this.SPE_ITEM_BOND_FLAG = SPE_ITEM_BOND_FLAG;
}
public void setJUNIOR_DEBT_FLAG(String JUNIOR_DEBT_FLAG) {
this.JUNIOR_DEBT_FLAG = JUNIOR_DEBT_FLAG;
}
public void setCROSS_BORDER_TRADE_FLAG(String CROSS_BORDER_TRADE_FLAG) {
this.CROSS_BORDER_TRADE_FLAG = CROSS_BORDER_TRADE_FLAG;
}
public void setORIGINAL_TERM(Double ORIGINAL_TERM) {
this.ORIGINAL_TERM = ORIGINAL_TERM;
}
public void setOPER_STG(String OPER_STG) {
this.OPER_STG = OPER_STG;
}
public void setPROVISION_EXPO_RATIO(Double PROVISION_EXPO_RATIO) {
this.PROVISION_EXPO_RATIO = PROVISION_EXPO_RATIO;
}
public void setINVESTMENT_FLAG(String INVESTMENT_FLAG) {
this.INVESTMENT_FLAG = INVESTMENT_FLAG;
}
public void setDEFAULT_FLAG(String DEFAULT_FLAG) {
this.DEFAULT_FLAG = DEFAULT_FLAG;
}
public void setSUBJ_CD(String SUBJ_CD) {
this.SUBJ_CD = SUBJ_CD;
}
public void setSUBJ_NM(String SUBJ_NM) {
this.SUBJ_NM = SUBJ_NM;
}
public void setPRODUCT_CD(String PRODUCT_CD) {
this.PRODUCT_CD = PRODUCT_CD;
}
public void setPRODUCT_NM(String PRODUCT_NM) {
this.PRODUCT_NM = PRODUCT_NM;
}
public void setTRADE_TYPE_CD(String TRADE_TYPE_CD) {
this.TRADE_TYPE_CD = TRADE_TYPE_CD;
}
public void setCRED_LETTER_TYPE_CD(String CRED_LETTER_TYPE_CD) {
this.CRED_LETTER_TYPE_CD = CRED_LETTER_TYPE_CD;
}
public void setCAN_MOMNT_RECALL_PROMS_IND(String CAN_MOMNT_RECALL_PROMS_IND) {
this.CAN_MOMNT_RECALL_PROMS_IND = CAN_MOMNT_RECALL_PROMS_IND;
}
public void setIS_LOAN_ALLOW_PROMS(String IS_LOAN_ALLOW_PROMS) {
this.IS_LOAN_ALLOW_PROMS = IS_LOAN_ALLOW_PROMS;
}
public void setCBRC_UNUSED_CRED_LMT_FLAG(String CBRC_UNUSED_CRED_LMT_FLAG) {
this.CBRC_UNUSED_CRED_LMT_FLAG = CBRC_UNUSED_CRED_LMT_FLAG;
}
public void setCORP_CRED_CARD_FLAG(String CORP_CRED_CARD_FLAG) {
this.CORP_CRED_CARD_FLAG = CORP_CRED_CARD_FLAG;
}
}

104
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/ParamRuleDtl.java

@ -0,0 +1,104 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import io.sc.engine.rwa.calculator.utils.DateUtil;
public class ParamRuleDtl extends BaseEntity {
public ParamRuleDtl(){ }
public ParamRuleDtl(String[] row){
setColumnValue(row);
}
public void setColumnValue(String[] row) {
if (row != null) {
setID(row[0]);
setEXPO_ID(row[1]);
setRULE_NAME(row[2]);
setRULE_DATA(row[3]);
setRULE_DATA_TP(row[4]);
setMATCH_TP(row[5]);
setIS_EMPTY_RULE(row[6]);
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID; //主键
private String EXPO_ID; //风险暴露分类规则主表ID
private String RULE_NAME; //规则名称
private String RULE_DATA; //规则值
private String RULE_DATA_TP; //规则值数据类型
private String MATCH_TP; //值匹配方式
private String IS_EMPTY_RULE; //是否空规则
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getEXPO_ID() {
return EXPO_ID;
}
public void setEXPO_ID(String EXPO_ID) {
this.EXPO_ID = EXPO_ID;
}
public String getRULE_NAME() {
return RULE_NAME;
}
public void setRULE_NAME(String RULE_NAME) {
this.RULE_NAME = RULE_NAME;
}
public String getRULE_DATA() {
return RULE_DATA;
}
public void setRULE_DATA(String RULE_DATA) {
this.RULE_DATA = RULE_DATA;
}
public String getRULE_DATA_TP() {
return RULE_DATA_TP;
}
public void setRULE_DATA_TP(String RULE_DATA_TP) {
this.RULE_DATA_TP = RULE_DATA_TP;
}
public String getMATCH_TP() {
return MATCH_TP;
}
public void setMATCH_TP(String MATCH_TP) {
this.MATCH_TP = MATCH_TP;
}
public String getIS_EMPTY_RULE() {
return IS_EMPTY_RULE;
}
public void setIS_EMPTY_RULE(String IS_EMPTY_RULE) {
this.IS_EMPTY_RULE = IS_EMPTY_RULE;
}
public String getTable() {
return "RWA_P_EXPO_RULE_DTL";
}
@Override
public Integer getColumnCount() {
return 13;
}
}

103
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/ParamRuleMain.java

@ -0,0 +1,103 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
public class ParamRuleMain extends BaseEntity {
public ParamRuleMain(){ }
public ParamRuleMain(String[] row){
setColumnValue(row);
}
public void setColumnValue(String[] row) {
if (row != null) {
setID(row[0]);
setEXPO_TP(row[1]);
setSORT_NO(row[2]);
setEXPO_CODE(row[3]);
setEXPO_NAME(row[4]);
setEXPO_WEIGHT(row[5]);
setIS_VALID(row[6]);
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID; //主键
private String EXPO_TP; //风险暴露表内表外类型
private String SORT_NO; //风险暴露规则排序
private String EXPO_CODE; //风险暴露分类编号
private String EXPO_NAME; //风险暴露分类名称
private String EXPO_WEIGHT; //风险暴露分类权重
private String IS_VALID; //是否有效
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getEXPO_TP() {
return EXPO_TP;
}
public void setEXPO_TP(String EXPO_TP) {
this.EXPO_TP = EXPO_TP;
}
public String getSORT_NO() {
return SORT_NO;
}
public void setSORT_NO(String SORT_NO) {
this.SORT_NO = SORT_NO;
}
public String getEXPO_CODE() {
return EXPO_CODE;
}
public void setEXPO_CODE(String EXPO_CODE) {
this.EXPO_CODE = EXPO_CODE;
}
public String getEXPO_NAME() {
return EXPO_NAME;
}
public void setEXPO_NAME(String EXPO_NAME) {
this.EXPO_NAME = EXPO_NAME;
}
public String getEXPO_WEIGHT() {
return EXPO_WEIGHT;
}
public void setEXPO_WEIGHT(String EXPO_WEIGHT) {
this.EXPO_WEIGHT = EXPO_WEIGHT;
}
public String getIS_VALID() {
return IS_VALID;
}
public void setIS_VALID(String IS_VALID) {
this.IS_VALID = IS_VALID;
}
public String getTable() {
return "RWA_P_EXPO_RULE_MAIN";
}
@Override
public Integer getColumnCount() {
return 13;
}
}

324
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RiskExpoWideResult.java

@ -0,0 +1,324 @@
package io.sc.engine.rwa.calculator.domain;
/**
* 权重法风险暴露分类宽表
* @author chengjie
* @time 2023-07-05
*/
public class RiskExpoWideResult{
private String DEBT_ID; //债项编号
private String ON_OFF_FLAG; //表内外标识
private String EAD_TYPE_CODE; //风险暴露分类代码
private String EAD_TYPE_NAME; //风险暴露分类名称
private String EAD_TYPE_NUMBER; //风险暴露分类序号
private Double ASSET_AMT; //资产余额
private Double RESERVE; //计提准备金
private Double CCF; //信用风险转换系数(CCF)
private Double RISK_WEIGHT; //风险权重
private Double RWA_WEIGHT; //风险加权资产RWA_权重法
private Double EAD_WEIGHT; //违约风险暴露EAD_权重法
private Double EAD0_WEIGHT; //违约风险暴露EAD0_其中,资产管理产品风险暴露
private Double EAD1_WEIGHT; //违约风险暴露EAD1_现金类资产
private Double EAD2_WEIGHT; //违约风险暴露EAD2_我国中央政府
private Double EAD3_WEIGHT; //违约风险暴露EAD3_中国人民银行
private Double EAD4_WEIGHT; //违约风险暴露EAD4_我国开发性金融机构和政策性银行
private Double EAD5_WEIGHT; //违约风险暴露EAD5_省级(直辖市、自治区)及计划单列市人民政府-一般债券
private Double EAD6_WEIGHT; //违约风险暴露EAD6_省级(直辖市、自治区)及计划单列市人民政府-专项债券
private Double EAD7_WEIGHT; //违约风险暴露EAD7_其他收入主要源于中央财政的公共部门实体
private Double EAD8_WEIGHT; //违约风险暴露EAD8_经银保监会认定的我国一般公共部门实体
private Double EAD9_WEIGHT; //违约风险暴露EAD9_金融资产管理公司为收购国有银行不良贷款而定向发行的债券
private Double EAD10_WEIGHT; //违约风险暴露EAD10_评级AA-以上(含)的国家和地区的中央政府和中央银行
private Double EAD11_WEIGHT; //违约风险暴露EAD11_评级AA-以下,A-(含)以上的国家和地区的中央政府和中央银行
private Double EAD12_WEIGHT; //违约风险暴露EAD12_评级A-以下,BBB-(含)以上的国家和地区的中央政府和中央银行
private Double EAD13_WEIGHT; //违约风险暴露EAD13_评级AA-(含)及以上国家和地区注册的公共部门实体
private Double EAD14_WEIGHT; //违约风险暴露EAD14_评级AA-以下,A-(含)以上国家和地区注册的公共部门实体
private Double EAD15_WEIGHT; //违约风险暴露EAD15_A+级和A级境内外商业银行(短期)
private Double EAD16_WEIGHT; //违约风险暴露EAD16_A+级境内外商业银行
private Double EAD17_WEIGHT; //违约风险暴露EAD17_A级境内外商业银行
private Double EAD18_WEIGHT; //违约风险暴露EAD18_合格多边开发银行
private Double EAD19_WEIGHT; //违约风险暴露EAD19_评级AA-(含)以上的其他多边开发银行
private Double EAD20_WEIGHT; //违约风险暴露EAD20_对评级AA-以下,A-(含)以上的其他多边开发银行
private Double EAD21_WEIGHT; //违约风险暴露EAD21_评级A-以下,BBB-(含)以上的其他多边开发银行
private Double EAD22_WEIGHT; //违约风险暴露EAD22_国际清算银行、国际货币基金组织、欧洲中央银行、欧盟、欧洲稳定机制和欧洲金融稳定机制
private Double EAD23_WEIGHT; //违约风险暴露EAD23_未缓释风险暴露
public String getDEBT_ID() {
return DEBT_ID;
}
public String getON_OFF_FLAG() {
return ON_OFF_FLAG;
}
public String getEAD_TYPE_CODE() {
return EAD_TYPE_CODE;
}
public String getEAD_TYPE_NAME() {
return EAD_TYPE_NAME;
}
public String getEAD_TYPE_NUMBER() {
return EAD_TYPE_NUMBER;
}
public Double getASSET_AMT() {
return ASSET_AMT;
}
public Double getRESERVE() {
return RESERVE;
}
public Double getCCF() {
return CCF;
}
public Double getRISK_WEIGHT() {
return RISK_WEIGHT;
}
public Double getRWA_WEIGHT() {
return RWA_WEIGHT;
}
public Double getEAD_WEIGHT() {
return EAD_WEIGHT;
}
public Double getEAD0_WEIGHT() {
return EAD0_WEIGHT;
}
public Double getEAD1_WEIGHT() {
return EAD1_WEIGHT;
}
public Double getEAD2_WEIGHT() {
return EAD2_WEIGHT;
}
public Double getEAD3_WEIGHT() {
return EAD3_WEIGHT;
}
public Double getEAD4_WEIGHT() {
return EAD4_WEIGHT;
}
public Double getEAD5_WEIGHT() {
return EAD5_WEIGHT;
}
public Double getEAD6_WEIGHT() {
return EAD6_WEIGHT;
}
public Double getEAD7_WEIGHT() {
return EAD7_WEIGHT;
}
public Double getEAD8_WEIGHT() {
return EAD8_WEIGHT;
}
public Double getEAD9_WEIGHT() {
return EAD9_WEIGHT;
}
public Double getEAD10_WEIGHT() {
return EAD10_WEIGHT;
}
public Double getEAD11_WEIGHT() {
return EAD11_WEIGHT;
}
public Double getEAD12_WEIGHT() {
return EAD12_WEIGHT;
}
public Double getEAD13_WEIGHT() {
return EAD13_WEIGHT;
}
public Double getEAD14_WEIGHT() {
return EAD14_WEIGHT;
}
public Double getEAD15_WEIGHT() {
return EAD15_WEIGHT;
}
public Double getEAD16_WEIGHT() {
return EAD16_WEIGHT;
}
public Double getEAD17_WEIGHT() {
return EAD17_WEIGHT;
}
public Double getEAD18_WEIGHT() {
return EAD18_WEIGHT;
}
public Double getEAD19_WEIGHT() {
return EAD19_WEIGHT;
}
public Double getEAD20_WEIGHT() {
return EAD20_WEIGHT;
}
public Double getEAD21_WEIGHT() {
return EAD21_WEIGHT;
}
public Double getEAD22_WEIGHT() {
return EAD22_WEIGHT;
}
public Double getEAD23_WEIGHT() {
return EAD23_WEIGHT;
}
public void setDEBT_ID(String DEBT_ID) {
this.DEBT_ID = DEBT_ID;
}
public void setON_OFF_FLAG(String ON_OFF_FLAG) {
this.ON_OFF_FLAG = ON_OFF_FLAG;
}
public void setEAD_TYPE_CODE(String EAD_TYPE_CODE) {
this.EAD_TYPE_CODE = EAD_TYPE_CODE;
}
public void setEAD_TYPE_NAME(String EAD_TYPE_NAME) {
this.EAD_TYPE_NAME = EAD_TYPE_NAME;
}
public void setEAD_TYPE_NUMBER(String EAD_TYPE_NUMBER) {
this.EAD_TYPE_NUMBER = EAD_TYPE_NUMBER;
}
public void setASSET_AMT(Double ASSET_AMT) {
this.ASSET_AMT = ASSET_AMT;
}
public void setRESERVE(Double RESERVE) {
this.RESERVE = RESERVE;
}
public void setCCF(Double CCF) {
this.CCF = CCF;
}
public void setRISK_WEIGHT(Double RISK_WEIGHT) {
this.RISK_WEIGHT = RISK_WEIGHT;
}
public void setRWA_WEIGHT(Double RWA_WEIGHT) {
this.RWA_WEIGHT = RWA_WEIGHT;
}
public void setEAD_WEIGHT(Double EAD_WEIGHT) {
this.EAD_WEIGHT = EAD_WEIGHT;
}
public void setEAD0_WEIGHT(Double EAD0_WEIGHT) {
this.EAD0_WEIGHT = EAD0_WEIGHT;
}
public void setEAD1_WEIGHT(Double EAD1_WEIGHT) {
this.EAD1_WEIGHT = EAD1_WEIGHT;
}
public void setEAD2_WEIGHT(Double EAD2_WEIGHT) {
this.EAD2_WEIGHT = EAD2_WEIGHT;
}
public void setEAD3_WEIGHT(Double EAD3_WEIGHT) {
this.EAD3_WEIGHT = EAD3_WEIGHT;
}
public void setEAD4_WEIGHT(Double EAD4_WEIGHT) {
this.EAD4_WEIGHT = EAD4_WEIGHT;
}
public void setEAD5_WEIGHT(Double EAD5_WEIGHT) {
this.EAD5_WEIGHT = EAD5_WEIGHT;
}
public void setEAD6_WEIGHT(Double EAD6_WEIGHT) {
this.EAD6_WEIGHT = EAD6_WEIGHT;
}
public void setEAD7_WEIGHT(Double EAD7_WEIGHT) {
this.EAD7_WEIGHT = EAD7_WEIGHT;
}
public void setEAD8_WEIGHT(Double EAD8_WEIGHT) {
this.EAD8_WEIGHT = EAD8_WEIGHT;
}
public void setEAD9_WEIGHT(Double EAD9_WEIGHT) {
this.EAD9_WEIGHT = EAD9_WEIGHT;
}
public void setEAD10_WEIGHT(Double EAD10_WEIGHT) {
this.EAD10_WEIGHT = EAD10_WEIGHT;
}
public void setEAD11_WEIGHT(Double EAD11_WEIGHT) {
this.EAD11_WEIGHT = EAD11_WEIGHT;
}
public void setEAD12_WEIGHT(Double EAD12_WEIGHT) {
this.EAD12_WEIGHT = EAD12_WEIGHT;
}
public void setEAD13_WEIGHT(Double EAD13_WEIGHT) {
this.EAD13_WEIGHT = EAD13_WEIGHT;
}
public void setEAD14_WEIGHT(Double EAD14_WEIGHT) {
this.EAD14_WEIGHT = EAD14_WEIGHT;
}
public void setEAD15_WEIGHT(Double EAD15_WEIGHT) {
this.EAD15_WEIGHT = EAD15_WEIGHT;
}
public void setEAD16_WEIGHT(Double EAD16_WEIGHT) {
this.EAD16_WEIGHT = EAD16_WEIGHT;
}
public void setEAD17_WEIGHT(Double EAD17_WEIGHT) {
this.EAD17_WEIGHT = EAD17_WEIGHT;
}
public void setEAD18_WEIGHT(Double EAD18_WEIGHT) {
this.EAD18_WEIGHT = EAD18_WEIGHT;
}
public void setEAD19_WEIGHT(Double EAD19_WEIGHT) {
this.EAD19_WEIGHT = EAD19_WEIGHT;
}
public void setEAD20_WEIGHT(Double EAD20_WEIGHT) {
this.EAD20_WEIGHT = EAD20_WEIGHT;
}
public void setEAD21_WEIGHT(Double EAD21_WEIGHT) {
this.EAD21_WEIGHT = EAD21_WEIGHT;
}
public void setEAD22_WEIGHT(Double EAD22_WEIGHT) {
this.EAD22_WEIGHT = EAD22_WEIGHT;
}
public void setEAD23_WEIGHT(Double EAD23_WEIGHT) {
this.EAD23_WEIGHT = EAD23_WEIGHT;
}
}

504
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RiskMitigResult.java

@ -0,0 +1,504 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import io.sc.platform.util.StringUtil;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.toEmptyDouble;
/**
* 权重法风险缓释结果表
* @author chengjie
* @time 2023-07-05
*/
public class RiskMitigResult extends BaseEntity {
public RiskMitigResult(){
}
public RiskMitigResult(String[] row){
this.setColumnValue(row);
}
public String pass2String(){
StringBuffer buf = new StringBuffer();
buf.append(this.ID).append(",");
buf.append(this.DATA_DT).append(",");
buf.append(this.DEBT_ID).append(",");
buf.append(this.ON_OFF_FLAG).append(",");
buf.append(this.EAD_TYPE_CODE).append(",");
buf.append(this.EAD_TYPE_NAME).append(",");
buf.append(this.EAD_TYPE_NUMBER).append(",");
buf.append(this.ASSET_AMT==null?"":this.ASSET_AMT).append(",");
buf.append(this.RESERVE==null?"":this.RESERVE).append(",");
buf.append(this.CCF==null?"":this.CCF).append(",");
buf.append(this.DEBT_RISK_WEIGHT==null?"":this.DEBT_RISK_WEIGHT).append(",");
buf.append(this.EAD_WEIGHT==null?"":this.EAD_WEIGHT).append(",");
buf.append(this.EAD0_WEIGHT==null?"":this.EAD0_WEIGHT).append(",");
buf.append(this.COLL_ID).append(",");
buf.append(this.ACCORD_RISK_TOOL_TYPE_CD).append(",");
buf.append(this.ACCORD_RISK_TOOL_TYPE_NM).append(",");
buf.append(this.RISK_TOOL_RISK_WEIGHT==null?"":this.RISK_TOOL_RISK_WEIGHT).append(",");
buf.append(this.RISK_TOLL_EXPO_TYPE_CODE).append(",");
buf.append(this.COLL_VALUE==null?"":this.COLL_VALUE).append(",");
buf.append(this.MITIG_AMT==null?"":this.MITIG_AMT).append(",");
buf.append(this.RWA_WEIGHT==null?"":this.RWA_WEIGHT).append(",");
buf.append(this.RWA_IRS==null?"":this.RWA_IRS).append(",");
buf.append(this.BUSI_TYPE).append(",");
buf.append(this.PD_IRS==null?"":this.PD_IRS).append(",");
buf.append(this.LGD_IRS==null?"":this.LGD_IRS).append(",");
buf.append(this.EAD_TYPE_IRS).append(",");
buf.append(this.CUST_NO).append(",");
buf.append(this.CUST_NAME).append(",");
buf.append(this.BELONG_ORG).append(",");
buf.append(this.COLL_RISK_CLASS_CD==null?"":this.COLL_RISK_CLASS_CD).append(",");
buf.append(this.COLL_RISK_CLASS_NM==null?"":this.COLL_RISK_CLASS_NM).append(",");
buf.append(this.FIN_DISTR_VALUE==null?"":this.FIN_DISTR_VALUE).append(",");
buf.append(this.REC_DISTR_VALUE==null?"":this.REC_DISTR_VALUE).append(",");
buf.append(this.HOU_DISTR_VALUE==null?"":this.HOU_DISTR_VALUE).append(",");
buf.append(this.OTH_DISTR_VALUE==null?"":this.OTH_DISTR_VALUE).append(",");
buf.append(this.ASSET_MNG_PRD_FLG).append(",");
buf.append(this.LTV==null?"":this.LTV).append(",");
buf.append(this.BELONG_AREA).append(",");
buf.append(this.CORP_SIZE).append(",");
buf.append(this.REMAIN_TERM==null?"":this.REMAIN_TERM).append(",");
buf.append(this.INDUSTRY_TYPE);
return buf.toString();
}
@Override
public void setColumnValue(String [] row){
if(row != null){
setID(row[0]); //ID
setDATA_DT(row[1]); //数据日期
setDEBT_ID(row[2]); //债项编号
setON_OFF_FLAG(row[3]); //表内外标识
setEAD_TYPE_CODE(row[4]); //风险暴露分类代码
setEAD_TYPE_NAME(row[5]); //风险暴露分类名称
setEAD_TYPE_NUMBER(row[6]); //风险暴露分类序号
setASSET_AMT(StringUtil.isNullOrEmpty(row[7])?0:Double.valueOf(row[7])); //资产余额
setRESERVE(StringUtil.isNullOrEmpty(row[8])?0:Double.valueOf(row[8])); //计提准备金
setCCF(StringUtil.isNullOrEmpty(row[9])?1:Double.valueOf(row[9])); //信用风险转换系数(CCF)
setDEBT_RISK_WEIGHT(StringUtil.isNullOrEmpty(row[10])?null:Double.valueOf(row[10])); //债项风险权重
setEAD_WEIGHT(StringUtil.isNullOrEmpty(row[11])?0:Double.valueOf(row[11])); //风险暴露EAD
setEAD0_WEIGHT(StringUtil.isNullOrEmpty(row[12])?0:Double.valueOf(row[12])); //资产管理产品EAD
setCOLL_ID(row[13]); //风险缓释工具编号
setACCORD_RISK_TOOL_TYPE_CD(row[14]); //合格缓释工具类型代码
setACCORD_RISK_TOOL_TYPE_NM(row[15]); //合格缓释工具类型名称
setRISK_TOOL_RISK_WEIGHT(StringUtil.isNullOrEmpty(row[16])?null:Double.valueOf(row[16])); //缓释工具风险权重
setRISK_TOLL_EXPO_TYPE_CODE(row[17]); //缓释工具风险暴露分类
setCOLL_VALUE(StringUtil.isNullOrEmpty(row[18])?0:Double.valueOf(row[18])); //风险缓释工具我行认定价值
setMITIG_AMT(StringUtil.isNullOrEmpty(row[19])?0:Double.valueOf(row[19])); //已缓释金额
setRWA_WEIGHT(StringUtil.isNullOrEmpty(row[20])?null:Double.valueOf(row[20])); //权重法风险加权资产
setRWA_IRS(StringUtil.isNullOrEmpty(row[21])?null:Double.valueOf(row[21])); //内评法风险加权资产
setBUSI_TYPE(row[22]); //业务类型
setPD_IRS(StringUtil.isNullOrEmpty(row[23])?null:Double.valueOf(row[23])); //客户PD
setLGD_IRS(StringUtil.isNullOrEmpty(row[24])?null:Double.valueOf(row[24])); //债项LGD
setEAD_TYPE_IRS(row[25]); //内评法风险暴露分类
setCUST_NO(row[26]); //客户编号
setCUST_NAME(row[27]); //客户名称
setBELONG_ORG(row[28]); //业务所属机构
setCOLL_RISK_CLASS_CD(row[29]); //押品风险分类代码
setCOLL_RISK_CLASS_NM(row[30]); //押品风险分类名称
setFIN_DISTR_VALUE(toEmptyDouble(row[31])); //金融质押品缓释金额
setREC_DISTR_VALUE(toEmptyDouble(row[32])); //应收账款缓释金额
setHOU_DISTR_VALUE(toEmptyDouble(row[33])); //房地产缓释金额
setOTH_DISTR_VALUE(toEmptyDouble(row[34])); //其他抵质押品缓释金额
setASSET_MNG_PRD_FLG(row[35]); //资产管理产品标识
setLTV(toEmptyDouble(row[36]));
setBELONG_AREA(row[37]);
setCORP_SIZE(row[38]);
setREMAIN_TERM(toEmptyDouble(row[39]));
setINDUSTRY_TYPE(row[40]);
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID; //ID
private String DATA_DT; //数据日期
private String DEBT_ID; //债项编号
private String ON_OFF_FLAG; //表内外标识
private String EAD_TYPE_CODE; //风险暴露分类代码
private String EAD_TYPE_NAME; //风险暴露分类名称
private String EAD_TYPE_NUMBER; //风险暴露分类序号
private Double ASSET_AMT; //资产余额
private Double RESERVE; //计提准备金
private Double CCF; //信用风险转换系数(CCF)
private Double DEBT_RISK_WEIGHT; //债项风险权重
private Double EAD_WEIGHT; //风险暴露EAD
private Double EAD0_WEIGHT; //资产管理产品EAD
private String COLL_ID; //风险缓释工具编号
private String ACCORD_RISK_TOOL_TYPE_CD; //合格缓释工具类型代码
private String ACCORD_RISK_TOOL_TYPE_NM; //合格缓释工具类型名称
private Double RISK_TOOL_RISK_WEIGHT; //缓释工具风险权重
private String RISK_TOLL_EXPO_TYPE_CODE; //缓释工具风险暴露分类
private Double COLL_VALUE; //风险缓释工具我行认定价值
private Double MITIG_AMT; //已缓释金额
private Double RWA_WEIGHT; //权重法风险加权资产
private Double RWA_IRS; //内评法风险加权资产
private String BUSI_TYPE; //业务类型
private Double PD_IRS; //客户PD
private Double LGD_IRS; //债项LGD
private String EAD_TYPE_IRS; //内评法风险暴露分类
private String CUST_NO; //客户编号
private String CUST_NAME; //客户名称
private String BELONG_ORG; //业务所属机构
private String COLL_RISK_CLASS_CD; //押品风险分类代码
private String COLL_RISK_CLASS_NM; //押品风险分类名称
private Double FIN_DISTR_VALUE; //金融质押品缓释金额
private Double REC_DISTR_VALUE; //应收账款缓释金额
private Double HOU_DISTR_VALUE; //房地产缓释金额
private Double OTH_DISTR_VALUE; //其他抵质押品缓释金额
private String ASSET_MNG_PRD_FLG; //资产管理产品标识
private Double LTV; //贷款价值比
private String BELONG_AREA; //所在区域
private String CORP_SIZE; //企业规模
private Double REMAIN_TERM; //剩余期限(年)
private String INDUSTRY_TYPE; //所属行业
public String getINDUSTRY_TYPE() {
return INDUSTRY_TYPE;
}
public void setINDUSTRY_TYPE(String INDUSTRY_TYPE) {
this.INDUSTRY_TYPE = INDUSTRY_TYPE;
}
public String getBELONG_AREA() {
return BELONG_AREA;
}
public void setBELONG_AREA(String BELONG_AREA) {
this.BELONG_AREA = BELONG_AREA;
}
public String getCORP_SIZE() {
return CORP_SIZE;
}
public void setCORP_SIZE(String CORP_SIZE) {
this.CORP_SIZE = CORP_SIZE;
}
public Double getREMAIN_TERM() {
return REMAIN_TERM;
}
public void setREMAIN_TERM(Double REMAIN_TERM) {
this.REMAIN_TERM = REMAIN_TERM;
}
public Double getLTV() {
return LTV;
}
public void setLTV(Double LTV) {
this.LTV = LTV;
}
public String getASSET_MNG_PRD_FLG() {
return ASSET_MNG_PRD_FLG;
}
public void setASSET_MNG_PRD_FLG(String ASSET_MNG_PRD_FLG) {
this.ASSET_MNG_PRD_FLG = ASSET_MNG_PRD_FLG;
}
public String getCOLL_RISK_CLASS_CD() {
return COLL_RISK_CLASS_CD;
}
public void setCOLL_RISK_CLASS_CD(String COLL_RISK_CLASS_CD) {
this.COLL_RISK_CLASS_CD = COLL_RISK_CLASS_CD;
}
public String getCOLL_RISK_CLASS_NM() {
return COLL_RISK_CLASS_NM;
}
public void setCOLL_RISK_CLASS_NM(String COLL_RISK_CLASS_NM) {
this.COLL_RISK_CLASS_NM = COLL_RISK_CLASS_NM;
}
public Double getFIN_DISTR_VALUE() {
return FIN_DISTR_VALUE;
}
public void setFIN_DISTR_VALUE(Double FIN_DISTR_VALUE) {
this.FIN_DISTR_VALUE = FIN_DISTR_VALUE;
}
public Double getREC_DISTR_VALUE() {
return REC_DISTR_VALUE;
}
public void setREC_DISTR_VALUE(Double REC_DISTR_VALUE) {
this.REC_DISTR_VALUE = REC_DISTR_VALUE;
}
public Double getHOU_DISTR_VALUE() {
return HOU_DISTR_VALUE;
}
public void setHOU_DISTR_VALUE(Double HOU_DISTR_VALUE) {
this.HOU_DISTR_VALUE = HOU_DISTR_VALUE;
}
public Double getOTH_DISTR_VALUE() {
return OTH_DISTR_VALUE;
}
public void setOTH_DISTR_VALUE(Double OTH_DISTR_VALUE) {
this.OTH_DISTR_VALUE = OTH_DISTR_VALUE;
}
public String getCUST_NO() {
return CUST_NO;
}
public void setCUST_NO(String CUST_NO) {
this.CUST_NO = CUST_NO;
}
public String getCUST_NAME() {
return CUST_NAME;
}
public void setCUST_NAME(String CUST_NAME) {
this.CUST_NAME = CUST_NAME;
}
public String getBELONG_ORG() {
return BELONG_ORG;
}
public void setBELONG_ORG(String BELONG_ORG) {
this.BELONG_ORG = BELONG_ORG;
}
public Double getPD_IRS() {
return PD_IRS;
}
public String getEAD_TYPE_IRS() {
return EAD_TYPE_IRS;
}
public void setEAD_TYPE_IRS(String EAD_TYPE_IRS) {
this.EAD_TYPE_IRS = EAD_TYPE_IRS;
}
public void setPD_IRS(Double PD_IRS) {
this.PD_IRS = PD_IRS;
}
public Double getLGD_IRS() {
return LGD_IRS;
}
public void setLGD_IRS(Double LGD_IRS) {
this.LGD_IRS = LGD_IRS;
}
public Double getRWA_WEIGHT() {
return RWA_WEIGHT;
}
public void setRWA_WEIGHT(Double RWA_WEIGHT) {
this.RWA_WEIGHT = RWA_WEIGHT;
}
public Double getRWA_IRS() {
return RWA_IRS;
}
public void setRWA_IRS(Double RWA_IRS) {
this.RWA_IRS = RWA_IRS;
}
public String getBUSI_TYPE() {
return BUSI_TYPE;
}
public void setBUSI_TYPE(String BUSI_TYPE) {
this.BUSI_TYPE = BUSI_TYPE;
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getRISK_TOLL_EXPO_TYPE_CODE() {
return RISK_TOLL_EXPO_TYPE_CODE;
}
public void setRISK_TOLL_EXPO_TYPE_CODE(String RISK_TOLL_EXPO_TYPE_CODE) {
this.RISK_TOLL_EXPO_TYPE_CODE = RISK_TOLL_EXPO_TYPE_CODE;
}
public String getTable() {
return "RWA_R_RISK_MIGIT_RESULT";
}
@Override
public Integer getColumnCount() {
return 47;
}
@Override
public String[] getColumnDataType(){
return new String[]{
"String","String","String","String","String","String","String","Double","Double","Double","Double","Double","Double","String","String","String","Double","String","Double","Double","Double","Double","String","Double","Double","String","String","String","String","String","String","Double","Double","Double","Double","String","Double","String","String","Double","String"
};
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getCOLL_ID() {
return COLL_ID;
}
public void setCOLL_ID(String COLL_ID) {
this.COLL_ID = COLL_ID;
}
public String getACCORD_RISK_TOOL_TYPE_CD() {
return ACCORD_RISK_TOOL_TYPE_CD;
}
public void setACCORD_RISK_TOOL_TYPE_CD(String ACCORD_RISK_TOOL_TYPE_CD) {
this.ACCORD_RISK_TOOL_TYPE_CD = ACCORD_RISK_TOOL_TYPE_CD;
}
public String getACCORD_RISK_TOOL_TYPE_NM() {
return ACCORD_RISK_TOOL_TYPE_NM;
}
public void setACCORD_RISK_TOOL_TYPE_NM(String ACCORD_RISK_TOOL_TYPE_NM) {
this.ACCORD_RISK_TOOL_TYPE_NM = ACCORD_RISK_TOOL_TYPE_NM;
}
public Double getRISK_TOOL_RISK_WEIGHT() {
return RISK_TOOL_RISK_WEIGHT;
}
public void setRISK_TOOL_RISK_WEIGHT(Double RISK_TOOL_RISK_WEIGHT) {
this.RISK_TOOL_RISK_WEIGHT = RISK_TOOL_RISK_WEIGHT;
}
public Double getCOLL_VALUE() {
return COLL_VALUE;
}
public void setCOLL_VALUE(Double COLL_VALUE) {
this.COLL_VALUE = COLL_VALUE;
}
public Double getMITIG_AMT() {
return MITIG_AMT;
}
public void setMITIG_AMT(Double MITIG_AMT) {
this.MITIG_AMT = MITIG_AMT;
}
public String getDEBT_ID() {
return DEBT_ID;
}
public void setDEBT_ID(String DEBT_ID) {
this.DEBT_ID = DEBT_ID;
}
public String getON_OFF_FLAG() {
return ON_OFF_FLAG;
}
public void setON_OFF_FLAG(String ON_OFF_FLAG) {
this.ON_OFF_FLAG = ON_OFF_FLAG;
}
public String getEAD_TYPE_CODE() {
return EAD_TYPE_CODE;
}
public void setEAD_TYPE_CODE(String EAD_TYPE_CODE) {
this.EAD_TYPE_CODE = EAD_TYPE_CODE;
}
public String getEAD_TYPE_NAME() {
return EAD_TYPE_NAME;
}
public void setEAD_TYPE_NAME(String EAD_TYPE_NAME) {
this.EAD_TYPE_NAME = EAD_TYPE_NAME;
}
public String getEAD_TYPE_NUMBER() {
return EAD_TYPE_NUMBER;
}
public void setEAD_TYPE_NUMBER(String EAD_TYPE_NUMBER) {
this.EAD_TYPE_NUMBER = EAD_TYPE_NUMBER;
}
public Double getASSET_AMT() {
return ASSET_AMT;
}
public void setASSET_AMT(Double ASSET_AMT) {
this.ASSET_AMT = ASSET_AMT;
}
public Double getRESERVE() {
return RESERVE;
}
public void setRESERVE(Double RESERVE) {
this.RESERVE = RESERVE;
}
public Double getCCF() {
return CCF;
}
public void setCCF(Double CCF) {
this.CCF = CCF;
}
public Double getDEBT_RISK_WEIGHT() {
return DEBT_RISK_WEIGHT;
}
public void setDEBT_RISK_WEIGHT(Double DEBT_RISK_WEIGHT) {
this.DEBT_RISK_WEIGHT = DEBT_RISK_WEIGHT;
}
public Double getEAD_WEIGHT() {
return EAD_WEIGHT;
}
public void setEAD_WEIGHT(Double EAD_WEIGHT) {
this.EAD_WEIGHT = EAD_WEIGHT;
}
public Double getEAD0_WEIGHT() {
return EAD0_WEIGHT;
}
public void setEAD0_WEIGHT(Double EAD0_WEIGHT) {
this.EAD0_WEIGHT = EAD0_WEIGHT;
}
}

104
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RiskToolMappingParam.java

@ -0,0 +1,104 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import io.sc.platform.util.StringUtil;
/**
* 监管缓释工具映射参数
* @author chengjie
* @time 2023-07-20
*/
public class RiskToolMappingParam extends BaseEntity {
public RiskToolMappingParam(){ }
public RiskToolMappingParam(String[] row){
setColumnValue(row);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID(row[0]);
setRISK_TOOL_TYPE_CD(row[1]);
setRISK_TOOL_TYPE_NM(row[2]);
setCRBC_RISK_TOOL_TYPE_CD(row[3]);
setCRBC_RISK_TOOL_TYPE_NM(row[4]);
}
}
private String ID; //唯一标识
private String RISK_TOOL_TYPE_CD; //银行缓释工具类型代码
private String RISK_TOOL_TYPE_NM; //银行缓释工具类型名称
private String CRBC_RISK_TOOL_TYPE_CD; //监管缓释工具代码
private String CRBC_RISK_TOOL_TYPE_NM; //监管缓释工具名称
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getRISK_TOOL_TYPE_CD() {
return RISK_TOOL_TYPE_CD;
}
public void setRISK_TOOL_TYPE_CD(String RISK_TOOL_TYPE_CD) {
this.RISK_TOOL_TYPE_CD = RISK_TOOL_TYPE_CD;
}
public String getRISK_TOOL_TYPE_NM() {
return RISK_TOOL_TYPE_NM;
}
public void setRISK_TOOL_TYPE_NM(String RISK_TOOL_TYPE_NM) {
this.RISK_TOOL_TYPE_NM = RISK_TOOL_TYPE_NM;
}
public String getCRBC_RISK_TOOL_TYPE_CD() {
return CRBC_RISK_TOOL_TYPE_CD;
}
public void setCRBC_RISK_TOOL_TYPE_CD(String CRBC_RISK_TOOL_TYPE_CD) {
this.CRBC_RISK_TOOL_TYPE_CD = CRBC_RISK_TOOL_TYPE_CD;
}
public String getCRBC_RISK_TOOL_TYPE_NM() {
return CRBC_RISK_TOOL_TYPE_NM;
}
public void setCRBC_RISK_TOOL_TYPE_NM(String CRBC_RISK_TOOL_TYPE_NM) {
this.CRBC_RISK_TOOL_TYPE_NM = CRBC_RISK_TOOL_TYPE_NM;
}
public String getTable() {
return "RWA_P_RISK_TOOL_MAPPING";
}
@Override
public Integer getColumnCount() {
return 11;
}
@Override
public String getFieldVal(String column) {
String val = "";
if(StringUtil.isNullOrEmpty(column)){
val = "";
}else if(column.equals("ID")){
val = ID;
}else if(column.equals("RISK_TOOL_TYPE_CD")){
val = RISK_TOOL_TYPE_CD;
}else if(column.equals("RISK_TOOL_TYPE_NM")){
val = RISK_TOOL_TYPE_NM;
} else if(column.equals("CRBC_RISK_TOOL_TYPE_CD")){
val = CRBC_RISK_TOOL_TYPE_CD;
} else if(column.equals("CRBC_RISK_TOOL_TYPE_NM")){
val = CRBC_RISK_TOOL_TYPE_NM;
}
return val;
}
@Override
public int getIndex(String column) {
return 0;
}
}

67
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaConfigRiskExpoRule.java

@ -0,0 +1,67 @@
package io.sc.engine.rwa.calculator.domain;
public class RwaConfigRiskExpoRule {
private String SORT_ID;
private String CFG_TYPE;
private String OPT_CD;
private String IDX_NM;
private String IDX_VAL;
private String MATCH_TYPE;
private String IDX_DATA_TYPE;
public String getSORT_ID() {
return SORT_ID;
}
public void setSORT_ID(String SORT_ID) {
this.SORT_ID = SORT_ID;
}
public String getCFG_TYPE() {
return CFG_TYPE;
}
public void setCFG_TYPE(String CFG_TYPE) {
this.CFG_TYPE = CFG_TYPE;
}
public String getOPT_CD() {
return OPT_CD;
}
public void setOPT_CD(String OPT_CD) {
this.OPT_CD = OPT_CD;
}
public String getIDX_NM() {
return IDX_NM;
}
public void setIDX_NM(String IDX_NM) {
this.IDX_NM = IDX_NM;
}
public String getIDX_VAL() {
return IDX_VAL;
}
public void setIDX_VAL(String IDX_VAL) {
this.IDX_VAL = IDX_VAL;
}
public String getMATCH_TYPE() {
return MATCH_TYPE;
}
public void setMATCH_TYPE(String MATCH_TYPE) {
this.MATCH_TYPE = MATCH_TYPE;
}
public String getIDX_DATA_TYPE() {
return IDX_DATA_TYPE;
}
public void setIDX_DATA_TYPE(String IDX_DATA_TYPE) {
this.IDX_DATA_TYPE = IDX_DATA_TYPE;
}
}

186
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaIrsCorpSizeRule.java

@ -0,0 +1,186 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.toEmptyDouble;
public class RwaIrsCorpSizeRule extends BaseEntity {
public RwaIrsCorpSizeRule(){ }
public RwaIrsCorpSizeRule(String[] row){
setColumnValue(row);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID (row[0]);
setSORT_NO (row[1]);
setCORP_SIZE_CD (row[2]);
setCORP_SIZE_NM (row[3]);
setINDUSTRY_TYPE (row[4]);
setSALE_INCOME_DW (toEmptyDouble(row[5]));
setSALE_INCOME_UP (toEmptyDouble(row[6]));
setSALE_INCOME_DESC(row[7]);
setTOTAL_ASSET_DW (toEmptyDouble(row[8]));
setTOTAL_ASSET_UP (toEmptyDouble(row[9]));
setTOTAL_ASSET_DESC(row[10]);
setEMPLOY_NUM_DW (toEmptyDouble(row[11]));
setEMPLOY_NUM_UP (toEmptyDouble(row[12]));
setEMPLOY_NUM_DESC (row[13]);
setIS_VALID (row[14]);
}
}
private String ID ; //ID
private String SORT_NO ; //序号
private String CORP_SIZE_CD ; //企业规模代码
private String CORP_SIZE_NM ; //企业规模名称
private String INDUSTRY_TYPE ; //行业分类
private Double SALE_INCOME_DW ; //营业收入下限
private Double SALE_INCOME_UP ; //营业收入上限
private String SALE_INCOME_DESC ; //营业收入描述
private Double TOTAL_ASSET_DW ; //总资产下限
private Double TOTAL_ASSET_UP ; //总资产上限
private String TOTAL_ASSET_DESC ; //总资产描述
private Double EMPLOY_NUM_DW ; //员工人数下限
private Double EMPLOY_NUM_UP ; //员工人数上限
private String EMPLOY_NUM_DESC ; //员工人数描述
private String IS_VALID ; //是否有效
public String getIS_VALID() {
return IS_VALID;
}
public void setIS_VALID(String IS_VALID) {
this.IS_VALID = IS_VALID;
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getSORT_NO() {
return SORT_NO;
}
public void setSORT_NO(String SORT_NO) {
this.SORT_NO = SORT_NO;
}
public String getCORP_SIZE_CD() {
return CORP_SIZE_CD;
}
public void setCORP_SIZE_CD(String CORP_SIZE_CD) {
this.CORP_SIZE_CD = CORP_SIZE_CD;
}
public String getCORP_SIZE_NM() {
return CORP_SIZE_NM;
}
public void setCORP_SIZE_NM(String CORP_SIZE_NM) {
this.CORP_SIZE_NM = CORP_SIZE_NM;
}
public String getINDUSTRY_TYPE() {
return INDUSTRY_TYPE;
}
public void setINDUSTRY_TYPE(String INDUSTRY_TYPE) {
this.INDUSTRY_TYPE = INDUSTRY_TYPE;
}
public Double getSALE_INCOME_DW() {
return SALE_INCOME_DW;
}
public void setSALE_INCOME_DW(Double SALE_INCOME_DW) {
this.SALE_INCOME_DW = SALE_INCOME_DW;
}
public Double getSALE_INCOME_UP() {
return SALE_INCOME_UP;
}
public void setSALE_INCOME_UP(Double SALE_INCOME_UP) {
this.SALE_INCOME_UP = SALE_INCOME_UP;
}
public String getSALE_INCOME_DESC() {
return SALE_INCOME_DESC;
}
public void setSALE_INCOME_DESC(String SALE_INCOME_DESC) {
this.SALE_INCOME_DESC = SALE_INCOME_DESC;
}
public Double getTOTAL_ASSET_DW() {
return TOTAL_ASSET_DW;
}
public void setTOTAL_ASSET_DW(Double TOTAL_ASSET_DW) {
this.TOTAL_ASSET_DW = TOTAL_ASSET_DW;
}
public Double getTOTAL_ASSET_UP() {
return TOTAL_ASSET_UP;
}
public void setTOTAL_ASSET_UP(Double TOTAL_ASSET_UP) {
this.TOTAL_ASSET_UP = TOTAL_ASSET_UP;
}
public String getTOTAL_ASSET_DESC() {
return TOTAL_ASSET_DESC;
}
public void setTOTAL_ASSET_DESC(String TOTAL_ASSET_DESC) {
this.TOTAL_ASSET_DESC = TOTAL_ASSET_DESC;
}
public Double getEMPLOY_NUM_DW() {
return EMPLOY_NUM_DW;
}
public void setEMPLOY_NUM_DW(Double EMPLOY_NUM_DW) {
this.EMPLOY_NUM_DW = EMPLOY_NUM_DW;
}
public Double getEMPLOY_NUM_UP() {
return EMPLOY_NUM_UP;
}
public void setEMPLOY_NUM_UP(Double EMPLOY_NUM_UP) {
this.EMPLOY_NUM_UP = EMPLOY_NUM_UP;
}
public String getEMPLOY_NUM_DESC() {
return EMPLOY_NUM_DESC;
}
public void setEMPLOY_NUM_DESC(String EMPLOY_NUM_DESC) {
this.EMPLOY_NUM_DESC = EMPLOY_NUM_DESC;
}
public String getTable() {
return "RWA_P_IRS_CORP_SIZE_RULE";
}
@Override
public Integer getColumnCount() {
return 21;
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
}

442
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaIrsDebt.java

@ -0,0 +1,442 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import java.util.HashMap;
/**
* 内评法债项信息汇总表
* @author chengjie
* @time 2024-05-07
*/
public class RwaIrsDebt extends BaseEntity {
public RwaIrsDebt(){ setColMap(); }
public RwaIrsDebt(String[] row){
setColumnValue(row);
}
private String ID ; //主键
private String DATA_DT ; //数据日期
private String DEBT_ID ; //债项编号
private String BUSI_TYPE ; //业务类型
private String ON_OFF_FLG ; //表内表外标识
private String CUST_NO ; //客户编号
private String CUST_NAME ; //客户名称
private String CUST_TYPE ; //客户类型
private String PROD_TYPE_CD ; //产品类型代码
private String PROD_TYPE_NM ; //产品类型名称
private String CORP_SIZE ; //企业规模
private Double TOTAL_CRED_AMT ; //授信总额
private String PROFESSIONAL_LOANS_FLG ; //专业贷款标识
private String PROFESSIONAL_LOANS_TYPE ; //专业贷款类型
private Double L3_INCOME_AVG ; //近三年营业收入平均值
private String INDUSTRY_TYPE ; //国标行业代码
private Double M12_CRED_BAL ; //过去3年最近12个月信用卡余额
private String M12_CRED_OVD_FLAG ; //过去3年最近12个月信用卡是否逾期标识
private Double PD ; //违约概率
private Double LGD ; //违约损失率
private Double EAD ; //违约风险暴露
private Double CCF ; //信用转换系数
private String RISK_EXPOSURE_CD ; //内评法风险暴露分类代码
private String RISK_EXPOSURE_NM ; //内评法风险暴露分类名称
private Double LOAN_TERM ; //债项剩余期限(年)
private String SYSTEM_IMPORTANCE_BANK ; //系统重要性银行标识
private String DEF_FLG ; //违约标识
private Double BEEF ; //预期损失率的最佳估计值
private String BELONG_ORG ; //业务所属机构
private String FLUCTUATION_FLAG ; //波动性较大标识
private String ASSET_MNG_PROD_CD ; //资产管理产品编号
private String BELONG_AREA ; //所属区域
public String getBELONG_AREA() {
return BELONG_AREA;
}
public void setBELONG_AREA(String BELONG_AREA) {
this.BELONG_AREA = BELONG_AREA;
}
public String getASSET_MNG_PROD_CD() {
return ASSET_MNG_PROD_CD;
}
public void setASSET_MNG_PROD_CD(String ASSET_MNG_PROD_CD) {
this.ASSET_MNG_PROD_CD = ASSET_MNG_PROD_CD;
}
public String getFLUCTUATION_FLAG() {
return FLUCTUATION_FLAG;
}
public void setFLUCTUATION_FLAG(String FLUCTUATION_FLAG) {
this.FLUCTUATION_FLAG = FLUCTUATION_FLAG;
}
public String getBELONG_ORG() {
return BELONG_ORG;
}
public void setBELONG_ORG(String BELONG_ORG) {
this.BELONG_ORG = BELONG_ORG;
}
public String getCUST_NO() {
return CUST_NO;
}
public void setCUST_NO(String CUST_NO) {
this.CUST_NO = CUST_NO;
}
public String getCUST_NAME() {
return CUST_NAME;
}
public void setCUST_NAME(String CUST_NAME) {
this.CUST_NAME = CUST_NAME;
}
public String getCUST_TYPE() {
return CUST_TYPE;
}
public void setCUST_TYPE(String CUST_TYPE) {
this.CUST_TYPE = CUST_TYPE;
}
public Double getM12_CRED_BAL() {
return M12_CRED_BAL;
}
public void setM12_CRED_BAL(Double m12_CRED_BAL) {
M12_CRED_BAL = m12_CRED_BAL;
}
public String getM12_CRED_OVD_FLAG() {
return M12_CRED_OVD_FLAG;
}
public void setM12_CRED_OVD_FLAG(String m12_CRED_OVD_FLAG) {
M12_CRED_OVD_FLAG = m12_CRED_OVD_FLAG;
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getDEBT_ID() {
return DEBT_ID;
}
public void setDEBT_ID(String DEBT_ID) {
this.DEBT_ID = DEBT_ID;
}
public String getBUSI_TYPE() {
return BUSI_TYPE;
}
public void setBUSI_TYPE(String BUSI_TYPE) {
this.BUSI_TYPE = BUSI_TYPE;
}
public String getON_OFF_FLG() {
return ON_OFF_FLG;
}
public void setON_OFF_FLG(String ON_OFF_FLG) {
this.ON_OFF_FLG = ON_OFF_FLG;
}
public String getPROD_TYPE_CD() {
return PROD_TYPE_CD;
}
public void setPROD_TYPE_CD(String PROD_TYPE_CD) {
this.PROD_TYPE_CD = PROD_TYPE_CD;
}
public String getPROD_TYPE_NM() {
return PROD_TYPE_NM;
}
public void setPROD_TYPE_NM(String PROD_TYPE_NM) {
this.PROD_TYPE_NM = PROD_TYPE_NM;
}
public String getCORP_SIZE() {
return CORP_SIZE;
}
public void setCORP_SIZE(String CORP_SIZE) {
this.CORP_SIZE = CORP_SIZE;
}
public Double getTOTAL_CRED_AMT() {
return TOTAL_CRED_AMT;
}
public void setTOTAL_CRED_AMT(Double TOTAL_CRED_AMT) {
this.TOTAL_CRED_AMT = TOTAL_CRED_AMT;
}
public String getPROFESSIONAL_LOANS_FLG() {
return PROFESSIONAL_LOANS_FLG;
}
public void setPROFESSIONAL_LOANS_FLG(String PROFESSIONAL_LOANS_FLG) {
this.PROFESSIONAL_LOANS_FLG = PROFESSIONAL_LOANS_FLG;
}
public String getPROFESSIONAL_LOANS_TYPE() {
return PROFESSIONAL_LOANS_TYPE;
}
public void setPROFESSIONAL_LOANS_TYPE(String PROFESSIONAL_LOANS_TYPE) {
this.PROFESSIONAL_LOANS_TYPE = PROFESSIONAL_LOANS_TYPE;
}
public Double getL3_INCOME_AVG() {
return L3_INCOME_AVG;
}
public void setL3_INCOME_AVG(Double l3_INCOME_AVG) {
L3_INCOME_AVG = l3_INCOME_AVG;
}
public String getINDUSTRY_TYPE() {
return INDUSTRY_TYPE;
}
public void setINDUSTRY_TYPE(String INDUSTRY_TYPE) {
this.INDUSTRY_TYPE = INDUSTRY_TYPE;
}
public Double getPD() {
return PD;
}
public void setPD(Double PD) {
this.PD = PD;
}
public Double getLGD() {
return LGD;
}
public void setLGD(Double LGD) {
this.LGD = LGD;
}
public Double getEAD() {
return EAD;
}
public void setEAD(Double EAD) {
this.EAD = EAD;
}
public Double getCCF() {
return CCF;
}
public void setCCF(Double CCF) {
this.CCF = CCF;
}
public String getRISK_EXPOSURE_CD() {
return RISK_EXPOSURE_CD;
}
public void setRISK_EXPOSURE_CD(String RISK_EXPOSURE_CD) {
this.RISK_EXPOSURE_CD = RISK_EXPOSURE_CD;
}
public String getRISK_EXPOSURE_NM() {
return RISK_EXPOSURE_NM;
}
public void setRISK_EXPOSURE_NM(String RISK_EXPOSURE_NM) {
this.RISK_EXPOSURE_NM = RISK_EXPOSURE_NM;
}
public Double getLOAN_TERM() {
return LOAN_TERM;
}
public void setLOAN_TERM(Double LOAN_TERM) {
this.LOAN_TERM = LOAN_TERM;
}
public String getSYSTEM_IMPORTANCE_BANK() {
return SYSTEM_IMPORTANCE_BANK;
}
public void setSYSTEM_IMPORTANCE_BANK(String SYSTEM_IMPORTANCE_BANK) {
this.SYSTEM_IMPORTANCE_BANK = SYSTEM_IMPORTANCE_BANK;
}
public String getDEF_FLG() {
return DEF_FLG;
}
public void setDEF_FLG(String DEF_FLG) {
this.DEF_FLG = DEF_FLG;
}
public Double getBEEF() {
return BEEF;
}
public void setBEEF(Double BEEF) {
this.BEEF = BEEF;
}
@Override
public String getTable() {
return "RWA_C_IRS_DEBT";
}
@Override
public Integer getColumnCount() {
return 38;
}
@Override
public String[] getColumnDataType(){
return new String[]{
"String","String","String","String","String","String","String","String","String","String","String","Double","String","String","Double","String","Double","String","Double","Double","Double","Double","String","String","Double","String","String","Double","String","String","String","String"
};
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID (row[0]);
setDATA_DT (row[1]);
setDEBT_ID (row[2]);
setBUSI_TYPE (row[3]);
setON_OFF_FLG (row[4]);
setCUST_NO (row[5]);
setCUST_NAME (row[6]);
setCUST_TYPE (row[7]);
setPROD_TYPE_CD (row[8]);
setPROD_TYPE_NM (row[9]);
setCORP_SIZE (row[10]);
setTOTAL_CRED_AMT (row[11]==null?null:Double.valueOf(row[11]));
setPROFESSIONAL_LOANS_FLG (row[12]);
setPROFESSIONAL_LOANS_TYPE(row[13]);
setL3_INCOME_AVG (row[14]==null?null:Double.valueOf(row[14]));
setINDUSTRY_TYPE (row[15]);
setM12_CRED_BAL (row[16]==null?null:Double.valueOf(row[16]));
setM12_CRED_OVD_FLAG (row[17]);
setPD (row[18]==null?null:Double.valueOf(row[18]));
setLGD (row[19]==null?null:Double.valueOf(row[19]));
setEAD (row[20]==null?null:Double.valueOf(row[20]));
setCCF (row[21]==null?null:Double.valueOf(row[21]));
setRISK_EXPOSURE_CD (row[22]);
setRISK_EXPOSURE_NM (row[23]);
setLOAN_TERM (row[24]==null?null:Double.valueOf(row[24]));
setSYSTEM_IMPORTANCE_BANK (row[25]);
setDEF_FLG (row[26]);
setBEEF (row[27]==null?null:Double.valueOf(row[27]));
setBELONG_ORG (row[28]);
setFLUCTUATION_FLAG (row[29]);
setASSET_MNG_PROD_CD (row[30]);
setBELONG_AREA (row[31]);
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
public void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("DEBT_ID",2);
colMap.put("BUSI_TYPE",3);
colMap.put("ON_OFF_FLG",4);
colMap.put("CUST_NO",5);
colMap.put("CUST_NAME",6);
colMap.put("CUST_TYPE",7);
colMap.put("PROD_TYPE_CD",8);
colMap.put("PROD_TYPE_NM",9);
colMap.put("CORP_SIZE",10);
colMap.put("TOTAL_CRED_AMT",11);
colMap.put("PROFESSIONAL_LOANS_FLG",12);
colMap.put("PROFESSIONAL_LOANS_TYPE",13);
colMap.put("L3_INCOME_AVG",14);
colMap.put("INDUSTRY_TYPE",15);
colMap.put("M12_CRED_BAL",16);
colMap.put("M12_CRED_OVD_FLAG",17);
colMap.put("PD",18);
colMap.put("LGD",19);
colMap.put("EAD",20);
colMap.put("CCF",21);
colMap.put("RISK_EXPOSURE_CD",22);
colMap.put("RISK_EXPOSURE_NM",23);
colMap.put("LOAN_TERM",24);
colMap.put("SYSTEM_IMPORTANCE_BANK",25);
colMap.put("DEF_FLG",26);
colMap.put("BEEF",27);
colMap.put("BELONG_ORG",28);
colMap.put("FLUCTUATION_FLAG",29);
colMap.put("ASSET_MNG_PROD_CD",30);
colMap.put("BELONG_AREA",31);
}
public String pass2String(){
StringBuffer buf = new StringBuffer();
buf.append(this.ID).append(",");
buf.append(this.DATA_DT).append(",");
buf.append(this.DEBT_ID).append(",");
buf.append(this.BUSI_TYPE).append(",");
buf.append(this.ON_OFF_FLG).append(",");
buf.append(this.CUST_NO).append(",");
buf.append(this.CUST_NAME).append(",");
buf.append(this.CUST_TYPE).append(",");
buf.append(this.PROD_TYPE_CD).append(",");
buf.append(this.PROD_TYPE_NM).append(",");
buf.append(this.CORP_SIZE).append(",");
buf.append(this.TOTAL_CRED_AMT).append(",");
buf.append(this.PROFESSIONAL_LOANS_FLG).append(",");
buf.append(this.PROFESSIONAL_LOANS_TYPE).append(",");
buf.append(this.L3_INCOME_AVG).append(",");
buf.append(this.INDUSTRY_TYPE).append(",");
buf.append(this.M12_CRED_BAL).append(",");
buf.append(this.M12_CRED_OVD_FLAG).append(",");
buf.append(this.PD).append(",");
buf.append(this.LGD).append(",");
buf.append(this.EAD).append(",");
buf.append(this.CCF).append(",");
buf.append(this.RISK_EXPOSURE_CD).append(",");
buf.append(this.RISK_EXPOSURE_NM).append(",");
buf.append(this.LOAN_TERM).append(",");
buf.append(this.SYSTEM_IMPORTANCE_BANK).append(",");
buf.append(this.DEF_FLG).append(",");
buf.append(this.BEEF).append(",");
buf.append(this.BELONG_ORG).append(",");
buf.append(this.FLUCTUATION_FLAG).append(",");
buf.append(this.ASSET_MNG_PROD_CD).append(",");
buf.append(this.BELONG_AREA);
return buf.toString();
}
}

284
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaIrsExposureRule.java

@ -0,0 +1,284 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
public class RwaIrsExposureRule extends BaseEntity {
public RwaIrsExposureRule(){ }
public RwaIrsExposureRule(String[] row){
setColumnValue(row);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID (row[0]);
setSORT_NO (row[1]);
setEXPOSURE_CD (row[2]);
setEXPOSURE_NM (row[3]);
setLIST_MATCH_FLG (row[4]);
setLIST_TYPE_CD (row[5]);
setMATCH_KEY (row[6]);
setCUST_TYPE (row[7]);
setPROD_TYPE_CD (row[8]);
setPROD_TYPE_NM (row[9]);
setCORP_SIZE (row[10]);
setTOTAL_CRED_AMT_DOWN (row[11]);
setTOTAL_CRED_AMT_UP (row[12]);
setTOTAL_CRED_AMT_DESC (row[13]);
setPROFESSIONAL_LOANS_FLG (row[14]);
setPROFESSIONAL_LOANS_TYPE(row[15]);
setL3_INCOME_AVG_DOWN (row[16]);
setL3_INCOME_AVG_UP (row[17]);
setL3_INCOME_AVG_DESC (row[18]);
setINDUSTRY_TYPE (row[19]);
setM12_CRED_BAL_DOWN (row[20]);
setM12_CRED_BAL_UP (row[21]);
setM12_CRED_BAL_DESC (row[22]);
setM12_CRED_OVD_FLAG (row[23]);
setIS_VALID (row[24]);
}
}
private String ID ; //主键
private String SORT_NO ; //排序号
private String EXPOSURE_CD ; //风险暴露分类代码
private String EXPOSURE_NM ; //风险暴露分类名称
private String LIST_MATCH_FLG ; //是否名单制匹配
private String LIST_TYPE_CD ; //名单类型代码
private String MATCH_KEY ; //名单匹配关键字
private String CUST_TYPE ; //客户类型
private String PROD_TYPE_CD ; //产品类型代码
private String PROD_TYPE_NM ; //产品类型名称
private String CORP_SIZE ; //企业规模
private String TOTAL_CRED_AMT_DOWN ; //授信总额下限
private String TOTAL_CRED_AMT_UP ; //授信总额上限
private String TOTAL_CRED_AMT_DESC ; //授信总额
private String PROFESSIONAL_LOANS_FLG ; //专业贷款标识
private String PROFESSIONAL_LOANS_TYPE ; //专业贷款类型
private String L3_INCOME_AVG_DOWN ; //近三年营业收入平均值下限
private String L3_INCOME_AVG_UP ; //近三年营业收入平均值上限
private String L3_INCOME_AVG_DESC ; //近三年营业收入平均值描述
private String INDUSTRY_TYPE ; //国标行业代码
private String M12_CRED_BAL_DOWN ; //过去3年最近12个月信用卡余额下限
private String M12_CRED_BAL_UP ; //过去3年最近12个月信用卡余额上限
private String M12_CRED_BAL_DESC ; //过去3年最近12个月信用卡余额描述
private String M12_CRED_OVD_FLAG ; //过去3年最近12个月信用卡是否逾期标识
private String IS_VALID ; //是否有效
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getSORT_NO() {
return SORT_NO;
}
public void setSORT_NO(String SORT_NO) {
this.SORT_NO = SORT_NO;
}
public String getEXPOSURE_CD() {
return EXPOSURE_CD;
}
public void setEXPOSURE_CD(String EXPOSURE_CD) {
this.EXPOSURE_CD = EXPOSURE_CD;
}
public String getEXPOSURE_NM() {
return EXPOSURE_NM;
}
public void setEXPOSURE_NM(String EXPOSURE_NM) {
this.EXPOSURE_NM = EXPOSURE_NM;
}
public String getLIST_MATCH_FLG() {
return LIST_MATCH_FLG;
}
public void setLIST_MATCH_FLG(String LIST_MATCH_FLG) {
this.LIST_MATCH_FLG = LIST_MATCH_FLG;
}
public String getLIST_TYPE_CD() {
return LIST_TYPE_CD;
}
public void setLIST_TYPE_CD(String LIST_TYPE_CD) {
this.LIST_TYPE_CD = LIST_TYPE_CD;
}
public String getMATCH_KEY() {
return MATCH_KEY;
}
public void setMATCH_KEY(String MATCH_KEY) {
this.MATCH_KEY = MATCH_KEY;
}
public String getCUST_TYPE() {
return CUST_TYPE;
}
public void setCUST_TYPE(String CUST_TYPE) {
this.CUST_TYPE = CUST_TYPE;
}
public String getPROD_TYPE_CD() {
return PROD_TYPE_CD;
}
public void setPROD_TYPE_CD(String PROD_TYPE_CD) {
this.PROD_TYPE_CD = PROD_TYPE_CD;
}
public String getPROD_TYPE_NM() {
return PROD_TYPE_NM;
}
public void setPROD_TYPE_NM(String PROD_TYPE_NM) {
this.PROD_TYPE_NM = PROD_TYPE_NM;
}
public String getCORP_SIZE() {
return CORP_SIZE;
}
public void setCORP_SIZE(String CORP_SIZE) {
this.CORP_SIZE = CORP_SIZE;
}
public String getTOTAL_CRED_AMT_DOWN() {
return TOTAL_CRED_AMT_DOWN;
}
public void setTOTAL_CRED_AMT_DOWN(String TOTAL_CRED_AMT_DOWN) {
this.TOTAL_CRED_AMT_DOWN = TOTAL_CRED_AMT_DOWN;
}
public String getTOTAL_CRED_AMT_UP() {
return TOTAL_CRED_AMT_UP;
}
public void setTOTAL_CRED_AMT_UP(String TOTAL_CRED_AMT_UP) {
this.TOTAL_CRED_AMT_UP = TOTAL_CRED_AMT_UP;
}
public String getTOTAL_CRED_AMT_DESC() {
return TOTAL_CRED_AMT_DESC;
}
public void setTOTAL_CRED_AMT_DESC(String TOTAL_CRED_AMT_DESC) {
this.TOTAL_CRED_AMT_DESC = TOTAL_CRED_AMT_DESC;
}
public String getPROFESSIONAL_LOANS_FLG() {
return PROFESSIONAL_LOANS_FLG;
}
public void setPROFESSIONAL_LOANS_FLG(String PROFESSIONAL_LOANS_FLG) {
this.PROFESSIONAL_LOANS_FLG = PROFESSIONAL_LOANS_FLG;
}
public String getPROFESSIONAL_LOANS_TYPE() {
return PROFESSIONAL_LOANS_TYPE;
}
public void setPROFESSIONAL_LOANS_TYPE(String PROFESSIONAL_LOANS_TYPE) {
this.PROFESSIONAL_LOANS_TYPE = PROFESSIONAL_LOANS_TYPE;
}
public String getL3_INCOME_AVG_DOWN() {
return L3_INCOME_AVG_DOWN;
}
public void setL3_INCOME_AVG_DOWN(String l3_INCOME_AVG_DOWN) {
L3_INCOME_AVG_DOWN = l3_INCOME_AVG_DOWN;
}
public String getL3_INCOME_AVG_UP() {
return L3_INCOME_AVG_UP;
}
public void setL3_INCOME_AVG_UP(String l3_INCOME_AVG_UP) {
L3_INCOME_AVG_UP = l3_INCOME_AVG_UP;
}
public String getL3_INCOME_AVG_DESC() {
return L3_INCOME_AVG_DESC;
}
public void setL3_INCOME_AVG_DESC(String l3_INCOME_AVG_DESC) {
L3_INCOME_AVG_DESC = l3_INCOME_AVG_DESC;
}
public String getINDUSTRY_TYPE() {
return INDUSTRY_TYPE;
}
public void setINDUSTRY_TYPE(String INDUSTRY_TYPE) {
this.INDUSTRY_TYPE = INDUSTRY_TYPE;
}
public String getM12_CRED_BAL_DOWN() {
return M12_CRED_BAL_DOWN;
}
public void setM12_CRED_BAL_DOWN(String m12_CRED_BAL_DOWN) {
M12_CRED_BAL_DOWN = m12_CRED_BAL_DOWN;
}
public String getM12_CRED_BAL_UP() {
return M12_CRED_BAL_UP;
}
public void setM12_CRED_BAL_UP(String m12_CRED_BAL_UP) {
M12_CRED_BAL_UP = m12_CRED_BAL_UP;
}
public String getM12_CRED_BAL_DESC() {
return M12_CRED_BAL_DESC;
}
public void setM12_CRED_BAL_DESC(String m12_CRED_BAL_DESC) {
M12_CRED_BAL_DESC = m12_CRED_BAL_DESC;
}
public String getM12_CRED_OVD_FLAG() {
return M12_CRED_OVD_FLAG;
}
public void setM12_CRED_OVD_FLAG(String m12_CRED_OVD_FLAG) {
M12_CRED_OVD_FLAG = m12_CRED_OVD_FLAG;
}
public String getIS_VALID() {
return IS_VALID;
}
public void setIS_VALID(String IS_VALID) {
this.IS_VALID = IS_VALID;
}
public String getTable() {
return "RWA_P_IRS_EXPOSURE_RULE";
}
@Override
public Integer getColumnCount() {
return 31;
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
}

155
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaIrsLgd.java

@ -0,0 +1,155 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import java.util.HashMap;
/**
* 源数据LGD信息
* @author chengjie
* @time 2024-05-07
*/
public class RwaIrsLgd extends BaseEntity {
public RwaIrsLgd(){setColMap();}
public RwaIrsLgd(String[] row){
setColumnValue(row);
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("DEBT_ID",2);
colMap.put("ON_OFF_FLG",3);
colMap.put("LGD",4);
colMap.put("EAD",5);
colMap.put("CCF",6);
colMap.put("BEEF",7);
colMap.put("RISK_EXPOSURE_CD",8);
colMap.put("RISK_EXPOSURE_NM",9);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID (row[0]);
setDATA_DT (row[1]);
setDEBT_ID (row[2]);
setON_OFF_FLG (row[3]);
setLGD (row[4]);
setEAD (row[5]);
setCCF (row[6]);
setBEEF (row[7]);
setRISK_EXPOSURE_CD(row[8]);
setRISK_EXPOSURE_NM(row[9]);
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID ; //主键
private String DATA_DT ; //数据日期
private String DEBT_ID ; //债项编号
private String ON_OFF_FLG ; //表内表外标识
private String LGD ; //违约损失率
private String EAD ; //违约风险暴露
private String CCF ; //信用转换系数
private String BEEF ; //预期损失率的最佳估计值
private String RISK_EXPOSURE_CD ; //内评法风险暴露分类代码
private String RISK_EXPOSURE_NM ; //内评法风险暴露分类名称
@Override
public String getTable() {
return "RWA_M_IRS_LGD";
}
@Override
public Integer getColumnCount() {
return 16;
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getDEBT_ID() {
return DEBT_ID;
}
public void setDEBT_ID(String DEBT_ID) {
this.DEBT_ID = DEBT_ID;
}
public String getON_OFF_FLG() {
return ON_OFF_FLG;
}
public void setON_OFF_FLG(String ON_OFF_FLG) {
this.ON_OFF_FLG = ON_OFF_FLG;
}
public String getLGD() {
return LGD;
}
public void setLGD(String LGD) {
this.LGD = LGD;
}
public String getEAD() {
return EAD;
}
public void setEAD(String EAD) {
this.EAD = EAD;
}
public String getCCF() {
return CCF;
}
public void setCCF(String CCF) {
this.CCF = CCF;
}
public String getRISK_EXPOSURE_CD() {
return RISK_EXPOSURE_CD;
}
public void setRISK_EXPOSURE_CD(String RISK_EXPOSURE_CD) {
this.RISK_EXPOSURE_CD = RISK_EXPOSURE_CD;
}
public String getRISK_EXPOSURE_NM() {
return RISK_EXPOSURE_NM;
}
public void setRISK_EXPOSURE_NM(String RISK_EXPOSURE_NM) {
this.RISK_EXPOSURE_NM = RISK_EXPOSURE_NM;
}
public String getBEEF() {
return BEEF;
}
public void setBEEF(String BEEF) {
this.BEEF = BEEF;
}
}

94
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaIrsNameList.java

@ -0,0 +1,94 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
public class RwaIrsNameList extends BaseEntity {
public RwaIrsNameList(){}
public RwaIrsNameList(String[] row){
this.setColumnValue(row);
}
private String ID; //主键ID
private String LIST_TYPE_CD; //名单类型代码
private String LIST_TYPE_NM; //名单类型名称
private String CUST_NAME; //客户名称
private String IS_VALID; //是否有效
public String getLIST_TYPE_NM() {
return LIST_TYPE_NM;
}
public void setLIST_TYPE_NM(String LIST_TYPE_NM) {
this.LIST_TYPE_NM = LIST_TYPE_NM;
}
public String getTable() {
return "RWA_P_IRS_NAME_LIST";
}
@Override
public Integer getColumnCount() {
return 11;
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getLIST_TYPE_CD() {
return LIST_TYPE_CD;
}
public void setLIST_TYPE_CD(String LIST_TYPE_CD) {
this.LIST_TYPE_CD = LIST_TYPE_CD;
}
public String getCUST_NAME() {
return CUST_NAME;
}
public void setCUST_NAME(String CUST_NAME) {
this.CUST_NAME = CUST_NAME;
}
public String getIS_VALID() {
return IS_VALID;
}
public void setIS_VALID(String IS_VALID) {
this.IS_VALID = IS_VALID;
}
@Override
public void setColumnValue(String[] row) {
if(row != null){
setID(row[0]);
setLIST_TYPE_CD(row[1]);
setLIST_TYPE_NM(row[2]);
setCUST_NAME(row[3]);
setIS_VALID(row[4]);
}
}
@Override
public String getFieldVal(String column) {
if("LIST_TYPE_CD".equalsIgnoreCase(column)){
return this.getLIST_TYPE_CD();
}else if("IS_VALID".equalsIgnoreCase(column)){
return this.getIS_VALID();
}else if("LIST_TYPE_CD".equalsIgnoreCase(column)){
return this.getLIST_TYPE_CD();
}
return "";
}
@Override
public int getIndex(String column) {
return 0;
}
}

89
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaIrsPd.java

@ -0,0 +1,89 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import java.util.HashMap;
/**
* 源数据PD信息
* @author chengjie
* @time 2024-05-07
*/
public class RwaIrsPd extends BaseEntity {
public RwaIrsPd(){setColMap();}
public RwaIrsPd(String[] row){
setColumnValue(row);
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("CUST_NO",2);
colMap.put("PD",3);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID(row[0]);
setDATA_DT(row[1]);
setCUST_NO(row[2]);
setPD(row[3]);
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID ; //主键
private String DATA_DT ; //数据日期
private String CUST_NO ; //客户编号
private String PD ; //违约概率
public String getTable() {
return "RWA_M_IRS_PD";
}
@Override
public Integer getColumnCount() {
return 10;
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getCUST_NO() {
return CUST_NO;
}
public void setCUST_NO(String CUST_NO) {
this.CUST_NO = CUST_NO;
}
public String getPD() {
return PD;
}
public void setPD(String PD) {
this.PD = PD;
}
}

107
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaIrsPledgeCashRule.java

@ -0,0 +1,107 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.*;
import java.util.HashMap;
public class RwaIrsPledgeCashRule extends BaseEntity {
public RwaIrsPledgeCashRule(){ setColMap(); }
public RwaIrsPledgeCashRule(String[] row){
setColumnValue(row);
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("SORT_NO",1);
colMap.put("PLED_TYPE_CD",2);
colMap.put("PLED_TYPE_NM",3);
colMap.put("CASH_RATE",4);
colMap.put("IS_VALID",5);
}
public void setColumnValue(String[] row) {
if (row != null) {
setID (row[0]);
setSORT_NO (row[1]);
setPLED_TYPE_CD(row[2]);
setPLED_TYPE_NM(row[3]);
setCASH_RATE (toEmptyDouble(row[4]));
setIS_VALID (row[5]);
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID ; //ID
private String SORT_NO ; //排序号
private String PLED_TYPE_CD; //缓释品类型代码
private String PLED_TYPE_NM; //缓释品类型名称
private Double CASH_RATE ; //变现率
private String IS_VALID ; //是否有效
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getSORT_NO() {
return SORT_NO;
}
public void setSORT_NO(String SORT_NO) {
this.SORT_NO = SORT_NO;
}
public String getPLED_TYPE_CD() {
return PLED_TYPE_CD;
}
public void setPLED_TYPE_CD(String PLED_TYPE_CD) {
this.PLED_TYPE_CD = PLED_TYPE_CD;
}
public String getPLED_TYPE_NM() {
return PLED_TYPE_NM;
}
public void setPLED_TYPE_NM(String PLED_TYPE_NM) {
this.PLED_TYPE_NM = PLED_TYPE_NM;
}
public Double getCASH_RATE() {
return CASH_RATE;
}
public void setCASH_RATE(Double CASH_RATE) {
this.CASH_RATE = CASH_RATE;
}
public String getIS_VALID() {
return IS_VALID;
}
public void setIS_VALID(String IS_VALID) {
this.IS_VALID = IS_VALID;
}
public String getTable() {
return "RWA_P_PLED_CASH_RULE";
}
@Override
public Integer getColumnCount() {
return 12;
}
}

115
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaIrsPledgeClassRule.java

@ -0,0 +1,115 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
public class RwaIrsPledgeClassRule extends BaseEntity {
public RwaIrsPledgeClassRule(){ }
public RwaIrsPledgeClassRule(String[] row){
setColumnValue(row);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID (row[0]);
setSORT_NO (row[1]);
setIRS_PLED_CLS_CD(row[2]);
setIRS_PLED_CLS_NM(row[3]);
setPLED_TYPE_CD (row[4]);
setPLED_TYPE_NM (row[5]);
setIS_VALID (row[6]);
}
}
public String[] toArray(){
return new String[]{
getID (),
getSORT_NO (),
getIRS_PLED_CLS_CD(),
getIRS_PLED_CLS_NM(),
getPLED_TYPE_CD (),
getPLED_TYPE_NM (),
getIS_VALID ()
};
}
private String ID ; //ID
private String SORT_NO ; //排序号
private String IRS_PLED_CLS_CD ; //缓释品分类代码
private String IRS_PLED_CLS_NM ; //缓释品分类名称
private String PLED_TYPE_CD ; //缓释品类型代码
private String PLED_TYPE_NM ; //缓释品类型名称
private String IS_VALID ; //是否有效
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getSORT_NO() {
return SORT_NO;
}
public void setSORT_NO(String SORT_NO) {
this.SORT_NO = SORT_NO;
}
public String getIRS_PLED_CLS_CD() {
return IRS_PLED_CLS_CD;
}
public void setIRS_PLED_CLS_CD(String IRS_PLED_CLS_CD) {
this.IRS_PLED_CLS_CD = IRS_PLED_CLS_CD;
}
public String getIRS_PLED_CLS_NM() {
return IRS_PLED_CLS_NM;
}
public void setIRS_PLED_CLS_NM(String IRS_PLED_CLS_NM) {
this.IRS_PLED_CLS_NM = IRS_PLED_CLS_NM;
}
public String getPLED_TYPE_CD() {
return PLED_TYPE_CD;
}
public void setPLED_TYPE_CD(String PLED_TYPE_CD) {
this.PLED_TYPE_CD = PLED_TYPE_CD;
}
public String getPLED_TYPE_NM() {
return PLED_TYPE_NM;
}
public void setPLED_TYPE_NM(String PLED_TYPE_NM) {
this.PLED_TYPE_NM = PLED_TYPE_NM;
}
public String getIS_VALID() {
return IS_VALID;
}
public void setIS_VALID(String IS_VALID) {
this.IS_VALID = IS_VALID;
}
public String getTable() {
return "RWA_P_IRS_PLEDGE_CLASS_RULE";
}
@Override
public Integer getColumnCount() {
return 13;
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
}

133
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaIrsPledgeDistribution.java

@ -0,0 +1,133 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.*;
public class RwaIrsPledgeDistribution extends BaseEntity {
public RwaIrsPledgeDistribution(){ }
public RwaIrsPledgeDistribution(String[] row){
setColumnValue(row);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID (row[0]);
setDATA_DT (row[1]);
setCOLL_ID (row[2]);
setDEBT_ID (row[3]);
setCOLL_RISK_CLASS_CD(row[4]);
setCOLL_RISK_CLASS_NM(row[5]);
setDISTR_VALUE (toEmptyDouble(row[6]));
}
}
public String[] toArray(){
return new String[]{
getID (),
getDATA_DT (),
getCOLL_ID (),
getDEBT_ID (),
getCOLL_RISK_CLASS_CD(),
getCOLL_RISK_CLASS_NM(),
getDISTR_VALUE()==null?"":String.valueOf(getDISTR_VALUE())
};
}
public String pass2String(){
StringBuffer sf = new StringBuffer();
sf.append(getID()).append(",");
sf.append(getDATA_DT()).append(",");
sf.append(getCOLL_ID()).append(",");
sf.append(getDEBT_ID()).append(",");
sf.append(getCOLL_RISK_CLASS_CD()).append(",");
sf.append(getCOLL_RISK_CLASS_NM()).append(",");
sf.append(getDISTR_VALUE()==null?"":String.valueOf(getDISTR_VALUE()));
return sf.toString();
}
private String ID ; //ID
private String DATA_DT ; //数据日期
private String COLL_ID ; //风险缓释工具编号
private String DEBT_ID ; //债项编号
private String COLL_RISK_CLASS_CD; //押品风险分类代码
private String COLL_RISK_CLASS_NM; //押品风险分类名称
private Double DISTR_VALUE ; //缓释分配金额
public Double getDISTR_VALUE() {
return DISTR_VALUE;
}
public void setDISTR_VALUE(Double DISTR_VALUE) {
this.DISTR_VALUE = DISTR_VALUE;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getDEBT_ID() {
return DEBT_ID;
}
public void setDEBT_ID(String DEBT_ID) {
this.DEBT_ID = DEBT_ID;
}
public String getCOLL_RISK_CLASS_CD() {
return COLL_RISK_CLASS_CD;
}
public void setCOLL_RISK_CLASS_CD(String COLL_RISK_CLASS_CD) {
this.COLL_RISK_CLASS_CD = COLL_RISK_CLASS_CD;
}
public String getCOLL_RISK_CLASS_NM() {
return COLL_RISK_CLASS_NM;
}
public void setCOLL_RISK_CLASS_NM(String COLL_RISK_CLASS_NM) {
this.COLL_RISK_CLASS_NM = COLL_RISK_CLASS_NM;
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getCOLL_ID() {
return COLL_ID;
}
public void setCOLL_ID(String COLL_ID) {
this.COLL_ID = COLL_ID;
}
public String getTable() {
return "RWA_R_IRS_PLED_DISTR";
}
@Override
public Integer getColumnCount() {
return 13;
}
@Override
public String[] getColumnDataType(){
return new String[]{
"String","String","String","String","String","String","Double"
};
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
}

101
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaIrsRatingModelGrade.java

@ -0,0 +1,101 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import java.util.HashMap;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.toEmptyDouble;
/**
* 监管交易对手参数表
* @author chengjie
* @time 2023-07-20
*/
public class RwaIrsRatingModelGrade extends BaseEntity {
public RwaIrsRatingModelGrade(){ setColMap(); }
public RwaIrsRatingModelGrade(String[] row){
setColumnValue(row);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID(row[0]);
setGRADE(row[1]);
setPD_DOWN(toEmptyDouble(row[2]));
setPD_UP(toEmptyDouble(row[3]));
setPD_AVG(toEmptyDouble(row[4]));
}
}
private String ID ; //主键
private String GRADE ; //评级等级
private Double PD_DOWN; //PD下限
private Double PD_UP ; //PD上限
private Double PD_AVG ; //PD均值
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getGRADE() {
return GRADE;
}
public void setGRADE(String GRADE) {
this.GRADE = GRADE;
}
public Double getPD_DOWN() {
return PD_DOWN;
}
public void setPD_DOWN(Double PD_DOWN) {
this.PD_DOWN = PD_DOWN;
}
public Double getPD_UP() {
return PD_UP;
}
public void setPD_UP(Double PD_UP) {
this.PD_UP = PD_UP;
}
public Double getPD_AVG() {
return PD_AVG;
}
public void setPD_AVG(Double PD_AVG) {
this.PD_AVG = PD_AVG;
}
public String getTable() {
return "RWA_P_RATING_MODEL_GRADE";
}
@Override
public Integer getColumnCount() {
return 11;
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private void setColMap() {
colMap = new HashMap();
colMap.put("ID", 0);
colMap.put("GRADE", 1);
colMap.put("PD_DOWN", 2);
colMap.put("PD_UP", 3);
colMap.put("PD_AVG", 4);
}
}

257
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaIrsResult.java

@ -0,0 +1,257 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import java.util.HashMap;
/**
* 内评法风险加权资产计量结果表
* @author chengjie
* @time 2024-05-07
*/
public class RwaIrsResult extends BaseEntity {
private String ID ; //主键
private String DATA_DT ; //数据日期
private String DEBT_ID ; //债项编号
private String BUSI_TYPE ; //业务类型
private String ON_OFF_FLG ; //表内表外标识
private String CUST_NO ; //客户编号
private String CUST_NAME ; //客户名称
private String CUST_TYPE ; //客户类型
private Double PD ; //违约概率
private Double LGD ; //违约损失率
private Double EAD ; //违约风险暴露
private Double CCF ; //信用转换系数
private String RISK_EXPOSURE_CD ; //内评法风险暴露分类代码
private String RISK_EXPOSURE_NM ; //内评法风险暴露分类名称
private Double RWA; //风险加权资产
private String BELONG_ORG ; //业务所属机构
private String ASSET_MNG_PRD_FLG ; //资产管理产品标识
public String getASSET_MNG_PRD_FLG() {
return ASSET_MNG_PRD_FLG;
}
public void setASSET_MNG_PRD_FLG(String ASSET_MNG_PRD_FLG) {
this.ASSET_MNG_PRD_FLG = ASSET_MNG_PRD_FLG;
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getDEBT_ID() {
return DEBT_ID;
}
public void setDEBT_ID(String DEBT_ID) {
this.DEBT_ID = DEBT_ID;
}
public String getBUSI_TYPE() {
return BUSI_TYPE;
}
public void setBUSI_TYPE(String BUSI_TYPE) {
this.BUSI_TYPE = BUSI_TYPE;
}
public String getON_OFF_FLG() {
return ON_OFF_FLG;
}
public void setON_OFF_FLG(String ON_OFF_FLG) {
this.ON_OFF_FLG = ON_OFF_FLG;
}
public Double getPD() {
return PD;
}
public void setPD(Double PD) {
this.PD = PD;
}
public Double getLGD() {
return LGD;
}
public void setLGD(Double LGD) {
this.LGD = LGD;
}
public Double getEAD() {
return EAD;
}
public void setEAD(Double EAD) {
this.EAD = EAD;
}
public Double getCCF() {
return CCF;
}
public void setCCF(Double CCF) {
this.CCF = CCF;
}
public String getRISK_EXPOSURE_CD() {
return RISK_EXPOSURE_CD;
}
public void setRISK_EXPOSURE_CD(String RISK_EXPOSURE_CD) {
this.RISK_EXPOSURE_CD = RISK_EXPOSURE_CD;
}
public String getRISK_EXPOSURE_NM() {
return RISK_EXPOSURE_NM;
}
public void setRISK_EXPOSURE_NM(String RISK_EXPOSURE_NM) {
this.RISK_EXPOSURE_NM = RISK_EXPOSURE_NM;
}
public String getCUST_NO() {
return CUST_NO;
}
public void setCUST_NO(String CUST_NO) {
this.CUST_NO = CUST_NO;
}
public String getCUST_NAME() {
return CUST_NAME;
}
public void setCUST_NAME(String CUST_NAME) {
this.CUST_NAME = CUST_NAME;
}
public String getCUST_TYPE() {
return CUST_TYPE;
}
public void setCUST_TYPE(String CUST_TYPE) {
this.CUST_TYPE = CUST_TYPE;
}
public String getBELONG_ORG() {
return BELONG_ORG;
}
public void setBELONG_ORG(String BELONG_ORG) {
this.BELONG_ORG = BELONG_ORG;
}
public Double getRWA() {
return RWA;
}
public void setRWA(Double RWA) {
this.RWA = RWA;
}
@Override
public String getTable() {
return "RWA_R_IRS_RESULT";
}
@Override
public Integer getColumnCount() {
return 23;
}
public RwaIrsResult(){
setColMap();
}
public RwaIrsResult(String[] row){
setColumnValue(row);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID (row[0]);
setDATA_DT (row[1]);
setDEBT_ID (row[2]);
setBUSI_TYPE (row[3]);
setON_OFF_FLG (row[4]);
setCUST_NO (row[5]);
setCUST_NAME (row[6]);
setCUST_TYPE (row[7]);
setPD (row[8]==null?null:Double.valueOf(row[8]));
setLGD (row[9]==null?null:Double.valueOf(row[9]));
setEAD (row[10]==null?null:Double.valueOf(row[10]));
setCCF (row[11]==null?null:Double.valueOf(row[11]));
setRISK_EXPOSURE_CD (row[12]);
setRISK_EXPOSURE_NM (row[13]);
setRWA (row[14]==null?null:Double.valueOf(row[14]));
setBELONG_ORG (row[15]);
setASSET_MNG_PRD_FLG (row[16]);
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("DEBT_ID",2);
colMap.put("BUSI_TYPE",3);
colMap.put("ON_OFF_FLG",4);
colMap.put("CUST_NO",5);
colMap.put("CUST_NAME",6);
colMap.put("CUST_TYPE",7);
colMap.put("PD",8);
colMap.put("LGD",9);
colMap.put("EAD",10);
colMap.put("CCF",11);
colMap.put("RISK_EXPOSURE_CD",12);
colMap.put("RISK_EXPOSURE_NM",13);
colMap.put("RWA",14);
colMap.put("BELONG_ORG",15);
colMap.put("ASSET_MNG_PRD_FLG",16);
}
public String pass2String(){
StringBuffer buf = new StringBuffer();
buf.append(this.ID).append(",");
buf.append(this.DATA_DT).append(",");
buf.append(this.DEBT_ID).append(",");
buf.append(this.BUSI_TYPE).append(",");
buf.append(this.ON_OFF_FLG).append(",");
buf.append(this.CUST_NO).append(",");
buf.append(this.CUST_NAME).append(",");
buf.append(this.CUST_TYPE).append(",");
buf.append(this.PD==null?"":this.PD).append(",");
buf.append(this.LGD==null?"":this.LGD).append(",");
buf.append(this.EAD==null?"":this.EAD).append(",");
buf.append(this.CCF==null?"":this.CCF).append(",");
buf.append(this.RISK_EXPOSURE_CD).append(",");
buf.append(this.RISK_EXPOSURE_NM).append(",");
buf.append(this.RWA==null?"":this.RWA).append(",");
buf.append(this.BELONG_ORG).append(",");
buf.append(this.ASSET_MNG_PRD_FLG);
return buf.toString();
}
}

91
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaMGuarDebtRela.java

@ -0,0 +1,91 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import java.util.HashMap;
/**
* 源数据缓释工具与债项关联关系表
* @author chengjie
* @time 2023-07-20
*/
public class RwaMGuarDebtRela extends BaseEntity {
public RwaMGuarDebtRela(){setColMap();}
public RwaMGuarDebtRela(String[] row){
setColumnValue(row);
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("GUAR_ID",2);
colMap.put("DEBT_ID",3);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID(row[0]);
setDATA_DT(row[1]); //数据日期
setGUAR_ID(row[2]); //缓释品ID
setDEBT_ID(row[3]); //债项ID
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID; //主键
private String DATA_DT; //数据日期
private String GUAR_ID; //缓释品ID
private String DEBT_ID; //债项ID
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getGUAR_ID() {
return GUAR_ID;
}
public void setGUAR_ID(String GUAR_ID) {
this.GUAR_ID = GUAR_ID;
}
public String getDEBT_ID() {
return DEBT_ID;
}
public void setDEBT_ID(String DEBT_ID) {
this.DEBT_ID = DEBT_ID;
}
@Override
public String getTable() {
return "RWA_M_GUAR_DEBT_RELA";
}
@Override
public Integer getColumnCount() {
return 10;
}
}

218
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaMIrsCustomer.java

@ -0,0 +1,218 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.*;
import java.util.HashMap;
public class RwaMIrsCustomer extends BaseEntity {
public RwaMIrsCustomer(){ setColMap(); }
public RwaMIrsCustomer(String[] row){
setColumnValue(row);
}
@Override
public void setColumnValue(String[] row) {
if (row != null) {
setID (row[0]);
setDATA_DT (row[1]);
setCUST_NO (row[2]);
setCUST_NAME (row[3]);
setCUST_TYPE (row[4]);
setCUST_INDUSTRY_CD (row[5]);
setSCALE_CD (row[6]);
setCREDIT_LINE (toEmptyDouble(row[7]));
setL3_INCOME_AVG (toEmptyDouble(row[8]));
setM12_CRED_BAL (toEmptyDouble(row[9]));
setM12_CRED_OVD_FLAG(row[10]);
setPD (toEmptyDouble(row[11]));
setSYSTEM_IMPORTANCE_BANK (row[12]);
setSALE_INCOME(toEmptyDouble(row[13]));
setTOTAL_ASSET(toEmptyDouble(row[14]));
setEMPLOY_NUM(toEmptyInteger(row[15]));
}
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("CUST_NO",2);
colMap.put("CUST_NAME",3);
colMap.put("CUST_TYPE",4);
colMap.put("CUST_INDUSTRY_CD",5);
colMap.put("SCALE_CD",6);
colMap.put("CREDIT_LINE",7);
colMap.put("L3_INCOME_AVG",8);
colMap.put("M12_CRED_BAL",9);
colMap.put("M12_CRED_OVD_FLAG",10);
colMap.put("PD",11);
colMap.put("SYSTEM_IMPORTANCE_BANK",12);
colMap.put("SALE_INCOME",13);
colMap.put("TOTAL_ASSET",14);
colMap.put("EMPLOY_NUM",15);
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID ; //主键
private String DATA_DT ; //数据日期
private String CUST_NO ; //客户编号
private String CUST_NAME ; //客户名称
private String CUST_TYPE ; //客户类型
private String CUST_INDUSTRY_CD ; //客户所属行业代码
private String SCALE_CD ; //企业规模
private Double CREDIT_LINE ; //授信总额
private Double L3_INCOME_AVG ; //近3年营业收入平均值
private Double M12_CRED_BAL ; //过去3年最近12个月信用卡余额
private String M12_CRED_OVD_FLAG; //过去3年最近12个月信用卡是否逾期标识
private Double PD ; //违约概率
private String SYSTEM_IMPORTANCE_BANK; //系统重要性银行标识
private Double SALE_INCOME ; //营业收入
private Double TOTAL_ASSET ; //资产总计
private Integer EMPLOY_NUM ; //员工人数
public Double getSALE_INCOME() {
return SALE_INCOME;
}
public void setSALE_INCOME(Double SALE_INCOME) {
this.SALE_INCOME = SALE_INCOME;
}
public Double getTOTAL_ASSET() {
return TOTAL_ASSET;
}
public void setTOTAL_ASSET(Double TOTAL_ASSET) {
this.TOTAL_ASSET = TOTAL_ASSET;
}
public Integer getEMPLOY_NUM() {
return EMPLOY_NUM;
}
public void setEMPLOY_NUM(Integer EMPLOY_NUM) {
this.EMPLOY_NUM = EMPLOY_NUM;
}
public String getSYSTEM_IMPORTANCE_BANK() {
return SYSTEM_IMPORTANCE_BANK;
}
public void setSYSTEM_IMPORTANCE_BANK(String SYSTEM_IMPORTANCE_BANK) {
this.SYSTEM_IMPORTANCE_BANK = SYSTEM_IMPORTANCE_BANK;
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getCUST_NO() {
return CUST_NO;
}
public void setCUST_NO(String CUST_NO) {
this.CUST_NO = CUST_NO;
}
public String getCUST_NAME() {
return CUST_NAME;
}
public void setCUST_NAME(String CUST_NAME) {
this.CUST_NAME = CUST_NAME;
}
public String getCUST_TYPE() {
return CUST_TYPE;
}
public void setCUST_TYPE(String CUST_TYPE) {
this.CUST_TYPE = CUST_TYPE;
}
public String getCUST_INDUSTRY_CD() {
return CUST_INDUSTRY_CD;
}
public void setCUST_INDUSTRY_CD(String CUST_INDUSTRY_CD) {
this.CUST_INDUSTRY_CD = CUST_INDUSTRY_CD;
}
public String getSCALE_CD() {
return SCALE_CD;
}
public void setSCALE_CD(String SCALE_CD) {
this.SCALE_CD = SCALE_CD;
}
public Double getCREDIT_LINE() {
return CREDIT_LINE;
}
public void setCREDIT_LINE(Double CREDIT_LINE) {
this.CREDIT_LINE = CREDIT_LINE;
}
public Double getL3_INCOME_AVG() {
return L3_INCOME_AVG;
}
public void setL3_INCOME_AVG(Double l3_INCOME_AVG) {
L3_INCOME_AVG = l3_INCOME_AVG;
}
public Double getM12_CRED_BAL() {
return M12_CRED_BAL;
}
public void setM12_CRED_BAL(Double m12_CRED_BAL) {
M12_CRED_BAL = m12_CRED_BAL;
}
public String getM12_CRED_OVD_FLAG() {
return M12_CRED_OVD_FLAG;
}
public void setM12_CRED_OVD_FLAG(String m12_CRED_OVD_FLAG) {
M12_CRED_OVD_FLAG = m12_CRED_OVD_FLAG;
}
public Double getPD() {
return PD;
}
public void setPD(Double PD) {
this.PD = PD;
}
@Override
public String getTable() {
return "RWA_M_IRS_CUSTOMER";
}
@Override
public Integer getColumnCount() {
return 22;
}
}

431
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaMIrsDebt.java

@ -0,0 +1,431 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import java.util.HashMap;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.toEmptyDouble;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.toEmptyInteger;
public class RwaMIrsDebt extends BaseEntity {
public RwaMIrsDebt(){ setColMap(); }
public RwaMIrsDebt(String[] row){
setColumnValue(row);
}
@Override
public void setColumnValue(String[] row) {
if (row != null) {
setID (row[0]);
setDATA_DT (row[1]);
setDEBT_ID (row[2]);
setBUSI_TYPE (row[3]);
setON_OFF_FLG (row[4]);
setCUST_NO (row[5]);
setCUST_NAME (row[6]);
setCUST_TYPE (row[7]);
setPROD_TYPE_CD (row[8]);
setPROD_TYPE_NM (row[9]);
setCORP_SIZE (row[10]);
setTOTAL_CRED_AMT (toEmptyDouble(row[11]));
setPROFESSIONAL_LOANS_FLG (row[12]);
setPROFESSIONAL_LOANS_TYPE(row[13]);
setL3_INCOME_AVG (toEmptyDouble(row[14]));
setINDUSTRY_TYPE (row[15]);
setM12_CRED_BAL (toEmptyDouble(row[16]));
setM12_CRED_OVD_FLAG (row[17]);
setPD (toEmptyDouble(row[18]));
setLGD (toEmptyDouble(row[19]));
setEAD (toEmptyDouble(row[20]));
setCCF (toEmptyDouble(row[21]));
setRISK_EXPOSURE_CD (row[22]);
setRISK_EXPOSURE_NM (row[23]);
setLOAN_TERM (toEmptyDouble(row[24]));
setSYSTEM_IMPORTANCE_BANK (row[25]);
setDEF_FLG (row[26]);
setBEEF (toEmptyDouble(row[27]));
setBELONG_ORG (row[28]);
setFLUCTUATION_FLAG (row[29]);
setASSET_MNG_PROD_CD (row[30]);
setBELONG_AREA (row[31]);
setSALE_INCOME (toEmptyDouble(row[32]));
setTOTAL_ASSET (toEmptyDouble(row[33]));
setEMPLOY_NUM (toEmptyInteger(row[34]));
}
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("DEBT_ID",2);
colMap.put("BUSI_TYPE",3);
colMap.put("ON_OFF_FLG",4);
colMap.put("CUST_NO",5);
colMap.put("CUST_NAME",6);
colMap.put("CUST_TYPE",7);
colMap.put("PROD_TYPE_CD",8);
colMap.put("PROD_TYPE_NM",9);
colMap.put("CORP_SIZE",10);
colMap.put("TOTAL_CRED_AMT",11);
colMap.put("PROFESSIONAL_LOANS_FLG",12);
colMap.put("PROFESSIONAL_LOANS_TYPE",13);
colMap.put("L3_INCOME_AVG",14);
colMap.put("INDUSTRY_TYPE",15);
colMap.put("M12_CRED_BAL",16);
colMap.put("M12_CRED_OVD_FLAG",17);
colMap.put("PD",18);
colMap.put("LGD",19);
colMap.put("EAD",20);
colMap.put("CCF",21);
colMap.put("RISK_EXPOSURE_CD",22);
colMap.put("RISK_EXPOSURE_NM",23);
colMap.put("LOAN_TERM",24);
colMap.put("SYSTEM_IMPORTANCE_BANK",25);
colMap.put("DEF_FLG",26);
colMap.put("BEEF",27);
colMap.put("BELONG_ORG",28);
colMap.put("FLUCTUATION_FLAG",29);
colMap.put("ASSET_MNG_PROD_CD",30);
colMap.put("BELONG_AREA",31);
colMap.put("SALE_INCOME",32);
colMap.put("TOTAL_ASSET",33);
colMap.put("EMPLOY_NUM",34);
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID ; //主键
private String DATA_DT ; //数据日期
private String DEBT_ID ; //债项编号
private String BUSI_TYPE ; //业务类型
private String ON_OFF_FLG ; //表内表外标识
private String CUST_NO ; //客户编号
private String CUST_NAME ; //客户名称
private String CUST_TYPE ; //客户类型
private String PROD_TYPE_CD ; //产品类型代码
private String PROD_TYPE_NM ; //产品类型名称
private String CORP_SIZE ; //企业规模
private Double TOTAL_CRED_AMT ; //授信总额
private String PROFESSIONAL_LOANS_FLG ; //专业贷款标识
private String PROFESSIONAL_LOANS_TYPE; //专业贷款类型
private Double L3_INCOME_AVG ; //近三年营业收入平均值
private String INDUSTRY_TYPE ; //国标行业代码
private Double M12_CRED_BAL ; //过去3年最近12个月信用卡余额
private String M12_CRED_OVD_FLAG ; //过去3年最近12个月信用卡是否逾期标识
private Double PD ; //违约概率
private Double LGD ; //违约损失率
private Double EAD ; //违约风险暴露
private Double CCF ; //信用转换系数
private String RISK_EXPOSURE_CD ; //内评法风险暴露分类代码
private String RISK_EXPOSURE_NM ; //内评法风险暴露分类名称
private Double LOAN_TERM ; //债项剩余期限(年)
private String SYSTEM_IMPORTANCE_BANK ; //系统重要性银行标识
private String DEF_FLG ; //违约标识
private Double BEEF ; //预期损失率的最佳估计值
private String BELONG_ORG ; //业务所属机构
private String FLUCTUATION_FLAG ; //波动性较大标识
private String ASSET_MNG_PROD_CD ; //资产管理产品编号
private String BELONG_AREA ; //所属区域
private Double SALE_INCOME ; //营业收入
private Double TOTAL_ASSET ; //资产总计
private Integer EMPLOY_NUM ; //员工人数
public Double getSALE_INCOME() {
return SALE_INCOME;
}
public void setSALE_INCOME(Double SALE_INCOME) {
this.SALE_INCOME = SALE_INCOME;
}
public Double getTOTAL_ASSET() {
return TOTAL_ASSET;
}
public void setTOTAL_ASSET(Double TOTAL_ASSET) {
this.TOTAL_ASSET = TOTAL_ASSET;
}
public Integer getEMPLOY_NUM() {
return EMPLOY_NUM;
}
public void setEMPLOY_NUM(Integer EMPLOY_NUM) {
this.EMPLOY_NUM = EMPLOY_NUM;
}
public String getBELONG_AREA() {
return BELONG_AREA;
}
public void setBELONG_AREA(String BELONG_AREA) {
this.BELONG_AREA = BELONG_AREA;
}
public String getASSET_MNG_PROD_CD() {
return ASSET_MNG_PROD_CD;
}
public void setASSET_MNG_PROD_CD(String ASSET_MNG_PROD_CD) {
this.ASSET_MNG_PROD_CD = ASSET_MNG_PROD_CD;
}
public String getFLUCTUATION_FLAG() {
return FLUCTUATION_FLAG;
}
public void setFLUCTUATION_FLAG(String FLUCTUATION_FLAG) {
this.FLUCTUATION_FLAG = FLUCTUATION_FLAG;
}
public String getRISK_EXPOSURE_CD() {
return RISK_EXPOSURE_CD;
}
public void setRISK_EXPOSURE_CD(String RISK_EXPOSURE_CD) {
this.RISK_EXPOSURE_CD = RISK_EXPOSURE_CD;
}
public String getRISK_EXPOSURE_NM() {
return RISK_EXPOSURE_NM;
}
public void setRISK_EXPOSURE_NM(String RISK_EXPOSURE_NM) {
this.RISK_EXPOSURE_NM = RISK_EXPOSURE_NM;
}
public Double getPD() {
return PD;
}
public void setPD(Double PD) {
this.PD = PD;
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getDEBT_ID() {
return DEBT_ID;
}
public void setDEBT_ID(String DEBT_ID) {
this.DEBT_ID = DEBT_ID;
}
public String getBUSI_TYPE() {
return BUSI_TYPE;
}
public void setBUSI_TYPE(String BUSI_TYPE) {
this.BUSI_TYPE = BUSI_TYPE;
}
public String getON_OFF_FLG() {
return ON_OFF_FLG;
}
public void setON_OFF_FLG(String ON_OFF_FLG) {
this.ON_OFF_FLG = ON_OFF_FLG;
}
public String getCUST_NO() {
return CUST_NO;
}
public void setCUST_NO(String CUST_NO) {
this.CUST_NO = CUST_NO;
}
public String getCUST_NAME() {
return CUST_NAME;
}
public void setCUST_NAME(String CUST_NAME) {
this.CUST_NAME = CUST_NAME;
}
public String getCUST_TYPE() {
return CUST_TYPE;
}
public void setCUST_TYPE(String CUST_TYPE) {
this.CUST_TYPE = CUST_TYPE;
}
public String getPROD_TYPE_CD() {
return PROD_TYPE_CD;
}
public void setPROD_TYPE_CD(String PROD_TYPE_CD) {
this.PROD_TYPE_CD = PROD_TYPE_CD;
}
public String getPROD_TYPE_NM() {
return PROD_TYPE_NM;
}
public void setPROD_TYPE_NM(String PROD_TYPE_NM) {
this.PROD_TYPE_NM = PROD_TYPE_NM;
}
public String getCORP_SIZE() {
return CORP_SIZE;
}
public void setCORP_SIZE(String CORP_SIZE) {
this.CORP_SIZE = CORP_SIZE;
}
public Double getTOTAL_CRED_AMT() {
return TOTAL_CRED_AMT;
}
public void setTOTAL_CRED_AMT(Double TOTAL_CRED_AMT) {
this.TOTAL_CRED_AMT = TOTAL_CRED_AMT;
}
public String getPROFESSIONAL_LOANS_FLG() {
return PROFESSIONAL_LOANS_FLG;
}
public void setPROFESSIONAL_LOANS_FLG(String PROFESSIONAL_LOANS_FLG) {
this.PROFESSIONAL_LOANS_FLG = PROFESSIONAL_LOANS_FLG;
}
public String getPROFESSIONAL_LOANS_TYPE() {
return PROFESSIONAL_LOANS_TYPE;
}
public void setPROFESSIONAL_LOANS_TYPE(String PROFESSIONAL_LOANS_TYPE) {
this.PROFESSIONAL_LOANS_TYPE = PROFESSIONAL_LOANS_TYPE;
}
public Double getL3_INCOME_AVG() {
return L3_INCOME_AVG;
}
public void setL3_INCOME_AVG(Double l3_INCOME_AVG) {
L3_INCOME_AVG = l3_INCOME_AVG;
}
public String getINDUSTRY_TYPE() {
return INDUSTRY_TYPE;
}
public void setINDUSTRY_TYPE(String INDUSTRY_TYPE) {
this.INDUSTRY_TYPE = INDUSTRY_TYPE;
}
public Double getM12_CRED_BAL() {
return M12_CRED_BAL;
}
public void setM12_CRED_BAL(Double m12_CRED_BAL) {
M12_CRED_BAL = m12_CRED_BAL;
}
public String getM12_CRED_OVD_FLAG() {
return M12_CRED_OVD_FLAG;
}
public void setM12_CRED_OVD_FLAG(String m12_CRED_OVD_FLAG) {
M12_CRED_OVD_FLAG = m12_CRED_OVD_FLAG;
}
public Double getLGD() {
return LGD;
}
public void setLGD(Double LGD) {
this.LGD = LGD;
}
public Double getEAD() {
return EAD;
}
public void setEAD(Double EAD) {
this.EAD = EAD;
}
public Double getCCF() {
return CCF;
}
public void setCCF(Double CCF) {
this.CCF = CCF;
}
public Double getLOAN_TERM() {
return LOAN_TERM;
}
public void setLOAN_TERM(Double LOAN_TERM) {
this.LOAN_TERM = LOAN_TERM;
}
public String getSYSTEM_IMPORTANCE_BANK() {
return SYSTEM_IMPORTANCE_BANK;
}
public void setSYSTEM_IMPORTANCE_BANK(String SYSTEM_IMPORTANCE_BANK) {
this.SYSTEM_IMPORTANCE_BANK = SYSTEM_IMPORTANCE_BANK;
}
public String getDEF_FLG() {
return DEF_FLG;
}
public void setDEF_FLG(String DEF_FLG) {
this.DEF_FLG = DEF_FLG;
}
public Double getBEEF() {
return BEEF;
}
public void setBEEF(Double BEEF) {
this.BEEF = BEEF;
}
public String getBELONG_ORG() {
return BELONG_ORG;
}
public void setBELONG_ORG(String BELONG_ORG) {
this.BELONG_ORG = BELONG_ORG;
}
@Override
public String getTable() {
return "RWA_M_IRS_DEBT";
}
@Override
public Integer getColumnCount() {
return 41;
}
}

331
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaMWeightResult.java

@ -0,0 +1,331 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import java.util.HashMap;
/**
* 权重法风险缓释结果表
* @author chengjie
* @time 2025-05-15
*/
public class RwaMWeightResult extends BaseEntity {
public RwaMWeightResult(){ setColMap(); }
public RwaMWeightResult(String[] row){
this.setColumnValue(row);
}
@Override
public void setColumnValue(String [] row){
if(row != null){
setID (row[0]);
setDATA_DT (row[1]);
setDEBT_ID (row[2]);
setBUSI_TYPE (row[3]);
setON_OFF_FLAG (row[4]);
setCUST_NO (row[5]);
setCUST_NAME (row[6]);
setEAD_TYPE_CODE (row[7]);
setEAD_TYPE_NAME (row[8]);
setEAD_TYPE_NUMBER (row[9]);
setASSET_AMT (row[10]);
setRESERVE (row[11]);
setCCF (row[12]);
setDEBT_RISK_WEIGHT (row[13]);
setEAD_WEIGHT (row[14]);
setCOLL_ID (row[15]);
setACCORD_RISK_TOOL_TYPE_CD (row[16]);
setACCORD_RISK_TOOL_TYPE_NM (row[17]);
setRISK_TOOL_RISK_WEIGHT (row[18]);
setRISK_TOLL_EXPO_TYPE_CODE (row[19]);
setCOLL_VALUE (row[20]);
setMITIG_AMT (row[21]);
setRWA_WEIGHT (row[22]);
setBELONG_ORG (row[23]);
setLTV (row[24]);
setRES_TERM (row[25]);
}
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("DATA_DT",1);
colMap.put("DEBT_ID",2);
colMap.put("BUSI_TYPE",3);
colMap.put("ON_OFF_FLAG",4);
colMap.put("CUST_NO",5);
colMap.put("CUST_NAME",6);
colMap.put("EAD_TYPE_CODE",7);
colMap.put("EAD_TYPE_NAME",8);
colMap.put("EAD_TYPE_NUMBER",9);
colMap.put("ASSET_AMT",10);
colMap.put("RESERVE",11);
colMap.put("CCF",12);
colMap.put("DEBT_RISK_WEIGHT",13);
colMap.put("EAD_WEIGHT",14);
colMap.put("COLL_ID",15);
colMap.put("ACCORD_RISK_TOOL_TYPE_CD",16);
colMap.put("ACCORD_RISK_TOOL_TYPE_NM",17);
colMap.put("RISK_TOOL_RISK_WEIGHT",18);
colMap.put("RISK_TOLL_EXPO_TYPE_CODE",19);
colMap.put("COLL_VALUE",20);
colMap.put("MITIG_AMT",21);
colMap.put("RWA_WEIGHT",22);
colMap.put("BELONG_ORG",23);
colMap.put("LTV",24);
colMap.put("RES_TERM",25);
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID; //ID
private String DATA_DT; //数据日期
private String DEBT_ID; //债项编号
private String BUSI_TYPE; //业务类型
private String ON_OFF_FLAG; //表内外标识
private String CUST_NO; //客户编号
private String CUST_NAME; //客户名称
private String EAD_TYPE_CODE; //风险暴露分类代码
private String EAD_TYPE_NAME; //风险暴露分类名称
private String EAD_TYPE_NUMBER; //风险暴露分类序号
private String ASSET_AMT; //资产余额
private String RESERVE; //计提准备金
private String CCF; //信用风险转换系数(CCF)
private String DEBT_RISK_WEIGHT; //债项风险权重
private String EAD_WEIGHT; //风险暴露EAD
private String COLL_ID; //风险缓释工具编号
private String ACCORD_RISK_TOOL_TYPE_CD; //合格缓释工具类型代码
private String ACCORD_RISK_TOOL_TYPE_NM; //合格缓释工具类型名称
private String RISK_TOOL_RISK_WEIGHT; //缓释工具风险权重
private String RISK_TOLL_EXPO_TYPE_CODE; //缓释工具风险暴露分类
private String COLL_VALUE; //风险缓释工具我行认定价值
private String MITIG_AMT; //已缓释金额
private String RWA_WEIGHT; //权重法风险加权资产
private String BELONG_ORG; //业务所属机构
private String LTV; //贷款价值比
private String RES_TERM; //剩余期限
public String getLTV() {
return LTV;
}
public void setLTV(String LTV) {
this.LTV = LTV;
}
public String getRES_TERM() {
return RES_TERM;
}
public void setRES_TERM(String RES_TERM) {
this.RES_TERM = RES_TERM;
}
public String getTable() {
return "RWA_M_WEIGHT_RESULT";
}
@Override
public Integer getColumnCount() {
return 30;
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public String getDEBT_ID() {
return DEBT_ID;
}
public void setDEBT_ID(String DEBT_ID) {
this.DEBT_ID = DEBT_ID;
}
public String getBUSI_TYPE() {
return BUSI_TYPE;
}
public void setBUSI_TYPE(String BUSI_TYPE) {
this.BUSI_TYPE = BUSI_TYPE;
}
public String getON_OFF_FLAG() {
return ON_OFF_FLAG;
}
public void setON_OFF_FLAG(String ON_OFF_FLAG) {
this.ON_OFF_FLAG = ON_OFF_FLAG;
}
public String getCUST_NO() {
return CUST_NO;
}
public void setCUST_NO(String CUST_NO) {
this.CUST_NO = CUST_NO;
}
public String getCUST_NAME() {
return CUST_NAME;
}
public void setCUST_NAME(String CUST_NAME) {
this.CUST_NAME = CUST_NAME;
}
public String getEAD_TYPE_CODE() {
return EAD_TYPE_CODE;
}
public void setEAD_TYPE_CODE(String EAD_TYPE_CODE) {
this.EAD_TYPE_CODE = EAD_TYPE_CODE;
}
public String getEAD_TYPE_NAME() {
return EAD_TYPE_NAME;
}
public void setEAD_TYPE_NAME(String EAD_TYPE_NAME) {
this.EAD_TYPE_NAME = EAD_TYPE_NAME;
}
public String getEAD_TYPE_NUMBER() {
return EAD_TYPE_NUMBER;
}
public void setEAD_TYPE_NUMBER(String EAD_TYPE_NUMBER) {
this.EAD_TYPE_NUMBER = EAD_TYPE_NUMBER;
}
public String getASSET_AMT() {
return ASSET_AMT;
}
public void setASSET_AMT(String ASSET_AMT) {
this.ASSET_AMT = ASSET_AMT;
}
public String getRESERVE() {
return RESERVE;
}
public void setRESERVE(String RESERVE) {
this.RESERVE = RESERVE;
}
public String getCCF() {
return CCF;
}
public void setCCF(String CCF) {
this.CCF = CCF;
}
public String getDEBT_RISK_WEIGHT() {
return DEBT_RISK_WEIGHT;
}
public void setDEBT_RISK_WEIGHT(String DEBT_RISK_WEIGHT) {
this.DEBT_RISK_WEIGHT = DEBT_RISK_WEIGHT;
}
public String getEAD_WEIGHT() {
return EAD_WEIGHT;
}
public void setEAD_WEIGHT(String EAD_WEIGHT) {
this.EAD_WEIGHT = EAD_WEIGHT;
}
public String getCOLL_ID() {
return COLL_ID;
}
public void setCOLL_ID(String COLL_ID) {
this.COLL_ID = COLL_ID;
}
public String getACCORD_RISK_TOOL_TYPE_CD() {
return ACCORD_RISK_TOOL_TYPE_CD;
}
public void setACCORD_RISK_TOOL_TYPE_CD(String ACCORD_RISK_TOOL_TYPE_CD) {
this.ACCORD_RISK_TOOL_TYPE_CD = ACCORD_RISK_TOOL_TYPE_CD;
}
public String getACCORD_RISK_TOOL_TYPE_NM() {
return ACCORD_RISK_TOOL_TYPE_NM;
}
public void setACCORD_RISK_TOOL_TYPE_NM(String ACCORD_RISK_TOOL_TYPE_NM) {
this.ACCORD_RISK_TOOL_TYPE_NM = ACCORD_RISK_TOOL_TYPE_NM;
}
public String getRISK_TOOL_RISK_WEIGHT() {
return RISK_TOOL_RISK_WEIGHT;
}
public void setRISK_TOOL_RISK_WEIGHT(String RISK_TOOL_RISK_WEIGHT) {
this.RISK_TOOL_RISK_WEIGHT = RISK_TOOL_RISK_WEIGHT;
}
public String getRISK_TOLL_EXPO_TYPE_CODE() {
return RISK_TOLL_EXPO_TYPE_CODE;
}
public void setRISK_TOLL_EXPO_TYPE_CODE(String RISK_TOLL_EXPO_TYPE_CODE) {
this.RISK_TOLL_EXPO_TYPE_CODE = RISK_TOLL_EXPO_TYPE_CODE;
}
public String getCOLL_VALUE() {
return COLL_VALUE;
}
public void setCOLL_VALUE(String COLL_VALUE) {
this.COLL_VALUE = COLL_VALUE;
}
public String getMITIG_AMT() {
return MITIG_AMT;
}
public void setMITIG_AMT(String MITIG_AMT) {
this.MITIG_AMT = MITIG_AMT;
}
public String getRWA_WEIGHT() {
return RWA_WEIGHT;
}
public void setRWA_WEIGHT(String RWA_WEIGHT) {
this.RWA_WEIGHT = RWA_WEIGHT;
}
public String getBELONG_ORG() {
return BELONG_ORG;
}
public void setBELONG_ORG(String BELONG_ORG) {
this.BELONG_ORG = BELONG_ORG;
}
}

85
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaOrgAreaMapping.java

@ -0,0 +1,85 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import java.util.HashMap;
public class RwaOrgAreaMapping extends BaseEntity {
public RwaOrgAreaMapping(){ setColMap(); }
public RwaOrgAreaMapping(String[] row){
setColumnValue(row);
}
private void setColMap(){
colMap = new HashMap();
colMap.put("ID",0);
colMap.put("BELONG_ORG",1);
colMap.put("AREA",2);
colMap.put("IS_VALID",3);
}
@Override
public String getTable() {
return "RWA_P_ORG_AREA_MAPPING";
}
@Override
public Integer getColumnCount() {
return 10;
}
@Override
public void setColumnValue(String[] row) {
if (row != null) {
setID (row[0]);
setBELONG_ORG (row[1]);
setAREA (row[2]);
setIS_VALID (row[3]);
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID ; //主键
private String BELONG_ORG ; //业务所属机构
private String AREA ; //所属区域
private String IS_VALID ; //是否有效
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getBELONG_ORG() {
return BELONG_ORG;
}
public void setBELONG_ORG(String BELONG_ORG) {
this.BELONG_ORG = BELONG_ORG;
}
public String getAREA() {
return AREA;
}
public void setAREA(String AREA) {
this.AREA = AREA;
}
public String getIS_VALID() {
return IS_VALID;
}
public void setIS_VALID(String IS_VALID) {
this.IS_VALID = IS_VALID;
}
}

138
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaRequireParam.java

@ -0,0 +1,138 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import io.sc.platform.util.StringUtil;
/**
* 资本要求参数
*/
public class RwaRequireParam extends BaseEntity {
public RwaRequireParam(){ }
public RwaRequireParam(String[] row){
setColumnValue(row);
}
@Override
public void setColumnValue(String[] row){
if(row != null){
setID(row[0]); //唯一标识
setCOUNTRY(row[1]); //国家代码
setMIN_CAPITAL_REQ(row[2].equals("")?null:Double.valueOf(row[2])); //最低资本要求
setREVERSE_CAPITAL_REQ(row[3].equals("")?null:Double.valueOf(row[3])); //储备资本要求
setINVERSE_CAPITAL_REQ(row[4].equals("")?null:Double.valueOf(row[4])); //逆周期资本要求
setBUFFER_CAPITAL(row[5].equals("")?null:Double.valueOf(row[5])); //逆周期资本要求
setADDITIONAL_CAPITAL_REQ(row[6].equals("")?null:Double.valueOf(row[6])); //系统重要性银行附加资本要求
setGLOBAL_ADDITIONAL_CAPITAL_REQ(row[7].equals("")?null:Double.valueOf(row[7])); //全球系统重要性银行附加资本要求
}
}
private String ID; //唯一标识
private String COUNTRY; //国家代码
private Double MIN_CAPITAL_REQ; //最低资本要求
private Double REVERSE_CAPITAL_REQ; //储备资本要求
private Double INVERSE_CAPITAL_REQ; //逆周期资本要求
private Double BUFFER_CAPITAL; //缓冲资本要求
private Double ADDITIONAL_CAPITAL_REQ; //系统重要性银行附加资本要求
private Double GLOBAL_ADDITIONAL_CAPITAL_REQ; //全球系统重要性银行附加资本要求
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getCOUNTRY() {
return COUNTRY;
}
public void setCOUNTRY(String COUNTRY) {
this.COUNTRY = COUNTRY;
}
public Double getMIN_CAPITAL_REQ() {
return MIN_CAPITAL_REQ;
}
public void setMIN_CAPITAL_REQ(Double MIN_CAPITAL_REQ) {
this.MIN_CAPITAL_REQ = MIN_CAPITAL_REQ;
}
public Double getREVERSE_CAPITAL_REQ() {
return REVERSE_CAPITAL_REQ;
}
public void setREVERSE_CAPITAL_REQ(Double REVERSE_CAPITAL_REQ) {
this.REVERSE_CAPITAL_REQ = REVERSE_CAPITAL_REQ;
}
public Double getINVERSE_CAPITAL_REQ() {
return INVERSE_CAPITAL_REQ;
}
public void setINVERSE_CAPITAL_REQ(Double INVERSE_CAPITAL_REQ) {
this.INVERSE_CAPITAL_REQ = INVERSE_CAPITAL_REQ;
}
public Double getADDITIONAL_CAPITAL_REQ() {
return ADDITIONAL_CAPITAL_REQ;
}
public void setADDITIONAL_CAPITAL_REQ(Double ADDITIONAL_CAPITAL_REQ) {
this.ADDITIONAL_CAPITAL_REQ = ADDITIONAL_CAPITAL_REQ;
}
public Double getGLOBAL_ADDITIONAL_CAPITAL_REQ() {
return GLOBAL_ADDITIONAL_CAPITAL_REQ;
}
public void setGLOBAL_ADDITIONAL_CAPITAL_REQ(Double GLOBAL_ADDITIONAL_CAPITAL_REQ) {
this.GLOBAL_ADDITIONAL_CAPITAL_REQ = GLOBAL_ADDITIONAL_CAPITAL_REQ;
}
public Double getBUFFER_CAPITAL() {
return BUFFER_CAPITAL;
}
public void setBUFFER_CAPITAL(Double BUFFER_CAPITAL) {
this.BUFFER_CAPITAL = BUFFER_CAPITAL;
}
public String getTable() {
return "RWA_P_RWA_REQUIRE";
}
@Override
public Integer getColumnCount() {
return 14;
}
@Override
public String getFieldVal(String column) {
String val = "";
if(StringUtil.isNullOrEmpty(column)){
val = "";
} else if(column.equals("ID")){
val = ID;
} else if(column.equals("COUNTRY")){
val = COUNTRY;
} else if(column.equals("MIN_CAPITAL_REQ") && MIN_CAPITAL_REQ != null){
val = String.valueOf(MIN_CAPITAL_REQ);
} else if(column.equals("REVERSE_CAPITAL_REQ") && REVERSE_CAPITAL_REQ != null){
val = String.valueOf(REVERSE_CAPITAL_REQ);
} else if(column.equals("INVERSE_CAPITAL_REQ") && INVERSE_CAPITAL_REQ != null){
val = String.valueOf(INVERSE_CAPITAL_REQ);
} else if(column.equals("BUFFER_CAPITAL") && BUFFER_CAPITAL != null){
val = String.valueOf(BUFFER_CAPITAL);
} else if(column.equals("ADDITIONAL_CAPITAL_REQ") && ADDITIONAL_CAPITAL_REQ != null){
val = String.valueOf(ADDITIONAL_CAPITAL_REQ);
} else if(column.equals("GLOBAL_ADDITIONAL_CAPITAL_REQ") && GLOBAL_ADDITIONAL_CAPITAL_REQ != null){
val = String.valueOf(GLOBAL_ADDITIONAL_CAPITAL_REQ);
}
return val;
}
@Override
public int getIndex(String column) {
return 0;
}
}

184
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaRptG4E.java

@ -0,0 +1,184 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.toEmptyDouble;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.toEmptyInteger;
public class RwaRptG4E extends BaseEntity {
public RwaRptG4E(){ }
public RwaRptG4E(String[] row){
setColumnValue(row);
}
public void setColumnValue(String[] row) {
if (row != null) {
setID (row[0]);
setDATA_DT (row[1]);
setSORT_NO (toEmptyInteger(row[2]));
setDIM_TYPE (row[3]);
setRISK_EXPO_CD (row[4]);
setRISK_EXPO_NM (row[5]);
setCOVER_ASSET_BAL (toEmptyDouble(row[6]));
setCOVER_EAD (toEmptyDouble(row[7]));
setCOVER_IRS_RWA (toEmptyDouble(row[8]));
setCOVER_WEIGHT_RWA (toEmptyDouble(row[9]));
setCOVER_ECL (toEmptyDouble(row[10]));
setNOT_COVER_ASSET_BAL (toEmptyDouble(row[11]));
setNOT_COVER_EAD (toEmptyDouble(row[12]));
setNOT_COVER_WEIGHT_RWA(toEmptyDouble(row[13]));
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID ; //ID
private String DATA_DT ; //数据日期
private Integer SORT_NO ; //序号
private String DIM_TYPE ; //维度类型
private String RISK_EXPO_CD ; //风险暴露分类代码
private String RISK_EXPO_NM ; //风险暴露分类名称
private Double COVER_ASSET_BAL ; //内部评级法覆盖部分资产余额
private Double COVER_EAD ; //内部评级法覆盖部分风险暴露
private Double COVER_IRS_RWA ; //内部评级法覆盖部分高级方法风险加权资产
private Double COVER_WEIGHT_RWA ; //内部评级法覆盖部分权重法风险加权资产
private Double COVER_ECL ; //内部评级法覆盖部分预期损失
private Double NOT_COVER_ASSET_BAL ; //内部评级法未覆盖部分资产余额
private Double NOT_COVER_EAD ; //内部评级法未覆盖部分风险暴露
private Double NOT_COVER_WEIGHT_RWA; //内部评级法未覆盖部分风险加权资产
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public Integer getSORT_NO() {
return SORT_NO;
}
public void setSORT_NO(Integer SORT_NO) {
this.SORT_NO = SORT_NO;
}
public String getDIM_TYPE() {
return DIM_TYPE;
}
public void setDIM_TYPE(String DIM_TYPE) {
this.DIM_TYPE = DIM_TYPE;
}
public String getRISK_EXPO_CD() {
return RISK_EXPO_CD;
}
public void setRISK_EXPO_CD(String RISK_EXPO_CD) {
this.RISK_EXPO_CD = RISK_EXPO_CD;
}
public String getRISK_EXPO_NM() {
return RISK_EXPO_NM;
}
public void setRISK_EXPO_NM(String RISK_EXPO_NM) {
this.RISK_EXPO_NM = RISK_EXPO_NM;
}
public Double getCOVER_ASSET_BAL() {
return COVER_ASSET_BAL;
}
public void setCOVER_ASSET_BAL(Double COVER_ASSET_BAL) {
this.COVER_ASSET_BAL = COVER_ASSET_BAL;
}
public Double getCOVER_EAD() {
return COVER_EAD;
}
public void setCOVER_EAD(Double COVER_EAD) {
this.COVER_EAD = COVER_EAD;
}
public Double getCOVER_IRS_RWA() {
return COVER_IRS_RWA;
}
public void setCOVER_IRS_RWA(Double COVER_IRS_RWA) {
this.COVER_IRS_RWA = COVER_IRS_RWA;
}
public Double getCOVER_WEIGHT_RWA() {
return COVER_WEIGHT_RWA;
}
public void setCOVER_WEIGHT_RWA(Double COVER_WEIGHT_RWA) {
this.COVER_WEIGHT_RWA = COVER_WEIGHT_RWA;
}
public Double getCOVER_ECL() {
return COVER_ECL;
}
public void setCOVER_ECL(Double COVER_ECL) {
this.COVER_ECL = COVER_ECL;
}
public Double getNOT_COVER_ASSET_BAL() {
return NOT_COVER_ASSET_BAL;
}
public void setNOT_COVER_ASSET_BAL(Double NOT_COVER_ASSET_BAL) {
this.NOT_COVER_ASSET_BAL = NOT_COVER_ASSET_BAL;
}
public Double getNOT_COVER_EAD() {
return NOT_COVER_EAD;
}
public void setNOT_COVER_EAD(Double NOT_COVER_EAD) {
this.NOT_COVER_EAD = NOT_COVER_EAD;
}
public Double getNOT_COVER_WEIGHT_RWA() {
return NOT_COVER_WEIGHT_RWA;
}
public void setNOT_COVER_WEIGHT_RWA(Double NOT_COVER_WEIGHT_RWA) {
this.NOT_COVER_WEIGHT_RWA = NOT_COVER_WEIGHT_RWA;
}
public String getTable() {
return "RWA_RPT_G4E";
}
@Override
public Integer getColumnCount() {
return 20;
}
@Override
public String[] getColumnDataType(){
return new String[]{
"String","String","Integer","String","String","String","Double","Double","Double","Double","Double","Double","Double","Double"
};
}
}

304
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaRptG4E1.java

@ -0,0 +1,304 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.toEmptyDouble;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.toEmptyInteger;
public class RwaRptG4E1 extends BaseEntity {
public RwaRptG4E1(){ }
public RwaRptG4E1(String[] row){
setColumnValue(row);
}
public void setColumnValue(String[] row) {
if (row != null) {
setID (row[0]);
setDATA_DT (row[1]);
setSORT_NO (toEmptyInteger(row[2]));
setDIM_TYPE (row[3]);
setRATING_GRADE (row[4]);
setIN_ASSET_BAL (toEmptyDouble(row[5]));
setIN_EAD (toEmptyDouble(row[6]));
setIN_RWA (toEmptyDouble(row[7]));
setIN_ECL (toEmptyDouble(row[8]));
setOU_ASSET_BAL (toEmptyDouble(row[9]));
setOU_EAD (toEmptyDouble(row[10]));
setOU_RWA (toEmptyDouble(row[11]));
setOU_ECL (toEmptyDouble(row[12]));
setCUST_PRIN (toEmptyDouble(row[13]));
setCUST_EAD (toEmptyDouble(row[14]));
setCUST_RWA (toEmptyDouble(row[15]));
setCUST_ECL (toEmptyDouble(row[16]));
setTOTAL_EAD (toEmptyDouble(row[17]));
setTOTAL_RWA (toEmptyDouble(row[18]));
setTOTAL_WEIGHT (toEmptyDouble(row[19]));
setTOTAL_ECL (toEmptyDouble(row[20]));
setBEFORE_DEF_EAD (toEmptyDouble(row[21]));
setBEFORE_1Q_DEF_EAD (toEmptyDouble(row[22]));
setBEFORE_HAFE_Y_DEF_EAD(toEmptyDouble(row[23]));
setBEFORE_1Y_DEF_EAD (toEmptyDouble(row[24]));
setAFTER_DEF_EAD (toEmptyDouble(row[25]));
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID ; //ID
private String DATA_DT ; //数据日期
private Integer SORT_NO ; //序号
private String DIM_TYPE ; //维度类型
private String RATING_GRADE ; //信用等级
private Double IN_ASSET_BAL ; //表内项目资产余额
private Double IN_EAD ; //表内项目风险暴露
private Double IN_RWA ; //表内项目风险加权资产
private Double IN_ECL ; //表内项目预期损失
private Double OU_ASSET_BAL ; //表外项目转换前资产
private Double OU_EAD ; //表外项目风险暴露
private Double OU_RWA ; //表外项目风险加权资产
private Double OU_ECL ; //表外项目预期损失
private Double CUST_PRIN ; //交易对手信用风险名义本金
private Double CUST_EAD ; //交易对手风险暴露
private Double CUST_RWA ; //交易对手风险加权资产
private Double CUST_ECL ; //交易对手预期损失
private Double TOTAL_EAD ; //风险暴露合计
private Double TOTAL_RWA ; //风险加权资产合计
private Double TOTAL_WEIGHT ; //风险权重合计
private Double TOTAL_ECL ; //预期损失合计
private Double BEFORE_DEF_EAD ; //违约前客户风险暴露
private Double BEFORE_1Q_DEF_EAD ; //违约前一个季度客户风险暴露
private Double BEFORE_HAFE_Y_DEF_EAD; //违约前半年客户风险暴露
private Double BEFORE_1Y_DEF_EAD ; //违约前一年客户风险暴露
private Double AFTER_DEF_EAD ; //违约后实际客户风险暴露
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public Integer getSORT_NO() {
return SORT_NO;
}
public void setSORT_NO(Integer SORT_NO) {
this.SORT_NO = SORT_NO;
}
public String getDIM_TYPE() {
return DIM_TYPE;
}
public void setDIM_TYPE(String DIM_TYPE) {
this.DIM_TYPE = DIM_TYPE;
}
public String getRATING_GRADE() {
return RATING_GRADE;
}
public void setRATING_GRADE(String RATING_GRADE) {
this.RATING_GRADE = RATING_GRADE;
}
public Double getIN_ASSET_BAL() {
return IN_ASSET_BAL;
}
public void setIN_ASSET_BAL(Double IN_ASSET_BAL) {
this.IN_ASSET_BAL = IN_ASSET_BAL;
}
public Double getIN_EAD() {
return IN_EAD;
}
public void setIN_EAD(Double IN_EAD) {
this.IN_EAD = IN_EAD;
}
public Double getIN_RWA() {
return IN_RWA;
}
public void setIN_RWA(Double IN_RWA) {
this.IN_RWA = IN_RWA;
}
public Double getIN_ECL() {
return IN_ECL;
}
public void setIN_ECL(Double IN_ECL) {
this.IN_ECL = IN_ECL;
}
public Double getOU_ASSET_BAL() {
return OU_ASSET_BAL;
}
public void setOU_ASSET_BAL(Double OU_ASSET_BAL) {
this.OU_ASSET_BAL = OU_ASSET_BAL;
}
public Double getOU_EAD() {
return OU_EAD;
}
public void setOU_EAD(Double OU_EAD) {
this.OU_EAD = OU_EAD;
}
public Double getOU_RWA() {
return OU_RWA;
}
public void setOU_RWA(Double OU_RWA) {
this.OU_RWA = OU_RWA;
}
public Double getOU_ECL() {
return OU_ECL;
}
public void setOU_ECL(Double OU_ECL) {
this.OU_ECL = OU_ECL;
}
public Double getCUST_PRIN() {
return CUST_PRIN;
}
public void setCUST_PRIN(Double CUST_PRIN) {
this.CUST_PRIN = CUST_PRIN;
}
public Double getCUST_EAD() {
return CUST_EAD;
}
public void setCUST_EAD(Double CUST_EAD) {
this.CUST_EAD = CUST_EAD;
}
public Double getCUST_RWA() {
return CUST_RWA;
}
public void setCUST_RWA(Double CUST_RWA) {
this.CUST_RWA = CUST_RWA;
}
public Double getCUST_ECL() {
return CUST_ECL;
}
public void setCUST_ECL(Double CUST_ECL) {
this.CUST_ECL = CUST_ECL;
}
public Double getTOTAL_EAD() {
return TOTAL_EAD;
}
public void setTOTAL_EAD(Double TOTAL_EAD) {
this.TOTAL_EAD = TOTAL_EAD;
}
public Double getTOTAL_RWA() {
return TOTAL_RWA;
}
public void setTOTAL_RWA(Double TOTAL_RWA) {
this.TOTAL_RWA = TOTAL_RWA;
}
public Double getTOTAL_WEIGHT() {
return TOTAL_WEIGHT;
}
public void setTOTAL_WEIGHT(Double TOTAL_WEIGHT) {
this.TOTAL_WEIGHT = TOTAL_WEIGHT;
}
public Double getTOTAL_ECL() {
return TOTAL_ECL;
}
public void setTOTAL_ECL(Double TOTAL_ECL) {
this.TOTAL_ECL = TOTAL_ECL;
}
public Double getBEFORE_DEF_EAD() {
return BEFORE_DEF_EAD;
}
public void setBEFORE_DEF_EAD(Double BEFORE_DEF_EAD) {
this.BEFORE_DEF_EAD = BEFORE_DEF_EAD;
}
public Double getBEFORE_1Q_DEF_EAD() {
return BEFORE_1Q_DEF_EAD;
}
public void setBEFORE_1Q_DEF_EAD(Double BEFORE_1Q_DEF_EAD) {
this.BEFORE_1Q_DEF_EAD = BEFORE_1Q_DEF_EAD;
}
public Double getBEFORE_HAFE_Y_DEF_EAD() {
return BEFORE_HAFE_Y_DEF_EAD;
}
public void setBEFORE_HAFE_Y_DEF_EAD(Double BEFORE_HAFE_Y_DEF_EAD) {
this.BEFORE_HAFE_Y_DEF_EAD = BEFORE_HAFE_Y_DEF_EAD;
}
public Double getBEFORE_1Y_DEF_EAD() {
return BEFORE_1Y_DEF_EAD;
}
public void setBEFORE_1Y_DEF_EAD(Double BEFORE_1Y_DEF_EAD) {
this.BEFORE_1Y_DEF_EAD = BEFORE_1Y_DEF_EAD;
}
public Double getAFTER_DEF_EAD() {
return AFTER_DEF_EAD;
}
public void setAFTER_DEF_EAD(Double AFTER_DEF_EAD) {
this.AFTER_DEF_EAD = AFTER_DEF_EAD;
}
public String getTable() {
return "RWA_RPT_G4E_1";
}
@Override
public Integer getColumnCount() {
return 32;
}
@Override
public String[] getColumnDataType(){
return new String[]{
"String","String","Integer","String","String","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double"
};
}
}

304
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaRptG4E2.java

@ -0,0 +1,304 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.toEmptyDouble;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.toEmptyInteger;
public class RwaRptG4E2 extends BaseEntity {
public RwaRptG4E2(){ }
public RwaRptG4E2(String[] row){
setColumnValue(row);
}
public void setColumnValue(String[] row) {
if (row != null) {
setID (row[0]);
setDATA_DT (row[1]);
setSORT_NO (toEmptyInteger(row[2]));
setDIM_TYPE (row[3]);
setITEM_NAME (row[4]);
setIN_ASSET_BAL (toEmptyDouble(row[5]));
setIN_EAD (toEmptyDouble(row[6]));
setIN_RWA (toEmptyDouble(row[7]));
setIN_ECL (toEmptyDouble(row[8]));
setOU_ASSET_BAL (toEmptyDouble(row[9]));
setOU_EAD (toEmptyDouble(row[10]));
setOU_RWA (toEmptyDouble(row[11]));
setOU_ECL (toEmptyDouble(row[12]));
setCUST_PRIN (toEmptyDouble(row[13]));
setCUST_EAD (toEmptyDouble(row[14]));
setCUST_RWA (toEmptyDouble(row[15]));
setCUST_ECL (toEmptyDouble(row[16]));
setTOTAL_EAD (toEmptyDouble(row[17]));
setTOTAL_RWA (toEmptyDouble(row[18]));
setTOTAL_WEIGHT (toEmptyDouble(row[19]));
setTOTAL_ECL (toEmptyDouble(row[20]));
setBEFORE_DEF_EAD (toEmptyDouble(row[21]));
setBEFORE_1Q_DEF_EAD (toEmptyDouble(row[22]));
setBEFORE_HAFE_Y_DEF_EAD(toEmptyDouble(row[23]));
setBEFORE_1Y_DEF_EAD (toEmptyDouble(row[24]));
setAFTER_DEF_EAD (toEmptyDouble(row[25]));
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID ; //ID
private String DATA_DT ; //数据日期
private Integer SORT_NO ; //序号
private String DIM_TYPE ; //维度类型
private String ITEM_NAME ; //项目名称
private Double IN_ASSET_BAL ; //表内项目资产余额
private Double IN_EAD ; //表内项目风险暴露
private Double IN_RWA ; //表内项目风险加权资产
private Double IN_ECL ; //表内项目预期损失
private Double OU_ASSET_BAL ; //表外项目转换前资产
private Double OU_EAD ; //表外项目风险暴露
private Double OU_RWA ; //表外项目风险加权资产
private Double OU_ECL ; //表外项目预期损失
private Double CUST_PRIN ; //交易对手信用风险名义本金
private Double CUST_EAD ; //交易对手风险暴露
private Double CUST_RWA ; //交易对手风险加权资产
private Double CUST_ECL ; //交易对手预期损失
private Double TOTAL_EAD ; //风险暴露合计
private Double TOTAL_RWA ; //风险加权资产合计
private Double TOTAL_WEIGHT ; //风险权重合计
private Double TOTAL_ECL ; //预期损失合计
private Double BEFORE_DEF_EAD ; //违约前客户风险暴露
private Double BEFORE_1Q_DEF_EAD ; //违约前一个季度客户风险暴露
private Double BEFORE_HAFE_Y_DEF_EAD; //违约前半年客户风险暴露
private Double BEFORE_1Y_DEF_EAD ; //违约前一年客户风险暴露
private Double AFTER_DEF_EAD ; //违约后实际客户风险暴露
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public Integer getSORT_NO() {
return SORT_NO;
}
public void setSORT_NO(Integer SORT_NO) {
this.SORT_NO = SORT_NO;
}
public String getDIM_TYPE() {
return DIM_TYPE;
}
public void setDIM_TYPE(String DIM_TYPE) {
this.DIM_TYPE = DIM_TYPE;
}
public String getITEM_NAME() {
return ITEM_NAME;
}
public void setITEM_NAME(String ITEM_NAME) {
this.ITEM_NAME = ITEM_NAME;
}
public Double getIN_ASSET_BAL() {
return IN_ASSET_BAL;
}
public void setIN_ASSET_BAL(Double IN_ASSET_BAL) {
this.IN_ASSET_BAL = IN_ASSET_BAL;
}
public Double getIN_EAD() {
return IN_EAD;
}
public void setIN_EAD(Double IN_EAD) {
this.IN_EAD = IN_EAD;
}
public Double getIN_RWA() {
return IN_RWA;
}
public void setIN_RWA(Double IN_RWA) {
this.IN_RWA = IN_RWA;
}
public Double getIN_ECL() {
return IN_ECL;
}
public void setIN_ECL(Double IN_ECL) {
this.IN_ECL = IN_ECL;
}
public Double getOU_ASSET_BAL() {
return OU_ASSET_BAL;
}
public void setOU_ASSET_BAL(Double OU_ASSET_BAL) {
this.OU_ASSET_BAL = OU_ASSET_BAL;
}
public Double getOU_EAD() {
return OU_EAD;
}
public void setOU_EAD(Double OU_EAD) {
this.OU_EAD = OU_EAD;
}
public Double getOU_RWA() {
return OU_RWA;
}
public void setOU_RWA(Double OU_RWA) {
this.OU_RWA = OU_RWA;
}
public Double getOU_ECL() {
return OU_ECL;
}
public void setOU_ECL(Double OU_ECL) {
this.OU_ECL = OU_ECL;
}
public Double getCUST_PRIN() {
return CUST_PRIN;
}
public void setCUST_PRIN(Double CUST_PRIN) {
this.CUST_PRIN = CUST_PRIN;
}
public Double getCUST_EAD() {
return CUST_EAD;
}
public void setCUST_EAD(Double CUST_EAD) {
this.CUST_EAD = CUST_EAD;
}
public Double getCUST_RWA() {
return CUST_RWA;
}
public void setCUST_RWA(Double CUST_RWA) {
this.CUST_RWA = CUST_RWA;
}
public Double getCUST_ECL() {
return CUST_ECL;
}
public void setCUST_ECL(Double CUST_ECL) {
this.CUST_ECL = CUST_ECL;
}
public Double getTOTAL_EAD() {
return TOTAL_EAD;
}
public void setTOTAL_EAD(Double TOTAL_EAD) {
this.TOTAL_EAD = TOTAL_EAD;
}
public Double getTOTAL_RWA() {
return TOTAL_RWA;
}
public void setTOTAL_RWA(Double TOTAL_RWA) {
this.TOTAL_RWA = TOTAL_RWA;
}
public Double getTOTAL_WEIGHT() {
return TOTAL_WEIGHT;
}
public void setTOTAL_WEIGHT(Double TOTAL_WEIGHT) {
this.TOTAL_WEIGHT = TOTAL_WEIGHT;
}
public Double getTOTAL_ECL() {
return TOTAL_ECL;
}
public void setTOTAL_ECL(Double TOTAL_ECL) {
this.TOTAL_ECL = TOTAL_ECL;
}
public Double getBEFORE_DEF_EAD() {
return BEFORE_DEF_EAD;
}
public void setBEFORE_DEF_EAD(Double BEFORE_DEF_EAD) {
this.BEFORE_DEF_EAD = BEFORE_DEF_EAD;
}
public Double getBEFORE_1Q_DEF_EAD() {
return BEFORE_1Q_DEF_EAD;
}
public void setBEFORE_1Q_DEF_EAD(Double BEFORE_1Q_DEF_EAD) {
this.BEFORE_1Q_DEF_EAD = BEFORE_1Q_DEF_EAD;
}
public Double getBEFORE_HAFE_Y_DEF_EAD() {
return BEFORE_HAFE_Y_DEF_EAD;
}
public void setBEFORE_HAFE_Y_DEF_EAD(Double BEFORE_HAFE_Y_DEF_EAD) {
this.BEFORE_HAFE_Y_DEF_EAD = BEFORE_HAFE_Y_DEF_EAD;
}
public Double getBEFORE_1Y_DEF_EAD() {
return BEFORE_1Y_DEF_EAD;
}
public void setBEFORE_1Y_DEF_EAD(Double BEFORE_1Y_DEF_EAD) {
this.BEFORE_1Y_DEF_EAD = BEFORE_1Y_DEF_EAD;
}
public Double getAFTER_DEF_EAD() {
return AFTER_DEF_EAD;
}
public void setAFTER_DEF_EAD(Double AFTER_DEF_EAD) {
this.AFTER_DEF_EAD = AFTER_DEF_EAD;
}
public String getTable() {
return "RWA_RPT_G4E_2";
}
@Override
public Integer getColumnCount() {
return 32;
}
@Override
public String[] getColumnDataType() {
return new String[]{
"String","String","Integer","String","String","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double"
};
}
}

404
io.sc.engine.rwa.calculator/src/main/java/io/sc/engine/rwa/calculator/domain/RwaRptG4E4.java

@ -0,0 +1,404 @@
package io.sc.engine.rwa.calculator.domain;
import io.sc.engine.rwa.calculator.support.BaseEntity;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.toEmptyDouble;
import static io.sc.engine.rwa.calculator.utils.RwaCalcStringUtils.toEmptyInteger;
public class RwaRptG4E4 extends BaseEntity {
public RwaRptG4E4(){ }
public RwaRptG4E4(String[] row){
setColumnValue(row);
}
public void setColumnValue(String[] row) {
if (row != null) {
setID (row[0]);
setDATA_DT (row[1]);
setSORT_NO (toEmptyInteger(row[2]));
setDIM_TYPE (row[3]);
setPD_UP (row[4]);
setPD_DOWN (row[5]);
setIN_ASSET_BAL (toEmptyDouble(row[6]));
setIN_EAD (toEmptyDouble(row[7]));
setIN_RWA (toEmptyDouble(row[8]));
setIN_ECL (toEmptyDouble(row[9]));
setOU_ASSET_BAL (toEmptyDouble(row[10]));
setOU_EAD (toEmptyDouble(row[11]));
setOU_RWA (toEmptyDouble(row[12]));
setOU_ECL (toEmptyDouble(row[13]));
setCUST_PRIN (toEmptyDouble(row[14]));
setCUST_EAD (toEmptyDouble(row[15]));
setCUST_RWA (toEmptyDouble(row[16]));
setCUST_ECL (toEmptyDouble(row[17]));
setTOTAL_EAD (toEmptyDouble(row[18]));
setTOTAL_RWA (toEmptyDouble(row[19]));
setTOTAL_WEIGHT (toEmptyDouble(row[20]));
setTOTAL_ECL (toEmptyDouble(row[21]));
setLGD_AREA1_EAD(toEmptyDouble(row[22]));
setLGD_AREA2_EAD(toEmptyDouble(row[23]));
setLGD_AREA3_EAD(toEmptyDouble(row[24]));
setLGD_AREA4_EAD(toEmptyDouble(row[25]));
setLGD_AREA5_EAD(toEmptyDouble(row[26]));
setLGD_AREA6_EAD(toEmptyDouble(row[27]));
setLGD_AREA7_EAD(toEmptyDouble(row[28]));
setLTV_AREA1_EAD(toEmptyDouble(row[29]));
setLTV_AREA2_EAD(toEmptyDouble(row[30]));
setLTV_AREA3_EAD(toEmptyDouble(row[31]));
setLTV_AREA4_EAD(toEmptyDouble(row[32]));
setLTV_AREA5_EAD(toEmptyDouble(row[33]));
setLTV_AREA6_EAD(toEmptyDouble(row[34]));
setLTV (toEmptyDouble(row[35]));
}
}
@Override
public String getFieldVal(String column) {
return null;
}
@Override
public int getIndex(String column) {
return 0;
}
private String ID ; //ID
private String DATA_DT ; //数据日期
private Integer SORT_NO ; //序号
private String DIM_TYPE ; //维度类型
private String PD_UP ; //违约概率上限
private String PD_DOWN ; //违约概率下限
private Double IN_ASSET_BAL ; //表内项目资产余额
private Double IN_EAD ; //表内项目风险暴露
private Double IN_RWA ; //表内项目风险加权资产
private Double IN_ECL ; //表内项目预期损失
private Double OU_ASSET_BAL ; //表外项目转换前资产
private Double OU_EAD ; //表外项目风险暴露
private Double OU_RWA ; //表外项目风险加权资产
private Double OU_ECL ; //表外项目预期损失
private Double CUST_PRIN ; //交易对手信用风险名义本金
private Double CUST_EAD ; //交易对手风险暴露
private Double CUST_RWA ; //交易对手风险加权资产
private Double CUST_ECL ; //交易对手预期损失
private Double TOTAL_EAD ; //风险暴露合计
private Double TOTAL_RWA ; //风险加权资产合计
private Double TOTAL_WEIGHT ; //风险权重合计
private Double TOTAL_ECL ; //预期损失合计
private Double LGD_AREA1_EAD; //LGD区间(<=15%)风险暴露
private Double LGD_AREA2_EAD; //LGD区间(15%,25%]风险暴露
private Double LGD_AREA3_EAD; //LGD区间(25%,35%]风险暴露
private Double LGD_AREA4_EAD; //LGD区间(35%,45%]风险暴露
private Double LGD_AREA5_EAD; //LGD区间(45%,60%]风险暴露
private Double LGD_AREA6_EAD; //LGD区间(60%,70%]风险暴露
private Double LGD_AREA7_EAD; //LGD区间LGD(>70%)风险暴露
private Double LTV_AREA1_EAD; //LTV<=50%风险暴露
private Double LTV_AREA2_EAD; //50%<LTV<=60%风险暴露
private Double LTV_AREA3_EAD; //60%<LTV<=70%风险暴露
private Double LTV_AREA4_EAD; //70%<LTV<=80%风险暴露
private Double LTV_AREA5_EAD; //80%<LTV<=90%风险暴露
private Double LTV_AREA6_EAD; //LTV>90%风险暴露
private Double LTV ; //贷款价值比
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getDATA_DT() {
return DATA_DT;
}
public void setDATA_DT(String DATA_DT) {
this.DATA_DT = DATA_DT;
}
public Integer getSORT_NO() {
return SORT_NO;
}
public void setSORT_NO(Integer SORT_NO) {
this.SORT_NO = SORT_NO;
}
public String getDIM_TYPE() {
return DIM_TYPE;
}
public void setDIM_TYPE(String DIM_TYPE) {
this.DIM_TYPE = DIM_TYPE;
}
public String getPD_UP() {
return PD_UP;
}
public void setPD_UP(String PD_UP) {
this.PD_UP = PD_UP;
}
public String getPD_DOWN() {
return PD_DOWN;
}
public void setPD_DOWN(String PD_DOWN) {
this.PD_DOWN = PD_DOWN;
}
public Double getIN_ASSET_BAL() {
return IN_ASSET_BAL;
}
public void setIN_ASSET_BAL(Double IN_ASSET_BAL) {
this.IN_ASSET_BAL = IN_ASSET_BAL;
}
public Double getIN_EAD() {
return IN_EAD;
}
public void setIN_EAD(Double IN_EAD) {
this.IN_EAD = IN_EAD;
}
public Double getIN_RWA() {
return IN_RWA;
}
public void setIN_RWA(Double IN_RWA) {
this.IN_RWA = IN_RWA;
}
public Double getIN_ECL() {
return IN_ECL;
}
public void setIN_ECL(Double IN_ECL) {
this.IN_ECL = IN_ECL;
}
public Double getOU_ASSET_BAL() {
return OU_ASSET_BAL;
}
public void setOU_ASSET_BAL(Double OU_ASSET_BAL) {
this.OU_ASSET_BAL = OU_ASSET_BAL;
}
public Double getOU_EAD() {
return OU_EAD;
}
public void setOU_EAD(Double OU_EAD) {
this.OU_EAD = OU_EAD;
}
public Double getOU_RWA() {
return OU_RWA;
}
public void setOU_RWA(Double OU_RWA) {
this.OU_RWA = OU_RWA;
}
public Double getOU_ECL() {
return OU_ECL;
}
public void setOU_ECL(Double OU_ECL) {
this.OU_ECL = OU_ECL;
}
public Double getCUST_PRIN() {
return CUST_PRIN;
}
public void setCUST_PRIN(Double CUST_PRIN) {
this.CUST_PRIN = CUST_PRIN;
}
public Double getCUST_EAD() {
return CUST_EAD;
}
public void setCUST_EAD(Double CUST_EAD) {
this.CUST_EAD = CUST_EAD;
}
public Double getCUST_RWA() {
return CUST_RWA;
}
public void setCUST_RWA(Double CUST_RWA) {
this.CUST_RWA = CUST_RWA;
}
public Double getCUST_ECL() {
return CUST_ECL;
}
public void setCUST_ECL(Double CUST_ECL) {
this.CUST_ECL = CUST_ECL;
}
public Double getTOTAL_EAD() {
return TOTAL_EAD;
}
public void setTOTAL_EAD(Double TOTAL_EAD) {
this.TOTAL_EAD = TOTAL_EAD;
}
public Double getTOTAL_RWA() {
return TOTAL_RWA;
}
public void setTOTAL_RWA(Double TOTAL_RWA) {
this.TOTAL_RWA = TOTAL_RWA;
}
public Double getTOTAL_WEIGHT() {
return TOTAL_WEIGHT;
}
public void setTOTAL_WEIGHT(Double TOTAL_WEIGHT) {
this.TOTAL_WEIGHT = TOTAL_WEIGHT;
}
public Double getTOTAL_ECL() {
return TOTAL_ECL;
}
public void setTOTAL_ECL(Double TOTAL_ECL) {
this.TOTAL_ECL = TOTAL_ECL;
}
public Double getLGD_AREA1_EAD() {
return LGD_AREA1_EAD;
}
public void setLGD_AREA1_EAD(Double LGD_AREA1_EAD) {
this.LGD_AREA1_EAD = LGD_AREA1_EAD;
}
public Double getLGD_AREA2_EAD() {
return LGD_AREA2_EAD;
}
public void setLGD_AREA2_EAD(Double LGD_AREA2_EAD) {
this.LGD_AREA2_EAD = LGD_AREA2_EAD;
}
public Double getLGD_AREA3_EAD() {
return LGD_AREA3_EAD;
}
public void setLGD_AREA3_EAD(Double LGD_AREA3_EAD) {
this.LGD_AREA3_EAD = LGD_AREA3_EAD;
}
public Double getLGD_AREA4_EAD() {
return LGD_AREA4_EAD;
}
public void setLGD_AREA4_EAD(Double LGD_AREA4_EAD) {
this.LGD_AREA4_EAD = LGD_AREA4_EAD;
}
public Double getLGD_AREA5_EAD() {
return LGD_AREA5_EAD;
}
public void setLGD_AREA5_EAD(Double LGD_AREA5_EAD) {
this.LGD_AREA5_EAD = LGD_AREA5_EAD;
}
public Double getLGD_AREA6_EAD() {
return LGD_AREA6_EAD;
}
public void setLGD_AREA6_EAD(Double LGD_AREA6_EAD) {
this.LGD_AREA6_EAD = LGD_AREA6_EAD;
}
public Double getLGD_AREA7_EAD() {
return LGD_AREA7_EAD;
}
public void setLGD_AREA7_EAD(Double LGD_AREA7_EAD) {
this.LGD_AREA7_EAD = LGD_AREA7_EAD;
}
public Double getLTV_AREA1_EAD() {
return LTV_AREA1_EAD;
}
public void setLTV_AREA1_EAD(Double LTV_AREA1_EAD) {
this.LTV_AREA1_EAD = LTV_AREA1_EAD;
}
public Double getLTV_AREA2_EAD() {
return LTV_AREA2_EAD;
}
public void setLTV_AREA2_EAD(Double LTV_AREA2_EAD) {
this.LTV_AREA2_EAD = LTV_AREA2_EAD;
}
public Double getLTV_AREA3_EAD() {
return LTV_AREA3_EAD;
}
public void setLTV_AREA3_EAD(Double LTV_AREA3_EAD) {
this.LTV_AREA3_EAD = LTV_AREA3_EAD;
}
public Double getLTV_AREA4_EAD() {
return LTV_AREA4_EAD;
}
public void setLTV_AREA4_EAD(Double LTV_AREA4_EAD) {
this.LTV_AREA4_EAD = LTV_AREA4_EAD;
}
public Double getLTV_AREA5_EAD() {
return LTV_AREA5_EAD;
}
public void setLTV_AREA5_EAD(Double LTV_AREA5_EAD) {
this.LTV_AREA5_EAD = LTV_AREA5_EAD;
}
public Double getLTV_AREA6_EAD() {
return LTV_AREA6_EAD;
}
public void setLTV_AREA6_EAD(Double LTV_AREA6_EAD) {
this.LTV_AREA6_EAD = LTV_AREA6_EAD;
}
public Double getLTV() {
return LTV;
}
public void setLTV(Double LTV) {
this.LTV = LTV;
}
public String getTable() {
return "RWA_RPT_G4E_4";
}
@Override
public Integer getColumnCount() {
return 42;
}
@Override
public String[] getColumnDataType() {
return new String[]{
"String","String","Integer","String","String","String","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double","Double"
};
}
}

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

Loading…
Cancel
Save