Browse Source

优化结清逻辑

master
fanzongzhe 9 months ago
parent
commit
2956c7cd83
  1. 59
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyService.java

59
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyService.java

@ -879,11 +879,15 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
BigDecimal rate2 = new BigDecimal("0.144"); //利率14.4% BigDecimal rate2 = new BigDecimal("0.144"); //利率14.4%
BigDecimal fund = BigDecimal.ZERO; //减免后的占用费年利率 BigDecimal fund = BigDecimal.ZERO; //减免后的占用费年利率
BigDecimal fundJm = BigDecimal.ZERO; //减免后的占用费年利率 BigDecimal fundJm = BigDecimal.ZERO; //减免后的占用费年利率
BigDecimal depositJZ = BigDecimal.ZERO; //结转贷款保证金
LoanSettleCompanyCost companyCost = loanSettleCompanyCostService.selectByMainSid(businessSid); LoanSettleCompanyCost companyCost = loanSettleCompanyCostService.selectByMainSid(businessSid);
if (null != companyCost) { if (null != companyCost) {
if (null != companyCost.getFunfCost()) { if (null != companyCost.getFunfCost()) {
fund = companyCost.getFunfCost(); fund = companyCost.getFunfCost();
} }
if (null != companyCost.getLoanDeposit()) {
depositJZ = companyCost.getLoanDeposit();
}
} }
LoanSettleCompanyReduction reduction2 = loanSettleCompanyReductionService.selectByMainSid(businessSid); LoanSettleCompanyReduction reduction2 = loanSettleCompanyReductionService.selectByMainSid(businessSid);
if (null != reduction2) { if (null != reduction2) {
@ -949,8 +953,14 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
reliefMoney(loanSettleApply); reliefMoney(loanSettleApply);
if (amountTo.compareTo(BigDecimal.ZERO) <= 0) { if (amountTo.compareTo(BigDecimal.ZERO) <= 0) {
//减免后结清合计 <= 0 //减免后结清合计 <= 0
//结转剩余保证金 int check = 0;// 0不推抵顶保证金凭证 1推送
carryForward(loanSettleApply); //结清合计 + 贷款保证金结转金额
BigDecimal add = amountTo.add(depositJZ);
if (add.compareTo(BigDecimal.ZERO) > 0) {
//结转剩余保证金
carryForward(loanSettleApply);
check = 1;
}
//设置结清申请的“客户结清确认”状态为是 //设置结清申请的“客户结清确认”状态为是
loanSettleApply.setState(1); loanSettleApply.setState(1);
//更新车辆表结清状态 //更新车辆表结清状态
@ -960,7 +970,7 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
//设置认款月还为已转付 //设置认款月还为已转付
updatePaymentStateByBusVinSid(loanSettleApply.getBusVinSid()); updatePaymentStateByBusVinSid(loanSettleApply.getBusVinSid());
//推送财务凭证 //推送财务凭证
pushSettleVoucher(loanSettleApply); pushSettleVoucher(loanSettleApply,check);
} }
baseMapper.updateById(loanSettleApply); baseMapper.updateById(loanSettleApply);
} else { } else {
@ -1153,9 +1163,6 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
private void carryForward(LoanSettleApply loanSettleApply) { private void carryForward(LoanSettleApply loanSettleApply) {
String userSid = loanSettleApply.getCreateBySid(); String userSid = loanSettleApply.getCreateBySid();
BigDecimal deposit = BigDecimal.ZERO; // 贷款保证金 - (扣罚金额-贷款保证金减免) BigDecimal deposit = BigDecimal.ZERO; // 贷款保证金 - (扣罚金额-贷款保证金减免)
// BigDecimal depositKF = BigDecimal.ZERO; // 贷款保证金 - (扣罚金额-贷款保证金减免)
// BigDecimal depositJM = BigDecimal.ZERO; // 贷款保证金 - (扣罚金额-贷款保证金减免)
// BigDecimal amountTo = BigDecimal.ZERO; // 资方结清合计
String busVinSid = loanSettleApply.getBusVinSid(); String busVinSid = loanSettleApply.getBusVinSid();
List<LoanRepaymentHistory> histories = new ArrayList<>();//还款记录 List<LoanRepaymentHistory> histories = new ArrayList<>();//还款记录
List<LoanRepaymentPlanDetails> updatePsList = new ArrayList<>();//还款计划明细集合 List<LoanRepaymentPlanDetails> updatePsList = new ArrayList<>();//还款计划明细集合
@ -1172,24 +1179,7 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
if (null != companyCost.getLoanDeposit()) { if (null != companyCost.getLoanDeposit()) {
deposit = companyCost.getLoanDeposit(); deposit = companyCost.getLoanDeposit();
} }
// if (null != companyCost.getDeductionAmount()) {
// depositKF = companyCost.getDeductionAmount();
// }
} }
// LoanSettleCompanyReduction reduction = loanSettleCompanyReductionService.selectByMainSid(loanSettleApply.getSid());
// if (null != reduction) {
// if (null != reduction.getDepositPenalty()) {
// depositJM = reduction.getDepositPenalty();
// }
// if (null != reduction.getAmountTo()) {
// amountTo = reduction.getAmountTo();
// }
// }
// if (amountTo.compareTo(BigDecimal.ZERO) > 0) {
// deposit = deposit.subtract(depositKF).add(depositJM);
// } else if (amountTo.compareTo(BigDecimal.ZERO) <= 0) {
// deposit = deposit.subtract(depositKF).add(depositJM).add(amountTo);
// }
//按照顺序结转 //按照顺序结转
//月还 //月还
if (deposit.compareTo(BigDecimal.ZERO) > 0) { if (deposit.compareTo(BigDecimal.ZERO) > 0) {
@ -1639,7 +1629,7 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
} }
//--------推送财务结清凭证------------------ //--------推送财务结清凭证------------------
private void pushSettleVoucher(LoanSettleApply loanSettleApply) { private void pushSettleVoucher(LoanSettleApply loanSettleApply,int check) {
String sid = loanSettleApply.getSid(); String sid = loanSettleApply.getSid();
LoanSettleCompanyCost companyCost = loanSettleCompanyCostService.selectByMainSid(sid); LoanSettleCompanyCost companyCost = loanSettleCompanyCostService.selectByMainSid(sid);
LoanSettleCompanyReduction reduction = loanSettleCompanyReductionService.selectByMainSid(sid); LoanSettleCompanyReduction reduction = loanSettleCompanyReductionService.selectByMainSid(sid);
@ -1753,14 +1743,16 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
voucherDetails.add(voucherDetail); voucherDetails.add(voucherDetail);
} }
//剩余贷款保证金结转 //剩余贷款保证金结转
if (sybzj.compareTo(BigDecimal.ZERO) > 0) { if (check == 1) {
GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail(); if (sybzj.compareTo(BigDecimal.ZERO) > 0) {
voucherDetail.setSceneCode("剩余贷款保证金结转"); GeneralVoucher.GeneralVoucherDetail voucherDetail = new GeneralVoucher.GeneralVoucherDetail();
voucherDetail.setBankName(planDetails.getBankName()); voucherDetail.setSceneCode("剩余贷款保证金结转");
voucherDetail.setDeptCode(deptCode); voucherDetail.setBankName(planDetails.getBankName());
voucherDetail.setCustomerCode(customerNumber); voucherDetail.setDeptCode(deptCode);
voucherDetail.setAmount(sybzj); voucherDetail.setCustomerCode(customerNumber);
voucherDetails.add(voucherDetail); voucherDetail.setAmount(sybzj);
voucherDetails.add(voucherDetail);
}
} }
//贷款保证金扣罚 //贷款保证金扣罚
if (bzjKFCw.compareTo(BigDecimal.ZERO) > 0) { if (bzjKFCw.compareTo(BigDecimal.ZERO) > 0) {
@ -2882,6 +2874,7 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
} }
loanSettleApply.setState(1); loanSettleApply.setState(1);
baseMapper.updateById(loanSettleApply); baseMapper.updateById(loanSettleApply);
//结转剩余保证金
carryForward(loanSettleApply); carryForward(loanSettleApply);
//更新车辆表结清状态 //更新车辆表结清状态
baseMapper.updateBus(loanSettleApply.getBusVinSid(), "1"); baseMapper.updateBus(loanSettleApply.getBusVinSid(), "1");
@ -2890,7 +2883,7 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
//设置认款月还为已转付 //设置认款月还为已转付
updatePaymentStateByBusVinSid(loanSettleApply.getBusVinSid()); updatePaymentStateByBusVinSid(loanSettleApply.getBusVinSid());
//推送财务凭证 //推送财务凭证
pushSettleVoucher(loanSettleApply); pushSettleVoucher(loanSettleApply,1);
return rb.success(); return rb.success();
} }

Loading…
Cancel
Save