修改批量导入库存

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

View File

@ -103,37 +103,35 @@ public class StockServiceImpl implements StockService {
List<Map<String, Object>> list = new ArrayList<>();
List<StockV2Vo> stockVos = tbProductSkuRepository.searchProStockV2(summaryDto.getShopId(), summaryDto.getName(), summaryDto.getIsStock());
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)) {
continue;
}
List<StockV2Vo> skuList = queryProductSku(all.getProId().toString());
for (StockV2Vo sku : skuList) {
Map<String, Object> skuMap = new LinkedHashMap<>();
skuMap.put("id(如需导入,该值不可变)", "");
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);
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);
} else {
List<StockV2Vo> skuList = queryProductSku(all.getProId().toString());
for (StockV2Vo sku : skuList) {
Map<String, Object> skuMap = new LinkedHashMap<>();
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);
@ -193,17 +191,22 @@ public class StockServiceImpl implements StockService {
if (row != null) {
XSSFCell cell0 = row.getCell(0);
String productIdStr = cell0.toString();
if (StringUtils.isBlank(productIdStr)) {
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;
}
list.add(new StockV2Vo(
0,
sku.getId(),
row.getCell(1).toString(),
row.getCell(5).toString(),
row.getCell(4).toString(),
row.getCell(6).toString(),
numStr,
sku.getStockNumber(),
0
));
@ -211,9 +214,10 @@ public class StockServiceImpl implements StockService {
} else {
TbProductDto product = productService.findById(Double.valueOf(productIdStr).intValue());
if (product != null) {
Object number = "0";
if (product.getIsDistribute().equals(1)) {
number = row.getCell(6).toString();
String numStr = row.getCell(6).toString();
Integer aIntValue = Double.valueOf(numStr).intValue();
if (aIntValue.equals(product.getStockNumber())) {
continue;
}
list.add(new StockV2Vo(
product.getId(),
@ -221,7 +225,7 @@ public class StockServiceImpl implements StockService {
product.getName(),
row.getCell(5).toString(),
row.getCell(4).toString(),
number,
aIntValue,
product.getStockNumber(),
product.getIsDistribute()
));

View File

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