Browse Source

优化

zhanglei
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 class ArithmeticController {
public static void main(String[] args) { public static void main(String[] args) {
System.out.println("======get5"); // System.out.println("======get5");
get5(30000, 0.02, 3); // get5(30000, 0.02, 3);
System.out.println("======get4"); // System.out.println("======get4");
get4(30000, 0.02, 3); // get4(30000, 0.02, 3);
System.out.println("======get3"); // System.out.println("======get3");
get3(30000, 0.02, 3); // get3(30000, 0.02, 3);
System.out.println("=======get2"); // System.out.println("=======get2");
get2(30000, 0.02, 3); // get2(30000, 0.02, 3);
System.out.println("=======get1"); // System.out.println("=======get1");
// get1(30000, 0.02, 3); // get1(30000, 0.02, 3);
System.out.println("========get"); // System.out.println("========get");
get(30000, 0.02, 3); // 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; package com.yxt.anrui.riskcenter.api.loanfinotherPolicy;
import com.yxt.common.core.vo.Vo; import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
/** /**
@ -15,4 +16,10 @@ public class OtherPolicyVo implements Vo {
private String sid; private String sid;
private String name; 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("备注") @ApiModelProperty("备注")
private String remarks; 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 remarks;
private String orgPath; private String orgPath;
private String userSid; 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; private String name;
@ApiModelProperty("产品政策sid") @ApiModelProperty("产品政策sid")
private String 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; private BigDecimal factoryDiscount;
@ApiModelProperty("厂家贴息用途") @ApiModelProperty("厂家贴息用途")
private String factoryDiscountUse; private String factoryDiscountUse;
@ApiModelProperty("厂家贴息用途")
private String factoryDiscountUseKey;
@ApiModelProperty("政策年利率") @ApiModelProperty("政策年利率")
private String policyYearRatio; private String policyYearRatio;
@ApiModelProperty("贷款月还") @ApiModelProperty("贷款月还")
@ -88,8 +90,10 @@ public class LoanSolutions extends BaseEntity {
@ApiModelProperty("是否勾选其它融") @ApiModelProperty("是否勾选其它融")
private int otherPolicyState; private int otherPolicyState;
@ApiModelProperty("是否是销售订单关联的") @ApiModelProperty("是否是销售订单关联的:0是,1为定制金融方案")
private int saleOrderState; 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; private BigDecimal vehTotalPrice;
@ApiModelProperty("名义留购价") @ApiModelProperty("名义留购价")
private BigDecimal nominalPrice; 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("更多配置名称") @ApiModelProperty("更多配置名称")
private String vehModelConfigMore; private String vehModelConfigMore;
@ApiModelProperty("单台指导价") @ApiModelProperty("单台指导价")
private BigDecimal vehPrice; private String vehPrice;
@ApiModelProperty("合格证公告型号") @ApiModelProperty("合格证公告型号")
private String vehNoticeModel; private String vehNoticeModel;
@ApiModelProperty("合格证公告型号sid")
private String vehNoticeModelSid;
@ApiModelProperty("是否包含上装") @ApiModelProperty("是否包含上装")
private boolean install; 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; 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: * @description:
* @author: dimengzhe * @author: dimengzhe
* @date: 2023/7/19 * @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>
<select id="selectListOne" resultType="com.yxt.anrui.riskcenter.api.loanfinotherPolicy.OtherPolicyVo"> <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>
<select id="selectListTwo" resultType="com.yxt.anrui.riskcenter.api.loanfinotherPolicy.OtherPolicyVo"> <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>
<select id="selectListOne" resultType="com.yxt.anrui.riskcenter.api.loanfinpolicy.PolicyVo"> <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 from loan_fin_policy lfp
where lfp.filingState = 2 where lfp.filingState = 1
and isPack = #{isPack} and isPack = #{isPack}
and lfp.useOrgSid = #{useOrgSid} and lfp.useOrgSid = #{useOrgSid}
and lfp.validDateTo > now() 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.FlowTaskFeign;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions; 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.SolutionsDetailsVo;
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDto; import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDto;
import com.yxt.anrui.riskcenter.api.loansolutionsdetail.LoanSolutionsDetail; 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.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -670,7 +672,7 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public ResultBean saveDtos(SolutionsDto dto) { public ResultBean saveDtoss(SolutionDetailsDto dto) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
String mainVehicleAmount = dto.getMainVehicleAmount(); String mainVehicleAmount = dto.getMainVehicleAmount();
if (StringUtils.isBlank(mainVehicleAmount)) { if (StringUtils.isBlank(mainVehicleAmount)) {
@ -740,420 +742,150 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
return rb.setMsg("主方案期数不能为空"); return rb.setMsg("主方案期数不能为空");
} }
//查詢是否有金融方案 //查詢是否有金融方案
LoanSolutions loanSolutions = baseMapper.selectByApplySid(dto.getSaleOrderSid()); LoanSolutions loanSolutions = baseMapper.selectByApplySid(dto.getBusSid());
if (loanSolutions != null) { if (loanSolutions != null) {
//删除该销售订单的 baseMapper.deleteByOrderSid(dto.getBusSid());
baseMapper.deleteByOrderSid(dto.getSaleOrderSid());
loanSolutionsOtherpolicyService.deleteByLoanSid(loanSolutions.getSid()); loanSolutionsOtherpolicyService.deleteByLoanSid(loanSolutions.getSid());
loanSolutionsDetailService.deleteByLoanSid(loanSolutions.getSid()); loanSolutionsDetailService.deleteByLoanSid(loanSolutions.getSid());
} }
//保存金融方案 //保存金融方案
loanSolutions = new LoanSolutions(); loanSolutions = new LoanSolutions();
if (StringUtils.isNotBlank(dto.getSaleOrderSid())) { loanSolutions.setSaleOrderState(1);
loanSolutions.setSalesOrderSid(dto.getSaleOrderSid()); if (StringUtils.isNotBlank(dto.getBusSid())) {
} loanSolutions.setSalesOrderSid(dto.getBusSid());
if (StringUtils.isNotBlank(dto.getTypeKey())) {
loanSolutions.setType(dto.getType());
loanSolutions.setTypeKey(dto.getTypeKey());
}
//是否打包
String isPack = dto.getIsPack();
if (StringUtils.isNotBlank(isPack)) {
loanSolutions.setIsPack(isPack);
} }
//产品政策名称 BeanUtil.copyProperties(dto, loanSolutions, "sid");
String policyName = dto.getPolicyName();
if (StringUtils.isNotBlank(policyName)) {
loanSolutions.setPolicyName(policyName);
}
//融资项目总额 = 主车发票价+融资票据+挂车+保险+购置税+车损上浮
BigDecimal loanTotal = new BigDecimal(BigInteger.ZERO);
//主车发票价 //主车发票价
loanTotal = loanTotal.add(new BigDecimal(mainVehicleAmount));
loanSolutions.setMainVehicleAmount(new BigDecimal(mainVehicleAmount)); loanSolutions.setMainVehicleAmount(new BigDecimal(mainVehicleAmount));
//是否勾选融资票据 //是否勾选融资票据
if (dto.isAccessoriesAmountCb()) { loanSolutions.setAccessoriesAmountCb(dto.isAccessoriesAmountCb() ? 1 : 0);
//融资票据 loanSolutions.setAccessoriesAmount(dto.isAccessoriesAmountCb() ? new BigDecimal(dto.getAccessoriesAmount()) : BigDecimal.ZERO);
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);
}
//是否勾选挂车 //是否勾选挂车
if (dto.isTrailerAmountCb()) { loanSolutions.setTrailerAmountCb(dto.isTrailerAmountCb() ? 1 : 0);
//挂车 loanSolutions.setTrailerAmount(dto.isTrailerAmountCb() ? new BigDecimal(dto.getTrailerAmount()) : BigDecimal.ZERO);
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);
}
//是否勾选保险 //是否勾选保险
if (dto.isPremiumCb()) { loanSolutions.setPremiumCb(dto.isPremiumCb() ? 1 : 0);
//保险 loanSolutions.setPremium(StringUtils.isNotBlank(dto.getPremium()) ? new BigDecimal(dto.getPremium()) : BigDecimal.ZERO);
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);
}
//是否勾选购置税 //是否勾选购置税
if (dto.isPurchaseTaxCb()) { loanSolutions.setPurchaseTaxCb(dto.isPurchaseTaxCb() ? 1 : 0);
//购置税 loanSolutions.setPurchaseTax(StringUtils.isNotBlank(dto.getPurchaseTax()) ? new BigDecimal(dto.getPurchaseTax()) : BigDecimal.ZERO);
String purchaseTax = dto.getPurchaseTax(); //项目融资总额
loanTotal = loanTotal.add(new BigDecimal(purchaseTax)); String loanTotal = dto.getLoanTotal();
loanSolutions.setPurchaseTax(new BigDecimal(purchaseTax)); loanSolutions.setLoanTotal(StringUtils.isNotBlank(loanTotal) ? new BigDecimal(loanTotal) : BigDecimal.ZERO);
loanSolutions.setPurchaseTaxCb(1); //首付比例
if (StringUtils.isNotBlank(dto.getOffsetPurchasetax())) { String downPayRatio = dto.getDownPayRatio();
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); loanSolutions.setDownPayRatio(downPayRatio);
} else { //首付金额
loanAmount = loanTotal; String downPayAmount = dto.getDownPayAmount();
loanSolutions.setDownPayAmount(BigDecimal.ZERO); loanSolutions.setDownPayAmount(StringUtils.isNotBlank(downPayAmount) ? new BigDecimal(downPayAmount) : BigDecimal.ZERO);
loanSolutions.setDownPayRatio("0"); //贷款金额
} String loanAmount = dto.getLoanAmount();
loanSolutions.setLoanAmount(loanAmount); loanSolutions.setLoanAmount(StringUtils.isNotBlank(loanAmount) ? new BigDecimal(loanAmount) : BigDecimal.ZERO);
loanSolutions.setLoanPeriod(loanPeriod);
//贷款保证金填写、贷款保证金比例计算。贷款保证金比例 = 贷款保证金/贷款金额*100
if (StringUtils.isNotBlank(dto.getBondAmount())) {
//贷款保证金
BigDecimal bondAmount = new BigDecimal(dto.getBondAmount());
//贷款保证金比例 //贷款保证金比例
String bondRatio = ""; String bondRatio = dto.getBondRatio();
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); loanSolutions.setBondRatio(bondRatio);
} else { //期数
loanSolutions.setBondAmount(BigDecimal.ZERO); loanSolutions.setLoanPeriod(loanPeriod);
loanSolutions.setBondRatio("0"); //保证金金额
} String bondAmount = dto.getBondAmount();
loanSolutions.setBondAmount(StringUtils.isNotBlank(bondAmount) ? new BigDecimal(bondAmount) : BigDecimal.ZERO);
//厂家贴息 //厂家贴息
String factoryDiscount = dto.getFactoryDiscount(); String factoryDiscount = dto.getFactoryDiscount();
if (StringUtils.isNotBlank(factoryDiscount)) { loanSolutions.setFactoryDiscount(StringUtils.isNotBlank(factoryDiscount) ? new BigDecimal(factoryDiscount) : BigDecimal.ZERO);
loanSolutions.setFactoryDiscount(new BigDecimal(factoryDiscount)); String discountCar = dto.getDiscountCar();
} else { loanSolutions.setDiscountCar(StringUtils.isNotBlank(discountCar) ? new BigDecimal(discountCar) : BigDecimal.ZERO);
loanSolutions.setFactoryDiscount(new BigDecimal(BigInteger.ZERO));
}
//厂家贴息用途
String factoryDiscountUse = dto.getFactoryDiscountUse();
if (StringUtils.isNotBlank(factoryDiscountUse)) {
loanSolutions.setFactoryDiscountUse(factoryDiscountUse);
}
//年利率 //年利率
String policyYearRatio = dto.getPolicyYearRatio(); String policyYearRatio = dto.getPolicyYearRatio();
loanSolutions.setPolicyYearRatio(policyYearRatio); loanSolutions.setPolicyYearRatio(policyYearRatio);
//月还金额 //月还金额
String loanPayMoney = dto.getLoanPayMoney(); String loanPayMoney = dto.getLoanPayMoney();
BigDecimal monthlyRepay1 = new BigDecimal(BigInteger.ZERO); loanSolutions.setLoanPayMoney(StringUtils.isNotBlank(loanPayMoney) ? new BigDecimal(loanPayMoney) : BigDecimal.ZERO);
if (StringUtils.isNotBlank(loanPayMoney)) {
loanSolutions.setLoanPayMoney(new BigDecimal(loanPayMoney));
monthlyRepay1 = monthlyRepay1.add(new BigDecimal(loanPayMoney));
} else {
loanSolutions.setLoanPayMoney(BigDecimal.ZERO);
}
//利息总额 //利息总额
BigDecimal interest = new BigDecimal(BigInteger.ZERO);
String loanInterest = dto.getLoanInterest(); String loanInterest = dto.getLoanInterest();
if (StringUtils.isNotBlank(loanInterest)) { loanSolutions.setLoanInterest(StringUtils.isNotBlank(loanInterest) ? new BigDecimal(loanInterest) : BigDecimal.ZERO);
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;
//=================================其它融
//勾选其它融
LoanSolutionsOtherpolicy loanSolutionsOtherpolicy = new LoanSolutionsOtherpolicy(); LoanSolutionsOtherpolicy loanSolutionsOtherpolicy = new LoanSolutionsOtherpolicy();
if (dto.isOtherPolicyState()) { if (dto.isOtherPolicyState()) {
//其它融名称 BeanUtil.copyProperties(dto, loanSolutionsOtherpolicy, "sid");
if (StringUtils.isNotBlank(dto.getOtherPolicyName())) {
loanSolutionsOtherpolicy.setOtherPolicyName(dto.getOtherPolicyName());
}
//贷款金额 //贷款金额
String otherPolicyAmount = dto.getOtherPolicyAmount(); String otherPolicyAmount = dto.getOtherPolicyAmount();
if (StringUtils.isNotBlank(otherPolicyAmount)) { loanSolutionsOtherpolicy.setOtherPolicyAmount(StringUtils.isNotBlank(otherPolicyAmount) ? new BigDecimal(otherPolicyAmount) : BigDecimal.ZERO);
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);
}
//其它融月还 //其它融月还
String otherPolicyMonthlyRepay = dto.getOtherPolicyMonthlyRepay(); String otherPolicyMonthlyRepay = dto.getOtherPolicyMonthlyRepay();
if (StringUtils.isNotBlank(otherPolicyMonthlyRepay)) { loanSolutionsOtherpolicy.setOtherPolicyMonthlyRepay(StringUtils.isNotBlank(otherPolicyMonthlyRepay) ? new BigDecimal(otherPolicyMonthlyRepay) : BigDecimal.ZERO);
loanSolutionsOtherpolicy.setOtherPolicyMonthlyRepay(new BigDecimal(otherPolicyMonthlyRepay));
monthlyRepay1 = monthlyRepay1.add(new BigDecimal(otherPolicyMonthlyRepay));
} else {
loanSolutionsOtherpolicy.setOtherPolicyMonthlyRepay(BigDecimal.ZERO);
}
//其它融利息总额 //其它融利息总额
String otherPolicyInterest = dto.getOtherPolicyInterest(); String otherPolicyInterest = dto.getOtherPolicyInterest();
if (StringUtils.isNotBlank(otherPolicyInterest)) { loanSolutionsOtherpolicy.setOtherPolicyInterest(StringUtils.isNotBlank(otherPolicyInterest) ? new BigDecimal(otherPolicyInterest) : BigDecimal.ZERO);
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);
loanSolutions.setOtherPolicyState(1); loanSolutions.setOtherPolicyState(1);
loanSolutionsOtherpolicy.setOtherPolicyYearRatio(dto.getOtherPolicyYearRatio()); String loanDownPay = dto.getLoanDownPay();
loanSolutionsOtherpolicy.setLoanDownPay(StringUtils.isNotBlank(loanDownPay) ? new BigDecimal(loanDownPay) : BigDecimal.ZERO);
} else { } else {
//不勾选其它融 BeanUtil.copyProperties(dto, loanSolutionsOtherpolicy, "sid");
//方案汇总 String loanDownPay = dto.getLoanDownPay();
//融资首付 = 首付金额-其它融贷款金额 loanSolutionsOtherpolicy.setLoanDownPay(StringUtils.isNotBlank(loanDownPay) ? new BigDecimal(loanDownPay) : 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);
//实际首付比例
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);
loanSolutions.setOtherPolicyState(0); loanSolutions.setOtherPolicyState(0);
} }
baseMapper.insert(loanSolutions); baseMapper.insert(loanSolutions);
loanSolutionsOtherpolicy.setSolutionsSid(loanSolutions.getSid()); loanSolutionsOtherpolicy.setSolutionsSid(loanSolutions.getSid());
loanSolutionsOtherpolicyService.insert(loanSolutionsOtherpolicy); loanSolutionsOtherpolicyService.insert(loanSolutionsOtherpolicy);
//=========================应收明细 /***********************应收明细************************************/
LoanSolutionsDetail loanSolutionsDetail = new LoanSolutionsDetail(); LoanSolutionsDetail loanSolutionsDetail = new LoanSolutionsDetail();
//应收合计 = 融资首付+贷款保证金+保险保证金+落户保证金+服务费+代收意外险+补车价+上牌费+运管费+其它费用 BeanUtil.copyProperties(dto, loanSolutionsDetail, "sid");
BigDecimal receivableTotal = new BigDecimal(BigInteger.ZERO); //融资首付
//融资首付 = 首付金额-其它融贷款金额 String downPayAmounts = dto.getDownPayAmounts();
BigDecimal downPayAmounts = new BigDecimal(BigInteger.ZERO); loanSolutionsDetail.setDownPayAmounts(StringUtils.isNotBlank(downPayAmounts) ? new BigDecimal(downPayAmounts) : BigDecimal.ZERO);
downPayAmounts = downPayAmounts.add(downPayAmount).subtract(otherPolicyAmount1);
loanSolutionsDetail.setDownPayAmounts(downPayAmounts);
receivableTotal = receivableTotal.add(downPayAmounts);
//贷款保证金 //贷款保证金
if (StringUtils.isNotBlank(dto.getBondAmount())) { String bondAmounts = dto.getBondAmounts();
receivableTotal = receivableTotal.add(new BigDecimal(dto.getBondAmount())); loanSolutionsDetail.setBondAmounts(StringUtils.isNotBlank(bondAmounts) ? new BigDecimal(bondAmounts) : BigDecimal.ZERO);
loanSolutionsDetail.setBondAmounts(new BigDecimal(dto.getBondAmount()));
} else {
loanSolutionsDetail.setBondAmounts(BigDecimal.ZERO);
}
//保险保证金 //保险保证金
String depositPremium = dto.getDepositPremium(); String depositPremium = dto.getDepositPremium();
if (StringUtils.isNotBlank(depositPremium)) { loanSolutionsDetail.setDepositPremium(StringUtils.isNotBlank(depositPremium) ? new BigDecimal(depositPremium) : BigDecimal.ZERO);
receivableTotal = receivableTotal.add(new BigDecimal(depositPremium));
loanSolutionsDetail.setDepositPremium(new BigDecimal(depositPremium));
} else {
loanSolutionsDetail.setDepositPremium(BigDecimal.ZERO);
}
//落户保证金 //落户保证金
String depositSettle = dto.getDepositSettle(); String depositSettle = dto.getDepositSettle();
if (StringUtils.isNotBlank(depositSettle)) { loanSolutionsDetail.setDepositSettle(StringUtils.isNotBlank(depositSettle) ? new BigDecimal(depositSettle) : BigDecimal.ZERO);
receivableTotal = receivableTotal.add(new BigDecimal(depositSettle));
loanSolutionsDetail.setDepositSettle(new BigDecimal(depositSettle));
} else {
loanSolutionsDetail.setDepositSettle(BigDecimal.ZERO);
}
//服务费 //服务费
String serviceAmount = dto.getServiceAmount(); String serviceAmount = dto.getServiceAmount();
if (StringUtils.isNotBlank(serviceAmount)) { loanSolutionsDetail.setServiceAmount(StringUtils.isNotBlank(serviceAmount) ? new BigDecimal(serviceAmount) : BigDecimal.ZERO);
receivableTotal = receivableTotal.add(new BigDecimal(serviceAmount));
loanSolutionsDetail.setServiceAmount(new BigDecimal(serviceAmount));
} else {
loanSolutionsDetail.setServiceAmount(BigDecimal.ZERO);
}
//代收意外险 //代收意外险
String proxyAccidentPremium = dto.getProxyAccidentPremium(); String proxyAccidentPremium = dto.getProxyAccidentPremium();
if (StringUtils.isNotBlank(proxyAccidentPremium)) { loanSolutionsDetail.setProxyAccidentPremium(StringUtils.isNotBlank(proxyAccidentPremium) ? new BigDecimal(proxyAccidentPremium) : BigDecimal.ZERO);
receivableTotal = receivableTotal.add(new BigDecimal(proxyAccidentPremium));
loanSolutionsDetail.setProxyAccidentPremium(new BigDecimal(proxyAccidentPremium));
} else {
loanSolutionsDetail.setProxyAccidentPremium(BigDecimal.ZERO);
}
//上牌费 //上牌费
String registerAmount = dto.getRegisterAmount(); String registerAmount = dto.getRegisterAmount();
if (StringUtils.isNotBlank(registerAmount)) { loanSolutionsDetail.setRegisterAmount(StringUtils.isNotBlank(registerAmount) ? new BigDecimal(registerAmount) : BigDecimal.ZERO);
receivableTotal = receivableTotal.add(new BigDecimal(registerAmount));
loanSolutionsDetail.setRegisterAmount(new BigDecimal(registerAmount));
} else {
loanSolutionsDetail.setRegisterAmount(BigDecimal.ZERO);
}
//运管费 //运管费
String operationAmount = dto.getOperationAmount(); String operationAmount = dto.getOperationAmount();
if (StringUtils.isNotBlank(operationAmount)) { loanSolutionsDetail.setOperationAmount(StringUtils.isNotBlank(operationAmount) ? new BigDecimal(operationAmount) : BigDecimal.ZERO);
receivableTotal = receivableTotal.add(new BigDecimal(operationAmount));
loanSolutionsDetail.setOperationAmount(new BigDecimal(operationAmount));
} else {
loanSolutionsDetail.setOperationAmount(BigDecimal.ZERO);
}
//补车价 //补车价
String vehOtherPrice = dto.getVehOtherPrice(); String vehOtherPrice = dto.getVehOtherPrice();
if (StringUtils.isNotBlank(vehOtherPrice)) { loanSolutionsDetail.setVehOtherPrice(StringUtils.isNotBlank(vehOtherPrice) ? new BigDecimal(vehOtherPrice) : BigDecimal.ZERO);
receivableTotal = receivableTotal.add(new BigDecimal(vehOtherPrice));
loanSolutionsDetail.setVehOtherPrice(new BigDecimal(vehOtherPrice));
} else {
loanSolutionsDetail.setVehOtherPrice(BigDecimal.ZERO);
}
//其它费用 //其它费用
String otherAmount = dto.getOtherAmount(); String otherAmount = dto.getOtherAmount();
if (StringUtils.isNotBlank(otherAmount)) { loanSolutionsDetail.setOtherAmount(StringUtils.isNotBlank(otherAmount) ? new BigDecimal(otherAmount) : BigDecimal.ZERO);
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);
//代收首年保险费 //代收首年保险费
String proxyPremium = dto.getProxyPremium(); String proxyPremium = dto.getProxyPremium();
if (StringUtils.isNotBlank(proxyPremium)) { loanSolutionsDetail.setProxyPremium(StringUtils.isNotBlank(proxyPremium) ? new BigDecimal(proxyPremium) : BigDecimal.ZERO);
receivableTotal = receivableTotal.add(new BigDecimal(proxyPremium));
loanSolutionsDetail.setProxyPremium(new BigDecimal(proxyPremium));
} else {
loanSolutionsDetail.setProxyPremium(BigDecimal.ZERO);
}
//代收购置费 //代收购置费
String proxyPurchasetax = dto.getProxyPurchasetax(); String proxyPurchasetax = dto.getProxyPurchasetax();
if (StringUtils.isNotBlank(proxyPurchasetax)) { loanSolutionsDetail.setProxyPurchasetax(StringUtils.isNotBlank(proxyPurchasetax) ? new BigDecimal(proxyPurchasetax) : BigDecimal.ZERO);
receivableTotal = receivableTotal.add(new BigDecimal(proxyPurchasetax));
loanSolutionsDetail.setProxyPurchasetax(new BigDecimal(proxyPurchasetax));
} else {
loanSolutionsDetail.setProxyPurchasetax(BigDecimal.ZERO);
}
//抵顶费用合计 = 抵顶首年保险费+抵顶购置税
BigDecimal offsetTotal = new BigDecimal(BigInteger.ZERO);
//抵顶首年保险费 //抵顶首年保险费
String offsetPremium = dto.getOffsetPremium(); String offsetPremium = dto.getOffsetPremium();
if (dto.isPremiumCb()) { loanSolutionsDetail.setOffsetPremium(StringUtils.isNotBlank(offsetPremium) ? new BigDecimal(offsetPremium) : BigDecimal.ZERO);
if (StringUtils.isNotBlank(offsetPremium)) { String proxyTotal = dto.getProxyTotal();
offsetTotal = offsetTotal.add(new BigDecimal(offsetPremium)); loanSolutionsDetail.setProxyTotal(StringUtils.isNotBlank(proxyTotal) ? new BigDecimal(proxyTotal) : BigDecimal.ZERO);
loanSolutionsDetail.setOffsetPremium(new BigDecimal(offsetPremium)); String offsetTotal = dto.getOffsetTotal();
} else { loanSolutionsDetail.setOffsetTotal(StringUtils.isNotBlank(offsetTotal) ? new BigDecimal(offsetTotal) : BigDecimal.ZERO);
loanSolutionsDetail.setOffsetPremium(BigDecimal.ZERO); //应收合计
} String receivableTotal = dto.getReceivableTotal();
} loanSolutionsDetail.setReceivableTotal(StringUtils.isNotBlank(receivableTotal) ? new BigDecimal(receivableTotal) : BigDecimal.ZERO);
if (dto.isPurchaseTaxCb()) { //实收合计
//抵顶购置税 String realTotal = dto.getRealTotal();
String offsetPurchasetax = dto.getOffsetPurchasetax(); loanSolutionsDetail.setRealTotal(StringUtils.isNotBlank(realTotal) ? new BigDecimal(realTotal) : BigDecimal.ZERO);
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);
//车辆总价 //车辆总价
String vehTotalPrice = dto.getVehTotalPrice(); String vehTotalPrice = dto.getVehTotalPrice();
loanSolutionsDetail.setVehTotalPrice(StringUtils.isNotBlank(vehTotalPrice) ? new BigDecimal(vehTotalPrice) : BigDecimal.ZERO);
//名义留购价 //名义留购价
String nominalPrice = dto.getNominalPrice(); String nominalPrice = dto.getNominalPrice();
loanSolutionsDetail.setRealTotal(realTotal); loanSolutionsDetail.setNominalPrice(StringUtils.isNotBlank(nominalPrice) ? new BigDecimal(nominalPrice) : BigDecimal.ZERO);
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.setSolutionsSid(loanSolutions.getSid()); loanSolutionsDetail.setSolutionsSid(loanSolutions.getSid());
loanSolutionsDetailService.insert(loanSolutionsDetail); loanSolutionsDetailService.insert(loanSolutionsDetail);
return rb.success(); 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> <where>
${ew.sqlSegment} ${ew.sqlSegment}
</where> </where>
order by id desc order by lote.id desc
</select> </select>
<update id="updateFlowFiled"> <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.loanfinotherPolicy.LoanFinOtherPolicy;
import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicy; import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicy;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions; 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.SolutionsDetailsVo;
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDto; import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDto;
import com.yxt.anrui.riskcenter.api.loantemplate.*; import com.yxt.anrui.riskcenter.api.loantemplate.*;
@ -139,9 +140,10 @@ public class LoanTemplateService extends MybatisBaseService<LoanTemplateMapper,
ResultBean<String> rb = ResultBean.fireFail(); ResultBean<String> rb = ResultBean.fireFail();
String sid = dto.getSid(); String sid = dto.getSid();
if (StringUtils.isBlank(sid)) { if (StringUtils.isBlank(sid)) {
//ToDo:billNo
//新增 //新增
LoanTemplate loanTemplate = new LoanTemplate(); LoanTemplate loanTemplate = new LoanTemplate();
BeanUtil.copyProperties(dto, loanTemplate, sid); BeanUtil.copyProperties(dto, loanTemplate, "sid");
loanTemplate.setCreateBySid(dto.getUserSid()); loanTemplate.setCreateBySid(dto.getUserSid());
//查询申请人 //查询申请人
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid()); ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid());
@ -173,10 +175,10 @@ public class LoanTemplateService extends MybatisBaseService<LoanTemplateMapper,
saveOrUpdateInstallAndTrailer(sid, dto); saveOrUpdateInstallAndTrailer(sid, dto);
LoanTemplateSolutionsDto loanTemplateSolutionsDto = dto.getLoanTemplateSolutions(); LoanTemplateSolutionsDto loanTemplateSolutionsDto = dto.getLoanTemplateSolutions();
if (loanTemplateSolutionsDto != null) { if (loanTemplateSolutionsDto != null) {
SolutionsDto solutionsDto = new SolutionsDto(); SolutionDetailsDto solutionsDto = new SolutionDetailsDto();
BeanUtil.copyProperties(loanTemplateSolutionsDto, solutionsDto, "sid"); BeanUtil.copyProperties(loanTemplateSolutionsDto, solutionsDto, "sid");
solutionsDto.setSaleOrderSid(sid); solutionsDto.setBusSid(sid);
loanSolutionsService.saveDto(solutionsDto); loanSolutionsService.saveDtoss(solutionsDto);
} }
baseMapper.insert(loanTemplate); baseMapper.insert(loanTemplate);
} else { } else {
@ -189,10 +191,10 @@ public class LoanTemplateService extends MybatisBaseService<LoanTemplateMapper,
saveOrUpdateInstallAndTrailer(sid, dto); saveOrUpdateInstallAndTrailer(sid, dto);
LoanTemplateSolutionsDto loanTemplateSolutionsDto = dto.getLoanTemplateSolutions(); LoanTemplateSolutionsDto loanTemplateSolutionsDto = dto.getLoanTemplateSolutions();
if (loanTemplateSolutionsDto != null) { if (loanTemplateSolutionsDto != null) {
SolutionsDto solutionsDto = new SolutionsDto(); SolutionDetailsDto solutionsDto = new SolutionDetailsDto();
BeanUtil.copyProperties(loanTemplateSolutionsDto, solutionsDto, "sid"); BeanUtil.copyProperties(loanTemplateSolutionsDto, solutionsDto, "sid");
solutionsDto.setSaleOrderSid(sid); solutionsDto.setBusSid(sid);
loanSolutionsService.saveDto(solutionsDto); loanSolutionsService.saveDtoss(solutionsDto);
} }
baseMapper.updateById(loanTemplate); 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()); fileList = fileList.stream().map(v -> v.replaceAll(fileUploadComponent.getUrlPrefix(), "")).collect(Collectors.toList());
String files = String.join(",", fileList); String files = String.join(",", fileList);
loanTemplateTrailer.setVehTrailerCertificateFile(files); loanTemplateTrailer.setVehTrailerCertificateFile(files);
}else{
loanTemplateTrailer.setVehTrailerCertificateFile("");
} }
loanTemplateTrailerService.insert(loanTemplateTrailer); 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