3102 lines
101 KiB
C#
3102 lines
101 KiB
C#
using OrpaonVision.Core.PlacementJudgment;
|
||
using OrpaonVision.Core.LayerCompletion;
|
||
using OrpaonVision.Core.LayerTransition;
|
||
using OrpaonVision.Core.FinalJudgment;
|
||
using OrpaonVision.Core.AlarmSystem;
|
||
using OrpaonVision.Core.Statistics;
|
||
using OrpaonVision.Core.HistoryTrace;
|
||
using OrpaonVision.Core.ManualOverride;
|
||
using OrpaonVision.Core.Common;
|
||
|
||
namespace OrpaonVision.SiteApp.Runtime.Options
|
||
{
|
||
/// <summary>
|
||
/// 运行端 MVP 配置。
|
||
/// </summary>
|
||
public sealed class RuntimeOptions
|
||
{
|
||
/// <summary>
|
||
/// 当前工位层总数。
|
||
/// </summary>
|
||
public int TotalLayers { get; set; } = 4;
|
||
|
||
/// <summary>
|
||
/// 相机标识。
|
||
/// </summary>
|
||
public string CameraId { get; set; } = "CAM-01";
|
||
|
||
/// <summary>
|
||
/// NG 置信度阈值。
|
||
/// </summary>
|
||
public decimal NgConfidenceThreshold { get; set; } = 0.6m;
|
||
|
||
// === 机种切换配置 ===
|
||
|
||
/// <summary>
|
||
/// 最小切换间隔(分钟)。
|
||
/// </summary>
|
||
public int MinSwitchIntervalMinutes { get; set; } = 5;
|
||
|
||
/// <summary>
|
||
/// 是否启用机种切换权限检查。
|
||
/// </summary>
|
||
public bool EnableSwitchPermissionCheck { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 是否启用机种切换频率限制。
|
||
/// </summary>
|
||
public bool EnableSwitchFrequencyLimit { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 是否启用强制切换审批。
|
||
/// </summary>
|
||
public bool EnableForceSwitchApproval { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 强制切换审批人角色。
|
||
/// </summary>
|
||
public string[] ForceSwitchApprovalRoles { get; set; } = { "班组长", "工艺工程师" };
|
||
|
||
/// <summary>
|
||
/// 运行时状态检查:运行中是否允许切换。
|
||
/// </summary>
|
||
public bool AllowSwitchWhenRunning { get; set; } = false;
|
||
|
||
/// <summary>
|
||
/// 运行时状态检查:暂停时是否允许切换。
|
||
/// </summary>
|
||
public bool AllowSwitchWhenPaused { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 运行时状态检查:完成后是否允许切换。
|
||
/// </summary>
|
||
public bool AllowSwitchWhenCompleted { get; set; } = false;
|
||
|
||
/// <summary>
|
||
/// 机种切换历史记录保留数量。
|
||
/// </summary>
|
||
public int SwitchHistoryRetentionCount { get; set; } = 100;
|
||
|
||
/// <summary>
|
||
/// 是否记录机种切换审计日志。
|
||
/// </summary>
|
||
public bool EnableSwitchAuditLog { get; set; } = true;
|
||
|
||
// === 机种锁定配置 ===
|
||
|
||
/// <summary>
|
||
/// 是否启用机种自动锁定。
|
||
/// </summary>
|
||
public bool EnableProductAutoLock { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 运行中自动锁定机种。
|
||
/// </summary>
|
||
public bool AutoLockWhenRunning { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 维护模式自动锁定机种。
|
||
/// </summary>
|
||
public bool AutoLockWhenMaintenance { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 机种锁定过期时间(小时)。
|
||
/// </summary>
|
||
public int ProductLockExpirationHours { get; set; } = 24;
|
||
|
||
// === 层级识别配置 ===
|
||
|
||
/// <summary>
|
||
/// 层级识别置信度阈值。
|
||
/// </summary>
|
||
public double LayerRecognitionConfidenceThreshold { get; set; } = 0.7;
|
||
|
||
/// <summary>
|
||
/// 层级稳定性阈值。
|
||
/// </summary>
|
||
public double LayerStabilityThreshold { get; set; } = 0.8;
|
||
|
||
/// <summary>
|
||
/// 主导层级阈值(百分比)。
|
||
/// </summary>
|
||
public double DominantLayerThreshold { get; set; } = 0.6;
|
||
|
||
/// <summary>
|
||
/// 层级稳定性窗口大小。
|
||
/// </summary>
|
||
public int LayerStabilityWindowSize { get; set; } = 5;
|
||
|
||
/// <summary>
|
||
/// 最大层级历史记录数量。
|
||
/// </summary>
|
||
public int MaxLayerHistoryCount { get; set; } = 1000;
|
||
|
||
/// <summary>
|
||
/// 是否启用层级变化检测。
|
||
/// </summary>
|
||
public bool EnableLayerTransitionDetection { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 层级变化检测置信度阈值。
|
||
/// </summary>
|
||
public double LayerTransitionConfidenceThreshold { get; set; } = 0.6;
|
||
|
||
/// <summary>
|
||
/// 是否启用多方法融合识别。
|
||
/// </summary>
|
||
public bool EnableMultiMethodFusion { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 规则识别方法权重。
|
||
/// </summary>
|
||
public double RuleBasedMethodWeight { get; set; } = 0.3;
|
||
|
||
/// <summary>
|
||
/// 特征匹配方法权重。
|
||
/// </summary>
|
||
public double FeatureMatchingMethodWeight { get; set; } = 0.4;
|
||
|
||
/// <summary>
|
||
/// 机器学习方法权重。
|
||
/// </summary>
|
||
public double MachineLearningMethodWeight { get; set; } = 0.6;
|
||
|
||
/// <summary>
|
||
/// 是否启用层级特征提取。
|
||
/// </summary>
|
||
public bool EnableLayerFeatureExtraction { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 特征向量维度。
|
||
/// </summary>
|
||
public int FeatureVectorDimension { get; set; } = 20;
|
||
|
||
/// <summary>
|
||
/// 是否启用层级模型训练。
|
||
/// </summary>
|
||
public bool EnableLayerModelTraining { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 最小训练样本数量。
|
||
/// </summary>
|
||
public int MinTrainingSampleCount { get; set; } = 100;
|
||
|
||
/// <summary>
|
||
/// 训练数据验证比例。
|
||
/// </summary>
|
||
public double TrainingValidationRatio { get; set; } = 0.2;
|
||
|
||
/// <summary>
|
||
/// 是否启用层级识别统计。
|
||
/// </summary>
|
||
public bool EnableLayerRecognitionStatistics { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 统计数据保留天数。
|
||
/// </summary>
|
||
public int StatisticsRetentionDays { get; set; } = 30;
|
||
|
||
/// <summary>
|
||
/// 是否启用层级识别缓存。
|
||
/// </summary>
|
||
public bool EnableLayerRecognitionCache { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 缓存过期时间(分钟)。
|
||
/// </summary>
|
||
public int CacheExpirationMinutes { get; set; } = 30;
|
||
|
||
/// <summary>
|
||
/// 最大缓存大小。
|
||
/// </summary>
|
||
public int MaxCacheSize { get; set; } = 10000;
|
||
|
||
// === 部件识别配置 ===
|
||
|
||
/// <summary>
|
||
/// 部件识别置信度阈值。
|
||
/// </summary>
|
||
public double PartRecognitionConfidenceThreshold { get; set; } = 0.6;
|
||
|
||
/// <summary>
|
||
/// 部件匹配阈值。
|
||
/// </summary>
|
||
public double PartMatchThreshold { get; set; } = 0.7;
|
||
|
||
/// <summary>
|
||
/// 部件位置容差。
|
||
/// </summary>
|
||
public double PartPositionTolerance { get; set; } = 10.0;
|
||
|
||
/// <summary>
|
||
/// 部件大小容差。
|
||
/// </summary>
|
||
public double PartSizeTolerance { get; set; } = 0.1;
|
||
|
||
/// <summary>
|
||
/// 最大映射历史记录数量。
|
||
/// </summary>
|
||
public int MaxMappingHistoryCount { get; set; } = 5000;
|
||
|
||
/// <summary>
|
||
/// 是否启用部件模糊匹配。
|
||
/// </summary>
|
||
public bool EnablePartFuzzyMatching { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 部件模糊匹配阈值。
|
||
/// </summary>
|
||
public double PartFuzzyMatchingThreshold { get; set; } = 0.8;
|
||
|
||
/// <summary>
|
||
/// 是否启用部件批量映射。
|
||
/// </summary>
|
||
public bool EnableBatchPartMapping { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 批量映射批次大小。
|
||
/// </summary>
|
||
public int BatchMappingSize { get; set; } = 100;
|
||
|
||
/// <summary>
|
||
/// 是否启用部件精度校验。
|
||
/// </summary>
|
||
public bool EnablePartAccuracyValidation { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 部件精度校验阈值。
|
||
/// </summary>
|
||
public double PartAccuracyValidationThreshold { get; set; } = 0.8;
|
||
|
||
/// <summary>
|
||
/// 是否启用部件模型训练。
|
||
/// </summary>
|
||
public bool EnablePartModelTraining { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 最小部件训练样本数量。
|
||
/// </summary>
|
||
public int MinPartTrainingSampleCount { get; set; } = 200;
|
||
|
||
/// <summary>
|
||
/// 部件训练数据验证比例。
|
||
/// </summary>
|
||
public double PartTrainingValidationRatio { get; set; } = 0.2;
|
||
|
||
/// <summary>
|
||
/// 是否启用部件参数优化。
|
||
/// </summary>
|
||
public bool EnablePartParameterOptimization { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 部件优化迭代次数。
|
||
/// </summary>
|
||
public int PartOptimizationIterations { get; set; } = 50;
|
||
|
||
/// <summary>
|
||
/// 是否启用部件识别统计。
|
||
/// </summary>
|
||
public bool EnablePartRecognitionStatistics { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 部件统计数据保留天数。
|
||
/// </summary>
|
||
public int PartStatisticsRetentionDays { get; set; } = 30;
|
||
|
||
/// <summary>
|
||
/// 是否启用部件识别缓存。
|
||
/// </summary>
|
||
public bool EnablePartRecognitionCache { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 部件缓存过期时间(分钟)。
|
||
/// </summary>
|
||
public int PartCacheExpirationMinutes { get; set; } = 60;
|
||
|
||
/// <summary>
|
||
/// 最大部件缓存大小。
|
||
/// </summary>
|
||
public int MaxPartCacheSize { get; set; } = 20000;
|
||
|
||
/// <summary>
|
||
/// 部件类别映射权重。
|
||
/// </summary>
|
||
public Dictionary<string, double> PartClassMappingWeights { get; set; } = new();
|
||
|
||
/// <summary>
|
||
/// 部件类型优先级。
|
||
/// </summary>
|
||
public Dictionary<string, int> PartTypePriorities { get; set; } = new();
|
||
|
||
/// <summary>
|
||
/// 部件识别超时时间(毫秒)。
|
||
/// </summary>
|
||
public int PartRecognitionTimeoutMs { get; set; } = 5000;
|
||
|
||
/// <summary>
|
||
/// 部件批量处理超时时间(毫秒)。
|
||
/// </summary>
|
||
public int BatchPartProcessingTimeoutMs { get; set; } = 30000;
|
||
|
||
// === 数量校验配置 ===
|
||
|
||
/// <summary>
|
||
/// 数量校验置信度阈值。
|
||
/// </summary>
|
||
public double QuantityValidationConfidenceThreshold { get; set; } = 0.8;
|
||
|
||
/// <summary>
|
||
/// 最大校验历史记录数量。
|
||
/// </summary>
|
||
public int MaxValidationHistoryCount { get; set; } = 10000;
|
||
|
||
/// <summary>
|
||
/// 是否启用数量校验缓存。
|
||
/// </summary>
|
||
public bool EnableQuantityValidationCache { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 数量校验缓存过期时间(分钟)。
|
||
/// </summary>
|
||
public int QuantityValidationCacheExpirationMinutes { get; set; } = 30;
|
||
|
||
/// <summary>
|
||
/// 最大数量校验缓存大小。
|
||
/// </summary>
|
||
public int MaxQuantityValidationCacheSize { get; set; } = 5000;
|
||
|
||
/// <summary>
|
||
/// 是否启用批量数量校验。
|
||
/// </summary>
|
||
public bool EnableBatchQuantityValidation { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 批量数量校验批次大小。
|
||
/// </summary>
|
||
public int BatchQuantityValidationSize { get; set; } = 50;
|
||
|
||
/// <summary>
|
||
/// 数量校验超时时间(毫秒)。
|
||
/// </summary>
|
||
public int QuantityValidationTimeoutMs { get; set; } = 3000;
|
||
|
||
/// <summary>
|
||
/// 批量数量校验超时时间(毫秒)。
|
||
/// </summary>
|
||
public int BatchQuantityValidationTimeoutMs { get; set; } = 15000;
|
||
|
||
/// <summary>
|
||
/// 是否启用数量校验统计。
|
||
/// </summary>
|
||
public bool EnableQuantityValidationStatistics { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 数量校验统计数据保留天数。
|
||
/// </summary>
|
||
public int QuantityValidationStatisticsRetentionDays { get; set; } = 30;
|
||
|
||
/// <summary>
|
||
/// 精确数量校验容差。
|
||
/// </summary>
|
||
public int ExactQuantityTolerance { get; set; } = 0;
|
||
|
||
/// <summary>
|
||
/// 最少数量校验容差。
|
||
/// </summary>
|
||
public int MinimumQuantityTolerance { get; set; } = 0;
|
||
|
||
/// <summary>
|
||
/// 范围数量校验容差。
|
||
/// </summary>
|
||
public int RangeQuantityTolerance { get; set; } = 0;
|
||
|
||
/// <summary>
|
||
/// 唯一数量校验容差。
|
||
/// </summary>
|
||
public int UniqueQuantityTolerance { get; set; } = 0;
|
||
|
||
/// <summary>
|
||
/// 是否启用数量校验规则优先级。
|
||
/// </summary>
|
||
public bool EnableQuantityValidationRulePriority { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 数量校验规则默认优先级。
|
||
/// </summary>
|
||
public int DefaultQuantityValidationRulePriority { get; set; } = 1;
|
||
|
||
/// <summary>
|
||
/// 是否启用数量校验错误恢复。
|
||
/// </summary>
|
||
public bool EnableQuantityValidationErrorRecovery { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 数量校验错误重试次数。
|
||
/// </summary>
|
||
public int QuantityValidationErrorRetryCount { get; set; } = 3;
|
||
|
||
/// <summary>
|
||
/// 数量校验错误重试间隔(毫秒)。
|
||
/// </summary>
|
||
public int QuantityValidationErrorRetryIntervalMs { get; set; } = 1000;
|
||
|
||
/// <summary>
|
||
/// 是否启用数量校验性能监控。
|
||
/// </summary>
|
||
public bool EnableQuantityValidationPerformanceMonitoring { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 数量校验性能监控阈值(毫秒)。
|
||
/// </summary>
|
||
public double QuantityValidationPerformanceThresholdMs { get; set; } = 100.0;
|
||
|
||
/// <summary>
|
||
/// 是否启用数量校验并发处理。
|
||
/// </summary>
|
||
public bool EnableQuantityValidationConcurrentProcessing { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 数量校验并发处理最大线程数。
|
||
/// </summary>
|
||
public int QuantityValidationConcurrentMaxThreads { get; set; } = 4;
|
||
|
||
/// <summary>
|
||
/// 是否启用数量校验内存优化。
|
||
/// </summary>
|
||
public bool EnableQuantityValidationMemoryOptimization { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 数量校验内存优化阈值(MB)。
|
||
/// </summary>
|
||
public double QuantityValidationMemoryOptimizationThresholdMb { get; set; } = 100.0;
|
||
|
||
// === 位置校验配置 ===
|
||
|
||
/// <summary>
|
||
/// 位置校验置信度阈值。
|
||
/// </summary>
|
||
public double PositionValidationConfidenceThreshold { get; set; } = 0.8;
|
||
|
||
/// <summary>
|
||
/// 最大位置校验历史记录数量。
|
||
/// </summary>
|
||
public int MaxPositionValidationHistoryCount { get; set; } = 10000;
|
||
|
||
/// <summary>
|
||
/// 是否启用位置校验缓存。
|
||
/// </summary>
|
||
public bool EnablePositionValidationCache { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 位置校验缓存过期时间(分钟)。
|
||
/// </summary>
|
||
public int PositionValidationCacheExpirationMinutes { get; set; } = 30;
|
||
|
||
/// <summary>
|
||
/// 最大位置校验缓存大小。
|
||
/// </summary>
|
||
public int MaxPositionValidationCacheSize { get; set; } = 5000;
|
||
|
||
/// <summary>
|
||
/// 是否启用批量位置校验。
|
||
/// </summary>
|
||
public bool EnableBatchPositionValidation { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 批量位置校验批次大小。
|
||
/// </summary>
|
||
public int BatchPositionValidationSize { get; set; } = 50;
|
||
|
||
/// <summary>
|
||
/// 位置校验超时时间(毫秒)。
|
||
/// </summary>
|
||
public int PositionValidationTimeoutMs { get; set; } = 3000;
|
||
|
||
/// <summary>
|
||
/// 批量位置校验超时时间(毫秒)。
|
||
/// </summary>
|
||
public int BatchPositionValidationTimeoutMs { get; set; } = 15000;
|
||
|
||
/// <summary>
|
||
/// 是否启用位置校验统计。
|
||
/// </summary>
|
||
public bool EnablePositionValidationStatistics { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 位置校验统计数据保留天数。
|
||
/// </summary>
|
||
public int PositionValidationStatisticsRetentionDays { get; set; } = 30;
|
||
|
||
/// <summary>
|
||
/// 槽位校验位置容差。
|
||
/// </summary>
|
||
public double SlotValidationPositionTolerance { get; set; } = 10.0;
|
||
|
||
/// <summary>
|
||
/// 槽位校验大小容差。
|
||
/// </summary>
|
||
public double SlotValidationSizeTolerance { get; set; } = 0.1;
|
||
|
||
/// <summary>
|
||
/// 重叠率校验默认阈值。
|
||
/// </summary>
|
||
public double DefaultOverlapRatioThreshold { get; set; } = 0.2;
|
||
|
||
/// <summary>
|
||
/// 中心点校验默认容差。
|
||
/// </summary>
|
||
public double CenterPointValidationDefaultTolerance { get; set; } = 15.0;
|
||
|
||
/// <summary>
|
||
/// 边界框校验默认容差。
|
||
/// </summary>
|
||
public double BoundingBoxValidationDefaultTolerance { get; set; } = 10.0;
|
||
|
||
/// <summary>
|
||
/// 角度校验默认容差(度)。
|
||
/// </summary>
|
||
public double AngleValidationDefaultTolerance { get; set; } = 5.0;
|
||
|
||
/// <summary>
|
||
/// 是否启用位置校验规则优先级。
|
||
/// </summary>
|
||
public bool EnablePositionValidationRulePriority { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 位置校验规则默认优先级。
|
||
/// </summary>
|
||
public int DefaultPositionValidationRulePriority { get; set; } = 1;
|
||
|
||
/// <summary>
|
||
/// 是否启用位置校验错误恢复。
|
||
/// </summary>
|
||
public bool EnablePositionValidationErrorRecovery { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 位置校验错误重试次数。
|
||
/// </summary>
|
||
public int PositionValidationErrorRetryCount { get; set; } = 3;
|
||
|
||
/// <summary>
|
||
/// 位置校验错误重试间隔(毫秒)。
|
||
/// </summary>
|
||
public int PositionValidationErrorRetryIntervalMs { get; set; } = 1000;
|
||
|
||
/// <summary>
|
||
/// 是否启用位置校验性能监控。
|
||
/// </summary>
|
||
public bool EnablePositionValidationPerformanceMonitoring { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 位置校验性能监控阈值(毫秒)。
|
||
/// </summary>
|
||
public double PositionValidationPerformanceThresholdMs { get; set; } = 100.0;
|
||
|
||
/// <summary>
|
||
/// 是否启用位置校验并发处理。
|
||
/// </summary>
|
||
public bool EnablePositionValidationConcurrentProcessing { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 位置校验并发处理最大线程数。
|
||
/// </summary>
|
||
public int PositionValidationConcurrentMaxThreads { get; set; } = 4;
|
||
|
||
/// <summary>
|
||
/// 是否启用位置校验内存优化。
|
||
/// </summary>
|
||
public bool EnablePositionValidationMemoryOptimization { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 位置校验内存优化阈值(MB)。
|
||
/// </summary>
|
||
public double PositionValidationMemoryOptimizationThresholdMb { get; set; } = 100.0;
|
||
|
||
/// <summary>
|
||
/// 几何特征计算超时时间(毫秒)。
|
||
/// </summary>
|
||
public int GeometricFeaturesCalculationTimeoutMs { get; set; } = 5000;
|
||
|
||
/// <summary>
|
||
/// 是否启用几何特征缓存。
|
||
/// </summary>
|
||
public bool EnableGeometricFeaturesCache { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 几何特征缓存过期时间(分钟)。
|
||
/// </summary>
|
||
public int GeometricFeaturesCacheExpirationMinutes { get; set; } = 60;
|
||
|
||
/// <summary>
|
||
/// 最大几何特征缓存大小。
|
||
/// </summary>
|
||
public int MaxGeometricFeaturesCacheSize { get; set; } = 2000;
|
||
|
||
/// <summary>
|
||
/// 中心点密度计算半径。
|
||
/// </summary>
|
||
public double CenterPointDensityCalculationRadius { get; set; } = 100.0;
|
||
|
||
/// <summary>
|
||
/// 重叠率分布区间数量。
|
||
/// </summary>
|
||
public int OverlapRatioDistributionBucketCount { get; set; } = 10;
|
||
|
||
/// <summary>
|
||
/// 是否启用位置校验结果持久化。
|
||
/// </summary>
|
||
public bool EnablePositionValidationResultPersistence { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 位置校验结果持久化保留天数。
|
||
/// </summary>
|
||
public int PositionValidationResultPersistenceRetentionDays { get; set; } = 90;
|
||
|
||
/// <summary>
|
||
/// 是否启用位置校验实时监控。
|
||
/// </summary>
|
||
public bool EnablePositionValidationRealTimeMonitoring { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 位置校验实时监控采样率。
|
||
/// </summary>
|
||
public double PositionValidationRealTimeMonitoringSamplingRate { get; set; } = 0.1;
|
||
|
||
/// <summary>
|
||
/// 是否启用位置校验异常检测。
|
||
/// </summary>
|
||
public bool EnablePositionValidationAnomalyDetection { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 位置校验异常检测阈值。
|
||
/// </summary>
|
||
public double PositionValidationAnomalyDetectionThreshold { get; set; } = 2.0;
|
||
|
||
/// <summary>
|
||
/// 是否启用位置校验趋势分析。
|
||
/// </summary>
|
||
public bool EnablePositionValidationTrendAnalysis { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 位置校验趋势分析窗口大小。
|
||
/// </summary>
|
||
public int PositionValidationTrendAnalysisWindowSize { get; set; } = 100;
|
||
|
||
// === 到位判定配置 ===
|
||
|
||
/// <summary>
|
||
/// 到位判定置信度阈值。
|
||
/// </summary>
|
||
public double PlacementJudgmentConfidenceThreshold { get; set; } = 0.7;
|
||
|
||
/// <summary>
|
||
/// 最大到位判定历史记录数量。
|
||
/// </summary>
|
||
public int MaxPlacementJudgmentHistoryCount { get; set; } = 10000;
|
||
|
||
/// <summary>
|
||
/// 是否启用到位判定缓存。
|
||
/// </summary>
|
||
public bool EnablePlacementJudgmentCache { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 到位判定缓存过期时间(分钟)。
|
||
/// </summary>
|
||
public int PlacementJudgmentCacheExpirationMinutes { get; set; } = 30;
|
||
|
||
/// <summary>
|
||
/// 最大到位判定缓存大小。
|
||
/// </summary>
|
||
public int MaxPlacementJudgmentCacheSize { get; set; } = 5000;
|
||
|
||
/// <summary>
|
||
/// 是否启用批量到位判定。
|
||
/// </summary>
|
||
public bool EnableBatchPlacementJudgment { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 批量到位判定批次大小。
|
||
/// </summary>
|
||
public int BatchPlacementJudgmentSize { get; set; } = 50;
|
||
|
||
/// <summary>
|
||
/// 到位判定超时时间(毫秒)。
|
||
/// </summary>
|
||
public int PlacementJudgmentTimeoutMs { get; set; } = 3000;
|
||
|
||
/// <summary>
|
||
/// 批量到位判定超时时间(毫秒)。
|
||
/// </summary>
|
||
public int BatchPlacementJudgmentTimeoutMs { get; set; } = 15000;
|
||
|
||
/// <summary>
|
||
/// 是否启用到位判定统计。
|
||
/// </summary>
|
||
public bool EnablePlacementJudgmentStatistics { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 到位判定统计数据保留天数。
|
||
/// </summary>
|
||
public int PlacementJudgmentStatisticsRetentionDays { get; set; } = 30;
|
||
|
||
/// <summary>
|
||
/// 默认面积容差(百分比)。
|
||
/// </summary>
|
||
public double DefaultAreaTolerance { get; set; } = 0.15;
|
||
|
||
/// <summary>
|
||
/// 默认位置容差。
|
||
/// </summary>
|
||
public double DefaultPositionTolerance { get; set; } = 15.0;
|
||
|
||
/// <summary>
|
||
/// 默认稳定性阈值。
|
||
/// </summary>
|
||
public double DefaultStabilityThreshold { get; set; } = 0.8;
|
||
|
||
/// <summary>
|
||
/// 默认稳定帧窗口大小。
|
||
/// </summary>
|
||
public int DefaultStabilityWindowSize { get; set; } = 10;
|
||
|
||
/// <summary>
|
||
/// 默认复合判定策略。
|
||
/// </summary>
|
||
public CompositeJudgmentStrategy DefaultCompositeStrategy { get; set; } = CompositeJudgmentStrategy.WeightedAverage;
|
||
|
||
/// <summary>
|
||
/// 默认面积权重。
|
||
/// </summary>
|
||
public double DefaultAreaWeight { get; set; } = 0.3;
|
||
|
||
/// <summary>
|
||
/// 默认位置权重。
|
||
/// </summary>
|
||
public double DefaultPositionWeight { get; set; } = 0.4;
|
||
|
||
/// <summary>
|
||
/// 默认稳定性权重。
|
||
/// </summary>
|
||
public double DefaultStabilityWeight { get; set; } = 0.3;
|
||
|
||
/// <summary>
|
||
/// 是否启用到位判定规则优先级。
|
||
/// </summary>
|
||
public bool EnablePlacementJudgmentRulePriority { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 到位判定规则默认优先级。
|
||
/// </summary>
|
||
public int DefaultPlacementJudgmentRulePriority { get; set; } = 1;
|
||
|
||
/// <summary>
|
||
/// 是否启用到位判定错误恢复。
|
||
/// </summary>
|
||
public bool EnablePlacementJudgmentErrorRecovery { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 到位判定错误重试次数。
|
||
/// </summary>
|
||
public int PlacementJudgmentErrorRetryCount { get; set; } = 3;
|
||
|
||
/// <summary>
|
||
/// 到位判定错误重试间隔(毫秒)。
|
||
/// </summary>
|
||
public int PlacementJudgmentErrorRetryIntervalMs { get; set; } = 1000;
|
||
|
||
/// <summary>
|
||
/// 是否启用到位判定性能监控。
|
||
/// </summary>
|
||
public bool EnablePlacementJudgmentPerformanceMonitoring { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 到位判定性能监控阈值(毫秒)。
|
||
/// </summary>
|
||
public double PlacementJudgmentPerformanceThresholdMs { get; set; } = 100.0;
|
||
|
||
/// <summary>
|
||
/// 是否启用到位判定并发处理。
|
||
/// </summary>
|
||
public bool EnablePlacementJudgmentConcurrentProcessing { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 到位判定并发处理最大线程数。
|
||
/// </summary>
|
||
public int PlacementJudgmentConcurrentMaxThreads { get; set; } = 4;
|
||
|
||
/// <summary>
|
||
/// 是否启用到位判定内存优化。
|
||
/// </summary>
|
||
public bool EnablePlacementJudgmentMemoryOptimization { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 到位判定内存优化阈值(MB)。
|
||
/// </summary>
|
||
public double PlacementJudgmentMemoryOptimizationThresholdMb { get; set; } = 100.0;
|
||
|
||
/// <summary>
|
||
/// 稳定性计算超时时间(毫秒)。
|
||
/// </summary>
|
||
public int StabilityCalculationTimeoutMs { get; set; } = 5000;
|
||
|
||
/// <summary>
|
||
/// 是否启用稳定性计算缓存。
|
||
/// </summary>
|
||
public bool EnableStabilityCalculationCache { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 稳定性计算缓存过期时间(分钟)。
|
||
/// </summary>
|
||
public int StabilityCalculationCacheExpirationMinutes { get; set; } = 60;
|
||
|
||
/// <summary>
|
||
/// 最大稳定性计算缓存大小。
|
||
/// </summary>
|
||
public int MaxStabilityCalculationCacheSize { get; set; } = 2000;
|
||
|
||
/// <summary>
|
||
/// 复合判定最小通过条件。
|
||
/// </summary>
|
||
public int CompositeJudgmentMinimumPassConditions { get; set; } = 2;
|
||
|
||
/// <summary>
|
||
/// 复合判定加权平均阈值。
|
||
/// </summary>
|
||
public double CompositeJudgmentWeightedAverageThreshold { get; set; } = 0.7;
|
||
|
||
/// <summary>
|
||
/// 是否启用到位判定结果持久化。
|
||
/// </summary>
|
||
public bool EnablePlacementJudgmentResultPersistence { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 到位判定结果持久化保留天数。
|
||
/// </summary>
|
||
public int PlacementJudgmentResultPersistenceRetentionDays { get; set; } = 90;
|
||
|
||
/// <summary>
|
||
/// 是否启用到位判定实时监控。
|
||
/// </summary>
|
||
public bool EnablePlacementJudgmentRealTimeMonitoring { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 到位判定实时监控采样率。
|
||
/// </summary>
|
||
public double PlacementJudgmentRealTimeMonitoringSamplingRate { get; set; } = 0.1;
|
||
|
||
/// <summary>
|
||
/// 是否启用到位判定异常检测。
|
||
/// </summary>
|
||
public bool EnablePlacementJudgmentAnomalyDetection { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 到位判定异常检测阈值。
|
||
/// </summary>
|
||
public double PlacementJudgmentAnomalyDetectionThreshold { get; set; } = 2.0;
|
||
|
||
/// <summary>
|
||
/// 是否启用到位判定趋势分析。
|
||
/// </summary>
|
||
public bool EnablePlacementJudgmentTrendAnalysis { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 到位判定趋势分析窗口大小。
|
||
/// </summary>
|
||
public int PlacementJudgmentTrendAnalysisWindowSize { get; set; } = 100;
|
||
|
||
// === 层级完成判定配置 ===
|
||
|
||
/// <summary>
|
||
/// 层级完成判定置信度阈值。
|
||
/// </summary>
|
||
public double LayerCompletionConfidenceThreshold { get; set; } = 0.7;
|
||
|
||
/// <summary>
|
||
/// 最大层级完成判定历史记录数量。
|
||
/// </summary>
|
||
public int MaxLayerCompletionHistoryCount { get; set; } = 10000;
|
||
|
||
/// <summary>
|
||
/// 是否启用层级完成判定缓存。
|
||
/// </summary>
|
||
public bool EnableLayerCompletionCache { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 层级完成判定缓存过期时间(分钟)。
|
||
/// </summary>
|
||
public int LayerCompletionCacheExpirationMinutes { get; set; } = 30;
|
||
|
||
/// <summary>
|
||
/// 最大层级完成判定缓存大小。
|
||
/// </summary>
|
||
public int MaxLayerCompletionCacheSize { get; set; } = 5000;
|
||
|
||
/// <summary>
|
||
/// 是否启用批量层级完成判定。
|
||
/// </summary>
|
||
public bool EnableBatchLayerCompletion { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 批量层级完成判定批次大小。
|
||
/// </summary>
|
||
public int BatchLayerCompletionSize { get; set; } = 50;
|
||
|
||
/// <summary>
|
||
/// 层级完成判定超时时间(毫秒)。
|
||
/// </summary>
|
||
public int LayerCompletionTimeoutMs { get; set; } = 3000;
|
||
|
||
/// <summary>
|
||
/// 批量层级完成判定超时时间(毫秒)。
|
||
/// </summary>
|
||
public int BatchLayerCompletionTimeoutMs { get; set; } = 15000;
|
||
|
||
/// <summary>
|
||
/// 是否启用层级完成判定统计。
|
||
/// </summary>
|
||
public bool EnableLayerCompletionStatistics { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 层级完成判定统计数据保留天数。
|
||
/// </summary>
|
||
public int LayerCompletionStatisticsRetentionDays { get; set; } = 30;
|
||
|
||
/// <summary>
|
||
/// 必装部件完成阈值(百分比)。
|
||
/// </summary>
|
||
public double RequiredPartsCompletionThreshold { get; set; } = 100.0;
|
||
|
||
/// <summary>
|
||
/// 关键部件完成阈值(百分比)。
|
||
/// </summary>
|
||
public double CriticalPartsCompletionThreshold { get; set; } = 100.0;
|
||
|
||
/// <summary>
|
||
/// 稳定性完成阈值(百分比)。
|
||
/// </summary>
|
||
public double StabilityCompletionThreshold { get; set; } = 80.0;
|
||
|
||
/// <summary>
|
||
/// 禁装检查阈值(数量)。
|
||
/// </summary>
|
||
public int ForbiddenCheckThreshold { get; set; } = 0;
|
||
|
||
/// <summary>
|
||
/// 是否启用硬条件优先级。
|
||
/// </summary>
|
||
public bool EnableHardConditionPriority { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 硬条件默认优先级。
|
||
/// </summary>
|
||
public int DefaultHardConditionPriority { get; set; } = 1;
|
||
|
||
/// <summary>
|
||
/// 是否启用层级完成判定错误恢复。
|
||
/// </summary>
|
||
public bool EnableLayerCompletionErrorRecovery { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 层级完成判定错误重试次数。
|
||
/// </summary>
|
||
public int LayerCompletionErrorRetryCount { get; set; } = 3;
|
||
|
||
/// <summary>
|
||
/// 层级完成判定错误重试间隔(毫秒)。
|
||
/// </summary>
|
||
public int LayerCompletionErrorRetryIntervalMs { get; set; } = 1000;
|
||
|
||
/// <summary>
|
||
/// 是否启用层级完成判定性能监控。
|
||
/// </summary>
|
||
public bool EnableLayerCompletionPerformanceMonitoring { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 层级完成判定性能监控阈值(毫秒)。
|
||
/// </summary>
|
||
public double LayerCompletionPerformanceThresholdMs { get; set; } = 100.0;
|
||
|
||
/// <summary>
|
||
/// 是否启用层级完成判定并发处理。
|
||
/// </summary>
|
||
public bool EnableLayerCompletionConcurrentProcessing { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 层级完成判定并发处理最大线程数。
|
||
/// </summary>
|
||
public int LayerCompletionConcurrentMaxThreads { get; set; } = 4;
|
||
|
||
/// <summary>
|
||
/// 是否启用层级完成判定内存优化。
|
||
/// </summary>
|
||
public bool EnableLayerCompletionMemoryOptimization { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 层级完成判定内存优化阈值(MB)。
|
||
/// </summary>
|
||
public double LayerCompletionMemoryOptimizationThresholdMb { get; set; } = 100.0;
|
||
|
||
/// <summary>
|
||
/// 层级完成计算超时时间(毫秒)。
|
||
/// </summary>
|
||
public int LayerCompletionCalculationTimeoutMs { get; set; } = 5000;
|
||
|
||
/// <summary>
|
||
/// 是否启用层级完成计算缓存。
|
||
/// </summary>
|
||
public bool EnableLayerCompletionCalculationCache { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 层级完成计算缓存过期时间(分钟)。
|
||
/// </summary>
|
||
public int LayerCompletionCalculationCacheExpirationMinutes { get; set; } = 60;
|
||
|
||
/// <summary>
|
||
/// 最大层级完成计算缓存大小。
|
||
/// </summary>
|
||
public int MaxLayerCompletionCalculationCacheSize { get; set; } = 2000;
|
||
|
||
/// <summary>
|
||
/// 层级完成质量优秀阈值。
|
||
/// </summary>
|
||
public double LayerCompletionExcellentThreshold { get; set; } = 90.0;
|
||
|
||
/// <summary>
|
||
/// 层级完成质量良好阈值。
|
||
/// </summary>
|
||
public double LayerCompletionGoodThreshold { get; set; } = 80.0;
|
||
|
||
/// <summary>
|
||
/// 层级完成质量一般阈值。
|
||
/// </summary>
|
||
public double LayerCompletionFairThreshold { get; set; } = 70.0;
|
||
|
||
/// <summary>
|
||
/// 是否启用层级完成判定结果持久化。
|
||
/// </summary>
|
||
public bool EnableLayerCompletionResultPersistence { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 层级完成判定结果持久化保留天数。
|
||
/// </summary>
|
||
public int LayerCompletionResultPersistenceRetentionDays { get; set; } = 90;
|
||
|
||
/// <summary>
|
||
/// 是否启用层级完成判定实时监控。
|
||
/// </summary>
|
||
public bool EnableLayerCompletionRealTimeMonitoring { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 层级完成判定实时监控采样率。
|
||
/// </summary>
|
||
public double LayerCompletionRealTimeMonitoringSamplingRate { get; set; } = 0.1;
|
||
|
||
/// <summary>
|
||
/// 是否启用层级完成判定异常检测。
|
||
/// </summary>
|
||
public bool EnableLayerCompletionAnomalyDetection { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 层级完成判定异常检测阈值。
|
||
/// </summary>
|
||
public double LayerCompletionAnomalyDetectionThreshold { get; set; } = 2.0;
|
||
|
||
/// <summary>
|
||
/// 是否启用层级完成判定趋势分析。
|
||
/// </summary>
|
||
public bool EnableLayerCompletionTrendAnalysis { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 层级完成判定趋势分析窗口大小。
|
||
/// </summary>
|
||
public int LayerCompletionTrendAnalysisWindowSize { get; set; } = 100;
|
||
|
||
// === 切层保护配置 ===
|
||
|
||
/// <summary>
|
||
/// 是否启用切层保护。
|
||
/// </summary>
|
||
public bool EnableLayerTransitionProtection { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 默认切层保护策略。
|
||
/// </summary>
|
||
public LayerTransitionProtectionStrategy DefaultLayerTransitionProtectionStrategy { get; set; } = LayerTransitionProtectionStrategy.Comprehensive;
|
||
|
||
/// <summary>
|
||
/// 默认最小停留时间(秒)。
|
||
/// </summary>
|
||
public int DefaultMinimumStayTimeSeconds { get; set; } = 10;
|
||
|
||
/// <summary>
|
||
/// 默认最大停留时间(秒)。
|
||
/// </summary>
|
||
public int DefaultMaximumStayTimeSeconds { get; set; } = 300;
|
||
|
||
/// <summary>
|
||
/// 默认完成度阈值(百分比)。
|
||
/// </summary>
|
||
public double DefaultCompletionThreshold { get; set; } = 90.0;
|
||
|
||
/// <summary>
|
||
/// 是否允许强制切层。
|
||
/// </summary>
|
||
public bool AllowForceLayerTransition { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 强制切层所需权限。
|
||
/// </summary>
|
||
public string RequiredPermissionForForceTransition { get; set; } = "supervisor";
|
||
|
||
/// <summary>
|
||
/// 是否启用自动回滚。
|
||
/// </summary>
|
||
public bool EnableAutoRollback { get; set; } = false;
|
||
|
||
/// <summary>
|
||
/// 自动回滚检查间隔(秒)。
|
||
/// </summary>
|
||
public int AutoRollbackCheckIntervalSeconds { get; set; } = 30;
|
||
|
||
/// <summary>
|
||
/// 自动回滚连续失败阈值。
|
||
/// </summary>
|
||
public int AutoRollbackConsecutiveFailuresThreshold { get; set; } = 3;
|
||
|
||
/// <summary>
|
||
/// 最大切层转换历史记录数量。
|
||
/// </summary>
|
||
public int MaxLayerTransitionHistoryCount { get; set; } = 10000;
|
||
|
||
/// <summary>
|
||
/// 是否启用切层转换缓存。
|
||
/// </summary>
|
||
public bool EnableLayerTransitionCache { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 切层转换缓存过期时间(分钟)。
|
||
/// </summary>
|
||
public int LayerTransitionCacheExpirationMinutes { get; set; } = 30;
|
||
|
||
/// <summary>
|
||
/// 最大切层转换缓存大小。
|
||
/// </summary>
|
||
public int MaxLayerTransitionCacheSize { get; set; } = 5000;
|
||
|
||
/// <summary>
|
||
/// 切层转换超时时间(毫秒)。
|
||
/// </summary>
|
||
public int LayerTransitionTimeoutMs { get; set; } = 5000;
|
||
|
||
/// <summary>
|
||
/// 是否启用切层转换统计。
|
||
/// </summary>
|
||
public bool EnableLayerTransitionStatistics { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 切层转换统计数据保留天数。
|
||
/// </summary>
|
||
public int LayerTransitionStatisticsRetentionDays { get; set; } = 30;
|
||
|
||
/// <summary>
|
||
/// 是否启用切层保护优先级。
|
||
/// </summary>
|
||
public bool EnableLayerTransitionProtectionPriority { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 切层保护默认优先级。
|
||
/// </summary>
|
||
public int DefaultLayerTransitionProtectionPriority { get; set; } = 1;
|
||
|
||
/// <summary>
|
||
/// 是否启用切层转换错误恢复。
|
||
/// </summary>
|
||
public bool EnableLayerTransitionErrorRecovery { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 切层转换错误重试次数。
|
||
/// </summary>
|
||
public int LayerTransitionErrorRetryCount { get; set; } = 3;
|
||
|
||
/// <summary>
|
||
/// 切层转换错误重试间隔(毫秒)。
|
||
/// </summary>
|
||
public int LayerTransitionErrorRetryIntervalMs { get; set; } = 1000;
|
||
|
||
/// <summary>
|
||
/// 是否启用切层转换性能监控。
|
||
/// </summary>
|
||
public bool EnableLayerTransitionPerformanceMonitoring { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 切层转换性能监控阈值(毫秒)。
|
||
/// </summary>
|
||
public double LayerTransitionPerformanceThresholdMs { get; set; } = 100.0;
|
||
|
||
/// <summary>
|
||
/// 是否启用切层转换并发处理。
|
||
/// </summary>
|
||
public bool EnableLayerTransitionConcurrentProcessing { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 切层转换并发处理最大线程数。
|
||
/// </summary>
|
||
public int LayerTransitionConcurrentMaxThreads { get; set; } = 4;
|
||
|
||
/// <summary>
|
||
/// 是否启用切层转换内存优化。
|
||
/// </summary>
|
||
public bool EnableLayerTransitionMemoryOptimization { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 切层转换内存优化阈值(MB)。
|
||
/// </summary>
|
||
public double LayerTransitionMemoryOptimizationThresholdMb { get; set; } = 100.0;
|
||
|
||
/// <summary>
|
||
/// 切层保护检查超时时间(毫秒)。
|
||
/// </summary>
|
||
public int LayerTransitionProtectionCheckTimeoutMs { get; set; } = 3000;
|
||
|
||
/// <summary>
|
||
/// 是否启用切层保护检查缓存。
|
||
/// </summary>
|
||
public bool EnableLayerTransitionProtectionCheckCache { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 切层保护检查缓存过期时间(分钟)。
|
||
/// </summary>
|
||
public int LayerTransitionProtectionCheckCacheExpirationMinutes { get; set; } = 15;
|
||
|
||
/// <summary>
|
||
/// 最大切层保护检查缓存大小。
|
||
/// </summary>
|
||
public int MaxLayerTransitionProtectionCheckCacheSize { get; set; } = 2000;
|
||
|
||
/// <summary>
|
||
/// 切层转换建议等待时间上限(秒)。
|
||
/// </summary>
|
||
public int LayerTransitionSuggestedWaitTimeMaxSeconds { get; set; } = 300;
|
||
|
||
/// <summary>
|
||
/// 是否启用切层转换结果持久化。
|
||
/// </summary>
|
||
public bool EnableLayerTransitionResultPersistence { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 切层转换结果持久化保留天数。
|
||
/// </summary>
|
||
public int LayerTransitionResultPersistenceRetentionDays { get; set; } = 90;
|
||
|
||
/// <summary>
|
||
/// 是否启用切层转换实时监控。
|
||
/// </summary>
|
||
public bool EnableLayerTransitionRealTimeMonitoring { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 切层转换实时监控采样率。
|
||
/// </summary>
|
||
public double LayerTransitionRealTimeMonitoringSamplingRate { get; set; } = 0.1;
|
||
|
||
/// <summary>
|
||
/// 是否启用切层转换异常检测。
|
||
/// </summary>
|
||
public bool EnableLayerTransitionAnomalyDetection { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 切层转换异常检测阈值。
|
||
/// </summary>
|
||
public double LayerTransitionAnomalyDetectionThreshold { get; set; } = 2.0;
|
||
|
||
/// <summary>
|
||
/// 是否启用切层转换趋势分析。
|
||
/// </summary>
|
||
public bool EnableLayerTransitionTrendAnalysis { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 切层转换趋势分析窗口大小。
|
||
/// </summary>
|
||
public int LayerTransitionTrendAnalysisWindowSize { get; set; } = 100;
|
||
|
||
// === 整机完成判定配置 ===
|
||
|
||
/// <summary>
|
||
/// 是否启用整机完成判定。
|
||
/// </summary>
|
||
public bool EnableFinalJudgment { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 整机完成判定通过阈值。
|
||
/// </summary>
|
||
public double FinalJudgmentPassThreshold { get; set; } = 80.0;
|
||
|
||
/// <summary>
|
||
/// 最大整机完成判定历史记录数量。
|
||
/// </summary>
|
||
public int MaxFinalJudgmentHistoryCount { get; set; } = 10000;
|
||
|
||
/// <summary>
|
||
/// 是否启用整机完成判定缓存。
|
||
/// </summary>
|
||
public bool EnableFinalJudgmentCache { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 整机完成判定缓存过期时间(分钟)。
|
||
/// </summary>
|
||
public int FinalJudgmentCacheExpirationMinutes { get; set; } = 30;
|
||
|
||
/// <summary>
|
||
/// 最大整机完成判定缓存大小。
|
||
/// </summary>
|
||
public int MaxFinalJudgmentCacheSize { get; set; } = 5000;
|
||
|
||
/// <summary>
|
||
/// 是否启用批量整机完成判定。
|
||
/// </summary>
|
||
public bool EnableBatchFinalJudgment { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 批量整机完成判定批次大小。
|
||
/// </summary>
|
||
public int BatchFinalJudgmentSize { get; set; } = 20;
|
||
|
||
/// <summary>
|
||
/// 整机完成判定超时时间(毫秒)。
|
||
/// </summary>
|
||
public int FinalJudgmentTimeoutMs { get; set; } = 10000;
|
||
|
||
/// <summary>
|
||
/// 批量整机完成判定超时时间(毫秒)。
|
||
/// </summary>
|
||
public int BatchFinalJudgmentTimeoutMs { get; set; } = 60000;
|
||
|
||
/// <summary>
|
||
/// 是否启用整机完成判定统计。
|
||
/// </summary>
|
||
public bool EnableFinalJudgmentStatistics { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 整机完成判定统计数据保留天数。
|
||
/// </summary>
|
||
public int FinalJudgmentStatisticsRetentionDays { get; set; } = 90;
|
||
|
||
/// <summary>
|
||
/// 是否启用NG原因分析。
|
||
/// </summary>
|
||
public bool EnableNGCauseAnalysis { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// NG原因分析缓存过期时间(分钟)。
|
||
/// </summary>
|
||
public int NGCauseAnalysisCacheExpirationMinutes { get; set; } = 60;
|
||
|
||
/// <summary>
|
||
/// 热点NG原因数量。
|
||
/// </summary>
|
||
public int HotNGCauseCount { get; set; } = 10;
|
||
|
||
/// <summary>
|
||
/// 是否启用证据链生成。
|
||
/// </summary>
|
||
public bool EnableEvidenceChainGeneration { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 证据链完整性评分阈值。
|
||
/// </summary>
|
||
public double EvidenceChainCompletenessThreshold { get; set; } = 80.0;
|
||
|
||
/// <summary>
|
||
/// 证据链可信度评分阈值。
|
||
/// </summary>
|
||
public double EvidenceChainCredibilityThreshold { get; set; } = 85.0;
|
||
|
||
/// <summary>
|
||
/// 是否启用判定报告生成。
|
||
/// </summary>
|
||
public bool EnableJudgmentReportGeneration { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 默认报告格式。
|
||
/// </summary>
|
||
public ReportFormat DefaultReportFormat { get; set; } = ReportFormat.Text;
|
||
|
||
/// <summary>
|
||
/// 是否启用终判规则优先级。
|
||
/// </summary>
|
||
public bool EnableFinalRulePriority { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 终判规则默认优先级。
|
||
/// </summary>
|
||
public int DefaultFinalRulePriority { get; set; } = 1;
|
||
|
||
/// <summary>
|
||
/// 是否启用整机完成判定错误恢复。
|
||
/// </summary>
|
||
public bool EnableFinalJudgmentErrorRecovery { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 整机完成判定错误重试次数。
|
||
/// </summary>
|
||
public int FinalJudgmentErrorRetryCount { get; set; } = 3;
|
||
|
||
/// <summary>
|
||
/// 整机完成判定错误重试间隔(毫秒)。
|
||
/// </summary>
|
||
public int FinalJudgmentErrorRetryIntervalMs { get; set; } = 2000;
|
||
|
||
/// <summary>
|
||
/// 是否启用整机完成判定性能监控。
|
||
/// </summary>
|
||
public bool EnableFinalJudgmentPerformanceMonitoring { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 整机完成判定性能监控阈值(毫秒)。
|
||
/// </summary>
|
||
public double FinalJudgmentPerformanceThresholdMs { get; set; } = 5000.0;
|
||
|
||
/// <summary>
|
||
/// 是否启用整机完成判定并发处理。
|
||
/// </summary>
|
||
public bool EnableFinalJudgmentConcurrentProcessing { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 整机完成判定并发处理最大线程数。
|
||
/// </summary>
|
||
public int FinalJudgmentConcurrentMaxThreads { get; set; } = 2;
|
||
|
||
/// <summary>
|
||
/// 是否启用整机完成判定内存优化。
|
||
/// </summary>
|
||
public bool EnableFinalJudgmentMemoryOptimization { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 整机完成判定内存优化阈值(MB)。
|
||
/// </summary>
|
||
public double FinalJudgmentMemoryOptimizationThresholdMb { get; set; } = 200.0;
|
||
|
||
/// <summary>
|
||
/// 规则判定计算超时时间(毫秒)。
|
||
/// </summary>
|
||
public int RuleJudgmentCalculationTimeoutMs { get; set; } = 3000;
|
||
|
||
/// <summary>
|
||
/// 是否启用规则判定计算缓存。
|
||
/// </summary>
|
||
public bool EnableRuleJudgmentCalculationCache { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 规则判定计算缓存过期时间(分钟)。
|
||
/// </summary>
|
||
public int RuleJudgmentCalculationCacheExpirationMinutes { get; set; } = 30;
|
||
|
||
/// <summary>
|
||
/// 最大规则判定计算缓存大小。
|
||
/// </summary>
|
||
public int MaxRuleJudgmentCalculationCacheSize { get; set; } = 1000;
|
||
|
||
/// <summary>
|
||
/// 判定质量优秀阈值。
|
||
/// </summary>
|
||
public double JudgmentQualityExcellentThreshold { get; set; } = 95.0;
|
||
|
||
/// <summary>
|
||
/// 判定质量良好阈值。
|
||
/// </summary>
|
||
public double JudgmentQualityGoodThreshold { get; set; } = 85.0;
|
||
|
||
/// <summary>
|
||
/// 判定质量一般阈值。
|
||
/// </summary>
|
||
public double JudgmentQualityFairThreshold { get; set; } = 70.0;
|
||
|
||
/// <summary>
|
||
/// 判定质量较差阈值。
|
||
/// </summary>
|
||
public double JudgmentQualityPoorThreshold { get; set; } = 50.0;
|
||
|
||
/// <summary>
|
||
/// 是否启用整机完成判定结果持久化。
|
||
/// </summary>
|
||
public bool EnableFinalJudgmentResultPersistence { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 整机完成判定结果持久化保留天数。
|
||
/// </summary>
|
||
public int FinalJudgmentResultPersistenceRetentionDays { get; set; } = 180;
|
||
|
||
/// <summary>
|
||
/// 是否启用整机完成判定实时监控。
|
||
/// </summary>
|
||
public bool EnableFinalJudgmentRealTimeMonitoring { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 整机完成判定实时监控采样率。
|
||
/// </summary>
|
||
public double FinalJudgmentRealTimeMonitoringSamplingRate { get; set; } = 0.05;
|
||
|
||
/// <summary>
|
||
/// 是否启用整机完成判定异常检测。
|
||
/// </summary>
|
||
public bool EnableFinalJudgmentAnomalyDetection { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 整机完成判定异常检测阈值。
|
||
/// </summary>
|
||
public double FinalJudgmentAnomalyDetectionThreshold { get; set; } = 3.0;
|
||
|
||
/// <summary>
|
||
/// 是否启用整机完成判定趋势分析。
|
||
/// </summary>
|
||
public bool EnableFinalJudgmentTrendAnalysis { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 整机完成判定趋势分析窗口大小。
|
||
/// </summary>
|
||
public int FinalJudgmentTrendAnalysisWindowSize { get; set; } = 100;
|
||
|
||
// === 异常报警系统配置 ===
|
||
|
||
/// <summary>
|
||
/// 是否启用异常报警系统。
|
||
/// </summary>
|
||
public bool EnableAlarmSystem { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 最大报警栈大小。
|
||
/// </summary>
|
||
public int MaxAlarmStackSize { get; set; } = 1000;
|
||
|
||
/// <summary>
|
||
/// 是否启用报警缓存。
|
||
/// </summary>
|
||
public bool EnableAlarmCache { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 报警缓存过期时间(分钟)。
|
||
/// </summary>
|
||
public int AlarmCacheExpirationMinutes { get; set; } = 60;
|
||
|
||
/// <summary>
|
||
/// 最大报警缓存大小。
|
||
/// </summary>
|
||
public int MaxAlarmCacheSize { get; set; } = 5000;
|
||
|
||
/// <summary>
|
||
/// 报警触发超时时间(毫秒)。
|
||
/// </summary>
|
||
public int AlarmTriggerTimeoutMs { get; set; } = 3000;
|
||
|
||
/// <summary>
|
||
/// 是否启用批量报警操作。
|
||
/// </summary>
|
||
public bool EnableBatchAlarmOperations { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 批量报警操作最大批次大小。
|
||
/// </summary>
|
||
public int BatchAlarmOperationMaxSize { get; set; } = 50;
|
||
|
||
/// <summary>
|
||
/// 是否启用报警统计。
|
||
/// </summary>
|
||
public bool EnableAlarmStatistics { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 报警统计数据保留天数。
|
||
/// </summary>
|
||
public int AlarmStatisticsRetentionDays { get; set; } = 30;
|
||
|
||
/// <summary>
|
||
/// 是否启用报警规则优先级。
|
||
/// </summary>
|
||
public bool EnableAlarmRulePriority { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 报警规则默认优先级。
|
||
/// </summary>
|
||
public int DefaultAlarmRulePriority { get; set; } = 1;
|
||
|
||
/// <summary>
|
||
/// 是否启用报警自动清除。
|
||
/// </summary>
|
||
public bool EnableAlarmAutoClear { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 报警自动清除检查间隔(秒)。
|
||
/// </summary>
|
||
public int AlarmAutoClearCheckIntervalSeconds { get; set; } = 30;
|
||
|
||
/// <summary>
|
||
/// 默认报警自动清除时间(秒)。
|
||
/// </summary>
|
||
public int DefaultAlarmAutoClearSeconds { get; set; } = 300;
|
||
|
||
/// <summary>
|
||
/// 是否启用报警重复检测。
|
||
/// </summary>
|
||
public bool EnableAlarmDuplicateDetection { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 报警重复检测时间窗口(秒)。
|
||
/// </summary>
|
||
public int AlarmDuplicateDetectionTimeWindowSeconds { get; set; } = 60;
|
||
|
||
/// <summary>
|
||
/// 是否启用报警恢复状态管理。
|
||
/// </summary>
|
||
public bool EnableAlarmRecoveryStatus { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 报警恢复检查间隔(秒)。
|
||
/// </summary>
|
||
public int AlarmRecoveryCheckIntervalSeconds { get; set; } = 30;
|
||
|
||
/// <summary>
|
||
/// 是否启用报警条件检查。
|
||
/// </summary>
|
||
public bool EnableAlarmConditionCheck { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 报警条件检查超时时间(毫秒)。
|
||
/// </summary>
|
||
public int AlarmConditionCheckTimeoutMs { get; set; } = 5000;
|
||
|
||
/// <summary>
|
||
/// 是否启用报警条件检查缓存。
|
||
/// </summary>
|
||
public bool EnableAlarmConditionCheckCache { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 报警条件检查缓存过期时间(分钟)。
|
||
/// </summary>
|
||
public int AlarmConditionCheckCacheExpirationMinutes { get; set; } = 15;
|
||
|
||
/// <summary>
|
||
/// 最大报警条件检查缓存大小。
|
||
/// </summary>
|
||
public int MaxAlarmConditionCheckCacheSize { get; set; } = 1000;
|
||
|
||
/// <summary>
|
||
/// 是否启用报警错误恢复。
|
||
/// </summary>
|
||
public bool EnableAlarmErrorRecovery { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 报警错误重试次数。
|
||
/// </summary>
|
||
public int AlarmErrorRetryCount { get; set; } = 3;
|
||
|
||
/// <summary>
|
||
/// 报警错误重试间隔(毫秒)。
|
||
/// </summary>
|
||
public int AlarmErrorRetryIntervalMs { get; set; } = 1000;
|
||
|
||
/// <summary>
|
||
/// 是否启用报警性能监控。
|
||
/// </summary>
|
||
public bool EnableAlarmPerformanceMonitoring { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 报警性能监控阈值(毫秒)。
|
||
/// </summary>
|
||
public double AlarmPerformanceThresholdMs { get; set; } = 100.0;
|
||
|
||
/// <summary>
|
||
/// 是否启用报警并发处理。
|
||
/// </summary>
|
||
public bool EnableAlarmConcurrentProcessing { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 报警并发处理最大线程数。
|
||
/// </summary>
|
||
public int AlarmConcurrentMaxThreads { get; set; } = 4;
|
||
|
||
/// <summary>
|
||
/// 是否启用报警内存优化。
|
||
/// </summary>
|
||
public bool EnableAlarmMemoryOptimization { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 报警内存优化阈值(MB)。
|
||
/// </summary>
|
||
public double AlarmMemoryOptimizationThresholdMb { get; set; } = 100.0;
|
||
|
||
/// <summary>
|
||
/// 是否启用报警分级处理。
|
||
/// </summary>
|
||
public bool EnableAlarmLevelProcessing { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 不同级别报警的处理优先级映射。
|
||
/// </summary>
|
||
public Dictionary<OrpaonVision.Core.AlarmSystem.AlarmLevel, int> AlarmLevelPriorityMapping { get; set; } = new()
|
||
{
|
||
{ OrpaonVision.Core.AlarmSystem.AlarmLevel.Info, 4 },
|
||
{ OrpaonVision.Core.AlarmSystem.AlarmLevel.Warning, 3 },
|
||
{ OrpaonVision.Core.AlarmSystem.AlarmLevel.Error, 2 },
|
||
{ OrpaonVision.Core.AlarmSystem.AlarmLevel.Critical, 1 },
|
||
{ OrpaonVision.Core.AlarmSystem.AlarmLevel.Fatal, 0 }
|
||
};
|
||
|
||
/// <summary>
|
||
/// 是否启用报警类型过滤。
|
||
/// </summary>
|
||
public bool EnableAlarmTypeFiltering { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 启用的报警类型列表。
|
||
/// </summary>
|
||
public HashSet<OrpaonVision.Core.AlarmSystem.AlarmType> EnabledAlarmTypes { get; set; } = new()
|
||
{
|
||
OrpaonVision.Core.AlarmSystem.AlarmType.System,
|
||
OrpaonVision.Core.AlarmSystem.AlarmType.Equipment,
|
||
OrpaonVision.Core.AlarmSystem.AlarmType.Process,
|
||
OrpaonVision.Core.AlarmSystem.AlarmType.Quality,
|
||
OrpaonVision.Core.AlarmSystem.AlarmType.Safety,
|
||
OrpaonVision.Core.AlarmSystem.AlarmType.Performance
|
||
};
|
||
|
||
/// <summary>
|
||
/// 是否启用报警结果持久化。
|
||
/// </summary>
|
||
public bool EnableAlarmResultPersistence { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 报警结果持久化保留天数。
|
||
/// </summary>
|
||
public int AlarmResultPersistenceRetentionDays { get; set; } = 90;
|
||
|
||
/// <summary>
|
||
/// 是否启用报警实时监控。
|
||
/// </summary>
|
||
public bool EnableAlarmRealTimeMonitoring { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 报警实时监控采样率。
|
||
/// </summary>
|
||
public double AlarmRealTimeMonitoringSamplingRate { get; set; } = 0.1;
|
||
|
||
/// <summary>
|
||
/// 是否启用报警异常检测。
|
||
/// </summary>
|
||
public bool EnableAlarmAnomalyDetection { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 报警异常检测阈值。
|
||
/// </summary>
|
||
public double AlarmAnomalyDetectionThreshold { get; set; } = 2.0;
|
||
|
||
/// <summary>
|
||
/// 是否启用报警趋势分析。
|
||
/// </summary>
|
||
public bool EnableAlarmTrendAnalysis { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 报警趋势分析窗口大小。
|
||
/// </summary>
|
||
public int AlarmTrendAnalysisWindowSize { get; set; } = 100;
|
||
|
||
/// <summary>
|
||
/// 是否启用报警通知。
|
||
/// </summary>
|
||
public bool EnableAlarmNotification { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 报警通知方式。
|
||
/// </summary>
|
||
public HashSet<AlarmNotificationType> AlarmNotificationTypes { get; set; } = new()
|
||
{
|
||
AlarmNotificationType.UI,
|
||
AlarmNotificationType.Log,
|
||
AlarmNotificationType.Email
|
||
};
|
||
|
||
/// <summary>
|
||
/// 报警通知最小级别。
|
||
/// </summary>
|
||
public OrpaonVision.Core.AlarmSystem.AlarmLevel AlarmNotificationMinLevel { get; set; } = OrpaonVision.Core.AlarmSystem.AlarmLevel.Warning;
|
||
|
||
/// <summary>
|
||
/// 是否启用报警升级机制。
|
||
/// </summary>
|
||
public bool EnableAlarmEscalation { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 报警升级时间间隔(分钟)。
|
||
/// </summary>
|
||
public int AlarmEscalationIntervalMinutes { get; set; } = 30;
|
||
|
||
/// <summary>
|
||
/// 最大报警升级级别。
|
||
/// </summary>
|
||
public OrpaonVision.Core.AlarmSystem.AlarmLevel MaxAlarmEscalationLevel { get; set; } = OrpaonVision.Core.AlarmSystem.AlarmLevel.Fatal;
|
||
|
||
// === 统计口径配置 ===
|
||
|
||
/// <summary>
|
||
/// 是否启用统计服务。
|
||
/// </summary>
|
||
public bool EnableStatisticsService { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 是否启用统计缓存。
|
||
/// </summary>
|
||
public bool EnableStatisticsCache { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 统计缓存过期时间(分钟)。
|
||
/// </summary>
|
||
public int StatisticsCacheExpirationMinutes { get; set; } = 30;
|
||
|
||
/// <summary>
|
||
/// 最大统计缓存大小。
|
||
/// </summary>
|
||
public int MaxStatisticsCacheSize { get; set; } = 1000;
|
||
|
||
/// <summary>
|
||
/// 是否启用节拍统计。
|
||
/// </summary>
|
||
public bool EnableCycleTimeStatistics { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 节拍统计目标时间(秒)。
|
||
/// </summary>
|
||
public double CycleTimeTargetSeconds { get; set; } = 60.0;
|
||
|
||
/// <summary>
|
||
/// 节拍统计容差百分比。
|
||
/// </summary>
|
||
public double CycleTimeTolerancePercentage { get; set; } = 10.0;
|
||
|
||
/// <summary>
|
||
/// 是否启用班次统计。
|
||
/// </summary>
|
||
public bool EnableShiftStatistics { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 班次统计时长(小时)。
|
||
/// </summary>
|
||
public double ShiftStatisticsDurationHours { get; set; } = 8.0;
|
||
|
||
/// <summary>
|
||
/// 班次统计目标生产率。
|
||
/// </summary>
|
||
public int ShiftStatisticsTargetProductionRate { get; set; } = 100;
|
||
|
||
/// <summary>
|
||
/// 是否启用生产效率统计。
|
||
/// </summary>
|
||
public bool EnableProductionEfficiencyStatistics { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 生产效率统计默认粒度。
|
||
/// </summary>
|
||
public OrpaonVision.Core.Statistics.StatisticsGranularity ProductionEfficiencyDefaultGranularity { get; set; } = OrpaonVision.Core.Statistics.StatisticsGranularity.Hourly;
|
||
|
||
/// <summary>
|
||
/// 是否启用质量统计。
|
||
/// </summary>
|
||
public bool EnableQualityStatistics { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 质量统计目标合格率。
|
||
/// </summary>
|
||
public double QualityStatisticsTargetPassRate { get; set; } = 95.0;
|
||
|
||
/// <summary>
|
||
/// 是否启用设备利用率统计。
|
||
/// </summary>
|
||
public bool EnableEquipmentUtilizationStatistics { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 设备利用率统计目标利用率。
|
||
/// </summary>
|
||
public double EquipmentUtilizationTargetRate { get; set; } = 85.0;
|
||
|
||
/// <summary>
|
||
/// 是否启用综合报告。
|
||
/// </summary>
|
||
public bool EnableComprehensiveReport { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 综合报告默认类型。
|
||
/// </summary>
|
||
public ProductionReportType ComprehensiveReportDefaultType { get; set; } = ProductionReportType.Daily;
|
||
|
||
/// <summary>
|
||
/// 是否启用实时统计仪表板。
|
||
/// </summary>
|
||
public bool EnableRealTimeStatisticsDashboard { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 实时统计仪表板更新间隔(秒)。
|
||
/// </summary>
|
||
public int RealTimeStatisticsDashboardUpdateIntervalSeconds { get; set; } = 30;
|
||
|
||
/// <summary>
|
||
/// 是否启用历史趋势分析。
|
||
/// </summary>
|
||
public bool EnableHistoricalTrendAnalysis { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 历史趋势分析默认粒度。
|
||
/// </summary>
|
||
public OrpaonVision.Core.Statistics.StatisticsGranularity HistoricalTrendDefaultGranularity { get; set; } = OrpaonVision.Core.Statistics.StatisticsGranularity.Hourly;
|
||
|
||
/// <summary>
|
||
/// 是否启用统计配置管理。
|
||
/// </summary>
|
||
public bool EnableStatisticsConfigManagement { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 是否启用统计数据导出。
|
||
/// </summary>
|
||
public bool EnableStatisticsExport { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 统计数据导出默认格式。
|
||
/// </summary>
|
||
public ExportFormat StatisticsExportDefaultFormat { get; set; } = ExportFormat.Csv;
|
||
|
||
/// <summary>
|
||
/// 统计数据导出最大记录数。
|
||
/// </summary>
|
||
public int StatisticsExportMaxRecordCount { get; set; } = 10000;
|
||
|
||
/// <summary>
|
||
/// 是否启用统计性能监控。
|
||
/// </summary>
|
||
public bool EnableStatisticsPerformanceMonitoring { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 统计性能监控阈值(毫秒)。
|
||
/// </summary>
|
||
public double StatisticsPerformanceThresholdMs { get; set; } = 1000.0;
|
||
|
||
/// <summary>
|
||
/// 是否启用统计并发处理。
|
||
/// </summary>
|
||
public bool EnableStatisticsConcurrentProcessing { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 统计并发处理最大线程数。
|
||
/// </summary>
|
||
public int StatisticsConcurrentMaxThreads { get; set; } = 2;
|
||
|
||
/// <summary>
|
||
/// 是否启用统计内存优化。
|
||
/// </summary>
|
||
public bool EnableStatisticsMemoryOptimization { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 统计内存优化阈值(MB)。
|
||
/// </summary>
|
||
public double StatisticsMemoryOptimizationThresholdMb { get; set; } = 50.0;
|
||
|
||
/// <summary>
|
||
/// 是否启用统计错误恢复。
|
||
/// </summary>
|
||
public bool EnableStatisticsErrorRecovery { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 统计错误重试次数。
|
||
/// </summary>
|
||
public int StatisticsErrorRetryCount { get; set; } = 3;
|
||
|
||
/// <summary>
|
||
/// 统计错误重试间隔(毫秒)。
|
||
/// </summary>
|
||
public int StatisticsErrorRetryIntervalMs { get; set; } = 1000;
|
||
|
||
/// <summary>
|
||
/// 是否启用统计数据持久化。
|
||
/// </summary>
|
||
public bool EnableStatisticsDataPersistence { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 统计数据持久化保留天数。
|
||
/// </summary>
|
||
public int StatisticsDataPersistenceRetentionDays { get; set; } = 90;
|
||
|
||
/// <summary>
|
||
/// 是否启用统计实时监控。
|
||
/// </summary>
|
||
public bool EnableStatisticsRealTimeMonitoring { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 统计实时监控采样率。
|
||
/// </summary>
|
||
public double StatisticsRealTimeMonitoringSamplingRate { get; set; } = 0.05;
|
||
|
||
/// <summary>
|
||
/// 是否启用统计异常检测。
|
||
/// </summary>
|
||
public bool EnableStatisticsAnomalyDetection { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 统计异常检测阈值。
|
||
/// </summary>
|
||
public double StatisticsAnomalyDetectionThreshold { get; set; } = 2.0;
|
||
|
||
/// <summary>
|
||
/// 是否启用统计趋势分析。
|
||
/// </summary>
|
||
public bool EnableStatisticsTrendAnalysis { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 统计趋势分析窗口大小。
|
||
/// </summary>
|
||
public int StatisticsTrendAnalysisWindowSize { get; set; } = 100;
|
||
|
||
/// <summary>
|
||
/// 是否启用统计预测分析。
|
||
/// </summary>
|
||
public bool EnableStatisticsPredictiveAnalysis { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 统计预测分析置信度阈值。
|
||
/// </summary>
|
||
public double StatisticsPredictiveAnalysisConfidenceThreshold { get; set; } = 0.7;
|
||
|
||
/// <summary>
|
||
/// 是否启用统计基准对比。
|
||
/// </summary>
|
||
public bool EnableStatisticsBenchmarkComparison { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 统计基准对比行业数据。
|
||
/// </summary>
|
||
public Dictionary<string, double> StatisticsBenchmarkIndustryData { get; set; } = new()
|
||
{
|
||
["OEE"] = 75.0,
|
||
["QualityPassRate"] = 95.0,
|
||
["EquipmentUtilization"] = 85.0,
|
||
["ProductionEfficiency"] = 80.0
|
||
};
|
||
|
||
/// <summary>
|
||
/// 是否启用统计改进建议。
|
||
/// </summary>
|
||
public bool EnableStatisticsImprovementSuggestions { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 统计改进建议最大数量。
|
||
/// </summary>
|
||
public int StatisticsImprovementSuggestionsMaxCount { get; set; } = 10;
|
||
|
||
/// <summary>
|
||
/// 统计数据聚合间隔(分钟)。
|
||
/// </summary>
|
||
public int StatisticsDataAggregationIntervalMinutes { get; set; } = 5;
|
||
|
||
/// <summary>
|
||
/// 统计数据压缩阈值(天)。
|
||
/// </summary>
|
||
public int StatisticsDataCompressionThresholdDays { get; set; } = 30;
|
||
|
||
/// <summary>
|
||
/// 统计数据备份间隔(小时)。
|
||
/// </summary>
|
||
public int StatisticsDataBackupIntervalHours { get; set; } = 24;
|
||
|
||
/// <summary>
|
||
/// 统计API超时时间(毫秒)。
|
||
/// </summary>
|
||
public int StatisticsApiTimeoutMs { get; set; } = 30000;
|
||
|
||
/// <summary>
|
||
/// 统计批量处理大小。
|
||
/// </summary>
|
||
public int StatisticsBatchProcessingSize { get; set; } = 100;
|
||
|
||
/// <summary>
|
||
/// 统计结果缓存时间(秒)。
|
||
/// </summary>
|
||
public int StatisticsResultCacheTimeSeconds { get; set; } = 300;
|
||
|
||
/// <summary>
|
||
/// 统计历史数据清理间隔(天)。
|
||
/// </summary>
|
||
public int StatisticsHistoryDataCleanupIntervalDays { get; set; } = 7;
|
||
|
||
// === 历史追溯配置 ===
|
||
|
||
/// <summary>
|
||
/// 是否启用历史追溯服务。
|
||
/// </summary>
|
||
public bool EnableHistoryTraceService { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 是否启用历史追溯缓存。
|
||
/// </summary>
|
||
public bool EnableHistoryTraceCache { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 历史追溯缓存过期时间(分钟)。
|
||
/// </summary>
|
||
public int HistoryTraceCacheExpirationMinutes { get; set; } = 60;
|
||
|
||
/// <summary>
|
||
/// 最大历史追溯缓存大小。
|
||
/// </summary>
|
||
public int MaxHistoryTraceCacheSize { get; set; } = 500;
|
||
|
||
/// <summary>
|
||
/// 是否启用产品会话历史追溯。
|
||
/// </summary>
|
||
public bool EnableProductSessionHistoryTrace { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 产品会话历史保留天数。
|
||
/// </summary>
|
||
public int ProductSessionHistoryRetentionDays { get; set; } = 90;
|
||
|
||
/// <summary>
|
||
/// 是否启用层处理历史追溯。
|
||
/// </summary>
|
||
public bool EnableLayerProcessingHistoryTrace { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 层处理历史保留天数。
|
||
/// </summary>
|
||
public int LayerProcessingHistoryRetentionDays { get; set; } = 90;
|
||
|
||
/// <summary>
|
||
/// 是否启用截图历史追溯。
|
||
/// </summary>
|
||
public bool EnableScreenshotHistoryTrace { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 截图历史保留天数。
|
||
/// </summary>
|
||
public int ScreenshotHistoryRetentionDays { get; set; } = 30;
|
||
|
||
/// <summary>
|
||
/// 是否启用证据链追溯。
|
||
/// </summary>
|
||
public bool EnableEvidenceChainTrace { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 证据链保留天数。
|
||
/// </summary>
|
||
public int EvidenceChainRetentionDays { get; set; } = 180;
|
||
|
||
/// <summary>
|
||
/// 是否启用层级证据回溯。
|
||
/// </summary>
|
||
public bool EnableLayerEvidenceTraceback { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 层级证据回溯深度。
|
||
/// </summary>
|
||
public int LayerEvidenceTracebackDepth { get; set; } = 10;
|
||
|
||
/// <summary>
|
||
/// 是否启用缺陷追溯。
|
||
/// </summary>
|
||
public bool EnableDefectTraceback { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 缺陷追溯分析深度。
|
||
/// </summary>
|
||
public int DefectTracebackAnalysisDepth { get; set; } = 5;
|
||
|
||
/// <summary>
|
||
/// 是否启用操作历史追溯。
|
||
/// </summary>
|
||
public bool EnableOperationHistoryTrace { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 操作历史保留天数。
|
||
/// </summary>
|
||
public int OperationHistoryRetentionDays { get; set; } = 60;
|
||
|
||
/// <summary>
|
||
/// 是否启用综合追溯报告。
|
||
/// </summary>
|
||
public bool EnableComprehensiveTracebackReport { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 综合追溯报告默认类型。
|
||
/// </summary>
|
||
public TracebackReportType ComprehensiveTracebackReportDefaultType { get; set; } = TracebackReportType.Standard;
|
||
|
||
/// <summary>
|
||
/// 是否启用追溯统计数据。
|
||
/// </summary>
|
||
public bool EnableTracebackStatistics { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 追溯统计数据保留天数。
|
||
/// </summary>
|
||
public int TracebackStatisticsRetentionDays { get; set; } = 365;
|
||
|
||
/// <summary>
|
||
/// 是否启用历史搜索功能。
|
||
/// </summary>
|
||
public bool EnableHistorySearch { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 历史搜索最大结果数量。
|
||
/// </summary>
|
||
public int HistorySearchMaxResultCount { get; set; } = 1000;
|
||
|
||
/// <summary>
|
||
/// 历史搜索超时时间(毫秒)。
|
||
/// </summary>
|
||
public int HistorySearchTimeoutMs { get; set; } = 30000;
|
||
|
||
/// <summary>
|
||
/// 是否启用追溯数据导出。
|
||
/// </summary>
|
||
public bool EnableTracebackDataExport { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 追溯数据导出默认格式。
|
||
/// </summary>
|
||
public ExportFormat TracebackDataExportDefaultFormat { get; set; } = ExportFormat.Csv;
|
||
|
||
/// <summary>
|
||
/// 追溯数据导出最大记录数。
|
||
/// </summary>
|
||
public int TracebackDataExportMaxRecordCount { get; set; } = 10000;
|
||
|
||
/// <summary>
|
||
/// 是否启用追溯性能监控。
|
||
/// </summary>
|
||
public bool EnableTracebackPerformanceMonitoring { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 追溯性能监控阈值(毫秒)。
|
||
/// </summary>
|
||
public double TracebackPerformanceThresholdMs { get; set; } = 2000.0;
|
||
|
||
/// <summary>
|
||
/// 是否启用追溯并发处理。
|
||
/// </summary>
|
||
public bool EnableTracebackConcurrentProcessing { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 追溯并发处理最大线程数。
|
||
/// </summary>
|
||
public int TracebackConcurrentMaxThreads { get; set; } = 2;
|
||
|
||
/// <summary>
|
||
/// 是否启用追溯内存优化。
|
||
/// </summary>
|
||
public bool EnableTracebackMemoryOptimization { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 追溯内存优化阈值(MB)。
|
||
/// </summary>
|
||
public double TracebackMemoryOptimizationThresholdMb { get; set; } = 100.0;
|
||
|
||
/// <summary>
|
||
/// 是否启用追溯错误恢复。
|
||
/// </summary>
|
||
public bool EnableTracebackErrorRecovery { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 追溯错误重试次数。
|
||
/// </summary>
|
||
public int TracebackErrorRetryCount { get; set; } = 3;
|
||
|
||
/// <summary>
|
||
/// 追溯错误重试间隔(毫秒)。
|
||
/// </summary>
|
||
public int TracebackErrorRetryIntervalMs { get; set; } = 2000;
|
||
|
||
/// <summary>
|
||
/// 是否启用追溯数据持久化。
|
||
/// </summary>
|
||
public bool EnableTracebackDataPersistence { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 追溯数据持久化保留天数。
|
||
/// </summary>
|
||
public int TracebackDataPersistenceRetentionDays { get; set; } = 365;
|
||
|
||
/// <summary>
|
||
/// 是否启用追溯实时监控。
|
||
/// </summary>
|
||
public bool EnableTracebackRealTimeMonitoring { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 追溯实时监控采样率。
|
||
/// </summary>
|
||
public double TracebackRealTimeMonitoringSamplingRate { get; set; } = 0.02;
|
||
|
||
/// <summary>
|
||
/// 是否启用追溯异常检测。
|
||
/// </summary>
|
||
public bool EnableTracebackAnomalyDetection { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 追溯异常检测阈值。
|
||
/// </summary>
|
||
public double TracebackAnomalyDetectionThreshold { get; set; } = 3.0;
|
||
|
||
/// <summary>
|
||
/// 是否启用追溯趋势分析。
|
||
/// </summary>
|
||
public bool EnableTracebackTrendAnalysis { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 追溯趋势分析窗口大小。
|
||
/// </summary>
|
||
public int TracebackTrendAnalysisWindowSize { get; set; } = 200;
|
||
|
||
/// <summary>
|
||
/// 是否启用追溯预测分析。
|
||
/// </summary>
|
||
public bool EnableTracebackPredictiveAnalysis { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 追溯预测分析置信度阈值。
|
||
/// </summary>
|
||
public double TracebackPredictiveAnalysisConfidenceThreshold { get; set; } = 0.65;
|
||
|
||
/// <summary>
|
||
/// 是否启用追溯基准对比。
|
||
/// </summary>
|
||
public bool EnableTracebackBenchmarkComparison { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 追溯基准对比行业数据。
|
||
/// </summary>
|
||
public Dictionary<string, double> TracebackBenchmarkIndustryData { get; set; } = new()
|
||
{
|
||
["SessionCompletionRate"] = 95.0,
|
||
["LayerPassRate"] = 92.0,
|
||
["DefectRate"] = 2.0,
|
||
["ProcessingEfficiency"] = 85.0,
|
||
["EvidenceChainCompleteness"] = 90.0
|
||
};
|
||
|
||
/// <summary>
|
||
/// 是否启用追溯改进建议。
|
||
/// </summary>
|
||
public bool EnableTracebackImprovementSuggestions { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 追溯改进建议最大数量。
|
||
/// </summary>
|
||
public int TracebackImprovementSuggestionsMaxCount { get; set; } = 15;
|
||
|
||
/// <summary>
|
||
/// 追溯数据聚合间隔(分钟)。
|
||
/// </summary>
|
||
public int TracebackDataAggregationIntervalMinutes { get; set; } = 10;
|
||
|
||
/// <summary>
|
||
/// 追溯数据压缩阈值(天)。
|
||
/// </summary>
|
||
public int TracebackDataCompressionThresholdDays { get; set; } = 60;
|
||
|
||
/// <summary>
|
||
/// 追溯数据备份间隔(小时)。
|
||
/// </summary>
|
||
public int TracebackDataBackupIntervalHours { get; set; } = 48;
|
||
|
||
/// <summary>
|
||
/// 追溯API超时时间(毫秒)。
|
||
/// </summary>
|
||
public int TracebackApiTimeoutMs { get; set; } = 60000;
|
||
|
||
/// <summary>
|
||
/// 追溯批量处理大小。
|
||
/// </summary>
|
||
public int TracebackBatchProcessingSize { get; set; } = 50;
|
||
|
||
/// <summary>
|
||
/// 追溯结果缓存时间(秒)。
|
||
/// </summary>
|
||
public int TracebackResultCacheTimeSeconds { get; set; } = 600;
|
||
|
||
/// <summary>
|
||
/// 追溯历史数据清理间隔(天)。
|
||
/// </summary>
|
||
public int TracebackHistoryDataCleanupIntervalDays { get; set; } = 14;
|
||
|
||
/// <summary>
|
||
/// 截图文件存储路径。
|
||
/// </summary>
|
||
public string ScreenshotStoragePath { get; set; } = "./screenshots";
|
||
|
||
/// <summary>
|
||
/// 截图文件最大大小(MB)。
|
||
/// </summary>
|
||
public int ScreenshotMaxFileSizeMb { get; set; } = 10;
|
||
|
||
/// <summary>
|
||
/// 截图文件压缩质量。
|
||
/// </summary>
|
||
public int ScreenshotCompressionQuality { get; set; } = 85;
|
||
|
||
/// <summary>
|
||
/// 证据链完整性最小阈值。
|
||
/// </summary>
|
||
public double EvidenceChainCompletenessMinThreshold { get; set; } = 0.7;
|
||
|
||
/// <summary>
|
||
/// 证据链可信度最小阈值。
|
||
/// </summary>
|
||
public double EvidenceChainCredibilityMinThreshold { get; set; } = 0.75;
|
||
|
||
/// <summary>
|
||
/// 缺陷追溯分析最小样本数。
|
||
/// </summary>
|
||
public int DefectTracebackAnalysisMinSampleSize { get; set; } = 10;
|
||
|
||
/// <summary>
|
||
/// 追溯报告生成超时时间(毫秒)。
|
||
/// </summary>
|
||
public int TracebackReportGenerationTimeoutMs { get; set; } = 120000;
|
||
|
||
/// <summary>
|
||
/// 追溯搜索索引更新间隔(分钟)。
|
||
/// </summary>
|
||
public int TracebackSearchIndexUpdateIntervalMinutes { get; set; } = 30;
|
||
|
||
/// <summary>
|
||
/// 追溯数据导出临时目录。
|
||
/// </summary>
|
||
public string TracebackExportTempDirectory { get; set; } = "./temp/exports";
|
||
|
||
/// <summary>
|
||
/// 追溯数据清理策略。
|
||
/// </summary>
|
||
public TracebackDataCleanupStrategy TracebackDataCleanupStrategy { get; set; } = TracebackDataCleanupStrategy.RetentionBased;
|
||
|
||
/// <summary>
|
||
/// 追溯数据备份保留天数。
|
||
/// </summary>
|
||
public int TracebackDataBackupRetentionDays { get; set; } = 30;
|
||
|
||
// === 人工复位放行配置 ===
|
||
|
||
/// <summary>
|
||
/// 是否启用人工复位放行服务。
|
||
/// </summary>
|
||
public bool EnableManualOverrideService { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 是否启用复位放行缓存。
|
||
/// </summary>
|
||
public bool EnableManualOverrideCache { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 复位放行缓存过期时间(分钟)。
|
||
/// </summary>
|
||
public int ManualOverrideCacheExpirationMinutes { get; set; } = 30;
|
||
|
||
/// <summary>
|
||
/// 最大复位放行缓存大小。
|
||
/// </summary>
|
||
public int MaxManualOverrideCacheSize { get; set; } = 200;
|
||
|
||
/// <summary>
|
||
/// 是否启用可复位会话查询。
|
||
/// </summary>
|
||
public bool EnableOverrideableSessionQuery { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 可复位会话查询保留天数。
|
||
/// </summary>
|
||
public int OverrideableSessionQueryRetentionDays { get; set; } = 30;
|
||
|
||
/// <summary>
|
||
/// 是否启用权限验证。
|
||
/// </summary>
|
||
public bool EnablePermissionValidation { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 权限验证缓存时间(分钟)。
|
||
/// </summary>
|
||
public int PermissionValidationCacheTimeMinutes { get; set; } = 15;
|
||
|
||
/// <summary>
|
||
/// 是否启用复位条件验证。
|
||
/// </summary>
|
||
public bool EnableOverrideConditionValidation { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 复位条件验证超时时间(毫秒)。
|
||
/// </summary>
|
||
public int OverrideConditionValidationTimeoutMs { get; set; } = 10000;
|
||
|
||
/// <summary>
|
||
/// 是否启用批量复位操作。
|
||
/// </summary>
|
||
public bool EnableBatchOverrideOperation { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 批量复位操作最大数量。
|
||
/// </summary>
|
||
public int BatchOverrideOperationMaxCount { get; set; } = 50;
|
||
|
||
/// <summary>
|
||
/// 批量复位操作超时时间(毫秒)。
|
||
/// </summary>
|
||
public int BatchOverrideOperationTimeoutMs { get; set; } = 120000;
|
||
|
||
/// <summary>
|
||
/// 是否启用复位历史记录。
|
||
/// </summary>
|
||
public bool EnableOverrideHistoryRecord { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 复位历史记录保留天数。
|
||
/// </summary>
|
||
public int OverrideHistoryRecordRetentionDays { get; set; } = 90;
|
||
|
||
/// <summary>
|
||
/// 是否启用复位撤销功能。
|
||
/// </summary>
|
||
public bool EnableOverrideRevoke { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 复位撤销超时时间(毫秒)。
|
||
/// </summary>
|
||
public int OverrideRevokeTimeoutMs { get; set; } = 15000;
|
||
|
||
/// <summary>
|
||
/// 是否启用复位统计功能。
|
||
/// </summary>
|
||
public bool EnableOverrideStatistics { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 复位统计数据保留天数。
|
||
/// </summary>
|
||
public int OverrideStatisticsRetentionDays { get; set; } = 365;
|
||
|
||
/// <summary>
|
||
/// 是否启用审计日志记录。
|
||
/// </summary>
|
||
public bool EnableAuditLogRecord { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 审计日志保留天数。
|
||
/// </summary>
|
||
public int AuditLogRecordRetentionDays { get; set; } = 730;
|
||
|
||
/// <summary>
|
||
/// 审计日志级别。
|
||
/// </summary>
|
||
public AuditLevel AuditLogLevel { get; set; } = AuditLevel.Info;
|
||
|
||
/// <summary>
|
||
/// 是否启用复位报告生成。
|
||
/// </summary>
|
||
public bool EnableOverrideReportGeneration { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 复位报告默认类型。
|
||
/// </summary>
|
||
public OverrideReportType OverrideReportDefaultType { get; set; } = OverrideReportType.Weekly;
|
||
|
||
/// <summary>
|
||
/// 复位报告生成超时时间(毫秒)。
|
||
/// </summary>
|
||
public int OverrideReportGenerationTimeoutMs { get; set; } = 180000;
|
||
|
||
/// <summary>
|
||
/// 是否启用合规性检查。
|
||
/// </summary>
|
||
public bool EnableComplianceCheck { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 合规性检查最低评分。
|
||
/// </summary>
|
||
public double ComplianceCheckMinScore { get; set; } = 70.0;
|
||
|
||
/// <summary>
|
||
/// 合规性检查超时时间(毫秒)。
|
||
/// </summary>
|
||
public int ComplianceCheckTimeoutMs { get; set; } = 20000;
|
||
|
||
/// <summary>
|
||
/// 是否启用复位模板功能。
|
||
/// </summary>
|
||
public bool EnableOverrideTemplate { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 复位模板缓存时间(分钟)。
|
||
/// </summary>
|
||
public int OverrideTemplateCacheTimeMinutes { get; set; } = 60;
|
||
|
||
/// <summary>
|
||
/// 是否启用复位性能监控。
|
||
/// </summary>
|
||
public bool EnableOverridePerformanceMonitoring { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 复位性能监控阈值(毫秒)。
|
||
/// </summary>
|
||
public double OverridePerformanceThresholdMs { get; set; } = 5000.0;
|
||
|
||
/// <summary>
|
||
/// 是否启用复位并发处理。
|
||
/// </summary>
|
||
public bool EnableOverrideConcurrentProcessing { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 复位并发处理最大线程数。
|
||
/// </summary>
|
||
public int OverrideConcurrentMaxThreads { get; set; } = 3;
|
||
|
||
/// <summary>
|
||
/// 是否启用复位内存优化。
|
||
/// </summary>
|
||
public bool EnableOverrideMemoryOptimization { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 复位内存优化阈值(MB)。
|
||
/// </summary>
|
||
public double OverrideMemoryOptimizationThresholdMb { get; set; } = 80.0;
|
||
|
||
/// <summary>
|
||
/// 是否启用复位错误恢复。
|
||
/// </summary>
|
||
public bool EnableOverrideErrorRecovery { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 复位错误重试次数。
|
||
/// </summary>
|
||
public int OverrideErrorRetryCount { get; set; } = 2;
|
||
|
||
/// <summary>
|
||
/// 复位错误重试间隔(毫秒)。
|
||
/// </summary>
|
||
public int OverrideErrorRetryIntervalMs { get; set; } = 3000;
|
||
|
||
/// <summary>
|
||
/// 是否启用复位数据持久化。
|
||
/// </summary>
|
||
public bool EnableOverrideDataPersistence { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 复位数据持久化保留天数。
|
||
/// </summary>
|
||
public int OverrideDataPersistenceRetentionDays { get; set; } = 365;
|
||
|
||
/// <summary>
|
||
/// 是否启用复位实时监控。
|
||
/// </summary>
|
||
public bool EnableOverrideRealTimeMonitoring { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 复位实时监控采样率。
|
||
/// </summary>
|
||
public double OverrideRealTimeMonitoringSamplingRate { get; set; } = 0.01;
|
||
|
||
/// <summary>
|
||
/// 是否启用复位异常检测。
|
||
/// </summary>
|
||
public bool EnableOverrideAnomalyDetection { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 复位异常检测阈值。
|
||
/// </summary>
|
||
public double OverrideAnomalyDetectionThreshold { get; set; } = 2.5;
|
||
|
||
/// <summary>
|
||
/// 是否启用复位趋势分析。
|
||
/// </summary>
|
||
public bool EnableOverrideTrendAnalysis { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 复位趋势分析窗口大小。
|
||
/// </summary>
|
||
public int OverrideTrendAnalysisWindowSize { get; set; } = 150;
|
||
|
||
/// <summary>
|
||
/// 是否启用复位预测分析。
|
||
/// </summary>
|
||
public bool EnableOverridePredictiveAnalysis { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 复位预测分析置信度阈值。
|
||
/// </summary>
|
||
public double OverridePredictiveAnalysisConfidenceThreshold { get; set; } = 0.6;
|
||
|
||
/// <summary>
|
||
/// 是否启用复位基准对比。
|
||
/// </summary>
|
||
public bool EnableOverrideBenchmarkComparison { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 复位基准对比行业数据。
|
||
/// </summary>
|
||
public Dictionary<string, double> OverrideBenchmarkIndustryData { get; set; } = new()
|
||
{
|
||
["OverrideRate"] = 5.0,
|
||
["SuccessRate"] = 95.0,
|
||
["AverageTime"] = 2000.0,
|
||
["ComplianceScore"] = 85.0
|
||
};
|
||
|
||
/// <summary>
|
||
/// 是否启用复位改进建议。
|
||
/// </summary>
|
||
public bool EnableOverrideImprovementSuggestions { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 复位改进建议最大数量。
|
||
/// </summary>
|
||
public int OverrideImprovementSuggestionsMaxCount { get; set; } = 12;
|
||
|
||
/// <summary>
|
||
/// 复位数据聚合间隔(分钟)。
|
||
/// </summary>
|
||
public int OverrideDataAggregationIntervalMinutes { get; set; } = 5;
|
||
|
||
/// <summary>
|
||
/// 复位数据压缩阈值(天)。
|
||
/// </summary>
|
||
public int OverrideDataCompressionThresholdDays { get; set; } = 90;
|
||
|
||
/// <summary>
|
||
/// 复位数据备份间隔(小时)。
|
||
/// </summary>
|
||
public int OverrideDataBackupIntervalHours { get; set; } = 72;
|
||
|
||
/// <summary>
|
||
/// 复位API超时时间(毫秒)。
|
||
/// </summary>
|
||
public int OverrideApiTimeoutMs { get; set; } = 45000;
|
||
|
||
/// <summary>
|
||
/// 复位批量处理大小。
|
||
/// </summary>
|
||
public int OverrideBatchProcessingSize { get; set; } = 25;
|
||
|
||
/// <summary>
|
||
/// 复位结果缓存时间(秒)。
|
||
/// </summary>
|
||
public int OverrideResultCacheTimeSeconds { get; set; } = 180;
|
||
|
||
/// <summary>
|
||
/// 复位历史数据清理间隔(天)。
|
||
/// </summary>
|
||
public int OverrideHistoryDataCleanupIntervalDays { get; set; } = 21;
|
||
|
||
/// <summary>
|
||
/// 复位附件存储路径。
|
||
/// </summary>
|
||
public string OverrideAttachmentStoragePath { get; set; } = "./attachments/overrides";
|
||
|
||
/// <summary>
|
||
/// 复位附件最大文件大小(MB)。
|
||
/// </summary>
|
||
public int OverrideAttachmentMaxFileSizeMb { get; set; } = 20;
|
||
|
||
/// <summary>
|
||
/// 复位附件允许的文件类型。
|
||
/// </summary>
|
||
public IReadOnlyList<string> OverrideAttachmentAllowedFileTypes { get; set; } = new List<string> { ".jpg", ".jpeg", ".png", ".pdf", ".docx", ".xlsx" };
|
||
|
||
/// <summary>
|
||
/// 复位权限最小级别。
|
||
/// </summary>
|
||
public OperatorPermissionLevel OverrideMinPermissionLevel { get; set; } = OperatorPermissionLevel.TeamLeader;
|
||
|
||
/// <summary>
|
||
/// 复位权限缓存时间(分钟)。
|
||
/// </summary>
|
||
public int OverridePermissionCacheTimeMinutes { get; set; } = 10;
|
||
|
||
/// <summary>
|
||
/// 复位审批超时时间(小时)。
|
||
/// </summary>
|
||
public int OverrideApprovalTimeoutHours { get; set; } = 24;
|
||
|
||
/// <summary>
|
||
/// 复位撤销超时时间(小时)。
|
||
/// </summary>
|
||
public int OverrideRevokeTimeoutHours { get; set; } = 48;
|
||
|
||
/// <summary>
|
||
/// 复位报告导出格式。
|
||
/// </summary>
|
||
public IReadOnlyList<ExportFormat> OverrideReportExportFormats { get; set; } = new List<ExportFormat> { ExportFormat.Pdf, ExportFormat.Excel, ExportFormat.Csv };
|
||
|
||
/// <summary>
|
||
/// 复位报告模板路径。
|
||
/// </summary>
|
||
public string OverrideReportTemplatePath { get; set; } = "./templates/override-reports";
|
||
|
||
/// <summary>
|
||
/// 复位审计日志文件路径。
|
||
/// </summary>
|
||
public string OverrideAuditLogFilePath { get; set; } = "./logs/override-audit";
|
||
|
||
/// <summary>
|
||
/// 复位数据清理策略。
|
||
/// </summary>
|
||
public OverrideDataCleanupStrategy OverrideDataCleanupStrategy { get; set; } = OverrideDataCleanupStrategy.RetentionBased;
|
||
|
||
/// <summary>
|
||
/// 复位数据备份保留天数。
|
||
/// </summary>
|
||
public int OverrideDataBackupRetentionDays { get; set; } = 60;
|
||
|
||
/// <summary>
|
||
/// 复位操作最大等待时间(毫秒)。
|
||
/// </summary>
|
||
public int OverrideOperationMaxWaitTimeMs { get; set; } = 30000;
|
||
|
||
/// <summary>
|
||
/// 复位验证最大重试次数。
|
||
/// </summary>
|
||
public int OverrideValidationMaxRetryCount { get; set; } = 3;
|
||
|
||
/// <summary>
|
||
/// 复位验证重试间隔(毫秒)。
|
||
/// </summary>
|
||
public int OverrideValidationRetryIntervalMs { get; set; } = 2000;
|
||
|
||
/// <summary>
|
||
/// 复位通知邮件模板。
|
||
/// </summary>
|
||
public string OverrideNotificationEmailTemplate { get; set; } = "override-notification";
|
||
|
||
/// <summary>
|
||
/// 复位通知短信模板。
|
||
/// </summary>
|
||
public string OverrideNotificationSmsTemplate { get; set; } = "override-sms";
|
||
|
||
/// <summary>
|
||
/// 复位紧急通知阈值。
|
||
/// </summary>
|
||
public OverridePriority OverrideEmergencyNotificationThreshold { get; set; } = OverridePriority.Urgent;
|
||
|
||
/// <summary>
|
||
/// 复位操作记录详细程度。
|
||
/// </summary>
|
||
public OverrideOperationDetailLevel OverrideOperationDetailLevel { get; set; } = OverrideOperationDetailLevel.Standard;
|
||
|
||
/// <summary>
|
||
/// 复位数据加密算法。
|
||
/// </summary>
|
||
public string OverrideDataEncryptionAlgorithm { get; set; } = "AES-256";
|
||
|
||
/// <summary>
|
||
/// 复位数据完整性检查间隔(小时)。
|
||
/// </summary>
|
||
public int OverrideDataIntegrityCheckIntervalHours { get; set; } = 24;
|
||
|
||
/// <summary>
|
||
/// 复位系统健康检查间隔(分钟)。
|
||
/// </summary>
|
||
public int OverrideSystemHealthCheckIntervalMinutes { get; set; } = 15;
|
||
|
||
/// <summary>
|
||
/// 复位性能指标收集间隔(秒)。
|
||
/// </summary>
|
||
public int OverridePerformanceMetricsCollectionIntervalSeconds { get; set; } = 30;
|
||
|
||
/// <summary>
|
||
/// 复位异常处理策略。
|
||
/// </summary>
|
||
public OverrideExceptionHandlingStrategy OverrideExceptionHandlingStrategy { get; set; } = OverrideExceptionHandlingStrategy.LogAndContinue;
|
||
|
||
/// <summary>
|
||
/// 复位并发控制策略。
|
||
/// </summary>
|
||
public OverrideConcurrencyControlStrategy OverrideConcurrencyControlStrategy { get; set; } = OverrideConcurrencyControlStrategy.QueueBased;
|
||
|
||
/// <summary>
|
||
/// 复位资源限制策略。
|
||
/// </summary>
|
||
public OverrideResourceLimitStrategy OverrideResourceLimitStrategy { get; set; } = OverrideResourceLimitStrategy.MemoryBased;
|
||
|
||
/// <summary>
|
||
/// 复位安全策略。
|
||
/// </summary>
|
||
public OverrideSecurityStrategy OverrideSecurityStrategy { get; set; } = OverrideSecurityStrategy.RoleBased;
|
||
|
||
/// <summary>
|
||
/// 复位监控策略。
|
||
/// </summary>
|
||
public OverrideMonitoringStrategy OverrideMonitoringStrategy { get; set; } = OverrideMonitoringStrategy.RealTime;
|
||
|
||
/// <summary>
|
||
/// 复位备份策略。
|
||
/// </summary>
|
||
public OverrideBackupStrategy OverrideBackupStrategy { get; set; } = OverrideBackupStrategy.Incremental;
|
||
|
||
/// <summary>
|
||
/// 复位恢复策略。
|
||
/// </summary>
|
||
public OverrideRecoveryStrategy OverrideRecoveryStrategy { get; set; } = OverrideRecoveryStrategy.Automatic;
|
||
|
||
/// <summary>
|
||
/// 复位维护策略。
|
||
/// </summary>
|
||
public OverrideMaintenanceStrategy OverrideMaintenanceStrategy { get; set; } = OverrideMaintenanceStrategy.Scheduled;
|
||
|
||
/// <summary>
|
||
/// 复位升级策略。
|
||
/// </summary>
|
||
public OverrideUpgradeStrategy OverrideUpgradeStrategy { get; set; } = OverrideUpgradeStrategy.Rolling;
|
||
|
||
/// <summary>
|
||
/// 复位测试策略。
|
||
/// </summary>
|
||
public OverrideTestingStrategy OverrideTestingStrategy { get; set; } = OverrideTestingStrategy.Automated;
|
||
|
||
/// <summary>
|
||
/// 复位部署策略。
|
||
/// </summary>
|
||
public OverrideDeploymentStrategy OverrideDeploymentStrategy { get; set; } = OverrideDeploymentStrategy.BlueGreen;
|
||
}
|
||
}
|
||
|
||
namespace OrpaonVision.SiteApp.Runtime.Options
|
||
{
|
||
public enum CompositeJudgmentStrategy
|
||
{
|
||
WeightedAverage = 0,
|
||
AnyTwoPass = 1,
|
||
AllPass = 2
|
||
}
|
||
|
||
public enum LayerTransitionProtectionStrategy
|
||
{
|
||
Basic = 0,
|
||
Strict = 1,
|
||
Comprehensive = 2
|
||
}
|
||
|
||
public enum ProductionReportType
|
||
{
|
||
Daily = 0,
|
||
Weekly = 1,
|
||
Monthly = 2
|
||
}
|
||
|
||
public enum TracebackReportType
|
||
{
|
||
Standard = 0,
|
||
Detailed = 1
|
||
}
|
||
|
||
public enum AuditLevel
|
||
{
|
||
Info = 0,
|
||
Warning = 1,
|
||
Error = 2
|
||
}
|
||
|
||
public enum OverrideReportType
|
||
{
|
||
Daily = 0,
|
||
Weekly = 1,
|
||
Monthly = 2
|
||
}
|
||
|
||
public enum OperatorPermissionLevel
|
||
{
|
||
Operator = 0,
|
||
TeamLeader = 1,
|
||
Supervisor = 2,
|
||
Engineer = 3,
|
||
Admin = 4
|
||
}
|
||
|
||
public enum OverridePriority
|
||
{
|
||
Low = 0,
|
||
Normal = 1,
|
||
High = 2,
|
||
Urgent = 3
|
||
}
|
||
|
||
public enum TracebackDataCleanupStrategy
|
||
{
|
||
RetentionBased = 0,
|
||
ArchiveThenDelete = 1
|
||
}
|
||
|
||
public enum OverrideDataCleanupStrategy
|
||
{
|
||
RetentionBased = 0,
|
||
ArchiveThenDelete = 1
|
||
}
|
||
|
||
public enum OverrideOperationDetailLevel
|
||
{
|
||
Minimal = 0,
|
||
Standard = 1,
|
||
Verbose = 2
|
||
}
|
||
|
||
public enum OverrideExceptionHandlingStrategy
|
||
{
|
||
LogAndContinue = 0,
|
||
StopOnError = 1
|
||
}
|
||
|
||
public enum OverrideConcurrencyControlStrategy
|
||
{
|
||
QueueBased = 0,
|
||
LockBased = 1
|
||
}
|
||
|
||
public enum OverrideResourceLimitStrategy
|
||
{
|
||
MemoryBased = 0,
|
||
ThroughputBased = 1
|
||
}
|
||
|
||
public enum OverrideSecurityStrategy
|
||
{
|
||
RoleBased = 0,
|
||
PolicyBased = 1
|
||
}
|
||
|
||
public enum OverrideMonitoringStrategy
|
||
{
|
||
RealTime = 0,
|
||
Periodic = 1
|
||
}
|
||
|
||
public enum OverrideBackupStrategy
|
||
{
|
||
Incremental = 0,
|
||
Full = 1
|
||
}
|
||
|
||
public enum OverrideRecoveryStrategy
|
||
{
|
||
Automatic = 0,
|
||
Manual = 1
|
||
}
|
||
|
||
public enum OverrideMaintenanceStrategy
|
||
{
|
||
Scheduled = 0,
|
||
OnDemand = 1
|
||
}
|
||
|
||
public enum OverrideUpgradeStrategy
|
||
{
|
||
Rolling = 0,
|
||
BlueGreen = 1
|
||
}
|
||
|
||
public enum OverrideTestingStrategy
|
||
{
|
||
Automated = 0,
|
||
Manual = 1
|
||
}
|
||
|
||
public enum OverrideDeploymentStrategy
|
||
{
|
||
BlueGreen = 0,
|
||
Rolling = 1
|
||
}
|
||
}
|