版本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,220 @@
namespace OrpaonVision.Model.Configuration;
/// <summary>
/// 层级配置模型。
/// </summary>
public sealed class LayerConfigModel
{
/// <summary>
/// 层级ID。
/// </summary>
public Guid Id { get; set; }
/// <summary>
/// 机种ID。
/// </summary>
public Guid ProductTypeId { get; set; }
/// <summary>
/// 层级序号。
/// </summary>
public int LayerNumber { get; set; }
/// <summary>
/// 层级名称。
/// </summary>
public string Name { get; set; } = string.Empty;
/// <summary>
/// 层级描述。
/// </summary>
public string? Description { get; set; }
/// <summary>
/// 层级状态。
/// </summary>
public LayerConfigStatus Status { get; set; }
/// <summary>
/// 切换条件JSON。
/// </summary>
public string? SwitchConditionJson { get; set; }
/// <summary>
/// 超时时间(秒)。
/// </summary>
public int TimeoutSeconds { get; set; }
/// <summary>
/// 是否必须完成。
/// </summary>
public bool IsRequired { get; set; }
/// <summary>
/// 排序序号。
/// </summary>
public int SortOrder { 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 string? Remark { get; set; }
}
/// <summary>
/// 层级配置状态枚举。
/// </summary>
public enum LayerConfigStatus
{
/// <summary>
/// 启用。
/// </summary>
Enabled = 0,
/// <summary>
/// 禁用。
/// </summary>
Disabled = 1,
/// <summary>
/// 隐藏。
/// </summary>
Hidden = 2
}
/// <summary>
/// 部件配置模型。
/// </summary>
public sealed class ComponentConfigModel
{
/// <summary>
/// 部件ID。
/// </summary>
public Guid Id { get; set; }
/// <summary>
/// 层级ID。
/// </summary>
public Guid LayerConfigId { get; set; }
/// <summary>
/// 部件编码。
/// </summary>
public string Code { get; set; } = string.Empty;
/// <summary>
/// 部件名称。
/// </summary>
public string Name { get; set; } = string.Empty;
/// <summary>
/// 部件描述。
/// </summary>
public string? Description { get; set; }
/// <summary>
/// 部件状态。
/// </summary>
public ComponentConfigStatus Status { get; set; }
/// <summary>
/// 数量要求。
/// </summary>
public int RequiredQuantity { get; set; }
/// <summary>
/// 数量容差。
/// </summary>
public int QuantityTolerance { get; set; }
/// <summary>
/// 类别ID对应检测类别
/// </summary>
public int ClassId { get; set; }
/// <summary>
/// 类别名称。
/// </summary>
public string ClassName { get; set; } = string.Empty;
/// <summary>
/// 最小置信度。
/// </summary>
public float MinConfidence { get; set; }
/// <summary>
/// 是否关键部件。
/// </summary>
public bool IsKeyComponent { get; set; }
/// <summary>
/// 排序序号。
/// </summary>
public int SortOrder { 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 string? Remark { get; set; }
}
/// <summary>
/// 部件配置状态枚举。
/// </summary>
public enum ComponentConfigStatus
{
/// <summary>
/// 启用。
/// </summary>
Enabled = 0,
/// <summary>
/// 禁用。
/// </summary>
Disabled = 1,
/// <summary>
/// 可选。
/// </summary>
Optional = 2
}

View File

@@ -0,0 +1,113 @@
namespace OrpaonVision.Model.Configuration;
/// <summary>
/// 机种配置模型。
/// </summary>
public sealed class ProductTypeModel
{
/// <summary>
/// 机种ID。
/// </summary>
public Guid Id { get; set; }
/// <summary>
/// 机种编码。
/// </summary>
public string Code { get; set; } = string.Empty;
/// <summary>
/// 机种名称。
/// </summary>
public string Name { get; set; } = string.Empty;
/// <summary>
/// 机种描述。
/// </summary>
public string? Description { get; set; }
/// <summary>
/// 机种状态。
/// </summary>
public ProductTypeStatus Status { get; set; }
/// <summary>
/// 总层级数。
/// </summary>
public int TotalLayers { get; set; }
/// <summary>
/// 默认相机配置。
/// </summary>
public string? DefaultCameraConfig { get; set; }
/// <summary>
/// 默认模型配置。
/// </summary>
public string? DefaultModelConfig { get; set; }
/// <summary>
/// 是否已发布。
/// </summary>
public bool IsPublished { get; set; }
/// <summary>
/// 发布时间UTC
/// </summary>
public DateTime? PublishedAtUtc { get; set; }
/// <summary>
/// 发布人。
/// </summary>
public string? PublishedBy { 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 string? Remark { get; set; }
}
/// <summary>
/// 机种状态枚举。
/// </summary>
public enum ProductTypeStatus
{
/// <summary>
/// 草稿。
/// </summary>
Draft = 0,
/// <summary>
/// 已发布。
/// </summary>
Published = 1,
/// <summary>
/// 已停用。
/// </summary>
Disabled = 2,
/// <summary>
/// 已归档。
/// </summary>
Archived = 3
}

View File

@@ -0,0 +1,287 @@
namespace OrpaonVision.Model.Configuration;
/// <summary>
/// ROI配置模型。
/// </summary>
public sealed class RoiConfigModel
{
/// <summary>
/// ROI ID。
/// </summary>
public Guid Id { get; set; }
/// <summary>
/// 部件ID。
/// </summary>
public Guid ComponentConfigId { get; set; }
/// <summary>
/// ROI名称。
/// </summary>
public string Name { get; set; } = string.Empty;
/// <summary>
/// ROI描述。
/// </summary>
public string? Description { get; set; }
/// <summary>
/// ROI类型。
/// </summary>
public RoiType Type { get; set; }
/// <summary>
/// X坐标相对坐标0-1
/// </summary>
public double X { get; set; }
/// <summary>
/// Y坐标相对坐标0-1
/// </summary>
public double Y { get; set; }
/// <summary>
/// 宽度相对坐标0-1
/// </summary>
public double Width { get; set; }
/// <summary>
/// 高度相对坐标0-1
/// </summary>
public double Height { get; set; }
/// <summary>
/// ROI状态。
/// </summary>
public RoiStatus Status { get; set; }
/// <summary>
/// 是否启用。
/// </summary>
public bool IsEnabled { get; set; }
/// <summary>
/// 排序序号。
/// </summary>
public int SortOrder { 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 string? Remark { get; set; }
}
/// <summary>
/// ROI类型枚举。
/// </summary>
public enum RoiType
{
/// <summary>
/// 矩形。
/// </summary>
Rectangle = 0,
/// <summary>
/// 圆形。
/// </summary>
Circle = 1,
/// <summary>
/// 多边形。
/// </summary>
Polygon = 2,
/// <summary>
/// 椭圆形。
/// </summary>
Ellipse = 3
}
/// <summary>
/// ROI状态枚举。
/// </summary>
public enum RoiStatus
{
/// <summary>
/// 启用。
/// </summary>
Enabled = 0,
/// <summary>
/// 禁用。
/// </summary>
Disabled = 1,
/// <summary>
/// 隐藏。
/// </summary>
Hidden = 2
}
/// <summary>
/// 规则配置模型。
/// </summary>
public sealed class RuleConfigModel
{
/// <summary>
/// 规则ID。
/// </summary>
public Guid Id { get; set; }
/// <summary>
/// 部件ID。
/// </summary>
public Guid ComponentConfigId { get; set; }
/// <summary>
/// 规则名称。
/// </summary>
public string Name { get; set; } = string.Empty;
/// <summary>
/// 规则描述。
/// </summary>
public string? Description { get; set; }
/// <summary>
/// 规则类型。
/// </summary>
public RuleType Type { get; set; }
/// <summary>
/// 规则参数JSON。
/// </summary>
public string RuleParametersJson { get; set; } = string.Empty;
/// <summary>
/// 规则状态。
/// </summary>
public RuleStatus Status { get; set; }
/// <summary>
/// 优先级。
/// </summary>
public int Priority { get; set; }
/// <summary>
/// 是否启用。
/// </summary>
public bool IsEnabled { get; set; }
/// <summary>
/// 排序序号。
/// </summary>
public int SortOrder { 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 string? Remark { get; set; }
}
/// <summary>
/// 规则类型枚举。
/// </summary>
public enum RuleType
{
/// <summary>
/// 数量规则。
/// </summary>
Quantity = 0,
/// <summary>
/// 位置规则。
/// </summary>
Position = 1,
/// <summary>
/// 到位规则。
/// </summary>
InPlace = 2,
/// <summary>
/// 顺序规则。
/// </summary>
Sequence = 3,
/// <summary>
/// 禁装规则。
/// </summary>
Forbidden = 4,
/// <summary>
/// 超时规则。
/// </summary>
Timeout = 5,
/// <summary>
/// 层切换规则。
/// </summary>
LayerSwitch = 6,
/// <summary>
/// 机完成规则。
/// </summary>
MachineComplete = 7
}
/// <summary>
/// 规则状态枚举。
/// </summary>
public enum RuleStatus
{
/// <summary>
/// 启用。
/// </summary>
Enabled = 0,
/// <summary>
/// 禁用。
/// </summary>
Disabled = 1,
/// <summary>
/// 测试中。
/// </summary>
Testing = 2
}