package cn.iocoder.yudao.module.mdm.service.item; import cn.iocoder.yudao.module.mdm.dal.dataobject.item.MdmItemSkuDO; import jakarta.validation.Valid; import java.util.Collection; import java.util.List; import java.util.Map; import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; /** * MDM 物料 SKU Service 接口 * * @author 芋道源码 */ public interface MdmItemSkuService { /** * 创建 SKU * * @param sku 创建信息 * @return 编号 */ Long createItemSku(@Valid MdmItemSkuDO sku); /** * 批量创建 SKU * * @param itemId 物料编号 * @param skuList SKU 列表 */ void createItemSkuList(Long itemId, List skuList); /** * 更新 SKU * * @param sku 更新信息 */ void updateItemSku(@Valid MdmItemSkuDO sku); /** * 批量更新 SKU * * @param itemId 物料编号 * @param skuList SKU 列表 */ void updateItemSkuList(Long itemId, List skuList); /** * 删除 SKU * * @param id 编号 */ void deleteItemSku(Long id); /** * 删除物料的所有 SKU * * @param itemId 物料编号 */ void deleteItemSkuListByItemId(Long itemId); /** * 获得 SKU * * @param id 编号 * @return SKU */ MdmItemSkuDO getItemSku(Long id); /** * 校验 SKU 存在 * * @param id 编号 * @return SKU */ MdmItemSkuDO validateItemSkuExists(Long id); /** * 校验 SKU 存在且启用 * * @param id 编号 * @return SKU */ MdmItemSkuDO validateItemSkuExistsAndEnable(Long id); /** * 获得物料的 SKU 列表 * * @param itemId 物料编号 * @return SKU 列表 */ List getItemSkuListByItemId(Long itemId); /** * 获得 SKU 列表 * * @param ids 编号数组 * @return SKU 列表 */ List getItemSkuList(Collection ids); /** * 获得 SKU Map * * @param ids 编号数组 * @return SKU Map */ default Map getItemSkuMap(Collection ids) { return convertMap(getItemSkuList(ids), MdmItemSkuDO::getId); } /** * 根据编码获取 SKU * * @param code SKU 编码 * @return SKU */ MdmItemSkuDO getItemSkuByCode(String code); /** * 根据条码获取 SKU * * @param barCode SKU 条码 * @return SKU */ MdmItemSkuDO getItemSkuByBarCode(String barCode); }