diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductStockOperateServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductStockOperateServiceImpl.java index 1509fd67..373ad303 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductStockOperateServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/TbProductStockOperateServiceImpl.java @@ -1,6 +1,8 @@ package cn.ysk.cashier.service.impl.productimpl; +import cn.ysk.cashier.pojo.product.TbProduct; import cn.ysk.cashier.pojo.shop.TbShopPurveyor; +import cn.ysk.cashier.repository.product.TbProductRepository; import cn.ysk.cashier.repository.shop.TbShopPurveyorRepository; import cn.ysk.cashier.utils.*; import com.alibaba.fastjson.JSON; @@ -60,6 +62,7 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe private final EntityManager entityManager; private final RedisUtils redisUtils; + private final TbProductRepository tbProductRepository; @Override @@ -205,12 +208,20 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe continue; } TbProductSku tbProductSku = tbProductSkuRepository.findById(productListDto.getId()).orElseGet(TbProductSku::new); + + TbProduct product = tbProductRepository.findById(Integer.valueOf(productListDto.getProductId())).orElseGet(TbProduct::new); + if (product.getId() == null) { + throw new BadRequestException("商品有误"); + } + + boolean isDistribute = product.getIsDistribute() == 1; + TbProductStockDetail productStockDetail = new TbProductStockDetail(); productStockDetail.setBatchNumber(resources.getBatchNumber()); productStockDetail.setCreatedAt(times); productStockDetail.setUpdatedAt(times); productStockDetail.setIsStock(1); - Integer round = (int) Math.floor(tbProductSku.getStockNumber()); + Integer round = (int) Math.floor(isDistribute ? product.getStockNumber() : tbProductSku.getStockNumber()); productStockDetail.setLeftNumber(round); productStockDetail.setProductId(productListDto.getProductId()); productStockDetail.setProductName(productListDto.getName()); @@ -251,9 +262,14 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe productStockDetail.setType(resources.getType()); productStockDetail.setUnitName(productListDto.getUnitName()); entityManager.persist(productStockDetail); - //sku数量 - tbProductSku.setStockNumber(tbProductSku.getStockNumber() + productStockDetail.getStockNumber()); - productSkuService.update(tbProductSku); + if (isDistribute) { + product.setStockNumber(product.getStockNumber() + productStockDetail.getStockNumber().intValue()); + tbProductRepository.save(product); + } else { + //sku数量 + tbProductSku.setStockNumber(tbProductSku.getStockNumber() + productStockDetail.getStockNumber()); + productSkuService.update(tbProductSku); + } idStockMap.put(productListDto.getId(), productStockDetail.getStockNumber()); } redisUtils.redisUp(2, resources.getShopId(), idStockMap); @@ -316,4 +332,4 @@ public class TbProductStockOperateServiceImpl implements TbProductStockOperateSe } FileUtil.downloadExcel(list, response); } -} \ No newline at end of file +}