Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java =================================================================== diff -u -r20854 -r20863 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 20854) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 20863) @@ -3004,15 +3004,8 @@ private int createInvoiceItem(SubmitInvoiceContext submitInvoiceContext,InvoiceItem invoiceItem,List expensiveGoodsItems,Invoice invoice,String depart,String departCoding){ double floatPercent = supplyRoomConfigManager .getDisposableGoodsFluctuationPercent(); - BigDecimal totalPrice = new BigDecimal(invoice.getTotalPrice()); - Map sendOutBarcodeAmount = submitInvoiceContext - .getSendOutBarcodeToAmountMap(); - Map barcodeObjMap = submitInvoiceContext - .getBarcodeToBarcodeDeviceMap(); - Map barcodeToDisposableGoodsBatchStockMap = submitInvoiceContext - .getDisposableGoodsServiceContext() - .getBarcodeToDisposableGoodsBatchStockMap(); - Map> fixedBarcodeTousseIdToAffiliatedTousseInstanceMap = submitInvoiceContext.getFixedBarcodeTousseIdToAffiliatedTousseInstanceMap(); + ExpensiveGoodsServiceContext expensiveGoodsServiceContext = submitInvoiceContext.getExpensiveGoodsServiceContext(); + Map idToExpensiveGoodsStockMap = expensiveGoodsServiceContext.getIdToExpensiveGoodsStockMap(); // 高值耗材 List expensiveGoodsInstanceList = invoiceItem .getExpensiveGoodsInstanceList(); @@ -3024,11 +3017,15 @@ expensiveGoodsInstance.getBarcode(), expensiveGoodsInstance.getStatus())); } - + // 扣减源仓库库存 + ExpensiveGoodsStock expensiveGoodsStock = idToExpensiveGoodsStockMap.get(expensiveGoodsInstance.getExpensiveGoodsStockId()); + expensiveGoodsStock.adjustAmount(-1); + objectDao.update(expensiveGoodsStock); expensiveGoodsInstance .setStatus(ExpensiveDisposablegoods.STATUS_DELIVERED); - expensiveGoodsInstance.adjustAmount(-1); +// expensiveGoodsInstance.adjustAmount(-1); + ++sendAmount; expensiveGoodsInstance.setInvoiceItemId(invoiceItem .getId());// 明细汇总关联 @@ -3065,7 +3062,6 @@ BigDecimal itemPrice = MathTools.mul(fluctuationPrice, expensiveGoodsItem.getAmount()); // 发货物品统计总价 - totalPrice = MathTools.add(totalPrice, itemPrice); double tmpSettlementPrice = invoiceItem .getSettlementPrice() + itemPrice.doubleValue(); invoiceItem.setSettlementPrice(tmpSettlementPrice); @@ -3105,13 +3101,12 @@ .getBarcodeToDisposableGoodsBatchStockMap(); Map> fixedBarcodeTousseIdToAffiliatedTousseInstanceMap = submitInvoiceContext.getFixedBarcodeTousseIdToAffiliatedTousseInstanceMap(); Invoice invoice = new Invoice(); - invoice.setTotalPrice(0.0); List diposableGoodsItems = new ArrayList(); List expensiveGoodsItems = new ArrayList(); // 获得浮动价格系数 double floatPercent = supplyRoomConfigManager .getDisposableGoodsFluctuationPercent(); - BigDecimal totalPrice = new BigDecimal(0.00); + String invoicePlanType = "自定义发货"; if (invoicePlan != null) { @@ -3231,7 +3226,6 @@ BigDecimal itemPrice = MathTools.mul(fluctuationPrice, diposableGoodsItem.getAmount()); // 发货物品统计总价 - totalPrice = MathTools.add(totalPrice, itemPrice); double tmpSettlementPrice = invoiceItem .getSettlementPrice() + itemPrice.doubleValue(); invoiceItem.setSettlementPrice(tmpSettlementPrice); @@ -3331,7 +3325,6 @@ BigDecimal itemPrice = MathTools.mul(fluctuationPrice, diposableGoodsItem.getAmount()); // 发货物品统计总价 - totalPrice = MathTools.add(itemPrice, totalPrice); double tmpSettlementPrice = invoiceItem .getSettlementPrice() + itemPrice.doubleValue(); invoiceItem.setSettlementPrice(tmpSettlementPrice); @@ -3366,8 +3359,6 @@ tousseInstance.getPrice(), 1, itemPrice); discountedPrice = addItemPriceToTotal( tousseInstance.getDiscountPrice(), 1, discountedPrice); - totalPrice = addItemPriceToTotal( - tousseInstance.getPrice(), 1, totalPrice); tousseInstancesToUpdate.add(tousseInstance); --amountAwaitingSent; } @@ -3387,8 +3378,6 @@ tousseInstance.getPrice(), 1, itemPrice); discountedPrice = addItemPriceToTotal( tousseInstance.getDiscountPrice(), 1, discountedPrice); - totalPrice = addItemPriceToTotal( - tousseInstance.getPrice(), 1, totalPrice); tousseInstancesToUpdate.add(tousseInstance); --amountAwaitingSent; } @@ -3420,9 +3409,6 @@ itemPrice); discountedPrice = addItemPriceToTotal( tousseInstance.getDiscountPrice(), 1, discountedPrice); - totalPrice = addItemPriceToTotal( - tousseInstance.getPrice(), 1, - totalPrice); tousseInstancesToUpdate.add(tousseInstance); amountAwaitingSent--; } @@ -3506,10 +3492,6 @@ 1, itemPrice); discountedPrice = addItemPriceToTotal( disinfectionTousseInstance.getDiscountPrice(), 1, discountedPrice); - totalPrice = addItemPriceToTotal( - disinfectionTousseInstance - .getPrice(), - 1, totalPrice); tousseInstancesToUpdate .add(disinfectionTousseInstance); amountAwaitingSent--; @@ -3537,9 +3519,6 @@ itemPrice); discountedPrice = addItemPriceToTotal( tousseInstance.getDiscountPrice(), 1, discountedPrice); - totalPrice = addItemPriceToTotal( - tousseInstance.getPrice(), amount, - totalPrice); sendOutBarcodeAmount.put(barcode, 0); tousseInstancesToUpdate.add(tousseInstance); amountAwaitingSent--; @@ -3602,7 +3581,14 @@ invoice.setOrgUnitCoding(AcegiHelper.getLoginUser() .getCurrentOrgUnitCode()); // 发货物品总价 - invoice.setTotalPrice(totalPrice.doubleValue()); + { + BigDecimal totalPrice = new BigDecimal(0.00); + for (InvoiceItem invoiceItem : invoiceItems) { + totalPrice = MathTools.add(totalPrice, invoiceItem.getSettlementPrice()); + } + invoice.setTotalPrice(totalPrice.doubleValue()); + } + // 工作量统计 // invoice.setTousseInstances(tousseInstances); if (invoicePlan != null) { Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/invoicemanager/Invoice.java =================================================================== diff -u -r20831 -r20863 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/invoicemanager/Invoice.java (.../Invoice.java) (revision 20831) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/invoicemanager/Invoice.java (.../Invoice.java) (revision 20863) @@ -98,7 +98,7 @@ private InvoicePlan invoicePlan; // 申请单 - private Double totalPrice;//总价 + private Double totalPrice = 0.0;//总价 private String spelling; // 拼音