diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/StockServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/StockServiceImpl.java index 0ccba0f5..c495629c 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/StockServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/productimpl/StockServiceImpl.java @@ -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 list = new ArrayList<>(); + List 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 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);