|  | @@ -1573,7 +1573,10 @@ public class GoodsServiceImpl implements GoodsService {
 | 
	
		
			
				|  |  |          String wareStockNumberKey = storeId + sku + prodBarcode;
 | 
	
		
			
				|  |  |          String warehouseStockMapKey = Constants.WAREHOUSE_STOCK_MAP_KEY + "_" + storeId;
 | 
	
		
			
				|  |  |          String redisCacheWareQuantity = JedisUtil.hget(warehouseStockMapKey, wareStockNumberKey);
 | 
	
		
			
				|  |  | +        // 保税仓或缓存中的保税仓库存
 | 
	
		
			
				|  |  |          Integer wareQuantity = 0;
 | 
	
		
			
				|  |  | +        // 保税仓库存
 | 
	
		
			
				|  |  | +        Integer realWareQuantity = 0;
 | 
	
		
			
				|  |  |          Integer exitRegionNumber = goods.getExitRegionNumber();
 | 
	
		
			
				|  |  |          String stockNum = goods.getStockNum();
 | 
	
		
			
				|  |  |          Integer sellVolume = Objects.isNull(goods.getSellVolume()) ? 1 : goods.getSellVolume();
 | 
	
	
		
			
				|  | @@ -1639,15 +1642,19 @@ public class GoodsServiceImpl implements GoodsService {
 | 
	
		
			
				|  |  |              WareQueryStockResponseDTO.WareQueryStockResponseItemDTO itemDTO = items.get(0);
 | 
	
		
			
				|  |  |              // 仓库可用库存
 | 
	
		
			
				|  |  |              wareQuantity = itemDTO.getQuantity();
 | 
	
		
			
				|  |  | +            realWareQuantity = wareQuantity;
 | 
	
		
			
				|  |  |              JedisUtil.hset(warehouseStockMapKey, wareStockNumberKey, String.valueOf(wareQuantity));
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  |              wareQuantity = Integer.parseInt(redisCacheWareQuantity);
 | 
	
		
			
				|  |  | +            // 如果是缓存中有该商品保税仓的库存可用数缓存,因为这个可用数已经是经过计算的,所以这里需要加上购买数
 | 
	
		
			
				|  |  | +            // 避免下面提示的是计算过后的库存可用数,以致于出现误解
 | 
	
		
			
				|  |  | +            realWareQuantity = wareQuantity + goods.getSellVolume();
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          // 保税仓库存 + 展销店库存 - 出区数 >= 购买数
 | 
	
		
			
				|  |  |          if (!((wareQuantity + Integer.parseInt(stockNum) - exitRegionNumber) > sellVolume)) {
 | 
	
		
			
				|  |  |              // 库存不足
 | 
	
		
			
				|  |  | -            log.error("商品条码:【{}】,sku:【{}】,门店库存:【{}】,保税仓库存:【{}】,出区数:【{}】,该商品仓库库存不足!", prodBarcode, sku, stockNum, wareQuantity, exitRegionNumber);
 | 
	
		
			
				|  |  | -            throw new ServiceException(String.format("商品条码:【%s】,sku:【%s】,门店库存:【%s】,保税仓库存:【%s】,出区数:【%s】,该商品仓库库存不足!", prodBarcode, sku, stockNum, wareQuantity, exitRegionNumber));
 | 
	
		
			
				|  |  | +            log.error("商品条码:【{}】,sku:【{}】,门店库存:【{}】,保税仓库存:【{}】,出区数:【{}】,该商品仓库库存不足!", prodBarcode, sku, stockNum, realWareQuantity, exitRegionNumber);
 | 
	
		
			
				|  |  | +            throw new ServiceException(String.format("商品条码:【%s】,sku:【%s】,门店库存:【%s】,保税仓库存:【%s】,出区数:【%s】,该商品仓库库存不足!", prodBarcode, sku, stockNum, realWareQuantity, exitRegionNumber));
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  |              JedisUtil.hset(warehouseStockMapKey, wareStockNumberKey, String.valueOf(wareQuantity - sellVolume));
 | 
	
		
			
				|  |  |          }
 |