Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceOptimizeManagerImpl.java =================================================================== diff -u -r28529 -r28611 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceOptimizeManagerImpl.java (.../InvoiceOptimizeManagerImpl.java) (revision 28529) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceOptimizeManagerImpl.java (.../InvoiceOptimizeManagerImpl.java) (revision 28611) @@ -3674,8 +3674,33 @@ List senEdgList = edgList.subList(0, Math.min(needSendAmount, edgSize)); needMatchList.addAll(senEdgList); tousseItemMatchExpensiveDisposableGoodsListMap.put(tousseItem, needMatchList); - restList.removeAll(senEdgList); - edgList.removeAll(senEdgList); + + List needRemoveEdgListFromRestEdgList = edgList.stream().filter(edg -> { + Long edgId = edg.getId(); + boolean foundEdgIdInList = false; + for(ExpensiveDisposablegoods edgLoop : senEdgList){ + if(edgId.longValue() == edgLoop.getId().longValue()){ + foundEdgIdInList = true; + break; + } + } + return foundEdgIdInList; + }).collect(Collectors.toList()); + + List needRemoveEdgListFromEdgList = edgList.stream().filter(edg -> { + Long edgId = edg.getId(); + boolean foundEdgIdInList = false; + for(ExpensiveDisposablegoods edgLoop : senEdgList){ + if(edgId.longValue() == edgLoop.getId().longValue()){ + foundEdgIdInList = true; + break; + } + } + return foundEdgIdInList; + }).collect(Collectors.toList()); + + restList.removeAll(needRemoveEdgListFromRestEdgList); + edgList.removeAll(needRemoveEdgListFromEdgList); }else{ break; }