package com.hw.mes.mapper;

import java.util.List;
import com.hw.mes.domain.MesProductPlan;
import com.hw.mes.domain.MesProductPlanDetail;

/**
 * 生产派工Mapper接口
 *
 * @author xins
 * @date 2024-02-21
 */
public interface MesProductPlanMapper
{
    /**
     * 查询生产派工
     *
     * @param planId 生产派工主键
     * @return 生产派工
     */
    public MesProductPlan selectMesProductPlanByPlanId(Long planId);

    /**
     * 查询生产派工列表
     *
     * @param mesProductPlan 生产派工
     * @return 生产派工集合
     */
    public List<MesProductPlan> selectMesProductPlanList(MesProductPlan mesProductPlan);

    /**
     * 新增生产派工
     *
     * @param mesProductPlan 生产派工
     * @return 结果
     */
    public int insertMesProductPlan(MesProductPlan mesProductPlan);

    /**
     * 修改生产派工
     *
     * @param mesProductPlan 生产派工
     * @return 结果
     */
    public int updateMesProductPlan(MesProductPlan mesProductPlan);

    /**
     * 删除生产派工
     *
     * @param planId 生产派工主键
     * @return 结果
     */
    public int deleteMesProductPlanByPlanId(Long planId);

    /**
     * 批量删除生产派工
     *
     * @param planIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMesProductPlanByPlanIds(Long[] planIds);

    /**
     * 批量删除生产计划明细
     *
     * @param planIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMesProductPlanDetailByPlanIds(Long[] planIds);

    /**
     * 批量新增生产计划明细
     *
     * @param mesProductPlanDetailList 生产计划明细列表
     * @return 结果
     */
    public int batchMesProductPlanDetail(List<MesProductPlanDetail> mesProductPlanDetailList);


    /**
     * 通过生产派工主键删除生产计划明细信息
     *
     * @param planId 生产派工ID
     * @return 结果
     */
    public int deleteMesProductPlanDetailByPlanId(Long planId);



    /**
     * 查询生产派工列表,Join product_order和base_material
     *
     * @param mesProductPlan 生产派工
     * @return 生产派工集合
     */
    public List<MesProductPlan> selectMesProductPlanJoinList(MesProductPlan mesProductPlan);
}
