Files
OrpaonVision/OrpaonVision.Model/Production/RunLayerSessionModel.cs
2026-04-06 22:38:23 +08:00

175 lines
3.5 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.
namespace OrpaonVision.Model.Production;
/// <summary>
/// 运行层级会话模型。
/// </summary>
public sealed class RunLayerSessionModel
{
/// <summary>
/// 层级会话ID。
/// </summary>
public Guid LayerSessionId { get; set; }
/// <summary>
/// 产品会话ID。
/// </summary>
public Guid SessionId { get; set; }
/// <summary>
/// 层级序号。
/// </summary>
public int LayerNumber { get; set; }
/// <summary>
/// 层级名称。
/// </summary>
public string LayerName { get; set; } = string.Empty;
/// <summary>
/// 层级编码。
/// </summary>
public string LayerCode { get; set; } = string.Empty;
/// <summary>
/// 开始时间UTC
/// </summary>
public DateTime StartedAtUtc { get; set; }
/// <summary>
/// 结束时间UTC
/// </summary>
public DateTime? EndedAtUtc { get; set; }
/// <summary>
/// 层级状态。
/// </summary>
public RunLayerSessionStatus Status { get; set; }
/// <summary>
/// 检测到的部件数量。
/// </summary>
public int DetectedPartsCount { get; set; }
/// <summary>
/// 合格部件数量。
/// </summary>
public int QualifiedPartsCount { get; set; }
/// <summary>
/// NG部件数量。
/// </summary>
public int NgPartsCount { get; set; }
/// <summary>
/// 处理的图像数量。
/// </summary>
public int ProcessedImageCount { get; set; }
/// <summary>
/// 首张截图路径。
/// </summary>
public string? FirstScreenshotPath { get; set; }
/// <summary>
/// 末张截图路径。
/// </summary>
public string? LastScreenshotPath { get; set; }
/// <summary>
/// 层级结果。
/// </summary>
public RunLayerSessionResult Result { get; set; }
/// <summary>
/// NG原因描述。
/// </summary>
public string? NgReason { get; set; }
/// <summary>
/// 处理耗时(毫秒)。
/// </summary>
public long ProcessingTimeMs { get; set; }
/// <summary>
/// 创建时间UTC
/// </summary>
public DateTime CreatedAtUtc { get; set; }
/// <summary>
/// 更新时间UTC
/// </summary>
public DateTime UpdatedAtUtc { get; set; }
/// <summary>
/// 创建人。
/// </summary>
public string CreatedBy { get; set; } = string.Empty;
/// <summary>
/// 更新人。
/// </summary>
public string UpdatedBy { get; set; } = string.Empty;
}
/// <summary>
/// 运行层级会话状态。
/// </summary>
public enum RunLayerSessionStatus
{
/// <summary>
/// 未开始。
/// </summary>
NotStarted = 0,
/// <summary>
/// 进行中。
/// </summary>
InProgress = 1,
/// <summary>
/// 已完成OK
/// </summary>
CompletedOk = 2,
/// <summary>
/// 已完成NG
/// </summary>
CompletedNg = 3,
/// <summary>
/// 已跳过。
/// </summary>
Skipped = 4,
/// <summary>
/// 异常终止。
/// </summary>
Error = 5
}
/// <summary>
/// 运行层级会话结果。
/// </summary>
public enum RunLayerSessionResult
{
/// <summary>
/// 待定。
/// </summary>
Pending = 0,
/// <summary>
/// 合格。
/// </summary>
Ok = 1,
/// <summary>
/// 不合格。
/// </summary>
Ng = 2,
/// <summary>
/// 跳过。
/// </summary>
Skipped = 3
}