|
@@ -305,7 +305,7 @@ public class GoodsServiceImpl extends BaseServiceImpl<Integer, Goods> implement
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
|
|
@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
|
|
- public List<GoodsBatchNoDto> subtractStock(List<Integer> goodsIds, AccountType accountType) {
|
|
|
|
|
|
+ public List<GoodsProcurement> subtractStock(List<Integer> goodsIds, AccountType accountType) {
|
|
if(CollectionUtils.isEmpty(goodsIds)){
|
|
if(CollectionUtils.isEmpty(goodsIds)){
|
|
return Collections.emptyList();
|
|
return Collections.emptyList();
|
|
}
|
|
}
|
|
@@ -329,7 +329,7 @@ public class GoodsServiceImpl extends BaseServiceImpl<Integer, Goods> implement
|
|
goodsDao.batchUpdate(tempGoodsList);
|
|
goodsDao.batchUpdate(tempGoodsList);
|
|
List<Goods> singleGoodsList = goodsDao.getGoodies(singleGoodsIds);
|
|
List<Goods> singleGoodsList = goodsDao.getGoodies(singleGoodsIds);
|
|
Map<Integer, Goods> idSingleGoodsMap = singleGoodsList.stream().collect(Collectors.toMap(Goods::getId, g -> g));
|
|
Map<Integer, Goods> idSingleGoodsMap = singleGoodsList.stream().collect(Collectors.toMap(Goods::getId, g -> g));
|
|
- List<GoodsBatchNoDto> goodsBatchNoDtos = new ArrayList<>();
|
|
|
|
|
|
+ List<GoodsProcurement> goodsBatchNoDtos = new ArrayList<>();
|
|
for (Integer singleGoodsId : singleGoodsIds) {
|
|
for (Integer singleGoodsId : singleGoodsIds) {
|
|
Goods goods = idSingleGoodsMap.get(singleGoodsId);
|
|
Goods goods = idSingleGoodsMap.get(singleGoodsId);
|
|
GoodsProcurement goodsProcurement = null;
|
|
GoodsProcurement goodsProcurement = null;
|
|
@@ -351,10 +351,10 @@ public class GoodsServiceImpl extends BaseServiceImpl<Integer, Goods> implement
|
|
|
|
|
|
goodsDao.update(goods);
|
|
goodsDao.update(goods);
|
|
if(Objects.nonNull(goodsProcurement)){
|
|
if(Objects.nonNull(goodsProcurement)){
|
|
- goodsBatchNoDtos.add(new GoodsBatchNoDto(goods.getId(), goodsProcurement.getBatchNo()));
|
|
|
|
|
|
+ goodsBatchNoDtos.add(goodsProcurement);
|
|
goodsProcurementDao.update(goodsProcurement);
|
|
goodsProcurementDao.update(goodsProcurement);
|
|
}else{
|
|
}else{
|
|
- goodsBatchNoDtos.add(new GoodsBatchNoDto(goods.getId(), goodsProcurement.getBatchNo()));
|
|
|
|
|
|
+ goodsBatchNoDtos.add(new GoodsProcurement(goods.getId()));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -362,9 +362,10 @@ public class GoodsServiceImpl extends BaseServiceImpl<Integer, Goods> implement
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
|
+ @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
|
|
public void increaseStock(List<GoodsBatchNoDto> goodsBatchNoDtos, List<Integer> goodsIdsList, AccountType accountType) {
|
|
public void increaseStock(List<GoodsBatchNoDto> goodsBatchNoDtos, List<Integer> goodsIdsList, AccountType accountType) {
|
|
Set<Integer> goodsIds = goodsBatchNoDtos.stream().map(GoodsBatchNoDto::getGoodsId).collect(Collectors.toSet());
|
|
Set<Integer> goodsIds = goodsBatchNoDtos.stream().map(GoodsBatchNoDto::getGoodsId).collect(Collectors.toSet());
|
|
- List<Goods> goodsList = goodsDao.getGoodies(new ArrayList<>(goodsIds));
|
|
|
|
|
|
+ List<Goods> goodsList = goodsDao.lockGoods(new ArrayList<>(goodsIds));
|
|
Map<Integer, Goods> idGoodsMap = goodsList.stream().collect(Collectors.toMap(Goods::getId, g -> g));
|
|
Map<Integer, Goods> idGoodsMap = goodsList.stream().collect(Collectors.toMap(Goods::getId, g -> g));
|
|
for (GoodsBatchNoDto goodsBatchNoDto : goodsBatchNoDtos) {
|
|
for (GoodsBatchNoDto goodsBatchNoDto : goodsBatchNoDtos) {
|
|
Goods goods = idGoodsMap.get(goodsBatchNoDto.getGoodsId());
|
|
Goods goods = idGoodsMap.get(goodsBatchNoDto.getGoodsId());
|