diff --git a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenSpuController.java b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenSpuController.java index 739137df3..1c079198c 100644 --- a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenSpuController.java +++ b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenSpuController.java @@ -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> 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 * diff --git a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/CanteenSpuService.java b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/CanteenSpuService.java index 76f07d374..5302e2561 100644 --- a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/CanteenSpuService.java +++ b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/CanteenSpuService.java @@ -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 { @@ -54,4 +55,13 @@ public interface CanteenSpuService extends IService { Object pageDailyScope(Page page, CanteenDailySpuDTO canteenDailySpuDTO); Page getCanteenSpuSimplePageScope(Page page, CanteenSpuEntity canteenSpu); + + + /** + * erp分页查询 + * @param page + * @param canteenSpu 查询参数 + * @return 分页菜品库存VO + */ + Page erpPageScope(Page page, CanteenSpuEntity canteenSpu); } \ No newline at end of file diff --git a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/CanteenSpuServiceImpl.java b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/CanteenSpuServiceImpl.java index fb6cd69a3..72ecfb178 100644 --- a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/CanteenSpuServiceImpl.java +++ b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/CanteenSpuServiceImpl.java @@ -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 wrapper) { return baseMapper.selectListByScope(wrapper, DataScope.of()); @@ -149,5 +155,69 @@ public class CanteenSpuServiceImpl extends ServiceImpl erpPageScope(Page page, CanteenSpuEntity canteenSpu) { + LambdaQueryWrapper 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 pageData = baseMapper.selectPageByScope(page, wrapper, DataScope.of()); + List records = pageData.getRecords(); + + // 构建返回的VO列表 + List resultList = new ArrayList<>(); + + if (!CollectionUtils.isEmpty(records)) { + // 获取所有SPU ID + List spuIds = records.stream() + .map(CanteenSpuEntity::getId) + .collect(Collectors.toList()); + + // 查询对应的库存信息 + LambdaQueryWrapper stockWrapper = Wrappers.lambdaQuery(); + stockWrapper.in(CanteenStockEntity::getItemId, spuIds); + stockWrapper.eq(CanteenStockEntity::getItemType, "2"); // 假设"成品"表示菜品的类型 + List stockList = canteenStockMapper.selectList(stockWrapper); + + // 将库存信息映射到SPU ID + Map 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 resultPage = new Page<>(); + resultPage.setRecords(resultList); + resultPage.setTotal(pageData.getTotal()); + resultPage.setSize(pageData.getSize()); + resultPage.setCurrent(pageData.getCurrent()); + resultPage.setPages(pageData.getPages()); + + return resultPage; + } + } \ No newline at end of file diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/logs/pjcloud-thirdparty-biz/2025-03/debug.2025-03-11.0.log.gz b/pjcloud-thirdparty/pjcloud-thirdparty-biz/logs/pjcloud-thirdparty-biz/2025-03/debug.2025-03-11.0.log.gz new file mode 100644 index 000000000..e9edc4390 Binary files /dev/null and b/pjcloud-thirdparty/pjcloud-thirdparty-biz/logs/pjcloud-thirdparty-biz/2025-03/debug.2025-03-11.0.log.gz differ