一种基于SQL的快速BOM展开方法技术

技术编号:37152266 阅读:12 留言:0更新日期:2023-04-06 22:09
本申请属于产品研发、制造、成本信息化管理,特别涉及一种基于SQL的快速BOM展开方法,步骤S1;通过数据库在产品构型树上查询待查询物料的装配链路及各层数量;步骤S2:计算每个所述装配链路中待查询物料的单链数量;步骤S3:将各个所述装配链路的单链数量求和得到总数量,本申请能快速完成BOM展开,完整展开5000节点的BOM只需3秒左右时间,充分利用了数据库的检索功能,能够快速对待查询的物料进行检索,避免了算法在计算的过程中对待查询的物料检索上浪费大量时间。对单个物料可直接计算数量,效率进一步提升。效率进一步提升。效率进一步提升。

【技术实现步骤摘要】
一种基于SQL的快速BOM展开方法


[0001]本申请属于产品研发、制造、成本信息化管理,特别涉及一种基于SQL的快速BOM展开方法。

技术介绍

[0002]在复杂产品研发制造过程中,经常需要将多层级的BOM展开为无层级的清单,以便进行原材料采购、成本计算等。
[0003]例如图1,将左侧树型的BOM转换为右侧的清单;
[0004]其中物料的总数量为各分支按构型累乘数之和。如上图中物料E总数量38是A

E(1
×
6=6)、A

B

E(1
×2×
8=16)、A

C

E(1
×1×
4=4)、A

B

D

E(1
×2×2×
3=12)四个分支数量之和。
[0005]目前常见的BOM展开算法主要有两类:
[0006]第一类是基于PL/SQL或其他编程语言通过递归或低层码实现BOM展开。该类算法效率偏低,展开5000节点的BOM需约3分钟。且不能直接计算单个物料的数量,需把整个构型树完全展开后再从中获取指定物料数量。同时该算法针对不同应用场景对程序进行更改的难度较高,且需较高的开发权限。
[0007]第二类是基于数据库递归WITH功能实现BOM展开(此功能只有较高版本的数据库才支持)。这类算法对于简单的父子表效率较高,但若数据源需多表联合查询时效率有明显降低。该算法同样不能直接计算单个物料的数量,需把整个构型树完全展开后再从中获取指定物料数量。

技术实现思路

[0008]为了解决上述问题,本申请提供了一种基于SQL的快速BOM展开方法,包括:
[0009]步骤S1;通过数据库在产品构型树上查询待查询物料的装配链路及各层数量;
[0010]步骤S2:计算每个所述装配链路中待查询物料的单链数量;
[0011]步骤S3:将各个所述装配链路的单链数量求和得到总数量。
[0012]优选的是,在步骤S1之前,在数据库中提取所述产品构型树,并通过数据库将所述产品构型树同时在产品构型树中标记叶节点、父子节点。
[0013]优选的是,在步骤S1中数据库通过从子到父的层级查询方式获得待查询物料的装配链路及各层数量。
[0014]优选的是,所述待查询物料的种类包括一种、两种、或者多种。
[0015]优选的是,所述单链数量通过对数运算和幂运算的方式将累乘转换为累加计算得到。所述对数运算和幂运算的方式为:将各层级的待查询物料进行累乘计算,再将累乘计算转换成累加便于系统计算。
[0016]本申请的优点包括:本算法具有速度快、拓展性强、权限需求低等优点,具体如下:
[0017]1)效率
[0018]能快速完成BOM展开,完整展开5000节点的BOM只需3秒左右时间,充分利用了数据库的检索功能,能够快速对待查询的物料进行检索,避免了算法在计算的过程中对待查询的物料检索上浪费大量时间。对单个物料可直接计算数量,效率进一步提升。
[0019]2)拓展
[0020]完全基于SQL,具有较强的扩展性,可针对不同应用场景灵活增加查询和筛选条件。
[0021]3)权限
[0022]只需要数据库查询权限,可通过只读用户等方式将数据表提供给看板等外部系统或软件使用,不用担心系统数据表、存储过程的内容被更改。
[0023]本算法在制造业信息化领域有广泛的适用性,可用于采购需求计算、自制需求计算、成本计算、工时计算、工艺装备统计、加工周期评估等方面。
附图说明
[0024]图1是传统方式将左侧树型的BOM转换为右侧的清单示意图;
[0025]图2本申请通过层级查询取出构型树图;
[0026]图3本申请反向查询待计算物料的关系链图。
具体实施方式
[0027]为使本申请实施的目的、技术方案和优点更加清楚,下面将结合本申请实施方式中的附图,对本申请实施方式中的技术方案进行更加详细的描述。在附图中,自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。所描述的实施方式是本申请一部分实施方式,而不是全部的实施方式。下面通过参考附图描述的实施方式是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。基于本申请中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本申请保护的范围。下面结合附图对本申请的实施方式进行详细说明。
[0028]为了解决上述问题,本申请提供了一种基于SQL的快速BOM展开方法,包括:
[0029]步骤S1;在数据库中提取所述产品构型树,并通过数据库将所述产品构型树同时在产品构型树中标记叶节点、父子节点,通过数据库在产品构型树上查询待查询物料的装配链路及各层数量;其中,数据库通过从子到父的层级查询方式获得待查询物料的装配链路及各层数量。
[0030]步骤S2:计算每个所述装配链路中待查询物料的单链数量;
[0031]步骤S3:将各个所述装配链路的单链数量求和得到总数量。
[0032]其中,所述待查询物料的种类包括一种、两种、或者多种。
[0033]优选的是,所述单链数量通过对数运算和幂运算的方式将累乘转换为累加计算得到。所述对数运算和幂运算的方式为:将各层级的待查询物料进行累乘计算,再将累乘计算转换成累加便于系统计算。
[0034]上述步骤可以由如下实施方式概括:
[0035]1)在产品构型树上通过从子到父的层级查询方式获得待查询物料的装配链路及各层数量。
[0036]物料(N0)

父项(N1)

祖父项(N2)

曾祖父项(N3)
→……
[0037]2)累乘计算该链路中物料的数量。
[0038]N
L
=N0×
N1×
N2×
N3[0039]3)若物料存在多个链路,将各链路数量求和。
[0040]N=N
L1
+N
L2
+N
L3
+
……
[0041]下边列举结合图1以及图2的具体实施方式:
[0042]步骤1:从数据库中通过层级查询取出构型树(图1),同时在查询结果中标记叶节点、父子节点等。
[0043]本步骤伪代码如下:
[0044][0045]步骤2:反向查询待计算物料的关系链(图2),并通过累乘转累加的方法计算待计算物料在链中的数量。
[0046]本步骤伪代码如下:
[0047][0048]步骤3:通过分析函数分类汇总计算出各物料的总数量。
[0049]本步骤伪代码如下:
[0050]SELECT代号,SUM(链路数量)总数量FROM(上步骤子查询)GROUP 本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于SQL的快速BOM展开方法,其特征在于,包括:步骤S1;通过数据库在产品构型树上查询待查询物料的装配链路及各层数量;步骤S2:计算每个所述装配链路中待查询物料的单链数量;步骤S3:将各个所述装配链路的单链数量求和得到总数量。2.如权利要求1所述的基于SQL的快速BOM展开方法,其特征在于,包括:在步骤S1之前,在数据库中提取所述产品构型树,并通过数据库将所述产品构型树同时在产品构型树中标记叶节点、父子节点...

【专利技术属性】
技术研发人员:姚敦显
申请(专利权)人:中国航空工业集团公司雷华电子技术研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1