APP下载

应急包物资数字化管理系统研制

2022-07-09罗序良郭凤婵

机电信息 2022年13期
关键词:物资管理数字化系统

罗序良 郭凤婵

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

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

中图分类号:TP391;F272.7  文献标志码:A  文章编号:1671-0797(2022)13-0020-03

DOI:10.19514/j.cnki.cn32-1628/tm.2022.13.006

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虚拟机上。

后台系统包含了应急包物资的“增” “删” “改” “查”等基础物资操作功能的实现,其中获取物资信息功能的主要代码如下:

/**    * Project列表数据   */   @RequiresPermissions("list")   @GetMapping("list")

public AjaxJson list(Project project, HttpServletRequest request, HttpServletResponse response) {

Page<Project> page = projectService.findPage(new Page<Project>(request, response), project);

return AjaxJson.success().put("page",page)

* 根據ID获取Project数据  */

@RequiresPermissions(value={"view","it:project:project:add","edit"},logical=Logical.OR)

@GetMapping("queryById")   public AjaxJson queryById(Project project) {

return AjaxJson.success().put("project", project);

* 后台hibernate-validation插件校验  */

String errMsg = beanValidator(project);

if (StringUtils.isNotBlank(errMsg)){ return AjaxJson.error(errMsg); }//新增或编辑表单保存

projectService.save(project);//保存

return AjaxJson.success("保存Project成功");}

(6)Web展示代码实现。Web展示采用Vue+element Ui方式实现,Vue是一套用于构建用户界面的渐进式框架。渐进式指的是阶梯式向前,Vue的渐进式表现为:声明式渲染→组件系统→客户端路由→大数据状态管理→构建工具。与其他大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue是轻量级的,它有很多独立的功能或库,进行Web开发时开发者可以根据自己的项目特点来选用Vue的一些功能。比如,项目只用到Vue的声明式渲染,那就只用Vue的声明渲染,而要用其他的组件系统,直接进行引用就行了。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue也完全能够为复杂的单页应用提供驱动。

Web展示包括商品档案、入库单、出库单、物资盘点、库存统计等业务功能页面,此外还包括用户管理、参数配置、权限和角色管理等系统管理功能页面。

2.3    关键技术

整体框架技术:Springboot 2.0、MyBatis、redis、Vue、element UI、es6、webpack。

本软件产品基于B/S模式进行开发实现,技术路线方面主要采用三层架构,即UI表现层、业务逻辑层、数据访问层。

2.3.1    UI表现层

移动端采用react-native框架实现数据展示,具有友好性强的特点;后台管理采用Vue+element UI前端框架,使用它强大的组件功能,可以减轻开发工作量,提高开发效率。

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持久层框架包括两大方面:SQL Maps、Data Access Objects(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.

收稿日期:2022-04-21

作者简介:罗序良(1989—),男,广东江门人,工程师,主要从事企业信息化工作。

郭凤婵(1989—),女,广东江门人,高级工程师,主要从事企业信息化工作。

猜你喜欢

物资管理数字化系统
Smartflower POP 一体式光伏系统
推动内部审计工作数字化的探究
一种无人机缓冲系统
数字化起舞
品“助读系统”之妙
高中数学“一对一”数字化学习实践探索
直扩系统中的窄带干扰抑制
直扩系统中的窄带干扰抑制
高中数学“一对一”数字化学习实践探索
对实现电力企业物资管理信息化建设的几点思考