- Add fjgn (附加功能) field extraction from instrument characteristics
- Extract additional features from model number's instrument feature field
- Merge all fields from index 5 onwards to handle dot separators in features
- Remove oil-fill type (Y+digit) suffix from additional features
- Normalize separators (comma and dot) to comma for consistent parsing
- Implement multi-value matching for fjgn conditions (contains logic)
- fjgn=N1: true if fjgn contains N1
- fjgn!=N1: true if fjgn does not contain N1
- Add fjgn to condition config in MainModule and BIPUploadModule
Fixes issue where additional features with dot separators (e.g., N3.N2.Y3)
were incorrectly parsed by merging all fields from index 5 onwards.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Remove "作者: Auto-generated" and date fields from module headers
- Clean up unnecessary metadata comments
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Rename Quantity to quantity in BomItem for consistent naming convention
- Update references in MainModule to use lowercase quantity
- Add newlines at end of files for consistency
- Update vba_metadata.json with new source path and document module
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Optimize BIPUploadModule and MainModule for better performance:
- Replace cell-by-cell writes with batch array operations
- Collect all output data in memory using Collection objects
- Use WriteBatchData to write all data in single operation
- Add CreateBIPRowArray and CreateOutputRowArray helper functions
- Remove deprecated WriteBIPRow and WriteOutputRow functions
Performance improvement:
- Before: N cell write operations per row (thousands of Excel calls)
- After: 1 batch write operation for all data
- Expected speedup: 10-100x depending on data volume
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add support for excluding "部件" category based on component priority flag:
- BomExtractor: Add exclude categories functionality
- Add pExcludeCategories collection member
- Add SetExcludeCategories() and ClearExcludeCategories() methods
- Modify DetermineRequiredCategories() to skip excluded categories
- BIPUploadModule: Read and use component priority field
- Read component priority from column E of [产品订单] worksheet
- Pass component priority to ProcessSingleOrder()
- When priority is "否"/"0"/"FALSE", exclude "部件" category
- Only extract sub-category materials when component priority is disabled
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Add BIPUploadModule to process product orders and generate BIP upload format:
- Read order data from [产品订单] worksheet
- Extract BOM using existing BomExtractor and ProductModelParser
- Output to [BIP上传模板] with formatted fields:
- Source document number, product code, quantity
- Line number (base 7000 + index)
- Material code (66 code from BOM)
- Supply method, required date, issue organization
- Planned outbound quantity, remarks for errors
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>