chen.lin
昨天 c67e3d0295858a61122354a15dec8835044bac0d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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);
}