Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java =================================================================== diff -u -r26752 -r26770 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 26752) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 26770) @@ -3350,10 +3350,21 @@ return invoicePlanList; } - private void assertInvoicePlanDisposablePriceFluctuation(InvoicePlan invoicePlan,BigDecimal disposablePriceFluctuation){ + /** + * 断言一次性物品价格浮动系数 + * @param invoicePlan + */ + private BigDecimal assertInvoicePlanDisposablePriceFluctuation(InvoicePlan invoicePlan){ + //取到申请单的一次性物品价格浮动系数 + BigDecimal disposablePriceFluctuation = invoicePlan.getDisposablePriceFluctuation(); if(disposablePriceFluctuation == null){ - throw new RuntimeException(String.format("申请单%s的一次性物品价格浮动系数为空!", invoicePlan.getSerialNumber())); + //如果申请单的一次性物品价格浮动系数为空,则取科室供应室配置的一次性物品价格浮动系数 + disposablePriceFluctuation = supplyRoomConfigManager.getDisposableGoodsFluctuationByOrgUnitCoding(invoicePlan.getSettleAccountsDepartCoding()); + if(disposablePriceFluctuation == null){ + throw new RuntimeException(String.format("申请单%s的一次性物品价格浮动系数为空!", invoicePlan.getSerialNumber())); + } } + return disposablePriceFluctuation; } private void createAutoDeductionInvoiceItem(Invoice invoice, InvoicePlan invoicePlan, Set tousseInstances, @@ -3444,7 +3455,7 @@ if(StringUtils.equals(Constants.STR_YES, supplyRoomConfig.getInsideTousseMaterialOutCost())){ if(invoicePlan != null){ floatPercent = invoicePlan.getDisposablePriceFluctuation(); - assertInvoicePlanDisposablePriceFluctuation(invoicePlan, floatPercent); + floatPercent = assertInvoicePlanDisposablePriceFluctuation(invoicePlan); }else{ floatPercent = supplyRoomConfigManager.getDisposableGoodsFluctuation(); } @@ -3631,7 +3642,7 @@ BigDecimal floatPercent = null; if(invoicePlan != null){ floatPercent = invoicePlan.getDisposablePriceFluctuation(); - assertInvoicePlanDisposablePriceFluctuation(invoicePlan, floatPercent); + floatPercent = assertInvoicePlanDisposablePriceFluctuation(invoicePlan); }else{ floatPercent = supplyRoomConfigManager.getDisposableGoodsFluctuation(); } @@ -4190,8 +4201,7 @@ if (invoicePlan != null) { disposablePriceFluctuation = invoicePlan .getDisposablePriceFluctuation(); - assertInvoicePlanDisposablePriceFluctuation(invoicePlan, - disposablePriceFluctuation); + disposablePriceFluctuation = assertInvoicePlanDisposablePriceFluctuation(invoicePlan); } else { disposablePriceFluctuation = supplyRoomConfigManager .getDisposableGoodsFluctuation();