电缆行业成本核算中原材料损耗算法分析

2016-10-11 10:01李罡
科技视界 2016年24期
关键词:二叉树道工序半成品

李罡

由于电缆行业生产过程的特殊性以及生产过程中涉及到的工序和原材料较多,准确计算出原材料的损耗,成为电缆行业成本核算的核心。

本文以电缆产品PTYA23为例来进行分析,PTYA23的工序有裸线、绝缘、搅合、成缆、综护、装铠、外护套七个工序,在PTYA23中,这七个工序呈线性排列,但是在其它产品的工序中,可能存在并发的工序,我们可以把所有产品的工序归纳成一个倒过来的二叉树结构。为什么是倒过来的二叉树,因为线缆产品的并发工序只是在前面的工序才有,越往后面越收缩到一条工序上。针对PTYA23的工序,我们可以生成如图1的二叉树结构。

通过图1我们可以看出,根节点是“外护套”,剩下的6个工序都是叶子节点,从逻辑结构上来说,工序顺序是从“裸线”节点开始,到“外护套”节点终止,是个倒过来的二叉树,但是我们在数据库里记录的时候,可以将这个倒二叉树颠倒过来,比如第一道工序“裸线”,从上图来看,它的下一道工序是“绝缘”,但是我们在数据库中记录的时候,记录成“裸线”的上一道工序是“绝缘”,以此类推,我们可以在数据库中记录如表1所示的工艺流程表数据:

这样做的好处就是数据维护人员,在维护产品的工艺流程时,可以按照逻辑顺序输入,但是系统在记录到数据库时,自动把下一道工序变成上一道工序,这样系统数据库中记录的是正常的二叉树结构。既方便了数据输入人员,又符合数据库二叉树的记录规则。

PTYA23的材料消耗定额表,如表2所示。

分析表2中的材料消耗,首先是铜杆,可以看出投入铜杆的工序是“裸线”,铜杆在“裸线”工序的消耗为0.1,然后顺序往下,铜杆在“绝缘”工序的消耗为3.2,在“绞合”序的消耗为0.3。

再分析第二个材料HDPE绝缘料,投入这个材料的工序是“绝缘”,HDPE绝缘料在“绝缘”工序的损耗是2.5,在“绞合”工序的损耗是0.3。

分析到这里会发现,在“绞合”之前的工序,也就是“裸线”和“绝缘”工序,投入的原材料,在“绞合”这个工序的消耗都是0.3。以此类推,可以得出某道工序,对这道工序之前工序投入的原材料,在这道工序上的消耗都是一样的。这里有个重点,就是这道工序之前工序投入的原材料。这道工序本身投入的原材料可能不止一个,这几个当前工序投入的原材料,在当前工序的消耗是不一样的。比如“综护”工序,这道工序对之前几道工序投入的原材料消耗都是0.1,但是这道工序本身投入的原材料有“铝塑复合带”、“PE内护料”、“隔氧层料”,这三个材料在“综护”工序的消耗是不一样的,分别是1.0、1.5、2.5。

我们把当前工序对当前工序投入原材料的消耗叫做“初次损耗”,把当前工序对之前工序投入的原材料产生的损耗叫做“工序损耗”。以此可以得出,某种原材料的总损耗,应该是在它第一次投入的工序的初次损耗,加上之后所有工序的损耗累加。公式如(1)所示:

p=a+∑b(1)

其中p代表原材料的总损耗,a代表初次损耗,b代表工序损耗。

再结合图1的二叉树模型,可以进一步得出:某个原材料的总损耗,应该等于该原材料第一次投入的工序节点的初次损耗,加上该工序节点所有父节点(从逻辑上来说,是一个倒过来的二叉树,往下寻找节点就是查找父节点)工序损耗的累加。

在计算一个原材料的总损耗时,首先根据BOM表读取该材料第一次投入的工序和在该工序的初次损耗,根据该工序以及工艺流程表,遍历出该工序的所有父节点,以及这些父节点的工序消耗,将父节点的工序消耗累加,在加上刚才在BOM表中查询到的初次消耗,即为该原材料的总消耗。

上面是对成品还原计算方法的分析,下面分析半成品还原的方法。结合图1的二叉树模型,我们可以看出,一个半成品的截止工序,一定是在这个半成品起始工序的父节点集合内。而一个半成品的起始工序,也一定在截止工序的子节点集合之内。

如果还原一个半成品,我们继续以PTYA23为例,给定起始工序是“绝缘”,截止工序是“综护”。首先,通过工艺流程表,查询出PTYA23所有工艺流程节点的集合A,然后在A中遍历出“绝缘”工序的所有父节点集合B,这个集合B包括“绞合”、“成缆”、“综护”、“装铠”、“外护套”,然后在集合B中查找截止工序“综护”的所有子节点集合C,这时的C中应该包括“绝缘”、“绞合”、“成缆”、“综护”,也就是节点“绝缘”到节点“综护”之间所有节点。在集合C中,遍历每一个节点,读取该节点的在BOM中的投入材料、投入材料的用量和初次损耗,以及该节点在C集合中的所有父节点的工序损耗累加,就可以计算出集合C中,每个节点投入的原材料的损耗,即还原出该PTYA23半成品的原材料损耗和用量。

这个数学模型的优点就是系统初始化的时候,只维护成品的BOM结构和工艺流程,在进行半成品还原的时候,只要给定起始工序和截止工序,就能计算出半成品的材料用量。避免了在系统初始化时,将每个成品和半成品都赋予编码,记录每个编码的BOM数据,造成数据库庞大且冗余,大大减少系统初始化的工作量。本文的计算方法是按照二叉树的模型进行设计的,所以这种方法同样适用于有并发工序的其它产品。但是这种计算方法也有一定的弊端,就是在计算原材料损耗的时候,每种原材料至少要进行两次递归查询,对服务器硬件的要求较高。

[责任编辑:王伟平]

猜你喜欢
二叉树道工序半成品
CSP真题——二叉树
装饰石材半成品板补胶、定厚技术操作(二)
装饰石材半成品板补胶、定厚技术操作(一)
“瓷中君子”诞生记
例析求解排列组合问题的四个途径
二叉树创建方法
一种由层次遍历和其它遍历构造二叉树的新算法
水泥各工序单位产品综合电耗正确计算的实证研究
论复杂二叉树的初始化算法
平行结转分步法下约当总产量确定