检验检测报告识别
Go to file
黄仁欢 f5981fdf72 fix(test): remove seal suffixes from institution names before matching
Extend institution name cleaning to handle OCR artifacts from seal text
that gets merged with company names during extraction.

Problem:
- 3 PDFs failed matching due to "检验检测专用章" (Seal for Inspection & Testing)
  being included in extracted institution names
- Example: "四川合泰与必摩适检测有限公司检验检测专用章"
           vs "四川合泰与必摩适检测有限公司"
- Similarity dropped to ~60-67% → incorrectly classified as "no_match"
- Affected PDFs:
  * pages3-6.pdf: 60.87% similarity
  * pages7-14.pdf: 60.0% similarity
  * pages12-15.pdf: 62.5% similarity

Solution:
- Add seal suffix removal to clean_institution_name() function
- Remove common seal names: 检验检测专用章, 检测专用章, 检验专用章, etc.
- Use string replacement (not regex) to handle middle-of-text occurrences
- Apply before number removal to handle combined artifacts like "专用章123456"

Test Results:
All 4 test cases now achieve 100% similarity and "exact" match:
1. "检验检测专用章" suffix → 66.67% → 100.00% ✓
2. "检验检测专用章" suffix (different company) → 65.00% → 100.00% ✓
3. "430334" suffix → 70.00% → 100.00% ✓
4. "检验检测专用章430334" combined → 51.85% → 100.00% ✓

This fix complements the previous CMA code suffix removal and
significantly improves matching accuracy for seal-related OCR artifacts.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-02-16 21:22:23 +08:00
data 暂存 2026-02-05 13:57:22 +08:00
report_viz 暂存 2026-02-05 13:57:22 +08:00
scripts 暂存 2026-02-05 13:57:22 +08:00
src Checkpoint before ONNX migration 2026-02-09 09:43:28 +08:00
temp_classpath 暂存 2026-02-05 13:57:22 +08:00
.gitignore Checkpoint before ONNX migration 2026-02-09 09:43:28 +08:00
BUILD_REPORT.md feat(ocr): integrate Python test script improvements for 85% parity 2026-02-08 15:22:50 +08:00
COMPREHENSIVE_REPORT.md feat(ocr): integrate Python test script improvements for 85% parity 2026-02-08 15:22:50 +08:00
DJL_UPGRADE_ATTEMPT_REPORT.md feat(djl): attempt upgrade to DJL 0.27.0 to fix PaddlePaddle crashes 2026-02-09 00:04:40 +08:00
IMPLEMENTATION_SUMMARY.md feat(ocr): integrate Python test script improvements for 85% parity 2026-02-08 15:22:50 +08:00
INTEGRATION_GUIDE.md feat(ocr): integrate Python test script improvements for 85% parity 2026-02-08 15:22:50 +08:00
INTEGRATION_TEST_REPORT.md feat(ocr): integrate Python test script improvements for 85% parity 2026-02-08 15:22:50 +08:00
ManualTest.java 暂存 2026-02-05 13:57:22 +08:00
PADDLEOCRVL_INTEGRATION.md feat: integrate PaddleOCRVL for seal text recognition 2026-02-07 14:03:10 +08:00
README.md feat: implement RBAC with Sa-Token, institution switch, and backend integration tests 2026-01-28 16:15:09 +08:00
cma_extraction_template_primary.py fix(cma): implement robust CMA code extraction with fallback mechanism 2026-02-16 14:16:34 +08:00
jar_paths.txt 暂存 2026-02-05 13:57:22 +08:00
pom.xml Checkpoint before ONNX migration 2026-02-09 09:43:28 +08:00
reply.md 暂存 2026-02-05 13:57:22 +08:00
res.json 暂存 2026-02-05 13:57:22 +08:00
run_reference_test.bat 暂存 2026-02-05 13:57:22 +08:00
run_test.bat 暂存 2026-02-05 13:57:22 +08:00
run_test_v2.bat 暂存 2026-02-05 13:57:22 +08:00
run_viz_report.bat 暂存 2026-02-05 13:57:22 +08:00
settings.xml Checkpoint before ONNX migration 2026-02-09 09:43:28 +08:00
test_accuracy_batch_full.py fix(test): remove seal suffixes from institution names before matching 2026-02-16 21:22:23 +08:00
test_paddleocr_vl_quick.py feat: integrate PaddleOCRVL for seal text recognition 2026-02-07 14:03:10 +08:00
v_verify_logic.py 暂存 2026-02-05 13:57:22 +08:00
测试结果汇总.txt feat(ocr): integrate Python test script improvements for 85% parity 2026-02-08 15:22:50 +08:00

README.md

Report Detection Backend

Java-based backend system for automated report validation and comparison using OCR.

Technology Stack

  • Core: Java 8 (Spring Boot 2.7.18)
  • Security: Sa-Token (RBAC, Session Management)
  • OCR Engine: PaddleOCR (via DJL - Deep Java Library)
  • Database: PostgreSQL (with Dynamic Datasource support)
  • Build Tool: Maven

Features

  • RBAC Implementation: Multi-role support (ADMIN, AUDITOR, USER) with uppercase standardization.
  • Sa-Token Security: Annotation-based permission checks and secure login.
  • Auditor Context Switch: Specialized feature for Auditors to switch between institutional views.
  • PDF Processing: Automatic conversion of PDF reports to images for OCR analysis.
  • Automated Verification: Integration tests using H2 in-memory database.

Getting Started

Prerequisites

  • JDK 8 or 17
  • Maven 3.6+
  • PostgreSQL (optional for local dev if using H2 profile)

Run the Application

mvn clean package
java -jar target/report-detect-backend-1.0.0.jar

Run Tests

mvn test -Dtest=SecurityRBACVerificationTest

Security Configuration

Default accounts created on initialization:

  • admin / 123456 (ADMIN)
  • auditor / 123456 (AUDITOR)
  • user / 123456 (USER)