Browse Source

还款计划生成期间月还与金融方案月还差值不得大于50

master
fanzongzhe 1 year ago
parent
commit
14e9fb894e
  1. 99
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  2. 11
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml
  3. 30
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java

99
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java

@ -3804,36 +3804,75 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
}
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsFeign.fetchDetails(planSid).getData();
if (null != planDetails) {
if (null != planDetails.getPaymentMoney()) {
if (planDetails.getPaymentMoney().compareTo(BigDecimal.ZERO) == 1) {
String orderSid = planDetails.getSalesOrderSid();
ResultBean<LoanFinBank> bankResultBean = loanFinBankFeign.reAdvancesByOrderSid(orderSid);
if (bankResultBean.getData() != null) {
LoanFinBank loanFinBank = bankResultBean.getData();
if (null != loanFinBank.getReAdvances()) {
BigDecimal paymentMoney = planDetails.getPaymentMoney();
String subscriptionMoney = v.getSubscriptionMoney();
BigDecimal subtract = paymentMoney.subtract(new BigDecimal(subscriptionMoney));
planDetails.setPaymentMoney(subtract);
loanRepaymentPlanDetailsFeign.updateByEntity(planDetails);
if (loanFinBank.getReAdvances() == 1) {
FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR();
jr.setCreateBySid(userSid);
SysUserVo userVo = sysUserFeign.fetchBySid(sid).getData();
jr.setCreateByName(userVo.getName());
jr.setBusSid(planSid);
jr.setCurrentReceivableMoney(new BigDecimal(v.getSubscriptionMoney()));
jr.setReveivableMoney(new BigDecimal(v.getSubscriptionMoney()));
jr.setPayCostTitleKey("007");
jr.setPayCostTitleValue("资方退还垫款");
jr.setOrgSidPath(planDetails.getOrgSidPath());
jr.setUseOrgName(planDetails.getUseOrgName());
jr.setUseOrgSid(planDetails.getUseOrgSid());
jr.setStaffDeptName(planDetails.getDept());
jr.setStaffName(planDetails.getStaffName());
jr.setStaffDeptSid(planDetails.getDeptSid());
jr.setStaffUserSid(planDetails.getSalesUserSid());
finUncollectedReceivablesDetailedJRService.insert(jr);
if (v.getReceivablesName().equals("月还")) {
if (null != planDetails.getPaymentMoney()) {
if (planDetails.getPaymentMoney().compareTo(BigDecimal.ZERO) == 1) {
String orderSid = planDetails.getSalesOrderSid();
ResultBean<LoanFinBank> bankResultBean = loanFinBankFeign.reAdvancesByOrderSid(orderSid);
if (bankResultBean.getData() != null) {
LoanFinBank loanFinBank = bankResultBean.getData();
if (null != loanFinBank.getReAdvances()) {
BigDecimal paymentMoney = planDetails.getPaymentMoney();
String subscriptionMoney = v.getSubscriptionMoney();
BigDecimal subtract = paymentMoney.subtract(new BigDecimal(subscriptionMoney));
planDetails.setPaymentMoney(subtract);
loanRepaymentPlanDetailsFeign.updateByEntity(planDetails);
if (loanFinBank.getReAdvances() == 1) {
FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR();
jr.setCreateBySid(userSid);
SysUserVo userVo = sysUserFeign.fetchBySid(sid).getData();
jr.setCreateByName(userVo.getName());
jr.setBusSid(planSid);
jr.setCurrentReceivableMoney(new BigDecimal(v.getSubscriptionMoney()));
jr.setReveivableMoney(new BigDecimal(v.getSubscriptionMoney()));
jr.setPayCostTitleKey("007");
jr.setPayCostTitleValue("资方退还垫款");
jr.setOrgSidPath(planDetails.getOrgSidPath());
jr.setUseOrgName(planDetails.getUseOrgName());
jr.setUseOrgSid(planDetails.getUseOrgSid());
jr.setStaffDeptName(planDetails.getDept());
jr.setStaffName(planDetails.getStaffName());
jr.setStaffDeptSid(planDetails.getDeptSid());
jr.setStaffUserSid(planDetails.getSalesUserSid());
finUncollectedReceivablesDetailedJRService.insert(jr);
}
}
}
}
}
}
if (v.getReceivablesName().equals("资方逾期利息")) {
if (null != planDetails.getPaymentInterest()) {
if (planDetails.getPaymentInterest().compareTo(BigDecimal.ZERO) == 1) {
String orderSid = planDetails.getSalesOrderSid();
ResultBean<LoanFinBank> bankResultBean = loanFinBankFeign.reAdvancesByOrderSid(orderSid);
if (bankResultBean.getData() != null) {
LoanFinBank loanFinBank = bankResultBean.getData();
if (null != loanFinBank.getReAdvances()) {
BigDecimal paymentInterest = planDetails.getPaymentInterest();
String subscriptionMoney = v.getSubscriptionMoney();
BigDecimal subtract = paymentInterest.subtract(new BigDecimal(subscriptionMoney));
planDetails.setPaymentInterest(subtract);
loanRepaymentPlanDetailsFeign.updateByEntity(planDetails);
if (loanFinBank.getReAdvances() == 1) {
FinUncollectedReceivablesDetailedJR jr = new FinUncollectedReceivablesDetailedJR();
jr.setCreateBySid(userSid);
SysUserVo userVo = sysUserFeign.fetchBySid(sid).getData();
jr.setCreateByName(userVo.getName());
jr.setBusSid(planSid);
jr.setCurrentReceivableMoney(new BigDecimal(v.getSubscriptionMoney()));
jr.setReveivableMoney(new BigDecimal(v.getSubscriptionMoney()));
jr.setPayCostTitleKey("007");
jr.setPayCostTitleValue("资方退还垫款");
jr.setOrgSidPath(planDetails.getOrgSidPath());
jr.setUseOrgName(planDetails.getUseOrgName());
jr.setUseOrgSid(planDetails.getUseOrgSid());
jr.setStaffDeptName(planDetails.getDept());
jr.setStaffName(planDetails.getStaffName());
jr.setStaffDeptSid(planDetails.getDeptSid());
jr.setStaffUserSid(planDetails.getSalesUserSid());
finUncollectedReceivablesDetailedJRService.insert(jr);
}
}
}
}

11
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymenthistory/LoanRepaymentHistoryMapper.xml

@ -178,11 +178,7 @@
<select id="repaymentStatistics"
resultType="com.yxt.anrui.riskcenter.api.loanrepaymenthistory.RepaymentStatisticsVo">
SELECT DISTINCT
a.*,
IFNULL((SELECT SUM(c.bankBeInter) FROM loan_be_padsincere_apply as ap
LEFT JOIN loan_be_padsincere_veh as c on ap.sid = c.mainSid
WHERE c.saleVehSid = a.busVinSid AND c.period = a.period AND ap.nodeState = '已办结'
),0) as bankBeInter
a.*
FROM
(
SELECT
@ -202,6 +198,7 @@
pd.borrowerName,
pd.period,
pd.paymentMoney,
pd.paymentInterest as bankBeInter,
pd.fund,
pd.dueMoney,
t.repaidMoney,
@ -377,7 +374,7 @@
r.accountNumber
FROM loan_transfer_payment_record AS r
where r.repaymentHistorySid = #{sid}
and r.state = 1
</select>
and r.state = 1
</select>
</mapper>

30
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java

@ -71,6 +71,7 @@ import com.yxt.messagecenter.api.message.MessagePushTransferDto;
import com.yxt.messagecenter.api.message.PushMessageQuery;
import com.yxt.messagecenter.api.message.PushSmsDto;
import com.yxt.messagecenter.api.messagelist.MessageListDto;
import org.apache.poi.hpsf.Decimal;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
@ -305,6 +306,11 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
orderSid = loancontract.getSalesOrderSid();
}
}
LoanSolutionsDetailsssVo solutionsDetailsssVo = new LoanSolutionsDetailsssVo();
ResultBean<SolutionsDetailsVo> solutionsDetailsVoResultBean = loanSolutionsService.selectDetailss(orderSid);
if (solutionsDetailsVoResultBean.getData() != null) {
BeanUtil.copyProperties(solutionsDetailsVoResultBean.getData(), solutionsDetailsssVo);
}
if (StringUtils.isBlank(dto.getMainRepayDate())) {
return rb.setMsg("请选择主金融产品首期还款日!");
}
@ -317,6 +323,18 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
if (StringUtils.isBlank(dto.getMainLastRepay())) {
return rb.setMsg("请填写主金融产品末期月还!");
}
BigDecimal mainRepay = new BigDecimal(dto.getMainMidRepay());
if (null != solutionsDetailsssVo) {
BigDecimal op = new BigDecimal(solutionsDetailsssVo.getLoanPayMoney());
BigDecimal z = op.add(new BigDecimal("50"));
BigDecimal f = op.add(new BigDecimal("-50"));
if (mainRepay.compareTo(z) > 0) {
return rb.setMsg("填写的主产品月还与金融方案月还正负差值不能大于50");
}
if (mainRepay.compareTo(f) < 0) {
return rb.setMsg("填写的主产品月还与金融方案月还正负差值不能大于50");
}
}
if (dto.getIsOtherPolicy().equals("1")) {
if (StringUtils.isBlank(dto.getOtherRepayDate())) {
return rb.setMsg("请选择其他融首期还款日!");
@ -330,6 +348,18 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
if (StringUtils.isBlank(dto.getOtherLastRepay())) {
return rb.setMsg("请填写其他融末期月还!");
}
BigDecimal otherRepay = new BigDecimal(dto.getOtherMidRepay());
if (null != solutionsDetailsssVo) {
BigDecimal op = new BigDecimal(solutionsDetailsssVo.getOtherPolicyMonthlyRepay());
BigDecimal z = op.add(new BigDecimal("50"));
BigDecimal f = op.add(new BigDecimal("-50"));
if (otherRepay.compareTo(z) > 0) {
return rb.setMsg("填写的其他融月还与金融方案其他融月还正负差值不能大于50");
}
if (otherRepay.compareTo(f) < 0) {
return rb.setMsg("填写的其他融月还与金融方案其他融月还正负差值不能大于50");
}
}
}
if (null != loanRepaymentSchedule) {
scheduleSid = loanRepaymentSchedule.getSid();

Loading…
Cancel
Save