using QM.KJGH.CGGL.Model.Ghxms;
using QM.KJGH.Model.KJGH;
using QM.OrmSqlSugar;
using System.Threading.Tasks;
using WS.Orm;

namespace QM.KJGH.CGGL.IRepository
{
    /// <summary>
    /// 
    /// </summary>
    public interface IGhbzGhxmRepository : ISqlSugarRepository<GhbzGhxm>
    {
        /// <summary>
        /// 检查标识码(BSM)是否存储
        /// </summary>
        /// <returns></returns>
        Task<GhbzGhxm> CheckId(string bsm);

        /// <summary>
        /// 分页获取
        /// </summary>
        /// <returns></returns>
        Task<PageData> GetPage(GhbzGhxmPage input);

        /// <summary>
        /// 根据ID获取
        /// </summary>
        /// <param name="bsm">标识码</param>
        /// <returns></returns>
        Task<GhbzGhxmView> GetById(string bsm);

        /// <summary>
        /// 添加项目
        /// </summary>
        /// <param name="ghbzGhxmDto"></param>
        /// <returns></returns>
        Task<GhbzGhxm> Add(GhbzGhxmDto ghbzGhxmDto,string curUser);

        /// <summary>
        /// 删除数据
        /// </summary>
        /// <param name="bsm"></param>
        /// <returns></returns>
        Task<bool> Delete(string bsm);
        /// <summary>
        /// 修改数据
        /// </summary>
        /// <param name="ghbzGhxmDto"></param>
        /// <returns></returns>
        Task<bool> Update(GhbzGhxmDto ghbzGhxmDto);

        /// <summary>
        /// 查询详细信息
        /// </summary>
        /// <param name="bsm"></param>
        /// <returns></returns>
        Task<GhbzGhxmDetailDto> Detail(string bsm);

        /// <summary>
        /// 根据分组类型统计
        /// </summary>
        /// <param name="ghlx">规划类型</param>
        /// <returns></returns>
        StatisticsView GetStatistics(string ghlx);
    }
}