This commit is contained in:
dzc committed 2025-05-15 16:10:07 +08:00
commit 3b428c052a
4 files changed
+103

No files matched your search

@@ -11,6 +11,7 @@ import com.bsd.pjcloud.canteen.dto.CanteenSpuUpdateStockReqDTO;
import com.bsd.pjcloud.canteen.entity.CanteenErpMaterialEntity;
import com.bsd.pjcloud.canteen.entity.CanteenOnlineSpuEntity;
import com.bsd.pjcloud.canteen.vo.erp.CanteenSpuSimpleVO;
import com.bsd.pjcloud.canteen.vo.erp.CanteenSpuStockVO;
import com.bsd.pjcloud.common.core.util.R;
import com.bsd.pjcloud.common.log.annotation.SysLog;
import com.bsd.pjcloud.canteen.entity.CanteenSpuEntity;
@@ -60,6 +61,14 @@ public class CanteenSpuController {
}
@Operation(summary = "erp分页查询", description = "erp分页查询")
@GetMapping("/erp/page")
@PreAuthorize("@pms.hasPermission('canteen_canteenSpu_view')")
public R<Page<CanteenSpuStockVO>> getCanteenSpuErpPage(@ParameterObject Page page, @ParameterObject CanteenSpuEntity canteenSpu) {
return R.ok(canteenSpuService.erpPageScope(page, canteenSpu));
}
/**
* 选择菜品分页查询
* 1.生产加工模版选择菜品
@@ -130,6 +139,20 @@ public class CanteenSpuController {
return R.ok(canteenSpuService.updateById(canteenSpu));
}
/**
* 修改菜品spu
*
* @param canteenSpu 菜品spu
* @return R
*/
// @Operation(summary = "修改erp菜品库存", description = "修改erp菜品库存")
// @SysLog("修改erp菜品库存")
// @PutMapping("/editor")
// @PreAuthorize("@pms.hasPermission('canteen_canteenSpu_edit')")
// public R updateById(@RequestBody CanteenSpuEntity canteenSpu) {
// return R.ok(canteenSpuService.updateById(canteenSpu));
// }
/**
* 通过id删除菜品spu
*
@@ -7,6 +7,7 @@ import com.bsd.pjcloud.canteen.dto.CanteenDailySpuDTO;
import com.bsd.pjcloud.canteen.dto.CanteenSpuUpdateStockReqDTO;
import com.bsd.pjcloud.canteen.entity.CanteenSpuEntity;
import com.bsd.pjcloud.canteen.vo.erp.CanteenSpuSimpleVO;
import com.bsd.pjcloud.canteen.vo.erp.CanteenSpuStockVO;
import com.bsd.pjcloud.common.core.util.R;
public interface CanteenSpuService extends IService<CanteenSpuEntity> {
@@ -54,4 +55,13 @@ public interface CanteenSpuService extends IService<CanteenSpuEntity> {
Object pageDailyScope(Page page, CanteenDailySpuDTO canteenDailySpuDTO);
Page<CanteenSpuSimpleVO> getCanteenSpuSimplePageScope(Page page, CanteenSpuEntity canteenSpu);
/**
* erp分页查询
* @param page
* @param canteenSpu 查询参数
* @return 分页菜品库存VO
*/
Page<CanteenSpuStockVO> erpPageScope(Page page, CanteenSpuEntity canteenSpu);
}
@@ -11,13 +11,17 @@ import com.bsd.pjcloud.canteen.entity.CanteenCategoryEntity;
import com.bsd.pjcloud.canteen.entity.CanteenDailyMenuEntity;
import com.bsd.pjcloud.canteen.entity.CanteenOnlineSpuEntity;
import com.bsd.pjcloud.canteen.entity.CanteenSpuEntity;
import com.bsd.pjcloud.canteen.entity.CanteenStockEntity;
import com.bsd.pjcloud.canteen.mapper.CanteenCategoryMapper;
import com.bsd.pjcloud.canteen.mapper.CanteenDailyMenuMapper;
import com.bsd.pjcloud.canteen.mapper.CanteenSpuMapper;
import com.bsd.pjcloud.canteen.mapper.CanteenStockMapper;
import com.bsd.pjcloud.canteen.service.CanteenDailyMenuService;
import com.bsd.pjcloud.canteen.service.CanteenSpuService;
import com.bsd.pjcloud.canteen.service.CanteenStockService;
import com.bsd.pjcloud.canteen.vo.ADCanteenSpuListVO;
import com.bsd.pjcloud.canteen.vo.erp.CanteenSpuSimpleVO;
import com.bsd.pjcloud.canteen.vo.erp.CanteenSpuStockVO;
import com.bsd.pjcloud.common.core.util.BeanUtils;
import com.bsd.pjcloud.common.core.util.R;
import com.bsd.pjcloud.common.data.datascope.DataScope;
@@ -27,6 +31,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -45,6 +50,7 @@ public class CanteenSpuServiceImpl extends ServiceImpl<CanteenSpuMapper, Canteen
private final CanteenDailyMenuMapper canteenDailyMenuMapper;
private final CanteenCategoryMapper canteenCategoryMapper;
private final CanteenStockMapper canteenStockMapper;
@Override
public Object selectFoodList(LambdaQueryWrapper<CanteenSpuEntity> wrapper) {
return baseMapper.selectListByScope(wrapper, DataScope.of());
@@ -149,5 +155,69 @@ public class CanteenSpuServiceImpl extends ServiceImpl<CanteenSpuMapper, Canteen
return canteenSpuSimpleVOPage;
}
@Override
public Page<CanteenSpuStockVO> erpPageScope(Page page, CanteenSpuEntity canteenSpu) {
LambdaQueryWrapper<CanteenSpuEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.like(StrUtil.isNotBlank(canteenSpu.getName()), CanteenSpuEntity::getName, canteenSpu.getName());
wrapper.eq(Objects.nonNull(canteenSpu.getCategoryId()), CanteenSpuEntity::getCategoryId, canteenSpu.getCategoryId());
wrapper.orderByAsc(CanteenSpuEntity::getSort).orderByDesc(CanteenSpuEntity::getId);
// 查询SPU分页数据
Page<CanteenSpuEntity> pageData = baseMapper.selectPageByScope(page, wrapper, DataScope.of());
List<CanteenSpuEntity> records = pageData.getRecords();
// 构建返回的VO列表
List<CanteenSpuStockVO> resultList = new ArrayList<>();
if (!CollectionUtils.isEmpty(records)) {
// 获取所有SPU ID
List<Long> spuIds = records.stream()
.map(CanteenSpuEntity::getId)
.collect(Collectors.toList());
// 查询对应的库存信息
LambdaQueryWrapper<CanteenStockEntity> stockWrapper = Wrappers.lambdaQuery();
stockWrapper.in(CanteenStockEntity::getItemId, spuIds);
stockWrapper.eq(CanteenStockEntity::getItemType, "2"); // 假设"成品"表示菜品的类型
List<CanteenStockEntity> stockList = canteenStockMapper.selectList(stockWrapper);
// 将库存信息映射到SPU ID
Map<Long, CanteenStockEntity> stockMap = stockList.stream()
.collect(Collectors.toMap(CanteenStockEntity::getItemId, stock -> stock, (v1, v2) -> v1));
// 构建返回结果
for (CanteenSpuEntity spu : records) {
CanteenSpuStockVO vo = new CanteenSpuStockVO();
// vo.setId(spu.getId());
vo.setName(spu.getName());
vo.setPicUrl(spu.getPicUrl());
// 设置库存信息
CanteenStockEntity stock = stockMap.get(spu.getId());
if (stock != null) {
vo.setId(stock.getId());
vo.setBaseStock(stock.getBaseStock());
vo.setCurrentStock(stock.getCurrentStock());
} else {
// 如果没有对应的库存记录,则设置默认值
vo.setBaseStock(0.0);
vo.setCurrentStock(0.0);
}
resultList.add(vo);
}
}
// 构建分页返回对象
Page<CanteenSpuStockVO> resultPage = new Page<>();
resultPage.setRecords(resultList);
resultPage.setTotal(pageData.getTotal());
resultPage.setSize(pageData.getSize());
resultPage.setCurrent(pageData.getCurrent());
resultPage.setPages(pageData.getPages());
return resultPage;
}
}