Index: ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java =================================================================== diff -u -r25145 -r26015 --- ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java (.../DiposableGoodsManagerImpl.java) (revision 25145) +++ ssts-diposablegoods/src/main/java/com/forgon/disinfectsystem/diposablegoods/service/DiposableGoodsManagerImpl.java (.../DiposableGoodsManagerImpl.java) (revision 26015) @@ -3129,9 +3129,12 @@ SetwarehouseIds = wareHouseList.stream().map(wh -> wh.getId().toString()).collect(Collectors.toSet()); //3、根据一次性物品id的集合及仓库的集合查出所有的库存数据 List disposableGoodsStocks = disposableGoodsStockManager.getDisposableGoodsStockList(disposableGoodsIds, warehouseIds); + Map dgIdToStockAmount = null; //4、根据一次性物品id分组求和仓库数量 - Map dgIdToStockAmount = disposableGoodsStocks.stream(). - collect(Collectors.groupingBy(DisposableGoodsStock::getDisposableGoodsID,Collectors.summingLong(DisposableGoodsStock::getAmount))); + if(CollectionUtils.isNotEmpty(disposableGoodsStocks)){ + dgIdToStockAmount = disposableGoodsStocks.stream(). + collect(Collectors.groupingBy(DisposableGoodsStock::getDisposableGoodsID,Collectors.summingLong(DisposableGoodsStock::getAmount))); + } //5、返回物品信息 for (DisposableGoods disposableGoods : disposableGoodsList) { Map item = buildDisposableGoodsPropertyMapWithStock(disposableGoods,dgIdToStockAmount); @@ -3173,20 +3176,26 @@ temp.put("packageSpec", disposableGoods.getPackageSpec()); temp.put("sequence",disposableGoods.getSequence() == null ? 0 : disposableGoods.getSequence()); //根据一次性物品id获得仓库数量 - Long storage = dgIdToStockAmount.get(disposableGoods.getId()); - //加上库存数量 - if(null != storage && storage > 0){ - temp.put("displayName", String.format("%s(库存:%s)", goodsName,storage)); + if(null != dgIdToStockAmount){ + Long storage = dgIdToStockAmount.get(disposableGoods.getId()); + //加上库存数量 + if(null != storage && storage > 0){ + temp.put("displayName", String.format("%s(库存:%s)", goodsName,storage)); + }else{ + temp.put("displayName", goodsName + "(库存:0)"); + } }else{ - temp.put("displayName", goodsName + "(库存:0)"); + temp.put("displayName",goodsName); } return temp; } + @Override public void adjustAmount(DisposableGoodsIdentification identification,long amountChange){ identificationOfDiposableGoodsManager.adjustAmount(identification, amountChange); } + @Override public void waitAsyncAdditionComplete(){ while(true){ int count = objectDao.countObject(DGBatchStockAmountAdder.class.getSimpleName());