using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsMaterial; 
using Volo.Abp.Application.Services; 
using CmsQueryExtensions.Entitys; 
using System.Linq.Expressions; 
using CMS.Plugin.HIAWms.Domain.WmsMaterial; 
 
namespace CMS.Plugin.HIAWms.Application.Contracts.Services; 
 
///  
/// 物料基础信息表应用服务接口 
///  
public interface IWmsMaterialAppService : ICrudAppService 
{ 
    ///  
    /// 克隆物料基础信息表 
    ///  
    ///  
    ///  
    Task> CloneAsync(IEnumerable ids, MyCurrentUser myCurrentUser); 
 
    ///  
    /// 删除物料基础信息表 
    ///  
    ///  
    ///  
    Task DeleteManyAsync(IEnumerable ids, MyCurrentUser myCurrentUser); 
 
    ///  
    /// 物理删除物料基础信息表 
    ///  
    /// 主键ID 
    ///  
    ///  
    Task DeletePermanentlyAsync(Guid id, MyCurrentUser myCurrentUser, CancellationToken cancellationToken = default); 
 
 
    ///  
    /// 批量物理删除物料基础信息表(直接删除,不软删除) 
    ///  
    /// 要删除的主键ID列表 
    ///  
    ///  
    Task BatchDeletePermanentlyAsync(IEnumerable ids, MyCurrentUser myCurrentUser, CancellationToken cancellationToken = default); 
 
    ///  
    /// 调整排序物料基础信息表 
    ///  
    ///  
    ///  
    ///  
    Task AdjustSortAsync(Guid id, int sort); 
 
    ///  
    /// 导入物料基础信息表 
    ///  
    ///  
    ///  
    Task ImportAsync(WmsMaterialsImportModel input, MyCurrentUser myCurrentUser); 
 
    ///  
    /// 导出物料基础信息表 
    ///  
    ///  
    ///  
    Task<(Dictionary Sheets, string FileName)> ExportAsync(GetWmsMaterialInput input); 
 
    ///  
    /// 根据条件获取物料基础信息表列表 
    ///  
    ///  
    ///  
    ///  
    Task> GetListByFilterAsync(Expression> whereConditions, CancellationToken cancellationToken = default); 
 
 
    ///  
    ///  根据条件获取单个物料基础信息表 
    ///  
    ///  
    /// 是否查询出多条就报错 
    ///  
    ///  
    ///  
    Task GetSingleByFilterAsync(Expression> whereConditions, bool isMultipleThrowException = false, CancellationToken cancellationToken = default); 
}