Files
klp-oa/klp-wms/src/main/java/com/klp/mapper/WmsStockMapper.java
Joshi 51506bbb66 feat(stock): 优化实际库区查询速率使用CTE递归查询
- 修改 WmsStockMapper 接口,增加 rootWarehouseId 参数用于限定查询范围
- 优化 WmsStockMapper.xml 中的 SQL 查询逻辑,引入 CTE 递归查询子仓库数据
- 调整查询语句结构,将分组统计与关联查询分离以提升性能
- 移除 Java 层递归获取子仓库 ID 的逻辑,改为数据库端处理
- 强制使用指定索引 idx_mc_fixed_group 提高查询效率
- 更新服务实现类传参逻辑,传递实际仓库 ID 用于构建查询条件
2025-12-18 09:41:22 +08:00

42 lines
1.4 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.klp.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.klp.common.core.validate.AddGroup;
import com.klp.common.core.validate.EditGroup;
import com.klp.domain.WmsStock;
import com.klp.domain.vo.WmsStockVo;
import com.klp.common.core.mapper.BaseMapperPlus;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.util.List;
/**
* 库存:原材料/产品与库区/库位的存放关系Mapper接口
*
* @author Joshi
* @date 2025-07-18
*/
public interface WmsStockMapper extends BaseMapperPlus<WmsStockMapper, WmsStock, WmsStockVo> {
BigDecimal getStockByItemId(Long rawMaterialId);
/**
* 分页联查物品名称和编码支持Wrapper动态条件返回Page<WmsStockVo>
*/
Page<WmsStockVo> selectVoPagePlus(Page<?> page, @Param("ew") Wrapper<WmsStock> wrapper);
/**
* 按仓库统计库存分布
*/
List<WmsStockVo> selectStockDistribution(@Param("itemType") String itemType, @Param("itemId") Long itemId);
Page<WmsStockVo> selectVoPagePlusActual(Page<Object> build,
@Param("ew") Wrapper<WmsStock> lqw,
@Param("rootWarehouseId") Long rootWarehouseId);
}