Browse Source

资方信审通过推送融资放款应收

master
dimengzhe 2 years ago
parent
commit
b025e6eeaa
  1. 4
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusSalesOrderLoancontractFeign.java
  2. 5
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusSalesOrderLoancontractFeignFallback.java
  3. 18
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/LoanContractPush.java
  4. 5
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractRest.java
  5. 71
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractService.java
  6. 4
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/LoanSolutionsFeign.java
  7. 5
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/LoanSolutionsFeignFallback.java
  8. 19
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/PushVo.java
  9. 12
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancapitalcreditresult/LoanCapitalCreditResultService.java
  10. 6
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsRest.java
  11. 54
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsService.java

4
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusSalesOrderLoancontractFeign.java

@ -95,4 +95,8 @@ public interface BusSalesOrderLoancontractFeign {
@ResponseBody
public ResultBean<PagerVo<BusLoancontractForRepayVo>> listPageForRepay(@RequestBody PagerQuery<BusLoancontractForRepayQuery> pq);
@ApiOperation("推送融资放款的应收")
@PostMapping("/pushLoanOrder")
@ResponseBody
ResultBean pushLoanOrder(@RequestBody LoanContractPush loanContractPush);
}

5
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/BusSalesOrderLoancontractFeignFallback.java

@ -89,4 +89,9 @@ public class BusSalesOrderLoancontractFeignFallback implements BusSalesOrderLoan
public ResultBean<PagerVo<BusLoancontractForRepayVo>> listPageForRepay(PagerQuery<BusLoancontractForRepayQuery> pq) {
return null;
}
@Override
public ResultBean pushLoanOrder(LoanContractPush loanContractPush) {
return null;
}
}

18
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderloancontract/LoanContractPush.java

@ -0,0 +1,18 @@
package com.yxt.anrui.buscenter.api.bussalesorderloancontract;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/9/11
**/
@Data
public class LoanContractPush {
@ApiModelProperty("消贷合同sid")
private String loanContractSid;
@ApiModelProperty("销售订单sid")
private String saleOrderSid;
}

5
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractRest.java

@ -118,4 +118,9 @@ public class BusSalesOrderLoancontractRest implements BusSalesOrderLoancontractF
PagerVo<BusLoancontractForRepayVo> pv = busSalesOrderLoancontractService.listPageForRepay(pq);
return rb.success().setData(pv);
}
@Override
public ResultBean pushLoanOrder(LoanContractPush loanContractPush) {
return busSalesOrderLoancontractService.pushLoanOrder(loanContractPush);
}
}

71
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderloancontract/BusSalesOrderLoancontractService.java

@ -28,15 +28,22 @@ package com.yxt.anrui.buscenter.biz.bussalesorderloancontract;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesorderloancontract.*;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign;
import com.yxt.anrui.buscenter.biz.bussalesorder.BusSalesOrderService;
import com.yxt.anrui.buscenter.biz.bussalesordervehicle.BusSalesOrderVehicleService;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedFeign;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.UnCollectionDto;
import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameter;
import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterQuery;
import com.yxt.anrui.riskcenter.api.loanparameter.LoanParameterVo;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutionsFeign;
import com.yxt.anrui.riskcenter.api.loansolutions.PushVo;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
@ -47,6 +54,7 @@ import com.yxt.common.core.vo.PagerVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
@ -72,6 +80,12 @@ public class BusSalesOrderLoancontractService extends MybatisBaseService<BusSale
private SysUserFeign sysUserFeign;
@Autowired
private BusSalesOrderVehicleService busSalesOrderVehicleService;
@Autowired
private LoanSolutionsFeign loanSolutionsFeign;
@Autowired
private BusSalesOrderService busSalesOrderService;
@Autowired
private FinUncollectedReceivablesDetailedFeign finUncollectedDetailedFeign;
private QueryWrapper<BusSalesOrderLoancontract> createQueryWrapper(BusSalesOrderLoancontractQuery query) {
// todo: 这里根据具体业务调整查询条件
@ -238,4 +252,61 @@ public class BusSalesOrderLoancontractService extends MybatisBaseService<BusSale
baseMapper.updateBankConAndBusNo(loanContractSid, bankContractNo);
return rb.success();
}
public ResultBean pushLoanOrder(LoanContractPush loanContractPush) {
ResultBean rb = ResultBean.fireFail();
String saleOrderSid = loanContractPush.getSaleOrderSid();
String loanContractSid = loanContractPush.getLoanContractSid();
BusSalesOrder busSalesOrder = busSalesOrderService.fetchBySid(saleOrderSid);
//根据消贷合同查询贷款人
BusSalesOrderLoancontract busSalesOrderLoancontract = fetchBySid(loanContractSid);
if(busSalesOrderLoancontract != null){
//根据销售订单的贷款人sid查询车辆表中的数据
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleService.selectByBorrowSid(busSalesOrderLoancontract.getBorrowerSid());
//这是生成业务系统融资放款应收的逻辑:
// 融资放款=融资项目总额-融资首付-[贷款保证金]-[厂家贴息],根据选择的产品政策来判断,若贷款保证金为固定的,需要减去,若为敞口的,不需要减;差额放款需要减厂家贴息,全额放款不需要。差额放款的厂家贴息金额存入“其他应收”字段中,
//计算融资放款的金额以及厂家贴息金额
ResultBean<PushVo> resultBean = loanSolutionsFeign.selectMoney(saleOrderSid);
if(resultBean.getData() != null){
PushVo pushVo = resultBean.getData();
UnCollectionDto unCollectionDto = new UnCollectionDto();
unCollectionDto.setContractNo(busSalesOrder.getContractNo());
// unCollectionDto.setContractSid(contractSid);
//客户名称
unCollectionDto.setCustomerName(busSalesOrder.getCustomerName());
//客户sid
unCollectionDto.setCustomerSid(busSalesOrder.getCustomerSid());
//客户类型
unCollectionDto.setCustomerClass(busSalesOrder.getCustomerClass());
//客户类型
unCollectionDto.setCustomerClassKey(busSalesOrder.getCustomerClassKey());
//客户头像
unCollectionDto.setCustomerImage(busSalesOrder.getCustomerPhoto());
unCollectionDto.setReceivablesName("融资放款");
unCollectionDto.setCustomerPhone(busSalesOrder.getMobile());
unCollectionDto.setUseOrgSid(busSalesOrder.getUseOrgSid());
unCollectionDto.setVinNo(busSalesOrderVehicle.getLinkNo());
unCollectionDto.setCurrentReceivableMoney(pushVo.getMoney());
unCollectionDto.setUserSid(busSalesOrder.getCreateBySid());
unCollectionDto.setReveivableMoney(pushVo.getMoney());
unCollectionDto.setBusVinSid(busSalesOrderVehicle.getSid());
unCollectionDto.setPayType(busSalesOrder.getPayType());
unCollectionDto.setPayTypeKey(busSalesOrder.getPayTypeKey());
unCollectionDto.setPurchaseSystemName(busSalesOrder.getPurchaseSystemName());
unCollectionDto.setPurchaseSystemSid(busSalesOrder.getPurchaseSystemSid());
unCollectionDto.setOrgSidPath(busSalesOrder.getOrgSidPath());
unCollectionDto.setStaffUserSid(busSalesOrder.getCreateBySid());
unCollectionDto.setStaffName(busSalesOrder.getStaffName());
unCollectionDto.setStaffDeptName(busSalesOrder.getOrgName());
unCollectionDto.setStaffDeptSid(busSalesOrder.getOrgSid());
unCollectionDto.setUseOrgName(busSalesOrder.getUseOrgName());
unCollectionDto.setKxState("01");
if (StringUtils.isNotBlank(pushVo.getOtherReceivableMoney())) {
unCollectionDto.setOtherReceivableMoney(new BigDecimal(pushVo.getOtherReceivableMoney()));
}
finUncollectedDetailedFeign.saveUnCollection(unCollectionDto);
}
}
return rb.success();
}
}

4
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/LoanSolutionsFeign.java

@ -118,5 +118,7 @@ public interface LoanSolutionsFeign {
@PostMapping("/details2")
ResultBean<SolutionssVo> details2(@RequestBody SolutionssQuery query);
@ApiOperation("查询融资放款的金额")
@GetMapping("/selectMoney")
ResultBean<PushVo> selectMoney(@RequestParam("saleOrderSid") String saleOrderSid);
}

5
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/LoanSolutionsFeignFallback.java

@ -88,6 +88,11 @@ public class LoanSolutionsFeignFallback implements LoanSolutionsFeign {
return null;
}
@Override
public ResultBean<PushVo> selectMoney(String saleOrderSid) {
return null;
}
/* @Override
public ResultBean<PagerVo<LoanSolutionsVo>> listPage(PagerQuery<LoanSolutionsQuery> pq) {
ResultBean rb = ResultBean.fireFail();

19
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loansolutions/PushVo.java

@ -0,0 +1,19 @@
package com.yxt.anrui.riskcenter.api.loansolutions;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/9/11
**/
@Data
public class PushVo implements Vo {
private static final long serialVersionUID = 7612306872701336004L;
@ApiModelProperty("融资放款金额")
private String money;
@ApiModelProperty("厂家贴息金额")
private String otherReceivableMoney;
}

12
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loancapitalcreditresult/LoanCapitalCreditResultService.java

@ -30,6 +30,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.api.R;
import com.yxt.anrui.buscenter.api.bussalesorderloancontract.BusSalesOrderLoancontractFeign;
import com.yxt.anrui.buscenter.api.bussalesorderloancontract.LoanContractPush;
import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.riskcenter.api.loanhomevisitinvestigatefile.LoanAttachTypeEnum;
@ -174,6 +175,13 @@ public class LoanCapitalCreditResultService extends MybatisBaseService<LoanCapit
}
baseMapper.updateStateAndDateResult(dtoSid, dto.getCapCarefulDate(), dto.getCapCarefulResult());
busSalesOrderLoancontractFeign.updateBankConAndBusNo(dto.getLoanContractSid(), dto.getBankContractNo());
if("通过".equals(dto.getCapCarefulResult())){//通过推送融资放款到应收未收
LoanCapitalCreditResult loanCapitalCreditResult = fetchBySid(dtoSid);
LoanContractPush loanContractPush = new LoanContractPush();
loanContractPush.setLoanContractSid(loanCapitalCreditResult.getLoanContractSid());
loanContractPush.setSaleOrderSid(loanCapitalCreditResult.getSaleOrderSid());
ResultBean resultBean = busSalesOrderLoancontractFeign.pushLoanOrder(loanContractPush);
}
return rb.success();
}
@ -227,8 +235,4 @@ public class LoanCapitalCreditResultService extends MybatisBaseService<LoanCapit
}
return rb.success().setData(xsfjImages);
}
public void getOrderPush(){
}
}

6
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsRest.java

@ -2,6 +2,7 @@ package com.yxt.anrui.riskcenter.biz.loansolutions;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutionsFeign;
import com.yxt.anrui.riskcenter.api.loansolutions.PushVo;
import com.yxt.anrui.riskcenter.api.loansolutions.app.*;
import com.yxt.anrui.riskcenter.api.loansolutions.calculate.CalculateQuery;
import com.yxt.anrui.riskcenter.api.loansolutions.calculate.CalculateVo;
@ -100,6 +101,11 @@ public class LoanSolutionsRest implements LoanSolutionsFeign {
return loanSolutionsService.details2(query);
}
@Override
public ResultBean<PushVo> selectMoney(String saleOrderSid) {
return loanSolutionsService.selectMoney(saleOrderSid);
}
/* @Override
public ResultBean<PagerVo<LoanSolutionsVo>> listPage(@RequestBody PagerQuery<LoanSolutionsQuery> pq) {
ResultBean rb = ResultBean.fireFail();

54
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansolutions/LoanSolutionsService.java

@ -12,6 +12,7 @@ import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
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.PushVo;
import com.yxt.anrui.riskcenter.api.loansolutions.SolutionDetailsDto;
import com.yxt.anrui.riskcenter.api.loansolutions.app.*;
import com.yxt.anrui.riskcenter.api.loansolutions.calculate.CalculateQuery;
@ -1782,9 +1783,9 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
//融资票据
StringBuilder accessoriesAmountValue = new StringBuilder();
if (StringUtils.isNotBlank(solutionssVo.getAccessoriesAmount())) {
if(!solutionssVo.isAccessoriesAmountCb()){
if (!solutionssVo.isAccessoriesAmountCb()) {
accessoriesAmountValue = accessoriesAmountValue.append("\t").append("配件:").append("0");
}else{
} else {
accessoriesAmountValue = accessoriesAmountValue.append("\t").append("配件:").append(solutionssVo.getAccessoriesAmount());
}
} else {
@ -1794,9 +1795,9 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
//挂车
StringBuilder trailerAmountValue = new StringBuilder();
if (StringUtils.isNotBlank(solutionssVo.getTrailerAmount())) {
if(!solutionssVo.isTrailerAmountCb()){
if (!solutionssVo.isTrailerAmountCb()) {
trailerAmountValue = trailerAmountValue.append("\t").append("挂车:").append("0");
}else{
} else {
trailerAmountValue = trailerAmountValue.append("\t").append("挂车:").append(solutionssVo.getTrailerAmount());
}
} else {
@ -1808,7 +1809,7 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
if (StringUtils.isNotBlank(solutionssVo.getPremium())) {
if (!solutionssVo.isPremiumCb()) {
premiumValue = premiumValue.append("\t").append("保险:").append("0");
}else{
} else {
premiumValue = premiumValue.append("\t").append("保险:").append(solutionssVo.getPremium());
}
} else {
@ -1818,9 +1819,9 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
//购置税
StringBuilder purchaseTaxValue = new StringBuilder();
if (StringUtils.isNotBlank(solutionssVo.getPurchaseTax())) {
if(!solutionssVo.isPurchaseTaxCb()){
if (!solutionssVo.isPurchaseTaxCb()) {
purchaseTaxValue = purchaseTaxValue.append("\t").append("购置税:").append("0");
}else{
} else {
purchaseTaxValue = purchaseTaxValue.append("\t").append("购置税:").append(solutionssVo.getPurchaseTax());
}
} else {
@ -2500,6 +2501,45 @@ public class LoanSolutionsService extends MybatisBaseService<LoanSolutionsMapper
return rb.success().setData(solutionssVo);
}
public ResultBean<PushVo> selectMoney(String saleOrderSid) {
ResultBean<PushVo> rb = ResultBean.fireFail();
PushVo pushVo = new PushVo();
//融资放款=融资项目总额-融资首付-[贷款保证金]-[厂家贴息]
//根据选择的产品政策来判断,若贷款保证金为固定的,需要减去,若为敞口的,不需要减;
// 差额放款需要减厂家贴息,全额放款不需要。差额放款的厂家贴息金额存入“其他应收”字段中,
BigDecimal bg = BigDecimal.ZERO;
LoanSolutions loanSolutions = baseMapper.selectBySaleOrderSid(saleOrderSid);
if (loanSolutions != null) {
//根据产品政策sid查询
bg = bg.add(loanSolutions.getLoanTotal());
//查询融资首付
LoanSolutionsOtherpolicy loanSolutionsOtherpolicy = loanSolutionsOtherpolicyService.selectByLoanSid(loanSolutions.getSid());
if (loanSolutionsOtherpolicy != null) {
bg = bg.subtract(loanSolutionsOtherpolicy.getLoanDownPay());
}
//查询产品政策
LoanFinPolicy loanFinPolicy = loanFinPolicyService.fetchBySid(loanSolutions.getPolicySid());
if (loanFinPolicy != null) {
if ("01".equals(loanFinPolicy.getBondTypeKey())) {//01固定
LoanSolutionsDetail loanSolutionsDetail = loanSolutionsDetailService.selectLoanSid(loanSolutions.getSid());
if (loanSolutionsDetail != null) {
if (loanSolutionsDetail.getBondAmounts() != null) {
bg = bg.subtract(loanSolutionsDetail.getBondAmounts());
}
}
}
if ("01".equals(loanFinPolicy.getDiscountUseTypeKey())) {//01差额放款
if (loanSolutions.getFactoryDiscount() != null) {
bg = bg.subtract(loanSolutions.getFactoryDiscount());
pushVo.setOtherReceivableMoney(loanSolutions.getFactoryDiscountUse());
}
}
}
}
pushVo.setMoney(bg.toString());
return rb.success().setData(pushVo);
}

Loading…
Cancel
Save