Add a preprocessing step to the BOM Extraction System to enhance parameter
extraction with mapping values from "对照表" worksheet. For azxs (安装形式)
and lcfw (量程范围), the system now stores both the raw parsed value AND the
mapped value from the lookup table, enabling flexible dual-value matching.
Changes:
- Create M06A_Mapper.bas: New module for value mapping
- Load azxs/lcfw mappings from "对照表" worksheet
- Return dual-value format "raw,mapped" (e.g., "A0,径向")
- Support graceful degradation if "对照表" not found
- Define constants locally to avoid VBA cross-module reference issues
- Modify M06_ModelParser.bas:
- Extract raw parameter values first
- Apply mapping via M06A_Mapper if initialized
- Store dual values for azxs and lcfw parameters
- Modify M07_BOMMatcher.bas:
- Update EvaluateCellCondition() to support dual-value matching
- Split by comma and check if ANY value matches
- Backward compatible with single-value parameters
- Modify M09_BOMExtractor.bas:
- Initialize M06A_Mapper during RunBOMExtraction()
- Add WorksheetExists() helper function
- Log warning if "对照表" worksheet not found
- Define MAPPING_SHEET_NAME constant locally
- Modify M04_Config.bas:
- Add mapping table configuration constants
- MAPPING_SHEET_NAME, MAPPING_COL_LCFW_KEY, etc.
- Update CLAUDE.md:
- Document new M06A_Mapper module
- Update data flow diagram with mapping step
- Document dual-value matching behavior
- Update system architecture diagram
- Update docs/RunBOMExtraction_运行机制详解.md:
- Add M06A_Mapper to all diagrams and documentation
- Add detailed value mapping section
- Update sequence diagrams with mapping flow
- Update parameter examples with dual-value format
- Bump documentation version to 3.0
Example:
Input: Product model "YTHN-100.A0.531.G123.M04.Y3"
Parse: azxs="A0", lcfw="M04"
Map: azxs="A0,径向", lcfw="M04,高压"
Match: BOM库 with azxs="径向" OR "A0" → MATCH
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add complete BOM auto-extraction system with the following modules:
- M06_ModelParser: Parse product model strings to extract parameters
(azxs, bkxs, gclj, jycz, lcfw, fjgn)
- Extracts header part from full model (ignores dial/attachment parts)
- Splits process connection and material code (G123 -> G12, 3)
- Supports multiple additional features with comma/dot separators
- M07_BOMMatcher: Match materials in BOM library
- Exact match, wildcard (empty cell), negative match (!=)
- Special fjgn contains matching logic
- Array-based performance optimization for bulk operations
- M08_ComponentProcessor: Handle component material special logic
- Component inventory check (interface reserved)
- Sub-component extraction (joint + elastic element)
- Combination validation rules (1 component OR 1 joint + 1 element)
- M09_BOMExtractor: Main extraction orchestrator
- Reads input models from worksheet
- Processes each model and matches all material types
- Outputs to "BOM提取结果" worksheet
- Error reporting and non-blocking design
- M06B_TestRunner: Comprehensive unit tests
- 8 test cases for model parsing
- 5 test cases for BOM matching
- 5 test cases for component processing
- M04_Config: Add BOM extraction constants
- BOM library filename and configuration
- Input/output column definitions
- Output column enumeration
- M01_Main: Add RunBOMExtraction entry point
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>