军工物资信息系统中库存的虚拟化及算法

2019-07-19 01:24赵瑞明刘启贤
网络安全与数据管理 2019年7期
关键词:出库实物虚拟化

赵瑞明,王 野,刘启贤

(北京空间机电研究所,北京 100094)

0 引言

现有军工物资信息系统中库存管理一般都采用锁定物料的方式进行库存管理,近年随着军工项目的不断增多,对项目周期要求越来越高,原有的实物关联的库存管理方式无法满足项目周期短、平、快的高要求。

1 项目锁定物料的库存管理方式

项目锁定物料的库存管理方式有以下弊病。

(1)项目A锁定库存物料后,若发生物料超期复验,都需要对项目A的库存物料先进行释放,待物料复验合格后,重新锁定物料。单一项目的情况下这样操作对项目的进度影响不大。但一旦项目增多,且项目间的物料需求有重叠时,就会极大影响工作效率。

(2)由于军工项目的特殊性,项目所需物资需进行备份,一般需求比例与实际采购比例为1:1.3,由于多项目中物料的重叠性,会导致同一物资被多次备份,无法实现多项目的库存周转和资源的平衡利用,造成浪费和库存积压。

(3)当项目间发生调用时,需要项目间不断重新释放库存,再重新进行利库。例如A项目与B项目都需求某物料X1,由于库存的X1已被B项目锁定,当A项目周期要求提前时,需要对X1进行释放,再把X1锁定在A项目名下。同时,对于A项目采购的物料X1,需要从A项目释放,再重新关联在B项目下。这只是两个项目间的简单调用就需要如此繁琐的操作,若项目和重叠物料增大,随着项目的变化,操作会极其复杂,极大影响工作效率。

(4)无法实现先入先出。先入先出即对同一物料,先入库的物料相比后入库的物料应先行出库发放。先入先出可以最大限度避免物料发生过期导致浪费等情况。但现有库存管理模式下,由于项目锁定实物,因此很难进行先入先出操作。往往出现项目配套时,物料已经过期等现象。

(5)无法解决多库房下发料的实际困难。工厂现有X1、X2两座库房,距离较远。项目A实际装配地距离X1库房较近,但却锁定了X2库房的物料,就需要远距离运输。对于X1库房的物料却无法及时调用。

2 库存虚拟化

为了解决以上问题,引入库存虚拟化的概念。库存虚拟化是指项目的需求与物料属性的信息流关联,不锁定库存实物及采购中的在途物料。只有实际出库时,才按照先入先出的原则对实物库存进行发料[1-4]。

库存虚拟化有以下优势:

(1)可以降低成本,根据项目需求情况,通过信息流对多项目进行统一备份。

(2)简化项目间调用的操作,项目间调用不再涉及库存的释放和锁定,只需要通过物料的信息流建立借用关系即可。

(3)解决多库房发料的困难。库存虚拟化模式下,由于项目锁定的只是物料的基本属性,不锁定实物,因此可以直接从任意库房直接发放。

(4)由于项目不直接关联实物,对于超期的物料可以直接复验,实际出库按照先入先出原则对实物库进行发放。

(5)实现了真正意义上的先入先出。对于紧急程度顺序变化的多项目流程,都按照先入先出原则进行项目的发放,最大限度避免了浪费或者过期等情况的发生。

(6)可以更便捷地实现自动利库,减少人工成本。由于项目关联的是物料属性的信息流,因此只需要通过信息化手段让项目关联信息流即可,而不需要对实物进行关联。

总之,库存虚拟化模式下,库存的操作空间和灵活性要远胜老模式。尤其涉及物料货位的操作时,不需要对项目关联的信息流进行变更,只需要更新实物库信息,发料时遵循先入先出的原则。

3 库存虚拟化的实现

主要通过以下算法在物资信息系统中实现库存的虚拟化[5-8]。

由于用户的物资系统采用的是JAVA语言,为了库存虚拟化与之兼容,因此也采用JAVA进行编程。其中涉及可利库数量、自动配套和出库的算法实现。

3.1 可利库物资及可利库数量的算法实现

在利用库存物资时,需要动态计算有什么物资可以使用,数量还有多少,其中可利库物资数量= ∑(实物库存数量)-∑(项目在库占用数量)。

在项目库中记录着该项目不需要物资(简称可调物资)的数据,但是库存可用数量不是简单地等于各项目可调物资数量之和,这是因为一方面实物库存会因盘点、退货等原因造成项目库与实物库不一致的地方,另一方面是因为航天项目的特殊性,除物资本身属性外,各项目对物资的检验单位、质量等级有额外特殊的要求——不同项目认可的检验单位、质量等级存在差别。所以在计算库存可用数量时,还需按检验单位、质量等级进行二次计算。算法如下:

遍历各项目:

(1)查看项目库中是否存在可调配物资:如果不存在,继续步骤(1),如果查询完所有项目库都没有,则返回空值;如果存在,转步骤(2)。

(2)按照物资、检验单位、质量等级统计各项目占用物资数量,计算后,转步骤(3)。

(3)按照物资、检验单位、质量等级统计库存物资实物可用数量,计算后,转步骤(4)。

(4)步骤(3)中∑(实物库存数量)减去步骤(2)中的∑(项目在库占用数量),得到可利库物资及其可利库数量。

函数1 getLoanableApplyitem检查是否存在可利库物资,核心代码实现如图1所示。

函数2 getLoanableCount计算项目库与实物库信息,核心代码实现如图2所示。

函数3 getLoanableNumber计算可用物资及可用数量,核心代码实现如图3所示。

图1 函数1核心代码

图2 函数2核心代码

图3 函数3核心代码

3.2 配套出库的算法实现

遵循先入先出原则,按入库时间进行优先配套,按序出库。

按配套申请表依次遍历实际库存表进行配套出库:

(1)按照物资、检验单位、质量等级查找库存是否有可用物资。

(2)按照入库时间对库存物资进行排序。

(3)判断筛选出来的数据是否存在单条库存可用数量大于出库数量(因为航天特殊性,需要尽量使用同一批次的物资),如果存在,选择该条数据;如果不存在,转步骤(4)。

(4)判断筛选出来的数据之和是否满足出库数量,如果不满足,转步骤(5);如果满足,则按照入库时间逐条筛选出要出库的数据,转步骤(6)。

(5)报警,提示用户实际库存可用数量有问题,申请的配套数量大于实际库存可用数量。

(6)在该项目库存中记录已出库数量,并调整项目库存可用数量:项目库可用数量=项目库可用数量-出库数量。

函数4 selectStorageItemByQuery根据配套表依次去实物库存中查询物资,并按照入库时间排序,核心代码实现如图4所示。

函数5 costUseStorage进行自动配套,核心代码实现如图5所示。

4 结论

本文针对现有军工物资信息系统中库存管理方式提出了新的管理模式,引入了库存虚拟化的概念。并基于JAVA语言,通过可利库数量、自动配套和出库的算法实现,在军工物资信息系统中实现了库存虚拟化。从根本上解决了原有库存管理方式导致的物流成本高、库管流程复杂、物料超期严重等问题。

图4 函数4核心代码

图5 函数5核心代码

猜你喜欢
出库实物虚拟化
配方高架库空箱出库程序的优化设计与应用
浅论加强实物档案管理工作的策略
基于OpenStack虚拟化网络管理平台的设计与实现
优化拍卖出库流程控制防范拍卖出库环节财务风险
报文数据分析法在立体库故障分析中的应用
班主任进行实物分析的实践路径
服务器虚拟化的安全威胁及防范分析
浅谈虚拟化工作原理
用户怎样选择虚拟化解决方案