一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种物料需求计划方法及系统与流程

2021-11-09 20:47:00 来源:中国专利 TAG:


1.本公开涉及生产制造信息化领域,特别是涉及一种物料需求计划方法及系统。


背景技术:

2.随着智能设备的普及、国内原始设计制造商的崛起,客户订单量不断增多,对订单的响应速度有着极高的要求。通常,制造商的排程生产是根据现有订单需求来人工计算所需的物料及开工周期,以开立工单。工单能记录生产物料的过程,且会作为需求驱动供应商把采购订单送货至工厂。一份结构完整、要素齐全、逻辑严谨的工单能够一定程度上的优化物料库存的利用率,然而订单转工单处理过程会耗费大量人工,且人工计算在计算准度上不够精确并且缺乏一定的时效性。
3.为节约在开工单时耗费的人力,mpr系统应运而生。mpr(物料需求计划,material requirement planning)是指根据产品结构各层次物品的从属和数量关系,以每个物品为计划对象,以完工时期为时间基准倒排计划,按提前期长短区别各个物品下达计划时间的先后顺序,是一种工业制造企业内物资计划管理模式。mrp是根据市场需求预测和顾客订单制定产品的生产计划,然后基于产品生成进度计划,组成产品的材料结构表和库存状况,通过计算机计算所需物料的需求量和需求时间,从而确定材料的加工进度和订货日程的一种实用技术。
4.然而,mrp系统在实际应用中仍存在部分不足,如:
5.1.mpr系统无法计算满足需求的最大齐套数量。最大齐套数量是指现有供应可齐套的数量,计算其意义在于不仅能够快速应对紧急需求的响应、自动开工单,还能够得到多维度物料缺料信息以反馈物料采购信息。而mpr系统由于无法计算最大齐套数量,即无法应对紧急需求响应、无法自动开工单,也无法反馈物料采购信息;
6.2.mpr系统无法应对存在替代料的场景。替代料是指在产品bom结构中的某个物料(半成品、制造件或是采购件)可以被另外的物料按照一定的数量比例进行替换。而mpr无法应对存在替代料的场景,便导致部分物料的利用率较低,且常用料的采购较为频繁。此外,若想实现替代料的利用,则需要对同一产品建立多个bom(物料清单bill of material),增加了产品bom的复杂度及产品生产周期的管理难度。
7.由此导致的是现有的mpr系统不仅使得物料库存利用率低,也无法响应优先级高的需求或紧急需求,还无法自动生成工单以指导实际生产。


技术实现要素:

8.基于上述提到的现有技术中存在的一些问题,提供一种物料需求计划方法及系统。
9.本发明提供一种物料需求计划方法,所述物料需求计划方法包括:
10.建立产品bom,所述产品bom包括制造该产品所需的所有物料和部分物料的替代料,并将存在替代料的物料与替代料划分为一个替代组;
11.根据生产订单预计算物料需求,以得到现有物料库存所能生产的产品数量,以及完成所述生产订单缺乏的物料和对应的数量,其中包括:
12.根据生产订单确认产品bom;
13.自上而下判断所述产品bom中每一层级的各物料是否存在替代料;
14.若物料不存在替代料,则计算该物料是否满足物料需求,若不满足物料需求,则计算现有物料库存所能生产的产品数量,以及完成所述生产订单缺乏的物料数量;
15.若物料存在替代料,则设置替代料的优先级顺序,并根据优先级顺序确认物料及替代料是否满足物料需求,若不满足物料需求,则计算现有物料库存及替代料库存所能生产的产品数量,以及完成所述生产订单缺乏的物料数量;
16.对预计算结果进行供需平衡调整,并根据调整的结果开工单及采购需求单;
17.人工确认是否执行所述工单和采购需求单;
18.根据人工确认的结果进行偏向性学习,所述偏向性学习是基于马尔科夫决策过程的强化学习。
19.作为一种实施方式,若物料不存在替代料,所述根据生产订单预计算物料需求的方法还包括:
20.判断当前物料是否存在下一层级;
21.若无下一层级,则计算该物料是否满足物料需求,若不满足物料需求,则计算现有物料库存所能生产的产品数量,以及完成所述生产订单缺乏的物料数量;
22.若有下一层级,则遍历下一层级所有物料,判断每一物料是否存在替代料;
23.若下一层级的物料不存在替代料,则计算该物料是否满足物料需求,若不满足物料需求,则计算现有物料库存所能生产的产品数量,以及完成所述生产订单缺乏的物料数量;
24.若下一层级的物料存在替代料,则设置替代料的优先级顺序,并根据优先级顺序确认物料及替代料是否满足物料需求,若不满足物料需求,则计算现有物料库存及替代料库存所能生产的产品数量,以及完成所述生产订单缺乏的物料数量。
25.作为一种实施方式,若物料存在替代料,所述根据生产订单预计算物料需求的方法还包括:
26.设置该物料的各替代料的优先级顺序;
27.计算当前物料是否满足物料需求,若不满足物料需求,则判断当前物料是否存在下一层级;
28.若无下一层级,则计算现有物料库存所能生产的产品数量,并按照优先级顺序顺次计算替代料所能生产的产品数量;
29.汇总所有所能生产的产品数量以确认替代组是否满足物料需求及完成所述生产订单缺乏的物料数量;
30.若有下一层级,则遍历下一层级所有物料,判断每一物料是否存在替代料;
31.若下一层级的物料不存在替代料,则计算该物料是否满足物料需求,若不满足物料需求,则计算现有物料库存所能生产的产品数量,以及完成所述生产订单缺乏的物料数量;
32.若下一层级的物料存在替代料,则设置替代料的优先级顺序,并根据优先级顺序
确认物料及替代料是否满足物料需求,若不满足物料需求,则计算现有物料库存及替代料库存所能生产的产品数量,以及完成所述生产订单缺乏的物料数量。
33.作为一种实施方式,所述对预计算结果进行供需平衡调整的方法包括:
34.若物料存在替代料,且物料及替代料不满足物料需求,则假设物料不存在替代料,并重新计算完成所述生产订单缺乏的物料数量。
35.作为一种实施方式,所述对预计算结果进行供需平衡调整的方法还包括:
36.将每一物料按照优先级顺序进行排序,依次计算最大可供应数量并将所述最大可供应数量与生产订单相关联;
37.按照产品bom展开遍历下层需求,并计算对下层各物料的需求数量:
[0038][0039]
其中,变量qty表示上层物料的需求数量,quantity表示构成一个单位的上层物料所需要子物料数量,yield表示用子物料在生产上层物料时的产出率,d(x)表示对子物料x的需求数量;
[0040]
当物料的供应不满足需求时,创建对应的生产计划并将所述生产计划与所述生产订单相关联。
[0041]
作为一种实施方式,所述对预计算结果进行供需平衡调整的方法还包括:
[0042]
获取预计算的结果,并判断物料的需求是否被供应满足;
[0043]
若物料的需求未被满足,则计算需求的物料的最大齐套数量;
[0044]
根据所述最大齐套数量重置物料的需求数量;
[0045]
由重置后的物料的需求数量重新进行预计算;
[0046]
将重新预计算的结果按照替代组进行拆分,并对拆分的结果中的数量进行校正。
[0047]
作为一种实施方式,所述优先级顺序包括:
[0048]
第一优先级:物料直接或间接供应数量>0优先;
[0049]
第二优先级:构成物料直接或间接供应所相关物料的供应优先级越高越优先;
[0050]
第三优先级:构成物料直接或间接供应所相关物料的数量越少越优先。
[0051]
本发明还提供一种物料需求计划系统,用于实施如上任一项所述的物料需求计划方法,所述物料需求计划系统包括bom建立模块、物料库存统计模块、分析计算模块和单据开立模块;所述bom建立模块用于建立产品bom;所述物料库存统计模块用于实时更新计算各物料的库存数据;所述分析计算模块用于根据所述生产订单预计算物料需求,并对预计算结果进行供需平衡调整,以得到工单信息和采购信息;所述单据开立模块用于根据所述工单信息开立工单,并根据采购信息开立采购需求单。
[0052]
作为一种实施方式,所述分析计算模块包括信息获取单元、预计算单元、供需平衡调整单元和结果输出单元;所述信息获取单元用于获取生产订单、产品bom和物料库存;所述预计算单元用于根据获取的所述生产订单、所述产品bom和所述物料库存预计算物料需求,以得到现有物料库存所能生产的产品数量,以及完成所述生产订单缺乏的物料和对应的数量;所述供需平衡调整单元用于对所述预计算单元的结果进行供需平衡调整,以得到工单信息和采购信息;所述结果输出单元用于将所述供需平衡调整单元得到的所述工单信息和所述采购信息输出至所述单据开立模块。
[0053]
上述的物料需求计划方法及系统,能够在产品bom存在替换料的场景下,针对各种物料替代组合的场景,在不考虑时间的基础上,根据实时供应进行物料供需平衡计算,能够快速响应优先级高或紧急需求,能够生成工单以指导实际生产,能够一定程度上的优化物料库存的利用率,从而有效的降低库存成本。
附图说明
[0054]
为了更清楚地说明本公开或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0055]
图1a至图1d为各类替代的示意图;
[0056]
图2为本实施例中的物料需求计划方法流程图;
[0057]
图3为本实施例中的预计算的方法流程图;
[0058]
图4为本实施例中的物料不存在替代料的预计算的方法流程图;
[0059]
图5为本实施例中的物料存在替代料的预计算的方法流程图;
[0060]
图6为本实施例中的物料需求计划系统的结构示意图;
[0061]
图7为本实施例中的示例的bom结构示意图;
[0062]
图8为本实施例中的示例的供需平衡调整结果示意图。
具体实施方式
[0063]
为使本公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
[0064]
随着国内原始设计制造商的崛起,客户订单数量不断增多,因此要求制造商对订单的响应速度较高。与此同时,产品的形态和种类越来越多,这就决定了制造商物料的多样性和物料使用方式的多样性。出现替代料的情况至少有以下几种原因:
[0065]
1.供应原因:物料供应商无法及时供应原定的物料,需要使用替代料;
[0066]
2.成本原因:替代料的成本与主料的成本不一致,根据市场需要决定用哪一种料;
[0067]
3.质量原因:替代料的质量与主料的质量不一致,根据市场需要决定用哪一种料;
[0068]
4.合规原因:在不同的地区,对某一物料的法规要求不一致,例如有铅无铅(rohs);
[0069]
5.清理旧料库存原因:某一旧的物料仍然可用,将旧料用完再用新料(一般在不影响产品功能的前提下),如工艺升级。
[0070]
常见的替代料替代方式有以下几种:
[0071]
a.组合替代:替代关系不仅仅是1对1的,还有多对多的。比如,如图1a所示,一个瓶身需要配一个盖,这是一种组合(比如颜色的要求等)。那么当这个瓶身有替代的时候,它的盖子也是需要一并替换的。
[0072]
b.优先替代:替代关系可能有多个,比如,如图1b所示,a没有库存时优先由b替代,当b也没有存库时可由c替代。
[0073]
c.错阶替代:替代关系的发生可能不止在一层,可以在多层中都发生替代。如图1c所示,物料b用于替代物料a时,不仅可以发生在制造某产品时,还可以发生在制造半成品m时。
[0074]
d.不完全替代:同一个物料在不同的bom中,可用于替换的物料是不一样的。如图1d所示,如产品x的物料a只能用b替换,但y产品的中的物料a可以用b或者c替换。
[0075]
现有制造行业的产品组成有如下特点:
[0076]
1.具有较为固定的产品结构,即产品bom固定;
[0077]
2.产品相对较为复杂,包含多个零部件,一般具有相对较为固定的产品结构、原材料清单和零部件配套关系。
[0078]
由于以上产品特点,结合部分零部件可能采用替代料生产,使得在开工单时需要耗费较多的人力来手工计算并安排生产。即使使用了mrp系统也无法应对在一个产品存在多个替换料时的工单开立,仍需手工计算,造成这一问题的根本原因在于:mpr系统采用llc自上而下逐层展开bom树,在展开bom的过程中,如果遇到一个替代物料组,标准mrp只考虑了当前层替代物料组中每颗料当前的供应数量,没有考虑当前物料(制造件或半成品)的下一层物料的供应状态;此外,标准mrp运算关注问题的重心在于在满足全部需求需要产生的制造计划或采购计划,而对于实时供应能齐套多少需求以及齐套的那部分需求怎么开工单的业务场景不予支持。
[0079]
考虑到上述标准mrp运算的无法支持替代料场景下的最大齐套计算的根本原因,发明人提出:对替代物料组的总需求数量的分配规则应该基于替代组的物料及其下层物料供应状态进行分配,其中物料供应状态应当考虑齐套性、供应类型、供应时间和数量等;并能够根据实时供应齐套需求开工单。
[0080]
具体地,本实施例提供一种物料需求计划方法,如图2和图3所示,所述物料需求计划方法包括:
[0081]
建立产品bom,所述产品bom包括制造该产品所需的所有物料和部分物料的替代料,并将存在替代料的物料与替代料划分为一个替代组;
[0082]
根据生产订单预计算物料需求,以得到现有物料库存所能生产的产品数量,以及完成所述生产订单缺乏的物料和对应的数量,其中包括:
[0083]
根据生产订单确认产品bom;
[0084]
自上而下判断所述产品bom中每一层级的各物料是否存在替代料;
[0085]
若物料不存在替代料,则计算该物料是否满足物料需求,若不满足物料需求,则计算现有物料库存所能生产的产品数量,以及完成所述生产订单缺乏的物料数量;
[0086]
若物料存在替代料,则设置替代料的优先级顺序,并根据优先级顺序确认物料及替代料是否满足物料需求,若不满足物料需求,则计算现有物料库存及替代料库存所能生产的产品数量,以及完成所述生产订单缺乏的物料数量;
[0087]
对预计算结果进行供需平衡调整,并根据调整的结果开工单及采购需求单;
[0088]
人工确认是否执行所述工单和采购需求单;
[0089]
根据人工确认的结果进行偏向性学习,所述偏向性学习是基于马尔科夫决策过程的强化学习。
[0090]
通过对物料需求进行预计算,可以获知在有替代料或无替代料的情形下,利用主
料和替代料共同所能生产的产品数量(即齐套数量),进而能够对库存物料进行最大限度的利用,此外,在主料和替代料都不足的情况下,还能够根据生产订单和计算的齐套数量获取相应的物料采购数量。进一步的,通过供需平衡调整,能够使得生成的工单更加利于生产排程和物料采购,降低了实际操作的复杂性。
[0091]
以及,由于本实施例提供的物料需求计划方法的输出结果只是工单和生产建议,所以在实际生产中需要人工对其运算结果进行决策,而是否采纳在一定程度上反应了本实施例提供的物料需求计划方法的结果是好还是坏。通过人工决策,选择合适的计划单执行,从而能够调整本实施例提供的物料需求计划方法的参数,这样算法可以学习到在什么样的情况下应该选择什么样的行为才可以得到最好的结果。
[0092]
强化学习正好可以满足上述场景,强化学习适用于输入数据没有label的场景,是一种无监督学习。本实施例选用的强化学习是基于马尔科夫的决策过程,包含状态集、动作、状态转移概率、折扣因子和回报函数。具体的,对应于本实施例中,状态集表示该物料需求计划方法运算结果好坏,在每次物料需求计划方法运行结束之后可以通过人工判断;动作对应每次物料需求计划方法运行结束的采购建议和生产建议是否采纳,一次建议的采纳或拒绝会导致物料需求计划方法运行向更好或更差的方向转移。理论上讲,强化学习可以帮助物料需求计划方法输出更优的生产采购建议。
[0093]
更具体地,在本实施例中,预计算过程主要是解决替代料组中主料和替代料分支需求数量分配的问题,其输出是对替代料组各物料节点的需求数量分配,在计算结束后构建供应与需求追溯关系以及各节点使用供应情况。
[0094]
预计算的逻辑描述如下:
[0095]
预计算是对原始需求产品结构bom树的深度优先遍历的过程,在深度优先遍历过程中需要区分两类不同的物料节点:
[0096]
1.单物料:即不存在替代料的物料,对于单物料节点,首先扣减物料现有供应,如果当前物料供应无法满足需求,判断该物料是否可以展开,若可以则产生子需求继续向下传递需求,进行单物料供应需求平衡过程,否则生成该物料的生产计划并构建追溯关系;
[0097]
2.替代物料组:即存在替代料并组合为替代组的物料,对于替代料物组节点,通过各物料库存的齐套状态及优先级顺序确认主替分支需求分配顺序和需求分配数量,进行可替代料组物料需求的预计算。
[0098]
在本实施例中,如图4所示,若物料不存在替代料,所述根据生产订单预计算物料需求的方法还包括:
[0099]
判断当前物料是否存在下一层级;
[0100]
若无下一层级,则计算该物料是否满足物料需求,若不满足物料需求,则计算现有物料库存所能生产的产品数量,以及完成所述生产订单缺乏的物料数量;
[0101]
若有下一层级,则遍历下一层级所有物料,判断每一物料是否存在替代料;
[0102]
若下一层级的物料不存在替代料,则计算该物料是否满足物料需求,若不满足物料需求,则计算现有物料库存所能生产的产品数量,以及完成所述生产订单缺乏的物料数量;
[0103]
若下一层级的物料存在替代料,则设置替代料的优先级顺序,并根据优先级顺序确认物料及替代料是否满足物料需求,若不满足物料需求,则计算现有物料库存及替代料
库存所能生产的产品数量,以及完成所述生产订单缺乏的物料数量。
[0104]
当当前物料(主料)可以由下一层级的物料组装获得时,可以对下一层级的物料数量进行确认,从而获得主料的产出数量,如此能够使产品bom中的主料及其下一层级的物料的使用率最优化,避免因采购主料而导致的下一层级的物料呆滞。
[0105]
以及,在本实施例中,如图5所示,若物料存在替代料,所述根据生产订单预计算物料需求的方法还包括:
[0106]
设置该物料的各替代料的优先级顺序;
[0107]
计算当前物料是否满足物料需求,若不满足物料需求,则判断当前物料是否存在下一层级;
[0108]
若无下一层级,则计算现有物料库存所能生产的产品数量,并按照优先级顺序顺次计算替代料所能生产的产品数量;
[0109]
汇总所有所能生产的产品数量以确认替代组是否满足物料需求及完成所述生产订单缺乏的物料数量;
[0110]
若有下一层级,则遍历下一层级所有物料,判断每一物料是否存在替代料;
[0111]
若下一层级的物料不存在替代料,则计算该物料是否满足物料需求,若不满足物料需求,则计算现有物料库存所能生产的产品数量,以及完成所述生产订单缺乏的物料数量;
[0112]
若下一层级的物料存在替代料,则设置替代料的优先级顺序,并根据优先级顺序确认物料及替代料是否满足物料需求,若不满足物料需求,则计算现有物料库存及替代料库存所能生产的产品数量,以及完成所述生产订单缺乏的物料数量。
[0113]
当当前物料(主料)存在替代料时,优先使用替代料替代主料,从而节约工厂制造成本;当主料和替代料也无法满足生产订单时,还可以判断主料是否存在下一层级的物料,从而利用下一层级的物料产出主料。当然,在其他一些实施例中,替换料也可能存在下一层级的物料,从而利用下一层级的物料产出替换料。如此,不仅能够使得替换料的利用率最大,还能够保证主料的下一层级的物料不会出现呆滞料,提高了物料库存的利用率。
[0114]
更具体地,在本实施例中,所述对预计算结果进行供需平衡调整的方法包括:
[0115]
若物料存在替代料,且物料及替代料不满足物料需求,则假设物料不存在替代料,并重新计算完成所述生产订单缺乏的物料数量。
[0116]
由于替代料和主料的生产工艺可能存在差异,若物料及替代料均无法满足生产时,表示不仅要使用物料所对应的生产工艺,还要使用替代料所对应的生产工艺,此外还需购买物料以补足物料需求。为了简化生产过程,若物料和替代料无法满足生产订单,则直接使用主料进行生产加工,并采购相差的物料,从而降低生产工艺的复杂度。当然,在其他一些具体实施例中,也可以设定在主料和替代料无法满足生产订单时采用的物料的优先级,如设定库存最多的为生产用的物料,并对应计算缺乏的物料数量。
[0117]
具体的,供需平衡调整的关键流程包括:
[0118]
首先,需求按照供应优先级消耗供应:将每一物料按照优先级顺序进行排序,依次计算最大可供应数量并将所述最大可供应数量与生产订单相关联。
[0119]
接着,按照bom展开遍历下层需求:下层物料的相关需求信息主要包括需求数量、需求优先级、需求日期等;计算下层物料的需求实时数量需要考虑子物料用量比例、产出率
或损耗率,一般可由以下公式计算得出:
[0120][0121]
其中,变量qty表示上层物料的需求数量,quantity表示构成一个单位的上层物料所需要子物料数量,yield表示用子物料在生产上层物料时的产出率,d(x)表示对子物料x的需求数量。
[0122]
最后,创建生产计划:当物料的供应不满足需求时,创建对应的生产计划并将所述生产计划与所述生产订单相关联。
[0123]
在存在替代组时,当前物料间接供应信息的计算逻辑可以为:
[0124]
x=(x1,x2,x3

)
[0125]
y(q,l,p)={min(q(x)),max(l(x)),min(p(x))}
[0126]
其中,x表示可构成物料y的所有子物料集合;q(x)表示子物料x的供应可间接构成物料y供应的数量;l(x)表示可构成物料y间接供应的物料x的层级取值为[0,99]范围的整数;p(x)表示可构成物料y间接供应的物料x的供应优先级取值为[0,99]范围的整数;y(q,l,p)表示当前可构成物料y间接供应的信息。
[0127]
还需要说明的是,在本实施例中,替代物料组最优供应齐套选择逻辑可以描述为:
[0128]
替代物料组最优供应齐套选择需要考虑供应数量、供应物料bom层级、供应的优先级和供应数量,且最优齐套的逻辑分为单物料与替代组物料两种类别,其中,替代组物料之间的比较主要需考虑物料齐套数量,单物料之间的比较主要考虑供应优先级、供应数量和供应时间。
[0129]
在本实施例中,假设优先级的顺序为:
[0130]
第一优先级:物料直接或间接供应数量>0优先;
[0131]
第二优先级:构成物料直接或间接供应所相关物料的供应优先级越高越优先;
[0132]
第三优先级:构成物料直接或间接供应所相关物料的数量越少越优先。
[0133]
本实施例还提供一种物料需求计划系统,如图6所示,所述物料需求计划系统包括bom建立模块、物料库存统计模块、分析计算模块和单据开立模块;所述bom建立模块用于建立产品bom;所述物料库存统计模块用于实时更新计算各物料的库存数据;所述分析计算模块用于根据所述生产订单预计算物料需求,并对预计算结果进行供需平衡调整,以得到工单信息和采购信息;所述单据开立模块用于根据所述工单信息开立工单,并根据采购信息开立采购需求单。
[0134]
具体的,所述分析计算模块包括信息获取单元、预计算单元、供需平衡调整单元和结果输出单元;所述信息获取单元用于获取生产订单、产品bom和物料库存;所述预计算单元用于根据获取的所述生产订单、所述产品bom和所述物料库存预计算物料需求,以得到现有物料库存所能生产的产品数量,以及完成所述生产订单缺乏的物料和对应的数量;所述供需平衡调整单元用于对所述预计算单元的结果进行供需平衡调整,以得到工单信息和采购信息;所述结果输出单元用于将所述供需平衡调整单元得到的所述工单信息和所述采购信息输出至所述单据开立模块。
[0135]
以下,以一具体实施例说明本发明提供的物料需求计划方法及系统。在该实施例中,生产订单为生产100件电脑配件x,图7所示为该电脑配件x的bom结构树,从图7可以看
出,生产1件电脑配件x需要1个物料a和一个物料b,而物料b存在替代料c和d,同时1个物料b还可以由1个物料e和1个物料f组装获得,1个替代料c可以由1个物料g和1个物料h组装获得。
[0136]
如表一所示,展示的是目前各物料的库存状况:
[0137]
表一
[0138][0139][0140]
另外,还确认到物料f有10件采购订单。
[0141]
本实施例提供的物料需求计划系统获取电脑配件x的bom及bom中各物料的库存后开始预计算,具体包括:
[0142]
将生产订单的100件扣减掉库存中的20件电脑配件x,还剩余80件的电脑配件x需求。由于物料b和替代料c均无库存,而物料a库存20件,替代料d库存10件,因此可以由物料a和替代料d生产10件电脑配件x,此时还剩余70件的电脑配件x需求。
[0143]
向bom下一层级展开,可得物料e和物料f可生产10件物料b,同时物料a还剩余10件,因此物料a和物料b可生产10件电脑配件x,此时剩余60件的电脑配件x需求。同时,物料g和物料h可生产20件替代料c。
[0144]
此时物料需求计划系统预计算得到:利用现有物料可满足40件电脑配件x的需求,此外还可有20件替代料c。因此为满足100件电脑配件x的生产订单,会产生物料a的60件po,和40件物料b(或40件物料e及30件物料f)的po。
[0145]
由此可以看出,开立的工单中不仅包括了物料a和物料b生产电脑配件x,还包括物料a和替代料c生产电脑配件x、物料a和替代料d生产电脑配件x,以及物料e和物料f生产物料b、物料g和物料h生产替代料c,大大增加了生产复杂度,这是不利于生产制造的,因此,必须简化工单生产。
[0146]
在本实施例中,在预计算的基础上进行供需平衡调整,由于存在替代料d可直接与物料a生产电脑配件x,因此可以直接生成替代料d的70件po,如此,生产单位只需按照物料a
与替代料d组合生产电脑配件x的方式进行生产,降低了生产难度。
[0147]
当然,若考虑到订单紧急情况,可以不考虑生产的复杂度,而最大限度的利用现有库存物料,以及采购时考虑物料的到位周期来决定采买何种物料。或者,考虑到替换料的通用性,将通用性较低的替换料设置为较高的优先级优先使用;又或者,考虑已采购订单,将采购中的物料设置为较高的优先级以防止采买的物料屯放。
[0148]
具体的,根据需求和供应以及产品bom结构数据进行预计算模拟过程如下:
[0149]
1.原始需求是对电脑配件x数量为100的需求,电脑配件x现有供应量为20,无法满足需求,产生对子物料a和由物料b、物料c以及物料d所构成的替代物料组各80的需求。
[0150]
2.物料a现有库存供应量为20,而替代料组存在自然替代料物料d,物料d现有库存供应量则物料10,优先消耗自然替代料,此时仍存在70的需求数量。
[0151]
3.由于自然替代料d的供应未能满足需求,则由物料b和物料c所构成的替代物料组需要根据主料分支和替代料分支的直接或间接供应信息计算需求分配优先级,以此来确定对主替物料分支的需求分配数量。
[0152]
假设:替代物料组优先分配函数计算步骤包括:
[0153]
步骤一,子主物料b与替换料c为替换料组,为虚拟件,可以继续向下展开,需要进行优先选择。物料b计算齐套需继续向下展开,递归计算齐套数量。物料b展开下有物料e、物料f,物料e现有10库存供应,物料f有10库存供应和10采购订单,则物料f选择优先10库存供应,接着物料e与物料f合并齐套结果即物料b此时齐套数量10。替换料d展开下有物料g、物料h,物料g和物料h分别有库存供应20,则替换料c供应可齐套20。可构成物料b的间接供应数量为10/1=10;替代料c的间接供应数量为20/1=20,替换料组之间优先选择数量多的,则需求优先选择替换料c即占用物料g的库存供应与物料h的库存供应。接着创建相同结构需求数量为50的子需求。
[0154]
步骤二,由步骤一生成的子需求需求数量为50,,物料b由下层可供的齐套数量为10而替换料c不存在可供齐套数量,子物料e和子物料f构成间接供应的齐套数量为10,由此子需求选择物料b即子需求占用物料e的10库存、物料f的10库存。接着创建需求数量为40的子需求。
[0155]
步骤三,由步骤二生成的子需求需求数量为40,替换料c没有可供应齐套数量,主料b不存在可供应齐套数量,但是子物料f存在10的采购订单供应。由此选择主料b即子需求占用物料f的10采购订单供应并创建、关联物料e的10欠po,通过下层物料e和物料f构成间接齐套数量为10。接着创建需求数量为30的子需求。
[0156]
步骤四,由步骤二生成的子需求需求数量为30,此时主物料b以及替换料c都没有现有可供应齐套数量,且所有下层物料无库存;由此选择主物料b,并创建主物料b展开下的物料e和物料f的数量分别为30的欠po。
[0157]
步骤五,将前四个步骤生成的零散的需求合并,以便后面计算最大齐套数量。
[0158]
最终,计算得到替代组的需求分配规则为:
[0159]
物料b需求数量为50(10 10 30),供需平衡为:下层物料e,f构成间接供应数量10;欠po物料e、物料f构成间接供应数量10;欠po物料e、欠po物料f构成间接供应数量30;
[0160]
替代料c需求数量为20,供需平衡为下层物料g、h构成间接供应数量20。
[0161]
以上述预计算的例子可以发现,在预计算过程完成后,可以得到对每一个替代料
组的主替需求分配数量以及非替代料的需求数量。预计算结束时对同一物料而言需求数量和供应数量已经确定,存在需求占用部分未齐套的供应。而本实施例提供的物料需求计划方法及系统的最终目的是开工单,对于开工单而言,未齐套供应一直被前面的需求占用,显然是不合理的,因此需要再计算最大齐套数量,将最大齐套数量作为需求数量重新计算以释放未齐套的那部分供应。此外,对于最终以替换组形式存在的整个bom结构必须再以替换组为单位进行拆分,这便导致加工工单较为复杂;而生产的产线工艺相对单一,不能混合生产,由此交付生产的工单应当以单一替换组为内容的,即预计算后提供的工单不便于产线生产。
[0162]
为了优化工单,必须对每颗物料的需求和供应进行调整,即供需平衡调整。在供需平衡调整中,引入最大齐套数量,如此便可以在供需平衡计算中限制需求占用供应,以达到释放未齐套供应的目的。具体的,供需平衡调整的方法包括:
[0163]
获取预计算中的欠po相关数据,由此判断当前需求是否被供应满足;
[0164]
若物料的需求未被满足,则计算需求的物料的最大齐套数量;
[0165]
根据所述最大齐套数量重置物料的需求数量;
[0166]
由重置后的物料的需求数量重新进行预计算;
[0167]
将重新预计算的结果按照替代组进行拆分,并对拆分的结果中的数量进行校正。
[0168]
下面,通过对上述例子的预计算结果进行供需平衡调整,以具体说明本实施例提供的供需平衡调整方法。
[0169]
在上述预计算过程中,其输出是要记录每一个上层物料的每一个组件如何分解,其内容主要包含了物料号和物料分配数量。
[0170]
在供需平衡调整中,首先,获取需求计算中创建欠po(订单),若存在欠po,则当前需求未被供应满足。由预计算可得知,电脑配件x分别创建了物料e、物料f的欠po,则电脑配件x未被供应直接或间接满足。由此可知电脑配件x未被满足,则需要计算需求的最大齐套数量。然后,通过供需平衡调整计算可知电脑配件x最大齐套数量为20,根据最大齐套数量重置需求数量,再进行预计算。最后,将需求结果进行拆分,并进行拆分结果数量校正,得到最终拆分结果如图8所示。
[0171]
以下,给出本实施例提供的物料需求计划方法的部分过程的算法伪代码。
[0172]
当物料不存在替代料时,该物料的需求供应平衡的流程伪代码可以为:
[0173]
void fulfillment(demand):
[0174]
if haschildbom(bom)/*判断当前需求是否可以展开*/
[0175]
createchilddemand(demand,demanddate);/*根据展开物料创建子需求*/
[0176]
fixdemandquantity(itemld,componentdemand);/*按照产率、比例调整子需求数量*/
[0177]
fulfillment(componentdemand);/*递归子需求扣减供应*/
[0178]
else:
[0179]
当物料存在替代料(替代组)时,该替代组的需求供应平衡的流程伪代码可以为:
[0180]
while runningchangeltemset.isnotempty/*自然替代料不为空,进入循环*/
[0181]
calculate;/*计算自然替代料需求*/
[0182]
if demand.openqty>0/*如果需求数量大于0*/
[0183]
subsdemand=createchilddemand(demand);/*创建子需求*/
[0184]
if subsdemand.items.size==1/*判断子需求是否为单物料*/
[0185]
fulfillment(subsdemand)/*进行单物料平衡计算流程*/
[0186]
else
[0187]
while demand.openqty>0/*判断是否仍然存在需求数量*/
[0188]
calculate;/*计算正常主替换料需求*/
[0189]
计算替代料需求的伪代码可以为:
[0190]
subskitresults/*定义数组保存替代物料组内各物料的齐套信息*/
[0191]
for item in demand.items:/*计算替代物料组所有物料当前齐套信息*/
[0192]
kitresult=getnearestkits(item);/*获取当前物料节点的齐套信息*/
[0193]
subskitresults.add(kitresult);
[0194]
if subskitresults.isnotempty
[0195]
optkit=compare(subskitresults);/*从所有物料齐套信息中选择一个最优结果*/
[0196]
openqty=min(optkit.qty,subsdemand);/*齐套数和子需求数选择最小值*/
[0197]
subsdemand.qty

=opt.qty;
[0198]
childdemand=createchilddemand(openqty);/*对产生最优结果的物料分配需求*/
[0199]
fulfillment(childdemand);/*执行单物料需求供应平衡流程*/
[0200]
替代组齐套数量的计算伪代码可以为:
[0201]
kitresult getnearestkits(item):
[0202]
if!ishqvitem(item)/*判断当前物料是否为实件*/
[0203]
kitoptiona l=supply.fetchtypedsupplykit/*计算当前可供应数量*/
[0204]
return createkitresult(kitoptiona);/*创建齐套结果*/
[0205]
else:
[0206]
runchangekitmap/*哈希表,保存各子物料节点的最优齐套*/
[0207]
kitmap/*哈希表,保存各子物料节点的最优齐套*/
[0208]
for childcomponent in item.compoents:
[0209]
runchangekitresults/*数组,保存子物料节点内自然替代料的齐套信息*/
[0210]
for runchangeltem in childcomponent:
[0211]
kitresults.add(runchangeitem.getnearestkits())
[0212]
kitresult=compare(kitresults)/*从同组内选择一个作为该组提供的最优齐套*/
[0213]
runchangekitmap.add(kitresult)
[0214]
kitresults/*数组,保存子物料节点内正常主替料的齐套信息*/
[0215]
for item in childcomponent:
[0216]
kitresults.add(item.getnearestkits())
[0217]
kitresult=compare(kitresults)/*从同组内选择一个作为该组提供的最优齐套*/
[0218]
kitmap.add(kitresult)
[0219]
bestkit=merge(kitmap,runchangekitmap)/*合并子物料齐套信息*/
[0220]
return bestkit
[0221]
替代组最优齐套选择的伪代码可以为:
[0222]
kitresult compare(kitresults):
[0223]
if kitresults.size=1
[0224]
return kitresults.get(0)
[0225]
boolean hashqv=false;
[0226]
for kit in kitresults:/*遍历替代物料组内的齐套*/
[0227]
if ishqvitem(kit):
[0228]
hashqv=true;
[0229]
break;
[0230]
if hashqv
[0231]
return comparehqvcomponentkits(kitresults);
[0232]
else
[0233]
return comparecomponentkits(kitresults);
[0234]
供需平衡调整的伪代码可以为:
[0235]
void execute():
[0236]
executecalculate;/*预计算*/
[0237]
poplanorderlds=getpoplanorder;/*获取欠po数据*/
[0238]
if poplanorderlds,isnotempty/*判断需求是否被满足*/
[0239]
maxkittingqty=calmaxkittingqty;/*计算最大齐套数量*/
[0240]
recaldemandsbymaxkittingqty;/*根据最大齐套数量重置需求数量*/
[0241]
executecalculate;/*重新进行预计算*/
[0242]
splitwipmaterialrequirements;/*拆分需求结果*/
[0243]
adjustwipmaterialrequirements;/*需求拆分结果数量校正*/
[0244]
以上述伪代码为基础构建的物料需求计划系统与mrp系统相比较,在进行实际运算时,如表二所示,相同体量数据量下,本实施例提供的物料需求计划系统的运行总时间为21分钟,远快于mrp系统的运行总时间6小时,能够有效积极响应紧急订单。
[0245]
表二
[0246][0247]
本专利的工作原理及优点是:
[0248]
通过预计算过程中针对成品需求逐个逐层自上而下展开供需平衡计算,在各种替代场景下能够最大程度上提高库存料的利用率,有效的预防呆滞料的产生,同时也保障了成品需求优先满足的大原则。
[0249]
预计算过程输出并不作为最终结果输出,而是作为标准计算过程的输入,这样从物料供需平衡的优先级看能够做到物料越早的需求越先得满足,从而优化了采购计划需求,做到了晚下单少下单,提高了库存周转率。
[0250]
预计算过程与标准计算过程模块化相互独立,可以自由的调整预计算过程中采取的物料分配策略从而优化整个供需平衡的分配结果,而对标准计算过程没有任何影响。这样后期可以灵活的依据成品和成品物料的消耗数据,供应商数据等建立分析模型,引入人工智能ai等技术手段优化物料分配策略,而不影响整个原有的业务逻辑,真正做到0侵入。
[0251]
整个计算过程是完全基于内存计算的,计算过程中输入的物料主数据,供应数据和需求数据都是批量预加载到内存中,供需平衡计算结果数据最终批量写回到外部存储中,这样有效减少了io操作,相比erp中传统的mrp计算方式大幅提高了计算效率。
[0252]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0253]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,因此,凡在本公开实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献