提交 467aa25d authored 作者: huyufan's avatar huyufan

确认收货处理相关借款逻辑

上级 bb58b488
...@@ -181,6 +181,7 @@ public class OrderChildLoanComponent { ...@@ -181,6 +181,7 @@ public class OrderChildLoanComponent {
log.info("4.查询当前运单号:{}, 当前货主,{}, 此运单借款冻结记录:{}", childNo, settlementOwnerDetail.getOwnerUserNo(), JSONUtil.parse(runningWaterRecordList)); log.info("4.查询当前运单号:{}, 当前货主,{}, 此运单借款冻结记录:{}", childNo, settlementOwnerDetail.getOwnerUserNo(), JSONUtil.parse(runningWaterRecordList));
if (CollectionUtil.isEmpty(runningWaterRecordList)) { if (CollectionUtil.isEmpty(runningWaterRecordList)) {
//说明当初没借款,预付运费够,但是真实结算后,预付运费不够,走此逻辑 //说明当初没借款,预付运费够,但是真实结算后,预付运费不够,走此逻辑
log.info("4.1 说明当初没借款,预付运费够,但是真实结算后,预付运费不够,走此逻辑");
try { try {
ownerLoanRecordService.getLoanBalance(settlementOwnerDetail.getSettlementFreight(), settlementDriverDetail.getDriverUserNo(), childNo); ownerLoanRecordService.getLoanBalance(settlementOwnerDetail.getSettlementFreight(), settlementDriverDetail.getDriverUserNo(), childNo);
} catch (Exception e) { } catch (Exception e) {
...@@ -193,10 +194,14 @@ public class OrderChildLoanComponent { ...@@ -193,10 +194,14 @@ public class OrderChildLoanComponent {
BigDecimal alterationBalance = runningWaterRecordList.stream().map(OwnerLoanAccountRunningWaterRecord::getAlterationBalance).reduce(BigDecimal.ZERO, BigDecimal::add); BigDecimal alterationBalance = runningWaterRecordList.stream().map(OwnerLoanAccountRunningWaterRecord::getAlterationBalance).reduce(BigDecimal.ZERO, BigDecimal::add);
if (alterationBalance.compareTo(settlementOwnerDetail.getSettlementFreight()) == 0) { if (alterationBalance.compareTo(settlementOwnerDetail.getSettlementFreight()) == 0) {
log.info("4.2 相等直接生成运单核销");
//相等直接生成运单核销 //相等直接生成运单核销
childWriteOffOwnerLoanAccount(runningWaterRecordList); childWriteOffOwnerLoanAccount(runningWaterRecordList);
} else if (alterationBalance.compareTo(settlementOwnerDetail.getSettlementFreight()) > 0) { } else if (alterationBalance.compareTo(settlementOwnerDetail.getSettlementFreight()) > 0) {
//大于,则生成核销后,释放冻结的借款 //大于,则生成核销后,释放冻结的借款
log.info("4.3 大于,则生成核销后,释放冻结的借款");
BigDecimal thawBigdecimal = settlementOwnerDetail.getSettlementFreight().subtract(alterationBalance); BigDecimal thawBigdecimal = settlementOwnerDetail.getSettlementFreight().subtract(alterationBalance);
OwnerLoanAccountRunningWaterRecord entity = runningWaterRecordList.get(runningWaterRecordList.size() - 1); OwnerLoanAccountRunningWaterRecord entity = runningWaterRecordList.get(runningWaterRecordList.size() - 1);
Long loanNo = entity.getLoanNo(); Long loanNo = entity.getLoanNo();
...@@ -207,6 +212,8 @@ public class OrderChildLoanComponent { ...@@ -207,6 +212,8 @@ public class OrderChildLoanComponent {
//多余的金额需要生成解冻流水 //多余的金额需要生成解冻流水
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.negate());
} else { } else {
log.info("4.4 冻结的借款不够了");
BigDecimal subtract = alterationBalance.subtract(settlementOwnerDetail.getSettlementFreight()); BigDecimal subtract = alterationBalance.subtract(settlementOwnerDetail.getSettlementFreight());
// 冻结的借款不够了 // 冻结的借款不够了
try { try {
...@@ -216,6 +223,7 @@ public class OrderChildLoanComponent { ...@@ -216,6 +223,7 @@ public class OrderChildLoanComponent {
} }
runningWaterRecordList = ownerLoanAccountRunningWaterRecordDao.getListByOrderNoAndRunningWaterType runningWaterRecordList = ownerLoanAccountRunningWaterRecordDao.getListByOrderNoAndRunningWaterType
(childNo, OwnerLoanAccountRunningWaterRecordEnum.RunWaterType.APPROVE_FROZEN.getCode()); (childNo, OwnerLoanAccountRunningWaterRecordEnum.RunWaterType.APPROVE_FROZEN.getCode());
log.info("4.5新查询出冻结借款记录:{}", JSONUtil.parse(runningWaterRecordList));
childWriteOffOwnerLoanAccount(runningWaterRecordList); childWriteOffOwnerLoanAccount(runningWaterRecordList);
} }
...@@ -277,6 +285,7 @@ public class OrderChildLoanComponent { ...@@ -277,6 +285,7 @@ public class OrderChildLoanComponent {
} }
public void childWriteOffOwnerLoanAccount(List<OwnerLoanAccountRunningWaterRecord> frozenList) { public void childWriteOffOwnerLoanAccount(List<OwnerLoanAccountRunningWaterRecord> frozenList) {
log.info("5. 执行核销扣除,相关流水{}", JSONUtil.parse(frozenList));
while (true) { while (true) {
int flag = 0; int flag = 0;
List<OwnerLoanAccountRunningWaterRecord> saveList = new LinkedList<>(); List<OwnerLoanAccountRunningWaterRecord> saveList = new LinkedList<>();
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论