物料清單(Bill of Materials,BOM)是產品結構的技術性描述文件,它表明了成品、半成品、原材料之間的結構關系,以及每個部件所需要的各下屬部件的數量。BOM是企業ERP(EntERPrise Resource Planning)系統的核心數據。對于一些沿海的加工貿易企業,海關需要將企業內部的BOM轉換為單損耗表,從而對企業的原材料進口、生產過程和產品出口進行全程監管。
由于企業和海關對數據的要求不同,企業內部需要了解生產過程每一道工序的原材料到半成品、半成品到產品的消耗情況,而海關等監管部門更關心進口保稅原材料到最終出口產品消耗情況,需要將BOM數據轉換為單損耗數據。本文提出了一種物料清單到單損耗表的轉換算法,在構造BOM的同時,生成單損耗表,即滿足了企業內部數據管理系統的需要,也為海關等監管部門提供了有效的監管依據。
1 BOM與單損耗表
通過對BOM操作,可以查詢某個產品是由哪些原材料加工而成以及各種原材料的消耗情況。BOM中涉及到如下概念:
* 單損耗:又稱單耗,是指加工生產單位出1:3產品所耗用的進口保稅料件的數量,包括凈耗和工藝損耗。
* 凈耗:是指物化在單位出口產品中的進口保稅料件的數量。
* 工藝損耗:是指除凈耗之外必須耗用,且不能物化在成品中的進口保稅料件數量。
* 損耗率:指工藝損耗與單耗之比,即損耗率=工藝損耗/單耗=l-凈耗/單耗。
企業為滿足監管要求,需要將BOM表轉換為海關要求的單損耗表。BOM表和單損耗表都是用來描述成品和料件之間的消耗關系,它們之間的區別是:BOM表描述最初料件-半成品-成品的消耗關系;而單損耗表僅描述最初料件-成品之間的關系。BOM表的變化按日期區分;而單損耗表的變化按不同的版本號區分。
BOM構造算法主要有遞歸遍歷、非遞歸遍歷和層次遍歷等,在本項目中采用了深度優先算法構造BOM,使用了面向對象的數據封裝技術,利用路徑生成單損耗表。
2 單損耗的計算方法
下面以某化工產品為例,介紹其單損耗的計算方法,該產品的配方結構如圖1所示,單損耗的計算過程可分為兩步。
圖1 成品配方結構圖
(1)首先計算BOM表到單損耗表的分支1(圖1中加粗分支)的凈耗和損耗率。其中,P9為最初料件,P6和P2為半成品,P1是最終成品。Cmi(i=1,2,...,n)表示由下一個料件(半成品)加工成上一個半成品(成品)的凈耗,dmi(i=1,2,...,n)表示由下一個料件(半成品)加工成上一個半成品(成品)的損耗率。
假設由最初料件P9加工成最終成品P1的凈耗為cmpa,由最初料件P9加工成最終成品P1的損耗率為dmpa,則cmpa和dmpa的計算公式如下:
(2)其次計算BOM表到單損耗表的總的凈耗和損耗率。第1步計算了BOM表的分支1的凈耗和損耗率,下面計算BOM表到單損耗表的總的凈耗和損耗率.原材料為P9的另一個分支為P9-P6-P3-P1(分支2),通過第1步中的公式(1)、(2),計算出由分支1加工成最終成品的凈耗cm加和損耗率。同樣,可以計算出由分支2加工成最終成品的凈耗cmpb和損耗率dmpb。
假設由最初料件P9加工成最終成品P1的總凈耗為cm,由最初料件P9加工成最終成品P1的總損耗率為dm,則cm和dm的計算公式如下:
3 算法的設計及實現
3.1 基于面向對象技術的數據封裝
在BOM的設計中,頂點表示料件(成品、半成品或原材料),邊代表兩個料件之間的損耗關系。由于頂點和邊包含了大量的信息。且這些數據是動態變化的,在設計中使用了面向對象的技術,構造了4個類用來封裝相關數據,它們分別是:
* Material類封裝了有關料件(成品)信息,是數據表Material在內存中的映象。
* Vertex類封裝了結點相關信息。
* Edge類封裝了與邊相關信息,是數據表Product Relation在內存的映象。
* Graph類封裝了帶權有向圖的構造,遍歷方法。各個類之間的關系如圖2所示。
圖2 B0M結構的類關系圖
計算成品與原材料的最終損耗關系,就是求出成品頂點到原材料頂點的所有可達路徑,并保存路徑所經過的所有頂點。依次計算該路徑上每兩個相鄰結點之間的損耗關系,就可以得到成品與原材料的總的損耗關系。基于以上的分析,算法可以抽象為計算兩個頂點間的所有可達路徑。由于要保存搜索過程中的所有頂點,要使用棧或隊列實現,本算法使用棧保存搜索路徑中的頂點,用鄰接矩陣保存邊的權值信息,核心算法包括兩部分。
a.訪問數據庫,建立BOM的圖形結構
BOM圖形結構構造過程為:首先讀取成品編碼構造圖的第一個頂點,隨后依次無重復的讀入子級料件編碼,建立頂點隊列,再由父級料件編號與子級料件編號的對應關系建立全部弧線,實現代碼為:

b.基于深度優先搜索的遞歸算法
該算法實現從成品到原材料的所有路徑的搜索,路徑保存在數組中。

4 結論
BOM到單損耗表的構建與轉換算法,是海關聯網監管系統的一個重要組成部分,為加工貿易企業及監管部門提供了數據支持,作為海關聯網監管系統的核心算法,在聯網監管系統中已得到驗證及應用,結果表明:該算法穩定、可靠,滿足系統要求。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:ERP系統中物料清單BOM到單損耗表(報關BOM)的轉換算法
本文網址:http://www.guhuozai8.cn/html/consultation/1082065076.html