using System;
using System.Collections.Generic;
namespace NPP.SmartSchedue.Api.Contracts.Services.Time.Output;
///
/// 批量操作结果输出模型
/// 用于返回批量操作的执行结果和统计信息
///
public class BatchOperationResult
{
///
/// 操作是否成功
///
public bool IsSuccess { get; set; }
///
/// 操作消息
///
public string Message { get; set; }
///
/// 总记录数
///
public int TotalCount { get; set; }
///
/// 成功处理的记录数量
///
public int ProcessedCount { get; set; }
///
/// 成功操作数量
///
public int SuccessCount { get; set; }
///
/// 跳过的记录数量(通常是已存在且不覆盖的记录)
///
public int SkippedCount { get; set; }
///
/// 失败的记录数量
///
public int FailedCount { get; set; }
///
/// 错误消息列表
///
public List ErrorMessages { get; set; } = new();
///
/// 警告消息列表
///
public List WarningMessages { get; set; } = new();
///
/// 操作详细信息
///
public string OperationDetails { get; set; }
///
/// 操作耗时(毫秒)
///
public long ElapsedMilliseconds { get; set; }
///
/// 操作开始时间
///
public DateTime StartTime { get; set; }
///
/// 操作结束时间
///
public DateTime EndTime { get; set; }
///
/// 失败项目详细信息列表
///
public List FailedItems { get; set; } = new();
///
/// 批量操作的统计摘要
///
public BatchOperationSummary Summary { get; set; } = new();
}
///
/// 批量操作统计摘要
///
public class BatchOperationSummary
{
///
/// 总记录数
///
public int TotalRecords { get; set; }
///
/// 成功率(百分比)
///
public decimal SuccessRate { get; set; }
///
/// 涉及的员工数量
///
public int AffectedPersonnelCount { get; set; }
///
/// 涉及的日期范围
///
public string DateRange { get; set; }
///
/// 涉及的班次数量
///
public int AffectedShiftCount { get; set; }
///
/// 操作类型描述
///
public string OperationType { get; set; }
}
///
/// 批量操作失败项目详细信息
/// 记录单个失败项目的具体信息
///
public class BatchOperationFailedItem
{
///
/// 日期
///
public DateTime Date { get; set; }
///
/// 班次ID
///
public long ShiftId { get; set; }
///
/// 班次名称
///
public string ShiftName { get; set; }
///
/// 员工ID
///
public long? PersonnelId { get; set; }
///
/// 员工姓名
///
public string PersonnelName { get; set; }
///
/// 失败原因
///
public string Reason { get; set; }
///
/// 错误代码
///
public string ErrorCode { get; set; }
}