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())); } } }