Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceOptimizeManagerImpl.java =================================================================== diff -u -r28085 -r28292 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceOptimizeManagerImpl.java (.../InvoiceOptimizeManagerImpl.java) (revision 28085) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceOptimizeManagerImpl.java (.../InvoiceOptimizeManagerImpl.java) (revision 28292) @@ -3827,6 +3827,11 @@ tousseItemMatchIdentiAmountMap.put(tousseItem, identiAmountMapOfTousseItem); break; } + if(identiAmountMapOfTousseItem == null){ + identiAmountMapOfTousseItem = new LinkedHashMap(); + } + identiAmountMapOfTousseItem.put(dgi, amount); + tousseItemMatchIdentiAmountMap.put(tousseItem, identiAmountMapOfTousseItem); restMatchAmountThisTime = MathTools.sub(matchAmountThisTime, amount).intValue(); } } @@ -6628,20 +6633,21 @@ /** * 需要扣减的器械包发货后自动扣减一次性物品库存,并将需要回写的结果返回出来 * 此方法应该放在一次性物品发货后调用 - * @param tousseInstanceList - * @param disposableGoodsStorageAdjustVoTotalList + * @param tousseInstanceList 包实例集合 + * @param disposableGoodsStorageAdjustVoTotalList 需要回写的对象 */ - private void tousseInstanceAutoDeduction( + /*private void tousseInstanceAutoDeduction( Map>> tousseItemToTdToTiListMapMap, Map invoicePlanToInvoiceMap, OrgUnit orgUnit,WareHouse targetWarehouse,JSONObject params,Date currentDateTime, String idColumnName, String idColumnValue, - List disposableGoodsStorageAdjustVoTotalList){/* + List disposableGoodsStorageAdjustVoTotalList){ //1.根据器械包的自动扣包内材料将需要扣减一次性物品库存的包实例筛选出来 if(MapUtils.isNotEmpty(tousseItemToTdToTiListMapMap)){ //需要扣减包内一次性物品库存的map,key为发货单对象,value为包定义对应包实例集合的map Map>> invoiceToTdToTiListMapMapForOutStock = new HashMap>>(); + //包定义(消毒物品为包实例对应的包定义)对应的一次性物品库存扣减数量 Map> tdToDgToOutStockAmountMapMap = new HashMap>(); tousseItemToTdToTiListMapMap.entrySet().stream().forEach(entry -> { @@ -6691,6 +6697,8 @@ Map> tdToTiListMap = entry.getValue(); tdToTiListMap.entrySet().stream().forEach(entry2 -> { TousseDefinition td = entry2.getKey(); + //一次性物品对应的扣减数量map + Map dgToOutStockAmountMap = tdToDgToOutStockAmountMapMap.get(td); List tiList = entry2.getValue(); Map invoiceItemMap = new LinkedHashMap(); invoiceItemMap.put("amount", tiList.size()); @@ -6705,7 +6713,7 @@ //invoiceItemMap.put("disposableGoodsType", DisposableGoods.TYPE_EXPENSIVEDIPOSABLEGOODS); //invoiceItemMap.put("disposableGoodsType2", dg.getType()); invoiceItemMap.put("invoiceID", invoice.getId()); - invoiceItemMap.put("invoicePlanID", tousseItem.getInvoicePlan().getId()); + invoiceItemMap.put("invoicePlanID", invoice.getInvoicePlan().getId()); //invoiceItemMap.put("middlePackageAmount", MathTools.div(edgList.size(), dg.getTransferScale()).intValue()); //invoiceItemMap.put("middlePackageUnit", dg.getMiddlePackageUnit()); invoiceItemMap.put("settlementDiscountPrice", settlementDiscountPrice); @@ -6985,6 +6993,6 @@ } } } - */} + }*/ } \ No newline at end of file