package com.hw.mes.service;

import java.util.List;
import com.hw.mes.domain.MesMaterialBom;

/**
 * 物料BOM信息Service接口
 *
 * @author Yinq
 * @date 2024-01-30
 */
public interface IMesMaterialBomService
{
    /**
     * 查询物料BOM信息
     *
     * @param materialBomId 物料BOM信息主键
     * @return 物料BOM信息
     */
    public MesMaterialBom selectMesMaterialBomByMaterialBomId(Long materialBomId);

    /**
     * 查询物料BOM信息列表
     *
     * @param mesMaterialBom 物料BOM信息
     * @return 物料BOM信息集合
     */
    public List<MesMaterialBom> selectMesMaterialBomList(MesMaterialBom mesMaterialBom);

    /**
     * 新增物料BOM信息
     *
     * @param mesMaterialBom 物料BOM信息
     * @return 结果
     */
    public int insertMesMaterialBom(MesMaterialBom mesMaterialBom);

    /**
     * 修改物料BOM信息
     *
     * @param mesMaterialBom 物料BOM信息
     * @return 结果
     */
    public int updateMesMaterialBom(MesMaterialBom mesMaterialBom);

    /**
     * 批量删除物料BOM信息
     *
     * @param materialBomIds 需要删除的物料BOM信息主键集合
     * @return 结果
     */
    public int deleteMesMaterialBomByMaterialBomIds(Long[] materialBomIds);

    /**
     * 删除物料BOM信息信息
     *
     * @param materialBomId 物料BOM信息主键
     * @return 结果
     */
    public int deleteMesMaterialBomByMaterialBomId(Long materialBomId);


    /**
     * 查询物料BOM信息列表,Join material
     *
     * @param mesMaterialBom 物料BOM信息
     * @return 物料BOM信息
     */
    public List<MesMaterialBom> selectMesMaterialBomJoinList(MesMaterialBom mesMaterialBom);

    /**
     * 查询物料BOM版本列表
     * @param materialId
     * @return
     */
    public List<MesMaterialBom> getMaterialVisionList(Long materialId);

    /**
     * 查询物料顶级BOM信息
     *
     * @param materialBomId 物料BOM信息主键
     * @return 物料BOM信息
     */
    public MesMaterialBom selectTopMaterialBomByMaterialBomId(Long materialBomId);
}
