Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java =================================================================== diff -u -r25145 -r25148 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 25145) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 25148) @@ -4225,33 +4225,30 @@ invoiceItem.setSettlementDiscountPrice(invoiceItem .getSettlementDiscountPrice() + discountedPrice.doubleValue()); } else { - TousseInstance invoiceTousseInstance = invoiceItem - .getTousseInstance(); - if (invoiceTousseInstance != null) { + List tousseInstanceList = invoiceItem + .getTousseInstances(); + if (CollectionUtils.isNotEmpty(tousseInstanceList)) { BigDecimal itemPrice = new BigDecimal(0.00); BigDecimal discountedPrice = new BigDecimal(0.00); Set tousseInstancesSet = new HashSet(); - List tousseInstanceList = invoiceItem - .getTousseInstances(); - if (tousseInstanceList != null) { - tousseInstancesSet.addAll(tousseInstanceList); - for (TousseInstance tousseInstance : tousseInstancesSet) { - if (amountAwaitingSent <= 0) { - break; - } - if (!tousseInstance.canInvoice()) { - continue; - } - itemPrice = addItemPriceToTotal( - tousseInstance.getPrice(), 1, - itemPrice); - discountedPrice = addItemPriceToTotal( - tousseInstance.getDiscountPrice(), 1, discountedPrice); - tousseInstancesToUpdate.add(tousseInstance); - amountAwaitingSent--; + tousseInstancesSet.addAll(tousseInstanceList); + for (TousseInstance tousseInstance : tousseInstancesSet) { + if (amountAwaitingSent <= 0) { + break; } + if (!tousseInstance.canInvoice()) { + continue; + } + itemPrice = addItemPriceToTotal( + tousseInstance.getPrice(), 1, + itemPrice); + discountedPrice = addItemPriceToTotal( + tousseInstance.getDiscountPrice(), 1, discountedPrice); + tousseInstancesToUpdate.add(tousseInstance); + amountAwaitingSent--; } + if (amountAwaitingSent > 0) { throw new RuntimeException(String.format( "物品%s库存不足!", @@ -4312,7 +4309,6 @@ BigDecimal discountedPrice = new BigDecimal(0.00); // 不追溯的固定条码的发货处理 if (tousseInstance.getTousseFixedBarcode()) { - Collection tousseInstanceList; Set tousseInstancesSet = new HashSet(); if (tousseInstance.getTousseDefinition() .isDisinfection()) {