feat(wms): 增加库存流水自定义查询功能

- 在 WmsStockLogMapper 中添加 selectVoPagePlus 方法,支持自定义查询条件
- 在 WmsStockLogServiceImpl 中实现自定义查询方法,使用 QueryWrapper 替代 LambdaQueryWrapper
- 在 WmsStockLogVo 中添加 warehouseName 字段,用于显示仓库/库区名称
- 更新 mapper XML 文件,添加自定义查询 SQL 语句
This commit is contained in:
JR
2025-08-11 15:34:19 +08:00
parent f81c99b8bc
commit e1db17435f
4 changed files with 36 additions and 3 deletions

View File

@@ -1,6 +1,7 @@
package com.klp.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -44,8 +45,8 @@ public class WmsStockLogServiceImpl implements IWmsStockLogService {
*/
@Override
public TableDataInfo<WmsStockLogVo> queryPageList(WmsStockLogBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<WmsStockLog> lqw = buildQueryWrapper(bo);
Page<WmsStockLogVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
QueryWrapper<WmsStockLog> lqw = buildQueryWrapperPlus(bo);
Page<WmsStockLogVo> result = baseMapper.selectVoPagePlus(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@@ -58,6 +59,21 @@ public class WmsStockLogServiceImpl implements IWmsStockLogService {
return baseMapper.selectVoList(lqw);
}
private QueryWrapper<WmsStockLog> buildQueryWrapperPlus(WmsStockLogBo bo) {
QueryWrapper<WmsStockLog> lqw = Wrappers.query();
lqw.eq("sl.del_flag", 0);
lqw.eq(bo.getWarehouseId() != null, "sl.warehouse_id", bo.getWarehouseId());
lqw.eq(bo.getItemId() != null, "sl.item_id", bo.getItemId());
lqw.eq(StringUtils.isNotBlank(bo.getItemType()), "sl.item_type", bo.getItemType());
lqw.eq(bo.getChangeQty() != null, "sl.change_qty", bo.getChangeQty());
lqw.eq(bo.getAfterQty() != null, "sl.after_qty", bo.getAfterQty());
lqw.eq(StringUtils.isNotBlank(bo.getChangeType()), "sl.change_type", bo.getChangeType());
// 根据时间区间查询
lqw.ge(bo.getStartTime() != null, "sl.change_time", bo.getStartTime());
lqw.le(bo.getEndTime() != null, "sl.change_time", bo.getEndTime());
return lqw;
}
private LambdaQueryWrapper<WmsStockLog> buildQueryWrapper(WmsStockLogBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<WmsStockLog> lqw = Wrappers.lambdaQuery();