批量导入增加详细库存记录
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user