版本260406

This commit is contained in:
2026-04-06 22:04:05 +08:00
parent 7dc5e73af7
commit 0b150470be
216 changed files with 98993 additions and 33 deletions

View File

@@ -0,0 +1,203 @@
namespace OrpaonVision.Core.Production.Contracts.Queries;
/// <summary>
/// 产品会话查询条件。
/// </summary>
public sealed class ProductSessionQueryDto
{
/// <summary>
/// 产品序列号(精确匹配)。
/// </summary>
public string? ProductSerialNumber { get; init; }
/// <summary>
/// 产品序列号(模糊匹配)。
/// </summary>
public string? ProductSerialNumberLike { get; init; }
/// <summary>
/// 机种ID。
/// </summary>
public Guid? ProductTypeId { get; init; }
/// <summary>
/// 机种编码。
/// </summary>
public string? ProductTypeCode { get; init; }
/// <summary>
/// 工位ID。
/// </summary>
public Guid? WorkstationId { get; init; }
/// <summary>
/// 工位名称。
/// </summary>
public string? WorkstationName { get; init; }
/// <summary>
/// 操作员ID。
/// </summary>
public Guid? OperatorId { get; init; }
/// <summary>
/// 操作员姓名。
/// </summary>
public string? OperatorName { get; init; }
/// <summary>
/// 班次。
/// </summary>
public string? Shift { get; init; }
/// <summary>
/// 最终结果。
/// </summary>
public string? FinalResult { get; init; }
/// <summary>
/// 最终NG类型。
/// </summary>
public string? FinalNgType { get; init; }
/// <summary>
/// 开始时间范围开始UTC
/// </summary>
public DateTime? StartedAtUtcStart { get; init; }
/// <summary>
/// 开始时间范围结束UTC
/// </summary>
public DateTime? StartedAtUtcEnd { get; init; }
/// <summary>
/// 模型版本。
/// </summary>
public string? ModelVersion { get; init; }
/// <summary>
/// 规则版本。
/// </summary>
public string? RuleVersion { get; init; }
/// <summary>
/// 是否包含异常记录。
/// </summary>
public bool? HasAbnormalRecords { get; init; }
/// <summary>
/// 是否包含关键截图。
/// </summary>
public bool? HasKeyScreenshots { get; init; }
/// <summary>
/// 最小耗时(秒)。
/// </summary>
public decimal? MinDurationSeconds { get; init; }
/// <summary>
/// 最大耗时(秒)。
/// </summary>
public decimal? MaxDurationSeconds { get; init; }
/// <summary>
/// 页码从1开始
/// </summary>
public int PageIndex { get; init; } = 1;
/// <summary>
/// 每页大小。
/// </summary>
public int PageSize { get; init; } = 20;
/// <summary>
/// 排序字段。
/// </summary>
public string SortField { get; init; } = "StartedAtUtc";
/// <summary>
/// 排序方向ASC/DESC
/// </summary>
public string SortDirection { get; init; } = "DESC";
}
/// <summary>
/// 生产统计查询条件。
/// </summary>
public sealed class ProductionStatisticsQueryDto
{
/// <summary>
/// 统计时间范围开始UTC
/// </summary>
public DateTime StartTimeUtc { get; init; }
/// <summary>
/// 统计时间范围结束UTC
/// </summary>
public DateTime EndTimeUtc { get; init; }
/// <summary>
/// 工位ID。
/// </summary>
public Guid? WorkstationId { get; init; }
/// <summary>
/// 工位名称。
/// </summary>
public string? WorkstationName { get; init; }
/// <summary>
/// 机种ID。
/// </summary>
public Guid? ProductTypeId { get; init; }
/// <summary>
/// 机种编码。
/// </summary>
public string? ProductTypeCode { get; init; }
/// <summary>
/// 班次。
/// </summary>
public string? Shift { get; init; }
/// <summary>
/// 操作员ID。
/// </summary>
public Guid? OperatorId { get; init; }
/// <summary>
/// 操作员姓名。
/// </summary>
public string? OperatorName { get; init; }
/// <summary>
/// 是否包含详细统计。
/// </summary>
public bool IncludeDetailedStatistics { get; init; } = true;
/// <summary>
/// 统计粒度Hour/Day/Week/Month
/// </summary>
public string Granularity { get; init; } = "Hour";
/// <summary>
/// 是否按层级分组。
/// </summary>
public bool GroupByLayer { get; init; } = true;
/// <summary>
/// 是否按NG类型分组。
/// </summary>
public bool GroupByNgType { get; init; } = true;
/// <summary>
/// 是否按操作员分组。
/// </summary>
public bool GroupByOperator { get; init; } = true;
/// <summary>
/// 最小样本数(用于统计过滤)。
/// </summary>
public int? MinSampleCount { get; init; }
}