修改批量导入库存

This commit is contained in:
GYJ
2024-06-27 14:56:51 +08:00
parent 260d364b72
commit 1167bec54a
3 changed files with 44 additions and 37 deletions

View File

@@ -2,6 +2,7 @@ package cn.ysk.cashier.controller.product;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.ysk.cashier.annotation.Log; import cn.ysk.cashier.annotation.Log;
import cn.ysk.cashier.annotation.rest.AnonymousPostMapping;
import cn.ysk.cashier.dto.product.StockQueryDto; import cn.ysk.cashier.dto.product.StockQueryDto;
import cn.ysk.cashier.exception.BadRequestException; import cn.ysk.cashier.exception.BadRequestException;
import cn.ysk.cashier.service.product.StockService; import cn.ysk.cashier.service.product.StockService;
@@ -71,6 +72,7 @@ public class StockController {
@Log("库存导入") @Log("库存导入")
@PostMapping("/doImport/v2") @PostMapping("/doImport/v2")
@ApiOperation("文件导入库存") @ApiOperation("文件导入库存")
@AnonymousPostMapping
public ResponseEntity<Object> importExcelV2(@RequestParam String shopId,@RequestParam("file") MultipartFile file) { public ResponseEntity<Object> importExcelV2(@RequestParam String shopId,@RequestParam("file") MultipartFile file) {
String fileName = file.getOriginalFilename(); String fileName = file.getOriginalFilename();
if (file.isEmpty()) { if (file.isEmpty()) {

View File

@@ -103,37 +103,35 @@ public class StockServiceImpl implements StockService {
List<Map<String, Object>> list = new ArrayList<>(); List<Map<String, Object>> list = new ArrayList<>();
List<StockV2Vo> stockVos = tbProductSkuRepository.searchProStockV2(summaryDto.getShopId(), summaryDto.getName(), summaryDto.getIsStock()); List<StockV2Vo> stockVos = tbProductSkuRepository.searchProStockV2(summaryDto.getShopId(), summaryDto.getName(), summaryDto.getIsStock());
for (StockV2Vo all : stockVos) { for (StockV2Vo all : stockVos) {
Map<String, Object> map = new LinkedHashMap<>();
map.put("id(如需导入,该值不可变)", all.getProId());
map.put("商品名称", all.getName());
map.put("商品skuId(如需导入,该值不可变)", all.getSkuId());
map.put("商品类型", all.getType());
map.put("商品规格", all.getSpecSnap());
map.put("商品单位", all.getUnitName());
map.put("库存数量", all.getStockNumber());
map.put("库存开关", all.getIsStock().equals(0) ? "" : "");
map.put("是否共享库存", all.getIsDistribute().equals(0) ? "" : "");
map.put("是否售罄", all.getIsPauseSale().equals(0) ? "" : "");
list.add(map);
if (all.getIsDistribute().equals(1)) { if (all.getIsDistribute().equals(1)) {
continue; Map<String, Object> map = new LinkedHashMap<>();
} map.put("id(如需导入,该值不可变)", all.getProId());
map.put("商品名称", all.getName());
List<StockV2Vo> skuList = queryProductSku(all.getProId().toString()); map.put("商品skuId(如需导入,该值不可变)", all.getSkuId());
for (StockV2Vo sku : skuList) { map.put("商品类型", all.getType());
Map<String, Object> skuMap = new LinkedHashMap<>(); map.put("商品规格", all.getSpecSnap());
skuMap.put("id(如需导入,该值不可变)", ""); map.put("商品单位", all.getUnitName());
skuMap.put("商品名称", all.getName()); map.put("库存数量", all.getStockNumber());
skuMap.put("商品skuId(如需导入,该值不可变)", sku.getSkuId()); map.put("库存开关", all.getIsStock().equals(0) ? "" : "");
skuMap.put("商品类型", sku.getType()); map.put("是否共享库存", all.getIsDistribute().equals(0) ? "" : "");
skuMap.put("商品规格", sku.getSpecSnap()); map.put("是否售罄", all.getIsPauseSale().equals(0) ? "" : "");
skuMap.put("商品单位", sku.getUnitName()); list.add(map);
skuMap.put("库存数量", sku.getStockNumber()); } else {
skuMap.put("库存开关", sku.getIsStock().equals(0) ? "" : ""); List<StockV2Vo> skuList = queryProductSku(all.getProId().toString());
skuMap.put("是否共享库存", sku.getIsDistribute().equals(0) ? "" : ""); for (StockV2Vo sku : skuList) {
skuMap.put("是否售罄", sku.getIsPauseSale().equals(0) ? "" : ""); Map<String, Object> skuMap = new LinkedHashMap<>();
list.add(skuMap); skuMap.put("id(如需导入,该值不可变)", "sku");
skuMap.put("商品名称", all.getName());
skuMap.put("商品skuId(如需导入,该值不可变)", sku.getSkuId());
skuMap.put("商品类型", sku.getType());
skuMap.put("商品规格", sku.getSpecSnap());
skuMap.put("商品单位", sku.getUnitName());
skuMap.put("库存数量", sku.getStockNumber());
skuMap.put("库存开关", sku.getIsStock().equals(0) ? "" : "");
skuMap.put("是否共享库存", sku.getIsDistribute().equals(0) ? "" : "");
skuMap.put("是否售罄", sku.getIsPauseSale().equals(0) ? "" : "");
list.add(skuMap);
}
} }
} }
FileUtil.downloadExcel(list, response); FileUtil.downloadExcel(list, response);
@@ -193,17 +191,22 @@ public class StockServiceImpl implements StockService {
if (row != null) { if (row != null) {
XSSFCell cell0 = row.getCell(0); XSSFCell cell0 = row.getCell(0);
String productIdStr = cell0.toString(); String productIdStr = cell0.toString();
if (StringUtils.isBlank(productIdStr)) { if ("sku".equals(productIdStr)) {
Optional<TbProductSku> byId = skuRepository.findById(Double.valueOf(row.getCell(2).toString()).intValue()); Optional<TbProductSku> byId = skuRepository.findById(Double.valueOf(row.getCell(2).toString()).intValue());
if (byId.isPresent()) { if (byId.isPresent()) {
TbProductSku sku = byId.get(); TbProductSku sku = byId.get();
String numStr = row.getCell(6).toString();
Double aDouble = Double.valueOf(numStr);
if (aDouble.equals(sku.getStockNumber())) {
continue;
}
list.add(new StockV2Vo( list.add(new StockV2Vo(
0, 0,
sku.getId(), sku.getId(),
row.getCell(1).toString(), row.getCell(1).toString(),
row.getCell(5).toString(), row.getCell(5).toString(),
row.getCell(4).toString(), row.getCell(4).toString(),
row.getCell(6).toString(), numStr,
sku.getStockNumber(), sku.getStockNumber(),
0 0
)); ));
@@ -211,9 +214,10 @@ public class StockServiceImpl implements StockService {
} else { } else {
TbProductDto product = productService.findById(Double.valueOf(productIdStr).intValue()); TbProductDto product = productService.findById(Double.valueOf(productIdStr).intValue());
if (product != null) { if (product != null) {
Object number = "0"; String numStr = row.getCell(6).toString();
if (product.getIsDistribute().equals(1)) { Integer aIntValue = Double.valueOf(numStr).intValue();
number = row.getCell(6).toString(); if (aIntValue.equals(product.getStockNumber())) {
continue;
} }
list.add(new StockV2Vo( list.add(new StockV2Vo(
product.getId(), product.getId(),
@@ -221,7 +225,7 @@ public class StockServiceImpl implements StockService {
product.getName(), product.getName(),
row.getCell(5).toString(), row.getCell(5).toString(),
row.getCell(4).toString(), row.getCell(4).toString(),
number, aIntValue,
product.getStockNumber(), product.getStockNumber(),
product.getIsDistribute() product.getIsDistribute()
)); ));

View File

@@ -107,7 +107,8 @@ public class StockV2Vo {
"\"name\":\"" + name + "\","+ "\"name\":\"" + name + "\","+
"\"unitName\":\"" + unitName +"\","+ "\"unitName\":\"" + unitName +"\","+
"\"specSnap\":\"" + specSnap + "\"," + "\"specSnap\":\"" + specSnap + "\"," +
"\"stockNumber\":\"" + stockNumber + "\"," + "\"number\":\"" + number + "\"," +
"\"stockNumber\":\"" + stockNumber + "\"" +
"}"; "}";
} }
} }