From 2df8be777bd7456d6c68dc46df4e5444e1fac252 Mon Sep 17 00:00:00 2001 From: "XS-202604101948\\Administrator" <1255317579@qq.com> Date: Wed, 5 Aug 2026 01:45:40 +0800 Subject: [PATCH 01/14] Add schedule OCR workflow and standalone packaging --- .gitignore | 8 +- README.md | 69 +- README_zh.md | 81 +- RapidOCRCSharp.sln | 42 + RapidOCRLib/AngleNet.cs | 29 +- RapidOCRLib/CrnnNet.cs | 16 +- RapidOCRLib/DbNet.cs | 43 +- RapidOCRLib/OcrLite.cs | 13 +- RapidOCRSchedule.Core/Models.cs | 161 ++ .../RapidOCRSchedule.Core.csproj | 9 + RapidOCRSchedule.Core/ScheduleExtractor.cs | 520 +++++++ RapidOCRSchedule.Core/ScheduleService.cs | 328 ++++ RapidOCRSchedule.Core/TextParsers.cs | 120 ++ RapidOCRSchedule.Excel/ExportRow.cs | 50 + .../RapidOCRSchedule.Excel.csproj | 9 + .../ScheduleExcelExporter.cs | 596 +++++++ RapidOCRSchedule.Tests/CoreScheduleTests.cs | 539 +++++++ .../RapidOCRSchedule.Tests.csproj | 33 + .../ScheduleExcelExporterTests.cs | 260 ++++ RapidOCRWinform/AppSettings.cs | 47 + RapidOCRWinform/EmbeddedModelProvider.cs | 181 +++ RapidOCRWinform/FormOcr.Designer.cs | 1383 +++++++++-------- RapidOCRWinform/FormOcr.cs | 1111 +++++++++++-- RapidOCRWinform/Program.cs | 53 +- .../PublishProfiles/StandaloneWinX64.pubxml | 18 + RapidOCRWinform/RapidOCRWinform.csproj | 24 +- RapidOCRWinform/UiModels.cs | 94 ++ "\351\234\200\346\261\202.md" | 130 ++ 28 files changed, 5183 insertions(+), 784 deletions(-) create mode 100644 RapidOCRSchedule.Core/Models.cs create mode 100644 RapidOCRSchedule.Core/RapidOCRSchedule.Core.csproj create mode 100644 RapidOCRSchedule.Core/ScheduleExtractor.cs create mode 100644 RapidOCRSchedule.Core/ScheduleService.cs create mode 100644 RapidOCRSchedule.Core/TextParsers.cs create mode 100644 RapidOCRSchedule.Excel/ExportRow.cs create mode 100644 RapidOCRSchedule.Excel/RapidOCRSchedule.Excel.csproj create mode 100644 RapidOCRSchedule.Excel/ScheduleExcelExporter.cs create mode 100644 RapidOCRSchedule.Tests/CoreScheduleTests.cs create mode 100644 RapidOCRSchedule.Tests/RapidOCRSchedule.Tests.csproj create mode 100644 RapidOCRSchedule.Tests/ScheduleExcelExporterTests.cs create mode 100644 RapidOCRWinform/AppSettings.cs create mode 100644 RapidOCRWinform/EmbeddedModelProvider.cs create mode 100644 RapidOCRWinform/Properties/PublishProfiles/StandaloneWinX64.pubxml create mode 100644 RapidOCRWinform/UiModels.cs create mode 100644 "\351\234\200\346\261\202.md" diff --git a/.gitignore b/.gitignore index a24e7ed..1a0f44e 100644 --- a/.gitignore +++ b/.gitignore @@ -162,4 +162,10 @@ $RECYCLE.BIN/ # VisualStudioCode .vs -Test \ No newline at end of file +Test + +# Local publish artifacts +dist/ + +# Keep the reproducible standalone Windows publish profile in source control. +!RapidOCRWinform/Properties/PublishProfiles/StandaloneWinX64.pubxml diff --git a/README.md b/README.md index 4db62a1..b2112e7 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,19 @@ If you find this project helpful, please consider giving us a ⭐ Star. Your sup --- +## Local schedule-image organizer + +`RapidOCRWinform` now includes a complete four-image schedule workflow. Select exactly four structurally identical schedule images, choose the target year/month, run OCR, review the merged weekday-only table, edit any date or name, and export the six required columns to `.xlsx`. + +Records are merged by calendar date rather than upload order. Missing workdays, duplicate dates, invalid dates/weekdays, weekday mismatches, empty positions, multiple months, ambiguous columns, and low-confidence OCR are shown explicitly for manual review. The default layout uses columns 1–4 plus the final two columns; the two right-side column indices can be changed without rerunning OCR. + +```powershell +dotnet run --project .\RapidOCRWinform\RapidOCRWinform.csproj +dotnet test .\RapidOCRSchedule.Tests\RapidOCRSchedule.Tests.csproj +``` + +--- + ## 👉 Quick Start The following example demonstrates how to get started using a **.NET Console Application**. @@ -130,7 +143,61 @@ Console.ReadKey(); | ------------ | --------------- | ------------------------------------------------------------- | | Core Library | RapidOCRLib | Core C# OCR wrapper library with sync/async APIs | | Console App | RapidOCRConsole | .NET console demo with built-in PP-OCRv5 model | -| WinForms App | RapidOCRWinform | WinForms demo (model not included; copy from console project) | +| WinForms App | RapidOCRWinform | Schedule-image OCR desktop app with embedded PP-OCRv5 models | + +## 📦 Offline Windows x64 Packaging + +`RapidOCRWinform` can be published as either a framework-dependent or self-contained application: + +- **Framework-dependent (smaller):** the target computer must have the .NET 10 Desktop Runtime installed. +- **Self-contained (no .NET installation):** the package includes the .NET runtime and is larger, but can run offline immediately after extraction. + +Framework-dependent publish command: + +```powershell +dotnet publish .\RapidOCRWinform\RapidOCRWinform.csproj ` + -c Release ` + -r win-x64 ` + --self-contained false ` + -p:PublishSingleFile=true ` + -p:IncludeNativeLibrariesForSelfExtract=true ` + -p:EnableCompressionInSingleFile=true +``` + +Fully self-contained publish command: + +```powershell +dotnet publish .\RapidOCRWinform\RapidOCRWinform.csproj ` + -c Release ` + -r win-x64 ` + --self-contained true ` + -p:PublishSingleFile=true ` + -p:IncludeNativeLibrariesForSelfExtract=true ` + -p:EnableCompressionInSingleFile=true +``` + +The repository also includes a reusable publish profile: + +```powershell +dotnet publish .\RapidOCRWinform\RapidOCRWinform.csproj ` + -p:PublishProfile=StandaloneWinX64 ` + -o .\dist\RapidOCRSchedule-standalone-win-x64 +``` + +The publish directory only needs one distributable file: + +```text +RapidOCRSchedule.exe +``` + +The executable contains the .NET Desktop runtime, native OCR libraries, all three ONNX models, and the dictionary. It does not require Python, Anaconda, CUDA, Office, an installed .NET runtime, or an online service, but it is specific to Windows x64. On first launch it verifies and materializes the embedded models under `%LOCALAPPDATA%\RapidOCRSchedule\model-cache`; the .NET single-file host also extracts native libraries to the user's temporary directory. These are automatically managed runtime caches, not deployment prerequisites. + +Run the headless end-to-end check to verify model extraction, ONNX Runtime, OpenCV, and OCR inference: + +```powershell +$test = Start-Process .\RapidOCRSchedule.exe -ArgumentList --self-test -Wait -PassThru +if ($test.ExitCode -ne 0) { throw "Standalone package self-test failed" } +``` --- diff --git a/README_zh.md b/README_zh.md index 7472898..ce4283f 100644 --- a/README_zh.md +++ b/README_zh.md @@ -24,6 +24,29 @@ RapidOCR 是一款完全开源免费、支持离线快速部署的多平台多 .Neter们,如果您觉得本项目对您的工作或学习有所帮助,恳请您不吝赐予一颗 ⭐ Star,给予我们宝贵的支持与鼓励! +## 本地排班图片整理 + +`RapidOCRWinform` 已提供面向排班表的完整桌面流程: + +1. 一次选择正好 4 张结构相同的排班图片(上传顺序不影响结果)。 +2. 选择目标年月;程序从每张图片提取日期、星期、前两个岗位以及右侧两个指定岗位。 +3. 4 张图片的记录按实际日期合并排序,只保留星期一至星期五;整月缺失的工作日会自动生成待填写行。 +4. 在结果表格中检查并修改日期、星期和姓名,然后导出为 `.xlsx`。 + +程序会明确标记日期/星期无法识别、星期与日历不一致、岗位为空、同日重复、工作日缺失、跨月、列归属不确定和低置信度 OCR 等情况。原图和 OCR 坐标诊断保留在“原图与识别诊断”页,不会静默丢弃异常。 + +默认列映射为从左到右第 1~4 列,以及倒数第 2、倒数第 1 列。若右侧目标区域不是表格最后两列,可在左侧把“岗位三列”“岗位四列”改为实际列序号;修改后会直接重新整理缓存的 OCR 结果,无需再次识别图片。 + +```powershell +dotnet run --project .\RapidOCRWinform\RapidOCRWinform.csproj +``` + +三个 ONNX 模型和 `ppocrv5_dict.txt` 已编译进 WinForms 程序;首次启动会校验并释放到用户模型缓存,不需要在程序旁放置 `models` 目录。也可以在界面中临时选择其他完整模型目录。核心日期/几何规则与 Excel OOXML 导出测试可用以下命令运行: + +```powershell +dotnet test .\RapidOCRSchedule.Tests\RapidOCRSchedule.Tests.csproj +``` + ### 👉快速入门 > 下面以控制台应用来演示如何快速入门 #### 1.增加一个控制台应用 @@ -92,7 +115,61 @@ Console.ReadKey(); |-------|-------|--------| |核心库|RapidOCRLib|C#的RapidOCR核心封装库,提供众多同步、异步的Detection方法| |console应用|RapidOCRConsole|.net OCR的Console演示,自带PP-OCRv5轻量模型,可以直接运行,引用了上面的核心库RapidOCRLib,学习者以此项目为主| -|winform应用|RapidOCRWinform|.net OCR的winform演示,可以直接运行,但不带模型,学习者可以从RapidOCRConsole目录拷贝模型| +|winform应用|RapidOCRWinform|排班图片 OCR 桌面应用,内嵌 PP-OCRv5 模型,可发布为独立单文件 EXE| + +### 📦 Windows x64 离线打包 + +`RapidOCRWinform` 可以发布为“框架依赖”或“自包含”应用: + +- **框架依赖包(体积较小)**:目标电脑必须安装 .NET 10 Desktop Runtime。 +- **自包含包(无需安装 .NET)**:包内携带 .NET 运行时,体积更大,但解压后即可离线运行。 + +框架依赖发布命令: + +```powershell +dotnet publish .\RapidOCRWinform\RapidOCRWinform.csproj ` + -c Release ` + -r win-x64 ` + --self-contained false ` + -p:PublishSingleFile=true ` + -p:IncludeNativeLibrariesForSelfExtract=true ` + -p:EnableCompressionInSingleFile=true +``` + +完全自包含发布命令: + +```powershell +dotnet publish .\RapidOCRWinform\RapidOCRWinform.csproj ` + -c Release ` + -r win-x64 ` + --self-contained true ` + -p:PublishSingleFile=true ` + -p:IncludeNativeLibrariesForSelfExtract=true ` + -p:EnableCompressionInSingleFile=true +``` + +也可以直接使用仓库内已固化的发布配置: + +```powershell +dotnet publish .\RapidOCRWinform\RapidOCRWinform.csproj ` + -p:PublishProfile=StandaloneWinX64 ` + -o .\dist\RapidOCRSchedule-standalone-win-x64 +``` + +发布目录只需要一个文件: + +```text +RapidOCRSchedule.exe +``` + +该 EXE 已包含 .NET 桌面运行时、OCR 原生库、三个 ONNX 模型和字典,不依赖 Python、Anaconda、CUDA、Office、已安装的 .NET 或联网服务,但限定为 Windows x64。首次启动会把模型校验后释放到 `%LOCALAPPDATA%\RapidOCRSchedule\model-cache`,.NET 单文件宿主也会把原生 DLL 释放到用户临时目录;这些都是自动管理的运行时缓存,不是需要随 EXE 分发的外部环境。 + +可用无界面自检确认模型、ONNX Runtime 和 OpenCV 均能工作: + +```powershell +$test = Start-Process .\RapidOCRSchedule.exe -ArgumentList --self-test -Wait -PassThru +if ($test.ExitCode -ne 0) { throw "独立包自检失败" } +``` ### ❓ 参数说明及调参 @@ -141,4 +218,4 @@ public async Task DetectAsync(string imgFile, int padding = 50, int m ### 🎉 联系方式 -[QQ群](https://rapidai.github.io/RapidOCRDocs/main/communicate/#qq) \ No newline at end of file +[QQ群](https://rapidai.github.io/RapidOCRDocs/main/communicate/#qq) diff --git a/RapidOCRCSharp.sln b/RapidOCRCSharp.sln index 5ee1864..2f11c33 100644 --- a/RapidOCRCSharp.sln +++ b/RapidOCRCSharp.sln @@ -11,6 +11,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RapidOCRWinform", "RapidOCR EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RapidOCRLib.Tests", "RapidOCRLib.Tests\RapidOCRLib.Tests.csproj", "{F09F59AD-C0B1-4F96-9F86-FE6FA25EE12F}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RapidOCRSchedule.Core", "RapidOCRSchedule.Core\RapidOCRSchedule.Core.csproj", "{51786420-E70F-4451-B177-A8AB1B9DAD55}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RapidOCRSchedule.Excel", "RapidOCRSchedule.Excel\RapidOCRSchedule.Excel.csproj", "{B3BE055E-35B5-4250-B4B8-7F8A9A9DD3A5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RapidOCRSchedule.Tests", "RapidOCRSchedule.Tests\RapidOCRSchedule.Tests.csproj", "{9D6FC8E1-0767-40AE-95B5-20C9CCD74B7F}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -69,6 +75,42 @@ Global {F09F59AD-C0B1-4F96-9F86-FE6FA25EE12F}.Release|x64.Build.0 = Release|Any CPU {F09F59AD-C0B1-4F96-9F86-FE6FA25EE12F}.Release|x86.ActiveCfg = Release|Any CPU {F09F59AD-C0B1-4F96-9F86-FE6FA25EE12F}.Release|x86.Build.0 = Release|Any CPU + {51786420-E70F-4451-B177-A8AB1B9DAD55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {51786420-E70F-4451-B177-A8AB1B9DAD55}.Debug|Any CPU.Build.0 = Debug|Any CPU + {51786420-E70F-4451-B177-A8AB1B9DAD55}.Debug|x64.ActiveCfg = Debug|Any CPU + {51786420-E70F-4451-B177-A8AB1B9DAD55}.Debug|x64.Build.0 = Debug|Any CPU + {51786420-E70F-4451-B177-A8AB1B9DAD55}.Debug|x86.ActiveCfg = Debug|Any CPU + {51786420-E70F-4451-B177-A8AB1B9DAD55}.Debug|x86.Build.0 = Debug|Any CPU + {51786420-E70F-4451-B177-A8AB1B9DAD55}.Release|Any CPU.ActiveCfg = Release|Any CPU + {51786420-E70F-4451-B177-A8AB1B9DAD55}.Release|Any CPU.Build.0 = Release|Any CPU + {51786420-E70F-4451-B177-A8AB1B9DAD55}.Release|x64.ActiveCfg = Release|Any CPU + {51786420-E70F-4451-B177-A8AB1B9DAD55}.Release|x64.Build.0 = Release|Any CPU + {51786420-E70F-4451-B177-A8AB1B9DAD55}.Release|x86.ActiveCfg = Release|Any CPU + {51786420-E70F-4451-B177-A8AB1B9DAD55}.Release|x86.Build.0 = Release|Any CPU + {B3BE055E-35B5-4250-B4B8-7F8A9A9DD3A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B3BE055E-35B5-4250-B4B8-7F8A9A9DD3A5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B3BE055E-35B5-4250-B4B8-7F8A9A9DD3A5}.Debug|x64.ActiveCfg = Debug|Any CPU + {B3BE055E-35B5-4250-B4B8-7F8A9A9DD3A5}.Debug|x64.Build.0 = Debug|Any CPU + {B3BE055E-35B5-4250-B4B8-7F8A9A9DD3A5}.Debug|x86.ActiveCfg = Debug|Any CPU + {B3BE055E-35B5-4250-B4B8-7F8A9A9DD3A5}.Debug|x86.Build.0 = Debug|Any CPU + {B3BE055E-35B5-4250-B4B8-7F8A9A9DD3A5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B3BE055E-35B5-4250-B4B8-7F8A9A9DD3A5}.Release|Any CPU.Build.0 = Release|Any CPU + {B3BE055E-35B5-4250-B4B8-7F8A9A9DD3A5}.Release|x64.ActiveCfg = Release|Any CPU + {B3BE055E-35B5-4250-B4B8-7F8A9A9DD3A5}.Release|x64.Build.0 = Release|Any CPU + {B3BE055E-35B5-4250-B4B8-7F8A9A9DD3A5}.Release|x86.ActiveCfg = Release|Any CPU + {B3BE055E-35B5-4250-B4B8-7F8A9A9DD3A5}.Release|x86.Build.0 = Release|Any CPU + {9D6FC8E1-0767-40AE-95B5-20C9CCD74B7F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9D6FC8E1-0767-40AE-95B5-20C9CCD74B7F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9D6FC8E1-0767-40AE-95B5-20C9CCD74B7F}.Debug|x64.ActiveCfg = Debug|Any CPU + {9D6FC8E1-0767-40AE-95B5-20C9CCD74B7F}.Debug|x64.Build.0 = Debug|Any CPU + {9D6FC8E1-0767-40AE-95B5-20C9CCD74B7F}.Debug|x86.ActiveCfg = Debug|Any CPU + {9D6FC8E1-0767-40AE-95B5-20C9CCD74B7F}.Debug|x86.Build.0 = Debug|Any CPU + {9D6FC8E1-0767-40AE-95B5-20C9CCD74B7F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9D6FC8E1-0767-40AE-95B5-20C9CCD74B7F}.Release|Any CPU.Build.0 = Release|Any CPU + {9D6FC8E1-0767-40AE-95B5-20C9CCD74B7F}.Release|x64.ActiveCfg = Release|Any CPU + {9D6FC8E1-0767-40AE-95B5-20C9CCD74B7F}.Release|x64.Build.0 = Release|Any CPU + {9D6FC8E1-0767-40AE-95B5-20C9CCD74B7F}.Release|x86.ActiveCfg = Release|Any CPU + {9D6FC8E1-0767-40AE-95B5-20C9CCD74B7F}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/RapidOCRLib/AngleNet.cs b/RapidOCRLib/AngleNet.cs index 9e2af73..8ed4df9 100644 --- a/RapidOCRLib/AngleNet.cs +++ b/RapidOCRLib/AngleNet.cs @@ -12,7 +12,7 @@ namespace RapidOCRLib { - class AngleNet + class AngleNet : IDisposable { private readonly float[] MeanValues = { 127.5F, 127.5F, 127.5F }; private readonly float[] NormValues = { 1.0F / 127.5F, 1.0F / 127.5F, 1.0F / 127.5F }; @@ -26,7 +26,19 @@ public AngleNet() { } ~AngleNet() { - angleNet.Dispose(); + Dispose(false); + } + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + private void Dispose(bool disposing) + { + angleNet?.Dispose(); + angleNet = null; } public async Task InitModel(string path, int numThread) @@ -40,10 +52,12 @@ public async Task InitModel(string path, int numThread) angleNet = new InferenceSession(path, op); inputNames = angleNet.InputMetadata.Keys.ToList(); - // 从 ONNX 模型 metadata 读取输入尺寸,兼容 v2 (192x48) 和 v5 (160x80) + // Read static dimensions from the model when available. Some PaddleOCR + // classifier exports expose both spatial dimensions as dynamic (-1), + // in which case use the standard PP-OCR classifier input size. var dims = angleNet.InputMetadata.First().Value.Dimensions; - _dstHeight = dims[2]; - _dstWidth = dims[3]; + _dstHeight = dims[2] > 0 ? dims[2] : 48; + _dstWidth = dims[3] > 0 ? dims[3] : 192; await Task.CompletedTask; } @@ -109,6 +123,11 @@ public List GetAngles(List partImgs, bool doAngle, bool mostAngle) private Angle GetAngle(Mat src) { + if (src == null || src.Rows <= 0 || src.Cols <= 0) + { + throw new ArgumentException("Angle classifier received an empty image.", nameof(src)); + } + Angle angle = new Angle(); Mat angleImg = new Mat(); CvInvoke.Resize(src, angleImg, new Size(_dstWidth, _dstHeight)); diff --git a/RapidOCRLib/CrnnNet.cs b/RapidOCRLib/CrnnNet.cs index 7c786d2..06a9bf8 100644 --- a/RapidOCRLib/CrnnNet.cs +++ b/RapidOCRLib/CrnnNet.cs @@ -12,7 +12,7 @@ namespace RapidOCRLib { - class CrnnNet + class CrnnNet : IDisposable { private readonly float[] MeanValues = { 127.5F, 127.5F, 127.5F }; private readonly float[] NormValues = { 1.0F / 127.5F, 1.0F / 127.5F, 1.0F / 127.5F }; @@ -26,8 +26,20 @@ class CrnnNet public CrnnNet() { } ~CrnnNet() + { + Dispose(false); + } + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + private void Dispose(bool disposing) { crnnNet?.Dispose(); + crnnNet = null; } public async Task InitModel(string path, string keysPath, int numThread) @@ -149,4 +161,4 @@ private TextLine ScoreToTextLine(float[] srcData, int h, int w) } } -} \ No newline at end of file +} diff --git a/RapidOCRLib/DbNet.cs b/RapidOCRLib/DbNet.cs index 8c89475..a254df9 100644 --- a/RapidOCRLib/DbNet.cs +++ b/RapidOCRLib/DbNet.cs @@ -14,7 +14,7 @@ namespace RapidOCRLib { - class DbNet + class DbNet : IDisposable { private readonly float[] MeanValues = { 0.485F * 255F, 0.456F * 255F, 0.406F * 255F }; private readonly float[] NormValues = { 1.0F / 0.229F / 255.0F, 1.0F / 0.224F / 255.0F, 1.0F / 0.225F / 255.0F }; @@ -27,7 +27,19 @@ public DbNet() { } ~DbNet() { - dbNet.Dispose(); + Dispose(false); + } + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + private void Dispose(bool disposing) + { + dbNet?.Dispose(); + dbNet = null; } public async Task InitModel(string path, int numThread) @@ -206,32 +218,7 @@ private static List GetMiniBox(VectorOfPoint contours, out float minEdge public static int CompareByX(PointF left, PointF right) { - if (left == null && right == null) - { - return 1; - } - - if (left == null) - { - return 0; - } - - if (right == null) - { - return 1; - } - - if (left.X > right.X) - { - return 1; - } - - if (left.X == right.X) - { - return 0; - } - - return -1; + return left.X.CompareTo(right.X); } private static double GetScore(VectorOfPoint contours, Mat fMapMat) diff --git a/RapidOCRLib/OcrLite.cs b/RapidOCRLib/OcrLite.cs index 28d430e..0f4589f 100644 --- a/RapidOCRLib/OcrLite.cs +++ b/RapidOCRLib/OcrLite.cs @@ -12,7 +12,7 @@ namespace RapidOCRLib { - public partial class OcrLite + public partial class OcrLite : IDisposable { public bool isPartImg { get; set; } public bool isDebugImg { get; set; } @@ -50,6 +50,17 @@ public OcrLite() angleNet = new AngleNet(); crnnNet = new CrnnNet(); } + + /// + /// Releases the native ONNX Runtime sessions owned by this OCR engine. + /// + public void Dispose() + { + dbNet.Dispose(); + angleNet.Dispose(); + crnnNet.Dispose(); + GC.SuppressFinalize(this); + } /// /// constructor /// diff --git a/RapidOCRSchedule.Core/Models.cs b/RapidOCRSchedule.Core/Models.cs new file mode 100644 index 0000000..5f01cb0 --- /dev/null +++ b/RapidOCRSchedule.Core/Models.cs @@ -0,0 +1,161 @@ +namespace RapidOCRSchedule.Core; + +public readonly record struct OcrBounds(float Left, float Top, float Right, float Bottom) +{ + public float Width => Math.Max(0, Right - Left); + public float Height => Math.Max(0, Bottom - Top); + public float CenterX => (Left + Right) / 2F; + public float CenterY => (Top + Bottom) / 2F; + + public static OcrBounds FromLTRB(float left, float top, float right, float bottom) + { + if (!float.IsFinite(left) || !float.IsFinite(top) || + !float.IsFinite(right) || !float.IsFinite(bottom)) + { + throw new ArgumentOutOfRangeException(nameof(left), "OCR coordinates must be finite numbers."); + } + + if (right < left || bottom < top) + { + throw new ArgumentException("OCR bounds must have non-negative width and height."); + } + + return new OcrBounds(left, top, right, bottom); + } +} + +public sealed record OcrToken( + string SourceImageId, + string Text, + OcrBounds Bounds, + float Confidence) +{ + public string SourceImageId { get; init; } = + string.IsNullOrWhiteSpace(SourceImageId) + ? throw new ArgumentException("A source image id is required.", nameof(SourceImageId)) + : SourceImageId; + + public string Text { get; init; } = Text?.Trim() ?? string.Empty; + + public float Confidence { get; init; } = + float.IsFinite(Confidence) ? Math.Clamp(Confidence, 0F, 1F) : 0F; +} + +public sealed class GeometryOptions +{ + public float RowToleranceFactor { get; set; } = 0.72F; + public float MinimumRowTolerance { get; set; } = 0.006F; + public float ColumnToleranceFactor { get; set; } = 0.72F; + public float MinimumColumnTolerance { get; set; } = 0.012F; + public float LowConfidenceThreshold { get; set; } = 0.62F; + public int MinimumPopulatedTargetCells { get; set; } = 1; +} + +public sealed class TableLayoutProfile +{ + public int DateColumn { get; set; } = 1; + public int WeekdayColumn { get; set; } = 2; + public int Role1Column { get; set; } = 3; + public int Role2Column { get; set; } = 4; + public int Role3Column { get; set; } = -2; + public int Role4Column { get; set; } = -1; + public float BodyTop { get; set; } = 0F; + public string CellTextSeparator { get; set; } = "、"; + public GeometryOptions Geometry { get; set; } = new(); + + public IReadOnlyList TargetColumns => + [DateColumn, WeekdayColumn, Role1Column, Role2Column, Role3Column, Role4Column]; + + public void Validate() + { + if (TargetColumns.Any(static value => value == 0)) + { + throw new ArgumentException("Column 0 is invalid. Use 1 for the first column or -1 for the last column."); + } + + if (TargetColumns.Distinct().Count() != TargetColumns.Count) + { + throw new ArgumentException("The six target columns must be different."); + } + + if (BodyTop is < 0F or >= 1F) + { + throw new ArgumentOutOfRangeException(nameof(BodyTop), "BodyTop must be within [0, 1)."); + } + + ArgumentNullException.ThrowIfNull(Geometry); + } +} + +public enum ScheduleIssueCode +{ + MissingWorkday, + DuplicateDate, + InvalidDate, + InvalidWeekday, + WeekdayMismatch, + EmptyRole1, + EmptyRole2, + EmptyRole3, + EmptyRole4, + AmbiguousRow, + AmbiguousColumn, + LowOcrConfidence, + MultipleMonths, + OutOfTargetMonth, + UnassignedOcrToken, + InsufficientColumns, +} + +public sealed record ScheduleIssue( + ScheduleIssueCode Code, + string Message, + string? PropertyName = null, + string? SourceImageId = null); + +public sealed class ScheduleCandidate +{ + public string RawDateText { get; set; } = string.Empty; + public string RawWeekdayText { get; set; } = string.Empty; + public string Role1 { get; set; } = string.Empty; + public string Role2 { get; set; } = string.Empty; + public string Role3 { get; set; } = string.Empty; + public string Role4 { get; set; } = string.Empty; + public string SourceImageId { get; set; } = string.Empty; + public float RowCenterY { get; set; } + public List Issues { get; } = []; + public List SourceTokens { get; } = []; +} + +public sealed class ScheduleRow +{ + public DateOnly? Date { get; set; } + public string RawDateText { get; set; } = string.Empty; + public string Weekday { get; set; } = string.Empty; + public string Role1 { get; set; } = string.Empty; + public string Role2 { get; set; } = string.Empty; + public string Role3 { get; set; } = string.Empty; + public string Role4 { get; set; } = string.Empty; + public string SourceImageId { get; set; } = string.Empty; + public bool IsMissingPlaceholder { get; set; } + public List Issues { get; } = []; +} + +public sealed class ScheduleExtractionResult +{ + public List Candidates { get; } = []; + public List UnassignedTokens { get; } = []; + public List Issues { get; } = []; +} + +public sealed class ScheduleBuildResult +{ + public List Rows { get; } = []; + public List UnlocatedCandidates { get; } = []; + public List WeekendCandidates { get; } = []; + public List DuplicateCandidates { get; } = []; + public List Issues { get; } = []; + + public int ProblemRowCount => Rows.Count(static row => row.Issues.Count > 0); + public bool HasProblems => ProblemRowCount > 0 || Issues.Count > 0 || UnlocatedCandidates.Count > 0; +} diff --git a/RapidOCRSchedule.Core/RapidOCRSchedule.Core.csproj b/RapidOCRSchedule.Core/RapidOCRSchedule.Core.csproj new file mode 100644 index 0000000..9ed914b --- /dev/null +++ b/RapidOCRSchedule.Core/RapidOCRSchedule.Core.csproj @@ -0,0 +1,9 @@ + + + + net10.0 + enable + enable + + + diff --git a/RapidOCRSchedule.Core/ScheduleExtractor.cs b/RapidOCRSchedule.Core/ScheduleExtractor.cs new file mode 100644 index 0000000..ef524d9 --- /dev/null +++ b/RapidOCRSchedule.Core/ScheduleExtractor.cs @@ -0,0 +1,520 @@ +namespace RapidOCRSchedule.Core; + +/// +/// Converts unordered, normalized OCR boxes into schedule-row candidates. +/// It never relies on the OCR engine's return order. +/// +public sealed class ScheduleExtractor +{ + public ScheduleExtractionResult Extract( + IEnumerable tokens, + TableLayoutProfile? profile = null) + { + ArgumentNullException.ThrowIfNull(tokens); + profile ??= new TableLayoutProfile(); + profile.Validate(); + + ScheduleExtractionResult result = new(); + OcrToken[] materialized = tokens + .Where(static token => !string.IsNullOrWhiteSpace(token.Text)) + .ToArray(); + + IGrouping[] sources = materialized + .GroupBy(static token => token.SourceImageId, StringComparer.OrdinalIgnoreCase) + .OrderBy(static group => group.Key, StringComparer.OrdinalIgnoreCase) + .ToArray(); + List sharedColumnCenters = InferSharedColumnCenters(sources, profile, result); + + foreach (IGrouping source in sources) + { + ExtractSource(source.Key, source.ToArray(), profile, sharedColumnCenters, result); + } + + return result; + } + + private static void ExtractSource( + string sourceImageId, + IReadOnlyList sourceTokens, + TableLayoutProfile profile, + IReadOnlyList sharedColumnCenters, + ScheduleExtractionResult result) + { + List bodyTokens = sourceTokens + .Where(token => token.Bounds.CenterY >= profile.BodyTop) + .OrderBy(static token => token.Bounds.CenterY) + .ThenBy(static token => token.Bounds.CenterX) + .ToList(); + + if (bodyTokens.Count == 0) + { + result.Issues.Add(new ScheduleIssue( + ScheduleIssueCode.UnassignedOcrToken, + "图片中没有可用于表格解析的 OCR 文本。", + SourceImageId: sourceImageId)); + return; + } + + float medianHeight = Median(bodyTokens.Select(static token => token.Bounds.Height).Where(static value => value > 0)); + float rowTolerance = Math.Max( + profile.Geometry.MinimumRowTolerance, + medianHeight * profile.Geometry.RowToleranceFactor); + List rows = ClusterRows(bodyTokens, rowTolerance); + + float medianWidth = Median(bodyTokens.Select(static token => token.Bounds.Width).Where(static value => value > 0)); + float columnTolerance = Math.Max( + profile.Geometry.MinimumColumnTolerance, + medianWidth * profile.Geometry.ColumnToleranceFactor); + IReadOnlyList columns = sharedColumnCenters; + + int requiredPositiveColumn = profile.TargetColumns.Where(static value => value > 0).DefaultIfEmpty(0).Max(); + int requiredColumnCount = Math.Max(requiredPositiveColumn, profile.TargetColumns.Count); + if (columns.Count < requiredColumnCount) + { + result.Issues.Add(new ScheduleIssue( + ScheduleIssueCode.InsufficientColumns, + $"{Path.GetFileName(sourceImageId)} 仅推断出 {columns.Count} 列,无法可靠映射全部 6 个目标字段;请检查图片或调整右侧列序号。", + SourceImageId: sourceImageId)); + } + + int[] resolvedTargets = profile.TargetColumns + .Select(column => ResolveColumnIndex(column, columns.Count)) + .ToArray(); + bool targetCollision = resolvedTargets.Where(static index => index >= 0).Distinct().Count() != + resolvedTargets.Count(static index => index >= 0); + + float[] dateRowCenters = rows + .Where(static row => RowContainsDate(row)) + .Select(static row => row.Center) + .Order() + .ToArray(); + float typicalRowGap = Median( + dateRowCenters.Zip(dateRowCenters.Skip(1), static (top, bottom) => bottom - top) + .Where(static gap => gap > 0)); + float bodyMinimumY = dateRowCenters.Length > 0 + ? dateRowCenters[0] - Math.Max(typicalRowGap, rowTolerance * 2F) + : profile.BodyTop; + float bodyMaximumY = dateRowCenters.Length > 0 + ? dateRowCenters[^1] + Math.Max(typicalRowGap, rowTolerance * 2F) + : 1F; + + foreach (RowCluster row in rows) + { + float assignmentTolerance = GetAssignmentTolerance(columns, columnTolerance); + Dictionary> cells = AssignCells(row, columns, assignmentTolerance, out List rejectedTokens); + result.UnassignedTokens.AddRange(rejectedTokens); + string dateText = JoinCell(cells, resolvedTargets[0], string.Empty); + string weekdayText = JoinCell(cells, resolvedTargets[1], string.Empty); + string role1 = JoinCell(cells, resolvedTargets[2], profile.CellTextSeparator); + string role2 = JoinCell(cells, resolvedTargets[3], profile.CellTextSeparator); + string role3 = JoinCell(cells, resolvedTargets[4], profile.CellTextSeparator); + string role4 = JoinCell(cells, resolvedTargets[5], profile.CellTextSeparator); + + if (IsHeaderRow(dateText, weekdayText)) + { + continue; + } + + int populatedTargetCells = new[] { dateText, weekdayText, role1, role2, role3, role4 } + .Count(static value => !string.IsNullOrWhiteSpace(value)); + bool hasDate = DateTextParser.TryParseMonthDay(dateText, out _, out _); + bool withinDataBody = row.Center >= bodyMinimumY && row.Center <= bodyMaximumY; + if (!hasDate && (!withinDataBody || populatedTargetCells < profile.Geometry.MinimumPopulatedTargetCells)) + { + result.UnassignedTokens.AddRange(row.Tokens); + continue; + } + + ScheduleCandidate candidate = new() + { + SourceImageId = sourceImageId, + RawDateText = dateText, + RawWeekdayText = weekdayText, + Role1 = role1, + Role2 = role2, + Role3 = role3, + Role4 = role4, + RowCenterY = row.Center, + }; + candidate.SourceTokens.AddRange(row.Tokens); + + if (!hasDate) + { + candidate.Issues.Add(new ScheduleIssue( + ScheduleIssueCode.InvalidDate, + "日期无法识别,请手动检查。", + nameof(ScheduleRow.RawDateText), + sourceImageId)); + } + + if (targetCollision || resolvedTargets.Any(static index => index < 0)) + { + candidate.Issues.Add(new ScheduleIssue( + ScheduleIssueCode.AmbiguousColumn, + "目标列映射不完整或发生重叠,请调整岗位三、岗位四列序号。", + SourceImageId: sourceImageId)); + } + + if (row.CenterSpan > rowTolerance * 0.85F) + { + candidate.Issues.Add(new ScheduleIssue( + ScheduleIssueCode.AmbiguousRow, + "本行文字的纵向位置分散,可能跨越了相邻两行,请对照原图检查。", + SourceImageId: sourceImageId)); + } + + if (HasBoundaryAmbiguity(row, columns, resolvedTargets, columnTolerance)) + { + candidate.Issues.Add(new ScheduleIssue( + ScheduleIssueCode.AmbiguousColumn, + "本行存在靠近两列边界的文字,列归属需要人工检查。", + SourceImageId: sourceImageId)); + } + + if (row.Tokens.Any(token => token.Confidence < profile.Geometry.LowConfidenceThreshold)) + { + candidate.Issues.Add(new ScheduleIssue( + ScheduleIssueCode.LowOcrConfidence, + "本行包含低置信度 OCR 文字,请对照原图检查。", + SourceImageId: sourceImageId)); + } + + result.Candidates.Add(candidate); + } + + if (result.UnassignedTokens.Any(token => + string.Equals(token.SourceImageId, sourceImageId, StringComparison.OrdinalIgnoreCase))) + { + int count = result.UnassignedTokens.Count(token => + string.Equals(token.SourceImageId, sourceImageId, StringComparison.OrdinalIgnoreCase)); + result.Issues.Add(new ScheduleIssue( + ScheduleIssueCode.UnassignedOcrToken, + $"有 {count} 个 OCR 文本未形成有效排班行,可能是标题、手绘标记或识别噪声。", + SourceImageId: sourceImageId)); + } + } + + private static List ClusterRows(IReadOnlyList tokens, float tolerance) + { + List rows = []; + foreach (OcrToken token in tokens) + { + RowCluster? best = rows.Count == 0 ? null : rows[^1]; + if (best is null || Math.Abs(token.Bounds.CenterY - best.Center) > tolerance) + { + best = new RowCluster(); + rows.Add(best); + } + + best.Add(token); + } + + return rows; + } + + private static List InferSharedColumnCenters( + IReadOnlyList> sources, + TableLayoutProfile profile, + ScheduleExtractionResult result) + { + List positioned = []; + List<(RowCluster Row, int GlobalIndex)> fallbackRows = []; + int globalRowIndex = 0; + foreach (IGrouping source in sources) + { + List sourceTokens = source + .Where(token => token.Bounds.CenterY >= profile.BodyTop && !string.IsNullOrWhiteSpace(token.Text)) + .OrderBy(static token => token.Bounds.CenterY) + .ThenBy(static token => token.Bounds.CenterX) + .ToList(); + float medianHeight = Median(sourceTokens.Select(static token => token.Bounds.Height).Where(static value => value > 0)); + float rowTolerance = Math.Max( + profile.Geometry.MinimumRowTolerance, + medianHeight * profile.Geometry.RowToleranceFactor); + foreach (RowCluster row in ClusterRows(sourceTokens, rowTolerance)) + { + fallbackRows.Add((row, globalRowIndex)); + if (IsLikelyTableRow(row)) + { + positioned.AddRange(row.Tokens.Select(token => new PositionedToken(token, globalRowIndex))); + } + + globalRowIndex++; + } + } + + if (positioned.Count == 0) + { + positioned.AddRange(fallbackRows.SelectMany( + static entry => entry.Row.Tokens.Select(token => new PositionedToken(token, entry.GlobalIndex)))); + } + + float medianWidth = Median(positioned.Select(static item => item.Token.Bounds.Width).Where(static value => value > 0)); + float tolerance = Math.Max( + profile.Geometry.MinimumColumnTolerance, + medianWidth * profile.Geometry.ColumnToleranceFactor); + + List clusters = []; + foreach (PositionedToken item in positioned.OrderBy(static item => item.Token.Bounds.CenterX)) + { + ColumnCluster? nearest = clusters + .Where(cluster => Math.Abs(cluster.Center - item.Token.Bounds.CenterX) <= tolerance) + .OrderBy(cluster => Math.Abs(cluster.Center - item.Token.Bounds.CenterX)) + .FirstOrDefault(); + if (nearest is null) + { + nearest = new ColumnCluster(); + clusters.Add(nearest); + } + + nearest.Add(item); + } + + List ordered = clusters.OrderBy(static cluster => cluster.Center).ToList(); + int requiredColumnCount = Math.Max( + profile.TargetColumns.Where(static value => value > 0).DefaultIfEmpty(0).Max(), + profile.TargetColumns.Count); + List recurring = ordered.Where(static cluster => cluster.RowCount >= 2).ToList(); + if (recurring.Count < requiredColumnCount) + { + return ordered.Select(static cluster => cluster.Center).ToList(); + } + + float typicalGap = Median( + recurring.Zip(recurring.Skip(1), static (left, right) => right.Center - left.Center) + .Where(gap => gap > tolerance * 1.2F)); + List selected = [.. recurring]; + int retainedSparse = 0; + foreach (ColumnCluster sparse in ordered.Where(static cluster => cluster.RowCount == 1)) + { + if (FitsMissingGridPosition(sparse.Center, recurring, typicalGap)) + { + selected.Add(sparse); + retainedSparse++; + } + } + + if (retainedSparse > 0) + { + result.Issues.Add(new ScheduleIssue( + ScheduleIssueCode.AmbiguousColumn, + $"列模型中有 {retainedSparse} 列只在单行出现,已按表格间距保留,请重点检查这些列。")); + } + + return selected.OrderBy(static cluster => cluster.Center).Select(static cluster => cluster.Center).ToList(); + } + + private static bool FitsMissingGridPosition( + float center, + IReadOnlyList recurring, + float typicalGap) + { + if (typicalGap <= 0 || recurring.Count < 2) + { + return false; + } + + ColumnCluster? left = recurring.LastOrDefault(cluster => cluster.Center < center); + ColumnCluster? right = recurring.FirstOrDefault(cluster => cluster.Center > center); + const float minimumFactor = 0.42F; + const float maximumFactor = 1.65F; + + if (left is not null && right is not null) + { + float leftGap = center - left.Center; + float rightGap = right.Center - center; + return right.Center - left.Center > typicalGap * 1.55F && + leftGap >= typicalGap * minimumFactor && leftGap <= typicalGap * maximumFactor && + rightGap >= typicalGap * minimumFactor && rightGap <= typicalGap * maximumFactor; + } + + float edgeGap = left is not null ? center - left.Center : right!.Center - center; + return edgeGap >= typicalGap * minimumFactor && edgeGap <= typicalGap * maximumFactor; + } + + private static bool IsLikelyTableRow(RowCluster row) + { + if (RowContainsDate(row)) + { + return true; + } + + string combined = string.Concat( + row.Tokens.OrderBy(static token => token.Bounds.CenterX).Select(static token => token.Text)); + return combined.Contains("日期", StringComparison.Ordinal) && + (combined.Contains("星期", StringComparison.Ordinal) || combined.Contains("周", StringComparison.Ordinal)); + } + + private static bool RowContainsDate(RowCluster row) + { + OcrToken[] ordered = row.Tokens.OrderBy(static token => token.Bounds.CenterX).ToArray(); + for (int count = 1; count <= Math.Min(3, ordered.Length); count++) + { + string candidate = string.Concat(ordered.Take(count).Select(static token => token.Text)); + if (DateTextParser.TryParseMonthDay(candidate, out _, out _)) + { + return true; + } + } + + return false; + } + + private static Dictionary> AssignCells( + RowCluster row, + IReadOnlyList columns, + float assignmentTolerance, + out List rejectedTokens) + { + Dictionary> cells = []; + rejectedTokens = []; + if (columns.Count == 0) + { + rejectedTokens.AddRange(row.Tokens); + return cells; + } + + foreach (OcrToken token in row.Tokens) + { + int columnIndex = Enumerable.Range(0, columns.Count) + .OrderBy(index => Math.Abs(columns[index] - token.Bounds.CenterX)) + .First(); + if (Math.Abs(columns[columnIndex] - token.Bounds.CenterX) > assignmentTolerance) + { + rejectedTokens.Add(token); + continue; + } + + if (!cells.TryGetValue(columnIndex, out List? cellTokens)) + { + cellTokens = []; + cells[columnIndex] = cellTokens; + } + + cellTokens.Add(token); + } + + return cells; + } + + private static float GetAssignmentTolerance(IReadOnlyList columns, float columnTolerance) + { + float typicalGap = Median( + columns.Zip(columns.Skip(1), static (left, right) => right - left) + .Where(static gap => gap > 0)); + float preferred = Math.Max(0.018F, columnTolerance * 2.2F); + return typicalGap > 0 ? Math.Min(preferred, typicalGap * 0.42F) : preferred; + } + + private static string JoinCell( + IReadOnlyDictionary> cells, + int columnIndex, + string separator) + { + if (columnIndex < 0 || !cells.TryGetValue(columnIndex, out List? tokens)) + { + return string.Empty; + } + + return string.Join( + separator, + tokens.OrderBy(static token => token.Bounds.Left) + .Select(static token => token.Text.Trim()) + .Where(static text => text.Length > 0)); + } + + private static bool HasBoundaryAmbiguity( + RowCluster row, + IReadOnlyList columns, + IReadOnlyList targetColumns, + float columnTolerance) + { + if (columns.Count < 2) + { + return true; + } + + HashSet targetSet = targetColumns.Where(static index => index >= 0).ToHashSet(); + foreach (OcrToken token in row.Tokens) + { + int[] nearest = Enumerable.Range(0, columns.Count) + .OrderBy(index => Math.Abs(columns[index] - token.Bounds.CenterX)) + .Take(2) + .ToArray(); + if (nearest.Length < 2 || !targetSet.Contains(nearest[0])) + { + continue; + } + + float firstDistance = Math.Abs(columns[nearest[0]] - token.Bounds.CenterX); + float secondDistance = Math.Abs(columns[nearest[1]] - token.Bounds.CenterX); + if (secondDistance - firstDistance < columnTolerance * 0.22F) + { + return true; + } + } + + return false; + } + + private static int ResolveColumnIndex(int configuredIndex, int columnCount) => + configuredIndex > 0 ? configuredIndex - 1 : columnCount + configuredIndex; + + private static bool IsHeaderRow(string dateText, string weekdayText) + { + string date = dateText.Replace(" ", string.Empty, StringComparison.Ordinal); + string weekday = weekdayText.Replace(" ", string.Empty, StringComparison.Ordinal); + return (date.Contains("日期", StringComparison.Ordinal) || date == "日") && + (weekday.Contains("星期", StringComparison.Ordinal) || weekday.Contains("周", StringComparison.Ordinal)); + } + + private static float Median(IEnumerable values) + { + float[] sorted = values.Order().ToArray(); + if (sorted.Length == 0) + { + return 0F; + } + + int middle = sorted.Length / 2; + return sorted.Length % 2 == 0 + ? (sorted[middle - 1] + sorted[middle]) / 2F + : sorted[middle]; + } + + private sealed class RowCluster + { + private float _centerTotal; + private float _minimumCenter = float.PositiveInfinity; + private float _maximumCenter = float.NegativeInfinity; + + public List Tokens { get; } = []; + public float Center => Tokens.Count == 0 ? 0F : _centerTotal / Tokens.Count; + public float CenterSpan => Tokens.Count == 0 ? 0F : _maximumCenter - _minimumCenter; + + public void Add(OcrToken token) + { + Tokens.Add(token); + _centerTotal += token.Bounds.CenterY; + _minimumCenter = Math.Min(_minimumCenter, token.Bounds.CenterY); + _maximumCenter = Math.Max(_maximumCenter, token.Bounds.CenterY); + } + } + + private sealed class ColumnCluster + { + private float _centerTotal; + + public List Items { get; } = []; + public float Center => Items.Count == 0 ? 0F : _centerTotal / Items.Count; + public int RowCount => Items.Select(static item => item.RowIndex).Distinct().Count(); + + public void Add(PositionedToken item) + { + Items.Add(item); + _centerTotal += item.Token.Bounds.CenterX; + } + } + + private sealed record PositionedToken(OcrToken Token, int RowIndex); +} diff --git a/RapidOCRSchedule.Core/ScheduleService.cs b/RapidOCRSchedule.Core/ScheduleService.cs new file mode 100644 index 0000000..90027e8 --- /dev/null +++ b/RapidOCRSchedule.Core/ScheduleService.cs @@ -0,0 +1,328 @@ +namespace RapidOCRSchedule.Core; + +/// +/// Merges extracted rows by date, creates all missing workdays, removes weekends, +/// and performs the business validations required by the schedule workflow. +/// +public sealed class ScheduleService +{ + public ScheduleBuildResult Build( + int targetYear, + int targetMonth, + IEnumerable candidates) + { + if (targetYear is < 1900 or > 9999) + { + throw new ArgumentOutOfRangeException(nameof(targetYear)); + } + + if (targetMonth is < 1 or > 12) + { + throw new ArgumentOutOfRangeException(nameof(targetMonth)); + } + + ArgumentNullException.ThrowIfNull(candidates); + ScheduleBuildResult result = new(); + List located = []; + + foreach (ScheduleCandidate candidate in candidates) + { + // Build may be rerun when the user changes the target month. Remove findings that + // are relative to the previous target so they cannot leak into the new result. + candidate.Issues.RemoveAll(static issue => + issue.Code is ScheduleIssueCode.InvalidDate or + ScheduleIssueCode.OutOfTargetMonth or + ScheduleIssueCode.InvalidWeekday or + ScheduleIssueCode.WeekdayMismatch or + ScheduleIssueCode.EmptyRole1 or + ScheduleIssueCode.EmptyRole2 or + ScheduleIssueCode.EmptyRole3 or + ScheduleIssueCode.EmptyRole4); + + if (!DateTextParser.TryCreateDate(targetYear, candidate.RawDateText, out DateOnly date)) + { + AddIssueIfMissing( + candidate.Issues, + new ScheduleIssue( + ScheduleIssueCode.InvalidDate, + "日期无法识别,请手动填写有效的月/日。", + nameof(ScheduleRow.RawDateText), + candidate.SourceImageId)); + ValidateUnlocatedCandidate(candidate, date: null); + result.UnlocatedCandidates.Add(candidate); + continue; + } + + located.Add(new LocatedCandidate(candidate, date)); + } + + int[] recognizedMonths = located.Select(static item => item.Date.Month).Distinct().Order().ToArray(); + if (recognizedMonths.Length > 1) + { + result.Issues.Add(new ScheduleIssue( + ScheduleIssueCode.MultipleMonths, + $"4 张图片中识别到多个月份:{string.Join("、", recognizedMonths.Select(static month => $"{month}月"))}。请核对目标月份和原图。")); + } + + foreach (LocatedCandidate item in located.Where(item => item.Date.Month != targetMonth)) + { + AddIssueIfMissing( + item.Candidate.Issues, + new ScheduleIssue( + ScheduleIssueCode.OutOfTargetMonth, + $"识别日期 {item.Date:M/d} 不属于目标月份 {targetMonth} 月。", + nameof(ScheduleRow.RawDateText), + item.Candidate.SourceImageId)); + ValidateUnlocatedCandidate(item.Candidate, item.Date); + result.UnlocatedCandidates.Add(item.Candidate); + } + + List targetMonthCandidates = located + .Where(item => item.Date.Month == targetMonth) + .ToList(); + foreach (LocatedCandidate item in targetMonthCandidates.Where(static item => IsWeekend(item.Date.DayOfWeek))) + { + result.WeekendCandidates.Add(item.Candidate); + } + + Dictionary> byDate = targetMonthCandidates + .Where(static item => !IsWeekend(item.Date.DayOfWeek)) + .GroupBy(static item => item.Date) + .ToDictionary(static group => group.Key, static group => group.ToList()); + + DateOnly first = new(targetYear, targetMonth, 1); + DateOnly last = new(targetYear, targetMonth, DateTime.DaysInMonth(targetYear, targetMonth)); + for (DateOnly date = first; date <= last; date = date.AddDays(1)) + { + if (IsWeekend(date.DayOfWeek)) + { + continue; + } + + if (!byDate.TryGetValue(date, out List? matches) || matches.Count == 0) + { + ScheduleRow missing = new() + { + Date = date, + RawDateText = date.ToString("M/d"), + Weekday = WeekdayTextParser.ToChinese(date.DayOfWeek), + IsMissingPlaceholder = true, + }; + missing.Issues.Add(new ScheduleIssue( + ScheduleIssueCode.MissingWorkday, + "该工作日未在 4 张图片中找到,请手动补充。")); + result.Rows.Add(missing); + continue; + } + + LocatedCandidate selected = matches + .OrderBy(static item => item.Candidate.SourceImageId, StringComparer.OrdinalIgnoreCase) + .ThenBy(static item => item.Candidate.RowCenterY) + .First(); + ScheduleRow row = CreateRow(selected.Candidate, date); + + if (matches.Count > 1) + { + result.DuplicateCandidates.AddRange(matches.Select(static item => item.Candidate)); + string sources = string.Join( + "、", + matches.Select(static item => Path.GetFileName(item.Candidate.SourceImageId)).Distinct()); + row.SourceImageId = string.Join( + "; ", + matches.Select(static item => item.Candidate.SourceImageId).Distinct(StringComparer.OrdinalIgnoreCase)); + row.Issues.Add(new ScheduleIssue( + ScheduleIssueCode.DuplicateDate, + $"同一日期识别出 {matches.Count} 条记录({sources}),当前显示第一条,请对照原图决定。")); + } + + ValidateRow(row, selected.Candidate.RawWeekdayText); + result.Rows.Add(row); + } + + return result; + } + + public ScheduleBuildResult Revalidate( + int targetYear, + int targetMonth, + IEnumerable editedRows) + { + ArgumentNullException.ThrowIfNull(editedRows); + return Build(targetYear, targetMonth, CreateCandidatesFromRows(editedRows)); + } + + /// + /// Revalidates an untouched build result without losing duplicate or unlocated source rows. + /// UI callers with edited rows should use the enumerable overload and include their editable + /// unlocated rows, as the WinForms application does. + /// + public ScheduleBuildResult Revalidate(int targetYear, int targetMonth, ScheduleBuildResult previous) + { + ArgumentNullException.ThrowIfNull(previous); + List candidates = CreateCandidatesFromRows( + previous.Rows.Where(static row => + row.Issues.All(static issue => issue.Code != ScheduleIssueCode.DuplicateDate))); + candidates.AddRange(previous.UnlocatedCandidates); + candidates.AddRange(previous.DuplicateCandidates); + return Build(targetYear, targetMonth, candidates); + } + + private static List CreateCandidatesFromRows(IEnumerable editedRows) + { + List candidates = []; + foreach (ScheduleRow row in editedRows) + { + bool completelyEmpty = string.IsNullOrWhiteSpace(row.Role1) && + string.IsNullOrWhiteSpace(row.Role2) && + string.IsNullOrWhiteSpace(row.Role3) && + string.IsNullOrWhiteSpace(row.Role4); + if (row.IsMissingPlaceholder && completelyEmpty) + { + continue; + } + + ScheduleCandidate candidate = new() + { + RawDateText = !string.IsNullOrWhiteSpace(row.RawDateText) + ? row.RawDateText + : row.Date?.ToString("M/d") ?? string.Empty, + RawWeekdayText = row.Weekday, + Role1 = row.Role1, + Role2 = row.Role2, + Role3 = row.Role3, + Role4 = row.Role4, + SourceImageId = string.IsNullOrWhiteSpace(row.SourceImageId) ? "手动编辑" : row.SourceImageId, + }; + candidate.Issues.AddRange(row.Issues.Where(static issue => IsPersistentExtractionIssue(issue.Code))); + candidates.Add(candidate); + } + + return candidates; + } + + private static ScheduleRow CreateRow(ScheduleCandidate candidate, DateOnly date) + { + ScheduleRow row = new() + { + Date = date, + RawDateText = date.ToString("M/d"), + Weekday = WeekdayTextParser.ToChinese(date.DayOfWeek), + Role1 = candidate.Role1.Trim(), + Role2 = candidate.Role2.Trim(), + Role3 = candidate.Role3.Trim(), + Role4 = candidate.Role4.Trim(), + SourceImageId = candidate.SourceImageId, + }; + row.Issues.AddRange(candidate.Issues); + return row; + } + + private static void ValidateRow(ScheduleRow row, string rawWeekdayText) + { + if (row.Date is not DateOnly date) + { + row.Issues.Add(new ScheduleIssue( + ScheduleIssueCode.InvalidDate, + "日期无法识别。", + nameof(ScheduleRow.RawDateText))); + return; + } + + if (!WeekdayTextParser.TryParse(rawWeekdayText, out DayOfWeek recognizedWeekday)) + { + row.Issues.Add(new ScheduleIssue( + ScheduleIssueCode.InvalidWeekday, + "星期无法识别,已按日期自动计算。", + nameof(ScheduleRow.Weekday))); + } + else if (recognizedWeekday != date.DayOfWeek) + { + row.Issues.Add(new ScheduleIssue( + ScheduleIssueCode.WeekdayMismatch, + $"OCR 星期为“{rawWeekdayText}”,与日期对应的{WeekdayTextParser.ToChinese(date.DayOfWeek)}不一致。", + nameof(ScheduleRow.Weekday))); + } + + AddEmptyRoleIssue(row, row.Role1, ScheduleIssueCode.EmptyRole1, nameof(ScheduleRow.Role1), "岗位一(队长)为空。"); + AddEmptyRoleIssue(row, row.Role2, ScheduleIssueCode.EmptyRole2, nameof(ScheduleRow.Role2), "岗位二为空。"); + AddEmptyRoleIssue(row, row.Role3, ScheduleIssueCode.EmptyRole3, nameof(ScheduleRow.Role3), "岗位三为空。"); + AddEmptyRoleIssue(row, row.Role4, ScheduleIssueCode.EmptyRole4, nameof(ScheduleRow.Role4), "岗位四为空。"); + } + + private static void AddEmptyRoleIssue( + ScheduleRow row, + string value, + ScheduleIssueCode code, + string propertyName, + string message) + { + if (string.IsNullOrWhiteSpace(value)) + { + row.Issues.Add(new ScheduleIssue(code, message, propertyName, row.SourceImageId)); + } + } + + private static void AddIssueIfMissing(List issues, ScheduleIssue issue) + { + if (issues.All(existing => existing.Code != issue.Code)) + { + issues.Add(issue); + } + } + + private static void ValidateUnlocatedCandidate(ScheduleCandidate candidate, DateOnly? date) + { + if (!WeekdayTextParser.TryParse(candidate.RawWeekdayText, out DayOfWeek weekday)) + { + AddIssueIfMissing( + candidate.Issues, + new ScheduleIssue( + ScheduleIssueCode.InvalidWeekday, + "星期无法识别。", + nameof(ScheduleRow.Weekday), + candidate.SourceImageId)); + } + else if (date.HasValue && weekday != date.Value.DayOfWeek) + { + AddIssueIfMissing( + candidate.Issues, + new ScheduleIssue( + ScheduleIssueCode.WeekdayMismatch, + $"OCR 星期为“{candidate.RawWeekdayText}”,与日期对应的{WeekdayTextParser.ToChinese(date.Value.DayOfWeek)}不一致。", + nameof(ScheduleRow.Weekday), + candidate.SourceImageId)); + } + + AddCandidateEmptyRoleIssue(candidate, candidate.Role1, ScheduleIssueCode.EmptyRole1, nameof(ScheduleRow.Role1), "岗位一(队长)为空。"); + AddCandidateEmptyRoleIssue(candidate, candidate.Role2, ScheduleIssueCode.EmptyRole2, nameof(ScheduleRow.Role2), "岗位二为空。"); + AddCandidateEmptyRoleIssue(candidate, candidate.Role3, ScheduleIssueCode.EmptyRole3, nameof(ScheduleRow.Role3), "岗位三为空。"); + AddCandidateEmptyRoleIssue(candidate, candidate.Role4, ScheduleIssueCode.EmptyRole4, nameof(ScheduleRow.Role4), "岗位四为空。"); + } + + private static void AddCandidateEmptyRoleIssue( + ScheduleCandidate candidate, + string value, + ScheduleIssueCode code, + string propertyName, + string message) + { + if (string.IsNullOrWhiteSpace(value)) + { + AddIssueIfMissing( + candidate.Issues, + new ScheduleIssue(code, message, propertyName, candidate.SourceImageId)); + } + } + + private static bool IsWeekend(DayOfWeek weekday) => + weekday is DayOfWeek.Saturday or DayOfWeek.Sunday; + + private static bool IsPersistentExtractionIssue(ScheduleIssueCode code) => code is + ScheduleIssueCode.DuplicateDate or + ScheduleIssueCode.AmbiguousRow or + ScheduleIssueCode.AmbiguousColumn or + ScheduleIssueCode.LowOcrConfidence or + ScheduleIssueCode.InsufficientColumns; + + private sealed record LocatedCandidate(ScheduleCandidate Candidate, DateOnly Date); +} diff --git a/RapidOCRSchedule.Core/TextParsers.cs b/RapidOCRSchedule.Core/TextParsers.cs new file mode 100644 index 0000000..bcc4deb --- /dev/null +++ b/RapidOCRSchedule.Core/TextParsers.cs @@ -0,0 +1,120 @@ +using System.Globalization; +using System.Text; +using System.Text.RegularExpressions; + +namespace RapidOCRSchedule.Core; + +public static partial class DateTextParser +{ + [GeneratedRegex(@"^\s*(?\d{1,2})\s*(?:[/\-.]|月)\s*(?\d{1,2})\s*(?:日|号)?\s*$", RegexOptions.CultureInvariant)] + private static partial Regex MonthDayRegex(); + + public static bool TryParseMonthDay(string? value, out int month, out int day) + { + month = 0; + day = 0; + + if (string.IsNullOrWhiteSpace(value)) + { + return false; + } + + string normalized = Normalize(value); + Match match = MonthDayRegex().Match(normalized); + if (!match.Success || + !int.TryParse(match.Groups["month"].Value, NumberStyles.None, CultureInfo.InvariantCulture, out month) || + !int.TryParse(match.Groups["day"].Value, NumberStyles.None, CultureInfo.InvariantCulture, out day) || + month is < 1 or > 12 || day is < 1 or > 31) + { + month = 0; + day = 0; + return false; + } + + return true; + } + + public static bool TryCreateDate(int year, string? value, out DateOnly date) + { + date = default; + if (!TryParseMonthDay(value, out int month, out int day)) + { + return false; + } + + try + { + date = new DateOnly(year, month, day); + return true; + } + catch (ArgumentOutOfRangeException) + { + return false; + } + } + + public static string Normalize(string value) => + value.Normalize(NormalizationForm.FormKC) + .Replace('/', '/') + .Replace('-', '-') + .Replace('—', '-') + .Trim(); +} + +public static class WeekdayTextParser +{ + private static readonly IReadOnlyDictionary Values = + new Dictionary(StringComparer.OrdinalIgnoreCase) + { + ["星期一"] = DayOfWeek.Monday, + ["周一"] = DayOfWeek.Monday, + ["礼拜一"] = DayOfWeek.Monday, + ["星期二"] = DayOfWeek.Tuesday, + ["周二"] = DayOfWeek.Tuesday, + ["礼拜二"] = DayOfWeek.Tuesday, + ["星期三"] = DayOfWeek.Wednesday, + ["周三"] = DayOfWeek.Wednesday, + ["礼拜三"] = DayOfWeek.Wednesday, + ["星期四"] = DayOfWeek.Thursday, + ["周四"] = DayOfWeek.Thursday, + ["礼拜四"] = DayOfWeek.Thursday, + ["星期五"] = DayOfWeek.Friday, + ["周五"] = DayOfWeek.Friday, + ["礼拜五"] = DayOfWeek.Friday, + ["星期六"] = DayOfWeek.Saturday, + ["周六"] = DayOfWeek.Saturday, + ["礼拜六"] = DayOfWeek.Saturday, + ["星期日"] = DayOfWeek.Sunday, + ["星期天"] = DayOfWeek.Sunday, + ["周日"] = DayOfWeek.Sunday, + ["周天"] = DayOfWeek.Sunday, + ["礼拜日"] = DayOfWeek.Sunday, + ["礼拜天"] = DayOfWeek.Sunday, + }; + + public static bool TryParse(string? value, out DayOfWeek weekday) + { + weekday = default; + if (string.IsNullOrWhiteSpace(value)) + { + return false; + } + + string normalized = value.Normalize(NormalizationForm.FormKC) + .Replace(" ", string.Empty, StringComparison.Ordinal) + .Trim(); + return Values.TryGetValue(normalized, out weekday); + } + + public static string ToChinese(DayOfWeek weekday) => weekday switch + { + DayOfWeek.Monday => "星期一", + DayOfWeek.Tuesday => "星期二", + DayOfWeek.Wednesday => "星期三", + DayOfWeek.Thursday => "星期四", + DayOfWeek.Friday => "星期五", + DayOfWeek.Saturday => "星期六", + DayOfWeek.Sunday => "星期日", + _ => throw new ArgumentOutOfRangeException(nameof(weekday)), + }; +} diff --git a/RapidOCRSchedule.Excel/ExportRow.cs b/RapidOCRSchedule.Excel/ExportRow.cs new file mode 100644 index 0000000..b474621 --- /dev/null +++ b/RapidOCRSchedule.Excel/ExportRow.cs @@ -0,0 +1,50 @@ +namespace RapidOCRSchedule.Excel; + +/// +/// Represents one row in an exported workday schedule. +/// +/// The calendar date for the row. +/// The weekday text displayed in Excel. +/// The name or text for position one (leader). +/// The name or text for position two. +/// The name or text for position three. +/// The name or text for position four. +public sealed record ExportRow( + DateOnly Date, + string? Weekday, + string? PositionOneLeader, + string? PositionTwo, + string? PositionThree, + string? PositionFour) +{ + /// + /// Creates an export row and derives its Chinese weekday text from . + /// + public ExportRow( + DateOnly date, + string? positionOneLeader, + string? positionTwo, + string? positionThree, + string? positionFour) + : this( + date, + GetChineseWeekday(date.DayOfWeek), + positionOneLeader, + positionTwo, + positionThree, + positionFour) + { + } + + private static string GetChineseWeekday(DayOfWeek dayOfWeek) => dayOfWeek switch + { + DayOfWeek.Monday => "星期一", + DayOfWeek.Tuesday => "星期二", + DayOfWeek.Wednesday => "星期三", + DayOfWeek.Thursday => "星期四", + DayOfWeek.Friday => "星期五", + DayOfWeek.Saturday => "星期六", + DayOfWeek.Sunday => "星期日", + _ => throw new ArgumentOutOfRangeException(nameof(dayOfWeek)), + }; +} diff --git a/RapidOCRSchedule.Excel/RapidOCRSchedule.Excel.csproj b/RapidOCRSchedule.Excel/RapidOCRSchedule.Excel.csproj new file mode 100644 index 0000000..9ed914b --- /dev/null +++ b/RapidOCRSchedule.Excel/RapidOCRSchedule.Excel.csproj @@ -0,0 +1,9 @@ + + + + net10.0 + enable + enable + + + diff --git a/RapidOCRSchedule.Excel/ScheduleExcelExporter.cs b/RapidOCRSchedule.Excel/ScheduleExcelExporter.cs new file mode 100644 index 0000000..bbe7a36 --- /dev/null +++ b/RapidOCRSchedule.Excel/ScheduleExcelExporter.cs @@ -0,0 +1,596 @@ +using System.Globalization; +using System.IO.Compression; +using System.Text; +using System.Xml; + +namespace RapidOCRSchedule.Excel; + +/// +/// Writes simplified workday schedules as Office Open XML workbooks. +/// +public static class ScheduleExcelExporter +{ + private const int MaximumDataRowCount = 1_048_575; + private const string SpreadsheetNamespace = "http://schemas.openxmlformats.org/spreadsheetml/2006/main"; + private const string PackageRelationshipsNamespace = "http://schemas.openxmlformats.org/package/2006/relationships"; + private const string OfficeRelationshipsNamespace = "http://schemas.openxmlformats.org/officeDocument/2006/relationships"; + private const string XmlNamespace = "http://www.w3.org/XML/1998/namespace"; + + private static readonly DateOnly MinimumExcelDate = new(1900, 1, 1); + + private static readonly string[] Headers = + [ + "日期", + "星期", + "岗位一(队长)", + "岗位二", + "岗位三", + "岗位四", + ]; + + /// + /// Exports to an XLSX file, replacing an existing file at the same path. + /// Weekend rows are omitted and the remaining rows are sorted by date. + /// + /// Destination path, including the .xlsx file name. + /// Schedule rows to export. + public static void Export(string filePath, IEnumerable rows) + { + ArgumentException.ThrowIfNullOrWhiteSpace(filePath); + + IReadOnlyList preparedRows = PrepareRows(rows); + string destinationPath = Path.GetFullPath(filePath); + string? directory = Path.GetDirectoryName(destinationPath); + if (string.IsNullOrEmpty(directory) || !Directory.Exists(directory)) + { + throw new DirectoryNotFoundException($"The destination directory does not exist: {directory}"); + } + + string temporaryPath = Path.Combine( + directory, + $".{Path.GetFileName(destinationPath)}.{Guid.NewGuid():N}.tmp"); + try + { + using (FileStream stream = new(temporaryPath, FileMode.CreateNew, FileAccess.Write, FileShare.None)) + { + WritePackage(stream, preparedRows, leaveOpen: true); + stream.Flush(flushToDisk: true); + } + + File.Move(temporaryPath, destinationPath, overwrite: true); + } + finally + { + if (File.Exists(temporaryPath)) + { + File.Delete(temporaryPath); + } + } + } + + /// + /// Exports to a writable stream as an XLSX workbook. + /// Weekend rows are omitted and the remaining rows are sorted by date. + /// + /// Writable destination stream. + /// Schedule rows to export. + /// + /// to keep open after export; + /// otherwise, . + /// + public static void Export(Stream destination, IEnumerable rows, bool leaveOpen = false) + { + ArgumentNullException.ThrowIfNull(destination); + + if (!destination.CanWrite) + { + throw new ArgumentException("The destination stream must be writable.", nameof(destination)); + } + + if (destination.CanSeek) + { + destination.Position = 0; + destination.SetLength(0); + } + + IReadOnlyList preparedRows = PrepareRows(rows); + WritePackage(destination, preparedRows, leaveOpen); + } + + private static IReadOnlyList PrepareRows(IEnumerable rows) + { + ArgumentNullException.ThrowIfNull(rows); + + List result = []; + HashSet dates = []; + int sourceIndex = 0; + + foreach (ExportRow? row in rows) + { + if (row is null) + { + throw new ArgumentException($"Row at index {sourceIndex} is null.", nameof(rows)); + } + + sourceIndex++; + + if (row.Date < MinimumExcelDate) + { + throw new ArgumentOutOfRangeException( + nameof(rows), + row.Date, + $"Excel dates must be on or after {MinimumExcelDate:yyyy-MM-dd}."); + } + + if (IsWeekend(row.Date.DayOfWeek)) + { + continue; + } + + if (!dates.Add(row.Date)) + { + throw new ArgumentException( + $"More than one row was supplied for {row.Date:yyyy-MM-dd}.", + nameof(rows)); + } + + ValidateCellText(row.Weekday, sourceIndex - 1, nameof(row.Weekday)); + ValidateCellText(row.PositionOneLeader, sourceIndex - 1, nameof(row.PositionOneLeader)); + ValidateCellText(row.PositionTwo, sourceIndex - 1, nameof(row.PositionTwo)); + ValidateCellText(row.PositionThree, sourceIndex - 1, nameof(row.PositionThree)); + ValidateCellText(row.PositionFour, sourceIndex - 1, nameof(row.PositionFour)); + + result.Add(row); + + if (result.Count > MaximumDataRowCount) + { + throw new ArgumentException( + $"An Excel worksheet can contain at most {MaximumDataRowCount:N0} data rows when a header row is present.", + nameof(rows)); + } + } + + result.Sort(static (left, right) => left.Date.CompareTo(right.Date)); + return result; + } + + private static void ValidateCellText(string? value, int rowIndex, string propertyName) + { + if (value is null) + { + return; + } + + if (value.Length > 32_767) + { + throw new ArgumentException( + $"{propertyName} at row index {rowIndex} exceeds Excel's 32,767-character cell limit.", + "rows"); + } + + try + { + XmlConvert.VerifyXmlChars(value); + } + catch (XmlException exception) + { + throw new ArgumentException( + $"{propertyName} at row index {rowIndex} contains a character that is not valid in XML.", + "rows", + exception); + } + } + + private static bool IsWeekend(DayOfWeek dayOfWeek) => + dayOfWeek is DayOfWeek.Saturday or DayOfWeek.Sunday; + + private static void WritePackage(Stream destination, IReadOnlyList rows, bool leaveOpen) + { + using ZipArchive archive = new(destination, ZipArchiveMode.Create, leaveOpen); + + WriteContentTypes(archive); + WriteRootRelationships(archive); + WriteWorkbook(archive); + WriteWorkbookRelationships(archive); + WriteStyles(archive); + WriteWorksheet(archive, rows); + } + + private static void WriteContentTypes(ZipArchive archive) + { + using XmlWriter writer = CreateXmlWriter(archive, "[Content_Types].xml"); + + writer.WriteStartDocument(); + writer.WriteStartElement("Types", "http://schemas.openxmlformats.org/package/2006/content-types"); + WriteContentTypeDefault(writer, "rels", "application/vnd.openxmlformats-package.relationships+xml"); + WriteContentTypeDefault(writer, "xml", "application/xml"); + WriteContentTypeOverride(writer, "/xl/workbook.xml", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"); + WriteContentTypeOverride(writer, "/xl/worksheets/sheet1.xml", "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"); + WriteContentTypeOverride(writer, "/xl/styles.xml", "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"); + writer.WriteEndElement(); + writer.WriteEndDocument(); + } + + private static void WriteContentTypeDefault(XmlWriter writer, string extension, string contentType) + { + writer.WriteStartElement("Default"); + writer.WriteAttributeString("Extension", extension); + writer.WriteAttributeString("ContentType", contentType); + writer.WriteEndElement(); + } + + private static void WriteContentTypeOverride(XmlWriter writer, string partName, string contentType) + { + writer.WriteStartElement("Override"); + writer.WriteAttributeString("PartName", partName); + writer.WriteAttributeString("ContentType", contentType); + writer.WriteEndElement(); + } + + private static void WriteRootRelationships(ZipArchive archive) + { + using XmlWriter writer = CreateXmlWriter(archive, "_rels/.rels"); + + writer.WriteStartDocument(); + writer.WriteStartElement("Relationships", PackageRelationshipsNamespace); + WriteRelationship( + writer, + "rId1", + "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument", + "xl/workbook.xml"); + writer.WriteEndElement(); + writer.WriteEndDocument(); + } + + private static void WriteWorkbook(ZipArchive archive) + { + using XmlWriter writer = CreateXmlWriter(archive, "xl/workbook.xml"); + + writer.WriteStartDocument(); + writer.WriteStartElement("workbook", SpreadsheetNamespace); + writer.WriteAttributeString("xmlns", "r", null, OfficeRelationshipsNamespace); + writer.WriteStartElement("bookViews"); + writer.WriteStartElement("workbookView"); + writer.WriteAttributeString("activeTab", "0"); + writer.WriteEndElement(); + writer.WriteEndElement(); + writer.WriteStartElement("sheets"); + writer.WriteStartElement("sheet"); + writer.WriteAttributeString("name", "排班表"); + writer.WriteAttributeString("sheetId", "1"); + writer.WriteAttributeString("r", "id", OfficeRelationshipsNamespace, "rId1"); + writer.WriteEndElement(); + writer.WriteEndElement(); + writer.WriteEndElement(); + writer.WriteEndDocument(); + } + + private static void WriteWorkbookRelationships(ZipArchive archive) + { + using XmlWriter writer = CreateXmlWriter(archive, "xl/_rels/workbook.xml.rels"); + + writer.WriteStartDocument(); + writer.WriteStartElement("Relationships", PackageRelationshipsNamespace); + WriteRelationship( + writer, + "rId1", + "http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet", + "worksheets/sheet1.xml"); + WriteRelationship( + writer, + "rId2", + "http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles", + "styles.xml"); + writer.WriteEndElement(); + writer.WriteEndDocument(); + } + + private static void WriteRelationship(XmlWriter writer, string id, string type, string target) + { + writer.WriteStartElement("Relationship"); + writer.WriteAttributeString("Id", id); + writer.WriteAttributeString("Type", type); + writer.WriteAttributeString("Target", target); + writer.WriteEndElement(); + } + + private static void WriteStyles(ZipArchive archive) + { + using XmlWriter writer = CreateXmlWriter(archive, "xl/styles.xml"); + + writer.WriteStartDocument(); + writer.WriteStartElement("styleSheet", SpreadsheetNamespace); + + writer.WriteStartElement("numFmts"); + writer.WriteAttributeString("count", "1"); + writer.WriteStartElement("numFmt"); + writer.WriteAttributeString("numFmtId", "164"); + writer.WriteAttributeString("formatCode", "m/d"); + writer.WriteEndElement(); + writer.WriteEndElement(); + + writer.WriteStartElement("fonts"); + writer.WriteAttributeString("count", "2"); + WriteFont(writer, bold: false); + WriteFont(writer, bold: true); + writer.WriteEndElement(); + + writer.WriteStartElement("fills"); + writer.WriteAttributeString("count", "2"); + WritePatternFill(writer, "none"); + WritePatternFill(writer, "gray125"); + writer.WriteEndElement(); + + writer.WriteStartElement("borders"); + writer.WriteAttributeString("count", "1"); + writer.WriteStartElement("border"); + writer.WriteElementString("left", string.Empty); + writer.WriteElementString("right", string.Empty); + writer.WriteElementString("top", string.Empty); + writer.WriteElementString("bottom", string.Empty); + writer.WriteElementString("diagonal", string.Empty); + writer.WriteEndElement(); + writer.WriteEndElement(); + + writer.WriteStartElement("cellStyleXfs"); + writer.WriteAttributeString("count", "1"); + WriteXf(writer, numberFormatId: 0, fontId: 0, applyNumberFormat: false, applyFont: false, center: false, includeXfId: false); + writer.WriteEndElement(); + + writer.WriteStartElement("cellXfs"); + writer.WriteAttributeString("count", "3"); + WriteXf(writer, numberFormatId: 0, fontId: 0, applyNumberFormat: false, applyFont: false, center: false); + WriteXf(writer, numberFormatId: 164, fontId: 0, applyNumberFormat: true, applyFont: false, center: false); + WriteXf(writer, numberFormatId: 0, fontId: 1, applyNumberFormat: false, applyFont: true, center: true); + writer.WriteEndElement(); + + writer.WriteStartElement("cellStyles"); + writer.WriteAttributeString("count", "1"); + writer.WriteStartElement("cellStyle"); + writer.WriteAttributeString("name", "Normal"); + writer.WriteAttributeString("xfId", "0"); + writer.WriteAttributeString("builtinId", "0"); + writer.WriteEndElement(); + writer.WriteEndElement(); + + writer.WriteStartElement("dxfs"); + writer.WriteAttributeString("count", "0"); + writer.WriteEndElement(); + writer.WriteStartElement("tableStyles"); + writer.WriteAttributeString("count", "0"); + writer.WriteAttributeString("defaultTableStyle", "TableStyleMedium2"); + writer.WriteAttributeString("defaultPivotStyle", "PivotStyleLight16"); + writer.WriteEndElement(); + + writer.WriteEndElement(); + writer.WriteEndDocument(); + } + + private static void WriteFont(XmlWriter writer, bool bold) + { + writer.WriteStartElement("font"); + if (bold) + { + writer.WriteElementString("b", string.Empty); + } + + writer.WriteStartElement("sz"); + writer.WriteAttributeString("val", "11"); + writer.WriteEndElement(); + writer.WriteStartElement("name"); + writer.WriteAttributeString("val", "Calibri"); + writer.WriteEndElement(); + writer.WriteStartElement("family"); + writer.WriteAttributeString("val", "2"); + writer.WriteEndElement(); + writer.WriteStartElement("scheme"); + writer.WriteAttributeString("val", "minor"); + writer.WriteEndElement(); + writer.WriteEndElement(); + } + + private static void WritePatternFill(XmlWriter writer, string patternType) + { + writer.WriteStartElement("fill"); + writer.WriteStartElement("patternFill"); + writer.WriteAttributeString("patternType", patternType); + writer.WriteEndElement(); + writer.WriteEndElement(); + } + + private static void WriteXf( + XmlWriter writer, + int numberFormatId, + int fontId, + bool applyNumberFormat, + bool applyFont, + bool center, + bool includeXfId = true) + { + writer.WriteStartElement("xf"); + writer.WriteAttributeString("numFmtId", numberFormatId.ToString(CultureInfo.InvariantCulture)); + writer.WriteAttributeString("fontId", fontId.ToString(CultureInfo.InvariantCulture)); + writer.WriteAttributeString("fillId", "0"); + writer.WriteAttributeString("borderId", "0"); + if (includeXfId) + { + writer.WriteAttributeString("xfId", "0"); + } + + if (applyNumberFormat) + { + writer.WriteAttributeString("applyNumberFormat", "1"); + } + + if (applyFont) + { + writer.WriteAttributeString("applyFont", "1"); + } + + if (center) + { + writer.WriteAttributeString("applyAlignment", "1"); + writer.WriteStartElement("alignment"); + writer.WriteAttributeString("horizontal", "center"); + writer.WriteAttributeString("vertical", "center"); + writer.WriteEndElement(); + } + + writer.WriteEndElement(); + } + + private static void WriteWorksheet(ZipArchive archive, IReadOnlyList rows) + { + using XmlWriter writer = CreateXmlWriter(archive, "xl/worksheets/sheet1.xml"); + + int lastRowNumber = rows.Count + 1; + + writer.WriteStartDocument(); + writer.WriteStartElement("worksheet", SpreadsheetNamespace); + writer.WriteStartElement("dimension"); + writer.WriteAttributeString("ref", $"A1:F{lastRowNumber}"); + writer.WriteEndElement(); + + writer.WriteStartElement("sheetViews"); + writer.WriteStartElement("sheetView"); + writer.WriteAttributeString("workbookViewId", "0"); + writer.WriteStartElement("pane"); + writer.WriteAttributeString("ySplit", "1"); + writer.WriteAttributeString("topLeftCell", "A2"); + writer.WriteAttributeString("activePane", "bottomLeft"); + writer.WriteAttributeString("state", "frozen"); + writer.WriteEndElement(); + writer.WriteStartElement("selection"); + writer.WriteAttributeString("pane", "bottomLeft"); + writer.WriteAttributeString("activeCell", "A2"); + writer.WriteAttributeString("sqref", "A2"); + writer.WriteEndElement(); + writer.WriteEndElement(); + writer.WriteEndElement(); + + writer.WriteStartElement("sheetFormatPr"); + writer.WriteAttributeString("defaultRowHeight", "15"); + writer.WriteEndElement(); + WriteColumns(writer); + + writer.WriteStartElement("sheetData"); + WriteHeaderRow(writer); + for (int index = 0; index < rows.Count; index++) + { + WriteDataRow(writer, index + 2, rows[index]); + } + + writer.WriteEndElement(); + + writer.WriteStartElement("autoFilter"); + writer.WriteAttributeString("ref", $"A1:F{lastRowNumber}"); + writer.WriteEndElement(); + writer.WriteEndElement(); + writer.WriteEndDocument(); + } + + private static void WriteColumns(XmlWriter writer) + { + writer.WriteStartElement("cols"); + WriteColumn(writer, 1, 12); + WriteColumn(writer, 2, 12); + WriteColumn(writer, 3, 18); + WriteColumn(writer, 4, 16); + WriteColumn(writer, 5, 16); + WriteColumn(writer, 6, 16); + writer.WriteEndElement(); + } + + private static void WriteColumn(XmlWriter writer, int index, int width) + { + writer.WriteStartElement("col"); + writer.WriteAttributeString("min", index.ToString(CultureInfo.InvariantCulture)); + writer.WriteAttributeString("max", index.ToString(CultureInfo.InvariantCulture)); + writer.WriteAttributeString("width", width.ToString(CultureInfo.InvariantCulture)); + writer.WriteAttributeString("customWidth", "1"); + writer.WriteEndElement(); + } + + private static void WriteHeaderRow(XmlWriter writer) + { + writer.WriteStartElement("row"); + writer.WriteAttributeString("r", "1"); + writer.WriteAttributeString("ht", "22"); + writer.WriteAttributeString("customHeight", "1"); + + for (int columnIndex = 0; columnIndex < Headers.Length; columnIndex++) + { + WriteInlineStringCell(writer, $"{GetColumnName(columnIndex)}1", Headers[columnIndex], styleIndex: 2); + } + + writer.WriteEndElement(); + } + + private static void WriteDataRow(XmlWriter writer, int rowNumber, ExportRow row) + { + writer.WriteStartElement("row"); + writer.WriteAttributeString("r", rowNumber.ToString(CultureInfo.InvariantCulture)); + + WriteNumberCell(writer, $"A{rowNumber}", GetExcelSerialNumber(row.Date), styleIndex: 1); + WriteInlineStringCell(writer, $"B{rowNumber}", row.Weekday); + WriteInlineStringCell(writer, $"C{rowNumber}", row.PositionOneLeader); + WriteInlineStringCell(writer, $"D{rowNumber}", row.PositionTwo); + WriteInlineStringCell(writer, $"E{rowNumber}", row.PositionThree); + WriteInlineStringCell(writer, $"F{rowNumber}", row.PositionFour); + + writer.WriteEndElement(); + } + + private static void WriteNumberCell(XmlWriter writer, string reference, double value, int styleIndex) + { + writer.WriteStartElement("c"); + writer.WriteAttributeString("r", reference); + writer.WriteAttributeString("s", styleIndex.ToString(CultureInfo.InvariantCulture)); + writer.WriteElementString("v", value.ToString("0.##########", CultureInfo.InvariantCulture)); + writer.WriteEndElement(); + } + + private static void WriteInlineStringCell(XmlWriter writer, string reference, string? value, int? styleIndex = null) + { + writer.WriteStartElement("c"); + writer.WriteAttributeString("r", reference); + writer.WriteAttributeString("t", "inlineStr"); + if (styleIndex.HasValue) + { + writer.WriteAttributeString("s", styleIndex.Value.ToString(CultureInfo.InvariantCulture)); + } + + writer.WriteStartElement("is"); + writer.WriteStartElement("t"); + writer.WriteAttributeString("xml", "space", XmlNamespace, "preserve"); + writer.WriteString(value ?? string.Empty); + writer.WriteEndElement(); + writer.WriteEndElement(); + writer.WriteEndElement(); + } + + private static double GetExcelSerialNumber(DateOnly date) + { + double serialNumber = date.ToDateTime(TimeOnly.MinValue).ToOADate(); + + // OLE Automation and Excel differ before Excel's fictitious 1900-02-29. + return date < new DateOnly(1900, 3, 1) ? serialNumber - 1 : serialNumber; + } + + private static string GetColumnName(int zeroBasedIndex) => ((char)('A' + zeroBasedIndex)).ToString(); + + private static XmlWriter CreateXmlWriter(ZipArchive archive, string entryName) + { + ZipArchiveEntry entry = archive.CreateEntry(entryName, CompressionLevel.Optimal); + Stream stream = entry.Open(); + return XmlWriter.Create( + stream, + new XmlWriterSettings + { + Encoding = new UTF8Encoding(encoderShouldEmitUTF8Identifier: false), + CloseOutput = true, + Indent = false, + OmitXmlDeclaration = false, + }); + } +} diff --git a/RapidOCRSchedule.Tests/CoreScheduleTests.cs b/RapidOCRSchedule.Tests/CoreScheduleTests.cs new file mode 100644 index 0000000..f09e807 --- /dev/null +++ b/RapidOCRSchedule.Tests/CoreScheduleTests.cs @@ -0,0 +1,539 @@ +using RapidOCRSchedule.Core; + +namespace RapidOCRSchedule.Tests; + +public sealed class CoreScheduleTests +{ + private const int TargetYear = 2026; + private const int TargetMonth = 8; + + [Theory] + [InlineData("8/6")] + [InlineData("8-6")] + [InlineData("8.6")] + [InlineData("8月6日")] + [InlineData("8/6")] + [InlineData("8-6")] + [InlineData("8月6日")] + public void DateParser_AcceptsChineseAndFullWidthMonthDay(string text) + { + Assert.True(DateTextParser.TryParseMonthDay(text, out int month, out int day)); + Assert.Equal(8, month); + Assert.Equal(6, day); + + Assert.True(DateTextParser.TryCreateDate(TargetYear, text, out DateOnly date)); + Assert.Equal(new DateOnly(TargetYear, 8, 6), date); + } + + [Theory] + [InlineData(2026, "")] + [InlineData(2026, "8/32")] + [InlineData(2026, "13月1日")] + [InlineData(2026, "2月30日")] + [InlineData(2025, "2月29日")] + public void DateParser_RejectsInvalidDates(int year, string text) + { + Assert.False(DateTextParser.TryCreateDate(year, text, out _)); + } + + [Theory] + [InlineData("星期一", DayOfWeek.Monday)] + [InlineData(" 周一 ", DayOfWeek.Monday)] + [InlineData("礼拜五", DayOfWeek.Friday)] + [InlineData("星期天", DayOfWeek.Sunday)] + [InlineData("周日", DayOfWeek.Sunday)] + public void WeekdayParser_AcceptsCommonChineseForms(string text, DayOfWeek expected) + { + Assert.True(WeekdayTextParser.TryParse(text, out DayOfWeek actual)); + Assert.Equal(expected, actual); + Assert.StartsWith("星期", WeekdayTextParser.ToChinese(actual), StringComparison.Ordinal); + } + + [Fact] + public void WeekdayParser_RejectsUnknownWeekday() + { + Assert.False(WeekdayTextParser.TryParse("礼拜八", out _)); + } + + [Fact] + public void Build_FourFourDaySeries_IsOrderIndependentSortedAndComplete() + { + ScheduleCandidate[] ordered = CreateFourDaySeries().ToArray(); + ScheduleCandidate[] shuffled = ordered + .OrderBy(static candidate => StableShuffleKey(candidate.RawDateText)) + .ToArray(); + ScheduleService service = new(); + + ScheduleBuildResult first = service.Build(TargetYear, TargetMonth, ordered); + ScheduleBuildResult second = service.Build(TargetYear, TargetMonth, shuffled); + + DateOnly[] expectedWorkdays = DatesInTargetMonth() + .Where(static date => date.DayOfWeek is not DayOfWeek.Saturday and not DayOfWeek.Sunday) + .ToArray(); + Assert.Equal(expectedWorkdays, first.Rows.Select(static row => row.Date!.Value)); + Assert.Equal(expectedWorkdays, second.Rows.Select(static row => row.Date!.Value)); + Assert.Equal( + first.Rows.Select(static row => (row.Date, row.Role1, row.Role2, row.Role3, row.Role4)), + second.Rows.Select(static row => (row.Date, row.Role1, row.Role2, row.Role3, row.Role4))); + Assert.All(first.Rows, static row => Assert.False(row.IsMissingPlaceholder)); + Assert.Empty(first.UnlocatedCandidates); + } + + [Fact] + public void Build_FiltersWeekendCandidatesFromOutput() + { + ScheduleBuildResult result = new ScheduleService().Build( + TargetYear, + TargetMonth, + CreateFourDaySeries()); + + Assert.DoesNotContain( + result.Rows, + static row => row.Date!.Value.DayOfWeek is DayOfWeek.Saturday or DayOfWeek.Sunday); + Assert.Equal(10, result.WeekendCandidates.Count); + Assert.All( + result.WeekendCandidates, + static candidate => Assert.True( + DateTextParser.TryCreateDate(TargetYear, candidate.RawDateText, out DateOnly date) && + date.DayOfWeek is DayOfWeek.Saturday or DayOfWeek.Sunday)); + } + + [Fact] + public void Build_CreatesPlaceholderForEveryMissingWorkday() + { + ScheduleCandidate[] candidates = CreateFourDaySeries() + .Where(static candidate => candidate.RawDateText != "8/5") + .ToArray(); + + ScheduleBuildResult result = new ScheduleService().Build(TargetYear, TargetMonth, candidates); + ScheduleRow missing = Assert.Single( + result.Rows, + static row => row.Date == new DateOnly(TargetYear, TargetMonth, 5)); + + Assert.True(missing.IsMissingPlaceholder); + Assert.Contains(missing.Issues, static issue => issue.Code == ScheduleIssueCode.MissingWorkday); + } + + [Fact] + public void Build_FlagsDuplicateDateAndKeepsOneOutputRow() + { + List candidates = CreateFourDaySeries().ToList(); + candidates.Add(CreateCandidate(3, sourceImageId: "duplicate.png", role1: "另一位队长")); + + ScheduleBuildResult result = new ScheduleService().Build(TargetYear, TargetMonth, candidates); + ScheduleRow row = Assert.Single( + result.Rows, + static value => value.Date == new DateOnly(TargetYear, TargetMonth, 3)); + + Assert.Contains(row.Issues, static issue => issue.Code == ScheduleIssueCode.DuplicateDate); + Assert.Contains("duplicate.png", row.SourceImageId, StringComparison.Ordinal); + Assert.Equal(2, result.DuplicateCandidates.Count); + } + + [Fact] + public void Build_FlagsMultipleMonthsAndKeepsOutOfMonthCandidateForReview() + { + ScheduleCandidate august = CreateCandidate(3); + ScheduleCandidate september = CreateCandidate(1); + september.RawDateText = "9/1"; + + ScheduleBuildResult result = new ScheduleService().Build( + TargetYear, + TargetMonth, + [august, september]); + + Assert.Contains(result.Issues, static issue => issue.Code == ScheduleIssueCode.MultipleMonths); + Assert.Contains(september, result.UnlocatedCandidates); + Assert.Contains(september.Issues, static issue => issue.Code == ScheduleIssueCode.OutOfTargetMonth); + } + + [Fact] + public void Build_WhenTargetMonthChanges_DoesNotKeepStaleOutOfMonthIssue() + { + ScheduleCandidate september = CreateCandidate(1); + september.RawDateText = "9/1"; + september.RawWeekdayText = WeekdayTextParser.ToChinese(new DateOnly(TargetYear, 9, 1).DayOfWeek); + ScheduleService service = new(); + + service.Build(TargetYear, 8, [september]); + Assert.Contains(september.Issues, static issue => issue.Code == ScheduleIssueCode.OutOfTargetMonth); + + ScheduleBuildResult septemberResult = service.Build(TargetYear, 9, [september]); + ScheduleRow row = Assert.Single( + septemberResult.Rows, + static value => value.Date == new DateOnly(TargetYear, 9, 1)); + Assert.DoesNotContain(row.Issues, static issue => issue.Code == ScheduleIssueCode.OutOfTargetMonth); + Assert.DoesNotContain(september.Issues, static issue => issue.Code == ScheduleIssueCode.OutOfTargetMonth); + } + + [Fact] + public void Build_FlagsWeekdayMismatch() + { + ScheduleCandidate candidate = CreateCandidate(3); + candidate.RawWeekdayText = "星期二"; // 2026-08-03 is Monday. + + ScheduleBuildResult result = new ScheduleService().Build(TargetYear, TargetMonth, [candidate]); + ScheduleRow row = Assert.Single( + result.Rows, + static value => value.Date == new DateOnly(TargetYear, TargetMonth, 3)); + + Assert.Contains(row.Issues, static issue => issue.Code == ScheduleIssueCode.WeekdayMismatch); + } + + [Fact] + public void Build_FlagsEachEmptyRole() + { + ScheduleCandidate candidate = CreateCandidate(3); + candidate.Role1 = ""; + candidate.Role2 = " "; + candidate.Role3 = ""; + candidate.Role4 = ""; + + ScheduleBuildResult result = new ScheduleService().Build(TargetYear, TargetMonth, [candidate]); + ScheduleRow row = Assert.Single( + result.Rows, + static value => value.Date == new DateOnly(TargetYear, TargetMonth, 3)); + + ScheduleIssueCode[] expected = + [ + ScheduleIssueCode.EmptyRole1, + ScheduleIssueCode.EmptyRole2, + ScheduleIssueCode.EmptyRole3, + ScheduleIssueCode.EmptyRole4, + ]; + Assert.All(expected, code => Assert.Contains(row.Issues, issue => issue.Code == code)); + } + + [Fact] + public void Build_InvalidDateCandidate_AlsoReportsInvalidWeekdayAndEmptyRoles() + { + ScheduleCandidate candidate = new() + { + RawDateText = "8/32", + RawWeekdayText = "不清楚", + SourceImageId = "damaged.png", + }; + + ScheduleBuildResult result = new ScheduleService().Build(TargetYear, TargetMonth, [candidate]); + ScheduleCandidate unlocated = Assert.Single(result.UnlocatedCandidates); + ScheduleIssueCode[] expected = + [ + ScheduleIssueCode.InvalidDate, + ScheduleIssueCode.InvalidWeekday, + ScheduleIssueCode.EmptyRole1, + ScheduleIssueCode.EmptyRole2, + ScheduleIssueCode.EmptyRole3, + ScheduleIssueCode.EmptyRole4, + ]; + + Assert.All(expected, code => Assert.Contains(unlocated.Issues, issue => issue.Code == code)); + } + + [Fact] + public void Revalidate_PreservesPersistentOcrAndDuplicateFindings() + { + ScheduleCandidate first = CreateCandidate(3, "first.png"); + first.Issues.Add(new ScheduleIssue(ScheduleIssueCode.LowOcrConfidence, "低置信度")); + ScheduleCandidate duplicate = CreateCandidate(3, "second.png"); + ScheduleService service = new(); + + ScheduleBuildResult initial = service.Build(TargetYear, TargetMonth, [first, duplicate]); + ScheduleBuildResult revalidated = service.Revalidate(TargetYear, TargetMonth, initial.Rows); + ScheduleRow row = Assert.Single( + revalidated.Rows, + static value => value.Date == new DateOnly(TargetYear, TargetMonth, 3)); + + Assert.Contains(row.Issues, static issue => issue.Code == ScheduleIssueCode.LowOcrConfidence); + Assert.Contains(row.Issues, static issue => issue.Code == ScheduleIssueCode.DuplicateDate); + } + + [Fact] + public void Revalidate_WhenUnlocatedRowIsIncluded_KeepsCrossMonthFinding() + { + ScheduleRow crossMonth = new() + { + RawDateText = "9/1", + Weekday = "星期二", + Role1 = "甲", + Role2 = "乙", + Role3 = "丙", + Role4 = "丁", + SourceImageId = "september.png", + }; + + ScheduleBuildResult result = new ScheduleService().Revalidate( + TargetYear, + TargetMonth, + [crossMonth]); + + ScheduleCandidate unlocated = Assert.Single(result.UnlocatedCandidates); + Assert.Contains(unlocated.Issues, static issue => issue.Code == ScheduleIssueCode.OutOfTargetMonth); + } + + [Fact] + public void Revalidate_BuildResult_RetainsUnlocatedAndAllDuplicateCandidates() + { + ScheduleCandidate first = CreateCandidate(3, "first.png"); + ScheduleCandidate duplicate = CreateCandidate(3, "second.png"); + ScheduleCandidate september = CreateCandidate(1, "september.png"); + september.RawDateText = "9/1"; + ScheduleService service = new(); + ScheduleBuildResult initial = service.Build( + TargetYear, + TargetMonth, + [first, duplicate, september]); + + ScheduleBuildResult revalidated = service.Revalidate(TargetYear, TargetMonth, initial); + + Assert.Equal(2, revalidated.DuplicateCandidates.Count); + Assert.Single(revalidated.UnlocatedCandidates); + Assert.Contains(revalidated.Issues, static issue => issue.Code == ScheduleIssueCode.MultipleMonths); + } + + [Fact] + public void Extract_UnorderedEightColumnTokens_UsesFirstFourAndLastTwoColumns() + { + OcrToken[] tokens = CreateOcrTableTokens(splitRoleOneOnFirstRow: false).ToArray(); + OcrToken[] shuffled = tokens + .OrderBy(static token => StableShuffleKey($"{token.Text}:{token.Bounds.Left}:{token.Bounds.Top}")) + .ToArray(); + ScheduleExtractor extractor = new(); + + ScheduleExtractionResult ordered = extractor.Extract(tokens); + ScheduleExtractionResult unordered = extractor.Extract(shuffled); + + AssertCandidateTablesEqual(ordered.Candidates, unordered.Candidates); + ScheduleCandidate first = Assert.Single( + unordered.Candidates, + static candidate => candidate.RawDateText == "8/3"); + Assert.Equal("星期一", first.RawWeekdayText); + Assert.Equal("队长3", first.Role1); + Assert.Equal("岗位二3", first.Role2); + Assert.Equal("右一3", first.Role3); + Assert.Equal("右二3", first.Role4); + Assert.DoesNotContain("忽略", first.Role3, StringComparison.Ordinal); + Assert.DoesNotContain("忽略", first.Role4, StringComparison.Ordinal); + } + + [Fact] + public void Extract_MultipleTokensInOneCell_JoinsByHorizontalPosition() + { + TableLayoutProfile profile = new() { CellTextSeparator = string.Empty }; + OcrToken[] shuffled = CreateOcrTableTokens(splitRoleOneOnFirstRow: true) + .OrderByDescending(static token => token.Bounds.Left) + .ToArray(); + + ScheduleExtractionResult result = new ScheduleExtractor().Extract(shuffled, profile); + ScheduleCandidate first = Assert.Single( + result.Candidates, + static candidate => candidate.RawDateText == "8/3"); + + Assert.Equal("张三", first.Role1); + } + + [Fact] + public void Extract_TargetColumnPopulatedOnOnlyOneRow_DoesNotShiftLaterColumns() + { + OcrToken[] sparse = CreateOcrTableTokens(splitRoleOneOnFirstRow: false) + .Where(static token => !token.Text.StartsWith("右一", StringComparison.Ordinal) || token.Text == "右一3") + .ToArray(); + + ScheduleExtractionResult result = new ScheduleExtractor().Extract(sparse); + ScheduleCandidate first = Assert.Single(result.Candidates, static candidate => candidate.RawDateText == "8/3"); + ScheduleCandidate second = Assert.Single(result.Candidates, static candidate => candidate.RawDateText == "8/4"); + + Assert.Equal("右一3", first.Role3); + Assert.Equal("右二3", first.Role4); + Assert.Equal(string.Empty, second.Role3); + Assert.Equal("右二4", second.Role4); + } + + [Fact] + public void Extract_RowWithMissingDateAndOneKnownTargetCell_RemainsEditableCandidate() + { + OcrToken[] tokens = CreateOcrTableTokens(splitRoleOneOnFirstRow: false) + .Where(static token => + Math.Abs(token.Bounds.CenterY - 0.30F) > 0.001F || + token.Text == "队长4") + .ToArray(); + + ScheduleExtractionResult result = new ScheduleExtractor().Extract(tokens); + ScheduleCandidate candidate = Assert.Single( + result.Candidates, + static value => value.Role1 == "队长4"); + + Assert.Equal(string.Empty, candidate.RawDateText); + Assert.Equal(string.Empty, candidate.Role2); + Assert.Contains(candidate.Issues, static issue => issue.Code == ScheduleIssueCode.InvalidDate); + } + + [Fact] + public void Extract_HandDrawnLikeSingletonNoise_DoesNotBecomeOrShiftTargetColumn() + { + List tokens = CreateOcrTableTokens(splitRoleOneOnFirstRow: false).ToList(); + tokens.Add(Token("table.png", "圈", 0.71F, 0.20F, width: 0.006F)); + + ScheduleExtractionResult result = new ScheduleExtractor().Extract(tokens); + ScheduleCandidate first = Assert.Single(result.Candidates, static candidate => candidate.RawDateText == "8/3"); + + Assert.Equal("右一3", first.Role3); + Assert.Equal("右二3", first.Role4); + Assert.Contains(result.UnassignedTokens, static token => token.Text == "圈"); + } + + [Fact] + public void Extract_CellSplitBeyondClusteringTolerance_RejoinsWithoutShiftingColumns() + { + List tokens = CreateOcrTableTokens(splitRoleOneOnFirstRow: false) + .Where(static token => token.Text != "队长3") + .ToList(); + tokens.Add(Token("table.png", "张", 0.255F, 0.20F, width: 0.006F)); + tokens.Add(Token("table.png", "三", 0.305F, 0.20F, width: 0.006F)); + + ScheduleExtractionResult result = new ScheduleExtractor().Extract( + tokens, + new TableLayoutProfile { CellTextSeparator = string.Empty }); + ScheduleCandidate first = Assert.Single(result.Candidates, static candidate => candidate.RawDateText == "8/3"); + + Assert.Equal("张三", first.Role1); + Assert.Equal("岗位二3", first.Role2); + Assert.Equal("右一3", first.Role3); + Assert.Equal("右二3", first.Role4); + } + + [Fact] + public void Extract_DateSplitIntoThreeTokens_StillAnchorsAndParsesRow() + { + List tokens = CreateOcrTableTokens(splitRoleOneOnFirstRow: false) + .Where(static token => token.Text != "8/3") + .ToList(); + tokens.Add(Token("table.png", "8", 0.052F, 0.20F, width: 0.005F)); + tokens.Add(Token("table.png", "/", 0.060F, 0.20F, width: 0.003F)); + tokens.Add(Token("table.png", "3", 0.068F, 0.20F, width: 0.005F)); + + ScheduleExtractionResult result = new ScheduleExtractor().Extract(tokens); + ScheduleCandidate first = Assert.Single(result.Candidates, static candidate => candidate.RawDateText == "8/3"); + + Assert.Equal("队长3", first.Role1); + Assert.DoesNotContain(first.Issues, static issue => issue.Code == ScheduleIssueCode.InvalidDate); + } + + private static IEnumerable CreateFourDaySeries() + { + for (int seriesOffset = 0; seriesOffset < 4; seriesOffset++) + { + for (int day = seriesOffset + 1; day <= 31; day += 4) + { + yield return CreateCandidate(day, $"source-{seriesOffset + 1}.png"); + } + } + } + + private static ScheduleCandidate CreateCandidate( + int day, + string sourceImageId = "source.png", + string? role1 = null) + { + DateOnly date = new(TargetYear, TargetMonth, day); + return new ScheduleCandidate + { + RawDateText = $"{TargetMonth}/{day}", + RawWeekdayText = WeekdayTextParser.ToChinese(date.DayOfWeek), + Role1 = role1 ?? $"队长{day}", + Role2 = $"岗位二{day}", + Role3 = $"岗位三{day}", + Role4 = $"岗位四{day}", + SourceImageId = sourceImageId, + RowCenterY = day / 100F, + }; + } + + private static IEnumerable DatesInTargetMonth() + { + int days = DateTime.DaysInMonth(TargetYear, TargetMonth); + for (int day = 1; day <= days; day++) + { + yield return new DateOnly(TargetYear, TargetMonth, day); + } + } + + private static IEnumerable CreateOcrTableTokens(bool splitRoleOneOnFirstRow) + { + string source = "table.png"; + float[] centers = [0.06F, 0.17F, 0.28F, 0.39F, 0.52F, 0.64F, 0.78F, 0.91F]; + int[] days = [3, 4, 5]; + for (int row = 0; row < days.Length; row++) + { + int day = days[row]; + float y = 0.20F + row * 0.10F; + yield return Token(source, $"8/{day}", centers[0], y); + yield return Token(source, WeekdayTextParser.ToChinese(new DateOnly(TargetYear, TargetMonth, day).DayOfWeek), centers[1], y); + + if (row == 0 && splitRoleOneOnFirstRow) + { + yield return Token(source, "张", centers[2] - 0.004F, y, width: 0.006F); + yield return Token(source, "三", centers[2] + 0.004F, y, width: 0.006F); + } + else + { + yield return Token(source, $"队长{day}", centers[2], y); + } + + yield return Token(source, $"岗位二{day}", centers[3], y); + yield return Token(source, $"忽略甲{day}", centers[4], y); + yield return Token(source, $"忽略乙{day}", centers[5], y); + yield return Token(source, $"右一{day}", centers[6], y); + yield return Token(source, $"右二{day}", centers[7], y); + } + } + + private static OcrToken Token( + string source, + string text, + float centerX, + float centerY, + float width = 0.02F, + float height = 0.02F) => + new( + source, + text, + OcrBounds.FromLTRB( + centerX - width / 2F, + centerY - height / 2F, + centerX + width / 2F, + centerY + height / 2F), + 0.99F); + + private static int StableShuffleKey(string value) + { + unchecked + { + int hash = 17; + foreach (char character in value) + { + hash = hash * 31 + character; + } + + return hash; + } + } + + private static void AssertCandidateTablesEqual( + IEnumerable expected, + IEnumerable actual) + { + static IEnumerable<(string Date, string Weekday, string Role1, string Role2, string Role3, string Role4)> Project( + IEnumerable candidates) => + candidates + .OrderBy(static candidate => candidate.RawDateText, StringComparer.Ordinal) + .Select(static candidate => + (candidate.RawDateText, + candidate.RawWeekdayText, + candidate.Role1, + candidate.Role2, + candidate.Role3, + candidate.Role4)); + + Assert.Equal(Project(expected), Project(actual)); + } +} diff --git a/RapidOCRSchedule.Tests/RapidOCRSchedule.Tests.csproj b/RapidOCRSchedule.Tests/RapidOCRSchedule.Tests.csproj new file mode 100644 index 0000000..e6920bd --- /dev/null +++ b/RapidOCRSchedule.Tests/RapidOCRSchedule.Tests.csproj @@ -0,0 +1,33 @@ + + + + net10.0 + enable + enable + false + true + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + + + + + diff --git a/RapidOCRSchedule.Tests/ScheduleExcelExporterTests.cs b/RapidOCRSchedule.Tests/ScheduleExcelExporterTests.cs new file mode 100644 index 0000000..3fa2172 --- /dev/null +++ b/RapidOCRSchedule.Tests/ScheduleExcelExporterTests.cs @@ -0,0 +1,260 @@ +using System.Globalization; +using System.IO.Compression; +using System.Xml.Linq; +using RapidOCRSchedule.Excel; + +namespace RapidOCRSchedule.Tests; + +public sealed class ScheduleExcelExporterTests +{ + private static readonly XNamespace SpreadsheetNamespace = + "http://schemas.openxmlformats.org/spreadsheetml/2006/main"; + + [Fact] + public void Export_CreatesRequiredOoxmlPackageParts() + { + using MemoryStream destination = ExportToOpenStream(); + using ZipArchive archive = new(destination, ZipArchiveMode.Read); + + string[] expectedParts = + [ + "[Content_Types].xml", + "_rels/.rels", + "xl/_rels/workbook.xml.rels", + "xl/styles.xml", + "xl/workbook.xml", + "xl/worksheets/sheet1.xml", + ]; + + string[] actualParts = archive.Entries + .Select(entry => entry.FullName) + .OrderBy(name => name, StringComparer.Ordinal) + .ToArray(); + + Assert.Equal( + expectedParts.OrderBy(name => name, StringComparer.Ordinal), + actualParts); + } + + [Fact] + public void Export_WritesHeadersNumericDateWithMonthDayStyleAndSafeUnicodeText() + { + DateOnly date = new(2026, 8, 3); + ExportRow row = new( + date, + "星期一 & <早班>", + " 张三 & <队长> ", + "李四 \"二号\"", + "王五 / 研发", + "赵六 😀"); + + using MemoryStream destination = ExportToOpenStream(row); + XDocument worksheet = LoadPart(destination, "xl/worksheets/sheet1.xml"); + XDocument styles = LoadPart(destination, "xl/styles.xml"); + + XElement headerRow = worksheet + .Descendants(SpreadsheetNamespace + "row") + .Single(element => (string?)element.Attribute("r") == "1"); + string[] headers = headerRow + .Elements(SpreadsheetNamespace + "c") + .Select(ReadInlineText) + .ToArray(); + + Assert.Equal( + ["日期", "星期", "岗位一(队长)", "岗位二", "岗位三", "岗位四"], + headers); + + XElement dateCell = GetCell(worksheet, "A2"); + Assert.Null(dateCell.Attribute("t")); + Assert.Equal("1", (string?)dateCell.Attribute("s")); + double serialNumber = double.Parse( + dateCell.Element(SpreadsheetNamespace + "v")!.Value, + CultureInfo.InvariantCulture); + Assert.Equal(date.ToDateTime(TimeOnly.MinValue).ToOADate(), serialNumber); + + XElement numberFormat = styles + .Descendants(SpreadsheetNamespace + "numFmt") + .Single(element => (string?)element.Attribute("numFmtId") == "164"); + Assert.Equal("m/d", (string?)numberFormat.Attribute("formatCode")); + + XElement[] cellFormats = styles.Root! + .Element(SpreadsheetNamespace + "cellXfs")! + .Elements(SpreadsheetNamespace + "xf") + .ToArray(); + XElement dateFormat = cellFormats[int.Parse((string)dateCell.Attribute("s")!, CultureInfo.InvariantCulture)]; + Assert.Equal("164", (string?)dateFormat.Attribute("numFmtId")); + Assert.Equal("1", (string?)dateFormat.Attribute("applyNumberFormat")); + + Assert.Equal("星期一 & <早班>", ReadInlineText(GetCell(worksheet, "B2"))); + Assert.Equal(" 张三 & <队长> ", ReadInlineText(GetCell(worksheet, "C2"))); + Assert.Equal("李四 \"二号\"", ReadInlineText(GetCell(worksheet, "D2"))); + Assert.Equal("王五 / 研发", ReadInlineText(GetCell(worksheet, "E2"))); + Assert.Equal("赵六 😀", ReadInlineText(GetCell(worksheet, "F2"))); + Assert.Equal( + "preserve", + (string?)GetCell(worksheet, "C2") + .Descendants(SpreadsheetNamespace + "t") + .Single() + .Attribute(XNamespace.Xml + "space")); + } + + [Fact] + public void Export_FiltersWeekendsAndSortsRemainingRowsByDate() + { + ExportRow[] rows = + [ + CreateRow(new DateOnly(2026, 8, 2), "Sunday"), + CreateRow(new DateOnly(2026, 8, 7), "Friday"), + CreateRow(new DateOnly(2026, 8, 1), "Saturday"), + CreateRow(new DateOnly(2026, 8, 4), "Tuesday"), + CreateRow(new DateOnly(2026, 8, 3), "Monday"), + ]; + + using MemoryStream destination = ExportToOpenStream(rows); + XDocument worksheet = LoadPart(destination, "xl/worksheets/sheet1.xml"); + XElement[] dataRows = worksheet + .Descendants(SpreadsheetNamespace + "row") + .Where(element => (string?)element.Attribute("r") != "1") + .ToArray(); + + DateOnly[] exportedDates = dataRows + .Select(row => ReadDate(row.Elements(SpreadsheetNamespace + "c").Single( + cell => ((string?)cell.Attribute("r"))?.StartsWith('A') == true))) + .ToArray(); + string[] exportedNames = dataRows + .Select(row => ReadInlineText(row.Elements(SpreadsheetNamespace + "c").Single( + cell => ((string?)cell.Attribute("r"))?.StartsWith('C') == true))) + .ToArray(); + + Assert.Equal( + [new DateOnly(2026, 8, 3), new DateOnly(2026, 8, 4), new DateOnly(2026, 8, 7)], + exportedDates); + Assert.Equal(["Monday", "Tuesday", "Friday"], exportedNames); + } + + [Fact] + public void Export_ThrowsWhenAWorkdayDateIsDuplicated() + { + DateOnly duplicateDate = new(2026, 8, 3); + ExportRow[] rows = + [ + CreateRow(duplicateDate, "first"), + CreateRow(duplicateDate, "second"), + ]; + using MemoryStream destination = new(); + + ArgumentException exception = Assert.Throws( + () => ScheduleExcelExporter.Export(destination, rows, leaveOpen: true)); + + Assert.Equal("rows", exception.ParamName); + Assert.Contains("2026-08-03", exception.Message, StringComparison.Ordinal); + } + + [Fact] + public void Export_WithLeaveOpenTrue_KeepsDestinationUsable() + { + using MemoryStream destination = new(); + + ScheduleExcelExporter.Export(destination, Array.Empty(), leaveOpen: true); + + Assert.True(destination.CanWrite); + destination.Position = 0; + using ZipArchive archive = new(destination, ZipArchiveMode.Read, leaveOpen: true); + Assert.NotNull(archive.GetEntry("xl/worksheets/sheet1.xml")); + } + + [Fact] + public void Export_ToPrefilledSeekableStream_TruncatesOldContentAndCreatesValidPackage() + { + using MemoryStream destination = new(new byte[200_000], writable: true); + destination.Position = 0; + + ScheduleExcelExporter.Export(destination, [CreateRow(new DateOnly(2026, 8, 3), "张三")], leaveOpen: true); + + Assert.True(destination.Length < 200_000); + destination.Position = 0; + using ZipArchive archive = new(destination, ZipArchiveMode.Read, leaveOpen: true); + Assert.NotNull(archive.GetEntry("xl/worksheets/sheet1.xml")); + } + + [Fact] + public void Export_WritesCorrectExcelSerialsAcross1900LeapYearBoundary() + { + ExportRow[] rows = + [ + CreateRow(new DateOnly(1900, 3, 1), "March"), + CreateRow(new DateOnly(1900, 1, 1), "January"), + CreateRow(new DateOnly(1900, 2, 28), "February"), + ]; + + using MemoryStream destination = ExportToOpenStream(rows); + XDocument worksheet = LoadPart(destination, "xl/worksheets/sheet1.xml"); + + Assert.Equal("1", GetCell(worksheet, "A2").Element(SpreadsheetNamespace + "v")!.Value); + Assert.Equal("59", GetCell(worksheet, "A3").Element(SpreadsheetNamespace + "v")!.Value); + Assert.Equal("61", GetCell(worksheet, "A4").Element(SpreadsheetNamespace + "v")!.Value); + } + + [Fact] + public void Export_StyleXfOmitsCellFormatReference() + { + using MemoryStream destination = ExportToOpenStream(); + XDocument styles = LoadPart(destination, "xl/styles.xml"); + + XElement styleXf = styles.Root! + .Element(SpreadsheetNamespace + "cellStyleXfs")! + .Element(SpreadsheetNamespace + "xf")!; + Assert.Null(styleXf.Attribute("xfId")); + } + + [Fact] + public void Export_WithDefaultLeaveOpenFalse_DisposesDestination() + { + MemoryStream destination = new(); + + ScheduleExcelExporter.Export(destination, Array.Empty()); + + Assert.False(destination.CanWrite); + Assert.Throws(() => destination.WriteByte(0)); + } + + private static MemoryStream ExportToOpenStream(params ExportRow[] rows) + { + MemoryStream destination = new(); + ScheduleExcelExporter.Export(destination, rows, leaveOpen: true); + destination.Position = 0; + return destination; + } + + private static XDocument LoadPart(Stream workbook, string partName) + { + workbook.Position = 0; + using ZipArchive archive = new(workbook, ZipArchiveMode.Read, leaveOpen: true); + ZipArchiveEntry? entry = archive.GetEntry(partName); + Assert.NotNull(entry); + using Stream part = entry.Open(); + return XDocument.Load(part); + } + + private static XElement GetCell(XDocument worksheet, string reference) => + worksheet + .Descendants(SpreadsheetNamespace + "c") + .Single(element => (string?)element.Attribute("r") == reference); + + private static string ReadInlineText(XElement cell) => + cell + .Element(SpreadsheetNamespace + "is")! + .Element(SpreadsheetNamespace + "t")! + .Value; + + private static DateOnly ReadDate(XElement cell) + { + double serialNumber = double.Parse( + cell.Element(SpreadsheetNamespace + "v")!.Value, + CultureInfo.InvariantCulture); + return DateOnly.FromDateTime(DateTime.FromOADate(serialNumber)); + } + + private static ExportRow CreateRow(DateOnly date, string positionOne) => + new(date, positionOne, null, null, null); +} diff --git a/RapidOCRWinform/AppSettings.cs b/RapidOCRWinform/AppSettings.cs new file mode 100644 index 0000000..dbd4129 --- /dev/null +++ b/RapidOCRWinform/AppSettings.cs @@ -0,0 +1,47 @@ +using System.Text.Json; + +namespace RapidOCRWinform; + +internal sealed class AppSettings +{ + public string? ModelDirectory { get; set; } + + public int Role3Column { get; set; } = -2; + + public int Role4Column { get; set; } = -1; + + public static AppSettings Load() + { + try + { + string path = GetSettingsPath(); + return File.Exists(path) + ? JsonSerializer.Deserialize(File.ReadAllText(path)) ?? new AppSettings() + : new AppSettings(); + } + catch + { + return new AppSettings(); + } + } + + public void Save() + { + try + { + string path = GetSettingsPath(); + Directory.CreateDirectory(Path.GetDirectoryName(path)!); + File.WriteAllText(path, JsonSerializer.Serialize(this, new JsonSerializerOptions { WriteIndented = true })); + } + catch + { + // Settings are a convenience only; inability to persist them must not block OCR. + } + } + + private static string GetSettingsPath() + { + string localData = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); + return Path.Combine(localData, "RapidOCRSchedule", "settings.json"); + } +} diff --git a/RapidOCRWinform/EmbeddedModelProvider.cs b/RapidOCRWinform/EmbeddedModelProvider.cs new file mode 100644 index 0000000..b580523 --- /dev/null +++ b/RapidOCRWinform/EmbeddedModelProvider.cs @@ -0,0 +1,181 @@ +using System.Reflection; +using System.Security.Cryptography; +using System.Text; + +namespace RapidOCRWinform; + +/// +/// Materializes the OCR models embedded in the executable into a versioned user cache. +/// OcrLite/ONNX Runtime require file-system paths, so the embedded files cannot be used +/// directly as streams. The cache is an implementation detail and is not a deployment +/// dependency: a clean machine only needs the executable. +/// +internal static class EmbeddedModelProvider +{ + private const string ResourcePrefix = "RapidOCRWinform.EmbeddedModels."; + + private static readonly string[] ModelFileNames = + [ + "ch_PP-OCRv5_mobile_det.onnx", + "ch_ppocr_mobile_v2.0_cls_infer.onnx", + "ch_PP-OCRv5_rec_mobile_infer.onnx", + "ppocrv5_dict.txt", + ]; + + public static string EnsureExtracted() + { + Assembly assembly = typeof(EmbeddedModelProvider).Assembly; + ModelManifest manifest = ReadManifest(assembly); + List errors = []; + + foreach (string root in GetCandidateRoots()) + { + try + { + return EnsureCache(assembly, manifest, root); + } + catch (Exception exception) when (exception is IOException or UnauthorizedAccessException) + { + errors.Add(new IOException($"无法写入模型缓存目录:{root}", exception)); + } + } + + throw new InvalidOperationException( + "用户数据目录和临时目录均不可写,请检查磁盘空间及目录权限。", + new AggregateException(errors)); + } + + private static ModelManifest ReadManifest(Assembly assembly) + { + using IncrementalHash manifestHash = IncrementalHash.CreateHash(HashAlgorithmName.SHA256); + List resources = []; + + foreach (string fileName in ModelFileNames) + { + string resourceName = ResourcePrefix + fileName; + using Stream stream = OpenResource(assembly, resourceName); + long length = stream.Length; + byte[] contentHash = SHA256.HashData(stream); + + manifestHash.AppendData(Encoding.UTF8.GetBytes(fileName)); + manifestHash.AppendData([0]); + manifestHash.AppendData(contentHash); + resources.Add(new ModelResource(fileName, resourceName, length, contentHash)); + } + + string version = Convert.ToHexString(manifestHash.GetHashAndReset()) + .ToLowerInvariant()[..16]; + return new ModelManifest(version, resources); + } + + private static IEnumerable GetCandidateRoots() + { + string localData = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); + string? localCacheRoot = null; + if (!string.IsNullOrWhiteSpace(localData)) + { + localCacheRoot = Path.Combine(localData, "RapidOCRSchedule", "model-cache"); + yield return localCacheRoot; + } + + string tempRoot = Path.Combine(Path.GetTempPath(), "RapidOCRSchedule", "model-cache"); + if (localCacheRoot is null || !PathsEqual(tempRoot, localCacheRoot)) + { + yield return tempRoot; + } + } + + private static bool PathsEqual(string left, string right) => + string.Equals( + Path.GetFullPath(left).TrimEnd(Path.DirectorySeparatorChar), + Path.GetFullPath(right).TrimEnd(Path.DirectorySeparatorChar), + StringComparison.OrdinalIgnoreCase); + + private static string EnsureCache(Assembly assembly, ModelManifest manifest, string root) + { + string cacheDirectory = Path.Combine(root, manifest.Version); + Directory.CreateDirectory(cacheDirectory); + + foreach (ModelResource resource in manifest.Resources) + { + string targetPath = Path.Combine(cacheDirectory, resource.FileName); + if (FileMatches(targetPath, resource)) + { + continue; + } + + string temporaryPath = targetPath + ".tmp-" + Guid.NewGuid().ToString("N"); + try + { + using (Stream source = OpenResource(assembly, resource.ResourceName)) + using (FileStream destination = new( + temporaryPath, + FileMode.CreateNew, + FileAccess.Write, + FileShare.None, + bufferSize: 1024 * 1024, + FileOptions.SequentialScan)) + { + source.CopyTo(destination); + destination.Flush(flushToDisk: true); + } + + if (!FileMatches(temporaryPath, resource)) + { + throw new IOException($"内置模型释放后校验失败:{resource.FileName}"); + } + + // Another process may have completed the same cache while this process + // was extracting. Keep its valid file; otherwise replace atomically. + if (!FileMatches(targetPath, resource)) + { + File.Move(temporaryPath, targetPath, overwrite: true); + } + } + finally + { + if (File.Exists(temporaryPath)) + { + File.Delete(temporaryPath); + } + } + } + + return cacheDirectory; + } + + private static bool FileMatches(string path, ModelResource resource) + { + try + { + FileInfo file = new(path); + if (!file.Exists || file.Length != resource.Length) + { + return false; + } + + using FileStream stream = file.Open(FileMode.Open, FileAccess.Read, FileShare.Read); + return CryptographicOperations.FixedTimeEquals(SHA256.HashData(stream), resource.ContentHash); + } + catch (IOException) + { + return false; + } + catch (UnauthorizedAccessException) + { + return false; + } + } + + private static Stream OpenResource(Assembly assembly, string resourceName) => + assembly.GetManifestResourceStream(resourceName) + ?? throw new InvalidOperationException($"程序缺少内置资源:{resourceName}"); + + private sealed record ModelManifest(string Version, IReadOnlyList Resources); + + private sealed record ModelResource( + string FileName, + string ResourceName, + long Length, + byte[] ContentHash); +} diff --git a/RapidOCRWinform/FormOcr.Designer.cs b/RapidOCRWinform/FormOcr.Designer.cs index 7f5b7fe..545a108 100644 --- a/RapidOCRWinform/FormOcr.Designer.cs +++ b/RapidOCRWinform/FormOcr.Designer.cs @@ -1,632 +1,771 @@ -namespace RapidOCRWinform +#nullable disable + +namespace RapidOCRWinform; + +partial class FormOcr { - partial class FormOcr - { - /// - /// 必需的设计器变量。 - /// - private System.ComponentModel.IContainer components = null; + private System.ComponentModel.IContainer components = null; - /// - /// 清理所有正在使用的资源。 - /// - /// 如果应释放托管资源,为 true;否则为 false。 - protected override void Dispose(bool disposing) + protected override void Dispose(bool disposing) + { + if (disposing) { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); + _ocrEngine?.Dispose(); + previewPictureBox.Image?.Dispose(); + components?.Dispose(); } - #region Windows 窗体设计器生成的代码 + base.Dispose(disposing); + } - /// - /// 设计器支持所需的方法 - 不要修改 - /// 使用代码编辑器修改此方法的内容。 - /// - private void InitializeComponent() - { - label8 = new Label(); - tableLayoutPanel2 = new TableLayoutPanel(); - modelsTextBox = new TextBox(); - label9 = new Label(); - modelsBtn = new Button(); - pathTextBox = new TextBox(); - openBtn = new Button(); - label1 = new Label(); - numThreadNumeric = new NumericUpDown(); - label6 = new Label(); - detNameTextBox = new TextBox(); - label10 = new Label(); - clsNameTextBox = new TextBox(); - label11 = new Label(); - recNameTextBox = new TextBox(); - label12 = new Label(); - keysNameTextBox = new TextBox(); - label5 = new Label(); - boxThreshNumeric = new NumericUpDown(); - label7 = new Label(); - unClipRatioNumeric = new NumericUpDown(); - doAngleCheckBox = new CheckBox(); - mostAngleCheckBox = new CheckBox(); - label4 = new Label(); - imgResizeNumeric = new NumericUpDown(); - label3 = new Label(); - paddingNumeric = new NumericUpDown(); - label2 = new Label(); - boxScoreThreshNumeric = new NumericUpDown(); - tableLayoutPanel3 = new TableLayoutPanel(); - strRestTextBox = new TextBox(); - tableLayoutPanel1 = new TableLayoutPanel(); - partImgCheckBox = new CheckBox(); - debugCheckBox = new CheckBox(); - panel1 = new Panel(); - pictureBox = new PictureBox(); - detectBtn = new Button(); - initBtn = new Button(); - ocrResultTextBox = new TextBox(); - tableLayoutPanel2.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)numThreadNumeric).BeginInit(); - ((System.ComponentModel.ISupportInitialize)boxThreshNumeric).BeginInit(); - ((System.ComponentModel.ISupportInitialize)unClipRatioNumeric).BeginInit(); - ((System.ComponentModel.ISupportInitialize)imgResizeNumeric).BeginInit(); - ((System.ComponentModel.ISupportInitialize)paddingNumeric).BeginInit(); - ((System.ComponentModel.ISupportInitialize)boxScoreThreshNumeric).BeginInit(); - tableLayoutPanel3.SuspendLayout(); - tableLayoutPanel1.SuspendLayout(); - panel1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)pictureBox).BeginInit(); - SuspendLayout(); - // - // label8 - // - label8.AutoSize = true; - label8.Location = new Point(4, 306); - label8.Margin = new Padding(4, 0, 4, 0); - label8.Name = "label8"; - label8.Size = new Size(62, 20); - label8.TabIndex = 8; - label8.Text = "ImgFile"; - // - // tableLayoutPanel2 - // - tableLayoutPanel2.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; - tableLayoutPanel2.ColumnCount = 3; - tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 150F)); - tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F)); - tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 120F)); - tableLayoutPanel2.Controls.Add(modelsTextBox, 1, 0); - tableLayoutPanel2.Controls.Add(label9, 0, 0); - tableLayoutPanel2.Controls.Add(modelsBtn, 2, 0); - tableLayoutPanel2.Controls.Add(label8, 0, 6); - tableLayoutPanel2.Controls.Add(pathTextBox, 1, 6); - tableLayoutPanel2.Controls.Add(openBtn, 2, 6); - tableLayoutPanel2.Controls.Add(label1, 0, 5); - tableLayoutPanel2.Controls.Add(numThreadNumeric, 1, 5); - tableLayoutPanel2.Controls.Add(label6, 0, 1); - tableLayoutPanel2.Controls.Add(detNameTextBox, 1, 1); - tableLayoutPanel2.Controls.Add(label10, 0, 2); - tableLayoutPanel2.Controls.Add(clsNameTextBox, 1, 2); - tableLayoutPanel2.Controls.Add(label11, 0, 3); - tableLayoutPanel2.Controls.Add(recNameTextBox, 1, 3); - tableLayoutPanel2.Controls.Add(label12, 0, 4); - tableLayoutPanel2.Controls.Add(keysNameTextBox, 1, 4); - tableLayoutPanel2.Location = new Point(21, 20); - tableLayoutPanel2.Margin = new Padding(4, 5, 4, 5); - tableLayoutPanel2.Name = "tableLayoutPanel2"; - tableLayoutPanel2.RowCount = 7; - tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 51F)); - tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 51F)); - tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 51F)); - tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 51F)); - tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 51F)); - tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 51F)); - tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 51F)); - tableLayoutPanel2.Size = new Size(1012, 352); - tableLayoutPanel2.TabIndex = 14; - // - // modelsTextBox - // - modelsTextBox.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; - modelsTextBox.Location = new Point(154, 5); - modelsTextBox.Margin = new Padding(4, 5, 4, 5); - modelsTextBox.Name = "modelsTextBox"; - modelsTextBox.Size = new Size(734, 27); - modelsTextBox.TabIndex = 1; - // - // label9 - // - label9.AutoSize = true; - label9.Location = new Point(4, 0); - label9.Margin = new Padding(4, 0, 4, 0); - label9.Name = "label9"; - label9.Size = new Size(64, 20); - label9.TabIndex = 9; - label9.Text = "Models"; - // - // modelsBtn - // - modelsBtn.Location = new Point(896, 5); - modelsBtn.Margin = new Padding(4, 5, 4, 5); - modelsBtn.Name = "modelsBtn"; - modelsBtn.Size = new Size(111, 39); - modelsBtn.TabIndex = 2; - modelsBtn.Text = "Models"; - modelsBtn.UseVisualStyleBackColor = true; - modelsBtn.Click += modelsBtn_Click; - // - // pathTextBox - // - pathTextBox.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; - pathTextBox.Location = new Point(154, 311); - pathTextBox.Margin = new Padding(4, 5, 4, 5); - pathTextBox.Name = "pathTextBox"; - pathTextBox.Size = new Size(734, 27); - pathTextBox.TabIndex = 6; - // - // openBtn - // - openBtn.Location = new Point(896, 311); - openBtn.Margin = new Padding(4, 5, 4, 5); - openBtn.Name = "openBtn"; - openBtn.Size = new Size(111, 39); - openBtn.TabIndex = 0; - openBtn.Text = "Open"; - openBtn.UseVisualStyleBackColor = true; - openBtn.Click += openBtn_Click; - // - // label1 - // - label1.AutoSize = true; - label1.Location = new Point(4, 255); - label1.Margin = new Padding(4, 0, 4, 0); - label1.Name = "label1"; - label1.Size = new Size(92, 20); - label1.TabIndex = 3; - label1.Text = "numThread"; - // - // numThreadNumeric - // - numThreadNumeric.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; - numThreadNumeric.Location = new Point(154, 260); - numThreadNumeric.Margin = new Padding(4, 5, 4, 5); - numThreadNumeric.Maximum = new decimal(new int[] { 128, 0, 0, 0 }); - numThreadNumeric.Minimum = new decimal(new int[] { 1, 0, 0, 0 }); - numThreadNumeric.Name = "numThreadNumeric"; - numThreadNumeric.Size = new Size(734, 27); - numThreadNumeric.TabIndex = 4; - numThreadNumeric.Value = new decimal(new int[] { 4, 0, 0, 0 }); - // - // label6 - // - label6.AutoSize = true; - label6.Location = new Point(4, 51); - label6.Margin = new Padding(4, 0, 4, 0); - label6.Name = "label6"; - label6.Size = new Size(34, 20); - label6.TabIndex = 11; - label6.Text = "det"; - // - // detNameTextBox - // - detNameTextBox.Location = new Point(154, 56); - detNameTextBox.Margin = new Padding(4, 5, 4, 5); - detNameTextBox.Name = "detNameTextBox"; - detNameTextBox.Size = new Size(732, 27); - detNameTextBox.TabIndex = 12; - detNameTextBox.Text = "ch_PP-OCRv5_mobile_det.onnx"; - // - // label10 - // - label10.AutoSize = true; - label10.Location = new Point(4, 102); - label10.Margin = new Padding(4, 0, 4, 0); - label10.Name = "label10"; - label10.Size = new Size(28, 20); - label10.TabIndex = 13; - label10.Text = "cls"; - // - // clsNameTextBox - // - clsNameTextBox.Location = new Point(154, 107); - clsNameTextBox.Margin = new Padding(4, 5, 4, 5); - clsNameTextBox.Name = "clsNameTextBox"; - clsNameTextBox.Size = new Size(732, 27); - clsNameTextBox.TabIndex = 14; - clsNameTextBox.Text = "ch_ppocr_mobile_v2.0_cls_infer.onnx"; - // - // label11 - // - label11.AutoSize = true; - label11.Location = new Point(4, 153); - label11.Margin = new Padding(4, 0, 4, 0); - label11.Name = "label11"; - label11.Size = new Size(32, 20); - label11.TabIndex = 15; - label11.Text = "rec"; - // - // recNameTextBox - // - recNameTextBox.Location = new Point(154, 158); - recNameTextBox.Margin = new Padding(4, 5, 4, 5); - recNameTextBox.Name = "recNameTextBox"; - recNameTextBox.Size = new Size(732, 27); - recNameTextBox.TabIndex = 16; - recNameTextBox.Text = "ch_PP-OCRv5_rec_mobile_infer.onnx"; - // - // label12 - // - label12.AutoSize = true; - label12.Location = new Point(4, 204); - label12.Margin = new Padding(4, 0, 4, 0); - label12.Name = "label12"; - label12.Size = new Size(41, 20); - label12.TabIndex = 17; - label12.Text = "keys"; - // - // keysNameTextBox - // - keysNameTextBox.Location = new Point(154, 209); - keysNameTextBox.Margin = new Padding(4, 5, 4, 5); - keysNameTextBox.Name = "keysNameTextBox"; - keysNameTextBox.Size = new Size(732, 27); - keysNameTextBox.TabIndex = 18; - keysNameTextBox.Text = "ppocrv5_dict.txt"; - // - // label5 - // - label5.AutoSize = true; - label5.Location = new Point(6, 161); - label5.Margin = new Padding(4, 0, 4, 0); - label5.Name = "label5"; - label5.Size = new Size(86, 20); - label5.TabIndex = 14; - label5.Text = "boxThresh"; - // - // boxThreshNumeric - // - boxThreshNumeric.DecimalPlaces = 3; - boxThreshNumeric.Increment = new decimal(new int[] { 1, 0, 0, 65536 }); - boxThreshNumeric.Location = new Point(128, 166); - boxThreshNumeric.Margin = new Padding(4, 5, 4, 5); - boxThreshNumeric.Maximum = new decimal(new int[] { 1, 0, 0, 0 }); - boxThreshNumeric.Minimum = new decimal(new int[] { 1, 0, 0, 131072 }); - boxThreshNumeric.Name = "boxThreshNumeric"; - boxThreshNumeric.Size = new Size(111, 27); - boxThreshNumeric.TabIndex = 15; - boxThreshNumeric.Value = new decimal(new int[] { 3, 0, 0, 65536 }); - // - // label7 - // - label7.AutoSize = true; - label7.Location = new Point(6, 214); - label7.Margin = new Padding(4, 0, 4, 0); - label7.Name = "label7"; - label7.Size = new Size(93, 20); - label7.TabIndex = 21; - label7.Text = "unClipRatio"; - // - // unClipRatioNumeric - // - unClipRatioNumeric.DecimalPlaces = 1; - unClipRatioNumeric.Increment = new decimal(new int[] { 1, 0, 0, 65536 }); - unClipRatioNumeric.Location = new Point(128, 219); - unClipRatioNumeric.Margin = new Padding(4, 5, 4, 5); - unClipRatioNumeric.Maximum = new decimal(new int[] { 10, 0, 0, 0 }); - unClipRatioNumeric.Minimum = new decimal(new int[] { 1, 0, 0, 65536 }); - unClipRatioNumeric.Name = "unClipRatioNumeric"; - unClipRatioNumeric.Size = new Size(111, 27); - unClipRatioNumeric.TabIndex = 22; - unClipRatioNumeric.Value = new decimal(new int[] { 16, 0, 0, 65536 }); - // - // doAngleCheckBox - // - doAngleCheckBox.AutoSize = true; - doAngleCheckBox.Checked = true; - doAngleCheckBox.CheckState = CheckState.Checked; - doAngleCheckBox.Location = new Point(6, 272); - doAngleCheckBox.Margin = new Padding(4, 5, 4, 5); - doAngleCheckBox.Name = "doAngleCheckBox"; - doAngleCheckBox.Size = new Size(94, 24); - doAngleCheckBox.TabIndex = 26; - doAngleCheckBox.Text = "doAngle"; - doAngleCheckBox.UseVisualStyleBackColor = true; - // - // mostAngleCheckBox - // - mostAngleCheckBox.AutoSize = true; - mostAngleCheckBox.Location = new Point(128, 272); - mostAngleCheckBox.Margin = new Padding(4, 5, 4, 5); - mostAngleCheckBox.Name = "mostAngleCheckBox"; - mostAngleCheckBox.Size = new Size(111, 24); - mostAngleCheckBox.TabIndex = 27; - mostAngleCheckBox.Text = "mostAngle"; - mostAngleCheckBox.UseVisualStyleBackColor = true; - // - // label4 - // - label4.AutoSize = true; - label4.Location = new Point(6, 108); - label4.Margin = new Padding(4, 0, 4, 0); - label4.Name = "label4"; - label4.Size = new Size(112, 40); - label4.TabIndex = 12; - label4.Text = "boxScoreThresh"; - // - // imgResizeNumeric - // - imgResizeNumeric.Location = new Point(128, 60); - imgResizeNumeric.Margin = new Padding(4, 5, 4, 5); - imgResizeNumeric.Maximum = new decimal(new int[] { 99999, 0, 0, 0 }); - imgResizeNumeric.Name = "imgResizeNumeric"; - imgResizeNumeric.Size = new Size(111, 27); - imgResizeNumeric.TabIndex = 10; - imgResizeNumeric.Value = new decimal(new int[] { 1024, 0, 0, 0 }); - // - // label3 - // - label3.AutoSize = true; - label3.Location = new Point(6, 55); - label3.Margin = new Padding(4, 0, 4, 0); - label3.Name = "label3"; - label3.Size = new Size(97, 20); - label3.TabIndex = 9; - label3.Text = "maxSideLen"; - // - // paddingNumeric - // - paddingNumeric.Location = new Point(128, 7); - paddingNumeric.Margin = new Padding(4, 5, 4, 5); - paddingNumeric.Maximum = new decimal(new int[] { 200, 0, 0, 0 }); - paddingNumeric.Name = "paddingNumeric"; - paddingNumeric.Size = new Size(111, 27); - paddingNumeric.TabIndex = 7; - paddingNumeric.Value = new decimal(new int[] { 50, 0, 0, 0 }); - // - // label2 - // - label2.AutoSize = true; - label2.Location = new Point(6, 2); - label2.Margin = new Padding(4, 0, 4, 0); - label2.Name = "label2"; - label2.Size = new Size(70, 20); - label2.TabIndex = 6; - label2.Text = "padding"; - // - // boxScoreThreshNumeric - // - boxScoreThreshNumeric.DecimalPlaces = 3; - boxScoreThreshNumeric.Increment = new decimal(new int[] { 1, 0, 0, 65536 }); - boxScoreThreshNumeric.Location = new Point(128, 113); - boxScoreThreshNumeric.Margin = new Padding(4, 5, 4, 5); - boxScoreThreshNumeric.Maximum = new decimal(new int[] { 1, 0, 0, 0 }); - boxScoreThreshNumeric.Minimum = new decimal(new int[] { 1, 0, 0, 131072 }); - boxScoreThreshNumeric.Name = "boxScoreThreshNumeric"; - boxScoreThreshNumeric.Size = new Size(111, 27); - boxScoreThreshNumeric.TabIndex = 13; - boxScoreThreshNumeric.Value = new decimal(new int[] { 5, 0, 0, 65536 }); - // - // tableLayoutPanel3 - // - tableLayoutPanel3.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; - tableLayoutPanel3.ColumnCount = 3; - tableLayoutPanel3.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 255F)); - tableLayoutPanel3.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F)); - tableLayoutPanel3.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F)); - tableLayoutPanel3.Controls.Add(strRestTextBox, 2, 0); - tableLayoutPanel3.Controls.Add(tableLayoutPanel1, 0, 0); - tableLayoutPanel3.Controls.Add(panel1, 1, 0); - tableLayoutPanel3.Location = new Point(21, 381); - tableLayoutPanel3.Margin = new Padding(4, 5, 4, 5); - tableLayoutPanel3.Name = "tableLayoutPanel3"; - tableLayoutPanel3.RowCount = 1; - tableLayoutPanel3.RowStyles.Add(new RowStyle(SizeType.Percent, 100F)); - tableLayoutPanel3.Size = new Size(1135, 447); - tableLayoutPanel3.TabIndex = 16; - // - // strRestTextBox - // - strRestTextBox.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; - strRestTextBox.Location = new Point(699, 5); - strRestTextBox.Margin = new Padding(4, 5, 4, 5); - strRestTextBox.Multiline = true; - strRestTextBox.Name = "strRestTextBox"; - strRestTextBox.ScrollBars = ScrollBars.Vertical; - strRestTextBox.Size = new Size(432, 431); - strRestTextBox.TabIndex = 0; - // - // tableLayoutPanel1 - // - tableLayoutPanel1.CellBorderStyle = TableLayoutPanelCellBorderStyle.Outset; - tableLayoutPanel1.ColumnCount = 2; - tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 120F)); - tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 150F)); - tableLayoutPanel1.Controls.Add(boxScoreThreshNumeric, 1, 2); - tableLayoutPanel1.Controls.Add(label4, 0, 2); - tableLayoutPanel1.Controls.Add(imgResizeNumeric, 1, 1); - tableLayoutPanel1.Controls.Add(label3, 0, 1); - tableLayoutPanel1.Controls.Add(paddingNumeric, 1, 0); - tableLayoutPanel1.Controls.Add(label2, 0, 0); - tableLayoutPanel1.Controls.Add(label5, 0, 3); - tableLayoutPanel1.Controls.Add(boxThreshNumeric, 1, 3); - tableLayoutPanel1.Controls.Add(label7, 0, 4); - tableLayoutPanel1.Controls.Add(unClipRatioNumeric, 1, 4); - tableLayoutPanel1.Controls.Add(doAngleCheckBox, 0, 5); - tableLayoutPanel1.Controls.Add(mostAngleCheckBox, 1, 5); - tableLayoutPanel1.Controls.Add(partImgCheckBox, 0, 6); - tableLayoutPanel1.Controls.Add(debugCheckBox, 1, 6); - tableLayoutPanel1.Location = new Point(4, 5); - tableLayoutPanel1.Margin = new Padding(4, 5, 4, 5); - tableLayoutPanel1.Name = "tableLayoutPanel1"; - tableLayoutPanel1.RowCount = 8; - tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 51F)); - tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 51F)); - tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 51F)); - tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 51F)); - tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 51F)); - tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 51F)); - tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 51F)); - tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 51F)); - tableLayoutPanel1.Size = new Size(246, 433); - tableLayoutPanel1.TabIndex = 2; - // - // partImgCheckBox - // - partImgCheckBox.AutoSize = true; - partImgCheckBox.Location = new Point(6, 325); - partImgCheckBox.Margin = new Padding(4, 5, 4, 5); - partImgCheckBox.Name = "partImgCheckBox"; - partImgCheckBox.Size = new Size(88, 24); - partImgCheckBox.TabIndex = 28; - partImgCheckBox.Text = "PartImg"; - partImgCheckBox.UseVisualStyleBackColor = true; - partImgCheckBox.CheckedChanged += partImgCheckBox_CheckedChanged; - // - // debugCheckBox - // - debugCheckBox.AutoSize = true; - debugCheckBox.Location = new Point(128, 325); - debugCheckBox.Margin = new Padding(4, 5, 4, 5); - debugCheckBox.Name = "debugCheckBox"; - debugCheckBox.Size = new Size(108, 24); - debugCheckBox.TabIndex = 29; - debugCheckBox.Text = "DebugImg"; - debugCheckBox.UseVisualStyleBackColor = true; - debugCheckBox.CheckedChanged += debugCheckBox_CheckedChanged; - // - // panel1 - // - panel1.AutoScroll = true; - panel1.Controls.Add(pictureBox); - panel1.Dock = DockStyle.Fill; - panel1.Location = new Point(258, 3); - panel1.Name = "panel1"; - panel1.Size = new Size(434, 441); - panel1.TabIndex = 3; - // - // pictureBox - // - pictureBox.BorderStyle = BorderStyle.FixedSingle; - pictureBox.Location = new Point(1, 5); - pictureBox.Margin = new Padding(4, 5, 4, 5); - pictureBox.Name = "pictureBox"; - pictureBox.Size = new Size(432, 431); - pictureBox.SizeMode = PictureBoxSizeMode.Zoom; - pictureBox.TabIndex = 4; - pictureBox.TabStop = false; - pictureBox.MouseDoubleClick += pictureBox_MouseDoubleClick; - // - // detectBtn - // - detectBtn.Anchor = AnchorStyles.Top | AnchorStyles.Right; - detectBtn.Location = new Point(1045, 20); - detectBtn.Margin = new Padding(4, 5, 4, 5); - detectBtn.Name = "detectBtn"; - detectBtn.Size = new Size(111, 189); - detectBtn.TabIndex = 12; - detectBtn.Text = "Detect"; - detectBtn.UseVisualStyleBackColor = true; - detectBtn.Click += detectBtn_Click; - // - // initBtn - // - initBtn.Location = new Point(1045, 220); - initBtn.Margin = new Padding(4, 5, 4, 5); - initBtn.Name = "initBtn"; - initBtn.Size = new Size(111, 152); - initBtn.TabIndex = 15; - initBtn.Text = "重新初始化"; - initBtn.UseVisualStyleBackColor = true; - initBtn.Click += initBtn_Click; - // - // ocrResultTextBox - // - ocrResultTextBox.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; - ocrResultTextBox.Font = new Font("宋体", 9F); - ocrResultTextBox.Location = new Point(21, 839); - ocrResultTextBox.Margin = new Padding(4, 5, 4, 5); - ocrResultTextBox.Multiline = true; - ocrResultTextBox.Name = "ocrResultTextBox"; - ocrResultTextBox.ScrollBars = ScrollBars.Vertical; - ocrResultTextBox.Size = new Size(1134, 407); - ocrResultTextBox.TabIndex = 13; - // - // FormOcr - // - AutoScaleDimensions = new SizeF(9F, 20F); - AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(1176, 1268); - Controls.Add(tableLayoutPanel2); - Controls.Add(tableLayoutPanel3); - Controls.Add(detectBtn); - Controls.Add(initBtn); - Controls.Add(ocrResultTextBox); - Margin = new Padding(4, 5, 4, 5); - Name = "FormOcr"; - Text = "RapidPCRSharp"; - Load += Form1_Load; - tableLayoutPanel2.ResumeLayout(false); - tableLayoutPanel2.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)numThreadNumeric).EndInit(); - ((System.ComponentModel.ISupportInitialize)boxThreshNumeric).EndInit(); - ((System.ComponentModel.ISupportInitialize)unClipRatioNumeric).EndInit(); - ((System.ComponentModel.ISupportInitialize)imgResizeNumeric).EndInit(); - ((System.ComponentModel.ISupportInitialize)paddingNumeric).EndInit(); - ((System.ComponentModel.ISupportInitialize)boxScoreThreshNumeric).EndInit(); - tableLayoutPanel3.ResumeLayout(false); - tableLayoutPanel3.PerformLayout(); - tableLayoutPanel1.ResumeLayout(false); - tableLayoutPanel1.PerformLayout(); - panel1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)pictureBox).EndInit(); - ResumeLayout(false); - PerformLayout(); + #region Windows Form Designer generated code - } + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + rootLayout = new TableLayoutPanel(); + headerPanel = new Panel(); + modelStateLabel = new Label(); + subtitleLabel = new Label(); + titleLabel = new Label(); + mainSplit = new SplitContainer(); + leftPanel = new Panel(); + processButton = new Button(); + modelGroupBox = new GroupBox(); + modelStatusLabel = new Label(); + initializeModelButton = new Button(); + browseModelButton = new Button(); + modelPathTextBox = new TextBox(); + modelPathLabel = new Label(); + settingsGroupBox = new GroupBox(); + layoutHintLabel = new Label(); + role4ColumnNumeric = new NumericUpDown(); + role4ColumnLabel = new Label(); + role3ColumnNumeric = new NumericUpDown(); + role3ColumnLabel = new Label(); + monthPicker = new DateTimePicker(); + targetMonthLabel = new Label(); + imagesGroupBox = new GroupBox(); + clearImagesButton = new Button(); + selectImagesButton = new Button(); + imageListView = new ListView(); + imageNumberColumn = new ColumnHeader(); + imageNameColumn = new ColumnHeader(); + imageStatusColumn = new ColumnHeader(); + outputTabs = new TabControl(); + resultTabPage = new TabPage(); + resultLayout = new TableLayoutPanel(); + resultToolbarPanel = new Panel(); + exportButton = new Button(); + revalidateButton = new Button(); + resultSummaryLabel = new Label(); + scheduleGrid = new DataGridView(); + dateColumn = new DataGridViewTextBoxColumn(); + weekdayColumn = new DataGridViewTextBoxColumn(); + role1Column = new DataGridViewTextBoxColumn(); + role2Column = new DataGridViewTextBoxColumn(); + role3Column = new DataGridViewTextBoxColumn(); + role4Column = new DataGridViewTextBoxColumn(); + issueColumn = new DataGridViewTextBoxColumn(); + sourceTabPage = new TabPage(); + sourceSplit = new SplitContainer(); + previewPictureBox = new PictureBox(); + diagnosticsTextBox = new TextBox(); + statusStrip = new StatusStrip(); + progressBar = new ToolStripProgressBar(); + statusLabel = new ToolStripStatusLabel(); + rootLayout.SuspendLayout(); + headerPanel.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)mainSplit).BeginInit(); + mainSplit.Panel1.SuspendLayout(); + mainSplit.Panel2.SuspendLayout(); + mainSplit.SuspendLayout(); + leftPanel.SuspendLayout(); + modelGroupBox.SuspendLayout(); + settingsGroupBox.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)role4ColumnNumeric).BeginInit(); + ((System.ComponentModel.ISupportInitialize)role3ColumnNumeric).BeginInit(); + imagesGroupBox.SuspendLayout(); + outputTabs.SuspendLayout(); + resultTabPage.SuspendLayout(); + resultLayout.SuspendLayout(); + resultToolbarPanel.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)scheduleGrid).BeginInit(); + sourceTabPage.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)sourceSplit).BeginInit(); + sourceSplit.Panel1.SuspendLayout(); + sourceSplit.Panel2.SuspendLayout(); + sourceSplit.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)previewPictureBox).BeginInit(); + statusStrip.SuspendLayout(); + SuspendLayout(); + // + // rootLayout + // + rootLayout.ColumnCount = 1; + rootLayout.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F)); + rootLayout.Controls.Add(headerPanel, 0, 0); + rootLayout.Controls.Add(mainSplit, 0, 1); + rootLayout.Controls.Add(statusStrip, 0, 2); + rootLayout.Dock = DockStyle.Fill; + rootLayout.Location = new Point(0, 0); + rootLayout.Margin = new Padding(0); + rootLayout.Name = "rootLayout"; + rootLayout.RowCount = 3; + rootLayout.RowStyles.Add(new RowStyle(SizeType.Absolute, 78F)); + rootLayout.RowStyles.Add(new RowStyle(SizeType.Percent, 100F)); + rootLayout.RowStyles.Add(new RowStyle(SizeType.Absolute, 26F)); + rootLayout.Size = new Size(1380, 860); + rootLayout.TabIndex = 0; + // + // headerPanel + // + headerPanel.BackColor = Color.FromArgb(35, 61, 92); + headerPanel.Controls.Add(modelStateLabel); + headerPanel.Controls.Add(subtitleLabel); + headerPanel.Controls.Add(titleLabel); + headerPanel.Dock = DockStyle.Fill; + headerPanel.Location = new Point(0, 0); + headerPanel.Margin = new Padding(0); + headerPanel.Name = "headerPanel"; + headerPanel.Size = new Size(1380, 78); + headerPanel.TabIndex = 0; + // + // modelStateLabel + // + modelStateLabel.Anchor = AnchorStyles.Top | AnchorStyles.Right; + modelStateLabel.AutoSize = true; + modelStateLabel.ForeColor = Color.FromArgb(255, 214, 102); + modelStateLabel.Location = new Point(1185, 29); + modelStateLabel.Name = "modelStateLabel"; + modelStateLabel.Size = new Size(147, 20); + modelStateLabel.TabIndex = 2; + modelStateLabel.Text = "● OCR 模型未初始化"; + // + // subtitleLabel + // + subtitleLabel.AutoSize = true; + subtitleLabel.ForeColor = Color.FromArgb(205, 220, 235); + subtitleLabel.Location = new Point(28, 48); + subtitleLabel.Name = "subtitleLabel"; + subtitleLabel.Size = new Size(417, 20); + subtitleLabel.TabIndex = 1; + subtitleLabel.Text = "导入 4 张排班图片,按日期穿插合并、标记异常并导出 Excel"; + // + // titleLabel + // + titleLabel.AutoSize = true; + titleLabel.Font = new Font("Microsoft YaHei UI", 18F, FontStyle.Bold); + titleLabel.ForeColor = Color.White; + titleLabel.Location = new Point(24, 9); + titleLabel.Name = "titleLabel"; + titleLabel.Size = new Size(258, 39); + titleLabel.TabIndex = 0; + titleLabel.Text = "本地排班图片整理"; + // + // mainSplit + // + mainSplit.Dock = DockStyle.Fill; + mainSplit.FixedPanel = FixedPanel.Panel1; + mainSplit.Location = new Point(0, 78); + mainSplit.Margin = new Padding(0); + mainSplit.Name = "mainSplit"; + // + // mainSplit.Panel1 + // + mainSplit.Panel1.Controls.Add(leftPanel); + mainSplit.Panel1MinSize = 380; + // + // mainSplit.Panel2 + // + mainSplit.Panel2.Controls.Add(outputTabs); + mainSplit.Panel2MinSize = 620; + mainSplit.Size = new Size(1380, 756); + mainSplit.SplitterDistance = 380; + mainSplit.TabIndex = 1; + // + // leftPanel + // + leftPanel.AutoScroll = true; + leftPanel.BackColor = Color.FromArgb(245, 247, 250); + leftPanel.Controls.Add(processButton); + leftPanel.Controls.Add(modelGroupBox); + leftPanel.Controls.Add(settingsGroupBox); + leftPanel.Controls.Add(imagesGroupBox); + leftPanel.Dock = DockStyle.Fill; + leftPanel.Location = new Point(0, 0); + leftPanel.Name = "leftPanel"; + leftPanel.Padding = new Padding(12); + leftPanel.Size = new Size(380, 756); + leftPanel.TabIndex = 0; + // + // processButton + // + processButton.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; + processButton.BackColor = Color.FromArgb(28, 112, 191); + processButton.Enabled = false; + processButton.FlatAppearance.BorderSize = 0; + processButton.FlatStyle = FlatStyle.Flat; + processButton.Font = new Font("Microsoft YaHei UI", 11F, FontStyle.Bold); + processButton.ForeColor = Color.White; + processButton.Location = new Point(15, 683); + processButton.Name = "processButton"; + processButton.Size = new Size(348, 48); + processButton.TabIndex = 3; + processButton.Text = "识别并整理"; + processButton.UseVisualStyleBackColor = false; + processButton.Click += processButton_Click; + // + // modelGroupBox + // + modelGroupBox.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; + modelGroupBox.Controls.Add(modelStatusLabel); + modelGroupBox.Controls.Add(initializeModelButton); + modelGroupBox.Controls.Add(browseModelButton); + modelGroupBox.Controls.Add(modelPathTextBox); + modelGroupBox.Controls.Add(modelPathLabel); + modelGroupBox.Location = new Point(15, 512); + modelGroupBox.Name = "modelGroupBox"; + modelGroupBox.Size = new Size(348, 157); + modelGroupBox.TabIndex = 2; + modelGroupBox.TabStop = false; + modelGroupBox.Text = "OCR 模型"; + // + // modelStatusLabel + // + modelStatusLabel.AutoEllipsis = true; + modelStatusLabel.ForeColor = Color.DimGray; + modelStatusLabel.Location = new Point(12, 122); + modelStatusLabel.Name = "modelStatusLabel"; + modelStatusLabel.Size = new Size(324, 25); + modelStatusLabel.TabIndex = 4; + modelStatusLabel.Text = "等待初始化"; + // + // initializeModelButton + // + initializeModelButton.Location = new Point(228, 81); + initializeModelButton.Name = "initializeModelButton"; + initializeModelButton.Size = new Size(108, 34); + initializeModelButton.TabIndex = 3; + initializeModelButton.Text = "重新初始化"; + initializeModelButton.UseVisualStyleBackColor = true; + initializeModelButton.Click += initializeModelButton_Click; + // + // browseModelButton + // + browseModelButton.Location = new Point(228, 41); + browseModelButton.Name = "browseModelButton"; + browseModelButton.Size = new Size(108, 34); + browseModelButton.TabIndex = 2; + browseModelButton.Text = "选择目录"; + browseModelButton.UseVisualStyleBackColor = true; + browseModelButton.Click += browseModelButton_Click; + // + // modelPathTextBox + // + modelPathTextBox.Location = new Point(12, 44); + modelPathTextBox.Name = "modelPathTextBox"; + modelPathTextBox.Size = new Size(208, 27); + modelPathTextBox.TabIndex = 1; + modelPathTextBox.TextChanged += modelPathTextBox_TextChanged; + // + // modelPathLabel + // + modelPathLabel.AutoSize = true; + modelPathLabel.Location = new Point(12, 23); + modelPathLabel.Name = "modelPathLabel"; + modelPathLabel.Size = new Size(69, 20); + modelPathLabel.TabIndex = 0; + modelPathLabel.Text = "模型目录"; + // + // settingsGroupBox + // + settingsGroupBox.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; + settingsGroupBox.Controls.Add(layoutHintLabel); + settingsGroupBox.Controls.Add(role4ColumnNumeric); + settingsGroupBox.Controls.Add(role4ColumnLabel); + settingsGroupBox.Controls.Add(role3ColumnNumeric); + settingsGroupBox.Controls.Add(role3ColumnLabel); + settingsGroupBox.Controls.Add(monthPicker); + settingsGroupBox.Controls.Add(targetMonthLabel); + settingsGroupBox.Location = new Point(15, 324); + settingsGroupBox.Name = "settingsGroupBox"; + settingsGroupBox.Size = new Size(348, 174); + settingsGroupBox.TabIndex = 1; + settingsGroupBox.TabStop = false; + settingsGroupBox.Text = "整理设置"; + // + // layoutHintLabel + // + layoutHintLabel.ForeColor = Color.DimGray; + layoutHintLabel.Location = new Point(14, 129); + layoutHintLabel.Name = "layoutHintLabel"; + layoutHintLabel.Size = new Size(318, 41); + layoutHintLabel.TabIndex = 6; + layoutHintLabel.Text = "列序号从 1 开始;-1 表示最后一列,-2 表示倒数第二列。前四列固定为日期、星期、岗位一、岗位二。"; + // + // role4ColumnNumeric + // + role4ColumnNumeric.Location = new Point(255, 88); + role4ColumnNumeric.Maximum = new decimal(new int[] { 50, 0, 0, 0 }); + role4ColumnNumeric.Minimum = new decimal(new int[] { 50, 0, 0, int.MinValue }); + role4ColumnNumeric.Name = "role4ColumnNumeric"; + role4ColumnNumeric.Size = new Size(77, 27); + role4ColumnNumeric.TabIndex = 5; + role4ColumnNumeric.Value = new decimal(new int[] { 1, 0, 0, int.MinValue }); + role4ColumnNumeric.ValueChanged += layoutColumnNumeric_ValueChanged; + // + // role4ColumnLabel + // + role4ColumnLabel.AutoSize = true; + role4ColumnLabel.Location = new Point(181, 91); + role4ColumnLabel.Name = "role4ColumnLabel"; + role4ColumnLabel.Size = new Size(69, 20); + role4ColumnLabel.TabIndex = 4; + role4ColumnLabel.Text = "岗位四列"; + // + // role3ColumnNumeric + // + role3ColumnNumeric.Location = new Point(91, 88); + role3ColumnNumeric.Maximum = new decimal(new int[] { 50, 0, 0, 0 }); + role3ColumnNumeric.Minimum = new decimal(new int[] { 50, 0, 0, int.MinValue }); + role3ColumnNumeric.Name = "role3ColumnNumeric"; + role3ColumnNumeric.Size = new Size(77, 27); + role3ColumnNumeric.TabIndex = 3; + role3ColumnNumeric.Value = new decimal(new int[] { 2, 0, 0, int.MinValue }); + role3ColumnNumeric.ValueChanged += layoutColumnNumeric_ValueChanged; + // + // role3ColumnLabel + // + role3ColumnLabel.AutoSize = true; + role3ColumnLabel.Location = new Point(14, 91); + role3ColumnLabel.Name = "role3ColumnLabel"; + role3ColumnLabel.Size = new Size(69, 20); + role3ColumnLabel.TabIndex = 2; + role3ColumnLabel.Text = "岗位三列"; + // + // monthPicker + // + monthPicker.CustomFormat = "yyyy 年 M 月"; + monthPicker.Format = DateTimePickerFormat.Custom; + monthPicker.Location = new Point(91, 39); + monthPicker.Name = "monthPicker"; + monthPicker.ShowUpDown = true; + monthPicker.Size = new Size(241, 27); + monthPicker.TabIndex = 1; + monthPicker.ValueChanged += monthPicker_ValueChanged; + // + // targetMonthLabel + // + targetMonthLabel.AutoSize = true; + targetMonthLabel.Location = new Point(14, 42); + targetMonthLabel.Name = "targetMonthLabel"; + targetMonthLabel.Size = new Size(69, 20); + targetMonthLabel.TabIndex = 0; + targetMonthLabel.Text = "目标月份"; + // + // imagesGroupBox + // + imagesGroupBox.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; + imagesGroupBox.Controls.Add(clearImagesButton); + imagesGroupBox.Controls.Add(selectImagesButton); + imagesGroupBox.Controls.Add(imageListView); + imagesGroupBox.Location = new Point(15, 12); + imagesGroupBox.Name = "imagesGroupBox"; + imagesGroupBox.Size = new Size(348, 298); + imagesGroupBox.TabIndex = 0; + imagesGroupBox.TabStop = false; + imagesGroupBox.Text = "排班图片(必须正好 4 张)"; + // + // clearImagesButton + // + clearImagesButton.Location = new Point(228, 250); + clearImagesButton.Name = "clearImagesButton"; + clearImagesButton.Size = new Size(108, 34); + clearImagesButton.TabIndex = 2; + clearImagesButton.Text = "清空"; + clearImagesButton.UseVisualStyleBackColor = true; + clearImagesButton.Click += clearImagesButton_Click; + // + // selectImagesButton + // + selectImagesButton.Location = new Point(12, 250); + selectImagesButton.Name = "selectImagesButton"; + selectImagesButton.Size = new Size(208, 34); + selectImagesButton.TabIndex = 1; + selectImagesButton.Text = "选择 4 张图片…"; + selectImagesButton.UseVisualStyleBackColor = true; + selectImagesButton.Click += selectImagesButton_Click; + // + // imageListView + // + imageListView.Columns.AddRange(new ColumnHeader[] { imageNumberColumn, imageNameColumn, imageStatusColumn }); + imageListView.FullRowSelect = true; + imageListView.GridLines = true; + imageListView.HeaderStyle = ColumnHeaderStyle.Nonclickable; + imageListView.Location = new Point(12, 29); + imageListView.MultiSelect = false; + imageListView.Name = "imageListView"; + imageListView.ShowItemToolTips = true; + imageListView.Size = new Size(324, 211); + imageListView.TabIndex = 0; + imageListView.UseCompatibleStateImageBehavior = false; + imageListView.View = View.Details; + imageListView.SelectedIndexChanged += imageListView_SelectedIndexChanged; + // + // imageNumberColumn + // + imageNumberColumn.Text = "#"; + imageNumberColumn.Width = 32; + // + // imageNameColumn + // + imageNameColumn.Text = "文件"; + imageNameColumn.Width = 174; + // + // imageStatusColumn + // + imageStatusColumn.Text = "状态"; + imageStatusColumn.Width = 112; + // + // outputTabs + // + outputTabs.Controls.Add(resultTabPage); + outputTabs.Controls.Add(sourceTabPage); + outputTabs.Dock = DockStyle.Fill; + outputTabs.Location = new Point(0, 0); + outputTabs.Name = "outputTabs"; + outputTabs.SelectedIndex = 0; + outputTabs.Size = new Size(996, 756); + outputTabs.TabIndex = 0; + // + // resultTabPage + // + resultTabPage.Controls.Add(resultLayout); + resultTabPage.Location = new Point(4, 29); + resultTabPage.Name = "resultTabPage"; + resultTabPage.Padding = new Padding(8); + resultTabPage.Size = new Size(988, 723); + resultTabPage.TabIndex = 0; + resultTabPage.Text = "整理结果 / 可编辑"; + resultTabPage.UseVisualStyleBackColor = true; + // + // resultLayout + // + resultLayout.ColumnCount = 1; + resultLayout.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F)); + resultLayout.Controls.Add(resultToolbarPanel, 0, 0); + resultLayout.Controls.Add(scheduleGrid, 0, 1); + resultLayout.Dock = DockStyle.Fill; + resultLayout.Location = new Point(8, 8); + resultLayout.Name = "resultLayout"; + resultLayout.RowCount = 2; + resultLayout.RowStyles.Add(new RowStyle(SizeType.Absolute, 58F)); + resultLayout.RowStyles.Add(new RowStyle(SizeType.Percent, 100F)); + resultLayout.Size = new Size(972, 707); + resultLayout.TabIndex = 0; + // + // resultToolbarPanel + // + resultToolbarPanel.Controls.Add(exportButton); + resultToolbarPanel.Controls.Add(revalidateButton); + resultToolbarPanel.Controls.Add(resultSummaryLabel); + resultToolbarPanel.Dock = DockStyle.Fill; + resultToolbarPanel.Location = new Point(0, 0); + resultToolbarPanel.Margin = new Padding(0); + resultToolbarPanel.Name = "resultToolbarPanel"; + resultToolbarPanel.Size = new Size(972, 58); + resultToolbarPanel.TabIndex = 0; + // + // exportButton + // + exportButton.Anchor = AnchorStyles.Top | AnchorStyles.Right; + exportButton.BackColor = Color.FromArgb(42, 139, 87); + exportButton.Enabled = false; + exportButton.FlatAppearance.BorderSize = 0; + exportButton.FlatStyle = FlatStyle.Flat; + exportButton.ForeColor = Color.White; + exportButton.Location = new Point(836, 11); + exportButton.Name = "exportButton"; + exportButton.Size = new Size(126, 36); + exportButton.TabIndex = 2; + exportButton.Text = "导出 Excel…"; + exportButton.UseVisualStyleBackColor = false; + exportButton.Click += exportButton_Click; + // + // revalidateButton + // + revalidateButton.Anchor = AnchorStyles.Top | AnchorStyles.Right; + revalidateButton.Enabled = false; + revalidateButton.Location = new Point(704, 11); + revalidateButton.Name = "revalidateButton"; + revalidateButton.Size = new Size(126, 36); + revalidateButton.TabIndex = 1; + revalidateButton.Text = "重新校验"; + revalidateButton.UseVisualStyleBackColor = true; + revalidateButton.Click += revalidateButton_Click; + // + // resultSummaryLabel + // + resultSummaryLabel.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; + resultSummaryLabel.AutoEllipsis = true; + resultSummaryLabel.Location = new Point(8, 11); + resultSummaryLabel.Name = "resultSummaryLabel"; + resultSummaryLabel.Size = new Size(682, 37); + resultSummaryLabel.TabIndex = 0; + resultSummaryLabel.Text = "尚未整理。异常单元格将用浅红色标记,可直接双击修改。"; + resultSummaryLabel.TextAlign = ContentAlignment.MiddleLeft; + // + // scheduleGrid + // + scheduleGrid.AllowUserToAddRows = false; + scheduleGrid.AllowUserToDeleteRows = false; + scheduleGrid.AutoGenerateColumns = false; + scheduleGrid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + scheduleGrid.BackgroundColor = Color.White; + scheduleGrid.ColumnHeadersHeight = 38; + scheduleGrid.Columns.AddRange(new DataGridViewColumn[] { dateColumn, weekdayColumn, role1Column, role2Column, role3Column, role4Column, issueColumn }); + scheduleGrid.Dock = DockStyle.Fill; + scheduleGrid.EditMode = DataGridViewEditMode.EditOnKeystrokeOrF2; + scheduleGrid.Location = new Point(3, 61); + scheduleGrid.MultiSelect = false; + scheduleGrid.Name = "scheduleGrid"; + scheduleGrid.RowHeadersWidth = 48; + scheduleGrid.RowTemplate.Height = 32; + scheduleGrid.SelectionMode = DataGridViewSelectionMode.CellSelect; + scheduleGrid.Size = new Size(966, 643); + scheduleGrid.TabIndex = 1; + scheduleGrid.CellEndEdit += scheduleGrid_CellEndEdit; + scheduleGrid.CellFormatting += scheduleGrid_CellFormatting; + scheduleGrid.DataError += scheduleGrid_DataError; + // + // dateColumn + // + dateColumn.DataPropertyName = "DateText"; + dateColumn.FillWeight = 70F; + dateColumn.HeaderText = "日期"; + dateColumn.MinimumWidth = 72; + dateColumn.Name = "dateColumn"; + // + // weekdayColumn + // + weekdayColumn.DataPropertyName = "Weekday"; + weekdayColumn.FillWeight = 78F; + weekdayColumn.HeaderText = "星期"; + weekdayColumn.MinimumWidth = 78; + weekdayColumn.Name = "weekdayColumn"; + // + // role1Column + // + role1Column.DataPropertyName = "Role1"; + role1Column.HeaderText = "岗位一(队长)"; + role1Column.MinimumWidth = 115; + role1Column.Name = "role1Column"; + // + // role2Column + // + role2Column.DataPropertyName = "Role2"; + role2Column.HeaderText = "岗位二"; + role2Column.MinimumWidth = 90; + role2Column.Name = "role2Column"; + // + // role3Column + // + role3Column.DataPropertyName = "Role3"; + role3Column.HeaderText = "岗位三"; + role3Column.MinimumWidth = 90; + role3Column.Name = "role3Column"; + // + // role4Column + // + role4Column.DataPropertyName = "Role4"; + role4Column.HeaderText = "岗位四"; + role4Column.MinimumWidth = 90; + role4Column.Name = "role4Column"; + // + // issueColumn + // + issueColumn.DataPropertyName = "IssueText"; + issueColumn.FillWeight = 160F; + issueColumn.HeaderText = "异常 / 待检查"; + issueColumn.MinimumWidth = 180; + issueColumn.Name = "issueColumn"; + issueColumn.ReadOnly = true; + // + // sourceTabPage + // + sourceTabPage.Controls.Add(sourceSplit); + sourceTabPage.Location = new Point(4, 29); + sourceTabPage.Name = "sourceTabPage"; + sourceTabPage.Padding = new Padding(8); + sourceTabPage.Size = new Size(988, 723); + sourceTabPage.TabIndex = 1; + sourceTabPage.Text = "原图与识别诊断"; + sourceTabPage.UseVisualStyleBackColor = true; + // + // sourceSplit + // + sourceSplit.Dock = DockStyle.Fill; + sourceSplit.Location = new Point(8, 8); + sourceSplit.Name = "sourceSplit"; + sourceSplit.Orientation = Orientation.Horizontal; + // + // sourceSplit.Panel1 + // + sourceSplit.Panel1.Controls.Add(previewPictureBox); + sourceSplit.Panel1MinSize = 260; + // + // sourceSplit.Panel2 + // + sourceSplit.Panel2.Controls.Add(diagnosticsTextBox); + sourceSplit.Panel2MinSize = 110; + sourceSplit.Size = new Size(972, 707); + sourceSplit.SplitterDistance = 493; + sourceSplit.TabIndex = 0; + // + // previewPictureBox + // + previewPictureBox.BackColor = Color.FromArgb(35, 35, 35); + previewPictureBox.Dock = DockStyle.Fill; + previewPictureBox.Location = new Point(0, 0); + previewPictureBox.Name = "previewPictureBox"; + previewPictureBox.Size = new Size(972, 493); + previewPictureBox.SizeMode = PictureBoxSizeMode.Zoom; + previewPictureBox.TabIndex = 0; + previewPictureBox.TabStop = false; + // + // diagnosticsTextBox + // + diagnosticsTextBox.BackColor = Color.White; + diagnosticsTextBox.Dock = DockStyle.Fill; + diagnosticsTextBox.Font = new Font("Consolas", 9F); + diagnosticsTextBox.Location = new Point(0, 0); + diagnosticsTextBox.Multiline = true; + diagnosticsTextBox.Name = "diagnosticsTextBox"; + diagnosticsTextBox.ReadOnly = true; + diagnosticsTextBox.ScrollBars = ScrollBars.Both; + diagnosticsTextBox.Size = new Size(972, 210); + diagnosticsTextBox.TabIndex = 0; + diagnosticsTextBox.WordWrap = false; + // + // statusStrip + // + statusStrip.Items.AddRange(new ToolStripItem[] { progressBar, statusLabel }); + statusStrip.Location = new Point(0, 834); + statusStrip.Name = "statusStrip"; + statusStrip.Size = new Size(1380, 26); + statusStrip.SizingGrip = false; + statusStrip.TabIndex = 2; + // + // progressBar + // + progressBar.Name = "progressBar"; + progressBar.Size = new Size(160, 18); + progressBar.Visible = false; + // + // statusLabel + // + statusLabel.Name = "statusLabel"; + statusLabel.Size = new Size(69, 20); + statusLabel.Text = "准备就绪"; + // + // FormOcr + // + AutoScaleDimensions = new SizeF(9F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(1380, 860); + Controls.Add(rootLayout); + Font = new Font("Microsoft YaHei UI", 9F); + MinimumSize = new Size(1120, 720); + Name = "FormOcr"; + StartPosition = FormStartPosition.CenterScreen; + Text = "本地排班图片整理 - RapidOCR"; + FormClosing += FormOcr_FormClosing; + Load += FormOcr_Load; + rootLayout.ResumeLayout(false); + rootLayout.PerformLayout(); + headerPanel.ResumeLayout(false); + headerPanel.PerformLayout(); + mainSplit.Panel1.ResumeLayout(false); + mainSplit.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)mainSplit).EndInit(); + mainSplit.ResumeLayout(false); + leftPanel.ResumeLayout(false); + modelGroupBox.ResumeLayout(false); + modelGroupBox.PerformLayout(); + settingsGroupBox.ResumeLayout(false); + settingsGroupBox.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)role4ColumnNumeric).EndInit(); + ((System.ComponentModel.ISupportInitialize)role3ColumnNumeric).EndInit(); + imagesGroupBox.ResumeLayout(false); + outputTabs.ResumeLayout(false); + resultTabPage.ResumeLayout(false); + resultLayout.ResumeLayout(false); + resultToolbarPanel.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)scheduleGrid).EndInit(); + sourceTabPage.ResumeLayout(false); + sourceSplit.Panel1.ResumeLayout(false); + sourceSplit.Panel2.ResumeLayout(false); + sourceSplit.Panel2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)sourceSplit).EndInit(); + sourceSplit.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)previewPictureBox).EndInit(); + statusStrip.ResumeLayout(false); + statusStrip.PerformLayout(); + ResumeLayout(false); + } - #endregion + #endregion - private System.Windows.Forms.Label label8; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; - private System.Windows.Forms.TextBox modelsTextBox; - private System.Windows.Forms.Label label9; - private System.Windows.Forms.Button modelsBtn; - private System.Windows.Forms.TextBox pathTextBox; - private System.Windows.Forms.Button openBtn; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.NumericUpDown numThreadNumeric; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.TextBox detNameTextBox; - private System.Windows.Forms.Label label10; - private System.Windows.Forms.TextBox clsNameTextBox; - private System.Windows.Forms.Label label11; - private System.Windows.Forms.TextBox recNameTextBox; - private System.Windows.Forms.Label label12; - private System.Windows.Forms.TextBox keysNameTextBox; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.NumericUpDown boxThreshNumeric; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.NumericUpDown unClipRatioNumeric; - private System.Windows.Forms.CheckBox doAngleCheckBox; - private System.Windows.Forms.CheckBox mostAngleCheckBox; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.NumericUpDown imgResizeNumeric; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.NumericUpDown paddingNumeric; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.NumericUpDown boxScoreThreshNumeric; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; - private System.Windows.Forms.TextBox strRestTextBox; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; - private System.Windows.Forms.CheckBox partImgCheckBox; - private System.Windows.Forms.CheckBox debugCheckBox; - private System.Windows.Forms.Button detectBtn; - private System.Windows.Forms.Button initBtn; - private System.Windows.Forms.TextBox ocrResultTextBox; - private Panel panel1; - private PictureBox pictureBox; - } + private TableLayoutPanel rootLayout; + private Panel headerPanel; + private Label modelStateLabel; + private Label subtitleLabel; + private Label titleLabel; + private SplitContainer mainSplit; + private Panel leftPanel; + private GroupBox imagesGroupBox; + private ListView imageListView; + private ColumnHeader imageNumberColumn; + private ColumnHeader imageNameColumn; + private ColumnHeader imageStatusColumn; + private Button selectImagesButton; + private Button clearImagesButton; + private GroupBox settingsGroupBox; + private DateTimePicker monthPicker; + private Label targetMonthLabel; + private NumericUpDown role3ColumnNumeric; + private Label role3ColumnLabel; + private NumericUpDown role4ColumnNumeric; + private Label role4ColumnLabel; + private Label layoutHintLabel; + private GroupBox modelGroupBox; + private TextBox modelPathTextBox; + private Label modelPathLabel; + private Button browseModelButton; + private Button initializeModelButton; + private Label modelStatusLabel; + private Button processButton; + private TabControl outputTabs; + private TabPage resultTabPage; + private TableLayoutPanel resultLayout; + private Panel resultToolbarPanel; + private Label resultSummaryLabel; + private Button revalidateButton; + private Button exportButton; + private DataGridView scheduleGrid; + private DataGridViewTextBoxColumn dateColumn; + private DataGridViewTextBoxColumn weekdayColumn; + private DataGridViewTextBoxColumn role1Column; + private DataGridViewTextBoxColumn role2Column; + private DataGridViewTextBoxColumn role3Column; + private DataGridViewTextBoxColumn role4Column; + private DataGridViewTextBoxColumn issueColumn; + private TabPage sourceTabPage; + private SplitContainer sourceSplit; + private PictureBox previewPictureBox; + private TextBox diagnosticsTextBox; + private StatusStrip statusStrip; + private ToolStripProgressBar progressBar; + private ToolStripStatusLabel statusLabel; } - diff --git a/RapidOCRWinform/FormOcr.cs b/RapidOCRWinform/FormOcr.cs index 1bbfc18..7cadc74 100644 --- a/RapidOCRWinform/FormOcr.cs +++ b/RapidOCRWinform/FormOcr.cs @@ -1,187 +1,1060 @@ -using Emgu.CV; -using Emgu.CV.CvEnum; using RapidOCRLib; using RapidOCRLib.Models; -using System; -using System.Collections.Generic; +using RapidOCRSchedule.Core; +using RapidOCRSchedule.Excel; using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.IO; -using System.Linq; using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using System.IO; -namespace RapidOCRWinform +namespace RapidOCRWinform; + +public partial class FormOcr : Form { - public partial class FormOcr : Form + private const int OcrPadding = 30; + private const int OcrMaximumSideLength = 2400; + private const float OcrBoxScoreThreshold = 0.45F; + private const float OcrBoxThreshold = 0.30F; + private const float OcrUnclipRatio = 1.60F; + + private static readonly string[] ModelFileNames = + [ + "ch_PP-OCRv5_mobile_det.onnx", + "ch_ppocr_mobile_v2.0_cls_infer.onnx", + "ch_PP-OCRv5_rec_mobile_infer.onnx", + "ppocrv5_dict.txt", + ]; + + private readonly AppSettings _settings; + private readonly List _images = []; + private readonly BindingList _editableRows = []; + private readonly BindingSource _rowBinding = new(); + private readonly ScheduleExtractor _extractor = new(); + private readonly ScheduleService _scheduleService = new(); + private readonly List _duplicateCandidatesForReview = []; + + private OcrLite? _ocrEngine; + private ScheduleExtractionResult? _lastExtraction; + private ScheduleBuildResult? _lastBuild; + private string _batchDiagnostics = string.Empty; + private string? _initializedModelDirectory; + private DateTime _appliedMonth; + private int _appliedRole3Column = -2; + private int _appliedRole4Column = -1; + private bool _ocrReady; + private bool _busy; + private bool _loaded; + private bool _hasManualEdits; + private bool _suppressSettingEvents; + + public FormOcr() { - private OcrLite? ocrEngin; + _settings = AppSettings.Load(); + InitializeComponent(); + _rowBinding.DataSource = _editableRows; + scheduleGrid.DataSource = _rowBinding; + } - public FormOcr() + private async void FormOcr_Load(object? sender, EventArgs e) + { + monthPicker.MinDate = new DateTime(1900, 1, 1); + monthPicker.Value = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1); + role3ColumnNumeric.Value = NormalizeColumnSetting(_settings.Role3Column, -2); + role4ColumnNumeric.Value = NormalizeColumnSetting(_settings.Role4Column, -1); + try + { + modelPathTextBox.Text = EmbeddedModelProvider.EnsureExtracted(); + } + catch (Exception exception) { - InitializeComponent(); + modelPathTextBox.Text = FindDefaultModelDirectory(_settings.ModelDirectory); + MessageBox.Show( + this, + $"无法释放程序内置的 OCR 模型:\n{exception.Message}\n\n将尝试使用本机已有模型。", + "内置模型不可用", + MessageBoxButtons.OK, + MessageBoxIcon.Error); } - private async void Form1_Load(object sender, EventArgs e) + RememberAppliedSettings(); + _loaded = true; + UpdateActionState(); + await InitializeOcrAsync(showSuccess: false); + } + + private async void initializeModelButton_Click(object? sender, EventArgs e) => + await InitializeOcrAsync(showSuccess: true); + + private void browseModelButton_Click(object? sender, EventArgs e) + { + using FolderBrowserDialog dialog = new() { - string appPath = AppDomain.CurrentDomain.BaseDirectory; - string appDir = Directory.GetParent(appPath)!.FullName; - string modelsDir = appPath + "models"; - modelsTextBox.Text = modelsDir; - string detPath = modelsDir + "\\" + detNameTextBox.Text; - string clsPath = modelsDir + "\\" + clsNameTextBox.Text; - string recPath = modelsDir + "\\" + recNameTextBox.Text; - string keysPath = modelsDir + "\\" + keysNameTextBox.Text; - bool isDetExists = File.Exists(detPath); - if (!isDetExists) - { - MessageBox.Show("模型文件不存在:" + detPath); - } - bool isClsExists = File.Exists(clsPath); - if (!isClsExists) + Description = "选择包含 3 个 ONNX 模型和 ppocrv5_dict.txt 的目录", + SelectedPath = Directory.Exists(modelPathTextBox.Text) + ? modelPathTextBox.Text + : AppContext.BaseDirectory, + ShowNewFolderButton = false, + }; + + if (dialog.ShowDialog(this) == DialogResult.OK) + { + modelPathTextBox.Text = dialog.SelectedPath; + _settings.ModelDirectory = dialog.SelectedPath; + _settings.Save(); + } + } + + private void modelPathTextBox_TextChanged(object? sender, EventArgs e) + { + if (!_loaded || _busy || _initializedModelDirectory is null) + { + return; + } + + string currentPath; + try + { + currentPath = Path.GetFullPath(modelPathTextBox.Text.Trim()); + } + catch + { + currentPath = string.Empty; + } + + bool stillInitialized = _ocrEngine is not null && + string.Equals(currentPath, _initializedModelDirectory, StringComparison.OrdinalIgnoreCase); + SetModelState(stillInitialized, stillInitialized ? "模型已就绪" : "目录已更改,请重新初始化"); + } + + private async Task InitializeOcrAsync(bool showSuccess) + { + if (_busy) + { + return; + } + + string modelDirectory = modelPathTextBox.Text.Trim(); + string[] missingFiles = ModelFileNames + .Where(name => !File.Exists(Path.Combine(modelDirectory, name))) + .ToArray(); + if (missingFiles.Length > 0) + { + SetModelState(false, $"缺少 {missingFiles.Length} 个模型文件"); + MessageBox.Show( + this, + $"模型目录不完整:\n{modelDirectory}\n\n缺少:\n{string.Join("\n", missingFiles)}", + "OCR 模型未就绪", + MessageBoxButtons.OK, + MessageBoxIcon.Warning); + return; + } + + try + { + SetBusy(true, "正在初始化 OCR 模型…"); + SetModelState(false, "正在初始化…"); + OcrLite engine = new(); + int threadCount = Math.Max(1, (int)Math.Ceiling(Environment.ProcessorCount * 0.7)); + try { - MessageBox.Show("模型文件不存在:" + clsPath); + await Task.Run(async () => + await engine.InitModels( + Path.Combine(modelDirectory, ModelFileNames[0]), + Path.Combine(modelDirectory, ModelFileNames[1]), + Path.Combine(modelDirectory, ModelFileNames[2]), + Path.Combine(modelDirectory, ModelFileNames[3]), + threadCount)); } - bool isRecExists = File.Exists(recPath); - if (!isRecExists) + catch { - MessageBox.Show("模型文件不存在:" + recPath); + engine.Dispose(); + throw; } - bool isKeysExists = File.Exists(recPath); - if (!isKeysExists) + + OcrLite? previousEngine = _ocrEngine; + _ocrEngine = engine; + previousEngine?.Dispose(); + _ocrReady = true; + _initializedModelDirectory = Path.GetFullPath(modelDirectory); + _settings.ModelDirectory = modelDirectory; + _settings.Save(); + SetModelState(true, $"模型已就绪 · {threadCount} 线程"); + SetStatus("OCR 模型初始化完成"); + if (showSuccess) { - MessageBox.Show("Keys文件不存在:" + keysPath); + MessageBox.Show(this, "OCR 模型初始化成功。", "模型就绪", MessageBoxButtons.OK, MessageBoxIcon.Information); } - if (isDetExists && isClsExists && isRecExists && isKeysExists) + } + catch (Exception exception) + { + _ocrEngine?.Dispose(); + _ocrEngine = null; + _ocrReady = false; + _initializedModelDirectory = null; + SetModelState(false, "模型初始化失败"); + MessageBox.Show( + this, + $"OCR 模型初始化失败:\n{exception.Message}", + "初始化失败", + MessageBoxButtons.OK, + MessageBoxIcon.Error); + } + finally + { + SetBusy(false); + } + } + + private void FormOcr_FormClosing(object? sender, FormClosingEventArgs e) + { + if (!_busy) + { + return; + } + + e.Cancel = true; + MessageBox.Show( + this, + "OCR 正在处理图片或初始化模型,请等待当前操作完成后再关闭窗口。", + "正在处理", + MessageBoxButtons.OK, + MessageBoxIcon.Information); + } + + private void selectImagesButton_Click(object? sender, EventArgs e) + { + using OpenFileDialog dialog = new() + { + Multiselect = true, + Title = "请选择正好 4 张排班表图片", + Filter = "图片文件|*.jpg;*.jpeg;*.png;*.bmp;*.tif;*.tiff|所有文件|*.*", + CheckFileExists = true, + }; + + if (dialog.ShowDialog(this) != DialogResult.OK) + { + return; + } + + string[] distinctFiles = dialog.FileNames + .Distinct(StringComparer.OrdinalIgnoreCase) + .ToArray(); + if (distinctFiles.Length != 4) + { + MessageBox.Show( + this, + $"必须一次选择正好 4 张不同的图片;当前选择了 {distinctFiles.Length} 张。", + "图片数量不正确", + MessageBoxButtons.OK, + MessageBoxIcon.Warning); + return; + } + + _images.Clear(); + _images.AddRange(distinctFiles.Select(path => new ImageWorkItem { FilePath = path })); + ClearResults(); + RefreshImageList(); + if (imageListView.Items.Count > 0) + { + imageListView.Items[0].Selected = true; + } + + SetStatus("已选择 4 张图片,等待识别"); + UpdateActionState(); + } + + private void clearImagesButton_Click(object? sender, EventArgs e) + { + _images.Clear(); + imageListView.Items.Clear(); + ReplacePreviewImage(null); + diagnosticsTextBox.Clear(); + ClearResults(); + SetStatus("已清空图片"); + UpdateActionState(); + } + + private async void processButton_Click(object? sender, EventArgs e) + { + if (_images.Count != 4) + { + MessageBox.Show(this, "请先选择正好 4 张排班图片。", "无法开始", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + + if (!_ocrReady || _ocrEngine is null) + { + MessageBox.Show(this, "OCR 模型尚未初始化,请检查模型目录。", "无法开始", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + + try + { + SetBusy(true, "开始识别 4 张图片…"); + ClearResults(); + for (int resetIndex = 0; resetIndex < _images.Count; resetIndex++) { - ocrEngin = new OcrLite(); - await ocrEngin.InitModels(detPath, clsPath, recPath, keysPath, (int)numThreadNumeric.Value); + _images[resetIndex].Tokens.Clear(); + _images[resetIndex].Diagnostics = string.Empty; + _images[resetIndex].Status = "待识别"; + UpdateImageListStatus(resetIndex); } - else + + progressBar.Maximum = _images.Count; + progressBar.Value = 0; + + for (int index = 0; index < _images.Count; index++) { - MessageBox.Show("初始化失败,请确认模型文件夹和文件后,重新初始化!"); + ImageWorkItem image = _images[index]; + image.Tokens.Clear(); + image.Status = "识别中…"; + UpdateImageListStatus(index); + SetStatus($"正在识别第 {index + 1}/4 张:{image.DisplayName}"); + + OcrResult? ocrResult = null; + try + { + Size imageSize = ReadImageSize(image.FilePath); + ocrResult = await _ocrEngine.DetectAsync( + image.FilePath, + OcrPadding, + OcrMaximumSideLength, + OcrBoxScoreThreshold, + OcrBoxThreshold, + OcrUnclipRatio, + doAngle: false, + mostAngle: false); + image.Tokens.AddRange(ConvertTokens(image.FilePath, imageSize, ocrResult)); + image.Diagnostics = FormatOcrDiagnostics(image, ocrResult); + image.Status = $"完成 · {image.Tokens.Count} 项"; + } + catch (Exception exception) + { + image.Status = "失败"; + image.Diagnostics = $"识别失败:{exception}"; + throw new InvalidOperationException($"{image.DisplayName} 识别失败:{exception.Message}", exception); + } + finally + { + ocrResult?.BoxImg?.Dispose(); + progressBar.Value = index + 1; + UpdateImageListStatus(index); + } } + + ExtractAndBind(); + outputTabs.SelectedTab = resultTabPage; + SetStatus($"整理完成:{_lastBuild?.Rows.Count ?? 0} 个工作日,{_editableRows.Count(static row => row.IssueText.Length > 0)} 行待检查"); } + catch (Exception exception) + { + MessageBox.Show( + this, + $"识别或整理失败:\n{exception.Message}", + "处理失败", + MessageBoxButtons.OK, + MessageBoxIcon.Error); + SetStatus("处理失败,请检查原图和模型设置"); + } + finally + { + SetBusy(false); + UpdateDiagnosticsForSelection(); + } + } - private void initBtn_Click(object sender, EventArgs e) + private void ExtractAndBind() + { + TableLayoutProfile profile = CreateLayoutProfile(); + _lastExtraction = _extractor.Extract(_images.SelectMany(static image => image.Tokens), profile); + _lastBuild = _scheduleService.Build(monthPicker.Value.Year, monthPicker.Value.Month, _lastExtraction.Candidates); + CaptureDuplicateCandidates(_lastBuild, replace: true); + BindBuildResult(_lastBuild); + RememberAppliedSettings(); + _batchDiagnostics = FormatBatchDiagnostics(_lastExtraction, _lastBuild); + UpdateDiagnosticsForSelection(); + } + + private TableLayoutProfile CreateLayoutProfile() => new() + { + Role3Column = Decimal.ToInt32(role3ColumnNumeric.Value), + Role4Column = Decimal.ToInt32(role4ColumnNumeric.Value), + }; + + private static IEnumerable ConvertTokens(string sourcePath, Size imageSize, OcrResult result) + { + foreach (TextBlock block in result.TextBlocks) { - string modelsDir = modelsTextBox.Text; - string detPath = modelsDir + "\\" + detNameTextBox.Text; - string clsPath = modelsDir + "\\" + clsNameTextBox.Text; - string recPath = modelsDir + "\\" + recNameTextBox.Text; - string keysPath = modelsDir + "\\" + keysNameTextBox.Text; - bool isDetExists = File.Exists(detPath); - if (!isDetExists) - { - MessageBox.Show("模型文件不存在:" + detPath); - } - bool isClsExists = File.Exists(clsPath); - if (!isClsExists) + if (string.IsNullOrWhiteSpace(block.Text) || block.BoxPoints.Count == 0) { - MessageBox.Show("模型文件不存在:" + clsPath); + continue; } - bool isRecExists = File.Exists(recPath); - if (!isRecExists) + + float left = Math.Clamp(block.BoxPoints.Min(static point => point.X) - OcrPadding, 0, imageSize.Width); + float top = Math.Clamp(block.BoxPoints.Min(static point => point.Y) - OcrPadding, 0, imageSize.Height); + float right = Math.Clamp(block.BoxPoints.Max(static point => point.X) - OcrPadding, 0, imageSize.Width); + float bottom = Math.Clamp(block.BoxPoints.Max(static point => point.Y) - OcrPadding, 0, imageSize.Height); + if (right <= left || bottom <= top) { - MessageBox.Show("模型文件不存在:" + recPath); + continue; } - bool isKeysExists = File.Exists(recPath); - if (!isKeysExists) + + OcrBounds bounds = OcrBounds.FromLTRB( + left / imageSize.Width, + top / imageSize.Height, + right / imageSize.Width, + bottom / imageSize.Height); + float characterConfidence = block.CharScores.Count > 0 + ? block.CharScores.Average() + : block.BoxScore; + float confidence = Math.Min(block.BoxScore, characterConfidence); + yield return new OcrToken(sourcePath, block.Text, bounds, confidence); + } + } + + private void BindBuildResult(ScheduleBuildResult build) + { + _editableRows.RaiseListChangedEvents = false; + _editableRows.Clear(); + foreach (ScheduleRow source in build.Rows) + { + _editableRows.Add(CreateEditableRow(source)); + } + + foreach (ScheduleCandidate candidate in build.UnlocatedCandidates) + { + _editableRows.Add(CreateEditableUnlocatedRow(candidate)); + } + + _editableRows.RaiseListChangedEvents = true; + _rowBinding.ResetBindings(false); + + int issueRows = _editableRows.Count(static row => row.IssueText.Length > 0); + int extractionIssues = _lastExtraction?.Issues.Count ?? 0; + int batchIssues = extractionIssues + build.Issues.Count + build.UnlocatedCandidates.Count; + resultSummaryLabel.Text = batchIssues > 0 + ? $"共 {build.Rows.Count} 个工作日,另显示 {build.UnlocatedCandidates.Count} 条未定位记录;{issueRows} 行及 {extractionIssues + build.Issues.Count} 个批次异常待检查。" + : $"共 {build.Rows.Count} 个工作日,{issueRows} 行待检查。可直接修改单元格,完成后导出 Excel。"; + revalidateButton.Enabled = _editableRows.Count > 0 && !_busy; + exportButton.Enabled = _editableRows.Count > 0 && !_busy; + scheduleGrid.ClearSelection(); + _hasManualEdits = false; + } + + private static EditableScheduleRow CreateEditableRow(ScheduleRow source) + { + EditableScheduleRow row = new() + { + DateText = source.RawDateText, + Weekday = source.Weekday, + Role1 = source.Role1, + Role2 = source.Role2, + Role3 = source.Role3, + Role4 = source.Role4, + SourceText = source.SourceImageId, + IsMissingPlaceholder = source.IsMissingPlaceholder, + IssueText = string.Join(";", source.Issues.Select(static issue => issue.Message).Distinct()), + }; + PopulateIssueMetadata(row, source.Issues); + if (source.Issues.Any(static issue => issue.Code == ScheduleIssueCode.MissingWorkday)) + { + row.InvalidProperties.UnionWith( + [nameof(EditableScheduleRow.DateText), nameof(EditableScheduleRow.Role1), nameof(EditableScheduleRow.Role2), nameof(EditableScheduleRow.Role3), nameof(EditableScheduleRow.Role4)]); + } + + return row; + } + + private static EditableScheduleRow CreateEditableUnlocatedRow(ScheduleCandidate source) + { + EditableScheduleRow row = new() + { + DateText = source.RawDateText, + Weekday = source.RawWeekdayText, + Role1 = source.Role1, + Role2 = source.Role2, + Role3 = source.Role3, + Role4 = source.Role4, + SourceText = source.SourceImageId, + IsUnlocatedCandidate = true, + IssueText = $"未定位记录:{string.Join(";", source.Issues.Select(static issue => issue.Message).Distinct())}", + }; + PopulateIssueMetadata(row, source.Issues); + row.InvalidProperties.Add(nameof(EditableScheduleRow.DateText)); + return row; + } + + private static void PopulateIssueMetadata(EditableScheduleRow row, IEnumerable issues) + { + foreach (ScheduleIssue issue in issues) + { + string? property = MapIssueProperty(issue.PropertyName); + if (property is not null) { - MessageBox.Show("Keys文件不存在:" + keysPath); + row.InvalidProperties.Add(property); } - if (isDetExists && isClsExists && isRecExists && isKeysExists) + + if (IsPersistentUiIssue(issue.Code)) { - ocrEngin = new OcrLite(); - ocrEngin.InitModels(detPath, clsPath, recPath, keysPath, (int)numThreadNumeric.Value); + row.PersistentIssues.Add(issue); } - else + } + } + + private static bool IsPersistentUiIssue(ScheduleIssueCode code) => code is + ScheduleIssueCode.DuplicateDate or + ScheduleIssueCode.AmbiguousRow or + ScheduleIssueCode.AmbiguousColumn or + ScheduleIssueCode.LowOcrConfidence or + ScheduleIssueCode.InsufficientColumns; + + private void revalidateButton_Click(object? sender, EventArgs e) + { + RevalidateEditedRows(); + SetStatus("已根据当前表格内容重新排序并校验"); + } + + private void RevalidateEditedRows() + { + scheduleGrid.EndEdit(); + _rowBinding.EndEdit(); + List edited = []; + foreach (EditableScheduleRow row in _editableRows) + { + ScheduleRow coreRow = new() { - MessageBox.Show("初始化失败,请确认模型文件夹和文件后,重新初始化!"); - } + RawDateText = row.DateText, + Weekday = row.Weekday, + Role1 = row.Role1, + Role2 = row.Role2, + Role3 = row.Role3, + Role4 = row.Role4, + SourceImageId = row.SourceText, + IsMissingPlaceholder = row.IsMissingPlaceholder, + }; + coreRow.Issues.AddRange(row.PersistentIssues); + edited.Add(coreRow); + } + _lastBuild = _scheduleService.Revalidate(monthPicker.Value.Year, monthPicker.Value.Month, edited); + CaptureDuplicateCandidates(_lastBuild, replace: false); + BindBuildResult(_lastBuild); + if (_lastExtraction is not null) + { + _batchDiagnostics = FormatBatchDiagnostics(_lastExtraction, _lastBuild); + UpdateDiagnosticsForSelection(); } + } - private void openBtn_Click(object sender, EventArgs e) + private void exportButton_Click(object? sender, EventArgs e) + { + try { - using (var dlg = new OpenFileDialog()) + RevalidateEditedRows(); + int issueRows = _editableRows.Count(static row => row.IssueText.Length > 0); + int batchIssues = (_lastExtraction?.Issues.Count ?? 0) + (_lastBuild?.Issues.Count ?? 0); + if (issueRows > 0 || batchIssues > 0) { - dlg.Multiselect = false; - dlg.Filter = "(*.JPG,*.PNG,*.JPEG,*.BMP,*.GIF)|*.JPG;*.PNG;*.JPEG;*.BMP;*.GIF|All files(*.*)|*.*"; - if (dlg.ShowDialog() == DialogResult.OK && !string.IsNullOrEmpty(dlg.FileName)) + DialogResult decision = MessageBox.Show( + this, + $"仍有 {issueRows} 行和 {batchIssues} 个批次级异常待检查。\n\n是否仍按当前可编辑结果导出?", + "存在待检查内容", + MessageBoxButtons.YesNo, + MessageBoxIcon.Warning, + MessageBoxDefaultButton.Button2); + if (decision != DialogResult.Yes) { - pathTextBox.Text = dlg.FileName; - //Mat src = CvInvoke.Imread(dlg.FileName, ImreadModes.ColorRgb); - //pictureBox.Image = src.ToImage(false); - using (Mat src = CvInvoke.Imread(dlg.FileName, ImreadModes.ColorRgb)) - { - pictureBox.Image = src.ToBitmap(); - } + return; } } - } - private void modelsBtn_Click(object sender, EventArgs e) - { - using (var dlg = new FolderBrowserDialog()) + List rows = []; + foreach (EditableScheduleRow row in _editableRows.Where(static row => !row.IsUnlocatedCandidate)) { - dlg.SelectedPath = Environment.CurrentDirectory + "\\models"; - if (dlg.ShowDialog() == DialogResult.OK && !string.IsNullOrEmpty(dlg.SelectedPath)) + if (!DateTextParser.TryCreateDate(monthPicker.Value.Year, row.DateText, out DateOnly date) || + date.Month != monthPicker.Value.Month) { - modelsTextBox.Text = dlg.SelectedPath; + throw new InvalidOperationException($"日期“{row.DateText}”无效或不属于目标月份,请先修正。 "); } + + rows.Add(new ExportRow(date, row.Role1, row.Role2, row.Role3, row.Role4)); + } + + using SaveFileDialog dialog = new() + { + Filter = "Excel 工作簿 (*.xlsx)|*.xlsx", + AddExtension = true, + DefaultExt = "xlsx", + FileName = $"排班表_{monthPicker.Value:yyyy_MM}.xlsx", + OverwritePrompt = true, + }; + if (dialog.ShowDialog(this) != DialogResult.OK) + { + return; } + + ScheduleExcelExporter.Export(dialog.FileName, rows); + SetStatus($"已导出:{dialog.FileName}"); + MessageBox.Show( + this, + $"Excel 已导出:\n{dialog.FileName}", + "导出完成", + MessageBoxButtons.OK, + MessageBoxIcon.Information); + } + catch (Exception exception) + { + MessageBox.Show( + this, + $"导出失败:\n{exception.Message}", + "无法导出", + MessageBoxButtons.OK, + MessageBoxIcon.Error); + } + } + + private void scheduleGrid_CellEndEdit(object? sender, DataGridViewCellEventArgs e) + { + if (e.RowIndex < 0 || e.RowIndex >= _editableRows.Count) + { + return; } - private void detectBtn_Click(object sender, EventArgs e) + EditableScheduleRow row = _editableRows[e.RowIndex]; + if (!row.IssueText.Contains("内容已修改", StringComparison.Ordinal)) { - if (ocrEngin == null) + row.IssueText = string.IsNullOrWhiteSpace(row.IssueText) + ? "内容已修改,请重新校验" + : $"{row.IssueText};内容已修改,请重新校验"; + } + + _hasManualEdits = true; + scheduleGrid.InvalidateRow(e.RowIndex); + } + + private void scheduleGrid_CellFormatting(object? sender, DataGridViewCellFormattingEventArgs e) + { + if (e.RowIndex < 0 || e.RowIndex >= _editableRows.Count || e.ColumnIndex < 0) + { + return; + } + + EditableScheduleRow row = _editableRows[e.RowIndex]; + string propertyName = scheduleGrid.Columns[e.ColumnIndex].DataPropertyName; + if (row.InvalidProperties.Contains(propertyName)) + { + e.CellStyle.BackColor = Color.MistyRose; + e.CellStyle.ForeColor = Color.DarkRed; + } + else if (propertyName == nameof(EditableScheduleRow.IssueText) && row.IssueText.Length > 0) + { + e.CellStyle.BackColor = Color.LemonChiffon; + e.CellStyle.ForeColor = Color.FromArgb(128, 74, 0); + } + else if (row.IsMissingPlaceholder) + { + e.CellStyle.BackColor = Color.FromArgb(255, 250, 225); + } + else if (row.IsUnlocatedCandidate) + { + e.CellStyle.BackColor = Color.FromArgb(255, 235, 235); + } + } + + private void scheduleGrid_DataError(object? sender, DataGridViewDataErrorEventArgs e) + { + e.ThrowException = false; + SetStatus($"单元格内容无效:{e.Exception?.Message}"); + } + + private void imageListView_SelectedIndexChanged(object? sender, EventArgs e) + { + if (imageListView.SelectedItems.Count != 1 || imageListView.SelectedItems[0].Tag is not ImageWorkItem image) + { + return; + } + + try + { + ReplacePreviewImage(LoadBitmapWithoutLock(image.FilePath)); + } + catch (Exception exception) + { + ReplacePreviewImage(null); + SetStatus($"原图预览失败:{exception.Message}"); + } + + UpdateDiagnosticsForSelection(); + } + + private void monthPicker_ValueChanged(object? sender, EventArgs e) + { + if (_suppressSettingEvents || !_loaded) + { + return; + } + + if (_lastExtraction is null) + { + _appliedMonth = FirstDayOfMonth(monthPicker.Value); + return; + } + + if (_busy || !ConfirmDiscardManualEdits("更改目标月份")) + { + RevertMonthSetting(); + return; + } + + try + { + _lastBuild = _scheduleService.Build(monthPicker.Value.Year, monthPicker.Value.Month, _lastExtraction.Candidates); + CaptureDuplicateCandidates(_lastBuild, replace: true); + BindBuildResult(_lastBuild); + _appliedMonth = FirstDayOfMonth(monthPicker.Value); + _batchDiagnostics = FormatBatchDiagnostics(_lastExtraction, _lastBuild); + UpdateDiagnosticsForSelection(); + SetStatus($"已按 {monthPicker.Value:yyyy 年 M 月} 重新整理"); + } + catch (Exception exception) + { + RevertMonthSetting(); + MessageBox.Show(this, $"无法切换目标月份:\n{exception.Message}", "月份无效", MessageBoxButtons.OK, MessageBoxIcon.Warning); + } + } + + private void layoutColumnNumeric_ValueChanged(object? sender, EventArgs e) + { + if (_suppressSettingEvents) + { + return; + } + + if (sender is NumericUpDown numeric && numeric.Value == 0) + { + _suppressSettingEvents = true; + numeric.Value = ReferenceEquals(numeric, role3ColumnNumeric) ? -2 : -1; + _suppressSettingEvents = false; + return; + } + + if (!_loaded) + { + return; + } + + try + { + CreateLayoutProfile().Validate(); + } + catch (Exception exception) + { + RevertColumnSettings(); + MessageBox.Show(this, $"列配置无效:\n{exception.Message}", "无法应用列配置", MessageBoxButtons.OK, MessageBoxIcon.Warning); + return; + } + + if (!ConfirmDiscardManualEdits("更改目标列")) + { + RevertColumnSettings(); + return; + } + + if (!_busy && _images.Any(static image => image.Tokens.Count > 0)) + { + try { - MessageBox.Show("未初始化,无法执行!"); - return; + ExtractAndBind(); + SetStatus("已按新的右侧列序号重新整理,无需重复 OCR"); } - string targetImg = pathTextBox.Text; - if (!File.Exists(targetImg)) + catch (Exception exception) { - MessageBox.Show("目标图片不存在,请用Open按钮打开"); + RevertColumnSettings(); + ClearResults(); + MessageBox.Show(this, $"无法应用列映射:\n{exception.Message}", "列映射失败", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } - int padding = (int)paddingNumeric.Value; - int imgResize = (int)imgResizeNumeric.Value; - float boxScoreThresh = (float)boxScoreThreshNumeric.Value; - float boxThresh = (float)boxThreshNumeric.Value; - float unClipRatio = (float)unClipRatioNumeric.Value; - bool doAngle = doAngleCheckBox.Checked; - bool mostAngle = mostAngleCheckBox.Checked; - OcrResult ocrResult = ocrEngin.Detect(pathTextBox.Text, padding, imgResize, boxScoreThresh, boxThresh, unClipRatio, doAngle, mostAngle); - ocrResultTextBox.Text = ocrResult.ToString(); - strRestTextBox.Text = ocrResult.StrRes; - pictureBox.Image = ocrResult.BoxImg.ToBitmap(); + } + else + { + _appliedRole3Column = Decimal.ToInt32(role3ColumnNumeric.Value); + _appliedRole4Column = Decimal.ToInt32(role4ColumnNumeric.Value); + } + + _settings.Role3Column = Decimal.ToInt32(role3ColumnNumeric.Value); + _settings.Role4Column = Decimal.ToInt32(role4ColumnNumeric.Value); + _settings.Save(); + } + + private void RefreshImageList() + { + imageListView.BeginUpdate(); + imageListView.Items.Clear(); + for (int index = 0; index < _images.Count; index++) + { + ImageWorkItem image = _images[index]; + ListViewItem item = new((index + 1).ToString()) { Tag = image, ToolTipText = image.FilePath }; + item.SubItems.Add(image.DisplayName); + item.SubItems.Add(image.Status); + imageListView.Items.Add(item); } - private void partImgCheckBox_CheckedChanged(object sender, EventArgs e) + imageListView.EndUpdate(); + } + + private void UpdateImageListStatus(int index) + { + if (index >= 0 && index < imageListView.Items.Count) { - ocrEngin!.isPartImg = partImgCheckBox.Checked; + imageListView.Items[index].SubItems[2].Text = _images[index].Status; } + } - private void debugCheckBox_CheckedChanged(object sender, EventArgs e) + private void UpdateDiagnosticsForSelection() + { + ImageWorkItem? image = imageListView.SelectedItems.Count == 1 + ? imageListView.SelectedItems[0].Tag as ImageWorkItem + : null; + StringBuilder builder = new(); + if (image is not null) { - ocrEngin!.isDebugImg = debugCheckBox.Checked; + builder.AppendLine(image.FilePath); + builder.AppendLine(new string('=', 72)); + builder.AppendLine(string.IsNullOrWhiteSpace(image.Diagnostics) ? "尚未识别。" : image.Diagnostics); } - private void pictureBox_MouseDoubleClick(object sender, MouseEventArgs e) + if (!string.IsNullOrWhiteSpace(_batchDiagnostics)) { - if (pictureBox.Image == null) - return; - Mat mat = new Mat(); - using (var bmp = new Bitmap(pictureBox.Image)) + builder.AppendLine(); + builder.AppendLine("批次整理诊断"); + builder.AppendLine(new string('=', 72)); + builder.Append(_batchDiagnostics); + } + + diagnosticsTextBox.Text = builder.ToString(); + } + + private static string FormatOcrDiagnostics(ImageWorkItem image, OcrResult result) + { + StringBuilder builder = new(); + builder.AppendLine($"OCR 用时:{result.DetectTime:N0} ms;有效文本框:{image.Tokens.Count}"); + foreach (OcrToken token in image.Tokens.OrderBy(static token => token.Bounds.CenterY).ThenBy(static token => token.Bounds.CenterX)) + { + builder.AppendLine( + $"[{token.Confidence,5:P0}] x={token.Bounds.CenterX:F3}, y={token.Bounds.CenterY:F3} {token.Text}"); + } + + return builder.ToString(); + } + + private string FormatBatchDiagnostics(ScheduleExtractionResult extraction, ScheduleBuildResult build) + { + StringBuilder builder = new(); + builder.AppendLine($"候选记录:{extraction.Candidates.Count}"); + builder.AppendLine($"未分配 OCR 项:{extraction.UnassignedTokens.Count}"); + builder.AppendLine($"目标工作日:{build.Rows.Count}"); + builder.AppendLine($"未定位/跨月记录:{build.UnlocatedCandidates.Count}"); + builder.AppendLine($"已排除周末记录:{build.WeekendCandidates.Count}"); + builder.AppendLine($"同日重复候选:{_duplicateCandidatesForReview.Count}"); + + IEnumerable batchIssues = extraction.Issues.Concat(build.Issues); + foreach (ScheduleIssue issue in batchIssues) + { + builder.AppendLine($"[批次异常/{issue.Code}] {issue.Message}"); + } + + foreach (ScheduleCandidate candidate in build.UnlocatedCandidates) + { + string issues = string.Join(";", candidate.Issues.Select(static issue => issue.Message).Distinct()); + builder.AppendLine( + $"[未定位] {Path.GetFileName(candidate.SourceImageId)} y={candidate.RowCenterY:F3} 日期“{candidate.RawDateText}” {issues}"); + } + + foreach (ScheduleCandidate candidate in _duplicateCandidatesForReview) + { + builder.AppendLine( + $"[重复候选 {candidate.RawDateText}] {Path.GetFileName(candidate.SourceImageId)} | {candidate.RawWeekdayText} | {candidate.Role1} | {candidate.Role2} | {candidate.Role3} | {candidate.Role4}"); + } + + foreach (ScheduleRow row in build.Rows.Where(static row => row.Issues.Count > 0)) + { + builder.AppendLine( + $"[{row.RawDateText}] {string.Join(";", row.Issues.Select(static issue => issue.Message).Distinct())}"); + } + + return builder.ToString(); + } + + private void CaptureDuplicateCandidates(ScheduleBuildResult build, bool replace) + { + if (replace) + { + _duplicateCandidatesForReview.Clear(); + } + + foreach (ScheduleCandidate candidate in build.DuplicateCandidates) + { + bool alreadyPresent = _duplicateCandidatesForReview.Any(existing => + string.Equals(existing.SourceImageId, candidate.SourceImageId, StringComparison.OrdinalIgnoreCase) && + string.Equals(existing.RawDateText, candidate.RawDateText, StringComparison.Ordinal) && + string.Equals(existing.Role1, candidate.Role1, StringComparison.Ordinal) && + string.Equals(existing.Role2, candidate.Role2, StringComparison.Ordinal) && + string.Equals(existing.Role3, candidate.Role3, StringComparison.Ordinal) && + string.Equals(existing.Role4, candidate.Role4, StringComparison.Ordinal)); + if (!alreadyPresent) { - mat = bmp.ToMat(); - CvInvoke.NamedWindow("img", Emgu.CV.CvEnum.WindowFlags.Normal); - CvInvoke.Imshow("img", mat); + _duplicateCandidatesForReview.Add(candidate); } } } + + private void ClearResults() + { + _lastExtraction = null; + _lastBuild = null; + _batchDiagnostics = string.Empty; + _duplicateCandidatesForReview.Clear(); + _editableRows.Clear(); + _rowBinding.ResetBindings(false); + resultSummaryLabel.Text = "尚未整理。异常单元格将用浅红色标记,可直接双击修改。"; + revalidateButton.Enabled = false; + exportButton.Enabled = false; + _hasManualEdits = false; + } + + private bool ConfirmDiscardManualEdits(string action) + { + if (!_hasManualEdits) + { + return true; + } + + return MessageBox.Show( + this, + $"当前表格包含尚未导出的手工修改。{action}会按 OCR 原始结果重新整理并覆盖这些修改。\n\n是否继续?", + "确认覆盖手工修改", + MessageBoxButtons.YesNo, + MessageBoxIcon.Warning, + MessageBoxDefaultButton.Button2) == DialogResult.Yes; + } + + private void RememberAppliedSettings() + { + _appliedMonth = FirstDayOfMonth(monthPicker.Value); + _appliedRole3Column = Decimal.ToInt32(role3ColumnNumeric.Value); + _appliedRole4Column = Decimal.ToInt32(role4ColumnNumeric.Value); + _hasManualEdits = false; + } + + private void RevertMonthSetting() + { + _suppressSettingEvents = true; + monthPicker.Value = _appliedMonth < monthPicker.MinDate ? monthPicker.MinDate : _appliedMonth; + _suppressSettingEvents = false; + } + + private void RevertColumnSettings() + { + _suppressSettingEvents = true; + role3ColumnNumeric.Value = _appliedRole3Column; + role4ColumnNumeric.Value = _appliedRole4Column; + _suppressSettingEvents = false; + } + + private static DateTime FirstDayOfMonth(DateTime value) => new(value.Year, value.Month, 1); + + private void SetBusy(bool busy, string? message = null) + { + _busy = busy; + UseWaitCursor = busy; + progressBar.Visible = busy; + selectImagesButton.Enabled = !busy; + clearImagesButton.Enabled = !busy && _images.Count > 0; + initializeModelButton.Enabled = !busy; + browseModelButton.Enabled = !busy; + modelPathTextBox.Enabled = !busy; + monthPicker.Enabled = !busy; + role3ColumnNumeric.Enabled = !busy; + role4ColumnNumeric.Enabled = !busy; + scheduleGrid.ReadOnly = busy; + if (message is not null) + { + SetStatus(message); + } + + UpdateActionState(); + } + + private void UpdateActionState() + { + processButton.Enabled = !_busy && _ocrReady && _images.Count == 4; + clearImagesButton.Enabled = !_busy && _images.Count > 0; + revalidateButton.Enabled = !_busy && _editableRows.Count > 0; + exportButton.Enabled = !_busy && _editableRows.Count > 0; + } + + private void SetModelState(bool ready, string text) + { + _ocrReady = ready; + modelStatusLabel.Text = text; + modelStatusLabel.ForeColor = ready ? Color.DarkGreen : Color.DarkRed; + modelStateLabel.Text = ready ? "● OCR 模型已就绪" : "● OCR 模型未就绪"; + modelStateLabel.ForeColor = ready ? Color.FromArgb(124, 225, 154) : Color.FromArgb(255, 214, 102); + UpdateActionState(); + } + + private void SetStatus(string text) => statusLabel.Text = text; + + private static decimal NormalizeColumnSetting(int value, int fallback) => + value is >= -50 and <= 50 && value != 0 ? value : fallback; + + private static string? MapIssueProperty(string? propertyName) => propertyName switch + { + nameof(ScheduleRow.RawDateText) => nameof(EditableScheduleRow.DateText), + nameof(ScheduleRow.Weekday) => nameof(EditableScheduleRow.Weekday), + nameof(ScheduleRow.Role1) => nameof(EditableScheduleRow.Role1), + nameof(ScheduleRow.Role2) => nameof(EditableScheduleRow.Role2), + nameof(ScheduleRow.Role3) => nameof(EditableScheduleRow.Role3), + nameof(ScheduleRow.Role4) => nameof(EditableScheduleRow.Role4), + _ => null, + }; + + private static string FindDefaultModelDirectory(string? configuredDirectory) + { + List candidates = []; + if (!string.IsNullOrWhiteSpace(configuredDirectory)) + { + candidates.Add(configuredDirectory); + } + + DirectoryInfo? current = new(AppContext.BaseDirectory); + for (int level = 0; level < 7 && current is not null; level++, current = current.Parent) + { + candidates.Add(Path.Combine(current.FullName, "models")); + candidates.Add(Path.Combine(current.FullName, "RapidOCRConsole", "models")); + } + + return candidates.FirstOrDefault(IsCompleteModelDirectory) ?? Path.Combine(AppContext.BaseDirectory, "models"); + } + + private static bool IsCompleteModelDirectory(string path) => + Directory.Exists(path) && ModelFileNames.All(name => File.Exists(Path.Combine(path, name))); + + private static Size ReadImageSize(string path) + { + using FileStream stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); + using Image image = Image.FromStream(stream, useEmbeddedColorManagement: false, validateImageData: false); + return image.Size; + } + + private static Bitmap LoadBitmapWithoutLock(string path) + { + using FileStream stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); + using Image source = Image.FromStream(stream, useEmbeddedColorManagement: true, validateImageData: false); + return new Bitmap(source); + } + + private void ReplacePreviewImage(Image? nextImage) + { + Image? previous = previewPictureBox.Image; + previewPictureBox.Image = nextImage; + previous?.Dispose(); + } } diff --git a/RapidOCRWinform/Program.cs b/RapidOCRWinform/Program.cs index afd21bf..567625e 100644 --- a/RapidOCRWinform/Program.cs +++ b/RapidOCRWinform/Program.cs @@ -1,3 +1,5 @@ +using RapidOCRLib; + namespace RapidOCRWinform { internal static class Program @@ -6,12 +8,59 @@ internal static class Program /// The main entry point for the application. /// [STAThread] - static void Main() + static int Main(string[] args) { // To customize application configuration such as set high DPI settings or default font, // see https://aka.ms/applicationconfiguration. ApplicationConfiguration.Initialize(); + + if (args.Any(argument => string.Equals(argument, "--self-test", StringComparison.OrdinalIgnoreCase))) + { + return RunSelfTestAsync().GetAwaiter().GetResult(); + } + Application.Run(new FormOcr()); + return 0; + } + + private static async Task RunSelfTestAsync() + { + try + { + string modelDirectory = EmbeddedModelProvider.EnsureExtracted(); + using OcrLite engine = new(); + int threadCount = Math.Max(1, (int)Math.Ceiling(Environment.ProcessorCount * 0.7)); + await engine.InitModels( + Path.Combine(modelDirectory, "ch_PP-OCRv5_mobile_det.onnx"), + Path.Combine(modelDirectory, "ch_ppocr_mobile_v2.0_cls_infer.onnx"), + Path.Combine(modelDirectory, "ch_PP-OCRv5_rec_mobile_infer.onnx"), + Path.Combine(modelDirectory, "ppocrv5_dict.txt"), + threadCount); + + using Bitmap sample = new(128, 64); + using (Graphics graphics = Graphics.FromImage(sample)) + { + graphics.Clear(Color.White); + } + + var result = engine.Detect( + sample, + padding: 0, + maxSideLen: 128, + doAngle: false); + try + { + return result is null ? 2 : 0; + } + finally + { + result?.BoxImg?.Dispose(); + } + } + catch + { + return 1; + } } } -} \ No newline at end of file +} diff --git a/RapidOCRWinform/Properties/PublishProfiles/StandaloneWinX64.pubxml b/RapidOCRWinform/Properties/PublishProfiles/StandaloneWinX64.pubxml new file mode 100644 index 0000000..c79bcd1 --- /dev/null +++ b/RapidOCRWinform/Properties/PublishProfiles/StandaloneWinX64.pubxml @@ -0,0 +1,18 @@ + + + + Release + Any CPU + win-x64 + true + true + true + false + true + false + false + None + false + false + + diff --git a/RapidOCRWinform/RapidOCRWinform.csproj b/RapidOCRWinform/RapidOCRWinform.csproj index 2bc9664..7cbd3ca 100644 --- a/RapidOCRWinform/RapidOCRWinform.csproj +++ b/RapidOCRWinform/RapidOCRWinform.csproj @@ -6,10 +6,32 @@ enable true enable + RapidOCRSchedule + + - \ No newline at end of file + + + + + + + + + + + + + + diff --git a/RapidOCRWinform/UiModels.cs b/RapidOCRWinform/UiModels.cs new file mode 100644 index 0000000..e631279 --- /dev/null +++ b/RapidOCRWinform/UiModels.cs @@ -0,0 +1,94 @@ +using RapidOCRSchedule.Core; +using System.ComponentModel; +using System.Runtime.CompilerServices; + +namespace RapidOCRWinform; + +internal sealed class ImageWorkItem +{ + public required string FilePath { get; init; } + + public string DisplayName => Path.GetFileName(FilePath); + + public string Status { get; set; } = "待识别"; + + public string Diagnostics { get; set; } = string.Empty; + + public List Tokens { get; } = []; +} + +internal sealed class EditableScheduleRow : INotifyPropertyChanged +{ + private string _dateText = string.Empty; + private string _weekday = string.Empty; + private string _role1 = string.Empty; + private string _role2 = string.Empty; + private string _role3 = string.Empty; + private string _role4 = string.Empty; + private string _issueText = string.Empty; + + public string DateText + { + get => _dateText; + set => SetField(ref _dateText, value?.Trim() ?? string.Empty); + } + + public string Weekday + { + get => _weekday; + set => SetField(ref _weekday, value?.Trim() ?? string.Empty); + } + + public string Role1 + { + get => _role1; + set => SetField(ref _role1, value?.Trim() ?? string.Empty); + } + + public string Role2 + { + get => _role2; + set => SetField(ref _role2, value?.Trim() ?? string.Empty); + } + + public string Role3 + { + get => _role3; + set => SetField(ref _role3, value?.Trim() ?? string.Empty); + } + + public string Role4 + { + get => _role4; + set => SetField(ref _role4, value?.Trim() ?? string.Empty); + } + + public string IssueText + { + get => _issueText; + set => SetField(ref _issueText, value ?? string.Empty); + } + + public string SourceText { get; set; } = string.Empty; + + public bool IsMissingPlaceholder { get; set; } + + public bool IsUnlocatedCandidate { get; set; } + + public HashSet InvalidProperties { get; } = new(StringComparer.OrdinalIgnoreCase); + + public List PersistentIssues { get; } = []; + + public event PropertyChangedEventHandler? PropertyChanged; + + private void SetField(ref string field, string value, [CallerMemberName] string? propertyName = null) + { + if (string.Equals(field, value, StringComparison.Ordinal)) + { + return; + } + + field = value; + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } +} diff --git "a/\351\234\200\346\261\202.md" "b/\351\234\200\346\261\202.md" new file mode 100644 index 0000000..6f81e3b --- /dev/null +++ "b/\351\234\200\346\261\202.md" @@ -0,0 +1,130 @@ +# 本地排班图片整理需求 + +## 一、目标 + +用户一次选择4张排班表图片,系统从每张图片中提取指定列,将4张图片中按4天间隔排列的日期记录合并,生成一张按工作日连续排列的简化排班表。 + +## 二、原始图片特点 + +1. 4张图片的表格结构相同,但日期和人员姓名不同。 +2. 每张图片只包含部分日期,同一张图片中的日期通常每隔4天出现一次。 +3. 4张图片合并后,可以覆盖整个月的日期。 +4. 每个日期占一整行,该日期对应的所有岗位人员都在同一行。 +5. 表格中存在大量无关岗位列,只需要提取指定的4个岗位。 +6. 图片中可能存在手绘圈线、标记等内容,这些内容不属于表格数据。 + +## 三、需要提取的字段 + +每个日期提取以下内容: + +| 输出字段 | 原始表格位置 | +| ------- | ---------- | +| 日期 | 第一列 | +| 星期 | 第二列 | +| 岗位一(队长) | 第三列 | +| 岗位二 | 第四列 | +| 岗位三 | 右侧指定区域的第一列 | +| 岗位四 | 右侧指定区域的第二列 | + +说明: + +* 岗位一就是队长。 +* 即使岗位一整列都是同一个人,也要在每天的记录中正常保留姓名。 +* 岗位二可能由两名或多名人员按照日期轮换,需要按每行实际内容提取。 +* 岗位三和岗位四也必须按照每个日期所在行分别提取。 +* 其余人员列全部忽略。 + +## 四、日期合并规则 + +不能按照图片顺序直接拼接数据。 + +需要先将4张图片中的每一行分别识别为一条独立记录,再根据日期合并排序。 + +例如,一张图片中可能包含: + +```text +8/2 +8/6 +8/10 +8/14 +8/18 +8/22 +8/26 +8/30 +``` + +其他图片会包含穿插在这些日期之间的日期。 + +合并后的处理顺序为: + +```text +读取4张图片中的全部日期记录 +→ 按日期合并 +→ 按日期从小到大排序 +→ 只保留工作日 +``` + +不依赖图片上传顺序,也不依赖人员姓名判断日期归属。 + +## 五、工作日规则 + +最终结果只保留星期一至星期五。 + +星期六和星期日的数据不输出。 + +例如8月份应整理为: + +```text +8月3日—8月7日 +8月10日—8月14日 +8月17日—8月21日 +8月24日—8月28日 +``` + +如果该月还有其他工作日,例如8月31日,也需要继续保留。 + +## 六、输出表格 + +最终生成一张简化表格,每个工作日一行: + +| 日期 | 星期 | 岗位一(队长) | 岗位二 | 岗位三 | 岗位四 | +| --- | --- | ------- | --- | --- | --- | +| 8/3 | 星期一 | 姓名 | 姓名 | 姓名 | 姓名 | +| 8/4 | 星期二 | 姓名 | 姓名 | 姓名 | 姓名 | +| 8/5 | 星期三 | 姓名 | 姓名 | 姓名 | 姓名 | +| 8/6 | 星期四 | 梁峰 | 沈飞 | 姚旭杰 | 张敏 | +| 8/7 | 星期五 | 姓名 | 姓名 | 姓名 | 姓名 | + +输出要求: + +1. 按日期升序排列。 +2. 一天只能有一行记录。 +3. 不保留原始表格颜色。 +4. 不保留无关人员和岗位。 +5. 不保留周末数据。 +6. 支持导出为Excel文件。 +7. 导出前显示整理结果,允许用户检查和修改姓名、日期及岗位内容。 + +## 七、异常处理 + +需要明确显示以下情况,不能静默忽略: + +* 某个工作日没有在4张图片中找到。 +* 同一个日期识别出多条记录。 +* 某个岗位姓名为空。 +* 日期或星期无法识别。 +* 同一行中的岗位内容无法确定。 +* 4张图片中的日期范围不属于同一个月份。 + +发现异常时,在结果中标记对应单元格或对应行,供用户手动检查。 + +## 八、验收标准 + +选择4张符合上述结构的图片后,应当能够: + +1. 正确提取每张图片中的日期和4个岗位。 +2. 正确将4天间隔的数据穿插合并。 +3. 正确按日期排序。 +4. 正确排除星期六和星期日。 +5. 保留岗位一至岗位四每天对应的实际人员。 +6. 输出一张连续、简洁、可修改并可导出的工作日排班表。 From 7bb509ac3132afa080da96983eac927d15f3cfe9 Mon Sep 17 00:00:00 2001 From: "XS-202604101948\\Administrator" <1255317579@qq.com> Date: Wed, 5 Aug 2026 02:21:21 +0800 Subject: [PATCH 02/14] Use embedded OCR models exclusively --- README_zh.md | 2 +- RapidOCRWinform/AppSettings.cs | 2 - RapidOCRWinform/FormOcr.Designer.cs | 54 +++---------- RapidOCRWinform/FormOcr.cs | 119 +++------------------------- 4 files changed, 20 insertions(+), 157 deletions(-) diff --git a/README_zh.md b/README_zh.md index ce4283f..5a3ed15 100644 --- a/README_zh.md +++ b/README_zh.md @@ -41,7 +41,7 @@ RapidOCR 是一款完全开源免费、支持离线快速部署的多平台多 dotnet run --project .\RapidOCRWinform\RapidOCRWinform.csproj ``` -三个 ONNX 模型和 `ppocrv5_dict.txt` 已编译进 WinForms 程序;首次启动会校验并释放到用户模型缓存,不需要在程序旁放置 `models` 目录。也可以在界面中临时选择其他完整模型目录。核心日期/几何规则与 Excel OOXML 导出测试可用以下命令运行: +三个 ONNX 模型和 `ppocrv5_dict.txt` 已编译进 WinForms 程序;首次启动会校验并释放到用户模型缓存并自动初始化,不需要选择模型目录,也不需要在程序旁放置 `models` 目录。核心日期/几何规则与 Excel OOXML 导出测试可用以下命令运行: ```powershell dotnet test .\RapidOCRSchedule.Tests\RapidOCRSchedule.Tests.csproj diff --git a/RapidOCRWinform/AppSettings.cs b/RapidOCRWinform/AppSettings.cs index dbd4129..34c5e0e 100644 --- a/RapidOCRWinform/AppSettings.cs +++ b/RapidOCRWinform/AppSettings.cs @@ -4,8 +4,6 @@ namespace RapidOCRWinform; internal sealed class AppSettings { - public string? ModelDirectory { get; set; } - public int Role3Column { get; set; } = -2; public int Role4Column { get; set; } = -1; diff --git a/RapidOCRWinform/FormOcr.Designer.cs b/RapidOCRWinform/FormOcr.Designer.cs index 545a108..95a2fd8 100644 --- a/RapidOCRWinform/FormOcr.Designer.cs +++ b/RapidOCRWinform/FormOcr.Designer.cs @@ -34,9 +34,6 @@ private void InitializeComponent() modelGroupBox = new GroupBox(); modelStatusLabel = new Label(); initializeModelButton = new Button(); - browseModelButton = new Button(); - modelPathTextBox = new TextBox(); - modelPathLabel = new Label(); settingsGroupBox = new GroupBox(); layoutHintLabel = new Label(); role4ColumnNumeric = new NumericUpDown(); @@ -208,7 +205,7 @@ private void InitializeComponent() processButton.FlatStyle = FlatStyle.Flat; processButton.Font = new Font("Microsoft YaHei UI", 11F, FontStyle.Bold); processButton.ForeColor = Color.White; - processButton.Location = new Point(15, 683); + processButton.Location = new Point(15, 610); processButton.Name = "processButton"; processButton.Size = new Size(348, 48); processButton.TabIndex = 3; @@ -221,63 +218,33 @@ private void InitializeComponent() modelGroupBox.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; modelGroupBox.Controls.Add(modelStatusLabel); modelGroupBox.Controls.Add(initializeModelButton); - modelGroupBox.Controls.Add(browseModelButton); - modelGroupBox.Controls.Add(modelPathTextBox); - modelGroupBox.Controls.Add(modelPathLabel); modelGroupBox.Location = new Point(15, 512); modelGroupBox.Name = "modelGroupBox"; - modelGroupBox.Size = new Size(348, 157); + modelGroupBox.Size = new Size(348, 84); modelGroupBox.TabIndex = 2; modelGroupBox.TabStop = false; - modelGroupBox.Text = "OCR 模型"; + modelGroupBox.Text = "内置 OCR 模型"; // // modelStatusLabel // modelStatusLabel.AutoEllipsis = true; modelStatusLabel.ForeColor = Color.DimGray; - modelStatusLabel.Location = new Point(12, 122); + modelStatusLabel.Location = new Point(12, 34); modelStatusLabel.Name = "modelStatusLabel"; - modelStatusLabel.Size = new Size(324, 25); - modelStatusLabel.TabIndex = 4; - modelStatusLabel.Text = "等待初始化"; + modelStatusLabel.Size = new Size(208, 25); + modelStatusLabel.TabIndex = 0; + modelStatusLabel.Text = "正在准备内置模型…"; // // initializeModelButton // - initializeModelButton.Location = new Point(228, 81); + initializeModelButton.Location = new Point(228, 27); initializeModelButton.Name = "initializeModelButton"; initializeModelButton.Size = new Size(108, 34); - initializeModelButton.TabIndex = 3; + initializeModelButton.TabIndex = 1; initializeModelButton.Text = "重新初始化"; initializeModelButton.UseVisualStyleBackColor = true; initializeModelButton.Click += initializeModelButton_Click; // - // browseModelButton - // - browseModelButton.Location = new Point(228, 41); - browseModelButton.Name = "browseModelButton"; - browseModelButton.Size = new Size(108, 34); - browseModelButton.TabIndex = 2; - browseModelButton.Text = "选择目录"; - browseModelButton.UseVisualStyleBackColor = true; - browseModelButton.Click += browseModelButton_Click; - // - // modelPathTextBox - // - modelPathTextBox.Location = new Point(12, 44); - modelPathTextBox.Name = "modelPathTextBox"; - modelPathTextBox.Size = new Size(208, 27); - modelPathTextBox.TabIndex = 1; - modelPathTextBox.TextChanged += modelPathTextBox_TextChanged; - // - // modelPathLabel - // - modelPathLabel.AutoSize = true; - modelPathLabel.Location = new Point(12, 23); - modelPathLabel.Name = "modelPathLabel"; - modelPathLabel.Size = new Size(69, 20); - modelPathLabel.TabIndex = 0; - modelPathLabel.Text = "模型目录"; - // // settingsGroupBox // settingsGroupBox.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; @@ -740,9 +707,6 @@ private void InitializeComponent() private Label role4ColumnLabel; private Label layoutHintLabel; private GroupBox modelGroupBox; - private TextBox modelPathTextBox; - private Label modelPathLabel; - private Button browseModelButton; private Button initializeModelButton; private Label modelStatusLabel; private Button processButton; diff --git a/RapidOCRWinform/FormOcr.cs b/RapidOCRWinform/FormOcr.cs index 7cadc74..712f91b 100644 --- a/RapidOCRWinform/FormOcr.cs +++ b/RapidOCRWinform/FormOcr.cs @@ -35,7 +35,6 @@ public partial class FormOcr : Form private ScheduleExtractionResult? _lastExtraction; private ScheduleBuildResult? _lastBuild; private string _batchDiagnostics = string.Empty; - private string? _initializedModelDirectory; private DateTime _appliedMonth; private int _appliedRole3Column = -2; private int _appliedRole4Column = -1; @@ -59,21 +58,6 @@ private async void FormOcr_Load(object? sender, EventArgs e) monthPicker.Value = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1); role3ColumnNumeric.Value = NormalizeColumnSetting(_settings.Role3Column, -2); role4ColumnNumeric.Value = NormalizeColumnSetting(_settings.Role4Column, -1); - try - { - modelPathTextBox.Text = EmbeddedModelProvider.EnsureExtracted(); - } - catch (Exception exception) - { - modelPathTextBox.Text = FindDefaultModelDirectory(_settings.ModelDirectory); - MessageBox.Show( - this, - $"无法释放程序内置的 OCR 模型:\n{exception.Message}\n\n将尝试使用本机已有模型。", - "内置模型不可用", - MessageBoxButtons.OK, - MessageBoxIcon.Error); - } - RememberAppliedSettings(); _loaded = true; UpdateActionState(); @@ -83,47 +67,6 @@ private async void FormOcr_Load(object? sender, EventArgs e) private async void initializeModelButton_Click(object? sender, EventArgs e) => await InitializeOcrAsync(showSuccess: true); - private void browseModelButton_Click(object? sender, EventArgs e) - { - using FolderBrowserDialog dialog = new() - { - Description = "选择包含 3 个 ONNX 模型和 ppocrv5_dict.txt 的目录", - SelectedPath = Directory.Exists(modelPathTextBox.Text) - ? modelPathTextBox.Text - : AppContext.BaseDirectory, - ShowNewFolderButton = false, - }; - - if (dialog.ShowDialog(this) == DialogResult.OK) - { - modelPathTextBox.Text = dialog.SelectedPath; - _settings.ModelDirectory = dialog.SelectedPath; - _settings.Save(); - } - } - - private void modelPathTextBox_TextChanged(object? sender, EventArgs e) - { - if (!_loaded || _busy || _initializedModelDirectory is null) - { - return; - } - - string currentPath; - try - { - currentPath = Path.GetFullPath(modelPathTextBox.Text.Trim()); - } - catch - { - currentPath = string.Empty; - } - - bool stillInitialized = _ocrEngine is not null && - string.Equals(currentPath, _initializedModelDirectory, StringComparison.OrdinalIgnoreCase); - SetModelState(stillInitialized, stillInitialized ? "模型已就绪" : "目录已更改,请重新初始化"); - } - private async Task InitializeOcrAsync(bool showSuccess) { if (_busy) @@ -131,26 +74,11 @@ private async Task InitializeOcrAsync(bool showSuccess) return; } - string modelDirectory = modelPathTextBox.Text.Trim(); - string[] missingFiles = ModelFileNames - .Where(name => !File.Exists(Path.Combine(modelDirectory, name))) - .ToArray(); - if (missingFiles.Length > 0) - { - SetModelState(false, $"缺少 {missingFiles.Length} 个模型文件"); - MessageBox.Show( - this, - $"模型目录不完整:\n{modelDirectory}\n\n缺少:\n{string.Join("\n", missingFiles)}", - "OCR 模型未就绪", - MessageBoxButtons.OK, - MessageBoxIcon.Warning); - return; - } - try { - SetBusy(true, "正在初始化 OCR 模型…"); - SetModelState(false, "正在初始化…"); + SetBusy(true, "正在准备内置 OCR 模型…"); + SetModelState(false, "正在准备内置模型…"); + string modelDirectory = await Task.Run(EmbeddedModelProvider.EnsureExtracted); OcrLite engine = new(); int threadCount = Math.Max(1, (int)Math.Ceiling(Environment.ProcessorCount * 0.7)); try @@ -173,14 +101,11 @@ await engine.InitModels( _ocrEngine = engine; previousEngine?.Dispose(); _ocrReady = true; - _initializedModelDirectory = Path.GetFullPath(modelDirectory); - _settings.ModelDirectory = modelDirectory; - _settings.Save(); - SetModelState(true, $"模型已就绪 · {threadCount} 线程"); - SetStatus("OCR 模型初始化完成"); + SetModelState(true, $"内置模型已就绪 · {threadCount} 线程"); + SetStatus("内置 OCR 模型初始化完成"); if (showSuccess) { - MessageBox.Show(this, "OCR 模型初始化成功。", "模型就绪", MessageBoxButtons.OK, MessageBoxIcon.Information); + MessageBox.Show(this, "内置 OCR 模型初始化成功。", "模型就绪", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception exception) @@ -188,11 +113,10 @@ await engine.InitModels( _ocrEngine?.Dispose(); _ocrEngine = null; _ocrReady = false; - _initializedModelDirectory = null; - SetModelState(false, "模型初始化失败"); + SetModelState(false, "内置模型初始化失败,可重试"); MessageBox.Show( this, - $"OCR 模型初始化失败:\n{exception.Message}", + $"无法准备程序内置的 OCR 模型:\n{exception.Message}\n\n请检查磁盘空间和用户目录权限后重试。", "初始化失败", MessageBoxButtons.OK, MessageBoxIcon.Error); @@ -282,7 +206,7 @@ private async void processButton_Click(object? sender, EventArgs e) if (!_ocrReady || _ocrEngine is null) { - MessageBox.Show(this, "OCR 模型尚未初始化,请检查模型目录。", "无法开始", MessageBoxButtons.OK, MessageBoxIcon.Warning); + MessageBox.Show(this, "内置 OCR 模型尚未就绪,请重试初始化。", "无法开始", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } @@ -352,7 +276,7 @@ private async void processButton_Click(object? sender, EventArgs e) "处理失败", MessageBoxButtons.OK, MessageBoxIcon.Error); - SetStatus("处理失败,请检查原图和模型设置"); + SetStatus("处理失败,请检查原图和 OCR 状态"); } finally { @@ -968,8 +892,6 @@ private void SetBusy(bool busy, string? message = null) selectImagesButton.Enabled = !busy; clearImagesButton.Enabled = !busy && _images.Count > 0; initializeModelButton.Enabled = !busy; - browseModelButton.Enabled = !busy; - modelPathTextBox.Enabled = !busy; monthPicker.Enabled = !busy; role3ColumnNumeric.Enabled = !busy; role4ColumnNumeric.Enabled = !busy; @@ -1016,27 +938,6 @@ private static decimal NormalizeColumnSetting(int value, int fallback) => _ => null, }; - private static string FindDefaultModelDirectory(string? configuredDirectory) - { - List candidates = []; - if (!string.IsNullOrWhiteSpace(configuredDirectory)) - { - candidates.Add(configuredDirectory); - } - - DirectoryInfo? current = new(AppContext.BaseDirectory); - for (int level = 0; level < 7 && current is not null; level++, current = current.Parent) - { - candidates.Add(Path.Combine(current.FullName, "models")); - candidates.Add(Path.Combine(current.FullName, "RapidOCRConsole", "models")); - } - - return candidates.FirstOrDefault(IsCompleteModelDirectory) ?? Path.Combine(AppContext.BaseDirectory, "models"); - } - - private static bool IsCompleteModelDirectory(string path) => - Directory.Exists(path) && ModelFileNames.All(name => File.Exists(Path.Combine(path, name))); - private static Size ReadImageSize(string path) { using FileStream stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); From 78d7e68bf24e00f0edd6e159dfeae26ed81c303a Mon Sep 17 00:00:00 2001 From: "XS-202604101948\\Administrator" <1255317579@qq.com> Date: Wed, 5 Aug 2026 02:28:48 +0800 Subject: [PATCH 03/14] Support custom images in console sample --- RapidOCRConsole/Program.cs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/RapidOCRConsole/Program.cs b/RapidOCRConsole/Program.cs index bcdb4db..8888613 100644 --- a/RapidOCRConsole/Program.cs +++ b/RapidOCRConsole/Program.cs @@ -16,8 +16,10 @@ }; await ocrEngin.InitModels(); -//get the image will be ocr. -var demoWillOCRFile = Path.Combine(AppContext.BaseDirectory, "Assets", "demo.png"); +// Use the first command-line argument when supplied; otherwise run the bundled demo. +var demoWillOCRFile = args.Length > 0 + ? Path.GetFullPath(args[0]) + : Path.Combine(AppContext.BaseDirectory, "Assets", "demo.png"); //ocr detect var result = ocrEngin.Detect(demoWillOCRFile, 50); if (result != null) @@ -41,6 +43,3 @@ Console.WriteLine("显示strResult"); Console.WriteLine(result.StrRes); } - - -Console.ReadKey(); From 09fbb3475c71a31dd4603889128600680533adef Mon Sep 17 00:00:00 2001 From: "XS-202604101948\\Administrator" <1255317579@qq.com> Date: Wed, 5 Aug 2026 02:30:12 +0800 Subject: [PATCH 04/14] Ignore spreadsheet headers during schedule extraction --- RapidOCRSchedule.Core/ScheduleExtractor.cs | 88 ++++++++++++++++++--- RapidOCRSchedule.Tests/CoreScheduleTests.cs | 31 ++++++++ 2 files changed, 106 insertions(+), 13 deletions(-) diff --git a/RapidOCRSchedule.Core/ScheduleExtractor.cs b/RapidOCRSchedule.Core/ScheduleExtractor.cs index ef524d9..177a571 100644 --- a/RapidOCRSchedule.Core/ScheduleExtractor.cs +++ b/RapidOCRSchedule.Core/ScheduleExtractor.cs @@ -100,6 +100,11 @@ private static void ExtractSource( foreach (RowCluster row in rows) { + if (IsSpreadsheetColumnHeaderRow(row)) + { + continue; + } + float assignmentTolerance = GetAssignmentTolerance(columns, columnTolerance); Dictionary> cells = AssignCells(row, columns, assignmentTolerance, out List rejectedTokens); result.UnassignedTokens.AddRange(rejectedTokens); @@ -234,9 +239,20 @@ private static List InferSharedColumnCenters( foreach (RowCluster row in ClusterRows(sourceTokens, rowTolerance)) { fallbackRows.Add((row, globalRowIndex)); - if (IsLikelyTableRow(row)) + OcrToken[] orderedTokens = row.Tokens + .OrderBy(static token => token.Bounds.CenterX) + .ToArray(); + if (TryFindDateTokenSpan(orderedTokens, out int dateStartIndex, out _)) { - positioned.AddRange(row.Tokens.Select(token => new PositionedToken(token, globalRowIndex))); + positioned.AddRange(orderedTokens + .Skip(dateStartIndex) + .Select(token => new PositionedToken(token, globalRowIndex))); + } + else if (TryFindSemanticHeaderStart(orderedTokens, out int headerStartIndex)) + { + positioned.AddRange(orderedTokens + .Skip(headerStartIndex) + .Select(token => new PositionedToken(token, globalRowIndex))); } globalRowIndex++; @@ -332,34 +348,80 @@ private static bool FitsMissingGridPosition( return edgeGap >= typicalGap * minimumFactor && edgeGap <= typicalGap * maximumFactor; } - private static bool IsLikelyTableRow(RowCluster row) + private static bool TryFindSemanticHeaderStart( + IReadOnlyList orderedTokens, + out int startIndex) { - if (RowContainsDate(row)) + startIndex = -1; + for (int index = 0; index < orderedTokens.Count; index++) { - return true; + if (orderedTokens[index].Text.Contains("日期", StringComparison.Ordinal)) + { + startIndex = index; + break; + } } - string combined = string.Concat( - row.Tokens.OrderBy(static token => token.Bounds.CenterX).Select(static token => token.Text)); - return combined.Contains("日期", StringComparison.Ordinal) && - (combined.Contains("星期", StringComparison.Ordinal) || combined.Contains("周", StringComparison.Ordinal)); + if (startIndex < 0) + { + return false; + } + + string combined = string.Concat(orderedTokens.Skip(startIndex).Select(static token => token.Text)); + return combined.Contains("星期", StringComparison.Ordinal) || + combined.Contains("周", StringComparison.Ordinal); } private static bool RowContainsDate(RowCluster row) { OcrToken[] ordered = row.Tokens.OrderBy(static token => token.Bounds.CenterX).ToArray(); - for (int count = 1; count <= Math.Min(3, ordered.Length); count++) + return TryFindDateTokenSpan(ordered, out _, out _); + } + + private static bool TryFindDateTokenSpan( + IReadOnlyList orderedTokens, + out int startIndex, + out int tokenCount) + { + startIndex = -1; + tokenCount = 0; + for (int start = 0; start < orderedTokens.Count; start++) { - string candidate = string.Concat(ordered.Take(count).Select(static token => token.Text)); - if (DateTextParser.TryParseMonthDay(candidate, out _, out _)) + for (int count = 1; count <= Math.Min(3, orderedTokens.Count - start); count++) { - return true; + string candidate = string.Concat( + orderedTokens.Skip(start).Take(count).Select(static token => token.Text)); + if (DateTextParser.TryParseMonthDay(candidate, out _, out _)) + { + startIndex = start; + tokenCount = count; + return true; + } } } return false; } + private static bool IsSpreadsheetColumnHeaderRow(RowCluster row) + { + string[] texts = row.Tokens + .Select(static token => token.Text.Trim()) + .Where(static text => text.Length > 0) + .ToArray(); + if (texts.Length < 4) + { + return false; + } + + int labelCount = texts.Count(IsSpreadsheetColumnLabel); + return labelCount >= 4 && labelCount >= (int)Math.Ceiling(texts.Length * 0.70D); + } + + private static bool IsSpreadsheetColumnLabel(string text) => + text.Length is >= 1 and <= 3 && + text.All(static character => character is >= 'A' and <= 'Z' or >= 'a' and <= 'z'); + private static Dictionary> AssignCells( RowCluster row, IReadOnlyList columns, diff --git a/RapidOCRSchedule.Tests/CoreScheduleTests.cs b/RapidOCRSchedule.Tests/CoreScheduleTests.cs index f09e807..bc4024e 100644 --- a/RapidOCRSchedule.Tests/CoreScheduleTests.cs +++ b/RapidOCRSchedule.Tests/CoreScheduleTests.cs @@ -418,6 +418,37 @@ public void Extract_DateSplitIntoThreeTokens_StillAnchorsAndParsesRow() Assert.DoesNotContain(first.Issues, static issue => issue.Code == ScheduleIssueCode.InvalidDate); } + [Fact] + public void Extract_ExcelColumnLabelsAndRowNumbers_AreIgnoredWithoutShiftingDataColumns() + { + List tokens = CreateOcrTableTokens(splitRoleOneOnFirstRow: false).ToList(); + float[] centers = [0.06F, 0.17F, 0.28F, 0.39F, 0.52F, 0.64F, 0.78F, 0.91F]; + string[] labels = ["A", "B", "C", "D", "E", "F", "G", "H"]; + for (int index = 0; index < labels.Length; index++) + { + tokens.Add(Token("table.png", labels[index], centers[index], 0.05F)); + } + + for (int row = 0; row < 3; row++) + { + tokens.Add(Token("table.png", (row + 1).ToString(), 0.01F, 0.20F + row * 0.10F)); + } + + ScheduleExtractionResult result = new ScheduleExtractor().Extract( + tokens.OrderBy(static token => StableShuffleKey($"{token.Text}:{token.Bounds.Left}:{token.Bounds.Top}"))); + + Assert.Equal(3, result.Candidates.Count); + ScheduleCandidate first = Assert.Single( + result.Candidates, + static candidate => candidate.RawDateText == "8/3"); + Assert.Equal("星期一", first.RawWeekdayText); + Assert.Equal("队长3", first.Role1); + Assert.Equal("岗位二3", first.Role2); + Assert.Equal("右一3", first.Role3); + Assert.Equal("右二3", first.Role4); + Assert.DoesNotContain(result.Candidates, static candidate => candidate.RawDateText == "1"); + Assert.DoesNotContain(result.Candidates, static candidate => candidate.RawWeekdayText == "A"); + } private static IEnumerable CreateFourDaySeries() { for (int seriesOffset = 0; seriesOffset < 4; seriesOffset++) From d240160aef6af9dd0f4ffc6ac4b39d0361377323 Mon Sep 17 00:00:00 2001 From: "XS-202604101948\\Administrator" <1255317579@qq.com> Date: Wed, 5 Aug 2026 02:30:42 +0800 Subject: [PATCH 05/14] Align schedule rows to the selected calendar --- README_zh.md | 4 +- RapidOCRSchedule.Core/ScheduleService.cs | 260 ++++++++++++++++-- .../ScheduleExcelExporter.cs | 14 +- RapidOCRSchedule.Tests/CoreScheduleTests.cs | 157 ++++++++++- .../ScheduleExcelExporterTests.cs | 14 +- RapidOCRWinform/FormOcr.cs | 35 ++- 6 files changed, 422 insertions(+), 62 deletions(-) diff --git a/README_zh.md b/README_zh.md index 5a3ed15..8e10114 100644 --- a/README_zh.md +++ b/README_zh.md @@ -30,10 +30,10 @@ RapidOCR 是一款完全开源免费、支持离线快速部署的多平台多 1. 一次选择正好 4 张结构相同的排班图片(上传顺序不影响结果)。 2. 选择目标年月;程序从每张图片提取日期、星期、前两个岗位以及右侧两个指定岗位。 -3. 4 张图片的记录按实际日期合并排序,只保留星期一至星期五;整月缺失的工作日会自动生成待填写行。 +3. 4 张图片的记录按实际日期合并排序,星期一至星期日都会保留;整月缺失的日期会自动生成待填写行。 4. 在结果表格中检查并修改日期、星期和姓名,然后导出为 `.xlsx`。 -程序会明确标记日期/星期无法识别、星期与日历不一致、岗位为空、同日重复、工作日缺失、跨月、列归属不确定和低置信度 OCR 等情况。原图和 OCR 坐标诊断保留在“原图与识别诊断”页,不会静默丢弃异常。 +程序以界面中选择的目标年月为权威日历。OCR 完成后,会根据四张图片各自从上到下每隔 4 天的排布规律,以及可识别的日期/星期锚点确定四组顺序,再统一用目标年月计算并回填最终日期和星期;OCR 的日期和星期只用于定位、核对,姓名仍取自 OCR。像 `817`、缺少斜杠或星期只识别成“星期”等情况都会被日历结果纠正;如果四组对应关系存在歧义,则不会盲目改写,并保留待人工检查。原图和 OCR 坐标诊断保留在“原图与识别诊断”页。 默认列映射为从左到右第 1~4 列,以及倒数第 2、倒数第 1 列。若右侧目标区域不是表格最后两列,可在左侧把“岗位三列”“岗位四列”改为实际列序号;修改后会直接重新整理缓存的 OCR 结果,无需再次识别图片。 diff --git a/RapidOCRSchedule.Core/ScheduleService.cs b/RapidOCRSchedule.Core/ScheduleService.cs index 90027e8..997fd48 100644 --- a/RapidOCRSchedule.Core/ScheduleService.cs +++ b/RapidOCRSchedule.Core/ScheduleService.cs @@ -1,7 +1,7 @@ namespace RapidOCRSchedule.Core; /// -/// Merges extracted rows by date, creates all missing workdays, removes weekends, +/// Merges extracted rows by date, creates all missing calendar dates, /// and performs the business validations required by the schedule workflow. /// public sealed class ScheduleService @@ -9,7 +9,8 @@ public sealed class ScheduleService public ScheduleBuildResult Build( int targetYear, int targetMonth, - IEnumerable candidates) + IEnumerable candidates, + bool alignOcrRowsToCalendar = false) { if (targetYear is < 1900 or > 9999) { @@ -22,10 +23,16 @@ public ScheduleBuildResult Build( } ArgumentNullException.ThrowIfNull(candidates); + List preparedCandidates = candidates.ToList(); + if (alignOcrRowsToCalendar) + { + preparedCandidates = AlignOcrRowsToCalendar(targetYear, targetMonth, preparedCandidates); + } + ScheduleBuildResult result = new(); List located = []; - foreach (ScheduleCandidate candidate in candidates) + foreach (ScheduleCandidate candidate in preparedCandidates) { // Build may be rerun when the user changes the target month. Remove findings that // are relative to the previous target so they cannot leak into the new result. @@ -39,7 +46,8 @@ ScheduleIssueCode.EmptyRole2 or ScheduleIssueCode.EmptyRole3 or ScheduleIssueCode.EmptyRole4); - if (!DateTextParser.TryCreateDate(targetYear, candidate.RawDateText, out DateOnly date)) + if (!DateTextParser.TryCreateDate(targetYear, candidate.RawDateText, out DateOnly date) && + !TryRecoverCompactOcrDate(targetYear, targetMonth, candidate, out date)) { AddIssueIfMissing( candidate.Issues, @@ -53,6 +61,7 @@ ScheduleIssueCode.EmptyRole3 or continue; } + candidate.RawDateText = date.ToString("M/d"); located.Add(new LocatedCandidate(candidate, date)); } @@ -80,13 +89,7 @@ ScheduleIssueCode.EmptyRole3 or List targetMonthCandidates = located .Where(item => item.Date.Month == targetMonth) .ToList(); - foreach (LocatedCandidate item in targetMonthCandidates.Where(static item => IsWeekend(item.Date.DayOfWeek))) - { - result.WeekendCandidates.Add(item.Candidate); - } - Dictionary> byDate = targetMonthCandidates - .Where(static item => !IsWeekend(item.Date.DayOfWeek)) .GroupBy(static item => item.Date) .ToDictionary(static group => group.Key, static group => group.ToList()); @@ -94,11 +97,6 @@ ScheduleIssueCode.EmptyRole3 or DateOnly last = new(targetYear, targetMonth, DateTime.DaysInMonth(targetYear, targetMonth)); for (DateOnly date = first; date <= last; date = date.AddDays(1)) { - if (IsWeekend(date.DayOfWeek)) - { - continue; - } - if (!byDate.TryGetValue(date, out List? matches) || matches.Count == 0) { ScheduleRow missing = new() @@ -110,7 +108,7 @@ ScheduleIssueCode.EmptyRole3 or }; missing.Issues.Add(new ScheduleIssue( ScheduleIssueCode.MissingWorkday, - "该工作日未在 4 张图片中找到,请手动补充。")); + "该日期未在 4 张图片中找到,请手动补充。")); result.Rows.Add(missing); continue; } @@ -314,8 +312,232 @@ private static void AddCandidateEmptyRoleIssue( } } - private static bool IsWeekend(DayOfWeek weekday) => - weekday is DayOfWeek.Saturday or DayOfWeek.Sunday; + private static List AlignOcrRowsToCalendar( + int targetYear, + int targetMonth, + List candidates) + { + ImageSeries[] series = candidates + .GroupBy(static candidate => candidate.SourceImageId, StringComparer.OrdinalIgnoreCase) + .OrderBy(static group => group.Key, StringComparer.OrdinalIgnoreCase) + .Select(static group => new ImageSeries( + group.Key, + group.OrderBy(static candidate => candidate.RowCenterY).ToList())) + .ToArray(); + if (series.Length != 4 || series.Any(static value => string.IsNullOrWhiteSpace(value.SourceImageId))) + { + return candidates; + } + + int daysInMonth = DateTime.DaysInMonth(targetYear, targetMonth); + List assignments = []; + foreach (int[] offsets in GetFourDaySeriesPermutations()) + { + bool countsMatch = true; + int score = 0; + for (int index = 0; index < series.Length; index++) + { + int expectedCount = ((daysInMonth - offsets[index]) / 4) + 1; + if (series[index].Candidates.Count != expectedCount) + { + countsMatch = false; + break; + } + + score += ScoreSeries( + targetYear, + targetMonth, + offsets[index], + series[index].Candidates); + } + + if (countsMatch) + { + assignments.Add(new CalendarAssignment(offsets, score)); + } + } + + CalendarAssignment[] ranked = assignments + .OrderByDescending(static assignment => assignment.Score) + .ToArray(); + if (ranked.Length == 0 || ranked[0].Score <= 0 || + (ranked.Length > 1 && ranked[0].Score == ranked[1].Score)) + { + return candidates; + } + + Dictionary calendarDates = []; + for (int seriesIndex = 0; seriesIndex < series.Length; seriesIndex++) + { + int firstDay = ranked[0].Offsets[seriesIndex]; + for (int rowIndex = 0; rowIndex < series[seriesIndex].Candidates.Count; rowIndex++) + { + calendarDates[series[seriesIndex].Candidates[rowIndex]] = + new DateOnly(targetYear, targetMonth, firstDay + rowIndex * 4); + } + } + + return candidates.Select(candidate => + { + if (!calendarDates.TryGetValue(candidate, out DateOnly calendarDate)) + { + return candidate; + } + + ScheduleCandidate corrected = CloneCandidate(candidate); + corrected.RawDateText = calendarDate.ToString("M/d"); + corrected.RawWeekdayText = WeekdayTextParser.ToChinese(calendarDate.DayOfWeek); + return corrected; + }).ToList(); + } + + private static int ScoreSeries( + int targetYear, + int targetMonth, + int firstDay, + IReadOnlyList candidates) + { + int score = 0; + for (int index = 0; index < candidates.Count; index++) + { + DateOnly expected = new(targetYear, targetMonth, firstDay + index * 4); + ScheduleCandidate candidate = candidates[index]; + if (DateTextParser.TryCreateDate(targetYear, candidate.RawDateText, out DateOnly recognizedDate)) + { + if (recognizedDate.Month != targetMonth) + { + score -= 20; + } + else if (recognizedDate.Day == expected.Day) + { + score += 30; + } + else + { + score -= Math.Min(30, Math.Abs(recognizedDate.Day - expected.Day) * 5); + } + } + + if (WeekdayTextParser.TryParse(candidate.RawWeekdayText, out DayOfWeek recognizedWeekday)) + { + score += recognizedWeekday == expected.DayOfWeek ? 10 : -10; + } + } + + return score; + } + + private static IEnumerable GetFourDaySeriesPermutations() + { + for (int first = 1; first <= 4; first++) + { + for (int second = 1; second <= 4; second++) + { + for (int third = 1; third <= 4; third++) + { + for (int fourth = 1; fourth <= 4; fourth++) + { + int[] values = [first, second, third, fourth]; + if (values.Distinct().Count() == 4) + { + yield return values; + } + } + } + } + } + } + + private static ScheduleCandidate CloneCandidate(ScheduleCandidate source) + { + ScheduleCandidate clone = new() + { + RawDateText = source.RawDateText, + RawWeekdayText = source.RawWeekdayText, + Role1 = source.Role1, + Role2 = source.Role2, + Role3 = source.Role3, + Role4 = source.Role4, + SourceImageId = source.SourceImageId, + RowCenterY = source.RowCenterY, + }; + clone.Issues.AddRange(source.Issues); + clone.SourceTokens.AddRange(source.SourceTokens); + return clone; + } + + private static bool TryRecoverCompactOcrDate( + int targetYear, + int targetMonth, + ScheduleCandidate candidate, + out DateOnly date) + { + date = default; + string compact = DateTextParser.Normalize(candidate.RawDateText) + .Replace(" ", string.Empty, StringComparison.Ordinal) + .TrimEnd('日', '号'); + string monthText = targetMonth.ToString(System.Globalization.CultureInfo.InvariantCulture); + if (!compact.StartsWith(monthText, StringComparison.Ordinal) || compact.Length <= monthText.Length) + { + return false; + } + + List alternatives = []; + AddCompactDateAlternative(compact[monthText.Length..], targetYear, targetMonth, alternatives); + + char possibleSeparator = compact[monthText.Length]; + if (possibleSeparator is '1' or 'I' or 'i' or 'l' or '|' or '!') + { + AddCompactDateAlternative(compact[(monthText.Length + 1)..], targetYear, targetMonth, alternatives); + } + + alternatives = alternatives.Distinct().ToList(); + if (alternatives.Count == 1) + { + date = alternatives[0]; + return true; + } + + if (alternatives.Count > 1 && + WeekdayTextParser.TryParse(candidate.RawWeekdayText, out DayOfWeek weekday)) + { + DateOnly[] weekdayMatches = alternatives + .Where(value => value.DayOfWeek == weekday) + .ToArray(); + if (weekdayMatches.Length == 1) + { + date = weekdayMatches[0]; + return true; + } + } + + return false; + } + + private static void AddCompactDateAlternative( + string dayText, + int targetYear, + int targetMonth, + List alternatives) + { + if (!int.TryParse( + dayText, + System.Globalization.NumberStyles.None, + System.Globalization.CultureInfo.InvariantCulture, + out int day)) + { + return; + } + + try + { + alternatives.Add(new DateOnly(targetYear, targetMonth, day)); + } + catch (ArgumentOutOfRangeException) + { + // This interpretation is not a real calendar date. + } + } private static bool IsPersistentExtractionIssue(ScheduleIssueCode code) => code is ScheduleIssueCode.DuplicateDate or @@ -324,5 +546,7 @@ ScheduleIssueCode.AmbiguousColumn or ScheduleIssueCode.LowOcrConfidence or ScheduleIssueCode.InsufficientColumns; + private sealed record ImageSeries(string SourceImageId, List Candidates); + private sealed record CalendarAssignment(int[] Offsets, int Score); private sealed record LocatedCandidate(ScheduleCandidate Candidate, DateOnly Date); } diff --git a/RapidOCRSchedule.Excel/ScheduleExcelExporter.cs b/RapidOCRSchedule.Excel/ScheduleExcelExporter.cs index bbe7a36..37c686b 100644 --- a/RapidOCRSchedule.Excel/ScheduleExcelExporter.cs +++ b/RapidOCRSchedule.Excel/ScheduleExcelExporter.cs @@ -6,7 +6,7 @@ namespace RapidOCRSchedule.Excel; /// -/// Writes simplified workday schedules as Office Open XML workbooks. +/// Writes simplified schedules as Office Open XML workbooks. /// public static class ScheduleExcelExporter { @@ -30,7 +30,7 @@ public static class ScheduleExcelExporter /// /// Exports to an XLSX file, replacing an existing file at the same path. - /// Weekend rows are omitted and the remaining rows are sorted by date. + /// Rows are sorted by date; weekend rows are retained. /// /// Destination path, including the .xlsx file name. /// Schedule rows to export. @@ -70,7 +70,7 @@ public static void Export(string filePath, IEnumerable rows) /// /// Exports to a writable stream as an XLSX workbook. - /// Weekend rows are omitted and the remaining rows are sorted by date. + /// Rows are sorted by date; weekend rows are retained. /// /// Writable destination stream. /// Schedule rows to export. @@ -122,11 +122,6 @@ private static IReadOnlyList PrepareRows(IEnumerable rows) $"Excel dates must be on or after {MinimumExcelDate:yyyy-MM-dd}."); } - if (IsWeekend(row.Date.DayOfWeek)) - { - continue; - } - if (!dates.Add(row.Date)) { throw new ArgumentException( @@ -181,9 +176,6 @@ private static void ValidateCellText(string? value, int rowIndex, string propert } } - private static bool IsWeekend(DayOfWeek dayOfWeek) => - dayOfWeek is DayOfWeek.Saturday or DayOfWeek.Sunday; - private static void WritePackage(Stream destination, IReadOnlyList rows, bool leaveOpen) { using ZipArchive archive = new(destination, ZipArchiveMode.Create, leaveOpen); diff --git a/RapidOCRSchedule.Tests/CoreScheduleTests.cs b/RapidOCRSchedule.Tests/CoreScheduleTests.cs index bc4024e..3ad5a65 100644 --- a/RapidOCRSchedule.Tests/CoreScheduleTests.cs +++ b/RapidOCRSchedule.Tests/CoreScheduleTests.cs @@ -67,11 +67,9 @@ public void Build_FourFourDaySeries_IsOrderIndependentSortedAndComplete() ScheduleBuildResult first = service.Build(TargetYear, TargetMonth, ordered); ScheduleBuildResult second = service.Build(TargetYear, TargetMonth, shuffled); - DateOnly[] expectedWorkdays = DatesInTargetMonth() - .Where(static date => date.DayOfWeek is not DayOfWeek.Saturday and not DayOfWeek.Sunday) - .ToArray(); - Assert.Equal(expectedWorkdays, first.Rows.Select(static row => row.Date!.Value)); - Assert.Equal(expectedWorkdays, second.Rows.Select(static row => row.Date!.Value)); + DateOnly[] expectedDates = DatesInTargetMonth().ToArray(); + Assert.Equal(expectedDates, first.Rows.Select(static row => row.Date!.Value)); + Assert.Equal(expectedDates, second.Rows.Select(static row => row.Date!.Value)); Assert.Equal( first.Rows.Select(static row => (row.Date, row.Role1, row.Role2, row.Role3, row.Role4)), second.Rows.Select(static row => (row.Date, row.Role1, row.Role2, row.Role3, row.Role4))); @@ -80,22 +78,18 @@ public void Build_FourFourDaySeries_IsOrderIndependentSortedAndComplete() } [Fact] - public void Build_FiltersWeekendCandidatesFromOutput() + public void Build_IncludesWeekendCandidatesInOutput() { ScheduleBuildResult result = new ScheduleService().Build( TargetYear, TargetMonth, CreateFourDaySeries()); - Assert.DoesNotContain( + Assert.Contains( result.Rows, static row => row.Date!.Value.DayOfWeek is DayOfWeek.Saturday or DayOfWeek.Sunday); - Assert.Equal(10, result.WeekendCandidates.Count); - Assert.All( - result.WeekendCandidates, - static candidate => Assert.True( - DateTextParser.TryCreateDate(TargetYear, candidate.RawDateText, out DateOnly date) && - date.DayOfWeek is DayOfWeek.Saturday or DayOfWeek.Sunday)); + Assert.Equal(31, result.Rows.Count); + Assert.Empty(result.WeekendCandidates); } [Fact] @@ -114,6 +108,142 @@ public void Build_CreatesPlaceholderForEveryMissingWorkday() Assert.Contains(missing.Issues, static issue => issue.Code == ScheduleIssueCode.MissingWorkday); } + [Fact] + public void Build_RecoversSlashReadAsOneUsingRecognizedWeekday() + { + ScheduleCandidate candidate = CreateCandidate(7, "3.png", role1: "陆俊杰"); + candidate.RawDateText = "817"; + + ScheduleBuildResult result = new ScheduleService().Build(TargetYear, TargetMonth, [candidate]); + ScheduleRow row = Assert.Single( + result.Rows, + static value => value.Date == new DateOnly(TargetYear, TargetMonth, 7)); + + Assert.Equal("8/7", candidate.RawDateText); + Assert.Equal("陆俊杰", row.Role1); + Assert.False(row.IsMissingPlaceholder); + Assert.Empty(result.UnlocatedCandidates); + } + + [Fact] + public void Build_DoesNotGuessAmbiguousCompactDateWithoutRecognizedWeekday() + { + ScheduleCandidate candidate = CreateCandidate(7); + candidate.RawDateText = "817"; + candidate.RawWeekdayText = "星期"; + + ScheduleBuildResult result = new ScheduleService().Build(TargetYear, TargetMonth, [candidate]); + + Assert.Single(result.UnlocatedCandidates); + Assert.Equal("817", candidate.RawDateText); + } + + [Fact] + public void Build_RecoversCompactDateWhenOnlyOneInterpretationIsValid() + { + ScheduleCandidate candidate = CreateCandidate(3); + candidate.RawDateText = "83"; + candidate.RawWeekdayText = "星期"; + + ScheduleBuildResult result = new ScheduleService().Build(TargetYear, TargetMonth, [candidate]); + ScheduleRow row = Assert.Single( + result.Rows, + static value => value.Date == new DateOnly(TargetYear, TargetMonth, 3)); + + Assert.Equal("8/3", candidate.RawDateText); + Assert.False(row.IsMissingPlaceholder); + Assert.Empty(result.UnlocatedCandidates); + } + + [Fact] + public void Build_OcrCalendarAlignment_CorrectsRecognizedDatesAndWeekdaysFromTargetMonth() + { + List candidates = CreateFourDaySeries().ToList(); + ScheduleCandidate augustThird = Assert.Single( + candidates, + static candidate => candidate.RawDateText == "8/3"); + augustThird.RawDateText = "1"; + augustThird.RawWeekdayText = "8/2"; + + ScheduleCandidate augustSeventh = Assert.Single( + candidates, + static candidate => candidate.RawDateText == "8/7"); + augustSeventh.RawDateText = "817"; + augustSeventh.RawWeekdayText = "星期"; + augustSeventh.Role1 = "陆俊杰"; + + ScheduleBuildResult result = new ScheduleService().Build( + TargetYear, + TargetMonth, + candidates.OrderBy(static candidate => StableShuffleKey($"{candidate.SourceImageId}:{candidate.RowCenterY}")), + alignOcrRowsToCalendar: true); + + Assert.Equal(31, result.Rows.Count); + Assert.Empty(result.UnlocatedCandidates); + Assert.DoesNotContain(result.Rows, static row => row.IsMissingPlaceholder); + Assert.All( + result.Rows, + static row => Assert.Equal( + WeekdayTextParser.ToChinese(row.Date!.Value.DayOfWeek), + row.Weekday)); + + ScheduleRow correctedThird = Assert.Single( + result.Rows, + static row => row.Date == new DateOnly(TargetYear, TargetMonth, 3)); + ScheduleRow correctedSeventh = Assert.Single( + result.Rows, + static row => row.Date == new DateOnly(TargetYear, TargetMonth, 7)); + Assert.Equal("星期一", correctedThird.Weekday); + Assert.Equal("星期五", correctedSeventh.Weekday); + Assert.Equal("陆俊杰", correctedSeventh.Role1); + Assert.DoesNotContain( + correctedThird.Issues.Concat(correctedSeventh.Issues), + static issue => issue.Code is ScheduleIssueCode.InvalidDate or + ScheduleIssueCode.InvalidWeekday or + ScheduleIssueCode.WeekdayMismatch); + + // Raw OCR diagnostics remain unchanged; only the final schedule is corrected. + Assert.Equal("1", augustThird.RawDateText); + Assert.Equal("817", augustSeventh.RawDateText); + } + + [Fact] + public void Build_OcrCalendarAlignment_RecomputesWeekdaysWhenTargetYearChanges() + { + const int changedYear = 2027; + ScheduleBuildResult result = new ScheduleService().Build( + changedYear, + TargetMonth, + CreateFourDaySeries(), + alignOcrRowsToCalendar: true); + + ScheduleRow augustThird = Assert.Single( + result.Rows, + static row => row.Date == new DateOnly(changedYear, TargetMonth, 3)); + Assert.Equal("星期二", augustThird.Weekday); + Assert.DoesNotContain(result.Rows, static row => row.IsMissingPlaceholder); + } + + [Fact] + public void Build_OcrCalendarAlignment_DoesNotGuessWhenImageSeriesAreAmbiguous() + { + ScheduleCandidate[] candidates = CreateFourDaySeries().ToArray(); + foreach (ScheduleCandidate candidate in candidates) + { + candidate.RawDateText = string.Empty; + candidate.RawWeekdayText = string.Empty; + } + + ScheduleBuildResult result = new ScheduleService().Build( + TargetYear, + TargetMonth, + candidates, + alignOcrRowsToCalendar: true); + + Assert.Equal(candidates.Length, result.UnlocatedCandidates.Count); + Assert.All(result.Rows, static row => Assert.True(row.IsMissingPlaceholder)); + } + [Fact] public void Build_FlagsDuplicateDateAndKeepsOneOutputRow() { @@ -449,6 +579,7 @@ public void Extract_ExcelColumnLabelsAndRowNumbers_AreIgnoredWithoutShiftingData Assert.DoesNotContain(result.Candidates, static candidate => candidate.RawDateText == "1"); Assert.DoesNotContain(result.Candidates, static candidate => candidate.RawWeekdayText == "A"); } + private static IEnumerable CreateFourDaySeries() { for (int seriesOffset = 0; seriesOffset < 4; seriesOffset++) diff --git a/RapidOCRSchedule.Tests/ScheduleExcelExporterTests.cs b/RapidOCRSchedule.Tests/ScheduleExcelExporterTests.cs index 3fa2172..c4c6469 100644 --- a/RapidOCRSchedule.Tests/ScheduleExcelExporterTests.cs +++ b/RapidOCRSchedule.Tests/ScheduleExcelExporterTests.cs @@ -99,7 +99,7 @@ public void Export_WritesHeadersNumericDateWithMonthDayStyleAndSafeUnicodeText() } [Fact] - public void Export_FiltersWeekendsAndSortsRemainingRowsByDate() + public void Export_RetainsWeekendsAndSortsRowsByDate() { ExportRow[] rows = [ @@ -127,13 +127,19 @@ public void Export_FiltersWeekendsAndSortsRemainingRowsByDate() .ToArray(); Assert.Equal( - [new DateOnly(2026, 8, 3), new DateOnly(2026, 8, 4), new DateOnly(2026, 8, 7)], + [ + new DateOnly(2026, 8, 1), + new DateOnly(2026, 8, 2), + new DateOnly(2026, 8, 3), + new DateOnly(2026, 8, 4), + new DateOnly(2026, 8, 7), + ], exportedDates); - Assert.Equal(["Monday", "Tuesday", "Friday"], exportedNames); + Assert.Equal(["Saturday", "Sunday", "Monday", "Tuesday", "Friday"], exportedNames); } [Fact] - public void Export_ThrowsWhenAWorkdayDateIsDuplicated() + public void Export_ThrowsWhenADateIsDuplicated() { DateOnly duplicateDate = new(2026, 8, 3); ExportRow[] rows = diff --git a/RapidOCRWinform/FormOcr.cs b/RapidOCRWinform/FormOcr.cs index 712f91b..98aa2ea 100644 --- a/RapidOCRWinform/FormOcr.cs +++ b/RapidOCRWinform/FormOcr.cs @@ -9,11 +9,11 @@ namespace RapidOCRWinform; public partial class FormOcr : Form { - private const int OcrPadding = 30; - private const int OcrMaximumSideLength = 2400; - private const float OcrBoxScoreThreshold = 0.45F; - private const float OcrBoxThreshold = 0.30F; - private const float OcrUnclipRatio = 1.60F; + internal const int OcrPadding = 30; + internal const int OcrMaximumSideLength = 2400; + internal const float OcrBoxScoreThreshold = 0.45F; + internal const float OcrBoxThreshold = 0.30F; + internal const float OcrUnclipRatio = 1.60F; private static readonly string[] ModelFileNames = [ @@ -266,7 +266,7 @@ private async void processButton_Click(object? sender, EventArgs e) ExtractAndBind(); outputTabs.SelectedTab = resultTabPage; - SetStatus($"整理完成:{_lastBuild?.Rows.Count ?? 0} 个工作日,{_editableRows.Count(static row => row.IssueText.Length > 0)} 行待检查"); + SetStatus($"整理完成:{_lastBuild?.Rows.Count ?? 0} 个日期,{_editableRows.Count(static row => row.IssueText.Length > 0)} 行待检查"); } catch (Exception exception) { @@ -289,7 +289,11 @@ private void ExtractAndBind() { TableLayoutProfile profile = CreateLayoutProfile(); _lastExtraction = _extractor.Extract(_images.SelectMany(static image => image.Tokens), profile); - _lastBuild = _scheduleService.Build(monthPicker.Value.Year, monthPicker.Value.Month, _lastExtraction.Candidates); + _lastBuild = _scheduleService.Build( + monthPicker.Value.Year, + monthPicker.Value.Month, + _lastExtraction.Candidates, + alignOcrRowsToCalendar: true); CaptureDuplicateCandidates(_lastBuild, replace: true); BindBuildResult(_lastBuild); RememberAppliedSettings(); @@ -303,7 +307,7 @@ private void ExtractAndBind() Role4Column = Decimal.ToInt32(role4ColumnNumeric.Value), }; - private static IEnumerable ConvertTokens(string sourcePath, Size imageSize, OcrResult result) + internal static IEnumerable ConvertTokens(string sourcePath, Size imageSize, OcrResult result) { foreach (TextBlock block in result.TextBlocks) { @@ -355,8 +359,8 @@ private void BindBuildResult(ScheduleBuildResult build) int extractionIssues = _lastExtraction?.Issues.Count ?? 0; int batchIssues = extractionIssues + build.Issues.Count + build.UnlocatedCandidates.Count; resultSummaryLabel.Text = batchIssues > 0 - ? $"共 {build.Rows.Count} 个工作日,另显示 {build.UnlocatedCandidates.Count} 条未定位记录;{issueRows} 行及 {extractionIssues + build.Issues.Count} 个批次异常待检查。" - : $"共 {build.Rows.Count} 个工作日,{issueRows} 行待检查。可直接修改单元格,完成后导出 Excel。"; + ? $"共 {build.Rows.Count} 个日期,另显示 {build.UnlocatedCandidates.Count} 条未定位记录;{issueRows} 行及 {extractionIssues + build.Issues.Count} 个批次异常待检查。" + : $"共 {build.Rows.Count} 个日期,{issueRows} 行待检查。可直接修改单元格,完成后导出 Excel。"; revalidateButton.Enabled = _editableRows.Count > 0 && !_busy; exportButton.Enabled = _editableRows.Count > 0 && !_busy; scheduleGrid.ClearSelection(); @@ -629,7 +633,11 @@ private void monthPicker_ValueChanged(object? sender, EventArgs e) try { - _lastBuild = _scheduleService.Build(monthPicker.Value.Year, monthPicker.Value.Month, _lastExtraction.Candidates); + _lastBuild = _scheduleService.Build( + monthPicker.Value.Year, + monthPicker.Value.Month, + _lastExtraction.Candidates, + alignOcrRowsToCalendar: true); CaptureDuplicateCandidates(_lastBuild, replace: true); BindBuildResult(_lastBuild); _appliedMonth = FirstDayOfMonth(monthPicker.Value); @@ -773,9 +781,8 @@ private string FormatBatchDiagnostics(ScheduleExtractionResult extraction, Sched StringBuilder builder = new(); builder.AppendLine($"候选记录:{extraction.Candidates.Count}"); builder.AppendLine($"未分配 OCR 项:{extraction.UnassignedTokens.Count}"); - builder.AppendLine($"目标工作日:{build.Rows.Count}"); + builder.AppendLine($"目标日期:{build.Rows.Count}"); builder.AppendLine($"未定位/跨月记录:{build.UnlocatedCandidates.Count}"); - builder.AppendLine($"已排除周末记录:{build.WeekendCandidates.Count}"); builder.AppendLine($"同日重复候选:{_duplicateCandidatesForReview.Count}"); IEnumerable batchIssues = extraction.Issues.Concat(build.Issues); @@ -938,7 +945,7 @@ private static decimal NormalizeColumnSetting(int value, int fallback) => _ => null, }; - private static Size ReadImageSize(string path) + internal static Size ReadImageSize(string path) { using FileStream stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); using Image image = Image.FromStream(stream, useEmbeddedColorManagement: false, validateImageData: false); From 32fa20625299e0861fb371054494386a23f1c3a4 Mon Sep 17 00:00:00 2001 From: "XS-202604101948\\Administrator" <1255317579@qq.com> Date: Wed, 5 Aug 2026 02:31:04 +0800 Subject: [PATCH 06/14] Add end-to-end schedule image diagnostics --- RapidOCRWinform/Program.cs | 111 +++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) diff --git a/RapidOCRWinform/Program.cs b/RapidOCRWinform/Program.cs index 567625e..21c4c04 100644 --- a/RapidOCRWinform/Program.cs +++ b/RapidOCRWinform/Program.cs @@ -1,4 +1,7 @@ using RapidOCRLib; +using RapidOCRLib.Models; +using RapidOCRSchedule.Core; +using System.Globalization; namespace RapidOCRWinform { @@ -19,6 +22,11 @@ static int Main(string[] args) return RunSelfTestAsync().GetAwaiter().GetResult(); } + if (args.Length > 1 && string.Equals(args[0], "--diagnose-images", StringComparison.OrdinalIgnoreCase)) + { + return DiagnoseImagesAsync(args.Skip(1)).GetAwaiter().GetResult(); + } + Application.Run(new FormOcr()); return 0; } @@ -62,5 +70,108 @@ await engine.InitModels( return 1; } } + + private static async Task DiagnoseImagesAsync(IEnumerable imagePaths) + { + try + { + string[] arguments = imagePaths.ToArray(); + string? targetArgument = arguments.FirstOrDefault(static argument => + argument.StartsWith("--target=", StringComparison.OrdinalIgnoreCase)); + DateOnly? target = null; + if (targetArgument is not null) + { + string value = targetArgument[(targetArgument.IndexOf('=') + 1)..]; + if (!DateOnly.TryParseExact( + $"{value}-01", + "yyyy-MM-dd", + CultureInfo.InvariantCulture, + DateTimeStyles.None, + out DateOnly parsedTarget)) + { + throw new ArgumentException($"Invalid diagnostic target month: {value}"); + } + + target = parsedTarget; + } + + string[] paths = arguments + .Where(static argument => !argument.StartsWith("--target=", StringComparison.OrdinalIgnoreCase)) + .Select(Path.GetFullPath) + .ToArray(); + string modelDirectory = EmbeddedModelProvider.EnsureExtracted(); + using OcrLite engine = new(); + int threadCount = Math.Max(1, (int)Math.Ceiling(Environment.ProcessorCount * 0.7)); + await engine.InitModels( + Path.Combine(modelDirectory, "ch_PP-OCRv5_mobile_det.onnx"), + Path.Combine(modelDirectory, "ch_ppocr_mobile_v2.0_cls_infer.onnx"), + Path.Combine(modelDirectory, "ch_PP-OCRv5_rec_mobile_infer.onnx"), + Path.Combine(modelDirectory, "ppocrv5_dict.txt"), + threadCount); + + List tokens = []; + foreach (string path in paths) + { + Size imageSize = FormOcr.ReadImageSize(path); + OcrResult? result = null; + try + { + result = await engine.DetectAsync( + path, + FormOcr.OcrPadding, + FormOcr.OcrMaximumSideLength, + FormOcr.OcrBoxScoreThreshold, + FormOcr.OcrBoxThreshold, + FormOcr.OcrUnclipRatio, + doAngle: false, + mostAngle: false); + OcrToken[] imageTokens = FormOcr.ConvertTokens(path, imageSize, result).ToArray(); + tokens.AddRange(imageTokens); + foreach (OcrToken token in imageTokens.OrderBy(static token => token.Bounds.CenterY).ThenBy(static token => token.Bounds.CenterX)) + { + Console.WriteLine( + $"TOKEN|{Path.GetFileName(path)}|{token.Bounds.CenterX:F4}|{token.Bounds.CenterY:F4}|{token.Confidence:F4}|{token.Text}"); + } + } + finally + { + result?.BoxImg?.Dispose(); + } + } + + ScheduleExtractionResult extraction = new ScheduleExtractor().Extract(tokens); + foreach (ScheduleCandidate candidate in extraction.Candidates.OrderBy(static candidate => candidate.SourceImageId).ThenBy(static candidate => candidate.RowCenterY)) + { + Console.WriteLine( + $"CANDIDATE|{Path.GetFileName(candidate.SourceImageId)}|{candidate.RowCenterY:F4}|{candidate.RawDateText}|{candidate.RawWeekdayText}|{candidate.Role1}|{candidate.Role2}|{candidate.Role3}|{candidate.Role4}"); + } + + if (target is DateOnly targetMonth) + { + ScheduleBuildResult build = new ScheduleService().Build( + targetMonth.Year, + targetMonth.Month, + extraction.Candidates, + alignOcrRowsToCalendar: true); + foreach (ScheduleRow row in build.Rows.OrderBy(static row => row.Date)) + { + Console.WriteLine( + $"ROW|{row.RawDateText}|{row.Weekday}|{row.Role1}|{row.Role2}|{row.Role3}|{row.Role4}|missing={row.IsMissingPlaceholder}"); + } + + Console.WriteLine( + $"BUILD|rows={build.Rows.Count}|unlocated={build.UnlocatedCandidates.Count}|weekendsExcluded={build.WeekendCandidates.Count}"); + } + + Console.WriteLine( + $"SUMMARY|tokens={tokens.Count}|candidates={extraction.Candidates.Count}|unassigned={extraction.UnassignedTokens.Count}"); + return 0; + } + catch (Exception exception) + { + Console.Error.WriteLine(exception); + return 1; + } + } } } From c59e98eabdfbc2b68ec049fa894d57ad51c31c7c Mon Sep 17 00:00:00 2001 From: "XS-202604101948\\Administrator" <1255317579@qq.com> Date: Wed, 5 Aug 2026 02:49:44 +0800 Subject: [PATCH 07/14] Ignore local schedule generator --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 1a0f44e..7977c52 100644 --- a/.gitignore +++ b/.gitignore @@ -167,5 +167,8 @@ Test # Local publish artifacts dist/ +# Local standalone schedule generator +/schedule_generator/ + # Keep the reproducible standalone Windows publish profile in source control. !RapidOCRWinform/Properties/PublishProfiles/StandaloneWinX64.pubxml From 82c3a5c993731156be07bf63f622512dd08f12ce Mon Sep 17 00:00:00 2001 From: "XS-202604101948\\Administrator" <1255317579@qq.com> Date: Wed, 5 Aug 2026 03:07:31 +0800 Subject: [PATCH 08/14] Add persistent employee roster configuration --- RapidOCRSchedule.Core/EmployeeNameResolver.cs | 232 ++++++++++++++++++ .../EmployeeNameResolverTests.cs | 55 +++++ RapidOCRWinform/AppSettings.cs | 19 +- RapidOCRWinform/EmployeeRosterDialog.cs | 119 +++++++++ RapidOCRWinform/FormOcr.Designer.cs | 35 ++- RapidOCRWinform/FormOcr.cs | 111 +++++++++ 6 files changed, 561 insertions(+), 10 deletions(-) create mode 100644 RapidOCRSchedule.Core/EmployeeNameResolver.cs create mode 100644 RapidOCRSchedule.Tests/EmployeeNameResolverTests.cs create mode 100644 RapidOCRWinform/EmployeeRosterDialog.cs diff --git a/RapidOCRSchedule.Core/EmployeeNameResolver.cs b/RapidOCRSchedule.Core/EmployeeNameResolver.cs new file mode 100644 index 0000000..c1ab015 --- /dev/null +++ b/RapidOCRSchedule.Core/EmployeeNameResolver.cs @@ -0,0 +1,232 @@ +using System.Runtime.InteropServices; +using System.Runtime.Versioning; +using System.Text; + +namespace RapidOCRSchedule.Core; + +public sealed class EmployeeNameResolver +{ + private const uint SimplifiedChineseMapFlag = 0x02000000; + private readonly IReadOnlyList _entries; + private readonly Dictionary _exactNames; + + public EmployeeNameResolver(IEnumerable? employeeNames) + { + IReadOnlyList normalizedNames = NormalizeEmployeeNames(employeeNames); + _entries = normalizedNames + .Select(static name => new EmployeeNameEntry(name, Canonicalize(name))) + .ToArray(); + _exactNames = _entries.ToDictionary(static entry => entry.CanonicalName, static entry => entry.Name, StringComparer.Ordinal); + } + + public static IReadOnlyList NormalizeEmployeeNames(IEnumerable? employeeNames) + { + if (employeeNames is null) + { + return []; + } + + List normalizedNames = []; + HashSet seen = new(StringComparer.Ordinal); + foreach (string? employeeName in employeeNames) + { + string normalized = ToSimplifiedChinese(employeeName).Trim(); + string canonical = Canonicalize(normalized); + if (canonical.Length == 0 || !seen.Add(canonical)) + { + continue; + } + + normalizedNames.Add(normalized); + } + + return normalizedNames; + } + + public string Resolve(string? recognizedName) + { + string simplified = ToSimplifiedChinese(recognizedName).Trim(); + string canonical = Canonicalize(simplified); + if (canonical.Length == 0) + { + return string.Empty; + } + + if (_exactNames.TryGetValue(canonical, out string? exactName)) + { + return exactName; + } + + // Fuzzy correction is deliberately conservative. Chinese employee names with + // fewer than three characters are too easy to confuse, and matching surnames + // must agree. Ambiguous one-edit matches are left unchanged for manual review. + if (canonical.Length < 3) + { + return simplified; + } + + string? uniqueMatch = null; + foreach (EmployeeNameEntry entry in _entries) + { + if (entry.CanonicalName.Length < 3 || + entry.CanonicalName[0] != canonical[0] || + Math.Abs(entry.CanonicalName.Length - canonical.Length) > 1 || + EditDistanceAtMostOne(canonical, entry.CanonicalName) > 1) + { + continue; + } + + if (uniqueMatch is not null) + { + return simplified; + } + + uniqueMatch = entry.Name; + } + + return uniqueMatch ?? simplified; + } + + public static string ToSimplifiedChinese(string? value) + { + string normalized = (value ?? string.Empty).Normalize(NormalizationForm.FormKC); + if (normalized.Length == 0) + { + return string.Empty; + } + + if (!OperatingSystem.IsWindows()) + { + return normalized; + } + + try + { + return MapToSimplifiedChinese(normalized); + } + catch (InvalidOperationException) + { + // Name-list matching still provides a safe one-edit fallback if Windows + // cannot perform the simplified-Chinese conversion on this installation. + return normalized; + } + } + + [SupportedOSPlatform("windows")] + private static string MapToSimplifiedChinese(string value) + { + int requiredLength = LCMapStringEx( + "zh-CN", + SimplifiedChineseMapFlag, + value, + -1, + null, + 0, + IntPtr.Zero, + IntPtr.Zero, + IntPtr.Zero); + if (requiredLength == 0) + { + throw new InvalidOperationException($"Windows 中文转换失败,错误码:{Marshal.GetLastWin32Error()}。"); + } + + StringBuilder destination = new(requiredLength); + int writtenLength = LCMapStringEx( + "zh-CN", + SimplifiedChineseMapFlag, + value, + -1, + destination, + destination.Capacity, + IntPtr.Zero, + IntPtr.Zero, + IntPtr.Zero); + if (writtenLength == 0) + { + throw new InvalidOperationException($"Windows 中文转换失败,错误码:{Marshal.GetLastWin32Error()}。"); + } + + return destination.ToString(); + } + + [DllImport("Kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)] + [SupportedOSPlatform("windows")] + private static extern int LCMapStringEx( + string localeName, + uint mapFlags, + string source, + int sourceLength, + StringBuilder? destination, + int destinationLength, + IntPtr versionInformation, + IntPtr reserved, + IntPtr sortHandle); + + private static string Canonicalize(string value) + { + StringBuilder builder = new(value.Length); + foreach (char character in value.Normalize(NormalizationForm.FormKC)) + { + if (!char.IsWhiteSpace(character)) + { + builder.Append(character); + } + } + + return builder.ToString(); + } + + private static int EditDistanceAtMostOne(string left, string right) + { + if (left.Equals(right, StringComparison.Ordinal)) + { + return 0; + } + + if (Math.Abs(left.Length - right.Length) > 1) + { + return 2; + } + + int leftIndex = 0; + int rightIndex = 0; + int edits = 0; + while (leftIndex < left.Length && rightIndex < right.Length) + { + if (left[leftIndex] == right[rightIndex]) + { + leftIndex++; + rightIndex++; + continue; + } + + if (++edits > 1) + { + return edits; + } + + if (left.Length > right.Length) + { + leftIndex++; + } + else if (right.Length > left.Length) + { + rightIndex++; + } + else + { + leftIndex++; + rightIndex++; + } + } + + if (leftIndex < left.Length || rightIndex < right.Length) + { + edits++; + } + + return edits; + } + + private sealed record EmployeeNameEntry(string Name, string CanonicalName); +} diff --git a/RapidOCRSchedule.Tests/EmployeeNameResolverTests.cs b/RapidOCRSchedule.Tests/EmployeeNameResolverTests.cs new file mode 100644 index 0000000..6b7bfbf --- /dev/null +++ b/RapidOCRSchedule.Tests/EmployeeNameResolverTests.cs @@ -0,0 +1,55 @@ +using RapidOCRSchedule.Core; + +namespace RapidOCRSchedule.Tests; + +public sealed class EmployeeNameResolverTests +{ + [Fact] + public void Resolve_ConvertsTraditionalNameToConfiguredSimplifiedName() + { + EmployeeNameResolver resolver = new(["姚旭杰"]); + + string resolved = resolver.Resolve("姚旭傑"); + + Assert.Equal("姚旭杰", resolved); + } + + [Fact] + public void Resolve_UsesUniqueOneEditRosterMatch() + { + EmployeeNameResolver resolver = new(["姚旭杰"]); + + string resolved = resolver.Resolve("姚旭桀"); + + Assert.Equal("姚旭杰", resolved); + } + + [Fact] + public void Resolve_DoesNotGuessWhenOneEditMatchIsAmbiguous() + { + EmployeeNameResolver resolver = new(["姚旭杰", "姚旭洁"]); + + string resolved = resolver.Resolve("姚旭桀"); + + Assert.Equal("姚旭桀", resolved); + } + + [Fact] + public void Resolve_DoesNotFuzzyMatchTwoCharacterName() + { + EmployeeNameResolver resolver = new(["张三"]); + + string resolved = resolver.Resolve("张山"); + + Assert.Equal("张山", resolved); + } + + [Fact] + public void NormalizeEmployeeNames_SimplifiesTrimsAndRemovesDuplicates() + { + IReadOnlyList names = EmployeeNameResolver.NormalizeEmployeeNames( + [" 姚旭傑 ", "姚旭杰", "", " 张三 "]); + + Assert.Equal(["姚旭杰", "张三"], names); + } +} diff --git a/RapidOCRWinform/AppSettings.cs b/RapidOCRWinform/AppSettings.cs index 34c5e0e..d82c275 100644 --- a/RapidOCRWinform/AppSettings.cs +++ b/RapidOCRWinform/AppSettings.cs @@ -8,6 +8,8 @@ internal sealed class AppSettings public int Role4Column { get; set; } = -1; + public List EmployeeNames { get; set; } = []; + public static AppSettings Load() { try @@ -24,22 +26,27 @@ public static AppSettings Load() } public void Save() + { + _ = TrySave(out _); + } + + public bool TrySave(out string? errorMessage) { try { string path = GetSettingsPath(); Directory.CreateDirectory(Path.GetDirectoryName(path)!); File.WriteAllText(path, JsonSerializer.Serialize(this, new JsonSerializerOptions { WriteIndented = true })); + errorMessage = null; + return true; } - catch + catch (Exception exception) { - // Settings are a convenience only; inability to persist them must not block OCR. + errorMessage = exception.Message; + return false; } } private static string GetSettingsPath() - { - string localData = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); - return Path.Combine(localData, "RapidOCRSchedule", "settings.json"); - } + => Path.Combine(AppContext.BaseDirectory, "config", "settings.json"); } diff --git a/RapidOCRWinform/EmployeeRosterDialog.cs b/RapidOCRWinform/EmployeeRosterDialog.cs new file mode 100644 index 0000000..555c017 --- /dev/null +++ b/RapidOCRWinform/EmployeeRosterDialog.cs @@ -0,0 +1,119 @@ +using RapidOCRSchedule.Core; + +namespace RapidOCRWinform; + +internal sealed class EmployeeRosterDialog : Form +{ + private readonly TextBox _namesTextBox = new(); + private readonly Label _countLabel = new(); + + public EmployeeRosterDialog(IEnumerable employeeNames) + { + EmployeeNames = EmployeeNameResolver.NormalizeEmployeeNames(employeeNames); + InitializeDialog(); + _namesTextBox.Lines = EmployeeNames.ToArray(); + UpdateCount(); + } + + public IReadOnlyList EmployeeNames { get; private set; } + + private void InitializeDialog() + { + Text = "员工名单配置"; + StartPosition = FormStartPosition.CenterParent; + ClientSize = new Size(520, 520); + MinimumSize = new Size(440, 400); + Font = new Font("Microsoft YaHei UI", 9F); + ShowIcon = false; + ShowInTaskbar = false; + + TableLayoutPanel layout = new() + { + Dock = DockStyle.Fill, + Padding = new Padding(16), + ColumnCount = 1, + RowCount = 4, + }; + layout.RowStyles.Add(new RowStyle(SizeType.AutoSize)); + layout.RowStyles.Add(new RowStyle(SizeType.Percent, 100F)); + layout.RowStyles.Add(new RowStyle(SizeType.AutoSize)); + layout.RowStyles.Add(new RowStyle(SizeType.AutoSize)); + + Label instructions = new() + { + AutoSize = true, + Dock = DockStyle.Fill, + Margin = new Padding(0, 0, 0, 10), + Text = "每行填写一个员工姓名,建议填写正式的简体姓名。\n识别结果只有在名单中存在唯一匹配时才会自动纠正。", + }; + + _namesTextBox.AcceptsReturn = true; + _namesTextBox.AcceptsTab = false; + _namesTextBox.Dock = DockStyle.Fill; + _namesTextBox.Multiline = true; + _namesTextBox.ScrollBars = ScrollBars.Vertical; + _namesTextBox.WordWrap = false; + _namesTextBox.Font = new Font("Microsoft YaHei UI", 11F); + _namesTextBox.TextChanged += (_, _) => UpdateCount(); + + _countLabel.AutoSize = true; + _countLabel.Dock = DockStyle.Fill; + _countLabel.ForeColor = Color.DimGray; + _countLabel.Margin = new Padding(0, 8, 0, 8); + + FlowLayoutPanel buttons = new() + { + AutoSize = true, + Dock = DockStyle.Fill, + FlowDirection = FlowDirection.RightToLeft, + WrapContents = false, + Margin = Padding.Empty, + }; + + Button saveButton = new() + { + Text = "保存", + Size = new Size(104, 36), + Margin = new Padding(8, 0, 0, 0), + }; + saveButton.Click += SaveButton_Click; + + Button cancelButton = new() + { + Text = "取消", + DialogResult = DialogResult.Cancel, + Size = new Size(104, 36), + Margin = Padding.Empty, + }; + + buttons.Controls.Add(saveButton); + buttons.Controls.Add(cancelButton); + layout.Controls.Add(instructions, 0, 0); + layout.Controls.Add(_namesTextBox, 0, 1); + layout.Controls.Add(_countLabel, 0, 2); + layout.Controls.Add(buttons, 0, 3); + Controls.Add(layout); + + AcceptButton = saveButton; + CancelButton = cancelButton; + } + + private void SaveButton_Click(object? sender, EventArgs e) + { + EmployeeNames = ParseEmployeeNames(); + DialogResult = DialogResult.OK; + Close(); + } + + private void UpdateCount() + { + int rawCount = _namesTextBox.Lines.Count(static line => !string.IsNullOrWhiteSpace(line)); + int normalizedCount = ParseEmployeeNames().Count; + _countLabel.Text = rawCount == normalizedCount + ? $"共 {normalizedCount} 人;保存后关闭软件仍会保留。" + : $"有效姓名 {normalizedCount} 人;已自动忽略空行或重复姓名。"; + } + + private IReadOnlyList ParseEmployeeNames() => + EmployeeNameResolver.NormalizeEmployeeNames(_namesTextBox.Lines); +} diff --git a/RapidOCRWinform/FormOcr.Designer.cs b/RapidOCRWinform/FormOcr.Designer.cs index 95a2fd8..1c798f1 100644 --- a/RapidOCRWinform/FormOcr.Designer.cs +++ b/RapidOCRWinform/FormOcr.Designer.cs @@ -35,6 +35,8 @@ private void InitializeComponent() modelStatusLabel = new Label(); initializeModelButton = new Button(); settingsGroupBox = new GroupBox(); + employeeRosterStatusLabel = new Label(); + employeeRosterButton = new Button(); layoutHintLabel = new Label(); role4ColumnNumeric = new NumericUpDown(); role4ColumnLabel = new Label(); @@ -205,7 +207,7 @@ private void InitializeComponent() processButton.FlatStyle = FlatStyle.Flat; processButton.Font = new Font("Microsoft YaHei UI", 11F, FontStyle.Bold); processButton.ForeColor = Color.White; - processButton.Location = new Point(15, 610); + processButton.Location = new Point(15, 662); processButton.Name = "processButton"; processButton.Size = new Size(348, 48); processButton.TabIndex = 3; @@ -218,7 +220,7 @@ private void InitializeComponent() modelGroupBox.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; modelGroupBox.Controls.Add(modelStatusLabel); modelGroupBox.Controls.Add(initializeModelButton); - modelGroupBox.Location = new Point(15, 512); + modelGroupBox.Location = new Point(15, 564); modelGroupBox.Name = "modelGroupBox"; modelGroupBox.Size = new Size(348, 84); modelGroupBox.TabIndex = 2; @@ -248,6 +250,8 @@ private void InitializeComponent() // settingsGroupBox // settingsGroupBox.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; + settingsGroupBox.Controls.Add(employeeRosterStatusLabel); + settingsGroupBox.Controls.Add(employeeRosterButton); settingsGroupBox.Controls.Add(layoutHintLabel); settingsGroupBox.Controls.Add(role4ColumnNumeric); settingsGroupBox.Controls.Add(role4ColumnLabel); @@ -257,11 +261,32 @@ private void InitializeComponent() settingsGroupBox.Controls.Add(targetMonthLabel); settingsGroupBox.Location = new Point(15, 324); settingsGroupBox.Name = "settingsGroupBox"; - settingsGroupBox.Size = new Size(348, 174); + settingsGroupBox.Size = new Size(348, 226); settingsGroupBox.TabIndex = 1; settingsGroupBox.TabStop = false; settingsGroupBox.Text = "整理设置"; - // + // + // employeeRosterStatusLabel + // + employeeRosterStatusLabel.AutoEllipsis = true; + employeeRosterStatusLabel.ForeColor = Color.DimGray; + employeeRosterStatusLabel.Location = new Point(14, 185); + employeeRosterStatusLabel.Name = "employeeRosterStatusLabel"; + employeeRosterStatusLabel.Size = new Size(205, 25); + employeeRosterStatusLabel.TabIndex = 7; + employeeRosterStatusLabel.Text = "员工名单:尚未配置"; + employeeRosterStatusLabel.TextAlign = ContentAlignment.MiddleLeft; + // + // employeeRosterButton + // + employeeRosterButton.Location = new Point(228, 178); + employeeRosterButton.Name = "employeeRosterButton"; + employeeRosterButton.Size = new Size(104, 34); + employeeRosterButton.TabIndex = 8; + employeeRosterButton.Text = "配置名单…"; + employeeRosterButton.UseVisualStyleBackColor = true; + employeeRosterButton.Click += employeeRosterButton_Click; + // // layoutHintLabel // layoutHintLabel.ForeColor = Color.DimGray; @@ -706,6 +731,8 @@ private void InitializeComponent() private NumericUpDown role4ColumnNumeric; private Label role4ColumnLabel; private Label layoutHintLabel; + private Button employeeRosterButton; + private Label employeeRosterStatusLabel; private GroupBox modelGroupBox; private Button initializeModelButton; private Label modelStatusLabel; diff --git a/RapidOCRWinform/FormOcr.cs b/RapidOCRWinform/FormOcr.cs index 98aa2ea..20845fb 100644 --- a/RapidOCRWinform/FormOcr.cs +++ b/RapidOCRWinform/FormOcr.cs @@ -30,6 +30,7 @@ public partial class FormOcr : Form private readonly ScheduleExtractor _extractor = new(); private readonly ScheduleService _scheduleService = new(); private readonly List _duplicateCandidatesForReview = []; + private readonly List _employeeNameCorrections = []; private OcrLite? _ocrEngine; private ScheduleExtractionResult? _lastExtraction; @@ -58,6 +59,10 @@ private async void FormOcr_Load(object? sender, EventArgs e) monthPicker.Value = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1); role3ColumnNumeric.Value = NormalizeColumnSetting(_settings.Role3Column, -2); role4ColumnNumeric.Value = NormalizeColumnSetting(_settings.Role4Column, -1); + _settings.EmployeeNames = EmployeeNameResolver + .NormalizeEmployeeNames(_settings.EmployeeNames ?? []) + .ToList(); + UpdateEmployeeRosterStatus(); RememberAppliedSettings(); _loaded = true; UpdateActionState(); @@ -289,6 +294,7 @@ private void ExtractAndBind() { TableLayoutProfile profile = CreateLayoutProfile(); _lastExtraction = _extractor.Extract(_images.SelectMany(static image => image.Tokens), profile); + ApplyEmployeeNameCorrections(_lastExtraction.Candidates); _lastBuild = _scheduleService.Build( monthPicker.Value.Year, monthPicker.Value.Month, @@ -301,6 +307,95 @@ private void ExtractAndBind() UpdateDiagnosticsForSelection(); } + private void employeeRosterButton_Click(object? sender, EventArgs e) + { + using EmployeeRosterDialog dialog = new(_settings.EmployeeNames ?? []); + if (dialog.ShowDialog(this) != DialogResult.OK) + { + return; + } + + List previousNames = _settings.EmployeeNames ?? []; + List updatedNames = dialog.EmployeeNames.ToList(); + _settings.EmployeeNames = updatedNames; + if (!_settings.TrySave(out string? errorMessage)) + { + _settings.EmployeeNames = previousNames; + MessageBox.Show( + this, + $"员工名单无法保存,原配置未更改:\n{errorMessage}", + "保存失败", + MessageBoxButtons.OK, + MessageBoxIcon.Error); + return; + } + + UpdateEmployeeRosterStatus(); + if (_lastExtraction is not null && !_hasManualEdits) + { + try + { + ExtractAndBind(); + SetStatus($"员工名单已保存({updatedNames.Count} 人),当前结果已重新匹配"); + } + catch (Exception exception) + { + SetStatus($"员工名单已保存({updatedNames.Count} 人),下次识别时生效"); + MessageBox.Show( + this, + $"名单已保存,但无法重新整理当前结果:\n{exception.Message}", + "重新匹配失败", + MessageBoxButtons.OK, + MessageBoxIcon.Warning); + } + } + else + { + string suffix = _hasManualEdits ? ";为保留手工修改,将在下次识别时生效" : string.Empty; + SetStatus($"员工名单已保存({updatedNames.Count} 人){suffix}"); + } + } + + private void ApplyEmployeeNameCorrections(IEnumerable candidates) + { + EmployeeNameResolver resolver = new(_settings.EmployeeNames ?? []); + _employeeNameCorrections.Clear(); + foreach (ScheduleCandidate candidate in candidates) + { + candidate.Role1 = ResolveEmployeeName(candidate, nameof(candidate.Role1), candidate.Role1, resolver); + candidate.Role2 = ResolveEmployeeName(candidate, nameof(candidate.Role2), candidate.Role2, resolver); + candidate.Role3 = ResolveEmployeeName(candidate, nameof(candidate.Role3), candidate.Role3, resolver); + candidate.Role4 = ResolveEmployeeName(candidate, nameof(candidate.Role4), candidate.Role4, resolver); + } + } + + private string ResolveEmployeeName( + ScheduleCandidate candidate, + string role, + string recognizedName, + EmployeeNameResolver resolver) + { + string correctedName = resolver.Resolve(recognizedName); + if (!string.Equals(recognizedName.Trim(), correctedName, StringComparison.Ordinal)) + { + _employeeNameCorrections.Add(new EmployeeNameCorrection( + candidate.SourceImageId, + candidate.RawDateText, + role, + recognizedName.Trim(), + correctedName)); + } + + return correctedName; + } + + private void UpdateEmployeeRosterStatus() + { + int count = _settings.EmployeeNames?.Count ?? 0; + employeeRosterStatusLabel.Text = count > 0 ? $"员工名单:已配置 {count} 人" : "员工名单:尚未配置"; + employeeRosterStatusLabel.ForeColor = count > 0 ? Color.DarkGreen : Color.DimGray; + } + private TableLayoutProfile CreateLayoutProfile() => new() { Role3Column = Decimal.ToInt32(role3ColumnNumeric.Value), @@ -784,6 +879,13 @@ private string FormatBatchDiagnostics(ScheduleExtractionResult extraction, Sched builder.AppendLine($"目标日期:{build.Rows.Count}"); builder.AppendLine($"未定位/跨月记录:{build.UnlocatedCandidates.Count}"); builder.AppendLine($"同日重复候选:{_duplicateCandidatesForReview.Count}"); + builder.AppendLine($"姓名自动规范:{_employeeNameCorrections.Count}"); + + foreach (EmployeeNameCorrection correction in _employeeNameCorrections) + { + builder.AppendLine( + $"[姓名规范] {Path.GetFileName(correction.SourceImageId)} {correction.RawDateText} {correction.Role}: “{correction.OriginalName}” → “{correction.CorrectedName}”"); + } IEnumerable batchIssues = extraction.Issues.Concat(build.Issues); foreach (ScheduleIssue issue in batchIssues) @@ -842,6 +944,7 @@ private void ClearResults() _lastBuild = null; _batchDiagnostics = string.Empty; _duplicateCandidatesForReview.Clear(); + _employeeNameCorrections.Clear(); _editableRows.Clear(); _rowBinding.ResetBindings(false); resultSummaryLabel.Text = "尚未整理。异常单元格将用浅红色标记,可直接双击修改。"; @@ -902,6 +1005,7 @@ private void SetBusy(bool busy, string? message = null) monthPicker.Enabled = !busy; role3ColumnNumeric.Enabled = !busy; role4ColumnNumeric.Enabled = !busy; + employeeRosterButton.Enabled = !busy; scheduleGrid.ReadOnly = busy; if (message is not null) { @@ -945,6 +1049,13 @@ private static decimal NormalizeColumnSetting(int value, int fallback) => _ => null, }; + private sealed record EmployeeNameCorrection( + string SourceImageId, + string RawDateText, + string Role, + string OriginalName, + string CorrectedName); + internal static Size ReadImageSize(string path) { using FileStream stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); From 17366d5657913fe32d94f7898b4c4ac4a89a3bae Mon Sep 17 00:00:00 2001 From: "XS-202604101948\\Administrator" <1255317579@qq.com> Date: Wed, 5 Aug 2026 03:13:17 +0800 Subject: [PATCH 09/14] Rename Windows app to Mobao and add icon --- Assets/mobao-avatar.png | Bin 0 -> 1764570 bytes Assets/mobao.ico | Bin 0 -> 144256 bytes RapidOCRWinform/RapidOCRWinform.csproj | 5 ++++- 3 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 Assets/mobao-avatar.png create mode 100644 Assets/mobao.ico diff --git a/Assets/mobao-avatar.png b/Assets/mobao-avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..fe153356a013e65d9cbe61d084c27031de4eb905 GIT binary patch literal 1764570 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 z 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

+&oM-;Mj9%NsZ)^P&>cXE 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 hIbmPs#w1puYZ zp5R#|Rt*3ch;zL|mmD^g2t2EVbWkJ#@~gHE$Q-GZ)MDTquj{YNALYksY=#%G=x8m_ z6=Z~a0M6>h->J%aK=t%7+;_GZd!=Z1XPR^e5M)I>k!-jaba1YA6sRN96&VIseI;(U z#|}hCY>%=o1p;Z1kAvi@ELcUe7@)%w_wKDOWh4^_afT^WiY_DeE*w;|Op=x!K#T{y z6XoV!`*wInj6a~xgd-LIXz<7h%RGGX^4|Wp|Hm$f```W4L;EKbgJW?S0KfRe+Jw!j z0&G0%st7GiKTs0t&?Z3@!aUVcnGYBsk(?D#eWV51bKT3e5vpAQ4(S0Zs}?mw8JCR=JJs8YK*Fw^QEE&32U{^mwGAui%ICTt zq1+0Aq^T4si6Xs^VKFmkwCr0T;w&4e#}RB40WsH$kjRr{CxL2Kt!FAVcUXenc%&(> zQV(^v-C3FvFmf;OtLT>jAm%H0F=l)d(}Yzi9pHRyb*eKI3r8$?*3jK+YIp-ZATZ+&O7KWl| z6cah5_QqqceO-=o(0{1`nEG|K!S=<)2gEQjuw70+{O)J}@o)b6v*Y2*zyB`)-9NuO zJw1N)>t8>vde0qHK&9}O3(=32rFN_I5RNMo2^Pp7`FF#y8>j;wA3EKIF6xG&d>Sx*i$JH#wYd^tMP+^oXV zn^WzT45@Chh_k68nk1xsw{rRP$&11mKkiIKRTNrymG&1=d0hVkOa;0*&C7)%n3l$d%~5eX%;@PIMm#o?JhVW?^~V8=ijU}W%+;!+h!13<6BU@GP0f~kQ3 zle~nN#4$Lynl-y?1wa27BHoF-gd4M%0n2$W7cJEo1cx-{B53 z6XC{eW?d~Z5F*XPA(JB;&M{3Q#y!WMAXI`JF(#Aq(S}qLle-atQb8?Ph7?0q^MM!} zlaurul4;XCZJTER7p;co;rPr{Rh_7{=9*J#!-_^OU7AFOoXL@OX(RMZ^D?NVadu<( zGQqSnONvFr&NpKbx9Ic);I1Z<9FB*+t;5{K-4P+`VnE>RwNBP%+cqKb^oj&R-!^k& zq9(10L}iLQv~R?Gxt!oB*cO*b_(1A zcYW4bA=B`MsS^qgCf`eG z9rxHEH@{c8R)n1(89BGK0$E)c#Ap26l)ol=iQs_=>Je#!s~9!HT}f?-eZo9fP7IWn zT?W7YkB9}ZA(H+<|0+?;eYi<5MEsAac?J`h(WBnYqk6G|c&gwnsk*AOtJNz54X>P$ zIt5D4mEp{;qjD#4dSbGJkelbYS96d@yID1qj`p$gew++Qc)Q#dnLJAnNCj;$;^yRf zqG17ySZ7QqOtaaYK~0CyxZoJzDv|<1`iQPZ^!z)x$X7L;-bciB}7s6VY@8Pw*Av6(9b1 z{qH|Dz7DS?vuPVaR7!Zvj&-|w7 zU-fj&Nq!9OXRN2Y!NR@_-fQ4Ix+Pa|^L_b{;(H?;;RKP9T#Z=p7RX_+R=ETKIK|~| z9(bLyG0E3s!{s`1vgvi3nN`S^-N3aKrR6q{P_+1>qzH5%9~3JVPKY!7Qi}o)SEa_a zvJTHedyr)HsX1{baYnDQ=iWv5{0NtU5-cqeAwSc0T>3$(JWPOQ^QwDP$yQQD4N~Q} z6~Ft~gmKpys#0DLksG4?##MLgA9pp9=RiKecx7=#$^WI9@N7q{z6ElR0o)mUBcoT8 zD@@2)#K#RSB8XO|iY@j`a>-?RMTPFWP{BA^MFr)40BYtHg(S!*l5xO@1>Lsu)4%%N zpZwil{iSTnumAq<=i}6->D4#izWnCP>-o$?^E}N>&hH;yz5Ld?PEEY)+Be-c>)lPs zy>H!2iE<34C!;`9o0zB5vOW9wlfV3Te=~D?{pKASuII~oU3iM-+1?u9_Vn=n;oaLX zm!^Jre%O{}UDoM%V6w~ka(a4-p{C4@Bw{MMTrTT%nV!$f`MO*$fNJl|NY!FE0e#zg z?*So3WZ+TyP*FQEtC}$1KYLEZ%jLSQYwtatr!?8tJ{_8M>sy}>vMkrj}znLPCIv-EQiKWhD9F8v>1?M!{?AtUoZaijMU=$S&!YahE2F(OYXb~NTW>mHylf-eLW6~HS6s?&^ zdncl3HHnWlwP;_gsEY_NjV!V4VG|I@Gp3}bl&f1c16S4^Zkjkeq+hFL8fK=&d7D{A zT0J@$QW-aQFQBm2nsyT^JMU0eVfGHqDuze~8dt4MH-%%KnyOm2)|d$E8fC`N9+N5} zG;ji$Lkz+!jQ~>3oxnuK)K!BU2yp9FshdD3n4uVlD*`np(!!RiPGk~a%x;lkbWPP| zBMv!nCKe`kb=!JsAO%$G>P^DGrck11deg1k2LYx^?m|MKXcZP=Vm9-swQbwnT$rXd zt?TN@(d7AD2o75NHuDs%p3&GL!op(No}G0r6zL8kVwmP^C*-G%q>!mv3sKByRme(p znC93aR|A{&E<(MN^{yf;G#`%3<w365v^Gf-Gwr>rUU(x}+Tn25TH7`?HoI!y zws>U}x4wP%@b>-t!+d!5{QggV^!XqB=<~1MJpAg-`&VxsFPl0wV#Y)nGDU#s$UOcC z?vQo?sM$7-5MT^0f5cP(gZ42QggpX?FgI;fGW&u3BHFpJDO7RSNSzFxlEae~TB6ZQ z?a|xmDJE3Ky_AN_s|(xRvi=e78n4fT@4Z^9sLWwR$jl>LzvUmZK@<*k$bf9+BrrnU zD#i%|ma<8Jn}_x`i@Oz&OAG4`*OVX`nbZ7yrs{IaPKS!vhj)wrr|R=6ZQ-J9@~{x+ zh>f~u4;!IK*O>yg@i|B}1fnRers_c7k(DYUEKFnp6izNIJwhf&q0-^j3*UOaF&sxy zy%eq*L_@C7X$1U9g+?+gGhu!Uc}I$LXCcC+168L@86@xiI{XunS1WCyo5VS_L~&*Hfs>E#|7Ais`F32+mOXWgJ_IXE!H%aPq+C2ry##SH&?=~TH*Yd z56GipKnfyKtz2F4ZXdGp->Zza9#Ou zN>`uj83k!X<-mga$itgvE`E#Ba~tM{kZI&-houSI=G*lz{_N*}^Cy4$^zi!S%a_OF z+$MSR=H)lP{&Krs563CAI?qp!Z(e@emt~$Cysyg=?!c@^1m>n7&j~Rc5+j(Wc|IOG zu$ceB&;R&e{EOdx_vV$Eu21Xra-9ycTvsA+6ZgI>%fq{O+q%xjXckX3?!L*NbTnv<(jdf zraDT3p_v+Ux`hM6IPEn{+c4OMD>a)Xa(myz383u3MQ~0`TeJeufnTE zdIWMT@T^%RkXMpQvg4fL<|g85!ZC-{8lp!i?;NxnyH}r`Bf!;fC4g<0b3-LQ;v$3N zwTf!$OzkGdhld-V7tR0S0}Nh7)$YG6)ypyj^wA(T(0RN%s>;*i<>+s!oIT*gJhWH? zA_l+{<}B!C1~7h)fZXv#@sz6?D!p2)w>gQp84GD~wN#bU)qslH?Oxo0qvU6qnX1k$ z9NZRZ^=gvlh&(s_{ATN>gPaX5RWH!s;+}5dndXIaF0Vs!~%f&pnHc z!?SDeAZn8koXF=%qIHuQ-4dxq`;RcIt6Pk6}-+tx*5UJS>5Yqutmw`5`iCr)OfXxI&KpFS~}YeS{1DVj@=QG{nk*0RK# zPziEG>9R2Q2;_y^)Kq)ica{7 zK84X>FQh@)?(QtynwYtoHncXiX`U@~lgNoUEY-jl7*+HbWf4>{4+av8&AzRxw8=rO zHDXJh0rPcP-MzJWo+edy_jOr_c$&n?E~kr3+dNNA+B8q9x@}#%y87X8kk;Cv1&O*` zuN$`MFtaok2GRL?zATsa?%{ZU|GgJ4e)#F9*Wc-Ho-V)q=IyudAD8RqBqS{)g(}wa zD#Z#x1cm@Qs(0W<89#my@I{$h>`sDL9j{cq6{yv^M3v(LXdk`;_nc_!)zKE{DJt!`rt;QmqU!#}cpDIr z8-%hWmC0Sx)p*Qw&HC^HXFe7z4XpPTP3_P)NHMt#@*Nb~9|Iab%>*l({cvlyUp z0~AoFmfpuQ`F^vxssp~>-aS=hhbqyFew_hp_huo`e&p(3YuyLUQTsofKw+UQ5ui-# z?bX2qjE%DMa5vAYuuNJfcOr=;P2(H5$ci9|trz)2+8gMH0NMbM@wkaO#)YMo+507; zASu5$<%;4yvITTxo(UydTMgU=R%4a3UN?)J$3i9SGzCk}bd61@#r?#7%)@e9Nti%9 zo^?8DM@&T_HlB7d6zus~10q(HQVWQ3TgnjFzzk={K&HVQ>;3K5-)`4SYt+rOZy`#uF4x{SQw@#Q?5*B8Fgo7f zPxIZor}M`@_{sm}|N4KsJ04$t^ECrc@1E4VlP{;`?!~b$eK|cX*UPJKzG{=4pDuUL z?(gpJmh+<85BCQcT~3b=ufJU`XH#VnCOO<4nRvNgoiHB`AljA{Fw-tf>veHccU3i2 z4K^;?y1c?QW{#R$kp?1Fm1+L?v(MXn=)G^tN z(xMY(CV8)CYE5yB9~4N%IXuY!UNiQukuVk};>J14hpITI-|iqYm8 zcflML4ITy0aL_&lovL@K2{Tb7IaA3fqV7mbWg%5W{BC9UYiwb3at=Z>Hh*NfH{IM)B2N2eI=JL~N>OSmEQD-cjRlu# zx^Z(BQgsk@)x2^;lvrz5+DnvRrc6x2ran!Rxq-N~*@@ho8<|1c1aO<0nQq$(&~%ul zHgC)I>EWH}mItb)UZ)Q#(-My?6x_lL3UlNIbBoY;ortt)o}v>tmZBw;w3K2OR57RWYsfC@L4l}WUn3+jhXkPa%q%`Dkn4jH0d-m+P z91ibJmtVem{rd6r{_%9$RwDs1TJwPZjuJG%9zSF(LBrc)Pym%c!HAP1jEa&U)d;>-8sFz=O*6(<%`Z$<7`AQf-1X!5#o z6@@v=4wvn7K%_E?`Omc*D5sTrfoGsZYC;Nl81{n1YWYngfU8iSsPvGtIDh0_tI^E8 za?qI+1?qMNQo4;@6Ex)KRCrZ!wJAVR>`4*oYrh2r5qBj*9_z{ETDrk;CpltwfSNS_ zzC(tpY)XHJ8~3;S!4HDKys3CSrF$<#lih&jXvPjVCi((a3<| z8L^vZHZfuMxV(~^0y1Mz>FbJ5GF&XXF(8eiuU=`t! zq-2iD6zyN@%5DrVil`5#d z)v-FYp8Ig*T+kaVU08ISs0?_BV4=!FAK0UDrlJoJ7%A7Zs5=&|Xx81qQRkEzSE%RX zI)Nl6zK+yx4Wsb(ed!djVC|| zVJBwtnyMOcc1ia6u%x%|L|r)&FywcPh7cP0RS?x!-FO!fGH(=dB8Zw@&o5^FKmH&7 z?vH-wCtv;Q7w6OI{@I=N?VE4Ee*N+lxj(xl77ZG~@=IwGl3w!UnuAP~PdF$)8 zc2y-ZN63KI#ej&>=IMAmUKgb{|LI@-+wXq&yTACw-@BW-IvF!vPS^Vv2krg*_~_eq zetOT0ZCQlq?szoQ-dARkN!Ih_>EYeBtuf}_fi^WbHeKDFrM0PT+vadrXO<`)cDJ}T z+@J+Q1gU9uIYQ%19Le$i*)$&vzO9`k?ea8Fv4@$luAK#aU6mUS$1lHD6z7mX6F!*5RGO877nN!_^;IKc83_ljiZ__o{DO! zA618~#rKHsdsImaY|^EYN)ENTGK7aTa(^3yrP=P==V!H zI5#r@Q*EsQ0J9rX@rP)hrfuu$3W7*8?^%85!vUbeDGI%)sfqi53)w%J0w75`5iuf5 z8GWQcJ)U00I-icm!`whm))5DAru$raUCzvcMQ6L_`S~uoJl@TOE70Jn!CFN$Hx) z>3iiz5u`0DiI}#24A4rwQj7=4RGr=lK2grq3$4MuDyVBM5;PIYJ|(J0p{k5Xsu&xN zY>bmi+<)-nAO5xdqyMu1p1M+WY125{7~~UngBW-KCgCK=t-(Hy_5m?vtPk}UuC#ybb2KYx5A!r zUAEtmSIm@VFpqGwx>DjmABE$&8hao*ZkTSKOR@cNfJbT04XiD$Hyk=Bdu8L@HQJ$i zA#w`S2;GuUfn|SP68)7`874P2bjAR&0x2R7ifW3CNTNfnQrC#rr@zyBUh-SMyG3p@RGiYO@Bcot9k9mwJ6P&X(%n=eDPfwrTPygvZ{M{e? zkt2`gG=rmg@?0hM&*Z>-EB9=ckj| zwp`ceAAMwI>$bRio2K=&o=;Efa_KR=o(;fKs)*=%)pd;&t7kcD zJV8Xr7zOQ-y%C{lYG$V9({VZ+@7%rj&P;CB*R4&>x~W*3rEj{e+cfiXy===8REnBP zlPEFjTPI>+b~RNs?NL-ILLNg%w6wL{v+upwzSwC&N;8pR_H z0-2jf$Ba8%;jm(9%H9unx9=dwxRB_+%Tpg`J$E-KH&hb78Fl6d5mkq68M7O_n&v%} z;Pck^6xMBYKuC3EieisUe!|>PI=LSdh7nOnRuB=$T+@~ZO|_HDY4iZ&!D=ULPqr(t zjU^pqR#U;LXx2y;M|u-g95lLMQCw55wbjD~QOvv`14z{*$DhzJ$swjosm~lrQ&sTi z8DhmJB@b=TqSDngOL`J&rb93X<;)dCPIc6Qa4EwfQmFv5sA)`Lb#rxNW>RO-@B8`5;1)kLZ3pf+;aH*ur0wC0|&Y^}9z zUA;;r%}j{hy{iw^Um}(qCqpb$;=mk`zW1#t6w}VNYipq_Rh5EjB5Z0h zv2I-&lam?xwy`uOo(_lga>+Iae-WW#EgG>FN{5L7uR!Z2 zicdt5N!Hb^20pue!JdQ}Z;anmg(8i0H#h_|!`D5m zsc`7_=O2?_8ekf9_la}65xm`Da7IoMP2?|VB&c^%!BKQDe80}DYt6(IDtEt|46ZL4 z4>gIROsgiu4n1>1_s|_Ra zv^q*^lX8e$ZiH`AEfg64PbBPJbN-DF^y{F|1LM5-d^BZzYt8fGsVYE%d?|!JtYq9~ z#3sbI-RA&RV*ngYqKpKgiN_9iL|U7|Cgyb9RQa+H5_IIHR9z4O72wA6Vj?E#=hGK2 zj{oz2_`84cz3=?$7yos=F2}pWvRuCU@;7f^zqvacj`#EVbh$29Cb~Smzr24BS9jCC znfcThX4|?1e1*Fgw#gGn073?nPfw?IIR4RJ{ng$5;j7>LlF0j}TkpcWt=qE~$K|q} zAD^ZJpC6vK<=VBgwBy~;RQuAU2@5UDayg%3e2xgiy-gFGdhZTMYvyV_@F&BqtEws7 zh`9F-3O5hzyA3}maGOTMwa#>`8o2{DrD8s?{v&9(02r%kg41U}* z>9@B^-PkW=O{ud-s(jFE!N<5W38F)CujP%TSkP^0X4B>}XGg%Wpu0Bn-m=5H?+RSQ zX&sVE%3YPVG3-(j4Iu}-8|VlPy`)^@<({{dA&U~#JigjiaZ7L z5F-I7Z2WGih?(3X6_?1~tMoQnrG;Zq(<*_;GaQE1VNCfgp57%YKAh_L zT3MKprB@r6tq6?}-*RUnW=54mu?Ua(Jr&heJevS4gN86OZbYozMg-&WSRE`9t7U0q z2yn?}#6W#ktL$dZLhjbLsBxeueATUQy*FWz#!M_EZRQB(;GvzSs@n6|3b8aXvu*2f zG27OqrF&u)RpVh-Q?=FLf$N+_9PVaYk7t~9NmMD!qKW_(cXxAP$!Z=oH3*ZM)25Ay z8gIR$K7xomrucduWGcRL1f4}ym>F7Yu}R&Hh)u1DQ1flu;sYCtdUobVy>xnbHz5IB zwTEFFGh@8=VMr63IV|$1?A?|n&!JB@k9>Yx{yc{BBGfc*tQM8 zwl2gt91n--@cFa5FFyXszy9eDmvw!5JiUHAfBp9TyUV#>dv_-hCn1*T@-I`H;hDK1 z3+hm4D4oHu`WS>pL(WG|E^qv!XZK7a9}FFrkr znDy(nefj$B|MP$SukRK!ZfIEn5zwh@Vg_JQA3+skWc;?X;?dj5ITJOj@FKoVXqS5@ zvYS@rqoXOB+%-PAq6G)FDmYF!7g4BXWElKtE>2X&4VBjL!C{JS>IAvaF_i})B$q0q z=njc0BXEuFN2t=cdO?;TU_|HXNmA`4-H%sYMqU9Y8jKGkFN2-#D$OMbaNcEEf}7y< z40;;^%| z?1bSMP=Fz9#YpB4s1gPx8*R8gv#4xGayLZ9Xs5S{-8DYgv)GC}Ov877s9*kn#;yN@ zKmQ}e;0Olgdp}W`QaUV@uc8$vP&B+E_^4dU@(B+ef5*6DF9HDZXs8~8kHt{&S{>Ojv^6PJ|=L?gco=&aN<^9Fry7lY% z;;_Ex>EY3=uh-?pr}yr@t*gUGChdJ)mh;m|dzWgInnhH5-?nV7>zk@I5t#SBY2Qqh zGgW2D>pMiUM=>JBvZB^|cY^TLrUMaOuUBHM%NngU)**MzRJ9{g5bJW?)-{+0Gi%cn zO^K$)A}me2_N|+0#%h3ejR7GMv;)w-0a+DH1>nk<#Cm2_VQQ%C3Jkoz|&nul_eTb zavJ-hMVdMauye>zGz8l4qC%m>YfYqd(UQ5ylM$?!W-)Cn897zb4<3?klnsz+{VG|Z zs?pP_YD~LB3_f11@>k{sJ|hI>kmt=Pt_+u>fPs5!;_jO0F*XU7Gz&6{?wX?Od+#NKL9YmH5Y4wZk<3^!wlWmp`7b zT~F8R!{gJ#>Gb;jDBA6-o0IyE5l9KA2rog zpIFrWhWRQ3p5V;9XD~yy4;M(J=bo)ho@m$8jAqMtV4J{?;m#-q=R{RFReCjMy$+?N zLhu>IhdZi{v+O}LtNzuBivlZ;GD$ZQb~P~VF<6|o3|1-Qd@sVJj3Q+?S7a3iI~+Mr zPwp<}ErU?<{()iQUju>9J%cx{Hp80Kzz$!SHOX~6 z0@q|vQUI%B0?z=YKCl3p=Fpf0}-;tkp>iYAw`>Zjt##qV?5?5fQa5fXA6`_8;1 z;gT8D+Jbp-60p&D9V*|O&-iAiQVsLW6le9Fry5yYQDQvQPK#@Xd5A?a(~wKfe?+1< zFiC(qru_)zK_y|=q)7mv7$bK_lR<=3*Q;fy8vKIL-UC47I@(!%d`Lz)T@j@yYSjpV z`1Wj3s6ZW!p++K6>;>Y`7b&hTBV2dDK*AuR)y4(Rjhf`lb#qH%g!&<-f&mA0gX81 zm#{yo7wTxKGpM?q&*dk(THM5gv8jIznbiJF@I1>m)OyxD$^7Lf8S8HXrYrh?#~> zHZ>6fQ3yMQJVu+iFC)cD?k-IN&uQ-fwKg$Px30Ryu}(oI)1+52&qqE0M_Zld#&LC9RVA;A`sw8$|uw7|L^VlS=jdEPTH72PrBIQ_~ zD{6P+J=u9^V`e=?=-^J#$63lp+3prM$OH5ugB4HWCcShPHx3k$kFIV9x&MM;c2x`O z8OV?b(KX7WP$G-00}q$@P{b33t1`Br$P97FBqFZ8Xids)!Dt0!E%_y2|E~D(x@@nw zqH5bfR*FV&P%5aUx(pMWDGP_?X(9mBlBy%#g9oDFk&+#A_h{a;>PIDHKc~lZ8L9%> zD5XYB^(;q11a}r8kY}e-WrmqhoLZo@h@m1=3QMzOZe(%JqI&{nN+1!*$dt%6XVN;M z$NZa}g~?X6NcZ(V>T;c#TT8?1MAME^O2}XBi+zXN2@YuLl;|#0FN^17#8P|^ApHQ zs|xE;r^YkJ1>3H8xgUQoJUEh$=HF;{_0@Ig=5A ziPv?Z-rF=yZ4%*9ndU}tgKA%wMK_)1x%W-ll-gZzckk=gd26;2m|K%3?8G9*P83pk z{d(R&AeMExaGO|onr7xU-5pw+o5*xLv`IvoI~=ww%k^@3e0*%vJkN8Rrtf_G;s>99 zO09Ln<$66|E~nGww5;#Wmxssq*UMGAfxKIA4xmYH8p-SaJ(<0c}`{XE?t zj)!Uf==uG#=l9ceXiRt0G&MOM=jP7t+EsmfeEWDhJ)R$*w(}*lq8?toUf#by9;Z*H z`zz4pzG8_2k;BWxrV5IjnTS&gJDv)YyN2NHu0_IRy~n{BEMpop%08?i>EQ?~A&Cg9 zf-mJ7D#ppsiz^#ZqaujNO;aaHD{G=L#)%1p6v+?sFmwt%8G+D64~b2$mR*OdlEjFe z;1?prR~?>|0(+GuvTDC50wP>@I?x0Xl!cZRSEDBa4$tS7_ecSNOYgYwNPbWeUA6et z)EG)yv`6%aXx8AKgKEQ!#@D$;+>9z@+TS$}9c9`!5s+u4V0FoTAk>nLDsV>?U1AWC zQIS-iOyN(*ZHmkRx4Y6>9Gs zPclmR#H_M2so6jyi13%usQi zr4pDaVz2W2iR1Iuq6I6PC@PS3M2Eeb7AQ@mQKiXdXwTc9O$w|+Rz%X0ndH($Pf{rcmNKl=Ei7w_J@dHwBcFtx_#$Mfm&F-wBgJmuh2Rjv0d z(WpmLtdU2?N`(8icGW-p`JeslU;V+iUw_?~1y1Lu^EA=v{iV&#Vb^6bbJM%k`qY^Nl==nf0x=)HIyLSre4A!bi@Jg_BE!f6{uFxM@!4H!v9 z&&u1hSk-(6CRS4?5@Ey?mYVsI3R0YBdpOWYq{sVt@9%KXU_8tX97CU%<903yWke*pR;}H71za)|~+1m_TD)wY5gfk<4^x zc5iw-Yf1#o5aC#jupY7Op{{M(nP4t%F2bfzHWt>d(xz=&-CdX?`&wgTA`0L{$z5BM z-upaHan?kn_wKHo1A9^nI?qoN+Y}@AE7sA>nPD1fgUFh=xtW?YHdSH{$pALpR@K%; zxyi)Lx^0vV-r!817ExGQ({aqTcV?jxpr;UtS6(5`td8+NfNkrl-P+uksH?LO2?H)@ z>LIcaDeYyNCy{BMXJLW3!F1~^tV>@mE=|l_+B8j5>S>!w6M%Kw03&bLWtFL|%URka zEIdtz`=fB1=Xp9DSU5x%nQ^&Z`qPsWi*RdANJQjClP|vW*)-3_w5{9ee1_^Y$!S^M zy+2*o>t=mfx87CF7-Htma5xi-w0WAQ)`VG@=ELFH-QmUYI7^$O%o*rv-Sl#~_UmGX6tpJv7#@vO_FvK$U^y0Xm*Y3@nHwP#2k zl0RC*!>flr15;*Ka|+4Xl=Q%0W77cH$TcBjl89V*=Lah-15|Pzq28+**=sQMEiiZ3#kTaY2$XwY?|ECrc!%lvR)+Dt?y^ozW) zr&fRt!7T@jSTd{ZF|!T0iPfXVBfSh)U>em-rr8tMtMx1okyl`yB})LR$UGC4i8jWU z6vn~8t4Ns&lsETU!*YEE@=f=!U4k%|=NIQ{YR(sbMC7QoU+!fEj`S6FbO@418{tBfSwG|>2k&L2O zKwSTvEW^0N+%@Ba=LqW!Zew)N`LGpZ~tqZH%6_n^y}%z z-~0Uk{O|wnyD#p4^{ZbJ`Q5YQ^>X>@%P-%(d;8Ig=bwD?@#Evet8c&U%R1j5%yhY& zt#8#JK^*xLb4|Qj=d1Ez^;i-}blpDw{JVej=YO?r*T?s7VYIGS5%j(>qfM=Et7&I} zZhpO7y7uG!-F!Hp_>}2*u&$TKC)FNg8we31chxpEW>)RQh}=uxwsl>R*f2nTZXez& z5pwrg#>COyD{Y=zYh^qgA&W}XTH`EAF(z6r7t<|r$>x~mxpY>XBL73!mW8T1lt9sg zhX6PR* zA~r4S5{$!eDCWe(12GVoI4Wlm&@r4BLA6wKkkuX-PaB9_9{^?%i5hYbU>wjpc6`hW zaUBB#5y@d>8JY*q3^?9G&_G@{#imTunlzzE{;KJ=X(UxF8XC-+NNZBr z(^S82Elj$*_&6`-28A#)iF=k_kBJJgCD%<42NEI(do_f|Ow`tz$Djqucz2pwjG3{T z?LkB7fNQ8S!_0*$TxNs}7>o36Yts~+qC_mxfId#39XfQdaexEV`RGd3n+LR9LinaL#5n)O~sxt6m64jUGxV5((> zFcDJHc(~NC!z}EBeMN9mT|3ZPbTXNmv_=eaawF{;-u7}@+cdfM)~2FB(&WIsuM1dg zQSBR;tQ*G&Cipxxb0^nnp5SiU4a8zyx8?FgEXTW}w1c!ZH8~s)LR0KKjb`k=srM-Q zIGvt|xJ?r?&&>1jcsLwBdG_KbUwjt~gLPFxV80YyGqBBXjVm)^!R}Cfx=DHY6_?m?xAE(O> zdUN)&pwJv%x~;16Ku!Qul#5P=Br#X%@RN$zeq*en~$<1TqC7UxV%)A)f<=SSYm6hd+ zlQ9{a4?IsRmQgC3Mt3q1LiKiZCQZ?QE~6SzXnAGy3aGR(Rwj_G1q4aVPF(1-Hz*@) z3^13njzM-+!@~ijKItlvY%+-65w})8y=*fy{D!>~)h@k}x1{=-y(Zj@q^MXW`_FaC zmNl&^tahDC|0ZD7?0=Cr};BppbPdMYVGd1#lin z6aaL;`z%Hc;?wglzy9+7_<#PVKl|xd|M~y?zv9fdU%a{BUw-#rfAjv^@85m##ZQ0w z)0dAQfA?R0^ZfDCwvUQ@`Scp|$V}=_4em3{I5Wf0(=XK1SeHZtC_C>*ME&~T{*OQZ z#V>#V+y5HpjQfn5^E{82*Ee529nUZK`(da&^L%-JeSXdvPd|BUK8}~y%p5*2^LTxJ zdHz`QG&2%V88FYt%-g%Cd7Qkdn^#1fN1i9KU{V4fRCIOBuY*kmu!sd_etUXy^Esy( z&ikxFMQ!^whG!HfPtNnWzrN-?`TA~y?MRtX9J&LW=c%IKf*E-`S#x_u(Ao!+#;kQ1 zB^4#T(R)wae1(q~pm49?ASlni{yJQmyrLmWwe(U4t@_^GwucV3vLUmS=Ive%Lm>^L zJv6qz>cH`wDmMxFqNqwls~9czir!N1WM;_;>?rtUZW-7uo%7ziRb0HxMpdm>(8^L3 z7naiPceOSDvn0Azi!~Rh!syXZhGkD{9X+#$5Lo|r?GgVKLF&Ei(YVN*bO5SSjH!*| zFO%7B`e+)DPPtzp=j2F0>0p(6v$l3cv8u{hbcdYtOl1_H1q~>UQ_CRQc{T;$#Szh{ zuMuF02Du*GRdU+t_*11thHsuTE)U5RS**+>VNXjKv$s(Z>TcshK}dE0mXHfC^(;58m@|`C%baIy+rDp1i4)2Jr509}UoGbb-TYQn;J_Dihr`KF zE@g1>ljtjvlNr}}zgOniHn>+=1bNTQ%=Ue6@?^~On8&$ujw^6`dfKrUFt&l*OL(B- znC3Q*j5%-ne%$Y4jJoXu7|t$OQ8#14-RA2N9&kT~y?olX{pIbKZ?~tLp{#P>Zocmk zIj2a*@5e!akms~Y-#3Frgt?E+w=t^F75EjM%&J6X8juwLDr$do+xG3{<(@I$e)05f zf6A(l@4x@{!}}lp_{W#$XGCm1w%xbemNSmmd!FY!&g111vi93H@8^Wwp7t$kWKKec zMLse#*Hq+oBo0s)C18c9Qe9_r;S#-y@#r8vc)o^1#kpu<+hDLTB`m1tnE zzSlK*3(YekdfOFcX*4cH+JXL#!gd<7vd{%dXd5KUkY(#S)@catC1wJ%mxa)sD8QthC&jcBu1 z=xW@xVHE`*U3ApGCLbcxZtwKDM#w+<^WW)Zy#O{4wRNrYa(mm6ZXci_+xi8rpD!P& zYel+<9M#U`!!>1yX_W<}ASoxQ7jWg!2~~kw)%3cMwc|@o*zdx}V0|nPlEJ|)s*ZU= zHOy$!-ZyLC*{)Z9^zA7h91Snh!Om^byYqf%IzP4mqslNw_d#Ldb1*b))!f;7=XRT| zGj(R9mNG5)1(F^YceSlsgGOsEdu~m$F`+b7C=j1{w7ZU!Xb-kAij!7!GwEEKS&6ai9!t-3H@( zzP$YW%cuX(|LZ^f>gPZGm;d~qE9>^|&GYl8-~aZv@87?F`|i!3{K=o3_xtbu>u)~& z@PlvW9A2MioQI=eDik!cL>7B6tk0hET_BSTk*XPv7UPd`SAXI&e(=; z?#~}y0gIS3XGH8bi*tVZ@FC*9-=1zyZvY0;vA@}?^5cge;+%yV?nn$CVdQ?>E0TVx z4Ijgf*K-~R^Ntzm9mRjtNhNbEO~y7Xq5ai;?AyGbtb?s2(9BTmriBP--Xfi>S_SG<2a%5|g2%zEdpOM4$)QdhabKhD zkd(WvW;~dN-CT04l`yj`K%> zivVahsmGJHs_dsK9oJs7R!;nFh?wfqdP=I60vT9;=hR1Uzq#j{dbbpswNILT-^)@- zwekVl*S*%X6bR@zMUx0}pUg)_xfp3%rAt#tEM4Y|mjLOM)(sk&aDKfybz9YN@3Xoh z7o^Y1Y#(#5iA1=MX;my>QpJjc(&l}}knsqv6zZXyFFoDdfj}vO$>P{l6AQ*5y99kR z`L|=Znb;@`s7iRRDtR=j-0a9Q!yuQtGdXP?+Xf0JyX$?JA*w3ooUx5Dh8wf6W|bA0 zwmGVfW5$-ZZ5wVr%o(mv3HTTnILbm~6dWq@W}}>2VRp8&s?I5*uQ5CsLRG{B?(7Mu zsv5&9Yq(=H$aQDnkC$K6TwKR720*s60(-d;UhbRG4`kq@#CNB|*8w4m2v#d-C{$)- zxYZcDyUj@18~2DSl%{HeOHI&pn$`HoPj<+3n9u*uCq@ z6eptKWR+E7HPQnr6g7$g<6mVqBi&dC9eL!o@9v{e5edKz+wftdva+l)Gm9L7W)^YA z?P=S0+YD8z2QJuVK0G1-%a|yf8OM2;`?hVjH*c_2%(?Aj-!~ubHprtfn;AAc&*RgF zAI7k(`ORnb2xW9h-@G<6L5!=2!y?uAvwv4l4-d|pjVaR#D0@(IZRc7>fup`}I zf)LDJqD$N4OJEorHPgm`=TdO8`>Qc^VJKU_`V6!vTooc@AtaMEUf`;VPA>@2iLb_x z8!TR8klT(Yk7k2yT#adA9e0x^({#XM{zfQqb)V5Tu3DNdiGcOsxpozUbR z3bb`_+3>I$I_ah=LzfGzlr=4*a5|N_%avGwQOu@I6Qge}%gH03mseSrUbkWL%pa28 zG(EN8H`Tl}TvvZRASODZ3;Tk8Qh&bWnA?RPnkSgaL^(5iP21N>4nD`urCi(1bp-B(%auAvLz-W1kFe-#Q}sjJZ3s{G1huZRFw z)Q8Gzv%T=X8!rX4jw@xvV5Ul7DU)iipmZIrMu2gX>Th)v#VXCWe17@r$^MW3{eS&8 zzxwn4{D1wI`7*bs{r>v$```Wk{de!*ynXYNufEE8{_em2m-pZOacpir=5dZ;=lyja zhg$7|6dH&#B9krHloF!zWQ~)dqH1`a_pJKMU;q72fBK6*{Py?rerAL{?e~|Lsv4V} zuk$$1i0Ox)_v88bV`jbm>Whkun3Xwvv&4CSxqteUagv#oQT#a5Hy^|AuV*Fak<>hn z^St+n%PS;Tsr)20bBPNVP$$wTz-;WdCxA7F88afo%*Jg1HqW3a-k)D0PFlNE#i?aR zMD4eIj4jTY8FNllxsQq}m3jd^bVcrcp>?4O7SK7;La9bT4}Y2A^*6qe@F0n89vz-_ zY*BmyGo4bJhf8NE)U=k1vASjBeN~Gk%GZ$Ybvz%??Za;m1N&?=SX{@NK0vih;5AcmuiQwtjB6) zkz*-Ka~5R0xN*z>1ng1`E8yOG%GNV?iV`v^rF~L$nKA~Z=NHQv=k%)5xfU4@s-LF$ z!*mwnJk1?t7uf+(Mdbxpcp^0KkO1;w`8`67K=Z5X#*oxmXpQR+RE^7{sFS`ex`@JVGQ5KNGs-uA_{I1 z`4Y!A{Au4^tb863$wq(#z>I4q`NqS>=5fw_8}7p@hkGU>NM2ya3^yB_d0DEq5HVwH zV@~A(=8WOy=4F|3(v)oxkAzfHaUSVfv8rO$-F>iK+RP$yj4d-Kw;mmW2{w*KRgQhL z@T%A_0Jtf8&q8iK9%~cmRhwoJTXj~ffXWz~M}!x3UE1(CgFOrEk98Y!&Kwyt#@M;< zJlfKeEGZSGg$e4i#+cL$RT+UYjyt+oJSx>D%^8&>?Wi)#iYOo}-M4Mq6p2R7GmM?V z3JX}yNLG)XGv?fHH{d?DF}7{q!yV}H7# ze7o)2z7t2SQPr6-XFU7Z{M#xU+qOOJzHRQ?etYt<`S5KU26MMB-aUo>6VcxtPi#s+_8C8BI`f3ynjCLu`SV9jwTJen;AD8K+0 zeXU#wv?(^EX;bP$u1g_-F2}<%90{;=e%Vevn^l4RsI}ZGs^g&fNK}bRleRdNZmmok z1B~Fbk&=NC*tBknYTq)e)jdN*@~r6hni3=iSMz5T7Rl3vNoq}=M0I&!+juwDhy!RI z3RZNQbxbdy5K=EuyUZ)zlu#>L8_*8j!a8UKfMoH;(j&B`yWoSZVy{O-zt)Pc*WEFE zetC$sGCEiEv&pC)zT19xEmu5YwhB!8CA+ef;v~GjT)Fj*{6VBWy@PG2Q`i4*yw?94 zmz9x-w?DCWZ#%@Ryw~MT`HC#kc`ty)x}=F;;?oi!J>IWJwPX)Sz%DOem_VZQ;Epd> z5$yu#Cjfxu;(t~F%M-G?hn;RH0Z$)JVCB2fd`#R?Fj~+PyvGu;mw;YB8=QFF~5C;C6juxY?pUS_;Lwah{hn zSZM@{^$G!x+hL8#bb-$Vx3^=FJn@y4S@nmIQx8UJu($#cJmDHkL{7GcJ__l$@pur+ zhLhW!*ugZ0xAU~wF}w!BW>#Z>?={4V$*>=5HA~$WpaGyUssOC>)jYFY$O4USCT9+b z9Gv~R#*8*CMu`#z4>m-Bvix5~)WK=6!C<1lu{uwzMqTzUsM z?&lX@fBm=r@DE}6>BFZP^Xcu)f%Ek!ly4rHF=KzTTg0c2ALns@`{vEl+o!6^Gu`a= zW=GY_%kw<%L!_o$l7!pvEh8(!Hl;z1`wQPLdB+a1 zQPkU8e$Y-!!xt`7C_m2Rw29LQIxjlYbt%LLLnEKIDec-Y)Y6Fxm!MQ3iRS8uti(fp zS2)W04=?zzQo5y5OI57t)sM*xY-ZQGTKm|wE(>zckm`nRXK#@E8o`HlPG!`x#GuRD z|H#t1)Aw5LVy-bZFoXP!%dMvm1FQawd~3xKz)n}y+HsFoY*l@@~h)P`54ffty;%00-cw&P@K!@iW8Kh_hlUfl%h-zWl$C~0P>J|M9rMr@Xa^s zO^%a_%*@)hv5(D>C`2hRazf- zZdQD%3eLITu*h(8_rX))}vtRh7b3 z>Dy?Z901PyeT;FQ3G+8k@2b-GecQHko?eDAY>c;G+-&&$^?ux6=XrnmbdKS6+Vk_r z;hPT^xlYyCHh0gcZ5zzOA5}2BXC<2%%6xcrebyNJcH7Nyo@ZqaA5U+d%&gSNi_ApT zd7g8gIg@NsZ=P=3*dpV&-!l)Kr$rX#Hnul!p7y6(9P|GAa=aYm#{%*^kBW1i2h8>{ z5;ZfnF>JUEhUdBokny0Q%$N+Q0I(bvl^k-6%?b{-Ju^X7YfXFMThTkI>X>F_KzdSf ze593PbCBCCn@6|^!f9lg4Y=&ngOwvteeA20mRn&srI+~mWrk7clLhqH5y%mwnJ~Aq z)%%v0$5+dT)Xi|&^iKHn%*D&FuJCCAO;e9pv@Za;lm$HNdQL2_u@SN`ay@Q^{zdz# zb|<~_GHRD+p0b{0#vo#W=y#P0HBTXzd@R>MFT?%44CcDmYHDy_k0#Hy8K+uKdh}|$ zwLL!t^swZjGhM%orSTcl7QsH>M2MmM%P;H8pVWsxw#)b9KmV=E+JK_UzxY|&rvA@- zI1>#_ddcNU16_&US%(g>bn^q(t_m932}vicJ^OA|;w+q$qg*{Tw`&^LJ66kHOMjAf76XRi|qQd-|Fk3xFO2Xj^o7Q*FkDidLIwM=VrT-pZnXp(yy8gH&eT zM+tq{e9=k)s8z=H0Gl2>_jdOlA^}nm-P^f#lQ69+&8=ntFdw#lLW05SVt3vv(#EhA z0-+K?7b@`WGi+=ED6A0XOadxXB@hY*_yfZe_jiSWc3A zt9B)?!VIQWC0c&9Rj=hhJ3nI6)Z=-rijI~(ZZVuq_CSF?a3Omhx3l*ZFmtizp?BQE z%%Qo#&4J8cOGsSaD_6#maL25;zx+S`mw*4i{Num<<2T>@@cz@&o2TQr|MB;Kc>mpZ z`)&K`tFPSf$8Wy*_7C4wPK+^+6R@aYu-1^Y_w>`^nsK@)Mq$l=Q&o{UhR1oI=lsQA z|Lvds))`i{q59_EZ(`=Uj4>ERug{t=uZY?5 z@2_}ew!_*#A-89nUNf^S7|RWHn(5`H%Ks`l&Ou;dSRBILAA;7UKCH@O&LYz7@ir}B zC9V{uE4|Hw#7=QJR!l71q8luYa#=UMG!JX8+$5^XuPT~O_&kPj)!K8_B~`afqhZPA z5kcb`mJT?!{RdOD(-W}tk}jF+eXbivq;oEhC6KEhX-bG`zk8(teK?YHIU#6fZ3ek z?z>x>N95!tR%OmH21EXvBg7#EgGJ0T--yUj1?0?a+lt4eDl#g~eOO@|4i?vzkRjjTNUrDTb1f=AISQ zBmg49&1iIaO+`%%ZNuHbu3PmRR-rPZG9$KaXCE`xfMWInkU$Yh8XmfZu(-c|Jdb^U z^EAfBp~UBLn2+0=r_Hx<+rPYhb>46MRm6E5N5qV&Q{YY5QSkE+sAJ_YAA0a{NM(Sk z$a%iRtL7vz;BtQS1bncVS?z@;M31p=Pj8;KvCVnDK7V}q^qdhk{ONZ4@+V)JjhylF z@%cQCVp)*;oJYmX`!VN{$jxsv;yBN&G;DN>aLqa}xPO*lSlGtAL5qQH5$t@Hnc%qi zMILL2FwQ)`GA|6!o0%b45!(fHx`hL<}?ZbB9`S&CA^ph}o?X~1sog&F;3A$*qy4m4b+leq|%nx%!8VZpau zG|63@{NQYV=IjN%WhHfOCA|#~T&d{l+Lh;I_6f@c;9A%ftZqR1(9J<3s!hw@o>Jun z_0w|wOm5Qkce@}l|BrYh&4;{;|o<=dAQ zF=CXz!S!e1Fa6nm{DYQz0OL=8Ui)6JvvHSPF9sA9jnmUV1T4C~xqn#~O81V(n0HXa z305#V!`>^3#%_;pts1H6B3kER+JS1!|}aTW6e7ls*i&WtgbStd9g%dLq!I-l}CjtK!gRi zfv#`_gI+Yh!zC)bX18-oiO@>>6^Ihy%1|E~Yz+-#n95+Vt$T_29smG`ozKtz`1im5 zPyhT+AK!oX?fdt)r`vg+-+c4Uci;YTxc}szRU_aovo z*QWUxhKd;#At5hC8Hs+_-XJYnb=;3PUw-lT|M2g|wtx8HheB-Ih#4P0ej3Bauz7}A zZSF_p%gd+Zc-i+G%rYV(_WfpN74iD~67#GF)Wzg;&MYL;Alo*o>O2moW|Z!#YInM2 z+gkrm5P+uUrP$9W!^Q}EH~tr2_qw(V4|F(=tFw=oKp z5q-2fzCqQyTpi^Cc;qeHCqg?O9AIPJ5hPne1IAOQ*p`f;Ycl&4ZIgCtoov^CE2G*J zH3>~W8&}8LiM3K)iHc)e56W7aiSoL23eYF=!7M!b*wi@I>a~$97U{X7sAZyKxy-F$ zZR=V_w1MNful@`BpA;N3kS^7!Lw%X`wVy zMYXBc{l`*NUD#rJa+L}dM<`{7HjI;S+?;f^nc+pno~DWhECh)*rqyRMWh*PRdbMha zy8=v2-MX8(4@cI&a&FKQ9xyG+Xm#YL912(;~peE8bgy{Vn#XKEoZrzo0HO( zb=|odql#VXR>sjdJU1yWQ6U_QnKsPRszzbL$ip-u=7Ky;>;wY^$@(0Yja7JJW|o!1 zL@dO>b+STI#bRKob-{wVMYqt1rWVYMAT=}q_!z#8sfs+7(?g-XF@`ysaZ(3e23SVh zhoc%xNmFlDji(53TpTj%l=1k$Z61dT#K#7}hGhiP;;2IT*quVmvy3XUoUgC3Z9awq zF+Ps_v-`g7+i>5W_I-Q0-FDyJ9xuoJ^_~nE4rF6foymq1r3od?aS( z816pY_o|FcM2>BYeb1;Fa~nJB4z_(m;+$uk$H&)~%s7uTD~E4y-@Us%J-PdNp6B^` zydIUgyA89-%!+y3tup4pkj`q5cU zD{5v?c4YzCzE8_3pg`MQ);2;kH+}4+(zz_zmuVPQWdmqRR4G(5Q`d5bs? z`<-UHP`|8U+u^IYcv-SljsZ0LbXy{xa31JF=bt1%hC=7kZN;LB&}CJ&`U<-*&+bC? z+91PXVHiLAdHnEOptBeF?9Wy|{s{nUc7zQHY(m4AF9}tW@}0CWnF_;HS57Wy(*BnM z8yb|0YmKZMIO(WASjy@$cTNGM07`wYuXi+~YnZVXd%?ZsYwNe2>u9fdxv8Dm6RNwi z-j^Q>Q?MjEMul4LmsK_Osu)S?O4RW69v`oll⋘lm}%|?ecX51zEU2ru_DT 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

Oq!)Y3>n(F3QSYjAm&TK~-+v`x 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%0D@X%%*?dG_Rqi5UA&q=c&GJXbxt;KgzW{w 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%0A--UC1Jdpc*aW0oi^_n#?h@x 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

)GR-*mUGy{rO*jC%i(+H=cjlSo_SVz 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