diff --git a/VBA/ClassModules/BomExtractor.cls b/VBA/ClassModules/BomExtractor.cls index f5ea0bf..5523318 100644 --- a/VBA/ClassModules/BomExtractor.cls +++ b/VBA/ClassModules/BomExtractor.cls @@ -479,4 +479,12 @@ Public Function GetErrorSummary() As String Next msg GetErrorSummary = result End If +End Function +'===================================================================== +' 方法: GetAllItems +' 功能: 获取所有加载的BOM物料 (暴露数据池供异常分析溯源算法使用) +' 返回: Collection +'===================================================================== +Public Function GetAllItems() As Collection + Set GetAllItems = pAllItems End Function \ No newline at end of file diff --git a/VBA/Modules/ErrorAnalysisModule.bas b/VBA/Modules/ErrorAnalysisModule.bas new file mode 100644 index 0000000..516d5e4 --- /dev/null +++ b/VBA/Modules/ErrorAnalysisModule.bas @@ -0,0 +1,559 @@ +'===================================================================== +' 模块名: ErrorAnalysisModule +' 功能: BOM匹配异常分析模块,仅提取报错订单,拆分多行,并自动回溯"未匹配参数" +' 特性: 采用"特征权重算法"解决模糊平局(Tie)导致的参数误报问题 +'===================================================================== + +Option Explicit + +' 提取条件配置 +Private Const CONDITION_CONFIG = "azxs,安装形式|bkxs,表壳形式|gclj,过程连接|jycz,接液材质|lcfw,量程范围|fjgn,附加功能" + +'===================================================================== +' 过程: GenerateErrorAnalysisReport +' 功能: 批量处理产品型号,输出BOM匹配异常报表 +'===================================================================== +Public Sub GenerateErrorAnalysisReport() + On Error GoTo ErrorHandler + + Dim startTime As Double + startTime = Timer + + Application.ScreenUpdating = False + Application.Calculation = xlCalculationManual + + ' 获取工作表 + Dim orderSheet As Worksheet + Dim bomSheet As Worksheet + Dim outputSheet As Worksheet + + Set orderSheet = GetOrderSheet() + If orderSheet Is Nothing Then + RestoreAppStatus + MsgBox "未找到[产品订单]工作表!", vbCritical + Exit Sub + End If + + Set bomSheet = GetBomSheet() + If bomSheet Is Nothing Then + RestoreAppStatus + MsgBox "未找到[平台配置清单]工作表!", vbCritical + Exit Sub + End If + + ' 初始化BOM提取器 + Dim BomExtractor As BomExtractor + Set BomExtractor = New BomExtractor + BomExtractor.SetWorksheet bomSheet + + If Not BomExtractor.LoadBomData Then + RestoreAppStatus + MsgBox "加载BOM数据失败:" & BomExtractor.GetErrorSummary, vbCritical + Exit Sub + End If + + ' 获取或创建输出表 + Set outputSheet = CreateErrorOutputSheet() + WriteOutputHeader outputSheet + + ' 获取筛选后的订单数据 + Dim lastRow As Long + lastRow = orderSheet.Cells(orderSheet.Rows.count, 3).End(xlUp).row + If lastRow < 2 Then + RestoreAppStatus + MsgBox "[产品订单]工作表中没有数据!", vbExclamation + Exit Sub + End If + + Dim sourceDataArr As Variant + sourceDataArr = orderSheet.Range("A2:F" & lastRow).value + + Dim visibleRange As Range + On Error Resume Next + Set visibleRange = orderSheet.Range("A2:A" & lastRow).SpecialCells(xlCellTypeVisible) + On Error GoTo ErrorHandler + + If visibleRange Is Nothing Then + RestoreAppStatus + MsgBox "当前筛选状态下没有可见的数据。", vbInformation + Exit Sub + End If + + ' 初始化正则表达式引擎 (只初始化一次,提速) + Dim regEx As Object + Set regEx = CreateObject("VBScript.RegExp") + regEx.Global = True + regEx.IgnoreCase = True + ' 匹配如 azxs=A0, fjgn!=N1 这样的条件结构 + regEx.Pattern = "(azxs|bkxs|gclj|jycz|lcfw|fjgn)\s*(!=|=)\s*([A-Za-z0-9_]+)" + + Dim outputData As Collection + Set outputData = New Collection + + Dim cell As Range + Dim arrIndex As Long + Dim totalProcessed As Long + Dim errorOrdersCount As Long + Dim errorRowsCount As Long + + totalProcessed = 0 + errorOrdersCount = 0 + errorRowsCount = 0 + + ' 遍历可见订单 + For Each cell In visibleRange + arrIndex = cell.row - 1 + + Dim totalQueueNum As String + Dim orderNumber As String + Dim modelString As String + Dim componentPriority As String + + totalQueueNum = Trim(sourceDataArr(arrIndex, 1)) + orderNumber = Trim(sourceDataArr(arrIndex, 2)) + modelString = Trim(sourceDataArr(arrIndex, 3)) + componentPriority = Trim(sourceDataArr(arrIndex, 6)) + + If modelString <> "" Then + totalProcessed = totalProcessed + 1 + + ' 解析并匹配BOM + Dim parser As ProductModelParser + Set parser = New ProductModelParser + + Dim hasError As Boolean + hasError = False + Dim errors As String + errors = "" + + If Not parser.Parse(modelString) Then + hasError = True + errors = "型号解析失败: " & parser.ErrorMessage + Else + ' 提取逻辑 + BomExtractor.ClearExcludeCategories + If UCase(componentPriority) = "否" Or componentPriority = "0" Or componentPriority = "FALSE" Then + Dim excludeCats As New Collection + excludeCats.Add "部件" + BomExtractor.SetExcludeCategories excludeCats + End If + + Dim matchedItems As Collection + Set matchedItems = BomExtractor.ExtractBom(parser.conditions) + + errors = BomExtractor.GetErrorSummary() + If errors <> "" Or matchedItems.count = 0 Then + hasError = True + If errors = "" And matchedItems.count = 0 Then + errors = "完全未匹配到物料" + End If + End If + + ' 深度检查BOM行自身的报错(如"匹配到多条") + Dim item As BomItem + For Each item In matchedItems + If item.MatchError <> "" Then + hasError = True + errors = errors & item.category & ":" & item.MatchError & ";" + End If + Next item + End If + + ' 如果存在错误,拆分为多行并寻找未匹配参数 + If hasError Then + errorOrdersCount = errorOrdersCount + 1 + + Dim errArray() As String + errArray = Split(errors, ";") + Dim i As Long + + For i = LBound(errArray) To UBound(errArray) + Dim singleError As String + singleError = Trim(errArray(i)) + + If singleError <> "" Then + Dim unmatchedValues As String + unmatchedValues = "无法精准定位" + + ' 如果是型号解析失败,跳过溯源 + If InStr(singleError, "型号解析失败") = 0 And InStr(singleError, "完全未匹配到物料") = 0 Then + Dim targetCategory As String + targetCategory = ExtractCategoryName(singleError) + + If targetCategory <> "" Then + ' 核心:调用带权重的重合度算法定位冲突参数(通过 | 分隔) + unmatchedValues = FindUnmatchedParameter(targetCategory, parser.conditions, BomExtractor.GetAllItems(), regEx) + End If + End If + + ' ---> 拆分未匹配参数,避免糅合在一起 + Dim unmatchArr() As String + unmatchArr = Split(unmatchedValues, "|") + + Dim j As Long + For j = LBound(unmatchArr) To UBound(unmatchArr) + Dim singleUnmatch As String + singleUnmatch = Trim(unmatchArr(j)) + If singleUnmatch <> "" Then + outputData.Add CreateErrorRowArray(totalQueueNum, orderNumber, modelString, parser.conditions, singleUnmatch, singleError) + errorRowsCount = errorRowsCount + 1 + End If + Next j + End If + Next i + End If + End If + Next cell + + ' 批量写入数据 + If outputData.count > 0 Then + WriteBatchData outputSheet, outputData + Else + MsgBox "太棒了!所选订单均完美匹配BOM,未发现任何异常。", vbInformation + End If + + ' 格式化表格 + FormatOutputSheet outputSheet + + RestoreAppStatus + Dim elapsedTime As Double + elapsedTime = Timer - startTime + + MsgBox "异常分析完成!" & vbCrLf & _ + "共检查订单: " & totalProcessed & vbCrLf & _ + "发现异常订单: " & errorOrdersCount & vbCrLf & _ + "生成异常明细: " & errorRowsCount & " 行" & vbCrLf & _ + "用时: " & Format(elapsedTime, "0.00") & "秒", vbInformation + + outputSheet.Activate + Exit Sub + +ErrorHandler: + RestoreAppStatus + MsgBox "异常分析发生错误: " & Err.Description, vbCritical +End Sub + +'===================================================================== +' 核心算法: FindUnmatchedParameter (带权重的最大特征重合度算法) +' 功能: 分析BOM库,找出与当前订单特征最相似的物料,并提取冲突(未匹配)的参数值 +'===================================================================== +Private Function FindUnmatchedParameter(category As String, productConds As Object, allBomItems As Collection, regEx As Object) As String + ' 使用 Long 类型,因为加入权重后得分会超过 Integer 上限 + Dim maxScore As Long + maxScore = -1 + Dim bestConflictKeys As String + bestConflictKeys = "" + + Dim item As BomItem + + ' 遍历BOM库中同类别的所有物料 + For Each item In allBomItems + If item.category = category And Trim(item.SelectCondition) <> "" Then + + Dim allowed As Object + Set allowed = CreateObject("Scripting.Dictionary") + Dim forbidden As Object + Set forbidden = CreateObject("Scripting.Dictionary") + + ' 使用正则提取该物料的所有约束条件 (如 azxs=A0) + Dim matches As Object + Set matches = regEx.Execute(item.SelectCondition) + + Dim match As Object + For Each match In matches + Dim k As String, op As String, v As String + k = match.SubMatches(0) + op = Trim(match.SubMatches(1)) + v = Trim(match.SubMatches(2)) + + If op = "=" Then + If Not allowed.Exists(k) Then allowed(k) = "|" + allowed(k) = allowed(k) & v & "|" + ElseIf op = "!=" Or op = "<>" Then + If Not forbidden.Exists(k) Then forbidden(k) = "|" + forbidden(k) = forbidden(k) & v & "|" + End If + Next match + + ' 合并出现过的所有参数键 + Dim allRuleKeys As Object + Set allRuleKeys = CreateObject("Scripting.Dictionary") + + Dim vKey As Variant + For Each vKey In allowed.Keys: allRuleKeys(vKey) = True: Next vKey + For Each vKey In forbidden.Keys: allRuleKeys(vKey) = True: Next vKey + + Dim currentScore As Long + currentScore = 0 + Dim currentConflicts As String + currentConflicts = "" + + ' 计算该物料与实际订单参数的重合度得分 + Dim keyVar As Variant + For Each keyVar In allRuleKeys.Keys + Dim keyStr As String + keyStr = CStr(keyVar) + + Dim prodVal As String + If productConds.Exists(keyStr) Then prodVal = productConds(keyStr) Else prodVal = "" + + Dim isMatch As Boolean + isMatch = False + + If allowed.Exists(keyStr) Then + ' 如果实际值包含在允许值中,则得分 + If InStr(allowed(keyStr), "|" & prodVal & "|") > 0 Then + isMatch = True + End If + ElseIf forbidden.Exists(keyStr) Then + ' 如果没有允许值限制,只有禁止值限制,且实际值不在禁止值中,则得分 + If InStr(forbidden(keyStr), "|" & prodVal & "|") = 0 Then + isMatch = True + End If + End If + + If isMatch Then + ' 【核心修改】引入特征权重,让系统具备业务直觉 + currentScore = currentScore + GetFeatureWeight(keyStr) + Else + currentConflicts = currentConflicts & keyStr & "," + End If + Next keyVar + + ' 更新最高得分记录 + If currentScore > maxScore Then + maxScore = currentScore + bestConflictKeys = currentConflicts + ElseIf currentScore = maxScore And currentScore > 0 Then + ' 如果权重得分依然相同,合并所有可能的冲突原因 + Dim keysArray() As String + keysArray = Split(currentConflicts, ",") + Dim cKey As Variant + For Each cKey In keysArray + If Trim(cKey) <> "" And InStr(bestConflictKeys, cKey & ",") = 0 Then + bestConflictKeys = bestConflictKeys & cKey & "," + End If + Next cKey + End If + + End If + Next item + + ' 将最高分的冲突Key翻译为实际的参数值 + If bestConflictKeys <> "" Then + Dim resultStr As String + resultStr = "" + Dim finalKeys() As String + finalKeys = Split(bestConflictKeys, ",") + + Dim fKey As Variant + For Each fKey In finalKeys + If Trim(fKey) <> "" Then + Dim actVal As String + If productConds.Exists(fKey) Then actVal = productConds(fKey) Else actVal = "无值" + + ' 使用 | 作为分隔符进行拼接去重 + If resultStr = "" Then + resultStr = actVal + Else + If InStr("|" & resultStr & "|", "|" & actVal & "|") = 0 Then + resultStr = resultStr & "|" & actVal + End If + End If + End If + Next fKey + + If resultStr <> "" Then + FindUnmatchedParameter = resultStr + Else + FindUnmatchedParameter = "无法精准定位" + End If + Else + FindUnmatchedParameter = "无法精准定位" + End If +End Function + +'===================================================================== +' 辅助函数: GetFeatureWeight +' 功能: 获取字段的匹配权重,严格保证高优先级特征的决定性 +'===================================================================== +Private Function GetFeatureWeight(keyStr As String) As Long + Select Case LCase(Trim(keyStr)) + Case "azxs" + GetFeatureWeight = 10000 ' 安装形式 - 决定物理结构,最重要 + Case "bkxs" + GetFeatureWeight = 1000 ' 表壳形式 + Case "gclj" + GetFeatureWeight = 100 ' 过程连接 + Case "jycz" + GetFeatureWeight = 50 ' 接液材质 + Case "lcfw" + GetFeatureWeight = 10 ' 量程范围 + Case "fjgn" + GetFeatureWeight = 1 ' 附加功能 + Case Else + GetFeatureWeight = 0 + End Select +End Function + +'===================================================================== +' 辅助函数: ExtractCategoryName +' 功能: 从报错文本如 "必需类别[部件]未匹配" 中提取出 "部件" +'===================================================================== +Private Function ExtractCategoryName(errorMsg As String) As String + Dim startPos As Long + Dim endPos As Long + startPos = InStr(errorMsg, "[") + endPos = InStr(errorMsg, "]") + + If startPos > 0 And endPos > startPos Then + ExtractCategoryName = Mid(errorMsg, startPos + 1, endPos - startPos - 1) + Else + ExtractCategoryName = "" + End If +End Function + +'===================================================================== +' 过程: WriteOutputHeader +'===================================================================== +Private Sub WriteOutputHeader(ws As Worksheet) + Dim col As Long + col = 1 + + ws.Cells(1, col).value = "总排号": col = col + 1 + ws.Cells(1, col).value = "生产订单号": col = col + 1 + ws.Cells(1, col).value = "产品型号": col = col + 1 + + Dim configs() As String + configs = Split(CONDITION_CONFIG, "|") + Dim i As Long + For i = LBound(configs) To UBound(configs) + ws.Cells(1, col).value = Trim(Split(configs(i), ",")(1)) + col = col + 1 + Next i + + ws.Cells(1, col).value = "未匹配参数": col = col + 1 + ws.Cells(1, col).value = "提取备注": col = col + 1 +End Sub + +'===================================================================== +' 函数: CreateErrorRowArray +' 功能: 构建输出的一行数据 +'===================================================================== +Private Function CreateErrorRowArray(totalQueueNum As String, orderNumber As String, _ + modelStr As String, conditions As Object, _ + unmatchedValue As String, errorNote As String) As Variant() + Dim configs() As String + configs = Split(CONDITION_CONFIG, "|") + + Dim totalCols As Long + totalCols = 3 + UBound(configs) - LBound(configs) + 1 + 2 + + ReDim rowData(1 To totalCols) As Variant + Dim col As Long + col = 1 + + rowData(col) = totalQueueNum: col = col + 1 + rowData(col) = orderNumber: col = col + 1 + rowData(col) = modelStr: col = col + 1 + + Dim i As Long + For i = LBound(configs) To UBound(configs) + Dim key As String + key = Trim(Split(configs(i), ",")(0)) + If conditions.Exists(key) Then + rowData(col) = conditions(key) + Else + rowData(col) = "" + End If + col = col + 1 + Next i + + rowData(col) = unmatchedValue: col = col + 1 + rowData(col) = errorNote: col = col + 1 + + CreateErrorRowArray = rowData +End Function + +'===================================================================== +' 过程: WriteBatchData +'===================================================================== +Private Sub WriteBatchData(ws As Worksheet, outputData As Collection) + Dim firstRow As Variant + firstRow = outputData(1) + + Dim rowCount As Long + Dim colCount As Long + rowCount = outputData.count + colCount = UBound(firstRow) - LBound(firstRow) + 1 + + Dim resultData() As Variant + ReDim resultData(1 To rowCount, 1 To colCount) + + Dim i As Long, j As Long + Dim rowArray As Variant + For i = 1 To rowCount + rowArray = outputData(i) + For j = 1 To colCount + resultData(i, j) = rowArray(j) + Next j + Next i + + ws.Range("A2").Resize(rowCount, colCount).value = resultData +End Sub + +'===================================================================== +' 辅助过程 +'===================================================================== +Private Function GetOrderSheet() As Worksheet + On Error Resume Next + Set GetOrderSheet = ThisWorkbook.Worksheets("产品订单") + If GetOrderSheet Is Nothing Then Set GetOrderSheet = ActiveSheet + On Error GoTo 0 +End Function + +Private Function GetBomSheet() As Worksheet + On Error Resume Next + Set GetBomSheet = ThisWorkbook.Worksheets("平台配置清单") + On Error GoTo 0 +End Function + +Private Function CreateErrorOutputSheet() As Worksheet + Dim wsName As String + wsName = "BOM匹配异常报表" + On Error Resume Next + Set CreateErrorOutputSheet = ThisWorkbook.Worksheets(wsName) + On Error GoTo 0 + + If CreateErrorOutputSheet Is Nothing Then + Set CreateErrorOutputSheet = ThisWorkbook.Worksheets.Add + CreateErrorOutputSheet.Name = wsName + Else + CreateErrorOutputSheet.Cells.Clear + End If +End Function + +Private Sub FormatOutputSheet(ws As Worksheet) + On Error Resume Next + With ws.Rows(1) + .Font.Bold = True + .Interior.Color = RGB(244, 176, 132) ' 橙色背景,突出异常属性 + .HorizontalAlignment = xlCenter + End With + + ' 将"未匹配参数"列(倒数第2列)加粗显示,颜色标红 + Dim unmatchCol As Long + unmatchCol = ws.Cells(1, ws.Columns.count).End(xlToLeft).Column - 1 + If unmatchCol > 0 Then + ws.Columns(unmatchCol).Font.Color = RGB(255, 0, 0) + ws.Columns(unmatchCol).Font.Bold = True + End If + + ws.Columns.AutoFit + On Error GoTo 0 +End Sub + +Private Sub RestoreAppStatus() + Application.Calculation = xlCalculationAutomatic + Application.ScreenUpdating = True +End Sub \ No newline at end of file diff --git a/reference_docs/平台配置清单-demo.md b/reference_docs/平台配置清单-demo.md new file mode 100644 index 0000000..b30128f --- /dev/null +++ b/reference_docs/平台配置清单-demo.md @@ -0,0 +1,115 @@ +| 代号 | Y-100 | 描述 | | 英文名称 | | | | | | | | | +|------|---------|--------------|------------|------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----|------|------|--------|-------------|---------|-----------------| +| 名称 | 压力表 | 负责人 | | 备注 | | | | | | | | | +| 行号 | 模块 | 代号 | 名称 | 数量 | 选择条件 | 备注 | 类别 | 上层类别 | 类别选用条件 | 66代码 | BIP行号基数 | 修改备注 | +| 10 | 表壳 | 01091004644 | 轴向表壳(黑色) | 1 | (azxs=B0 OR azxs=BT) AND (bkxs=200 OR bkxs=210) | | 表壳 | | | 66071004644 | 7100 | | +| 20 | 表壳 | 01091004647 | 轴向表壳(抛光) | 1 | azxs=B0 AND bkxs=500 | | 表壳 | | | 66071004647 | 7100 | | +| 30 | 表壳 | 01091004643 | 径向表壳(黑色) | 1 | (azxs=A0 OR azxs=AT) AND (bkxs=200 OR bkxs=210) | | 表壳 | | | 66071004643 | 7100 | | +| 40 | 表壳 | 01091004648 | 径向表壳(抛光) | 1 | azxs=A0 AND bkxs=500 | | 表壳 | | | 66071004648 | 7100 | | +| 50 | 表壳 | 01081013918 | 带后边表壳(黑色) | 1 | azxs=AH AND (bkxs=200 OR bkxs=210) | | 表壳 | | | 66051013918 | 7100 | | +| 60 | 罩壳 | 01091004768 | 罩壳(抛光) | 1 | azxs=A0 AND bkxs=500 | | 罩壳 | | | 66071004768 | 7100 | | +| 70 | 罩壳 | 01091005032 | 罩壳(抛光) | 1 | azxs=B0 AND bkxs=500 | | 罩壳 | | | 66071005032 | 7100 | 改为 66071005032 | +| 80 | 罩壳 | 01091004624 | 罩壳(黑色) | 1 | azxs=AT AND bkxs=200 | | 罩壳 | | | 66071004624 | 7100 | | +| 90 | 罩壳 | 01091004623 | 罩壳(亮) | 1 | azxs=A0 AND bkxs=210 | | 罩壳 | | | 66071004623 | 7100 | | +| 100 | 罩壳 | 01091004621 | 罩壳(亮) | 1 | azxs=BT AND bkxs=210 | | 罩壳 | | | 66071004621 | 7100 | | +| 110 | 罩壳 | 01091004620 | 罩壳(黑色) | 1 | azxs=BT AND bkxs=200 | | 罩壳 | | | 66071004620 | 7100 | | +| 120 | 罩壳 | 01091004619 | 罩壳(黑色) | 1 | azxs=B0 AND bkxs=200 | | 罩壳 | | | 66071004619 | 7100 | | +| 130 | 罩壳 | 01091004618 | 罩壳(黑色) | 1 | azxs=A0 AND bkxs=200 | | 罩壳 | | | 66071004618 | 7100 | | +| 140 | 罩壳 | 01091004617 | 罩壳(亮) | 1 | azxs=B0 AND bkxs=210 | | 罩壳 | | | 66071004617 | 7100 | | +| 150 | 玻璃 | 01111001334 | 表玻璃 | 1 | fjgn!=N1 | | 玻璃 | | | 66201001334 | 7100 | | +| 160 | 定位型玻璃部件 | 01111001335 | 表玻璃 | 1 | fjgn=N1 | | 玻璃 | | | 66201001202 | 7100 | 改为 66201001202 | +| 170 | 定位型玻璃部件 | 01091004453 | 100 红色定位指针 | 1 | fjgn= N1 | | | | | 66071004453 | 7100 | | +| 180 | 定位型玻璃部件 | 01091004451 | 100 绿色定位指针 | 1 | fjgn=N1 | | | | | 66071004451 | 7100 | | +| 190 | 定位型玻璃部件 | 01081014387 | 定位钉 | 1 | fjgn=N1 | | | | | 66051014387 | 7100 | | +| 200 | 定位型玻璃部件 | 01201002619 | 固定套 | 1 | fjgn=N1 | | | | | 66991922619 | 7100 | | +| 210 | 定位型玻璃部件 | 01121002259 | 橡胶垫<2> | 1 | fjgn=N1 | | | | | 66181002259 | 7100 | | +| 220 | 定位型玻璃部件 | 01121002258 | 橡胶垫<1> | 1 | fjgn=N1 | | | | | 66181002258 | 7100 | | +| 230 | 定位型玻璃部件 | 01140003351 | O型圈 | 1 | fjgn=N1 | | | | | 66220003351 | 7100 | | +| 240 | 定位型玻璃部件 | 01140003353 | O型圈 | 1 | fjgn=N1 | | | | | 66220003353 | 7100 | | +| 250 | 衬圈 | 01121002271 | 衬圈 | 1 | | | 衬圈 | | | 66181002271 | 7100 | | +| 260 | 表壳螺钉 | 01140002660 | 表壳螺钉 | 3 | | | | | | 260 | | | +| 270 | 罩壳螺钉 | 01140002701 | 罩壳螺钉 | 2 | | | | | | 270 | | | +| 280 | 铅封螺钉 | 01081008107 | 铅封螺钉 | 1 | | | | | | 66051008107 | | | +| 290 | 表盘螺钉 | 01140002695 | 表盘螺钉 | 2 | | | | | | 290 | | | +| 300 | 盘止钉 | 01081005277 | 盘止钉 | 1 | lcfw=M01 OR lcfw=M02 OR lcfw=M03 OR lcfw=M04 OR lcfw=M05 OR lcfw=M06 OR lcfw=M07 OR lcfw=M08 OR lcfw=M09 OR lcfw=M10 OR lcfw=M11 OR lcfw=M12 OR lcfw=M13 OR lcfw=M14 OR lcfw=M15 OR lcfw=M16 OR lcfw=M30 | | | | | 300 | | | +| 310 | 接头部件 | 01011019173 | 径向部件 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND (lcfw=M01 OR lcfw=K78) AND gclj=M20 | | 部件 | | | 66021019173 | 7200 | | +| 320 | 接头部件 | 01011019174 | 径向部件 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND lcfw=M02 AND gclj=M20 | | 部件 | | | 66021019174 | 7200 | | +| 330 | 接头部件 | 01011019175 | 径向部件 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND lcfw=M03 AND gclj=M20 | | 部件 | | | 66021019175 | 7200 | | +| 340 | 接头部件 | 01011019176 | 径向部件 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND lcfw=M04 AND gclj=M20 | | 部件 | | | 66021019176 | 7200 | | +| 350 | 接头部件 | 01011019177 | 径向部件 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND lcfw=M05 AND gclj=M20 | | 部件 | | | 66021019177 | 7200 | | +| 360 | 接头部件 | 01011019178 | 径向部件 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND lcfw=M06 AND gclj=M20 | | 部件 | | | 66021019178 | 7200 | | +| 370 | 接头部件 | 01011019179 | 径向部件 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND lcfw=M07 AND gclj=M20 | | 部件 | | | 66021019179 | 7200 | | +| 380 | 接头部件 | 01011019180 | 径向部件 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND lcfw=M08 AND gclj=M20 | | 部件 | | | 66021019180 | 7200 | | +| 390 | 接头部件 | 01011019181 | 径向部件 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND lcfw=M09 AND gclj=M20 | | 部件 | | | 66021019181 | 7200 | | +| 400 | 接头部件 | 01011019182 | 径向部件 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND lcfw=M10 AND gclj=M20 | | 部件 | | | 66021019182 | 7200 | | +| 410 | 接头部件 | 01011019183 | 径向部件 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND lcfw=M11 AND gclj=M20 | | 部件 | | | 66021019183 | 7200 | | +| 420 | 接头部件 | 01011019184 | 径向部件 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND lcfw=M12 AND gclj=M20 | | 部件 | | | 66021019184 | 7200 | | +| 430 | 接头部件 | 01011019185 | 径向部件 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND lcfw=M13 AND gclj=M20 | | 部件 | | | 66021019185 | 7200 | | +| 440 | 接头部件 | 01011019186 | 径向部件 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND lcfw=M14 AND gclj=M20 | | 部件 | | | 66021019186 | 7200 | | +| 450 | 接头部件 | 01011019187 | 径向部件 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND lcfw=M15 AND gclj=M20 | | 部件 | | | 66021019187 | 7200 | | +| 460 | 接头部件 | 01011019188 | 径向部件 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND lcfw=M16 AND gclj=M20 | | 部件 | | | 66021019188 | 7200 | | +| 470 | 接头部件 | 01011019189 | 轴向部件 | 1 | (azxs=B0 OR azxs=BT) AND (lcfw=M02 OR lcfw=K107) AND gclj=M20 | | 部件 | | | 66021019189 | 7200 | | +| 480 | 接头部件 | 01011019190 | 轴向部件 | 1 | (azxs=B0 OR azxs=BT) AND lcfw=M03 AND gclj=M20 | | 部件 | | | 66021019190 | 7200 | | +| 490 | 接头部件 | 01011019191 | 轴向部件 | 1 | (azxs=B0 OR azxs=BT) AND lcfw=M04 AND gclj=M20 | | 部件 | | | 66021019191 | 7200 | | +| 500 | 接头部件 | 01011019192 | 轴向部件 | 1 | (azxs=B0 OR azxs=BT) AND lcfw=M05 AND gclj=M20 | | 部件 | | | 66021019192 | 7200 | | +| 510 | 接头部件 | 01011019193 | 轴向部件 | 1 | (azxs=B0 OR azxs=BT) AND lcfw=M06 AND gclj=M20 | | 部件 | | | 66021019193 | 7200 | | +| 520 | 接头部件 | 01011019194 | 轴向部件 | 1 | (azxs=B0 OR azxs=BT) AND lcfw=M07 AND gclj=M20 | | 部件 | | | 66021019194 | 7200 | | +| 530 | 接头部件 | 01011019195 | 轴向部件 | 1 | (azxs=B0 OR azxs=BT) AND lcfw=M08 AND gclj=M20 | | 部件 | | | 66021019195 | 7200 | | +| 540 | 接头部件 | 01011019196 | 轴向部件 | 1 | (azxs=B0 OR azxs=BT) AND lcfw=M09 AND gclj=M20 | | 部件 | | | 66021019196 | 7200 | | +| 550 | 接头部件 | 01011019197 | 轴向部件 | 1 | (azxs=B0 OR azxs=BT) AND lcfw=M10 AND gclj=M20 | | 部件 | | | 66021019197 | 7200 | | +| 560 | 接头部件 | 01011019198 | 轴向部件 | 1 | (azxs=B0 OR azxs=BT) AND lcfw=M11 AND gclj=M20 | | 部件 | | | 66021019198 | 7200 | | +| 570 | 接头部件 | 01011019199 | 轴向部件 | 1 | (azxs=B0 OR azxs=BT) AND lcfw=M12 AND gclj=M20 | | 部件 | | | 66021019199 | 7200 | | +| 580 | 接头部件 | 01011019200 | 轴向部件 | 1 | (azxs=B0 OR azxs=BT) AND lcfw=M13 AND gclj=M20 | | 部件 | | | 66021019200 | 7200 | | +| 590 | 接头部件 | 01011019201 | 轴向部件 | 1 | (azxs=B0 OR azxs=BT) AND lcfw=M14 AND gclj=M20 | | 部件 | | | 66021019201 | 7200 | | +| 600 | 接头部件 | 01011019172 | 轴向部件 | 1 | (azxs=B0 OR azxs=BT) AND lcfw=M15 AND gclj=M20 | | | | | 66021019172 | 7200 | 删除 | +| 610 | 接头部件 | 01011019202 | 轴向部件 | 1 | (azxs=B0 OR azxs=BT) AND lcfw=M01 AND gclj=M20 | | 部件 | | | 66021019202 | 7200 | | +| 620 | 接头部件 | 01011019203 | 轴向部件 | 1 | (azxs=B0 OR azxs=BT) AND lcfw=M16 AND gclj=M20 | | 部件 | | | 66021019203 | 7200 | | +| 630 | 接头 | 01081013687 | 径向低压接头 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND gclj=M14 AND (lcfw=M01 OR lcfw=M02 OR lcfw=M03 OR lcfw=M04 OR lcfw=M05 OR lcfw=M06 OR lcfw=M07 OR lcfw=M08 OR lcfw=M09 OR lcfw=M10 OR lcfw=M11 ) | | 接头 | 部件 | | 66051013687 | 7200 | | +| 640 | 接头 | 01081013686 | 径向低压接头 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND gclj=Z14 AND (lcfw=M01 OR lcfw=M02 OR lcfw=M03 OR lcfw=M04 OR lcfw=M05 OR lcfw=M06 OR lcfw=M07 OR lcfw=M08 OR lcfw=M09 OR lcfw=M10 OR lcfw=M11) | | 接头 | 部件 | | 66051013686 | 7200 | | +| 650 | 接头 | 01081013685 | 径向低压接头 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND gclj=G14 AND (lcfw=M01 OR lcfw=M02 OR lcfw=M03 OR lcfw=M04 OR lcfw=M05 OR lcfw=M06 OR lcfw=M07 OR lcfw=M08 OR lcfw=M09 OR lcfw=M10 OR lcfw=M11) | | 接头 | 部件 | | 66051013685 | 7200 | | +| 660 | 接头 | 01081013684 | 径向低压接头 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND gclj=G12 AND (lcfw=M01 OR lcfw=M02 OR lcfw=M03 OR lcfw=M04 OR lcfw=M05 OR lcfw=M06 OR lcfw=M07 OR lcfw=M08 OR lcfw=M09 OR lcfw=M10 OR lcfw=M11) | | 接头 | 部件 | | 66051013684 | 7200 | | +| 670 | 接头 | 01081013683 | 径向低压接头 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND gclj=G38 AND (lcfw=M01 OR lcfw=M02 OR lcfw=M03 OR lcfw=M04 OR lcfw=M05 OR lcfw=M06 OR lcfw=M07 OR lcfw=M08 OR lcfw=M09 OR lcfw=M10 OR lcfw=M11) | | 接头 | 部件 | | 66051013683 | 7200 | | +| 680 | 接头 | 01081013682 | 径向低压接头 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND gclj=R12 AND (lcfw=M01 OR lcfw=M02 OR lcfw=M03 OR lcfw=M04 OR lcfw=M05 OR lcfw=M06 OR lcfw=M07 OR lcfw=M08 OR lcfw=M09 OR lcfw=M10 OR lcfw=M11) | | 接头 | 部件 | | 66051013682 | 7200 | | +| 690 | 接头 | 01081013681 | 径向低压接头 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND gclj=Z12 AND (lcfw=M01 OR lcfw=M02 OR lcfw=M03 OR lcfw=M04 OR lcfw=M05 OR lcfw=M06 OR lcfw=M07 OR lcfw=M08 OR lcfw=M09 OR lcfw=M10 OR lcfw=M11) | | 接头 | 部件 | | 66051013681 | 7200 | | +| 700 | 接头 | 01081014361 | 径向高压接头 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND gclj=Z14 AND (lcfw=M12 OR lcfw=M13 OR lcfw=M14 OR lcfw=M15 OR lcfw=M16) | | 接头 | 部件 | | 66码缺失 | 7200 | | +| 710 | 接头 | 01081013694 | 径向高压接头 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND gclj=G12 AND (lcfw=M12 OR lcfw=M13 OR lcfw=M14 OR lcfw=M15 OR lcfw=M16) | | 接头 | 部件 | | 66051013694 | 7200 | | +| 720 | 接头 | 01081013692 | 径向高压接头 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND gclj=M14 AND (lcfw=M12 OR lcfw=M13 OR lcfw=M14 OR lcfw=M15 OR lcfw=M16) | | 接头 | 部件 | | 66051013692 | 7200 | | +| 730 | 接头 | 01081013691 | 径向高压接头 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND gclj=R12 AND (lcfw=M12 OR lcfw=M13 OR lcfw=M14 OR lcfw=M15 OR lcfw=M16) | | 接头 | 部件 | | 66051013691 | 7200 | | +| 740 | 接头 | 01081013690 | 径向高压接头 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND gclj=Z12 AND (lcfw=M12 OR lcfw=M13 OR lcfw=M14 OR lcfw=M15 OR lcfw=M16) | | 接头 | 部件 | | 66051013690 | 7200 | | +| 750 | 接头 | 01081013702 | 下轴向低压接头 | 1 | (azxs=B0 OR azxs=BT) AND gclj=R12 AND (lcfw=M01 OR lcfw=M02 OR lcfw=M03 OR lcfw=M04 OR lcfw=M05 OR lcfw=M06 OR lcfw=M07 OR lcfw=M08 OR lcfw=M09 OR lcfw=M10 OR lcfw=M11 OR lcfw=K107 ) | | 接头 | 部件 | | 66051013702 | 7200 | | +| 760 | 接头 | 01081013701 | 下轴向低压接头 | 1 | (azxs=B0 OR azxs=BT) AND gclj=M14 AND (lcfw=M01 OR lcfw=M02 OR lcfw=M03 OR lcfw=M04 OR lcfw=M05 OR lcfw=M06 OR lcfw=M07 OR lcfw=M08 OR lcfw=M09 OR lcfw=M10 OR lcfw=M11 OR lcfw=K107) | | 接头 | 部件 | | 66051013701 | 7200 | | +| 770 | 接头 | 01081013700 | 下轴向低压接头 | 1 | (azxs=B0 OR azxs=BT) AND gclj=Z12 AND (lcfw=M01 OR lcfw=M02 OR lcfw=M03 OR lcfw=M04 OR lcfw=M05 OR lcfw=M06 OR lcfw=M07 OR lcfw=M08 OR lcfw=M09 OR lcfw=M10 OR lcfw=M11 OR lcfw=K107) | | 接头 | 部件 | | 66051013700 | 7200 | | +| 780 | 接头 | 01081013698 | 下轴向低压接头 | 1 | (azxs=B0 OR azxs=BT) AND gclj=G14 AND (lcfw=M01 OR lcfw=M02 OR lcfw=M03 OR lcfw=M04 OR lcfw=M05 OR lcfw=M06 OR lcfw=M07 OR lcfw=M08 OR lcfw=M09 OR lcfw=M10 OR lcfw=M11 OR lcfw=K107) | | 接头 | 部件 | | 66051013698 | 7200 | | +| 790 | 接头 | 01081013697 | 下轴向低压接头 | 1 | (azxs=B0 OR azxs=BT) AND gclj=Z14 AND (lcfw=M01 OR lcfw=M02 OR lcfw=M03 OR lcfw=M04 OR lcfw=M05 OR lcfw=M06 OR lcfw=M07 OR lcfw=M08 OR lcfw=M09 OR lcfw=M10 OR lcfw=M11 OR lcfw=K107) | | 接头 | 部件 | | 66051013697 | 7200 | | +| 800 | 接头 | 01081013696 | 下轴向低压接头 | 1 | (azxs=B0 OR azxs=BT) AND gclj=G12 AND (lcfw=M01 OR lcfw=M02 OR lcfw=M03 OR lcfw=M04 OR lcfw=M05 OR lcfw=M06 OR lcfw=M07 OR lcfw=M08 OR lcfw=M09 OR lcfw=M10 OR lcfw=M11 OR lcfw=K107) | | 接头 | 部件 | | 66051013696 | 7200 | | +| 810 | 接头 | 01081013709 | 下轴向高压接头 | 1 | (azxs=B0 OR azxs=BT) AND gclj=M14 AND (lcfw=M12 OR lcfw=M13 OR lcfw=M14 OR lcfw=M15 OR lcfw=M16) | | 接头 | 部件 | | 66051013709 | 7200 | | +| 820 | 接头 | 01081013707 | 下轴向高压接头 | 1 | (azxs=B0 OR azxs=BT) AND gclj=G14 AND (lcfw=M12 OR lcfw=M13 OR lcfw=M14 OR lcfw=M15 OR lcfw=M16) | | 接头 | 部件 | | 66051013707 | 7200 | | +| 830 | 接头 | 01081013706 | 下轴向高压接头 | 1 | (azxs=B0 OR azxs=BT) AND gclj=Z14 AND (lcfw=M12 OR lcfw=M13 OR lcfw=M14 OR lcfw=M15 OR lcfw=M16) | | 接头 | 部件 | | 66051013706 | 7200 | | +| 840 | 接头 | 01081013705 | 下轴向高压接头 | 1 | (azxs=B0 OR azxs=BT) AND gclj=G12 AND (lcfw=M12 OR lcfw=M13 OR lcfw=M14 OR lcfw=M15 OR lcfw=M16) | | 接头 | 部件 | | 66051013705 | 7200 | | +| 850 | 接头 | 01081013704 | 下轴向高压接头 | 1 | (azxs=B0 OR azxs=BT) AND gclj=R12 AND (lcfw=M12 OR lcfw=M13 OR lcfw=M14 OR lcfw=M15 OR lcfw=M16) | | 接头 | 部件 | | 66051013704 | 7200 | | +| 860 | 弹性元件 | 01041005171 | 弹簧管 | 1 | lcfw=M01 AND gclj!=M20 | | 弹性元件 | 部件 | | 66131005171 | 7200 | | +| 870 | 弹性元件 | 01041005169 | 弹簧管 | 1 | lcfw=M02 AND gclj!=M20 | | 弹性元件 | 部件 | | 66131005169 | 7200 | | +| 880 | 弹性元件 | 01041005170 | 弹簧管 | 1 | lcfw=M03 AND gclj!=M20 | | 弹性元件 | 部件 | | 66131005170 | 7200 | | +| 890 | 弹性元件 | 01041005453 | 弹簧管 | 1 | lcfw=M04 AND gclj!=M20 | | 弹性元件 | 部件 | | 66131005453 | 7200 | | +| 900 | 弹性元件 | 01041005235 | 弹簧管 | 1 | lcfw=M05 AND gclj!=M20 | | 弹性元件 | 部件 | | 66131005235 | 7200 | | +| 910 | 弹性元件 | 01041005114 | 弹簧管 | 1 | lcfw=M06 AND gclj!=M20 | | 弹性元件 | 部件 | | 66131005114 | 7200 | | +| 920 | 弹性元件 | 01041005230 | 弹簧管 | 1 | lcfw=M07 AND gclj!=M20 | | 弹性元件 | 部件 | | 66131005230 | 7200 | | +| 930 | 弹性元件 | 01041005233 | 弹簧管 | 1 | lcfw=M08 AND gclj!=M20 | | 弹性元件 | 部件 | | 66131005233 | 7200 | | +| 940 | 弹性元件 | 01041005229 | 弹簧管 | 1 | lcfw=M09 AND gclj!=M20 | | 弹性元件 | 部件 | | 66131005229 | 7200 | | +| 950 | 弹性元件 | 01041005172 | 弹簧管 | 1 | lcfw=M10 AND gclj!=M20 | | 弹性元件 | 部件 | | 66131005172 | 7200 | | +| 960 | 弹性元件 | 01041005452 | 弹簧管 | 1 | lcfw=M11 AND gclj!=M20 | | 弹性元件 | 部件 | | 66131005452 | 7200 | | +| 970 | 弹性元件 | 01041005005 | 螺旋管 | 1 | lcfw=M12 AND gclj!=M20 | | 弹性元件 | 部件 | | 66131005005 | 7200 | | +| 980 | 弹性元件 | 01041005006 | 螺旋管 | 1 | lcfw=M13 AND gclj!=M20 | | 弹性元件 | 部件 | | 66131005006 | 7200 | | +| 990 | 弹性元件 | 01041005007 | 螺旋管 | 1 | lcfw=M14 AND gclj!=M20 | | 弹性元件 | 部件 | | 66131005007 | 7200 | | +| 1000 | 弹性元件 | 01041005008 | 螺旋管 | 1 | lcfw=M15 AND gclj!=M20 | | 弹性元件 | 部件 | | 66131005008 | 7200 | | +| 1010 | 弹性元件 | 01041005009 | 螺旋管 | 1 | lcfw=M16 AND gclj!=M20 | | 弹性元件 | 部件 | | 66131005009 | 7200 | | +| 1020 | 封口片 | 01091003680 | 高压封口片 | 1 | (lcfw=M12 OR lcfw=M13 OR lcfw=M14 OR lcfw=M15 OR lcfw=M16)AND gclj!=M20 | | | | | 66071003680 | | | +| 1030 | 封口片 | 01091003663 | 低压封口片 | 1 | (lcfw=M01 OR lcfw=M02 OR lcfw=M03 OR lcfw=M04 OR lcfw=M05 OR lcfw=M06 OR lcfw=M07 OR lcfw=M08 OR lcfw=M09 OR lcfw=M10 OR lcfw=M11)AND gclj!=M20 | | | | | 66071003663 | | | +| 1040 | 连接螺钉 | 01081008105 | 连接螺钉 | 1 | | | | | | 66051008105 | | | +| 1050 | 垫片 | 01091004354 | 垫片 | 1 | lcfw=M01 OR lcfw=M02 OR lcfw=M03 OR lcfw=M04 OR lcfw=M05 OR lcfw=M06 OR lcfw=M07 OR lcfw=M08 OR lcfw=M09 OR lcfw=M10 OR lcfw=M11 OR lcfw=K107 | | | | | 66071004354 | | | +| 1060 | 机芯螺钉 | 01140003413 | 机芯螺钉 | 2 | | | | | | 66220003413 | | | +| 1070 | 机芯部件 | 01101000574 | 机芯 | 1 | lcfw=M01 OR lcfw=M02 OR lcfw=M03 OR lcfw=M04 OR lcfw=K107 | | 机芯 | | | 66151000574 | 7100 | 删除 OR lcfw=M12 | +| 1080 | 机芯部件 | 01101000575 | 机芯 | 1 | lcfw=M05 OR lcfw=M06 OR lcfw=M07 OR lcfw=M08 OR lcfw=M09 OR lcfw=M10 OR lcfw=M11 OR lcfw=M13 OR lcfw=M14 OR lcfw=M15 OR lcfw=M16 OR lcfw=M12 | | 机芯 | | | 66151000575 | 7100 | 增加 OR lcfw=M12 | +| 1090 | 接头部件 | | 径向部件 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND lcfw=M05 AND gclj=G12 | | 部件 | | | 66021019206 | 7200 | 新增物料 | +| 1100 | 接头部件 | | 径向部件 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND lcfw=M09 AND gclj=Z12 | | 部件 | | | 66021019212 | 7200 | 新增物料 | +| 1120 | 接头部件 | | 径向部件 | 1 | (azxs=A0 OR azxs=AT OR azxs=AH) AND lcfw=M08 AND gclj=G12 | | 部件 | | | 66021019208 | 7200 | 新增物料 |