|
@@ -318,13 +318,11 @@ public class GoodsServiceImpl extends BaseServiceImpl<Integer, Goods> implement
|
|
|
if(StockType.INTERNAL.equals(noneBatchNoSellOrder.getStockType())||(StockType.ALL.equals(noneBatchNoSellOrder.getStockType())&&AccountType.INTERNAL.equals(noneBatchNoSellOrder.getAccountType()))){
|
|
|
goodsProcurement = goodsProcurementDao.getWithStockSurplusProcurement(noneBatchNoSellOrder.getGoodsId());
|
|
|
if(Objects.nonNull(goodsProcurement)){
|
|
|
- goodsProcurement.setStockCount(new AtomicInteger(goodsProcurement.getStockCount()).decrementAndGet());
|
|
|
goodsProcurement.setStockSoldNum(new AtomicInteger(goodsProcurement.getStockSoldNum()).incrementAndGet());
|
|
|
}
|
|
|
}else if(StockType.EXTERNAL.equals(noneBatchNoSellOrder.getStockType())||(StockType.ALL.equals(noneBatchNoSellOrder.getStockType())&&AccountType.EXTERNAL.equals(noneBatchNoSellOrder.getAccountType()))){
|
|
|
goodsProcurement = goodsProcurementDao.getWithTaxStockSurplusProcurement(noneBatchNoSellOrder.getGoodsId());
|
|
|
if(Objects.nonNull(goodsProcurement)){
|
|
|
- goodsProcurement.setTaxStockCount(new AtomicInteger(goodsProcurement.getTaxStockCount()).decrementAndGet());
|
|
|
goodsProcurement.setTaxStockSoldNum(new AtomicInteger(goodsProcurement.getTaxStockSoldNum()).incrementAndGet());
|
|
|
}
|
|
|
}
|
|
@@ -369,14 +367,12 @@ public class GoodsServiceImpl extends BaseServiceImpl<Integer, Goods> implement
|
|
|
goodsProcurement = goodsProcurementDao.getWithStockSurplusProcurement(goods.getId());
|
|
|
goods.setStockCount(new AtomicInteger(goods.getStockCount()).decrementAndGet());
|
|
|
if(Objects.nonNull(goodsProcurement)){
|
|
|
- goodsProcurement.setStockCount(new AtomicInteger(goodsProcurement.getStockCount()).decrementAndGet());
|
|
|
goodsProcurement.setStockSoldNum(new AtomicInteger(goodsProcurement.getStockSoldNum()).incrementAndGet());
|
|
|
}
|
|
|
}else if(StockType.EXTERNAL.equals(goods.getStockType())||(StockType.ALL.equals(goods.getStockType())&&AccountType.EXTERNAL.equals(accountType))){
|
|
|
goodsProcurement = goodsProcurementDao.getWithTaxStockSurplusProcurement(goods.getId());
|
|
|
goods.setTaxStockCount(new AtomicInteger(goods.getTaxStockCount()).decrementAndGet());
|
|
|
if(Objects.nonNull(goodsProcurement)){
|
|
|
- goodsProcurement.setTaxStockCount(new AtomicInteger(goodsProcurement.getTaxStockCount()).decrementAndGet());
|
|
|
goodsProcurement.setTaxStockSoldNum(new AtomicInteger(goodsProcurement.getTaxStockSoldNum()).incrementAndGet());
|
|
|
}
|
|
|
}
|
|
@@ -459,13 +455,11 @@ public class GoodsServiceImpl extends BaseServiceImpl<Integer, Goods> implement
|
|
|
if(StockType.INTERNAL.equals(goods.getStockType())||(StockType.ALL.equals(goods.getStockType())&&AccountType.INTERNAL.equals(accountType))){
|
|
|
goods.setStockCount(new AtomicInteger(goods.getStockCount()).addAndGet(sellOrder.getNum()));
|
|
|
if(Objects.nonNull(goodsProcurement)){
|
|
|
- goodsProcurement.setStockCount(new AtomicInteger(goodsProcurement.getStockCount()).addAndGet(sellOrder.getNum()));
|
|
|
goodsProcurement.setStockSoldNum(new AtomicInteger(goodsProcurement.getStockSoldNum()).addAndGet(-sellOrder.getNum()));
|
|
|
}
|
|
|
}else if(StockType.EXTERNAL.equals(goods.getStockType())||(StockType.ALL.equals(goods.getStockType())&&AccountType.EXTERNAL.equals(accountType))){
|
|
|
goods.setTaxStockCount(new AtomicInteger(goods.getTaxStockCount()).addAndGet(sellOrder.getNum()));
|
|
|
if(Objects.nonNull(goodsProcurement)){
|
|
|
- goodsProcurement.setTaxStockCount(new AtomicInteger(goodsProcurement.getTaxStockCount()).addAndGet(sellOrder.getNum()));
|
|
|
goodsProcurement.setTaxStockSoldNum(new AtomicInteger(goodsProcurement.getTaxStockSoldNum()).addAndGet(-sellOrder.getNum()));
|
|
|
}
|
|
|
}
|
|
@@ -477,11 +471,11 @@ public class GoodsServiceImpl extends BaseServiceImpl<Integer, Goods> implement
|
|
|
}
|
|
|
|
|
|
//处理组合商品
|
|
|
- Map<Integer, Long> goodsNumMap = sellOrders.stream().filter(so -> Objects.nonNull(so.getParentGoodsId())).collect(Collectors.groupingBy(SellOrder::getId, Collectors.counting()));
|
|
|
+ Map<Integer, Long> goodsNumMap = sellOrders.stream().filter(so -> Objects.nonNull(so.getParentGoodsId())).collect(Collectors.groupingBy(SellOrder::getParentGoodsId, Collectors.counting()));
|
|
|
for (Map.Entry<Integer, Long> goodsIdNumMapEntry : goodsNumMap.entrySet()) {
|
|
|
Goods goods = idGoodsMap.get(goodsIdNumMapEntry.getKey());
|
|
|
- int complementGoodsSize = goods.getComplementGoodsIdList().split(",").length;
|
|
|
- int sellNum = (int) (goodsIdNumMapEntry.getValue()/complementGoodsSize);
|
|
|
+ int goodSize = (int) sellOrders.stream().filter(so -> goodsIdNumMapEntry.getKey().equals(so.getParentGoodsId())).count();
|
|
|
+ int sellNum = (int) (goodSize/goodsIdNumMapEntry.getValue());
|
|
|
goods.setSellCount(new AtomicInteger(goods.getSellCount()).addAndGet(-sellNum));
|
|
|
goodsDao.update(goods);
|
|
|
}
|