xiaoyi
5 天以前 4bec63c802692a402039f0d99eae068d26d63c55
yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/dal/mysql/item/MdmItemMapper.java
@@ -6,14 +6,16 @@
import cn.iocoder.yudao.module.mdm.controller.admin.item.vo.MdmItemPageReqVO;
import cn.iocoder.yudao.module.mdm.dal.dataobject.item.MdmItemDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
 * MDM 物料主数据 Mapper
 *
 * @author 芋道源码
 * @author 超级管理员
 */
@Mapper
public interface MdmItemMapper extends BaseMapperX<MdmItemDO> {
@@ -23,18 +25,21 @@
                .likeIfPresent(MdmItemDO::getCode, reqVO.getCode())
                .likeIfPresent(MdmItemDO::getName, reqVO.getName())
                .likeIfPresent(MdmItemDO::getBarCode, reqVO.getBarCode())
                .likeIfPresent(MdmItemDO::getColor, reqVO.getColor())
                .inIfPresent(MdmItemDO::getCategoryId, categoryIds)
                .eqIfPresent(MdmItemDO::getItemType, reqVO.getItemType())
                .eqIfPresent(MdmItemDO::getBrandId, reqVO.getBrandId())
                .eqIfPresent(MdmItemDO::getStatus, reqVO.getStatus())
                .betweenIfPresent(MdmItemDO::getCreateTime, reqVO.getCreateTime())
                .orderByDesc(MdmItemDO::getId));
                // 列表按物料编码排序(原来先按物料分类分组再按编码,同一分类的物料才排在一起,跨分类看编码是乱序的)
                .orderByAsc(MdmItemDO::getCode));
    }
    default List<MdmItemDO> selectList(MdmItemPageReqVO reqVO, Collection<Long> categoryIds) {
        return selectList(new LambdaQueryWrapperX<MdmItemDO>()
                .likeIfPresent(MdmItemDO::getCode, reqVO.getCode())
                .likeIfPresent(MdmItemDO::getName, reqVO.getName())
                .likeIfPresent(MdmItemDO::getColor, reqVO.getColor())
                .inIfPresent(MdmItemDO::getCategoryId, categoryIds)
                .eqIfPresent(MdmItemDO::getItemType, reqVO.getItemType())
                .eqIfPresent(MdmItemDO::getStatus, reqVO.getStatus())
@@ -81,4 +86,12 @@
        return selectList(MdmItemDO::getId, ids);
    }
    /**
     * 查询物料被哪些业务表引用(未删除的记录)
     *
     * @param itemId 物料编号
     * @return 引用来源列表,每项包含 source(来源名) 和 cnt(引用数量),仅返回 cnt > 0 的
     */
    List<Map<String, Object>> selectItemReferenceCount(@Param("itemId") Long itemId);
}