91 changed files with 5102 additions and 20 deletions
@ -0,0 +1,5 @@ |
|||
dependencies { |
|||
api( |
|||
"io.sc:io.sc.platform.mvc:${platform_version}", |
|||
) |
|||
} |
@ -0,0 +1,43 @@ |
|||
package irbs.deptRating.controller; |
|||
|
|||
import java.util.List; |
|||
import java.util.Locale; |
|||
|
|||
import javax.servlet.http.HttpServletRequest; |
|||
import javax.servlet.http.HttpServletResponse; |
|||
|
|||
import io.sc.platform.mvc.support.ExportFileInfo; |
|||
import io.sc.platform.orm.service.support.QueryParameter; |
|||
import io.sc.platform.security.service.impl.SystemParameterServiceImpl; |
|||
import io.sc.platform.security.util.SecurityUtil; |
|||
import irbs.deptRating.jpa.entity.AppDebtRating; |
|||
import irbs.deptRating.jpa.repository.AppDebtRatingRepository; |
|||
import irbs.deptRating.service.AppDebtRatingService; |
|||
import org.slf4j.Logger; |
|||
import org.slf4j.LoggerFactory; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.data.domain.Page; |
|||
import org.springframework.stereotype.Controller; |
|||
import org.springframework.util.StringUtils; |
|||
import org.springframework.web.bind.annotation.*; |
|||
import org.springframework.web.multipart.MultipartFile; |
|||
import org.springframework.web.servlet.ModelAndView; |
|||
|
|||
|
|||
@Controller |
|||
@RequestMapping("/api/irbs/appDebtRating") |
|||
public class AppDebtRatingController { |
|||
|
|||
private static final Logger log =LoggerFactory.getLogger(AppDebtRatingController.class); |
|||
@Autowired |
|||
private AppDebtRatingService appDebtRatingService; |
|||
/** |
|||
* @债项评级管理 |
|||
* @return |
|||
*/ |
|||
@GetMapping("queryPage") |
|||
public Page<AppDebtRating> queryPage(QueryParameter queryParameter) throws Exception{ |
|||
Page<AppDebtRating> page = appDebtRatingService.findAll(queryParameter); |
|||
return page; |
|||
} |
|||
} |
@ -0,0 +1,369 @@ |
|||
package irbs.deptRating.jpa.entity; |
|||
|
|||
import io.sc.platform.orm.entity.CorporationAuditorEntity; |
|||
import irbs.deptRating.jpa.vo.AppDebtRatingVo; |
|||
import org.hibernate.annotations.GenericGenerator; |
|||
|
|||
import javax.persistence.*; |
|||
import javax.validation.constraints.Size; |
|||
|
|||
@Entity |
|||
@Table(name = "P_IRS_APPLY_DEBT_RATING") |
|||
public class AppDebtRating extends CorporationAuditorEntity<AppDebtRatingVo> { |
|||
|
|||
// 主键
|
|||
@Id |
|||
@GeneratedValue(generator = "system-uuid") |
|||
@GenericGenerator(name = "system-uuid", strategy = "uuid2") |
|||
@Column(name="ID_") |
|||
@Size(max=50) |
|||
private String id; |
|||
/** |
|||
* 业务合同编号 |
|||
*/ |
|||
@Column(name = "CONTRACTNO") |
|||
private String contractNo; |
|||
/** |
|||
* 业务产品类型 |
|||
*/ |
|||
@Column(name = "PRODUCTTYPE") |
|||
private String productType; |
|||
/** |
|||
* 业务产品类型回收率 |
|||
*/ |
|||
@Column(name = "PRODUCTRATE") |
|||
private Double productRate; |
|||
/** |
|||
* 业务合同金额 |
|||
*/ |
|||
@Column(name = "CONTRACTAMT") |
|||
private Double contractAmt; |
|||
/** |
|||
* 机构类型 |
|||
*/ |
|||
@Column(name = "ORGTYPE") |
|||
private String orgType; |
|||
/** |
|||
* 是否低风险业务 |
|||
*/ |
|||
@Column(name = "LOWRISKFLG") |
|||
private String lowRiskFlg; |
|||
/** |
|||
* 是否利率债 |
|||
*/ |
|||
@Column(name = "INTERESTDEBTFLG") |
|||
private String interestDebtFlg; |
|||
/** |
|||
* 金融机构债权等级 |
|||
*/ |
|||
@Column(name = "FINANCEDEBTLEVEL") |
|||
private String financeDebtLevel; |
|||
/** |
|||
* 客户编号 |
|||
*/ |
|||
@Column(name = "CUSTNO") |
|||
private String custNo; |
|||
/** |
|||
* 客户名称 |
|||
*/ |
|||
@Column(name = "CUSTNAME") |
|||
private String custName; |
|||
/** |
|||
* 借款人评级 |
|||
*/ |
|||
@Column(name = "CREDITGRADE") |
|||
private String creditGrade; |
|||
/** |
|||
* 借款人评级回收率 |
|||
*/ |
|||
@Column(name = "CREDITGRADERATE") |
|||
private Double creditGradeRate; |
|||
/** |
|||
* 行业类型 |
|||
*/ |
|||
@Column(name = "INDUSTRYTYPE") |
|||
private String industryType; |
|||
/** |
|||
* 行业类型调整系数 |
|||
*/ |
|||
@Column(name = "INDUSTRYTYPERATE") |
|||
private Double industryTypeRate; |
|||
/** |
|||
* 企业规模 |
|||
*/ |
|||
@Column(name = "CORPSIZE") |
|||
private String corpSize; |
|||
/** |
|||
* 企业规模调整系数 |
|||
*/ |
|||
@Column(name = "CORPSIZERATE") |
|||
private Double corpSizeRate; |
|||
/** |
|||
* 企业类型 |
|||
*/ |
|||
@Column(name = "CORPTYPE") |
|||
private String corpType; |
|||
/** |
|||
* 企业类型调整系数 |
|||
*/ |
|||
@Column(name = "CORPTYPERATE") |
|||
private Double corpTypeRate; |
|||
/** |
|||
* 所在行政区域 |
|||
*/ |
|||
@Column(name = "REGIONCODE") |
|||
private String regionCode; |
|||
/** |
|||
* 所在行政区域调整系数 |
|||
*/ |
|||
@Column(name = "REGIONCODERATE") |
|||
private Double regionCodeRate; |
|||
/** |
|||
* 借款人有形资产债务率 |
|||
*/ |
|||
@Column(name = "YXZCZWL") |
|||
private Double yxzczwl; |
|||
/** |
|||
* 借款人有形资产债务率调整系数 |
|||
*/ |
|||
@Column(name = "YXZCZWLRATE") |
|||
private Double yxzczwlRate; |
|||
/** |
|||
* 借款人调整回收率 |
|||
*/ |
|||
@Column(name = "ADJUSTRATE") |
|||
private Double adjustRate; |
|||
/** |
|||
* 借款人回收率 |
|||
*/ |
|||
@Column(name = "RECRATE") |
|||
private Double recrate; |
|||
/** |
|||
* 保证担保形式 |
|||
*/ |
|||
@Column(name = "PLEDGECLASS") |
|||
private String pledgeClass; |
|||
/** |
|||
* 担保类型 |
|||
*/ |
|||
@Column(name = "GUARANTEETYPE") |
|||
private String guaranteeType; |
|||
/** |
|||
* 保证人整体回收率 |
|||
*/ |
|||
@Column(name = "PLEDGERECRATE") |
|||
private Double pledgeRecRate; |
|||
/** |
|||
* 押品整体回收率 |
|||
*/ |
|||
@Column(name = "GUARANTYRECRATE") |
|||
private Double guarantyRecRate; |
|||
/** |
|||
* lgd计算结果 |
|||
*/ |
|||
@Column(name = "LGD") |
|||
private Double lgd; |
|||
/** |
|||
* 是否生效 |
|||
*/ |
|||
@Column(name = "IS_VALID") |
|||
private String isValid; |
|||
/** |
|||
* 业务经办人 |
|||
*/ |
|||
@Column(name = "MANAGER_CODE") |
|||
private String managerCode; |
|||
public String getId() { |
|||
return id; |
|||
} |
|||
public void setId(String id) { |
|||
this.id = id; |
|||
} |
|||
public String getContractNo() { |
|||
return contractNo; |
|||
} |
|||
public void setContractNo(String contractNo) { |
|||
this.contractNo = contractNo; |
|||
} |
|||
public String getProductType() { |
|||
return productType; |
|||
} |
|||
public void setProductType(String productType) { |
|||
this.productType = productType; |
|||
} |
|||
public Double getContractAmt() { |
|||
return contractAmt; |
|||
} |
|||
public void setContractAmt(Double contractAmt) { |
|||
this.contractAmt = contractAmt; |
|||
} |
|||
public String getOrgType() { |
|||
return orgType; |
|||
} |
|||
public void setOrgType(String orgType) { |
|||
this.orgType = orgType; |
|||
} |
|||
public String getLowRiskFlg() { |
|||
return lowRiskFlg; |
|||
} |
|||
public void setLowRiskFlg(String lowRiskFlg) { |
|||
this.lowRiskFlg = lowRiskFlg; |
|||
} |
|||
public String getInterestDebtFlg() { |
|||
return interestDebtFlg; |
|||
} |
|||
public void setInterestDebtFlg(String interestDebtFlg) { |
|||
this.interestDebtFlg = interestDebtFlg; |
|||
} |
|||
public String getFinanceDebtLevel() { |
|||
return financeDebtLevel; |
|||
} |
|||
public void setFinanceDebtLevel(String financeDebtLevel) { |
|||
this.financeDebtLevel = financeDebtLevel; |
|||
} |
|||
public String getCustNo() { |
|||
return custNo; |
|||
} |
|||
public void setCustNo(String custNo) { |
|||
this.custNo = custNo; |
|||
} |
|||
public String getCustName() { |
|||
return custName; |
|||
} |
|||
public void setCustName(String custName) { |
|||
this.custName = custName; |
|||
} |
|||
public String getCreditGrade() { |
|||
return creditGrade; |
|||
} |
|||
public void setCreditGrade(String creditGrade) { |
|||
this.creditGrade = creditGrade; |
|||
} |
|||
public String getIndustryType() { |
|||
return industryType; |
|||
} |
|||
public void setIndustryType(String industryType) { |
|||
this.industryType = industryType; |
|||
} |
|||
public String getCorpSize() { |
|||
return corpSize; |
|||
} |
|||
public void setCorpSize(String corpSize) { |
|||
this.corpSize = corpSize; |
|||
} |
|||
public String getCorpType() { |
|||
return corpType; |
|||
} |
|||
public void setCorpType(String corpType) { |
|||
this.corpType = corpType; |
|||
} |
|||
public String getRegionCode() { |
|||
return regionCode; |
|||
} |
|||
public void setRegionCode(String regionCode) { |
|||
this.regionCode = regionCode; |
|||
} |
|||
public String getGuaranteeType() { |
|||
return guaranteeType; |
|||
} |
|||
public void setGuaranteeType(String guaranteeType) { |
|||
this.guaranteeType = guaranteeType; |
|||
} |
|||
public Double getYxzczwl() { |
|||
return yxzczwl; |
|||
} |
|||
public void setYxzczwl(Double yxzczwl) { |
|||
this.yxzczwl = yxzczwl; |
|||
} |
|||
public String getPledgeClass() { |
|||
return pledgeClass; |
|||
} |
|||
public void setPledgeClass(String pledgeClass) { |
|||
this.pledgeClass = pledgeClass; |
|||
} |
|||
public Double getProductRate() { |
|||
return productRate; |
|||
} |
|||
public void setProductRate(Double productRate) { |
|||
this.productRate = productRate; |
|||
} |
|||
public Double getCreditGradeRate() { |
|||
return creditGradeRate; |
|||
} |
|||
public void setCreditGradeRate(Double creditGradeRate) { |
|||
this.creditGradeRate = creditGradeRate; |
|||
} |
|||
public Double getIndustryTypeRate() { |
|||
return industryTypeRate; |
|||
} |
|||
public void setIndustryTypeRate(Double industryTypeRate) { |
|||
this.industryTypeRate = industryTypeRate; |
|||
} |
|||
public Double getCorpSizeRate() { |
|||
return corpSizeRate; |
|||
} |
|||
public void setCorpSizeRate(Double corpSizeRate) { |
|||
this.corpSizeRate = corpSizeRate; |
|||
} |
|||
public Double getCorpTypeRate() { |
|||
return corpTypeRate; |
|||
} |
|||
public void setCorpTypeRate(Double corpTypeRate) { |
|||
this.corpTypeRate = corpTypeRate; |
|||
} |
|||
public Double getRegionCodeRate() { |
|||
return regionCodeRate; |
|||
} |
|||
public void setRegionCodeRate(Double regionCodeRate) { |
|||
this.regionCodeRate = regionCodeRate; |
|||
} |
|||
public Double getYxzczwlRate() { |
|||
return yxzczwlRate; |
|||
} |
|||
public void setYxzczwlRate(Double yxzczwlRate) { |
|||
this.yxzczwlRate = yxzczwlRate; |
|||
} |
|||
public Double getLgd() { |
|||
return lgd; |
|||
} |
|||
public void setLgd(Double lgd) { |
|||
this.lgd = lgd; |
|||
} |
|||
public String getIsValid() { |
|||
return isValid; |
|||
} |
|||
public void setIsValid(String isValid) { |
|||
this.isValid = isValid; |
|||
} |
|||
public Double getAdjustRate() { |
|||
return adjustRate; |
|||
} |
|||
public void setAdjustRate(Double adjustRate) { |
|||
this.adjustRate = adjustRate; |
|||
} |
|||
public Double getRecrate() { |
|||
return recrate; |
|||
} |
|||
public void setRecrate(Double recrate) { |
|||
this.recrate = recrate; |
|||
} |
|||
public Double getPledgeRecRate() { |
|||
return pledgeRecRate; |
|||
} |
|||
public void setPledgeRecRate(Double pledgeRecRate) { |
|||
this.pledgeRecRate = pledgeRecRate; |
|||
} |
|||
public Double getGuarantyRecRate() { |
|||
return guarantyRecRate; |
|||
} |
|||
public void setGuarantyRecRate(Double guarantyRecRate) { |
|||
this.guarantyRecRate = guarantyRecRate; |
|||
} |
|||
public String getManagerCode() { |
|||
return managerCode; |
|||
} |
|||
public void setManagerCode(String managerCode) { |
|||
this.managerCode = managerCode; |
|||
} |
|||
} |
|||
|
@ -0,0 +1,22 @@ |
|||
package irbs.deptRating.jpa.repository; |
|||
|
|||
import io.sc.platform.orm.repository.DaoRepository; |
|||
import irbs.deptRating.jpa.entity.AppDebtRating; |
|||
|
|||
import java.util.List; |
|||
|
|||
|
|||
public interface AppDebtRatingRepository extends DaoRepository<AppDebtRating, String> { |
|||
/** |
|||
* 按业务合同号查询LGD业务信息 |
|||
* @param contractNo |
|||
* @return |
|||
*/ |
|||
public AppDebtRating findByContractNoAndIsValid(String contractNo, String isValid); |
|||
/** |
|||
* 按业务合同号查询LGD业务信息 |
|||
* @param contractNo |
|||
* @return |
|||
*/ |
|||
public List<AppDebtRating> findByContractNo(String contractNo); |
|||
} |
@ -0,0 +1,326 @@ |
|||
package irbs.deptRating.jpa.vo; |
|||
|
|||
import io.sc.platform.orm.api.vo.CorporationAuditorVo; |
|||
|
|||
public class AppDebtRatingVo extends CorporationAuditorVo { |
|||
|
|||
// 主键
|
|||
private String id; |
|||
/** |
|||
* 业务合同编号 |
|||
*/ |
|||
private String contractNo; |
|||
/** |
|||
* 业务产品类型 |
|||
*/ |
|||
private String productType; |
|||
/** |
|||
* 业务产品类型回收率 |
|||
*/ |
|||
private Double productRate; |
|||
/** |
|||
* 业务合同金额 |
|||
*/ |
|||
private Double contractAmt; |
|||
/** |
|||
* 机构类型 |
|||
*/ |
|||
private String orgType; |
|||
/** |
|||
* 是否低风险业务 |
|||
*/ |
|||
private String lowRiskFlg; |
|||
/** |
|||
* 是否利率债 |
|||
*/ |
|||
private String interestDebtFlg; |
|||
/** |
|||
* 金融机构债权等级 |
|||
*/ |
|||
private String financeDebtLevel; |
|||
/** |
|||
* 客户编号 |
|||
*/ |
|||
private String custNo; |
|||
/** |
|||
* 客户名称 |
|||
*/ |
|||
private String custName; |
|||
/** |
|||
* 借款人评级 |
|||
*/ |
|||
private String creditGrade; |
|||
/** |
|||
* 借款人评级回收率 |
|||
*/ |
|||
private Double creditGradeRate; |
|||
/** |
|||
* 行业类型 |
|||
*/ |
|||
private String industryType; |
|||
/** |
|||
* 行业类型调整系数 |
|||
*/ |
|||
private Double industryTypeRate; |
|||
/** |
|||
* 企业规模 |
|||
*/ |
|||
private String corpSize; |
|||
/** |
|||
* 企业规模调整系数 |
|||
*/ |
|||
private Double corpSizeRate; |
|||
/** |
|||
* 企业类型 |
|||
*/ |
|||
private String corpType; |
|||
/** |
|||
* 企业类型调整系数 |
|||
*/ |
|||
private Double corpTypeRate; |
|||
/** |
|||
* 所在行政区域 |
|||
*/ |
|||
private String regionCode; |
|||
/** |
|||
* 所在行政区域调整系数 |
|||
*/ |
|||
private Double regionCodeRate; |
|||
/** |
|||
* 借款人有形资产债务率 |
|||
*/ |
|||
private Double yxzczwl; |
|||
/** |
|||
* 借款人有形资产债务率调整系数 |
|||
*/ |
|||
private Double yxzczwlRate; |
|||
/** |
|||
* 借款人调整回收率 |
|||
*/ |
|||
private Double adjustRate; |
|||
/** |
|||
* 借款人回收率 |
|||
*/ |
|||
private Double recrate; |
|||
/** |
|||
* 保证担保形式 |
|||
*/ |
|||
private String pledgeClass; |
|||
/** |
|||
* 担保类型 |
|||
*/ |
|||
private String guaranteeType; |
|||
/** |
|||
* 保证人整体回收率 |
|||
*/ |
|||
private Double pledgeRecRate; |
|||
/** |
|||
* 押品整体回收率 |
|||
*/ |
|||
private Double guarantyRecRate; |
|||
/** |
|||
* lgd计算结果 |
|||
*/ |
|||
private Double lgd; |
|||
/** |
|||
* 是否生效 |
|||
*/ |
|||
private String isValid; |
|||
/** |
|||
* 业务经办人 |
|||
*/ |
|||
private String managerCode; |
|||
public String getId() { |
|||
return id; |
|||
} |
|||
public void setId(String id) { |
|||
this.id = id; |
|||
} |
|||
public String getContractNo() { |
|||
return contractNo; |
|||
} |
|||
public void setContractNo(String contractNo) { |
|||
this.contractNo = contractNo; |
|||
} |
|||
public String getProductType() { |
|||
return productType; |
|||
} |
|||
public void setProductType(String productType) { |
|||
this.productType = productType; |
|||
} |
|||
public Double getContractAmt() { |
|||
return contractAmt; |
|||
} |
|||
public void setContractAmt(Double contractAmt) { |
|||
this.contractAmt = contractAmt; |
|||
} |
|||
public String getOrgType() { |
|||
return orgType; |
|||
} |
|||
public void setOrgType(String orgType) { |
|||
this.orgType = orgType; |
|||
} |
|||
public String getLowRiskFlg() { |
|||
return lowRiskFlg; |
|||
} |
|||
public void setLowRiskFlg(String lowRiskFlg) { |
|||
this.lowRiskFlg = lowRiskFlg; |
|||
} |
|||
public String getInterestDebtFlg() { |
|||
return interestDebtFlg; |
|||
} |
|||
public void setInterestDebtFlg(String interestDebtFlg) { |
|||
this.interestDebtFlg = interestDebtFlg; |
|||
} |
|||
public String getFinanceDebtLevel() { |
|||
return financeDebtLevel; |
|||
} |
|||
public void setFinanceDebtLevel(String financeDebtLevel) { |
|||
this.financeDebtLevel = financeDebtLevel; |
|||
} |
|||
public String getCustNo() { |
|||
return custNo; |
|||
} |
|||
public void setCustNo(String custNo) { |
|||
this.custNo = custNo; |
|||
} |
|||
public String getCustName() { |
|||
return custName; |
|||
} |
|||
public void setCustName(String custName) { |
|||
this.custName = custName; |
|||
} |
|||
public String getCreditGrade() { |
|||
return creditGrade; |
|||
} |
|||
public void setCreditGrade(String creditGrade) { |
|||
this.creditGrade = creditGrade; |
|||
} |
|||
public String getIndustryType() { |
|||
return industryType; |
|||
} |
|||
public void setIndustryType(String industryType) { |
|||
this.industryType = industryType; |
|||
} |
|||
public String getCorpSize() { |
|||
return corpSize; |
|||
} |
|||
public void setCorpSize(String corpSize) { |
|||
this.corpSize = corpSize; |
|||
} |
|||
public String getCorpType() { |
|||
return corpType; |
|||
} |
|||
public void setCorpType(String corpType) { |
|||
this.corpType = corpType; |
|||
} |
|||
public String getRegionCode() { |
|||
return regionCode; |
|||
} |
|||
public void setRegionCode(String regionCode) { |
|||
this.regionCode = regionCode; |
|||
} |
|||
public String getGuaranteeType() { |
|||
return guaranteeType; |
|||
} |
|||
public void setGuaranteeType(String guaranteeType) { |
|||
this.guaranteeType = guaranteeType; |
|||
} |
|||
public Double getYxzczwl() { |
|||
return yxzczwl; |
|||
} |
|||
public void setYxzczwl(Double yxzczwl) { |
|||
this.yxzczwl = yxzczwl; |
|||
} |
|||
public String getPledgeClass() { |
|||
return pledgeClass; |
|||
} |
|||
public void setPledgeClass(String pledgeClass) { |
|||
this.pledgeClass = pledgeClass; |
|||
} |
|||
public Double getProductRate() { |
|||
return productRate; |
|||
} |
|||
public void setProductRate(Double productRate) { |
|||
this.productRate = productRate; |
|||
} |
|||
public Double getCreditGradeRate() { |
|||
return creditGradeRate; |
|||
} |
|||
public void setCreditGradeRate(Double creditGradeRate) { |
|||
this.creditGradeRate = creditGradeRate; |
|||
} |
|||
public Double getIndustryTypeRate() { |
|||
return industryTypeRate; |
|||
} |
|||
public void setIndustryTypeRate(Double industryTypeRate) { |
|||
this.industryTypeRate = industryTypeRate; |
|||
} |
|||
public Double getCorpSizeRate() { |
|||
return corpSizeRate; |
|||
} |
|||
public void setCorpSizeRate(Double corpSizeRate) { |
|||
this.corpSizeRate = corpSizeRate; |
|||
} |
|||
public Double getCorpTypeRate() { |
|||
return corpTypeRate; |
|||
} |
|||
public void setCorpTypeRate(Double corpTypeRate) { |
|||
this.corpTypeRate = corpTypeRate; |
|||
} |
|||
public Double getRegionCodeRate() { |
|||
return regionCodeRate; |
|||
} |
|||
public void setRegionCodeRate(Double regionCodeRate) { |
|||
this.regionCodeRate = regionCodeRate; |
|||
} |
|||
public Double getYxzczwlRate() { |
|||
return yxzczwlRate; |
|||
} |
|||
public void setYxzczwlRate(Double yxzczwlRate) { |
|||
this.yxzczwlRate = yxzczwlRate; |
|||
} |
|||
public Double getLgd() { |
|||
return lgd; |
|||
} |
|||
public void setLgd(Double lgd) { |
|||
this.lgd = lgd; |
|||
} |
|||
public String getIsValid() { |
|||
return isValid; |
|||
} |
|||
public void setIsValid(String isValid) { |
|||
this.isValid = isValid; |
|||
} |
|||
public Double getAdjustRate() { |
|||
return adjustRate; |
|||
} |
|||
public void setAdjustRate(Double adjustRate) { |
|||
this.adjustRate = adjustRate; |
|||
} |
|||
public Double getRecrate() { |
|||
return recrate; |
|||
} |
|||
public void setRecrate(Double recrate) { |
|||
this.recrate = recrate; |
|||
} |
|||
public Double getPledgeRecRate() { |
|||
return pledgeRecRate; |
|||
} |
|||
public void setPledgeRecRate(Double pledgeRecRate) { |
|||
this.pledgeRecRate = pledgeRecRate; |
|||
} |
|||
public Double getGuarantyRecRate() { |
|||
return guarantyRecRate; |
|||
} |
|||
public void setGuarantyRecRate(Double guarantyRecRate) { |
|||
this.guarantyRecRate = guarantyRecRate; |
|||
} |
|||
public String getManagerCode() { |
|||
return managerCode; |
|||
} |
|||
public void setManagerCode(String managerCode) { |
|||
this.managerCode = managerCode; |
|||
} |
|||
} |
|||
|
@ -0,0 +1,37 @@ |
|||
package irbs.deptRating.service; |
|||
|
|||
import io.sc.platform.orm.service.DaoService; |
|||
import io.sc.platform.orm.service.support.QueryParameter; |
|||
import irbs.deptRating.jpa.entity.AppDebtRating; |
|||
import irbs.deptRating.jpa.repository.AppDebtRatingRepository; |
|||
import org.springframework.data.domain.Page; |
|||
|
|||
import java.util.List; |
|||
|
|||
|
|||
public interface AppDebtRatingService extends |
|||
DaoService<AppDebtRating, String, AppDebtRatingRepository> { |
|||
/** |
|||
* 由业务合同编号查询债项评级信息 |
|||
* @return |
|||
*/ |
|||
public Page<AppDebtRating> findAll(QueryParameter queryParameter) throws Exception; |
|||
/** |
|||
* 由业务合同编号查询债项评级信息 |
|||
* @param businessNo |
|||
* @return |
|||
*/ |
|||
public List<AppDebtRating> findByBusinessNo(String businessNo); |
|||
/** |
|||
* 由业务合同编号查询债项评级信息 |
|||
* @param businessNo |
|||
* @return |
|||
*/ |
|||
public AppDebtRating findValidByBusinessNo(String businessNo); |
|||
/** |
|||
* 将债项评级信息置为失效状态 |
|||
* @param debtRating |
|||
* @throws Exception |
|||
*/ |
|||
public void invalidDebtRating(AppDebtRating debtRating) throws Exception; |
|||
} |
@ -0,0 +1,49 @@ |
|||
package irbs.deptRating.service.impl; |
|||
|
|||
import io.sc.platform.orm.service.impl.DaoServiceImpl; |
|||
import io.sc.platform.orm.service.support.QueryParameter; |
|||
import irbs.deptRating.jpa.entity.AppDebtRating; |
|||
import irbs.deptRating.jpa.repository.AppDebtRatingRepository; |
|||
import irbs.deptRating.service.AppDebtRatingService; |
|||
import org.slf4j.Logger; |
|||
import org.slf4j.LoggerFactory; |
|||
import org.springframework.data.domain.Page; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.List; |
|||
|
|||
|
|||
@Service |
|||
public class AppDebtRatingServiceImpl extends |
|||
DaoServiceImpl<AppDebtRating, String, AppDebtRatingRepository> |
|||
implements AppDebtRatingService { |
|||
|
|||
private static final Logger log =LoggerFactory.getLogger(AppDebtRatingServiceImpl.class); |
|||
|
|||
@Override |
|||
public void invalidDebtRating(AppDebtRating debtRating) throws Exception { |
|||
// TODO Auto-generated method stub
|
|||
if(debtRating != null) { |
|||
debtRating.setIsValid("1"); |
|||
this.update(debtRating.getId(), debtRating); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public Page<AppDebtRating> findAll(QueryParameter queryParameter) throws Exception { |
|||
Page<AppDebtRating> page = this.query(queryParameter); |
|||
return page; |
|||
} |
|||
|
|||
@Override |
|||
public List<AppDebtRating> findByBusinessNo(String businessNo) { |
|||
// TODO Auto-generated method stub
|
|||
return repository.findByContractNo(businessNo); |
|||
} |
|||
|
|||
@Override |
|||
public AppDebtRating findValidByBusinessNo(String businessNo) { |
|||
return null; |
|||
} |
|||
|
|||
} |
@ -0,0 +1,25 @@ |
|||
/* |
|||
* 应用属性插件配置 |
|||
* 功能: 该插件配置为框架提供 application.properties 中的配置项, 这样可以让配置项分散到各个子模块中。 |
|||
* 使用说明: |
|||
* module: 配置项所属模块,通常为模块的名称 |
|||
* order: 配置项顺序 |
|||
* description: 配置项描述, 在 application.properties 文件中以注释体现 |
|||
* properties: 属性配置列表 |
|||
*/ |
|||
|
|||
/* 示例 */ |
|||
/* |
|||
[ |
|||
{ |
|||
"module" : "io.sc.platform.core", |
|||
"order" : 150, |
|||
"description": "application configuration", |
|||
"properties": [ |
|||
"application.audit-log-mode = none", |
|||
"#application.audit-log-mode = log", |
|||
"#application.audit-log-mode = database" |
|||
] |
|||
} |
|||
] |
|||
*/ |
@ -0,0 +1,16 @@ |
|||
/* |
|||
* 自动组件扫描插件配置 |
|||
* 功能: 该插件配置为框架提供自动扫描组件的包名,配置的包名将会自动被 spring 进行扫描 |
|||
* 使用说明: |
|||
* includes: 包含自动扫描的包名列表 |
|||
* excludes: 排除自动扫描的包名列表 |
|||
* 注意: 当一个包名同时存在于 includes 和 excludes 中, excludes 优先, 即该包不会被自动扫描 |
|||
*/ |
|||
|
|||
{ |
|||
"includes":[ |
|||
"irbs.deptRating.controller", |
|||
"irbs.deptRating.service.impl" |
|||
], |
|||
"excludes":[] |
|||
} |
@ -0,0 +1,17 @@ |
|||
/* |
|||
* 自动创建目录插件配置 |
|||
* 功能: 该插件配置为框架提供自动创建目录功能 |
|||
* 使用说明: |
|||
* name : 目录的名称, 开发者可通过 DirectoryManager.getInstance().getByName(name) 获取实际目录 |
|||
* path : 目录的相对路径,相对于应用 home 目录 |
|||
* autoCreate : 是否自动创建 |
|||
*/ |
|||
|
|||
/* 示例 */ |
|||
/* |
|||
[ |
|||
{"name":"dir.config" ,"path":"/config" ,"autoCreate":true}, |
|||
{"name":"dir.log" ,"path":"/logs" ,"autoCreate":true}, |
|||
{"name":"dir.work" ,"path":"/work" ,"autoCreate":true} |
|||
] |
|||
*/ |
@ -0,0 +1,25 @@ |
|||
/* |
|||
* json 序列化器和反序列化器插件配置 |
|||
* 功能: 该插件配置为框架提供 json 序列化器和反序列化器插件配置 |
|||
* 使用说明: |
|||
* className: 目标类名 |
|||
* serializer: 序列化器类名 |
|||
* deserializer: 反序列化器类名 |
|||
*/ |
|||
|
|||
|
|||
/* 示例 */ |
|||
/* |
|||
[ |
|||
{ |
|||
"className" : "java.util.Date", |
|||
"serializer" : "io.sc.platform.core.autoconfigure.support.DateJsonSerializer", |
|||
"deserializer" : "io.sc.platform.core.autoconfigure.support.DateJsonDeserializer" |
|||
}, |
|||
{ |
|||
"className" : "java.time.Instant", |
|||
"serializer" : "io.sc.platform.core.autoconfigure.support.InstantJsonSerializer", |
|||
"deserializer" : "io.sc.platform.core.autoconfigure.support.InstantJsonDeserializer" |
|||
} |
|||
] |
|||
*/ |
@ -0,0 +1,35 @@ |
|||
/* |
|||
* 数据库建表 Liquibase ChangeLog XML 插件配置 |
|||
* 功能: 该插件配置为框架提供数据库无关的建表脚本 |
|||
* 使用说明: |
|||
* category: 建表脚本分类,可能的值包括: |
|||
* install : 系统安装时自动执行 |
|||
* order: 执行顺序 |
|||
* description: 描述信息 |
|||
* locations: 建表 liquibase changelog xml 文件位置 |
|||
*/ |
|||
|
|||
/* 示例 */ |
|||
/* |
|||
[ |
|||
{ |
|||
"category" : "install", |
|||
"order" : 100, |
|||
"description":"授权与认证相关数据库表结构", |
|||
"locations":[ |
|||
"liquibase/PF_9.0.0_20230222__Security_DDL.xml", |
|||
"liquibase/PF_9.0.0_20230223__Security_DDL.xml" |
|||
] |
|||
} |
|||
] |
|||
*/ |
|||
[ |
|||
{ |
|||
"category" : "install", |
|||
"order" : 110000, |
|||
"description":"风险暴露分类", |
|||
"locations":[ |
|||
"liquibase/20240427_DEBTRATING_DDL.xml" |
|||
] |
|||
} |
|||
] |
@ -0,0 +1,16 @@ |
|||
/* |
|||
* 国际化消息源插件配置 |
|||
* 功能: 该插件配置为框架提供国际化消息资源 |
|||
* 使用说明: |
|||
* includes: 包含国际化消息资源列表 |
|||
* excludes: 排除国际化消息资源列表 |
|||
* 注意: 当一个包名同时存在于 includes 和 excludes 中, excludes 优先, 即该包不会被自动扫描 |
|||
*/ |
|||
|
|||
|
|||
{ |
|||
"includes":[ |
|||
"irbs/deptRating/i18n/messages" |
|||
], |
|||
"excludes":[] |
|||
} |
@ -0,0 +1,15 @@ |
|||
/* |
|||
* p6spy 插件配置 |
|||
* 功能: 该插件配置为框架提供 p6spy 配置 |
|||
* 使用说明: |
|||
* ignoredPatterns: 忽略显示 jdbc 输出信息正则表达式列表 |
|||
*/ |
|||
|
|||
/* 以下示例将不显示 p6spy 输出的 commit */ |
|||
/* |
|||
{ |
|||
"ignoredPatterns":[ |
|||
"commit" |
|||
] |
|||
} |
|||
*/ |
@ -0,0 +1,37 @@ |
|||
/* |
|||
* 系统参数插件配置 |
|||
* 功能说明: 该插件配置为框架提供系统参数配置 |
|||
* 使用说明: |
|||
* id: 参数唯一标识 |
|||
* parentId: 父唯一标识, 用于进行参数分类 |
|||
* code: 参数代码, 应用可通过该代码获取参数值 |
|||
* defaultValue: 默认值 |
|||
* order: 排序 |
|||
* options: 选项值 map, key 表示值, value 表示显示值 |
|||
*/ |
|||
|
|||
/* 示例 */ |
|||
/* |
|||
[ |
|||
{"id":"parameter.system","order":0}, |
|||
{ |
|||
"id" : "parameter.system.indexPageTemplate", |
|||
"parentId" : "parameter.system", |
|||
"code" : "parameter.system.indexPageTemplate", |
|||
"defaultValue" : "io.sc.platform.mvc.frontend.html", |
|||
"order" : 200 |
|||
}, |
|||
{"id":"parameter.system.ui","parentId":"parameter.system","order":1000}, |
|||
{ |
|||
"id" : "parameter.system.ui.theme", |
|||
"parentId" : "parameter.system.ui", |
|||
"code" : "parameter.system.ui.theme", |
|||
"defaultValue" : "light", |
|||
"order" : 800, |
|||
"options" :{ |
|||
"light" : "#{parameter.system.ui.theme.light}", |
|||
"dark" : "#{parameter.system.ui.theme.dark}" |
|||
} |
|||
} |
|||
] |
|||
*/ |
@ -0,0 +1,16 @@ |
|||
/* |
|||
* 自动 JPA 扫描插件配置 |
|||
* 功能: 该插件配置为框架提供自动扫描 JPA 组件的包名 |
|||
* 使用说明: |
|||
* includes: 包含自动扫描的包名成列表 |
|||
* excludes: 排除自动扫描的包名成列表 |
|||
* 注意: 当一个包名同时存在于 includes 和 excludes 中, excludes 优先, 即该包不会被自动扫描 |
|||
*/ |
|||
|
|||
{ |
|||
"includes":[ |
|||
"irbs.deptRating.jpa.entity", |
|||
"irbs.deptRating.jpa.repository" |
|||
], |
|||
"excludes":[] |
|||
} |
@ -0,0 +1,20 @@ |
|||
/* |
|||
* 自动重启属性插件配置 |
|||
* 功能: 当配置的属性发生变化时,系统会自动重启(如果应用运行在独立的 web 容器中时, 需手工重启) |
|||
* 使用说明: |
|||
* 匹配规则: startWith |
|||
* container: 在容器中运行时需要重启的属性列表 |
|||
* jar: 通过 jar 直接运行时需要重启的属性列表 |
|||
*/ |
|||
|
|||
/* 示例 */ |
|||
/* |
|||
{ |
|||
"container":[ |
|||
"spring.security." |
|||
], |
|||
"jar": [ |
|||
"spring.security." |
|||
] |
|||
} |
|||
*/ |
@ -0,0 +1,15 @@ |
|||
/* |
|||
* 认证插件配置 |
|||
* 功能: 该插件配置为框架提供不对某些资源进行认证的功能 |
|||
* 使用说明: |
|||
* permitPatterns : 不进行安全认证检查的 url 模式, 采用 ant path 格式配置 |
|||
*/ |
|||
|
|||
/* 示例 */ |
|||
/* |
|||
{ |
|||
"permitPatterns":[ |
|||
"/io.sc.platform.core/**" |
|||
] |
|||
} |
|||
*/ |
@ -0,0 +1,19 @@ |
|||
/** |
|||
* swagger 配置 |
|||
*/ |
|||
|
|||
/* 示例 */ |
|||
/* |
|||
[ |
|||
{ |
|||
"groupName" : "io.sc.platform.mvc", |
|||
"title" : "平台 MVC", |
|||
"description": "平台 MVC 文档", |
|||
"termsOfServiceUrl" : "", |
|||
"version": "1.0", |
|||
"basePackages":[ |
|||
"io.sc.platform.mvc.controller" |
|||
] |
|||
} |
|||
] |
|||
*/ |
@ -0,0 +1,14 @@ |
|||
/* |
|||
* 系统属性插件配置 |
|||
* 功能: 该插件配置为框架提供在启动时自动注册系统属性功能(执行 System.setProperty()) |
|||
* 使用说明: |
|||
* key : 属性名 |
|||
* value : 属性值 |
|||
*/ |
|||
|
|||
/* 示例 */ |
|||
/* |
|||
{ |
|||
"h2.dbname.default" : "DB_PLATFORM" |
|||
} |
|||
*/ |
@ -0,0 +1,56 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<databaseChangeLog |
|||
xmlns="http://www.liquibase.org/xml/ns/dbchangelog" |
|||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
|||
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" |
|||
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd |
|||
http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd"> |
|||
|
|||
<changeSet id="20240427_DEBTRATING_DDL" author="platform"> |
|||
<!-- 债项评级信息表 --> |
|||
<createTable tableName="P_IRS_APPLY_DEBT_RATING" remarks="债项评级信息表"> |
|||
<column name="ID_" type="java.sql.Types.VARCHAR(50)" remarks="主键ID"> |
|||
<constraints primaryKey="true"/> |
|||
</column> |
|||
<column name="CONTRACTNO" type="java.sql.Types.VARCHAR(60)" remarks="业务合同编号"/> |
|||
<column name="PRODUCTTYPE" type="java.sql.Types.VARCHAR(20)" remarks="业务产品类型"/> |
|||
<column name="PRODUCTRATE" type="java.sql.Types.DECIMAL(10,6)" remarks="业务产品类型回收率"/> |
|||
<column name="CONTRACTAMT" type="java.sql.Types.DECIMAL(30,6)" remarks="业务合同金额"/> |
|||
<column name="ORGTYPE" type="java.sql.Types.VARCHAR(10)" remarks="机构类型"/> |
|||
<column name="LOWRISKFLG" type="java.sql.Types.VARCHAR(5)" remarks="是否低风险业务"/> |
|||
<column name="INTERESTDEBTFLG" type="java.sql.Types.VARCHAR(5)" remarks="是否利率债"/> |
|||
<column name="FINANCEDEBTLEVEL" type="java.sql.Types.VARCHAR(5)" remarks="金融机构债权等级"/> |
|||
<column name="CUSTNO" type="java.sql.Types.VARCHAR(60)" remarks="客户编号"/> |
|||
<column name="CUSTNAME" type="java.sql.Types.VARCHAR(200)" remarks="客户名称"/> |
|||
<column name="CREDITGRADE" type="java.sql.Types.VARCHAR(60)" remarks="借款人评级"/> |
|||
<column name="CREDITGRADERATE" type="java.sql.Types.DECIMAL(10,6)" remarks="借款人评级回收率"/> |
|||
<column name="INDUSTRYTYPE" type="java.sql.Types.VARCHAR(60)" remarks="行业类型"/> |
|||
<column name="INDUSTRYTYPERATE" type="java.sql.Types.DECIMAL(10,6)" remarks="行业类型调整系数"/> |
|||
<column name="CORPSIZE" type="java.sql.Types.VARCHAR(60)" remarks="企业规模"/> |
|||
<column name="CORPSIZERATE" type="java.sql.Types.DECIMAL(10,6)" remarks="企业规模调整系数"/> |
|||
<column name="CORPTYPE" type="java.sql.Types.VARCHAR(60)" remarks="企业类型"/> |
|||
<column name="CORPTYPERATE" type="java.sql.Types.DECIMAL(10,6)" remarks="企业类型调整系数"/> |
|||
<column name="REGIONCODE" type="java.sql.Types.VARCHAR(60)" remarks="所在行政区域"/> |
|||
<column name="REGIONCODERATE" type="java.sql.Types.DECIMAL(10,6)" remarks="所在行政区域调整系数"/> |
|||
<column name="YXZCZWL" type="java.sql.Types.DECIMAL(10,6)" remarks="借款人有形资产债务率"/> |
|||
<column name="YXZCZWLRATE" type="java.sql.Types.DECIMAL(10,6)" remarks="借款人有形资产债务率调整系数"/> |
|||
<column name="ADJUSTRATE" type="java.sql.Types.DECIMAL(10,6)" remarks="借款人调整回收率"/> |
|||
<column name="RECRATE" type="java.sql.Types.DECIMAL(10,6)" remarks="借款人回收率"/> |
|||
<column name="PLEDGECLASS" type="java.sql.Types.VARCHAR(60)" remarks="保证担保形式"/> |
|||
<column name="GUARANTEETYPE" type="java.sql.Types.VARCHAR(60)" remarks="担保类型"/> |
|||
<column name="PLEDGERECRATE" type="java.sql.Types.DECIMAL(10,6)" remarks="保证人整体回收率"/> |
|||
<column name="GUARANTYRECRATE" type="java.sql.Types.DECIMAL(10,6)" remarks="押品整体回收率"/> |
|||
<column name="LGD" type="java.sql.Types.DECIMAL(10,6)" remarks="lgd计算结果"/> |
|||
<column name="IS_VALID" type="java.sql.Types.VARCHAR(5)" remarks="是否生效"/> |
|||
<column name="MANAGER_CODE" type="java.sql.Types.VARCHAR(60)" remarks="业务经办人"/> |
|||
<column name="DATA_COME_FROM_" type="java.sql.Types.NVARCHAR(10)" remarks="数据来源(INPUT:手工录入,IMPORT:系统自动导入)" defaultValue="INPUT"></column> |
|||
<column name="CREATOR_" type="java.sql.Types.NVARCHAR(255)" remarks="创建人"></column> |
|||
<column name="CREATE_DATE_" type="DATETIME" remarks="创建日期"></column> |
|||
<column name="LAST_MODIFIER_" type="java.sql.Types.NVARCHAR(255)" remarks="最后修改人"></column> |
|||
<column name="LAST_MODIFYDATE_" type="DATETIME" remarks="最后修改日期"></column> |
|||
<column name="CORP_CODE_" type="java.sql.Types.NVARCHAR(255)" remarks="所属法人代码" defaultValue="_PRIMARY_"> |
|||
<constraints nullable="false"/> |
|||
</column> |
|||
</createTable> |
|||
</changeSet> |
|||
</databaseChangeLog> |
@ -1,5 +1,84 @@ |
|||
<template> |
|||
<div>111</div> |
|||
<div style="height: 100%"> |
|||
<w-grid |
|||
ref="appDebtRatingGridRef" |
|||
title="债项评级列表" |
|||
:fetch-data-url="Environment.apiContextPath('api/irbs/appDebtRating/queryPage')" |
|||
:sort-no="true" |
|||
:checkbox-selection="false" |
|||
:query-form-cols-num="4" |
|||
:query-form-fields="appDebtRatingGrid.queryFormFields" |
|||
:columns="appDebtRatingGrid.columns" |
|||
:toolbar-actions="appDebtRatingGrid.buttons" |
|||
:pagination="{ |
|||
sortBy: 'lastModifyDate', |
|||
descending: true, |
|||
}" |
|||
:query-criteria="{ |
|||
fieldName: 'dataStatus', |
|||
operator: 'equals', |
|||
value: '1', |
|||
}" |
|||
></w-grid> |
|||
<LaunchExposureDialog ref="launchExposureDialogRef" @refresh="refreshTable"></LaunchExposureDialog> |
|||
<HandmadeExposureDialog ref="handmadeExposureDialogRef" @refresh="refreshTable"></HandmadeExposureDialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<script setup lang="ts"></script> |
|||
<script setup lang="ts"> |
|||
import { ref } from 'vue'; |
|||
import { useQuasar } from 'quasar'; |
|||
import { Environment, EnumTools, DictionaryTools, Options, Formater, axios, NotifyManager } from 'platform-core'; |
|||
import LaunchExposureDialog from '@/views/riskExposure/LaunchExposureDialog.vue'; |
|||
import HandmadeExposureDialog from '@/views/riskExposure/HandmadeExposureDialog.vue'; |
|||
|
|||
const $q = useQuasar(); |
|||
const appDebtRatingGridRef = ref(); |
|||
const launchExposureDialogRef = ref(); |
|||
const handmadeExposureDialogRef = ref(); |
|||
|
|||
const appDebtRatingGrid = { |
|||
buttons: [ |
|||
['query', 'separator', 'moreQuery'], |
|||
'reset', |
|||
'separator', |
|||
{ |
|||
extend: 'view', |
|||
click: (args) => { |
|||
handmadeExposureDialogRef.value.show(args.selected, true, 'riskExposure'); |
|||
}, |
|||
}, |
|||
'separator', |
|||
], |
|||
queryFormFields: [ |
|||
{ label: '债项编号', name: 'contractNo', type: 'text' }, |
|||
{ label: '客户号', name: 'custNo', type: 'text' }, |
|||
{ label: '客户名称', name: 'custName', type: 'text' }, |
|||
], |
|||
columns: [ |
|||
{ name: 'contractNo', label: '债项编号' }, |
|||
{ name: 'custNo', label: '客户号' }, |
|||
{ name: 'custName', label: '客户名称' }, |
|||
{ name: 'orgType', label: '客户类型' }, |
|||
{ name: 'productType', label: '产品类型' }, |
|||
{ name: 'contractAmt', label: '债项金额' }, |
|||
{ name: 'lowRiskFlg', label: '是否低风险业务' }, |
|||
{ name: 'interestDebtFlg', label: '是否利率债' }, |
|||
{ name: 'financeDebtLevel', label: '金融机构债权等级' }, |
|||
{ name: 'creditGrade', label: '借款人评级' }, |
|||
{ name: 'industryType', label: '借款人行业类型' }, |
|||
{ name: 'corpSize', label: '借款人企业规模' }, |
|||
{ name: 'corpType', label: '借款人企业性质' }, |
|||
{ name: 'regionCode', label: '借款人所在区域' }, |
|||
{ name: 'guaranteeType', label: '担保类型' }, |
|||
{ name: 'pledgeClass', label: '保证担保形式' }, |
|||
{ name: 'regionCode', label: '借款人所在区域' }, |
|||
{ name: 'lgd', label: 'LGD' }, |
|||
{ name: 'managerCode', label: '业务经办人' }, |
|||
], |
|||
}; |
|||
|
|||
const refreshTable = () => { |
|||
appDebtRatingGridRef.value.refresh(); |
|||
}; |
|||
</script> |
|||
|
@ -0,0 +1,234 @@ |
|||
<template> |
|||
<w-dialog ref="dialogRef" :title="state.dialogTitle" width="80%" height="80%" @hide="dialogHide" @maximized="maximized"> |
|||
<q-splitter v-model="state.splitterModel" disable style="height: 100%"> |
|||
<template #before> |
|||
<q-tabs v-model="state.tab" vertical indicator-color="amber"> |
|||
<q-tab name="cust" icon="person" label="客户信息" /> |
|||
<q-tab name="opinionList" icon="insert_comment" label="意见列表" /> |
|||
</q-tabs> |
|||
</template> |
|||
<template #after> |
|||
<q-tab-panels |
|||
v-model="state.tab" |
|||
:keep-alive="true" |
|||
animated |
|||
swipeable |
|||
vertical |
|||
transition-prev="jump-up" |
|||
transition-next="jump-up" |
|||
style="height: 100%" |
|||
> |
|||
<q-tab-panel name="cust" style="height: 100%"> |
|||
<div> |
|||
<span class="pl-[8px]">客户基本信息</span> |
|||
<div class="pt-[8px]"> |
|||
<w-info-panel :dense="state.dense" :info="state.custInfo" :column-num="4"></w-info-panel> |
|||
</div> |
|||
</div> |
|||
<div class="pt-[10px]" :style="state.dense ? 'height: calc(100% - 87px)' : 'height: calc(100% - 120px)'"> |
|||
<w-grid |
|||
ref="debtGridRef" |
|||
title="客户债项信息" |
|||
:dense="state.dense" |
|||
:auto-fetch-data="true" |
|||
:fetch-data-url="Environment.apiContextPath('api/irbs/defaultCognizance/queryBillInfo')" |
|||
:checkbox-selection="false" |
|||
:config-button="false" |
|||
:columns="[ |
|||
{ name: 'DATA_DT', label: '数据日期' }, |
|||
{ name: 'DEBENTURE_NO', label: '借据号' }, |
|||
{ name: 'CONT_NO', label: '合同编号' }, |
|||
{ name: 'PRD_CD_DESC', label: '业务品种' }, |
|||
{ name: 'BORR_GIVE_AMT', label: '借据金额' }, |
|||
{ name: 'BORR_BAL', label: '借据余额' }, |
|||
{ name: 'inOweintBal', label: '表内欠息' }, |
|||
{ name: 'IN_OWEINT_BAL', label: '表外欠息' }, |
|||
{ name: 'TEN_CLASS_CD', label: '十级分类', slot: 'tenClassCd' }, |
|||
{ name: 'PRIN_OVER_DAYS', label: '本金逾期天数' }, |
|||
{ name: 'INT_OVER_DAYS', label: '利息逾期天数' }, |
|||
]" |
|||
:query-criteria="{ |
|||
fieldName: 'CUST_NO', |
|||
operator: 'equals', |
|||
value: state.data['custNo'], |
|||
}" |
|||
:pagination="{ |
|||
reqPageStart: 1, |
|||
}" |
|||
></w-grid> |
|||
</div> |
|||
</q-tab-panel> |
|||
|
|||
<q-tab-panel name="opinionList" style="height: 100%"> |
|||
<div :style="!state.viewFlag ? 'height: calc(100% - 300px)' : 'height: 100%'"> |
|||
<w-grid |
|||
ref="opinionGridRef" |
|||
title="意见历史" |
|||
:dense="state.dense" |
|||
:auto-fetch-data="true" |
|||
:fetch-data-url="Environment.apiContextPath('api/irbs/riskExposureOperation/queryPage')" |
|||
:checkbox-selection="false" |
|||
:config-button="false" |
|||
:columns="[ |
|||
{ name: 'creator', label: '处理人' }, |
|||
{ name: 'lastModifyDate', label: '提交时间' }, |
|||
{ name: 'operation', label: '处理结果' }, |
|||
{ name: 'remarks', label: '意见说明' }, |
|||
{ name: 'fileCount', label: '附件条数' }, |
|||
]" |
|||
:query-criteria="{ |
|||
fieldName: 'riskExposureId', |
|||
operator: 'equals', |
|||
value: state.data['id'], |
|||
}" |
|||
:pagination="{ |
|||
reqPageStart: 1, |
|||
}" |
|||
></w-grid> |
|||
</div> |
|||
<div v-if="!state.viewFlag" class="pt-[10px]" style="height: 200px"> |
|||
<w-form |
|||
ref="opinionFormRef" |
|||
:cols-num="1" |
|||
:fields="[ |
|||
{ |
|||
name: 'manResult', |
|||
label: '人工分类结果', |
|||
type: 'select', |
|||
options: RiskExposureItemOptions, |
|||
required: true, |
|||
showIf: (args) => { |
|||
if (state.data['processStatus'] === 'TO_BE_CHECKED') { |
|||
return false; |
|||
} |
|||
return true; |
|||
}, |
|||
}, |
|||
{ name: 'remarks', label: '意见说明', type: 'textarea', required: true, rows: 4 }, |
|||
{ name: 'suggestUploadAnnx', label: '上传文件', type: 'file' }, |
|||
]" |
|||
> |
|||
</w-form> |
|||
<div> |
|||
<w-workflow-action |
|||
ref="workflowActionRef" |
|||
:task-id="state.data['taskId']" |
|||
:data="state.opinionData" |
|||
:default-submit-button="false" |
|||
:action-url="Environment.apiContextPath('/api/irbs/riskExposure/submitRiskExposure')" |
|||
@before-submit=" |
|||
async (action, callback) => { |
|||
state.opinionData = { |
|||
transientVariables: { |
|||
opaVal: action.transientVariables.goback, |
|||
opType: state.opType, |
|||
desc: '客户名称:' + state.data['custName'], |
|||
}, |
|||
data: opinionFormRef.getData(), |
|||
}; |
|||
const validateResult = await opinionFormRef.validate(); |
|||
if (validateResult) { |
|||
callback(true); |
|||
} else { |
|||
NotifyManager.error('人工分类或意见未填写,无法提交'); |
|||
callback(false); |
|||
} |
|||
} |
|||
" |
|||
@after-submit=" |
|||
() => { |
|||
dialogRef.hide(); |
|||
emit('refresh'); |
|||
} |
|||
" |
|||
> |
|||
</w-workflow-action> |
|||
</div> |
|||
</div> |
|||
</q-tab-panel> |
|||
</q-tab-panels> |
|||
</template> |
|||
</q-splitter> |
|||
</w-dialog> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import { reactive, ref, nextTick } from 'vue'; |
|||
import { axios, Environment, NotifyManager, Tools, Formater, Options } from 'platform-core'; |
|||
import { RiskExposureProcessStatus, RiskExposureItemOptions } from './RiskExposure.ts'; |
|||
import { TrackOpTypes } from 'vue'; |
|||
|
|||
const dialogRef = ref(); |
|||
const debtGridRef = ref(); |
|||
const opinionGridRef = ref(); |
|||
const opinionFormRef = ref(); |
|||
const workflowActionRef = ref(); |
|||
const emit = defineEmits(['refresh']); |
|||
|
|||
const state = reactive({ |
|||
data: {}, |
|||
viewFlag: false, |
|||
dense: true, |
|||
opType: 'riskExposure', |
|||
status: 'edit', |
|||
dialogTitle: '人工风险暴露分类', |
|||
splitterModel: 12, |
|||
tab: 'cust', |
|||
custInfo: <any>[], |
|||
opinionData: {}, |
|||
}); |
|||
const debtActions = ['add', 'edit', 'remove']; |
|||
|
|||
const dialogHide = () => { |
|||
state.status = 'edit'; |
|||
state.dialogTitle = '模拟计算'; |
|||
state.tab = 'cust'; |
|||
}; |
|||
|
|||
const maximized = (flag) => { |
|||
nextTick(() => { |
|||
state.dense = !flag; |
|||
}); |
|||
}; |
|||
|
|||
const loadCustInfo = (data) => { |
|||
const urlSearchParams = new URLSearchParams(); |
|||
urlSearchParams.append('criteria', JSON.stringify({ fieldName: 'custNo', operator: 'equals', value: data['custNo'] })); |
|||
axios |
|||
.get(Environment.apiContextPath('api/irbs/companyCustomer?pageable=false'), { params: urlSearchParams }) |
|||
.then((resp) => { |
|||
if (resp.data?.content) { |
|||
const custInfo = resp.data.content[0]; |
|||
state.custInfo = []; |
|||
state.custInfo.push({ label: '客户号', value: custInfo['custNo'] }); |
|||
state.custInfo.push({ label: '客户名称', value: custInfo['custName'] }); |
|||
state.custInfo.push({ label: '客户经理编号', value: custInfo['mgerNo'] }); |
|||
state.custInfo.push({ label: '客户经理名称', value: custInfo['mgerCna'] }); |
|||
state.custInfo.push({ label: '行业类型', value: custInfo['induSortCd'] }); |
|||
state.custInfo.push({ label: '客户类型', value: custInfo['custTypeCd'] }); |
|||
state.custInfo.push({ label: '成立时间', value: custInfo['buildDt'] }); |
|||
state.custInfo.push({ label: '企业规模', value: custInfo['corpSizeCd'] }); |
|||
} |
|||
}) |
|||
.catch((error) => { |
|||
console.info('error====', error); |
|||
}); |
|||
}; |
|||
|
|||
const show = (data: any, viewFlag = false, opType) => { |
|||
state.data = data; |
|||
state.viewFlag = viewFlag; |
|||
state.opType = opType; |
|||
dialogRef.value.show(); |
|||
// 查询客户信息并赋值 |
|||
loadCustInfo(data); |
|||
}; |
|||
const hide = () => { |
|||
dialogRef.value.hide(); |
|||
}; |
|||
|
|||
defineExpose({ |
|||
show, |
|||
hide, |
|||
}); |
|||
</script> |
@ -0,0 +1,133 @@ |
|||
<template> |
|||
<w-dialog ref="toExposureAdjustDialogRef" :title="state.dialogTitle" width="80%" height="80%" :buttons="dialogButtons"> |
|||
<div class="p-1.5"> |
|||
<w-grid |
|||
ref="toExposureGridRef" |
|||
title="待调整列表" |
|||
:height="430" |
|||
:fetch-data-url="Environment.apiContextPath('api/irbs/riskExposure/adjust/queryPage')" |
|||
:sort-no="true" |
|||
:checkbox-selection="false" |
|||
:config-button="false" |
|||
:query-form-cols-num="2" |
|||
:query-form-fields="toExposureAdjustGrid.queryFormFields" |
|||
:columns="toExposureAdjustGrid.columns" |
|||
:toolbar-actions="toExposureAdjustGrid.buttons" |
|||
:pagination="{ |
|||
sortBy: 'lastModifyDate', |
|||
descending: true, |
|||
}" |
|||
:query-criteria="{ |
|||
operator: 'and', |
|||
criteria: [ |
|||
{ |
|||
fieldName: 'isNeedOperate', |
|||
operator: 'equals', |
|||
value: '0', |
|||
}, |
|||
{ |
|||
fieldName: 'dataStatus', |
|||
operator: 'equals', |
|||
value: '0', |
|||
}, |
|||
], |
|||
}" |
|||
></w-grid> |
|||
<HandmadeExposureDialog ref="handmadeExposureDialogRef"></HandmadeExposureDialog> |
|||
</div> |
|||
</w-dialog> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import { ref, reactive } from 'vue'; |
|||
import { useQuasar } from 'quasar'; |
|||
import { axios, Environment, EnumTools, NotifyManager, Formater } from 'platform-core'; |
|||
import HandmadeExposureDialog from '@/views/riskExposure/HandmadeExposureDialog.vue'; |
|||
|
|||
const $q = useQuasar(); |
|||
const toExposureAdjustDialogRef = ref(); |
|||
const toExposureGridRef = ref(); |
|||
const handmadeExposureDialogRef = ref(); |
|||
const props = defineProps({ |
|||
dictionary: { |
|||
type: Object, |
|||
default: () => { |
|||
return {}; |
|||
}, |
|||
}, |
|||
}); |
|||
const emit = defineEmits(['refresh']); |
|||
|
|||
const state = reactive({ |
|||
dialogTitle: '选择待发起业务', |
|||
}); |
|||
|
|||
const dialogButtons = [ |
|||
{ |
|||
label: '确定', |
|||
icon: 'beenhere', |
|||
click: async () => { |
|||
const rows = toExposureGridRef.value.getSelectedRows(); |
|||
if (rows.length === 0) { |
|||
NotifyManager.warn('请选择待发起的业务'); |
|||
return; |
|||
} |
|||
// 发起 |
|||
showLoading(); |
|||
axios |
|||
.post(Environment.apiContextPath('api/irbs/riskExposure/handmadeRiskExposureAdjust'), { id: rows[0].id }) |
|||
.then((resp) => { |
|||
hideLoading(); |
|||
if (resp && resp['code'] === 200 && resp['data']) { |
|||
emit('refresh'); |
|||
toExposureAdjustDialogRef.value.hide(); |
|||
} |
|||
}) |
|||
.catch((error) => { |
|||
hideLoading(); |
|||
console.info('error-------------', error); |
|||
}); |
|||
}, |
|||
}, |
|||
]; |
|||
|
|||
const toExposureAdjustGrid = { |
|||
buttons: [['query', 'separator'], 'reset'], |
|||
queryFormFields: [ |
|||
{ label: '债项编号', name: 'businessNo', type: 'text' }, |
|||
{ label: '客户号', name: 'custNo', type: 'text' }, |
|||
{ label: '客户名称', name: 'custName', type: 'text' }, |
|||
], |
|||
columns: [ |
|||
{ name: 'businessNo', label: '债项编号' }, |
|||
{ name: 'custNo', label: '客户号' }, |
|||
{ name: 'custName', label: '客户名称' }, |
|||
{ name: 'custType', label: '客户类型' }, |
|||
{ name: 'productType', label: '产品类型' }, |
|||
{ name: 'mgerOrgNm', label: '所属机构' }, |
|||
], |
|||
}; |
|||
|
|||
const show = () => { |
|||
toExposureAdjustDialogRef.value.show(); |
|||
}; |
|||
const hide = () => { |
|||
toExposureAdjustDialogRef.value.hide(); |
|||
}; |
|||
|
|||
const showLoading = (msg: string = '正在处理,请稍等...') => { |
|||
$q.loading.show({ |
|||
message: msg, |
|||
boxClass: 'bg-grey-2 text-grey-9', |
|||
spinnerColor: 'primary', |
|||
}); |
|||
}; |
|||
const hideLoading = () => { |
|||
$q.loading.hide(); |
|||
}; |
|||
|
|||
defineExpose({ |
|||
show, |
|||
hide, |
|||
}); |
|||
</script> |
@ -0,0 +1,133 @@ |
|||
<template> |
|||
<w-dialog ref="toExposureDialogRef" :title="state.dialogTitle" width="80%" height="80%" :buttons="dialogButtons"> |
|||
<div class="p-1.5"> |
|||
<w-grid |
|||
ref="toExposureGridRef" |
|||
title="待发起列表" |
|||
:height="430" |
|||
:fetch-data-url="Environment.apiContextPath('api/irbs/riskExposure/queryPage')" |
|||
:sort-no="true" |
|||
:checkbox-selection="false" |
|||
:config-button="false" |
|||
:query-form-cols-num="2" |
|||
:query-form-fields="toExposureGrid.queryFormFields" |
|||
:columns="toExposureGrid.columns" |
|||
:toolbar-actions="toExposureGrid.buttons" |
|||
:pagination="{ |
|||
sortBy: 'lastModifyDate', |
|||
descending: true, |
|||
}" |
|||
:query-criteria="{ |
|||
operator: 'and', |
|||
criteria: [ |
|||
{ |
|||
fieldName: 'isNeedOperate', |
|||
operator: 'equals', |
|||
value: '1', |
|||
}, |
|||
{ |
|||
fieldName: 'dataStatus', |
|||
operator: 'equals', |
|||
value: '0', |
|||
}, |
|||
], |
|||
}" |
|||
></w-grid> |
|||
<HandmadeExposureDialog ref="handmadeExposureDialogRef"></HandmadeExposureDialog> |
|||
</div> |
|||
</w-dialog> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import { ref, reactive } from 'vue'; |
|||
import { useQuasar } from 'quasar'; |
|||
import { axios, Environment, EnumTools, NotifyManager, Formater } from 'platform-core'; |
|||
import HandmadeExposureDialog from '@/views/riskExposure/HandmadeExposureDialog.vue'; |
|||
|
|||
const $q = useQuasar(); |
|||
const toExposureDialogRef = ref(); |
|||
const toExposureGridRef = ref(); |
|||
const handmadeExposureDialogRef = ref(); |
|||
const props = defineProps({ |
|||
dictionary: { |
|||
type: Object, |
|||
default: () => { |
|||
return {}; |
|||
}, |
|||
}, |
|||
}); |
|||
const emit = defineEmits(['refresh']); |
|||
|
|||
const state = reactive({ |
|||
dialogTitle: '选择待发起业务', |
|||
}); |
|||
|
|||
const dialogButtons = [ |
|||
{ |
|||
label: '确定', |
|||
icon: 'beenhere', |
|||
click: async () => { |
|||
const rows = toExposureGridRef.value.getSelectedRows(); |
|||
if (rows.length === 0) { |
|||
NotifyManager.warn('请选择待发起的业务'); |
|||
return; |
|||
} |
|||
// 发起 |
|||
showLoading(); |
|||
axios |
|||
.post(Environment.apiContextPath('api/irbs/riskExposure/handmadeRiskExposure'), { id: rows[0].id }) |
|||
.then((resp) => { |
|||
hideLoading(); |
|||
if (resp && resp['code'] === 200 && resp['data']) { |
|||
emit('refresh'); |
|||
toExposureDialogRef.value.hide(); |
|||
} |
|||
}) |
|||
.catch((error) => { |
|||
hideLoading(); |
|||
console.info('error-------------', error); |
|||
}); |
|||
}, |
|||
}, |
|||
]; |
|||
|
|||
const toExposureGrid = { |
|||
buttons: [['query', 'separator'], 'reset'], |
|||
queryFormFields: [ |
|||
{ label: '债项编号', name: 'businessNo', type: 'text' }, |
|||
{ label: '客户号', name: 'custNo', type: 'text' }, |
|||
{ label: '客户名称', name: 'custName', type: 'text' }, |
|||
], |
|||
columns: [ |
|||
{ name: 'businessNo', label: '债项编号' }, |
|||
{ name: 'custNo', label: '客户号' }, |
|||
{ name: 'custName', label: '客户名称' }, |
|||
{ name: 'custType', label: '客户类型' }, |
|||
{ name: 'productType', label: '产品类型' }, |
|||
{ name: 'mgerOrgNm', label: '所属机构' }, |
|||
], |
|||
}; |
|||
|
|||
const show = () => { |
|||
toExposureDialogRef.value.show(); |
|||
}; |
|||
const hide = () => { |
|||
toExposureDialogRef.value.hide(); |
|||
}; |
|||
|
|||
const showLoading = (msg: string = '正在处理,请稍等...') => { |
|||
$q.loading.show({ |
|||
message: msg, |
|||
boxClass: 'bg-grey-2 text-grey-9', |
|||
spinnerColor: 'primary', |
|||
}); |
|||
}; |
|||
const hideLoading = () => { |
|||
$q.loading.hide(); |
|||
}; |
|||
|
|||
defineExpose({ |
|||
show, |
|||
hide, |
|||
}); |
|||
</script> |
@ -0,0 +1,33 @@ |
|||
/** |
|||
* 风险暴露分类流程状态对象 |
|||
*/ |
|||
export const RiskExposureProcessStatus = { |
|||
TO_BE_SUBMITTED: 'TO_BE_SUBMITTED', |
|||
RETURNED: 'RETURNED', |
|||
TO_BE_CHECKED: 'TO_BE_CHECKED', |
|||
COMPLETED_PASS: 'COMPLETED_PASS', |
|||
COMPLETED_REJECT: 'COMPLETED_REJECT', |
|||
}; |
|||
|
|||
/** |
|||
* 风险暴露分类选项 |
|||
*/ |
|||
export const RiskExposureItemOptions = [ |
|||
{ label: '公司风险暴露', value: 'RE_0100' }, |
|||
{ label: '一般公司风险暴露', value: 'RE_0110' }, |
|||
{ label: '中小企业风险暴露', value: 'RE_0120' }, |
|||
{ label: '专业贷款风险暴露', value: 'RE_0130' }, |
|||
{ label: '项目融资风险暴露', value: 'RE_0131' }, |
|||
{ label: '商品融资风险暴露', value: 'RE_0132' }, |
|||
{ label: '物品融资风险暴露', value: 'RE_0133' }, |
|||
{ label: '产生收入的房地产风险暴露', value: 'RE_0134' }, |
|||
{ label: '金融机构风险暴露', value: 'RE_0200' }, |
|||
{ label: '银行类金融机构风险暴露', value: 'RE_0210' }, |
|||
{ label: '非银行类金融机构风险暴露', value: 'RE_0220' }, |
|||
{ label: '股权风险暴露', value: 'RE_0300' }, |
|||
{ label: '主权风险暴露', value: 'RE_0400' }, |
|||
{ label: '其他风险暴露', value: 'RE_0500' }, |
|||
{ label: '资产证券化风险暴露', value: 'RE_0510' }, |
|||
{ label: '合格购入公司应收账款风险暴露', value: 'RE_0520' }, |
|||
{ label: '零售风险暴露', value: 'RE_0600' }, |
|||
]; |
@ -0,0 +1,145 @@ |
|||
<template> |
|||
<div style="height: 100%"> |
|||
<w-grid |
|||
ref="riskExposureAdjustGridRef" |
|||
title="风险暴露分类调整列表" |
|||
:fetch-data-url="Environment.apiContextPath('api/irbs/riskExposure/adjust/queryPage')" |
|||
:sort-no="true" |
|||
:checkbox-selection="false" |
|||
:query-form-cols-num="4" |
|||
:query-form-fields="riskExposureAdjustGrid.queryFormFields" |
|||
:columns="riskExposureAdjustGrid.columns" |
|||
:toolbar-actions="riskExposureAdjustGrid.buttons" |
|||
:pagination="{ |
|||
sortBy: 'lastModifyDate', |
|||
descending: true, |
|||
}" |
|||
:query-criteria="{ |
|||
operator: 'and', |
|||
criteria: [ |
|||
{ |
|||
fieldName: 'isNeedOperate', |
|||
operator: 'equals', |
|||
value: '0', |
|||
}, |
|||
{ |
|||
fieldName: 'dataStatus', |
|||
operator: 'equals', |
|||
value: '1', |
|||
}, |
|||
], |
|||
}" |
|||
></w-grid> |
|||
<LaunchExposureAdjustDialog ref="launchExposureAdjustDialogRef" @refresh="refreshTable"></LaunchExposureAdjustDialog> |
|||
<HandmadeExposureDialog ref="handmadeExposureDialogRef" @refresh="refreshTable"></HandmadeExposureDialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import { ref } from 'vue'; |
|||
import { useQuasar } from 'quasar'; |
|||
import { Environment, EnumTools, DictionaryTools, Options, Formater, axios, NotifyManager } from 'platform-core'; |
|||
import LaunchExposureAdjustDialog from '@/views/riskExposure/LaunchExposureAdjustDialog.vue'; |
|||
import HandmadeExposureDialog from '@/views/riskExposure/HandmadeExposureDialog.vue'; |
|||
import { RiskExposureProcessStatus } from './RiskExposure.ts'; |
|||
|
|||
const $q = useQuasar(); |
|||
const riskExposureAdjustGridRef = ref(); |
|||
const launchExposureAdjustDialogRef = ref(); |
|||
const handmadeExposureDialogRef = ref(); |
|||
|
|||
const riskExposureAdjustGrid = { |
|||
buttons: [ |
|||
['query', 'separator', 'moreQuery'], |
|||
'reset', |
|||
'separator', |
|||
{ |
|||
extend: 'add', |
|||
label: '人工调整发起', |
|||
click: () => { |
|||
launchExposureAdjustDialogRef.value.show(); |
|||
}, |
|||
}, |
|||
{ |
|||
extend: 'edit', |
|||
label: '编辑', |
|||
enableIf: (args) => { |
|||
if (args.selected && (args.selected['processStatus'] === 'TO_BE_SUBMITTED' || args.selected['processStatus'] === 'RETURNED')) { |
|||
return true; |
|||
} |
|||
return false; |
|||
}, |
|||
click: (args) => { |
|||
handmadeExposureDialogRef.value.show(args.selected, false, 'riskExposureAdjust'); |
|||
}, |
|||
}, |
|||
'separator', |
|||
{ |
|||
extend: 'view', |
|||
click: (args) => { |
|||
handmadeExposureDialogRef.value.show(args.selected, true, 'riskExposureAdjust'); |
|||
}, |
|||
}, |
|||
'separator', |
|||
], |
|||
queryFormFields: [ |
|||
{ label: '债项编号', name: 'businessNo', type: 'text' }, |
|||
{ label: '客户号', name: 'custNo', type: 'text' }, |
|||
{ label: '客户名称', name: 'custName', type: 'text' }, |
|||
{ |
|||
label: '风险暴露分类', |
|||
name: 'manResult', |
|||
type: 'select', |
|||
options: [ |
|||
{ label: '公司风险暴露', value: 'RE_0100' }, |
|||
{ label: '一般公司风险暴露', value: 'RE_0110' }, |
|||
{ label: '中小企业风险暴露', value: 'RE_0120' }, |
|||
{ label: '专业贷款风险暴露', value: 'RE_0130' }, |
|||
{ label: '项目融资风险暴露', value: 'RE_0131' }, |
|||
{ label: '商品融资风险暴露', value: 'RE_0132' }, |
|||
{ label: '物品融资风险暴露', value: 'RE_0133' }, |
|||
{ label: '产生收入的房地产风险暴露', value: 'RE_0134' }, |
|||
{ label: '金融机构风险暴露', value: 'RE_0200' }, |
|||
{ label: '银行类金融机构风险暴露', value: 'RE_0210' }, |
|||
{ label: '非银行类金融机构风险暴露', value: 'RE_0220' }, |
|||
{ label: '股权风险暴露', value: 'RE_0300' }, |
|||
{ label: '主权风险暴露', value: 'RE_0400' }, |
|||
{ label: '其他风险暴露', value: 'RE_0500' }, |
|||
{ label: '资产证券化风险暴露', value: 'RE_0510' }, |
|||
{ label: '合格购入公司应收账款风险暴露', value: 'RE_0520' }, |
|||
{ label: '零售风险暴露', value: 'RE_0600' }, |
|||
], |
|||
}, |
|||
{ |
|||
label: '流程状态', |
|||
name: 'status', |
|||
type: 'select', |
|||
options: [ |
|||
{ value: 'TO_BE_SUBMITTED', label: '待发起' }, |
|||
{ value: 'RETURNED', label: '退回' }, |
|||
{ value: 'TO_BE_CHECKED', label: '审批中' }, |
|||
{ value: 'COMPLETED_PASS', label: '通过' }, |
|||
{ value: 'COMPLETED_REJECT', label: '否决' }, |
|||
], |
|||
}, |
|||
], |
|||
columns: [ |
|||
{ name: 'businessNo', label: '债项编号' }, |
|||
{ name: 'custNo', label: '客户号' }, |
|||
{ name: 'custName', label: '客户名称' }, |
|||
{ name: 'custType', label: '客户类型' }, |
|||
{ name: 'productType', label: '产品类型' }, |
|||
{ name: 'manResult', label: '人工分类结果' }, |
|||
{ name: 'finalResult', label: '最终分类结果' }, |
|||
{ name: 'managerName', label: '客户经理' }, |
|||
{ name: 'createDate', label: '申请时间', format: Formater.dateOnly() }, |
|||
{ name: 'processStatus', label: '流程状态' }, |
|||
{ name: 'mgerOrgNm', label: '所属机构' }, |
|||
{ name: 'currentAssignee', label: '当前处理人' }, |
|||
], |
|||
}; |
|||
|
|||
const refreshTable = () => { |
|||
riskExposureAdjustGridRef.value.refresh(); |
|||
}; |
|||
</script> |
@ -0,0 +1,152 @@ |
|||
<template> |
|||
<div style="height: 100%"> |
|||
<w-grid |
|||
ref="riskExposureAdjustGridRef" |
|||
title="风险暴露分类调整列表" |
|||
:fetch-data-url="Environment.apiContextPath('api/irbs/riskExposure/adjust/queryPage')" |
|||
:sort-no="true" |
|||
:checkbox-selection="false" |
|||
:query-form-cols-num="4" |
|||
:query-form-fields="riskExposureAdjustGrid.queryFormFields" |
|||
:columns="riskExposureAdjustGrid.columns" |
|||
:toolbar-actions="riskExposureAdjustGrid.buttons" |
|||
:pagination="{ |
|||
sortBy: 'lastModifyDate', |
|||
descending: true, |
|||
}" |
|||
:query-criteria="{ |
|||
operator: 'and', |
|||
criteria: [ |
|||
{ |
|||
fieldName: 'isNeedOperate', |
|||
operator: 'equals', |
|||
value: '0', |
|||
}, |
|||
{ |
|||
fieldName: 'dataStatus', |
|||
operator: 'equals', |
|||
value: '1', |
|||
}, |
|||
{ |
|||
fieldName: 'processStatus', |
|||
operator: 'equals', |
|||
value: 'TO_BE_CHECKED', |
|||
}, |
|||
], |
|||
}" |
|||
></w-grid> |
|||
<LaunchExposureDialog ref="launchExposureDialogRef" @refresh="refreshTable"></LaunchExposureDialog> |
|||
<HandmadeExposureDialog ref="handmadeExposureDialogRef" @refresh="refreshTable"></HandmadeExposureDialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import { ref } from 'vue'; |
|||
import { useQuasar } from 'quasar'; |
|||
import { Environment, EnumTools, DictionaryTools, Options, Formater, axios, NotifyManager } from 'platform-core'; |
|||
import LaunchExposureDialog from '@/views/riskExposure/LaunchExposureDialog.vue'; |
|||
import HandmadeExposureDialog from '@/views/riskExposure/HandmadeExposureDialog.vue'; |
|||
import { RiskExposureProcessStatus } from './RiskExposure.ts'; |
|||
|
|||
const $q = useQuasar(); |
|||
const riskExposureAdjustGridRef = ref(); |
|||
const launchExposureDialogRef = ref(); |
|||
const handmadeExposureDialogRef = ref(); |
|||
|
|||
const RiskExposureProcessStatusEnum = await EnumTools.fetch('irbs.riskExposure.jpa.support.RiskExposureProcessStatus'); |
|||
|
|||
const riskExposureAdjustGrid = { |
|||
buttons: [ |
|||
['query', 'separator', 'moreQuery'], |
|||
'reset', |
|||
'separator', |
|||
/*{ |
|||
extend: 'add', |
|||
label: '人工分类发起', |
|||
click: () => { |
|||
launchExposureDialogRef.value.show(); |
|||
}, |
|||
},*/ |
|||
{ |
|||
extend: 'edit', |
|||
label: '编辑', |
|||
enableIf: (args) => { |
|||
if (args.selected && (args.selected['processStatus'] === 'TO_BE_CHECKED' || args.selected['processStatus'] === 'RETURNED')) { |
|||
return true; |
|||
} |
|||
return false; |
|||
}, |
|||
click: (args) => { |
|||
handmadeExposureDialogRef.value.show(args.selected, false, 'riskExposureAdjust'); |
|||
}, |
|||
}, |
|||
'separator', |
|||
{ |
|||
extend: 'view', |
|||
click: (args) => { |
|||
handmadeExposureDialogRef.value.show(args.selected, true, 'riskExposureAdjust'); |
|||
}, |
|||
}, |
|||
'separator', |
|||
], |
|||
queryFormFields: [ |
|||
{ label: '债项编号', name: 'businessNo', type: 'text' }, |
|||
{ label: '客户号', name: 'custNo', type: 'text' }, |
|||
{ label: '客户名称', name: 'custName', type: 'text' }, |
|||
{ |
|||
label: '风险暴露分类', |
|||
name: 'manResult', |
|||
type: 'select', |
|||
options: [ |
|||
{ label: '公司风险暴露', value: 'RE_0100' }, |
|||
{ label: '一般公司风险暴露', value: 'RE_0110' }, |
|||
{ label: '中小企业风险暴露', value: 'RE_0120' }, |
|||
{ label: '专业贷款风险暴露', value: 'RE_0130' }, |
|||
{ label: '项目融资风险暴露', value: 'RE_0131' }, |
|||
{ label: '商品融资风险暴露', value: 'RE_0132' }, |
|||
{ label: '物品融资风险暴露', value: 'RE_0133' }, |
|||
{ label: '产生收入的房地产风险暴露', value: 'RE_0134' }, |
|||
{ label: '金融机构风险暴露', value: 'RE_0200' }, |
|||
{ label: '银行类金融机构风险暴露', value: 'RE_0210' }, |
|||
{ label: '非银行类金融机构风险暴露', value: 'RE_0220' }, |
|||
{ label: '股权风险暴露', value: 'RE_0300' }, |
|||
{ label: '主权风险暴露', value: 'RE_0400' }, |
|||
{ label: '其他风险暴露', value: 'RE_0500' }, |
|||
{ label: '资产证券化风险暴露', value: 'RE_0510' }, |
|||
{ label: '合格购入公司应收账款风险暴露', value: 'RE_0520' }, |
|||
{ label: '零售风险暴露', value: 'RE_0600' }, |
|||
], |
|||
}, |
|||
{ |
|||
label: '流程状态', |
|||
name: 'status', |
|||
type: 'select', |
|||
options: [ |
|||
{ value: 'TO_BE_SUBMITTED', label: '待发起' }, |
|||
{ value: 'RETURNED', label: '退回' }, |
|||
{ value: 'TO_BE_CHECKED', label: '审批中' }, |
|||
{ value: 'COMPLETED_PASS', label: '通过' }, |
|||
{ value: 'COMPLETED_REJECT', label: '否决' }, |
|||
], |
|||
}, |
|||
], |
|||
columns: [ |
|||
{ name: 'businessNo', label: '债项编号' }, |
|||
{ name: 'custNo', label: '客户号' }, |
|||
{ name: 'custName', label: '客户名称' }, |
|||
{ name: 'custType', label: '客户类型' }, |
|||
{ name: 'productType', label: '产品类型' }, |
|||
{ name: 'manResult', label: '人工分类结果' }, |
|||
{ name: 'finalResult', label: '最终分类结果' }, |
|||
{ name: 'managerName', label: '客户经理' }, |
|||
{ name: 'createDate', label: '申请时间', format: Formater.dateOnly() }, |
|||
{ name: 'processStatus', label: '流程状态', format: Formater.enum(RiskExposureProcessStatusEnum) }, |
|||
{ name: 'mgerOrgNm', label: '所属机构' }, |
|||
{ name: 'currentAssignee', label: '当前处理人' }, |
|||
], |
|||
}; |
|||
|
|||
const refreshTable = () => { |
|||
riskExposureAdjustGridRef.value.refresh(); |
|||
}; |
|||
</script> |
@ -1,5 +1,135 @@ |
|||
<template> |
|||
<div>111</div> |
|||
<div style="height: 100%"> |
|||
<w-grid |
|||
ref="riskExposureGridRef" |
|||
title="风险暴露分类列表" |
|||
:fetch-data-url="Environment.apiContextPath('api/irbs/riskExposure/queryPage')" |
|||
:sort-no="true" |
|||
:checkbox-selection="false" |
|||
:query-form-cols-num="4" |
|||
:query-form-fields="riskExposureGrid.queryFormFields" |
|||
:columns="riskExposureGrid.columns" |
|||
:toolbar-actions="riskExposureGrid.buttons" |
|||
:pagination="{ |
|||
sortBy: 'lastModifyDate', |
|||
descending: true, |
|||
}" |
|||
:query-criteria="{ |
|||
fieldName: 'dataStatus', |
|||
operator: 'equals', |
|||
value: '1', |
|||
}" |
|||
></w-grid> |
|||
<LaunchExposureDialog ref="launchExposureDialogRef" @refresh="refreshTable"></LaunchExposureDialog> |
|||
<HandmadeExposureDialog ref="handmadeExposureDialogRef" @refresh="refreshTable"></HandmadeExposureDialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<script setup lang="ts"></script> |
|||
<script setup lang="ts"> |
|||
import { ref } from 'vue'; |
|||
import { useQuasar } from 'quasar'; |
|||
import { Environment, EnumTools, DictionaryTools, Options, Formater, axios, NotifyManager } from 'platform-core'; |
|||
import LaunchExposureDialog from '@/views/riskExposure/LaunchExposureDialog.vue'; |
|||
import HandmadeExposureDialog from '@/views/riskExposure/HandmadeExposureDialog.vue'; |
|||
import { RiskExposureProcessStatus } from './RiskExposure.ts'; |
|||
|
|||
const $q = useQuasar(); |
|||
const riskExposureGridRef = ref(); |
|||
const launchExposureDialogRef = ref(); |
|||
const handmadeExposureDialogRef = ref(); |
|||
|
|||
const riskExposureGrid = { |
|||
buttons: [ |
|||
['query', 'separator', 'moreQuery'], |
|||
'reset', |
|||
'separator', |
|||
{ |
|||
extend: 'add', |
|||
label: '人工分类发起', |
|||
click: () => { |
|||
launchExposureDialogRef.value.show(); |
|||
}, |
|||
}, |
|||
{ |
|||
extend: 'edit', |
|||
label: '编辑', |
|||
enableIf: (args) => { |
|||
if (args.selected && (args.selected['processStatus'] === 'TO_BE_SUBMITTED' || args.selected['processStatus'] === 'RETURNED')) { |
|||
return true; |
|||
} |
|||
return false; |
|||
}, |
|||
click: (args) => { |
|||
handmadeExposureDialogRef.value.show(args.selected, false, 'riskExposure'); |
|||
}, |
|||
}, |
|||
'separator', |
|||
{ |
|||
extend: 'view', |
|||
click: (args) => { |
|||
handmadeExposureDialogRef.value.show(args.selected, true, 'riskExposure'); |
|||
}, |
|||
}, |
|||
'separator', |
|||
], |
|||
queryFormFields: [ |
|||
{ label: '债项编号', name: 'businessNo', type: 'text' }, |
|||
{ label: '客户号', name: 'custNo', type: 'text' }, |
|||
{ label: '客户名称', name: 'custName', type: 'text' }, |
|||
{ |
|||
label: '风险暴露分类', |
|||
name: 'manResult', |
|||
type: 'select', |
|||
options: [ |
|||
{ label: '公司风险暴露', value: 'RE_0100' }, |
|||
{ label: '一般公司风险暴露', value: 'RE_0110' }, |
|||
{ label: '中小企业风险暴露', value: 'RE_0120' }, |
|||
{ label: '专业贷款风险暴露', value: 'RE_0130' }, |
|||
{ label: '项目融资风险暴露', value: 'RE_0131' }, |
|||
{ label: '商品融资风险暴露', value: 'RE_0132' }, |
|||
{ label: '物品融资风险暴露', value: 'RE_0133' }, |
|||
{ label: '产生收入的房地产风险暴露', value: 'RE_0134' }, |
|||
{ label: '金融机构风险暴露', value: 'RE_0200' }, |
|||
{ label: '银行类金融机构风险暴露', value: 'RE_0210' }, |
|||
{ label: '非银行类金融机构风险暴露', value: 'RE_0220' }, |
|||
{ label: '股权风险暴露', value: 'RE_0300' }, |
|||
{ label: '主权风险暴露', value: 'RE_0400' }, |
|||
{ label: '其他风险暴露', value: 'RE_0500' }, |
|||
{ label: '资产证券化风险暴露', value: 'RE_0510' }, |
|||
{ label: '合格购入公司应收账款风险暴露', value: 'RE_0520' }, |
|||
{ label: '零售风险暴露', value: 'RE_0600' }, |
|||
], |
|||
}, |
|||
{ |
|||
label: '流程状态', |
|||
name: 'status', |
|||
type: 'select', |
|||
options: [ |
|||
{ value: 'TO_BE_SUBMITTED', label: '待发起' }, |
|||
{ value: 'RETURNED', label: '退回' }, |
|||
{ value: 'TO_BE_CHECKED', label: '审批中' }, |
|||
{ value: 'COMPLETED_PASS', label: '通过' }, |
|||
{ value: 'COMPLETED_REJECT', label: '否决' }, |
|||
], |
|||
}, |
|||
], |
|||
columns: [ |
|||
{ name: 'businessNo', label: '债项编号' }, |
|||
{ name: 'custNo', label: '客户号' }, |
|||
{ name: 'custName', label: '客户名称' }, |
|||
{ name: 'custType', label: '客户类型' }, |
|||
{ name: 'productType', label: '产品类型' }, |
|||
{ name: 'manResult', label: '人工分类结果' }, |
|||
{ name: 'finalResult', label: '最终分类结果' }, |
|||
{ name: 'managerName', label: '客户经理' }, |
|||
{ name: 'createDate', label: '申请时间', format: Formater.dateOnly() }, |
|||
{ name: 'processStatus', label: '流程状态' }, |
|||
{ name: 'mgerOrgNm', label: '所属机构' }, |
|||
{ name: 'currentAssignee', label: '当前处理人' }, |
|||
], |
|||
}; |
|||
|
|||
const refreshTable = () => { |
|||
riskExposureGridRef.value.refresh(); |
|||
}; |
|||
</script> |
|||
|
@ -1,5 +1,147 @@ |
|||
<template> |
|||
<div>111</div> |
|||
<div style="height: 100%"> |
|||
<w-grid |
|||
ref="riskExposureGridRef" |
|||
title="风险暴露分类列表" |
|||
:fetch-data-url="Environment.apiContextPath('api/irbs/riskExposure/queryPage')" |
|||
:sort-no="true" |
|||
:checkbox-selection="false" |
|||
:query-form-cols-num="4" |
|||
:query-form-fields="riskExposureGrid.queryFormFields" |
|||
:columns="riskExposureGrid.columns" |
|||
:toolbar-actions="riskExposureGrid.buttons" |
|||
:pagination="{ |
|||
sortBy: 'lastModifyDate', |
|||
descending: true, |
|||
}" |
|||
:query-criteria="{ |
|||
operator: 'and', |
|||
criteria: [ |
|||
{ |
|||
fieldName: 'dataStatus', |
|||
operator: 'equals', |
|||
value: '1', |
|||
}, |
|||
{ |
|||
fieldName: 'processStatus', |
|||
operator: 'equals', |
|||
value: 'TO_BE_CHECKED', |
|||
}, |
|||
], |
|||
}" |
|||
></w-grid> |
|||
<LaunchExposureDialog ref="launchExposureDialogRef" @refresh="refreshTable"></LaunchExposureDialog> |
|||
<HandmadeExposureDialog ref="handmadeExposureDialogRef" @refresh="refreshTable"></HandmadeExposureDialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<script setup lang="ts"></script> |
|||
<script setup lang="ts"> |
|||
import { ref } from 'vue'; |
|||
import { useQuasar } from 'quasar'; |
|||
import { Environment, EnumTools, DictionaryTools, Options, Formater, axios, NotifyManager } from 'platform-core'; |
|||
import LaunchExposureDialog from '@/views/riskExposure/LaunchExposureDialog.vue'; |
|||
import HandmadeExposureDialog from '@/views/riskExposure/HandmadeExposureDialog.vue'; |
|||
import { RiskExposureProcessStatus } from './RiskExposure.ts'; |
|||
|
|||
const $q = useQuasar(); |
|||
const riskExposureGridRef = ref(); |
|||
const launchExposureDialogRef = ref(); |
|||
const handmadeExposureDialogRef = ref(); |
|||
|
|||
const RiskExposureProcessStatusEnum = await EnumTools.fetch('irbs.riskExposure.jpa.support.RiskExposureProcessStatus'); |
|||
|
|||
const riskExposureGrid = { |
|||
buttons: [ |
|||
['query', 'separator', 'moreQuery'], |
|||
'reset', |
|||
'separator', |
|||
/*{ |
|||
extend: 'add', |
|||
label: '人工分类发起', |
|||
click: () => { |
|||
launchExposureDialogRef.value.show(); |
|||
}, |
|||
},*/ |
|||
{ |
|||
extend: 'edit', |
|||
label: '编辑', |
|||
enableIf: (args) => { |
|||
if (args.selected && (args.selected['processStatus'] === 'TO_BE_CHECKED' || args.selected['processStatus'] === 'RETURNED')) { |
|||
return true; |
|||
} |
|||
return false; |
|||
}, |
|||
click: (args) => { |
|||
handmadeExposureDialogRef.value.show(args.selected, false, 'riskExposure'); |
|||
}, |
|||
}, |
|||
'separator', |
|||
{ |
|||
extend: 'view', |
|||
click: (args) => { |
|||
handmadeExposureDialogRef.value.show(args.selected, true, 'riskExposure'); |
|||
}, |
|||
}, |
|||
'separator', |
|||
], |
|||
queryFormFields: [ |
|||
{ label: '债项编号', name: 'businessNo', type: 'text' }, |
|||
{ label: '客户号', name: 'custNo', type: 'text' }, |
|||
{ label: '客户名称', name: 'custName', type: 'text' }, |
|||
{ |
|||
label: '风险暴露分类', |
|||
name: 'manResult', |
|||
type: 'select', |
|||
options: [ |
|||
{ label: '公司风险暴露', value: 'RE_0100' }, |
|||
{ label: '一般公司风险暴露', value: 'RE_0110' }, |
|||
{ label: '中小企业风险暴露', value: 'RE_0120' }, |
|||
{ label: '专业贷款风险暴露', value: 'RE_0130' }, |
|||
{ label: '项目融资风险暴露', value: 'RE_0131' }, |
|||
{ label: '商品融资风险暴露', value: 'RE_0132' }, |
|||
{ label: '物品融资风险暴露', value: 'RE_0133' }, |
|||
{ label: '产生收入的房地产风险暴露', value: 'RE_0134' }, |
|||
{ label: '金融机构风险暴露', value: 'RE_0200' }, |
|||
{ label: '银行类金融机构风险暴露', value: 'RE_0210' }, |
|||
{ label: '非银行类金融机构风险暴露', value: 'RE_0220' }, |
|||
{ label: '股权风险暴露', value: 'RE_0300' }, |
|||
{ label: '主权风险暴露', value: 'RE_0400' }, |
|||
{ label: '其他风险暴露', value: 'RE_0500' }, |
|||
{ label: '资产证券化风险暴露', value: 'RE_0510' }, |
|||
{ label: '合格购入公司应收账款风险暴露', value: 'RE_0520' }, |
|||
{ label: '零售风险暴露', value: 'RE_0600' }, |
|||
], |
|||
}, |
|||
{ |
|||
label: '流程状态', |
|||
name: 'status', |
|||
type: 'select', |
|||
options: [ |
|||
{ value: 'TO_BE_SUBMITTED', label: '待发起' }, |
|||
{ value: 'RETURNED', label: '退回' }, |
|||
{ value: 'TO_BE_CHECKED', label: '审批中' }, |
|||
{ value: 'COMPLETED_PASS', label: '通过' }, |
|||
{ value: 'COMPLETED_REJECT', label: '否决' }, |
|||
], |
|||
}, |
|||
], |
|||
columns: [ |
|||
{ name: 'businessNo', label: '债项编号' }, |
|||
{ name: 'custNo', label: '客户号' }, |
|||
{ name: 'custName', label: '客户名称' }, |
|||
{ name: 'custType', label: '客户类型' }, |
|||
{ name: 'productType', label: '产品类型' }, |
|||
{ name: 'manResult', label: '人工分类结果' }, |
|||
{ name: 'finalResult', label: '最终分类结果' }, |
|||
{ name: 'managerName', label: '客户经理' }, |
|||
{ name: 'createDate', label: '申请时间', format: Formater.dateOnly() }, |
|||
{ name: 'processStatus', label: '流程状态', format: Formater.enum(RiskExposureProcessStatusEnum) }, |
|||
{ name: 'mgerOrgNm', label: '所属机构' }, |
|||
{ name: 'currentAssignee', label: '当前处理人' }, |
|||
], |
|||
}; |
|||
|
|||
const refreshTable = () => { |
|||
riskExposureGridRef.value.refresh(); |
|||
}; |
|||
</script> |
|||
|
@ -0,0 +1,7 @@ |
|||
dependencies { |
|||
api( |
|||
"io.sc:io.sc.platform.mvc:${platform_version}", |
|||
"io.sc:io.sc.platform.flowable:${platform_version}", |
|||
"io.sc:io.sc.platform.page.config:${platform_version}", |
|||
) |
|||
} |
@ -0,0 +1,71 @@ |
|||
package irbs.riskExposure.controller; |
|||
|
|||
import io.sc.platform.flowable.controller.support.ProcessProperties; |
|||
import io.sc.platform.flowable.support.CompleteTaskException; |
|||
import io.sc.platform.flowable.support.CompleteTaskResponse; |
|||
import io.sc.platform.orm.service.support.QueryParameter; |
|||
import irbs.riskExposure.jpa.entity.RiskExposure; |
|||
import irbs.riskExposure.service.RiskExposureAdjustService; |
|||
import irbs.riskExposure.service.RiskExposureProcessService; |
|||
import irbs.riskExposure.service.RiskExposureService; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.data.domain.Page; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.util.Map; |
|||
|
|||
@RestController |
|||
@RequestMapping("/api/irbs/riskExposure/adjust") |
|||
public class RiskExposureAdjustController { |
|||
|
|||
@Autowired |
|||
private RiskExposureAdjustService riskExposureAdjustService; |
|||
@Autowired |
|||
private RiskExposureProcessService riskExposureProcessService; |
|||
@GetMapping("queryPage") |
|||
public Page<RiskExposure> queryPage(QueryParameter queryParameter) throws Exception{ |
|||
Page<RiskExposure> page = riskExposureAdjustService.queryPage(queryParameter); |
|||
return page; |
|||
} |
|||
|
|||
/** |
|||
* 根据ID查询风险暴露分类数据 |
|||
* @param map |
|||
* @throws Exception |
|||
*/ |
|||
@RequestMapping(value="getRiskExposureById",method= RequestMethod.POST) |
|||
@ResponseBody |
|||
public RiskExposure getRiskExposureById(@RequestBody Map<String, Object> map) throws Exception { |
|||
String id = (String) map.get("id"); |
|||
return riskExposureAdjustService.findById(id); |
|||
} |
|||
|
|||
/** |
|||
* 人工风险暴露分类发起 |
|||
* @param map |
|||
* @throws Exception |
|||
*/ |
|||
@RequestMapping(value="handmadeRiskExposure",method= RequestMethod.POST) |
|||
@ResponseBody |
|||
public RiskExposure handmadeRiskExposure(@RequestBody Map<String, Object> map) throws Exception { |
|||
String id = (String) map.get("id"); |
|||
return riskExposureAdjustService.handmadeRiskExposure(id); |
|||
} |
|||
|
|||
/** |
|||
* 人工风险暴露分类流程提交 |
|||
* @throws Exception |
|||
*/ |
|||
@RequestMapping(value="submitRiskExposure/{taskId}",method= RequestMethod.POST) |
|||
@ResponseBody |
|||
public CompleteTaskResponse submitRiskExposure(@PathVariable("taskId") String taskId, @RequestBody ProcessProperties processProperties) throws Exception { |
|||
try { |
|||
return riskExposureProcessService.submitRiskExposureAdjust(taskId, processProperties); |
|||
} catch (CompleteTaskException exception) { |
|||
return CompleteTaskResponse.fromAssigneesJson(exception.getMessage()); |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
return new CompleteTaskResponse(); |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,90 @@ |
|||
package irbs.riskExposure.controller; |
|||
|
|||
import io.sc.platform.flowable.controller.support.ProcessProperties; |
|||
import io.sc.platform.flowable.support.CompleteTaskException; |
|||
import io.sc.platform.flowable.support.CompleteTaskResponse; |
|||
import io.sc.platform.orm.service.support.QueryParameter; |
|||
import irbs.riskExposure.jpa.entity.RiskExposure; |
|||
import irbs.riskExposure.service.RiskExposureAdjustService; |
|||
import irbs.riskExposure.service.RiskExposureProcessService; |
|||
import irbs.riskExposure.service.RiskExposureService; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.data.domain.Page; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.util.Map; |
|||
|
|||
@RestController |
|||
@RequestMapping("/api/irbs/riskExposure") |
|||
public class RiskExposureController { |
|||
|
|||
@Autowired |
|||
private RiskExposureService riskExposureService; |
|||
@Autowired |
|||
private RiskExposureAdjustService riskExposureAdjustService; |
|||
@Autowired |
|||
private RiskExposureProcessService riskExposureProcessService; |
|||
@GetMapping("queryPage") |
|||
public Page<RiskExposure> queryPage(QueryParameter queryParameter) throws Exception{ |
|||
Page<RiskExposure> page = riskExposureService.queryPage(queryParameter); |
|||
return page; |
|||
} |
|||
|
|||
/** |
|||
* 根据ID查询风险暴露分类数据 |
|||
* @param map |
|||
* @throws Exception |
|||
*/ |
|||
@RequestMapping(value="getRiskExposureById",method= RequestMethod.POST) |
|||
@ResponseBody |
|||
public RiskExposure getRiskExposureById(@RequestBody Map<String, Object> map) throws Exception { |
|||
String id = (String) map.get("id"); |
|||
return riskExposureService.findById(id); |
|||
} |
|||
|
|||
/** |
|||
* 人工风险暴露分类发起 |
|||
* @param map |
|||
* @throws Exception |
|||
*/ |
|||
@RequestMapping(value="handmadeRiskExposure",method= RequestMethod.POST) |
|||
@ResponseBody |
|||
public RiskExposure handmadeRiskExposure(@RequestBody Map<String, Object> map) throws Exception { |
|||
String id = (String) map.get("id"); |
|||
return riskExposureService.handmadeRiskExposure(id); |
|||
} |
|||
|
|||
/** |
|||
* 人工风险暴露分类调整发起 |
|||
* @param map |
|||
* @throws Exception |
|||
*/ |
|||
@RequestMapping(value="handmadeRiskExposureAdjust",method= RequestMethod.POST) |
|||
@ResponseBody |
|||
public RiskExposure handmadeRiskExposureAdjust(@RequestBody Map<String, Object> map) throws Exception { |
|||
String id = (String) map.get("id"); |
|||
return riskExposureAdjustService.handmadeRiskExposure(id); |
|||
} |
|||
|
|||
/** |
|||
* 人工风险暴露分类流程提交 |
|||
* @throws Exception |
|||
*/ |
|||
@RequestMapping(value="submitRiskExposure/{taskId}",method= RequestMethod.POST) |
|||
@ResponseBody |
|||
public CompleteTaskResponse submitRiskExposure(@PathVariable("taskId") String taskId, @RequestBody ProcessProperties processProperties) throws Exception { |
|||
try { |
|||
String opType = (String) processProperties.getTransientVariables().get("opType"); |
|||
if(opType.equals("riskExposureAdjust")){ |
|||
return riskExposureProcessService.submitRiskExposureAdjust(taskId, processProperties); |
|||
}else { |
|||
return riskExposureProcessService.submitRiskExposure(taskId, processProperties); |
|||
} |
|||
} catch (CompleteTaskException exception) { |
|||
return CompleteTaskResponse.fromAssigneesJson(exception.getMessage()); |
|||
} catch (Exception e) { |
|||
e.printStackTrace(); |
|||
return new CompleteTaskResponse(); |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,29 @@ |
|||
package irbs.riskExposure.controller; |
|||
|
|||
import io.sc.platform.flowable.controller.support.ProcessProperties; |
|||
import io.sc.platform.flowable.support.CompleteTaskException; |
|||
import io.sc.platform.flowable.support.CompleteTaskResponse; |
|||
import io.sc.platform.orm.service.support.QueryParameter; |
|||
import irbs.riskExposure.jpa.entity.RiskExposure; |
|||
import irbs.riskExposure.jpa.entity.RiskExposureOperation; |
|||
import irbs.riskExposure.jpa.repository.CustomerRepository; |
|||
import irbs.riskExposure.service.RiskExposureOperationService; |
|||
import irbs.riskExposure.service.RiskExposureService; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.data.domain.Page; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.util.Map; |
|||
|
|||
@RestController |
|||
@RequestMapping("/api/irbs/riskExposureOperation") |
|||
public class RiskExposureOperationController { |
|||
|
|||
@Autowired |
|||
private RiskExposureOperationService riskExposureOperationService; |
|||
|
|||
@GetMapping("queryPage") |
|||
public Page<RiskExposureOperation> queryPage(QueryParameter queryParameter) throws Exception{ |
|||
return riskExposureOperationService.queryPage(queryParameter); |
|||
} |
|||
} |
@ -0,0 +1,361 @@ |
|||
package irbs.riskExposure.jpa.entity; |
|||
|
|||
import org.hibernate.annotations.GenericGenerator; |
|||
|
|||
import javax.persistence.*; |
|||
import javax.validation.constraints.Size; |
|||
|
|||
/** |
|||
* 对公客户基本信息 |
|||
* @author likunming |
|||
* |
|||
*/ |
|||
@Entity |
|||
@Table(name="IRBS_CUST_CP_INFO") |
|||
public class Customer { |
|||
|
|||
//主键
|
|||
@Id |
|||
@GeneratedValue(generator = "system-uuid") |
|||
@GenericGenerator(name = "system-uuid", strategy = "uuid2") |
|||
@Column(name="ID_") |
|||
@Size(max=50) |
|||
protected String id; |
|||
|
|||
/** |
|||
* 客户号 |
|||
*/ |
|||
@Column(name="CUST_NO") |
|||
private String custNo; |
|||
|
|||
/** |
|||
* 客户中文名 |
|||
*/ |
|||
@Column(name="CUST_CNA") |
|||
private String custName; |
|||
|
|||
/** |
|||
* 管户人编号 |
|||
*/ |
|||
@Column(name="MGER_NO") |
|||
private String mgerNo; |
|||
|
|||
/** |
|||
* 管户人 |
|||
*/ |
|||
@Column(name="MGER_CNA") |
|||
private String mgerCna; |
|||
|
|||
/** |
|||
* 管户机构编号 |
|||
*/ |
|||
@Column(name="MGER_ORG_NO") |
|||
private String mgerOrgNo; |
|||
|
|||
/** |
|||
* 管户机构名称 |
|||
*/ |
|||
@Column(name="MGER_ORG_NM") |
|||
private String mgerOrgNm; |
|||
|
|||
/** |
|||
* 组织机构代码证 |
|||
*/ |
|||
@Column(name="ORGN_CD") |
|||
private String orgnCd; |
|||
|
|||
/** |
|||
* 统一社会信用代码 |
|||
*/ |
|||
@Column(name="ORG_CRDT_CD") |
|||
private String orgCrdtCd; |
|||
|
|||
/** |
|||
* 国标行业 |
|||
*/ |
|||
@Column(name="INDU_SORT_CD") |
|||
private String induSortCd; |
|||
|
|||
/** |
|||
* 客户类型 |
|||
*/ |
|||
@Column(name="CUST_TYPE_CD") |
|||
private String custTypeCd; |
|||
|
|||
/** |
|||
* 客户分类 |
|||
*/ |
|||
@Column(name="CUST_SORT_CD") |
|||
private String custSortCd; |
|||
|
|||
/** |
|||
* 创建日期 |
|||
*/ |
|||
@Column(name="BUILD_DT") |
|||
private String buildDt; |
|||
|
|||
/** |
|||
* 企业规模 |
|||
*/ |
|||
@Column(name="CORP_SIZE_CD") |
|||
private String corpSizeCd; |
|||
|
|||
/** |
|||
* 注册地址 |
|||
*/ |
|||
@Column(name="RGST_GROUND") |
|||
private String rgstGround; |
|||
|
|||
/** |
|||
* 3年内借据逾期超过30天标志 |
|||
*/ |
|||
@Column(name="YEARS3_OVDUE_30_DAY_FLAG") |
|||
private String years3Ovdue30DayFlag; |
|||
|
|||
/** |
|||
* 3年内垫款超过30天标志 |
|||
*/ |
|||
@Column(name="YEARS3_ADV_MONEY_30_DAY_FLAG") |
|||
private String years3AdvMoney30DayFlag; |
|||
|
|||
/** |
|||
* 3年内贷款展期次数2次及以上标志 |
|||
*/ |
|||
@Column(name="YEARS3_EXPAND_2_CNT_FLAG") |
|||
private String years3Expand2CntFlag; |
|||
|
|||
/** |
|||
* 3年内借新还旧次数2次及以上标志 |
|||
*/ |
|||
@Column(name="YEARS3_BOR_REPAY_2_CNT_FLAG") |
|||
private String years3BorRepay2CntFlag; |
|||
|
|||
/** |
|||
* 3年内结息方式变更后是否出现逾期2次及以上标志 |
|||
*/ |
|||
@Column(name="YEARS3_MODE_MODIF_OVERDUE_2_CNT_FLAG") |
|||
private String years3ModeModifOverdue2CntFlag; |
|||
|
|||
/** |
|||
* 3年内合同的本金还款计划是否变更2次及以上标志 |
|||
*/ |
|||
@Column(name="YEARS3_PRIN_REPAY_PLAN_MODIF_2_CNT_FLAG") |
|||
private String years3PrinRepayPlanModif2CntFlag; |
|||
|
|||
/** |
|||
* 3年内重组2次及以上标志 |
|||
*/ |
|||
@Column(name="YEARS3_REGROUP_2_CNT_FLAG") |
|||
private String years3Regroup2CntFlag; |
|||
|
|||
/** |
|||
* 银行业协会惩戒人名单 |
|||
*/ |
|||
@Column(name="CHASTEN_CUST_FLAG") |
|||
private String chastenCustFlag; |
|||
|
|||
/** |
|||
* 国标行业名称 |
|||
*/ |
|||
@Transient |
|||
private String induSortName; |
|||
|
|||
public Customer() { |
|||
} |
|||
|
|||
public Customer(String id) { |
|||
this.id = id; |
|||
} |
|||
|
|||
public String getId() { |
|||
return id; |
|||
} |
|||
|
|||
public void setId(String id) { |
|||
this.id = id; |
|||
} |
|||
|
|||
public String getCustNo() { |
|||
return custNo; |
|||
} |
|||
|
|||
public void setCustNo(String custNo) { |
|||
this.custNo = custNo; |
|||
} |
|||
|
|||
public String getCustName() { |
|||
return custName; |
|||
} |
|||
|
|||
public void setCustName(String custName) { |
|||
this.custName = custName; |
|||
} |
|||
|
|||
public String getMgerNo() { |
|||
return mgerNo; |
|||
} |
|||
|
|||
public void setMgerNo(String mgerNo) { |
|||
this.mgerNo = mgerNo; |
|||
} |
|||
|
|||
public String getMgerCna() { |
|||
return mgerCna; |
|||
} |
|||
|
|||
public void setMgerCna(String mgerCna) { |
|||
this.mgerCna = mgerCna; |
|||
} |
|||
|
|||
public String getMgerOrgNo() { |
|||
return mgerOrgNo; |
|||
} |
|||
|
|||
public void setMgerOrgNo(String mgerOrgNo) { |
|||
this.mgerOrgNo = mgerOrgNo; |
|||
} |
|||
|
|||
public String getMgerOrgNm() { |
|||
return mgerOrgNm; |
|||
} |
|||
|
|||
public void setMgerOrgNm(String mgerOrgNm) { |
|||
this.mgerOrgNm = mgerOrgNm; |
|||
} |
|||
|
|||
public String getOrgnCd() { |
|||
return orgnCd; |
|||
} |
|||
|
|||
public void setOrgnCd(String orgnCd) { |
|||
this.orgnCd = orgnCd; |
|||
} |
|||
|
|||
public String getOrgCrdtCd() { |
|||
return orgCrdtCd; |
|||
} |
|||
|
|||
public void setOrgCrdtCd(String orgCrdtCd) { |
|||
this.orgCrdtCd = orgCrdtCd; |
|||
} |
|||
|
|||
public String getInduSortCd() { |
|||
return induSortCd; |
|||
} |
|||
|
|||
public void setInduSortCd(String induSortCd) { |
|||
this.induSortCd = induSortCd; |
|||
} |
|||
|
|||
public String getCustTypeCd() { |
|||
return custTypeCd; |
|||
} |
|||
|
|||
public void setCustTypeCd(String custTypeCd) { |
|||
this.custTypeCd = custTypeCd; |
|||
} |
|||
|
|||
public String getCustSortCd() { |
|||
return custSortCd; |
|||
} |
|||
|
|||
public void setCustSortCd(String custSortCd) { |
|||
this.custSortCd = custSortCd; |
|||
} |
|||
|
|||
public String getBuildDt() { |
|||
return buildDt; |
|||
} |
|||
|
|||
public void setBuildDt(String buildDt) { |
|||
this.buildDt = buildDt; |
|||
} |
|||
|
|||
public String getCorpSizeCd() { |
|||
return corpSizeCd; |
|||
} |
|||
|
|||
public void setCorpSizeCd(String corpSizeCd) { |
|||
this.corpSizeCd = corpSizeCd; |
|||
} |
|||
|
|||
public String getRgstGround() { |
|||
return rgstGround; |
|||
} |
|||
|
|||
public void setRgstGround(String rgstGround) { |
|||
this.rgstGround = rgstGround; |
|||
} |
|||
|
|||
public String getYears3Ovdue30DayFlag() { |
|||
return years3Ovdue30DayFlag; |
|||
} |
|||
|
|||
public void setYears3Ovdue30DayFlag(String years3Ovdue30DayFlag) { |
|||
this.years3Ovdue30DayFlag = years3Ovdue30DayFlag; |
|||
} |
|||
|
|||
public String getYears3AdvMoney30DayFlag() { |
|||
return years3AdvMoney30DayFlag; |
|||
} |
|||
|
|||
public void setYears3AdvMoney30DayFlag(String years3AdvMoney30DayFlag) { |
|||
this.years3AdvMoney30DayFlag = years3AdvMoney30DayFlag; |
|||
} |
|||
|
|||
public String getYears3Expand2CntFlag() { |
|||
return years3Expand2CntFlag; |
|||
} |
|||
|
|||
public void setYears3Expand2CntFlag(String years3Expand2CntFlag) { |
|||
this.years3Expand2CntFlag = years3Expand2CntFlag; |
|||
} |
|||
|
|||
public String getYears3BorRepay2CntFlag() { |
|||
return years3BorRepay2CntFlag; |
|||
} |
|||
|
|||
public void setYears3BorRepay2CntFlag(String years3BorRepay2CntFlag) { |
|||
this.years3BorRepay2CntFlag = years3BorRepay2CntFlag; |
|||
} |
|||
|
|||
public String getYears3ModeModifOverdue2CntFlag() { |
|||
return years3ModeModifOverdue2CntFlag; |
|||
} |
|||
|
|||
public void setYears3ModeModifOverdue2CntFlag(String years3ModeModifOverdue2CntFlag) { |
|||
this.years3ModeModifOverdue2CntFlag = years3ModeModifOverdue2CntFlag; |
|||
} |
|||
|
|||
public String getYears3PrinRepayPlanModif2CntFlag() { |
|||
return years3PrinRepayPlanModif2CntFlag; |
|||
} |
|||
|
|||
public void setYears3PrinRepayPlanModif2CntFlag(String years3PrinRepayPlanModif2CntFlag) { |
|||
this.years3PrinRepayPlanModif2CntFlag = years3PrinRepayPlanModif2CntFlag; |
|||
} |
|||
|
|||
public String getYears3Regroup2CntFlag() { |
|||
return years3Regroup2CntFlag; |
|||
} |
|||
|
|||
public void setYears3Regroup2CntFlag(String years3Regroup2CntFlag) { |
|||
this.years3Regroup2CntFlag = years3Regroup2CntFlag; |
|||
} |
|||
|
|||
public String getChastenCustFlag() { |
|||
return chastenCustFlag; |
|||
} |
|||
|
|||
public void setChastenCustFlag(String chastenCustFlag) { |
|||
this.chastenCustFlag = chastenCustFlag; |
|||
} |
|||
|
|||
public String getInduSortName() { |
|||
return induSortName; |
|||
} |
|||
|
|||
public void setInduSortName(String induSortName) { |
|||
this.induSortName = induSortName; |
|||
} |
|||
} |
@ -0,0 +1,330 @@ |
|||
package irbs.riskExposure.jpa.entity; |
|||
|
|||
import io.sc.platform.orm.entity.CorporationAuditorEntity; |
|||
import irbs.riskExposure.jpa.vo.RiskExposureVo; |
|||
import org.hibernate.annotations.GenericGenerator; |
|||
|
|||
import javax.persistence.*; |
|||
import javax.validation.constraints.Size; |
|||
import java.util.Date; |
|||
|
|||
@Entity |
|||
@Table(name="P_IRS_RISK_EXPOSURE") |
|||
public class RiskExposure extends CorporationAuditorEntity<RiskExposureVo> { |
|||
|
|||
// 主键
|
|||
@Id |
|||
@GeneratedValue(generator = "system-uuid") |
|||
@GenericGenerator(name = "system-uuid", strategy = "uuid2") |
|||
@Column(name="ID_") |
|||
@Size(max=50) |
|||
protected String id; |
|||
|
|||
/** |
|||
* 业务编号 |
|||
*/ |
|||
@Column(name="BUSINESS_NO", length=40) |
|||
private String businessNo; |
|||
/** |
|||
* 产品类型 |
|||
*/ |
|||
@Column(name="PRODUCT_TYPE", length=100) |
|||
private String productType; |
|||
/** |
|||
* 客户编号 |
|||
*/ |
|||
@Column(name="CUST_NO", length=40) |
|||
private String custNo; |
|||
/** |
|||
* 客户名称 |
|||
*/ |
|||
@Column(name="CUST_NAME", length=200) |
|||
private String custName; |
|||
/** |
|||
* 客户类型(1.一般公司 2.金融债券机构) |
|||
*/ |
|||
@Column(name="CUST_TYPE", length=1) |
|||
private String custType; |
|||
/** |
|||
* 发起方式 |
|||
*/ |
|||
@Column(name="START_WAY", length=100) |
|||
private String startWay; |
|||
/** |
|||
* 是否需人工分类 |
|||
*/ |
|||
@Column(name="IS_NEED_OPERATE", length=1) |
|||
private String isNeedOperate; |
|||
/** |
|||
* 调整截止日期 |
|||
*/ |
|||
@Column(name="ADJUST_END_DATE") |
|||
@Temporal(TemporalType.DATE) |
|||
private Date adjustEndDate; |
|||
/** |
|||
* 是否已调整 |
|||
*/ |
|||
@Column(name="IS_ADJUSTED", length=1) |
|||
private String isAdjusted; |
|||
/** |
|||
* 调整原因 |
|||
*/ |
|||
@Column(name="ADJUST_REASON", length=1000) |
|||
private String adjustReason; |
|||
/** |
|||
* 调整的失效日期 |
|||
*/ |
|||
@Column(name="ADJUST_INVALID_DATE") |
|||
@Temporal(TemporalType.DATE) |
|||
private Date adjustInvalidDate; |
|||
/** |
|||
* 完成时间 |
|||
*/ |
|||
@Column(name="FINISH_DATE") |
|||
@Temporal(TemporalType.DATE) |
|||
private Date finishDate; |
|||
/** |
|||
* 系统分类结果 |
|||
*/ |
|||
@Column(name="SYS_RESULT", length=100) |
|||
private String sysResult; |
|||
/** |
|||
* 人工分类结果 |
|||
*/ |
|||
@Column(name="MAN_RESULT", length=100) |
|||
private String manResult; |
|||
/** |
|||
* 最终分类结果 |
|||
*/ |
|||
@Column(name="FINAL_RESULT", length=100) |
|||
private String finalResult; |
|||
|
|||
//是否生效
|
|||
@Column(name="IS_VALID", length=20) |
|||
private String isValid; |
|||
/** |
|||
* 客户经理名称 |
|||
*/ |
|||
@Column(name="MANAGER_NAME", length=100) |
|||
private String managerName; |
|||
/** |
|||
* 所属机构 |
|||
*/ |
|||
@Column(name="MGER_ORG_NM", length=100) |
|||
private String mgerOrgNm; |
|||
/** |
|||
* 当前处理人 |
|||
*/ |
|||
@Column(name="CURRENT_ASSIGNEE", length=100) |
|||
private String currentAssignee; |
|||
/** |
|||
* 流程状态 |
|||
*/ |
|||
@Column(name="PROCESS_STATUS", length=100) |
|||
private String processStatus; |
|||
/** |
|||
* 流程ID |
|||
*/ |
|||
@Column(name="PROCESS_INSTANCE_ID", length=100) |
|||
private String processInstanceId; |
|||
/** |
|||
* 发起状态 |
|||
*/ |
|||
@Column(name="DATA_STATUS", length=100) |
|||
private String dataStatus; |
|||
|
|||
@Transient |
|||
private String taskId; |
|||
|
|||
public String getId() { |
|||
return id; |
|||
} |
|||
|
|||
public void setId(String id) { |
|||
this.id = id; |
|||
} |
|||
|
|||
public String getBusinessNo() { |
|||
return businessNo; |
|||
} |
|||
|
|||
public void setBusinessNo(String businessNo) { |
|||
this.businessNo = businessNo; |
|||
} |
|||
|
|||
public String getProductType() { |
|||
return productType; |
|||
} |
|||
|
|||
public void setProductType(String productType) { |
|||
this.productType = productType; |
|||
} |
|||
|
|||
public String getCustNo() { |
|||
return custNo; |
|||
} |
|||
|
|||
public void setCustNo(String custNo) { |
|||
this.custNo = custNo; |
|||
} |
|||
|
|||
public String getCustName() { |
|||
return custName; |
|||
} |
|||
|
|||
public void setCustName(String custName) { |
|||
this.custName = custName; |
|||
} |
|||
|
|||
public String getCustType() { |
|||
return custType; |
|||
} |
|||
|
|||
public void setCustType(String custType) { |
|||
this.custType = custType; |
|||
} |
|||
|
|||
public String getStartWay() { |
|||
return startWay; |
|||
} |
|||
|
|||
public void setStartWay(String startWay) { |
|||
this.startWay = startWay; |
|||
} |
|||
|
|||
public String getIsNeedOperate() { |
|||
return isNeedOperate; |
|||
} |
|||
|
|||
public void setIsNeedOperate(String isNeedOperate) { |
|||
this.isNeedOperate = isNeedOperate; |
|||
} |
|||
|
|||
public Date getAdjustEndDate() { |
|||
return adjustEndDate; |
|||
} |
|||
|
|||
public void setAdjustEndDate(Date adjustEndDate) { |
|||
this.adjustEndDate = adjustEndDate; |
|||
} |
|||
|
|||
public String getIsAdjusted() { |
|||
return isAdjusted; |
|||
} |
|||
|
|||
public void setIsAdjusted(String isAdjusted) { |
|||
this.isAdjusted = isAdjusted; |
|||
} |
|||
|
|||
public String getAdjustReason() { |
|||
return adjustReason; |
|||
} |
|||
|
|||
public void setAdjustReason(String adjustReason) { |
|||
this.adjustReason = adjustReason; |
|||
} |
|||
|
|||
public Date getAdjustInvalidDate() { |
|||
return adjustInvalidDate; |
|||
} |
|||
|
|||
public void setAdjustInvalidDate(Date adjustInvalidDate) { |
|||
this.adjustInvalidDate = adjustInvalidDate; |
|||
} |
|||
|
|||
public Date getFinishDate() { |
|||
return finishDate; |
|||
} |
|||
|
|||
public void setFinishDate(Date finishDate) { |
|||
this.finishDate = finishDate; |
|||
} |
|||
|
|||
public String getSysResult() { |
|||
return sysResult; |
|||
} |
|||
|
|||
public void setSysResult(String sysResult) { |
|||
this.sysResult = sysResult; |
|||
} |
|||
|
|||
public String getManResult() { |
|||
return manResult; |
|||
} |
|||
|
|||
public void setManResult(String manResult) { |
|||
this.manResult = manResult; |
|||
} |
|||
|
|||
public String getFinalResult() { |
|||
return finalResult; |
|||
} |
|||
|
|||
public void setFinalResult(String finalResult) { |
|||
this.finalResult = finalResult; |
|||
} |
|||
|
|||
public String getIsValid() { |
|||
return isValid; |
|||
} |
|||
|
|||
public void setIsValid(String isValid) { |
|||
this.isValid = isValid; |
|||
} |
|||
|
|||
public String getManagerName() { |
|||
return managerName; |
|||
} |
|||
|
|||
public void setManagerName(String managerName) { |
|||
this.managerName = managerName; |
|||
} |
|||
|
|||
public String getMgerOrgNm() { |
|||
return mgerOrgNm; |
|||
} |
|||
|
|||
public void setMgerOrgNm(String mgerOrgNm) { |
|||
this.mgerOrgNm = mgerOrgNm; |
|||
} |
|||
|
|||
public String getCurrentAssignee() { |
|||
return currentAssignee; |
|||
} |
|||
|
|||
public void setCurrentAssignee(String currentAssignee) { |
|||
this.currentAssignee = currentAssignee; |
|||
} |
|||
|
|||
public String getProcessStatus() { |
|||
return processStatus; |
|||
} |
|||
|
|||
public void setProcessStatus(String processStatus) { |
|||
this.processStatus = processStatus; |
|||
} |
|||
|
|||
public String getDataStatus() { |
|||
return dataStatus; |
|||
} |
|||
|
|||
public void setDataStatus(String dataStatus) { |
|||
this.dataStatus = dataStatus; |
|||
} |
|||
|
|||
public String getProcessInstanceId() { |
|||
return processInstanceId; |
|||
} |
|||
|
|||
public void setProcessInstanceId(String processInstanceId) { |
|||
this.processInstanceId = processInstanceId; |
|||
} |
|||
|
|||
public String getTaskId() { |
|||
return taskId; |
|||
} |
|||
|
|||
public void setTaskId(String taskId) { |
|||
this.taskId = taskId; |
|||
} |
|||
} |
@ -0,0 +1,160 @@ |
|||
package irbs.riskExposure.jpa.entity; |
|||
|
|||
import io.sc.platform.orm.entity.CorporationAuditorEntity; |
|||
import irbs.riskExposure.jpa.vo.RiskExposureOperationVo; |
|||
import org.hibernate.annotations.GenericGenerator; |
|||
|
|||
import javax.persistence.*; |
|||
import javax.validation.constraints.Size; |
|||
|
|||
/** |
|||
* 风险暴露分类流程处理 |
|||
* @author chengjie |
|||
* |
|||
*/ |
|||
@Entity |
|||
@Table(name="P_IRS_RISK_EXPOSURE_OPERATION") |
|||
public class RiskExposureOperation extends CorporationAuditorEntity<RiskExposureOperationVo> { |
|||
|
|||
// 主键
|
|||
@Id |
|||
@GeneratedValue(generator = "system-uuid") |
|||
@GenericGenerator(name = "system-uuid", strategy = "uuid2") |
|||
@Column(name="ID_") |
|||
@Size(max=50) |
|||
protected String id; |
|||
|
|||
// 风险暴露分类发起业务主键
|
|||
@Column(name="RISK_EXPOSURE_ID") |
|||
protected String riskExposureId; |
|||
|
|||
// 风险暴露分类调整业务主键
|
|||
@Column(name="RISK_EXPOSURE_ADJ_ID") |
|||
protected String riskExposureAdjId; |
|||
|
|||
// 人工风险暴露分类结果
|
|||
@Column(name="RISK_EXPOSURE_TYPE") |
|||
protected String riskExposureType; |
|||
|
|||
// 附件条数
|
|||
@Column(name="FILE_COUNT") |
|||
protected Integer fileCount; |
|||
|
|||
// 意见说明
|
|||
@Column(name="REMARKS") |
|||
protected String remarks; |
|||
|
|||
// 角色
|
|||
@Column(name="ROLE_NAME") |
|||
protected String roleName; |
|||
|
|||
// 文件名称
|
|||
@Column(name="FILE_NAME") |
|||
protected String fileName; |
|||
|
|||
// 创建人机构
|
|||
@Column(name="CREATOR_ORG") |
|||
protected String creatorOrg; |
|||
|
|||
// 记录当前处理人审批认定结果 提交1 通过2 否决3
|
|||
@Column(name="OPERATION") |
|||
protected String operation; |
|||
|
|||
@Override |
|||
public RiskExposureOperationVo toVo() { |
|||
RiskExposureOperationVo vo = new RiskExposureOperationVo(); |
|||
super.toVo(vo); |
|||
|
|||
vo.setId(this.getId()); |
|||
vo.setRiskExposureId(this.getRiskExposureId()); |
|||
vo.setRiskExposureAdjId(this.getRiskExposureAdjId()); |
|||
vo.setRiskExposureType(this.getRiskExposureType()); |
|||
vo.setFileCount(this.getFileCount()); |
|||
vo.setRemarks(this.getRemarks()); |
|||
vo.setRoleName(this.getRoleName()); |
|||
vo.setFileName(this.getFileName()); |
|||
vo.setCreatorOrg(this.getCreatorOrg()); |
|||
vo.setOperation(this.getOperation()); |
|||
return vo; |
|||
} |
|||
|
|||
public String getId() { |
|||
return id; |
|||
} |
|||
|
|||
public void setId(String id) { |
|||
this.id = id; |
|||
} |
|||
|
|||
public String getRiskExposureId() { |
|||
return riskExposureId; |
|||
} |
|||
|
|||
public void setRiskExposureId(String riskExposureId) { |
|||
this.riskExposureId = riskExposureId; |
|||
} |
|||
|
|||
public String getRiskExposureAdjId() { |
|||
return riskExposureAdjId; |
|||
} |
|||
|
|||
public void setRiskExposureAdjId(String riskExposureAdjId) { |
|||
this.riskExposureAdjId = riskExposureAdjId; |
|||
} |
|||
|
|||
public String getRiskExposureType() { |
|||
return riskExposureType; |
|||
} |
|||
|
|||
public void setRiskExposureType(String riskExposureType) { |
|||
this.riskExposureType = riskExposureType; |
|||
} |
|||
|
|||
public Integer getFileCount() { |
|||
return fileCount; |
|||
} |
|||
|
|||
public void setFileCount(Integer fileCount) { |
|||
this.fileCount = fileCount; |
|||
} |
|||
|
|||
public String getRemarks() { |
|||
return remarks; |
|||
} |
|||
|
|||
public void setRemarks(String remarks) { |
|||
this.remarks = remarks; |
|||
} |
|||
|
|||
public String getRoleName() { |
|||
return roleName; |
|||
} |
|||
|
|||
public void setRoleName(String roleName) { |
|||
this.roleName = roleName; |
|||
} |
|||
|
|||
public String getFileName() { |
|||
return fileName; |
|||
} |
|||
|
|||
public void setFileName(String fileName) { |
|||
this.fileName = fileName; |
|||
} |
|||
|
|||
public String getCreatorOrg() { |
|||
return creatorOrg; |
|||
} |
|||
|
|||
public void setCreatorOrg(String creatorOrg) { |
|||
this.creatorOrg = creatorOrg; |
|||
} |
|||
|
|||
public String getOperation() { |
|||
return operation; |
|||
} |
|||
|
|||
public void setOperation(String operation) { |
|||
this.operation = operation; |
|||
} |
|||
} |
@ -0,0 +1,8 @@ |
|||
package irbs.riskExposure.jpa.repository; |
|||
|
|||
import io.sc.platform.orm.repository.DaoRepository; |
|||
import irbs.riskExposure.jpa.entity.Customer; |
|||
|
|||
public interface CustomerRepository extends DaoRepository<Customer, String> { |
|||
Customer findByCustNo(String custNo) throws Exception; |
|||
} |
@ -0,0 +1,7 @@ |
|||
package irbs.riskExposure.jpa.repository; |
|||
|
|||
import io.sc.platform.orm.repository.DaoRepository; |
|||
import irbs.riskExposure.jpa.entity.RiskExposureOperation; |
|||
|
|||
public interface RiskExposureOperationRepository extends DaoRepository<RiskExposureOperation, String> { |
|||
} |
@ -0,0 +1,7 @@ |
|||
package irbs.riskExposure.jpa.repository; |
|||
|
|||
import io.sc.platform.orm.repository.DaoRepository; |
|||
import irbs.riskExposure.jpa.entity.RiskExposure; |
|||
|
|||
public interface RiskExposureRepository extends DaoRepository<RiskExposure, String> { |
|||
} |
@ -0,0 +1,37 @@ |
|||
package irbs.riskExposure.jpa.support; |
|||
|
|||
/** |
|||
* 任务流向 |
|||
* @author dhb |
|||
*/ |
|||
|
|||
public enum GoBackType { |
|||
|
|||
// 通过
|
|||
APPROVE(1), |
|||
// 否决
|
|||
REJECT(2), |
|||
// 同意
|
|||
AGREE(4), |
|||
// 不同意
|
|||
DISAGREE(5), |
|||
// 提交下一步
|
|||
SUBMIT(6), |
|||
// 提交到其他上级(信审会)
|
|||
UPPER_1(8), |
|||
// 提交到上级
|
|||
UPPER(9), |
|||
//退回起始步骤
|
|||
BACK_START(-1), |
|||
//退回到某步骤
|
|||
BACK(-2); |
|||
|
|||
GoBackType(int code) { |
|||
this.code = code; |
|||
} |
|||
private final int code; |
|||
public int code() { |
|||
return code; |
|||
} |
|||
|
|||
} |
@ -0,0 +1,45 @@ |
|||
package irbs.riskExposure.jpa.support; |
|||
|
|||
/** |
|||
* 流程常量 |
|||
* @author dhb |
|||
* |
|||
*/ |
|||
public interface ProcessConstant { |
|||
|
|||
/** |
|||
* 公司客户评级流程分类 |
|||
*/ |
|||
String COMPANY_RATING_FLOW = "COMPANY_CUSTOMER_RATING"; |
|||
|
|||
/** |
|||
* 风险暴露流程分类 |
|||
*/ |
|||
String RISK_EXPOSURE_FLOW = "RISK_EXPOSURE_FLOW"; |
|||
|
|||
/** |
|||
* 总行风险暴露流程分类 |
|||
*/ |
|||
String Z_RISK_EXPOSURE_FLOW = "Z_RISK_EXPOSURE_FLOW"; |
|||
|
|||
/** |
|||
* 分支行违约认定流程 |
|||
*/ |
|||
String DEFAULT_CUSTOMER_F = "DEFAULT_CUSTOMER_F"; |
|||
|
|||
/** |
|||
* 总行违约认定流程 |
|||
*/ |
|||
String DEFAULT_CUSTOMER_Z = "DEFAULT_CUSTOMER_Z"; |
|||
|
|||
/** |
|||
* 分支行违约重生流程 |
|||
*/ |
|||
String REBIRTH_CUSTOMER_F = "REBIRTH_CUSTOMER_F"; |
|||
|
|||
/** |
|||
* 总行违约重生流程 |
|||
*/ |
|||
String REBIRTH_CUSTOMER_Z = "REBIRTH_CUSTOMER_Z"; |
|||
|
|||
} |
@ -0,0 +1,27 @@ |
|||
package irbs.riskExposure.jpa.support; |
|||
|
|||
/** |
|||
* 风险暴露分类流程操作 |
|||
* @author dhb |
|||
*/ |
|||
public enum RiskExposureProcessOperate { |
|||
//提交
|
|||
SUBMIT("1"), |
|||
//通过
|
|||
APPROVE("2"), |
|||
//否决
|
|||
REJECT("3"), |
|||
//撤销
|
|||
CANCEL("4"), |
|||
//退回
|
|||
BACK("5"); |
|||
|
|||
private final String code; |
|||
RiskExposureProcessOperate(String code) { |
|||
this.code = code; |
|||
} |
|||
public String getCode() { |
|||
return code; |
|||
} |
|||
|
|||
} |
@ -0,0 +1,14 @@ |
|||
package irbs.riskExposure.jpa.support; |
|||
|
|||
/** |
|||
* 风险暴露分类流程状态 |
|||
* @author dhb |
|||
*/ |
|||
public enum RiskExposureProcessStatus { |
|||
|
|||
TO_BE_SUBMITTED, // 待提交
|
|||
RETURNED, // 退回
|
|||
TO_BE_CHECKED, // 审批
|
|||
COMPLETED_PASS, // 通过
|
|||
COMPLETED_REJECT; // 否决
|
|||
} |
@ -0,0 +1,10 @@ |
|||
package irbs.riskExposure.jpa.support; |
|||
|
|||
/** |
|||
* 风险暴露分类流程状态 |
|||
* @author dhb |
|||
*/ |
|||
public enum RiskExposureType { |
|||
|
|||
RE_0100,RE_0110,RE_0120,RE_0130,RE_0131,RE_0132,RE_0133,RE_0134,RE_0200,RE_0210,RE_0220,RE_0300,RE_0400,RE_0500,RE_0510,RE_0520,RE_0600 |
|||
} |
@ -0,0 +1,121 @@ |
|||
package irbs.riskExposure.jpa.vo; |
|||
|
|||
import io.sc.platform.orm.api.vo.CorporationAuditorVo; |
|||
|
|||
/** |
|||
* 风险暴露分类流程处理日志 |
|||
* @author chengjie |
|||
* |
|||
*/ |
|||
public class RiskExposureOperationVo extends CorporationAuditorVo { |
|||
|
|||
// 主键
|
|||
protected String id; |
|||
|
|||
// 风险暴露分类发起业务主键
|
|||
protected String riskExposureId; |
|||
|
|||
// 风险暴露分类调整业务主键
|
|||
protected String riskExposureAdjId; |
|||
|
|||
// 人工风险暴露分类结果
|
|||
protected String riskExposureType; |
|||
|
|||
// 附件条数
|
|||
protected Integer fileCount; |
|||
|
|||
// 意见说明
|
|||
protected String remarks; |
|||
|
|||
// 角色
|
|||
protected String roleName; |
|||
|
|||
// 文件名称
|
|||
protected String fileName; |
|||
|
|||
// 创建人机构
|
|||
protected String creatorOrg; |
|||
|
|||
// 记录当前处理人审批认定结果 提交1 通过2 否决3
|
|||
protected String operation; |
|||
|
|||
public String getId() { |
|||
return id; |
|||
} |
|||
|
|||
public void setId(String id) { |
|||
this.id = id; |
|||
} |
|||
|
|||
public String getRiskExposureId() { |
|||
return riskExposureId; |
|||
} |
|||
|
|||
public void setRiskExposureId(String riskExposureId) { |
|||
this.riskExposureId = riskExposureId; |
|||
} |
|||
|
|||
public String getRiskExposureAdjId() { |
|||
return riskExposureAdjId; |
|||
} |
|||
|
|||
public void setRiskExposureAdjId(String riskExposureAdjId) { |
|||
this.riskExposureAdjId = riskExposureAdjId; |
|||
} |
|||
|
|||
public String getRiskExposureType() { |
|||
return riskExposureType; |
|||
} |
|||
|
|||
public void setRiskExposureType(String riskExposureType) { |
|||
this.riskExposureType = riskExposureType; |
|||
} |
|||
|
|||
public Integer getFileCount() { |
|||
return fileCount; |
|||
} |
|||
|
|||
public void setFileCount(Integer fileCount) { |
|||
this.fileCount = fileCount; |
|||
} |
|||
|
|||
public String getRemarks() { |
|||
return remarks; |
|||
} |
|||
|
|||
public void setRemarks(String remarks) { |
|||
this.remarks = remarks; |
|||
} |
|||
|
|||
public String getRoleName() { |
|||
return roleName; |
|||
} |
|||
|
|||
public void setRoleName(String roleName) { |
|||
this.roleName = roleName; |
|||
} |
|||
|
|||
public String getFileName() { |
|||
return fileName; |
|||
} |
|||
|
|||
public void setFileName(String fileName) { |
|||
this.fileName = fileName; |
|||
} |
|||
|
|||
public String getCreatorOrg() { |
|||
return creatorOrg; |
|||
} |
|||
|
|||
public void setCreatorOrg(String creatorOrg) { |
|||
this.creatorOrg = creatorOrg; |
|||
} |
|||
|
|||
public String getOperation() { |
|||
return operation; |
|||
} |
|||
|
|||
public void setOperation(String operation) { |
|||
this.operation = operation; |
|||
} |
|||
} |
@ -0,0 +1,298 @@ |
|||
package irbs.riskExposure.jpa.vo; |
|||
|
|||
import io.sc.platform.orm.api.vo.CorporationAuditorVo; |
|||
import io.sc.platform.orm.entity.AuditorEntity; |
|||
import liquibase.pro.packaged.V; |
|||
import org.hibernate.annotations.GenericGenerator; |
|||
|
|||
import javax.persistence.*; |
|||
import javax.validation.constraints.Size; |
|||
import java.util.Date; |
|||
|
|||
public class RiskExposureVo extends CorporationAuditorVo { |
|||
|
|||
// 主键
|
|||
protected String id; |
|||
|
|||
/** |
|||
* 业务编号 |
|||
*/ |
|||
private String businessNo; |
|||
/** |
|||
* 产品类型 |
|||
*/ |
|||
private String productType; |
|||
/** |
|||
* 客户编号 |
|||
*/ |
|||
private String custNo; |
|||
/** |
|||
* 客户名称 |
|||
*/ |
|||
private String custName; |
|||
/** |
|||
* 客户类型(1.一般公司 2.金融债券机构) |
|||
*/ |
|||
private String custType; |
|||
/** |
|||
* 发起方式 |
|||
*/ |
|||
private String startWay; |
|||
/** |
|||
* 是否需人工分类 |
|||
*/ |
|||
private String isNeedOperate; |
|||
/** |
|||
* 调整截止日期 |
|||
*/ |
|||
private Date adjustEndDate; |
|||
/** |
|||
* 是否已调整 |
|||
*/ |
|||
private String isAdjusted; |
|||
/** |
|||
* 调整原因 |
|||
*/ |
|||
private String adjustReason; |
|||
/** |
|||
* 调整的失效日期 |
|||
*/ |
|||
private Date adjustInvalidDate; |
|||
/** |
|||
* 完成时间 |
|||
*/ |
|||
private Date finishDate; |
|||
/** |
|||
* 系统分类结果 |
|||
*/ |
|||
private String sysResult; |
|||
/** |
|||
* 人工分类结果 |
|||
*/ |
|||
private String manResult; |
|||
/** |
|||
* 最终分类结果 |
|||
*/ |
|||
private String finalResult; |
|||
|
|||
//是否生效
|
|||
private String isValid; |
|||
/** |
|||
* 客户经理名称 |
|||
*/ |
|||
private String managerName; |
|||
/** |
|||
* 所属机构 |
|||
*/ |
|||
private String mgerOrgNm; |
|||
/** |
|||
* 当前处理人 |
|||
*/ |
|||
private String currentAssignee; |
|||
/** |
|||
* 流程状态 |
|||
*/ |
|||
private String processStatus; |
|||
/** |
|||
* 流程ID |
|||
*/ |
|||
private String processInstanceId; |
|||
/** |
|||
* 发起状态 |
|||
*/ |
|||
private String dataStatus; |
|||
|
|||
private String taskId; |
|||
|
|||
public String getId() { |
|||
return id; |
|||
} |
|||
|
|||
public void setId(String id) { |
|||
this.id = id; |
|||
} |
|||
|
|||
public String getBusinessNo() { |
|||
return businessNo; |
|||
} |
|||
|
|||
public void setBusinessNo(String businessNo) { |
|||
this.businessNo = businessNo; |
|||
} |
|||
|
|||
public String getProductType() { |
|||
return productType; |
|||
} |
|||
|
|||
public void setProductType(String productType) { |
|||
this.productType = productType; |
|||
} |
|||
|
|||
public String getCustNo() { |
|||
return custNo; |
|||
} |
|||
|
|||
public void setCustNo(String custNo) { |
|||
this.custNo = custNo; |
|||
} |
|||
|
|||
public String getCustName() { |
|||
return custName; |
|||
} |
|||
|
|||
public void setCustName(String custName) { |
|||
this.custName = custName; |
|||
} |
|||
|
|||
public String getCustType() { |
|||
return custType; |
|||
} |
|||
|
|||
public void setCustType(String custType) { |
|||
this.custType = custType; |
|||
} |
|||
|
|||
public String getStartWay() { |
|||
return startWay; |
|||
} |
|||
|
|||
public void setStartWay(String startWay) { |
|||
this.startWay = startWay; |
|||
} |
|||
|
|||
public String getIsNeedOperate() { |
|||
return isNeedOperate; |
|||
} |
|||
|
|||
public void setIsNeedOperate(String isNeedOperate) { |
|||
this.isNeedOperate = isNeedOperate; |
|||
} |
|||
|
|||
public Date getAdjustEndDate() { |
|||
return adjustEndDate; |
|||
} |
|||
|
|||
public void setAdjustEndDate(Date adjustEndDate) { |
|||
this.adjustEndDate = adjustEndDate; |
|||
} |
|||
|
|||
public String getIsAdjusted() { |
|||
return isAdjusted; |
|||
} |
|||
|
|||
public void setIsAdjusted(String isAdjusted) { |
|||
this.isAdjusted = isAdjusted; |
|||
} |
|||
|
|||
public String getAdjustReason() { |
|||
return adjustReason; |
|||
} |
|||
|
|||
public void setAdjustReason(String adjustReason) { |
|||
this.adjustReason = adjustReason; |
|||
} |
|||
|
|||
public Date getAdjustInvalidDate() { |
|||
return adjustInvalidDate; |
|||
} |
|||
|
|||
public void setAdjustInvalidDate(Date adjustInvalidDate) { |
|||
this.adjustInvalidDate = adjustInvalidDate; |
|||
} |
|||
|
|||
public Date getFinishDate() { |
|||
return finishDate; |
|||
} |
|||
|
|||
public void setFinishDate(Date finishDate) { |
|||
this.finishDate = finishDate; |
|||
} |
|||
|
|||
public String getSysResult() { |
|||
return sysResult; |
|||
} |
|||
|
|||
public void setSysResult(String sysResult) { |
|||
this.sysResult = sysResult; |
|||
} |
|||
|
|||
public String getManResult() { |
|||
return manResult; |
|||
} |
|||
|
|||
public void setManResult(String manResult) { |
|||
this.manResult = manResult; |
|||
} |
|||
|
|||
public String getFinalResult() { |
|||
return finalResult; |
|||
} |
|||
|
|||
public void setFinalResult(String finalResult) { |
|||
this.finalResult = finalResult; |
|||
} |
|||
|
|||
public String getIsValid() { |
|||
return isValid; |
|||
} |
|||
|
|||
public void setIsValid(String isValid) { |
|||
this.isValid = isValid; |
|||
} |
|||
|
|||
public String getManagerName() { |
|||
return managerName; |
|||
} |
|||
|
|||
public void setManagerName(String managerName) { |
|||
this.managerName = managerName; |
|||
} |
|||
|
|||
public String getMgerOrgNm() { |
|||
return mgerOrgNm; |
|||
} |
|||
|
|||
public void setMgerOrgNm(String mgerOrgNm) { |
|||
this.mgerOrgNm = mgerOrgNm; |
|||
} |
|||
|
|||
public String getCurrentAssignee() { |
|||
return currentAssignee; |
|||
} |
|||
|
|||
public void setCurrentAssignee(String currentAssignee) { |
|||
this.currentAssignee = currentAssignee; |
|||
} |
|||
|
|||
public String getProcessStatus() { |
|||
return processStatus; |
|||
} |
|||
|
|||
public void setProcessStatus(String processStatus) { |
|||
this.processStatus = processStatus; |
|||
} |
|||
|
|||
public String getDataStatus() { |
|||
return dataStatus; |
|||
} |
|||
|
|||
public void setDataStatus(String dataStatus) { |
|||
this.dataStatus = dataStatus; |
|||
} |
|||
|
|||
public String getProcessInstanceId() { |
|||
return processInstanceId; |
|||
} |
|||
|
|||
public void setProcessInstanceId(String processInstanceId) { |
|||
this.processInstanceId = processInstanceId; |
|||
} |
|||
|
|||
public String getTaskId() { |
|||
return taskId; |
|||
} |
|||
|
|||
public void setTaskId(String taskId) { |
|||
this.taskId = taskId; |
|||
} |
|||
} |
@ -0,0 +1,47 @@ |
|||
package irbs.riskExposure.service; |
|||
|
|||
import io.sc.platform.flowable.controller.support.ProcessProperties; |
|||
import io.sc.platform.flowable.support.CompleteTaskResponse; |
|||
import io.sc.platform.orm.service.DaoService; |
|||
import io.sc.platform.orm.service.support.QueryParameter; |
|||
import irbs.riskExposure.jpa.entity.RiskExposure; |
|||
import irbs.riskExposure.jpa.repository.RiskExposureRepository; |
|||
import org.springframework.data.domain.Page; |
|||
|
|||
public interface RiskExposureAdjustService extends DaoService<RiskExposure, String, RiskExposureRepository> { |
|||
Page<RiskExposure> queryPage(QueryParameter queryParameter) throws Exception; |
|||
|
|||
RiskExposure handmadeRiskExposure(String id) throws Exception; |
|||
|
|||
/** |
|||
* 提交流程 |
|||
* @param riskExposureId |
|||
* @param processProperties |
|||
* @throws Exception |
|||
*/ |
|||
void submit(String riskExposureId, ProcessProperties processProperties) throws Exception; |
|||
|
|||
/** |
|||
* 退回值发起人 |
|||
* @param riskExposureId |
|||
* @param processProperties |
|||
* @throws Exception |
|||
*/ |
|||
public void backStart(String riskExposureId, ProcessProperties processProperties) throws Exception; |
|||
|
|||
/** |
|||
* 审批通过 |
|||
* @param riskExposureId |
|||
* @param processProperties |
|||
* @throws Exception |
|||
*/ |
|||
public void approve(String riskExposureId, ProcessProperties processProperties) throws Exception; |
|||
|
|||
/** |
|||
* 流程拒绝 |
|||
* @param riskExposureId |
|||
* @param processProperties |
|||
* @throws Exception |
|||
*/ |
|||
public void reject(String riskExposureId, ProcessProperties processProperties) throws Exception; |
|||
} |
@ -0,0 +1,23 @@ |
|||
package irbs.riskExposure.service; |
|||
|
|||
import io.sc.platform.flowable.support.ProcessTaskWrapper; |
|||
import org.flowable.engine.runtime.ProcessInstance; |
|||
|
|||
public interface RiskExposureFlowService { |
|||
/** |
|||
* 审批处理流程 |
|||
* @param category 流程类型 |
|||
* @param assignee 处理人 |
|||
* @param businessKey 业务主键 |
|||
* @param desc 描述 |
|||
*/ |
|||
<T> ProcessInstance startProcess(String category, String assignee, String businessKey, String fronted, String desc, Class<T> clazz) throws Exception; |
|||
|
|||
/** |
|||
* 查询流程任务 |
|||
* @param procInstId |
|||
* @return |
|||
* @throws Exception |
|||
*/ |
|||
ProcessTaskWrapper findTaskByProcInstId(String procInstId) throws Exception; |
|||
} |
@ -0,0 +1,17 @@ |
|||
package irbs.riskExposure.service; |
|||
|
|||
import io.sc.platform.flowable.controller.support.ProcessProperties; |
|||
import io.sc.platform.orm.service.DaoService; |
|||
import io.sc.platform.orm.service.support.QueryParameter; |
|||
import irbs.riskExposure.jpa.entity.RiskExposureOperation; |
|||
import irbs.riskExposure.jpa.repository.RiskExposureOperationRepository; |
|||
import org.springframework.data.domain.Page; |
|||
|
|||
/** |
|||
* 流程处理日志 |
|||
* @author dhb |
|||
*/ |
|||
public interface RiskExposureOperationService extends DaoService<RiskExposureOperation, String, RiskExposureOperationRepository> { |
|||
|
|||
Page<RiskExposureOperation> queryPage(QueryParameter queryParameter) throws Exception; |
|||
} |
@ -0,0 +1,31 @@ |
|||
package irbs.riskExposure.service; |
|||
|
|||
import io.sc.platform.flowable.controller.support.ProcessProperties; |
|||
import io.sc.platform.flowable.support.CompleteTaskResponse; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
|
|||
/** |
|||
* 流程服务处理 |
|||
* @author dhb |
|||
*/ |
|||
public interface RiskExposureProcessService { |
|||
|
|||
/** |
|||
* 风险暴露分类发起流程提交 |
|||
* @param taskId |
|||
* @param processProperties |
|||
* @return |
|||
* @throws Exception |
|||
*/ |
|||
CompleteTaskResponse submitRiskExposure(String taskId, ProcessProperties processProperties) throws Exception; |
|||
|
|||
/** |
|||
* 风险暴露分类调整流程提交 |
|||
* @param taskId |
|||
* @param processProperties |
|||
* @return |
|||
* @throws Exception |
|||
*/ |
|||
@Transactional |
|||
CompleteTaskResponse submitRiskExposureAdjust(String taskId, ProcessProperties processProperties) throws Exception; |
|||
} |
@ -0,0 +1,47 @@ |
|||
package irbs.riskExposure.service; |
|||
|
|||
import io.sc.platform.flowable.controller.support.ProcessProperties; |
|||
import io.sc.platform.flowable.support.CompleteTaskResponse; |
|||
import io.sc.platform.orm.service.DaoService; |
|||
import io.sc.platform.orm.service.support.QueryParameter; |
|||
import irbs.riskExposure.jpa.entity.RiskExposure; |
|||
import irbs.riskExposure.jpa.repository.RiskExposureRepository; |
|||
import org.springframework.data.domain.Page; |
|||
|
|||
public interface RiskExposureService extends DaoService<RiskExposure, String, RiskExposureRepository> { |
|||
Page<RiskExposure> queryPage(QueryParameter queryParameter) throws Exception; |
|||
|
|||
RiskExposure handmadeRiskExposure(String id) throws Exception; |
|||
|
|||
/** |
|||
* 提交流程 |
|||
* @param riskExposureId |
|||
* @param processProperties |
|||
* @throws Exception |
|||
*/ |
|||
void submit(String riskExposureId, ProcessProperties processProperties) throws Exception; |
|||
|
|||
/** |
|||
* 退回值发起人 |
|||
* @param riskExposureId |
|||
* @param processProperties |
|||
* @throws Exception |
|||
*/ |
|||
public void backStart(String riskExposureId, ProcessProperties processProperties) throws Exception; |
|||
|
|||
/** |
|||
* 审批通过 |
|||
* @param riskExposureId |
|||
* @param processProperties |
|||
* @throws Exception |
|||
*/ |
|||
public void approve(String riskExposureId, ProcessProperties processProperties) throws Exception; |
|||
|
|||
/** |
|||
* 流程拒绝 |
|||
* @param riskExposureId |
|||
* @param processProperties |
|||
* @throws Exception |
|||
*/ |
|||
public void reject(String riskExposureId, ProcessProperties processProperties) throws Exception; |
|||
} |
@ -0,0 +1,144 @@ |
|||
package irbs.riskExposure.service.impl; |
|||
|
|||
import io.sc.platform.flowable.controller.support.ProcessProperties; |
|||
import io.sc.platform.flowable.support.ProcessTaskWrapper; |
|||
import io.sc.platform.orm.service.impl.DaoServiceImpl; |
|||
import io.sc.platform.orm.service.support.QueryParameter; |
|||
import io.sc.platform.security.util.SecurityUtil; |
|||
import irbs.riskExposure.jpa.entity.RiskExposure; |
|||
import irbs.riskExposure.jpa.entity.RiskExposureOperation; |
|||
import irbs.riskExposure.jpa.repository.RiskExposureRepository; |
|||
import irbs.riskExposure.jpa.support.ProcessConstant; |
|||
import irbs.riskExposure.jpa.support.RiskExposureProcessOperate; |
|||
import irbs.riskExposure.jpa.support.RiskExposureProcessStatus; |
|||
import irbs.riskExposure.service.RiskExposureAdjustService; |
|||
import irbs.riskExposure.service.RiskExposureFlowService; |
|||
import irbs.riskExposure.service.RiskExposureOperationService; |
|||
import org.flowable.engine.runtime.ProcessInstance; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.data.domain.Page; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.Date; |
|||
import java.util.Optional; |
|||
|
|||
@Service("riskExposureAdjustService") |
|||
public class RiskExposureAdjustServiceImpl extends DaoServiceImpl<RiskExposure, String, RiskExposureRepository> implements RiskExposureAdjustService { |
|||
|
|||
@Autowired |
|||
private RiskExposureOperationService riskExposureOperationService; |
|||
@Autowired |
|||
private RiskExposureFlowService riskExposureFlowService; |
|||
@Override |
|||
public Page<RiskExposure> queryPage(QueryParameter queryParameter) throws Exception { |
|||
Page<RiskExposure> page = this.query(queryParameter); |
|||
if (null != page.getContent() && page.getContent().size() > 0) { |
|||
for (RiskExposure re: page.getContent()) { |
|||
if (null!=re.getProcessInstanceId() && !"".equals(re.getProcessInstanceId())) { |
|||
ProcessTaskWrapper ptw = riskExposureFlowService.findTaskByProcInstId(re.getProcessInstanceId()); |
|||
if (ptw!=null && null!=ptw.getId()) { |
|||
re.setTaskId(ptw.getId()); |
|||
re.setCurrentAssignee(ptw.getAssignee()); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
return page; |
|||
} |
|||
|
|||
@Override |
|||
public RiskExposure handmadeRiskExposure(String id) throws Exception { |
|||
Optional<RiskExposure> optional = repository.findById(id); |
|||
if(optional.isPresent()){ |
|||
RiskExposure riskExposure = optional.get(); |
|||
riskExposure.setDataStatus("1");//发起风险暴露分类后,设置发起状态为已发起
|
|||
riskExposure.setProcessStatus(RiskExposureProcessStatus.TO_BE_SUBMITTED.name());//发起风险暴露分类后,流程状态为待发起
|
|||
ProcessInstance processInstance = riskExposureFlowService.startProcess( |
|||
ProcessConstant.DEFAULT_CUSTOMER_F, |
|||
SecurityUtil.getLoginName(), |
|||
riskExposure.getId(), |
|||
"app.irbs.frontend:./default/manual/defaultSteps", |
|||
"客户名称:" + riskExposure.getCustName(), |
|||
String.class |
|||
); |
|||
riskExposure.setProcessInstanceId(processInstance.getId()); |
|||
getRepository().save(riskExposure); |
|||
return riskExposure; |
|||
} |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public void submit(String riskExposureId, ProcessProperties processProperties) throws Exception { |
|||
RiskExposure riskExposure = this.findById(riskExposureId); |
|||
|
|||
RiskExposureOperation riskExposureOperation = new RiskExposureOperation(); |
|||
riskExposureOperation.setRiskExposureId(riskExposure.getId()); |
|||
riskExposureOperation.setRemarks(processProperties.getData().get("remarks").toString()); |
|||
if(processProperties.getData().get("manResult") != null){ |
|||
riskExposureOperation.setRiskExposureType(processProperties.getData().get("manResult").toString()); |
|||
riskExposure.setManResult(processProperties.getData().get("manResult").toString()); |
|||
} |
|||
riskExposureOperation.setOperation(RiskExposureProcessOperate.SUBMIT.getCode()); |
|||
riskExposureOperationService.getRepository().save(riskExposureOperation); |
|||
|
|||
riskExposure.setProcessStatus(RiskExposureProcessStatus.TO_BE_CHECKED.name()); |
|||
if (processProperties.getTransientVariables().containsKey("assignee") && processProperties.getTransientVariables().get("assignee")!=null) { |
|||
riskExposure.setCurrentAssignee (processProperties.getTransientVariables().get("assignee").toString()); |
|||
} |
|||
repository.save(riskExposure); |
|||
} |
|||
|
|||
@Override |
|||
public void backStart(String riskExposureId, ProcessProperties processProperties) throws Exception { |
|||
RiskExposure riskExposure = this.findById(riskExposureId); |
|||
RiskExposureOperation riskExposureOperation = new RiskExposureOperation(); |
|||
riskExposureOperation.setRiskExposureId(riskExposure.getId()); |
|||
riskExposureOperation.setRemarks(processProperties.getData().get("remarks").toString()); |
|||
riskExposureOperation.setOperation(RiskExposureProcessOperate.BACK.getCode()); |
|||
riskExposureOperationService.getRepository().save(riskExposureOperation); |
|||
|
|||
riskExposure.setProcessStatus(RiskExposureProcessStatus.RETURNED.name()); |
|||
if (processProperties.getTransientVariables().containsKey("assignee") && processProperties.getTransientVariables().get("assignee")!=null) { |
|||
riskExposure.setCurrentAssignee (processProperties.getTransientVariables().get("assignee").toString()); |
|||
} |
|||
repository.save(riskExposure); |
|||
} |
|||
|
|||
@Override |
|||
public void approve(String riskExposureId, ProcessProperties processProperties) throws Exception { |
|||
RiskExposure riskExposure = this.findById(riskExposureId); |
|||
RiskExposureOperation riskExposureOperation = new RiskExposureOperation(); |
|||
riskExposureOperation.setRiskExposureId(riskExposure.getId()); |
|||
riskExposureOperation.setRemarks(processProperties.getData().get("remarks").toString()); |
|||
riskExposureOperation.setOperation(RiskExposureProcessOperate.APPROVE.getCode()); |
|||
riskExposureOperationService.getRepository().save(riskExposureOperation); |
|||
|
|||
if (RiskExposureProcessStatus.TO_BE_CHECKED.name().equals(riskExposure.getProcessStatus())) { |
|||
riskExposure.setProcessStatus(RiskExposureProcessStatus.COMPLETED_PASS.name()); |
|||
riskExposure.setCurrentAssignee(""); |
|||
riskExposure.setIsValid("1"); |
|||
riskExposure.setFinishDate(new Date()); |
|||
riskExposure.setFinalResult(riskExposure.getManResult()); |
|||
} |
|||
this.getRepository().save(riskExposure); |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public void reject(String riskExposureId, ProcessProperties processProperties) throws Exception { |
|||
RiskExposure riskExposure = this.findById(riskExposureId); |
|||
RiskExposureOperation riskExposureOperation = new RiskExposureOperation(); |
|||
riskExposureOperation.setRiskExposureId(riskExposure.getId()); |
|||
riskExposureOperation.setRemarks(processProperties.getData().get("remarks").toString()); |
|||
riskExposureOperation.setOperation(RiskExposureProcessOperate.REJECT.getCode()); |
|||
riskExposureOperationService.getRepository().save(riskExposureOperation); |
|||
|
|||
if (RiskExposureProcessStatus.TO_BE_CHECKED.name().equals(riskExposure.getProcessStatus())) { |
|||
riskExposure.setProcessStatus(RiskExposureProcessStatus.COMPLETED_REJECT.name()); |
|||
riskExposure.setIsValid("0"); |
|||
riskExposure.setCurrentAssignee(""); |
|||
} |
|||
this.getRepository().save(riskExposure); |
|||
} |
|||
} |
@ -0,0 +1,48 @@ |
|||
package irbs.riskExposure.service.impl; |
|||
|
|||
import io.sc.platform.flowable.service.ProcessOperationService; |
|||
import io.sc.platform.flowable.service.ProcessQueryService; |
|||
import io.sc.platform.flowable.support.ProcessTaskWrapper; |
|||
import io.sc.platform.security.util.SecurityUtil; |
|||
import irbs.riskExposure.service.RiskExposureFlowService; |
|||
import org.flowable.engine.runtime.ProcessInstance; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.HashMap; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
import java.util.stream.Collectors; |
|||
|
|||
@Service |
|||
public class RiskExposureFlowServiceImpl implements RiskExposureFlowService { |
|||
@Autowired |
|||
private ProcessOperationService processOperationService; |
|||
@Autowired |
|||
private ProcessQueryService processQueryService; |
|||
@Override |
|||
public <T> ProcessInstance startProcess(String category, String assignee, String businessKey, String fronted, String desc, Class<T> clazz) throws Exception { |
|||
Map<String, Object> transientVariables = new HashMap<>(); |
|||
transientVariables.put("assignee", assignee); |
|||
transientVariables.put("desc", desc); |
|||
return processOperationService.startProcessByKey(category, businessKey, null, transientVariables); |
|||
} |
|||
|
|||
@Override |
|||
public ProcessTaskWrapper findTaskByProcInstId(String procInstId) throws Exception { |
|||
ProcessTaskWrapper taskWrapper = null; |
|||
List<ProcessTaskWrapper> list = processQueryService.queryProcessTasks(procInstId, null); |
|||
if (null != list && list.size() > 1) { |
|||
// 同一个流程实例查找出多个任务则为多实例任务,还需再根据任务处理人匹配。
|
|||
List<ProcessTaskWrapper> userTaskList = list.stream().filter(task-> SecurityUtil.getLoginName().equals(task.getAssignee())).collect(Collectors.toList()); |
|||
if (null !=userTaskList && userTaskList.size() == 1) { |
|||
// 根据任务处理人匹配到一条数据时返回,未匹配到或者匹配出多条数据,返回空。
|
|||
taskWrapper = userTaskList.get(0); |
|||
} |
|||
} else if (null != list && list.size() == 1) { |
|||
// 根据流程实例只查找出一条任务,直接返回。
|
|||
taskWrapper = list.get(0); |
|||
} |
|||
return taskWrapper; |
|||
} |
|||
} |
@ -0,0 +1,17 @@ |
|||
package irbs.riskExposure.service.impl; |
|||
|
|||
import io.sc.platform.orm.service.impl.DaoServiceImpl; |
|||
import io.sc.platform.orm.service.support.QueryParameter; |
|||
import irbs.riskExposure.jpa.entity.RiskExposureOperation; |
|||
import irbs.riskExposure.jpa.repository.RiskExposureOperationRepository; |
|||
import irbs.riskExposure.service.RiskExposureOperationService; |
|||
import org.springframework.data.domain.Page; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
@Service("riskExposureOperationService") |
|||
public class RiskExposureOperationServiceImpl extends DaoServiceImpl<RiskExposureOperation, String, RiskExposureOperationRepository> implements RiskExposureOperationService { |
|||
@Override |
|||
public Page<RiskExposureOperation> queryPage(QueryParameter queryParameter) throws Exception { |
|||
return this.query(queryParameter); |
|||
} |
|||
} |
@ -0,0 +1,88 @@ |
|||
package irbs.riskExposure.service.impl; |
|||
|
|||
import io.sc.platform.flowable.controller.support.ProcessProperties; |
|||
import io.sc.platform.flowable.service.ProcessOperationService; |
|||
import io.sc.platform.flowable.support.CompleteTaskException; |
|||
import io.sc.platform.flowable.support.CompleteTaskResponse; |
|||
import irbs.riskExposure.jpa.support.GoBackType; |
|||
import irbs.riskExposure.service.RiskExposureAdjustService; |
|||
import irbs.riskExposure.service.RiskExposureProcessService; |
|||
import irbs.riskExposure.service.RiskExposureService; |
|||
import org.flowable.engine.ProcessEngine; |
|||
import org.flowable.engine.runtime.ProcessInstance; |
|||
import org.flowable.task.api.Task; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
import org.springframework.transaction.interceptor.TransactionAspectSupport; |
|||
|
|||
import java.util.Map; |
|||
|
|||
@Service("riskExposureProcessService") |
|||
public class RiskExposureProcessServiceImpl implements RiskExposureProcessService { |
|||
|
|||
@Autowired |
|||
private ProcessOperationService processOperationService; |
|||
@Autowired |
|||
private ProcessEngine processEngine; |
|||
@Autowired |
|||
private RiskExposureService riskExposureService; |
|||
@Autowired |
|||
private RiskExposureAdjustService riskExposureAdjustService; |
|||
|
|||
@Override |
|||
@Transactional |
|||
public CompleteTaskResponse submitRiskExposure(String taskId, ProcessProperties processProperties) throws Exception { |
|||
try { |
|||
Task task = processEngine.getTaskService().createTaskQuery().taskId(taskId).singleResult(); |
|||
Map<String, Object> transientVariables = processProperties.getTransientVariables(); |
|||
Integer opaVal = (Integer) transientVariables.get("opaVal"); |
|||
ProcessInstance instance = processEngine.getRuntimeService().createProcessInstanceQuery().processInstanceId(task.getProcessInstanceId()).singleResult(); |
|||
processOperationService.completeTask(taskId, processProperties.getVariables(), transientVariables); |
|||
|
|||
if(opaVal == GoBackType.SUBMIT.code() || opaVal==GoBackType.UPPER.code() || opaVal==GoBackType.UPPER_1.code()){ |
|||
riskExposureService.submit(instance.getBusinessKey(), processProperties); |
|||
} else if(opaVal==GoBackType.BACK_START.code()){ |
|||
riskExposureService.backStart(instance.getBusinessKey(), processProperties); |
|||
} else if(opaVal==GoBackType.APPROVE.code()){ |
|||
riskExposureService.approve(instance.getBusinessKey(), processProperties); |
|||
} else if(opaVal==GoBackType.REJECT.code()){ |
|||
riskExposureService.reject(instance.getBusinessKey(), processProperties); |
|||
} |
|||
return new CompleteTaskResponse(); |
|||
} catch (CompleteTaskException exception) { |
|||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
|||
return CompleteTaskResponse.fromAssigneesJson(exception.getMessage()); |
|||
} catch (Exception exception) { |
|||
throw exception; |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
@Transactional |
|||
public CompleteTaskResponse submitRiskExposureAdjust(String taskId, ProcessProperties processProperties) throws Exception { |
|||
try { |
|||
Task task = processEngine.getTaskService().createTaskQuery().taskId(taskId).singleResult(); |
|||
Map<String, Object> transientVariables = processProperties.getTransientVariables(); |
|||
Integer opaVal = (Integer) transientVariables.get("opaVal"); |
|||
ProcessInstance instance = processEngine.getRuntimeService().createProcessInstanceQuery().processInstanceId(task.getProcessInstanceId()).singleResult(); |
|||
processOperationService.completeTask(taskId, processProperties.getVariables(), transientVariables); |
|||
|
|||
if(opaVal == GoBackType.SUBMIT.code() || opaVal==GoBackType.UPPER.code() || opaVal==GoBackType.UPPER_1.code()){ |
|||
riskExposureAdjustService.submit(instance.getBusinessKey(), processProperties); |
|||
} else if(opaVal==GoBackType.BACK_START.code()){ |
|||
riskExposureAdjustService.backStart(instance.getBusinessKey(), processProperties); |
|||
} else if(opaVal==GoBackType.APPROVE.code()){ |
|||
riskExposureAdjustService.approve(instance.getBusinessKey(), processProperties); |
|||
} else if(opaVal==GoBackType.REJECT.code()){ |
|||
riskExposureAdjustService.reject(instance.getBusinessKey(), processProperties); |
|||
} |
|||
return new CompleteTaskResponse(); |
|||
} catch (CompleteTaskException exception) { |
|||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); |
|||
return CompleteTaskResponse.fromAssigneesJson(exception.getMessage()); |
|||
} catch (Exception exception) { |
|||
throw exception; |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,145 @@ |
|||
package irbs.riskExposure.service.impl; |
|||
|
|||
import io.sc.platform.flowable.controller.support.ProcessProperties; |
|||
import io.sc.platform.flowable.support.ProcessTaskWrapper; |
|||
import io.sc.platform.orm.service.impl.DaoServiceImpl; |
|||
import io.sc.platform.orm.service.support.QueryParameter; |
|||
import io.sc.platform.security.util.SecurityUtil; |
|||
import irbs.riskExposure.jpa.entity.RiskExposure; |
|||
import irbs.riskExposure.jpa.entity.RiskExposureOperation; |
|||
import irbs.riskExposure.jpa.repository.RiskExposureRepository; |
|||
import irbs.riskExposure.jpa.support.ProcessConstant; |
|||
import irbs.riskExposure.jpa.support.RiskExposureProcessOperate; |
|||
import irbs.riskExposure.jpa.support.RiskExposureProcessStatus; |
|||
import irbs.riskExposure.service.RiskExposureFlowService; |
|||
import irbs.riskExposure.service.RiskExposureOperationService; |
|||
import irbs.riskExposure.service.RiskExposureProcessService; |
|||
import irbs.riskExposure.service.RiskExposureService; |
|||
import org.flowable.engine.runtime.ProcessInstance; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.data.domain.Page; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.Date; |
|||
import java.util.Optional; |
|||
|
|||
@Service("riskExposureService") |
|||
public class RiskExposureServiceImpl extends DaoServiceImpl<RiskExposure, String, RiskExposureRepository> implements RiskExposureService { |
|||
|
|||
@Autowired |
|||
private RiskExposureOperationService riskExposureOperationService; |
|||
@Autowired |
|||
private RiskExposureFlowService riskExposureFlowService; |
|||
@Override |
|||
public Page<RiskExposure> queryPage(QueryParameter queryParameter) throws Exception { |
|||
Page<RiskExposure> page = this.query(queryParameter); |
|||
if (null != page.getContent() && page.getContent().size() > 0) { |
|||
for (RiskExposure re: page.getContent()) { |
|||
if (null!=re.getProcessInstanceId() && !"".equals(re.getProcessInstanceId())) { |
|||
ProcessTaskWrapper ptw = riskExposureFlowService.findTaskByProcInstId(re.getProcessInstanceId()); |
|||
if (ptw!=null && null!=ptw.getId()) { |
|||
re.setTaskId(ptw.getId()); |
|||
re.setCurrentAssignee(ptw.getAssignee()); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
return page; |
|||
} |
|||
|
|||
@Override |
|||
public RiskExposure handmadeRiskExposure(String id) throws Exception { |
|||
Optional<RiskExposure> optional = repository.findById(id); |
|||
if(optional.isPresent()){ |
|||
RiskExposure riskExposure = optional.get(); |
|||
riskExposure.setDataStatus("1");//发起风险暴露分类后,设置发起状态为已发起
|
|||
riskExposure.setProcessStatus(RiskExposureProcessStatus.TO_BE_SUBMITTED.name());//发起风险暴露分类后,流程状态为待发起
|
|||
ProcessInstance processInstance = riskExposureFlowService.startProcess( |
|||
ProcessConstant.DEFAULT_CUSTOMER_F, |
|||
SecurityUtil.getLoginName(), |
|||
riskExposure.getId(), |
|||
"app.irbs.frontend:./default/manual/defaultSteps", |
|||
"客户名称:" + riskExposure.getCustName(), |
|||
String.class |
|||
); |
|||
riskExposure.setProcessInstanceId(processInstance.getId()); |
|||
getRepository().save(riskExposure); |
|||
return riskExposure; |
|||
} |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public void submit(String riskExposureId, ProcessProperties processProperties) throws Exception { |
|||
RiskExposure riskExposure = this.findById(riskExposureId); |
|||
|
|||
RiskExposureOperation riskExposureOperation = new RiskExposureOperation(); |
|||
riskExposureOperation.setRiskExposureId(riskExposure.getId()); |
|||
riskExposureOperation.setRemarks(processProperties.getData().get("remarks").toString()); |
|||
if(processProperties.getData().get("manResult") != null){ |
|||
riskExposureOperation.setRiskExposureType(processProperties.getData().get("manResult").toString()); |
|||
riskExposure.setManResult(processProperties.getData().get("manResult").toString()); |
|||
} |
|||
riskExposureOperation.setOperation(RiskExposureProcessOperate.SUBMIT.getCode()); |
|||
riskExposureOperationService.getRepository().save(riskExposureOperation); |
|||
|
|||
riskExposure.setProcessStatus(RiskExposureProcessStatus.TO_BE_CHECKED.name()); |
|||
if (processProperties.getTransientVariables().containsKey("assignee") && processProperties.getTransientVariables().get("assignee")!=null) { |
|||
riskExposure.setCurrentAssignee (processProperties.getTransientVariables().get("assignee").toString()); |
|||
} |
|||
repository.save(riskExposure); |
|||
} |
|||
|
|||
@Override |
|||
public void backStart(String riskExposureId, ProcessProperties processProperties) throws Exception { |
|||
RiskExposure riskExposure = this.findById(riskExposureId); |
|||
RiskExposureOperation riskExposureOperation = new RiskExposureOperation(); |
|||
riskExposureOperation.setRiskExposureId(riskExposure.getId()); |
|||
riskExposureOperation.setRemarks(processProperties.getData().get("remarks").toString()); |
|||
riskExposureOperation.setOperation(RiskExposureProcessOperate.BACK.getCode()); |
|||
riskExposureOperationService.getRepository().save(riskExposureOperation); |
|||
|
|||
riskExposure.setProcessStatus(RiskExposureProcessStatus.RETURNED.name()); |
|||
if (processProperties.getTransientVariables().containsKey("assignee") && processProperties.getTransientVariables().get("assignee")!=null) { |
|||
riskExposure.setCurrentAssignee (processProperties.getTransientVariables().get("assignee").toString()); |
|||
} |
|||
repository.save(riskExposure); |
|||
} |
|||
|
|||
@Override |
|||
public void approve(String riskExposureId, ProcessProperties processProperties) throws Exception { |
|||
RiskExposure riskExposure = this.findById(riskExposureId); |
|||
RiskExposureOperation riskExposureOperation = new RiskExposureOperation(); |
|||
riskExposureOperation.setRiskExposureId(riskExposure.getId()); |
|||
riskExposureOperation.setRemarks(processProperties.getData().get("remarks").toString()); |
|||
riskExposureOperation.setOperation(RiskExposureProcessOperate.APPROVE.getCode()); |
|||
riskExposureOperationService.getRepository().save(riskExposureOperation); |
|||
|
|||
if (RiskExposureProcessStatus.TO_BE_CHECKED.name().equals(riskExposure.getProcessStatus())) { |
|||
riskExposure.setProcessStatus(RiskExposureProcessStatus.COMPLETED_PASS.name()); |
|||
riskExposure.setCurrentAssignee(""); |
|||
riskExposure.setIsValid("1"); |
|||
riskExposure.setFinishDate(new Date()); |
|||
riskExposure.setFinalResult(riskExposure.getManResult()); |
|||
} |
|||
this.getRepository().save(riskExposure); |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public void reject(String riskExposureId, ProcessProperties processProperties) throws Exception { |
|||
RiskExposure riskExposure = this.findById(riskExposureId); |
|||
RiskExposureOperation riskExposureOperation = new RiskExposureOperation(); |
|||
riskExposureOperation.setRiskExposureId(riskExposure.getId()); |
|||
riskExposureOperation.setRemarks(processProperties.getData().get("remarks").toString()); |
|||
riskExposureOperation.setOperation(RiskExposureProcessOperate.REJECT.getCode()); |
|||
riskExposureOperationService.getRepository().save(riskExposureOperation); |
|||
|
|||
if (RiskExposureProcessStatus.TO_BE_CHECKED.name().equals(riskExposure.getProcessStatus())) { |
|||
riskExposure.setProcessStatus(RiskExposureProcessStatus.COMPLETED_REJECT.name()); |
|||
riskExposure.setIsValid("0"); |
|||
riskExposure.setCurrentAssignee(""); |
|||
} |
|||
this.getRepository().save(riskExposure); |
|||
} |
|||
} |
@ -0,0 +1,41 @@ |
|||
package irbs.riskExposure.service.support; |
|||
|
|||
public class QueryParams { |
|||
|
|||
private String custNo; |
|||
private String custName; |
|||
private String managerName; |
|||
private String managerOrgCode; |
|||
|
|||
public String getCustNo() { |
|||
return custNo; |
|||
} |
|||
|
|||
public void setCustNo(String custNo) { |
|||
this.custNo = custNo; |
|||
} |
|||
|
|||
public String getCustName() { |
|||
return custName; |
|||
} |
|||
|
|||
public void setCustName(String custName) { |
|||
this.custName = custName; |
|||
} |
|||
|
|||
public String getManagerName() { |
|||
return managerName; |
|||
} |
|||
|
|||
public void setManagerName(String managerName) { |
|||
this.managerName = managerName; |
|||
} |
|||
|
|||
public String getManagerOrgCode() { |
|||
return managerOrgCode; |
|||
} |
|||
|
|||
public void setManagerOrgCode(String managerOrgCode) { |
|||
this.managerOrgCode = managerOrgCode; |
|||
} |
|||
} |
@ -0,0 +1,25 @@ |
|||
/* |
|||
* 应用属性插件配置 |
|||
* 功能: 该插件配置为框架提供 application.properties 中的配置项, 这样可以让配置项分散到各个子模块中。 |
|||
* 使用说明: |
|||
* module: 配置项所属模块,通常为模块的名称 |
|||
* order: 配置项顺序 |
|||
* description: 配置项描述, 在 application.properties 文件中以注释体现 |
|||
* properties: 属性配置列表 |
|||
*/ |
|||
|
|||
/* 示例 */ |
|||
/* |
|||
[ |
|||
{ |
|||
"module" : "io.sc.platform.core", |
|||
"order" : 150, |
|||
"description": "application configuration", |
|||
"properties": [ |
|||
"application.audit-log-mode = none", |
|||
"#application.audit-log-mode = log", |
|||
"#application.audit-log-mode = database" |
|||
] |
|||
} |
|||
] |
|||
*/ |
@ -0,0 +1,16 @@ |
|||
/* |
|||
* 自动组件扫描插件配置 |
|||
* 功能: 该插件配置为框架提供自动扫描组件的包名,配置的包名将会自动被 spring 进行扫描 |
|||
* 使用说明: |
|||
* includes: 包含自动扫描的包名列表 |
|||
* excludes: 排除自动扫描的包名列表 |
|||
* 注意: 当一个包名同时存在于 includes 和 excludes 中, excludes 优先, 即该包不会被自动扫描 |
|||
*/ |
|||
|
|||
{ |
|||
"includes":[ |
|||
"irbs.riskExposure.controller", |
|||
"irbs.riskExposure.service.impl" |
|||
], |
|||
"excludes":[] |
|||
} |
@ -0,0 +1,17 @@ |
|||
/* |
|||
* 自动创建目录插件配置 |
|||
* 功能: 该插件配置为框架提供自动创建目录功能 |
|||
* 使用说明: |
|||
* name : 目录的名称, 开发者可通过 DirectoryManager.getInstance().getByName(name) 获取实际目录 |
|||
* path : 目录的相对路径,相对于应用 home 目录 |
|||
* autoCreate : 是否自动创建 |
|||
*/ |
|||
|
|||
/* 示例 */ |
|||
/* |
|||
[ |
|||
{"name":"dir.config" ,"path":"/config" ,"autoCreate":true}, |
|||
{"name":"dir.log" ,"path":"/logs" ,"autoCreate":true}, |
|||
{"name":"dir.work" ,"path":"/work" ,"autoCreate":true} |
|||
] |
|||
*/ |
@ -0,0 +1,25 @@ |
|||
/* |
|||
* json 序列化器和反序列化器插件配置 |
|||
* 功能: 该插件配置为框架提供 json 序列化器和反序列化器插件配置 |
|||
* 使用说明: |
|||
* className: 目标类名 |
|||
* serializer: 序列化器类名 |
|||
* deserializer: 反序列化器类名 |
|||
*/ |
|||
|
|||
|
|||
/* 示例 */ |
|||
/* |
|||
[ |
|||
{ |
|||
"className" : "java.util.Date", |
|||
"serializer" : "io.sc.platform.core.autoconfigure.support.DateJsonSerializer", |
|||
"deserializer" : "io.sc.platform.core.autoconfigure.support.DateJsonDeserializer" |
|||
}, |
|||
{ |
|||
"className" : "java.time.Instant", |
|||
"serializer" : "io.sc.platform.core.autoconfigure.support.InstantJsonSerializer", |
|||
"deserializer" : "io.sc.platform.core.autoconfigure.support.InstantJsonDeserializer" |
|||
} |
|||
] |
|||
*/ |
@ -0,0 +1,36 @@ |
|||
/* |
|||
* 数据库建表 Liquibase ChangeLog XML 插件配置 |
|||
* 功能: 该插件配置为框架提供数据库无关的建表脚本 |
|||
* 使用说明: |
|||
* category: 建表脚本分类,可能的值包括: |
|||
* install : 系统安装时自动执行 |
|||
* order: 执行顺序 |
|||
* description: 描述信息 |
|||
* locations: 建表 liquibase changelog xml 文件位置 |
|||
*/ |
|||
|
|||
/* 示例 */ |
|||
/* |
|||
[ |
|||
{ |
|||
"category" : "install", |
|||
"order" : 100, |
|||
"description":"授权与认证相关数据库表结构", |
|||
"locations":[ |
|||
"liquibase/PF_9.0.0_20230222__Security_DDL.xml", |
|||
"liquibase/PF_9.0.0_20230223__Security_DDL.xml" |
|||
] |
|||
} |
|||
] |
|||
*/ |
|||
[ |
|||
{ |
|||
"category" : "install", |
|||
"order" : 100000, |
|||
"description":"风险暴露分类", |
|||
"locations":[ |
|||
"liquibase/20240327_RISKEXPOSURE_DDL.xml", |
|||
"liquibase/20240417_UPDATE_RISKEXPOSURE_DDL.xml" |
|||
] |
|||
} |
|||
] |
@ -0,0 +1,16 @@ |
|||
/* |
|||
* 国际化消息源插件配置 |
|||
* 功能: 该插件配置为框架提供国际化消息资源 |
|||
* 使用说明: |
|||
* includes: 包含国际化消息资源列表 |
|||
* excludes: 排除国际化消息资源列表 |
|||
* 注意: 当一个包名同时存在于 includes 和 excludes 中, excludes 优先, 即该包不会被自动扫描 |
|||
*/ |
|||
|
|||
|
|||
{ |
|||
"includes":[ |
|||
"irbs/riskExposure/i18n/messages" |
|||
], |
|||
"excludes":[] |
|||
} |
@ -0,0 +1,15 @@ |
|||
/* |
|||
* p6spy 插件配置 |
|||
* 功能: 该插件配置为框架提供 p6spy 配置 |
|||
* 使用说明: |
|||
* ignoredPatterns: 忽略显示 jdbc 输出信息正则表达式列表 |
|||
*/ |
|||
|
|||
/* 以下示例将不显示 p6spy 输出的 commit */ |
|||
/* |
|||
{ |
|||
"ignoredPatterns":[ |
|||
"commit" |
|||
] |
|||
} |
|||
*/ |
@ -0,0 +1,37 @@ |
|||
/* |
|||
* 系统参数插件配置 |
|||
* 功能说明: 该插件配置为框架提供系统参数配置 |
|||
* 使用说明: |
|||
* id: 参数唯一标识 |
|||
* parentId: 父唯一标识, 用于进行参数分类 |
|||
* code: 参数代码, 应用可通过该代码获取参数值 |
|||
* defaultValue: 默认值 |
|||
* order: 排序 |
|||
* options: 选项值 map, key 表示值, value 表示显示值 |
|||
*/ |
|||
|
|||
/* 示例 */ |
|||
/* |
|||
[ |
|||
{"id":"parameter.system","order":0}, |
|||
{ |
|||
"id" : "parameter.system.indexPageTemplate", |
|||
"parentId" : "parameter.system", |
|||
"code" : "parameter.system.indexPageTemplate", |
|||
"defaultValue" : "io.sc.platform.mvc.frontend.html", |
|||
"order" : 200 |
|||
}, |
|||
{"id":"parameter.system.ui","parentId":"parameter.system","order":1000}, |
|||
{ |
|||
"id" : "parameter.system.ui.theme", |
|||
"parentId" : "parameter.system.ui", |
|||
"code" : "parameter.system.ui.theme", |
|||
"defaultValue" : "light", |
|||
"order" : 800, |
|||
"options" :{ |
|||
"light" : "#{parameter.system.ui.theme.light}", |
|||
"dark" : "#{parameter.system.ui.theme.dark}" |
|||
} |
|||
} |
|||
] |
|||
*/ |
@ -0,0 +1,16 @@ |
|||
/* |
|||
* 自动 JPA 扫描插件配置 |
|||
* 功能: 该插件配置为框架提供自动扫描 JPA 组件的包名 |
|||
* 使用说明: |
|||
* includes: 包含自动扫描的包名成列表 |
|||
* excludes: 排除自动扫描的包名成列表 |
|||
* 注意: 当一个包名同时存在于 includes 和 excludes 中, excludes 优先, 即该包不会被自动扫描 |
|||
*/ |
|||
|
|||
{ |
|||
"includes":[ |
|||
"irbs.riskExposure.jpa.entity", |
|||
"irbs.riskExposure.jpa.repository" |
|||
], |
|||
"excludes":[] |
|||
} |
@ -0,0 +1,20 @@ |
|||
/* |
|||
* 自动重启属性插件配置 |
|||
* 功能: 当配置的属性发生变化时,系统会自动重启(如果应用运行在独立的 web 容器中时, 需手工重启) |
|||
* 使用说明: |
|||
* 匹配规则: startWith |
|||
* container: 在容器中运行时需要重启的属性列表 |
|||
* jar: 通过 jar 直接运行时需要重启的属性列表 |
|||
*/ |
|||
|
|||
/* 示例 */ |
|||
/* |
|||
{ |
|||
"container":[ |
|||
"spring.security." |
|||
], |
|||
"jar": [ |
|||
"spring.security." |
|||
] |
|||
} |
|||
*/ |
@ -0,0 +1,15 @@ |
|||
/* |
|||
* 认证插件配置 |
|||
* 功能: 该插件配置为框架提供不对某些资源进行认证的功能 |
|||
* 使用说明: |
|||
* permitPatterns : 不进行安全认证检查的 url 模式, 采用 ant path 格式配置 |
|||
*/ |
|||
|
|||
/* 示例 */ |
|||
/* |
|||
{ |
|||
"permitPatterns":[ |
|||
"/io.sc.platform.core/**" |
|||
] |
|||
} |
|||
*/ |
@ -0,0 +1,19 @@ |
|||
/** |
|||
* swagger 配置 |
|||
*/ |
|||
|
|||
/* 示例 */ |
|||
/* |
|||
[ |
|||
{ |
|||
"groupName" : "io.sc.platform.mvc", |
|||
"title" : "平台 MVC", |
|||
"description": "平台 MVC 文档", |
|||
"termsOfServiceUrl" : "", |
|||
"version": "1.0", |
|||
"basePackages":[ |
|||
"io.sc.platform.mvc.controller" |
|||
] |
|||
} |
|||
] |
|||
*/ |
@ -0,0 +1,14 @@ |
|||
/* |
|||
* 系统属性插件配置 |
|||
* 功能: 该插件配置为框架提供在启动时自动注册系统属性功能(执行 System.setProperty()) |
|||
* 使用说明: |
|||
* key : 属性名 |
|||
* value : 属性值 |
|||
*/ |
|||
|
|||
/* 示例 */ |
|||
/* |
|||
{ |
|||
"h2.dbname.default" : "DB_PLATFORM" |
|||
} |
|||
*/ |
@ -0,0 +1,23 @@ |
|||
irbs.riskExposure.jpa.support.RiskExposureProcessStatus.TO_BE_SUBMITTED=To be submited |
|||
irbs.riskExposure.jpa.support.RiskExposureProcessStatus.RETURNED=Returned |
|||
irbs.riskExposure.jpa.support.RiskExposureProcessStatus.TO_BE_CHECKED=To be checked |
|||
irbs.riskExposure.jpa.support.RiskExposureProcessStatus.COMPLETED_PASS=Completed pass |
|||
irbs.riskExposure.jpa.support.RiskExposureProcessStatus.COMPLETED_REJECT=Completed reject |
|||
|
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0100=Company risk exposure |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0110=General company risk exposure |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0120=Risk exposure of small and medium-sized enterprises |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0130=Professional loan risk exposure |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0131=Project financing risk exposure |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0132=Exposure to risks in commodity financing |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0133=Risk exposure in item financing |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0134=Real estate risk exposure that generates income |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0200=Financial institution risk exposure |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0210=Risk exposure of banking financial institutions |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0220=Risk exposure of non bank financial institutions |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0300=Equity risk exposure |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0400=Sovereign risk exposure |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0500=Other risk exposures |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0510=Asset securitization risk exposure |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0520=Accounts receivable risk exposure of qualified purchasing companies |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0600=Retail risk exposure |
@ -0,0 +1,23 @@ |
|||
irbs.riskExposure.jpa.support.RiskExposureProcessStatus.TO_BE_SUBMITTED=\u5F85\u63D0\u4EA4 |
|||
irbs.riskExposure.jpa.support.RiskExposureProcessStatus.RETURNED=\u9000\u56DE |
|||
irbs.riskExposure.jpa.support.RiskExposureProcessStatus.TO_BE_CHECKED=\u5BA1\u6279\u4E2D |
|||
irbs.riskExposure.jpa.support.RiskExposureProcessStatus.COMPLETED_PASS=\u901A\u8FC7 |
|||
irbs.riskExposure.jpa.support.RiskExposureProcessStatus.COMPLETED_REJECT=\u5426\u51B3 |
|||
|
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0100=\u516C\u53F8\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0110=\u4E00\u822C\u516C\u53F8\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0120=\u4E2D\u5C0F\u4F01\u4E1A\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0130=\u4E13\u4E1A\u8D37\u6B3E\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0131=\u9879\u76EE\u878D\u8D44\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0132=\u5546\u54C1\u878D\u8D44\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0133=\u7269\u54C1\u878D\u8D44\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0134=\u4EA7\u751F\u6536\u5165\u7684\u623F\u5730\u4EA7\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0200=\u91D1\u878D\u673A\u6784\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0210=\u94F6\u884C\u7C7B\u91D1\u878D\u673A\u6784\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0220=\u975E\u94F6\u884C\u7C7B\u91D1\u878D\u673A\u6784\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0300=\u80A1\u6743\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0400=\u4E3B\u6743\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0500=\u5176\u4ED6\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0510=\u8D44\u4EA7\u8BC1\u5238\u5316\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0520=\u5408\u683C\u8D2D\u5165\u516C\u53F8\u5E94\u6536\u8D26\u6B3E\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0600=\u96F6\u552E\u98CE\u9669\u66B4\u9732 |
@ -0,0 +1,23 @@ |
|||
irbs.riskExposure.jpa.support.RiskExposureProcessStatus.TO_BE_SUBMITTED=\u5F85\u63D0\u4EA4 |
|||
irbs.riskExposure.jpa.support.RiskExposureProcessStatus.RETURNED=\u9000\u56DE |
|||
irbs.riskExposure.jpa.support.RiskExposureProcessStatus.TO_BE_CHECKED=\u5BA1\u6279\u4E2D |
|||
irbs.riskExposure.jpa.support.RiskExposureProcessStatus.COMPLETED_PASS=\u901A\u8FC7 |
|||
irbs.riskExposure.jpa.support.RiskExposureProcessStatus.COMPLETED_REJECT=\u5426\u51B3 |
|||
|
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0100=\u516C\u53F8\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0110=\u4E00\u822C\u516C\u53F8\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0120=\u4E2D\u5C0F\u4F01\u4E1A\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0130=\u4E13\u4E1A\u8D37\u6B3E\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0131=\u9879\u76EE\u878D\u8D44\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0132=\u5546\u54C1\u878D\u8D44\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0133=\u7269\u54C1\u878D\u8D44\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0134=\u4EA7\u751F\u6536\u5165\u7684\u623F\u5730\u4EA7\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0200=\u91D1\u878D\u673A\u6784\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0210=\u94F6\u884C\u7C7B\u91D1\u878D\u673A\u6784\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0220=\u975E\u94F6\u884C\u7C7B\u91D1\u878D\u673A\u6784\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0300=\u80A1\u6743\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0400=\u4E3B\u6743\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0500=\u5176\u4ED6\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0510=\u8D44\u4EA7\u8BC1\u5238\u5316\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0520=\u5408\u683C\u8D2D\u5165\u516C\u53F8\u5E94\u6536\u8D26\u6B3E\u98CE\u9669\u66B4\u9732 |
|||
irbs.riskExposure.jpa.support.RiskExposureType.RE_0600=\u96F6\u552E\u98CE\u9669\u66B4\u9732 |
@ -0,0 +1,47 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<databaseChangeLog |
|||
xmlns="http://www.liquibase.org/xml/ns/dbchangelog" |
|||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
|||
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" |
|||
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd |
|||
http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd"> |
|||
|
|||
<changeSet id="20240327_RISKEXPOSURE_DDL" author="platform"> |
|||
<!-- 风险暴露分类表 --> |
|||
<createTable tableName="P_IRS_RISK_EXPOSURE" remarks="风险暴露分类表"> |
|||
<column name="ID_" type="java.sql.Types.VARCHAR(36)" remarks="主键ID"> |
|||
<constraints primaryKey="true"/> |
|||
</column> |
|||
<column name="BUSINESS_NO" type="java.sql.Types.VARCHAR(40)" remarks="业务编号"/> |
|||
<column name="PRODUCT_TYPE" type="java.sql.Types.VARCHAR(100)" remarks="产品类型"/> |
|||
<column name="CUST_NO" type="java.sql.Types.VARCHAR(40)" remarks="客户编号"/> |
|||
<column name="CUST_NAME" type="java.sql.Types.VARCHAR(200)" remarks="客户名称"/> |
|||
<column name="START_WAY" type="java.sql.Types.VARCHAR(100)" remarks="发起方式"/> |
|||
<column name="IS_NEED_OPERATE" type="java.sql.Types.VARCHAR(10)" remarks="是否需人工分类"/> |
|||
<column name="ADJUST_END_DATE" type="DATETIME" remarks="调整截止日期"/> |
|||
<column name="IS_ADJUSTED" type="java.sql.Types.VARCHAR(10)" remarks="是否已调整"/> |
|||
<column name="ADJUST_REASON" type="java.sql.Types.VARCHAR(1000)" remarks="调整原因"/> |
|||
<column name="ADJUST_INVALID_DATE" type="DATETIME" remarks="调整的失效日期"/> |
|||
<column name="FINISH_DATE" type="DATETIME" remarks="完成时间"/> |
|||
<column name="SYS_RESULT" type="java.sql.Types.VARCHAR(100)" remarks="系统分类结果"/> |
|||
<column name="MAN_RESULT" type="java.sql.Types.VARCHAR(100)" remarks="人工分类结果"/> |
|||
<column name="FINAL_RESULT" type="java.sql.Types.VARCHAR(100)" remarks="最终分类结果"/> |
|||
<column name="IS_VALID" type="java.sql.Types.VARCHAR(20)" remarks="是否生效"/> |
|||
<column name="PROCESS_INSTANCE_ID" type="java.sql.Types.VARCHAR(100)" remarks="流程实例ID"/> |
|||
<column name="PROCESS_STATUS" type="java.sql.Types.VARCHAR(100)" remarks="流程状态"/> |
|||
<column name="DATA_STATUS" type="java.sql.Types.VARCHAR(100)" remarks="数据状态"/> |
|||
<column name="MANAGER_NAME" type="java.sql.Types.VARCHAR(100)" remarks="客户经理名称"/> |
|||
<column name="CURRENT_ASSIGNEE" type="java.sql.Types.VARCHAR(100)" remarks="当前处理人"/> |
|||
<column name="MGER_ORG_NM" type="java.sql.Types.VARCHAR(100)" remarks="所属机构"/> |
|||
<column name="CUST_TYPE" type="java.sql.Types.VARCHAR(1)" remarks="客户类型(1.一般公司 2.金融债券机构)"/> |
|||
<column name="DATA_COME_FROM_" type="java.sql.Types.NVARCHAR(10)" remarks="数据来源(INPUT:手工录入,IMPORT:系统自动导入)" defaultValue="INPUT"></column> |
|||
<column name="CREATOR_" type="java.sql.Types.NVARCHAR(255)" remarks="创建人"></column> |
|||
<column name="CREATE_DATE_" type="DATETIME" remarks="创建日期"></column> |
|||
<column name="LAST_MODIFIER_" type="java.sql.Types.NVARCHAR(255)" remarks="最后修改人"></column> |
|||
<column name="LAST_MODIFYDATE_" type="DATETIME" remarks="最后修改日期"></column> |
|||
<column name="CORP_CODE_" type="java.sql.Types.NVARCHAR(255)" remarks="所属法人代码" defaultValue="_PRIMARY_"> |
|||
<constraints nullable="false"/> |
|||
</column> |
|||
</createTable> |
|||
</changeSet> |
|||
</databaseChangeLog> |
@ -0,0 +1,34 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<databaseChangeLog |
|||
xmlns="http://www.liquibase.org/xml/ns/dbchangelog" |
|||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
|||
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" |
|||
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd |
|||
http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd"> |
|||
|
|||
<changeSet id="20240417_UPDATE_RISKEXPOSURE_DDL" author="platform"> |
|||
<!-- 风险暴露分类表 --> |
|||
<createTable tableName="P_IRS_RISK_EXPOSURE_OPERATION" remarks="风险暴露分类流程处理表"> |
|||
<column name="ID_" type="java.sql.Types.VARCHAR(36)" remarks="主键ID"> |
|||
<constraints primaryKey="true"/> |
|||
</column> |
|||
<column name="RISK_EXPOSURE_ID" type="java.sql.Types.VARCHAR(36)" remarks="人工风险暴露分类业务ID"/> |
|||
<column name="RISK_EXPOSURE_ADJ_ID" type="java.sql.Types.VARCHAR(36)" remarks="人工风险暴露分类调整业务ID"/> |
|||
<column name="RISK_EXPOSURE_TYPE" type="java.sql.Types.VARCHAR(20)" remarks="风险暴露分类类型"/> |
|||
<column name="FILE_COUNT" type="java.sql.Types.Integer" remarks="附件条数"/> |
|||
<column name="REMARKS" type="java.sql.Types.VARCHAR(2000)" remarks="意见说明"/> |
|||
<column name="ROLE_NAME" type="java.sql.Types.VARCHAR(30)" remarks="角色"/> |
|||
<column name="FILE_NAME" type="java.sql.Types.VARCHAR(2000)" remarks="文件名称"/> |
|||
<column name="CREATOR_ORG" type="java.sql.Types.VARCHAR(255)" remarks="创建人机构"/> |
|||
<column name="OPERATION" type="java.sql.Types.VARCHAR(10)" remarks="OPERATION"/> |
|||
<column name="DATA_COME_FROM_" type="java.sql.Types.NVARCHAR(10)" remarks="数据来源(INPUT:手工录入,IMPORT:系统自动导入)" defaultValue="INPUT"></column> |
|||
<column name="CREATOR_" type="java.sql.Types.NVARCHAR(255)" remarks="创建人"></column> |
|||
<column name="CREATE_DATE_" type="DATETIME" remarks="创建日期"></column> |
|||
<column name="LAST_MODIFIER_" type="java.sql.Types.NVARCHAR(255)" remarks="最后修改人"></column> |
|||
<column name="LAST_MODIFYDATE_" type="DATETIME" remarks="最后修改日期"></column> |
|||
<column name="CORP_CODE_" type="java.sql.Types.NVARCHAR(255)" remarks="所属法人代码" defaultValue="_PRIMARY_"> |
|||
<constraints nullable="false"/> |
|||
</column> |
|||
</createTable> |
|||
</changeSet> |
|||
</databaseChangeLog> |
@ -1,5 +1,7 @@ |
|||
include 'app.irbs' |
|||
include 'irbs.cust.rating' |
|||
include 'irbs.defaultManager' |
|||
include 'irbs.deptRating' |
|||
include 'irbs.frontend' |
|||
include 'irbs.reports' |
|||
include 'irbs.defaultManager' |
|||
include 'irbs.riskExposure' |
|||
|
Loading…
Reference in new issue