Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceOptimizeManagerImpl.java =================================================================== diff -u -r28633 -r28688 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceOptimizeManagerImpl.java (.../InvoiceOptimizeManagerImpl.java) (revision 28633) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceOptimizeManagerImpl.java (.../InvoiceOptimizeManagerImpl.java) (revision 28688) @@ -4504,7 +4504,7 @@ DisposableGoodsIdentification identi = identiToAmountEntry.getKey(); Integer amount = identiToAmountEntry.getValue(); totalDiposableGoodsAmount = MathTools.add(amount, totalDiposableGoodsAmount).intValue(); - totalPrice = MathTools.add(totalPrice, identi.getPrice()).doubleValue(); + totalPrice = MathTools.add(totalPrice, MathTools.mul(amount, identi.getPrice())).doubleValue(); } } } @@ -5120,12 +5120,13 @@ DisposableGoodsBatchStock batchStock = null; if(MapUtils.isNotEmpty(identiToAmountMap)){ for(Entry identiToAmountEntry : identiToAmountMap.entrySet()){ - amount += identiToAmountEntry.getValue(); + Integer invoiceAmount = identiToAmountEntry.getValue(); + amount += invoiceAmount; DisposableGoodsIdentification identification = identiToAmountEntry.getKey(); if(batchStock == null){ batchStock = identification.getBatchStock(); } - settlementPrice = MathTools.add(settlementPrice, MathTools.mul(identification.getPrice(), amount)).doubleValue(); + settlementPrice = MathTools.add(settlementPrice, MathTools.mul(identification.getPrice(), invoiceAmount)).doubleValue(); } } Map invoiceItemMap = new LinkedHashMap();