using System; using System.Collections.Generic; using System.Threading.Tasks; using NPP.SmartSchedue.Api.Contracts.Services.Integration.Input; using NPP.SmartSchedue.Api.Contracts.Services.Integration.Output; namespace NPP.SmartSchedue.Api.Contracts.Services.Integration { /// /// 整合记录服务接口 /// public interface IIntegrationRecordService { /// /// 生成整合记录 /// Task GenerateIntegrationRecordAsync(IntegrationRecordInput input); /// /// 根据记录ID查询整合记录信息并附加任务集 /// /// 整合记录ID /// 包含任务集的整合记录信息 Task GetIntegrationRecordWithTasksAsync(long recordId); /// /// 查询所有整合记录列表 /// /// 查询条件 /// 整合记录列表 Task> GetIntegrationRecordsAsync(IntegrationRecordGetListInput input); #region 发布管理接口 /// /// 发布整合记录 /// 将草稿状态的整合记录发布生效,更新任务分配状态 /// /// 发布输入参数 /// 发布结果 Task PublishIntegrationRecordAsync(PublishIntegrationRecordInput input); /// /// 更新整合记录状态 /// 支持状态转换:草稿->已发布->已完成->已撤销 /// /// 整合记录ID /// 新状态 /// 操作员用户ID /// 操作员姓名 /// 状态更新说明 /// 更新结果 Task UpdateIntegrationRecordStatusAsync(long recordId, string newStatus, long operatorUserId, string operatorName, string remarks = ""); /// /// 发布修改后的任务 /// 将任务的修改内容发布到生产系统 /// /// 整合记录ID /// 修改的任务ID列表 /// 操作员用户ID /// 操作员姓名 /// 发布说明 /// 发布结果 Task PublishTaskModificationsAsync(long recordId, List modifiedTaskIds, long operatorUserId, string operatorName, string publishRemarks = ""); #endregion #region 任务修改接口 /// /// 修改整合记录中的任务分配 /// 根据选中的人员修改任务的指定人员ID和姓名,并更新整合记录 /// /// 任务修改输入参数 /// 修改结果 Task ModifyIntegrationRecordTaskAsync(IntegrationRecordTaskModifyInput input); #endregion #region 通知管理接口(预留) /// /// 发送发布通知(预留接口) /// 向相关人员发送整合记录发布的通知信息 /// /// 整合记录ID /// 通知类型 /// 目标人员ID列表 /// 自定义消息 /// 通知发送结果 Task SendPublishNotificationAsync(long recordId, string notificationType, List targetPersonnelIds, string customMessage = ""); /// /// 创建待办任务(预留接口) /// 为相关人员创建与发布记录相关的待办任务 /// /// 整合记录ID /// 待办类型 /// 负责人ID列表 /// 待办标题 /// 待办描述 /// 截止时间 /// 创建结果 Task CreatePublishRelatedTodoAsync(long recordId, string todoType, List assigneeIds, string title, string description, DateTime? dueDate = null); #endregion } }