package com.aucma.production.service;

import java.util.List;

import com.aucma.base.domain.BaseOrderInfo;
import com.aucma.production.domain.ProductPlanInfo;

/**
 * 生产计划Service接口
 * 
 * @author Yinq
 * @date 2023-10-07
 */
public interface IProductPlanInfoService 
{
    /**
     * 查询生产计划
     * 
     * @param objId 生产计划主键
     * @return 生产计划
     */
    public ProductPlanInfo selectProductPlanInfoByObjId(Long objId);

    /**
     * 查询生产计划列表
     * 
     * @param productPlanInfo 生产计划
     * @return 生产计划集合
     */
    public List<ProductPlanInfo> selectProductPlanInfoList(ProductPlanInfo productPlanInfo);

    /**
     * 新增生产计划
     * 
     * @param productPlanInfo 生产计划
     * @return 结果
     */
    public int insertProductPlanInfo(ProductPlanInfo productPlanInfo);

    /**
     * 修改生产计划
     * 
     * @param productPlanInfo 生产计划
     * @return 结果
     */
    public int updateProductPlanInfo(ProductPlanInfo productPlanInfo);

    /**
     * 批量删除生产计划
     * 
     * @param objIds 需要删除的生产计划主键集合
     * @return 结果
     */
    public int deleteProductPlanInfoByObjIds(Long[] objIds);

    /**
     * 删除生产计划信息
     * 
     * @param objId 生产计划主键
     * @return 结果
     */
    public int deleteProductPlanInfoByObjId(Long objId);


    /**
     * 工单计划下达
     * @param baseOrderInfo
     * @return
     */
    public Boolean releaseOrderPlan(BaseOrderInfo baseOrderInfo);
}
