应急包物资数字化管理系统探讨

时间:2022-07-13 08:30:22

应急包物资数字化管理系统探讨

摘要:采用Springboot、Vue等框架技术,开发了应急包物资数字化管理系统。应急包物资管理系统包含仓储物资台账同步、扫码出入库管理、领用申请单关联、定期自动盘点、下限补充告警、数据分析等功能,可解决公司现有应急包管理不完善、无系统支撑、效率低等问题。

关键词:应急包;物资管理;系统;数字化

1研发背景

表1业务角色分类目前公司部分应急包仓库存在物资数量大、周转快的特点,现有应急包管理不完善、效率低,主要有如下问题:(1)资产管理系统中,从申请、审核到出仓均有完善的闭环流程,但调查发现,在现场领料时由于人为操作因素会出现账、卡、物不一致的情况。(2)现场物资领入/领出管理仍为传统的“纸质化管理”,导致上级检查现场物资出入记录时数据不直观、效率低。(3)应急包物资转变为出库物资管理后,应急包物资台账与出入库记录缺乏系统管理,应急物资管理工作量大、效率低且缺乏大数据分析功能。传统的应急包“纸质化管理”显然出现了“小马拉大车”的情况,亟需进行应急包管理数字化转型。

2研发内容与实现

2.1研发内容

建设应急包物资数字化管理系统,包含仓储物资台账同步、扫码出入库管理、领用申请与资产系统出库记录关联、定期自动盘点、下限补充告警、数据分析等功能,实现应急物资流转管理及品类逐步优化功能,减少纸质登记的手填错误,提高应急包物资出入库效率。

2.2实施过程

(1)角色设计。本系统中涉及的业务角色有五种:开发者、超级管理员、单位管理员、部门管理员、普通员工,具体如表1所示。(2)部署结构如图1所示。(3)服务器资源配置要求如表2所示。(4)系统业务功能结构如图2所示。(5)应急包物资管理系统后台功能代码实现。系统后台采用Java编写,Java和C++类似,都是面向对象的编程语言,但Java不仅具有C++语言优点,还摒弃了C++语言里许多难以理解的概念,比如多继承、指针等。因此,Java语言对于开发者来说不仅功能强大,而且简单易用。Java作为一门优秀的面向对象的编程语言,允许程序员以优雅的思维方式进行复杂地编程,极好地实现了面向对象理论[1]。Java介于编译型语言和解释型语言之间,不同于C、C++等编译型语言,代码通过直接编译生成机器码执行,但对于不同的平台(如X86、ARM等),处理器的指令集存在不同,因此需要对每一种平台编译出与之相应的机器码。解释型语言如Python、Ruby由于是解释器直接加载源代码运行,不存在这种问题,但其效率太低。而Java是将代码编译成一种“字节码”,它类似于抽象的CPU指令,然后针对不同平台编写虚拟机,不同平台的虚拟机负责加载字节码并执行,对于Java开发者而言,就可以实现“一次编写,到处运行”的效果。但对于Java虚拟机,需为每个平台分别开发。从实践的角度看,Java虚拟机的兼容性做得非常好,低版本的Java字节码完全可以正常运行在高版本的Java虚拟机上。(6)Web展示代码实现。Web展示采用Vue+elementUi方式实现,Vue是一套用于构建用户界面的渐进式框架。渐进式指的是阶梯式向前,Vue的渐进式表现为:声明式渲染→组件系统→客户端路由→大数据状态管理→构建工具。与其他大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue是轻量级的,它有很多独立的功能或库,进行Web开发时开发者可以根据自己的项目特点来选用Vue的一些功能。比如,项目只用到Vue的声明式渲染,那就只用Vue的声明渲染,而要用其他的组件系统,直接进行引用就行了。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue也完全能够为复杂的单页应用提供驱动。Web展示包括商品档案、入库单、出库单、物资盘点、库存统计等业务功能页面,此外还包括用户管理、参数配置、权限和角色管理等系统管理功能页面。

2.3关键技术

整体框架技术:Springboot2.0、MyBatis、redis、Vue、elementUI、es6、webpack。本软件产品基于B/S模式进行开发实现,技术路线方面主要采用三层架构,即UI表现层、业务逻辑层、数据访问层。2.3.1UI表现层移动端采用react-native框架实现数据展示,具有友好性强的特点;后台管理采用Vue+elementUI前端框架,使用它强大的组件功能,可以减轻开发工作量,提高开发效率。2.3.2业务逻辑层业务逻辑层主要实现系统业务逻辑的处理,通过与前台UI界面进行数据交互,将业务数据传送到前台UI页面展示,并在系统后台自动处理复杂的业务操作逻辑。本项目采用基于Java的最新Spring框架实现系统功能。Spring是一个基于Java的比较轻量的开源框架,分层架构是该框架的主要优势之一,分层架构允许开发人员自主选择使用哪些组件,同时也为J2EE应用程序开发提供集成方案。Spring使用JavaBean技术规范来完成以前只可能由EJB完成的事情,它是为了简化企业应用开发复杂性而创建的。当然,Spring远远不仅局限于服务器端的开发,从开发简单性、代码可测试性和功能松耦合方面来说,任何Java应用都可以从Spring结构中受益。总的来说,Spring是一个轻量级的面向切面(AOP)和控制反转(IoC)的容器框架。2.3.3数据访问层数据访问层采用MyBatis技术实现,MyBatis是一个基于Java的优秀的持久层框架,该框架目前应用非常广泛且成熟、稳定,业务逻辑层通过调用MyBatis提供的API,实现底层数据访问与交互,灵活地进行业务系统数据的增、删、改、查操作。MyBatis持久层框架包括两大方面:SQLMaps、DataAccessObjects(DAO),同时还提供一个基于该框架开发的JPetStore实例。相对于Hibernate和ApacheOJB等“一站式”ORM解决方案而言,MyBatis是一种“半自动化”的ORM实现。安全考虑:严格遵循了Web安全的规范,设计上采用前后台双重验证,参数编码传输,密码md5加密存储,shiro权限验证,针对常见的网络安全漏洞做严格的安全防护,从根本上避免外部SQL注入、跨站脚本攻击、CSRF攻击等常见的Web攻击。

3系统测试

根据软件测试方案及应急包物资数字化管理系统用户手册,对软件各项功能逐一进行测试。主要从以下两方面着手:(1)根据测试场景及案例,输入参数,然后判断是否有输出反馈,获得的反馈是否与预期测试结果一致;(2)输入不满足输入要求的数据,比如超出边界的数据等,判断软件是否识别错误,是否出错,是否能提醒用户错误事项并提示重新输入。对于软件测试中发现的错误及改进建议,根据重要程度分以下4个等级进行记录统计:A级:软件功能不能实现或结果错误;B级:软件功能可以实现,但输入不匹配的错误参数后不能识别,输出错误或报错的输出结果;C级:软件界面外观问题,如字体、颜色、对齐等;D级:其他改进建议。测试用例与缺陷情况如表3所示。

4结语

该系统的设计完成,实现了应急包物资台账同步、扫码出入库管理、领用申请与资产系统出库记录关联、定期自动盘点、下限补充告警、数据分析等功能,解决了现有应急包管理不完善、无系统支撑、效率低等问题,使公司应急包管理更加合理规范,提高了应急包物资出入流转的效率,对于公司应急包物资管理数字化转型起到了一定的促进作用。

[参考文献]

[1]李刚.疯狂Java讲义[M].2版.北京:电子工业出版社,2014.

作者:罗序良 郭凤婵 单位:广东电网有限责任公司江门供电局