移除liquidbase 需求20260817
This commit is contained in:
@@ -65,6 +65,14 @@ public class CorporateLoanPricingCreateDTO implements Serializable {
|
||||
@Schema(description = "贸易和建筑业企业标识", example = "0")
|
||||
private String isTradeBuildEnt;
|
||||
|
||||
@Schema(description = "抵押物性质", example = "普通住宅、土地、厂房", allowableValues = {"普通住宅、土地、厂房", "商业性质不动产", "排污权", "其他不动产"})
|
||||
@Pattern(regexp = "^(普通住宅、土地、厂房|商业性质不动产|排污权|其他不动产)$", message = "抵押物性质必须是:普通住宅、土地、厂房、商业性质不动产、排污权、其他不动产之一")
|
||||
private String collateralNature;
|
||||
|
||||
@Schema(description = "是否属于九地", example = "是", allowableValues = {"是", "否"})
|
||||
@Pattern(regexp = "^(是|否)$", message = "是否属于九地必须是:是、否之一")
|
||||
private String isNineArea;
|
||||
|
||||
@Schema(description = "抵质押类型", example = "一类", allowableValues = {"一类", "二类", "三类", "排污权抵押", "其他不动产抵押", "存单质押", "股权质押", "其他质押"})
|
||||
@Pattern(regexp = "^(一类|二类|三类|排污权抵押|其他不动产抵押|存单质押|股权质押|其他质押)$", message = "抵质押类型必须是:一类、二类、三类、排污权抵押、其他不动产抵押、存单质押、股权质押、其他质押之一")
|
||||
private String collType;
|
||||
|
||||
@@ -60,6 +60,14 @@ public class PersonalLoanPricingCreateDTO implements Serializable {
|
||||
@Schema(description = "循环功能", example = "0")
|
||||
private String loanLoop;
|
||||
|
||||
@Schema(description = "抵押物性质", example = "普通住宅、土地、厂房", allowableValues = {"普通住宅、土地、厂房", "商业性质不动产", "其他抵押财产"})
|
||||
@Pattern(regexp = "^(普通住宅、土地、厂房|商业性质不动产|其他抵押财产)$", message = "抵押物性质必须是:普通住宅、土地、厂房、商业性质不动产、其他抵押财产之一")
|
||||
private String collateralNature;
|
||||
|
||||
@Schema(description = "是否属于九地", example = "是", allowableValues = {"是", "否"})
|
||||
@Pattern(regexp = "^(是|否)$", message = "是否属于九地必须是:是、否之一")
|
||||
private String isNineArea;
|
||||
|
||||
@Schema(description = "抵质押类型", example = "一类", allowableValues = {"一类", "二类", "三类", "四类", "存单质押", "其他质押"})
|
||||
private String collType;
|
||||
|
||||
|
||||
@@ -125,6 +125,12 @@ public class LoanPricingWorkflow implements Serializable
|
||||
/** 抵质押类型: 一类/二类/三类/四类 */
|
||||
private String collType;
|
||||
|
||||
/** 抵押物性质 */
|
||||
private String collateralNature;
|
||||
|
||||
/** 是否属于九地: 是/否 */
|
||||
private String isNineArea;
|
||||
|
||||
/** 抵质押物是否三方所有: true/false */
|
||||
private String collThirdParty;
|
||||
|
||||
|
||||
@@ -246,6 +246,8 @@ public class LoanPricingWorkflowServiceImpl implements ILoanPricingWorkflowServi
|
||||
.set(LoanPricingWorkflow::getLoanRateHistory, editingWorkflow.getLoanRateHistory())
|
||||
.set(LoanPricingWorkflow::getCouponRate, editingWorkflow.getCouponRate())
|
||||
.set(LoanPricingWorkflow::getLoanTerm, editingWorkflow.getLoanTerm())
|
||||
.set(LoanPricingWorkflow::getCollateralNature, editingWorkflow.getCollateralNature())
|
||||
.set(LoanPricingWorkflow::getIsNineArea, editingWorkflow.getIsNineArea())
|
||||
.set(LoanPricingWorkflow::getCollType, editingWorkflow.getCollType())
|
||||
.set(LoanPricingWorkflow::getCollThirdParty, editingWorkflow.getCollThirdParty())
|
||||
.set(LoanPricingWorkflow::getBizProof, editingWorkflow.getBizProof())
|
||||
|
||||
@@ -32,6 +32,8 @@ public class LoanPricingConverter {
|
||||
entity.setLoanRateHistory(dto.getLoanRateHistory());
|
||||
entity.setCouponRate(dto.getCouponRate());
|
||||
entity.setLoanTerm(dto.getLoanTerm());
|
||||
entity.setCollateralNature(dto.getCollateralNature());
|
||||
entity.setIsNineArea(dto.getIsNineArea());
|
||||
entity.setCollType(dto.getCollType());
|
||||
entity.setCollThirdParty(dto.getCollThirdParty());
|
||||
// 映射个人特有字段
|
||||
@@ -61,6 +63,8 @@ public class LoanPricingConverter {
|
||||
entity.setCouponRate(dto.getCouponRate());
|
||||
entity.setResCover(dto.getResCover());
|
||||
entity.setRepayMethod(dto.getRepayMethod());
|
||||
entity.setCollateralNature(dto.getCollateralNature());
|
||||
entity.setIsNineArea(dto.getIsNineArea());
|
||||
entity.setCollType(dto.getCollType());
|
||||
entity.setCollThirdParty(dto.getCollThirdParty());
|
||||
entity.setIsGreenLoan(dto.getIsGreenLoan());
|
||||
|
||||
@@ -23,5 +23,7 @@ class ModelRetailOutputFieldsTest
|
||||
assertTrue(fieldNames.contains("finalCalculateRate"), "缺少字段 finalCalculateRate");
|
||||
assertTrue(fieldNames.contains("referenceRate"), "缺少字段 referenceRate");
|
||||
assertTrue(fieldNames.contains("greyBlackCust"), "缺少字段 greyBlackCust");
|
||||
assertTrue(fieldNames.contains("blackCust"), "缺少字段 blackCust");
|
||||
assertTrue(fieldNames.contains("branchBp"), "缺少字段 branchBp");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,16 +44,15 @@ class LoanPricingModelServicePersonalParamsTest {
|
||||
private LoanPricingModelService loanPricingModelService;
|
||||
|
||||
@Test
|
||||
void shouldRemoveLoanPurposeAndKeepLoanTermInPersonalCreateDto() throws NoSuchFieldException {
|
||||
void shouldRemoveLoanPurposeAndKeepPersonalModelFieldsInCreateDto() throws NoSuchFieldException {
|
||||
assertThrows(NoSuchFieldException.class,
|
||||
() -> PersonalLoanPricingCreateDTO.class.getDeclaredField("loanPurpose"));
|
||||
assertThrows(NoSuchFieldException.class,
|
||||
() -> PersonalLoanPricingCreateDTO.class.getDeclaredField("bizProof"));
|
||||
assertNotNull(PersonalLoanPricingCreateDTO.class.getDeclaredField("bizProof"));
|
||||
assertNotNull(PersonalLoanPricingCreateDTO.class.getDeclaredField("loanTerm"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldNotMapLoanPurposeAndBizProofFromPersonalDto() {
|
||||
void shouldMapBizProofButNotLoanPurposeFromPersonalDto() {
|
||||
PersonalLoanPricingCreateDTO dto = new PersonalLoanPricingCreateDTO();
|
||||
dto.setCustIsn("CUST001");
|
||||
dto.setCustName("张三");
|
||||
@@ -61,11 +60,12 @@ class LoanPricingModelServicePersonalParamsTest {
|
||||
dto.setApplyAmt("100000");
|
||||
dto.setBusinessType("新增");
|
||||
dto.setLoanTerm("3");
|
||||
dto.setBizProof("1");
|
||||
|
||||
LoanPricingWorkflow workflow = LoanPricingConverter.toEntity(dto);
|
||||
|
||||
assertNull(workflow.getLoanPurpose());
|
||||
assertNull(workflow.getBizProof());
|
||||
assertEquals("1", workflow.getBizProof());
|
||||
assertEquals("3", workflow.getLoanTerm());
|
||||
}
|
||||
|
||||
@@ -90,6 +90,7 @@ class LoanPricingModelServicePersonalParamsTest {
|
||||
workflow.setGuarType("信用");
|
||||
workflow.setApplyAmt("100000");
|
||||
workflow.setLoanTerm("3");
|
||||
workflow.setBizProof("true");
|
||||
workflow.setLoanLoop("false");
|
||||
workflow.setCollThirdParty("true");
|
||||
workflow.setCollType("一类");
|
||||
@@ -114,6 +115,7 @@ class LoanPricingModelServicePersonalParamsTest {
|
||||
&& Objects.equals("信用", dto.getGuarType())
|
||||
&& Objects.equals("100000", dto.getApplyAmt())
|
||||
&& Objects.equals("3", dto.getLoanTerm())
|
||||
&& Objects.equals("1", dto.getBizProof())
|
||||
&& Objects.equals("0", dto.getLoanLoop())
|
||||
&& Objects.equals("1", dto.getCollThirdParty())
|
||||
&& Objects.equals("一类", dto.getCollType())));
|
||||
|
||||
@@ -29,6 +29,7 @@ class LoanPricingModelServiceTest
|
||||
assertEquals("张三", context.modelService.personalRequest.getCustName());
|
||||
assertEquals("110101199001011234", context.modelService.personalRequest.getIdNum());
|
||||
assertEquals("2.15", context.modelService.personalRequest.getCouponRate());
|
||||
assertEquals("1", context.modelService.personalRequest.getBizProof());
|
||||
assertEquals(1, context.modelService.personalCalls.get());
|
||||
assertEquals(0, context.modelService.corporateCalls.get());
|
||||
assertEquals(1, context.retailInsertCount.get());
|
||||
@@ -105,6 +106,7 @@ class LoanPricingModelServiceTest
|
||||
workflow.setCustName("张三");
|
||||
workflow.setIdNum("110101199001011234");
|
||||
workflow.setCouponRate("2.15");
|
||||
workflow.setBizProof("true");
|
||||
return workflow;
|
||||
}
|
||||
|
||||
|
||||
@@ -370,7 +370,7 @@ class LoanPricingWorkflowServiceImplTest
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldCreatePersonalWorkflowWithCouponRateAndWithoutRemovedFields()
|
||||
void shouldCreatePersonalWorkflowWithCouponRateAndBizProof()
|
||||
{
|
||||
PersonalLoanPricingCreateDTO dto = new PersonalLoanPricingCreateDTO();
|
||||
dto.setCustIsn("CUST001");
|
||||
@@ -380,6 +380,7 @@ class LoanPricingWorkflowServiceImplTest
|
||||
dto.setLoanTerm("3");
|
||||
dto.setCollType("存单质押");
|
||||
dto.setCouponRate("2.15");
|
||||
dto.setBizProof("1");
|
||||
|
||||
loanPricingWorkflowService.createPersonalLoanPricing(dto);
|
||||
|
||||
@@ -387,7 +388,7 @@ class LoanPricingWorkflowServiceImplTest
|
||||
Objects.equals("个人", entity.getCustType())
|
||||
&& Objects.equals("2.15", entity.getCouponRate())
|
||||
&& Objects.isNull(entity.getLoanPurpose())
|
||||
&& Objects.isNull(entity.getBizProof())));
|
||||
&& Objects.equals("1", entity.getBizProof())));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -412,6 +413,48 @@ class LoanPricingWorkflowServiceImplTest
|
||||
&& Objects.equals("2.35", entity.getCouponRate())));
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldCreatePersonalWorkflowWithMortgageSourceFields()
|
||||
{
|
||||
PersonalLoanPricingCreateDTO dto = new PersonalLoanPricingCreateDTO();
|
||||
dto.setCustIsn("CUST001");
|
||||
dto.setGuarType("抵押");
|
||||
dto.setApplyAmt("100000");
|
||||
dto.setBusinessType("新增");
|
||||
dto.setLoanTerm("3");
|
||||
dto.setCollateralNature("普通住宅、土地、厂房");
|
||||
dto.setIsNineArea("是");
|
||||
dto.setCollType("一类");
|
||||
|
||||
loanPricingWorkflowService.createPersonalLoanPricing(dto);
|
||||
|
||||
verify(loanPricingWorkflowMapper).insert(argThat((LoanPricingWorkflow entity) ->
|
||||
Objects.equals("普通住宅、土地、厂房", entity.getCollateralNature())
|
||||
&& Objects.equals("是", entity.getIsNineArea())
|
||||
&& Objects.equals("一类", entity.getCollType())));
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldCreateCorporateWorkflowWithMortgageSourceFields()
|
||||
{
|
||||
CorporateLoanPricingCreateDTO dto = new CorporateLoanPricingCreateDTO();
|
||||
dto.setCustIsn("CORP001");
|
||||
dto.setGuarType("抵押");
|
||||
dto.setApplyAmt("1000000");
|
||||
dto.setBusinessType("新增");
|
||||
dto.setLoanTerm("5");
|
||||
dto.setCollateralNature("商业性质不动产");
|
||||
dto.setIsNineArea("否");
|
||||
dto.setCollType("三类");
|
||||
|
||||
loanPricingWorkflowService.createCorporateLoanPricing(dto);
|
||||
|
||||
verify(loanPricingWorkflowMapper).insert(argThat((LoanPricingWorkflow entity) ->
|
||||
Objects.equals("商业性质不动产", entity.getCollateralNature())
|
||||
&& Objects.equals("否", entity.getIsNineArea())
|
||||
&& Objects.equals("三类", entity.getCollType())));
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldReturnEditableWorkflowWithPlainSensitiveFieldsForCreator()
|
||||
{
|
||||
@@ -451,11 +494,15 @@ class LoanPricingWorkflowServiceImplTest
|
||||
dto.setCustName("张三");
|
||||
dto.setIdType("身份证");
|
||||
dto.setIdNum("110101199001019999");
|
||||
dto.setGuarType("信用");
|
||||
dto.setGuarType("抵押");
|
||||
dto.setApplyAmt("200000");
|
||||
dto.setBusinessType("新增");
|
||||
dto.setLoanTerm("3");
|
||||
dto.setLoanLoop("1");
|
||||
dto.setBizProof("1");
|
||||
dto.setCollateralNature("普通住宅、土地、厂房");
|
||||
dto.setIsNineArea("是");
|
||||
dto.setCollType("一类");
|
||||
|
||||
loanPricingWorkflowService.updatePersonalLoanPricing("P20260525001", dto);
|
||||
|
||||
@@ -465,8 +512,14 @@ class LoanPricingWorkflowServiceImplTest
|
||||
assertTrue(sqlSet.contains("apply_amt"));
|
||||
assertTrue(sqlSet.contains("cust_name"));
|
||||
assertTrue(sqlSet.contains("id_num"));
|
||||
assertTrue(sqlSet.contains("biz_proof"));
|
||||
assertTrue(sqlSet.contains("collateral_nature"));
|
||||
assertTrue(sqlSet.contains("is_nine_area"));
|
||||
assertTrue(updateWrapperCaptor.getValue().getParamNameValuePairs().containsValue("张三"));
|
||||
assertTrue(updateWrapperCaptor.getValue().getParamNameValuePairs().containsValue("110101199001019999"));
|
||||
assertTrue(updateWrapperCaptor.getValue().getParamNameValuePairs().containsValue("普通住宅、土地、厂房"));
|
||||
assertTrue(updateWrapperCaptor.getValue().getParamNameValuePairs().containsValue("是"));
|
||||
assertTrue(updateWrapperCaptor.getValue().getParamNameValuePairs().containsValue("1"));
|
||||
verify(sensitiveFieldCryptoService, never()).encrypt(any());
|
||||
verify(loanPricingModelService).reinvokeModelAndOverwrite(101L);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user