Browse Source

优化

master
dimengzhe 2 years ago
parent
commit
a4e40de548
  1. 51
      anrui-portal/anrui-portal-biz/src/test/java/com/yxt/anrui/portal/test/controller/ArithmeticController.java
  2. 7
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinotherPolicy/OtherPolicyVo.java
  3. 5
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicy/LoanFinPolicyDto.java
  4. 5
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicy/LoanFinPolicyVo.java
  5. 16
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanfinpolicy/PolicyVo.java
  6. 6
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/LoanSolutions.java
  7. 163
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/SolutionDetailsDto.java
  8. 2
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutionsdetail/LoanSolutionsDetail.java
  9. 4
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/LoanTemplateDetailsVo.java
  10. 50
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loantemplate/TemplateApplyVo.java
  11. 45
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/calculate/CalculateService.java
  12. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinotherPolicy/LoanFinOtherPolicyMapper.xml
  13. 12
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicy/LoanFinPolicyMapper.xml
  14. 426
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsService.java
  15. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateMapper.xml
  16. 18
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateService.java
  17. 31
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loantemplate/TemplateFeign.java
  18. 12
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loantemplate/TemplateFeignFallback.java
  19. 14
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/risk/loantemplate/TemplateVo.java

51
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;
}
/**

7
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;
}

5
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;
}

5
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;
}

16
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;
}

6
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;

163
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;
}

2
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;

4
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;

50
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;
}

45
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();
}
}

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinotherPolicy/LoanFinOtherPolicyMapper.xml

@ -36,7 +36,7 @@
</select>
<select id="selectListOne" resultType="com.yxt.anrui.riskcenter.api.loanfinotherPolicy.OtherPolicyVo">
select lfo.sid,lfo.otherPolicyName as name from loan_fin_otherpolicy lfo where lfo.mainPolicySid = #{sid}
select lfo.sid,lfo.otherPolicyName as name,lfo.period,lfo.periodKey,lfo.yearRatio from loan_fin_otherpolicy lfo where lfo.mainPolicySid = #{sid}
</select>
<select id="selectListTwo" resultType="com.yxt.anrui.riskcenter.api.loanfinotherPolicy.OtherPolicyVo">

12
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanfinpolicy/LoanFinPolicyMapper.xml

@ -88,9 +88,17 @@
</select>
<select id="selectListOne" resultType="com.yxt.anrui.riskcenter.api.loanfinpolicy.PolicyVo">
select lfp.policyName, lfp.sid
select lfp.policyName name,
lfp.sid,
lfp.downPayRatio,
lfp.downPayRatioKey,
lfp.period,
lfp.periodKey,
lfp.bondRatio,
lfp.bondRatioKey,
lfp.yearRatio
from loan_fin_policy lfp
where lfp.filingState = 2
where lfp.filingState = 1
and isPack = #{isPack}
and lfp.useOrgSid = #{useOrgSid}
and lfp.validDateTo > now()

426
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<LoanSolutionsMapper
}
@Transactional(rollbackFor = Exception.class)
public ResultBean saveDtos(SolutionsDto dto) {
public ResultBean saveDtoss(SolutionDetailsDto dto) {
ResultBean rb = ResultBean.fireFail();
String mainVehicleAmount = dto.getMainVehicleAmount();
if (StringUtils.isBlank(mainVehicleAmount)) {
@ -740,420 +742,150 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
return rb.setMsg("主方案期数不能为空");
}
//查詢是否有金融方案
LoanSolutions loanSolutions = baseMapper.selectByApplySid(dto.getSaleOrderSid());
LoanSolutions loanSolutions = baseMapper.selectByApplySid(dto.getBusSid());
if (loanSolutions != null) {
//删除该销售订单的
baseMapper.deleteByOrderSid(dto.getSaleOrderSid());
baseMapper.deleteByOrderSid(dto.getBusSid());
loanSolutionsOtherpolicyService.deleteByLoanSid(loanSolutions.getSid());
loanSolutionsDetailService.deleteByLoanSid(loanSolutions.getSid());
}
//保存金融方案
loanSolutions = new LoanSolutions();
if (StringUtils.isNotBlank(dto.getSaleOrderSid())) {
loanSolutions.setSalesOrderSid(dto.getSaleOrderSid());
}
if (StringUtils.isNotBlank(dto.getTypeKey())) {
loanSolutions.setType(dto.getType());
loanSolutions.setTypeKey(dto.getTypeKey());
}
//是否打包
String isPack = dto.getIsPack();
if (StringUtils.isNotBlank(isPack)) {
loanSolutions.setIsPack(isPack);
loanSolutions.setSaleOrderState(1);
if (StringUtils.isNotBlank(dto.getBusSid())) {
loanSolutions.setSalesOrderSid(dto.getBusSid());
}
//产品政策名称
String policyName = dto.getPolicyName();
if (StringUtils.isNotBlank(policyName)) {
loanSolutions.setPolicyName(policyName);
}
//融资项目总额 = 主车发票价+融资票据+挂车+保险+购置税+车损上浮
BigDecimal loanTotal = new BigDecimal(BigInteger.ZERO);
BeanUtil.copyProperties(dto, loanSolutions, "sid");
//主车发票价
loanTotal = loanTotal.add(new BigDecimal(mainVehicleAmount));
loanSolutions.setMainVehicleAmount(new BigDecimal(mainVehicleAmount));
//是否勾选融资票据
if (dto.isAccessoriesAmountCb()) {
//融资票据
String accessoriesAmount = dto.getAccessoriesAmount();
loanTotal = loanTotal.add(new BigDecimal(accessoriesAmount));
loanSolutions.setAccessoriesAmount(new BigDecimal(accessoriesAmount));
loanSolutions.setAccessoriesAmountCb(1);
} else {
loanTotal = loanTotal.add(new BigDecimal(BigInteger.ZERO));
loanSolutions.setAccessoriesAmountCb(0);
}
loanSolutions.setAccessoriesAmountCb(dto.isAccessoriesAmountCb() ? 1 : 0);
loanSolutions.setAccessoriesAmount(dto.isAccessoriesAmountCb() ? new BigDecimal(dto.getAccessoriesAmount()) : BigDecimal.ZERO);
//是否勾选挂车
if (dto.isTrailerAmountCb()) {
//挂车
String trailerAmount = dto.getTrailerAmount();
loanTotal = loanTotal.add(new BigDecimal(trailerAmount));
loanSolutions.setTrailerAmount(new BigDecimal(trailerAmount));
loanSolutions.setTrailerAmountCb(1);
} else {
loanTotal = loanTotal.add(new BigDecimal(BigInteger.ZERO));
loanSolutions.setTrailerAmountCb(0);
}
loanSolutions.setTrailerAmountCb(dto.isTrailerAmountCb() ? 1 : 0);
loanSolutions.setTrailerAmount(dto.isTrailerAmountCb() ? new BigDecimal(dto.getTrailerAmount()) : BigDecimal.ZERO);
//是否勾选保险
if (dto.isPremiumCb()) {
//保险
String premium = dto.getPremium();
loanTotal = loanTotal.add(new BigDecimal(premium));
loanSolutions.setPremium(new BigDecimal(premium));
loanSolutions.setPremiumCb(1);
if (StringUtils.isNotBlank(dto.getOffsetPremium())) {
if (new BigDecimal(dto.getOffsetPremium()).compareTo(new BigDecimal(premium)) > 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.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);
} else {
loanAmount = loanTotal;
loanSolutions.setDownPayAmount(BigDecimal.ZERO);
loanSolutions.setDownPayRatio("0");
}
loanSolutions.setLoanAmount(loanAmount);
loanSolutions.setLoanPeriod(loanPeriod);
//贷款保证金填写、贷款保证金比例计算。贷款保证金比例 = 贷款保证金/贷款金额*100
if (StringUtils.isNotBlank(dto.getBondAmount())) {
//贷款保证金
BigDecimal bondAmount = new BigDecimal(dto.getBondAmount());
//首付金额
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 = "";
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);
String bondRatio = dto.getBondRatio();
loanSolutions.setBondRatio(bondRatio);
} else {
loanSolutions.setBondAmount(BigDecimal.ZERO);
loanSolutions.setBondRatio("0");
}
//期数
loanSolutions.setLoanPeriod(loanPeriod);
//保证金金额
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();

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loantemplate/LoanTemplateMapper.xml

@ -24,7 +24,7 @@
<where>
${ew.sqlSegment}
</where>
order by id desc
order by lote.id desc
</select>
<update id="updateFlowFiled">

18
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<LoanTemplateMapper,
ResultBean<String> 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<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid());
@ -173,10 +175,10 @@ public class LoanTemplateService extends MybatisBaseService<LoanTemplateMapper,
saveOrUpdateInstallAndTrailer(sid, dto);
LoanTemplateSolutionsDto loanTemplateSolutionsDto = dto.getLoanTemplateSolutions();
if (loanTemplateSolutionsDto != null) {
SolutionsDto solutionsDto = new SolutionsDto();
SolutionDetailsDto solutionsDto = new SolutionDetailsDto();
BeanUtil.copyProperties(loanTemplateSolutionsDto, solutionsDto, "sid");
solutionsDto.setSaleOrderSid(sid);
loanSolutionsService.saveDto(solutionsDto);
solutionsDto.setBusSid(sid);
loanSolutionsService.saveDtoss(solutionsDto);
}
baseMapper.insert(loanTemplate);
} else {
@ -189,10 +191,10 @@ public class LoanTemplateService extends MybatisBaseService<LoanTemplateMapper,
saveOrUpdateInstallAndTrailer(sid, dto);
LoanTemplateSolutionsDto loanTemplateSolutionsDto = dto.getLoanTemplateSolutions();
if (loanTemplateSolutionsDto != null) {
SolutionsDto solutionsDto = new SolutionsDto();
SolutionDetailsDto solutionsDto = new SolutionDetailsDto();
BeanUtil.copyProperties(loanTemplateSolutionsDto, solutionsDto, "sid");
solutionsDto.setSaleOrderSid(sid);
loanSolutionsService.saveDto(solutionsDto);
solutionsDto.setBusSid(sid);
loanSolutionsService.saveDtoss(solutionsDto);
}
baseMapper.updateById(loanTemplate);
}
@ -225,6 +227,8 @@ public class LoanTemplateService extends MybatisBaseService<LoanTemplateMapper,
fileList = fileList.stream().map(v -> v.replaceAll(fileUploadComponent.getUrlPrefix(), "")).collect(Collectors.toList());
String files = String.join(",", fileList);
loanTemplateTrailer.setVehTrailerCertificateFile(files);
}else{
loanTemplateTrailer.setVehTrailerCertificateFile("");
}
loanTemplateTrailerService.insert(loanTemplateTrailer);
}

31
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<VehicleApplyVo> getTemplateApply(@PathVariable("sid") String sid);
}

12
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 {
}

14
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;
}
Loading…
Cancel
Save