using System.Collections.Generic; using System.Threading.Tasks; using NPP.SmartSchedue.Api.Contracts.Domain.Notification; using NPP.SmartSchedue.Api.Contracts.Core.Enums; using ZhonTai.Admin.Core.Repositories; namespace NPP.SmartSchedue.Api.Contracts.Core.Repositories; /// /// 人员组仓储接口 /// public interface IPersonnelGroupRepository : IRepositoryBase { /// /// 根据启用状态获取人员组列表 /// /// 是否启用 /// Task> GetByEnabledAsync(bool enabled); /// /// 根据人员组类型获取人员组列表 /// /// 人员组类型 /// Task> GetByGroupTypeAsync(PersonnelGroupTypeEnum groupType); /// /// 检查人员组名称是否存在 /// /// 人员组名称 /// 排除的ID /// Task ExistsGroupNameAsync(string groupName, long? excludeId = null); /// /// 获取包含指定人员的人员组列表 /// /// 人员ID /// Task> GetGroupsContainingPersonnelAsync(long personnelId); /// /// 获取包含指定部门的人员组列表 /// /// 部门ID /// Task> GetGroupsContainingDepartmentAsync(long departmentId); /// /// 获取包含指定职位的人员组列表 /// /// 职位 /// Task> GetGroupsContainingPositionAsync(string position); /// /// 计算人员组的实际人员数量 /// /// 人员组ID /// Task CalculatePersonnelCountAsync(long personnelGroupId); }