Major refactoring of BOM matching error handling mechanism to separate
matching phase from validation phase, enabling cross-worksheet validation
and non-blocking warnings.
Changes:
- clsErrorLogger: Add warning support
- Add RecordWarning() method for non-blocking issues
- Add HasWarnings and HasIssues properties
- Update PrintReport() to show errors and warnings with color coding
- Add "Type" column to distinguish errors from warnings
- M09_BOMExtractor: Implement two-phase validation
- Replace MatchAllMaterialTypes() with MatchAllMaterialTypesWithValidation()
- Add ValidateAllMatchResults() for unified cross-worksheet validation
- Phase 1 (Collection): Gather all worksheet matches without recording errors
- Phase 2 (Validation): Validate all results with special rules for components
- Phase 3 (Generation): Create final material collection based on validation
- Add ToArray() helper for Collection to Array conversion
- Enhanced component/joint/element validation:
- Support warnings for non-blocking conflicts (e.g., component + joint both matched)
- Better cross-validation between "部件", "接头", "弹性元件" worksheets
- Distinguish between errors (blocking) and warnings (non-blocking)
- Documentation updates:
- Update BOM匹配错误判断机制详解.md to v2.0
- Document two-phase verification approach
- Add warning scenarios and handling
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>