paiban/NPP.SmartSchedue.Api.Contracts/Services/Work/IWorkOrderAssignmentService.cs
Developer 058d8edffa 添加通知系统和工作任务分配功能
- 新增通知系统完整架构,包含通知设置、历史记录、任务管理等核心功能
- 实现工作任务分配服务,支持人员和设备的智能分配
- 添加人员分组管理功能,支持灵活的通知目标配置
- 完善相关枚举定义和数据传输对象

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-05 08:34:01 +08:00

75 lines
3.0 KiB
C#

using System.Collections.Generic;
using System.Threading.Tasks;
using NPP.SmartSchedue.Api.Contracts.Services.Work.Input;
using NPP.SmartSchedue.Api.Contracts.Services.Work.Output;
namespace NPP.SmartSchedue.Api.Contracts.Services.Work;
/// <summary>
/// 工作任务分配修改服务接口
/// 专门用于智能排班结果的手动修改功能
/// </summary>
public interface IWorkOrderAssignmentService
{
/// <summary>
/// 更新任务人员分配
/// </summary>
/// <param name="input">人员分配更新输入</param>
/// <returns>分配更新结果</returns>
Task<WorkOrderAssignmentUpdateOutput> UpdatePersonnelAssignmentAsync(WorkOrderPersonnelUpdateInput input);
/// <summary>
/// 更新任务设备分配
/// </summary>
/// <param name="input">设备分配更新输入</param>
/// <returns>分配更新结果</returns>
Task<WorkOrderAssignmentUpdateOutput> UpdateEquipmentAssignmentAsync(WorkOrderEquipmentUpdateInput input);
/// <summary>
/// 批量更新任务分配(支持人员和设备同时修改)
/// </summary>
/// <param name="workOrderId">任务ID</param>
/// <param name="personnelInput">人员分配输入(可为空)</param>
/// <param name="equipmentInput">设备分配输入(可为空)</param>
/// <returns>分配更新结果</returns>
Task<WorkOrderAssignmentUpdateOutput> UpdateAssignmentAsync(
long workOrderId,
WorkOrderPersonnelUpdateInput personnelInput = null,
WorkOrderEquipmentUpdateInput equipmentInput = null);
/// <summary>
/// 验证任务分配的合法性(不执行更新,仅验证)
/// </summary>
/// <param name="workOrderId">任务ID</param>
/// <param name="personnelId">人员ID</param>
/// <param name="equipmentId">设备ID</param>
/// <param name="flPersonnelIds">FL人员ID列表</param>
/// <returns>验证结果</returns>
Task<WorkOrderAssignmentUpdateOutput> ValidateAssignmentAsync(
long workOrderId,
long? personnelId = null,
long? equipmentId = null,
List<long> flPersonnelIds = null);
/// <summary>
/// 批量验证多个任务的分配修改
/// </summary>
/// <param name="assignmentRequests">分配修改请求列表</param>
/// <returns>批量验证结果</returns>
Task<BatchWorkOrderAssignmentUpdateOutput> ValidateBatchAssignmentAsync(
List<WorkOrderAssignmentRequest> assignmentRequests);
/// <summary>
/// 获取任务的可用人员列表(基于资质和时间约束)
/// </summary>
/// <param name="workOrderId">任务ID</param>
/// <returns>可用人员列表</returns>
Task<AvailablePersonnelOutput> GetAvailablePersonnelAsync(long workOrderId);
/// <summary>
/// 获取任务的可用设备列表(基于设备类型和时间约束)
/// </summary>
/// <param name="workOrderId">任务ID</param>
/// <returns>可用设备列表</returns>
Task<AvailableEquipmentOutput> GetAvailableEquipmentAsync(long workOrderId);
}