Files
OrpaonVision/OrpaonVision.Model/Production/DetectionRecordModel.cs
2026-04-06 22:04:05 +08:00

231 lines
4.6 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 DetectionRecordModel
{
/// <summary>
/// 记录ID。
/// </summary>
public Guid Id { get; set; }
/// <summary>
/// 产品会话ID。
/// </summary>
public Guid SessionId { get; set; }
/// <summary>
/// 层级会话ID。
/// </summary>
public Guid LayerSessionId { get; set; }
/// <summary>
/// 检测时间UTC
/// </summary>
public DateTime DetectedAtUtc { get; set; }
/// <summary>
/// 模型名称。
/// </summary>
public string ModelName { get; set; } = string.Empty;
/// <summary>
/// 模型版本。
/// </summary>
public string ModelVersion { get; set; } = string.Empty;
/// <summary>
/// 推理耗时(毫秒)。
/// </summary>
public double InferenceTimeMs { get; set; }
/// <summary>
/// 检测结果JSON。
/// </summary>
public string DetectionResultJson { get; set; } = string.Empty;
/// <summary>
/// 检测到的目标数量。
/// </summary>
public int DetectedObjectCount { get; set; }
/// <summary>
/// 图像路径。
/// </summary>
public string? ImagePath { get; set; }
/// <summary>
/// 图像宽度。
/// </summary>
public int ImageWidth { get; set; }
/// <summary>
/// 图像高度。
/// </summary>
public int ImageHeight { get; set; }
/// <summary>
/// 是否为NG检测。
/// </summary>
public bool IsNgDetection { get; set; }
/// <summary>
/// 规则引擎判定结果JSON。
/// </summary>
public string? RuleEngineResultJson { get; set; }
/// <summary>
/// 创建时间UTC
/// </summary>
public DateTime CreatedAtUtc { get; set; }
/// <summary>
/// 创建人。
/// </summary>
public string CreatedBy { get; set; } = string.Empty;
}
/// <summary>
/// 异常记录模型。
/// </summary>
public sealed class ExceptionRecordModel
{
/// <summary>
/// 记录ID。
/// </summary>
public Guid Id { get; set; }
/// <summary>
/// 产品会话ID。
/// </summary>
public Guid SessionId { get; set; }
/// <summary>
/// 层级会话ID。
/// </summary>
public Guid? LayerSessionId { get; set; }
/// <summary>
/// 异常类型。
/// </summary>
public ExceptionType Type { get; set; }
/// <summary>
/// 异常代码。
/// </summary>
public string ExceptionCode { get; set; } = string.Empty;
/// <summary>
/// 异常消息。
/// </summary>
public string ExceptionMessage { get; set; } = string.Empty;
/// <summary>
/// 异常详情JSON。
/// </summary>
public string? ExceptionDetailJson { get; set; }
/// <summary>
/// 发生时间UTC
/// </summary>
public DateTime OccurredAtUtc { get; set; }
/// <summary>
/// 严重程度。
/// </summary>
public ExceptionSeverity Severity { get; set; }
/// <summary>
/// 是否已处理。
/// </summary>
public bool IsHandled { get; set; }
/// <summary>
/// 处理时间UTC
/// </summary>
public DateTime? HandledAtUtc { get; set; }
/// <summary>
/// 处理人。
/// </summary>
public string? HandledBy { get; set; }
/// <summary>
/// 处理方式。
/// </summary>
public string? HandlingMethod { get; set; }
/// <summary>
/// 创建时间UTC
/// </summary>
public DateTime CreatedAtUtc { get; set; }
/// <summary>
/// 创建人。
/// </summary>
public string CreatedBy { get; set; } = string.Empty;
}
/// <summary>
/// 异常类型枚举。
/// </summary>
public enum ExceptionType
{
/// <summary>
/// 相机异常。
/// </summary>
Camera = 0,
/// <summary>
/// 推理异常。
/// </summary>
Inference = 1,
/// <summary>
/// 规则引擎异常。
/// </summary>
RuleEngine = 2,
/// <summary>
/// 状态机异常。
/// </summary>
StateMachine = 3,
/// <summary>
/// 系统异常。
/// </summary>
System = 4,
/// <summary>
/// 业务异常。
/// </summary>
Business = 5
}
/// <summary>
/// 异常严重程度枚举。
/// </summary>
public enum ExceptionSeverity
{
/// <summary>
/// 低。
/// </summary>
Low = 0,
/// <summary>
/// 中。
/// </summary>
Medium = 1,
/// <summary>
/// 高。
/// </summary>
High = 2,
/// <summary>
/// 严重。
/// </summary>
Critical = 3
}