基于二维码技术的库存管理系统设计与实现
2020-02-02张京宇温蟾圆吴彩元张广浩武文斌
张京宇 温蟾圆 吴彩元 张广浩 武文斌
(北京信息科技大学计算机学院 北京市 100101)
1 绪论
随着库存管理系统的不断发展,现代信息技术在其中占据了越来越大的比重,大型企业不再使用各自为政的传统库存管理系统。现代信息技术给库存管理带来了在企业管理的决策层面的好处,决策者可以从基层产生的大量信息中获得了生产线效率、生产成本的结构与变化、大型生产性资源的投资效益等关键倾向性信息,为管理层生成企业运营的宏观规划。除此之外,通过运用二维码技术、大型数据库技术、大数据与人工智能技术等现代信息技术,实现定时定量的实时分析计算,有助于决策者更好的掌握企业的动向。
以上优势是以信息技术为基础的库存管理方法所具有的,而且随着企业运营模式的不断改进,运营理念的不断创新,会变得越来越以客户和用户为中心,决策者就会需要更大量更细节化的库存数据,这都离不开智能化的高度先进的现代信息技术。
2 需求分析
一般来说,大型的物流企业供应链网络化和信息化程度较高,一般不存在致命性的库存管理问题。这也就意味着我们的系统主要面向的对象是小微企业。这类客户群体有一些共同的特点,由于业务规模小,故而库存周转周期较短,且一般不涉及完整的供应链,只作为供应链的末端实体存在。[1]
针对这些业务特点,我们需要将两类库存区分开,第一类是入库的库存,例如生产制造成品所需要的生产资料、生产过程中所需的耗材等。第二类是出库的库存,主要就是生产制造的产成品。这两者无论是谁如果发生短缺的现象都会造成企业的经济损失。我们的库存管理系统的一个主要目标就是保障用户的库存满足用户的生产、销售的目标需求。
其次,我们要防止多余的库存会造成企业成本的损失,也就是说生产产品所需要的库存要与预期的生产目标匹配。因此我们需要保障连续生产的前提下通过库存管理与分析将库存尽可能的维持在成本最优的水平上从而使两者匹配从而达到最大化企业资金利用率的目的。
以上两点有一定的相互矛盾性。如果将所需要的生产资料的库存维持在较低水平上进行生产意味着极有可能造成用户生产或销售的目标因为库存不足从而无法实现,这使得企业的生产风险增大。如果将所需要的生产资料的库存维持在较高的水平上进行生产又意味着企业需要为此承担更大的仓储成本,这会增大企业的成本风险。我们需要用定量的分析测算方法来平衡这个矛盾,对库存实施定量控制,从而实现我们的两个目的。
综上所述,我们可以认为我们系统的主要任务就是提高企业的库存周转率,实现精确的库存控制。为了完成我们的任务,我们需要着手解决几个问题。
图1:模块化设计
图2:数据库设计
图3:人员管理
(1)实现库存信息的集中管理,做好基础的增删改查功能。
(2)以库存作为变量,以降低库存成本同时控制生产风险为标准实现成本最低的库存量动态调节机制。
(3)实现库存事务的规范化,针对不同的管理人员设置不同的权限,保证企业的数据安全。
表1:库存表单
表2:员工表单
表3:出库记录表单
表4:入库记录表单
表5:公告表单
3 系统概要设计
本系统采用B/S 架构(浏览器/服务器结构)设计,该架构能大幅减轻浏览器端负荷,减少系统维护、升级的成本。本系统划分为管理端和操作端两个用户子系统,面向不同使用者。管理端实现库存信息、人员信息及人员权限的增添、删除、更改和查询,适用与现实场景下的仓库管理人员,该管理人员同时担负着库存管理系统的管理员工作。操作端是一个应用程序,功能单一,仅实现库存信息的添加或更改,适用于现实场景下的仓库工作人员,主要用于物品的出入库。服务器端采用LAMP 环境:Linux+Apache+MySQL+PHP。组成LAMP 环境的软件均是开源软件,也是国际上成熟的架构,既减少了应用成本,也可以大幅节省服务器资源,提高浏览器端运行效率。
操作端主要功能设计为:员工信息录入、出库操作、入库操作,功能较为简单,减少了使用者学习使用的成本。
管理端设计总体采用模块化设计[2],一级模块:注册登录登出模块、出库入库模块、库存信息模块、出入库信息模块、数据统计模块、人员管理模块以及公告模块。模块化设计如图1所示。
3.1 注册登录登出模块
注册登录登出模块下设五个二级模块:团体注册模块、团体数据库登录模块、个人注册模块、个人登录模块、登出模块。该模块用于面向团队、个人用户的注册、登录及登出,注册登录个人用户需要先登录团队用户,辅以快捷登录功能,可减少繁杂的登录步骤,极大地提高工作效率。
图4:权限细化表
图5:库存管理
图6:登录界面
3.2 出库入库模块
出库入库模块下设两个二级模块:手动出库模块、手动入库模块。该模块用于在管理端进行手动出库入库操作,需要相应的权限才可访问。
3.3 库存信息模块
库存信息模块下设两个二级模块:库存信息展示模块、库存信息修改模块。该模块用于查看仓库内的基本信息及货物数量,并提供特定情况下的库存信息修改功能,供管理者快速查看货物储量并作出决断。
3.4 出入库信息模块
出入库信息模块下设两个二级模块:出库信息展示模块、入库信息展示模块。该模块详细存储了物品的出入库记录,并可按商品、经办人和时间查询信息。
3.5 数据统计模块
数据统计模块下设两个二级模块:历史数据统计模块、数据预测模块。该模块用于分时段查看历史出入库数据并根据历史数据对未来数据进行预测,供企业管理者和相关人员查询、统计和分析,并为企业管理者做出相关决策提供可靠的数据来源。[3]
图7:操作端
3.6 人员管理模块
人员管理模块下设两个二级模块:人员信息管理模块、人员权限管理模块。该模块由管理员对团队用户下的员工进行增添改查操作,并可以修改员工的各模块权限。该模块需要相应的访问权限,并可从企业其他信息化软件中导入相关信息。
3.7 公告模块
公告模块无下设二级模块,主要用于用于管理员发布系统公告,可快速下达物流相关的通知和指示。
4 数据库设计
数据库设计如图2所示。本系统数据库采用MySQL。根据需求分析和实际需求,我们设计了如表1、表2、表3、表4、表5所示的表单。
5 系统实现
本系统采用团队协同开发的方式,管理端与操作端分别开发。团队协作开发需要统一开发环境并分配工作。基于此,我们选择PHP 语言进行管理端开发,并采用WAMP+NetBeans 作为开发环境,并且将7 个模块划分为三个部分进行开发工作:人员管理部分、库存管理部分(包括库存信息、出入库记录和数据统计模块)、登录及公告部分。
5.1 人员管理部分实现
如图3所示,人员管理部分需要实现管理员对人员信息的增加、查找、修改、删除,以及人员的权限设定、细化和控制。
人员信息添加:团队有两种方式添加人员,自主添加和手动添加。自主添加可以让员工自行注册系统,在注册时需要填写相关个人信息和上级所给的权限信息。手动添加可以让系统管理员手动录入员工的个人相关信息并添加至系统中。
人员信息查找:系统在人员管理界面以表格形式展示了所有的员工信息供管理员查看;若企业员工数量较多,管理员还可以点击上方的查询按钮,按照不同的查找规则进行员工的查找。
人员信息修改:员工的个人信息在员工登录系统后可自行修改;管理员也可以从人员管理界面对所有员工的个人信息进行修改。员工修改密码时需要输入原密码和新密码,如果本人忘记了账户的原密码,需要联系管理员进行密码修改。管理员在对员工信息进行修改时可以先对员工进行查找操作,然后在查找结果中进行修改。
人员删除:考虑到账户的安全性,账户的删除操作仅能由管理员进行,员工不能自行注销账号。管理员可以在人员管理界面中对人员进行删除操作,也可以先进行查找并在查找结果中进行删除操作。
权限设定:权限设定的初始化操作在员工注册成功时就已经完成。注册请求一经提交,员工的权限信息仅能由系统管理员更改,无法自己更改。
权限细化:为实现系统不同功能的权限控制操作,本系统预设的权限细化表如图4所示。企业可根据自身情况制定权限细化表。
权限控制:在用户访问某模块时,页面会先检测用户有无访问权限,若有访问权限则会正常显示;对于没有访问权限的用户系统将会拒绝访问并给出提示。
5.2 库存管理部分实现
如图5所示,库存管理部分需要实现库存信息的展示、出入库记录、手动出入库、数据统计等功能。
库存信息展示:当员工查看此页面时,系统将展示所有产品的库存信息。每一种产品(拥有唯一的产品编号)为一行,并可以按多种排序方式查看。
出入库记录展示:出入库记录详细记录了所有出入库信息。为方便查看,入库和出库记录分别存储展示。当员工使用操作端进行入库或出库操作时,系统会自动插入一条相应的记录信息,并将该产品的库存数量做相应的调整。
手动出入库:若企业在周期性的产品清点的过程中,发现实际库存数量与系统显示的库存数量有小幅差异,可使用手动出入库操作进行数据校对,该操作也会在出入库记录中展示并备注为“手动操作”。
数据统计:数据统计会展示一段时间内各类产品的出入库情况,为企业决策提供一定的数据基础。若产品库存数量低于设定的阈值,系统会发出“空仓预警”;若产品库存数量高于设定的阈值,则系统会发出“满仓预警”。决策者可以根据系统发出的预警信息以及产品出入库信息调整进货数量。
5.3 登录及公告部分实现
如图6所示,登录及公告部分需要实现团队数据库的登录、个人账户登录、个人账户注册、账户退出、公告信息展示、公告发布等功能。本系统使用Cookie 来标识用户。
团队数据库登录:用户输入团队数据库的账户和密码,系统会加密发送登录请求。服务器接收到登录请求后,尝试使用此账户密码登录数据库。若登录成功系统会自动设置团体账号的Cookie 信息并进入员工个人账户登录界面;若登录失败提示“账户或密码错误”。为了方便用户登录,本系统提供了快捷登录选项,若检测到Cookie 信息存在且有效,系统会开放快捷登录按钮,用户可以直接点击快捷登录直接访问库存管理系统的主页。
个人账户登录:用户输入员工个人的账户和密码,系统会对密码进行MD5 加盐加密,然后向服务器发送登录请求。服务器接收到登录请求后,匹配数据库员工表单中存储的账户和密码。若匹配成功进入库存管理主界面,并设置个人账号的Cookie 信息;若匹配失败提示“账户或密码错误”。
个人账户注册:用户输入个人信息和登录密码后,系统会对个人信息进行加密处理,并对密码进行MD5 加盐加密,然后向服务器发送注册请求。服务器接收到注册请求后会在员工表单中尝试插入该条信息。若插入成功则用户注册成功;若插入失败则会提示“注册失败”并附上注册失败的原因。
账户退出:用户退出账户时,系统会将用户的Cookie 信息置空,从而取消了用户的标识,用户下次进入系统会重新登录。
公告信息展示:用户查看此页面时,系统会展示发布时间最近的一次公告内容和发布时间。
公告发布:拥有相关权限的员工可以发布新的公告。用户输入公告内容后点击发布,系统会自动设置当前时间为发布时间。
5.4 操作端实现
如图7所示,操作端基于IOS 开发,在员工输入个人信息后,提供扫码功能。在系统确认扫描结果后,由员工选择对该产品进行入库操作或出库操作。
用户在操作端点击按钮后,程序会调用摄像头,扫描并识别产品上的二维码,并将二维码上的内容和用户信息转换为Json 字符串发送给服务器。服务器接收并解析Json 字符串,然后采用模式匹配的方法对字符串进行拆分,提取有效信息,存储在数据库出入库记录的相应表单,并修改该产品的库存数量。
6 系统部署测试
系统开发完毕后,需要在服务器部署测试系统。首先要在服务器上分别配置Linux+Apache+MySQL+PHP 环境,然后采用SCP 指令将系统代码上传至服务器。在服务器上对系统代码解压并授权相应权限后,放置到Apache 相应文件夹内。然后在手机上安装操作端的应用程序。至此,系统部署完成。
系统部署完成后开始对系统进行测试工作。首先通过浏览器访问系统主页,测试管理端7 个模块功能的完备性。然后测试管理端整体的功能完备性与运行流畅度。最后测试操作端和管理端的协同工作。
7 结束语
本文分析了库存管理系统的必要需求,然后设计了一种基于二维码技术的库存管理系统,并说明了实现的思路和部署测试方法,为企业库存管理的信息化、网络化和企业管理者的决策提供了一定的帮助。