|
@@ -144,9 +144,11 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
|
|
|
return page;
|
|
|
}
|
|
|
|
|
|
- /**次品转良品*/
|
|
|
+ /**
|
|
|
+ * 次品转良品
|
|
|
+ */
|
|
|
@Override
|
|
|
- public void defectiveToQualified(Stock stock){
|
|
|
+ public void defectiveToQualified(Stock stock) {
|
|
|
Assert.notEmpty(stock.getId(), "库存id不能为空");
|
|
|
Assert.notEmpty(stock.getQuantity(), "要转换的数量不能为空");
|
|
|
Stock stock1 = getById(stock.getId());
|
|
@@ -215,8 +217,26 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
// 遍历库存
|
|
|
- for (Stock oldStock : list) {
|
|
|
+ List<Stock> stockList = new ArrayList<>();
|
|
|
+
|
|
|
+ Map<Long, Stock> stockMap = list.stream().collect(Collectors.groupingBy(Stock::getGoodsId,
|
|
|
+ Collectors.collectingAndThen(Collectors.toList(), value -> value.get(0))));
|
|
|
+ for (Map.Entry<String, Stock> entry : map.entrySet()) {
|
|
|
+ Stock value = entry.getValue();
|
|
|
+ Stock oldStock = stockMap.get(value.getGoodsId());
|
|
|
+ if (oldStock == null) {
|
|
|
+ oldStock = new Stock();
|
|
|
+ oldStock.setWarehouseId(value.getWarehouseId());
|
|
|
+ oldStock.setGoodsId(value.getGoodsId());
|
|
|
+ oldStock.setQuantity(BigDecimal.ZERO);
|
|
|
+ oldStock.setFrozenQuantity(BigDecimal.ZERO);
|
|
|
+ oldStock.setDefectiveQuantity(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+// for (Stock oldStock : list) {
|
|
|
Stock newStock = map.get(oldStock.getGoodsId().toString() + oldStock.getWarehouseId().toString());
|
|
|
|
|
|
// 入库逻辑
|
|
@@ -245,8 +265,10 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
|
|
|
oldStock.setQuantity(subtract);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ stockList.add(oldStock);
|
|
|
}
|
|
|
- saveOrUpdateBatch(list);
|
|
|
+ saveOrUpdateBatch(stockList);
|
|
|
}
|
|
|
|
|
|
}
|