Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceOptimizeManagerImpl.java =================================================================== diff -u -r28493 -r28502 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceOptimizeManagerImpl.java (.../InvoiceOptimizeManagerImpl.java) (revision 28493) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceOptimizeManagerImpl.java (.../InvoiceOptimizeManagerImpl.java) (revision 28502) @@ -3675,15 +3675,15 @@ needMatchList.addAll(senEdgList); tousseItemMatchExpensiveDisposableGoodsListMap.put(tousseItem, needMatchList); restList.removeAll(senEdgList); + edgList.removeAll(senEdgList); }else{ break; } if(CollectionUtils.isEmpty(restList)){ break; } } - if(CollectionUtils.isNotEmpty(CollectionUtils.subtract(restList, - tousseItemMatchExpensiveDisposableGoodsListMap.values().stream().reduce((list1,list2) -> { + /*List alreadyMatchedEdgList = tousseItemMatchExpensiveDisposableGoodsListMap.values().stream().reduce((list1,list2) -> { List mergeList = new ArrayList(); if(CollectionUtils.isNotEmpty(list1)){ mergeList.addAll(list1); @@ -3692,7 +3692,8 @@ mergeList.addAll(list2); } return mergeList; - }).orElse(new ArrayList())))){ + }).orElse(new ArrayList());*/ + if(CollectionUtils.isNotEmpty(restList)){ throw new SystemException(String.format("以下条码的高值耗材未找到对应发货的申请单,可能已被发货或终止.%s", StringUtils.join(restList.stream().map(ExpensiveDisposablegoods::getBarcode).collect(Collectors.toList()),","))); } @@ -6333,9 +6334,10 @@ List needInsertStockDgIdList = new ArrayList(); Set allDgIdSet = dgIdToAmountMap.keySet(); if(CollectionUtils.isNotEmpty(targetStockList)){ + Set alreadyDgIdSet = targetStockList.stream().map(DisposableGoodsStock::getDisposableGoodsID).collect(Collectors.toSet()); dgIdToAmountMap.entrySet().forEach(entry -> { Long dgId = entry.getKey(); - if(!allDgIdSet.contains(dgId)){ + if(!alreadyDgIdSet.contains(dgId)){ needInsertStockDgIdList.add(dgId); } });