✨ feat(*): 添加 PCB 检测记录的 CSV 持久化存储功能

* 新增 CsvBoardRecordRepository 实现按日期分卷的 CSV 记录存储
* 新增 RecordPersistenceModels 定义板件检测记录数据结构
* 在 WorkflowHostedService 中集成检测完成后的记录持久化
* 更新 MainWindowViewModel 支持记录查询与异常标记
* 更新 AppStateStore 添加记录存储相关状态管理
* 新增 DashboardPage UI 元素展示记录存储状态
* 更新 SystemSettingViewModel 与 appConfig 添加存储路径配置
* 注册 TimeProvider 与 IBoardRecordRepository 到 DI 容器
* 新增 CsvBoardRecordRepositoryTests 与 MainWindowViewModelTests
* 配置 Release 模式 portable PDB 并在发布时自动移除
This commit is contained in:
2026-04-19 15:39:31 +08:00
parent d70b94e904
commit 9a2211ccaa
17 changed files with 1802 additions and 89 deletions

View File

@@ -30,6 +30,11 @@ public sealed class AppConfig
/// </summary>
public WorkflowOptions Workflow { get; set; } = new();
/// <summary>
/// 获取或设置处理记录持久化配置。
/// </summary>
public RecordPersistenceOptions RecordPersistence { get; set; } = new();
/// <summary>
/// 获取或设置安全控制配置。
/// </summary>
@@ -286,6 +291,22 @@ public sealed class WorkflowOptions
public int MaxBoardRecords { get; set; } = 100;
}
/// <summary>
/// 表示处理记录 CSV 持久化配置。
/// </summary>
public sealed class RecordPersistenceOptions
{
/// <summary>
/// 获取或设置记录目录相对路径或绝对路径。
/// </summary>
public string DirectoryPath { get; set; } = "Data\\Records";
/// <summary>
/// 获取或设置跨天检查周期,单位为秒。
/// </summary>
public int DayChangeCheckIntervalSeconds { get; set; } = 30;
}
/// <summary>
/// 表示简易管理员控制配置。
/// </summary>