一种业务计划生成方法和系统与流程

文档序号:26266051发布日期:2021-08-13 19:18阅读:79来源:国知局
一种业务计划生成方法和系统与流程
本发明涉及计算机
技术领域
,特别是涉及一种业务计划生成方法和系统。
背景技术
:在工业4.0背景下,大规模定制化生产将成为趋势。为了能够确保及时产出成品,以及降低物料仓储的成本,从而使企业在激烈的市场竞争中赢得优势,取得最佳经济效益,则需要制定有效的业务计划。一种实现方式中,上述业务计划可以包括主生产计划(masterproductionschedule,简称mps),以及原材料需求计划(materialrequirementplanning,mrp)。基于原材料需求计划,能够保证原材料及时就位,进而成品生产,进而,保证主生产计划顺序完成,确定及时产出成品。技术实现要素:本发明实施例的目的在于提供一种业务计划生成方法和系统,以能够有效地生成业务计划,且能够提高生成业务计划的效率。具体技术方案如下:第一方面,为了达到上述目的,本发明实施例公开了一种业务计划生成方法,所述方法包括:当接收到针对指定产品的业务计划生成的指令时,在预设任务池中添加所述指定产品对应的多个生产任务;其中,一个生产任务用于生成针对一个指定产品的初始主生产计划;开启预设数目个线程;通过每一线程,从所述预设任务池中获取一个当前未处理的生产任务,并按照该生产任务,生成对应的预设将来时间段内的初始主生产计划,直至所述预设任务池中不存在未处理的生产任务;对各个初始主生产计划进行合并,得到所述指定产品的最终主生产计划。可选的,在所述对各个初始主生产计划进行合并,得到所述指定产品的最终主生产计划之后,所述方法还包括:在所述预设任务池中添加所述指定产品对应的多个需求任务;其中,一个需求任务用于生成针对一个指定产品的原材料供应商的初始原材料需求计划;通过每一线程,从所述预设任务池中获取一个当前未处理的需求任务,并按照该需求任务对应的指定产品的最终主生产计划,生成对应的初始原材料需求计划,直至所述预设任务池中不存在未处理的需求任务;对各个初始原材料需求计划进行合并,得到所述指定产品的最终原材料需求计划。可选的,每一指定产品对应的最终主生产计划包含:该指定产品在所述预设将来时间段内的各个成品交付窗口时间的计划生产量;在所述按照该需求任务对应的指定产品的最终主生产计划,生成对应的初始原材料需求计划之前,所述方法还包括:获取该需求任务对应的指定产品的物料信息;其中,该指定产品的物料信息包含:该指定产品的原材料清单、该指定产品的生产周期,以及该指定产品的运输周期;所述按照该需求任务对应的指定产品的最终主生产计划,生成对应的初始原材料需求计划,包括:获取该需求任务对应的指定产品的最终主生产计划中记录的,该指定产品在每一成品交付窗口时间的计划生产量;针对每一成品交付窗口时间,基于该成品交付窗口时间、该指定产品的生产周期,以及该指定产品的运输周期,确定对应的原材料计划到达时间;将该原材料计划到达时间之前的预设物料交付窗口时间,确定为最终物料交付窗口时间;根据该成品交付窗口时间的计划生产量和该指定产品的原材料清单,确定该最终物料交付窗口时间需要交付的各原材料的数目。可选的,在所述对各个初始主生产计划进行合并,得到所述指定产品的最终主生产计划之后,所述方法还包括:基于所述最终主生产计划,确定针对所述指定产品的工作进度;在所述对各个初始原材料需求计划进行合并,得到所述指定产品的最终原材料需求计划之后,所述方法还包括:基于所述最终原材料需求计划,生成原材料采购订单。可选的,在所述根据该成品交付窗口时间的计划生产量和该指定产品的原材料清单,确定该最终物料交付窗口时间需要交付的各原材料的数目之后,所述方法还包括:针对该最终物料交付窗口时间需要交付的每一原材料,基于各个供应商当前的配额和历史已分配数目,计算各个供应商当前的配额率;确定当前的配额率最小的供应商,作为当前的待分配供应商;基于该最终物料交付窗口时间需要交付该原材料的数目,确定为当前的待分配供应商分配的该原材料的数目。可选的,在所述按照该生产任务,生成对应的预设将来时间段内的初始主生产计划之前,所述方法还包括:获取所述预设将来时间段内该生产任务对应的指定产品的需求量;获取该生产任务对应的指定产品当前的库存量;所述按照该生产任务,生成对应的预设将来时间段内的初始主生产计划,包括:基于所述需求量和当前的库存量,计算所述预设将来时间段内每一工作日生产该生产任务对应的指定产品的数量,作为第一数量;针对所述预设将来时间段内的每一成品交付窗口时间,计算该成品交付窗口时间与下一成品交付窗口时间之间的各工作日对应的第一数量的总和值,作为该生产任务对应的指定产品在该成品交付窗口时间的计划生产量。第二方面,为了达到上述目的,本发明实施例公开了一种业务计划生成系统,所述系统包括:业务计划生成服务器,其中:所述业务计划生成服务器,用于当接收到针对指定产品的业务计划生成的指令时,在预设任务池中添加所述指定产品对应的多个生产任务;其中,一个生产任务用于生成针对一个指定产品的初始主生产计划;开启预设数目个线程;通过每一线程,从所述预设任务池中获取一个当前未处理的生产任务,并按照该生产任务,生成对应的预设将来时间段内的初始主生产计划,直至所述预设任务池中不存在未处理的生产任务;对各个初始主生产计划进行合并,得到所述指定产品的最终主生产计划。可选的,所述业务计划生成服务器,还用于在所述对各个初始主生产计划进行合并,得到所述指定产品的最终主生产计划之后,在所述预设任务池中添加所述指定产品对应的多个需求任务;其中,一个需求任务用于生成针对一个指定产品的原材料供应商的初始原材料需求计划;通过每一线程,从所述预设任务池中获取一个当前未处理的需求任务,并按照该需求任务对应的指定产品的最终主生产计划,生成对应的初始原材料需求计划,直至所述预设任务池中不存在未处理的需求任务;对各个初始原材料需求计划进行合并,得到所述指定产品的最终原材料需求计划。可选的,每一指定产品对应的最终主生产计划包含:该指定产品在所述预设将来时间段内的各个成品交付窗口时间的计划生产量;所述系统还包括物料管理服务器;所述业务计划生成服务器,还用于在所述按照该需求任务对应的指定产品的最终主生产计划,生成对应的初始原材料需求计划之前,从所述物料管理服务器获取该需求任务对应的指定产品的物料信息;其中,该指定产品的物料信息包含:该指定产品的原材料清单、该指定产品的生产周期,以及该指定产品的运输周期;获取该需求任务对应的指定产品的最终主生产计划中记录的,该指定产品在每一成品交付窗口时间的计划生产量;针对每一成品交付窗口时间,基于该成品交付窗口时间、该指定产品的生产周期,以及该指定产品的运输周期,确定对应的原材料计划到达时间;将该原材料计划到达时间之前的预设物料交付窗口时间,确定为最终物料交付窗口时间;根据该成品交付窗口时间的计划生产量和该指定产品的原材料清单,确定该最终物料交付窗口时间需要交付的各原材料的数目,得到对应的初始原材料需求计划。可选的,所述系统还包括交付管理服务器和采购管理服务器;所述业务计划生成服务器,还用于在所述对各个初始主生产计划进行合并,得到所述指定产品的最终主生产计划之后,将所述指定产品的最终主生产计划发送至所述交付管理服务器;所述交付管理服务器,用于基于所述最终主生产计划,确定针对所述指定产品的工作进度;所述业务计划生成服务器,还用于在所述对各个初始原材料需求计划进行合并,得到所述指定产品的最终原材料需求计划之后,将所述指定产品的最终原材料需求计划发送至所述采购管理服务器;所述采购管理服务器,用于基于所述最终原材料需求计划,生成原材料采购订单。可选的,所述业务计划生成服务器,还用于在所述根据该成品交付窗口时间的计划生产量和该指定产品的原材料清单,确定该最终物料交付窗口时间需要交付的各原材料的数目之后,针对该最终物料交付窗口时间需要交付的每一原材料,基于各个供应商当前的配额和历史已分配数目,计算各个供应商当前的配额率;确定当前的配额率最小的供应商,作为当前的待分配供应商;基于该最终物料交付窗口时间需要交付该原材料的数目,确定为当前的待分配供应商分配的该原材料的数目。可选的,所述系统还包括库存管理服务器和需求管理服务器;所述业务计划生成服务器,还用于在所述按照该生产任务,生成对应的预设将来时间段内的初始主生产计划之前,从所述需求管理服务器,获取所述预设将来时间段内该生产任务对应的指定产品的需求量;从所述库存管理服务器,获取该生产任务对应的指定产品当前的库存量;基于所述需求量和当前的库存量,计算所述预设将来时间段内每一工作日生产该生产任务对应的指定产品的数量,作为第一数量;针对所述预设将来时间段内的每一成品交付窗口时间,计算该成品交付窗口时间与下一成品交付窗口时间之间的各工作日对应的第一数量的总和值,作为该生产任务对应的指定产品在该成品交付窗口时间的计划生产量。为了达到上述目的,本发明实施例还公开了一种电子设备,所述电子设备包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序时,实现如上述第一方面所述的业务计划生成方法。本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的业务计划生成方法。本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的业务计划生成方法。本发明实施例有益效果:本发明实施例提供的业务计划生成方法,可以当接收到针对指定产品的业务计划生成的指令时,在预设任务池中添加所述指定产品对应的多个生产任务;其中,一个生产任务用于生成针对一个指定产品的初始主生产计划;开启预设数目个线程;通过每一线程,从预设任务池中获取一个当前未处理的生产任务,并按照该生产任务,生成对应的预设将来时间段内的初始主生产计划,直至预设任务池中不存在未处理的生产任务;对各个初始主生产计划进行合并,得到指定产品的最终主生产计划。基于本发明实施例提供的业务计划生成方法,通过合并各个初始主生产计划,能够得到最终主生产计划。另外,通过多线程和预设任务池的方式,生成针对不同指定产品的初始主生产计划,使得每一线程可以在完成一个生产任务对应的初始主生产计划后,继续基于预设任务池中当前未处理的生产任务,完成下一个初始主生产计划,如此,能够避免线程浪费,提高初始主生产计划的生成效率,进而,能够提高生成业务计划的效率。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。图1为本发明实施例提供的一种业务计划生成方法的流程图;图2为本发明实施例提供的一种基于fork/join并发架构的算法流程图;图3为本发明实施例提供的另一种业务计划生成方法的流程图;图4为本发明实施例提供的另一种业务计划生成方法的流程图;图5为本发明实施例提供的一种微服务架构图;图6为本发明实施例提供的一种交付产品的流程示意图;图7为本发明实施例提供的一种生成主生产计划的流程示意图;图8为本发明实施例提供的一种生成原材料需求计划的流程示意图;图9为本发明实施例提供的一种电子设备的结构图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例提供了一种业务计划生成方法,该方法可以应用于电子设备,该电子设备用于生成产品的业务计划。参见图1,图1为本发明实施例提供的一种业务计划生成方法的流程图,该方法可以包括以下步骤:s101:当接收到针对指定产品的业务计划生成的指令时,在预设任务池中添加指定产品对应的多个生产任务。其中,一个生产任务用于生成针对一个指定产品的初始主生产计划。s102:开启预设数目个线程。s103:通过每一线程,从预设任务池中获取一个当前未处理的生产任务,并按照该生产任务,生成对应的预设将来时间段内的初始主生产计划,直至预设任务池中不存在未处理的生产任务。s104:对各个初始主生产计划进行合并,得到指定产品的最终主生产计划。基于本发明实施例提供的业务计划生成方法,通过合并各个初始主生产计划,能够得到最终主生产计划。另外,通过多线程和预设任务池的方式,生成针对不同指定产品的初始主生产计划,使得每一线程可以在完成一个生产任务对应的初始主生产计划后,继续基于预设任务池中当前未处理的生产任务,完成下一个初始主生产计划,如此,能够避免线程浪费,提高初始主生产计划的生成效率,进而,能够提高生成业务计划的效率。在一个实施例中,可以基于fork(分解)/join(合并)并发架构生成业务计划。参见图2,图2为本发明实施例提供的一种基于fork/join并发架构的算法流程图。fork/join框架是java7提供的一个用于并行执行任务的框架,可以将大任务拆分成若干个小任务,并合并各个小任务的执行结果得到大任务的结果。fork/join执行任务主要包含两部分:一、任务拆分:fork/join框架需要将一个任务拆分成足够小的子任务,如果子任务比较大的话,则对子任务进行继续拆分。也就是,本发明实施例中将在预设任务池中添加指定产品对应的多个生产任务。二、执行任务并合并结果:拆分的子任务分别放到工作队列里,然后启动多个线程分别从工作队列里获取子任务执行。子任务执行完的结果都放在另外一个队列里,启动一个线程从该队列里取结果,然后合并这些结果。也就是,本发明实施例中,通过每一线程从预设任务池中获取当前未处理的生产任务,并按照该生产任务,生成对应的预设将来时间段内的初始主生产计划,直至预设任务池中不存在未处理的生产任务;对各个初始主生产计划进行合并,得到指定产品的最终主生产计划。具体的,使用fork/join框架,需要创建一个forkjoin任务,该类提供了在任务中执行fork和join的机制。通常情况下不需要直接集成forkjointask(分解合并任务)类,只需要继承它的子类,fork/join框架提供了一个子类:recursivetask(递归任务),表示有返回结果的任务。图2中,通过submit(提交)方式将任务提交到fork/join框架中,还可以通过get(获取)方式,得到fork/join框架针对任务的处理结果。fork/join框架将任务(即myforkjointask)放入到某个线程中运行。如果当前任务需要计算的数据量过大,则将这个任务拆分成两个子任务,每个子任务各自负责计算一半的数据计算。如果拆分得到的子任务中需要计算的数据量足够小,则对子任务进行处理,并对处理结果进行累加(即join)然后返回到上层任务中。如果拆分得到的子任务各自需要计算的数据量仍过大,则继续对子任务进行拆分,以此类推。myforkjointask任务是一种能在fork/join框架中运行的特定任务,也只有这种类型的任务可以在fork/join框架中被拆分运行和合并运行。forkjoinworkerthread线程(包括图2中的线程1和线程2)是一种在fork/join框架中运行的特性线程,它除了具有普通线程的特性外,最主要的特点是每一个forkjoinworkerthread线程都有独立的工作队列(即workqueue[]),用于存储拆分得到的子任务。即,myforkjointask需要通过pool(线程池)来执行。拆分出的子任务会添加到当前线程所维护的工作队列中,进入工作队列的头部。当一个线程的工作队列里暂时没有任务时,它会随机从其他线程的工作队列的尾部获取一个任务(即工作窃取,work-stealing)。fork方法用于将新创建的子任务放入当前线程的工作队列中,fork/join框架将根据当前正在并发执行myforkjointask的forkjoinworkerthread线程状态,决定是让任务在工作队列中等待,还是创建一个新的forkjoinworkerthread线程运行该任务,又或者是唤起其它正在等待任务的forkjoinworkerthread线程运行该任务。如果当前线程池中活动的线程太少(并非存在的线程太少),fork/join框架可以创建新的线程。另外,针对工作队列中的任务,可以使用先进先出的工作模式执行,也可以使用后进先出的工作模式执行。其中,base指工作队列的底部,也就是先进入工作队列的任务,top指工作队列的顶部,也就是后进入工作队列的任务。针对s101,指定产品可以为一个,也可以为多个,也就是说,可以一次生成一个指定产品的生产计划,也可以一次生成多个指定产品的生产计划。在一个实施例中,一个初始主生产计划也可以是针对指定产品的一个需求者的。指定产品的需求者为需要该指定产品的客户。也就是说,一个指定产品可以对应一个需求者,也可以对应多个需求者。每个需求者对该指定产品的需求量以及需求时间可以相同,也可以不同。在一个实施例中,一个指定产品的初始主生产计划可以包括:该指定产品在将来时间段内该需求者对应的各个成品交付窗口时间的生产量。也就是说,本发明实施例的方法,可以根据客户的需求,确定出各个指定产品在各时间段的生产量。针对步骤s103,对各个初始主生产计划进行合并,也就可以得到该指定产品针对各个需求者,在预设将来时间段内成品交付窗口时间的总的生产量(即计划生产量)。在一个实施例中,参见图3,在图1的基础上,在上述步骤s104之后,该方法还可以包括以下步骤:s105:在预设任务池中添加指定产品对应的多个需求任务。其中,一个需求任务用于生成针对一个指定产品的原材料供应商的初始原材料需求计划。s106:通过每一线程,从预设任务池中获取一个当前未处理的需求任务,并按照该需求任务对应的指定产品的最终主生产计划,生成对应的初始原材料需求计划,直至预设任务池中不存在未处理的需求任务。s107:对各个初始原材料需求计划进行合并,得到指定产品的最终原材料需求计划。在本发明实施例中,指定产品的原材料供应商为提供生产该指定产品的原材料的用户。一个指定产品可以对应多个原材料。一个原材料可以对应一个原材料供应商,也可以对应多个原材料供应商。不同的指定产品对应的原材料中,可以存在相同的原材料,也可以存在不同的原材料。每个原材料供应商对该原材料的供应量可以相同,也可以不同。在一个实施例中,一个指定产品的初始原材料需求计划可以包括:该指定产品的原材料供应商在各个物料交付窗口时间需要交付的原材料的数目。也就是说,本发明实施例的方法,可以根据指定产品的生产计划,确定出对应的原材料的需求计划,以使原材料的提供能够保证指定产品的顺利完成。针对步骤s107,对各个初始原材料需求计划进行合并,针对同一供应商,也就可以得到该供应商需要在每一物料交付窗口时间需要交付的原材料的总数目。在一个实施例中,每一指定产品对应的最终主生产计划包含:该指定产品在预设将来时间段内的各个成品交付窗口时间的计划生产量。相应的,参见图4,在图3的基础上,在步骤s106之前,该方法还可以包括以下步骤:s108:获取该需求任务对应的指定产品的物料信息。其中,该指定产品的物料信息包含:该指定产品的原材料清单、该指定产品的生产周期,以及该指定产品的运输周期。进而,上述步骤s106可以包括以下步骤:s1061:通过每一线程,从预设任务池中获取一个当前未处理的需求任务,获取该需求任务对应的指定产品的最终主生产计划中记录的,该指定产品在每一成品交付窗口时间的计划生产量。s1062:针对每一成品交付窗口时间,基于该成品交付窗口时间、该指定产品的生产周期,以及该指定产品的运输周期,确定对应的原材料计划到达时间。s1063:将该原材料计划到达时间之前的预设物料交付窗口时间,确定为最终物料交付窗口时间。s1064:根据该成品交付窗口时间的计划生产量和该指定产品的原材料清单,确定该最终物料交付窗口时间需要交付的各原材料的数目。其中,成品交付窗口时间用于表示指定产品的需求者对指定产品所要求的交付时间点。例如,可以为每周的周一、或者,也可以为每周的周三。物料交付窗口时间用于表示原材料的需求者对原材料所要求的交付时间。例如,可以为每周的周二、或者,也可以为每周的周四。在一个实施例中,可以基于微服务架构生成业务计划。即,本发明实施例提供的业务计划生成方法,可以应用于基于微服务架构的业务计划生成系统中的业务计划生成服务器。业务计划生成系统中的物料管理服务器用于对指定产品的物料信息进行管理。相应的,当需要生成原材料需求计划时,业务计划生成服务器则可以从物料管理服务器获取指定产品的物料信息,并基于获取的物料信息生成原材料需求计划。指定产品的原材料清单可以包括:生产该指定产品所需的原材料的种类和数目。针对每一成品交付窗口时间,在该成品交付窗口时间的基础上提前该指定产品的生产周期,以及该指定产品的运输周期后,可以得到对应的原材料的计划到达时间,进而,可以确定出该计划到达时间的前一个预设物料交付窗口时间,为最终物料交付窗口时间。另外,若确定出的最终物料交付窗口时间为非工作日,则可以将该最终物料交付窗口时间提前至前一个工作日。由于最终主生产计划包含每一成品交付窗口时间的计划生产量,因此,针对每一最终物料交付窗口时间,可以计算对应的成品交付窗口时间的计划生产量,与原材料清单中记录的生产该指定产品所需要的原材料的数目的乘积,得到该最终物料交付窗口时间需要交付的原材料的数目。另外,若原材料存在着库存量,则可以将计算出的需要交付的原材料的数目减去库存量,得到最终需要交付的数目。一种实现方式中,还可以根据原材料的包装规则,确定原材料需求计划。例如,一个包装需要装7个原材料,且计算出的最终需要交付的数目不足7的整数倍,则可以补充至7的整数倍,并将补充的数目顺延至下一轮计算中进行扣除。参见图5,图5为本发明实施例提供的一种微服务架构图。该微服务架构可以包括:客户端、展现层、网关层(gateway)、服务层和数据层。客户端可以包括pc(personalcomputer,个人计算机)和移动设备;展现层可以包括:web(worldwideweb,万维网)应用和移动app(application,应用程序)。服务层可以包括:bom(billofmaterials,材料清单)系统,用于管理指定产品的原材料清单。erp(enterpriseresourceplanning,企业资源计划)系统,用于根据最终最终原材料需求计划生成采购订单,下发给供应商。nacos(一种提供了一组简单易用的特性集,快速实现动态服务发现、服务配置、服务元数据及流量管理的服务)服务管理发现的服务包括:物料管理服务、需求管理服务、产品特征管理、业务数据管理、mps(masterproductionschedule,主生产计划)&mrp(materialrequirementplanning,物资需求计划)计算、交付计划&订单等服务、mps视图,以及mrp视图。bom系统和erp系统,可以通过esb(enterpriseservicebus,企业服务总线),与nacos服务管理发现的各服务进行交互。具体的,交互的数据包括mbom(manufacturingbillofmaterials,制造材料清单)、订单状态和物料价格。les(logisticsexecutionsystem,物流执行系统),用于对指定产品的库存量进行管理。srm(supplierrelationshipmanagement,供应商关系管理)系统,用于对供应商的采购订单未交及在途情况进行管理。mes(manufacturingexecutionsystem,制造执行系统),用于生成产品交付计划,以指导工厂生产。les和mes上述与nacos(dynamicnamingandconfigurationservice,动态命名和配置服务)服务管理进行交互。物料管理服务:分为产品管理和原材料管理,例如:管理产品或原材料的运输周期、产品的生产周期、原材料的物料编码、原材料名称、规格(一个包装多少个)。需求管理服务:管理销售订单中产品的类型、产品对应的生产基地、产品对应的原材料、产品型号、产品需求时间和产品需求数量。产品特征管理:管理产品对应的原材料清单,主要用于主生产计划到原材料需求计划的转化。业务数据管理:管理产品的库存、已交付产品数量、未交付产品数量、供应商的配额、已分配数目。mps&mrp计算:用于生成主生产计划和原材料需求计划。交付计划和订单:将最终主生产计划发送给mes,以及将最终原材料需求计划发送给srm。mps视图:用于对主生产计划进行展示。mrp视图:用于对物料需求计划进行展示。mes、les和srm可以通过配置中心设置的feignclient(一种声明式网页服务客户端),与nacos服务管理发现的各服务进行交互。具体的,交互的数据包括生产计划(即指定产品的主生产计划)、订单状态(原材料采购订单)、物料计划(即原材料需求计划)、库存信息和送货计划(即产品交付计划)。数据库mysql用于存储上述过程所涉及的所以数据;缓存redis用于存储用户登录信息;文件存储minio,用于存储指定产品的制造工艺、使用说明等文档。上述微服务架构中,每个服务足够内聚,代码容易理解、开发效率高。服务之间独立持续部署,每个服务可以各自进行负载均衡扩展和数据库扩展,每个服务可以根据需要部署到合适的硬件服务器上,容易扩大开发团队。另外,还可以针对每个服务组建开发团队,提高容错性,一个服务的内存泄露并不会让整个系统瘫痪,且系统不会被长期限制在某个技术栈上。本发明实施例中的业务计划生成服务器对应图5中的mps&mrp计算服务。物料管理服务器对应图5中的物料管理服务。在一个实施例中,在上述步骤s104之后,该方法还可以包括以下步骤:步骤一:基于最终主生产计划,确定针对指定产品的工作进度。在上述步骤106之后,该方法还可以包括以下步骤:步骤二:基于最终原材料需求计划,生成原材料采购订单。在一个实施例中,上述业务计划生成系统还可以包括交付管理服务器和采购管理服务器。相应的,业务计划生成服务器可以将指定产品的最终主生产计划发送至交付管理服务器,且可以将指定产品的最终原材料需求计划发送至采购管理服务器。本发明实施例中的交付管理服务器相当于上述微服务架构中的mes系统。本发明实施例中的采购管理服务器相当于上述微服务架构中的sem系统。最终主生产计划记录了指定产品在各个成品交付窗口时间的计划生产量,因此,可以基于计划生产量,确定工作进度。最终原材料需求计划记录了分配给各个供应商的原材料的数目,因此,基于该数目,可以确定针对各个供应商的原材料采购订单。在一个实施例中,在上述步骤s1064之后,该方法还可以包括以下步骤:步骤1:针对该最终物料交付窗口时间需要交付的每一原材料,基于各个供应商当前的配额和历史已分配数目,计算各个供应商当前的配额率。步骤2:确定当前的配额率最小的供应商,作为当前的待分配供应商。步骤3:基于该最终物料交付窗口时间需要交付该原材料的数目,确定为当前的待分配供应商分配的该原材料的数目。在本发明实施例中,针对每一最终物料交付窗口时间,可以确定分配给供应商的原材料的数目。具体的,可以采取两种方式:方式一:针对每一原材料,将一个最终物料交付窗口时间需要交付的数目分给一个供应商。方式二:针对每一原材料,基于最小分配单元,将一个最终物料交付窗口时间需要交付的数目分给多个供应商。例如,最小分配单元可以为10个原材料,或者,也可以为20个原材料。基于上述两种方式,在确定需要分配原材料的供应商时,可以基于各个供应商当前的配额和历史已分配数目,计算各个供应商当前的配额率,并将当前的配额率最小的供应商,确定为本次需要分配原材料的供应商(即当前的待分配供应商)。例如,可以基于公式(1)计算供应商当前的配额率。(1)其中,配额基数可以由技术人员根据经验进行设置,例如,配额基数可以为1。每一供应商的配额可以根据业务需求设置,例如,针对一个原材料,有3个供应商,则各自的配额可以为30%、50%和20%。若基于方式一,针对每一最终物料交付窗口时间,在确定出当前的待分配供应商后,可以将该最终物料交付窗口时间需要交付的数目全部分给当前的待分配供应商,并更新各供应商的已分配数目。后续,则可以根据更新后的已分配数据,分配下一个最终物料交付窗口时间需要交付的原材料的数目。若基于方式二,针对每一个最终物料交付窗口时间,可以确定出当前的待分配供应商,将最小分配单元分给当前的待分配供应商,并更新各供应商的已分配数目。然后,可以基于更新后的已分配数目,再次确定待分配供应商,并为其分配最小分配单元,以此类推,直至该最终物料交付窗口时间需要交付的数目分配完。在一个实施例中,在上述步骤s103之前,该方法还可以包括以下步骤:预设将来时间段内该生产任务对应的指定产品的需求量;获取该生产任务对应的指定产品当前的库存量。相应的,上述步骤s103可以包括:基于需求量和当前的库存量,计算预设将来时间段内每一工作日生产该生产任务对应的指定产品的数量,作为第一数量;针对预设将来时间段内的每一成品交付窗口时间,计算该成品交付窗口时间与下一成品交付窗口时间之间的各工作日对应的第一数量的总和值,作为该生产任务对应的指定产品在该成品交付窗口时间的计划生产量。在一个实施例中,上述业务计划生成系统还可以包括:库存管理服务器和需求管理服务器。上述需求管理服务器对应图5中的需求管理服务。库存管理服务器对应图5中的业务数据管理服务。具体的,库存管理服务器可以从les系统获取当前的库存量。业务计划生成服务器,可以从需求管理服务器获取预设将来时间段内该生产任务对应的指定产品的需求量;从库存管理服务器获取该生产任务对应的指定产品当前的库存量。一种实现方式中,可以将一个指定产品的需求列表导入到需求管理服务器。需求列表可以包括:当前时刻之后预设将来时间段内(例如,半年,或者,一年)内需要的指定产品的数目(即需求量),且列表中记录有每一个月需要的指定产品的数目。然后,可以从les系统中获取指定产品当前的库存量,并导入库存管理服务器。业务计划生成服务器则可以获取上述数据,并比较指定产品的当月需求量和库存量。如果库存量大于当月需求量,则当月需求被满足,可以用库存量交付。如果库存量小于当月需求量,则当月需求无法被满足,当月需求量与库存量的差值为当月实际还需要生产的指定产品的数目,即实际需求量。计算当月的实际需求量与当月剩余工作日的比值,得到当前剩余每个工作日的计划生产量。同理,可以计算后续每个月中每个工作日的计划生产量。针对每一个月,若当月的实际需求量与当月剩余工作日的比值不为整数,则可以根据向前或向后规则进行分摊,例如,向前规则表示将余数分摊到该月的前几个工作日,向后规则表示将余数分摊到该月的后几个工作日。如此,可以计算得到每一个工作日的计划生产量(即第一数量)。另外,还可以根据指定产品的包装规则,调整成品交付窗口时间的计划生产量。例如,一个包装需要装6个指定产品,若计算出的一个成品交付窗口时间的计划生产量不足6的整数倍,则可以补充至6的整数倍。相应的,下一个成品交付窗口时间的计划生产量则减去上一个成品交付窗口时间增加的量。参见图6,图6为本发明实施例提供的一种交付产品的流程示意图。图6中,可以根据指定产品的销售订单,进行需求预测,以确定预设将来时间段内指定产品的需求量。进而,可以对该需求量进行可用性检查,即,确定基于当前的产能,能够实现上述需求量。若能够实现上述需求量,即,能够通过可用性检查,则可以结合指定产品的产品生产工艺(生产该指定产品所需的原材料),生成主生产计划,并基于主生产计划生成原材料需求计划。进而,基于主生产计划确定成品交付计划,以及基于原材料需求计划确定材料交货计划。制造执行、物流执行:按照生成的各计划生产、运输指定产品,进而,完成成品交付。参见图7,图7为本发明实施例提供的一种生成主生产计划的流程示意图。其中,客户针对指定产品的需求可以是针对多个时间段的,相应的,可以按照时间的先后顺序,针对每一时间段进行处理。具体的,可以获取当前时间段的客户需求,并根据当前时间段的客户需求,判断当前时间段指定产品的库存量是否充足。若充足,则可以确定下一时间段为当前时间段,以对下一时间段进行处理。若不充足,则可以根据客户需求以及当前的库存量,可以确定当前时间段计划日期集(即当前时间段剩余的工作日),以及当前时间段计划总量(即当前时间段的实际需求量)。进而,可以基于当前时间段计划日期集和当前时间段计划总量,计算每个工作日的计划生产量,并得到主生产计划。然后,可以判断当前时间段是否在预设锁定期内。预设锁定期可以由技术人员设置,例如,可以为将来的两个月,或者,也可以为将来的三个月。锁定主生产计划、执行主生产计划:若在预设锁定期内,则可以锁定并执行当前时间段的主生产计划。更新库存量:基于主生产计划更新指定产品的库存量。预测主生产计划:若不在预设锁定期内,则将生成的主生产计划,作为预测生产计划,仅供技术人员参考。参见图8,图8为本发明实施例提供的一种生成原材料需求计划的流程示意图。图8中,可以获取指定产品的主生产计划,以及指定产品的原材料清单。根据主生产计划中的成品交付窗口时间、原材料清单,结合生产周期和运输周期,倒推原材料需求计划。进而,可以判断原材料的库存量是否充足。若不充足,则可以合并各生产计划对应的原材料需求计划,即,针对每一原材料,得到生产指定产品所需的该原材料的总数目,以及交付时间。进而,可以根据包装规则、物料交付窗口时间,调整原材料需求计划,并根据供应商配额,为供应商分配原材料的供应数目。然后,可以判断对应的时间是否在预设锁定期内。预设锁定期可以由技术人员设置,例如,可以为将来的两个月,或者,也可以为将来的三个月。锁定原材料需求计划、执行原材料需求计划:若在预设锁定期内,则可以锁定并执行原材料需求计划。更新库存量:根据原材料需求计划更新原材料的库存量。预测原材料需求计划:若不在预设锁定期内,则将生成的原材料需求计划,作为预测原材料需求计划,仅供参考。参见表(1),表(1)表示基于本发明实施例提供的方法,生成主生产计划和原材料需求计划所需的时间。表(1)序号工厂数客户基地数指定产品数mps执行时间(秒)mrp执行时间(秒)14141855241426883414341213441442131554145014156414642221表(1)中,工厂表示加工指定产品的场地,客户基地表示指定产品的需求者。不同的指定产品可以对应不同的工厂,也可以对应不同的客户基地。mps执行时间表示生成最终主生产计划所需的时间,mrp执行时间表示生成最终原材料需求计划所需的时间。由表(1)可见,当指定产品数达到64时,生成业务计划的时间也可以控制在1分钟以内,速度较快,能够提高业务计划的生成效率。本发明实施例还提供了一种业务计划生成系统,所述系统包括:业务计划生成服务器,其中:所述业务计划生成服务器,用于当接收到针对指定产品的业务计划生成的指令时,在预设任务池中添加所述指定产品对应的多个生产任务;其中,一个生产任务用于生成针对一个指定产品的初始主生产计划;开启预设数目个线程;通过每一线程,从所述预设任务池中获取一个当前未处理的生产任务,并按照该生产任务,生成对应的预设将来时间段内的初始主生产计划,直至所述预设任务池中不存在未处理的生产任务;对各个初始主生产计划进行合并,得到所述指定产品的最终主生产计划。可选的,所述业务计划生成服务器,还用于在所述对各个初始主生产计划进行合并,得到所述指定产品的最终主生产计划之后,在所述预设任务池中添加所述指定产品对应的多个需求任务;其中,一个需求任务用于生成针对一个指定产品的原材料供应商的初始原材料需求计划;通过每一线程,从所述预设任务池中获取一个当前未处理的需求任务,并按照该需求任务对应的指定产品的最终主生产计划,生成对应的初始原材料需求计划,直至所述预设任务池中不存在未处理的需求任务;对各个初始原材料需求计划进行合并,得到所述指定产品的最终原材料需求计划。可选的,每一指定产品对应的最终主生产计划包含:该指定产品在所述预设将来时间段内的各个成品交付窗口时间的计划生产量;所述系统还包括物料管理服务器;所述业务计划生成服务器,还用于在所述按照该需求任务对应的指定产品的最终主生产计划,生成对应的初始原材料需求计划之前,从所述物料管理服务器获取该需求任务对应的指定产品的物料信息;其中,该指定产品的物料信息包含:该指定产品的原材料清单、该指定产品的生产周期,以及该指定产品的运输周期;获取该需求任务对应的指定产品的最终主生产计划中记录的,该指定产品在每一成品交付窗口时间的计划生产量;针对每一成品交付窗口时间,基于该成品交付窗口时间、该指定产品的生产周期,以及该指定产品的运输周期,确定对应的原材料计划到达时间;将该原材料计划到达时间之前的预设物料交付窗口时间,确定为最终物料交付窗口时间;根据该成品交付窗口时间的计划生产量和该指定产品的原材料清单,确定该最终物料交付窗口时间需要交付的各原材料的数目,得到对应的初始原材料需求计划。可选的,所述系统还包括交付管理服务器和采购管理服务器;所述业务计划生成服务器,还用于在所述对各个初始主生产计划进行合并,得到所述指定产品的最终主生产计划之后,将所述指定产品的最终主生产计划发送至所述交付管理服务器;所述交付管理服务器,用于基于所述最终主生产计划,确定针对所述指定产品的工作进度;所述业务计划生成服务器,还用于在所述对各个初始原材料需求计划进行合并,得到所述指定产品的最终原材料需求计划之后,将所述指定产品的最终原材料需求计划发送至所述采购管理服务器;所述采购管理服务器,用于基于所述最终原材料需求计划,生成原材料采购订单。可选的,所述业务计划生成服务器,还用于在所述根据该成品交付窗口时间的计划生产量和该指定产品的原材料清单,确定该最终物料交付窗口时间需要交付的各原材料的数目之后,针对该最终物料交付窗口时间需要交付的每一原材料,基于各个供应商当前的配额和历史已分配数目,计算各个供应商当前的配额率;确定当前的配额率最小的供应商,作为当前的待分配供应商;基于该最终物料交付窗口时间需要交付该原材料的数目,确定为当前的待分配供应商分配的该原材料的数目。可选的,所述系统还包括库存管理服务器和需求管理服务器;所述业务计划生成服务器,还用于在所述按照该生产任务,生成对应的预设将来时间段内的初始主生产计划之前,从所述需求管理服务器,获取所述预设将来时间段内该生产任务对应的指定产品的需求量;从所述库存管理服务器,获取该生产任务对应的指定产品当前的库存量;基于所述需求量和当前的库存量,计算所述预设将来时间段内每一工作日生产该生产任务对应的指定产品的数量,作为第一数量;针对所述预设将来时间段内的每一成品交付窗口时间,计算该成品交付窗口时间与下一成品交付窗口时间之间的各工作日对应的第一数量的总和值,作为该生产任务对应的指定产品在该成品交付窗口时间的计划生产量。本发明实施例还提供了一种电子设备,如图9所示,包括处理器901、通信接口902、存储器903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信,存储器903,用于存放计算机程序;处理器901,用于执行存储器903上所存放的程序时,实现如下步骤:当接收到针对指定产品的业务计划生成的指令时,在预设任务池中添加所述指定产品对应的多个生产任务;其中,一个生产任务用于生成针对一个指定产品的初始主生产计划;开启预设数目个线程;通过每一线程,从所述预设任务池中获取一个当前未处理的生产任务,并按照该生产任务,生成对应的预设将来时间段内的初始主生产计划,直至所述预设任务池中不存在未处理的生产任务;对各个初始主生产计划进行合并,得到所述指定产品的最终主生产计划。上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子设备与其他设备之间的通信。存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一业务计划生成方法的步骤。在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一业务计划生成方法。在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于电子设备、计算机可读存储介质以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1