|
@@ -401,13 +401,18 @@ public class GoodsServiceImpl extends BaseServiceImpl<Integer, Goods> implement
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
|
|
|
public void sellOrderBatchNoAllot() {
|
|
|
- List<SellOrder> noneBatchNoSellOrders = sellOrderDao.getNoneBatchNoSellOrders();
|
|
|
- if(CollectionUtils.isEmpty(noneBatchNoSellOrders)){
|
|
|
+ List<Integer> noneBatchNoSellOrderIds = sellOrderDao.getNoneBatchNoSellOrderIds();
|
|
|
+ if(CollectionUtils.isEmpty(noneBatchNoSellOrderIds)){
|
|
|
return;
|
|
|
}
|
|
|
+ List<SellOrder> noneBatchNoSellOrders = sellOrderDao.lockSellOrders(noneBatchNoSellOrderIds);
|
|
|
List<SellOrder> updateSellOrders = new ArrayList<>();
|
|
|
for (SellOrder noneBatchNoSellOrder : noneBatchNoSellOrders) {
|
|
|
+ if(SellStatus.REFUND.equals(noneBatchNoSellOrder.getStatus())){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
GoodsProcurement goodsProcurement = null;
|
|
|
if(StockType.INTERNAL.equals(noneBatchNoSellOrder.getStockType())||(StockType.ALL.equals(noneBatchNoSellOrder.getStockType())&&AccountType.INTERNAL.equals(noneBatchNoSellOrder.getAccountType()))){
|
|
|
goodsProcurement = goodsProcurementDao.getWithStockSurplusProcurement(noneBatchNoSellOrder.getGoodsId());
|
|
@@ -573,6 +578,8 @@ public class GoodsServiceImpl extends BaseServiceImpl<Integer, Goods> implement
|
|
|
}
|
|
|
});
|
|
|
|
|
|
+ goodsDao.lockGoods(new ArrayList<>(goodsIdList));
|
|
|
+
|
|
|
for (SellOrder sellOrder : sellOrders) {
|
|
|
Goods goods = goodsDao.get(sellOrder.getGoodsId());
|
|
|
GoodsProcurement goodsProcurement = goodsProcurementDao.getWithGoodsAndBatchNo(sellOrder.getGoodsId(), sellOrder.getBatchNo());
|