|  | @@ -466,6 +466,42 @@ public class GoodsServiceImpl extends BaseServiceImpl<Integer, Goods>  implement
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	@Override
 | 
	
		
			
				|  |  |  	@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
 | 
	
		
			
				|  |  | +	public void getGoodsTest(List<Integer> goodsIds) {
 | 
	
		
			
				|  |  | +		goodsDao.lockGoods(new ArrayList<>(goodsIds));
 | 
	
		
			
				|  |  | +		for (Integer goodsId : goodsIds) {
 | 
	
		
			
				|  |  | +			Goods tempGoods = goodsDao.get(goodsId);
 | 
	
		
			
				|  |  | +			List<Goods> childGoods = new ArrayList<>();
 | 
	
		
			
				|  |  | +			if(StringUtils.isBlank(tempGoods.getComplementGoodsIdList())){
 | 
	
		
			
				|  |  | +				childGoods.add(tempGoods);
 | 
	
		
			
				|  |  | +			}else{
 | 
	
		
			
				|  |  | +				List<Integer> complementGoodsIds = Arrays.stream(tempGoods.getComplementGoodsIdList().split(",")).map(s -> Integer.valueOf(s)).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +				childGoods = goodsDao.getGoodies(complementGoodsIds);
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			for (Goods goods : childGoods) {
 | 
	
		
			
				|  |  | +				GoodsProcurement goodsProcurement;
 | 
	
		
			
				|  |  | +				if(StockType.INTERNAL.equals(goods.getStockType())||(StockType.ALL.equals(goods.getStockType())&&AccountType.INTERNAL.equals(AccountType.INTERNAL))){
 | 
	
		
			
				|  |  | +					goodsProcurement = goodsProcurementDao.getWithStockSurplusProcurement(goods.getId());
 | 
	
		
			
				|  |  | +					goods.setStockCount(new AtomicInteger(goods.getStockCount()).decrementAndGet());
 | 
	
		
			
				|  |  | +					if(Objects.nonNull(goodsProcurement)){
 | 
	
		
			
				|  |  | +						goodsProcurement.setStockSoldNum(new AtomicInteger(goodsProcurement.getStockSoldNum()).incrementAndGet());
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +				}else if(StockType.EXTERNAL.equals(goods.getStockType())||(StockType.ALL.equals(goods.getStockType())&&AccountType.EXTERNAL.equals(AccountType.EXTERNAL))){
 | 
	
		
			
				|  |  | +					goodsProcurement = goodsProcurementDao.getWithTaxStockSurplusProcurement(goods.getId());
 | 
	
		
			
				|  |  | +					goods.setTaxStockCount(new AtomicInteger(goods.getTaxStockCount()).decrementAndGet());
 | 
	
		
			
				|  |  | +					if(Objects.nonNull(goodsProcurement)){
 | 
	
		
			
				|  |  | +						goodsProcurement.setTaxStockSoldNum(new AtomicInteger(goodsProcurement.getTaxStockSoldNum()).incrementAndGet());
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +				goods.setSellCount(new AtomicInteger(goods.getSellCount()).incrementAndGet());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +				goodsDao.update(goods);
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
 | 
	
		
			
				|  |  |  	public List<SellOrder> subtractStock(List<Integer> goodsIds, AccountType accountType) {
 | 
	
		
			
				|  |  |  		if(CollectionUtils.isEmpty(goodsIds)){
 | 
	
		
			
				|  |  |  			return Collections.emptyList();
 |