Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java =================================================================== diff -u -r16380 -r16381 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 16380) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 16381) @@ -6323,6 +6323,7 @@ //没有申请单的,以发货单为依据,跟以前一样 return loadToussePrintData(invoices,tousseGroupIds,invoiceTousseInstances,printedInvoiceItemIds); }else{ + Map recycleAmountInfo = getTousseRecyclingAmount(invoices); //找出需要打印的tousseItem List toPrintTousseItem = new ArrayList<>(); //记录TousseItem与本次发货项的对应关系 @@ -6386,10 +6387,11 @@ if(maxIdInvoiceItem != null){ invoice = IDOperators.find(invoices, maxIdInvoiceItem.getInvoiceID()); } + Integer recyclingAmount = getTousseActualRecycleAmount(recycleAmountInfo,tousseDefinition); InvoicePrintVo tempVo = new InvoicePrintVo(); tempVo.setAmount(calculateSendAmount(invoiceItems)); tempVo.setLastSendAmount(MathTools.sub(tousseItem.getSendOutAmount(), tempVo.getAmount()).intValue()); - tempVo.setRecyclingAmount(tousseItem.getRecyclingAmount()); + tempVo.setRecyclingAmount(recyclingAmount); tempVo.setSendDate(invoice==null?null:invoice.getSendTime()); tempVo.setFrequency(frequency); tempVo.setName(tousseItem.getTousseName()); @@ -6876,6 +6878,7 @@ //没有申请单的,以发货单为依据,跟以前一样 return getDisinfectGoodsPrintData(invoices,invoiceTousseInstances,printedInvoiceItemIds); }else{ + Map recycleAmountInfo = getTousseRecyclingAmount(invoices); //找出需要打印的tousseItem List toPrintTousseItem = new ArrayList<>(); //记录TousseItem与本次发货项的对应关系 @@ -6944,7 +6947,7 @@ invoicePrintVo.setSterilizerName(sterilizerName); invoicePrintVo.setFrequency(frequency); - Integer recyclingAmount = tousseItem.getRecyclingAmount(); + Integer recyclingAmount = getTousseActualRecycleAmount(recycleAmountInfo,tousseDefinition); if(!tousseDefinition.applyEntireTousse()){ recyclingAmount = MathTools.mul(materialJson.getInt("totalAmout"), recyclingAmount).intValue(); }