【专利交易】【专利代理】【商标和版权申请】【高新技术企业认定】Tel:18215660330

一种面向实时生产过程的钢坯入库堆垛优化方法

xiaoxiao2020-07-22  2

【专利交易】【专利代理】【商标和版权申请】【高新技术企业认定】Tel:18215660330

一种面向实时生产过程的钢坯入库堆垛优化方法
【专利摘要】本发明涉及一种面向实时生产过程的钢坯入库堆垛优化方法,属于生产物流【技术领域】,主要包括:采集当前批次待入库钢坯信息;检查是否所有堆垛仓库均为空库,若是,完成堆垛入库;否则,检查所有堆垛仓库可用垛位数是否均为0,若是,增加堆垛仓库,重新开始入库堆垛优化;否则,判断是否存在库内钢坯最早出库日期与当前批次待入库钢坯出库日期相同的堆垛仓库,若存在,完成堆垛入库;否则,寻找库内钢坯最早出库日期晚于当前批次待入库钢坯出库日期的堆垛仓库,完成堆垛入库;否则,寻找空堆垛仓库,若存在,完成堆垛入库;否则,选择倒垛次数最小的堆垛仓库,完成堆垛入库。该方法以总倒垛次数最小为目标,能够较好地提高生产效率。
【专利说明】 一种面向实时生产过程的钢坯入库堆垛优化方法
【技术领域】
[0001]本发明属于生产物流【技术领域】,具体涉及一种面向实时生产过程的钢坯入库堆垛优化方法。
【背景技术】
[0002]货场入库堆垛问题广泛存在于货场管理中,如钢铁企业方坯库的方坯存储、码头集装箱堆放、服装企业的坯布存储等。在垛位数量有限,待入库货物数量、规格、交货期已知的前提下,在入库时考虑货物规格和出库作业顺序,为每个货物选择合适的垛位,会大幅降低倒垛量,提高物流效率。
[0003]常见的解决此类问题的方法是将问题抽象简化,将待入库货物视作物品序列,垛位视作箱子,将问题转化为一类带顺序约束的塔型装箱问题(Bin Packing,简称BP问题)。装箱问题作为经典的组合优化问题,已在计算机科学和工业工程等领域有着广泛的应用。由于BP问题属于NP-hard问题,无法找到多项式最优算法,因此,根据问题特征构造启发式算法就成为一个重要的研究方向。
[0004]目前相关研究多是在待入库货物已经确定、垛位数量不限,并且每层只放一件货物的前提下提出的优化方法。例如,已有研究在满足货物出库时零倒垛的前提下,以占用垛位数最小为目标,同时考虑货物堆放时存在的交货期、重量以及高度限制等约束,将问题抽象为一类带顺序约束的装箱问题,并映射为一个约束满足问题(Constraint satisfactionProblem,CSP)来处理,提出一种约束满足求解方法。也有研究通过将问题归结为一类塔型装箱问题,解决了如何将给定数目、不同规格且彼此之间存在制约关系的货物依序分配到现有的非空垛位中,使得整批货物在出库时总倒垛次数最小这一问题。
[0005]对于面向实时生产过程、垛位数量固定、每层可以放多件货物、以总倒垛次数最小为目标的入库堆垛问题是许多企业仓储管理中急需解决的问题,目前还未见公开的研究成果O

【发明内容】

[0006]有鉴于此,本发明的目的是为解决一类面向实时生产过程,入库钢坯、出库钢坯都是动态变化的在线入库堆垛问题,提出了一种面向实时生产过程的钢坯入库堆垛优化方法,该方法以总倒垛次数最小为目标,在垛位数量固定、堆垛仓库的每层可以放多件钢坯的前提下,能够较好地解决钢材企业钢坯生产入库的优化问题,提高生产效率。
[0007]本发明的特点及有益效果:
[0008]1、本发明提供的优化堆垛方法,能够应用于钢铁企业钢坯库的钢坯存储,利用该方法堆垛可以充分利用堆垛空间,为每个要存储的钢坯分配合适的垛位,实现钢坯有序堆放,能够大幅降低倒垛成本,明显提高生产效率。
[0009]2、利用该方法堆垛,在综合考虑倒垛成本和垛位成本的基础上,能够获得最优堆垛仓库数量,可用于指导钢铁企业堆垛仓库设计,避免造成资源浪费。[0010]3、该优化方法也适用于码头集装箱、服装企业的坯布存储等货场管理领域。【具体实施方式】
[0011]下面结合具体实施例对本发明进行详细说明。
[0012]本发明提出的一种面向实时生产过程的钢坯入库堆垛优化方法,包括以下步骤:
[0013]步骤I采集货场内信息:该信息包括:
[0014]货场内堆垛仓库总数H、每个堆垛仓库的最高层数L、每层可放置的钢坯数量C,其中,H、L、C均为正整数;每个非空堆垛仓库中已存放钢坯的出库日期,每个非空堆垛仓库顶层钢坯的出库日期,每个非空堆垛仓库库内钢坯最早出库日期;每个堆垛仓库的可用垛位数:记第j个堆垛仓库的可用垛位数为Cap (j);其中Cap (j)为非负整数,j = 1,…H ;;
[0015]步骤2垛位预先优化调整:首先将所有可用垛位数Cap (j)大于O的堆垛仓库按库顶层货物出库日期从晚到早的顺序排序,得到堆垛仓库列表K ;从堆垛仓库列表K的第一个堆垛仓库遍历:检查该堆垛仓库的库顶层钢 坯出库日期与库内钢坯最早出库日期是否相同,若是,检查下一个堆垛仓库;否则,检查该堆垛仓库顶层钢坯是否能够执行第一种平移操作,若是,执行第一种平移操作,并更新有变动堆垛仓库的信息,包括:可用垛位数、库内已存放钢坯的出库日期、库顶层钢坯出库日期、库内钢坯最早出库日期,然后检查下一个堆垛仓库;否则,检查下一个堆垛仓库,直到堆垛仓库列表K中全部堆垛仓库检查结束;
[0016]步骤3采集当前批次待入库钢坯信息:包括出库日期、数量n(i),其中,n(i)为非负整数;(为简化叙述,认为一个批次的钢坯出库日期相同,若不同,可以作为多个批次处理。)
[0017]步骤4检查是否所有堆垛仓库均为空库,若是,随机选择堆垛仓库,对当前批次待入库钢坯执行第一种分批操作,完成堆垛入库;否则,检查所有堆垛仓库可用垛位数Cap (j)是否均为0,若是,转步骤9 ;否则,转步骤5 ;
[0018]步骤5遍历堆垛仓库列表K,判断是否存在库内钢坯最早出库日期与当前批次待入库钢坯出库日期相同的堆垛仓库,若存在且唯一,则根据该堆垛仓库的可用垛位数Cap (j),对当前批次待入库钢坯执行第一种分批操作,完成堆垛入库;若存在,但不唯一,选择可用垛位数最少的一个堆垛仓库,并根据该堆垛仓库的可用垛位数Cap (j),对当前批次待入库钢坯执行第一种分批操作,完成堆垛入库;若不存在,则转步骤6 ;
[0019]步骤6遍历堆垛仓库列表K,寻找库内钢坯最早出库日期晚于当前批次待入库钢坯出库日期,并且日期差值最小的堆垛仓库,该日期差值=库内钢坯最早出库日期-当前批次待入库钢坯出库日期;若日期差值大于O的堆垛仓库唯一,则根据该堆垛仓库的可用垛位数Cap (j),对当前批次待入库钢坯执行第一种分批操作,完成堆垛入库;若存在多个日期差值大于O的堆垛仓库,则选择日期差值最小的堆垛仓库,若多个堆垛仓库日期差值同时最小,选择可用垛位数最少的一个堆垛仓库,并根据该堆垛仓库的可用垛位数Cap (j),对当前批次待入库钢坯执行第一种分批操作,完成堆垛入库;若不存在日期差值大于O的堆垛仓库,转步骤7;
[0020]步骤7遍历堆垛仓库列表K,寻找空堆垛仓库,如果存在空堆垛仓库,则根据该堆垛仓库的可用垛位数Cap (j),对当前批次待入库钢坯执行第一种分批操作,完成堆垛入库;否则,转步骤8;[0021]步骤8遍历堆垛仓库列表K,统计每个堆垛仓库内出库日期早于当前批次待入库钢坯出库日期的钢坯件数,第j个堆垛仓库的钢坯件数记为W(j),其中W(j)为非负整数。选择最小w(j)对应的堆垛仓库(即选择倒垛次数最小的堆垛仓库)完成堆垛入库,具体操作为:
[0022]按库层从上到下的顺序遍历该堆垛仓库内的每一批钢坯,判断每一批钢坯的出库日期是否早于当前批次待入库钢坯的出库日期,且能执行第二种平移操作,若是,则将该批钢坯执行第二种平移操作,并重新计算该堆垛仓库内出库日期早于当前批次待入库钢坯出库日期的钢坯件数w(j),根据该堆垛仓库内可用垛位数Cap (j),对当前批次待入库钢坯执行第二种分批操作,完成堆垛入库;否则,根据该堆垛仓库内可用垛位数Cap (j),对当前批次待入库钢坯执行第二种分批操作,完成堆垛入库;
[0023]步骤9增加堆垛仓库,堆垛仓库总数H = H+1,转步骤I。
[0024]上述步骤2中第一种平移操作是指将钢坯从现有堆垛仓库的垛位平移到其他堆垛仓库的垛位,并按如下顺序选择其他堆垛仓库的垛位:
[0025]第一,选择库内钢坯最早出库日期与现有堆垛仓库的垛位中钢坯出库日期相同的堆垛仓库中的垛位;
[0026]第二,选择库内钢坯最早出库日期晚于现有堆垛仓库的垛位中钢坯出库日期且日期之差最小的堆垛仓库中的垛位;
[0027]第三,选择空堆垛仓库中的垛位。
[0028]所述步骤8中第二种平移操作是指将钢坯从现有堆垛仓库的垛位平移到其他堆垛仓库的垛位,并按如下顺序选择其他堆垛仓库的垛位:
[0029]第一,选择库内钢坯最早出库日期与现有堆垛仓库的垛位中钢坯出库日期相同的堆垛仓库中的垛位;
[0030]第二,选择库内钢坯最早出库日期晚于现有堆垛仓库的垛位中钢坯出库日期且日期之差最小的堆垛仓库中的垛位;(第二种平移操作只比第一种平移操作少了第三种情况,即选择空堆垛仓库中的垛位,因为执行到步骤8不会有空堆垛仓库了。);
[0031]所述步骤4、步骤5、步骤6、步骤7中的第一种分批操作具体为:根据已选择堆垛仓库的库内可用垛位数Cap (j),判断是否需要将当前批次待入库钢坯进行分批放置,如果Cap(j)> = n(i),n(i)为当前批次待入库钢坯件数,则当前批次待入库钢坯全部入库;否则将当前批次待入库钢坯拆分为数量为Cap (j)和n(i)_Cap(j)两批,将第一批作为当前批次待入库钢坯,放在当前堆垛仓库最上部完成入库,第二批作为后续批次待入库钢坯,重复步骤 1-9。
[0032]所述步骤8中的第二种分批操作具体为:根据已选择堆垛仓库的库内可用垛位数Cap (j),判断是否需要将当前批次待入库钢坯进行分批放置,如果Cap (j) > = n (i),n (i)为当前批次待入库钢坯件数,则当前批次待入库钢坯全部入库;否则将当前批次待入库钢坯拆分为数量为Cap (j)和n(i)_Cap(j)两批,并将第一批作为当前批次待入库钢坯入库,第二批作为后续批次待入库钢坯,重复步骤1-9 ;
[0033]所述第一批入库方式为:如果2W(j)〈Cap(j),将待入库钢坯和该堆垛仓库内原有钢坯一起按出库日期由晚到早的顺序排序,依次从该堆垛仓库下层到上层放入,完成堆垛入库,(此处改动较大,这是对顺序放置方式的解释)否则,将待入库钢坯放在该堆垛仓库最上部,完成堆垛入库。
[0034]实施例
[0035]假设一批数量为200件,出库日期为2014年6月3日的钢坯到达货场,要求入库:
[0036]按照钢坯入库堆垛优化方法中的步骤执行如下:
[0037]步骤I采集货场内信息。货场内的堆垛仓库总数为5个、每个堆垛仓库的最高层数为17层、每层可放置的钢坯数量为12件。第I号堆垛仓库已用垛位数为10个,这10个垛位中的钢坯为一批,出库日期为140530(即2014年5月30日,下同),可用垛位数Cap (I)=194,仓库顶层钢还的出库日期记为140530,库内钢还最早出库日期记为140530 ;第2、3号堆垛仓库已满,可用垛位数Cap(2) =O1Cap (3) = O,第2号堆垛仓库中的钢坯出库日期均为140608,仓库顶层钢坯出库日期140608,库内钢坯最早出库日期为140608 ?’第3号堆垛仓库中的钢坯出库日期均为140615,仓库顶层钢坯出库日期为140615,库内钢坯最早出库日期140615;第4号堆垛仓库已用垛位数为84,可用垛位数Cap(4) =120,下面四层即下面48个垛位中的钢坯为一批,出库日期为140507,第5层到第7层共36个垛位中的钢坯为一批,出库日期为140529,仓库顶层钢坯出库日期140529,库内钢坯最早出库日期140507 ;第5号堆垛仓库已用垛位数为96,可用垛位数Cap(5) = 108,下面三层即下面36个垛位中的钢坯为一批,出库日期为140607,第4层到第8层中的60个垛位中的钢坯为一批,出库日期为140520,仓库顶层钢坯出库日期为140520,库内钢坯最早出库日期为140520。
[0038]步骤2垛位预先优化调整:首先将所有可用垛位数Cap (j)大于O的1、4、5号堆垛仓库按顶层钢坯出库日期从晚到早的顺序排序,得到堆垛仓库列表K= {1,4,5};先检查I号堆垛仓库,由于I号堆垛仓库的仓库顶层钢坯出库日期与库内钢坯最早出库日期相同,不做任何处理;接着检查4号仓库,4号堆垛仓库顶层钢坯出库日期与库内钢坯最早出库日期不同,并且能够执行第一种平移操作,则将4号仓库顶部钢坯即5到7层的36件钢坯移至I号仓库,将4号堆垛仓库的库内信息更新为:已用垛位数为48个,可用垛位数Cap (5)=156个,已用48个垛位中的钢坯为一批,出库日期为140507,仓库顶层钢坯的出库日期为140507,库内钢坯最早出库日期为140507 ;将I号堆垛仓库的库内信息更新为:已用垛位数为46个,可用垛位数Cap (5) =158个,已用46个垛位中原来的10件钢还为一批,出库日期为140530,后放入的36件钢坯为一批,出库日期为140529,仓库顶层钢坯的出库日期为140529,库内钢还最早出库日期为140529 ;再检查5号仓库,由于5号仓库库顶层钢还出库日期与库内钢坯最早出库日期相同,不做任何处理。至此,堆垛仓库列表K中堆垛仓库全部检查完毕;
[0039]步骤3采集当前批次待入库钢坯信息:出库日期为140603、数量n(l) = 200 ;
[0040]步骤4当前货场既不是所有堆垛仓库均为空库,也不是所有堆垛仓库可用垛位数均为O的情况,所以转步骤5;
[0041]步骤5遍历堆垛仓库列表K,不存在库内钢坯最早出库日期与当前批次待入库钢坯出库日期相同的堆垛仓库,因此转步骤6 ;
[0042]步骤6遍历堆垛仓库列表K,计算日期差值=库内钢坯最早出库日期-当前批次待入库钢坯出库日期,不存在日期差值大于O的堆垛仓库,因此转步骤7 ;
[0043]步骤7遍历堆垛仓库列表K,不存在空堆垛仓库,因此转步骤8 ;
[0044]步骤8遍历堆垛仓库列表K,统计每个堆垛仓库内出库日期早于当前批次待入库钢坯出库日期的钢坯件数,W(I) =46,W(4) =48,W(5) =60。选择最小W(j)对应的堆垛仓库,也即选择I号堆垛仓库完成堆垛入库,具体操作为:
[0045]步骤8-1按库层从上到下的顺序遍历I号堆垛仓库的两批钢坯,两批钢坯的出库日期均早于当前批次待入库钢坯的出库日期,但均不能执行第二种平移操作,根据该堆垛仓库内可用垛位数Cap(I) = 158个,对当前批次待入库钢坯执行第二种分批操作,由于CapdXn(I),将当前批次待入库钢坯拆分为Cap(I)和η (I)-Cap (I)(也即158和42)两批,将第一批作为当前批次待入库钢坯入库,
[0046]第一批入库方式为:因为2W(1)〈Cap (I),因此将当前批次待入库钢坯和该堆垛仓库内原有钢坯一起按出库日期由晚到早的顺序排序,依次从该堆垛仓库下层到上层放入,完成堆垛入库,即先将I号堆垛仓库内的46件钢坯移出,将158件待入库钢坯放入I号堆垛仓库的I到14层(14层中还空10个垛位),再将移出的46件钢坯中出库日期为140530的10件钢坯放入I号仓库的14层中的10个空垛位,然后将46件钢坯中出库日期为140529的36件钢坯放入I号仓库的15到17层。
[0047]第二批作为下一批次待入库钢坯,重复步骤1-9。
[0048]综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种面向实时生产过程的钢坯入库堆垛优化方法,其特征在于,该方法包括以下步骤: 步骤I采集货场内信息:该信息包括: 货场内堆垛仓库总数H、每个堆垛仓库的最高层数L、每层可放置的钢坯数量C,其中,H、L、C均为正整数;每个非空堆垛仓库中已存放钢坯的出库日期,每个非空堆垛仓库顶层钢坯的出库日期,每个非空堆垛仓库库内钢坯最早出库日期;每个堆垛仓库的可用垛位数:记第j个堆垛仓库的可用垛位数为Cap (j);其中Cap (j)为非负整数,j = 1,…H ;; 步骤2垛位预先优化调整:首先将所有可用垛位数Cap (j)大于O的堆垛仓库按库顶层货物出库日期从晚到早的顺序排序,得到堆垛仓库列表K ;从堆垛仓库列表K的第一个堆垛仓库遍历:检查该堆垛仓库的库顶层钢坯出库日期与库内钢坯最早出库日期是否相同,若是,检查下一个堆垛仓库;否则,检查 该堆垛仓库库顶层钢坯是否能够执行第一种平移操作,若是,执行第一种平移操作,并更新有变动堆垛仓库的信息,包括:可用垛位数、库内已存放钢坯的出库日期、库顶层钢坯出库日期、库内钢坯最早出库日期,然后检查下一个堆垛仓库;否则,检查下一个堆垛仓库,直到堆垛仓库列表K中全部堆垛仓库检查结束; 步骤3采集当前批次待入库钢坯信息:包括出库日期、数量n (i),其中,n (i)为非负整数; 步骤4检查是否所有堆垛仓库均为空库,若是,随机选择堆垛仓库,对当前批次待入库钢坯执行第一种分批操作,完成堆垛入库;否则,检查所有堆垛仓库可用垛位数Cap (j)是否均为O,若是,转步骤9 ;否则,转步骤5 ; 步骤5遍历堆垛仓库列表K,判断是否存在库内钢坯最早出库日期与当前批次待入库钢坯出库日期相同的堆垛仓库,若存在且唯一,则根据该堆垛仓库的可用垛位数Cap (j),对当前批次待入库钢坯执行第一种分批操作,完成堆垛入库;若存在,但不唯一,选择可用垛位数最少的一个堆垛仓库,并根据该堆垛仓库的可用垛位数Cap (j),对当前批次待入库钢坯执行第一种分批操作,完成堆垛入库;若不存在,则转步骤6 ; 步骤6遍历堆垛仓库列表K,寻找库内钢坯最早出库日期晚于当前批次待入库钢坯出库日期,并且日期差值最小的堆垛仓库,该日期差值=库内钢坯最早出库日期-当前批次待入库钢坯出库日期;若日期差值大于O的堆垛仓库唯一,则根据该堆垛仓库的可用垛位数Cap (j),对当前批次待入库钢坯执行第一种分批操作,完成堆垛入库;若存在多个日期差值大于O的堆垛仓库,则选择日期差值最小的堆垛仓库,若多个堆垛仓库日期差值同时最小,选择可用垛位数最少的一个堆垛仓库,并根据该堆垛仓库的可用垛位数Cap (j),对当前批次待入库钢坯执行第一种分批操作,完成堆垛入库;若不存在日期差值大于O的堆垛仓库,转步骤7 ; 步骤7遍历堆垛仓库列表K,寻找空堆垛仓库,如果存在空堆垛仓库,则根据该堆垛仓库的可用垛位数Cap (j),对当前批次待入库钢坯执行第一种分批操作,完成堆垛入库;否则,转步骤8 ; 步骤8遍历堆垛仓库列表K,统计每个堆垛仓库内出库日期早于当前批次待入库钢坯出库日期的钢坯件数,第j个堆垛仓库的钢坯件数记为W(j),其中W(j)为非负整数;选择最小W(j)对应的堆垛仓库(即选择倒垛次数最小的堆垛仓库)完成堆垛入库,具体操作为:按库层从上到下的顺序遍历该堆垛仓库内的每一批钢坯,判断每一批钢坯的出库日期是否早于当前批次待入库钢坯的出库日期,且能执行第二种平移操作,若是,则将该批钢坯执行第二种平移操作,并重新计算该堆垛仓库内出库日期早于当前批次待入库钢坯出库日期的钢坯件数w(j),根据该堆垛仓库内可用垛位数Cap (j),对当前批次待入库钢坯执行第二种分批操作,完成堆垛入库;否则,根据该堆垛仓库内可用垛位数Cap (j),对当前批次待入库钢坯执行第二种分批操作,完成堆垛入库; 步骤9增加堆垛仓库,堆垛仓库总数H = H+1,转步骤I。
2.如权利要求1所述方法,其特征在于,所述步骤2中第一种平移操作是指将钢坯从现有堆垛仓库的垛位平移到其他堆垛仓库的垛位,并按如下顺序选择其他堆垛仓库的垛位: 第一,选择库内钢坯最早出库日期与现有堆垛仓库的垛位中钢坯出库日期相同的堆垛仓库中的垛位; 第二,选择库内钢坯最早出库日期晚于现有堆垛仓库的垛位中钢坯出库日期且日期之差最小的堆垛仓库中的垛位; 第三,选择空堆垛仓库中的垛位。
3.如权利要求1所述方法,其特征在于,所述步骤8中第二种平移操作是指将钢坯从现有堆垛仓库的垛位平 移到其他堆垛仓库的垛位,并按如下顺序选择其他堆垛仓库的垛位: 第一,选择库内钢坯最早出库日期与现有堆垛仓库的垛位中钢坯出库日期相同的堆垛仓库中的垛位; 第二,选择库内钢坯最早出库日期晚于现有堆垛仓库的垛位中钢坯出库日期且日期之差最小的堆垛仓库中的垛位。
4.如权利要求1所述方法,其特征在于,所述步骤4、步骤5、步骤6或步骤7中的第一种分批操作具体为:根据已选择堆垛仓库的库内可用垛位数Cap (j),判断是否需要将当前批次待入库钢坯进行分批放置,如果Cap (j)> = n(i),n(i)为当前批次待入库钢坯件数,则当前批次待入库钢坯全部入库;否则将当前批次待入库钢坯拆分为数量为Cap (j)和n(i)-Cap(j)两批,将第一批作为当前批次待入库钢坯,放在当前堆垛仓库最上层完成入库,第二批作为后续批次待入库钢坯,重复步骤1-9。
5.如权利要求1所述方法,其特征在于,所述步骤8中的第二种分批操作具体为:根据已选择堆垛仓库的库内可用垛位数Cap (j),判断是否需要将当前批次待入库钢坯进行分批放置,如果Cap (j) > = n (i),n (i)为当前批次待入库钢坯件数,则当前批次待入库钢坯全部入库;否则将当前批次待入库钢坯拆分为数量为Cap (j)和n(i)_Cap(j)两批,并将第一批作为当前批次待入库钢坯入库,第二批作为后续批次待入库钢坯,重复步骤1-9 ; 所述第一批入库方式为:如果2W(j)〈Cap(j),将待入库钢坯按出库日期由晚到早的顺序排序,依次从该堆垛仓库下层到上层放入,完成堆垛入库,否则,将待入库钢坯放在该堆垛仓库最上层,完成堆垛入库。
【文档编号】G06Q10/08GK103942668SQ201410174258
【公开日】2014年7月23日 申请日期:2014年4月28日 优先权日:2014年4月28日
【发明者】邢育红, 杨福广, 汤国防, 国兴玉, 张立东, 张鹏, 阮久宏 申请人:山东交通学院

【专利交易】【专利代理】【商标和版权申请】【高新技术企业认定】Tel:18215660330

最新回复(0)