feat: add additional features (fjgn) support

- 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>
This commit is contained in:
Misaka_Company
2026-02-02 11:04:19 +08:00
parent a22ee42119
commit 57adf860ac
4 changed files with 91 additions and 4 deletions

View File

@@ -146,7 +146,15 @@ Private Function EvaluateSingleCondition(condition As String, Conditions As Obje
EvaluateSingleCondition = True
Else
actualValue = Conditions(varName)
EvaluateSingleCondition = (actualValue <> value)
' fjgn
If varName = "fjgn" Then
' fjgn!=N1检查actualValue中是否不包含value
EvaluateSingleCondition = (InStr(actualValue, value) = 0)
Else
' 其他字段使用精确匹配
EvaluateSingleCondition = (actualValue <> value)
End If
End If
Exit Function
End If
@@ -164,7 +172,15 @@ Private Function EvaluateSingleCondition(condition As String, Conditions As Obje
EvaluateSingleCondition = False
Else
actualValue = Conditions(varName)
EvaluateSingleCondition = (actualValue = value)
' fjgn
If varName = "fjgn" Then
' fjgn=N1检查actualValue中是否包含value
EvaluateSingleCondition = (InStr(actualValue, value) > 0)
Else
' 其他字段使用精确匹配
EvaluateSingleCondition = (actualValue = value)
End If
End If
Exit Function
End If