From f1492d4042ada5b7283440d0e7a99a62558c1c0b Mon Sep 17 00:00:00 2001 From: winter Date: Tue, 20 Aug 2024 22:12:09 +0800 Subject: [PATCH] fix --- .../service/impl/WxFinanceServiceImpl.java | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java index 8ae0d1481..90a0eff67 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java @@ -629,8 +629,8 @@ public class WxFinanceServiceImpl implements WxFinanceService { if (moneyDecimal.compareTo(new BigDecimal(0)) <= 0 ) { return ; } - for (int i = 0 ; i < receivePayWayList.size(); i ++) { - WxFinanceReceivePayway payway = receivePayWayList.get(i); + while (receivePayWayList.size() > 0 ) { + WxFinanceReceivePayway payway = receivePayWayList.get(0); //能够覆盖账单金额 if (moneyDecimal.compareTo(new BigDecimal(payway.getReceive())) <= 0 ) { //创建一个实收款单关联 @@ -638,18 +638,17 @@ public class WxFinanceServiceImpl implements WxFinanceService { sb.append(payway.getPayWayName()).append("收款").append(moneyDecimal.toPlainString()).append(","); BigDecimal remain = new BigDecimal(payway.getReceive()).subtract(moneyDecimal); if (remain.compareTo(new BigDecimal(0))==0) { - receivePayWayList.remove(i); + receivePayWayList.remove(0); }else { payway.setReceive(remain.toPlainString()); } - break; + return; }else { //创建一个实收款单关联 createFinanceReceiveBill(addreceive,bill,payway.getReceive(),null,payway.getPayWay()); sb.append(payway.getPayWayName()).append("收款").append(payway.getReceive()).append(","); - receivePayWayList.remove(i); - BigDecimal needlat = moneyDecimal.subtract(new BigDecimal(payway.getReceive())); - calcuteReceiveMoney(sb,addreceive,bill,receivePayWayList,needlat); + receivePayWayList.remove(0); + moneyDecimal = moneyDecimal.subtract(new BigDecimal(payway.getReceive())); } } } @@ -875,8 +874,8 @@ public class WxFinanceServiceImpl implements WxFinanceService { if (moneyDecimal.compareTo(new BigDecimal(0)) <= 0 ) { return ; } - for (int i = 0 ; i < receivePayWayList.size(); i ++) { - WxFinanceReceivePayway payway = receivePayWayList.get(i); + while (receivePayWayList.size() > 0 ) { + WxFinanceReceivePayway payway = receivePayWayList.get(0); //能够覆盖账单金额 if (moneyDecimal.compareTo(new BigDecimal(payway.getReceive())) <= 0 ) { //创建一个实收款单关联 @@ -884,18 +883,17 @@ public class WxFinanceServiceImpl implements WxFinanceService { sb.append(payway.getPayWayName()).append("付款").append(moneyDecimal.toPlainString()).append(","); BigDecimal remain = new BigDecimal(payway.getReceive()).subtract(moneyDecimal); if (remain.compareTo(new BigDecimal(0))==0) { - receivePayWayList.remove(i); + receivePayWayList.remove(0); }else { payway.setReceive(remain.toPlainString()); } - break; + return; }else { //创建一个实收款单关联 createFinanceReceiveBill(addreceive,bill,null,payway.getReceive(),payway.getPayWay()); sb.append(payway.getPayWayName()).append("付款").append(payway.getReceive()).append(","); - receivePayWayList.remove(i); - BigDecimal needlat = moneyDecimal.subtract(new BigDecimal(payway.getReceive())); - calcutePayMoney(sb,addreceive,bill,receivePayWayList,needlat); + receivePayWayList.remove(0); + moneyDecimal = moneyDecimal.subtract(new BigDecimal(payway.getReceive())); } } }