liyong
8 天以前 1ab2b329a40decba8ff7eefbeb158ff259aceb6d
yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/api/item/MdmItemApi.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,143 @@
package cn.iocoder.yudao.module.mdm.api.item;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.mdm.api.item.dto.MdmItemCreateReqDTO;
import cn.iocoder.yudao.module.mdm.api.item.dto.MdmItemRespDTO;
import cn.iocoder.yudao.module.mdm.api.item.dto.MdmItemUpdateReqDTO;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
/**
 * MDM ç‰©æ–™ API æŽ¥å£
 *
 * @author èŠ‹é“æºç 
 */
public interface MdmItemApi {
    String PREFIX = "/rpc-api/mdm/item";
    /**
     * åˆ›å»ºç‰©æ–™
     *
     * @param createReqDTO åˆ›å»ºä¿¡æ¯
     * @return ç‰©æ–™ç¼–号
     */
    CommonResult<Long> createItem(MdmItemCreateReqDTO createReqDTO);
    /**
     * æ›´æ–°ç‰©æ–™
     *
     * @param updateReqDTO æ›´æ–°ä¿¡æ¯
     * @return æ˜¯å¦æˆåŠŸ
     */
    CommonResult<Boolean> updateItem(MdmItemUpdateReqDTO updateReqDTO);
    /**
     * èŽ·å–ç‰©æ–™
     *
     * @param id ç‰©æ–™ç¼–号
     * @return ç‰©æ–™
     */
    CommonResult<MdmItemRespDTO> getItem(Long id);
    /**
     * èŽ·å–ç‰©æ–™åˆ—è¡¨
     *
     * @param ids ç‰©æ–™ç¼–号列表
     * @return ç‰©æ–™åˆ—表
     */
    CommonResult<List<MdmItemRespDTO>> getItemList(Collection<Long> ids);
    /**
     * èŽ·å–ç‰©æ–™ Map
     *
     * @param ids ç‰©æ–™ç¼–号列表
     * @return ç‰©æ–™ Map
     */
    default Map<Long, MdmItemRespDTO> getItemMap(Collection<Long> ids) {
        List<MdmItemRespDTO> list = getItemList(ids).getCheckedData();
        return convertMap(list, MdmItemRespDTO::getId);
    }
    /**
     * èŽ·å–ç‰©æ–™åˆ†é¡µ
     *
     * @param itemType ç‰©æ–™ç±»åž‹
     * @param status   çŠ¶æ€
     * @param pageNo   é¡µç 
     * @param pageSize æ¯é¡µæ•°é‡
     * @return ç‰©æ–™åˆ†é¡µ
     */
    CommonResult<PageResult<MdmItemRespDTO>> getItemPage(Integer itemType, Integer status, Integer pageNo, Integer pageSize);
    /**
     * æ ¹æ®çŠ¶æ€èŽ·å–ç‰©æ–™åˆ—è¡¨
     *
     * @param status çŠ¶æ€
     * @return ç‰©æ–™åˆ—表
     */
    CommonResult<List<MdmItemRespDTO>> getItemListByStatus(Integer status);
    /**
     * æ ¡éªŒç‰©æ–™å­˜åœ¨
     *
     * @param id ç‰©æ–™ç¼–号
     * @return ç‰©æ–™
     */
    CommonResult<MdmItemRespDTO> validateItemExists(Long id);
    /**
     * æ ¡éªŒç‰©æ–™å­˜åœ¨ä¸”启用
     *
     * @param id ç‰©æ–™ç¼–号
     * @return ç‰©æ–™
     */
    CommonResult<MdmItemRespDTO> validateItemExistsAndEnable(Long id);
    /**
     * æ ¹æ®ç¼–码获取物料
     *
     * @param code ç‰©æ–™ç¼–码
     * @return ç‰©æ–™
     */
    CommonResult<MdmItemRespDTO> getItemByCode(String code);
    /**
     * æ ¹æ®æ¡ç èŽ·å–ç‰©æ–™
     *
     * @param barCode ç‰©æ–™æ¡ç 
     * @return ç‰©æ–™
     */
    CommonResult<MdmItemRespDTO> getItemByBarCode(String barCode);
    /**
     * æ ¹æ®åˆ†ç±»ç¼–号统计物料数量
     *
     * @param categoryId åˆ†ç±»ç¼–号
     * @return ç‰©æ–™æ•°é‡
     */
    CommonResult<Long> getItemCountByCategoryId(Long categoryId);
    /**
     * æ ¹æ®å•位编号统计物料数量
     *
     * @param unitMeasureId å•位编号
     * @return ç‰©æ–™æ•°é‡
     */
    CommonResult<Long> getItemCountByUnitMeasureId(Long unitMeasureId);
    /**
     * æ›´æ–°ç‰©æ–™çŠ¶æ€
     *
     * @param id     ç‰©æ–™ç¼–号
     * @param status çŠ¶æ€
     * @return æ˜¯å¦æˆåŠŸ
     */
    CommonResult<Boolean> updateItemStatus(Long id, Integer status);
}