php仓储管理系统的设计与实现 毕业设计-附源码69061

目  录

摘要

1 绪论

1.1 研究背景及意义

1.2国内外研究现状

1.3系统开发的目意义

1.4论文结构与章节安排

2 仓储管理系统系统分析

2.1 可行性分析

2.1.1 技术可行性分析

2.1.2 经济可行性分析

2.1.3 操作可行性分析

2.2 系统功能分析

2.2.1 功能性分析

2.2.2 非功能性分析

2.3 系统用例分析

3.4本章小结

3 仓储管理系统总体设计

3.1 系统架构设计

3.2 系统模块设计

3.3 数据库设计

3.3.1 数据库概念结构设计

3.3.2 数据库逻辑结构设计

3.4本章小结

4 仓储管理系统详细设计与实现

4.1用户功能模块

4.1.1 主页界面界面

4.1.2 用户注册界面

4.1.3 用户登录界面

4.1.4 库存盘点界面

4.1.5 货物入库界面

4.1.6 货物出库界面

4.1.7 货物移库界面

4.1.8 个人资料界面

4.2管理员功能模块

4.2.1 用户管理界面

4.2.2 库位信息管理界面

4.2.3 库存盘点管理界面

4.2.4货物入库管理界面

4.2.5货物出库管理界面

4.2.6货物移库管理界面

5系统测试

5.1 系统测试用例

5.2 系统测试结果

结论

参考文献

  

摘要

本论文主要论述了如何使用PHP语言开发一个Thinkphp仓储管理系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S模式,面向对象编程思想进行项目开发。php仓储管理系统的主要使用者分为管理员、和用户,实现功能包括:首页、用户管理(管理员、注册用户)、库位信息、库存盘点、货物入库、货物出库、货物移库等。由于本系统的功能模块设计比较全面,所以使得整个仓储管理系统的过程得以完善。本系统的使用可以实现物流仓储管理的信息化,可以方便管理员进行更加方便快捷的管理,可以提高物流仓储管理的管理效率。

关键词:数据库;仓储管理;Thinkphp框架 

Abstract

This paper mainly discusses how to develop a Thinkphp warehouse management system using PHP language. The system will strictly follow the software development process for each stage of work, using B/S mode and object-oriented programming ideas for project development. The main users of the PHP warehouse management system are divided into administrators and users, and their implementation functions include: homepage, user management (administrators, registered users), warehouse location information, inventory counting, goods warehousing, goods outbound, goods transfer, etc. Due to the comprehensive design of the functional modules in this system, the entire process of warehouse management system has been improved. The use of this system can achieve informatization of logistics and warehousing management, facilitate administrators to manage more conveniently and quickly, and improve the management efficiency of logistics and warehousing management.

Keywords: database Warehouse management; Thinkphp framework

1 绪论

1.1 研究背景及意义

从上个世纪50年代以来,经济全球化的速度越来越快,有关物流的研究开始在欧、美、日等发达国家和地区展开。对于物流在经济活动上的认知,最初是由约翰F·格鲁威尔提出。后来相关经济学家指出,物流是与创造需求不同的一个话题,物资在经过时间和空间的转移后会附加新的价值,物流是供应链管理过程中非常重要的一环。随着现代工业社会的发展,要想进一步提高生产效率,从而降低产品的成本以及竞争力,就要充分利用现代信息技术。20世纪60年代,中国第一次接触到物流的概念,由于当时计划经济的影响,人们对物流的认识普遍停留在物资流通的阶段。20世纪80年代初,北京物资学院王之秦教授发表《物资浅谈》。第一次较为完整地将物流概念引入了中国,人们渐渐地开始认知并研究物流这一领域。仓储管理已经成为企业管理中的重要一环,管理进行物流活动的仓库,同时也管理物流过程流转的商品。

仓储管理是物流领域不能避免的一个核心环节,无论是制造业还是服务业,无不对仓库管理提出越来越高的要求。仓储管理这一环节由入库业务、出库业务、库存管理、商品管理等几个主要业务步骤组成,这些业务步骤大多依赖于人工,特点是繁琐、耗时和错误率高,存在很多弊端。随着物资规模和物资种类的扩大,仅仅依靠人工进行仓储管理会是个灾难性的决定。如何有效地把更多的人力从仓储管理体系中解脱出来,并且提高仓储管理的效率成功现代企业进一步发展的一个重要的制约因素。

1.2国内外研究现状

仓储管理系统是仓储管理与信息技术结合的探索,它在国内的市场的表现还处于萌芽状态。仓储管理系统在我国市场上的应用,主要集中在以阿里巴巴、京东等先进互联网公司为代表的高端市场,而且各个公司使用的系统仅仅满足各自公司的特色需求。在以国内小型企业为代表的中低端市场,仓储管理系统的应用并不全面,或者使用的仓储管理系统的功能还不健全。国内市场的主流仓储管理系统有以下三类:

(4)基于配送业务的应用系统

这类系统主要是为了提高配送效率而设计的,如连锁超市的配送中心,主要目的是为了提高仓库内作业效率,从而缩短配送效率,具体方法就是通过利用网络化和数字化。

(5)基于整合仓储作业技术的系统

这类系统主要是解决各种自动化设备的信息系统之间整合与优化的问题,协调原材料库、半成品库与成品库之间合理运行问题,保证连续作业,不放空生产力,从而提高产量。

(6)基于仓储决策的应用系统

这类系统的主要功能是为仓储经营者提供决策支持信息,所以需要有各种各样的计费方式,而且能准确及时的计算。

发达国家的信息化建设要远远领先于国内,由于经济的繁荣和国际贸易的频繁,使得先进企业对信息化的认识较为深刻,并且越发重视信息化的建设和投入。国内仓储管理起步的比较晚,但是随着经济的发展和规模扩大,企业对仓储管理的要求越来越高。所以仓储管理系统不能再像现在这样,只有某一方面的侧重功能,而是要提供全面完整的问题解决方案。只有这样,才能在现在的市场中取得先机,占领市场份额,从而赢得竞争。

1.3系统开发的目标意义

仓储管理系统最开始的业务流程是入库,通过入库才能在仓库中产生商品,也就产生了库存信息。只有保证仓库中库存充足,才能对商品进行出库操作。所以仓储管理系统主要的业务集中在入库、出库、库存三个方面,从这三个方面又衍生出了作业任务等的过程。利用计算机系统来管理信息和人工管理信息有很大的差异,人工管理信息会产生大量文件,容易产生人为的失误,并且在信息查找时比较困难。利用计算机系统管理信息则不同,仓库管理系统将人工管理仓库时做的工作划分为多个功能模块,将人工操作改为计算机操作,降低了失误率,用户还可根据不同需要操作不同的功能模块。

1.4论文结构与章节安排

本文共分为六章,章节内容安排如下:

第一章:引言。第一章主要介绍了课题研究的背景意义,国内目前相关研究现状以及技术和本文的研究内容与主要工作。

第二章:系统需求分析。第三章主要从系统的用户、功能等方面进行需求分析。

第三章:系统设计。第四章主要对系统框架、系统功能模块、数据库进行功能设计。

第四章:系统实现。第五章主要介绍了系统框架搭建、系统界面的实现。

第五章:系统测试。第六章主要对系统的部分界面进行测试并对主要功能进行测试

第六章:总结。

2 仓储管理系统系统分析

本章内容概括了仓储管理系统的可行性分析、功能分析以及用例分析。

2.1 可行性分析

2.1.1 技术可行性分析

在分析了仓储管理系统的真实需求后,将仓储管理系统所需要的角色划分整理成了下图2-1和图2-2。

从开发工具来看,由于仓储管理系统是基于PHP开发的,因此当前市面上的开发工具都可以来开发,这些功能强大的开发工具可以给我来设计毕设带来非常大的方便。

从仓储管理系统的本身技术来说,对于我来开发一个仓储管理系统这个毕设是不费事的。仓储管理系统的开发可以简单的分为前台模块、后台模块开发以及数据库开发。其中的大部分技术难点在我上学时已经使用过了,同时网络上很多技术点可以让我来借鉴。Web后台管理使用PHP开发,数据库使用mysql,因此为我在开发仓储管理系统这个毕设上省去了很多多余代码,这给我的毕设项目编写带来了极大的便利。

从用户体验来看,市面上很多被广泛使用的仓储管理系统案例可以让我来参考,因此我可以综合网上的页面交互设计的优点,基于我的毕设项目特点来进行改版,最后达到令用户满意的页面交互体验。综上所述,从技术层面来看开发仓储管理系统是可行的。

2.1.2 经济可行性分析

从仓储管理系统的开发成本来看,仓储管理系统的设计和开发都是我自己完成的,没有其他成本上的开销。

从仓储管理系统的维护成本来看,仓储管理系统的开发遵循一套完整的代码编写规范,并且仓储管理系统的结构设计非常灵活,遵循高内聚低耦合的原则,因此易于维护和迭代开发。

在仓储管理系统上线之后,上线前期我会根据真实需求来调查,对使用我开发的仓储管理系统来制定一套符合的使用费。系统运行稳定后我会将推广范围到其他需要仓储管理的物流企业中,他们可以自己来注册使用我的仓储管理系统,只需要缴纳一点点的定金,我会给他们引入广告投资和自营业务。

综合以上的分析,仓储管理系统所带来的经济效益将会带来极大的收益。并且随着我的推广,来使用我开发的仓储管理系统的市场将越来越大,仓储管理系统带来的利润也就越来越多。因此,从经济层面来看开发仓储管理系统的是可行的。

2.1.3 操作可行性分析

仓储管理系统的主要的服务对象是需要仓储管理的物流企业,总的来说仓储管理系统的使用还是比较简单的,一般不存在操作困难的事情,仓储管理系统的管理人员需要对该仓储管理系统有一定的了解,比如商品的进出库、库存盘点等操作,如果不会,可以进行简单的培训就好了。

2.2 系统功能分析

2.2.1 功能性分析

仓储管理系统我划分为了用户管理模块和管理员模块这两大部分。

前台用户管理模块:

(1)用户注册登录:用户注册为会员并登录仓储管理系统;用户对个人信息的增删改查,比如个人资料,密码修改。

(2)库位信息:用户进行库位信息的查看。

(3)库存盘点:用户可以在此页面进行仓库货物信息的查看,包括仓库编号、货物名称、货物编号、库存数量、价格等。

(4)货物入库:用户可以输入仓库编号、货物编号、货物名称、价格、入库数量等信息进行提交。

(5)货物出库:用户可以输入仓库编号、货物编号、货物名称、价格、出库数量等信息进行提交。

(6)货物移库:用户可以输入货物编号、仓库编号、货物名称、移前库位、移后库位等信息进行提交。

(7)个人信息:可以在线进行个人信息的修改。

(8)密码修改:可以进行密码修改等。

后台管理员管理模块:

(1)库位信息管理:管理员可以对仓储管理系统中的库位信息,包括仓库编号、库位容量、已放数量、剩余容量、货物信息等进行增删改查操作。

(2)系统用户:管理员可以对前台上注册过的用户信息进行管控,同时可以对管理员的信息进行管理。

(3)库存盘点管理:管理员可以对仓储管理系统中货物库存信息进行维护管理。

(4)货物入库管理:管理员可以对用户输入的货物入库信息进行查看以及审核。

(5)货物出库管理:管理员可以对用户输入的货物出库信息进行查看以及审核。

(6)货物移库管理:管理员对用户输入的货物移库信息进行查看以及审核。

2.2.2 非功能性分析

仓储管理系统的非功能性需求比如仓储管理系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下3-1表格中:

3-1仓储管理系统非功能需求表

安全性

主要指仓储管理系统数据库的安装,数据库的使用和密码的设定必须合乎规范。

可靠性

可靠性是指仓储管理系统能够安装用户的指示进行操作,经过测试,可靠性90%以上。

性能

性能是影响仓储管理系统占据市场的必要条件,所以性能最好要佳才好。

可扩展性

比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。

易用性

用户只要跟着仓储管理系统的页面展示内容进行操作,就可以了。

可维护性

仓储管理系统开发的可维护性是非常重要的,经过测试,可维护性没有问题

2.3 系统用例分析

仓储管理系统的完整UML用例图分别是图2-1和图2-2。在参与者上包括用户以及管理员。前台上用户角色用例包括用户是注册成为我们正是会员的用户、用户登录、库位信息、库存盘点、货物入库、货物出库、货物移库、个人资料、密码修改,用户角色用例如图2-1所示。

图2-1 仓储管理系统用户角色用例图

web后台管理上的管理员是维护整个仓储管理系统中所有数据信息的,管理员可以进行登录、库位信息管理、库存盘点管理、货物出库管理、货物入库管理、货物移库管理。管理员角色用例如图2-2所示。

图2-2 仓储管理系统管理员角色用例图

3.4本章小结

本章主要通过对仓储管理系统的可行性分析、功能需求分析、系统用例分析,确定整个仓储管理系统要实现的功能。同时也为仓储管理系统的代码实现和测试提供了标准。

3 仓储管理系统总体设计

本章主要讨论的内容包括仓储管理系统的功能模块设计、数据库系统设计。

3.1 系统架构设计

本仓储管理系统从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。

图3-1仓储管理系统系统架构设计图

表现层(UI):又称UI层,主要完成本仓储管理系统的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本仓储管理系统时的舒适度。UI的界面设计也要适应不同版本的仓储管理系统以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。

业务逻辑层(BLL):主要完成本仓储管理系统的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。

数据层(DL):由于本仓储管理系统的数据是放在服务端的mysql数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本仓储管理系统的数据存储和管理功能。

3.2 系统模块设计

在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本仓储管理系统中的用例。那么接下来就要开始对本仓储管理系统的架构、主要功能和数据库开始进行设计。仓储管理系统根据前面章节的需求分析得出,其总体设计模块图如图3-2所示。

图3-2 仓储管理系统功能模块图

3.3 数据库设计

数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。

3.3.1 数据库概念结构设计

下面是整个仓储管理系统中主要的数据库表总E-R实体关系图。

图3-2 仓储管理系统总E-R关系图

3.3.2 数据库逻辑结构设计

通过上一小节中仓储管理系统中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。

 (1)表discharge_from_warehouse (货物出库)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

discharge_from_warehouse_id

int

10

0

N

Y

货物出库ID

2

goods_number

varchar

64

0

Y

N

货物编号

3

warehouse_number

varchar

64

0

Y

N

仓库编号

4

name_of_goods

varchar

64

0

Y

N

货物名称

5

delivery_price

varchar

64

0

Y

N

出库价格

6

outbound_quantity

int

10

0

Y

N

0

出库数量

7

remarks

text

65535

0

Y

N

备注

8

reviewed_by

int

10

0

Y

N

0

审核人

9

recommend

int

10

0

N

N

0

智能推荐

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

(2)表goods_relocation (货物移库)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

goods_relocation_id

int

10

0

N

Y

货物移库ID

2

goods_number

varchar

64

0

Y

N

货物编号

3

warehouse_number

varchar

64

0

Y

N

仓库编号

4

name_of_goods

varchar

64

0

Y

N

货物名称

5

move_forward_storage_location

varchar

64

0

Y

N

移前库位

6

move_back_to_storage_location

varchar

64

0

Y

N

移后库位

7

reviewed_by

int

10

0

Y

N

0

审核人

8

recommend

int

10

0

N

N

0

智能推荐

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

(3)表inventory_counting (库存盘点)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

inventory_counting_id

int

10

0

N

Y

库存盘点ID

2

warehouse_number

varchar

64

0

Y

N

仓库编号

3

name_of_goods

varchar

64

0

Y

N

货物名称

4

goods_number

varchar

64

0

Y

N

货物编号

5

inventory_quantity

int

10

0

Y

N

0

库存数量

6

price

varchar

64

0

Y

N

价格

7

remarks

varchar

64

0

Y

N

备注

8

recommend

int

10

0

N

N

0

智能推荐

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

(4)表registered_users (注册用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

registered_users_id

int

10

0

N

Y

注册用户ID

2

name

varchar

64

0

Y

N

姓名

3

gender

varchar

64

0

Y

N

性别

4

examine_state

varchar

16

0

N

N

已通过

审核状态

5

recommend

int

10

0

N

N

0

智能推荐

6

user_id

int

10

0

N

N

0

用户ID

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

(5)表warehouse_location_information (库位信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

warehouse_location_information_id

int

10

0

N

Y

库位信息ID

2

warehouse_number

varchar

64

0

Y

N

仓库编号

3

storage_location_capacity

varchar

64

0

Y

N

库位容量

4

quantity_already_stored

int

10

0

Y

N

0

已存数量

5

remaining_capacity

int

10

0

Y

N

0

剩余容量

6

cargo_information

text

65535

0

Y

N

货物信息

7

recommend

int

10

0

N

N

0

智能推荐

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

(6)表warehousing (货物入库)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

warehousing_id

int

10

0

N

Y

货物入库ID

2

warehouse_number

varchar

64

0

Y

N

仓库编号

3

goods_number

varchar

64

0

Y

N

货物编号

4

name_of_goods

varchar

64

0

Y

N

货物名称

5

price

varchar

64

0

Y

N

价格

6

receipt_quantity

int

10

0

Y

N

0

入库数量

7

remarks

text

65535

0

Y

N

备注

8

reviewed_by

int

10

0

Y

N

0

审核人

9

recommend

int

10

0

N

N

0

智能推荐

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

3.4本章小结

整个仓储管理系统的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。

4 仓储管理系统详细设计与实现

仓储管理系统的详细设计与实现主要是根据前面的仓储管理系统的需求分析和仓储管理系统的总体设计来设计页面并实现业务逻辑。主要从仓储管理系统界面实现、业务逻辑实现这两部分进行介绍。

4.1用户功能模块

4.1.1 主页界面

在仓储管理系统的主页页界面上采用了左+右的方式来布局界面,其主界面展示如下图4-1所示。

图4-1 主页界面图

4.1.2 用户注册界面

不是仓储管理系统中正式用户的是可以在线进行注册的,当填写上自己的账号+设置密码+确认密码+昵称+邮箱+手机号+身份后+用户名再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。其用用户注册界面展示如下图4-2所示。

图4-2 前台用户注册界面图

用户注册逻辑代码如下:

public function register()

    {

        if (Request::isPost()) {

            $request = Request::param();

            $request['create_time'] = isset($request['create_time']) ? $request['create_time'] : date('Y-m-d H:i:s');

            $request['update_time'] = isset($request['update_time']) ? $request['update_time'] : date('Y-m-d H:i:s');

            $result = $this->validate($request, $this->validate);

            if (true !== $result) {

                // 验证失败 输出错误信息

                $data['error'] = 30000;

                $data['message'] = $result;

            } else {

                $request['password'] = md5($request['password']);

                $result = $this->model->register($request, $this->table);

                $data = $result;

            }

        } else {

            $data['error'] = 30000;

            $data['message'] = "field的值不能为空!";

        }

        return json_encode($data);

    }

public function register($request=[],$table_name = ''){

        $username = $request['username'];

        $bol = $this->where(['username'=>$username])->find();

        if (!$bol){

            $result = self::allowField(true)->save($request);

            if ($result) {

                return ['result' => 1];

            } else {

                return ['error' => ['code' => 3000, 'message' => '注册失败']];

            }

        }else{

            return ['error' => ['code' => 3000, 'message' => '注册失败,账号已存在']];

        }

    }

4.1.3 用户登录界面

仓储管理系统中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到仓储管理系统的首页中;否则将会提示相应错误信息,用户登录界面如下图4-3所示。

图4-3用户登录界面图

用户登录的逻辑代码如下所示。

public function login()

    {

        if (Request::isPost()) {

            $request = Request::param();

            $result = $this->validate($request, $this->validate);

            if (true !== $result) {

                // 验证失败 输出错误信息

                $data['error'] = 30000;

                $data['message'] = $result;

            } else {

                $request['password'] = md5($request['password']);

                $result = $this->model->login($request, $this->table);

                $data = $result;

            }

        } else {

            $data['error'] = 30000;

            $data['message'] = "field的值不能为空!";

        }

        return json_encode($data);

    }

public function login($request=[],$table_name = ''){

        $username = $request['username'];

        $password = $request['password'];

        $bol = $this->where(['username'=>$username])->find();

        if ($bol){

            $password = md5($password);

            if ($request['password']==$bol['password']) {

                //添加token信息

                $access_token['create_time'] = date('Y-m-d H:i:s');

                $access_token['update_time'] = date('Y-m-d H:i:s');

$access_token['info'] = json_encode($bol);

                // $access_token['info'] = $bol;

                $access_token['token'] = md5(date('Y-m-d H:i:s'));

                $bol_token = Db::name('AccessToken')->insert($access_token);

                if ($bol_token){

                    $data['obj'] = $bol;

                    $data['obj']['token'] = $access_token['token'];

                    return ['result' => $data];

                }else{

                    return ['error' => ['code' => 5000, 'message' => '登录失败,token生成失败']];

                }

            } else {

                return ['error' => ['code' => 5000, 'message' => '登录失败,密码不正确']];

            }

        }else{

            return ['error' => ['code' => 5000, 'message' => '登录失败,账号不存在']];

        }

    }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            tokenService.save(accessToken);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

}

4.1.4库存盘点界面

在仓储管理系统的库存盘点页面进行货物编号、货物名称、仓库编号、库存数量信息的查看,可以单独输入货物编号进行某个货物的库存信息查看。库存盘点界面如下图7所示。

图4-4库存盘点界面图

库存盘点的关键代码如下。

 public function add()

    {

        if (Request::isPost()) {

            $request = Request::param();

            $request['create_time'] = isset($request['create_time']) ? $request['create_time'] : date('Y-m-d H:i:s');

            $request['update_time'] = isset($request['update_time']) ? $request['update_time'] : date('Y-m-d H:i:s');

            $result = $this->validate($request, $this->validate);

            if (true !== $result) {

                // 验证失败 输出错误信息

                $data['error'] = 30000;

                $data['message'] = $result;

            } else {

if($this->table == 'user'){

$request['password'] = md5($request['password']);

}

$res = $this->add_before($request, $this->table, $this->table_id);

if($res['code'] == 200){

$result = $this->model->add($request, $this->table, $this->table_id);

$this->add_after($this->table);

$data = $result;

}else{

$data['error'] = $res;

}

            }

        } else {

            $data['error']['code'] = 30000;

            $data['error']['message'] = "field的值不能为空!";

        }

        return json_encode($data);

    }

4.1.5 货物入库界面

当用户点击仓储管理系统中导航栏上的“货物入库”后将会进入到该“货物入库”列表的界面,然后进行货物入库信息的输入,包括货物编号、仓库编号、货物名称、价格、入库数量、备注等,提交后等待审核,货物入库界面如下图4-5所示。

图4-5货物入库界面图

货物入库关键代码如下。

public function avg()

    {

        $request = Request::param();

        if (isset($request['field'])) {

            if (!empty($request['field'])) {

                $result = $this->model->avg_field($request, $this->table, $this->table_id);

                $data = $result;

            } else {

                $data['error']['code'] = 30000;

                $data['error']['message'] = "field的值不能为空!";

            }

        } else {

            $data['error']['code'] = 30000;

            $data['error']['message'] = "field的值不能为空!";

        }

        return json_encode($data);

    }

4.1.6 货物出库界面

当访客点击了货物出库的详情界面,可以输入仓库编号、货物编号、货物名称、价格、出库数量等信息,提交后由管理员进行审核。货物出库展示页面如图4-6所示。

图4-6 货物出库界面图

货物出库关键代码如下。

public function get_obj()

    {

        $request = Request::param();

        $result = $this->model->get_obj($request, $this->table, $this->table_id, $this->table_id);

        $data['result'] = $result;

        return json_encode($data);

    }

4.1.7 货物移库界面

用户可以在货物移库界面对货物的移库信息进行输入。货物移库界面如下图4-7所示。

图4-7 货物移库界面图

货物移库关键代码如下。

public function get_list()

    {

        $request = Request::param();

        $result['list'] = $this->model->get_list($request, $this->table, $this->table_id);

        $result['count'] = $this->model->list_count($request, $this->table, $this->table_id);

        $data['result'] = $result;

        return json_encode($data);

    }

4.1.8个人资料界面

用户可以在“个人资料”界面对自己的个人资料信息进行修改设置。个人资料界面如下图4-8所示。

图4-8 个人资料修改界面图

个人资料修改关键代码如下。

public function set()

    {

        if (Request::isPost()) {

            $get = Request::get();

            $where = [];

            foreach($get as $k => $g){

             //过滤参数中的页码信息

             if($k != 'page' && $k != 'size'){

             $where[$k] = $g;

             }

            }

            $request = Request::post();

if($this->table != 'user'){

$request['update_time'] = isset($request['update_time']) ? $request['update_time'] : date('Y-m-d H:i:s');

}

            $result = $this->validate($request, $this->validate);

            if (true !== $result) {

                // 验证失败 输出错误信息

                $data['error'] = 30000;

                $data['message'] = $result;

            } else {

                $result = $this->model->set($request, $this->table, $this->table_id, $where);

                $data = $result;

            }

        } else {

            $data['error']['code'] = 30000;

            $data['error']['message'] = "field的值不能为空!";

        }

        return json_encode($data);

    }

4.2管理员功能模块

4.2.1 用户管理界面

仓储管理系统中的管理人员是可以对系统用户进行管理。用户管理界面如下图4-9所示。

图4-9用户管理界面图

4.2.2 库位信息管理界面

仓储管理系统中的管理人员是可以对系统发布的库位信息进行管控,库位信息界面如下图4-10所示。

图4-10库位信息管理界面图

库位信息管理关键代码如下。

public function add($request=[],$table_name = '',$table_id = ''){

        $result = self::allowField(true)->save($request);

        if ($result) {

            return ['result' => 1];

        } else {

            return ['error' => ['code' => 3000, 'message' => '数据添加失败']];

        }

    }

4.2.3 库存盘点管理界面

仓储管理系统中的管理人员是可以对仓储管理系统内的货物库存信息进行维护管理。库存盘点管理界面如下图4-11所示。

图4-11库存盘点管理界面图

库存盘点管理关键代码如下。

public function count()

    {

        $request = Request::param();

        $result = $this->model->list_count($request, $this->table, $this->table_id);

        $data['result'] = $result;

        return json_encode($data);

    }

4.2.4货物入库管理界面

仓储管理系统中的管理人员是可以对仓储管理系统内货物入库信息进行审核管理。货物入库管理界面如下图4-12所示。

图4-12货物入库管理界面图

货物入库管理关键代码如下。

public function count_group()

    {

        $request = Request::param();

        if (isset($request['groupby'])) {

            if (!empty($request['groupby'])) {

                $result = $this->model->count_group($request, $this->table, $this->table_id);

                $data['result'] = $result;

            } else {

                $data['error']['code'] = 30000;

                $data['error']['message'] = "groupby的值不能为空!";

            }

        } else {

            $data['error']['code'] = 30000;

            $data['error']['message'] = "groupby的值不能为空!";

        }

        return json_encode($data);

}

4.2.5货物出库管理界面

仓储管理系统中的管理人员是可以对货物的出库信息进行审核操作。货物出库管理界面如下图4-13所示。

图4-13货物出库管理界面图

货物出库管理关键代码如下。

public function sum()

    {

        $request = Request::param();

        if (isset($request['field'])) {

            if (!empty($request['field'])) {

                $result = $this->model->sum_field($request, $this->table, $this->table_id);

                $data = $result;

            } else {

                $data['error']['code'] = 30000;

                $data['error']['message'] = "field的值不能为空!";

            }

        } else {

            $data['error']['code'] = 30000;

            $data['error']['message'] = "field的值不能为空!";

        }

        return json_encode($data);

    }

4.2.6货物移库管理界面

仓储管理系统中的管理人员是可以对货物的移库信息进行审核操作。货物移库管理界面如下图4-14所示。

图4-14货物移库界面图

货物移库管理关键代码如下。

public function avg()

    {

        $request = Request::param();

        if (isset($request['field'])) {

            if (!empty($request['field'])) {

                $result = $this->model->avg_field($request, $this->table, $this->table_id);

                $data = $result;

            } else {

                $data['error']['code'] = 30000;

                $data['error']['message'] = "field的值不能为空!";

            }

        } else {

            $data['error']['code'] = 30000;

            $data['error']['message'] = "field的值不能为空!";

        }

        return json_encode($data);

    }

5系统测试

5.1 系统测试用例

系统测试包括:用户登录功能测试、用户注册功能测试、库位信息展示功能测试、货物入库添加功能测试,如表5-1、5-2、5-3、5-4所示:

用户登录功能测试:

表5-1 用户登录功能测试表

测试名称

测试功能

操作

操作过程

预期结果

测试结果

用户登录模块测试

正确输入用户信息,用户成功登录

输入用户的信息

1.在密码框输入用户密码。2.点击登录

跳转到首页

正确

用户注册功能测试:

表5-2 用户登录功能测试表

测试名称

测试功能

操作

操作过程

预期结果

测试结果

用户注册模块测试

正确输入用户星系,完成用户注册

输入用户的基本信息

在注册页面填写用户相应的信息,然后点击“注册”按钮。

提示成功并跳转到登录界面

正确

用户注册模块测试

用户注册失败

用户两次输入密码不一致

用户在注册页面填写信息时输入两个不一致的密码然后点击“注册”按钮。

注册失败提示两次密码输入不一致

正确

库位信息界面测试:

表5-3 库位信息界面测试表

测试名称

测试功能

操作

操作过程

预期结果

测试结果

库位信息功能模块测试

库位信息正常的显示

浏览库位信息

在前台首页选择一个仓库分类进入分类列表,然后选择一个仓库

进入该仓库的详细信息界面

正确

用户添加货物入库功能测试:

表5-4 用户添加货物入库功能测试表

测试名称

测试功能

操作

操作过程

预期结果

测试结果

用户添加货物入库功能测试

添加货物入库成功的情况

输入新货物入库的基本信息

后台选择“输入货物入库”选项,然后填写货物入库基本信息点击“添加”按钮

新货物入库添加成功

正确

用户添加货物入库功能测试

添加货物入库失败的情况

输入货物入库基本信息不完全

后台选择“发布货物入库”选项,然后不完全填写货物入库信息,点击“添加”按钮。

对应信息框后出现提示请输入XXXX信息

正确

用户添加货物入库功能测试

添加货物入库失败的情况

用户在数量框输入非数字字符

后台选择“发布货物入库”选项然后再数量框输入非数字字符,点击“添加”按钮。

添加失败,提示“数量必须时字数格式!”

正确

5.2 系统测试结果

通过编写仓储管理系统的测试用例,已经检测完毕用户登录模块、用户注册模块、库位信息展示模块、货物入库添加模块功能测试,通过这4大模块为仓储管理系统的后期推广运营提供了强力的技术支撑。

结论

至此,仓储管理系统已经结束,在开发前做了许多的准备,在本系统的设计和开发过程中阅览和学习了许多文献资料,从中我也收获了很多宝贵的方法和设计思路,对系统的开发也起到了很重要的作用,系统的开发技术选用的都是自己比较熟悉的,比如Web、PHP技术、MYSQL,这些技术都是在以前的学习中学到了,其中许多的设计思路和方法都是在以前不断地学习中摸索出来的经验,其实对于我们来说工作量还是比较大的,但是正是由于之前的积累与准备,才能顺利的完成这个项目,由此看来,积累经验跟做好准备是十分重要的事情。

当然在该系统的设计与实现的过程中也离不开老师以及同学们的帮助,正是因为他们的指导与帮助,我才能够成功的在预期内完成了这个系统。同时在这个过程当中我也收获了很多东西,此系统也有需要改进的地方,但是由于专业知识的浅薄,并不能做到十分完美,希望以后有机会可以让其真正的投入到使用之中。

参考文献

[1]网页设计与网站建设从入门到精通[M]. 化学工业出版社.张翔.2012

[2]Java Web应用开发教程[M]. 北京邮电大学出版社.于静.2010

[3]互联网+时代PHP动态网站开发技术[J].周黎宁.科技风.2019(04)

[4] PHP Web程序设计与项目案例开发[M]. 清华大学出版社.马石安. 2019

[5]网站建设与管理基础及实训[M]. 清华大学出版社.吴代文.2013

[6] The Comparison Firebase Realtime Database and MySQL Database Performance using Wilcoxon Signed-Rank Test[J]. Margaretha Ohyver,Jurike V. Moniaga,Iwa Sungkawa,Bonifasius Edwin Subagyo,Ian Argus Chandra.Procedia Computer Science.

[7] 基于PHP的简单网页设计[J]. 李秋锦.科技经济导刊.2019(16)

[8]网络数据库连接技术及运用之研究[J]. 赵辉,熊文俊.电脑知识与技术. 2019(17)

[9] Evgeny A. Antipov, Elena B. Pokryshevskaya.Rank-sales relationship in electronic commerce: Evidence from publicly available data on 11 product categories[J].2016.16

[10] Rapid software integration using structured methods[J]. Mark J. Bennett.Journal of Systems Integration.1992(1)

[11]胡锋.基于PHP及MySQL数据库的行业网站建设[J].电脑知识与技术,2016.

[12]陈云芳,潘利华,陈瑞,刘小清,吴丽.基于PHP语言访问MySQL数据库的实现[J].中国新通信,2015.

[13]李年安.基于PHP的网站编程设计与实现[J].电脑开发与应用,2014.

[14](美)W Jason Gilmore.PHP与MySQL程序设计[M].人民邮电出版社,2011.

[15](澳)威利,(澳)汤姆森.php和mysql web开发(第4版) [M].机械工业出版社,2009.

致  谢

仓储管理系统的完成,标志着我即将结束在XXX大学的校园生活并跨入社会。在即将毕业的此刻,我想对所有帮助过我的师长、同学和亲人表达我发自内心的谢意。

感谢学校这个大家庭,在这里我们总能找到自己的归属。学校始终在向我们传达着温暖和关怀,接纳和包容我们的缺点。学校给我最大的感受便是要将自己的专业知识与实践相结合,而我也正在努力的成为学校所要求的应用型人才。

感谢各位老师,学院使我从懵懂一步步走向成熟。在这里每个老师都拥有着最大的善意和耐心,来教育我们这群大孩子。学院举办的各类活动是给予我锻炼自己的机会,正是这些机会让我成为了更好的自己,提升了自己各方面的能力。

其次我要感谢我的论文指导老师。我之所以被老师所吸引,是因为老师对于学生友爱和对于工作认真的态度。从选题到开题到论文的撰写,老师一直都在悉心的指导,在指出存在的问题后会与我们探讨解决方法。

最后,我要对即将参与本篇论文审阅和答辩的各位老师表示感谢。

点赞+收藏+关注 → 私信领取本源代码、数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值