提交 cf5a92a4 authored 作者: huyufan's avatar huyufan

bug处理

上级 8d1e966e
......@@ -259,16 +259,48 @@ public class OrderChildLoanComponent {
} else if (alterationBalance.compareTo(settlementOwnerDetail.getSettlementFreight()) > 0) {
//大于,则生成核销后,释放冻结的借款
log.info("4.3 大于,则生成核销后,释放冻结的借款");
// 需求解冻的金额
BigDecimal thawBigdecimal = (settlementOwnerDetail.getSettlementFreight().subtract(alterationBalance)).negate();
BigDecimal alterationBalanceTemp = alterationBalance;
BigDecimal thawBigdecimal = settlementOwnerDetail.getSettlementFreight().subtract(alterationBalance);
OwnerLoanAccountRunningWaterRecord entity = runningWaterRecordList.get(runningWaterRecordList.size() - 1);
List<OwnerLoanAccountRunningWaterRecord> frozenList = new LinkedList<>();
List<OwnerLoanAccountRunningWaterRecord> thawList = new LinkedList<>();
for (int i = 0; i < runningWaterRecordList.size(); i++) {
OwnerLoanAccountRunningWaterRecord record = runningWaterRecordList.get(i);
BigDecimal balance = record.getAlterationBalance();
if (alterationBalanceTemp.compareTo(balance) >= 0) {
frozenList.add(record);
alterationBalanceTemp = alterationBalanceTemp.subtract(balance);
log.info("当前金额大于等于冻结金额,frozenList添加当前流水{},剩余alterationBalanceTemp{}", record.getRunningWaterNo(), alterationBalanceTemp.toString());
} else {
if (alterationBalanceTemp.compareTo(BigDecimal.ZERO) == 0) {
thawList.add(record);
log.info("当前alterationBalanceTemp已经为0,thawList直接加入当前流水{}", record.getRunningWaterNo());
} else {
record.setAlterationBalance(balance.subtract(alterationBalanceTemp));
thawList.add(record);
log.info("当前alterationBalanceTemp小于冻结金额,需要拆分,thawList存放流水记录为{}", JSONUtil.parse(record));
record.setAlterationBalance(alterationBalanceTemp);
alterationBalanceTemp = BigDecimal.ZERO;
frozenList.add(record);
log.info("当前alterationBalanceTemp小于冻结金额,需要拆分,frozenList存放流水记录为{}", JSONUtil.parse(record));
}
}
}
//核销扣除
childWriteOffOwnerLoanAccount(frozenList);
if (CollectionUtil.isNotEmpty(thawList)) {
OwnerLoanAccountRunningWaterRecord entity = runningWaterRecordList.get(0);
Long loanNo = entity.getLoanNo();
Integer loanType = entity.getLoanType();
entity.setAlterationBalance(entity.getAlterationBalance().subtract(thawBigdecimal.negate()));
//核销扣除
childWriteOffOwnerLoanAccount(runningWaterRecordList);
//多余的金额需要生成解冻流水
thawOwnerLoanAccount(loanNo, loanType, entity.getOwnerUserNo(), entity.getOwnerUserName(), entity.getMobile(), entity.getChildNo(), thawBigdecimal.negate());
thawOwnerLoanAccount(loanNo, loanType, entity.getOwnerUserNo(), entity.getOwnerUserName(), entity.getMobile(), entity.getChildNo(), thawBigdecimal);
}
} else {
log.info("4.4 冻结的借款不够了");
......
......@@ -172,7 +172,8 @@ public class EventListenerComponent {
}
@EventListener(classes = {OwnerLoanThawEvent.class})
@Async
@TransactionalEventListener(classes = {OwnerLoanThawEvent.class},phase = TransactionPhase.BEFORE_COMMIT,fallbackExecution = true)
public void listen(OwnerLoanThawEvent event) {
log.info("OwnerLoanThawEvent事件执行");
log.info("需要解冻借款的的运单号:{}", event.getChildNo());
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论