Files
OrpaonVision/OrpaonVision.SiteApp/Runtime/Options/RuntimeOptions.cs
2026-04-06 22:04:05 +08:00

3102 lines
101 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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
}
}