企业库存管理系统探讨

企业库存管理系统探讨

【摘要】库存系统在企业的日常经营管理中发挥着重要的作用。传统的库存系统采用MVC架构进行打架,前端基于jQuery等JavaScript框架进行开发。虽然jQuery能够实现一定的展现效果,但是随着前端页面变得越来越复杂,页面状态越来越庞大,jQuery很难满足需求。而Redux是一种专门用来解决复杂前端设计的架构,能够满足日益复杂的业务需求。本文将研究如何基于Redux框架对库存系统进行设计。

【关键词】Redux;企业库存系统;系统设计与实现

一、Redux技术介绍

库存系统主要实现各种物料的出入库、查询、统计报表的功能,主要基于B/S架构实现,后端使用JAVA或者PHP进行业务逻辑处理,通过后端对数据库进行读写;前端采用jQuery等框架,实现用户的输入等页面操作。单jQuery很难应对复杂的多页面状态管理,比如有三个页面分别显示某物品的当前数量、入库数量、出库数量。当有新的产品被录入后,需要同步更新三个页面,这种功能在jQuery中实现起来较为复杂。而且随着状态的增加,jQuery很难对各种页面变量和组件的状态进行管理。为了解决日益复杂的前端状态管理问题,在传统JavaScript的基础上,诞生了Redux框架,该框架为前端应用提供了一种可预测的状态容器,通过严格限制数据的单向流动,并将数据保存在store容器中,来解决变量的状态转移问题。store容器保存了页面所有变量的状态信息,并且将变量组织成状态树,记录变量的状态变化。前端页面及页面的组件可以通过store访问特定变量的相关状态信息。为了统一对状态进行管理,组件需要发送action信息给store,然后由store根据需要发送信息给reducer对相关变量进行状态更新,并保存到状态树中,通过store也可以对对象的状态进行查询。

二、库存管理系统设计和实现

本文采用BS架构对库存系统进行设计。用户通过客户端浏览器发送请求,后台服务器收到请求后返回相关信息,系统的整体框架如图1所示。本系统采取三层架构,也就是表示层,业务逻辑层、数据访问层相互隔离解耦,每个层次负责不同的功能,通过接口相互调研交互数据。其中表示层负责与用户的交互,业务逻辑层主要位于服务器后台,主要处理系统的业务功能逻辑。数据层负责系统数据的加工和存储。本系统采用TinkPHP+React+Redux+MySQL的技术对系统进行架构。其中TinkPHP用户实现业务逻辑层,负责各类业务功能模块的实现。TinkPHP具有良好的性能以及强大的功能,能够处理复杂的业务流程。展示层使用React以及Redux框架,React框架提供了前端页面的各种组建,可以实现复杂的交互功能。而Redux框架可以保存复杂的组件状态,能够应对快速变化的业务需求,提高系统的性能,简化开发的难度。MySQL是功能强大的数据库,能够实现较大规模数据的快速查询及存储。

2.1展示层实现

系统的展示层采用React+Redux框架的方式进行实现。React比jQuery具有更高的性能,能够进行数据驱动设计,避免了大量的DOM更改。前端系统由glup、src、node_modules、middleware、webpack等功能模块来实现。

2.2业务逻辑层实现

业务逻辑层采用ThinkPHP框架,该框架基于PHP语言,运行在web服务器上,接受前端的http服务请求,对提交的请求按照不同的业务逻辑进行处理。主要包括Controller、Model以及View等三个模块:(1)Controller服务系统的控制器,接收前端的请求,并通过控制器将相关请求分发到不同的处理模块,调用具体的业务处理模块来响应请求。本系统的主要功能有登录验证、库存产品信息登记、库存信息修改以及统计分析等模块组成,因此设计了LoginController、StockInfoRegisterController、StockInfoModifyController以及ReportController等控制器组成。(2)Model对应了数据模型,负责将页面信息、业务信息等抽象为Model对象,并调用数据层接口,对这些进行进行持久化处理或者查询处理。比如UserModel对应着系统的用户数据表,可以通过UserModel获取用户的用户名与密码,在登录时可以进行比对验证。(3)View负责处理服务器端返回给前端页面的视图,前端请求发送给业务逻辑层进行处理后,会将结果封装在View对象中,返回给客户端浏览器,由客户端浏览器对结果进行呈现。比如LoginView包含了用户密码验证通过与不通过的情况下,客户端页面的不同呈现结果。在登陆验证成功后,会跳转到用户的首页,而如果登陆验证失败,则会在页面端提示用户或密码错误。

2.3数据层实现

数据层具体由Mysql数据库来进行实现,在Mysql中存储了系统用到的各种不同的物理表,比如用户基本信息表。库存产品信息表、库存操作明细表等。Mysql中利用锁机制应对数据库的并发操作。

三、总结

本文基于TinkPHP+React+Redux+MySQL对库存管理系统进行了详细的设计,在这种架构下,系统具有强大的前端状态管理功能,后台处理具有较高的性能,本系统的架构为其他系统提高了参考,具有较强的应用价值。

参考文献

[1].赵雅娜.IR公司库存管理系统改进研究[D].大连理工大学,2017.

作者:张政 单位:中海油能源发展珠海石化销售有限公司