Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java =================================================================== diff -u -r35386 -r35397 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 35386) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 35397) @@ -3462,7 +3462,7 @@ Map dgIdToNeedDeductedAmountMap = departCodeToDgIdToNeedDeductedAmountMapMap.get(departCode); Map dgIdToAmountMap = entry1.getValue(); Map> dgIdToIdentificationToAmountMapMap = new HashMap>(); - //第2层循环:遍历各科室的各一次性物品(定义) + //第2层循环:遍历各科室的各一次性物品(定义)及对应的发货数量的map for(Entry entry2 : dgIdToAmountMap.entrySet()){ Long dgId = entry2.getKey(); //需要发货的数量(本轮循环处理中不需要用到) @@ -3494,7 +3494,10 @@ dgIdToNeedDeductedAmountMap.put(dgId, needDeductAmount); departCodeToDgIdToNeedDeductedAmountMapMap.put(departCode,dgIdToNeedDeductedAmountMap); - Map identificationToAmountMap = new HashMap(); + Map identificationToAmountMap = dgIdToIdentificationToAmountMapMap.get(dgId); + if(identificationToAmountMap == null){ + identificationToAmountMap = new HashMap(); + } identificationToAmountMap.put(identification, needDeductAmount); dgIdToIdentificationToAmountMapMap.put(dgId, identificationToAmountMap); departCodeToDgIdToIdentificationToAmountMapMapMap.put(departCode, dgIdToIdentificationToAmountMapMap); @@ -3508,7 +3511,10 @@ dgIdToNeedDeductedAmountMap.put(dgId, canDeductAmountOfIdentification); departCodeToDgIdToNeedDeductedAmountMapMap.put(departCode,dgIdToNeedDeductedAmountMap); - Map identificationToAmountMap = new HashMap(); + Map identificationToAmountMap = dgIdToIdentificationToAmountMapMap.get(dgId); + if(identificationToAmountMap == null){ + identificationToAmountMap = new HashMap(); + } identificationToAmountMap.put(identification, canDeductAmountOfIdentification); dgIdToIdentificationToAmountMapMap.put(dgId, identificationToAmountMap); departCodeToDgIdToIdentificationToAmountMapMapMap.put(departCode, dgIdToIdentificationToAmountMapMap); @@ -3535,7 +3541,7 @@ } } - dgIdToTotalAmountMap.entrySet().stream().forEach(entry -> { + for(Entry entry : dgIdToTotalAmountMap.entrySet()) { Long dgId = entry.getKey(); Integer needSendAmount = entry.getValue(); Long matchedTotalAmount = dgIdToMatchedTotalAmountMap.get(dgId); @@ -3545,7 +3551,7 @@ if(needSendAmount > matchedTotalAmount){ throw new SystemException(String.format("%s的发货总数量为%s,超过了可发货的库存总数量%s", idToDisposableGoodsMap.get(dgId).getShowName(),needSendAmount,matchedTotalAmount)); } - }); + } //性能测试用的语句 /*currentTimeMillis = System.currentTimeMillis(); System.out.println("step2耗时毫秒数:" + (currentTimeMillis - start));