批量导入增加详细库存记录

This commit is contained in:
GYJ
2024-07-02 15:30:56 +08:00
parent cc048025a1
commit 09ca518caa

View File

@@ -4,18 +4,18 @@ import cn.ysk.cashier.dto.product.OutAndOnDto;
import cn.ysk.cashier.dto.product.StockQueryDto;
import cn.ysk.cashier.dto.product.TbProductDto;
import cn.ysk.cashier.exception.BadRequestException;
import cn.ysk.cashier.mapper.shop.TbShopInfoMapper;
import cn.ysk.cashier.mapper.shop.TbShopUnitMapper;
import cn.ysk.cashier.pojo.product.TbProductSku;
import cn.ysk.cashier.pojo.product.TbProductStockDetail;
import cn.ysk.cashier.pojo.shop.TbShopInfo;
import cn.ysk.cashier.pojo.shop.TbShopUnit;
import cn.ysk.cashier.repository.product.TbProductSkuRepository;
import cn.ysk.cashier.repository.product.TbProductStockDetailRepository;
import cn.ysk.cashier.repository.shop.TbShopInfoRepository;
import cn.ysk.cashier.repository.shop.TbShopUnitRepository;
import cn.ysk.cashier.service.TbProductStockOperateService;
import cn.ysk.cashier.service.product.StockService;
import cn.ysk.cashier.service.product.TbProductService;
import cn.ysk.cashier.service.product.TbProductStockDetailService;
import cn.ysk.cashier.utils.CacheKey;
import cn.ysk.cashier.utils.FileUtil;
import cn.ysk.cashier.utils.RedisUtils;
@@ -33,18 +33,12 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import javax.servlet.http.HttpServletResponse;
import javax.transaction.Transactional;
import java.io.IOException;
@@ -65,6 +59,7 @@ public class StockServiceImpl implements StockService {
private final TbProductSkuRepository skuRepository;
private final TbShopInfoRepository tbShopInfoRepository;
private final TbShopUnitRepository shopUnitRepository;
private final TbProductStockDetailRepository tbProductStockDetailRepository;
@PersistenceContext
private EntityManager em;
@@ -193,6 +188,8 @@ public class StockServiceImpl implements StockService {
XSSFRow row = null;
List<StockV2Vo> list = new ArrayList<>();
List<TbProductStockDetail> stockDetails = new ArrayList<>();
for (int i = 1; i < sheet.getPhysicalNumberOfRows(); i++) {
row = sheet.getRow(i);
if (row != null) {
@@ -203,9 +200,9 @@ public class StockServiceImpl implements StockService {
stockDetail.setCreatedAt(System.currentTimeMillis());
stockDetail.setUpdatedAt(System.currentTimeMillis());
stockDetail.setSourcePath("NORMAL");
stockDetail.setType("一次性入库");
stockDetail.setType("一次性入库覆盖库存");
stockDetail.setSubType(1);
stockDetail.setRemark("一次性入库");
stockDetail.setRemark("一次性入库覆盖库存");
if ("sku".equals(productIdStr)) {
Optional<TbProductSku> byId = skuRepository.findById(Double.valueOf(row.getCell(2).toString()).intValue());
@@ -227,7 +224,7 @@ public class StockServiceImpl implements StockService {
stockDetail.setUnitName(shopUnit.getName());
stockDetail.setLeftNumber(sku.getStockNumber().intValue());
stockDetail.setStockNumber(aDouble);
em.persist(stockDetail);
stockDetails.add(stockDetail);
list.add(new StockV2Vo(
0,
@@ -253,12 +250,12 @@ public class StockServiceImpl implements StockService {
TbShopUnit shopUnit = shopUnitRepository.searchUnit(product.getUnitId());
stockDetail.setShopId(product.getShopId());
stockDetail.setSkuId(product.getId().toString());
stockDetail.setProductId(product.getId().toString());
stockDetail.setProductName(product.getName());
stockDetail.setUnitName(shopUnit.getName());
stockDetail.setLeftNumber(product.getStockNumber());
stockDetail.setStockNumber(aDouble);
em.persist(stockDetail);
stockDetails.add(stockDetail);
list.add(new StockV2Vo(
product.getId(),
@@ -275,6 +272,10 @@ public class StockServiceImpl implements StockService {
}
}
if (!stockDetails.isEmpty()) {
tbProductStockDetailRepository.saveAll(stockDetails);
}
log.info("库存导入.importExcel.data:" + list);
OutAndOnDto outAndOnDto = new OutAndOnDto();
outAndOnDto.setShopId(shopId);