chen.lin
昨天 c67e3d0295858a61122354a15dec8835044bac0d
rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/LocItemMapper.java
@@ -1,12 +1,31 @@
package com.vincent.rsf.server.manager.mapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.vincent.rsf.server.manager.entity.LocItem;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
@Mapper
@Repository
public interface LocItemMapper extends BaseMapper<LocItem> {
    List<LocItem> listByMatnr(@Param("type") String type, @Param("channel") String channel, @Param(Constants.WRAPPER) LambdaQueryWrapper<LocItem> matnr);
    /**
     * 按物料ID汇总库位库存数量;可选按库位状态过滤。
     * @param matnrIds 物料ID列表
     * @param locUseStatus 库位状态,为空则不过滤
     * @return 每行: matnrId, stockQty, locStatuses(逗号分隔的库位状态,仅当 locUseStatus 为空时返回)
     */
    /**
     * 按物料+状态+库位分组:每行 (matnrId, useStatus, locCode, locQty)。
     * 汇总 stockQty 与拼接 "库位(数量)" 在 Java 中完成,减轻数据库压力。
     */
    List<Map<String, Object>> listStockByMatnrIdsGroupByStatusAndLoc(@Param("matnrIds") List<Long> matnrIds, @Param("locUseStatus") String locUseStatus);
}