库存商品上传

This commit is contained in:
zjf committed 2025-02-28 21:10:44 +08:00
1 parent 2419c32cbf
commit 593701cd83
3 files changed
+35 -24

No files matched your search

@@ -21,18 +21,18 @@ public class ErpSpuValidator {
if (StringUtils.isEmpty(entity.getUnit())) {
errors.add("第" + (rowIndex + 1) + "行: 单位不能为空");
}
if (StringUtils.isEmpty(entity.getSpec())) {
errors.add("第" + (rowIndex + 1) + "行: 规格不能为空");
}
if (StringUtils.isEmpty(entity.getClassification())) {
errors.add("第" + (rowIndex + 1) + "行: 分类不能为空");
}
if (StringUtils.isEmpty(entity.getCommodityNature())) {
errors.add("第" + (rowIndex + 1) + "行: 商品性质不能为空");
}
if (StringUtils.isEmpty(entity.getSupplier())) {
errors.add("第" + (rowIndex + 1) + "行: 货商不能为空");
}
// if (StringUtils.isEmpty(entity.getSpec())) {
// errors.add("第" + (rowIndex + 1) + "行: 规格不能为空");
// }
// if (StringUtils.isEmpty(entity.getClassification())) {
// errors.add("第" + (rowIndex + 1) + "行: 分类不能为空");
// }
// if (StringUtils.isEmpty(entity.getCommodityNature())) {
// errors.add("第" + (rowIndex + 1) + "行: 商品性质不能为空");
// }
// if (StringUtils.isEmpty(entity.getSupplier())) {
// errors.add("第" + (rowIndex + 1) + "行: 货商不能为空");
// }
if (null==entity.getPurchasePrice()) {
errors.add("第" + (rowIndex + 1) + "行: 进价不能为空");
}
@@ -231,14 +231,14 @@ public class SmErpSpuController {
@PostMapping("/import")
@PreAuthorize("@pms.hasPermission('supermarket_supermarketSpu_export')" )
public R importErpSpu(@RequestExcel List<SmErpSpuImportDto> dtos, BindingResult bindingResult) {
List<SmErpSpuImportDto> collect = dtos.stream().filter(smErpSpuImportDto -> smErpSpuImportDto.getProductCode() == null).collect(Collectors.toList());
List<SmErpSpuImportDto> collect = dtos.stream().filter(smErpSpuImportDto -> smErpSpuImportDto.getProductCode() != null).collect(Collectors.toList());
// String taskId = taskStoreService.createTask(dtos.size());
// smErpSpuService.asyncExecuteImport(taskId, collect);
// return R.ok(Collections.singletonMap("taskId", taskId));
System.out.println(collect);
List<SmErpSpuImportDto> collect1 = dtos.stream().filter(smErpSpuImportDto -> StringUtils.isBlank(smErpSpuImportDto.getClassification())).collect(Collectors.toList());
System.out.println(collect1);
return smErpSpuService.importErpSpu(dtos, bindingResult);
// List<SmErpSpuImportDto> collect1 = dtos.stream().filter(smErpSpuImportDto -> StringUtils.isBlank(smErpSpuImportDto.getClassification())).collect(Collectors.toList());
// System.out.println(collect);
return smErpSpuService.importErpSpu(collect, bindingResult);
}
@@ -234,22 +234,25 @@ public class SmErpSpuServiceImpl extends ServiceImpl<SmErpSpuMapper, SmErpSpuEnt
Page pageData = baseMapper.selectPageByScope(page, wrapper, DataScope.of());
//计算库存回显
List<SmErpSpuEntity> records = pageData.getRecords();
Set<Long> erpSpuIds = records.stream().map(smErpSpuEntity -> smErpSpuEntity.getId()).collect(Collectors.toSet());
if (CollectionUtils.isNotEmpty(records)){
Set<Long> erpSpuIds = records.stream().map(smErpSpuEntity -> smErpSpuEntity.getId()).collect(Collectors.toSet());
// 批量查询库存信息
List<SmErpStockEntity> stocks = smErpStockMapper.selectList(
List<SmErpStockEntity> stocks = smErpStockMapper.selectList(
new LambdaQueryWrapper<SmErpStockEntity>()
.in(SmErpStockEntity::getErpSpuId, erpSpuIds));
// 建立SPU ID与库存的映射关系
Map<Long, SmErpStockEntity> stockMap = stocks.stream()
Map<Long, SmErpStockEntity> stockMap = stocks.stream()
.collect(Collectors.toMap(SmErpStockEntity::getErpSpuId,smErpStockEntity -> smErpStockEntity));
records.forEach(spu ->
{
SmErpStockEntity smErpStockEntity = stockMap.get(spu.getId());
spu.setStock(smErpStockEntity != null ? smErpStockEntity.getCurrentStock() : 0);
});
records.forEach(spu ->
{
SmErpStockEntity smErpStockEntity = stockMap.get(spu.getId());
spu.setStock(smErpStockEntity != null ? smErpStockEntity.getCurrentStock() : 0);
});
}
return pageData;
}
@@ -853,6 +856,8 @@ public class SmErpSpuServiceImpl extends ServiceImpl<SmErpSpuMapper, SmErpSpuEnt
// 库存
SmErpStockEntity stock = BeanUtils.toBean(dto, SmErpStockEntity.class);
stock.setErpSpuId(spu.getId());
stock.setCurrentStock(dto.getStock());
stock.setBaseStock(dto.getStock());
stockBatch.add(stock);
// 辅助条码
@@ -863,6 +868,12 @@ public class SmErpSpuServiceImpl extends ServiceImpl<SmErpSpuMapper, SmErpSpuEnt
codeBatch.add(code);
}
public void asyncExecuteImport(String taskId, List<SmErpSpuImportDto> dtos) {
executor.execute(() -> {
List<Map<String, Object>> errors = new ArrayList<>();