26 changed files with 3739 additions and 84 deletions
@ -0,0 +1,328 @@ |
|||
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; |
|||
|
|||
public class AccordRiskToolParamSorted extends BaseEntity { |
|||
public AccordRiskToolParamSorted(){ setColMap(); } |
|||
public AccordRiskToolParamSorted(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_SORTED"; |
|||
} |
|||
|
|||
@Override |
|||
public Integer getColumnCount() { |
|||
return 32; |
|||
} |
|||
} |
@ -0,0 +1,308 @@ |
|||
package io.sc.engine.rwa.calculator.domain; |
|||
|
|||
import io.sc.engine.rwa.calculator.support.BaseEntity; |
|||
|
|||
public class BnfxqzParam2 extends BaseEntity { |
|||
public BnfxqzParam2(){ } |
|||
public BnfxqzParam2(String[] row){ |
|||
setColumnValue(row); |
|||
} |
|||
@Override |
|||
public void setColumnValue(String[] row){ |
|||
if(row != null){ |
|||
setID(row[0]); //主键ID
|
|||
setEAD_TYPE_PRIORITY(row[1]); //风险暴露划分顺序
|
|||
setEAD_TYPE_CODE(row[2]); //风险暴露分类代码
|
|||
setEAD_TYPE_NAME(row[3]); //风险暴露分类名称
|
|||
setEAD_REPT_TYPE_NAME(row[4]); //风险暴露分类报表细分类名称
|
|||
setRISK_WEIGHT(row[5].equals("")?null:Double.valueOf(row[5])); //风险权重
|
|||
setC_PRODUCT_ID(row[6]); //产品类型判断条件(0-不等于,1-等于)
|
|||
setREGULATE_PROD_TYPE(row[7]); //监管产品类型代码
|
|||
setREGULATE_CUST_TYPE(row[8]); //监管交易对手类型代码
|
|||
setOUT_GRADE(row[9]); //外部评级
|
|||
setTERM_MIN(row[10].equals("")?null:Double.valueOf(row[10])); //期限下限
|
|||
setTERM_MAX(row[11].equals("")?null:Double.valueOf(row[11])); //期限上限
|
|||
setTERM(row[12]); //期限
|
|||
setCROSS_BORDER_TRADE_FLAG(row[13]); //跨境商品贸易标识
|
|||
setIN_STAND_GRADE(row[14]); //商业银行标准信用评估结果
|
|||
setCURRENCY_MISMATCH_FLAG(row[15]); //是否存在币种错配情形
|
|||
setLTV_MIN(row[16].equals("")?null:Double.valueOf(row[16])); //LTV下限
|
|||
setLTV_MAX(row[17].equals("")?null:Double.valueOf(row[17])); //LTV上限
|
|||
setLTV(row[18]); //LTV
|
|||
setDEFAULT_FLAG(row[19]); //违约标识
|
|||
setRESERVE_ASSET_BAL_RATE_MIN(row[20].equals("")?null:Double.valueOf(row[20])); //减值准备/资产余额下限
|
|||
setRESERVE_ASSET_BAL_RATE_MAX(row[21].equals("")?null:Double.valueOf(row[21])); //减值准备/资产余额上限
|
|||
setRESERVE_ASSET_BAL_RATE(row[22]); //减值准备/资产余额
|
|||
} |
|||
} |
|||
public String[] toArray(){ |
|||
return new String[]{ |
|||
getID(), |
|||
getEAD_TYPE_PRIORITY(), |
|||
getEAD_TYPE_CODE(), |
|||
getEAD_TYPE_NAME(), |
|||
getEAD_REPT_TYPE_NAME(), |
|||
getRISK_WEIGHT()==null?"":String.valueOf(getRISK_WEIGHT()), |
|||
getC_PRODUCT_ID(), |
|||
getREGULATE_PROD_TYPE(), |
|||
getREGULATE_CUST_TYPE(), |
|||
getOUT_GRADE(), |
|||
getTERM_MIN()==null?"":String.valueOf(getTERM_MIN()), |
|||
getTERM_MAX()==null?"":String.valueOf(getTERM_MAX()), |
|||
getTERM(), |
|||
getCROSS_BORDER_TRADE_FLAG(), |
|||
getIN_STAND_GRADE(), |
|||
getCURRENCY_MISMATCH_FLAG(), |
|||
getLTV_MIN()==null?"":String.valueOf(getLTV_MIN()), |
|||
getLTV_MAX()==null?"":String.valueOf(getLTV_MAX()), |
|||
getLTV(), |
|||
getLTV_MIN()==null?"":String.valueOf(getLTV_MIN()), |
|||
getLTV_MAX()==null?"":String.valueOf(getLTV_MAX()), |
|||
getLTV(), |
|||
getDEFAULT_FLAG(), |
|||
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() |
|||
}; |
|||
} |
|||
private String ID; //主键ID
|
|||
private String EAD_TYPE_PRIORITY; //风险暴露划分顺序
|
|||
private String EAD_TYPE_CODE; //风险暴露分类代码
|
|||
private String EAD_TYPE_NAME; //风险暴露分类名称
|
|||
private String EAD_REPT_TYPE_NAME; //风险暴露分类报表细分类名称
|
|||
private Double RISK_WEIGHT; //风险权重
|
|||
private String C_PRODUCT_ID; //产品类型判断条件(0-不等于,1-等于)
|
|||
private String REGULATE_PROD_TYPE; //监管产品类型代码
|
|||
private String REGULATE_CUST_TYPE; //监管交易对手类型代码
|
|||
private String OUT_GRADE; //外部评级
|
|||
private Double TERM_MIN; //期限下限
|
|||
private Double TERM_MAX; //期限上限
|
|||
private String TERM; //期限
|
|||
private String CROSS_BORDER_TRADE_FLAG; //跨境商品贸易标识
|
|||
private String IN_STAND_GRADE; //商业银行标准信用评估结果
|
|||
private String CURRENCY_MISMATCH_FLAG; //是否存在币种错配情形
|
|||
private Double LTV_MIN; //LTV下限
|
|||
private Double LTV_MAX; //LTV上限
|
|||
private String LTV; //LTV
|
|||
private String DEFAULT_FLAG; //违约标识
|
|||
private Double RESERVE_ASSET_BAL_RATE_MIN; //减值准备/资产余额下限
|
|||
private Double RESERVE_ASSET_BAL_RATE_MAX; //减值准备/资产余额上限
|
|||
private String RESERVE_ASSET_BAL_RATE; //减值准备/资产余额
|
|||
|
|||
public String getID() { |
|||
return ID; |
|||
} |
|||
|
|||
public String getC_PRODUCT_ID() { |
|||
return C_PRODUCT_ID; |
|||
} |
|||
|
|||
public void setC_PRODUCT_ID(String c_PRODUCT_ID) { |
|||
C_PRODUCT_ID = c_PRODUCT_ID; |
|||
} |
|||
|
|||
public String getEAD_TYPE_PRIORITY() { |
|||
return EAD_TYPE_PRIORITY; |
|||
} |
|||
|
|||
public String getEAD_TYPE_CODE() { |
|||
return EAD_TYPE_CODE; |
|||
} |
|||
|
|||
public String getEAD_TYPE_NAME() { |
|||
return EAD_TYPE_NAME; |
|||
} |
|||
|
|||
public Double getRISK_WEIGHT() { |
|||
return RISK_WEIGHT; |
|||
} |
|||
|
|||
|
|||
public String getOUT_GRADE() { |
|||
return OUT_GRADE; |
|||
} |
|||
|
|||
public String getIN_STAND_GRADE() { |
|||
return IN_STAND_GRADE; |
|||
} |
|||
|
|||
|
|||
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 getCROSS_BORDER_TRADE_FLAG() { |
|||
return CROSS_BORDER_TRADE_FLAG; |
|||
} |
|||
|
|||
|
|||
public String getTERM() { |
|||
return TERM; |
|||
} |
|||
|
|||
|
|||
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 getDEFAULT_FLAG() { |
|||
return DEFAULT_FLAG; |
|||
} |
|||
|
|||
|
|||
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_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 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 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 setCROSS_BORDER_TRADE_FLAG(String CROSS_BORDER_TRADE_FLAG) { |
|||
this.CROSS_BORDER_TRADE_FLAG = CROSS_BORDER_TRADE_FLAG; |
|||
} |
|||
|
|||
|
|||
public void setTERM(String TERM) { |
|||
this.TERM = TERM; |
|||
} |
|||
|
|||
|
|||
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 String getEAD_REPT_TYPE_NAME() { |
|||
return EAD_REPT_TYPE_NAME; |
|||
} |
|||
|
|||
public void setEAD_REPT_TYPE_NAME(String EAD_REPT_TYPE_NAME) { |
|||
this.EAD_REPT_TYPE_NAME = EAD_REPT_TYPE_NAME; |
|||
} |
|||
|
|||
public String getREGULATE_PROD_TYPE() { |
|||
return REGULATE_PROD_TYPE; |
|||
} |
|||
|
|||
public void setREGULATE_PROD_TYPE(String REGULATE_PROD_TYPE) { |
|||
this.REGULATE_PROD_TYPE = REGULATE_PROD_TYPE; |
|||
} |
|||
|
|||
public String getREGULATE_CUST_TYPE() { |
|||
return REGULATE_CUST_TYPE; |
|||
} |
|||
|
|||
public void setREGULATE_CUST_TYPE(String REGULATE_CUST_TYPE) { |
|||
this.REGULATE_CUST_TYPE = REGULATE_CUST_TYPE; |
|||
} |
|||
|
|||
public Double getTERM_MIN() { |
|||
return TERM_MIN; |
|||
} |
|||
|
|||
public void setTERM_MIN(Double TERM_MIN) { |
|||
this.TERM_MIN = TERM_MIN; |
|||
} |
|||
|
|||
public Double getTERM_MAX() { |
|||
return TERM_MAX; |
|||
} |
|||
|
|||
public void setTERM_MAX(Double TERM_MAX) { |
|||
this.TERM_MAX = TERM_MAX; |
|||
} |
|||
|
|||
public void setDEFAULT_FLAG(String DEFAULT_FLAG) { |
|||
this.DEFAULT_FLAG = DEFAULT_FLAG; |
|||
} |
|||
|
|||
|
|||
public String getTable() { |
|||
return "RWA_P_BNFXQZ_CTL2"; |
|||
} |
|||
|
|||
@Override |
|||
public Integer getColumnCount() { |
|||
return 43; |
|||
} |
|||
|
|||
@Override |
|||
public String getFieldVal(String column) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public int getIndex(String column) { |
|||
return 0; |
|||
} |
|||
} |
@ -0,0 +1,111 @@ |
|||
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-05 |
|||
*/ |
|||
public class RegulateProductCls extends BaseEntity { |
|||
public RegulateProductCls(){ setColMap(); } |
|||
public RegulateProductCls(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]); //债项编号
|
|||
setREGULATE_PRODUCT_CD(row[3]); //产品代码
|
|||
setREGULATE_PRODUCT_NM(row[4]); //产品名称
|
|||
} |
|||
} |
|||
|
|||
@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 REGULATE_PRODUCT_CD; //产品代码
|
|||
private String REGULATE_PRODUCT_NM; //产品名称
|
|||
|
|||
public String getDEBT_ID() { |
|||
return DEBT_ID; |
|||
} |
|||
|
|||
public void setDEBT_ID(String DEBT_ID) { |
|||
this.DEBT_ID = DEBT_ID; |
|||
} |
|||
|
|||
public String getREGULATE_PRODUCT_CD() { |
|||
return REGULATE_PRODUCT_CD; |
|||
} |
|||
|
|||
public void setREGULATE_PRODUCT_CD(String REGULATE_PRODUCT_CD) { |
|||
this.REGULATE_PRODUCT_CD = REGULATE_PRODUCT_CD; |
|||
} |
|||
|
|||
public String getREGULATE_PRODUCT_NM() { |
|||
return REGULATE_PRODUCT_NM; |
|||
} |
|||
|
|||
public void setREGULATE_PRODUCT_NM(String REGULATE_PRODUCT_NM) { |
|||
this.REGULATE_PRODUCT_NM = REGULATE_PRODUCT_NM; |
|||
} |
|||
|
|||
private void setColMap(){ |
|||
colMap = new HashMap(); |
|||
colMap.put("ID",0); |
|||
colMap.put("DATA_DT",1); |
|||
colMap.put("DEBT_ID",2); |
|||
colMap.put("REGULATE_PRODUCT_CD",3); |
|||
colMap.put("REGULATE_PRODUCT_NM",4); |
|||
} |
|||
|
|||
public String getID() { |
|||
return ID; |
|||
} |
|||
|
|||
public void setID(String ID) { |
|||
this.ID = ID; |
|||
} |
|||
|
|||
public String getTable() { |
|||
return "RWA_C_REGULATE_PRODUCT"; |
|||
} |
|||
|
|||
@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; |
|||
} |
|||
|
|||
} |
@ -0,0 +1,307 @@ |
|||
package io.sc.engine.rwa.calculator.domain; |
|||
|
|||
import io.sc.engine.rwa.calculator.support.BaseEntity; |
|||
|
|||
/** |
|||
* 监管产品映射规则 |
|||
*/ |
|||
public class RegulateProductMappingRule extends BaseEntity { |
|||
public RegulateProductMappingRule(){ } |
|||
public RegulateProductMappingRule(String[] row){ |
|||
setColumnValue(row); |
|||
} |
|||
@Override |
|||
public void setColumnValue(String[] row){ |
|||
if(row != null){ |
|||
setID(row[0]); |
|||
setRP_CODE(row[1]); |
|||
setRP_NAME(row[2]); |
|||
setPRODUCT_CODE(row[3]); |
|||
setPRODUCT_NAME(row[4]); |
|||
setBUY_BAD_LOAN_BOND_FLA(row[5]); |
|||
setLOCAL_GOV_BOND_TYPE(row[6]); |
|||
setREAL_ESTATE_DEP_TYPE(row[7]); |
|||
setDOC_REQUIR(row[8]); |
|||
setREAL_ESTATE_INIT_TYPE(row[9]); |
|||
setREAL_ESTATE_FINAL_TYPE(row[10]); |
|||
setHOUSE_CASH_FLAG(row[11]); |
|||
setIS_PRU_APPR_STAN(row[12]); |
|||
setREAL_ESTATE_FLAG(row[13]); |
|||
setREAL_ESTATE_SELF_USE_FLAG(row[14]); |
|||
setLEGAL_DISPOSAL_UNSELF_RE_FLAG(row[15]); |
|||
setENQUITY_INVESTMENT_ATTR(row[16]); |
|||
setJUNIOR_DEBT_FLAG(row[17]); |
|||
setCOVER_BOND_FLG(row[18]); |
|||
setACCEPT_DISCOUNT_SELF_FLAG(row[19]); |
|||
setNO_USED_LMT_FLAG(row[20]); |
|||
setOFF_BALANCE_RWA(row[21]); |
|||
setCANCEL_FLAG(row[22]); |
|||
setSELF_OPEN_CREDIT_FLAG(row[23]); |
|||
setSPE_LENDING_TYPE(row[24]); |
|||
setOPERATION_PF_FLAG(row[25]); |
|||
setIN_CREDIT_FLAG(row[26]); |
|||
} |
|||
} |
|||
private String ID; //主键ID
|
|||
private String RP_CODE; //监管产品代码
|
|||
private String RP_NAME; //监管产品名称
|
|||
private String PRODUCT_CODE; //产品代码
|
|||
private String PRODUCT_NAME; //产品名称
|
|||
private String BUY_BAD_LOAN_BOND_FLA; //为收购国有银行不良贷款而定向发行的债券
|
|||
private String LOCAL_GOV_BOND_TYPE; //地方政府债债券类型
|
|||
private String REAL_ESTATE_DEP_TYPE; //房地产风险暴露类型
|
|||
private String DOC_REQUIR; //房地产开发贷款符合监管条件
|
|||
private String REAL_ESTATE_INIT_TYPE; //房地产抵押贷款属性初分类
|
|||
private String REAL_ESTATE_FINAL_TYPE; //房地产抵押贷款属性终分类(经LTV计算后分类结果)
|
|||
private String HOUSE_CASH_FLAG; //还款实质是否依赖于房地产所产生的现金流
|
|||
private String IS_PRU_APPR_STAN; //是否审慎的房地产贷款审批标准
|
|||
private String REAL_ESTATE_FLAG; //是否为不动产
|
|||
private String REAL_ESTATE_SELF_USE_FLAG; //不动产是否自用
|
|||
private String LEGAL_DISPOSAL_UNSELF_RE_FLAG; //是否为因行使抵押权等方式而持有并在法律规定处分期限内的非自用不动产
|
|||
private String ENQUITY_INVESTMENT_ATTR; //股权投资属性
|
|||
private String JUNIOR_DEBT_FLAG; //次级债标识
|
|||
private String COVER_BOND_FLG; //合格资产担保债券标识
|
|||
private String ACCEPT_DISCOUNT_SELF_FLAG; //自承自贴标识
|
|||
private String NO_USED_LMT_FLAG; //符合标准的未使用额度标识
|
|||
private String OFF_BALANCE_RWA; //可免于计量表外项目风险加权资产
|
|||
private String CANCEL_FLAG; //可随时无条件撤销的贷款承诺
|
|||
private String SELF_OPEN_CREDIT_FLAG; //自开信用证标志
|
|||
private String SPE_LENDING_TYPE; //专业贷款分类
|
|||
private String OPERATION_PF_FLAG; //项目融资运营阶段标识
|
|||
private String IN_CREDIT_FLAG; //国内信用证标志
|
|||
|
|||
public String getID() { |
|||
return ID; |
|||
} |
|||
|
|||
public void setID(String ID) { |
|||
this.ID = ID; |
|||
} |
|||
|
|||
public String getRP_CODE() { |
|||
return RP_CODE; |
|||
} |
|||
|
|||
public void setRP_CODE(String RP_CODE) { |
|||
this.RP_CODE = RP_CODE; |
|||
} |
|||
|
|||
public String getRP_NAME() { |
|||
return RP_NAME; |
|||
} |
|||
|
|||
public void setRP_NAME(String RP_NAME) { |
|||
this.RP_NAME = RP_NAME; |
|||
} |
|||
|
|||
public String getPRODUCT_CODE() { |
|||
return PRODUCT_CODE; |
|||
} |
|||
|
|||
public void setPRODUCT_CODE(String PRODUCT_CODE) { |
|||
this.PRODUCT_CODE = PRODUCT_CODE; |
|||
} |
|||
|
|||
public String getPRODUCT_NAME() { |
|||
return PRODUCT_NAME; |
|||
} |
|||
|
|||
public void setPRODUCT_NAME(String PRODUCT_NAME) { |
|||
this.PRODUCT_NAME = PRODUCT_NAME; |
|||
} |
|||
|
|||
public String getBUY_BAD_LOAN_BOND_FLA() { |
|||
return BUY_BAD_LOAN_BOND_FLA; |
|||
} |
|||
|
|||
public void setBUY_BAD_LOAN_BOND_FLA(String BUY_BAD_LOAN_BOND_FLA) { |
|||
this.BUY_BAD_LOAN_BOND_FLA = BUY_BAD_LOAN_BOND_FLA; |
|||
} |
|||
|
|||
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 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 getDOC_REQUIR() { |
|||
return DOC_REQUIR; |
|||
} |
|||
|
|||
public void setDOC_REQUIR(String DOC_REQUIR) { |
|||
this.DOC_REQUIR = DOC_REQUIR; |
|||
} |
|||
|
|||
public String getREAL_ESTATE_INIT_TYPE() { |
|||
return REAL_ESTATE_INIT_TYPE; |
|||
} |
|||
|
|||
public void setREAL_ESTATE_INIT_TYPE(String REAL_ESTATE_INIT_TYPE) { |
|||
this.REAL_ESTATE_INIT_TYPE = REAL_ESTATE_INIT_TYPE; |
|||
} |
|||
|
|||
public String getREAL_ESTATE_FINAL_TYPE() { |
|||
return REAL_ESTATE_FINAL_TYPE; |
|||
} |
|||
|
|||
public void setREAL_ESTATE_FINAL_TYPE(String REAL_ESTATE_FINAL_TYPE) { |
|||
this.REAL_ESTATE_FINAL_TYPE = REAL_ESTATE_FINAL_TYPE; |
|||
} |
|||
|
|||
public String getHOUSE_CASH_FLAG() { |
|||
return HOUSE_CASH_FLAG; |
|||
} |
|||
|
|||
public void setHOUSE_CASH_FLAG(String HOUSE_CASH_FLAG) { |
|||
this.HOUSE_CASH_FLAG = HOUSE_CASH_FLAG; |
|||
} |
|||
|
|||
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 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 getREAL_ESTATE_SELF_USE_FLAG() { |
|||
return REAL_ESTATE_SELF_USE_FLAG; |
|||
} |
|||
|
|||
public void setREAL_ESTATE_SELF_USE_FLAG(String REAL_ESTATE_SELF_USE_FLAG) { |
|||
this.REAL_ESTATE_SELF_USE_FLAG = REAL_ESTATE_SELF_USE_FLAG; |
|||
} |
|||
|
|||
public String getLEGAL_DISPOSAL_UNSELF_RE_FLAG() { |
|||
return LEGAL_DISPOSAL_UNSELF_RE_FLAG; |
|||
} |
|||
|
|||
public void setLEGAL_DISPOSAL_UNSELF_RE_FLAG(String LEGAL_DISPOSAL_UNSELF_RE_FLAG) { |
|||
this.LEGAL_DISPOSAL_UNSELF_RE_FLAG = LEGAL_DISPOSAL_UNSELF_RE_FLAG; |
|||
} |
|||
|
|||
public String getENQUITY_INVESTMENT_ATTR() { |
|||
return ENQUITY_INVESTMENT_ATTR; |
|||
} |
|||
|
|||
public void setENQUITY_INVESTMENT_ATTR(String ENQUITY_INVESTMENT_ATTR) { |
|||
this.ENQUITY_INVESTMENT_ATTR = ENQUITY_INVESTMENT_ATTR; |
|||
} |
|||
|
|||
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; |
|||
} |
|||
|
|||
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 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 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 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 getSELF_OPEN_CREDIT_FLAG() { |
|||
return SELF_OPEN_CREDIT_FLAG; |
|||
} |
|||
|
|||
public void setSELF_OPEN_CREDIT_FLAG(String SELF_OPEN_CREDIT_FLAG) { |
|||
this.SELF_OPEN_CREDIT_FLAG = SELF_OPEN_CREDIT_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 getIN_CREDIT_FLAG() { |
|||
return IN_CREDIT_FLAG; |
|||
} |
|||
|
|||
public void setIN_CREDIT_FLAG(String IN_CREDIT_FLAG) { |
|||
this.IN_CREDIT_FLAG = IN_CREDIT_FLAG; |
|||
} |
|||
|
|||
public String getTable() { |
|||
return "RWA_P_REGULATE_PROD_RULE"; |
|||
} |
|||
|
|||
@Override |
|||
public Integer getColumnCount() { |
|||
return 33; |
|||
} |
|||
|
|||
@Override |
|||
public String getFieldVal(String column) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public int getIndex(String column) { |
|||
return 0; |
|||
} |
|||
} |
@ -0,0 +1,103 @@ |
|||
package io.sc.engine.rwa.calculator.domain; |
|||
|
|||
import io.sc.engine.rwa.calculator.support.BaseEntity; |
|||
|
|||
public class RegulateProductRuleDtl extends BaseEntity { |
|||
public RegulateProductRuleDtl(){ } |
|||
public RegulateProductRuleDtl(String[] row){ |
|||
setColumnValue(row); |
|||
} |
|||
public void setColumnValue(String[] row) { |
|||
if (row != null) { |
|||
setID(row[0]); |
|||
setMAIN_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 MAIN_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 getMAIN_ID() { |
|||
return MAIN_ID; |
|||
} |
|||
|
|||
public void setMAIN_ID(String MAIN_ID) { |
|||
this.MAIN_ID = MAIN_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_REGULATE_PRODUCT_RULE_DTL"; |
|||
} |
|||
|
|||
@Override |
|||
public Integer getColumnCount() { |
|||
return 13; |
|||
} |
|||
} |
@ -0,0 +1,77 @@ |
|||
package io.sc.engine.rwa.calculator.domain; |
|||
|
|||
import io.sc.engine.rwa.calculator.support.BaseEntity; |
|||
|
|||
import java.util.HashMap; |
|||
|
|||
public class RegulateProductRuleMain extends BaseEntity { |
|||
public RegulateProductRuleMain(){ setColMap(); } |
|||
public RegulateProductRuleMain(String[] row){ |
|||
setColumnValue(row); |
|||
} |
|||
public void setColumnValue(String[] row) { |
|||
if (row != null) { |
|||
setID(row[0]); |
|||
setREGULATE_PRODUCT_CODE(row[1]); |
|||
setREGULATE_PRODUCT_NAME(row[2]); |
|||
} |
|||
} |
|||
public String pass2String(){ |
|||
StringBuffer sf = new StringBuffer(); |
|||
sf.append(this.ID).append(","); |
|||
sf.append(this.REGULATE_PRODUCT_CODE).append(","); |
|||
sf.append(this.REGULATE_PRODUCT_NAME); |
|||
return sf.toString(); |
|||
} |
|||
private void setColMap() { |
|||
colMap = new HashMap(); |
|||
colMap.put("ID", 0); |
|||
colMap.put("REGULATE_PRODUCT_CODE", 1); |
|||
colMap.put("REGULATE_PRODUCT_NAME", 2); |
|||
} |
|||
@Override |
|||
public String getFieldVal(String column) { |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public int getIndex(String column) { |
|||
return 0; |
|||
} |
|||
|
|||
private String ID; //主键
|
|||
private String REGULATE_PRODUCT_CODE; //监管产品类型
|
|||
private String REGULATE_PRODUCT_NAME; //监管产品类型名称
|
|||
public String getID() { |
|||
return ID; |
|||
} |
|||
|
|||
public void setID(String ID) { |
|||
this.ID = ID; |
|||
} |
|||
|
|||
public String getREGULATE_PRODUCT_CODE() { |
|||
return REGULATE_PRODUCT_CODE; |
|||
} |
|||
|
|||
public void setREGULATE_PRODUCT_CODE(String REGULATE_PRODUCT_CODE) { |
|||
this.REGULATE_PRODUCT_CODE = REGULATE_PRODUCT_CODE; |
|||
} |
|||
|
|||
public String getREGULATE_PRODUCT_NAME() { |
|||
return REGULATE_PRODUCT_NAME; |
|||
} |
|||
|
|||
public void setREGULATE_PRODUCT_NAME(String REGULATE_PRODUCT_NAME) { |
|||
this.REGULATE_PRODUCT_NAME = REGULATE_PRODUCT_NAME; |
|||
} |
|||
|
|||
public String getTable() { |
|||
return "RWA_P_REGULATE_PRODUCT_RULE_MAIN"; |
|||
} |
|||
|
|||
@Override |
|||
public Integer getColumnCount() { |
|||
return 13; |
|||
} |
|||
} |
@ -0,0 +1,203 @@ |
|||
package io.sc.engine.rwa.calculator.step; |
|||
|
|||
import io.sc.engine.rwa.calculator.cache.impl.RocksDbCache; |
|||
import io.sc.engine.rwa.calculator.domain.*; |
|||
import io.sc.engine.rwa.calculator.enums.IntervalType; |
|||
import io.sc.engine.rwa.calculator.support.BaseEntity; |
|||
import io.sc.engine.rwa.calculator.support.TableMappingColumns; |
|||
import io.sc.engine.rwa.calculator.utils.ArrayUtil; |
|||
import io.sc.engine.rwa.calculator.utils.CsvUtil; |
|||
import io.sc.engine.rwa.calculator.utils.DateUtil; |
|||
import io.sc.engine.rwa.calculator.utils.FuncUtil; |
|||
import io.sc.platform.util.StringUtil; |
|||
import io.sc.platform.util.TimeMonitor; |
|||
import org.slf4j.Logger; |
|||
import org.slf4j.LoggerFactory; |
|||
|
|||
import java.io.BufferedWriter; |
|||
import java.text.MessageFormat; |
|||
import java.util.HashMap; |
|||
import java.util.Iterator; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
import java.util.stream.Collectors; |
|||
|
|||
/** |
|||
* 判断监管产品类型 |
|||
*/ |
|||
public class Step01 { |
|||
private static final Logger log = LoggerFactory.getLogger(Step01.class); |
|||
private ParamCache paramCache; |
|||
private RocksDbCache cache; |
|||
private BufferedWriter writer; |
|||
private Map<String, String[]> mappingTableCache = new HashMap<>(); |
|||
public Map<String, String[]> getMappingTableCache() { |
|||
return mappingTableCache; |
|||
} |
|||
|
|||
public void setCache(RocksDbCache cache) { |
|||
this.cache = cache; |
|||
} |
|||
public void setParamCache(ParamCache paramCache) { |
|||
this.paramCache = paramCache; |
|||
} |
|||
|
|||
public RocksDbCache getCache() { |
|||
return cache; |
|||
} |
|||
|
|||
public Step01(RocksDbCache cache, ParamCache paramCache){ |
|||
this.cache = cache; |
|||
this.paramCache = paramCache; |
|||
} |
|||
|
|||
public void exec() throws Exception { |
|||
long start = System.currentTimeMillis(); |
|||
TimeMonitor tm = new TimeMonitor(); |
|||
int count = 1; |
|||
//从csv逐行读取债项信息
|
|||
DebtRiskParam t = new DebtRiskParam(); |
|||
Iterator<String[]> iterator = CsvUtil.readData(t.getTable()); |
|||
writer = CsvUtil.getWriter("RWA_R_REGULATE_PRODUCT_RES", false); |
|||
while (iterator.hasNext()) { |
|||
String[] row = iterator.next(); |
|||
DebtRiskParam drp = new DebtRiskParam(row); |
|||
RegulateProductRuleMain ruleMain = regRegulateProduct(drp.getTable(), row); |
|||
if(count%100000 == 0){ |
|||
tm.info("监管产品类型识别:------"); |
|||
} |
|||
count ++; |
|||
if(ruleMain != null) { |
|||
cache.put("RegulateProd_" + drp.getDEBT_ID(), ruleMain.pass2String()); |
|||
writer.write(ruleMain.pass2String() + "\n"); |
|||
writer.flush(); |
|||
} |
|||
} |
|||
long end = System.currentTimeMillis(); |
|||
long posttime = (end-start)/1000; |
|||
log.info(MessageFormat.format("监管产品类型识别完成,总耗时{0}秒", posttime)); |
|||
} |
|||
|
|||
/** |
|||
* 识别监管产品类型 |
|||
* @param row |
|||
* @return |
|||
*/ |
|||
private RegulateProductRuleMain regRegulateProduct(String table, String[] row) throws Exception { |
|||
//从内存中查询识别规则
|
|||
List<RegulateProductRuleMain> list = paramCache.getRegulateProductTypeList(); |
|||
for(RegulateProductRuleMain m : list){ |
|||
//取规则明细
|
|||
List<RegulateProductRuleDtl> ruleDtls = paramCache.getRegulateProductRuleDtlMap().get(m.getID()); |
|||
if(ruleDtls != null){ |
|||
Boolean bol = true; |
|||
for(RegulateProductRuleDtl d : ruleDtls){ |
|||
if("1".equals(d.getIS_EMPTY_RULE())){ |
|||
continue; |
|||
} |
|||
String ruleval = TableMappingColumns.getByRowColumn(row, table, d.getRULE_NAME()); |
|||
String matchval = d.getRULE_DATA(); |
|||
if(StringUtil.isNullOrEmpty(ruleval)){//若字段值为空,则默认不匹配
|
|||
bol = false; |
|||
break; |
|||
} |
|||
if("1".equals(d.getRULE_DATA_TP())){//字符串
|
|||
if("10".equals(d.getMATCH_TP())){//等于
|
|||
if(ruleval != null && matchval!= null && !ruleval.equals(matchval)){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
}else if("20".equals(d.getMATCH_TP())){//不等于
|
|||
if(ruleval != null && matchval!= null && ruleval.equals(matchval)){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
}else if("11".equals(d.getMATCH_TP())){//以..开头
|
|||
if(ruleval != null && matchval!= null && !ruleval.startsWith(matchval)){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
}else if("21".equals(d.getMATCH_TP())){//不以..开头
|
|||
if(ruleval != null && matchval!= null && ruleval.startsWith(matchval)){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
} |
|||
}else if("2".equals(d.getRULE_DATA_TP())){//数值
|
|||
if("10".equals(d.getMATCH_TP())){//等于
|
|||
if(ruleval != null && matchval!= null && Double.valueOf(ruleval) != Double.valueOf(matchval)){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
}else if("20".equals(d.getMATCH_TP())){//不等于
|
|||
if(ruleval != null && matchval!= null && Double.valueOf(ruleval) == Double.valueOf(matchval)){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
}else if("30".equals(d.getMATCH_TP())){//大于
|
|||
if(ruleval != null && matchval!= null && Double.valueOf(ruleval) <= Double.valueOf(matchval)){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
}else if("31".equals(d.getMATCH_TP())){//大于等于
|
|||
if(ruleval != null && matchval!= null && Double.valueOf(ruleval) < Double.valueOf(matchval)){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
}else if("40".equals(d.getMATCH_TP())){//小于
|
|||
if(ruleval != null && matchval!= null && Double.valueOf(ruleval) > Double.valueOf(matchval)){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
}else if("41".equals(d.getMATCH_TP())){//小于等于
|
|||
if(ruleval != null && matchval!= null && Double.valueOf(ruleval) >= Double.valueOf(matchval)){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
} |
|||
}else if("3".equals(d.getRULE_DATA_TP())){//日期值
|
|||
if("10".equals(d.getMATCH_TP())){//等于
|
|||
if(ruleval != null && matchval!= null && Double.valueOf(ruleval) != Double.valueOf(matchval)){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
}else if("20".equals(d.getMATCH_TP())){//不等于
|
|||
if(ruleval != null && matchval!= null && Double.valueOf(ruleval) == Double.valueOf(matchval)){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
}else if("30".equals(d.getMATCH_TP())){//大于
|
|||
int compare = DateUtil.compareDate(ruleval, matchval); |
|||
if(compare <= 0){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
}else if("31".equals(d.getMATCH_TP())){//大于等于
|
|||
int compare = DateUtil.compareDate(ruleval, matchval); |
|||
if(compare < 0){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
}else if("40".equals(d.getMATCH_TP())){//小于
|
|||
int compare = DateUtil.compareDate(ruleval, matchval); |
|||
if(compare >= 0){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
}else if("41".equals(d.getMATCH_TP())){//小于等于
|
|||
int compare = DateUtil.compareDate(ruleval, matchval); |
|||
if(compare > 0){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
if(bol){ |
|||
return m; |
|||
} |
|||
} |
|||
} |
|||
return null; |
|||
} |
|||
} |
@ -0,0 +1,326 @@ |
|||
package io.sc.engine.rwa.calculator.step; |
|||
|
|||
import io.sc.engine.rwa.calculator.RWATestDataGenerator; |
|||
import io.sc.engine.rwa.calculator.cache.impl.RocksDbCache; |
|||
import io.sc.engine.rwa.calculator.domain.DebtRiskClsResult; |
|||
import io.sc.engine.rwa.calculator.domain.DebtRiskParam; |
|||
import io.sc.engine.rwa.calculator.domain.ParamRuleDtl; |
|||
import io.sc.engine.rwa.calculator.domain.ParamRuleMain; |
|||
import io.sc.engine.rwa.calculator.support.TableMappingColumns; |
|||
import io.sc.engine.rwa.calculator.utils.CsvUtil; |
|||
import io.sc.engine.rwa.calculator.utils.DateUtil; |
|||
import io.sc.platform.util.StringUtil; |
|||
import io.sc.platform.util.TimeMonitor; |
|||
import org.slf4j.Logger; |
|||
import org.slf4j.LoggerFactory; |
|||
|
|||
import java.io.BufferedWriter; |
|||
import java.text.MessageFormat; |
|||
import java.util.Iterator; |
|||
import java.util.List; |
|||
import java.util.stream.Collectors; |
|||
|
|||
/** |
|||
* 所有债项匹配表内风险暴露参数表,标记债项的风险暴露类型和权重 |
|||
*/ |
|||
public class Step02 extends RWATestDataGenerator { |
|||
private static final Logger log = LoggerFactory.getLogger(Step02.class); |
|||
private ParamCache paramCache; |
|||
private RocksDbCache cache; |
|||
|
|||
private BufferedWriter writer; |
|||
|
|||
public RocksDbCache getCache() { |
|||
return cache; |
|||
} |
|||
|
|||
public void setCache(RocksDbCache cache) { |
|||
this.cache = cache; |
|||
} |
|||
|
|||
public void setParamCache(ParamCache paramCache) { |
|||
this.paramCache = paramCache; |
|||
} |
|||
|
|||
public Step02(RocksDbCache cache, ParamCache paramCache){ |
|||
this.cache = cache; |
|||
this.paramCache = paramCache; |
|||
} |
|||
|
|||
public void exec() throws Exception { |
|||
long start = System.currentTimeMillis(); |
|||
TimeMonitor tm =new TimeMonitor(); |
|||
int count = 1; |
|||
writer = CsvUtil.getWriter("RWA_R_RISK_EXPO_CLS_RES", false); |
|||
//从csv逐行读取债项信息
|
|||
DebtRiskParam t = new DebtRiskParam(); |
|||
Iterator<String[]> iterator = CsvUtil.readData(t.getTable()); |
|||
while(iterator.hasNext()) { |
|||
String[] row = iterator.next(); |
|||
DebtRiskParam drp = new DebtRiskParam(row); |
|||
String[] cacheRow = ((String) cache.get("RegulateProd_" + drp.getDEBT_ID())).split(","); |
|||
String regulate_prod = TableMappingColumns.getByRowColumn(cacheRow, "RWA_P_REGULATE_PRODUCT_RULE_MAIN", "REGULATE_PRODUCT_CODE"); |
|||
drp.setPRODUCT_CD(regulate_prod); |
|||
ParamRuleMain ruleMain = regRiskExpo("1001", drp.getTable(), drp.parse2Array());//表内业务
|
|||
DebtRiskClsResult drcr = null; |
|||
if(ruleMain != null) { |
|||
drcr = newDebtRiskClsResult(ruleMain, drp); |
|||
}else{ |
|||
drcr = newDebtRiskClsResultDefault(drp); |
|||
} |
|||
//识别表外业务的风险暴露
|
|||
if("O".equals(drp.getON_OFF_FLAG())) {//表外业务
|
|||
ruleMain = regRiskExpo("2", drp.getTable(), row); |
|||
if(ruleMain != null) { |
|||
drcr = updateDebtRiskClsResult(ruleMain, drcr); |
|||
}else { |
|||
drcr = updateDebtRiskClsResultDefault(drcr); |
|||
} |
|||
} |
|||
if(count%100000 == 0){ |
|||
tm.info("表内业务和表外业务风险暴露分类识别:------"); |
|||
} |
|||
count ++; |
|||
//保存债项的金额
|
|||
cache.put("riskcls_" + drp.getDEBT_ID(), drcr.pass2String()); |
|||
cache.put("relatoolids_" + drp.getDEBT_ID(), ""); |
|||
writer.write(drcr.pass2String() + "\n"); |
|||
writer.flush(); |
|||
} |
|||
// writer.close();
|
|||
long end = System.currentTimeMillis(); |
|||
long posttime = (end-start)/1000; |
|||
log.info(MessageFormat.format("表内业务和表外业务风险暴露分类识别完成,总耗时{0}秒", posttime)); |
|||
} |
|||
/** |
|||
* 识别债项风险暴露类型 |
|||
* @param riskType |
|||
* @param row |
|||
* @return |
|||
*/ |
|||
private ParamRuleMain regRiskExpo(String riskType, String table, String[] row) throws Exception { |
|||
//从内存中查询表内风险暴露分类规则
|
|||
List<ParamRuleMain> list = paramCache.getExpoRuleMainList().stream().filter(m->m.getEXPO_TP().equals(riskType)).collect(Collectors.toList()); |
|||
for(ParamRuleMain m : list){ |
|||
//取规则明细
|
|||
List<ParamRuleDtl> ruleDtls = paramCache.getExpoRuleDtlMap().get(m.getID()); |
|||
if(ruleDtls != null){ |
|||
Boolean bol = true; |
|||
for(ParamRuleDtl d : ruleDtls){ |
|||
if("1".equals(d.getIS_EMPTY_RULE())){ |
|||
continue; |
|||
} |
|||
String ruleval = TableMappingColumns.getByRowColumn(row, table, d.getRULE_NAME()); |
|||
String matchval = d.getRULE_DATA(); |
|||
if(StringUtil.isNullOrEmpty(ruleval)){//若字段值为空,则默认不匹配
|
|||
bol = false; |
|||
break; |
|||
} |
|||
if("1".equals(d.getRULE_DATA_TP())){//字符串
|
|||
if("10".equals(d.getMATCH_TP())){//等于
|
|||
if(ruleval != null && matchval!= null && !ruleval.equals(matchval)){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
}else if("20".equals(d.getMATCH_TP())){//不等于
|
|||
if(ruleval != null && matchval!= null && ruleval.equals(matchval)){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
}else if("11".equals(d.getMATCH_TP())){//以..开头
|
|||
if(ruleval != null && matchval!= null && !ruleval.startsWith(matchval)){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
}else if("21".equals(d.getMATCH_TP())){//不以..开头
|
|||
if(ruleval != null && matchval!= null && ruleval.startsWith(matchval)){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
} |
|||
}else if("2".equals(d.getRULE_DATA_TP())){//数值
|
|||
if("10".equals(d.getMATCH_TP())){//等于
|
|||
if(ruleval != null && matchval!= null && Double.valueOf(ruleval) != Double.valueOf(matchval)){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
}else if("20".equals(d.getMATCH_TP())){//不等于
|
|||
if(ruleval != null && matchval!= null && Double.valueOf(ruleval) == Double.valueOf(matchval)){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
}else if("30".equals(d.getMATCH_TP())){//大于
|
|||
if(ruleval != null && matchval!= null && Double.valueOf(ruleval) <= Double.valueOf(matchval)){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
}else if("31".equals(d.getMATCH_TP())){//大于等于
|
|||
if(ruleval != null && matchval!= null && Double.valueOf(ruleval) < Double.valueOf(matchval)){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
}else if("40".equals(d.getMATCH_TP())){//小于
|
|||
if(ruleval != null && matchval!= null && Double.valueOf(ruleval) > Double.valueOf(matchval)){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
}else if("41".equals(d.getMATCH_TP())){//小于等于
|
|||
if(ruleval != null && matchval!= null && Double.valueOf(ruleval) >= Double.valueOf(matchval)){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
} |
|||
}else if("3".equals(d.getRULE_DATA_TP())){//日期值
|
|||
if("10".equals(d.getMATCH_TP())){//等于
|
|||
if(ruleval != null && matchval!= null && Double.valueOf(ruleval) != Double.valueOf(matchval)){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
}else if("20".equals(d.getMATCH_TP())){//不等于
|
|||
if(ruleval != null && matchval!= null && Double.valueOf(ruleval) == Double.valueOf(matchval)){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
}else if("30".equals(d.getMATCH_TP())){//大于
|
|||
int compare = DateUtil.compareDate(ruleval, matchval); |
|||
if(compare <= 0){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
}else if("31".equals(d.getMATCH_TP())){//大于等于
|
|||
int compare = DateUtil.compareDate(ruleval, matchval); |
|||
if(compare < 0){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
}else if("40".equals(d.getMATCH_TP())){//小于
|
|||
int compare = DateUtil.compareDate(ruleval, matchval); |
|||
if(compare >= 0){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
}else if("41".equals(d.getMATCH_TP())){//小于等于
|
|||
int compare = DateUtil.compareDate(ruleval, matchval); |
|||
if(compare > 0){ |
|||
bol = false; |
|||
break; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
if(bol){ |
|||
return m; |
|||
} |
|||
} |
|||
} |
|||
return null; |
|||
} |
|||
|
|||
private String[] getDebtRiskCls(ParamRuleMain ruleMain, DebtRiskParam drp){ |
|||
return new String[]{ |
|||
drp.getDATA_DT(), |
|||
drp.getDEBT_ID(), |
|||
drp.getON_OFF_FLAG(), |
|||
ruleMain.getEXPO_CODE(), |
|||
ruleMain.getEXPO_NAME(), |
|||
ruleMain.getSORT_NO(), |
|||
ruleMain.getEXPO_WEIGHT(), |
|||
String.valueOf(drp.getEXPO_AS_DEF()), |
|||
String.valueOf(drp.getPROVISION()), |
|||
"", |
|||
String.valueOf(drp.getEXPO_AS_DEF() - drp.getPROVISION()), |
|||
"", |
|||
String.valueOf(drp.getEXPO_AS_DEF()) |
|||
}; |
|||
} |
|||
private String[] getDebtRiskClsDef(ParamRuleMain ruleMain, DebtRiskParam drp){ |
|||
return new String[]{ |
|||
drp.getDATA_DT(), |
|||
drp.getDEBT_ID(), |
|||
drp.getON_OFF_FLAG(), |
|||
"OTHER_ASSETS", |
|||
"其他", |
|||
"19.2其他表内资产", |
|||
"1.0", |
|||
String.valueOf(drp.getEXPO_AS_DEF()), |
|||
String.valueOf(drp.getPROVISION()), |
|||
"", |
|||
String.valueOf(drp.getEXPO_AS_DEF() - drp.getPROVISION()), |
|||
"", |
|||
String.valueOf(drp.getEXPO_AS_DEF()) |
|||
}; |
|||
} |
|||
|
|||
private DebtRiskClsResult newDebtRiskClsResult(ParamRuleMain ruleMain, DebtRiskParam drp){ |
|||
DebtRiskClsResult domain = new DebtRiskClsResult(); |
|||
domain.setID(drp.getID()); |
|||
domain.setDATA_DT(drp.getDATA_DT()); |
|||
domain.setDEBT_ID(drp.getDEBT_ID()); |
|||
domain.setON_OFF_FLAG(drp.getON_OFF_FLAG()); |
|||
domain.setEAD_TYPE_CODE(ruleMain.getEXPO_TP_CODE()); |
|||
domain.setEAD_TYPE_NAME(ruleMain.getEXPO_TP_NAME()); |
|||
domain.setEAD_TYPE_NUMBER(ruleMain.getEXPO_NAME()); |
|||
domain.setRISK_WEIGHT(Double.valueOf(ruleMain.getEXPO_WEIGHT())); |
|||
domain.setASSET_AMT(drp.getEXPO_AS_DEF()); |
|||
domain.setRESERVE(drp.getPROVISION()); |
|||
domain.setCCF(null); |
|||
domain.setEAD_WEIGHT(drp.getEXPO_AS_DEF() - drp.getPROVISION()); |
|||
domain.setEAD0_WEIGHT(null); |
|||
domain.setSURPLUS_VALUE(drp.getEXPO_AS_DEF()); |
|||
domain.setCUST_NO(drp.getCUST_NO()); |
|||
domain.setCUST_NAME(drp.getCUST_NAME()); |
|||
return domain; |
|||
} |
|||
|
|||
/** |
|||
* 对未匹配到风险暴露类型的债项,指定兜底的风险暴露类型:19.3.12适用100%风险权重的资产 |
|||
* @param drp |
|||
* @return |
|||
*/ |
|||
private DebtRiskClsResult newDebtRiskClsResultDefault(DebtRiskParam drp){ |
|||
DebtRiskClsResult domain = new DebtRiskClsResult(); |
|||
domain.setID(drp.getID()); |
|||
domain.setDATA_DT(drp.getDATA_DT()); |
|||
domain.setDEBT_ID(drp.getDEBT_ID()); |
|||
domain.setON_OFF_FLAG(drp.getON_OFF_FLAG()); |
|||
domain.setEAD_TYPE_CODE("OTHER_ASSETS"); |
|||
domain.setEAD_TYPE_NAME("其他"); |
|||
domain.setEAD_TYPE_NUMBER("19.2其他表内资产"); |
|||
domain.setRISK_WEIGHT(1.0); |
|||
domain.setASSET_AMT(drp.getEXPO_AS_DEF()); |
|||
domain.setRESERVE(drp.getPROVISION()); |
|||
domain.setCCF(null); |
|||
domain.setEAD_WEIGHT(drp.getEXPO_AS_DEF() - drp.getPROVISION()); |
|||
domain.setEAD0_WEIGHT(null); |
|||
domain.setSURPLUS_VALUE(drp.getEXPO_AS_DEF()); |
|||
domain.setCUST_NO(drp.getCUST_NO()); |
|||
domain.setCUST_NAME(drp.getCUST_NAME()); |
|||
return domain; |
|||
} |
|||
|
|||
/** |
|||
* 更新表外风险暴露分类类型 |
|||
* @param ruleMain |
|||
* @param drcs |
|||
* @return |
|||
*/ |
|||
private DebtRiskClsResult updateDebtRiskClsResult(ParamRuleMain ruleMain, DebtRiskClsResult drcs){ |
|||
drcs.setEAD_TYPE_CODE(ruleMain.getEXPO_CODE()); |
|||
drcs.setEAD_TYPE_NAME(ruleMain.getEXPO_NAME()); |
|||
drcs.setEAD_TYPE_NUMBER(ruleMain.getSORT_NO()); |
|||
drcs.setCCF(Double.valueOf(ruleMain.getEXPO_WEIGHT())); |
|||
return drcs; |
|||
} |
|||
/** |
|||
* 更新表外风险暴露分类类型 |
|||
* @param drcs |
|||
* @return |
|||
*/ |
|||
private DebtRiskClsResult updateDebtRiskClsResultDefault(DebtRiskClsResult drcs){ |
|||
drcs.setEAD_TYPE_CODE("10.02.00.00.00.00"); |
|||
drcs.setEAD_TYPE_NAME("10.2其他"); |
|||
drcs.setEAD_TYPE_NUMBER("10.2"); |
|||
drcs.setCCF(1.0); |
|||
return drcs; |
|||
} |
|||
} |
|
File diff suppressed because it is too large
Loading…
Reference in new issue