|
|
@@ -157,16 +157,24 @@ public class OrderReceivablesServiceImpl extends BaseMybatisDao<TemporaryReceiva
|
|
|
//计算收款结果
|
|
|
BigDecimal bd = bill.add(tr.getAmount().abs());
|
|
|
|
|
|
+ //判断表中数据
|
|
|
+ BigDecimal count = new BigDecimal(0).add(bd);
|
|
|
+ for (TOrderBillNew tBill : listBull) {
|
|
|
+ if (tBill.getOrderNo().equals(tr.getOrderNo())) {
|
|
|
+ count=count.add(tBill.getTransactionAmount());
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
TOrderBonus bonus = new TOrderBonus();
|
|
|
bonus.setId(UUID.randomUUID().toString());
|
|
|
bonus.setOrderNo(tr.getOrderNo());
|
|
|
bonus.setGrantBy(TokenManager.getAdminId());
|
|
|
int lstaus = 0;//如果订单流水小于首付 lstaus 0
|
|
|
- if(bd.compareTo(t.getTotalAmount()) == 1){//如果订单流水总额大于总金额 return -1
|
|
|
+ if(count.compareTo(t.getTotalAmount()) == 1){//如果订单流水总额大于总金额 return -1
|
|
|
tr.setStatus(2);
|
|
|
temporaryReceivablesMapper.updateByPrimaryKeySelective(tr);
|
|
|
continue;
|
|
|
- }else if (bd.compareTo(t.getTotalAmount()) == 0) {//等于总额
|
|
|
+ }else if (count.compareTo(t.getTotalAmount()) == 0) {//等于总额
|
|
|
//付完款//如果订单流水等于于总金额 lstaus 2
|
|
|
lstaus = 2;
|
|
|
bonus.setBonusSubject(BonusSubject.WK.getCode());//12
|
|
|
@@ -191,7 +199,7 @@ public class OrderReceivablesServiceImpl extends BaseMybatisDao<TemporaryReceiva
|
|
|
temporaryReceivablesMapper.updateByPrimaryKeySelective(tr);
|
|
|
}
|
|
|
addOrderLog(tr.getOrderNo(), OrderLogProcess.CWQK.getCode());
|
|
|
- }else if (bd.compareTo(t.getTotalAmount()) == -1) {//小于总额
|
|
|
+ }else if (count.compareTo(t.getTotalAmount()) == -1) {//小于总额
|
|
|
//如果订单流水小于总金额
|
|
|
if(bd.compareTo(t.getFirstAmount()) == 0 || bd.compareTo(t.getFirstAmount()) == 1){//首付完成
|
|
|
//查看首付奖是否存在
|
|
|
@@ -235,7 +243,7 @@ public class OrderReceivablesServiceImpl extends BaseMybatisDao<TemporaryReceiva
|
|
|
TOrderNew orderNew = new TOrderNew();
|
|
|
orderNew.setOrderNo(tr.getOrderNo());
|
|
|
//这里的已收金额是以前收的所有金额加上本次收的金额
|
|
|
- orderNew.setSettlementAmount(bd);
|
|
|
+ orderNew.setSettlementAmount(count);
|
|
|
orderNew.setLiquidationStatus(lstaus);
|
|
|
if((lstaus == LiquidationNewState.WAIT_PAY_LAST_BALANCE.getCode()
|
|
|
|| lstaus == LiquidationNewState.ALREADY_PAY.getCode())
|