CN107067200B - 一种物料清单数据的操作方法及装置 - Google Patents
一种物料清单数据的操作方法及装置 Download PDFInfo
- Publication number
- CN107067200B CN107067200B CN201611157699.8A CN201611157699A CN107067200B CN 107067200 B CN107067200 B CN 107067200B CN 201611157699 A CN201611157699 A CN 201611157699A CN 107067200 B CN107067200 B CN 107067200B
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- data
- sub
- bill
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
- G06Q10/087—Inventory or stock management, e.g. order filling, procurement or balancing against orders
- G06Q10/0875—Itemisation or classification of parts, supplies or services, e.g. bill of materials
Landscapes
- Business, Economics & Management (AREA)
- Economics (AREA)
- Engineering & Computer Science (AREA)
- Marketing (AREA)
- Quality & Reliability (AREA)
- Finance (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Accounting & Taxation (AREA)
- Operations Research (AREA)
- Development Economics (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Factory Administration (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种物料清单数据的操作方法及装置。所述方法包括:遍历物料清单的所有数据节点,为所述物料清单中每个数据节点设置对应的标识;每个数据节点的标识包含至少一个子ID或者子ID组,且上一级数据节点和本级数据节点的标识满足:上级节点的每个子ID,在本级节点中有对应的一个子ID组;所述子ID组为N个子ID的组合;N为从根节点到本级数据节点路径上的所有节点的数量依次相乘的积;根据所有数据节点的标识展示各数据节点之间的结构。本发明采用的方法提供的数据标识格式,在设计BOM生成工艺BOM并调整了工艺BOM的结构后,用来标识节点数据,可以查看调整的节点所对应的产品模型位置,实现对产品结构数据的精确管理。
Description
技术领域
本发明涉及一种物料清单数据的操作方法及装置。
背景技术
BOM也叫产品结构或配方指物料(通常是完成品或半成品,部品)的组成情况——该物料有哪些下级物料组成,每一下级物料的用量是多少,其对应的属性等。物料清单表明了产品→部件→组件→零件→原材料之间的结构关系,以及每个组装件包含的下属部件(或零件)的数量。
由产品结构生成的BOM是精确BOM,是其他类型BOM的源头数据。BOM作为企业进行设计、生产、管理的核心,不同部门有不同的形式和要求。例如,生产部门只需要描述自制件情况的制造BOM表,采购部门需要原材料及其标准件的采购BOM表,财务部门关心的是反映零部件成本核算情况的财务BOM表。这种针对不同的部门对BOM信息进行的重新编排,比如在设计BOM生成工艺BOM并调整了工艺BOM的结构后,进行拆分或剪切移动节点之后,往往不能识别或查找到变化的节点,无法实现对现有产品结构数据的精确管理。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种物料清单数据的操作方法及装置。
作为本发明实施例的一个方面,提供一种物料清单数据的操作方法,包括:
按照预设的顺序遍历物料清单的所有数据节点,获取所述数据节点的层次和数量;所述物料清单为树形结构;
为所述物料清单中每个数据节点设置对应的标识;每个数据节点的标识包含至少一个子ID或者子ID组,且上一级数据节点和本级数据节点的标识满足:上级节点的每个子ID,在本级节点中有对应的一个子ID组;所述子ID组为N个子ID的组合;N为从根节点到本级数据节点路径上的所有节点的数量依次相乘的积;所述每个数据节点的标识中,子ID预设的数据位按照遍历的顺序顺次递增;
读取所有数据节点的标识,并根据所有数据节点的标识展示所述物料清单中各数据节点之间的结构。
在一个实施例中,所述数据节点包括:根节点、中间节点和叶子节点;
所述根节点和中间节点,用于表征所述物料清单中部件;
所述叶子节点,用于表征所述物料清单中零件。
在一个实施例中,所述每个数据节点的标识中还包括:节点类型标识位;
所述根节点和中间节点的标识中的节点类型标识位相同,且与所述叶子节点的标识中的节点类型标识位不同。
在一个实施例中,所述节点类型标识位位于所述标识的首位。
在一个实施例中,所述标识中,还包括子ID与子ID之间的间隔符、子ID组与子ID组之间的间隔符。
在一个实施例中,当所述中间节点或叶子节点的数量大于1,且接收到拆分所述中间节点或叶子节点的拆分指令时,所述方法还包括:
当拆分所述中间节点时,根据所述中间节点数量,拆分为与所述中间节点数量相同个数的节点,拆分所述中间节点的下一级节点为与所述中间节点数量相同个数的节点;更新所述中间节点以及中间节点的下一级节点的标识;
根据所述叶子节点数量,拆分为与所述叶子节点数量相同个数的节点;
更新所述叶子节点的标识。
在一个实施例中,所述更新所述中间节点以及中间节点的下一级节点的标识,包括:
中间节点以及下一级节点的标识满足:
拆分后的每一个中间节点的子ID,在下一级节点中有对应的一个子ID组;
所述子ID组为M个子ID的组合;M为从中间节点到本级数据节点路径上的所有节点的数量依次相乘的积。
在一个实施例中,更新所述叶子节点的标识,包括:
所述叶子节点数量为Q;拆分后的每一个叶子节点的子ID组,所述子ID个数为P;所述P=N/Q。
在一个实施例中,当接收到剪切中间节点或叶子节点的剪切指令时,所述方法还包括:
查找目标节点与待剪切的数据节点的共同父节点,当从所述父节点到目标节点的路径上所有数据节点的节点数量均为1时;
或所述父节点和所述目标节点是同一节点时;
将所述待剪切的数据节点移动到所述目标节点下,更新剪切后的数据节点;
所述目标节点为接收所述剪切节点的节点。
在一个实施例中,所述更新剪切后的数据节点,包括:
更新剪切后的数据节点的标识满足:
本级数据节点的每一个子ID组在上级节点中有对应的子ID,所述子ID组的个数为上级节点的数量。
作为本发明实施例的另一个方面,提供一种物料清单数据的操作装置,包括:
获取模块,用于按照预设的顺序遍历物料清单的所有数据节点,获取所述数据节点的层次和数量;所述物料清单为树形结构;
设置模块,用于为所述物料清单中每个数据节点设置对应的标识;每个数据节点的标识包含至少一个子ID或者子ID组,且上一级数据节点和本级数据节点的标识满足:上级节点的每个子ID,在本级节点中有对应的一个子ID组;所述子ID组为N个子ID的组合;N为从根节点到本级数据节点路径上的所有节点的数量依次相乘的积;所述每个数据节点的标识中,子ID预设的数据位按照遍历的顺序顺次递增;
展示模块,用于读取所有数据节点的标识,并根据所有数据节点的标识展示所述物料清单中各数据节点之间的结构。
在一个实施例中,所述数据节点包括:根节点、中间节点和叶子节点;
所述根节点和中间节点,用于表征所述物料清单中部件;
所述叶子节点,用于表征所述物料清单中零件。
在一个实施例中,所述每个数据节点的标识中还包括:节点类型标识位;
所述根节点和中间节点的标识中的节点类型标识位相同,且与所述叶子节点的标识中的节点类型标识位不同。
在一个实施例中,所述节点类型标识位位于所述标识的首位。
在一个实施例中,所述标识中,还包括子ID与子ID之间的间隔符、子ID组与子ID组之间的间隔符。
在一个实施例中,当所述中间节点或叶子节点的数量大于1,且接收到拆分所述中间节点或叶子节点的拆分指令时,所述装置还包括:
拆分模块,用于当拆分所述中间节点时,根据所述中间节点数量,拆分为与所述中间节点数量相同个数的节点,拆分所述中间节点的下一级节点为与所述中间节点数量相同个数的节点;以及用于根据所述叶子节点数量,拆分为与所述叶子节点数量相同个数的节点;
更新模块,更新所述中间节点以及中间节点的下一级节点的标识;以及用于更新所述叶子节点的标识。
在一个实施例中,所述更新模块,包括:
中间节点以及下一级节点的标识满足:
拆分后的每一个中间节点的子ID,在下一级节点中有对应的一个子ID组;
所述子ID组为M个子ID的组合;M为从中间节点到本级数据节点路径上的所有节点的数量依次相乘的积。
在一个实施例中,所述更新模块,还包括:
所述叶子节点数量为Q;拆分后的每一个叶子节点的子ID组,所述子ID个数为P;所述P=N/Q。
在一个实施例中,当接收到剪切中间节点或叶子节点的剪切指令时,所述装置还包括:
剪切模块,用于查找目标节点与待剪切的数据节点的共同父节点,当从所述父节点到目标节点的路径上所有数据节点的节点数量均为1时;或所述父节点和所述目标节点是同一节点时;将所述待剪切的数据节点移动到所述目标节点下,
所述更新模块,还用于更新剪切后的数据节点;所述目标节点为接收所述剪切节点的节点。
在一个实施例中,所述更新模块,还包括:
更新剪切后的数据节点的标识满足:
本级数据节点的每一个子ID组在上级节点中有对应的子ID,所述子ID组的个数为上级节点的数量。
作为本发明实施例的再一个方面,提供一种物料清单数据的操作装置,包括:
处理器;
用于存储处理器可执行命令的存储器;
其中,所述处理器被配置为:
按照预设的顺序遍历物料清单的所有数据节点,获取所述数据节点的层次和数量;所述物料清单为树形结构;
为所述物料清单中每个数据节点设置对应的标识;每个数据节点的标识包含至少一个子ID或者子ID组,且上一级数据节点和本级数据节点的标识满足:上级节点的每个子ID,在本级节点中有对应的一个子ID组;所述子ID组为N 个子ID的组合;N为从根节点到本级数据节点路径上的所有节点的数量依次相乘的积;所述每个数据节点的标识中,子ID预设的数据位按照遍历的顺序顺次递增;
读取所有数据节点的标识,并根据所有数据节点的标识展示所述物料清单中各数据节点之间的结构。
本发明实施例提供的上述技术方案的有益效果至少包括:
本发明实施例提供的物料清单数据的操作方法及装置,所述方法包括,按照预设的顺序遍历物料清单的所有数据节点,获取所述数据节点的层次和数量;所述物料清单为树形结构;为所述物料清单中每个数据节点设置对应的标识;每个数据节点的标识包含至少一个子ID或者子ID组,且上一级数据节点和本级数据节点的标识满足:上级节点的每个子ID,在本级节点中有对应的一个子ID组;所述子ID组为N个子ID的组合;N为从根节点到本级数据节点路径上的所有节点的数量依次相乘的积;所述每个数据节点的标识中,子ID预设的数据位按照遍历的顺序顺次递增;读取所有数据节点的标识,并根据所有数据节点的标识展示所述物料清单中各数据节点之间的结构。本发明采用的方法提供的数据标识格式,在设计BOM生成工艺BOM并调整了工艺BOM的结构后,用来标识节点数据,可以查看调整的节点所对应的产品模型位置,实现对产品结构数据的精确管理。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例提供的物料清单数据的操作方法的流程图;
图2为本发明实施例提供的物料清单展开示意图;
图3为本发明实施例提供的物料清单数据节点标识示意图;
图4为本发明实施例提供的物料清单拆分节点B示意图;
图5为本发明实施例提供的物料清单拆分节点C示意图;
图6为本发明实施例提供的物料清单拆分节点D示意图;
图7为本发明实施例提供的物料清单同时拆分节点B与节点C展开示意图;
图8为本发明实施例提供的物料清单D1剪切到B下示意图;
图9为本发明实施例提供的物料清单节点C2,C3合并示意图;
图10为本发明实施例提供的物料清单数据的操作装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
本发明实施例提供了一种物料清单数据的操作方法,下面结合附图说明。
图1是根据一示例性实施例示出的一种的方法流程图,参照图1所示,
S101、按照预设的顺序遍历物料清单的所有数据节点,获取所述数据节点的层次和数量;所述物料清单为树形结构;
S102、为所述物料清单中每个数据节点设置对应的标识;每个数据节点的标识包含至少一个子ID或者子ID组,且上一级数据节点和本级数据节点的标识满足:上级节点的每个子ID,在本级节点中有对应的一个子ID组;所述子ID组为N个子ID的组合;N为从根节点到本级数据节点路径上的所有节点的数量依次相乘的积;所述每个数据节点的标识中,子ID预设的数据位按照遍历的顺序顺次递增;
S103、读取所有数据节点的标识,并根据所有数据节点的标识展示所述物料清单中各数据节点之间的结构
在本实施例中,物料清单数据的操作方法,可以采用手工建树,也可以复制已有的节点结构。比如手工建树,产品结构树的节点可由手工建立,各节点的类型由系统初始化时在节点属性设置中确定。输入节点名称、节点代号、数量及序号等信息。根据企业实际情况完成部件一级的产品结构树。
例如复制已有的节点结构,如果产品某部件或组件与以往设计的产品雷同或结构相似,可以通过节点复制、粘贴的方式将该节点以下的结构复制过来,再通过节点属性值修改的方式调整相应节点的代号、名称数量等值。
步骤S101中,按照预设的顺序遍历物料清单的所有数据节点,其中预设的顺序可以按照前序遍历、中序遍历和后序遍历,其中前序遍历首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。
若二叉树为空则结束返回,否则:
(1)访问根结点。
(2)前序遍历左子树。
(3)前序遍历右子树。
需要注意的是:遍历左右子树时仍然采用前序遍历方法。
参照图2所示,前序遍历,遍历的顺序是,根,左子树,右子树;遍历结果:ABDECF;
中序遍历,也叫中根遍历,顺序是左子树,根,右子树;遍历结果:DBEAFC;
后序遍历,也叫后根遍历,遍历顺序,左子树,右子树,根;遍历结果:DEBFCA;
本公开实施例对遍历顺序不做限定。
本公开实施例提供的方法,为物料清单设置标识,在装配工艺编制中,工艺数据会与CAD装配结构、装配路线等保持一致,当选择某道工序时,根据设置的标识,CAD环境中会高亮显示相应的零部件;本发明采用的方法提供一种物料清单数据的操作方法,对数据节点设置标识,在设计BOM生成工艺BOM并调整了工艺BOM的结构后,用来标识节点数据,可以查看调整的节点所对应的产品模型位置,可以实现对产品结构数据的精确管理。
下面分别对上述各步骤进行详细的说明。
步骤S102中,为物料清单中每个数据节点设置对应的标识,其中标识包含至少一个子ID或者子ID组;每一个子ID组为N个子ID的组合,其中N为从根节点到本级数据节点路径上的所有节点的数量依次相乘的积。
例如:参照图3所示,在其括号内的数字表示每个节点相对于单个上一级节点的数量。
每个节点在物料清单中的数量为:N,其中N为从根节点到本级数据节点路径上的所有节点的数量依次相乘的积。
A:根节点,默认数量为1
B:数量为2
C:数量为2*3=6
D:数量为2*3*2=12
E:数量为2
F:数量为1
G:数量为2*2=4
此工艺BOM每个节点的数据标识ID如下所示,数据标识ID的个数等于节点的数量。所述每个数据节点的标识中,子ID预设的数据位按照遍历的顺序顺次递增;参照图3所示,例如:
A:300000001
B:(300000002,300000003)
C:((300000004,300000005,300000006),(300000007,300000008,300000009))
D:(((200000001,200000002),(200000003,200000004),(200000005,200000006)),((200000007,200000008),(200000009,200000010),(200000011,200000012)))
E:(200000017,200000018)
F:(200000019)
G:((200000013,200000014),(200000015,200000016))
上述数据节点包括:根节点、中间节点和叶子节点;其中根节点为A,B和C为中间节点,D为叶子节点。
其中上述A、B、C节点,用于表征物料清单中部件;D,用于表征所述物料清单中零件。
在一个实施例中,每个数据节点的标识中还包括:节点类型标识位;为了便于区分部件和零件,将根节点和中间节点的标识中的节点类型标识位相同,且将与所述叶子节点的标识中的节点类型标识位设置为不同;例如:A、B、C的标识中的节点类型标识位相同,如数字“3”,D的标识中的节点类型,如数字“2”。
在一个实施例中,上述标识中,还包括子ID与子ID之间的间隔符、子ID组与子ID组之间的间隔符,间隔符比如“,”“#”或其他符号等等。
在一个实施例中,部件是由相互关联的一组零件按照特定的装配关系组装起来的,一系列的部件有机的装配在一起就构成了产品。按照部件对产品进行分解,再将部件进行分解,产生零件与子部件,经过层层的分解,直到无法分解。
在拆分过程中,当中间节点或叶子节点的数量大于1,且接收到拆分所述中间节点或叶子节点的拆分指令时,当拆分所述中间节点时,根据所述中间节点数量,拆分为与所述中间节点数量相同个数的节点,拆分所述中间节点的下一级节点为与所述中间节点数量相同个数的节点;更新所述中间节点以及中间节点的下一级节点的标识;根据所述叶子节点数量,拆分为与所述叶子节点数量相同个数的节点;更新所述叶子节点的标识。
例如还是以图3为例,拆分节点B,拆分后参照图4所示,
此时B,C,D,G的实例Id发生变化,如下:
B1:(300000002);
B2:(300000003);
C1:((300000004,300000005,300000006));
C2:((300000007,300000008,300000009));
D1:
(((200000001,200000002),(200000003,200000004),(200000005,200000006)));
D2:
(((200000007,200000008),(200000009,200000010),(200000011,200000012)));
G1:((200000013,200000014));
G2:((200000015,200000016));
更新上述中间节点和中间节点的下一级节点的标识,满足下述条件:拆分后的每一个中间节点的子ID,在下一级节点中有对应的一个子ID组;比如:B1:(300000002);对应C1:((300000004,300000005,300000006))。
上述子ID组为M个子ID的组合;M为从中间节点到本级数据节点路径上的所有节点的数量依次相乘的积,即:C1为包含3个子ID的组合,从B1到C1,M=1*3。
上述叶子节点数量为Q(相对于上一级节点);拆分后的每一个叶子节点的子ID组,所述子ID个数为P;所述P=N/Q,即:上述叶子节点D的节点数量为2(即Q),拆分后的D为D1和D2,D1和D2的子ID个数均为6(即P) 个,从根节点到叶子节点的数量为N(N=1*2*3*2),P=N/Q,6=1*2*3*2/2。
例如:以图3为例,拆分节点C,拆分后参照图5所示,
此时C,D的实例Id发生变化,如下:
C1:((300000004),(300000007));
C2:((300000005),(300000008));
C3:((300000006),(300000009));
D1:(((200000001,200000002)),((200000007,200000008)));
D2:(((200000003,200000004)),((200000009,200000010)));
D3:(((200000005,200000006)),((200000011,200000012)));
再比如,以图3为例,拆分节点D,拆分后参照图6所示;
此时D的实例Id发生变化,如下:
D1:
(((200000001),(200000003),(200000005)),((200000007),(200000009),(200000011)));
D2:(((200000002),(200000004),(200000006)),((200000008),(200000010),(200000012)));
在本实施例中,还可以同时拆分2个或多个节点,本公开实施例对此不做限定,例如:还是以图3为例,同时拆分节点B与节点C,拆分参照图7所示:
此时B,C,D,G的实例Id发生变化,如下:
B1:(300000002);
B2:(300000003);
C1:((300000004));
C2:((300000005));
C3:((300000006));
C4:((300000007));
C5:((300000008));
C6:((300000009));
D1:(((200000001,200000002)));
D2:(((200000003,200000004)));
D3:(((200000005,200000006)));
D4:(((200000007,200000008)));
D5:(((200000009,200000010)));
D6:(((200000011,200000012)));
G1:((200000013,200000014));
G2:((200000015,200000016));
在一个实施例中,节点也可以被剪切,剪切有如下条件:
1.根节点不能被剪切;
2.找到目标节点与剪切节点的共同父节点,从共同父节点出发(不包含共
同父节点)到目标节点(包含目标节点),此路径上的所有节点的数量必
须为1。
参照图3所示,例如:剪切节点D,粘贴到F下,此操作可以完成,因为它们的共同父节点A,从A(不包含A)到F,这条路径上的节点的数量为1。但不能粘贴到E下,因为从A(不包含A)到E,这条路径上有数量大于1的节点,可以将E拆分,然后粘贴到其中一个E节点下。可以粘贴到B节点下,它们的共同父节点为B,目标节点也为B,但需要去掉共同父节点,所以可以认为路径上没有节点数量大于1。
剪切节点后,节点的实例Id发生变化,更新剪切后的数据节点。还是以图3为例:通过6个实施例来说明,剪切节点的情况。
1.将D剪切到F下
D的实例Id发生变化,如下:
D:((200000001,200000002,200000003,200000004,200000005,200000006,200000007,200000008,200000009,200000010,200000011,200000012));
2.将D剪切到B下
D的实例Id发生变化,如下:
D:((200000001,200000002,200000003,200000004,200000005,200000006),(200000007,200000008,200000009,200000010,200000011,200000012))
3.将E拆分成E1,E2;再将D剪切到E1下
E,D的实例Id发生变化,如下:
E1:(200000017)
E2:(200000018)
D:((200000001,200000002,200000003,200000004,200000005,200000006,200000007,200000008,200000009,200000010,200000011,200000012))
4.将C拆分成C1,C2,C3,参照图5所示,再将C1剪切到F下,C,D的实例Id发生变化,如下:
C1:((300000004,300000007));
C2:((300000005),(300000008));
C3:((300000006),(300000009));
D1:(((200000001,200000002),(200000007,200000008)));
D2:(((200000003,200000004)),((200000009,200000010)));
D3:(((200000005,200000006)),((200000011,200000012)));
5.将C拆分成C1,C2,C3,参照图5所示,再将D1剪切到B下,参照图8所示:
6.由于D1剪切后,C1的结构发生了变化,不能与C2,C3合并,仅能合并C2,C3,合并后,参照图9所示:
C,D的实例Id发生变化,如下:
C1:((300000004),(300000007));
C2:((300000005,300000006),(300000008,300000009));
D1:((200000001,200000002),(200000007,200000008));
D2:(((200000003,200000004),(200000005,200000006)),((200000009,200000010),(200000011,200000012)));
基于同一发明构思,本发明实施例还提供了了一种物料清单数据的操作装置,由于该装置所解决问题的原理与前述实施例一种物料清单数据的操作方法相似,因此该装置的实施可以参见前述方法的实施,重复之处不再赘述。
根据本公开实施例的第二方面,提供一种物料清单数据的操作装置,参照图10所示,包括:
获取模块101,用于按照预设的顺序遍历物料清单的所有数据节点,获取所述数据节点的层次和数量;所述物料清单为树形结构;
设置模块102,用于为所述物料清单中每个数据节点设置对应的标识;每个数据节点的标识包含至少一个子ID或者子ID组,且上一级数据节点和本级数据节点的标识满足:上级节点的每个子ID,在本级节点中有对应的一个子ID组;所述子ID组为N个子ID的组合;N为从根节点到本级数据节点路径上的所有节点的数量依次相乘的积;所述每个数据节点的标识中,子ID预设的数据位按照遍历的顺序顺次递增;
展示模块103,用于读取所有数据节点的标识,并根据所有数据节点的标识展示所述物料清单中各数据节点之间的结构。
所述数据节点包括:根节点、中间节点和叶子节点;
所述根节点和中间节点,用于表征所述物料清单中部件;
所述叶子节点,用于表征所述物料清单中零件。
在一个实施例中,所述每个数据节点的标识中还包括:节点类型标识位;
所述根节点和中间节点的标识中的节点类型标识位相同,且与所述叶子节点的标识中的节点类型标识位不同。
在一个实施例中,所述节点类型标识位位于所述标识的首位。
在一个实施例中,所述标识中,还包括子ID与子ID之间的间隔符、子ID组与子ID组之间的间隔符。
在一个实施例中,当所述中间节点或叶子节点的数量大于1,且接收到拆分所述中间节点或叶子节点的拆分指令时,参照图10所述装置还包括:
拆分模块104,用于当拆分所述中间节点时,根据所述中间节点数量,拆分为与所述中间节点数量相同个数的节点,拆分所述中间节点的下一级节点为与所述中间节点数量相同个数的节点;以及用于根据所述叶子节点数量,拆分为与所述叶子节点数量相同个数的节点;
更新模块105,更新所述中间节点以及中间节点的下一级节点的标识;以及用于更新所述叶子节点的标识。
在一个实施例中,所述更新模块,包括:
中间节点以及下一级节点的标识满足:
拆分后的每一个中间节点的子ID,在下一级节点中有对应的一个子ID组;
所述子ID组为M个子ID的组合;M为从中间节点到本级数据节点路径上的所有节点的数量依次相乘的积。
在一个实施例中,所述更新模块105,还包括:
所述叶子节点数量为Q;拆分后的每一个叶子节点的子ID组,所述子ID个数为P;所述P=N/Q。
在一个实施例中,当接收到剪切中间节点或叶子节点的剪切指令时,所述装置还包括:
剪切模块106,用于查找目标节点与待剪切的数据节点的共同父节点,当从所述父节点到目标节点的路径上所有数据节点的节点数量均为1时;或所述父节点和所述目标节点是同一节点时;将所述待剪切的数据节点移动到所述目标节点下,
所述更新模块105,还用于更新剪切后的数据节点;所述目标节点为接收所述剪切节点的节点。
在一个实施例中,所述更新模块105,还包括:
更新剪切后的数据节点的标识满足:
本级数据节点的每一个子ID组在上级节点中有对应的子ID,所述子ID组的个数上级节点的数量。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
根据本公开实施例的第三方面,本发明实施例提供一种物料清单数据的操作装置,包括:
处理器;
用于存储处理器可执行命令的存储器;
其中,所述处理器被配置为:
按照预设的顺序遍历物料清单的所有数据节点,获取所述数据节点的层次和数量;所述物料清单为树形结构;
为所述物料清单中每个数据节点设置对应的标识;每个数据节点的标识包含至少一个子ID或者子ID组,且上一级数据节点和本级数据节点的标识满足:上级节点的每个子ID,在本级节点中有对应的一个子ID组;所述子ID组为n个子ID的组合;n为从根节点到本级数据节点路径上的所有节点的数量依次相乘的积;所述每个数据节点的标识中,子ID预设的数据位按照遍历的顺序顺次递增;
读取所有数据节点的标识,并根据所有数据节点的标识展示所述物料清单中各数据节点之间的结构。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (5)
1.一种物料清单数据的操作方法,其特征在于,包括:
按照预设的顺序遍历物料清单的所有数据节点,获取所述数据节点的层次和数量;所述物料清单为树形结构;
为所述物料清单中每个数据节点设置对应的标识;每个数据节点的标识包含至少一个子ID或者子ID组,且上一级数据节点和本级数据节点的标识满足:上级节点的每个子ID,在本级节点中有对应的一个子ID组;所述子ID组为N个子ID的组合;N为从根节点到本级数据节点路径上的所有节点的数量依次相乘的积;所述每个数据节点的标识中,子ID预设的数据位按照遍历的顺序顺次递增;
读取所有数据节点的标识,并根据所有数据节点的标识展示所述物料清单中各数据节点之间的结构;
所述数据节点包括:根节点、中间节点和叶子节点;所述根节点和中间节点,用于表征所述物料清单中部件;
所述叶子节点,用于表征所述物料清单中零件;所述每个数据节点的标识中还包括:节点类型标识位;所述根节点和中间节点的标识中的节点类型标识位相同,且与所述叶子节点的标识中的节点类型标识位不同;所述节点类型标识位位于所述标识的首位;当所述中间节点或叶子节点的数量大于1,且接收到拆分所述中间节点或叶子节点的拆分指令时,所述方法还包括:
当拆分所述中间节点时,根据所述中间节点数量,拆分为与所述中间节点数量相同个数的节点,拆分所述中间节点的下一级节点为与所述中间节点数量相同个数的节点;更新所述中间节点以及中间节点的下一级节点的标识;
根据所述叶子节点数量,拆分为与所述叶子节点数量相同个数的节点;
更新所述叶子节点的标识;
当接收到剪切中间节点或叶子节点的剪切指令时,所述方法还包括:
查找目标节点与待剪切的数据节点的共同父节点,当从所述父节点到目标节点的路径上所有数据节点的节点数量均为1时;
或所述父节点和所述目标节点是同一节点时;
将所述待剪切的数据节点移动到所述目标节点下,更新剪切后的数据节点;
所述目标节点为接收所述剪切节点的节点。
2.如权利要求1所述的方法,其特征在于,所述更新所述中间节点以及中间节点的下一级节点的标识,包括:
中间节点以及下一级节点的标识满足:
拆分后的每一个中间节点的子ID,在下一级节点中有对应的一个子ID组;
所述子ID组为M个子ID的组合;M为从中间节点到本级数据节点路径上的所有节点的数量依次相乘的积。
3.如权利要求1所述的方法,其特征在于,更新所述叶子节点的标识,包括:
所述叶子节点数量为Q;拆分后的每一个叶子节点的子ID组,所述子ID个数为P;所述P=N/Q。
4.如权利要求1所述的方法,其特征在于,所述更新剪切后的数据节点,包括:
更新剪切后的数据节点的标识满足:
本级数据节点的每一个子ID组在上级节点中有对应的子ID,所述子ID组的个数为上级节点的数量。
5.一种物料清单数据的操作装置,其特征在于,包括:
获取模块,用于按照预设的顺序遍历物料清单的所有数据节点,获取所述数据节点的层次和数量;所述物料清单为树形结构;所述数据节点包括:根节点、中间节点和叶子节点;所述根节点和中间节点,用于表征所述物料清单中部件;所述叶子节点,用于表征所述物料清单中零件;
设置模块,用于为所述物料清单中每个数据节点设置对应的标识;每个数据节点的标识包含至少一个子ID或者子ID组,且上一级数据节点和本级数据节点的标识满足:上级节点的每个子ID,在本级节点中有对应的一个子ID组;所述子ID组为N个子ID的组合;N为从根节点到本级数据节点路径上的所有节点的数量依次相乘的积;所述每个数据节点的标识中,子ID预设的数据位按照遍历的顺序顺次递增;所述每个数据节点的标识中还包括:节点类型标识位;所述根节点和中间节点的标识中的节点类型标识位相同,且与所述叶子节点的标识中的节点类型标识位不同;所述节点类型标识位位于所述标识的首位;当所述中间节点或叶子节点的数量大于1,且接收到拆分所述中间节点或叶子节点的拆分指令时,所述方法还包括:
当拆分所述中间节点时,根据所述中间节点数量,拆分为与所述中间节点数量相同个数的节点,拆分所述中间节点的下一级节点为与所述中间节点数量相同个数的节点;更新所述中间节点以及中间节点的下一级节点的标识;
根据所述叶子节点数量,拆分为与所述叶子节点数量相同个数的节点;
更新所述叶子节点的标识;
当接收到剪切中间节点或叶子节点的剪切指令时,所述方法还包括:
查找目标节点与待剪切的数据节点的共同父节点,当从所述父节点到目标节点的路径上所有数据节点的节点数量均为1时;
或所述父节点和所述目标节点是同一节点时;
将所述待剪切的数据节点移动到所述目标节点下,更新剪切后的数据节点;
所述目标节点为接收所述剪切节点的节点;
展示模块,用于读取所有数据节点的标识,并根据所有数据节点的标识展示所述物料清单中各数据节点之间的结构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611157699.8A CN107067200B (zh) | 2016-12-15 | 2016-12-15 | 一种物料清单数据的操作方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611157699.8A CN107067200B (zh) | 2016-12-15 | 2016-12-15 | 一种物料清单数据的操作方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107067200A CN107067200A (zh) | 2017-08-18 |
CN107067200B true CN107067200B (zh) | 2020-08-18 |
Family
ID=59619314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611157699.8A Active CN107067200B (zh) | 2016-12-15 | 2016-12-15 | 一种物料清单数据的操作方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107067200B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110555547B (zh) * | 2019-08-02 | 2020-10-09 | 杉数科技(北京)有限公司 | 一种物料的分配方法及装置 |
CN111625912A (zh) * | 2020-06-04 | 2020-09-04 | 深制科技(苏州)有限公司 | 一种面向深度学习的Bom结构及其创建方法 |
CN113408853B (zh) * | 2021-05-19 | 2023-02-28 | 山东大学 | 基于工程和制造物料清单的中性bom构建方法及系统 |
CN114240095B (zh) * | 2021-12-01 | 2023-05-05 | 中国电子科技集团公司第二十九研究所 | 一种面向复杂场景的基于pbom工艺拆分件的生产方法 |
CN116739483A (zh) * | 2022-09-16 | 2023-09-12 | 荣耀终端有限公司 | 数据处理方法、装置、计算机设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1444161A (zh) * | 2002-03-11 | 2003-09-24 | 联想(北京)有限公司 | 物料清单(bom)数据的拆分方法 |
CN101706820A (zh) * | 2009-12-10 | 2010-05-12 | 金蝶软件(中国)有限公司 | 物料清单存储方法及装置、查询方法及装置 |
CN101937526A (zh) * | 2010-04-28 | 2011-01-05 | 重庆迈特科技有限责任公司 | 一种基于基型产品的产品多bom树配置方法 |
CN102867059A (zh) * | 2012-09-19 | 2013-01-09 | 浪潮(北京)电子信息产业有限公司 | 一种树形结构中数据的处理方法和系统 |
CN104778540A (zh) * | 2015-03-27 | 2015-07-15 | 中材装备集团有限公司 | 一种建材装备制造bom管理方法及管理系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140244019A1 (en) * | 2013-02-22 | 2014-08-28 | Sap Ag | System and Method for Bill-of-Materials Low-Level Code Harmonization |
-
2016
- 2016-12-15 CN CN201611157699.8A patent/CN107067200B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1444161A (zh) * | 2002-03-11 | 2003-09-24 | 联想(北京)有限公司 | 物料清单(bom)数据的拆分方法 |
CN101706820A (zh) * | 2009-12-10 | 2010-05-12 | 金蝶软件(中国)有限公司 | 物料清单存储方法及装置、查询方法及装置 |
CN101937526A (zh) * | 2010-04-28 | 2011-01-05 | 重庆迈特科技有限责任公司 | 一种基于基型产品的产品多bom树配置方法 |
CN102867059A (zh) * | 2012-09-19 | 2013-01-09 | 浪潮(北京)电子信息产业有限公司 | 一种树形结构中数据的处理方法和系统 |
CN104778540A (zh) * | 2015-03-27 | 2015-07-15 | 中材装备集团有限公司 | 一种建材装备制造bom管理方法及管理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107067200A (zh) | 2017-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107067200B (zh) | 一种物料清单数据的操作方法及装置 | |
Erschler et al. | Finding some essential characteristics of the feasible solutions for a scheduling problem | |
US10970673B2 (en) | Bill of material synchronization | |
CN112650766B (zh) | 数据库数据操作的方法、系统及服务器 | |
US20080059945A1 (en) | Generating a Business Document Model | |
CN101727322B (zh) | 优化物料清单管理界面的方法及装置 | |
CN108595604B (zh) | 一种智能报表的数据可视化系统及方法 | |
CN110727687B (zh) | 一种物料清单转换方法及其系统 | |
CN106662854A (zh) | 用于控制系统的装置的配置的方法和系统 | |
CN110413277B (zh) | 一种ui界面的生成方法及系统 | |
CN109033729B (zh) | 一种产品设计的信息管理方法及系统 | |
CN103984554B (zh) | 软件设计文档的生成方法及装置 | |
CN111475602B (zh) | 多版本知识图谱的存储方法、装置、存储介质及电子设备 | |
CN103279347A (zh) | 一种通用的软件产品线领域模型与应用模型的同步方法 | |
CN104267967B (zh) | 软件的程序代码的生成方法及装置 | |
CN104636471A (zh) | 一种程序代码的查找方法及装置 | |
US20090193053A1 (en) | Information management system | |
US20060184715A1 (en) | Method and system for exchanging description data between projects | |
CN106446086A (zh) | 用于云计算环境的树结构操作方法和系统 | |
CN115080543A (zh) | 一种事件计划状态数字孪生方法、装置及设备 | |
CN116150205A (zh) | 一种变更数据的存储方法、查询方法及相关产品 | |
CN113568921A (zh) | 一种面向地理信息数据生产更新的多人协同作业方法 | |
JP2001265760A (ja) | 文書履歴管理装置および文書履歴管理方法 | |
US9141650B1 (en) | Methods and systems for filtering tree node data to determine part and assembly relationships | |
CN109542887B (zh) | 一种通用型在线数据离线编辑融合的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |