namespace BPA.MES.Base.Application.Services
{
    /// <summary>
    /// 名    称 ：成品信息管理  
    /// 创 建 人 ：yangxiao  
    /// 创建时间 ：  2023/7/17 16:02:25 
    /// 描    述 ：  
    /// </summary>
    public interface IFinalsInfoService
    {
        /// <summary>
        /// 增加
        /// </summary>
        /// <returns></returns>
        Task<bool> Add(FinalsInfoAddInput input);
        /// <summary>
        /// 移除
        /// </summary>
        /// <returns></returns>
        Task<bool> Del(FinalsInfoDelInput input);
        /// <summary>
        /// 更新
        /// </summary>
        /// <returns></returns>
        Task<bool> Update(FinalsInfoUpdateInput input);
        /// <summary>
        /// 不分页列表
        /// </summary>
        /// <returns></returns>
        Task<List<FinalsInfoOutput>> List();
        /// <summary>
        /// 分页列表
        /// </summary>
        /// <returns></returns>
        Task<SqlSugarPagedList<FinalsInfoOutput>> PagedList(FinalsInfoQueryPageInput input);
        /// <summary>
        /// 下拉列表
        /// </summary>
        /// <returns></returns>
        Task<dynamic> SelectList();
        /// <summary>
        /// 产线列表
        /// </summary>
        /// <param name="finalId"></param>
        /// <returns></returns>
        Task<dynamic> LineList(string finalId);
        /// <summary>
        /// 配置完成的产线
        /// </summary>
        /// <param name="finalId"></param>
        /// <returns></returns>
        Task<dynamic> FinishLineList(string finalId);
        /// <summary>
        /// 查询单条
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        Task<FinalsInfoOutput> Detail(string Id);
        /// <summary>
        /// 绑定产线
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<bool> BindLine(BindLineInput input);
        /// <summary>
        /// 保存配置状态
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<bool> SaveConfigStatus(SaveFinalConfigStatusInput input);
        /// <summary>
        /// 取消配置状态
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<bool> CancelConfigStatus(SaveFinalConfigStatusInput input);
    }
}

