186 changed files with 11602 additions and 229 deletions
@ -0,0 +1,23 @@ |
|||||
|
package erm.api.enums; |
||||
|
|
||||
|
public enum RiskPolicy { |
||||
|
PRUDENT("(-10%,-5%]"), //审慎
|
||||
|
PRUDENT_STEADY("(-5%,0%]"), //审慎偏稳健
|
||||
|
STEADY("(0,5%]"), //稳健
|
||||
|
STEADY_EXPANSION("(5%,10%]"), //稳健偏扩张
|
||||
|
EXPANSION("(15%,20%]"); //扩张
|
||||
|
|
||||
|
private String range; //区间
|
||||
|
|
||||
|
private RiskPolicy(String range) { |
||||
|
this.range = range; |
||||
|
} |
||||
|
|
||||
|
public String getRange() { |
||||
|
return range; |
||||
|
} |
||||
|
|
||||
|
public void setRange(String range) { |
||||
|
this.range = range; |
||||
|
} |
||||
|
} |
@ -0,0 +1,6 @@ |
|||||
|
package erm.api.enums; |
||||
|
|
||||
|
public enum StakeHolder { |
||||
|
SHAREHOLDER, //股东
|
||||
|
SUPERVISION; //监管
|
||||
|
} |
@ -0,0 +1,51 @@ |
|||||
|
package erm.appetite.api; |
||||
|
|
||||
|
import io.sc.platform.orm.api.vo.CorporationAuditorVo; |
||||
|
|
||||
|
public class CrossValidateVo extends CorporationAuditorVo { |
||||
|
private String id; |
||||
|
private String code; |
||||
|
private String name; |
||||
|
private String description; |
||||
|
private String year; |
||||
|
|
||||
|
public String getId() { |
||||
|
return id; |
||||
|
} |
||||
|
|
||||
|
public void setId(String id) { |
||||
|
this.id = id; |
||||
|
} |
||||
|
|
||||
|
public String getCode() { |
||||
|
return code; |
||||
|
} |
||||
|
|
||||
|
public void setCode(String code) { |
||||
|
this.code = code; |
||||
|
} |
||||
|
|
||||
|
public String getName() { |
||||
|
return name; |
||||
|
} |
||||
|
|
||||
|
public void setName(String name) { |
||||
|
this.name = name; |
||||
|
} |
||||
|
|
||||
|
public String getDescription() { |
||||
|
return description; |
||||
|
} |
||||
|
|
||||
|
public void setDescription(String description) { |
||||
|
this.description = description; |
||||
|
} |
||||
|
|
||||
|
public String getYear() { |
||||
|
return year; |
||||
|
} |
||||
|
|
||||
|
public void setYear(String year) { |
||||
|
this.year = year; |
||||
|
} |
||||
|
} |
@ -0,0 +1,97 @@ |
|||||
|
package erm.appetite.api; |
||||
|
|
||||
|
import erm.api.enums.RiskPolicy; |
||||
|
import io.sc.platform.orm.api.vo.CorporationAuditorVo; |
||||
|
|
||||
|
public class SpreadBusinessObjectVo extends CorporationAuditorVo { |
||||
|
private String id; //ID
|
||||
|
private String spread; //风险传导机制ID
|
||||
|
private String business; //业务条线
|
||||
|
private RiskPolicy policy;//风险基调
|
||||
|
private String range; //对应区间
|
||||
|
private Double lastYearLoanBalance;//上年贷款余额
|
||||
|
private Double lastYearNpl; //上年不良贷款率
|
||||
|
private Double growthPercent; //预计增长率
|
||||
|
private Double predictLoanBalance; //预计本年贷款余额
|
||||
|
private Double predictNpl; //预计本年不良贷款率
|
||||
|
|
||||
|
public String getId() { |
||||
|
return id; |
||||
|
} |
||||
|
|
||||
|
public void setId(String id) { |
||||
|
this.id = id; |
||||
|
} |
||||
|
|
||||
|
public String getSpread() { |
||||
|
return spread; |
||||
|
} |
||||
|
|
||||
|
public void setSpread(String spread) { |
||||
|
this.spread = spread; |
||||
|
} |
||||
|
|
||||
|
public String getBusiness() { |
||||
|
return business; |
||||
|
} |
||||
|
|
||||
|
public void setBusiness(String business) { |
||||
|
this.business = business; |
||||
|
} |
||||
|
|
||||
|
public RiskPolicy getPolicy() { |
||||
|
return policy; |
||||
|
} |
||||
|
|
||||
|
public void setPolicy(RiskPolicy policy) { |
||||
|
this.policy = policy; |
||||
|
} |
||||
|
|
||||
|
public String getRange() { |
||||
|
return range; |
||||
|
} |
||||
|
|
||||
|
public void setRange(String range) { |
||||
|
this.range = range; |
||||
|
} |
||||
|
|
||||
|
public Double getLastYearLoanBalance() { |
||||
|
return lastYearLoanBalance; |
||||
|
} |
||||
|
|
||||
|
public void setLastYearLoanBalance(Double lastYearLoanBalance) { |
||||
|
this.lastYearLoanBalance = lastYearLoanBalance; |
||||
|
} |
||||
|
|
||||
|
public Double getLastYearNpl() { |
||||
|
return lastYearNpl; |
||||
|
} |
||||
|
|
||||
|
public void setLastYearNpl(Double lastYearNpl) { |
||||
|
this.lastYearNpl = lastYearNpl; |
||||
|
} |
||||
|
|
||||
|
public Double getGrowthPercent() { |
||||
|
return growthPercent; |
||||
|
} |
||||
|
|
||||
|
public void setGrowthPercent(Double growthPercent) { |
||||
|
this.growthPercent = growthPercent; |
||||
|
} |
||||
|
|
||||
|
public Double getPredictLoanBalance() { |
||||
|
return predictLoanBalance; |
||||
|
} |
||||
|
|
||||
|
public void setPredictLoanBalance(Double predictLoanBalance) { |
||||
|
this.predictLoanBalance = predictLoanBalance; |
||||
|
} |
||||
|
|
||||
|
public Double getPredictNpl() { |
||||
|
return predictNpl; |
||||
|
} |
||||
|
|
||||
|
public void setPredictNpl(Double predictNpl) { |
||||
|
this.predictNpl = predictNpl; |
||||
|
} |
||||
|
} |
@ -0,0 +1,97 @@ |
|||||
|
package erm.appetite.api; |
||||
|
|
||||
|
import erm.api.enums.StakeHolder; |
||||
|
import io.sc.platform.orm.api.vo.CorporationAuditorVo; |
||||
|
|
||||
|
public class SpreadCoreIndicatorVo extends CorporationAuditorVo { |
||||
|
private String id; //ID
|
||||
|
private String spread; //风险传导机制ID
|
||||
|
private String indicator; //指标ID
|
||||
|
private String indicatorCode; //指标代码
|
||||
|
private String indicatorName; //指标名称
|
||||
|
private String indicatorUnit; //指标单位
|
||||
|
private Double supervisionMinValue; //容忍下限(监管要求)
|
||||
|
private Double expectValue; //目标值(股东期望)
|
||||
|
private Double referenceValue; //参考值(定量传导)
|
||||
|
private Double lastYearValue; //上年度指标值
|
||||
|
|
||||
|
public String getId() { |
||||
|
return id; |
||||
|
} |
||||
|
|
||||
|
public void setId(String id) { |
||||
|
this.id = id; |
||||
|
} |
||||
|
|
||||
|
public String getSpread() { |
||||
|
return spread; |
||||
|
} |
||||
|
|
||||
|
public void setSpread(String spread) { |
||||
|
this.spread = spread; |
||||
|
} |
||||
|
|
||||
|
public String getIndicator() { |
||||
|
return indicator; |
||||
|
} |
||||
|
|
||||
|
public void setIndicator(String indicator) { |
||||
|
this.indicator = indicator; |
||||
|
} |
||||
|
|
||||
|
public String getIndicatorCode() { |
||||
|
return indicatorCode; |
||||
|
} |
||||
|
|
||||
|
public void setIndicatorCode(String indicatorCode) { |
||||
|
this.indicatorCode = indicatorCode; |
||||
|
} |
||||
|
|
||||
|
public String getIndicatorName() { |
||||
|
return indicatorName; |
||||
|
} |
||||
|
|
||||
|
public void setIndicatorName(String indicatorName) { |
||||
|
this.indicatorName = indicatorName; |
||||
|
} |
||||
|
|
||||
|
public String getIndicatorUnit() { |
||||
|
return indicatorUnit; |
||||
|
} |
||||
|
|
||||
|
public void setIndicatorUnit(String indicatorUnit) { |
||||
|
this.indicatorUnit = indicatorUnit; |
||||
|
} |
||||
|
|
||||
|
public Double getSupervisionMinValue() { |
||||
|
return supervisionMinValue; |
||||
|
} |
||||
|
|
||||
|
public void setSupervisionMinValue(Double supervisionMinValue) { |
||||
|
this.supervisionMinValue = supervisionMinValue; |
||||
|
} |
||||
|
|
||||
|
public Double getExpectValue() { |
||||
|
return expectValue; |
||||
|
} |
||||
|
|
||||
|
public void setExpectValue(Double expectValue) { |
||||
|
this.expectValue = expectValue; |
||||
|
} |
||||
|
|
||||
|
public Double getReferenceValue() { |
||||
|
return referenceValue; |
||||
|
} |
||||
|
|
||||
|
public void setReferenceValue(Double referenceValue) { |
||||
|
this.referenceValue = referenceValue; |
||||
|
} |
||||
|
|
||||
|
public Double getLastYearValue() { |
||||
|
return lastYearValue; |
||||
|
} |
||||
|
|
||||
|
public void setLastYearValue(Double lastYearValue) { |
||||
|
this.lastYearValue = lastYearValue; |
||||
|
} |
||||
|
} |
@ -0,0 +1,97 @@ |
|||||
|
package erm.appetite.api; |
||||
|
|
||||
|
import erm.api.enums.RiskPolicy; |
||||
|
import io.sc.platform.orm.api.vo.CorporationAuditorVo; |
||||
|
|
||||
|
public class SpreadIndustryVo extends CorporationAuditorVo { |
||||
|
private String id; //ID
|
||||
|
private String spread; //风险传导机制ID
|
||||
|
private String industry; //行业
|
||||
|
private RiskPolicy policy;//风险基调
|
||||
|
private String range; //对应区间
|
||||
|
private Double lastYearLoanBalance;//上年贷款余额
|
||||
|
private Double lastYearNpl; //上年不良贷款率
|
||||
|
private Double growthPercent; //预计增长率
|
||||
|
private Double predictLoanBalance; //预计本年贷款余额
|
||||
|
private Double predictNpl; //预计本年不良贷款率
|
||||
|
|
||||
|
public String getId() { |
||||
|
return id; |
||||
|
} |
||||
|
|
||||
|
public void setId(String id) { |
||||
|
this.id = id; |
||||
|
} |
||||
|
|
||||
|
public String getSpread() { |
||||
|
return spread; |
||||
|
} |
||||
|
|
||||
|
public void setSpread(String spread) { |
||||
|
this.spread = spread; |
||||
|
} |
||||
|
|
||||
|
public String getIndustry() { |
||||
|
return industry; |
||||
|
} |
||||
|
|
||||
|
public void setIndustry(String industry) { |
||||
|
this.industry = industry; |
||||
|
} |
||||
|
|
||||
|
public RiskPolicy getPolicy() { |
||||
|
return policy; |
||||
|
} |
||||
|
|
||||
|
public void setPolicy(RiskPolicy policy) { |
||||
|
this.policy = policy; |
||||
|
} |
||||
|
|
||||
|
public String getRange() { |
||||
|
return range; |
||||
|
} |
||||
|
|
||||
|
public void setRange(String range) { |
||||
|
this.range = range; |
||||
|
} |
||||
|
|
||||
|
public Double getLastYearLoanBalance() { |
||||
|
return lastYearLoanBalance; |
||||
|
} |
||||
|
|
||||
|
public void setLastYearLoanBalance(Double lastYearLoanBalance) { |
||||
|
this.lastYearLoanBalance = lastYearLoanBalance; |
||||
|
} |
||||
|
|
||||
|
public Double getLastYearNpl() { |
||||
|
return lastYearNpl; |
||||
|
} |
||||
|
|
||||
|
public void setLastYearNpl(Double lastYearNpl) { |
||||
|
this.lastYearNpl = lastYearNpl; |
||||
|
} |
||||
|
|
||||
|
public Double getGrowthPercent() { |
||||
|
return growthPercent; |
||||
|
} |
||||
|
|
||||
|
public void setGrowthPercent(Double growthPercent) { |
||||
|
this.growthPercent = growthPercent; |
||||
|
} |
||||
|
|
||||
|
public Double getPredictLoanBalance() { |
||||
|
return predictLoanBalance; |
||||
|
} |
||||
|
|
||||
|
public void setPredictLoanBalance(Double predictLoanBalance) { |
||||
|
this.predictLoanBalance = predictLoanBalance; |
||||
|
} |
||||
|
|
||||
|
public Double getPredictNpl() { |
||||
|
return predictNpl; |
||||
|
} |
||||
|
|
||||
|
public void setPredictNpl(Double predictNpl) { |
||||
|
this.predictNpl = predictNpl; |
||||
|
} |
||||
|
} |
@ -0,0 +1,80 @@ |
|||||
|
package erm.appetite.api; |
||||
|
|
||||
|
import erm.api.enums.RiskPolicy; |
||||
|
import erm.api.enums.StakeHolder; |
||||
|
import io.sc.platform.orm.api.vo.CorporationAuditorVo; |
||||
|
|
||||
|
public class SpreadShareholderVo extends CorporationAuditorVo { |
||||
|
private String id; //ID
|
||||
|
private String spread; //风险传导机制ID
|
||||
|
private StakeHolder stakeHolder; //利益相关方
|
||||
|
private String indicator; //指标ID
|
||||
|
private String indicatorCode; //指标代码
|
||||
|
private String indicatorName; //指标名称
|
||||
|
private String indicatorUnit; //指标单位
|
||||
|
private String condition; //条件
|
||||
|
|
||||
|
public String getId() { |
||||
|
return id; |
||||
|
} |
||||
|
|
||||
|
public void setId(String id) { |
||||
|
this.id = id; |
||||
|
} |
||||
|
|
||||
|
public String getSpread() { |
||||
|
return spread; |
||||
|
} |
||||
|
|
||||
|
public void setSpread(String spread) { |
||||
|
this.spread = spread; |
||||
|
} |
||||
|
|
||||
|
public StakeHolder getStakeHolder() { |
||||
|
return stakeHolder; |
||||
|
} |
||||
|
|
||||
|
public void setStakeHolder(StakeHolder stakeHolder) { |
||||
|
this.stakeHolder = stakeHolder; |
||||
|
} |
||||
|
|
||||
|
public String getIndicator() { |
||||
|
return indicator; |
||||
|
} |
||||
|
|
||||
|
public void setIndicator(String indicator) { |
||||
|
this.indicator = indicator; |
||||
|
} |
||||
|
|
||||
|
public String getIndicatorCode() { |
||||
|
return indicatorCode; |
||||
|
} |
||||
|
|
||||
|
public void setIndicatorCode(String indicatorCode) { |
||||
|
this.indicatorCode = indicatorCode; |
||||
|
} |
||||
|
|
||||
|
public String getIndicatorName() { |
||||
|
return indicatorName; |
||||
|
} |
||||
|
|
||||
|
public void setIndicatorName(String indicatorName) { |
||||
|
this.indicatorName = indicatorName; |
||||
|
} |
||||
|
|
||||
|
public String getIndicatorUnit() { |
||||
|
return indicatorUnit; |
||||
|
} |
||||
|
|
||||
|
public void setIndicatorUnit(String indicatorUnit) { |
||||
|
this.indicatorUnit = indicatorUnit; |
||||
|
} |
||||
|
|
||||
|
public String getCondition() { |
||||
|
return condition; |
||||
|
} |
||||
|
|
||||
|
public void setCondition(String condition) { |
||||
|
this.condition = condition; |
||||
|
} |
||||
|
} |
@ -0,0 +1,79 @@ |
|||||
|
package erm.appetite.api; |
||||
|
|
||||
|
import erm.api.enums.StakeHolder; |
||||
|
import io.sc.platform.orm.api.vo.CorporationAuditorVo; |
||||
|
|
||||
|
public class SpreadSupervisionVo extends CorporationAuditorVo { |
||||
|
private String id; //ID
|
||||
|
private String spread; //风险传导机制ID
|
||||
|
private StakeHolder stakeHolder; //利益相关方
|
||||
|
private String indicator; //指标ID
|
||||
|
private String indicatorCode; //指标代码
|
||||
|
private String indicatorName; //指标名称
|
||||
|
private String indicatorUnit; //指标单位
|
||||
|
private String condition; //条件
|
||||
|
|
||||
|
public String getId() { |
||||
|
return id; |
||||
|
} |
||||
|
|
||||
|
public void setId(String id) { |
||||
|
this.id = id; |
||||
|
} |
||||
|
|
||||
|
public String getSpread() { |
||||
|
return spread; |
||||
|
} |
||||
|
|
||||
|
public void setSpread(String spread) { |
||||
|
this.spread = spread; |
||||
|
} |
||||
|
|
||||
|
public StakeHolder getStakeHolder() { |
||||
|
return stakeHolder; |
||||
|
} |
||||
|
|
||||
|
public void setStakeHolder(StakeHolder stakeHolder) { |
||||
|
this.stakeHolder = stakeHolder; |
||||
|
} |
||||
|
|
||||
|
public String getIndicator() { |
||||
|
return indicator; |
||||
|
} |
||||
|
|
||||
|
public void setIndicator(String indicator) { |
||||
|
this.indicator = indicator; |
||||
|
} |
||||
|
|
||||
|
public String getIndicatorCode() { |
||||
|
return indicatorCode; |
||||
|
} |
||||
|
|
||||
|
public void setIndicatorCode(String indicatorCode) { |
||||
|
this.indicatorCode = indicatorCode; |
||||
|
} |
||||
|
|
||||
|
public String getIndicatorName() { |
||||
|
return indicatorName; |
||||
|
} |
||||
|
|
||||
|
public void setIndicatorName(String indicatorName) { |
||||
|
this.indicatorName = indicatorName; |
||||
|
} |
||||
|
|
||||
|
public String getIndicatorUnit() { |
||||
|
return indicatorUnit; |
||||
|
} |
||||
|
|
||||
|
public void setIndicatorUnit(String indicatorUnit) { |
||||
|
this.indicatorUnit = indicatorUnit; |
||||
|
} |
||||
|
|
||||
|
public String getCondition() { |
||||
|
return condition; |
||||
|
} |
||||
|
|
||||
|
public void setCondition(String condition) { |
||||
|
this.condition = condition; |
||||
|
} |
||||
|
} |
@ -0,0 +1,78 @@ |
|||||
|
package erm.appetite.api; |
||||
|
|
||||
|
import io.sc.platform.orm.api.vo.CorporationAuditorVo; |
||||
|
|
||||
|
public class SpreadVo extends CorporationAuditorVo { |
||||
|
private String id; |
||||
|
private String code; |
||||
|
private String name; |
||||
|
private String description; |
||||
|
private String year; |
||||
|
private String crossValidate; |
||||
|
private String crossValidateCode; |
||||
|
private String crossValidateName; |
||||
|
|
||||
|
public String getId() { |
||||
|
return id; |
||||
|
} |
||||
|
|
||||
|
public void setId(String id) { |
||||
|
this.id = id; |
||||
|
} |
||||
|
|
||||
|
public String getCode() { |
||||
|
return code; |
||||
|
} |
||||
|
|
||||
|
public void setCode(String code) { |
||||
|
this.code = code; |
||||
|
} |
||||
|
|
||||
|
public String getName() { |
||||
|
return name; |
||||
|
} |
||||
|
|
||||
|
public void setName(String name) { |
||||
|
this.name = name; |
||||
|
} |
||||
|
|
||||
|
public String getDescription() { |
||||
|
return description; |
||||
|
} |
||||
|
|
||||
|
public void setDescription(String description) { |
||||
|
this.description = description; |
||||
|
} |
||||
|
|
||||
|
public String getYear() { |
||||
|
return year; |
||||
|
} |
||||
|
|
||||
|
public void setYear(String year) { |
||||
|
this.year = year; |
||||
|
} |
||||
|
|
||||
|
public String getCrossValidate() { |
||||
|
return crossValidate; |
||||
|
} |
||||
|
|
||||
|
public void setCrossValidate(String crossValidate) { |
||||
|
this.crossValidate = crossValidate; |
||||
|
} |
||||
|
|
||||
|
public String getCrossValidateCode() { |
||||
|
return crossValidateCode; |
||||
|
} |
||||
|
|
||||
|
public void setCrossValidateCode(String crossValidateCode) { |
||||
|
this.crossValidateCode = crossValidateCode; |
||||
|
} |
||||
|
|
||||
|
public String getCrossValidateName() { |
||||
|
return crossValidateName; |
||||
|
} |
||||
|
|
||||
|
public void setCrossValidateName(String crossValidateName) { |
||||
|
this.crossValidateName = crossValidateName; |
||||
|
} |
||||
|
} |
@ -0,0 +1,16 @@ |
|||||
|
/* |
||||
|
* 国际化消息源插件配置 |
||||
|
* 功能: 该插件配置为框架提供国际化消息资源 |
||||
|
* 使用说明: |
||||
|
* includes: 包含国际化消息资源列表 |
||||
|
* excludes: 排除国际化消息资源列表 |
||||
|
* 注意: 当一个包名同时存在于 includes 和 excludes 中, excludes 优先, 即该包不会被自动扫描 |
||||
|
*/ |
||||
|
|
||||
|
|
||||
|
{ |
||||
|
"includes":[ |
||||
|
"erm/api/i18n/enums" |
||||
|
], |
||||
|
"excludes":[] |
||||
|
} |
@ -0,0 +1,10 @@ |
|||||
|
# \u98CE\u9669\u57FA\u8C03 |
||||
|
erm.api.enums.RiskPolicy.PRUDENT=Prudent |
||||
|
erm.api.enums.RiskPolicy.PRUDENT_STEADY=Prudent to Steady |
||||
|
erm.api.enums.RiskPolicy.STEADY=Steady |
||||
|
erm.api.enums.RiskPolicy.STEADY_EXPANSION=Steady to Expansion |
||||
|
erm.api.enums.RiskPolicy.EXPANSION=Expansion |
||||
|
|
||||
|
# \u5229\u76CA\u76F8\u5173\u65B9 |
||||
|
erm.api.enums.StakeHolder.SHAREHOLDER=Shareholder |
||||
|
erm.api.enums.StakeHolder.SUPERVISION=Supervision |
@ -0,0 +1,10 @@ |
|||||
|
# \u98CE\u9669\u57FA\u8C03 |
||||
|
erm.api.enums.RiskPolicy.PRUDENT=\u5BE9\u614E |
||||
|
erm.api.enums.RiskPolicy.PRUDENT_STEADY=\u5BE9\u614E\u504F\u7A69\u5065 |
||||
|
erm.api.enums.RiskPolicy.STEADY=\u7A69\u5065 |
||||
|
erm.api.enums.RiskPolicy.STEADY_EXPANSION=\u7A69\u5065\u504F\u64F4\u5F35 |
||||
|
erm.api.enums.RiskPolicy.EXPANSION=\u64F4\u5F35 |
||||
|
|
||||
|
# \u5229\u76CA\u76F8\u5173\u65B9 |
||||
|
erm.api.enums.StakeHolder.SHAREHOLDER=\u80A1\u6771 |
||||
|
erm.api.enums.StakeHolder.SUPERVISION=\u76E3\u7BA1 |
@ -0,0 +1,10 @@ |
|||||
|
# \u98CE\u9669\u57FA\u8C03 |
||||
|
erm.api.enums.RiskPolicy.PRUDENT=\u5BA1\u614E |
||||
|
erm.api.enums.RiskPolicy.PRUDENT_STEADY=\u5BA1\u614E\u504F\u7A33\u5065 |
||||
|
erm.api.enums.RiskPolicy.STEADY=\u7A33\u5065 |
||||
|
erm.api.enums.RiskPolicy.STEADY_EXPANSION=\u7A33\u5065\u504F\u6269\u5F20 |
||||
|
erm.api.enums.RiskPolicy.EXPANSION=\u6269\u5F20 |
||||
|
|
||||
|
# \u5229\u76CA\u76F8\u5173\u65B9 |
||||
|
erm.api.enums.StakeHolder.SHAREHOLDER=\u80A1\u4E1C |
||||
|
erm.api.enums.StakeHolder.SUPERVISION=\u76D1\u7BA1 |
@ -0,0 +1,663 @@ |
|||||
|
<template> |
||||
|
<div class="row"> |
||||
|
<div class="col-6 pr-1"> |
||||
|
<q-banner class="text-white bg-primary" inline-actions> |
||||
|
<template #avatar> |
||||
|
<q-icon name="bi-arrow-up-circle"></q-icon> |
||||
|
</template> |
||||
|
<q-item-label class="text-h6">低阶指标 -> 高阶指标</q-item-label> |
||||
|
<template #action> |
||||
|
<q-btn label="计算" outline @click.stop.prevent="() => {}"></q-btn> |
||||
|
</template> |
||||
|
</q-banner> |
||||
|
<q-list bordered> |
||||
|
<q-expansion-item expand-separator label="1. 信用风险资本占用比例与CAR(资本充足率)"> |
||||
|
<q-card class="pb-2"> |
||||
|
<q-card-section class="text-subtitle2 py-0"> 1.1 关联关系: </q-card-section> |
||||
|
<q-card-section class="text-caption pl-10 py-0"> 信用风险资本占用比例 -> 信用风险加权资产 -> 风险加权资产 -> 资本充足率 </q-card-section> |
||||
|
<q-card-section class="text-subtitle2 py-0"> 1.2 涉及科目: </q-card-section> |
||||
|
<q-card-section class="text-caption pl-10 py-0"> |
||||
|
<q-markup-table separator="cell" flat bordered dense> |
||||
|
<tbody class="text-caption"> |
||||
|
<tr> |
||||
|
<td>[T+1年]总资本净额预测值</td> |
||||
|
<td align="right">12710.88</td> |
||||
|
<td>_计划财务部</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>[T+1年]市场风险加权资产预测值</td> |
||||
|
<td align="right">2244.22</td> |
||||
|
<td>_计划财务部</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>[T+1年]操作风险加权资产预测值</td> |
||||
|
<td align="right">224.22</td> |
||||
|
<td>_计划财务部</td> |
||||
|
</tr> |
||||
|
</tbody> |
||||
|
</q-markup-table> |
||||
|
</q-card-section> |
||||
|
<q-card-section class="text-subtitle2 py-0"> 1.3 勾稽过程: </q-card-section> |
||||
|
<q-card-section class="text-overline py-0"> i. 风险偏好指标(敏感性分析自变量) </q-card-section> |
||||
|
<q-card-section class="text-overline pl-10 py-0"> |
||||
|
<q-markup-table separator="cell" flat bordered dense> |
||||
|
<tbody class="text-caption"> |
||||
|
<tr> |
||||
|
<td>信用风险资本占用比例</td> |
||||
|
<td><q-input value="3" type="number" outlined dense></q-input></td> |
||||
|
<td>_风险管理部</td> |
||||
|
</tr> |
||||
|
</tbody> |
||||
|
</q-markup-table> |
||||
|
</q-card-section> |
||||
|
<q-card-section class="text-overline py-0"> ii. 风险偏好指标(敏感性分析因变量) </q-card-section> |
||||
|
<q-card-section class="text-caption pl-10 py-0"> |
||||
|
<q-markup-table separator="cell" flat bordered dense> |
||||
|
<tbody class="text-caption"> |
||||
|
<tr> |
||||
|
<td>CAR</td> |
||||
|
<td align="right">45.57%</td> |
||||
|
</tr> |
||||
|
</tbody> |
||||
|
</q-markup-table> |
||||
|
</q-card-section> |
||||
|
</q-card> |
||||
|
</q-expansion-item> |
||||
|
<q-expansion-item expand-separator label="2. 拨备覆盖率与CAR"> |
||||
|
<q-card class="pb-2"> |
||||
|
<q-card-section class="text-subtitle2 py-0"> 2.1 关联关系: </q-card-section> |
||||
|
<q-card-section class="text-caption pl-6 py-0"> 拨备覆盖率 -> 超额拨备计入二级资本部分 -> 总资本净额 -> 资本充足率 </q-card-section> |
||||
|
<q-card-section class="text-subtitle2 py-0"> 2.2 涉及科目: </q-card-section> |
||||
|
<q-card-section class="text-caption pl-10 py-0"> |
||||
|
<q-markup-table separator="cell" flat bordered dense> |
||||
|
<tbody class="text-caption"> |
||||
|
<tr> |
||||
|
<td>[T+1年]贷款总额预测值</td> |
||||
|
<td align="right">22.22</td> |
||||
|
<td>_计划财务部</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>[T+1年]贷款专项准备</td> |
||||
|
<td align="right">22.22</td> |
||||
|
<td>_计划财务部</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>[T+1年]一级资本净额预测值</td> |
||||
|
<td align="right">22.22</td> |
||||
|
<td>_计划财务部</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>[T+1年]二级资本工具及其溢价可计入部分预测值</td> |
||||
|
<td align="right">22.22</td> |
||||
|
<td>_计划财务部</td> |
||||
|
</tr> |
||||
|
</tbody> |
||||
|
</q-markup-table> |
||||
|
</q-card-section> |
||||
|
<q-card-section class="text-subtitle2 py-0"> 2.3 勾稽过程: </q-card-section> |
||||
|
<q-card-section class="text-overline py-0"> i. 风险偏好指标(敏感性分析自变量) </q-card-section> |
||||
|
<q-card-section class="text-overline pl-10 py-0"> |
||||
|
<q-markup-table separator="cell" flat bordered dense> |
||||
|
<tbody class="text-caption"> |
||||
|
<tr> |
||||
|
<td>拨备覆盖率</td> |
||||
|
<td><q-input value="3" type="number" outlined dense></q-input></td> |
||||
|
<td>_风险管理部</td> |
||||
|
</tr> |
||||
|
</tbody> |
||||
|
</q-markup-table> |
||||
|
</q-card-section> |
||||
|
<q-card-section class="text-overline py-0"> ii. 中间过程指标 </q-card-section> |
||||
|
<q-card-section class="text-overline pl-10 py-0"> |
||||
|
<q-markup-table separator="cell" flat bordered dense> |
||||
|
<tbody class="text-caption"> |
||||
|
<tr> |
||||
|
<td>不良贷款率</td> |
||||
|
<td><q-input value="3" type="number" outlined dense></q-input></td> |
||||
|
<td>_风险管理部</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>不良贷款余额</td> |
||||
|
<td align="right">2.44</td> |
||||
|
<td>_风险管理部</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>贷款计提最低要求</td> |
||||
|
<td align="right">22.22</td> |
||||
|
<td>_风险管理部</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>超额拨备计入二级资本</td> |
||||
|
<td align="right">0</td> |
||||
|
<td>_风险管理部</td> |
||||
|
</tr> |
||||
|
</tbody> |
||||
|
</q-markup-table> |
||||
|
</q-card-section> |
||||
|
<q-card-section class="text-overline py-0"> iii. 风险偏好指标(敏感性分析因变量)</q-card-section> |
||||
|
<q-card-section class="text-overline pl-10 py-0"> |
||||
|
<q-markup-table separator="cell" flat bordered dense> |
||||
|
<tbody class="text-caption"> |
||||
|
<tr> |
||||
|
<td>CAR</td> |
||||
|
<td align="right">1.74%</td> |
||||
|
</tr> |
||||
|
</tbody> |
||||
|
</q-markup-table> |
||||
|
</q-card-section> |
||||
|
</q-card> |
||||
|
</q-expansion-item> |
||||
|
</q-list> |
||||
|
</div> |
||||
|
<div class="col-6 pl-1"> |
||||
|
<q-banner class="text-white bg-primary" inline-actions> |
||||
|
<template #avatar> |
||||
|
<q-icon name="bi-arrow-down-circle"></q-icon> |
||||
|
</template> |
||||
|
<q-item-label class="text-h6">高阶指标 -> 低阶指标(敏感性压力测试)</q-item-label> |
||||
|
<template #action> |
||||
|
<q-btn label="计算" outline @click.stop.prevent="() => {}"></q-btn> |
||||
|
</template> |
||||
|
</q-banner> |
||||
|
<q-list bordered> |
||||
|
<q-item> |
||||
|
<q-item-section> |
||||
|
<div class="row q-col-gutter-md"> |
||||
|
<div class="col-6"> |
||||
|
<q-select |
||||
|
label="信用风险资本占用比例与CAR" |
||||
|
outlined |
||||
|
dense |
||||
|
:options="creditCarOptions" |
||||
|
:option-disable=" |
||||
|
(item) => { |
||||
|
if (item === null) { |
||||
|
return true; |
||||
|
} |
||||
|
return item.noSelect; |
||||
|
} |
||||
|
" |
||||
|
> |
||||
|
<template #option="{ itemProps, opt }"> |
||||
|
<q-item v-bind="itemProps"> |
||||
|
<q-item-section> |
||||
|
<q-item-label>{{ opt.percent }}</q-item-label> |
||||
|
</q-item-section> |
||||
|
<q-item-section side> |
||||
|
<q-item-label>{{ opt.car }}</q-item-label> |
||||
|
</q-item-section> |
||||
|
</q-item> |
||||
|
</template> |
||||
|
</q-select> |
||||
|
</div> |
||||
|
<div class="col-6"> |
||||
|
<q-select |
||||
|
label="拨备覆盖率与CAR" |
||||
|
outlined |
||||
|
dense |
||||
|
:options="provisionCarOptions" |
||||
|
:option-disable=" |
||||
|
(item) => { |
||||
|
if (item === null) { |
||||
|
return true; |
||||
|
} |
||||
|
return item.noSelect; |
||||
|
} |
||||
|
" |
||||
|
> |
||||
|
<template #option="{ itemProps, opt }"> |
||||
|
<q-item v-bind="itemProps"> |
||||
|
<q-item-section> |
||||
|
<q-item-label>{{ opt.percent }}</q-item-label> |
||||
|
</q-item-section> |
||||
|
<q-item-section side> |
||||
|
<q-item-label>{{ opt.car }}</q-item-label> |
||||
|
</q-item-section> |
||||
|
</q-item> |
||||
|
</template> |
||||
|
</q-select> |
||||
|
</div> |
||||
|
</div> |
||||
|
</q-item-section> |
||||
|
</q-item> |
||||
|
<q-item> |
||||
|
<q-item-section> |
||||
|
<q-item-label class="text-caption"> |
||||
|
<q-markup-table separator="cell" flat bordered dense> |
||||
|
<thead> |
||||
|
<tr> |
||||
|
<th>信用风险资本占用比例</th> |
||||
|
<th>CAR</th> |
||||
|
<th>不良率</th> |
||||
|
<th>拨备覆盖率</th> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
<tbody> |
||||
|
<tr> |
||||
|
<td>40%</td> |
||||
|
<td>19.23%</td> |
||||
|
<td><q-input value="3" type="number" outlined dense></q-input></td> |
||||
|
<td>未发现匹配值</td> |
||||
|
</tr> |
||||
|
</tbody> |
||||
|
</q-markup-table> |
||||
|
</q-item-label> |
||||
|
</q-item-section> |
||||
|
</q-item> |
||||
|
</q-list> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
<script setup lang="ts"> |
||||
|
import { ref } from 'vue'; |
||||
|
|
||||
|
const creditCarOptions = [ |
||||
|
{ percent: '信用风险资本占用比例', car: 'CAR', noSelect: true }, |
||||
|
{ percent: '40%', car: '19.25%' }, |
||||
|
{ percent: '40.25%', car: '19.14%' }, |
||||
|
{ percent: '40.5%', car: '19.02%' }, |
||||
|
{ percent: '40.75%', car: '18.91%' }, |
||||
|
{ percent: '41%', car: '18.8%' }, |
||||
|
{ percent: '41.25%', car: '18.69%' }, |
||||
|
{ percent: '41.5%', car: '18.58%' }, |
||||
|
{ percent: '41.75%', car: '18.47%' }, |
||||
|
{ percent: '42%', car: '18.37%' }, |
||||
|
{ percent: '42.25%', car: '18.26%' }, |
||||
|
{ percent: '42.5%', car: '18.16%' }, |
||||
|
{ percent: '42.75%', car: '18.06%' }, |
||||
|
{ percent: '43%', car: '17.96%' }, |
||||
|
{ percent: '43.25%', car: '17.86%' }, |
||||
|
{ percent: '43.5%', car: '17.76%' }, |
||||
|
{ percent: '43.75%', car: '17.66%' }, |
||||
|
{ percent: '44%', car: '17.56%' }, |
||||
|
{ percent: '44.25%', car: '17.47%' }, |
||||
|
{ percent: '44.5%', car: '17.37%' }, |
||||
|
{ percent: '44.75%', car: '17.28%' }, |
||||
|
{ percent: '45%', car: '17.18%' }, |
||||
|
{ percent: '45.25%', car: '17.09%' }, |
||||
|
{ percent: '45.5%', car: '17%' }, |
||||
|
{ percent: '45.75%', car: '16.91%' }, |
||||
|
{ percent: '46%', car: '16.82%' }, |
||||
|
{ percent: '46.25%', car: '16.74%' }, |
||||
|
{ percent: '46.5%', car: '16.65%' }, |
||||
|
{ percent: '46.75%', car: '16.56% ' }, |
||||
|
{ percent: '47%', car: '16.48%' }, |
||||
|
{ percent: '47.25%', car: '16.39%' }, |
||||
|
{ percent: '47.5%', car: '16.31%' }, |
||||
|
{ percent: '47.75%', car: '16.23%' }, |
||||
|
{ percent: '48%', car: '16.14%' }, |
||||
|
{ percent: '48.25%', car: '16.06%' }, |
||||
|
{ percent: '48.5%', car: '15.98%' }, |
||||
|
{ percent: '48.75%', car: '15.9%' }, |
||||
|
{ percent: '49%', car: '15.82%' }, |
||||
|
{ percent: '49.25%', car: '15.75%' }, |
||||
|
{ percent: '49.5%', car: '15.67%' }, |
||||
|
{ percent: '49.75%', car: '15.59%' }, |
||||
|
{ percent: '50%', car: '15.52%' }, |
||||
|
{ percent: '50.25%', car: '15.44%' }, |
||||
|
{ percent: '50.5%', car: '15.37%' }, |
||||
|
{ percent: '50.75%', car: '15.3%' }, |
||||
|
{ percent: '51%', car: '15.22%' }, |
||||
|
{ percent: '51.25%', car: '15.15%' }, |
||||
|
{ percent: '51.5%', car: '15.08%' }, |
||||
|
{ percent: '51.75%', car: '15.01%' }, |
||||
|
{ percent: '52%', car: '14.94%' }, |
||||
|
{ percent: '52.25%', car: '14.87%' }, |
||||
|
{ percent: '52.5%', car: '14.8%' }, |
||||
|
{ percent: '52.75%', car: '14.73%' }, |
||||
|
{ percent: '53%', car: '14.66%' }, |
||||
|
{ percent: '53.25%', car: '14.6%' }, |
||||
|
{ percent: '53.5%', car: '14.53%' }, |
||||
|
{ percent: '53.75%', car: '14.47%' }, |
||||
|
{ percent: '54%', car: '14.4%' }, |
||||
|
{ percent: '54.25%', car: '14.34%' }, |
||||
|
{ percent: '54.5%', car: '14.27%' }, |
||||
|
{ percent: '54.75%', car: '14.21%' }, |
||||
|
{ percent: '55%', car: '14.15%' }, |
||||
|
{ percent: '55.25%', car: '14.08%' }, |
||||
|
{ percent: '55.5%', car: '14.02%' }, |
||||
|
{ percent: '55.75%', car: '13.96%' }, |
||||
|
{ percent: '56%', car: '13.9%' }, |
||||
|
{ percent: '56.25%', car: '13.84%' }, |
||||
|
{ percent: '56.5%', car: '13.78%' }, |
||||
|
{ percent: '56.75%', car: '13.72%' }, |
||||
|
{ percent: '57%', car: '13.66%' }, |
||||
|
{ percent: '57.25%', car: '13.6%' }, |
||||
|
{ percent: '57.5%', car: '13.55%' }, |
||||
|
{ percent: '57.75%', car: '13.49%' }, |
||||
|
{ percent: '58%', car: '13.43%' }, |
||||
|
{ percent: '58.25%', car: '13.38%' }, |
||||
|
{ percent: '58.5%', car: '13.32%' }, |
||||
|
{ percent: '58.75%', car: '13.27%' }, |
||||
|
{ percent: '59%', car: '13.21%' }, |
||||
|
{ percent: '59.25%', car: '13.16%' }, |
||||
|
{ percent: '59.5%', car: '13.1%' }, |
||||
|
{ percent: '59.75%', car: '13.05%' }, |
||||
|
{ percent: '60%', car: '13%' }, |
||||
|
{ percent: '60.25%', car: '12.94%' }, |
||||
|
{ percent: '60.5%', car: '12.89%' }, |
||||
|
{ percent: '60.75%', car: '12.84%' }, |
||||
|
{ percent: '61%', car: '12.79%' }, |
||||
|
{ percent: '61.25%', car: '12.74%' }, |
||||
|
{ percent: '61.5%', car: '12.69%' }, |
||||
|
{ percent: '61.75%', car: '12.64%' }, |
||||
|
{ percent: '62%', car: '12.59%' }, |
||||
|
{ percent: '62.25%', car: '12.54%' }, |
||||
|
{ percent: '62.5%', car: '12.49%' }, |
||||
|
{ percent: '62.75%', car: '12.44%' }, |
||||
|
{ percent: '63%', car: '12.39%' }, |
||||
|
{ percent: '63.25%', car: '12.34%' }, |
||||
|
{ percent: '63.5%', car: '12.3%' }, |
||||
|
{ percent: '63.75%', car: '12.25%' }, |
||||
|
{ percent: '64%', car: '12.2%' }, |
||||
|
{ percent: '64.25%', car: '12.16%' }, |
||||
|
{ percent: '64.5%', car: '12.11%' }, |
||||
|
{ percent: '64.75%', car: '12.07%' }, |
||||
|
{ percent: '65%', car: '12.02%' }, |
||||
|
{ percent: '65.25%', car: '11.98%' }, |
||||
|
{ percent: '65.5%', car: '11.93%' }, |
||||
|
{ percent: '65.75%', car: '11.89%' }, |
||||
|
{ percent: '66%', car: '11.84%' }, |
||||
|
{ percent: '66.25%', car: '11.8%' }, |
||||
|
{ percent: '66.5%', car: '11.76%' }, |
||||
|
{ percent: '66.75%', car: '11.71%' }, |
||||
|
{ percent: '67%', car: '11.67%' }, |
||||
|
{ percent: '67.25%', car: '11.63%' }, |
||||
|
{ percent: '67.5%', car: '11.59%' }, |
||||
|
{ percent: '67.75%', car: '11.54%' }, |
||||
|
{ percent: '68%', car: '11.5%' }, |
||||
|
{ percent: '68.25%', car: '11.46%' }, |
||||
|
{ percent: '68.5%', car: '11.42%' }, |
||||
|
{ percent: '68.75%', car: '11.38%' }, |
||||
|
{ percent: '69%', car: '11.34%' }, |
||||
|
{ percent: '69.25%', car: '11.3%' }, |
||||
|
{ percent: '69.5%', car: '11.26%' }, |
||||
|
{ percent: '69.75%', car: '11.22%' }, |
||||
|
{ percent: '70%', car: '11.18%' }, |
||||
|
{ percent: '70.25%', car: '11.14%' }, |
||||
|
{ percent: '70.5%', car: '11.1%' }, |
||||
|
{ percent: '70.75%', car: '11.06%' }, |
||||
|
{ percent: '71%', car: '11.03%' }, |
||||
|
{ percent: '71.25%', car: '10.99%' }, |
||||
|
{ percent: '71.5%', car: '10.95%' }, |
||||
|
{ percent: '71.75%', car: '10.91%' }, |
||||
|
{ percent: '72%', car: '10.88%' }, |
||||
|
{ percent: '72.25%', car: '10.84%' }, |
||||
|
{ percent: '72.5%', car: '10.8%' }, |
||||
|
{ percent: '72.75%', car: '10.77%' }, |
||||
|
{ percent: '73%', car: '10.73%' }, |
||||
|
{ percent: '73.25%', car: '10.69%' }, |
||||
|
{ percent: '73.5%', car: '10.66%' }, |
||||
|
{ percent: '73.75%', car: '10.62%' }, |
||||
|
{ percent: '74%', car: '10.59%' }, |
||||
|
{ percent: '74.25%', car: '10.55%' }, |
||||
|
{ percent: '74.5%', car: '10.52%' }, |
||||
|
{ percent: '74.75%', car: '10.48%' }, |
||||
|
{ percent: '75%', car: '10.45%' }, |
||||
|
{ percent: '75.25%', car: '10.42%' }, |
||||
|
{ percent: '75.5%', car: '10.38%' }, |
||||
|
{ percent: '75.75%', car: '10.35%' }, |
||||
|
{ percent: '76%', car: '10.32%' }, |
||||
|
{ percent: '76.25%', car: '10.28%' }, |
||||
|
{ percent: '76.5%', car: '10.25%' }, |
||||
|
{ percent: '76.75%', car: '10.22%' }, |
||||
|
{ percent: '77%', car: '10.18%' }, |
||||
|
{ percent: '77.25%', car: '10.15%' }, |
||||
|
{ percent: '77.5%', car: '10.12%' }, |
||||
|
{ percent: '77.75%', car: '10.09%' }, |
||||
|
{ percent: '78%', car: '10.06%' }, |
||||
|
{ percent: '78.25%', car: '10.02%' }, |
||||
|
{ percent: '78.5%', car: '9.99%' }, |
||||
|
{ percent: '78.75%', car: '9.96%' }, |
||||
|
{ percent: '79%', car: '9.93%' }, |
||||
|
{ percent: '79.25%', car: '9.9%' }, |
||||
|
{ percent: '79.5%', car: '9.87%' }, |
||||
|
{ percent: '79.75%', car: '9.84%' }, |
||||
|
{ percent: '80%', car: '9.81%' }, |
||||
|
{ percent: '80.25%', car: '9.78%' }, |
||||
|
{ percent: '80.5%', car: '9.75%' }, |
||||
|
{ percent: '80.75%', car: '9.72%' }, |
||||
|
{ percent: '81%', car: '9.69%' }, |
||||
|
{ percent: '81.25%', car: '9.66%' }, |
||||
|
{ percent: '81.5%', car: '9.63%' }, |
||||
|
{ percent: '81.75%', car: '9.6%' }, |
||||
|
{ percent: '82%', car: '9.57%' }, |
||||
|
{ percent: '82.25%', car: '9.55%' }, |
||||
|
{ percent: '82.5%', car: '9.52%' }, |
||||
|
{ percent: '82.75%', car: '9.49%' }, |
||||
|
{ percent: '83%', car: '9.46%' }, |
||||
|
{ percent: '83.25%', car: '9.43%' }, |
||||
|
{ percent: '83.5%', car: '9.41%' }, |
||||
|
{ percent: '83.75%', car: '9.38%' }, |
||||
|
{ percent: '84%', car: '9.35%' }, |
||||
|
{ percent: '84.25%', car: '9.32%' }, |
||||
|
{ percent: '84.5%', car: '9.3%' }, |
||||
|
{ percent: '84.75%', car: '9.27%' }, |
||||
|
{ percent: '85%', car: '9.24%' }, |
||||
|
{ percent: '85.25%', car: '9.22%' }, |
||||
|
{ percent: '85.5%', car: '9.19%' }, |
||||
|
{ percent: '85.75%', car: '9.16%' }, |
||||
|
{ percent: '86%', car: '9.14%' }, |
||||
|
{ percent: '86.25%', car: '9.11%' }, |
||||
|
{ percent: '86.5%', car: '9.09%' }, |
||||
|
{ percent: '86.75%', car: '9.06%' }, |
||||
|
{ percent: '87%', car: '9.03%' }, |
||||
|
{ percent: '87.25%', car: '9.01%' }, |
||||
|
{ percent: '87.5%', car: '8.98%' }, |
||||
|
{ percent: '87.75%', car: '8.96%' }, |
||||
|
{ percent: '88%', car: '8.93%' }, |
||||
|
{ percent: '88.25%', car: '8.91%' }, |
||||
|
{ percent: '88.5%', car: '8.88%' }, |
||||
|
{ percent: '88.75%', car: '8.86%' }, |
||||
|
{ percent: '89%', car: '8.83%' }, |
||||
|
{ percent: '89.25%', car: '8.81%' }, |
||||
|
{ percent: '89.5%', car: '8.79%' }, |
||||
|
{ percent: '89.75%', car: '8.76%' }, |
||||
|
{ percent: '90%', car: '8.74%' }, |
||||
|
]; |
||||
|
|
||||
|
const provisionCarOptions = [ |
||||
|
{ percent: '拨备覆盖率', car: 'CAR' }, |
||||
|
{ percent: '150%', car: '1.50%' }, |
||||
|
{ percent: '151%', car: '1.50%' }, |
||||
|
{ percent: '152%', car: '1.50%' }, |
||||
|
{ percent: '153%', car: '1.50%' }, |
||||
|
{ percent: '154%', car: '1.50%' }, |
||||
|
{ percent: '155%', car: '1.50%' }, |
||||
|
{ percent: '156%', car: '1.50%' }, |
||||
|
{ percent: '157%', car: '1.50%' }, |
||||
|
{ percent: '158%', car: '1.50%' }, |
||||
|
{ percent: '159%', car: '1.50%' }, |
||||
|
{ percent: '160%', car: '1.50%' }, |
||||
|
{ percent: '161%', car: '1.50%' }, |
||||
|
{ percent: '162%', car: '1.50%' }, |
||||
|
{ percent: '163%', car: '1.50%' }, |
||||
|
{ percent: '164%', car: '1.50%' }, |
||||
|
{ percent: '165%', car: '1.50%' }, |
||||
|
{ percent: '166%', car: '1.50%' }, |
||||
|
{ percent: '167%', car: '1.50%' }, |
||||
|
{ percent: '168%', car: '1.50%' }, |
||||
|
{ percent: '169%', car: '1.50%' }, |
||||
|
{ percent: '170%', car: '1.50%' }, |
||||
|
{ percent: '171%', car: '1.50%' }, |
||||
|
{ percent: '172%', car: '1.50%' }, |
||||
|
{ percent: '173%', car: '1.50%' }, |
||||
|
{ percent: '174%', car: '1.50%' }, |
||||
|
{ percent: '175%', car: '1.50%' }, |
||||
|
{ percent: '176%', car: '1.50%' }, |
||||
|
{ percent: '177%', car: '1.50%' }, |
||||
|
{ percent: '178%', car: '1.50%' }, |
||||
|
{ percent: '179%', car: '1.50%' }, |
||||
|
{ percent: '180%', car: '1.50%' }, |
||||
|
{ percent: '181%', car: '1.50%' }, |
||||
|
{ percent: '182%', car: '1.50%' }, |
||||
|
{ percent: '183%', car: '1.50%' }, |
||||
|
{ percent: '184%', car: '1.50%' }, |
||||
|
{ percent: '185%', car: '1.50%' }, |
||||
|
{ percent: '186%', car: '1.50%' }, |
||||
|
{ percent: '187%', car: '1.50%' }, |
||||
|
{ percent: '188%', car: '1.50%' }, |
||||
|
{ percent: '189%', car: '1.50%' }, |
||||
|
{ percent: '190%', car: '1.50%' }, |
||||
|
{ percent: '191%', car: '1.50%' }, |
||||
|
{ percent: '192%', car: '1.50%' }, |
||||
|
{ percent: '193%', car: '1.50%' }, |
||||
|
{ percent: '194%', car: '1.50%' }, |
||||
|
{ percent: '195%', car: '1.50%' }, |
||||
|
{ percent: '196%', car: '1.50%' }, |
||||
|
{ percent: '197%', car: '1.50%' }, |
||||
|
{ percent: '198%', car: '1.50%' }, |
||||
|
{ percent: '199%', car: '1.50%' }, |
||||
|
{ percent: '200%', car: '1.50%' }, |
||||
|
{ percent: '201%', car: '1.50%' }, |
||||
|
{ percent: '202%', car: '1.50%' }, |
||||
|
{ percent: '203%', car: '1.50%' }, |
||||
|
{ percent: '204%', car: '1.50%' }, |
||||
|
{ percent: '205%', car: '1.50%' }, |
||||
|
{ percent: '206%', car: '1.50%' }, |
||||
|
{ percent: '207%', car: '1.50%' }, |
||||
|
{ percent: '208%', car: '1.50%' }, |
||||
|
{ percent: '209%', car: '1.50%' }, |
||||
|
{ percent: '210%', car: '1.50%' }, |
||||
|
{ percent: '211%', car: '1.50%' }, |
||||
|
{ percent: '212%', car: '1.50%' }, |
||||
|
{ percent: '213%', car: '1.50%' }, |
||||
|
{ percent: '214%', car: '1.50%' }, |
||||
|
{ percent: '215%', car: '1.50%' }, |
||||
|
{ percent: '216%', car: '1.50%' }, |
||||
|
{ percent: '217%', car: '1.50%' }, |
||||
|
{ percent: '218%', car: '1.50%' }, |
||||
|
{ percent: '219%', car: '1.50%' }, |
||||
|
{ percent: '220%', car: '1.50%' }, |
||||
|
{ percent: '221%', car: '1.50%' }, |
||||
|
{ percent: '222%', car: '1.50%' }, |
||||
|
{ percent: '223%', car: '1.50%' }, |
||||
|
{ percent: '224%', car: '1.50%' }, |
||||
|
{ percent: '225%', car: '1.50%' }, |
||||
|
{ percent: '226%', car: '1.50%' }, |
||||
|
{ percent: '227%', car: '1.50%' }, |
||||
|
{ percent: '228%', car: '1.50%' }, |
||||
|
{ percent: '229%', car: '1.50%' }, |
||||
|
{ percent: '230%', car: '1.50%' }, |
||||
|
{ percent: '231%', car: '1.50%' }, |
||||
|
{ percent: '232%', car: '1.50%' }, |
||||
|
{ percent: '233%', car: '1.50%' }, |
||||
|
{ percent: '234%', car: '1.50%' }, |
||||
|
{ percent: '235%', car: '1.50%' }, |
||||
|
{ percent: '236%', car: '1.50%' }, |
||||
|
{ percent: '237%', car: '1.50%' }, |
||||
|
{ percent: '238%', car: '1.50%' }, |
||||
|
{ percent: '239%', car: '1.50%' }, |
||||
|
{ percent: '240%', car: '1.50%' }, |
||||
|
{ percent: '241%', car: '1.50%' }, |
||||
|
{ percent: '242%', car: '1.50%' }, |
||||
|
{ percent: '243%', car: '1.50%' }, |
||||
|
{ percent: '244%', car: '1.50%' }, |
||||
|
{ percent: '245%', car: '1.50%' }, |
||||
|
{ percent: '246%', car: '1.50%' }, |
||||
|
{ percent: '247%', car: '1.50%' }, |
||||
|
{ percent: '248%', car: '1.50%' }, |
||||
|
{ percent: '249%', car: '1.50%' }, |
||||
|
{ percent: '250%', car: '1.50%' }, |
||||
|
{ percent: '251%', car: '1.50%' }, |
||||
|
{ percent: '252%', car: '1.50%' }, |
||||
|
{ percent: '253%', car: '1.50%' }, |
||||
|
{ percent: '254%', car: '1.50%' }, |
||||
|
{ percent: '255%', car: '1.50%' }, |
||||
|
{ percent: '256%', car: '1.50%' }, |
||||
|
{ percent: '257%', car: '1.50%' }, |
||||
|
{ percent: '258%', car: '1.50%' }, |
||||
|
{ percent: '259%', car: '1.50%' }, |
||||
|
{ percent: '260%', car: '1.50%' }, |
||||
|
{ percent: '261%', car: '1.50%' }, |
||||
|
{ percent: '262%', car: '1.50%' }, |
||||
|
{ percent: '263%', car: '1.50%' }, |
||||
|
{ percent: '264%', car: '1.50%' }, |
||||
|
{ percent: '265%', car: '1.50%' }, |
||||
|
{ percent: '266%', car: '1.50%' }, |
||||
|
{ percent: '267%', car: '1.50%' }, |
||||
|
{ percent: '268%', car: '1.50%' }, |
||||
|
{ percent: '269%', car: '1.50%' }, |
||||
|
{ percent: '270%', car: '1.50%' }, |
||||
|
{ percent: '271%', car: '1.50%' }, |
||||
|
{ percent: '272%', car: '1.50%' }, |
||||
|
{ percent: '273%', car: '1.50%' }, |
||||
|
{ percent: '274%', car: '1.50%' }, |
||||
|
{ percent: '275%', car: '1.50%' }, |
||||
|
{ percent: '276%', car: '1.50%' }, |
||||
|
{ percent: '277%', car: '1.50%' }, |
||||
|
{ percent: '278%', car: '1.50%' }, |
||||
|
{ percent: '279%', car: '1.50%' }, |
||||
|
{ percent: '280%', car: '1.50%' }, |
||||
|
{ percent: '281%', car: '1.50%' }, |
||||
|
{ percent: '282%', car: '1.50%' }, |
||||
|
{ percent: '283%', car: '1.50%' }, |
||||
|
{ percent: '284%', car: '1.50%' }, |
||||
|
{ percent: '285%', car: '1.50%' }, |
||||
|
{ percent: '286%', car: '1.50%' }, |
||||
|
{ percent: '287%', car: '1.50%' }, |
||||
|
{ percent: '288%', car: '1.50%' }, |
||||
|
{ percent: '289%', car: '1.50%' }, |
||||
|
{ percent: '290%', car: '1.50%' }, |
||||
|
{ percent: '291%', car: '1.50%' }, |
||||
|
{ percent: '292%', car: '1.50%' }, |
||||
|
{ percent: '293%', car: '1.50%' }, |
||||
|
{ percent: '294%', car: '1.50%' }, |
||||
|
{ percent: '295%', car: '1.50%' }, |
||||
|
{ percent: '296%', car: '1.50%' }, |
||||
|
{ percent: '297%', car: '1.50%' }, |
||||
|
{ percent: '298%', car: '1.50%' }, |
||||
|
{ percent: '299%', car: '1.50%' }, |
||||
|
{ percent: '300%', car: '1.50%' }, |
||||
|
{ percent: '301%', car: '1.50%' }, |
||||
|
{ percent: '302%', car: '1.50%' }, |
||||
|
{ percent: '303%', car: '1.50%' }, |
||||
|
{ percent: '304%', car: '1.50%' }, |
||||
|
{ percent: '305%', car: '1.50%' }, |
||||
|
{ percent: '306%', car: '1.50%' }, |
||||
|
{ percent: '307%', car: '1.50%' }, |
||||
|
{ percent: '308%', car: '1.50%' }, |
||||
|
{ percent: '309%', car: '1.50%' }, |
||||
|
{ percent: '310%', car: '1.50%' }, |
||||
|
{ percent: '311%', car: '1.50%' }, |
||||
|
{ percent: '312%', car: '1.50%' }, |
||||
|
{ percent: '313%', car: '1.50%' }, |
||||
|
{ percent: '314%', car: '1.50%' }, |
||||
|
{ percent: '315%', car: '1.50%' }, |
||||
|
{ percent: '316%', car: '1.50%' }, |
||||
|
{ percent: '317%', car: '1.50%' }, |
||||
|
{ percent: '318%', car: '1.50%' }, |
||||
|
{ percent: '319%', car: '1.50%' }, |
||||
|
{ percent: '320%', car: '1.50%' }, |
||||
|
{ percent: '321%', car: '1.50%' }, |
||||
|
{ percent: '322%', car: '1.50%' }, |
||||
|
{ percent: '323%', car: '1.50%' }, |
||||
|
{ percent: '324%', car: '1.50%' }, |
||||
|
{ percent: '325%', car: '1.50%' }, |
||||
|
{ percent: '326%', car: '1.50%' }, |
||||
|
{ percent: '327%', car: '1.50%' }, |
||||
|
{ percent: '328%', car: '1.50%' }, |
||||
|
{ percent: '329%', car: '1.50%' }, |
||||
|
{ percent: '330%', car: '1.50%' }, |
||||
|
{ percent: '331%', car: '1.50%' }, |
||||
|
{ percent: '332%', car: '1.50%' }, |
||||
|
{ percent: '333%', car: '1.50%' }, |
||||
|
{ percent: '334%', car: '1.50%' }, |
||||
|
{ percent: '335%', car: '1.50%' }, |
||||
|
{ percent: '336%', car: '1.50%' }, |
||||
|
{ percent: '337%', car: '1.50%' }, |
||||
|
{ percent: '338%', car: '1.50%' }, |
||||
|
{ percent: '339%', car: '1.50%' }, |
||||
|
{ percent: '340%', car: '1.50%' }, |
||||
|
{ percent: '341%', car: '1.50%' }, |
||||
|
{ percent: '342%', car: '1.50%' }, |
||||
|
{ percent: '343%', car: '1.50%' }, |
||||
|
{ percent: '344%', car: '1.50%' }, |
||||
|
{ percent: '345%', car: '1.50%' }, |
||||
|
{ percent: '346%', car: '1.50%' }, |
||||
|
{ percent: '347%', car: '1.50%' }, |
||||
|
{ percent: '348%', car: '1.50%' }, |
||||
|
{ percent: '349%', car: '1.50%' }, |
||||
|
{ percent: '350%', car: '1.50%' }, |
||||
|
]; |
||||
|
</script> |
@ -0,0 +1,104 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<w-grid |
||||
|
ref="gridRef" |
||||
|
:title="$t('erm.appetite.crossValidator.grid.title')" |
||||
|
:config-button="true" |
||||
|
selection="multiple" |
||||
|
:checkbox-selection="true" |
||||
|
:sticky-num="2" |
||||
|
:data-url="Environment.apiContextPath('/api/erm/appetite/crossValidate')" |
||||
|
:query-form-cols-num="4" |
||||
|
:query-form-fields="[ |
||||
|
{ name: 'code', label: $t('code'), type: 'text' }, |
||||
|
{ name: 'name', label: $t('name'), type: 'text' }, |
||||
|
{ name: 'year', label: $t('year'), type: 'text' }, |
||||
|
]" |
||||
|
:pagination="{ |
||||
|
sortBy: 'lastModifyDate', |
||||
|
descending: true, |
||||
|
}" |
||||
|
:toolbar-configure="{ noIcon: false }" |
||||
|
:toolbar-actions="[ |
||||
|
'query', |
||||
|
'refresh', |
||||
|
'separator', |
||||
|
'add', |
||||
|
'clone', |
||||
|
'edit', |
||||
|
'remove', |
||||
|
'separator', |
||||
|
{ |
||||
|
name: 'detail', |
||||
|
label: $t('detail'), |
||||
|
icon: 'bi-chat-square-text', |
||||
|
enableIf: (arg) => { |
||||
|
return arg.selected; |
||||
|
}, |
||||
|
click: () => { |
||||
|
crossValidateDialogRef.open(''); |
||||
|
}, |
||||
|
}, |
||||
|
'separator', |
||||
|
'view', |
||||
|
'separator', |
||||
|
'export', |
||||
|
]" |
||||
|
:columns="[ |
||||
|
{ width: 100, name: 'code', label: $t('code') }, |
||||
|
{ width: 300, name: 'name', label: $t('name') }, |
||||
|
{ width: 300, name: 'description', label: $t('description') }, |
||||
|
{ width: 100, name: 'year', label: $t('year') }, |
||||
|
{ width: 100, name: 'lastModifier', label: $t('lastModifier') }, |
||||
|
{ width: 110, name: 'lastModifyDate', label: $t('lastModifyDate'), format: Formater.dateOnly() }, |
||||
|
]" |
||||
|
:editor="{ |
||||
|
dialog: { |
||||
|
width: '600px', |
||||
|
height: '350px', |
||||
|
}, |
||||
|
form: { |
||||
|
colsNum: 1, |
||||
|
fields: [ |
||||
|
{ name: 'code', label: $t('code'), type: 'text', required: true }, |
||||
|
{ name: 'name', label: $t('name'), type: 'text', required: true }, |
||||
|
{ name: 'description', label: $t('description'), colSpan: 3, type: 'textarea', rows: 3 }, |
||||
|
{ |
||||
|
name: 'year', |
||||
|
label: $t('year'), |
||||
|
type: 'date', |
||||
|
defaultView: 'Years', |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
}" |
||||
|
:viewer="{ |
||||
|
panel: { |
||||
|
columnNum: 1, |
||||
|
fields: [ |
||||
|
{ name: 'id', label: $t('id') }, |
||||
|
{ name: 'code', label: $t('code') }, |
||||
|
{ name: 'name', label: $t('name') }, |
||||
|
{ name: 'description', label: $t('description') }, |
||||
|
{ name: 'year', label: $t('year') }, |
||||
|
{ name: 'dataComeFrom', label: $t('dataComeFrom') }, |
||||
|
{ name: 'creator', label: $t('creator') }, |
||||
|
{ name: 'createDate', label: $t('createDate') }, |
||||
|
{ name: 'lastModifier', label: $t('lastModifier') }, |
||||
|
{ name: 'lastModifyDate', label: $t('lastModifyDate'), format: Formater.none() }, |
||||
|
{ name: 'corporationCode', label: $t('corporationCode') }, |
||||
|
], |
||||
|
}, |
||||
|
}" |
||||
|
></w-grid> |
||||
|
<CrossValidateDialog ref="crossValidateDialogRef"></CrossValidateDialog> |
||||
|
</div> |
||||
|
</template> |
||||
|
<script setup lang="ts"> |
||||
|
import { ref } from 'vue'; |
||||
|
import { Environment, Formater } from 'platform-core'; |
||||
|
import CrossValidateDialog from './CrossValidateDialog.vue'; |
||||
|
|
||||
|
const gridRef = ref(); |
||||
|
const crossValidateDialogRef = ref(); |
||||
|
</script> |
@ -0,0 +1,57 @@ |
|||||
|
<template> |
||||
|
<w-dialog |
||||
|
ref="dialogRef" |
||||
|
:title="$t('erm.appetite.crossValidator.detail.dialog.title')" |
||||
|
width="1200px" |
||||
|
height="700px" |
||||
|
:can-maximize="false" |
||||
|
:buttons="[ |
||||
|
{ |
||||
|
label: $t('confirm'), |
||||
|
noCaps: true, |
||||
|
click: () => {}, |
||||
|
}, |
||||
|
]" |
||||
|
> |
||||
|
<div class="p-2"> |
||||
|
<q-stepper ref="stepper" v-model="stepperRef.currentStep" flat header-nav color="primary" animated header-class="px-80"> |
||||
|
<q-step :name="1" :title="$t('erm.appetite.crossValidator.detail.data')" icon="bi-1-circle" :done="stepperRef.doneOfStep1"> |
||||
|
<Data></Data> |
||||
|
</q-step> |
||||
|
|
||||
|
<q-step :name="2" :title="$t('erm.appetite.crossValidator.detail.calculate')" icon="bi-2-circle" :done="stepperRef.doneOfStep2"> |
||||
|
<Calculate></Calculate> |
||||
|
</q-step> |
||||
|
</q-stepper> |
||||
|
</div> |
||||
|
</w-dialog> |
||||
|
</template> |
||||
|
<script setup lang="ts"> |
||||
|
import { ref, reactive } from 'vue'; |
||||
|
import { axios, Environment, NotifyManager, Tools } from 'platform-core'; |
||||
|
import Data from './Data.vue'; |
||||
|
import Calculate from './Calculate.vue'; |
||||
|
|
||||
|
const dialogRef = ref(); |
||||
|
const stepperRef = reactive({ |
||||
|
currentStep: 1, |
||||
|
doneOfStep1: false, |
||||
|
doneOfStep2: false, |
||||
|
}); |
||||
|
|
||||
|
let currentId = ''; |
||||
|
|
||||
|
const open = (id: string) => { |
||||
|
currentId = id; |
||||
|
dialogRef.value.show(); |
||||
|
}; |
||||
|
|
||||
|
const close = () => { |
||||
|
dialogRef.value.hide(); |
||||
|
}; |
||||
|
|
||||
|
defineExpose({ |
||||
|
open, |
||||
|
close, |
||||
|
}); |
||||
|
</script> |
@ -0,0 +1,102 @@ |
|||||
|
<template> |
||||
|
<q-markup-table separator="cell" flat bordered dense> |
||||
|
<thead> |
||||
|
<tr |
||||
|
:style="{ |
||||
|
'background-color': $gc.theme.grid.headBgColor, |
||||
|
}" |
||||
|
> |
||||
|
<!-- <th style="width: 100%">科目</th> |
||||
|
<th style="width: 80px">单位</th> |
||||
|
<th style="width: 300px">上年实际值</th> |
||||
|
<th style="width: 300px">增长率(%)</th> |
||||
|
<th style="width: 300px">当年预测值</th> --> |
||||
|
<th>科目</th> |
||||
|
<th width="80px">单位</th> |
||||
|
<th width="200px">上年实际值</th> |
||||
|
<th width="200px">增长率(%)</th> |
||||
|
<th width="150px">当年预测值</th> |
||||
|
</tr> |
||||
|
</thead> |
||||
|
<tbody> |
||||
|
<tr> |
||||
|
<td>总资本净额预测值:G40_3.A</td> |
||||
|
<td align="center">亿元</td> |
||||
|
<td> |
||||
|
<q-input value="3" type="number" outlined dense></q-input> |
||||
|
</td> |
||||
|
<td> |
||||
|
<q-input value="3" type="number" outlined dense></q-input> |
||||
|
</td> |
||||
|
<td class="text-right">396.29</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>市场风险加权资产预测值:G40_5.A</td> |
||||
|
<td align="center">亿元</td> |
||||
|
<td> |
||||
|
<q-input value="3" type="number" outlined dense></q-input> |
||||
|
</td> |
||||
|
<td> |
||||
|
<q-input value="3" type="number" outlined dense></q-input> |
||||
|
</td> |
||||
|
<td class="text-right">396.29</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>操作风险加权资产预测值:G40_6.A</td> |
||||
|
<td align="center">亿元</td> |
||||
|
<td> |
||||
|
<q-input value="3" type="number" outlined dense></q-input> |
||||
|
</td> |
||||
|
<td> |
||||
|
<q-input value="3" type="number" outlined dense></q-input> |
||||
|
</td> |
||||
|
<td class="text-right">396.29</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>贷款总额预测值</td> |
||||
|
<td align="center">亿元</td> |
||||
|
<td> |
||||
|
<q-input value="3" type="number" outlined dense></q-input> |
||||
|
</td> |
||||
|
<td> |
||||
|
<q-input value="3" type="number" outlined dense></q-input> |
||||
|
</td> |
||||
|
<td class="text-right">396.29</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>贷款专项准备</td> |
||||
|
<td align="center">亿元</td> |
||||
|
<td> |
||||
|
<q-input value="3" type="number" outlined dense></q-input> |
||||
|
</td> |
||||
|
<td> |
||||
|
<q-input value="3" type="number" outlined dense></q-input> |
||||
|
</td> |
||||
|
<td class="text-right">396.29</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>一级资本净额预测值:G40_2.A</td> |
||||
|
<td align="center">亿元</td> |
||||
|
<td> |
||||
|
<q-input value="3" type="number" outlined dense></q-input> |
||||
|
</td> |
||||
|
<td> |
||||
|
<q-input value="3" type="number" outlined dense></q-input> |
||||
|
</td> |
||||
|
<td class="text-right">396.29</td> |
||||
|
</tr> |
||||
|
<tr> |
||||
|
<td>二级资本工具及其溢价可计入部分预测:G4A_5.1.A</td> |
||||
|
<td align="center">亿元</td> |
||||
|
<td> |
||||
|
<q-input value="3" type="number" outlined dense></q-input> |
||||
|
</td> |
||||
|
<td> |
||||
|
<q-input value="3" type="number" outlined dense></q-input> |
||||
|
</td> |
||||
|
<td class="text-right">396.29</td> |
||||
|
</tr> |
||||
|
</tbody> |
||||
|
</q-markup-table> |
||||
|
</template> |
||||
|
<script setup lang="ts"></script> |
@ -0,0 +1,124 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<w-grid |
||||
|
ref="gridRef" |
||||
|
:title="$t('erm.appetite.spread.grid.title')" |
||||
|
:config-button="true" |
||||
|
selection="multiple" |
||||
|
:checkbox-selection="true" |
||||
|
:sticky-num="2" |
||||
|
:data-url="Environment.apiContextPath('/api/erm/appetite/spread')" |
||||
|
:query-form-cols-num="4" |
||||
|
:query-form-fields="[ |
||||
|
{ name: 'code', label: $t('code'), type: 'text' }, |
||||
|
{ name: 'name', label: $t('name'), type: 'text' }, |
||||
|
{ name: 'year', label: $t('year'), type: 'text' }, |
||||
|
]" |
||||
|
:pagination="{ |
||||
|
sortBy: 'lastModifyDate', |
||||
|
descending: true, |
||||
|
}" |
||||
|
:toolbar-configure="{ noIcon: false }" |
||||
|
:toolbar-actions="[ |
||||
|
'query', |
||||
|
'refresh', |
||||
|
'separator', |
||||
|
'add', |
||||
|
'clone', |
||||
|
'edit', |
||||
|
'remove', |
||||
|
'separator', |
||||
|
{ |
||||
|
name: 'detail', |
||||
|
label: $t('detail'), |
||||
|
icon: 'bi-chat-square-text', |
||||
|
enableIf: (arg) => { |
||||
|
return arg.selected; |
||||
|
}, |
||||
|
click: (arg) => { |
||||
|
spreadDialogRef.open(arg.selected.id); |
||||
|
}, |
||||
|
}, |
||||
|
'separator', |
||||
|
'view', |
||||
|
'separator', |
||||
|
'export', |
||||
|
]" |
||||
|
:columns="[ |
||||
|
{ width: 150, name: 'code', label: $t('code') }, |
||||
|
{ width: 200, name: 'name', label: $t('name') }, |
||||
|
{ width: '100%', name: 'description', label: $t('description') }, |
||||
|
{ width: 100, name: 'year', label: $t('year') }, |
||||
|
{ width: 150, name: 'crossValidateCode', label: $t('erm.appetite.spread.grid.entity.crossValidateCode') }, |
||||
|
{ width: 150, name: 'crossValidateName', label: $t('erm.appetite.spread.grid.entity.crossValidateName') }, |
||||
|
{ width: 100, name: 'lastModifier', label: $t('lastModifier') }, |
||||
|
{ width: 110, name: 'lastModifyDate', label: $t('lastModifyDate'), format: Formater.dateOnly() }, |
||||
|
]" |
||||
|
:editor="{ |
||||
|
dialog: { |
||||
|
width: '600px', |
||||
|
height: '400px', |
||||
|
}, |
||||
|
form: { |
||||
|
colsNum: 1, |
||||
|
fields: [ |
||||
|
{ name: 'code', label: $t('code'), type: 'text', required: true }, |
||||
|
{ name: 'name', label: $t('name'), type: 'text', required: true }, |
||||
|
{ name: 'description', label: $t('description'), colSpan: 3, type: 'textarea', rows: 3 }, |
||||
|
{ |
||||
|
name: 'year', |
||||
|
label: $t('year'), |
||||
|
type: 'date', |
||||
|
defaultView: 'Years', |
||||
|
}, |
||||
|
{ name: 'crossValidate', label: $t('erm.appetite.spread.grid.entity.crossValidate'), type: 'select', options: crossValidateOptionsRef }, |
||||
|
], |
||||
|
}, |
||||
|
}" |
||||
|
:viewer="{ |
||||
|
panel: { |
||||
|
columnNum: 1, |
||||
|
fields: [ |
||||
|
{ name: 'id', label: $t('id') }, |
||||
|
{ name: 'code', label: $t('code') }, |
||||
|
{ name: 'name', label: $t('name') }, |
||||
|
{ name: 'description', label: $t('description') }, |
||||
|
{ name: 'year', label: $t('year') }, |
||||
|
{ name: 'crossValidateId', label: $t('erm.appetite.spread.grid.entity.crossValidateId') }, |
||||
|
{ name: 'crossValidateCode', label: $t('erm.appetite.spread.grid.entity.crossValidateCode') }, |
||||
|
{ name: 'crossValidateName', label: $t('erm.appetite.spread.grid.entity.crossValidateName') }, |
||||
|
{ name: 'dataComeFrom', label: $t('dataComeFrom') }, |
||||
|
{ name: 'creator', label: $t('creator') }, |
||||
|
{ name: 'createDate', label: $t('createDate') }, |
||||
|
{ name: 'lastModifier', label: $t('lastModifier') }, |
||||
|
{ name: 'lastModifyDate', label: $t('lastModifyDate'), format: Formater.none() }, |
||||
|
{ name: 'corporationCode', label: $t('corporationCode') }, |
||||
|
], |
||||
|
}, |
||||
|
}" |
||||
|
></w-grid> |
||||
|
<SpreadDialog ref="spreadDialogRef"></SpreadDialog> |
||||
|
</div> |
||||
|
</template> |
||||
|
<script setup lang="ts"> |
||||
|
import { ref } from 'vue'; |
||||
|
import { axios, Environment, Formater } from 'platform-core'; |
||||
|
import SpreadDialog from './SpreadDialog.vue'; |
||||
|
|
||||
|
const gridRef = ref(); |
||||
|
const spreadDialogRef = ref(); |
||||
|
const crossValidateOptionsRef = ref([]); |
||||
|
|
||||
|
axios.get(Environment.apiContextPath('/api/erm/appetite/crossValidate?pageable=false')).then((response) => { |
||||
|
const items = response?.data?.content; |
||||
|
if (items) { |
||||
|
crossValidateOptionsRef.value.splice(0, crossValidateOptionsRef.value.length); |
||||
|
for (const item of items) { |
||||
|
crossValidateOptionsRef.value.push({ |
||||
|
value: item.id, |
||||
|
label: item.name + '(' + item.code + ')', |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
}); |
||||
|
</script> |
@ -0,0 +1,71 @@ |
|||||
|
<template> |
||||
|
<w-grid |
||||
|
:title="$t('erm.appetite.spread.businessObject.grid.title')" |
||||
|
:height="500" |
||||
|
:config-button="false" |
||||
|
selection="multiple" |
||||
|
:checkbox-selection="true" |
||||
|
:sticky-num="0" |
||||
|
:data-url="Environment.apiContextPath('/api/erm/appetite/spreadBusinessObject')" |
||||
|
:fetch-data-url="Environment.apiContextPath('/api/erm/appetite/spreadBusinessObject/findBySpreadId?spreadId=' + relationId)" |
||||
|
:query-form-cols-num="4" |
||||
|
:query-form-fields="[]" |
||||
|
:pageable="false" |
||||
|
hide-pagination |
||||
|
:toolbar-configure="{ noIcon: false }" |
||||
|
:toolbar-actions="[ |
||||
|
'add', |
||||
|
'clone', |
||||
|
'edit', |
||||
|
'remove', |
||||
|
'separator', |
||||
|
{ |
||||
|
name: 'calculate', |
||||
|
label: $t('calculate'), |
||||
|
icon: 'bi-file-spreadsheet', |
||||
|
click: () => {}, |
||||
|
}, |
||||
|
]" |
||||
|
:columns="[ |
||||
|
{ width: '100%', name: 'business', label: $t('erm.appetite.spread.businessObject.grid.entity.business'), format: Formater.dictionary(BANK_BUSINESS) }, |
||||
|
{ width: 120, name: 'policy', label: $t('erm.appetite.spread.businessObject.grid.entity.policy'), format: Formater.dictionary(RISK_POLICY) }, |
||||
|
{ width: 100, name: 'range', label: $t('erm.appetite.spread.businessObject.grid.entity.range') }, |
||||
|
{ width: 150, name: 'lastYearLoanBalance', label: $t('erm.appetite.spread.businessObject.grid.entity.lastYearLoanBalance') }, |
||||
|
{ width: 150, name: 'lastYearNpl', label: $t('erm.appetite.spread.businessObject.grid.entity.lastYearNpl'), align: 'right' }, |
||||
|
{ width: 120, name: 'growthPercent', label: $t('erm.appetite.spread.businessObject.grid.entity.growthPercent'), align: 'right' }, |
||||
|
{ width: 140, name: 'predictLoanBalance', label: $t('erm.appetite.spread.businessObject.grid.entity.predictLoanBalance'), align: 'right' }, |
||||
|
{ width: 180, name: 'predictNpl', label: $t('erm.appetite.spread.businessObject.grid.entity.predictNpl'), align: 'right' }, |
||||
|
]" |
||||
|
:editor="{ |
||||
|
dialog: { |
||||
|
width: '400px', |
||||
|
height: '300px', |
||||
|
}, |
||||
|
form: { |
||||
|
colsNum: 1, |
||||
|
fields: [ |
||||
|
{ name: 'spread', label: $t('erm.appetite.spread.businessObject.grid.entity.spreadId'), type: 'text', defaultValue: relationId, hidden: true }, |
||||
|
{ name: 'id', label: $t('id'), hidden: true }, |
||||
|
{ |
||||
|
name: 'business', |
||||
|
label: $t('erm.appetite.spread.businessObject.grid.entity.business'), |
||||
|
type: 'select', |
||||
|
options: Options.dictionary(BANK_BUSINESS), |
||||
|
}, |
||||
|
{ name: 'policy', label: $t('erm.appetite.spread.businessObject.grid.entity.policy'), type: 'select', options: Options.enum(RISK_POLICY) }, |
||||
|
{ name: 'growthPercent', label: $t('erm.appetite.spread.businessObject.grid.entity.growthPercent'), type: 'number' }, |
||||
|
], |
||||
|
}, |
||||
|
}" |
||||
|
></w-grid> |
||||
|
</template> |
||||
|
<script setup lang="ts"> |
||||
|
import { Environment, Options, Formater, EnumTools, DictionaryTools } from 'platform-core'; |
||||
|
|
||||
|
const props = defineProps({ |
||||
|
relationId: { type: String, default: '' }, |
||||
|
}); |
||||
|
|
||||
|
const BANK_BUSINESS = await DictionaryTools.fetch('BANK_BUSINESS'); |
||||
|
const RISK_POLICY = await EnumTools.fetch('erm.api.enums.RiskPolicy'); |
||||
|
</script> |
@ -0,0 +1,92 @@ |
|||||
|
<template> |
||||
|
<w-grid |
||||
|
title="" |
||||
|
:height="500" |
||||
|
:hide-bottom="true" |
||||
|
:config-button="false" |
||||
|
selection="multiple" |
||||
|
:checkbox-selection="true" |
||||
|
:sticky-num="0" |
||||
|
:data-url="Environment.apiContextPath('/api/erm/appetite/spreadIndustry')" |
||||
|
:fetch-data-url="Environment.apiContextPath('/api/erm/appetite/spreadIndustry/findBySpreadId?spreadId=' + relationId)" |
||||
|
:query-form-cols-num="4" |
||||
|
:query-form-fields="[]" |
||||
|
:pageable="false" |
||||
|
:toolbar-configure="{ noIcon: false }" |
||||
|
:toolbar-actions="[ |
||||
|
'add', |
||||
|
'clone', |
||||
|
'edit', |
||||
|
'remove', |
||||
|
'separator', |
||||
|
{ |
||||
|
name: 'calculate', |
||||
|
label: $t('calculate'), |
||||
|
icon: 'bi-file-spreadsheet', |
||||
|
click: () => {}, |
||||
|
}, |
||||
|
]" |
||||
|
:columns="[ |
||||
|
{ |
||||
|
width: '100%', |
||||
|
name: 'industry', |
||||
|
label: $t('erm.appetite.spread.industry.grid.entity.industry'), |
||||
|
format: (value) => { |
||||
|
return industryMap[value]; |
||||
|
}, |
||||
|
}, |
||||
|
{ width: 100, name: 'policy', label: $t('erm.appetite.spread.businessObject.grid.entity.policy'), format: Formater.dictionary(RISK_POLICY) }, |
||||
|
{ width: 100, name: 'range', label: $t('erm.appetite.spread.businessObject.grid.entity.range') }, |
||||
|
{ width: 120, name: 'lastYearLoanBalance', label: $t('erm.appetite.spread.businessObject.grid.entity.lastYearLoanBalance'), align: 'right' }, |
||||
|
{ width: 140, name: 'lastYearNpl', label: $t('erm.appetite.spread.businessObject.grid.entity.lastYearNpl'), align: 'right' }, |
||||
|
{ width: 120, name: 'growthPercent', label: $t('erm.appetite.spread.businessObject.grid.entity.growthPercent'), align: 'right' }, |
||||
|
{ width: 140, name: 'predictLoanBalance', label: $t('erm.appetite.spread.businessObject.grid.entity.predictLoanBalance'), align: 'right' }, |
||||
|
{ width: 170, name: 'predictNpl', label: $t('erm.appetite.spread.businessObject.grid.entity.predictNpl'), align: 'right' }, |
||||
|
]" |
||||
|
:editor="{ |
||||
|
dialog: { |
||||
|
width: '400px', |
||||
|
height: '300px', |
||||
|
}, |
||||
|
form: { |
||||
|
colsNum: 1, |
||||
|
fields: [ |
||||
|
{ name: 'spread', label: $t('erm.appetite.spread.industry.grid.entity.spreadId'), type: 'text', defaultValue: relationId, hidden: true }, |
||||
|
{ name: 'id', label: $t('id'), hidden: true }, |
||||
|
{ |
||||
|
name: 'industry', |
||||
|
label: $t('erm.appetite.spread.industry.grid.entity.industry'), |
||||
|
type: 'select', |
||||
|
options: industryOptionsRef, |
||||
|
}, |
||||
|
{ name: 'policy', label: $t('erm.appetite.spread.industry.grid.entity.policy'), type: 'select', options: Options.enum(RISK_POLICY) }, |
||||
|
{ name: 'growthPercent', label: $t('erm.appetite.spread.industry.grid.entity.growthPercent'), type: 'number' }, |
||||
|
], |
||||
|
}, |
||||
|
}" |
||||
|
></w-grid> |
||||
|
</template> |
||||
|
<script setup lang="ts"> |
||||
|
import { ref } from 'vue'; |
||||
|
import { axios, Environment, Options, Formater, EnumTools, DictionaryTools } from 'platform-core'; |
||||
|
|
||||
|
const props = defineProps({ |
||||
|
relationId: { type: String, default: '' }, |
||||
|
}); |
||||
|
|
||||
|
const RISK_POLICY = await EnumTools.fetch('erm.api.enums.RiskPolicy'); |
||||
|
const industryOptionsRef = ref([]); |
||||
|
let industryMap = {}; |
||||
|
|
||||
|
await axios.get(Environment.apiContextPath('/api/standard/industry/level1')).then((response) => { |
||||
|
industryOptionsRef.value.splice(0, industryOptionsRef.value.length); |
||||
|
const items = response.data; |
||||
|
if (items && items.length > 0) { |
||||
|
industryMap = {}; |
||||
|
for (const item of items) { |
||||
|
industryOptionsRef.value.push({ label: item.code + '. ' + item.name, value: item.code }); |
||||
|
industryMap[item.code] = item.code + '. ' + item.name; |
||||
|
} |
||||
|
} |
||||
|
}); |
||||
|
</script> |
@ -0,0 +1,88 @@ |
|||||
|
<template> |
||||
|
<w-grid |
||||
|
title="" |
||||
|
:height="500" |
||||
|
:hide-bottom="true" |
||||
|
:config-button="false" |
||||
|
selection="multiple" |
||||
|
:checkbox-selection="true" |
||||
|
:sticky-num="0" |
||||
|
:data-url="Environment.apiContextPath('/api/erm/appetite/spreadShareholder')" |
||||
|
:fetch-data-url="Environment.apiContextPath('/api/erm/appetite/spreadShareholder/findBySpreadId?spreadId=' + relationId)" |
||||
|
:query-form-cols-num="4" |
||||
|
:query-form-fields="[]" |
||||
|
:pageable="false" |
||||
|
:toolbar-configure="{ noIcon: false }" |
||||
|
:toolbar-actions="[ |
||||
|
'add', |
||||
|
'clone', |
||||
|
'edit', |
||||
|
'remove', |
||||
|
'separator', |
||||
|
{ |
||||
|
name: 'calculate', |
||||
|
label: $t('calculate'), |
||||
|
icon: 'bi-file-spreadsheet', |
||||
|
click: () => {}, |
||||
|
}, |
||||
|
]" |
||||
|
:columns="[ |
||||
|
{ width: 100, name: 'stakeHolder', label: $t('erm.appetite.spread.shareholder.grid.entity.stakeHolder'), format: Formater.enum(StakeHolderEnums) }, |
||||
|
{ width: 150, name: 'indicatorCode', label: $t('erm.appetite.spread.shareholder.grid.entity.indicatorCode') }, |
||||
|
{ width: 400, name: 'indicatorName', label: $t('erm.appetite.spread.shareholder.grid.entity.indicatorName') }, |
||||
|
{ |
||||
|
width: 100, |
||||
|
name: 'indicatorUnit', |
||||
|
label: $t('erm.appetite.spread.shareholder.grid.entity.indicatorUnit'), |
||||
|
format: Formater.dictionary(DICTIONARY_MAP.INDICATOR_UNIT), |
||||
|
}, |
||||
|
{ width: '100%', name: 'condition', label: $t('erm.appetite.spread.shareholder.grid.entity.condition') }, |
||||
|
]" |
||||
|
:editor="{ |
||||
|
dialog: { |
||||
|
width: '600px', |
||||
|
height: '300px', |
||||
|
}, |
||||
|
form: { |
||||
|
colsNum: 1, |
||||
|
fields: [ |
||||
|
{ name: 'spread', label: $t('erm.appetite.spread.shareholder.grid.entity.spreadId'), type: 'text', defaultValue: relationId, hidden: true }, |
||||
|
{ |
||||
|
name: 'stakeHolder', |
||||
|
label: $t('erm.appetite.spread.shareholder.grid.entity.stakeHolder'), |
||||
|
type: 'select', |
||||
|
readOnlyIf: () => { |
||||
|
return true; |
||||
|
}, |
||||
|
defaultValue: 'SHAREHOLDER', |
||||
|
options: Options.enum(StakeHolderEnums), |
||||
|
}, |
||||
|
{ name: 'indicator', label: $t('erm.appetite.spread.shareholder.grid.entity.indicator'), type: 'select', options: indicatorListRef }, |
||||
|
{ name: 'condition', label: $t('erm.appetite.spread.shareholder.grid.entity.condition'), type: 'text' }, |
||||
|
], |
||||
|
}, |
||||
|
}" |
||||
|
></w-grid> |
||||
|
</template> |
||||
|
<script setup lang="ts"> |
||||
|
import { ref } from 'vue'; |
||||
|
import { axios, Environment, Options, Formater, EnumTools, DictionaryTools } from 'platform-core'; |
||||
|
|
||||
|
const props = defineProps({ |
||||
|
relationId: { type: String, default: '' }, |
||||
|
}); |
||||
|
|
||||
|
const indicatorListRef = ref([]); |
||||
|
|
||||
|
const DICTIONARY_MAP = await DictionaryTools.fetch(['INDICATOR_CATEGORY', 'INDICATOR_UNIT']); |
||||
|
const StakeHolderEnums = await EnumTools.fetch('erm.api.enums.StakeHolder'); |
||||
|
await axios.get(Environment.apiContextPath('/api/erm/kpi/indicator?pageable=false')).then((response) => { |
||||
|
const items = response?.data?.content; |
||||
|
indicatorListRef.value.splice(0, indicatorListRef.value.length); |
||||
|
if (items && items.length > 0) { |
||||
|
for (const item of items) { |
||||
|
indicatorListRef.value.push({ value: item.id, label: item.code + ' : ' + item.name }); |
||||
|
} |
||||
|
} |
||||
|
}); |
||||
|
</script> |
@ -0,0 +1,81 @@ |
|||||
|
<template> |
||||
|
<w-grid |
||||
|
title="" |
||||
|
:height="500" |
||||
|
:hide-bottom="true" |
||||
|
:config-button="false" |
||||
|
selection="multiple" |
||||
|
:checkbox-selection="true" |
||||
|
:sticky-num="0" |
||||
|
:data-url="Environment.apiContextPath('/api/erm/appetite/spreadCoreIndicator')" |
||||
|
:fetch-data-url="Environment.apiContextPath('/api/erm/appetite/spreadCoreIndicator/findBySpreadId?spreadId=' + relationId)" |
||||
|
:query-form-cols-num="4" |
||||
|
:query-form-fields="[]" |
||||
|
:pageable="false" |
||||
|
:toolbar-configure="{ noIcon: false }" |
||||
|
:toolbar-actions="[ |
||||
|
'add', |
||||
|
'clone', |
||||
|
'edit', |
||||
|
'remove', |
||||
|
'separator', |
||||
|
{ |
||||
|
name: 'calculate', |
||||
|
label: $t('calculate'), |
||||
|
icon: 'bi-file-spreadsheet', |
||||
|
click: () => {}, |
||||
|
}, |
||||
|
]" |
||||
|
:columns="[ |
||||
|
{ width: 150, name: 'indicatorCode', label: $t('erm.appetite.spread.coreIndicator.grid.entity.indicatorCode') }, |
||||
|
{ width: '100%', name: 'indicatorName', label: $t('erm.appetite.spread.coreIndicator.grid.entity.indicatorName') }, |
||||
|
{ |
||||
|
width: 100, |
||||
|
name: 'indicatorUnit', |
||||
|
label: $t('erm.appetite.spread.coreIndicator.grid.entity.indicatorUnit'), |
||||
|
format: Formater.dictionary(DICTIONARY_MAP.INDICATOR_UNIT), |
||||
|
}, |
||||
|
{ width: 150, name: 'supervisionMinValue', label: $t('erm.appetite.spread.coreIndicator.grid.entity.supervisionMinValue') }, |
||||
|
{ width: 150, name: 'expectValue', label: $t('erm.appetite.spread.coreIndicator.grid.entity.expectValue') }, |
||||
|
{ width: 150, name: 'referenceValue', label: $t('erm.appetite.spread.coreIndicator.grid.entity.referenceValue') }, |
||||
|
{ width: 150, name: 'lastYearValue', label: $t('erm.appetite.spread.coreIndicator.grid.entity.lastYearValue') }, |
||||
|
]" |
||||
|
:editor="{ |
||||
|
dialog: { |
||||
|
width: '600px', |
||||
|
height: '300px', |
||||
|
}, |
||||
|
form: { |
||||
|
colsNum: 1, |
||||
|
fields: [ |
||||
|
{ name: 'spread', label: $t('erm.appetite.spread.coreIndicator.grid.entity.spreadId'), type: 'text', defaultValue: relationId, hidden: true }, |
||||
|
{ name: 'indicator', label: $t('erm.appetite.spread.coreIndicator.grid.entity.indicator'), type: 'select', options: indicatorListRef }, |
||||
|
{ name: 'supervisionMinValue', label: $t('erm.appetite.spread.coreIndicator.grid.entity.supervisionMinValue'), type: 'number' }, |
||||
|
{ name: 'expectValue', label: $t('erm.appetite.spread.coreIndicator.grid.entity.expectValue'), type: 'number' }, |
||||
|
{ name: 'referenceValue', label: $t('erm.appetite.spread.coreIndicator.grid.entity.referenceValue'), type: 'number' }, |
||||
|
], |
||||
|
}, |
||||
|
}" |
||||
|
></w-grid> |
||||
|
</template> |
||||
|
<script setup lang="ts"> |
||||
|
import { ref } from 'vue'; |
||||
|
import { axios, Environment, Options, Formater, EnumTools, DictionaryTools } from 'platform-core'; |
||||
|
|
||||
|
const props = defineProps({ |
||||
|
relationId: { type: String, default: '' }, |
||||
|
}); |
||||
|
|
||||
|
const indicatorListRef = ref([]); |
||||
|
|
||||
|
const DICTIONARY_MAP = await DictionaryTools.fetch(['INDICATOR_CATEGORY', 'INDICATOR_UNIT']); |
||||
|
await axios.get(Environment.apiContextPath('/api/erm/kpi/indicator?pageable=false')).then((response) => { |
||||
|
const items = response?.data?.content; |
||||
|
indicatorListRef.value.splice(0, indicatorListRef.value.length); |
||||
|
if (items && items.length > 0) { |
||||
|
for (const item of items) { |
||||
|
indicatorListRef.value.push({ value: item.id, label: item.code + ' : ' + item.name }); |
||||
|
} |
||||
|
} |
||||
|
}); |
||||
|
</script> |
@ -0,0 +1,88 @@ |
|||||
|
<template> |
||||
|
<w-grid |
||||
|
title="" |
||||
|
:height="500" |
||||
|
:hide-bottom="true" |
||||
|
:config-button="false" |
||||
|
selection="multiple" |
||||
|
:checkbox-selection="true" |
||||
|
:sticky-num="0" |
||||
|
:data-url="Environment.apiContextPath('/api/erm/appetite/spreadSupervision')" |
||||
|
:fetch-data-url="Environment.apiContextPath('/api/erm/appetite/spreadSupervision/findBySpreadId?spreadId=' + relationId)" |
||||
|
:query-form-cols-num="4" |
||||
|
:query-form-fields="[]" |
||||
|
:pageable="false" |
||||
|
:toolbar-configure="{ noIcon: false }" |
||||
|
:toolbar-actions="[ |
||||
|
'add', |
||||
|
'clone', |
||||
|
'edit', |
||||
|
'remove', |
||||
|
'separator', |
||||
|
{ |
||||
|
name: 'calculate', |
||||
|
label: $t('calculate'), |
||||
|
icon: 'bi-file-spreadsheet', |
||||
|
click: () => {}, |
||||
|
}, |
||||
|
]" |
||||
|
:columns="[ |
||||
|
{ width: 100, name: 'stakeHolder', label: $t('erm.appetite.spread.supervision.grid.entity.stakeHolder'), format: Formater.enum(StakeHolderEnums) }, |
||||
|
{ width: 150, name: 'indicatorCode', label: $t('erm.appetite.spread.supervision.grid.entity.indicatorCode') }, |
||||
|
{ width: 400, name: 'indicatorName', label: $t('erm.appetite.spread.supervision.grid.entity.indicatorName') }, |
||||
|
{ |
||||
|
width: 100, |
||||
|
name: 'indicatorUnit', |
||||
|
label: $t('erm.appetite.spread.supervision.grid.entity.indicatorUnit'), |
||||
|
format: Formater.dictionary(DICTIONARY_MAP.INDICATOR_UNIT), |
||||
|
}, |
||||
|
{ width: '100%', name: 'condition', label: $t('erm.appetite.spread.supervision.grid.entity.condition') }, |
||||
|
]" |
||||
|
:editor="{ |
||||
|
dialog: { |
||||
|
width: '600px', |
||||
|
height: '300px', |
||||
|
}, |
||||
|
form: { |
||||
|
colsNum: 1, |
||||
|
fields: [ |
||||
|
{ name: 'spread', label: $t('erm.appetite.spread.supervision.grid.entity.spreadId'), type: 'text', defaultValue: relationId, hidden: true }, |
||||
|
{ |
||||
|
name: 'stakeHolder', |
||||
|
label: $t('erm.appetite.spread.supervision.grid.entity.stakeHolder'), |
||||
|
type: 'select', |
||||
|
readOnlyIf: () => { |
||||
|
return true; |
||||
|
}, |
||||
|
defaultValue: 'SHAREHOLDER', |
||||
|
options: Options.enum(StakeHolderEnums), |
||||
|
}, |
||||
|
{ name: 'indicator', label: $t('erm.appetite.spread.supervision.grid.entity.indicator'), type: 'select', options: indicatorListRef }, |
||||
|
{ name: 'condition', label: $t('erm.appetite.spread.supervision.grid.entity.condition'), type: 'text' }, |
||||
|
], |
||||
|
}, |
||||
|
}" |
||||
|
></w-grid> |
||||
|
</template> |
||||
|
<script setup lang="ts"> |
||||
|
import { ref } from 'vue'; |
||||
|
import { axios, Environment, Options, Formater, EnumTools, DictionaryTools } from 'platform-core'; |
||||
|
|
||||
|
const props = defineProps({ |
||||
|
relationId: { type: String, default: '' }, |
||||
|
}); |
||||
|
|
||||
|
const indicatorListRef = ref([]); |
||||
|
|
||||
|
const DICTIONARY_MAP = await DictionaryTools.fetch(['INDICATOR_CATEGORY', 'INDICATOR_UNIT']); |
||||
|
const StakeHolderEnums = await EnumTools.fetch('erm.api.enums.StakeHolder'); |
||||
|
await axios.get(Environment.apiContextPath('/api/erm/kpi/indicator?pageable=false')).then((response) => { |
||||
|
const items = response?.data?.content; |
||||
|
indicatorListRef.value.splice(0, indicatorListRef.value.length); |
||||
|
if (items && items.length > 0) { |
||||
|
for (const item of items) { |
||||
|
indicatorListRef.value.push({ value: item.id, label: item.code + ' : ' + item.name }); |
||||
|
} |
||||
|
} |
||||
|
}); |
||||
|
</script> |
@ -0,0 +1,15 @@ |
|||||
|
package erm.appetite.controller; |
||||
|
|
||||
|
import erm.appetite.api.CrossValidateVo; |
||||
|
import erm.appetite.jpa.entity.CrossValidateEntity; |
||||
|
import erm.appetite.jpa.repository.CrossValidateRepository; |
||||
|
import erm.appetite.service.CrossValidateService; |
||||
|
import io.sc.platform.mvc.controller.support.RestCrudController; |
||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
import org.springframework.web.bind.annotation.RestController; |
||||
|
|
||||
|
@RestController |
||||
|
@RequestMapping("/api/erm/appetite/crossValidate") |
||||
|
public class CrossValidateWebController extends RestCrudController<CrossValidateVo, CrossValidateEntity,String, CrossValidateRepository, CrossValidateService> { |
||||
|
|
||||
|
} |
@ -0,0 +1,22 @@ |
|||||
|
package erm.appetite.controller; |
||||
|
|
||||
|
import erm.appetite.api.SpreadBusinessObjectVo; |
||||
|
import erm.appetite.jpa.entity.SpreadBusinessObjectEntity; |
||||
|
import erm.appetite.jpa.repository.SpreadBusinessObjectRepository; |
||||
|
import erm.appetite.service.SpreadBusinessObjectService; |
||||
|
import io.sc.platform.mvc.controller.support.RestCrudController; |
||||
|
import org.springframework.web.bind.annotation.GetMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestParam; |
||||
|
import org.springframework.web.bind.annotation.RestController; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
@RestController |
||||
|
@RequestMapping("/api/erm/appetite/spreadBusinessObject") |
||||
|
public class SpreadBusinessObjectWebController extends RestCrudController<SpreadBusinessObjectVo, SpreadBusinessObjectEntity,String, SpreadBusinessObjectRepository, SpreadBusinessObjectService> { |
||||
|
@GetMapping("findBySpreadId") |
||||
|
public List<SpreadBusinessObjectVo> findBySpreadId(@RequestParam("spreadId")String spreadId) throws Exception{ |
||||
|
return service.findBySpreadId(spreadId); |
||||
|
} |
||||
|
} |
@ -0,0 +1,22 @@ |
|||||
|
package erm.appetite.controller; |
||||
|
|
||||
|
import erm.appetite.api.SpreadCoreIndicatorVo; |
||||
|
import erm.appetite.jpa.entity.SpreadCoreIndicatorEntity; |
||||
|
import erm.appetite.jpa.repository.SpreadCoreIndicatorRepository; |
||||
|
import erm.appetite.service.SpreadCoreIndicatorService; |
||||
|
import io.sc.platform.mvc.controller.support.RestCrudController; |
||||
|
import org.springframework.web.bind.annotation.GetMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestParam; |
||||
|
import org.springframework.web.bind.annotation.RestController; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
@RestController |
||||
|
@RequestMapping("/api/erm/appetite/spreadCoreIndicator") |
||||
|
public class SpreadCoreIndicatorWebController extends RestCrudController<SpreadCoreIndicatorVo, SpreadCoreIndicatorEntity,String, SpreadCoreIndicatorRepository, SpreadCoreIndicatorService> { |
||||
|
@GetMapping("findBySpreadId") |
||||
|
public List<SpreadCoreIndicatorVo> findBySpreadId(@RequestParam("spreadId")String spreadId) throws Exception{ |
||||
|
return service.findBySpreadId(spreadId); |
||||
|
} |
||||
|
} |
@ -0,0 +1,26 @@ |
|||||
|
package erm.appetite.controller; |
||||
|
|
||||
|
import erm.appetite.api.SpreadBusinessObjectVo; |
||||
|
import erm.appetite.api.SpreadIndustryVo; |
||||
|
import erm.appetite.jpa.entity.SpreadBusinessObjectEntity; |
||||
|
import erm.appetite.jpa.entity.SpreadIndustryEntity; |
||||
|
import erm.appetite.jpa.repository.SpreadBusinessObjectRepository; |
||||
|
import erm.appetite.jpa.repository.SpreadIndustryRepository; |
||||
|
import erm.appetite.service.SpreadBusinessObjectService; |
||||
|
import erm.appetite.service.SpreadIndustryService; |
||||
|
import io.sc.platform.mvc.controller.support.RestCrudController; |
||||
|
import org.springframework.web.bind.annotation.GetMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestParam; |
||||
|
import org.springframework.web.bind.annotation.RestController; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
@RestController |
||||
|
@RequestMapping("/api/erm/appetite/spreadIndustry") |
||||
|
public class SpreadIndustryWebController extends RestCrudController<SpreadIndustryVo, SpreadIndustryEntity,String, SpreadIndustryRepository, SpreadIndustryService> { |
||||
|
@GetMapping("findBySpreadId") |
||||
|
public List<SpreadIndustryVo> findBySpreadId(@RequestParam("spreadId")String spreadId) throws Exception{ |
||||
|
return service.findBySpreadId(spreadId); |
||||
|
} |
||||
|
} |
@ -0,0 +1,22 @@ |
|||||
|
package erm.appetite.controller; |
||||
|
|
||||
|
import erm.appetite.api.SpreadShareholderVo; |
||||
|
import erm.appetite.jpa.entity.SpreadShareholderEntity; |
||||
|
import erm.appetite.jpa.repository.SpreadShareholderRepository; |
||||
|
import erm.appetite.service.SpreadShareholderService; |
||||
|
import io.sc.platform.mvc.controller.support.RestCrudController; |
||||
|
import org.springframework.web.bind.annotation.GetMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestParam; |
||||
|
import org.springframework.web.bind.annotation.RestController; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
@RestController |
||||
|
@RequestMapping("/api/erm/appetite/spreadShareholder") |
||||
|
public class SpreadShareholderWebController extends RestCrudController<SpreadShareholderVo, SpreadShareholderEntity,String, SpreadShareholderRepository, SpreadShareholderService> { |
||||
|
@GetMapping("findBySpreadId") |
||||
|
public List<SpreadShareholderVo> findBySpreadId(@RequestParam("spreadId")String spreadId) throws Exception{ |
||||
|
return service.findBySpreadId(spreadId); |
||||
|
} |
||||
|
} |
@ -0,0 +1,22 @@ |
|||||
|
package erm.appetite.controller; |
||||
|
|
||||
|
import erm.appetite.api.SpreadSupervisionVo; |
||||
|
import erm.appetite.jpa.entity.SpreadSupervisionEntity; |
||||
|
import erm.appetite.jpa.repository.SpreadSupervisionRepository; |
||||
|
import erm.appetite.service.SpreadSupervisionService; |
||||
|
import io.sc.platform.mvc.controller.support.RestCrudController; |
||||
|
import org.springframework.web.bind.annotation.GetMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestParam; |
||||
|
import org.springframework.web.bind.annotation.RestController; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
@RestController |
||||
|
@RequestMapping("/api/erm/appetite/spreadSupervision") |
||||
|
public class SpreadSupervisionWebController extends RestCrudController<SpreadSupervisionVo, SpreadSupervisionEntity,String, SpreadSupervisionRepository, SpreadSupervisionService> { |
||||
|
@GetMapping("findBySpreadId") |
||||
|
public List<SpreadSupervisionVo> findBySpreadId(@RequestParam("spreadId")String spreadId) throws Exception{ |
||||
|
return service.findBySpreadId(spreadId); |
||||
|
} |
||||
|
} |
@ -0,0 +1,15 @@ |
|||||
|
package erm.appetite.controller; |
||||
|
|
||||
|
import erm.appetite.api.SpreadVo; |
||||
|
import erm.appetite.jpa.entity.SpreadEntity; |
||||
|
import erm.appetite.jpa.repository.SpreadRepository; |
||||
|
import erm.appetite.service.SpreadService; |
||||
|
import io.sc.platform.mvc.controller.support.RestCrudController; |
||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
import org.springframework.web.bind.annotation.RestController; |
||||
|
|
||||
|
@RestController |
||||
|
@RequestMapping("/api/erm/appetite/spread") |
||||
|
public class SpreadWebController extends RestCrudController<SpreadVo, SpreadEntity,String, SpreadRepository, SpreadService> { |
||||
|
|
||||
|
} |
@ -0,0 +1,97 @@ |
|||||
|
package erm.appetite.jpa.entity; |
||||
|
|
||||
|
import erm.appetite.api.CrossValidateVo; |
||||
|
import io.sc.platform.orm.entity.CorporationAuditorEntity; |
||||
|
import org.hibernate.annotations.GenericGenerator; |
||||
|
|
||||
|
import javax.persistence.*; |
||||
|
import javax.validation.constraints.Size; |
||||
|
|
||||
|
@Entity |
||||
|
@Table(name="RP_APT_CROSS_VALIDATE") |
||||
|
public class CrossValidateEntity extends CorporationAuditorEntity<CrossValidateVo> { |
||||
|
//ID,主键
|
||||
|
@Id |
||||
|
@GeneratedValue(generator = "system-uuid") |
||||
|
@GenericGenerator(name = "system-uuid", strategy = "uuid2") |
||||
|
@Column(name="ID_", length=36) |
||||
|
@Size(max=36) |
||||
|
private String id; |
||||
|
|
||||
|
//代码
|
||||
|
@Column(name="CODE_",nullable=false,length=255) |
||||
|
@Size(max=255) |
||||
|
private String code; |
||||
|
|
||||
|
//名称
|
||||
|
@Column(name="NAME_",nullable=false, length=255) |
||||
|
@Size(min=1,max=255) |
||||
|
private String name; |
||||
|
|
||||
|
//描述
|
||||
|
@Column(name="DESCRIPTION_",length=255) |
||||
|
@Size(max=255) |
||||
|
private String description; |
||||
|
|
||||
|
//年份
|
||||
|
@Column(name="YEAR_",length = 4) |
||||
|
@Size(max=4) |
||||
|
private String year; |
||||
|
|
||||
|
@Override |
||||
|
public CrossValidateVo toVo() { |
||||
|
CrossValidateVo vo =new CrossValidateVo(); |
||||
|
super.toVo(vo); |
||||
|
vo.setId(this.getId()); |
||||
|
vo.setCode(this.getCode()); |
||||
|
vo.setName(this.getName()); |
||||
|
vo.setDescription(this.getDescription()); |
||||
|
vo.setYear(this.getYear()); |
||||
|
return vo; |
||||
|
} |
||||
|
|
||||
|
public CrossValidateEntity(){} |
||||
|
public CrossValidateEntity(String id){ |
||||
|
this.id =id; |
||||
|
} |
||||
|
|
||||
|
public String getId() { |
||||
|
return id; |
||||
|
} |
||||
|
|
||||
|
public void setId(String id) { |
||||
|
this.id = id; |
||||
|
} |
||||
|
|
||||
|
public String getCode() { |
||||
|
return code; |
||||
|
} |
||||
|
|
||||
|
public void setCode(String code) { |
||||
|
this.code = code; |
||||
|
} |
||||
|
|
||||
|
public String getName() { |
||||
|
return name; |
||||
|
} |
||||
|
|
||||
|
public void setName(String name) { |
||||
|
this.name = name; |
||||
|
} |
||||
|
|
||||
|
public String getDescription() { |
||||
|
return description; |
||||
|
} |
||||
|
|
||||
|
public void setDescription(String description) { |
||||
|
this.description = description; |
||||
|
} |
||||
|
|
||||
|
public String getYear() { |
||||
|
return year; |
||||
|
} |
||||
|
|
||||
|
public void setYear(String year) { |
||||
|
this.year = year; |
||||
|
} |
||||
|
} |
@ -0,0 +1,156 @@ |
|||||
|
package erm.appetite.jpa.entity; |
||||
|
|
||||
|
import erm.api.enums.RiskPolicy; |
||||
|
import erm.appetite.api.SpreadBusinessObjectVo; |
||||
|
import io.sc.platform.orm.entity.CorporationAuditorEntity; |
||||
|
import org.hibernate.annotations.GenericGenerator; |
||||
|
|
||||
|
import javax.persistence.*; |
||||
|
import javax.validation.constraints.Size; |
||||
|
|
||||
|
@Entity |
||||
|
@Table(name="RP_APT_SPREAD_BO") |
||||
|
public class SpreadBusinessObjectEntity extends CorporationAuditorEntity<SpreadBusinessObjectVo>{ |
||||
|
//ID,主键
|
||||
|
@Id |
||||
|
@GeneratedValue(generator = "system-uuid") |
||||
|
@GenericGenerator(name = "system-uuid", strategy = "uuid2") |
||||
|
@Column(name="ID_", length=36) |
||||
|
@Size(max=36) |
||||
|
private String id; |
||||
|
|
||||
|
//业务条线
|
||||
|
@Column(name="BUSINESS_",length=20) |
||||
|
@Size(max=20) |
||||
|
private String business; |
||||
|
|
||||
|
//风险基调
|
||||
|
@Column(name="POLICY_", length=20) |
||||
|
@Enumerated(EnumType.STRING) |
||||
|
private RiskPolicy policy; |
||||
|
|
||||
|
//对应区间
|
||||
|
@Column(name="RANGE_", length=20) |
||||
|
private String range; |
||||
|
|
||||
|
//上年贷款余额
|
||||
|
@Column(name="LAST_YEAR_LOAN_BALANCE_") |
||||
|
private Double lastYearLoanBalance; |
||||
|
|
||||
|
//上年不良贷款率
|
||||
|
@Column(name="LAST_YEAR_NPL_") |
||||
|
private Double lastYearNpl; |
||||
|
|
||||
|
//预计增长率
|
||||
|
@Column(name="GROWTH_PERCENT_") |
||||
|
private Double growthPercent; |
||||
|
|
||||
|
//预计本年贷款余额
|
||||
|
@Column(name="PREDICT_LOAN_BALANCE_") |
||||
|
private Double predictLoanBalance; |
||||
|
|
||||
|
//预计本年不良贷款率
|
||||
|
@Column(name="PREDICT_NPL_") |
||||
|
private Double predictNpl; |
||||
|
|
||||
|
@ManyToOne(fetch=FetchType.LAZY) |
||||
|
@JoinColumn(name="SPREAD_ID_") |
||||
|
private SpreadEntity spread; |
||||
|
|
||||
|
@Override |
||||
|
public SpreadBusinessObjectVo toVo() { |
||||
|
SpreadBusinessObjectVo vo =new SpreadBusinessObjectVo(); |
||||
|
super.toVo(vo); |
||||
|
vo.setId(this.getId()); |
||||
|
vo.setBusiness(this.getBusiness()); |
||||
|
vo.setPolicy(this.getPolicy()); |
||||
|
vo.setRange(this.getRange()); |
||||
|
vo.setLastYearLoanBalance(this.getLastYearLoanBalance()); |
||||
|
vo.setLastYearNpl(this.getLastYearNpl()); |
||||
|
vo.setGrowthPercent(this.getGrowthPercent()); |
||||
|
vo.setPredictLoanBalance(this.getPredictLoanBalance()); |
||||
|
vo.setPredictNpl(this.getPredictNpl()); |
||||
|
vo.setSpread(this.getSpread()==null?null:this.getSpread().getId()); |
||||
|
return vo; |
||||
|
} |
||||
|
|
||||
|
public String getId() { |
||||
|
return id; |
||||
|
} |
||||
|
|
||||
|
public void setId(String id) { |
||||
|
this.id = id; |
||||
|
} |
||||
|
|
||||
|
public String getBusiness() { |
||||
|
return business; |
||||
|
} |
||||
|
|
||||
|
public void setBusiness(String business) { |
||||
|
this.business = business; |
||||
|
} |
||||
|
|
||||
|
public RiskPolicy getPolicy() { |
||||
|
return policy; |
||||
|
} |
||||
|
|
||||
|
public void setPolicy(RiskPolicy policy) { |
||||
|
this.policy = policy; |
||||
|
} |
||||
|
|
||||
|
public String getRange() { |
||||
|
return range; |
||||
|
} |
||||
|
|
||||
|
public void setRange(String range) { |
||||
|
this.range = range; |
||||
|
} |
||||
|
|
||||
|
public Double getLastYearLoanBalance() { |
||||
|
return lastYearLoanBalance; |
||||
|
} |
||||
|
|
||||
|
public void setLastYearLoanBalance(Double lastYearLoanBalance) { |
||||
|
this.lastYearLoanBalance = lastYearLoanBalance; |
||||
|
} |
||||
|
|
||||
|
public Double getLastYearNpl() { |
||||
|
return lastYearNpl; |
||||
|
} |
||||
|
|
||||
|
public void setLastYearNpl(Double lastYearNpl) { |
||||
|
this.lastYearNpl = lastYearNpl; |
||||
|
} |
||||
|
|
||||
|
public Double getGrowthPercent() { |
||||
|
return growthPercent; |
||||
|
} |
||||
|
|
||||
|
public void setGrowthPercent(Double growthPercent) { |
||||
|
this.growthPercent = growthPercent; |
||||
|
} |
||||
|
|
||||
|
public Double getPredictLoanBalance() { |
||||
|
return predictLoanBalance; |
||||
|
} |
||||
|
|
||||
|
public void setPredictLoanBalance(Double predictLoanBalance) { |
||||
|
this.predictLoanBalance = predictLoanBalance; |
||||
|
} |
||||
|
|
||||
|
public Double getPredictNpl() { |
||||
|
return predictNpl; |
||||
|
} |
||||
|
|
||||
|
public void setPredictNpl(Double predictNpl) { |
||||
|
this.predictNpl = predictNpl; |
||||
|
} |
||||
|
|
||||
|
public SpreadEntity getSpread() { |
||||
|
return spread; |
||||
|
} |
||||
|
|
||||
|
public void setSpread(SpreadEntity spread) { |
||||
|
this.spread = spread; |
||||
|
} |
||||
|
} |
@ -0,0 +1,120 @@ |
|||||
|
package erm.appetite.jpa.entity; |
||||
|
|
||||
|
import erm.api.enums.StakeHolder; |
||||
|
import erm.appetite.api.SpreadCoreIndicatorVo; |
||||
|
import erm.kpi.jpa.entity.IndicatorEntity; |
||||
|
import io.sc.platform.orm.entity.CorporationAuditorEntity; |
||||
|
import org.hibernate.annotations.GenericGenerator; |
||||
|
|
||||
|
import javax.persistence.*; |
||||
|
import javax.validation.constraints.Size; |
||||
|
|
||||
|
@Entity |
||||
|
@Table(name="RP_APT_SPREAD_CI") |
||||
|
public class SpreadCoreIndicatorEntity extends CorporationAuditorEntity<SpreadCoreIndicatorVo>{ |
||||
|
//ID,主键
|
||||
|
@Id |
||||
|
@GeneratedValue(generator = "system-uuid") |
||||
|
@GenericGenerator(name = "system-uuid", strategy = "uuid2") |
||||
|
@Column(name="ID_", length=36) |
||||
|
@Size(max=36) |
||||
|
private String id; |
||||
|
|
||||
|
// 指标
|
||||
|
@ManyToOne(fetch=FetchType.LAZY) |
||||
|
@JoinColumn(name="INDICATOR_ID_") |
||||
|
private IndicatorEntity indicator; |
||||
|
|
||||
|
@ManyToOne(fetch=FetchType.LAZY) |
||||
|
@JoinColumn(name="SPREAD_ID_") |
||||
|
private SpreadEntity spread; |
||||
|
|
||||
|
//容忍下限(监管要求)
|
||||
|
@Column(name="SUPERVISION_MIN_VALUE_") |
||||
|
private Double supervisionMinValue; |
||||
|
|
||||
|
//目标值(股东期望)
|
||||
|
@Column(name="EXPECT_VALUE_") |
||||
|
private Double expectValue; |
||||
|
|
||||
|
//参考值(定量传导)
|
||||
|
@Column(name="REFERENCE_VALUE_") |
||||
|
private Double referenceValue; |
||||
|
|
||||
|
//上年度指标值
|
||||
|
@Column(name="LAST_YEAR_VALUE") |
||||
|
private Double lastYearValue; |
||||
|
|
||||
|
@Override |
||||
|
public SpreadCoreIndicatorVo toVo() { |
||||
|
SpreadCoreIndicatorVo vo =new SpreadCoreIndicatorVo(); |
||||
|
super.toVo(vo); |
||||
|
vo.setId(this.getId()); |
||||
|
vo.setIndicator(this.getIndicator()==null?null:this.getIndicator().getId()); |
||||
|
vo.setIndicatorCode(this.getIndicator()==null?null:this.getIndicator().getCode()); |
||||
|
vo.setIndicatorName(this.getIndicator()==null?null:this.getIndicator().getName()); |
||||
|
vo.setIndicatorUnit(this.getIndicator()==null?null:this.getIndicator().getUnit()); |
||||
|
vo.setSupervisionMinValue(this.getSupervisionMinValue()); |
||||
|
vo.setExpectValue(this.getExpectValue()); |
||||
|
vo.setReferenceValue(this.getReferenceValue()); |
||||
|
vo.setLastYearValue(this.getLastYearValue()); |
||||
|
vo.setSpread(this.getSpread()==null?null:this.getSpread().getId()); |
||||
|
return vo; |
||||
|
} |
||||
|
|
||||
|
public String getId() { |
||||
|
return id; |
||||
|
} |
||||
|
|
||||
|
public void setId(String id) { |
||||
|
this.id = id; |
||||
|
} |
||||
|
|
||||
|
public IndicatorEntity getIndicator() { |
||||
|
return indicator; |
||||
|
} |
||||
|
|
||||
|
public void setIndicator(IndicatorEntity indicator) { |
||||
|
this.indicator = indicator; |
||||
|
} |
||||
|
|
||||
|
public Double getSupervisionMinValue() { |
||||
|
return supervisionMinValue; |
||||
|
} |
||||
|
|
||||
|
public void setSupervisionMinValue(Double supervisionMinValue) { |
||||
|
this.supervisionMinValue = supervisionMinValue; |
||||
|
} |
||||
|
|
||||
|
public Double getExpectValue() { |
||||
|
return expectValue; |
||||
|
} |
||||
|
|
||||
|
public void setExpectValue(Double expectValue) { |
||||
|
this.expectValue = expectValue; |
||||
|
} |
||||
|
|
||||
|
public Double getReferenceValue() { |
||||
|
return referenceValue; |
||||
|
} |
||||
|
|
||||
|
public void setReferenceValue(Double referenceValue) { |
||||
|
this.referenceValue = referenceValue; |
||||
|
} |
||||
|
|
||||
|
public Double getLastYearValue() { |
||||
|
return lastYearValue; |
||||
|
} |
||||
|
|
||||
|
public void setLastYearValue(Double lastYearValue) { |
||||
|
this.lastYearValue = lastYearValue; |
||||
|
} |
||||
|
|
||||
|
public SpreadEntity getSpread() { |
||||
|
return spread; |
||||
|
} |
||||
|
|
||||
|
public void setSpread(SpreadEntity spread) { |
||||
|
this.spread = spread; |
||||
|
} |
||||
|
} |
@ -0,0 +1,113 @@ |
|||||
|
package erm.appetite.jpa.entity; |
||||
|
|
||||
|
import erm.appetite.api.SpreadVo; |
||||
|
import io.sc.platform.orm.entity.CorporationAuditorEntity; |
||||
|
import org.hibernate.annotations.GenericGenerator; |
||||
|
|
||||
|
import javax.persistence.*; |
||||
|
import javax.validation.constraints.Size; |
||||
|
|
||||
|
@Entity |
||||
|
@Table(name="RP_APT_SPREAD") |
||||
|
public class SpreadEntity extends CorporationAuditorEntity<SpreadVo> { |
||||
|
//ID,主键
|
||||
|
@Id |
||||
|
@GeneratedValue(generator = "system-uuid") |
||||
|
@GenericGenerator(name = "system-uuid", strategy = "uuid2") |
||||
|
@Column(name="ID_", length=36) |
||||
|
@Size(max=36) |
||||
|
private String id; |
||||
|
|
||||
|
//代码
|
||||
|
@Column(name="CODE_",nullable=false,length=255) |
||||
|
@Size(max=255) |
||||
|
private String code; |
||||
|
|
||||
|
//名称
|
||||
|
@Column(name="NAME_",nullable=false, length=255) |
||||
|
@Size(min=1,max=255) |
||||
|
private String name; |
||||
|
|
||||
|
//描述
|
||||
|
@Column(name="DESCRIPTION_",length=255) |
||||
|
@Size(max=255) |
||||
|
private String description; |
||||
|
|
||||
|
//年份
|
||||
|
@Column(name="YEAR_",length = 4) |
||||
|
@Size(max=4) |
||||
|
private String year; |
||||
|
|
||||
|
@ManyToOne(fetch=FetchType.LAZY) |
||||
|
@JoinColumn(name="CROSS_VALIDATE_ID_") |
||||
|
private CrossValidateEntity crossValidate; |
||||
|
|
||||
|
public SpreadEntity(){} |
||||
|
|
||||
|
public SpreadEntity(String id){ |
||||
|
this.id =id; |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public SpreadVo toVo() { |
||||
|
SpreadVo vo =new SpreadVo(); |
||||
|
super.toVo(vo); |
||||
|
vo.setId(this.getId()); |
||||
|
vo.setCode(this.getCode()); |
||||
|
vo.setName(this.getName()); |
||||
|
vo.setDescription(this.getDescription()); |
||||
|
vo.setYear(this.getYear()); |
||||
|
vo.setCrossValidate(this.getCrossValidate()==null?"":this.getCrossValidate().getId()); |
||||
|
vo.setCrossValidateCode(this.getCrossValidate()==null?"":this.getCrossValidate().getCode()); |
||||
|
vo.setCrossValidateName(this.getCrossValidate()==null?"":this.getCrossValidate().getName()); |
||||
|
return vo; |
||||
|
} |
||||
|
|
||||
|
public String getId() { |
||||
|
return id; |
||||
|
} |
||||
|
|
||||
|
public void setId(String id) { |
||||
|
this.id = id; |
||||
|
} |
||||
|
|
||||
|
public String getCode() { |
||||
|
return code; |
||||
|
} |
||||
|
|
||||
|
public void setCode(String code) { |
||||
|
this.code = code; |
||||
|
} |
||||
|
|
||||
|
public String getName() { |
||||
|
return name; |
||||
|
} |
||||
|
|
||||
|
public void setName(String name) { |
||||
|
this.name = name; |
||||
|
} |
||||
|
|
||||
|
public String getDescription() { |
||||
|
return description; |
||||
|
} |
||||
|
|
||||
|
public void setDescription(String description) { |
||||
|
this.description = description; |
||||
|
} |
||||
|
|
||||
|
public String getYear() { |
||||
|
return year; |
||||
|
} |
||||
|
|
||||
|
public void setYear(String year) { |
||||
|
this.year = year; |
||||
|
} |
||||
|
|
||||
|
public CrossValidateEntity getCrossValidate() { |
||||
|
return crossValidate; |
||||
|
} |
||||
|
|
||||
|
public void setCrossValidate(CrossValidateEntity crossValidate) { |
||||
|
this.crossValidate = crossValidate; |
||||
|
} |
||||
|
} |
@ -0,0 +1,156 @@ |
|||||
|
package erm.appetite.jpa.entity; |
||||
|
|
||||
|
import erm.api.enums.RiskPolicy; |
||||
|
import erm.appetite.api.SpreadIndustryVo; |
||||
|
import io.sc.platform.orm.entity.CorporationAuditorEntity; |
||||
|
import org.hibernate.annotations.GenericGenerator; |
||||
|
|
||||
|
import javax.persistence.*; |
||||
|
import javax.validation.constraints.Size; |
||||
|
|
||||
|
@Entity |
||||
|
@Table(name="RP_APT_SPREAD_INDUSTRY") |
||||
|
public class SpreadIndustryEntity extends CorporationAuditorEntity<SpreadIndustryVo>{ |
||||
|
//ID,主键
|
||||
|
@Id |
||||
|
@GeneratedValue(generator = "system-uuid") |
||||
|
@GenericGenerator(name = "system-uuid", strategy = "uuid2") |
||||
|
@Column(name="ID_", length=36) |
||||
|
@Size(max=36) |
||||
|
private String id; |
||||
|
|
||||
|
//行业
|
||||
|
@Column(name="INDUSTRY_",length=20) |
||||
|
@Size(max=20) |
||||
|
private String industry; |
||||
|
|
||||
|
//风险基调
|
||||
|
@Column(name="POLICY_", length=20) |
||||
|
@Enumerated(EnumType.STRING) |
||||
|
private RiskPolicy policy; |
||||
|
|
||||
|
//对应区间
|
||||
|
@Column(name="RANGE_", length=20) |
||||
|
private String range; |
||||
|
|
||||
|
//上年贷款余额
|
||||
|
@Column(name="LAST_YEAR_LOAN_BALANCE_") |
||||
|
private Double lastYearLoanBalance; |
||||
|
|
||||
|
//上年不良贷款率
|
||||
|
@Column(name="LAST_YEAR_NPL_") |
||||
|
private Double lastYearNpl; |
||||
|
|
||||
|
//预计增长率
|
||||
|
@Column(name="GROWTH_PERCENT_") |
||||
|
private Double growthPercent; |
||||
|
|
||||
|
//预计本年贷款余额
|
||||
|
@Column(name="PREDICT_LOAN_BALANCE_") |
||||
|
private Double predictLoanBalance; |
||||
|
|
||||
|
//预计本年不良贷款率
|
||||
|
@Column(name="PREDICT_NPL_") |
||||
|
private Double predictNpl; |
||||
|
|
||||
|
@ManyToOne(fetch=FetchType.LAZY) |
||||
|
@JoinColumn(name="SPREAD_ID_") |
||||
|
private SpreadEntity spread; |
||||
|
|
||||
|
@Override |
||||
|
public SpreadIndustryVo toVo() { |
||||
|
SpreadIndustryVo vo =new SpreadIndustryVo(); |
||||
|
super.toVo(vo); |
||||
|
vo.setId(this.getId()); |
||||
|
vo.setIndustry(this.getIndustry()); |
||||
|
vo.setPolicy(this.getPolicy()); |
||||
|
vo.setRange(this.getRange()); |
||||
|
vo.setLastYearLoanBalance(this.getLastYearLoanBalance()); |
||||
|
vo.setLastYearNpl(this.getLastYearNpl()); |
||||
|
vo.setGrowthPercent(this.getGrowthPercent()); |
||||
|
vo.setPredictLoanBalance(this.getPredictLoanBalance()); |
||||
|
vo.setPredictNpl(this.getPredictNpl()); |
||||
|
vo.setSpread(this.getSpread()==null?null:this.getSpread().getId()); |
||||
|
return vo; |
||||
|
} |
||||
|
|
||||
|
public String getId() { |
||||
|
return id; |
||||
|
} |
||||
|
|
||||
|
public void setId(String id) { |
||||
|
this.id = id; |
||||
|
} |
||||
|
|
||||
|
public String getIndustry() { |
||||
|
return industry; |
||||
|
} |
||||
|
|
||||
|
public void setIndustry(String industry) { |
||||
|
this.industry = industry; |
||||
|
} |
||||
|
|
||||
|
public RiskPolicy getPolicy() { |
||||
|
return policy; |
||||
|
} |
||||
|
|
||||
|
public void setPolicy(RiskPolicy policy) { |
||||
|
this.policy = policy; |
||||
|
} |
||||
|
|
||||
|
public String getRange() { |
||||
|
return range; |
||||
|
} |
||||
|
|
||||
|
public void setRange(String range) { |
||||
|
this.range = range; |
||||
|
} |
||||
|
|
||||
|
public Double getLastYearLoanBalance() { |
||||
|
return lastYearLoanBalance; |
||||
|
} |
||||
|
|
||||
|
public void setLastYearLoanBalance(Double lastYearLoanBalance) { |
||||
|
this.lastYearLoanBalance = lastYearLoanBalance; |
||||
|
} |
||||
|
|
||||
|
public Double getLastYearNpl() { |
||||
|
return lastYearNpl; |
||||
|
} |
||||
|
|
||||
|
public void setLastYearNpl(Double lastYearNpl) { |
||||
|
this.lastYearNpl = lastYearNpl; |
||||
|
} |
||||
|
|
||||
|
public Double getGrowthPercent() { |
||||
|
return growthPercent; |
||||
|
} |
||||
|
|
||||
|
public void setGrowthPercent(Double growthPercent) { |
||||
|
this.growthPercent = growthPercent; |
||||
|
} |
||||
|
|
||||
|
public Double getPredictLoanBalance() { |
||||
|
return predictLoanBalance; |
||||
|
} |
||||
|
|
||||
|
public void setPredictLoanBalance(Double predictLoanBalance) { |
||||
|
this.predictLoanBalance = predictLoanBalance; |
||||
|
} |
||||
|
|
||||
|
public Double getPredictNpl() { |
||||
|
return predictNpl; |
||||
|
} |
||||
|
|
||||
|
public void setPredictNpl(Double predictNpl) { |
||||
|
this.predictNpl = predictNpl; |
||||
|
} |
||||
|
|
||||
|
public SpreadEntity getSpread() { |
||||
|
return spread; |
||||
|
} |
||||
|
|
||||
|
public void setSpread(SpreadEntity spread) { |
||||
|
this.spread = spread; |
||||
|
} |
||||
|
} |
@ -0,0 +1,97 @@ |
|||||
|
package erm.appetite.jpa.entity; |
||||
|
|
||||
|
import erm.api.enums.RiskPolicy; |
||||
|
import erm.api.enums.StakeHolder; |
||||
|
import erm.appetite.api.SpreadShareholderVo; |
||||
|
import erm.kpi.jpa.entity.IndicatorEntity; |
||||
|
import io.sc.platform.orm.entity.CorporationAuditorEntity; |
||||
|
import org.hibernate.annotations.GenericGenerator; |
||||
|
|
||||
|
import javax.persistence.*; |
||||
|
import javax.validation.constraints.Size; |
||||
|
|
||||
|
@Entity |
||||
|
@Table(name="RP_APT_SPREAD_SH") |
||||
|
public class SpreadShareholderEntity extends CorporationAuditorEntity<SpreadShareholderVo>{ |
||||
|
//ID,主键
|
||||
|
@Id |
||||
|
@GeneratedValue(generator = "system-uuid") |
||||
|
@GenericGenerator(name = "system-uuid", strategy = "uuid2") |
||||
|
@Column(name="ID_", length=36) |
||||
|
@Size(max=36) |
||||
|
private String id; |
||||
|
|
||||
|
// 利益相关方
|
||||
|
@Column(name="STAKE_HOLDER_", length=20) |
||||
|
@Enumerated(EnumType.STRING) |
||||
|
private StakeHolder stakeHolder; |
||||
|
|
||||
|
// 指标
|
||||
|
@ManyToOne(fetch=FetchType.LAZY) |
||||
|
@JoinColumn(name="INDICATOR_ID_") |
||||
|
private IndicatorEntity indicator; |
||||
|
|
||||
|
//条件
|
||||
|
@Column(name="CONDITION_",length=255) |
||||
|
@Size(max=255) |
||||
|
private String condition; |
||||
|
|
||||
|
@ManyToOne(fetch=FetchType.LAZY) |
||||
|
@JoinColumn(name="SPREAD_ID_") |
||||
|
private SpreadEntity spread; |
||||
|
|
||||
|
@Override |
||||
|
public SpreadShareholderVo toVo() { |
||||
|
SpreadShareholderVo vo =new SpreadShareholderVo(); |
||||
|
super.toVo(vo); |
||||
|
vo.setId(this.getId()); |
||||
|
vo.setStakeHolder(this.getStakeHolder()); |
||||
|
vo.setIndicator(this.getIndicator()==null?null:this.getIndicator().getId()); |
||||
|
vo.setIndicatorCode(this.getIndicator()==null?null:this.getIndicator().getCode()); |
||||
|
vo.setIndicatorName(this.getIndicator()==null?null:this.getIndicator().getName()); |
||||
|
vo.setIndicatorUnit(this.getIndicator()==null?null:this.getIndicator().getUnit()); |
||||
|
vo.setCondition(this.getCondition()); |
||||
|
vo.setSpread(this.getSpread()==null?null:this.getSpread().getId()); |
||||
|
return vo; |
||||
|
} |
||||
|
|
||||
|
public String getId() { |
||||
|
return id; |
||||
|
} |
||||
|
|
||||
|
public void setId(String id) { |
||||
|
this.id = id; |
||||
|
} |
||||
|
|
||||
|
public StakeHolder getStakeHolder() { |
||||
|
return stakeHolder; |
||||
|
} |
||||
|
|
||||
|
public void setStakeHolder(StakeHolder stakeHolder) { |
||||
|
this.stakeHolder = stakeHolder; |
||||
|
} |
||||
|
|
||||
|
public IndicatorEntity getIndicator() { |
||||
|
return indicator; |
||||
|
} |
||||
|
|
||||
|
public void setIndicator(IndicatorEntity indicator) { |
||||
|
this.indicator = indicator; |
||||
|
} |
||||
|
|
||||
|
public String getCondition() { |
||||
|
return condition; |
||||
|
} |
||||
|
|
||||
|
public void setCondition(String condition) { |
||||
|
this.condition = condition; |
||||
|
} |
||||
|
|
||||
|
public SpreadEntity getSpread() { |
||||
|
return spread; |
||||
|
} |
||||
|
|
||||
|
public void setSpread(SpreadEntity spread) { |
||||
|
this.spread = spread; |
||||
|
} |
||||
|
} |
@ -0,0 +1,96 @@ |
|||||
|
package erm.appetite.jpa.entity; |
||||
|
|
||||
|
import erm.api.enums.StakeHolder; |
||||
|
import erm.appetite.api.SpreadSupervisionVo; |
||||
|
import erm.kpi.jpa.entity.IndicatorEntity; |
||||
|
import io.sc.platform.orm.entity.CorporationAuditorEntity; |
||||
|
import org.hibernate.annotations.GenericGenerator; |
||||
|
|
||||
|
import javax.persistence.*; |
||||
|
import javax.validation.constraints.Size; |
||||
|
|
||||
|
@Entity |
||||
|
@Table(name="RP_APT_SPREAD_SV") |
||||
|
public class SpreadSupervisionEntity extends CorporationAuditorEntity<SpreadSupervisionVo>{ |
||||
|
//ID,主键
|
||||
|
@Id |
||||
|
@GeneratedValue(generator = "system-uuid") |
||||
|
@GenericGenerator(name = "system-uuid", strategy = "uuid2") |
||||
|
@Column(name="ID_", length=36) |
||||
|
@Size(max=36) |
||||
|
private String id; |
||||
|
|
||||
|
// 利益相关方
|
||||
|
@Column(name="STAKE_HOLDER_", length=20) |
||||
|
@Enumerated(EnumType.STRING) |
||||
|
private StakeHolder stakeHolder; |
||||
|
|
||||
|
// 指标
|
||||
|
@ManyToOne(fetch=FetchType.LAZY) |
||||
|
@JoinColumn(name="INDICATOR_ID_") |
||||
|
private IndicatorEntity indicator; |
||||
|
|
||||
|
//条件
|
||||
|
@Column(name="CONDITION_",length=255) |
||||
|
@Size(max=255) |
||||
|
private String condition; |
||||
|
|
||||
|
@ManyToOne(fetch=FetchType.LAZY) |
||||
|
@JoinColumn(name="SPREAD_ID_") |
||||
|
private SpreadEntity spread; |
||||
|
|
||||
|
@Override |
||||
|
public SpreadSupervisionVo toVo() { |
||||
|
SpreadSupervisionVo vo =new SpreadSupervisionVo(); |
||||
|
super.toVo(vo); |
||||
|
vo.setId(this.getId()); |
||||
|
vo.setStakeHolder(this.getStakeHolder()); |
||||
|
vo.setIndicator(this.getIndicator()==null?null:this.getIndicator().getId()); |
||||
|
vo.setIndicatorCode(this.getIndicator()==null?null:this.getIndicator().getCode()); |
||||
|
vo.setIndicatorName(this.getIndicator()==null?null:this.getIndicator().getName()); |
||||
|
vo.setIndicatorUnit(this.getIndicator()==null?null:this.getIndicator().getUnit()); |
||||
|
vo.setCondition(this.getCondition()); |
||||
|
vo.setSpread(this.getSpread()==null?null:this.getSpread().getId()); |
||||
|
return vo; |
||||
|
} |
||||
|
|
||||
|
public String getId() { |
||||
|
return id; |
||||
|
} |
||||
|
|
||||
|
public void setId(String id) { |
||||
|
this.id = id; |
||||
|
} |
||||
|
|
||||
|
public StakeHolder getStakeHolder() { |
||||
|
return stakeHolder; |
||||
|
} |
||||
|
|
||||
|
public void setStakeHolder(StakeHolder stakeHolder) { |
||||
|
this.stakeHolder = stakeHolder; |
||||
|
} |
||||
|
|
||||
|
public IndicatorEntity getIndicator() { |
||||
|
return indicator; |
||||
|
} |
||||
|
|
||||
|
public void setIndicator(IndicatorEntity indicator) { |
||||
|
this.indicator = indicator; |
||||
|
} |
||||
|
|
||||
|
public String getCondition() { |
||||
|
return condition; |
||||
|
} |
||||
|
|
||||
|
public void setCondition(String condition) { |
||||
|
this.condition = condition; |
||||
|
} |
||||
|
|
||||
|
public SpreadEntity getSpread() { |
||||
|
return spread; |
||||
|
} |
||||
|
|
||||
|
public void setSpread(SpreadEntity spread) { |
||||
|
this.spread = spread; |
||||
|
} |
||||
|
} |
@ -0,0 +1,8 @@ |
|||||
|
package erm.appetite.jpa.repository; |
||||
|
|
||||
|
import erm.appetite.jpa.entity.CrossValidateEntity; |
||||
|
import io.sc.platform.orm.repository.DaoRepository; |
||||
|
|
||||
|
public interface CrossValidateRepository extends DaoRepository<CrossValidateEntity,String> { |
||||
|
public CrossValidateEntity findByCode(String code); |
||||
|
} |
@ -0,0 +1,13 @@ |
|||||
|
package erm.appetite.jpa.repository; |
||||
|
|
||||
|
import erm.appetite.jpa.entity.SpreadBusinessObjectEntity; |
||||
|
import io.sc.platform.orm.repository.DaoRepository; |
||||
|
import org.springframework.data.jpa.repository.Query; |
||||
|
import org.springframework.data.repository.query.Param; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
public interface SpreadBusinessObjectRepository extends DaoRepository<SpreadBusinessObjectEntity,String> { |
||||
|
@Query("select e from SpreadBusinessObjectEntity e where e.spread.id=:spreadId") |
||||
|
public List<SpreadBusinessObjectEntity> findBySpreadId(@Param("spreadId") String spreadId); |
||||
|
} |
@ -0,0 +1,13 @@ |
|||||
|
package erm.appetite.jpa.repository; |
||||
|
|
||||
|
import erm.appetite.jpa.entity.SpreadCoreIndicatorEntity; |
||||
|
import io.sc.platform.orm.repository.DaoRepository; |
||||
|
import org.springframework.data.jpa.repository.Query; |
||||
|
import org.springframework.data.repository.query.Param; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
public interface SpreadCoreIndicatorRepository extends DaoRepository<SpreadCoreIndicatorEntity,String> { |
||||
|
@Query("select e from SpreadCoreIndicatorEntity e where e.spread.id=:spreadId") |
||||
|
public List<SpreadCoreIndicatorEntity> findBySpreadId(@Param("spreadId") String spreadId); |
||||
|
} |
@ -0,0 +1,13 @@ |
|||||
|
package erm.appetite.jpa.repository; |
||||
|
|
||||
|
import erm.appetite.jpa.entity.SpreadIndustryEntity; |
||||
|
import io.sc.platform.orm.repository.DaoRepository; |
||||
|
import org.springframework.data.jpa.repository.Query; |
||||
|
import org.springframework.data.repository.query.Param; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
public interface SpreadIndustryRepository extends DaoRepository<SpreadIndustryEntity,String> { |
||||
|
@Query("select e from SpreadIndustryEntity e where e.spread.id=:spreadId") |
||||
|
public List<SpreadIndustryEntity> findBySpreadId(@Param("spreadId") String spreadId); |
||||
|
} |
@ -0,0 +1,8 @@ |
|||||
|
package erm.appetite.jpa.repository; |
||||
|
|
||||
|
import erm.appetite.jpa.entity.SpreadEntity; |
||||
|
import io.sc.platform.orm.repository.DaoRepository; |
||||
|
|
||||
|
public interface SpreadRepository extends DaoRepository<SpreadEntity,String> { |
||||
|
public SpreadEntity findByCode(String code); |
||||
|
} |
@ -0,0 +1,13 @@ |
|||||
|
package erm.appetite.jpa.repository; |
||||
|
|
||||
|
import erm.appetite.jpa.entity.SpreadShareholderEntity; |
||||
|
import io.sc.platform.orm.repository.DaoRepository; |
||||
|
import org.springframework.data.jpa.repository.Query; |
||||
|
import org.springframework.data.repository.query.Param; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
public interface SpreadShareholderRepository extends DaoRepository<SpreadShareholderEntity,String> { |
||||
|
@Query("select e from SpreadShareholderEntity e where e.spread.id=:spreadId") |
||||
|
public List<SpreadShareholderEntity> findBySpreadId(@Param("spreadId") String spreadId); |
||||
|
} |
@ -0,0 +1,13 @@ |
|||||
|
package erm.appetite.jpa.repository; |
||||
|
|
||||
|
import erm.appetite.jpa.entity.SpreadSupervisionEntity; |
||||
|
import io.sc.platform.orm.repository.DaoRepository; |
||||
|
import org.springframework.data.jpa.repository.Query; |
||||
|
import org.springframework.data.repository.query.Param; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
public interface SpreadSupervisionRepository extends DaoRepository<SpreadSupervisionEntity,String> { |
||||
|
@Query("select e from SpreadSupervisionEntity e where e.spread.id=:spreadId") |
||||
|
public List<SpreadSupervisionEntity> findBySpreadId(@Param("spreadId") String spreadId); |
||||
|
} |
@ -0,0 +1,8 @@ |
|||||
|
package erm.appetite.service; |
||||
|
|
||||
|
import erm.appetite.jpa.entity.CrossValidateEntity; |
||||
|
import erm.appetite.jpa.repository.CrossValidateRepository; |
||||
|
import io.sc.platform.orm.service.DaoService; |
||||
|
|
||||
|
public interface CrossValidateService extends DaoService<CrossValidateEntity, String, CrossValidateRepository> { |
||||
|
} |
@ -0,0 +1,13 @@ |
|||||
|
package erm.appetite.service; |
||||
|
|
||||
|
import erm.appetite.api.SpreadBusinessObjectVo; |
||||
|
import erm.appetite.jpa.entity.SpreadBusinessObjectEntity; |
||||
|
import erm.appetite.jpa.repository.SpreadBusinessObjectRepository; |
||||
|
import io.sc.platform.orm.service.DaoService; |
||||
|
import org.springframework.data.repository.query.Param; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
public interface SpreadBusinessObjectService extends DaoService<SpreadBusinessObjectEntity, String, SpreadBusinessObjectRepository> { |
||||
|
public List<SpreadBusinessObjectVo> findBySpreadId(String spreadId) throws Exception; |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
package erm.appetite.service; |
||||
|
|
||||
|
import erm.appetite.api.SpreadCoreIndicatorVo; |
||||
|
import erm.appetite.jpa.entity.SpreadCoreIndicatorEntity; |
||||
|
import erm.appetite.jpa.repository.SpreadCoreIndicatorRepository; |
||||
|
import io.sc.platform.orm.service.DaoService; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
public interface SpreadCoreIndicatorService extends DaoService<SpreadCoreIndicatorEntity, String, SpreadCoreIndicatorRepository> { |
||||
|
public List<SpreadCoreIndicatorVo> findBySpreadId(String spreadId) throws Exception; |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
package erm.appetite.service; |
||||
|
|
||||
|
import erm.appetite.api.SpreadIndustryVo; |
||||
|
import erm.appetite.jpa.entity.SpreadIndustryEntity; |
||||
|
import erm.appetite.jpa.repository.SpreadIndustryRepository; |
||||
|
import io.sc.platform.orm.service.DaoService; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
public interface SpreadIndustryService extends DaoService<SpreadIndustryEntity, String, SpreadIndustryRepository> { |
||||
|
public List<SpreadIndustryVo> findBySpreadId(String spreadId) throws Exception; |
||||
|
} |
@ -0,0 +1,8 @@ |
|||||
|
package erm.appetite.service; |
||||
|
|
||||
|
import erm.appetite.jpa.entity.SpreadEntity; |
||||
|
import erm.appetite.jpa.repository.SpreadRepository; |
||||
|
import io.sc.platform.orm.service.DaoService; |
||||
|
|
||||
|
public interface SpreadService extends DaoService<SpreadEntity, String, SpreadRepository> { |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
package erm.appetite.service; |
||||
|
|
||||
|
import erm.appetite.api.SpreadShareholderVo; |
||||
|
import erm.appetite.jpa.entity.SpreadShareholderEntity; |
||||
|
import erm.appetite.jpa.repository.SpreadShareholderRepository; |
||||
|
import io.sc.platform.orm.service.DaoService; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
public interface SpreadShareholderService extends DaoService<SpreadShareholderEntity, String, SpreadShareholderRepository> { |
||||
|
public List<SpreadShareholderVo> findBySpreadId(String spreadId) throws Exception; |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
package erm.appetite.service; |
||||
|
|
||||
|
import erm.appetite.api.SpreadSupervisionVo; |
||||
|
import erm.appetite.jpa.entity.SpreadSupervisionEntity; |
||||
|
import erm.appetite.jpa.repository.SpreadSupervisionRepository; |
||||
|
import io.sc.platform.orm.service.DaoService; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
public interface SpreadSupervisionService extends DaoService<SpreadSupervisionEntity, String, SpreadSupervisionRepository> { |
||||
|
public List<SpreadSupervisionVo> findBySpreadId(String spreadId) throws Exception; |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
package erm.appetite.service.impl; |
||||
|
|
||||
|
import erm.appetite.jpa.entity.CrossValidateEntity; |
||||
|
import erm.appetite.jpa.repository.CrossValidateRepository; |
||||
|
import erm.appetite.service.CrossValidateService; |
||||
|
import io.sc.platform.orm.service.impl.DaoServiceImpl; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
|
||||
|
@Service |
||||
|
public class CrossValidateServiceImpl extends DaoServiceImpl<CrossValidateEntity, String, CrossValidateRepository> implements CrossValidateService { |
||||
|
|
||||
|
} |
@ -0,0 +1,44 @@ |
|||||
|
package erm.appetite.service.impl; |
||||
|
|
||||
|
import erm.appetite.api.SpreadBusinessObjectVo; |
||||
|
import erm.appetite.jpa.entity.SpreadBusinessObjectEntity; |
||||
|
import erm.appetite.jpa.repository.SpreadBusinessObjectRepository; |
||||
|
import erm.appetite.service.SpreadBusinessObjectService; |
||||
|
import io.sc.platform.orm.service.impl.DaoServiceImpl; |
||||
|
import io.sc.platform.orm.service.support.QueryResult; |
||||
|
import io.sc.platform.orm.util.EntityVoUtil; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
import org.springframework.util.StringUtils; |
||||
|
|
||||
|
import java.util.Collections; |
||||
|
import java.util.List; |
||||
|
|
||||
|
@Service |
||||
|
public class SpreadBusinessObjectServiceImpl extends DaoServiceImpl<SpreadBusinessObjectEntity, String, SpreadBusinessObjectRepository> implements SpreadBusinessObjectService { |
||||
|
@Override |
||||
|
public List<SpreadBusinessObjectVo> findBySpreadId(String spreadId) throws Exception { |
||||
|
if(StringUtils.hasText(spreadId)) { |
||||
|
List<SpreadBusinessObjectEntity> entities = repository.findBySpreadId(spreadId); |
||||
|
if(entities!=null && !entities.isEmpty()){ |
||||
|
return EntityVoUtil.toVo(entities); |
||||
|
} |
||||
|
} |
||||
|
return Collections.emptyList(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public SpreadBusinessObjectEntity add(SpreadBusinessObjectEntity entity) throws Exception { |
||||
|
if(entity!=null){ |
||||
|
entity.setRange(entity.getPolicy().getRange()); |
||||
|
} |
||||
|
return super.add(entity); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public SpreadBusinessObjectEntity update(String s, SpreadBusinessObjectEntity entity) throws Exception { |
||||
|
if(entity!=null){ |
||||
|
entity.setRange(entity.getPolicy().getRange()); |
||||
|
} |
||||
|
return super.update(s, entity); |
||||
|
} |
||||
|
} |
@ -0,0 +1,27 @@ |
|||||
|
package erm.appetite.service.impl; |
||||
|
|
||||
|
import erm.appetite.api.SpreadCoreIndicatorVo; |
||||
|
import erm.appetite.jpa.entity.SpreadCoreIndicatorEntity; |
||||
|
import erm.appetite.jpa.repository.SpreadCoreIndicatorRepository; |
||||
|
import erm.appetite.service.SpreadCoreIndicatorService; |
||||
|
import io.sc.platform.orm.service.impl.DaoServiceImpl; |
||||
|
import io.sc.platform.orm.util.EntityVoUtil; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
import org.springframework.util.StringUtils; |
||||
|
|
||||
|
import java.util.Collections; |
||||
|
import java.util.List; |
||||
|
|
||||
|
@Service |
||||
|
public class SpreadCoreIndicatorServiceImpl extends DaoServiceImpl<SpreadCoreIndicatorEntity, String, SpreadCoreIndicatorRepository> implements SpreadCoreIndicatorService { |
||||
|
@Override |
||||
|
public List<SpreadCoreIndicatorVo> findBySpreadId(String spreadId) throws Exception { |
||||
|
if(StringUtils.hasText(spreadId)) { |
||||
|
List<SpreadCoreIndicatorEntity> entities = repository.findBySpreadId(spreadId); |
||||
|
if(entities!=null && !entities.isEmpty()){ |
||||
|
return EntityVoUtil.toVo(entities); |
||||
|
} |
||||
|
} |
||||
|
return Collections.emptyList(); |
||||
|
} |
||||
|
} |
@ -0,0 +1,44 @@ |
|||||
|
package erm.appetite.service.impl; |
||||
|
|
||||
|
import erm.appetite.api.SpreadIndustryVo; |
||||
|
import erm.appetite.jpa.entity.SpreadBusinessObjectEntity; |
||||
|
import erm.appetite.jpa.entity.SpreadIndustryEntity; |
||||
|
import erm.appetite.jpa.repository.SpreadIndustryRepository; |
||||
|
import erm.appetite.service.SpreadIndustryService; |
||||
|
import io.sc.platform.orm.service.impl.DaoServiceImpl; |
||||
|
import io.sc.platform.orm.util.EntityVoUtil; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
import org.springframework.util.StringUtils; |
||||
|
|
||||
|
import java.util.Collections; |
||||
|
import java.util.List; |
||||
|
|
||||
|
@Service |
||||
|
public class SpreadIndustryServiceImpl extends DaoServiceImpl<SpreadIndustryEntity, String, SpreadIndustryRepository> implements SpreadIndustryService { |
||||
|
@Override |
||||
|
public List<SpreadIndustryVo> findBySpreadId(String spreadId) throws Exception { |
||||
|
if(StringUtils.hasText(spreadId)) { |
||||
|
List<SpreadIndustryEntity> entities = repository.findBySpreadId(spreadId); |
||||
|
if(entities!=null && !entities.isEmpty()){ |
||||
|
return EntityVoUtil.toVo(entities); |
||||
|
} |
||||
|
} |
||||
|
return Collections.emptyList(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public SpreadIndustryEntity add(SpreadIndustryEntity entity) throws Exception { |
||||
|
if(entity!=null){ |
||||
|
entity.setRange(entity.getPolicy().getRange()); |
||||
|
} |
||||
|
return super.add(entity); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public SpreadIndustryEntity update(String s, SpreadIndustryEntity entity) throws Exception { |
||||
|
if(entity!=null){ |
||||
|
entity.setRange(entity.getPolicy().getRange()); |
||||
|
} |
||||
|
return super.update(s, entity); |
||||
|
} |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
package erm.appetite.service.impl; |
||||
|
|
||||
|
import erm.appetite.jpa.entity.SpreadEntity; |
||||
|
import erm.appetite.jpa.repository.SpreadRepository; |
||||
|
import erm.appetite.service.SpreadService; |
||||
|
import io.sc.platform.orm.service.impl.DaoServiceImpl; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
|
||||
|
@Service |
||||
|
public class SpreadServiceImpl extends DaoServiceImpl<SpreadEntity, String, SpreadRepository> implements SpreadService { |
||||
|
|
||||
|
} |
@ -0,0 +1,27 @@ |
|||||
|
package erm.appetite.service.impl; |
||||
|
|
||||
|
import erm.appetite.api.SpreadShareholderVo; |
||||
|
import erm.appetite.jpa.entity.SpreadShareholderEntity; |
||||
|
import erm.appetite.jpa.repository.SpreadShareholderRepository; |
||||
|
import erm.appetite.service.SpreadShareholderService; |
||||
|
import io.sc.platform.orm.service.impl.DaoServiceImpl; |
||||
|
import io.sc.platform.orm.util.EntityVoUtil; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
import org.springframework.util.StringUtils; |
||||
|
|
||||
|
import java.util.Collections; |
||||
|
import java.util.List; |
||||
|
|
||||
|
@Service |
||||
|
public class SpreadShareholderServiceImpl extends DaoServiceImpl<SpreadShareholderEntity, String, SpreadShareholderRepository> implements SpreadShareholderService { |
||||
|
@Override |
||||
|
public List<SpreadShareholderVo> findBySpreadId(String spreadId) throws Exception { |
||||
|
if(StringUtils.hasText(spreadId)) { |
||||
|
List<SpreadShareholderEntity> entities = repository.findBySpreadId(spreadId); |
||||
|
if(entities!=null && !entities.isEmpty()){ |
||||
|
return EntityVoUtil.toVo(entities); |
||||
|
} |
||||
|
} |
||||
|
return Collections.emptyList(); |
||||
|
} |
||||
|
} |
@ -0,0 +1,27 @@ |
|||||
|
package erm.appetite.service.impl; |
||||
|
|
||||
|
import erm.appetite.api.SpreadSupervisionVo; |
||||
|
import erm.appetite.jpa.entity.SpreadSupervisionEntity; |
||||
|
import erm.appetite.jpa.repository.SpreadSupervisionRepository; |
||||
|
import erm.appetite.service.SpreadSupervisionService; |
||||
|
import io.sc.platform.orm.service.impl.DaoServiceImpl; |
||||
|
import io.sc.platform.orm.util.EntityVoUtil; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
import org.springframework.util.StringUtils; |
||||
|
|
||||
|
import java.util.Collections; |
||||
|
import java.util.List; |
||||
|
|
||||
|
@Service |
||||
|
public class SpreadSupervisionServiceImpl extends DaoServiceImpl<SpreadSupervisionEntity, String, SpreadSupervisionRepository> implements SpreadSupervisionService { |
||||
|
@Override |
||||
|
public List<SpreadSupervisionVo> findBySpreadId(String spreadId) throws Exception { |
||||
|
if(StringUtils.hasText(spreadId)) { |
||||
|
List<SpreadSupervisionEntity> entities = repository.findBySpreadId(spreadId); |
||||
|
if(entities!=null && !entities.isEmpty()){ |
||||
|
return EntityVoUtil.toVo(entities); |
||||
|
} |
||||
|
} |
||||
|
return Collections.emptyList(); |
||||
|
} |
||||
|
} |
@ -0,0 +1,16 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<databaseChangeLog |
||||
|
xmlns="http://www.liquibase.org/xml/ns/dbchangelog" |
||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" |
||||
|
xsi:schemaLocation=" |
||||
|
http://www.liquibase.org/xml/ns/dbchangelog |
||||
|
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.1.xsd |
||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext |
||||
|
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd |
||||
|
" |
||||
|
> |
||||
|
<changeSet id="erm.appetite_1.0.0_20221020__ERM Appetite Database Data" author="platform"> |
||||
|
|
||||
|
</changeSet> |
||||
|
</databaseChangeLog> |
@ -0,0 +1,259 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<databaseChangeLog |
||||
|
xmlns="http://www.liquibase.org/xml/ns/dbchangelog" |
||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" |
||||
|
xsi:schemaLocation=" |
||||
|
http://www.liquibase.org/xml/ns/dbchangelog |
||||
|
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.1.xsd |
||||
|
http://www.liquibase.org/xml/ns/dbchangelog-ext |
||||
|
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd |
||||
|
" |
||||
|
> |
||||
|
<changeSet id="erm.appetite_1.0.0_20221020__ERM Appetite Database Schema DDL" author="platform"> |
||||
|
<!-- 风险偏好交叉验证表 --> |
||||
|
<createTable tableName="RP_APT_CROSS_VALIDATE" remarks="风险偏好交叉验证表"> |
||||
|
<column name="ID_" type="NVARCHAR(36)" remarks="ID"> |
||||
|
<constraints primaryKey="true"/> |
||||
|
</column> |
||||
|
<column name="CODE_" type="NVARCHAR(255)" remarks="代码"/> |
||||
|
<column name="NAME_" type="NVARCHAR(255)" remarks="名称"/> |
||||
|
<column name="DESCRIPTION_" type="CLOB" remarks="描述"/> |
||||
|
<column name="YEAR_" type="NVARCHAR(4)" remarks="年份"/> |
||||
|
|
||||
|
<column name="JPA_VERSION_" type="INTEGER" remarks="JPA乐观锁版本"/> |
||||
|
<column name="DATA_COME_FROM_" type="NVARCHAR(10)" remarks="数据来源(INPUT:手工录入,IMPORT:系统自动导入)"/> |
||||
|
<column name="CREATOR_" type="NVARCHAR(255)" remarks="创建人"/> |
||||
|
<column name="CREATE_DATE_" type="DATETIME" remarks="创建日期"/> |
||||
|
<column name="LAST_MODIFIER_" type="NVARCHAR(255)" remarks="最后修改人"/> |
||||
|
<column name="LAST_MODIFYDATE_" type="DATETIME" remarks="最后修改日期"/> |
||||
|
<column name="CORP_CODE_" type="NVARCHAR(255)" remarks="所属法人代码"/> |
||||
|
</createTable> |
||||
|
<addUniqueConstraint tableName="RP_APT_CROSS_VALIDATE" columnNames="CODE_,CORP_CODE_"></addUniqueConstraint> |
||||
|
<addNotNullConstraint columnName="CODE_" columnDataType="NVARCHAR(255)" tableName="RP_APT_CROSS_VALIDATE" constraintName="CONST_RP_APT_CROSS_VALIDATE_CODE"/> |
||||
|
<addNotNullConstraint columnName="DATA_COME_FROM_" columnDataType="NVARCHAR(10)" tableName="RP_APT_CROSS_VALIDATE" constraintName="CONST_RP_APT_CROSS_VALIDATE_DCF"/> |
||||
|
<addNotNullConstraint columnName="CORP_CODE_" columnDataType="NVARCHAR(255)" tableName="RP_APT_CROSS_VALIDATE" constraintName="CONST_RP_APT_CROSS_VALIDATE_CORP"/> |
||||
|
<addDefaultValue columnName="DATA_COME_FROM_" columnDataType="NVARCHAR(10)" tableName="RP_APT_CROSS_VALIDATE" defaultValue="INPUT"/> |
||||
|
<addDefaultValue columnName="CORP_CODE_" columnDataType="NVARCHAR(255)" tableName="RP_APT_CROSS_VALIDATE" defaultValue="_PRIMARY_"/> |
||||
|
|
||||
|
<!-- 风险偏好传导机制表 --> |
||||
|
<createTable tableName="RP_APT_SPREAD" remarks="风险偏好传导机制表"> |
||||
|
<column name="ID_" type="NVARCHAR(36)" remarks="ID"> |
||||
|
<constraints primaryKey="true"/> |
||||
|
</column> |
||||
|
<column name="CODE_" type="NVARCHAR(255)" remarks="代码"/> |
||||
|
<column name="NAME_" type="NVARCHAR(255)" remarks="名称"/> |
||||
|
<column name="DESCRIPTION_" type="CLOB" remarks="描述"/> |
||||
|
<column name="YEAR_" type="NVARCHAR(4)" remarks="年份"/> |
||||
|
<column name="CROSS_VALIDATE_ID_" type="NVARCHAR(36)" remarks="风险偏好交叉验证ID"/> |
||||
|
|
||||
|
<column name="JPA_VERSION_" type="INTEGER" remarks="JPA乐观锁版本"/> |
||||
|
<column name="DATA_COME_FROM_" type="NVARCHAR(10)" remarks="数据来源(INPUT:手工录入,IMPORT:系统自动导入)"/> |
||||
|
<column name="CREATOR_" type="NVARCHAR(255)" remarks="创建人"/> |
||||
|
<column name="CREATE_DATE_" type="DATETIME" remarks="创建日期"/> |
||||
|
<column name="LAST_MODIFIER_" type="NVARCHAR(255)" remarks="最后修改人"/> |
||||
|
<column name="LAST_MODIFYDATE_" type="DATETIME" remarks="最后修改日期"/> |
||||
|
<column name="CORP_CODE_" type="NVARCHAR(255)" remarks="所属法人代码"/> |
||||
|
</createTable> |
||||
|
<addUniqueConstraint tableName="RP_APT_SPREAD" columnNames="CODE_,CORP_CODE_"></addUniqueConstraint> |
||||
|
<addNotNullConstraint columnName="CODE_" columnDataType="NVARCHAR(255)" tableName="RP_APT_SPREAD" constraintName="CONST_RP_APT_SPREAD_CODE"/> |
||||
|
<addNotNullConstraint columnName="DATA_COME_FROM_" columnDataType="NVARCHAR(10)" tableName="RP_APT_SPREAD" constraintName="CONST_RP_APT_SPREAD_DCF"/> |
||||
|
<addNotNullConstraint columnName="CORP_CODE_" columnDataType="NVARCHAR(255)" tableName="RP_APT_SPREAD" constraintName="CONST_RP_APT_SPREAD_CORP"/> |
||||
|
<addDefaultValue columnName="DATA_COME_FROM_" columnDataType="NVARCHAR(10)" tableName="RP_APT_SPREAD" defaultValue="INPUT"/> |
||||
|
<addDefaultValue columnName="CORP_CODE_" columnDataType="NVARCHAR(255)" tableName="RP_APT_SPREAD" defaultValue="_PRIMARY_"/> |
||||
|
|
||||
|
<!-- 当风险偏好交叉验证被删除,其所有风险偏好传导机制也被删除 --> |
||||
|
<addForeignKeyConstraint |
||||
|
constraintName="FK_RP_APT_SPREAD_CVID" |
||||
|
baseTableName="RP_APT_SPREAD" |
||||
|
baseColumnNames="CROSS_VALIDATE_ID_" |
||||
|
referencedTableName="RP_APT_CROSS_VALIDATE" |
||||
|
referencedColumnNames="ID_" onDelete="CASCADE"/> |
||||
|
|
||||
|
<!-- 风险偏好传导机制(业务战略目标传导分析)表 --> |
||||
|
<createTable tableName="RP_APT_SPREAD_BO" remarks="风险偏好传导机制(业务战略目标传导分析)表"> |
||||
|
<column name="ID_" type="NVARCHAR(36)" remarks="ID"> |
||||
|
<constraints primaryKey="true"/> |
||||
|
</column> |
||||
|
<column name="SPREAD_ID_" type="NVARCHAR(36)" remarks="风险偏好传导机制ID"/> |
||||
|
<column name="BUSINESS_" type="NVARCHAR(20)" remarks="业务条线"/> |
||||
|
<column name="POLICY_" type="NVARCHAR(20)" remarks="风险基调"/> |
||||
|
<column name="RANGE_" type="NVARCHAR(20)" remarks="对应区间"/> |
||||
|
<column name="LAST_YEAR_LOAN_BALANCE_" type="NUMERIC(31,6)" remarks="上年贷款余额"/> |
||||
|
<column name="LAST_YEAR_NPL_" type="NUMERIC(31,6)" remarks="上年不良贷款率"/> |
||||
|
<column name="GROWTH_PERCENT_" type="NUMERIC(31,6)" remarks="预计增长率"/> |
||||
|
<column name="PREDICT_LOAN_BALANCE_" type="NUMERIC(31,6)" remarks="预计本年贷款余额"/> |
||||
|
<column name="PREDICT_NPL_" type="NUMERIC(31,6)" remarks="预计本年不良贷款率"/> |
||||
|
|
||||
|
<column name="JPA_VERSION_" type="INTEGER" remarks="JPA乐观锁版本"/> |
||||
|
<column name="DATA_COME_FROM_" type="NVARCHAR(10)" remarks="数据来源(INPUT:手工录入,IMPORT:系统自动导入)"/> |
||||
|
<column name="CREATOR_" type="NVARCHAR(255)" remarks="创建人"/> |
||||
|
<column name="CREATE_DATE_" type="DATETIME" remarks="创建日期"/> |
||||
|
<column name="LAST_MODIFIER_" type="NVARCHAR(255)" remarks="最后修改人"/> |
||||
|
<column name="LAST_MODIFYDATE_" type="DATETIME" remarks="最后修改日期"/> |
||||
|
<column name="CORP_CODE_" type="NVARCHAR(255)" remarks="所属法人代码"/> |
||||
|
</createTable> |
||||
|
<addNotNullConstraint columnName="DATA_COME_FROM_" columnDataType="NVARCHAR(10)" tableName="RP_APT_SPREAD_BO" constraintName="CONST_RP_APT_SPREAD_BO_DCF"/> |
||||
|
<addNotNullConstraint columnName="CORP_CODE_" columnDataType="NVARCHAR(255)" tableName="RP_APT_SPREAD_BO" constraintName="CONST_RP_APT_SPREAD_BO_CORP"/> |
||||
|
<addDefaultValue columnName="DATA_COME_FROM_" columnDataType="NVARCHAR(10)" tableName="RP_APT_SPREAD_BO" defaultValue="INPUT"/> |
||||
|
<addDefaultValue columnName="CORP_CODE_" columnDataType="NVARCHAR(255)" tableName="RP_APT_SPREAD_BO" defaultValue="_PRIMARY_"/> |
||||
|
|
||||
|
<!-- 当风险偏好传导机制被删除,其所有业务战略目标传导分析也被删除 --> |
||||
|
<addForeignKeyConstraint |
||||
|
constraintName="FK_RP_APT_SPREAD_BO_SPID" |
||||
|
baseTableName="RP_APT_SPREAD_BO" |
||||
|
baseColumnNames="SPREAD_ID_" |
||||
|
referencedTableName="RP_APT_SPREAD" |
||||
|
referencedColumnNames="ID_" onDelete="CASCADE"/> |
||||
|
|
||||
|
<!-- 风险偏好传导机制(行业分析)表 --> |
||||
|
<createTable tableName="RP_APT_SPREAD_INDUSTRY" remarks="风险偏好传导机制(行业分析)表"> |
||||
|
<column name="ID_" type="NVARCHAR(36)" remarks="ID"> |
||||
|
<constraints primaryKey="true"/> |
||||
|
</column> |
||||
|
<column name="SPREAD_ID_" type="NVARCHAR(36)" remarks="风险偏好传导机制ID"/> |
||||
|
<column name="INDUSTRY_" type="NVARCHAR(20)" remarks="行业"/> |
||||
|
<column name="POLICY_" type="NVARCHAR(20)" remarks="风险基调"/> |
||||
|
<column name="RANGE_" type="NVARCHAR(20)" remarks="对应区间"/> |
||||
|
<column name="LAST_YEAR_LOAN_BALANCE_" type="NUMERIC(31,6)" remarks="上年贷款余额"/> |
||||
|
<column name="LAST_YEAR_NPL_" type="NUMERIC(31,6)" remarks="上年不良贷款率"/> |
||||
|
<column name="GROWTH_PERCENT_" type="NUMERIC(31,6)" remarks="预计增长率"/> |
||||
|
<column name="PREDICT_LOAN_BALANCE_" type="NUMERIC(31,6)" remarks="预计本年贷款余额"/> |
||||
|
<column name="PREDICT_NPL_" type="NUMERIC(31,6)" remarks="预计本年不良贷款率"/> |
||||
|
|
||||
|
<column name="JPA_VERSION_" type="INTEGER" remarks="JPA乐观锁版本"/> |
||||
|
<column name="DATA_COME_FROM_" type="NVARCHAR(10)" remarks="数据来源(INPUT:手工录入,IMPORT:系统自动导入)"/> |
||||
|
<column name="CREATOR_" type="NVARCHAR(255)" remarks="创建人"/> |
||||
|
<column name="CREATE_DATE_" type="DATETIME" remarks="创建日期"/> |
||||
|
<column name="LAST_MODIFIER_" type="NVARCHAR(255)" remarks="最后修改人"/> |
||||
|
<column name="LAST_MODIFYDATE_" type="DATETIME" remarks="最后修改日期"/> |
||||
|
<column name="CORP_CODE_" type="NVARCHAR(255)" remarks="所属法人代码"/> |
||||
|
</createTable> |
||||
|
<addNotNullConstraint columnName="DATA_COME_FROM_" columnDataType="NVARCHAR(10)" tableName="RP_APT_SPREAD_INDUSTRY" constraintName="CONST_RP_APT_SPREAD_INDUSTRY_DCF"/> |
||||
|
<addNotNullConstraint columnName="CORP_CODE_" columnDataType="NVARCHAR(255)" tableName="RP_APT_SPREAD_INDUSTRY" constraintName="CONST_RP_APT_SPREAD_INDUSTRY_CORP"/> |
||||
|
<addDefaultValue columnName="DATA_COME_FROM_" columnDataType="NVARCHAR(10)" tableName="RP_APT_SPREAD_INDUSTRY" defaultValue="INPUT"/> |
||||
|
<addDefaultValue columnName="CORP_CODE_" columnDataType="NVARCHAR(255)" tableName="RP_APT_SPREAD_INDUSTRY" defaultValue="_PRIMARY_"/> |
||||
|
|
||||
|
<!-- 当风险偏好传导机制被删除,其所有业务战略目标传导分析也被删除 --> |
||||
|
<addForeignKeyConstraint |
||||
|
constraintName="FK_RP_APT_SPREAD_ID_SPID" |
||||
|
baseTableName="RP_APT_SPREAD_INDUSTRY" |
||||
|
baseColumnNames="SPREAD_ID_" |
||||
|
referencedTableName="RP_APT_SPREAD" |
||||
|
referencedColumnNames="ID_" onDelete="CASCADE"/> |
||||
|
|
||||
|
<!-- 风险偏好传导机制(利益相关方-股东)表 --> |
||||
|
<createTable tableName="RP_APT_SPREAD_SH" remarks="风险偏好传导机制(利益相关方-股东)表"> |
||||
|
<column name="ID_" type="NVARCHAR(36)" remarks="ID"> |
||||
|
<constraints primaryKey="true"/> |
||||
|
</column> |
||||
|
<column name="SPREAD_ID_" type="NVARCHAR(36)" remarks="风险偏好传导机制ID"/> |
||||
|
<column name="STAKE_HOLDER_" type="NVARCHAR(20)" remarks="利益相关方"/> |
||||
|
<column name="INDICATOR_ID_" type="NVARCHAR(36)" remarks="指标ID"/> |
||||
|
<column name="CONDITION_" type="NVARCHAR(255)" remarks="条件"/> |
||||
|
|
||||
|
<column name="JPA_VERSION_" type="INTEGER" remarks="JPA乐观锁版本"/> |
||||
|
<column name="DATA_COME_FROM_" type="NVARCHAR(10)" remarks="数据来源(INPUT:手工录入,IMPORT:系统自动导入)"/> |
||||
|
<column name="CREATOR_" type="NVARCHAR(255)" remarks="创建人"/> |
||||
|
<column name="CREATE_DATE_" type="DATETIME" remarks="创建日期"/> |
||||
|
<column name="LAST_MODIFIER_" type="NVARCHAR(255)" remarks="最后修改人"/> |
||||
|
<column name="LAST_MODIFYDATE_" type="DATETIME" remarks="最后修改日期"/> |
||||
|
<column name="CORP_CODE_" type="NVARCHAR(255)" remarks="所属法人代码"/> |
||||
|
</createTable> |
||||
|
<addNotNullConstraint columnName="DATA_COME_FROM_" columnDataType="NVARCHAR(10)" tableName="RP_APT_SPREAD_SH" constraintName="CONST_RP_APT_SPREAD_SH_DCF"/> |
||||
|
<addNotNullConstraint columnName="CORP_CODE_" columnDataType="NVARCHAR(255)" tableName="RP_APT_SPREAD_SH" constraintName="CONST_RP_APT_SPREAD_SH_CORP"/> |
||||
|
<addDefaultValue columnName="DATA_COME_FROM_" columnDataType="NVARCHAR(10)" tableName="RP_APT_SPREAD_SH" defaultValue="INPUT"/> |
||||
|
<addDefaultValue columnName="CORP_CODE_" columnDataType="NVARCHAR(255)" tableName="RP_APT_SPREAD_SH" defaultValue="_PRIMARY_"/> |
||||
|
|
||||
|
<!-- 当风险偏好传导机制被删除,其所有业务利益相关方-股东分析也被删除 --> |
||||
|
<addForeignKeyConstraint |
||||
|
constraintName="FK_RP_APT_SPREAD_SH_SPID" |
||||
|
baseTableName="RP_APT_SPREAD_SH" |
||||
|
baseColumnNames="SPREAD_ID_" |
||||
|
referencedTableName="RP_APT_SPREAD" |
||||
|
referencedColumnNames="ID_" onDelete="CASCADE"/> |
||||
|
<addForeignKeyConstraint |
||||
|
constraintName="FK_RP_APT_SPREAD_SH_IDX_ID" |
||||
|
baseTableName="RP_APT_SPREAD_SH" |
||||
|
baseColumnNames="INDICATOR_ID_" |
||||
|
referencedTableName="RP_INDICATOR" |
||||
|
referencedColumnNames="ID_" onDelete="CASCADE"/> |
||||
|
|
||||
|
<!-- 风险偏好传导机制(利益相关方-监管)表 --> |
||||
|
<createTable tableName="RP_APT_SPREAD_SV" remarks="风险偏好传导机制(利益相关方-监管)表"> |
||||
|
<column name="ID_" type="NVARCHAR(36)" remarks="ID"> |
||||
|
<constraints primaryKey="true"/> |
||||
|
</column> |
||||
|
<column name="SPREAD_ID_" type="NVARCHAR(36)" remarks="风险偏好传导机制ID"/> |
||||
|
<column name="STAKE_HOLDER_" type="NVARCHAR(20)" remarks="利益相关方"/> |
||||
|
<column name="INDICATOR_ID_" type="NVARCHAR(36)" remarks="指标ID"/> |
||||
|
<column name="CONDITION_" type="NVARCHAR(255)" remarks="条件"/> |
||||
|
|
||||
|
<column name="JPA_VERSION_" type="INTEGER" remarks="JPA乐观锁版本"/> |
||||
|
<column name="DATA_COME_FROM_" type="NVARCHAR(10)" remarks="数据来源(INPUT:手工录入,IMPORT:系统自动导入)"/> |
||||
|
<column name="CREATOR_" type="NVARCHAR(255)" remarks="创建人"/> |
||||
|
<column name="CREATE_DATE_" type="DATETIME" remarks="创建日期"/> |
||||
|
<column name="LAST_MODIFIER_" type="NVARCHAR(255)" remarks="最后修改人"/> |
||||
|
<column name="LAST_MODIFYDATE_" type="DATETIME" remarks="最后修改日期"/> |
||||
|
<column name="CORP_CODE_" type="NVARCHAR(255)" remarks="所属法人代码"/> |
||||
|
</createTable> |
||||
|
<addNotNullConstraint columnName="DATA_COME_FROM_" columnDataType="NVARCHAR(10)" tableName="RP_APT_SPREAD_SV" constraintName="CONST_RP_APT_SPREAD_SV_DCF"/> |
||||
|
<addNotNullConstraint columnName="CORP_CODE_" columnDataType="NVARCHAR(255)" tableName="RP_APT_SPREAD_SV" constraintName="CONST_RP_APT_SPREAD_SV_CORP"/> |
||||
|
<addDefaultValue columnName="DATA_COME_FROM_" columnDataType="NVARCHAR(10)" tableName="RP_APT_SPREAD_SV" defaultValue="INPUT"/> |
||||
|
<addDefaultValue columnName="CORP_CODE_" columnDataType="NVARCHAR(255)" tableName="RP_APT_SPREAD_SV" defaultValue="_PRIMARY_"/> |
||||
|
|
||||
|
<!-- 当风险偏好传导机制被删除,其所有业务利益相关方-股东分析也被删除 --> |
||||
|
<addForeignKeyConstraint |
||||
|
constraintName="FK_RP_APT_SPREAD_SV_SPID" |
||||
|
baseTableName="RP_APT_SPREAD_SV" |
||||
|
baseColumnNames="SPREAD_ID_" |
||||
|
referencedTableName="RP_APT_SPREAD" |
||||
|
referencedColumnNames="ID_" onDelete="CASCADE"/> |
||||
|
<addForeignKeyConstraint |
||||
|
constraintName="FK_RP_APT_SPREAD_SV_IDX_ID" |
||||
|
baseTableName="RP_APT_SPREAD_SV" |
||||
|
baseColumnNames="INDICATOR_ID_" |
||||
|
referencedTableName="RP_INDICATOR" |
||||
|
referencedColumnNames="ID_" onDelete="CASCADE"/> |
||||
|
|
||||
|
<!-- 风险偏好传导机制(核心指标)表 --> |
||||
|
<createTable tableName="RP_APT_SPREAD_CI" remarks="风险偏好传导机制(核心指标)表"> |
||||
|
<column name="ID_" type="NVARCHAR(36)" remarks="ID"> |
||||
|
<constraints primaryKey="true"/> |
||||
|
</column> |
||||
|
<column name="SPREAD_ID_" type="NVARCHAR(36)" remarks="风险偏好传导机制ID"/> |
||||
|
<column name="INDICATOR_ID_" type="NVARCHAR(36)" remarks="指标ID"/> |
||||
|
<column name="SUPERVISION_MIN_VALUE_" type="NUMERIC(31,6)" remarks="容忍下限(监管要求)"/> |
||||
|
<column name="EXPECT_VALUE_" type="NUMERIC(31,6)" remarks="目标值(股东期望)"/> |
||||
|
<column name="REFERENCE_VALUE_" type="NUMERIC(31,6)" remarks="参考值(定量传导)"/> |
||||
|
<column name="LAST_YEAR_VALUE" type="NUMERIC(31,6)" remarks="上年度指标值"/> |
||||
|
|
||||
|
<column name="JPA_VERSION_" type="INTEGER" remarks="JPA乐观锁版本"/> |
||||
|
<column name="DATA_COME_FROM_" type="NVARCHAR(10)" remarks="数据来源(INPUT:手工录入,IMPORT:系统自动导入)"/> |
||||
|
<column name="CREATOR_" type="NVARCHAR(255)" remarks="创建人"/> |
||||
|
<column name="CREATE_DATE_" type="DATETIME" remarks="创建日期"/> |
||||
|
<column name="LAST_MODIFIER_" type="NVARCHAR(255)" remarks="最后修改人"/> |
||||
|
<column name="LAST_MODIFYDATE_" type="DATETIME" remarks="最后修改日期"/> |
||||
|
<column name="CORP_CODE_" type="NVARCHAR(255)" remarks="所属法人代码"/> |
||||
|
</createTable> |
||||
|
<addNotNullConstraint columnName="DATA_COME_FROM_" columnDataType="NVARCHAR(10)" tableName="RP_APT_SPREAD_CI" constraintName="CONST_RP_APT_SPREAD_CI_DCF"/> |
||||
|
<addNotNullConstraint columnName="CORP_CODE_" columnDataType="NVARCHAR(255)" tableName="RP_APT_SPREAD_CI" constraintName="CONST_RP_APT_SPREAD_CI_CORP"/> |
||||
|
<addDefaultValue columnName="DATA_COME_FROM_" columnDataType="NVARCHAR(10)" tableName="RP_APT_SPREAD_CI" defaultValue="INPUT"/> |
||||
|
<addDefaultValue columnName="CORP_CODE_" columnDataType="NVARCHAR(255)" tableName="RP_APT_SPREAD_CI" defaultValue="_PRIMARY_"/> |
||||
|
|
||||
|
<!-- 当风险偏好传导机制被删除,其所有业务利益相关方-股东分析也被删除 --> |
||||
|
<addForeignKeyConstraint |
||||
|
constraintName="FK_RP_APT_SPREAD_CI_SPID" |
||||
|
baseTableName="RP_APT_SPREAD_CI" |
||||
|
baseColumnNames="SPREAD_ID_" |
||||
|
referencedTableName="RP_APT_SPREAD" |
||||
|
referencedColumnNames="ID_" onDelete="CASCADE"/> |
||||
|
<addForeignKeyConstraint |
||||
|
constraintName="FK_RP_APT_SPREAD_CI_IDX_ID" |
||||
|
baseTableName="RP_APT_SPREAD_CI" |
||||
|
baseColumnNames="INDICATOR_ID_" |
||||
|
referencedTableName="RP_INDICATOR" |
||||
|
referencedColumnNames="ID_" onDelete="CASCADE"/> |
||||
|
</changeSet> |
||||
|
</databaseChangeLog> |
||||
|
|
|
@ -0,0 +1,33 @@ |
|||||
|
<template> |
||||
|
<w-grid |
||||
|
:title="$t('menu.developer.plugin.initializer')" |
||||
|
:toolbar-actions="['refresh', 'separator', 'view', 'export']" |
||||
|
:fetch-data-url="Environment.apiContextPath('/api/developer/plugins/liquibase')" |
||||
|
:checkbox-selection="false" |
||||
|
:pageable="false" |
||||
|
:columns="[ |
||||
|
{ width: 80, name: 'order', label: $t('order'), align: 'right', sortable: false }, |
||||
|
{ width: 80, name: 'category', label: $t('category'), format: (value) => $t(value), align: 'left', sortable: false }, |
||||
|
{ width: 200, name: 'description', label: $t('description'), format: (value) => $t(value), align: 'left', sortable: false }, |
||||
|
{ |
||||
|
width: 600, |
||||
|
name: 'locations', |
||||
|
label: $t('location'), |
||||
|
format: (locations) => { |
||||
|
locations = locations || []; |
||||
|
let result = ''; |
||||
|
for (const location of locations) { |
||||
|
result += location + '<br/>'; |
||||
|
} |
||||
|
return result; |
||||
|
}, |
||||
|
align: 'left', |
||||
|
sortable: false, |
||||
|
}, |
||||
|
{ width: '100%', name: 'configurationFileUrl', label: $t('url'), sortable: false }, |
||||
|
]" |
||||
|
></w-grid> |
||||
|
</template> |
||||
|
<script setup lang="ts"> |
||||
|
import { Environment } from 'platform-core'; |
||||
|
</script> |
@ -0,0 +1,20 @@ |
|||||
|
package io.sc.platform.developer.controller.plugins; |
||||
|
|
||||
|
import io.sc.platform.jdbc.liquibase.plugins.PluginManager; |
||||
|
import io.sc.platform.jdbc.liquibase.plugins.item.LiquibaseChangeLog; |
||||
|
import org.springframework.stereotype.Controller; |
||||
|
import org.springframework.web.bind.annotation.GetMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
import org.springframework.web.bind.annotation.ResponseBody; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
@Controller |
||||
|
@RequestMapping("/api/developer/plugins/liquibase") |
||||
|
public class PluginLiquibaseWebController { |
||||
|
@GetMapping("") |
||||
|
@ResponseBody |
||||
|
public List<LiquibaseChangeLog> directories(){ |
||||
|
return PluginManager.getInstance().getLiquibaseChangeLogs(); |
||||
|
} |
||||
|
} |
@ -1,38 +0,0 @@ |
|||||
package io.sc.platform.flowable.initializer; |
|
||||
|
|
||||
import io.sc.platform.core.initializer.ApplicationInitializer; |
|
||||
import io.sc.platform.core.initializer.ApplicationInitializerExecuteException; |
|
||||
import io.sc.platform.core.util.BeanUtil; |
|
||||
import io.sc.platform.system.dictionary.jpa.entity.DictionaryEntity; |
|
||||
import io.sc.platform.system.dictionary.service.DictionaryService; |
|
||||
import io.sc.platform.system.i18n.jpa.entity.I18nEntity; |
|
||||
import io.sc.platform.system.i18n.service.I18nService; |
|
||||
import org.springframework.context.ApplicationContext; |
|
||||
|
|
||||
public class SampleWorkFlowSystemDictionaryInitializer implements ApplicationInitializer { |
|
||||
private DictionaryService dictionaryService; |
|
||||
@Override |
|
||||
public void init(ApplicationContext applicationContext) { |
|
||||
this.dictionaryService = BeanUtil.getBean(applicationContext,DictionaryService.class); |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
public int getOrder() { |
|
||||
return 10000; |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
public boolean isInitialized() { |
|
||||
return dictionaryService.getRepository().count()>0; |
|
||||
} |
|
||||
|
|
||||
@Override |
|
||||
public void execute() throws ApplicationInitializerExecuteException { |
|
||||
DictionaryEntity item =new DictionaryEntity(); |
|
||||
item.setCode("WORK_FLOW"); |
|
||||
item.setValue("SAMPLE"); |
|
||||
item.setOrder(0); |
|
||||
item.setCorporationCode("_PRIMARY_"); |
|
||||
dictionaryService.getRepository().save(item); |
|
||||
} |
|
||||
} |
|
@ -1,11 +1,12 @@ |
|||||
[ |
[ |
||||
{ |
{ |
||||
"category" : "install", |
"category" : "install", |
||||
"order" : 600, |
"order" : 400, |
||||
"description":"工作流流程定义表结构", |
"description":"工作流", |
||||
"locations":[ |
"locations":[ |
||||
"liquibase/io.sc.platform.flowable_8.0.0_20220606__Flowable(6.8.0) Database Schema DDL.xml", |
"liquibase/io.sc.platform.flowable_8.0.0_20220606__Flowable(6.8.0) Database Schema DDL.xml", |
||||
"liquibase/io.sc.platform.flowable_8.0.0_20220606__Process Manager Database Schema DDL.xml" |
"liquibase/io.sc.platform.flowable_8.0.0_20220606__Process Manager Database Schema DDL.xml", |
||||
|
"liquibase/io.sc.platform.flowable_8.0.0_20220606__Process Manager Data.xml" |
||||
] |
] |
||||
} |
} |
||||
] |
] |
@ -1 +0,0 @@ |
|||||
io.sc.platform.flowable.initializer.SampleWorkFlowSystemDictionaryInitializer |
|
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue