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

This commit is contained in:
GYJ 2024-07-02 14:59:54 +08:00
parent d59390831e
commit cc048025a1
1 changed files with 42 additions and 1 deletions

View File

@ -5,10 +5,14 @@ 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.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;
@ -60,6 +64,7 @@ public class StockServiceImpl implements StockService {
private final TbProductStockOperateService stockOperateService;
private final TbProductSkuRepository skuRepository;
private final TbShopInfoRepository tbShopInfoRepository;
private final TbShopUnitRepository shopUnitRepository;
@PersistenceContext
private EntityManager em;
@ -187,20 +192,43 @@ public class StockServiceImpl implements StockService {
XSSFSheet sheet = xssfWorkbook.getSheetAt(0);
XSSFRow row = null;
List<StockV2Vo> list = new ArrayList<>();
for (int i = 1; i < sheet.getPhysicalNumberOfRows(); i++) {
row = sheet.getRow(i);
if (row != null) {
XSSFCell cell0 = row.getCell(0);
String productIdStr = cell0.toString();
TbProductStockDetail stockDetail = new TbProductStockDetail();
stockDetail.setCreatedAt(System.currentTimeMillis());
stockDetail.setUpdatedAt(System.currentTimeMillis());
stockDetail.setSourcePath("NORMAL");
stockDetail.setType("一次性入库");
stockDetail.setSubType(1);
stockDetail.setRemark("一次性入库");
if ("sku".equals(productIdStr)) {
Optional<TbProductSku> byId = skuRepository.findById(Double.valueOf(row.getCell(2).toString()).intValue());
if (byId.isPresent()) {
TbProductSku sku = byId.get();
String numStr = row.getCell(6).toString();
Double aDouble = Double.valueOf(numStr);
if (aDouble.equals(sku.getStockNumber())) {
continue;
}
TbProductDto product = productService.findById(sku.getId());
TbShopUnit shopUnit = shopUnitRepository.searchUnit(product.getUnitId());
stockDetail.setShopId(sku.getShopId());
stockDetail.setSkuId(sku.getId().toString());
stockDetail.setProductName(product.getName());
stockDetail.setUnitName(shopUnit.getName());
stockDetail.setLeftNumber(sku.getStockNumber().intValue());
stockDetail.setStockNumber(aDouble);
em.persist(stockDetail);
list.add(new StockV2Vo(
0,
sku.getId(),
@ -216,10 +244,22 @@ public class StockServiceImpl implements StockService {
TbProductDto product = productService.findById(Double.valueOf(productIdStr).intValue());
if (product != null) {
String numStr = row.getCell(6).toString();
Integer aIntValue = Double.valueOf(numStr).intValue();
Double aDouble = Double.valueOf(numStr);
Integer aIntValue = aDouble.intValue();
if (aIntValue.equals(product.getStockNumber())) {
continue;
}
TbShopUnit shopUnit = shopUnitRepository.searchUnit(product.getUnitId());
stockDetail.setShopId(product.getShopId());
stockDetail.setSkuId(product.getId().toString());
stockDetail.setProductName(product.getName());
stockDetail.setUnitName(shopUnit.getName());
stockDetail.setLeftNumber(product.getStockNumber());
stockDetail.setStockNumber(aDouble);
em.persist(stockDetail);
list.add(new StockV2Vo(
product.getId(),
0,
@ -234,6 +274,7 @@ public class StockServiceImpl implements StockService {
}
}
}
log.info("库存导入.importExcel.data:" + list);
OutAndOnDto outAndOnDto = new OutAndOnDto();
outAndOnDto.setShopId(shopId);