From a4e40de5483f8d8ff51a1f5724fd7bb416c5b2ee Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Wed, 9 Aug 2023 18:12:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/controller/ArithmeticController.java | 51 ++- .../api/loanfinotherPolicy/OtherPolicyVo.java | 7 + .../api/loanfinpolicy/LoanFinPolicyDto.java | 5 + .../api/loanfinpolicy/LoanFinPolicyVo.java | 5 + .../api/loanfinpolicy/PolicyVo.java | 16 + .../api/loansolutions/LoanSolutions.java | 6 +- .../api/loansolutions/SolutionDetailsDto.java | 163 +++++++ .../LoanSolutionsDetail.java | 2 + .../loantemplate/LoanTemplateDetailsVo.java | 4 +- .../api/loantemplate/TemplateApplyVo.java | 50 +- .../biz/calculate/CalculateService.java | 45 ++ .../LoanFinOtherPolicyMapper.xml | 2 +- .../biz/loanfinpolicy/LoanFinPolicyMapper.xml | 14 +- .../loansolutions/LoanSolutionsService.java | 430 ++++-------------- .../biz/loantemplate/LoanTemplateMapper.xml | 2 +- .../biz/loantemplate/LoanTemplateService.java | 18 +- .../api/risk/loantemplate/TemplateFeign.java | 31 ++ .../loantemplate/TemplateFeignFallback.java | 12 + .../api/risk/loantemplate/TemplateVo.java | 14 + 19 files changed, 502 insertions(+), 375 deletions(-) create mode 100644 anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/SolutionDetailsDto.java create mode 100644 anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/calculate/CalculateService.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loantemplate/TemplateFeign.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loantemplate/TemplateFeignFallback.java create mode 100644 anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loantemplate/TemplateVo.java diff --git a/anrui-portal/anrui-portal-biz/src/test/java/com/yxt/anrui/portal/test/controller/ArithmeticController.java b/anrui-portal/anrui-portal-biz/src/test/java/com/yxt/anrui/portal/test/controller/ArithmeticController.java index 34b20feb41..e86e2fffa8 100644 --- a/anrui-portal/anrui-portal-biz/src/test/java/com/yxt/anrui/portal/test/controller/ArithmeticController.java +++ b/anrui-portal/anrui-portal-biz/src/test/java/com/yxt/anrui/portal/test/controller/ArithmeticController.java @@ -19,18 +19,47 @@ import java.util.Map; public class ArithmeticController { public static void main(String[] args) { - System.out.println("======get5"); - get5(30000, 0.02, 3); - System.out.println("======get4"); - get4(30000, 0.02, 3); - System.out.println("======get3"); - get3(30000, 0.02, 3); - System.out.println("=======get2"); - get2(30000, 0.02, 3); - System.out.println("=======get1"); +// System.out.println("======get5"); +// get5(30000, 0.02, 3); +// System.out.println("======get4"); +// get4(30000, 0.02, 3); +// System.out.println("======get3"); +// get3(30000, 0.02, 3); +// System.out.println("=======get2"); +// get2(30000, 0.02, 3); +// System.out.println("=======get1"); // get1(30000, 0.02, 3); - System.out.println("========get"); - get(30000, 0.02, 3); +// System.out.println("========get"); +// get(30000, 0.02, 3); + + calculatePMT(0.06, 6, 95000); + } + + /** + * 计算月还 + * + * @param rate 年利率 + * @param nper 总期数 + * @param pv 贷款金额 + * @return + */ + public static double calculatePMT(double rate, double nper, double pv) { + /* double v = (1 + (rate / 12)); + double t = (-(nper / 12) * 12); + double result = (pv * (rate / 12)) / (1 - Math.pow(v, t)); + System.out.println("result==========="+result); + BigDecimal bigDecimal = new BigDecimal(result); + bigDecimal = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP); + System.out.println("bigDecimal================"+bigDecimal); + return result;*/ + double v = (1 + (rate / 12)); + double t = (-(nper / nper) * nper); + double result = (pv * (rate / 12)) / (1 - Math.pow(v, t)); + System.out.println("result==========="+result); + BigDecimal bigDecimal = new BigDecimal(result); + bigDecimal = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP); + System.out.println("bigDecimal================"+bigDecimal); + return result; } /** diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinotherPolicy/OtherPolicyVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinotherPolicy/OtherPolicyVo.java index b574c2b185..9125634f87 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinotherPolicy/OtherPolicyVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinotherPolicy/OtherPolicyVo.java @@ -1,6 +1,7 @@ package com.yxt.anrui.riskcenter.api.loanfinotherPolicy; import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** @@ -15,4 +16,10 @@ public class OtherPolicyVo implements Vo { private String sid; private String name; + @ApiModelProperty("年利率") + private String yearRatio; + @ApiModelProperty("期数") + private String period; + @ApiModelProperty("期数key") + private String periodKey; } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicy/LoanFinPolicyDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicy/LoanFinPolicyDto.java index d1c248145d..c9594c1fce 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicy/LoanFinPolicyDto.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicy/LoanFinPolicyDto.java @@ -92,5 +92,10 @@ public class LoanFinPolicyDto implements Dto { @ApiModelProperty("备注") private String remarks; + @ApiModelProperty("贴息放款类型") + private String discountUseType; + @ApiModelProperty("贴息放款类型key") + private String discountUseTypeKey; + } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicy/LoanFinPolicyVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicy/LoanFinPolicyVo.java index 9f12b475dd..2a5934ca1e 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicy/LoanFinPolicyVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicy/LoanFinPolicyVo.java @@ -92,4 +92,9 @@ public class LoanFinPolicyVo implements Vo { private String remarks; private String orgPath; private String userSid; + + @ApiModelProperty("贴息放款类型") + private String discountUseType; + @ApiModelProperty("贴息放款类型key") + private String discountUseTypeKey; } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicy/PolicyVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicy/PolicyVo.java index 62db8faf2b..c168f297cd 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicy/PolicyVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicy/PolicyVo.java @@ -17,4 +17,20 @@ public class PolicyVo implements Vo { private String name; @ApiModelProperty("产品政策sid") private String sid; + + @ApiModelProperty("首付比例") + private String downPayRatio; + @ApiModelProperty("首付比例key") + private String downPayRatioKey; + @ApiModelProperty("期数") + private String period; + @ApiModelProperty("期数key") + private String periodKey; + @ApiModelProperty("保证金比例") + private String bondRatio; + @ApiModelProperty("保证金比例key") + private String bondRatioKey; + @ApiModelProperty("标准年利率") + private String yearRatio; + } diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/LoanSolutions.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/LoanSolutions.java index 8b986bbd6a..57657f220a 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/LoanSolutions.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/LoanSolutions.java @@ -69,6 +69,8 @@ public class LoanSolutions extends BaseEntity { private BigDecimal factoryDiscount; @ApiModelProperty("厂家贴息用途") private String factoryDiscountUse; + @ApiModelProperty("厂家贴息用途") + private String factoryDiscountUseKey; @ApiModelProperty("政策年利率") private String policyYearRatio; @ApiModelProperty("贷款月还") @@ -88,8 +90,10 @@ public class LoanSolutions extends BaseEntity { @ApiModelProperty("是否勾选其它融") private int otherPolicyState; - @ApiModelProperty("是否是销售订单关联的") + @ApiModelProperty("是否是销售订单关联的:0是,1为定制金融方案") private int saleOrderState; + @ApiModelProperty("贴息抵车款") + private BigDecimal discountCar; diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/SolutionDetailsDto.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/SolutionDetailsDto.java new file mode 100644 index 0000000000..6b6b8bcc1b --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/SolutionDetailsDto.java @@ -0,0 +1,163 @@ +package com.yxt.anrui.riskcenter.api.loansolutions; + +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Author dimengzhe + * @Date 2023/3/22 15:02 + * @Description + */ +@Data +public class SolutionDetailsDto implements Dto { + private static final long serialVersionUID = 3094344495849727373L; + + /**************************金融方案主表****************************/ + @ApiModelProperty("关联sid") + private String busSid; + @ApiModelProperty("是否打包:1是0否") + private String isPack; + @ApiModelProperty("产品政策名称") + private String policyName; + @ApiModelProperty("产品政策sid") + private String policySid; + @ApiModelProperty("主车发票价") + private String mainVehicleAmount; + @ApiModelProperty("融资票据") + private String accessoriesAmount; + @ApiModelProperty("是否有融资票据") + private boolean accessoriesAmountCb; + @ApiModelProperty("挂车金额") + private String trailerAmount; + @ApiModelProperty("是否有挂车") + private boolean trailerAmountCb; + @ApiModelProperty("保险金额") + private String premium; + @ApiModelProperty("是否有保险") + private boolean premiumCb; + @ApiModelProperty("购置税") + private String purchaseTax; + @ApiModelProperty("是否有购置税") + private boolean purchaseTaxCb; + @ApiModelProperty("融资项目总额") + private String loanTotal; + @ApiModelProperty("首付款比例") + private String downPayRatio; + @ApiModelProperty("首付金额") + @NotBlank(message = "首付金额不能为空") + private String downPayAmount; + @ApiModelProperty("贷款金额") + private String loanAmount; + @ApiModelProperty("贷款期数") + @NotBlank(message = "产品期数不能为空") + private String loanPeriod; + @ApiModelProperty("贷款保证金比例") + private String bondRatio; + @ApiModelProperty("贷款保证金金额") + @NotBlank(message = "贷款保证金不能为空") + private String bondAmount; + @ApiModelProperty("厂家贴息") + @NotBlank(message = "厂家贴息不能为空") + private String factoryDiscount; + @ApiModelProperty("厂家贴息用途") + private String factoryDiscountUse; + @ApiModelProperty("厂家贴息用途") + private String factoryDiscountUseKey; + @ApiModelProperty("年利率") + private String policyYearRatio; + @ApiModelProperty("月还金额") + @NotBlank(message = "月还金额不能为空") + private String loanPayMoney; + @ApiModelProperty("利息总额") + private String loanInterest; + @ApiModelProperty("是否勾选其它融") + private boolean otherPolicyState; + + @ApiModelProperty("贴息抵车款") + private String discountCar; + + /*************************其他融和方案汇总*********************************/ + @ApiModelProperty("其它融名称") + private String otherPolicyName; + @ApiModelProperty("其它融贷款金额") + private String otherPolicyAmount; + @ApiModelProperty("其它融期数") + private String otherPolicyPeriod; + @ApiModelProperty("其它融月还") + private String otherPolicyMonthlyRepay; + @ApiModelProperty("其它融利息总额") + private String otherPolicyInterest; + @ApiModelProperty("其它融年利率") + private String otherPolicyYearRatio; + + @ApiModelProperty("'融资首付") + private String loanDownPay; + @ApiModelProperty("实际首付比例") + private String downPayAmountsRatio; + @ApiModelProperty("总贷款金额") + private String loanAmountTotal; + @ApiModelProperty("期数") + private String period; + @ApiModelProperty("月还金额") + private String monthlyRepay; + @ApiModelProperty("利息总额") + private String interest; + @ApiModelProperty("预计首期还款日") + private String returnTime; + + + /*********************************金融方案费用明细*****************************/ + + @ApiModelProperty("融资首付") + private String downPayAmounts; + @ApiModelProperty("贷款保证金") + private String bondAmounts; + @ApiModelProperty("保险保证金") + private String depositPremium; + @ApiModelProperty("落户保证金") + private String depositSettle; + @ApiModelProperty("服务费") + @NotBlank(message = "服务费不能为空") + private String serviceAmount; + @ApiModelProperty("代收意外险") + private String proxyAccidentPremium; + @ApiModelProperty("上牌费") + private String registerAmount; + @ApiModelProperty("运管费") + private String operationAmount; + @ApiModelProperty("补车价") + private String vehOtherPrice; + @ApiModelProperty("其它费用") + private String otherAmount; + @ApiModelProperty("其它费用说明") + private String otherAmountRemark; + @ApiModelProperty("办理方式选择") + private String dealWay; + @ApiModelProperty("办理方式选择key") + private String dealWayKey; + @ApiModelProperty("代收合计") + private String proxyTotal; + @ApiModelProperty("代收首年保险费") + private String proxyPremium; + @ApiModelProperty("代收购置费") + private String proxyPurchasetax; + @ApiModelProperty("抵顶首年保险费") + private String offsetPremium; + @ApiModelProperty("抵顶购置税") + private String offsetPurchasetax; + @ApiModelProperty("抵顶费用合计") + private String offsetTotal; + @ApiModelProperty("应收合计") + private String receivableTotal; + @ApiModelProperty("实收合计") + private String realTotal; + @ApiModelProperty("车辆总价") + private String vehTotalPrice; + @ApiModelProperty("名义留购价") + private String nominalPrice; + + +} diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutionsdetail/LoanSolutionsDetail.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutionsdetail/LoanSolutionsDetail.java index 92e67ed9df..d75e8620ad 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutionsdetail/LoanSolutionsDetail.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutionsdetail/LoanSolutionsDetail.java @@ -74,6 +74,8 @@ public class LoanSolutionsDetail extends BaseEntity { private BigDecimal vehTotalPrice; @ApiModelProperty("名义留购价") private BigDecimal nominalPrice; + @ApiModelProperty("代收合计") + private BigDecimal proxyTotal; diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateDetailsVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateDetailsVo.java index 251e48f0e9..f76b224182 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateDetailsVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateDetailsVo.java @@ -40,9 +40,11 @@ public class LoanTemplateDetailsVo implements Vo { @ApiModelProperty("更多配置名称") private String vehModelConfigMore; @ApiModelProperty("单台指导价") - private BigDecimal vehPrice; + private String vehPrice; @ApiModelProperty("合格证公告型号") private String vehNoticeModel; + @ApiModelProperty("合格证公告型号sid") + private String vehNoticeModelSid; @ApiModelProperty("是否包含上装") private boolean install; diff --git a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/TemplateApplyVo.java b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/TemplateApplyVo.java index 35ce315185..228591413e 100644 --- a/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/TemplateApplyVo.java +++ b/anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/TemplateApplyVo.java @@ -1,9 +1,57 @@ package com.yxt.anrui.riskcenter.api.loantemplate; +import com.yxt.anrui.riskcenter.api.loantemplateinstall.LoanTemplateInstallVo; +import com.yxt.anrui.riskcenter.api.loantemplatetrailer.LoanTemplateTrailerVo; +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + /** * @description: * @author: dimengzhe * @date: 2023/7/19 **/ -public class TemplateApplyVo { +@Data +public class TemplateApplyVo implements Vo { + private static final long serialVersionUID = 6376454518435397557L; + + private String sid; + @ApiModelProperty("用户sid") + private String userSid; + @ApiModelProperty("车型全组织sid") + private String modelOrgPath; + @ApiModelProperty("模板名称") + private String templateName; + @ApiModelProperty("方案key") + private String showTypeKey; + @ApiModelProperty("方案value") + private String showTypeValue; + @ApiModelProperty("车型sid") + private String vehModelSid; + @ApiModelProperty("车型名称") + private String vehModel; + @ApiModelProperty("配置sid") + private String vehModelConfigSid; + @ApiModelProperty("常用配置名称") + private String vehModelConfig; + @ApiModelProperty("更多配置名称") + private String vehModelConfigMore; + @ApiModelProperty("单台指导价") + private String vehPrice; + @ApiModelProperty("合格证公告型号") + private String vehNoticeModel; + + @ApiModelProperty("是否包含上装") + private boolean install; + @ApiModelProperty("是否包含挂车") + private boolean trailer; + + @ApiModelProperty("上装信息") + private LoanTemplateInstallVo loanTemplateInstall; + @ApiModelProperty("挂车信息") + private LoanTemplateTrailerVo loanTemplateTrailer; + @ApiModelProperty("消贷金融方案") + private LoanTemplateSolutionsVo loanTemplateSolutions; } diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/calculate/CalculateService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/calculate/CalculateService.java new file mode 100644 index 0000000000..4e12d3d684 --- /dev/null +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/calculate/CalculateService.java @@ -0,0 +1,45 @@ +package com.yxt.anrui.riskcenter.biz.calculate; + +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; + +/** + * @description: 计算公式 + * @author: dimengzhe + * @date: 2023/8/8 + **/ +@Service +public class CalculateService { + + /** + * 计算月还 + * @return + */ + public String calculatePMT(double rate, double nper, double pv){ + double v = (1 + (rate / 12)); + double t = (-(nper / nper) * nper); + double result = (pv * (rate / 12)) / (1 - Math.pow(v, t)); + System.out.println("result==========="+result); + BigDecimal bigDecimal = new BigDecimal(result); + bigDecimal = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP); + return bigDecimal.toString(); + } + + public String calculatePMT1(String rate, String nper, String pv){ + BigDecimal rateBigDecimal = new BigDecimal(rate); + double doubleRate = rateBigDecimal.doubleValue(); + BigDecimal nperBigDecimal = new BigDecimal(nper); + double nperDouble = nperBigDecimal.doubleValue(); + BigDecimal pvBigDecimal = new BigDecimal(pv); + double pvDouble = pvBigDecimal.doubleValue(); + double v = (1 + (doubleRate / 12)); + double t = (-(nperDouble / nperDouble) * nperDouble); + double result = (pvDouble * (doubleRate / 12)) / (1 - Math.pow(v, t)); + System.out.println("result==========="+result); + BigDecimal bigDecimal = new BigDecimal(result); + bigDecimal = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP); + return bigDecimal.toString(); + } + +} diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinotherPolicy/LoanFinOtherPolicyMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinotherPolicy/LoanFinOtherPolicyMapper.xml index a2c835439e..956b46f824 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinotherPolicy/LoanFinOtherPolicyMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinotherPolicy/LoanFinOtherPolicyMapper.xml @@ -36,7 +36,7 @@ diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsService.java index 1d4393dd87..c2d629dc8c 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsService.java @@ -7,6 +7,7 @@ import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderPriceInfoVo; import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign; import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions; +import com.yxt.anrui.riskcenter.api.loansolutions.SolutionDetailsDto; import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo; import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDto; import com.yxt.anrui.riskcenter.api.loansolutionsdetail.LoanSolutionsDetail; @@ -17,6 +18,7 @@ import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.utils.StringUtils; import com.yxt.common.core.result.ResultBean; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -670,7 +672,7 @@ public class LoanSolutionsService extends MybatisBaseService 0) { - return rb.setMsg("抵顶首年保险费不能超过保险费用"); - } - } - } else { - loanTotal = loanTotal.add(new BigDecimal(BigInteger.ZERO)); - loanSolutions.setPremiumCb(0); - } + loanSolutions.setPremiumCb(dto.isPremiumCb() ? 1 : 0); + loanSolutions.setPremium(StringUtils.isNotBlank(dto.getPremium()) ? new BigDecimal(dto.getPremium()) : BigDecimal.ZERO); //是否勾选购置税 - if (dto.isPurchaseTaxCb()) { - //购置税 - String purchaseTax = dto.getPurchaseTax(); - loanTotal = loanTotal.add(new BigDecimal(purchaseTax)); - loanSolutions.setPurchaseTax(new BigDecimal(purchaseTax)); - loanSolutions.setPurchaseTaxCb(1); - if (StringUtils.isNotBlank(dto.getOffsetPurchasetax())) { - if (new BigDecimal(dto.getOffsetPurchasetax()).compareTo(new BigDecimal(purchaseTax)) > 0) { - return rb.setMsg("抵顶购置税不能超过购置税"); - } - } - } else { - loanTotal = loanTotal.add(new BigDecimal(BigInteger.ZERO)); - loanSolutions.setPurchaseTaxCb(0); - } - loanSolutions.setLoanTotal(loanTotal); - //产品贷款金额 - BigDecimal loanAmount = new BigDecimal(BigInteger.ZERO); - BigDecimal downPayAmount = new BigDecimal(BigInteger.ZERO); - //首付金额填写、首付款比例计算。首付款比例 = 首付金额/融资总额*100 - if (StringUtils.isNotBlank(dto.getDownPayAmount())) { - //首付金额 - downPayAmount = downPayAmount.add(new BigDecimal(dto.getDownPayAmount())); - //首付款比例 - String downPayRatio = ""; - BigDecimal downPayRatio1 = downPayAmount.divide(loanTotal, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_UP); - downPayRatio = downPayRatio1.toString() + "%"; - //产品贷款金额 = 融资项目总额-首付金额 - loanAmount = loanTotal.subtract(downPayAmount); - loanSolutions.setDownPayAmount(downPayAmount); - loanSolutions.setDownPayRatio(downPayRatio); - } else { - loanAmount = loanTotal; - loanSolutions.setDownPayAmount(BigDecimal.ZERO); - loanSolutions.setDownPayRatio("0"); - } - loanSolutions.setLoanAmount(loanAmount); - + loanSolutions.setPurchaseTaxCb(dto.isPurchaseTaxCb() ? 1 : 0); + loanSolutions.setPurchaseTax(StringUtils.isNotBlank(dto.getPurchaseTax()) ? new BigDecimal(dto.getPurchaseTax()) : BigDecimal.ZERO); + //项目融资总额 + String loanTotal = dto.getLoanTotal(); + loanSolutions.setLoanTotal(StringUtils.isNotBlank(loanTotal) ? new BigDecimal(loanTotal) : BigDecimal.ZERO); + //首付比例 + String downPayRatio = dto.getDownPayRatio(); + loanSolutions.setDownPayRatio(downPayRatio); + //首付金额 + String downPayAmount = dto.getDownPayAmount(); + loanSolutions.setDownPayAmount(StringUtils.isNotBlank(downPayAmount) ? new BigDecimal(downPayAmount) : BigDecimal.ZERO); + //贷款金额 + String loanAmount = dto.getLoanAmount(); + loanSolutions.setLoanAmount(StringUtils.isNotBlank(loanAmount) ? new BigDecimal(loanAmount) : BigDecimal.ZERO); + //贷款保证金比例 + String bondRatio = dto.getBondRatio(); + loanSolutions.setBondRatio(bondRatio); + //期数 loanSolutions.setLoanPeriod(loanPeriod); - //贷款保证金填写、贷款保证金比例计算。贷款保证金比例 = 贷款保证金/贷款金额*100 - if (StringUtils.isNotBlank(dto.getBondAmount())) { - //贷款保证金 - BigDecimal bondAmount = new BigDecimal(dto.getBondAmount()); - //贷款保证金比例 - String bondRatio = ""; - BigDecimal bondRatio1 = bondAmount.divide(loanAmount, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_UP); - bondRatio = bondRatio1.toString() + "%"; - loanSolutions.setBondAmount(bondAmount); - loanSolutions.setBondRatio(bondRatio); - } else { - loanSolutions.setBondAmount(BigDecimal.ZERO); - loanSolutions.setBondRatio("0"); - } + //保证金金额 + String bondAmount = dto.getBondAmount(); + loanSolutions.setBondAmount(StringUtils.isNotBlank(bondAmount) ? new BigDecimal(bondAmount) : BigDecimal.ZERO); //厂家贴息 String factoryDiscount = dto.getFactoryDiscount(); - if (StringUtils.isNotBlank(factoryDiscount)) { - loanSolutions.setFactoryDiscount(new BigDecimal(factoryDiscount)); - } else { - loanSolutions.setFactoryDiscount(new BigDecimal(BigInteger.ZERO)); - } - //厂家贴息用途 - String factoryDiscountUse = dto.getFactoryDiscountUse(); - if (StringUtils.isNotBlank(factoryDiscountUse)) { - loanSolutions.setFactoryDiscountUse(factoryDiscountUse); - } - + loanSolutions.setFactoryDiscount(StringUtils.isNotBlank(factoryDiscount) ? new BigDecimal(factoryDiscount) : BigDecimal.ZERO); + String discountCar = dto.getDiscountCar(); + loanSolutions.setDiscountCar(StringUtils.isNotBlank(discountCar) ? new BigDecimal(discountCar) : BigDecimal.ZERO); //年利率 String policyYearRatio = dto.getPolicyYearRatio(); loanSolutions.setPolicyYearRatio(policyYearRatio); //月还金额 String loanPayMoney = dto.getLoanPayMoney(); - BigDecimal monthlyRepay1 = new BigDecimal(BigInteger.ZERO); - if (StringUtils.isNotBlank(loanPayMoney)) { - loanSolutions.setLoanPayMoney(new BigDecimal(loanPayMoney)); - monthlyRepay1 = monthlyRepay1.add(new BigDecimal(loanPayMoney)); - } else { - loanSolutions.setLoanPayMoney(BigDecimal.ZERO); - } + loanSolutions.setLoanPayMoney(StringUtils.isNotBlank(loanPayMoney) ? new BigDecimal(loanPayMoney) : BigDecimal.ZERO); //利息总额 - BigDecimal interest = new BigDecimal(BigInteger.ZERO); String loanInterest = dto.getLoanInterest(); - if (StringUtils.isNotBlank(loanInterest)) { - loanSolutions.setLoanInterest(new BigDecimal(loanInterest)); - interest = interest.add(new BigDecimal(loanInterest)); - } else { - loanSolutions.setLoanInterest(BigDecimal.ZERO); - } - BigDecimal otherPolicyAmount1 = new BigDecimal(BigInteger.ZERO); - int ii = 0; - //=================================其它融 - //勾选其它融 + loanSolutions.setLoanInterest(StringUtils.isNotBlank(loanInterest) ? new BigDecimal(loanInterest) : BigDecimal.ZERO); LoanSolutionsOtherpolicy loanSolutionsOtherpolicy = new LoanSolutionsOtherpolicy(); if (dto.isOtherPolicyState()) { - //其它融名称 - if (StringUtils.isNotBlank(dto.getOtherPolicyName())) { - loanSolutionsOtherpolicy.setOtherPolicyName(dto.getOtherPolicyName()); - } + BeanUtil.copyProperties(dto, loanSolutionsOtherpolicy, "sid"); //贷款金额 String otherPolicyAmount = dto.getOtherPolicyAmount(); - if (StringUtils.isNotBlank(otherPolicyAmount)) { - otherPolicyAmount1 = otherPolicyAmount1.add(new BigDecimal(otherPolicyAmount)); - } - loanSolutionsOtherpolicy.setOtherPolicyAmount(otherPolicyAmount1); - String otherPolicyPeriod = dto.getOtherPolicyPeriod(); - if (StringUtils.isNotBlank(otherPolicyPeriod)) { - loanSolutionsOtherpolicy.setOtherPolicyPeriod(otherPolicyPeriod); - ii = ii + Integer.valueOf(otherPolicyPeriod); - } + loanSolutionsOtherpolicy.setOtherPolicyAmount(StringUtils.isNotBlank(otherPolicyAmount) ? new BigDecimal(otherPolicyAmount) : BigDecimal.ZERO); //其它融月还 String otherPolicyMonthlyRepay = dto.getOtherPolicyMonthlyRepay(); - if (StringUtils.isNotBlank(otherPolicyMonthlyRepay)) { - loanSolutionsOtherpolicy.setOtherPolicyMonthlyRepay(new BigDecimal(otherPolicyMonthlyRepay)); - monthlyRepay1 = monthlyRepay1.add(new BigDecimal(otherPolicyMonthlyRepay)); - } else { - loanSolutionsOtherpolicy.setOtherPolicyMonthlyRepay(BigDecimal.ZERO); - } + loanSolutionsOtherpolicy.setOtherPolicyMonthlyRepay(StringUtils.isNotBlank(otherPolicyMonthlyRepay) ? new BigDecimal(otherPolicyMonthlyRepay) : BigDecimal.ZERO); //其它融利息总额 String otherPolicyInterest = dto.getOtherPolicyInterest(); - if (StringUtils.isNotBlank(otherPolicyInterest)) { - loanSolutionsOtherpolicy.setOtherPolicyInterest(new BigDecimal(otherPolicyInterest)); - interest = interest.add(new BigDecimal(otherPolicyInterest)); - } else { - loanSolutionsOtherpolicy.setOtherPolicyInterest(BigDecimal.ZERO); - } - //方案汇总========================================== - //融资首付 = 首付金额-其它融贷款金额 - BigDecimal loanDownPay = new BigDecimal(BigInteger.ZERO); - loanDownPay = loanDownPay.add(downPayAmount).subtract(otherPolicyAmount1); - loanSolutionsOtherpolicy.setLoanDownPay(loanDownPay); - //总贷款金额 = 主方案贷款金额+其它融贷款金额 - BigDecimal loanAmountTotal = new BigDecimal(BigInteger.ZERO); - loanAmountTotal = loanAmountTotal.add(loanAmount).add(otherPolicyAmount1); - loanSolutionsOtherpolicy.setLoanAmountTotal(loanAmountTotal); - //期数 = 其它融期数拼接剩余期数(6/18) - int i = Integer.valueOf(loanPeriod) - Integer.valueOf(otherPolicyPeriod); - String period = otherPolicyPeriod + "/" + i; - loanSolutionsOtherpolicy.setPeriod(period); - //月还金额 = 总月还/贷款月还 - String monthlyRepay = ""; - if (StringUtils.isNotBlank(dto.getMonthlyRepay())) { - if (loanPeriod.equals(otherPolicyPeriod)) { - monthlyRepay = monthlyRepay1.toString() + "/-"; - } else { - monthlyRepay = monthlyRepay1.toString() + "/" + dto.getLoanPayMoney(); - } - - } else { - monthlyRepay = monthlyRepay1.toString() + "/-"; - } - //实际首付比例 - String downPayAmountsRatio = ""; - BigDecimal downPayAmountsRatio1 = loanDownPay.divide(loanTotal, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_UP); - downPayAmountsRatio = downPayAmountsRatio1.toString() + "%"; - loanSolutionsOtherpolicy.setDownPayAmountsRatio(downPayAmountsRatio); - - - //预计首期还款日 - String returnTime = dto.getReturnTime(); - loanSolutionsOtherpolicy.setMonthlyRepay(monthlyRepay); - loanSolutionsOtherpolicy.setReturnTime(returnTime); - //利息总额 - loanSolutionsOtherpolicy.setInterest(interest); + loanSolutionsOtherpolicy.setOtherPolicyInterest(StringUtils.isNotBlank(otherPolicyInterest) ? new BigDecimal(otherPolicyInterest) : BigDecimal.ZERO); loanSolutions.setOtherPolicyState(1); - loanSolutionsOtherpolicy.setOtherPolicyYearRatio(dto.getOtherPolicyYearRatio()); + String loanDownPay = dto.getLoanDownPay(); + loanSolutionsOtherpolicy.setLoanDownPay(StringUtils.isNotBlank(loanDownPay) ? new BigDecimal(loanDownPay) : BigDecimal.ZERO); } else { - //不勾选其它融 - //方案汇总 - //融资首付 = 首付金额-其它融贷款金额 - BigDecimal loanDownPay = new BigDecimal(BigInteger.ZERO); - loanDownPay = loanDownPay.add(downPayAmount).subtract(otherPolicyAmount1); - loanSolutionsOtherpolicy.setLoanDownPay(loanDownPay); - //总贷款金额 = 主方案贷款金额+其它融贷款金额 - BigDecimal loanAmountTotal = new BigDecimal(BigInteger.ZERO); - loanAmountTotal = loanAmountTotal.add(loanAmount).add(otherPolicyAmount1); - loanSolutionsOtherpolicy.setLoanAmountTotal(loanAmountTotal); - //实际首付比例 - String downPayAmountsRatio = ""; - BigDecimal downPayAmountsRatio1 = loanDownPay.divide(loanTotal, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_UP); - downPayAmountsRatio = downPayAmountsRatio1.toString() + "%"; - loanSolutionsOtherpolicy.setDownPayAmountsRatio(downPayAmountsRatio); - //期数 = 其它融期数拼接剩余期数(6/18) - int i = Integer.valueOf(loanPeriod) - ii; - String period = ii + "/" + i; - loanSolutionsOtherpolicy.setPeriod(period); - //月还金额 = 总月还/贷款月还 - String monthlyRepay = monthlyRepay1.toString(); - //预计首期还款日 - String returnTime = dto.getReturnTime(); - loanSolutionsOtherpolicy.setMonthlyRepay(monthlyRepay); - loanSolutionsOtherpolicy.setReturnTime(returnTime); - //利息总额 - loanSolutionsOtherpolicy.setInterest(interest); + BeanUtil.copyProperties(dto, loanSolutionsOtherpolicy, "sid"); + String loanDownPay = dto.getLoanDownPay(); + loanSolutionsOtherpolicy.setLoanDownPay(StringUtils.isNotBlank(loanDownPay) ? new BigDecimal(loanDownPay) : BigDecimal.ZERO); loanSolutions.setOtherPolicyState(0); } baseMapper.insert(loanSolutions); loanSolutionsOtherpolicy.setSolutionsSid(loanSolutions.getSid()); loanSolutionsOtherpolicyService.insert(loanSolutionsOtherpolicy); - //=========================应收明细 + /***********************应收明细************************************/ LoanSolutionsDetail loanSolutionsDetail = new LoanSolutionsDetail(); - //应收合计 = 融资首付+贷款保证金+保险保证金+落户保证金+服务费+代收意外险+补车价+上牌费+运管费+其它费用 - BigDecimal receivableTotal = new BigDecimal(BigInteger.ZERO); - //融资首付 = 首付金额-其它融贷款金额 - BigDecimal downPayAmounts = new BigDecimal(BigInteger.ZERO); - downPayAmounts = downPayAmounts.add(downPayAmount).subtract(otherPolicyAmount1); - loanSolutionsDetail.setDownPayAmounts(downPayAmounts); - receivableTotal = receivableTotal.add(downPayAmounts); + BeanUtil.copyProperties(dto, loanSolutionsDetail, "sid"); + //融资首付 + String downPayAmounts = dto.getDownPayAmounts(); + loanSolutionsDetail.setDownPayAmounts(StringUtils.isNotBlank(downPayAmounts) ? new BigDecimal(downPayAmounts) : BigDecimal.ZERO); //贷款保证金 - if (StringUtils.isNotBlank(dto.getBondAmount())) { - receivableTotal = receivableTotal.add(new BigDecimal(dto.getBondAmount())); - loanSolutionsDetail.setBondAmounts(new BigDecimal(dto.getBondAmount())); - } else { - loanSolutionsDetail.setBondAmounts(BigDecimal.ZERO); - } + String bondAmounts = dto.getBondAmounts(); + loanSolutionsDetail.setBondAmounts(StringUtils.isNotBlank(bondAmounts) ? new BigDecimal(bondAmounts) : BigDecimal.ZERO); //保险保证金 String depositPremium = dto.getDepositPremium(); - if (StringUtils.isNotBlank(depositPremium)) { - receivableTotal = receivableTotal.add(new BigDecimal(depositPremium)); - loanSolutionsDetail.setDepositPremium(new BigDecimal(depositPremium)); - } else { - loanSolutionsDetail.setDepositPremium(BigDecimal.ZERO); - } + loanSolutionsDetail.setDepositPremium(StringUtils.isNotBlank(depositPremium) ? new BigDecimal(depositPremium) : BigDecimal.ZERO); //落户保证金 String depositSettle = dto.getDepositSettle(); - if (StringUtils.isNotBlank(depositSettle)) { - receivableTotal = receivableTotal.add(new BigDecimal(depositSettle)); - loanSolutionsDetail.setDepositSettle(new BigDecimal(depositSettle)); - } else { - loanSolutionsDetail.setDepositSettle(BigDecimal.ZERO); - } + loanSolutionsDetail.setDepositSettle(StringUtils.isNotBlank(depositSettle) ? new BigDecimal(depositSettle) : BigDecimal.ZERO); //服务费 String serviceAmount = dto.getServiceAmount(); - if (StringUtils.isNotBlank(serviceAmount)) { - receivableTotal = receivableTotal.add(new BigDecimal(serviceAmount)); - loanSolutionsDetail.setServiceAmount(new BigDecimal(serviceAmount)); - } else { - loanSolutionsDetail.setServiceAmount(BigDecimal.ZERO); - } + loanSolutionsDetail.setServiceAmount(StringUtils.isNotBlank(serviceAmount) ? new BigDecimal(serviceAmount) : BigDecimal.ZERO); //代收意外险 String proxyAccidentPremium = dto.getProxyAccidentPremium(); - if (StringUtils.isNotBlank(proxyAccidentPremium)) { - receivableTotal = receivableTotal.add(new BigDecimal(proxyAccidentPremium)); - loanSolutionsDetail.setProxyAccidentPremium(new BigDecimal(proxyAccidentPremium)); - } else { - loanSolutionsDetail.setProxyAccidentPremium(BigDecimal.ZERO); - } + loanSolutionsDetail.setProxyAccidentPremium(StringUtils.isNotBlank(proxyAccidentPremium) ? new BigDecimal(proxyAccidentPremium) : BigDecimal.ZERO); //上牌费 String registerAmount = dto.getRegisterAmount(); - if (StringUtils.isNotBlank(registerAmount)) { - receivableTotal = receivableTotal.add(new BigDecimal(registerAmount)); - loanSolutionsDetail.setRegisterAmount(new BigDecimal(registerAmount)); - } else { - loanSolutionsDetail.setRegisterAmount(BigDecimal.ZERO); - } + loanSolutionsDetail.setRegisterAmount(StringUtils.isNotBlank(registerAmount) ? new BigDecimal(registerAmount) : BigDecimal.ZERO); //运管费 String operationAmount = dto.getOperationAmount(); - if (StringUtils.isNotBlank(operationAmount)) { - receivableTotal = receivableTotal.add(new BigDecimal(operationAmount)); - loanSolutionsDetail.setOperationAmount(new BigDecimal(operationAmount)); - - } else { - loanSolutionsDetail.setOperationAmount(BigDecimal.ZERO); - } + loanSolutionsDetail.setOperationAmount(StringUtils.isNotBlank(operationAmount) ? new BigDecimal(operationAmount) : BigDecimal.ZERO); //补车价 String vehOtherPrice = dto.getVehOtherPrice(); - if (StringUtils.isNotBlank(vehOtherPrice)) { - receivableTotal = receivableTotal.add(new BigDecimal(vehOtherPrice)); - loanSolutionsDetail.setVehOtherPrice(new BigDecimal(vehOtherPrice)); - } else { - loanSolutionsDetail.setVehOtherPrice(BigDecimal.ZERO); - } + loanSolutionsDetail.setVehOtherPrice(StringUtils.isNotBlank(vehOtherPrice) ? new BigDecimal(vehOtherPrice) : BigDecimal.ZERO); //其它费用 String otherAmount = dto.getOtherAmount(); - if (StringUtils.isNotBlank(otherAmount)) { - receivableTotal = receivableTotal.add(new BigDecimal(otherAmount)); - loanSolutionsDetail.setOtherAmount(new BigDecimal(otherAmount)); - } else { - loanSolutionsDetail.setOtherAmount(BigDecimal.ZERO); - } - //其它费用说明 - String otherAmountRemark = dto.getOtherAmountRemark(); - loanSolutionsDetail.setOtherAmountRemark(otherAmountRemark); - //办理方式选择 - String dealWay = dto.getDealWay(); - loanSolutionsDetail.setDealWay(dealWay); - String dealWayKey = dto.getDealWayKey(); - loanSolutionsDetail.setDealWayKey(dealWayKey); + loanSolutionsDetail.setOtherAmount(StringUtils.isNotBlank(otherAmount) ? new BigDecimal(otherAmount) : BigDecimal.ZERO); //代收首年保险费 String proxyPremium = dto.getProxyPremium(); - if (StringUtils.isNotBlank(proxyPremium)) { - receivableTotal = receivableTotal.add(new BigDecimal(proxyPremium)); - loanSolutionsDetail.setProxyPremium(new BigDecimal(proxyPremium)); - } else { - loanSolutionsDetail.setProxyPremium(BigDecimal.ZERO); - } + loanSolutionsDetail.setProxyPremium(StringUtils.isNotBlank(proxyPremium) ? new BigDecimal(proxyPremium) : BigDecimal.ZERO); //代收购置费 String proxyPurchasetax = dto.getProxyPurchasetax(); - if (StringUtils.isNotBlank(proxyPurchasetax)) { - receivableTotal = receivableTotal.add(new BigDecimal(proxyPurchasetax)); - loanSolutionsDetail.setProxyPurchasetax(new BigDecimal(proxyPurchasetax)); - } else { - loanSolutionsDetail.setProxyPurchasetax(BigDecimal.ZERO); - } - //抵顶费用合计 = 抵顶首年保险费+抵顶购置税 - BigDecimal offsetTotal = new BigDecimal(BigInteger.ZERO); + loanSolutionsDetail.setProxyPurchasetax(StringUtils.isNotBlank(proxyPurchasetax) ? new BigDecimal(proxyPurchasetax) : BigDecimal.ZERO); //抵顶首年保险费 String offsetPremium = dto.getOffsetPremium(); - if (dto.isPremiumCb()) { - if (StringUtils.isNotBlank(offsetPremium)) { - offsetTotal = offsetTotal.add(new BigDecimal(offsetPremium)); - loanSolutionsDetail.setOffsetPremium(new BigDecimal(offsetPremium)); - } else { - loanSolutionsDetail.setOffsetPremium(BigDecimal.ZERO); - } - } - if (dto.isPurchaseTaxCb()) { - //抵顶购置税 - String offsetPurchasetax = dto.getOffsetPurchasetax(); - if (StringUtils.isNotBlank(offsetPurchasetax)) { - offsetTotal = offsetTotal.add(new BigDecimal(offsetPurchasetax)); - loanSolutionsDetail.setOffsetPurchasetax(new BigDecimal(offsetPurchasetax)); - } else { - loanSolutionsDetail.setOffsetPurchasetax(BigDecimal.ZERO); - } - } - //实收合计 = 应收合计-抵顶合计 - BigDecimal realTotal = receivableTotal.subtract(offsetTotal); + loanSolutionsDetail.setOffsetPremium(StringUtils.isNotBlank(offsetPremium) ? new BigDecimal(offsetPremium) : BigDecimal.ZERO); + String proxyTotal = dto.getProxyTotal(); + loanSolutionsDetail.setProxyTotal(StringUtils.isNotBlank(proxyTotal) ? new BigDecimal(proxyTotal) : BigDecimal.ZERO); + String offsetTotal = dto.getOffsetTotal(); + loanSolutionsDetail.setOffsetTotal(StringUtils.isNotBlank(offsetTotal) ? new BigDecimal(offsetTotal) : BigDecimal.ZERO); + //应收合计 + String receivableTotal = dto.getReceivableTotal(); + loanSolutionsDetail.setReceivableTotal(StringUtils.isNotBlank(receivableTotal) ? new BigDecimal(receivableTotal) : BigDecimal.ZERO); + //实收合计 + String realTotal = dto.getRealTotal(); + loanSolutionsDetail.setRealTotal(StringUtils.isNotBlank(realTotal) ? new BigDecimal(realTotal) : BigDecimal.ZERO); //车辆总价 String vehTotalPrice = dto.getVehTotalPrice(); + loanSolutionsDetail.setVehTotalPrice(StringUtils.isNotBlank(vehTotalPrice) ? new BigDecimal(vehTotalPrice) : BigDecimal.ZERO); //名义留购价 String nominalPrice = dto.getNominalPrice(); - loanSolutionsDetail.setRealTotal(realTotal); - loanSolutionsDetail.setReceivableTotal(receivableTotal); - loanSolutionsDetail.setOffsetTotal(offsetTotal); - if (StringUtils.isNotBlank(vehTotalPrice)) { - loanSolutionsDetail.setVehTotalPrice(new BigDecimal(vehTotalPrice)); - } else { - loanSolutionsDetail.setVehTotalPrice(BigDecimal.ZERO); - } - if (StringUtils.isNotBlank(nominalPrice)) { - loanSolutionsDetail.setNominalPrice(new BigDecimal(nominalPrice)); - } else { - loanSolutionsDetail.setNominalPrice(BigDecimal.ZERO); - } + loanSolutionsDetail.setNominalPrice(StringUtils.isNotBlank(nominalPrice) ? new BigDecimal(nominalPrice) : BigDecimal.ZERO); loanSolutionsDetail.setSolutionsSid(loanSolutions.getSid()); loanSolutionsDetailService.insert(loanSolutionsDetail); return rb.success(); diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateMapper.xml b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateMapper.xml index 44025395cf..cb4d841977 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateMapper.xml +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateMapper.xml @@ -24,7 +24,7 @@ ${ew.sqlSegment} - order by id desc + order by lote.id desc diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateService.java index 7c6930b2b0..ad600d3d16 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateService.java @@ -24,6 +24,7 @@ import com.yxt.anrui.portal.api.sysuser.SysUserVo; import com.yxt.anrui.riskcenter.api.loanfinotherPolicy.LoanFinOtherPolicy; import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicy; import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions; +import com.yxt.anrui.riskcenter.api.loansolutions.SolutionDetailsDto; import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo; import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDto; import com.yxt.anrui.riskcenter.api.loantemplate.*; @@ -139,9 +140,10 @@ public class LoanTemplateService extends MybatisBaseService rb = ResultBean.fireFail(); String sid = dto.getSid(); if (StringUtils.isBlank(sid)) { + //ToDo:billNo //新增 LoanTemplate loanTemplate = new LoanTemplate(); - BeanUtil.copyProperties(dto, loanTemplate, sid); + BeanUtil.copyProperties(dto, loanTemplate, "sid"); loanTemplate.setCreateBySid(dto.getUserSid()); //查询申请人 ResultBean userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid()); @@ -173,10 +175,10 @@ public class LoanTemplateService extends MybatisBaseService v.replaceAll(fileUploadComponent.getUrlPrefix(), "")).collect(Collectors.toList()); String files = String.join(",", fileList); loanTemplateTrailer.setVehTrailerCertificateFile(files); + }else{ + loanTemplateTrailer.setVehTrailerCertificateFile(""); } loanTemplateTrailerService.insert(loanTemplateTrailer); } diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loantemplate/TemplateFeign.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loantemplate/TemplateFeign.java new file mode 100644 index 0000000000..c198eb28e6 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loantemplate/TemplateFeign.java @@ -0,0 +1,31 @@ +package com.yxt.anrui.terminal.api.risk.loantemplate; + +import com.yxt.anrui.terminal.api.supplychain.vehicleApply.VehicleApplyFeignFallback; +import com.yxt.anrui.terminal.api.supplychain.vehicleApply.VehicleApplyVo; +import com.yxt.common.core.result.ResultBean; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.ResponseBody; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/8/8 + **/ +@Api(tags = "移动端金融定制审批") +@FeignClient( + contextId = "terminal-Template", + name = "anrui-terminal", + path = "/risk/v1/Template", + fallback = TemplateFeignFallback.class) +public interface TemplateFeign { + + @ApiOperation("方案详情") + @GetMapping("/getTemplateApply/{sid}") + @ResponseBody + ResultBean getTemplateApply(@PathVariable("sid") String sid); + +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loantemplate/TemplateFeignFallback.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loantemplate/TemplateFeignFallback.java new file mode 100644 index 0000000000..82544faaf4 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loantemplate/TemplateFeignFallback.java @@ -0,0 +1,12 @@ +package com.yxt.anrui.terminal.api.risk.loantemplate; + +import org.springframework.stereotype.Component; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/8/8 + **/ +@Component +public class TemplateFeignFallback { +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loantemplate/TemplateVo.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loantemplate/TemplateVo.java new file mode 100644 index 0000000000..3a3b8e44a9 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loantemplate/TemplateVo.java @@ -0,0 +1,14 @@ +package com.yxt.anrui.terminal.api.risk.loantemplate; + +import com.yxt.common.core.vo.Vo; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/8/8 + **/ +@Data +public class TemplateVo implements Vo { + private static final long serialVersionUID = 5875529565501843924L; +}