paiban/NPP.SmartSchedue.Api.Contracts/Services/Personnel/IPersonnelQualificationService.cs
Asoka.Wang 21f044712c 1
2025-08-27 18:39:19 +08:00

71 lines
3.0 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
namespace NPP.SmartSchedue.Api.Contracts.Services.Personnel;
/// <summary>
/// 人员资质绑定服务接口
/// </summary>
public interface IPersonnelQualificationService
{
Task<PersonnelQualificationGetOutput> GetAsync(long id);
Task<PageOutput<PersonnelQualificationGetPageOutput>> GetPageAsync(PageInput<PersonnelQualificationGetPageInput> input);
Task<long> AddAsync(PersonnelQualificationAddInput input);
Task UpdateAsync(PersonnelQualificationUpdateInput input);
Task DeleteAsync(long id);
Task SoftDeleteAsync(long id);
Task BatchSoftDeleteAsync(long[] ids);
/// <summary>
/// 根据资质ID列表获取具有这些资质的人员基础信息列表ID + 姓名)
/// </summary>
/// <param name="qualificationIds">资质ID列表</param>
/// <returns></returns>
Task<List<PersonnelBasicInfo>> GetPersonnelIdsByQualificationIdsAsync(long[] qualificationIds);
/// <summary>
/// 根据资质ID字符串逗号分隔获取具有这些资质的人员基础信息列表ID + 姓名)
/// </summary>
/// <param name="qualificationIds">资质ID字符串使用逗号分隔</param>
/// <returns></returns>
Task<List<PersonnelBasicInfo>> GetPersonnelIdsByQualificationIdsAsync(string qualificationIds);
/// <summary>
/// 根据人员ID获取其所有有效资质信息
/// </summary>
/// <param name="personnelId">人员ID</param>
/// <returns></returns>
Task<List<PersonnelQualificationGetPageOutput>> GetActiveQualificationsByPersonnelIdAsync(long personnelId);
/// <summary>
/// 获取所有有资质记录的人员列表(用于人员池构建)
/// 深度业务思考:从资质表获取所有关联人员,确保智能分配系统的人员池完整性
/// </summary>
/// <returns>所有有资质记录的人员资质信息</returns>
Task<List<PersonnelQualificationGetPageOutput>> GetAllPersonnelWithQualificationsAsync();
/// <summary>
/// 根据人员ID获取其所有资质记录包括无效的
/// </summary>
/// <param name="personnelId">人员ID</param>
/// <returns>人员的所有资质记录</returns>
Task<List<PersonnelQualificationGetPageOutput>> GetByPersonnelIdAsync(long personnelId);
/// <summary>
/// 根据人员ID获取其所有有效的资质实体列表用于智能分配系统资质匹配
/// 深度业务思考:智能分配系统需要完整的资质实体信息进行精确匹配计算
/// </summary>
/// <param name="personnelId">人员ID</param>
/// <returns>人员有效资质实体列表</returns>
Task<List<NPP.SmartSchedue.Api.Contracts.Domain.Personnel.PersonnelQualificationEntity>> GetPersonnelQualificationsAsync(long personnelId);
}