using System.Threading.Tasks; using System.Collections.Generic; using NPP.SmartSchedue.Api.Contracts.Domain.Personnel; using ZhonTai.Admin.Core.Dto; using NPP.SmartSchedue.Api.Contracts.Services.Personnel.Input; using NPP.SmartSchedue.Api.Contracts.Services.Personnel.Output; using System; namespace NPP.SmartSchedue.Api.Contracts.Services.Personnel; /// /// 人员资质绑定服务接口 /// public interface IPersonnelQualificationService { Task GetAsync(long id); Task> GetPageAsync(PageInput input); Task AddAsync(PersonnelQualificationAddInput input); Task UpdateAsync(PersonnelQualificationUpdateInput input); Task DeleteAsync(long id); Task SoftDeleteAsync(long id); Task BatchSoftDeleteAsync(long[] ids); /// /// 根据资质ID列表获取具有这些资质的人员基础信息列表(ID + 姓名) /// /// 资质ID列表 /// Task> GetPersonnelIdsByQualificationIdsAsync(long[] qualificationIds); /// /// 根据资质ID字符串(逗号分隔)获取具有这些资质的人员基础信息列表(ID + 姓名) /// /// 资质ID字符串,使用逗号分隔 /// Task> GetPersonnelIdsByQualificationIdsAsync(string qualificationIds); /// /// 根据人员ID获取其所有有效资质信息 /// /// 人员ID /// Task> GetActiveQualificationsByPersonnelIdAsync(long personnelId); /// /// 获取所有有资质记录的人员列表(用于人员池构建) /// 深度业务思考:从资质表获取所有关联人员,确保智能分配系统的人员池完整性 /// /// 所有有资质记录的人员资质信息 Task> GetAllPersonnelWithQualificationsAsync(); /// /// 根据人员ID获取其所有资质记录(包括无效的) /// /// 人员ID /// 人员的所有资质记录 Task> GetByPersonnelIdAsync(long personnelId); /// /// 根据人员ID获取其所有有效的资质实体列表(用于智能分配系统资质匹配) /// 深度业务思考:智能分配系统需要完整的资质实体信息进行精确匹配计算 /// /// 人员ID /// 人员有效资质实体列表 Task> GetPersonnelQualificationsAsync(long personnelId); /// /// 获取人员资质统计信息(横坐标为资质,纵坐标为人员数量) /// /// 人员资质统计结果 Task GetPersonnelQualificationStatisticsAsync(); /// /// 获取即将过期的资质列表 /// /// /// /// /// Task> GetExpiringAsync(DateTime today, IList personnelIds = null, bool includeExpired = false); }