|
@@ -1015,6 +1015,9 @@ public class WebsitSalesLogic {
|
|
|
Map<String, List<WebsitSalesItemBean>> itemMap = salesItemBeanList.stream()
|
|
|
.collect(Collectors.groupingBy(WebsitSalesItemBean::getSalesId));
|
|
|
|
|
|
+ // 装本次导入检查的对应辅材库存
|
|
|
+ Map<String, WebsitStock> websitStockMap = new HashMap<>();
|
|
|
+
|
|
|
// 注入销售单和明细
|
|
|
for (WebsitSalesBean websitSalesBean : salesBeanList) {
|
|
|
WebsitSales sales = new WebsitSales();
|
|
@@ -1024,11 +1027,43 @@ public class WebsitSalesLogic {
|
|
|
|
|
|
List<WebsitSalesItemBean> itemBeans = itemMap.get(sales.getSalesId());
|
|
|
|
|
|
+ // 获取网点辅材库存
|
|
|
+ final List<WebsitStock> websitStockList = websitStockService.lambdaQuery()
|
|
|
+ .eq(WebsitStock::getCompanyWechatId, sales.getCompanyWechatId())
|
|
|
+ .eq(WebsitStock::getWebsitId, sales.getWebsitId())
|
|
|
+ .eq(WebsitStock::getStorageId, sales.getStorageId())
|
|
|
+ .eq(WebsitStock::getGoodsType, WebsitGoodsTypeEnum.M.getKey())
|
|
|
+ .in(WebsitStock::getGoodsId, itemBeans.stream()
|
|
|
+ .map(WebsitSalesItemBean::getGoodsId)
|
|
|
+ .collect(Collectors.toList()))
|
|
|
+ .list();
|
|
|
+
|
|
|
+ Map<String, WebsitStock> stockMap = websitStockList.stream()
|
|
|
+ .collect(Collectors.toMap(WebsitStock::getGoodsId, Function.identity()));
|
|
|
|
|
|
for (WebsitSalesItemBean itemBean : itemBeans) {
|
|
|
WebsitSalesItem item = new WebsitSalesItem();
|
|
|
BeanUtils.copyProperties(itemBean, item);
|
|
|
|
|
|
+ String stockKey = sales.getCompanyWechatId() + sales.getWebsitId() + sales.getStorageId() + item.getGoodsId();
|
|
|
+ WebsitStock curStock;
|
|
|
+ if (websitStockMap.containsKey(stockKey)) {
|
|
|
+ curStock = websitStockMap.get(stockKey);
|
|
|
+ } else {
|
|
|
+ curStock = stockMap.get(item.getGoodsId());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (Objects.isNull(curStock)) {
|
|
|
+ throw new RemoteServiceException(sales.getWebsitName() + " 仓库 " + sales.getStorageName() + " 没有”" + item.getGoodsName() + "”库存信息");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (item.getSalesQty().compareTo(curStock.getQty()) > 0) {
|
|
|
+ throw new RemoteServiceException(sales.getWebsitName() + " 仓库 " + sales.getStorageName() + " 的“" + item.getGoodsName() + "“库存数量" + curStock.getQty() + "少于销售数量");
|
|
|
+ }
|
|
|
+
|
|
|
+ curStock.setQty(curStock.getQty().subtract(item.getSalesQty()));
|
|
|
+ websitStockMap.put(stockKey, curStock);
|
|
|
+
|
|
|
totalAmount = totalAmount.add(item.getSaleAmount());
|
|
|
item.setCompanyWechatId(sales.getCompanyWechatId());
|
|
|
|