菜品库存

This commit is contained in:
zjf committed 2025-05-16 16:10:05 +08:00
1 parent 64cbf18a75
commit e1f343c2b4
3 files changed
+41 -11

No files matched your search

@@ -126,9 +126,11 @@ public class CanteenSpuController {
@SysLog("新增菜品spu")
@PostMapping
@PreAuthorize("@pms.hasPermission('canteen_canteenSpu_add')")
@Transactional
public R save(@RequestBody CanteenSpuEntity canteenSpu) {
Long deptId = SecurityUtils.getUser().getDeptId();
canteenSpu.setDeptId(deptId);
boolean save = canteenSpuService.save(canteenSpu);
CanteenStockEntity canteenStockEntity = new CanteenStockEntity();
canteenStockEntity.setItemId(canteenSpu.getId());
canteenStockEntity.setItemType(StockTypeEnum.DISH.getType());
@@ -138,7 +140,7 @@ public class CanteenSpuController {
canteenStockEntity.setCurrentStock(0D);
canteenStockEntity.setDeptId(deptId);
canteenStockService.save(canteenStockEntity);
return R.ok(canteenSpuService.save(canteenSpu));
return R.ok(save);
}
/**
@@ -24,6 +24,8 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
/**
* 库存表
@@ -127,18 +129,42 @@ public class CanteenStockController {
@PreAuthorize("@pms.hasPermission('canteen_canteenStock_add')" )
public R ansyncStock() {
// 获取所有SPU列表
List<CanteenSpuEntity> list = canteenSpuService.list();
for (CanteenSpuEntity canteenSpuEntity : list) {
CanteenStockEntity canteenStockEntity = new CanteenStockEntity();
canteenStockEntity.setCurrentStock(0D);
canteenStockEntity.setBaseStock(0D);
canteenStockEntity.setItemType("2");
canteenStockEntity.setItemId(canteenSpuEntity.getId());
canteenStockEntity.setDeptId(canteenSpuEntity.getDeptId());
canteenStockEntity.setInventoryUpperLimit(0);
canteenStockEntity.setInventoryLowerLimit(0);
canteenStockService.save(canteenStockEntity);
// 提取所有SPU ID
List<Long> skuIds = list.stream()
.map(CanteenSpuEntity::getId)
.collect(Collectors.toList());
// 查询已存在的库存记录
LambdaQueryWrapper<CanteenStockEntity> wrapper = Wrappers.lambdaQuery();
wrapper.in(CanteenStockEntity::getItemId, skuIds);
List<CanteenStockEntity> existingStocks = canteenStockService.list(wrapper);
// 将已存在的itemId存入Set用于快速查找
Set<Long> existingItemIds = existingStocks.stream()
.map(CanteenStockEntity::getItemId)
.collect(Collectors.toSet());
// 过滤出需要新增的SPU
List<CanteenStockEntity> toSaveList = list.stream()
.filter(spu -> !existingItemIds.contains(spu.getId()))
.map(spu -> {
CanteenStockEntity entity = new CanteenStockEntity();
entity.setCurrentStock(0D);
entity.setBaseStock(0D);
entity.setItemType("2");
entity.setItemId(spu.getId());
entity.setDeptId(spu.getDeptId());
entity.setInventoryUpperLimit(0);
entity.setInventoryLowerLimit(0);
return entity;
}).collect(Collectors.toList());
// 批量保存新数据
if (CollUtil.isNotEmpty(toSaveList)) {
canteenStockService.saveBatch(toSaveList);
}
return R.ok();
@@ -203,6 +203,8 @@ public class CanteenSpuServiceImpl extends ServiceImpl<CanteenSpuMapper, Canteen
// 如果没有对应的库存记录,则设置默认值
vo.setBaseStock(0.0);
vo.setCurrentStock(0.0);
vo.setInventoryUpperLimit(0);
vo.setInventoryLowerLimit(0);
}
resultList.add(vo);