基于Spring boot的校园报修管理系统的设计与实现计算机毕业设计源码11720

Springboot校园报修管理系统

摘  要

随着互联网大趋势的到来,社会的方方面面,各行各业都在考虑利用互联网作为媒介将自己的信息更及时有效地推广出去,而其中最好的方式就是建立网络管理系统,并对其进行信息管理。由于现在网络的发达,校园报修管理通过网络进行信息管理掀起了热潮,所以针校园报修管理用户需求开发出一套校园报修系统

整个开发过程首先对系统进行需求分析,得出主要功能。接着对系统进行总体设计和详细设计。总体设计主要包括系统功能设计、系统总体结构设计、系统数据结构设计和系统安全设计等;详细设计主要包括系统数据库访问的实现,主要功能模块的具体实现,模块实现关键代码等。最后对系统进行功能测试,并对测试结果进行分析总结,得出系统中存在的不足及需要改进的地方,为以后的系统维护提供了方便,同时也为今后开发类似系统提供了借鉴和帮助。

本系统开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与校园报修管理系统的实际需求相结合,确定了Springboot开发校园报修管理系统的使用。

关键字:校园报修 ; Springboot;数据库

Springboot Campus Repair Application Management System

   Abstracts

 With the advent of the Internet trend, all walks of life are considering using the Internet as a medium to promote their information more timely and effectively. The best way is to establish a network management system and manage its information. Due to the development of the network, the campus repair application management has set off an upsurge of information management through the network, so a campus repair application system has been developed according to the user needs of the campus repair application management.

The whole development process firstly analyzes the requirements of the system and obtains its main functions. Then the overall design and detailed design of the system. The overall design mainly includes system function design, system overall structure design, system data structure design and system security design; The detailed design mainly includes the realization of system database access, the specific realization of main functional modules, and the key code of module realization. Finally, the system is tested, and the test results are analyzed and summarized to find out the deficiencies and areas for improvement in the system, which provides convenience for future system maintenance, and also provides reference and help for future development of similar systems.

This system development uses the existing mature technology reference, takes the source code as the template, analyzes the function adjustment and the actual demand of the campus repair application management system, and determines the use of Springboot to develop the campus repair application management system.

Key words: Campus application; Springboot;database

  录

摘  要

  录

1章 绪论

1.1课题背景

1.2研究现状

1.3研究内容

2 关键技术研究

第3章  需求分析 8

3.1可行性分析 9

3.1.1 技术可行性 9

3.1.2经济可行性 9

3.1.3 操作可行性 10

3.1.4 法律可行性 10

3.2系统分析 11

3.3系统设计原则 11

3.4业务流程分析 12

3.4.1操作流程 12

3.4.2添加信息流程

3.4.3删除信息流程

4 系统总体设计

4.1系统功能模块

4.2数据库设计 21

4.2.1数据库简介 21

4.2.2数据库设计 21

第5章  系统实现 38

5.1系统用户功能模块 38

第6章 系统测试 49

6.1系统测试的目的 49

6.2测试策略 50

6.3测试特性及分析 50

6.4功能测试 50

6.5测试结果 51

结  论 52

参考文献 53

致  谢 55

1章 绪论

1.1课题背景

随着互联网不断升温,用户的需求也越来越大,关于学校报修管理服务开发的一款与便利小程序结合的软件主要宗旨是通过这一软件来满足学校管理人员报修申请、报修项目跟进、信息反馈等需求,并且使用这种报修软件可以使学校的日常故障项目报修更快捷、更高效。

现今各种系统管理也都将通过计算机进行整体智能化操作,对于校园报修管理系统所牵扯的信息管理及数据保存都是非常多的,此项目开发主要功能有:用户管理、宿舍报修中心、学生报修中心、维修安排等,这些功能的开发为学校管理者的工作带来了巨大的便利,报修的用户提供简单方便快捷的方式,并且数据准确,而且还能节省查询信息的等待时间,开发校园报修管理系统不仅工作人员带来很大的方便,同时还可以大大的提高项目维修人员的工作效率。

1.2研究现状 

根据Springboot系统广泛使用的市场和服务免费特性,开发成本低,研发速度快,服务范围广,效益最大化。Springboot系统采用开源功能,规范了平台,打破了原来手机的操作系统,受到了大家的追捧。同时,它整合了传统移动通信的优势,提高了Springboot系统的整体价值。该调查显示,Springboot系统占据了市场的主要份额,这意味着全球四分之三的智能手机都运行在Springboot系统上。传统的学校报修管理信息获取,都是通过纸质手工等方式进行翻看申请记录等信息,然后进行一条条的统计信息数据,并且要想获取某一条数据查找,需要用户自己手动的统计,最后由于故障报修信息数据量比较大,使用手动统计数据是一个很大的工作量,而且错误率很高,当然会有很多数据存储和丢失问题,对于搜索一块数据比较麻烦而且还耽误时间。对于这次设计校园报修管理系统主要提供给用户可以随时查看故障报修方面的信息,也便于提高学校维修方面工作人员的工作效率。

1.3研究内容

一开始,本文就对系统内谈到的基本知识,从整体上进行了描述,并在此基础上进行了系统分析。为了能够使本系统较好、较为完善的被设计实现出来,就必须先进行分析调查。基于之前相关的基础,在功能上,对新系统进行了细致的分析。然后通过详细的分析,进行系统设计,其次,系统在实施的可行性上,我选择了Springboot框架来进行开发设计,在数据存储上,采用 Mysql数据库来进行设计。由于java 和Mysql都已经非常成熟,因此无论在各个方面,都非常可靠安全实用。最后对系统进行测试完善并发布。


2 关键技术研究

2.1 J2EE技术

人可以掌握多门外语,而一个计算机科学家精通的大多是编程语言,它不是人类的自然语言,比如C语言、Java、Perl等等。由于不同的公司开发出的“中间件”不够规范,所以Sun公司推出J2EE,用这个标准来解决弊病。它提供了良好的机制,让每个层次允许与之相对的服务器、组件运行,使得系统的搭建稳定可用、开发高效、维护方便。

2.2 MVVM模式

MVVM模式是常用的开发模式,主要是在代码实现上将其分为M层、V层和C层。

视图(View)代表用户交互界面,一个 Web 应用就可能有很多的界面,在 MVVM 模式中,视图仅仅处理的只有数据采集、处理,还有用户的请求, 并不包括业务流程的处理,业务流程由模型(Model)来处理。

模型(Model)就是业务流程/状态的处理及业务规则的制定。模型处理业务流程的过程其它层是无法看见了的,它就像黑箱子,在接受视图请求的数据之后,然后返回最终的处理结果。MVVM 最主要的核心就是业务模型的设计,一个典型的应用例子就是目前流行的 EJB 模型,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但是它不能作为应用设计模型的框架。

控制器(Controller)可以理解为接收用户的请求,然后视图和模型匹配在一起,一起再完成用户请求。它有非常明显的作用在划分控制层上,可以很清晰地告诉你,它就是一个分发器,选择什么样的模型、视图,可以完成用户的什么样的请求。控制层不做所有的数据处理,比如说:用户点击一个连接,控制层接受到请求之后,并不处理业务信息,它只是向模型传递用户的信息,同时告诉模型做什么,然后选择符合需求的视图返回给用户。

2.3 B/S结构

B/S(Browser/Server)比前身架构更为省事的架构。它借助Web server完成数据的传递交流。只需要下载浏览器作为客户端,那么工作就达到“瘦身”效果, 不需要考虑不停装软件的问题。

2.4 Spring boot框架

Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架具有控制反转(IOC)特性,IOC旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的配置和管理的方法。Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件或类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。Spring框架具有面向切面编程(AOP)框架,SpringAOP框架基于代理模式,同时运行时可配置;AOP框架主要针对模块之间的交叉关注点进行模块化。Spring框架的AOP框架仅提供基本的AOP特性,虽无法与AspectJ框架相比,但通过与AspectJ的集成,也可以满足基本需求。Spring框架下的事务管理、远程访问等功能均可以通过使用SpringAOP技术实现。Spring的事务管理框架为Java平台带来了一种抽象机制,使本地和全局事务以及嵌套事务能够与保存点一起工作,并且几乎可以在Java平台的任何环境中工作。Spring集成多种事务模板,系统可以通过事务模板、XML或Java注解进行事务配置,并且事务框架集成了消息传递和缓存等功能。Spring的数据访问框架解决了开发人员在应用程序中使用数据库时遇到的常见困难。它不仅对Java:JDBC、iBATS/MyBATIs、Hibernate、Java数据对象(JDO)、ApacheOJB和ApacheCayne等所有流行的数据访问框架中提供支持,同时还可以与Spring的事务管理一起使用,为数据访问提供了灵活的抽象。Spring框架最初是没有打算构建一个自己的WebMVC框架,其开发人员在开发过程中认为现有的StrutsWeb框架的呈现层和请求处理层之间以及请求处理层和模型之间的分离不够,于是创建了SpringMVC。

2.5 Mysql数据库

Mysql 经过多次的更新,功能层面已经非常的丰富和完善了,从Mysql4版本到5版本进行了比较大的更新,在商业的实际使用中取得了很好的实际应用效果。最新版本的Mysql支持对信息的压缩,同时还能进行加密能更好的满足对信息安全性的需求。同时经过系统的多次更新,数据库自身的镜像功能也得到了很大的增强,运行的流畅度和易用性方面有了不小的进步,驱动的使用和创建也更加的高效快捷。最大的变动还是进行了空间信息的显示优化,能更加方便的在应用地图上进行坐标的标注和运算。强大的备份功能也保证了用户使用的过程会更加安心,同时支持的Office特性还支持用户的自行安装和使用。在信息的显示形式上也进行了不小的更新,增加了两个非常使用的显示区,一个是信息区,对表格和文字进行了分类处理,界面的显示更加清爽和具体。第二是仪表的信息控件,能在仪表信息区进行信息的显示,同时还能进行多个信息的比对,为用户的实际使用带来了很大的便捷。

针对本文中设计的校园报修管理系统在实际的实现过程中,最终选择Mysql数据库的主要原因在于在企业的应用系统应用及开发的过程中会存在大量的数据库比较频繁的操作,而且数据的安全性要求也是非常的高。综合这些因素,最终选择安全性系数比较高的Mysql来对校园报修管理系统后台数据进行存储操作。。

第3章  需求分析

任何一个项目在开发研究前,都需要对研发系统本身的需求做一个认真的分析,市场的调研是不可忽视的,从而明确目标,对整个系统的开发有一个更加准确的定位。在这个章节,需要对系统的性能分析,业务流程分析,和数据等进行分析,校园报修管理系统的整体界面简单,功能完善。

需求的可行性是分析和讨论发达的系统能达到什么样的要求。开发的系统或网站是否符合之前的要求。只有在预先评估系统的开发中,才能在系统开发和实施之前完成需求。系统在开发和运用过程中,在技术可行性、操作可行性、经济可行性和法律可行性这几点展开的详细说明,证明了这几点是可行的。在技术可行性中主要说明Springboot是目前是较为通用、成熟的技术,具有较为强大的数据库开发功能、以及具有方便快捷的数据库接口设计功能。在现有的调研情况和所掌握的技术是必要可行的。在经济可行性中,主要说明了系统从调研时期的费用和后期维护和可节约的成本。操作可行性主要说明了系统和操作的简便性具有操作简便和上手快的特点。在法律可行性上,符合要求不涉及到侵权等问题在社会中能起到提高效率的作用。

从系统需求分析、功能分析、性能分析等进行了设计和说明。系统需求分析对于校园报修管理系统的需求进行了深入分析,证明了系统在市场中的需求。

校园报修管理系统完成设计,可能受到时间以及空间上的制衡。因此,在开始设计每一个项目的时候,必须对系统进行可行性分析,只有这样才能够降低项目所带来的危害,减少人力、物力以及财力方面的损耗。该系统的可行性分析主要集中在技术可行性、经济可行性、运行可行性和社会可行性四个方面。从以上几个方面讨论了该系统的可行性。

3.1可行性分析

可行性分析目的是根据所开发系统的用户需求,明确研究方向和目标通过可行性分析确定系统的框架和功能模块

可行性分析是对任何管理系统的需求、技术和经济的分析。其中最重要的技术方面的可行性,技术可行性是分析软件开发技术的应用开发系统是可行的。其次,分析软件系统的需求,分析软件需求能否满足预先设计的功能需求。最后讨论了系统的操作可行性和经济可行性。

3.1.1 技术可行性

无论是台式机还是笔记本,计算机都以非常迅猛的速度占据着人们的工作与生活,那么能够辅助计算机帮助人们改变工作与生活状态的就是那些安装在计算机上的功能软件。本文所要设计的系统,从简单易懂的思想出发,将通过文字索引提示协助用户操作。

系统的开发环境和配置可以由我们自己安装。系统采用Java开发语言,根据技术语言修改和维护数据信息,并结合要求使系统运行更加稳定安全,从而完成实现系统的开发。网络技术的快速发展使网络传输速度越来越快,价格越来越低,安全性越来越高,其所有硬件平台都能完全满足高校故障报修管理系统开发的需要。

因此,我们从两个方面进行了可行性研究,可以看出系统的技术可行性发展没有问题。

3.1.2 经济可行性 

任何软件系统在其发展将考虑后者经济可行性的一部分,也就是说软件的开发成本和设计所需的花费和随后的操作可能带来的经济效益是匹配,除了考虑这部分的软件是否可以给用户带来经济效益。

经济可行性包括系统实现过程中所需资源的研究。系统实现过程中所需资源主要包括人力资源、自然资源等。校园报修管理系统的开发是由开发者自己开发,不需要购买其他软件或者端口之类的,而且校园报修管理系统的开发之前所做的市场调研及其他的故障报修系统,都是没有任何费用的,都是通过开发者自己的努力,所有的工作的都是自己亲力亲为,在碰到自己比较难以解决的问题,大多是通过同学和指导老师的帮助进行相关信息的解决,所以对于校园报修管理系统的开发在经济上是完全可行的,没有任何费用支出的。

使用Springboot是比较成熟的技术,所以校园报修管理系统的开发在经济上是没有问题的

3.1.3 操作可行性

操作可行性是系统不能有太复杂的操作和使用流程。校园报修管理系统基于Springboot框架,访问和操作界面简单、操作方便。用户只要连接到网络就可以访问和操作。系统在界面设计上就很有善意让人感觉心旷神怡,首先这就能给操作者一种好心情,可以让工作人员以更好的心态工作,其次也很美观,在系统的使用中要不光应用到了系统完善的功能还欣赏了系统简洁的外观。其次就是系统的功能方面了,在系统的日常使用中会一点简单电脑操作的工作人员也都可以应付自如。因此,它具有操作简单,管理方便,交互性强的特点,在操作上是非常可行的。

3.1.4 法律可行性

系统平台的设计与开发与国家政策法规之间不存在冲突。此外,平台的设计和开发采用的操作和工作模式符合用户的日常习惯,操作方便、灵活、易于管理,具有较高的实用性。开发过程中所采用的数据均来自开源代码,不存在知识产权的争议,在法律上也是行的通的。

综上所述,开发一个基于Springboot校园报修管理系统是可行的。

3.2系统分析

校园报修管理系统主要是为了提高工作人员的工作效率和更方便快捷的满足用户,更好存储所有数据信息及快速方便的检索功能,对系统的各个模块是通过许多今天的发达系统做出合理的分析来确定用户的可操作性,遵循开发的系统优化的原则,经过全面的调查和研究。

系统所要实现的功能分析,对于现在网络方便的管理,系统要实现用户可以直接在平台上进行查看所有数据信息,根据需求可以进行在线添加,删除信息,这样既能节省时间,不用再像传统的方式耽误时间,真的很难去满足用户的各种需求。所以校园报修管理系统的开发不仅仅是能满足用户的需求,还能提高管理员的工作效率,减少原有不必要的工作量。

3.3系统设计原则

1、关于校园报修管理系统的基本要求

1)功能要求:可以管理首页、用户管理、维修员管理、维修单管理、维修安排管理、维修记录管理服务评价管理、值班人员管理等功能模块。

2)性能:在不同操作系统上均能无差错实现在不同类型的用户登入相应界面后能不出差错、方便地进行预期操作。

3)安全与保密要求:用户都必须通过注册、登录才能进入系统,并且用户的权限也需要根据用户的类型进行限定。

4)环境要求:支持多种平台,可在Windows系列、Vista系统等多种操作系统下使用。

2、开发目标

校园报修管理系统的主要开发目标如下:

1)实现为维修信息管理的系统化、规范化和自动化;

2)减少维护人员的工作量以及实现用户对信息的控制和管理。

3)方便查询信息管理信息等;

4)通过网络操作,改善处理问题的效率,提高操作人员利用率;

5)考虑到用户多样性特点,要求界面简单,操作简便

3、经济效益

设计系统的目的是为了更好的进行节省人员成本及各种开销,因此需要对系统开发的成本和效益进行考虑。

3.4业务流程分析

3.4.1操作流程

系统登录流程图如图所示:

 

图3-1登录流程图

3.4.2添加信息流程

添加信息流程图如图所示:

 

图3-2添加信息流程图

3.4.3删除信息流程

删除信息流程图如图所示:

 

3-3删除信息流程图


4 系统总体设计

4.1系统功能模块

该系统的基本功能包括管理员、用户维修员个角色功能模块。

对于管理员可以使用的功能模块主要首页,用户、维修员、维修单、维修安排、维修记录、维修评价管理等功能。

对于用户所使用的功能模块的操作主要是注册登录、故障报修、查看维修记录以及进行维修评价等功能。

对于维修员所使用的功能模块的操作主要是首页查看维修安排,上传维修记录等功能

(1)用户需求如图4-1所示:

 

4-1用户用例图

(2)维修员需求如图4-2所示:

 

4-2维修员用例图

(3)管理员功能需求如图4-3所示:

 

4-3管理员用例图

4.2数据库设计

4.2.1数据库简介

数据库是信息系统的基础和核心。数据库设计的好坏直接影响到信息系统开发的成败。创建数据库表首先确定实体的属性和实体之间的关系。根据关系创建一个数据表。

4.2.2数据库设计

(1)系统的E-R图

概念模型是数据库设计的强大工具。数据库概念模型设计可以通过E-R图描述现实世界的概念模型。系统的E-R图显示了系统中实体之间的链接 

(2)实体属性图

系统结构如图4-6

 

图4-4系统结构

报修单实体图如图4-5

 

图4-5报修单实体图

维修员管理实体图如图4-6

 

图4-6维修员管理实体图

维修安排实体图如图4-7

 

图4-7维修安排实体图

(3)数据库设计表

名称

类型

长度

不是null

主键

注释

repair_personnel_id

int

11

维修人员ID

user_name

varchar

64

用户名

full_name

varchar

64

姓名

gender

varchar

64

性别

maintenance_type

varchar

64

维护类型

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

user_id

int

11

用户ID

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

名称

类型

长度

不是null

主键

注释

registered_user_id

int

11

注册用户ID

user_no

varchar

64

用户编号

full_name

varchar

64

姓名

gender

varchar

64

性别

type

varchar

64

类型

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

user_id

int

11

用户ID

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

名称

类型

长度

不是null

主键

注释

failure_repair_id

int

11

故障报修ID

user_no

int

11

用户编号

full_name

varchar

64

姓名

type

varchar

64

类型

title

varchar

64

标题

repair_time

date

0

报修时间

contact_number

varchar

64

联系电话

repair_address

varchar

64

维修地址

fault_description

text

0

故障描述

repair_status

varchar

64

报修状态

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

名称

类型

长度

不是null

主键

注释

housekeeping_personnel_id

int

11

宿管人员ID

dormitory_account

varchar

64

宿管账号

dormitory_name

varchar

64

宿管姓名

gender

varchar

64

性别

age

varchar

64

年龄

dormitory_area

varchar

64

宿舍区域

dormitory_building_no

varchar

64

宿舍楼号

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

user_id

int

11

用户ID

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

名称

类型

长度

不是null

主键

注释

maintenance_arrangements_id

int

11

维修安排ID

user_no

int

11

用户编号

full_name

varchar

64

姓名

type

varchar

64

类型

title

varchar

64

标题

repair_time

varchar

64

报修时间

contact_number

varchar

64

联系电话

repair_address

varchar

64

维修地址

fault_description

text

0

故障描述

repair_status

varchar

64

报修状态

dispatch_time

datetime

0

派工时间

employee_id

int

11

员工工号

employee_name

varchar

64

员工姓名

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

名称

类型

长度

不是null

主键

注释

maintenance_records_id

int

11

维修记录ID

user_no

int

11

用户编号

full_name

varchar

64

姓名

type

varchar

64

类型

title

varchar

64

标题

repair_time

varchar

64

报修时间

contact_number

varchar

64

联系电话

repair_address

varchar

64

维修地址

fault_description

text

0

故障描述

employee_id

int

11

员工工号

employee_name

varchar

64

员工姓名

dispatch_time

varchar

64

派工时间

maintenance_status

varchar

64

维修状态

record_time

datetime

0

记录时间

repair_details

text

0

维修详情

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

名称

类型

长度

不是null

主键

注释

management_of_personnel_on_duty_id

int

11

值班人员管理ID

title

varchar

64

标题

start_time

datetime

0

开始时间

end_time

datetime

0

结束时间

employee_id

int

11

员工工号

name_of_person_on_duty

varchar

64

值班人姓名

contact_number

varchar

64

联系电话

remarks

varchar

64

备注

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

名称

类型

长度

不是null

主键

注释

service_evaluation_id

int

11

服务评价ID

user_no

int

11

用户编号

full_name

varchar

64

姓名

type

varchar

64

类型

title

varchar

64

标题

repair_time

varchar

64

报修时间

contact_number

varchar

64

联系电话

repair_address

varchar

64

维修地址

fault_description

text

0

故障描述

employee_id

int

11

员工工号

maintenance_status

varchar

64

维修状态

date_of_publication

date

0

发表时间

evaluate

text

0

评价

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

第5章  系统实现

5.1系统用户功能模块

用户登录,通过输入用户名,密码,角色等信息进入校园报修管理系统,如图5-1所示。

图5-1登录界面

用户登录的关键代码如下。

 

/**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

        Map<String, String> map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.select(groupMap, new HashMap<>()).getResultList();

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();

            String res = String.valueOf(service.runCountSql(sql).getSingleResult());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        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, "账号或密码不正确");

        }

}

管理员登录进入校园报修管理系统可以查看首页,用户管理(用户、维修员)更多管理(保修单、维修安排、维修记录、服务评价、值班人员管理)等内容,如图5-2所示。

 

     5-2管理员功能界面

报修单管理,在页面可以对用户编号、类型、维修地址、故障描述、联系电话等信息进行管理如图5-3所示。

5-3报修单管理界面图

 

报修单管理的逻辑代码如下:

 @PostMapping("/add")

    @Transactional

    public Map<String, Object> add(HttpServletRequest request) throws IOException {

        service.insert(service.readBody(request.getReader()));

        return success(1);

    }

    @Transactional

    public Map<String, Object> addMap(Map<String,Object> map){

        service.insert(map);

        return success(1);

}

    public Map<String,Object> readBody(BufferedReader reader){

        BufferedReader br = null;

        StringBuilder sb = new StringBuilder("");

        try{

            br = reader;

            String str;

            while ((str = br.readLine()) != null){

                sb.append(str);

            }

            br.close();

            String json = sb.toString();

            return JSONObject.parseObject(json, Map.class);

        }catch (IOException e){

            e.printStackTrace();

        }finally{

            if (null != br){

                try{

                    br.close();

                }catch (IOException e){

                    e.printStackTrace();

                }

            }

        }

        return null;

}

    public void insert(Map<String,Object> body){

        StringBuffer sql = new StringBuffer("INSERT INTO ");

        sql.append("`").append(table).append("`").append(" (");

        for (Map.Entry<String,Object> entry:body.entrySet()){

            sql.append("`"+humpToLine(entry.getKey())+"`").append(",");

        }

        sql.deleteCharAt(sql.length()-1);

        sql.append(") VALUES (");

        for (Map.Entry<String,Object> entry:body.entrySet()){

            Object value = entry.getValue();

            if (value instanceof String){

                sql.append("'").append(entry.getValue()).append("'").append(",");

            }else {

                sql.append(entry.getValue()).append(",");

            }

        }

        sql.deleteCharAt(sql.length() - 1);

        sql.append(")");

        log.info("[{}] - 插入操作:{}",table,sql);

        Query query = runCountSql(sql.toString());

        query.executeUpdate();

    }

用户管理,在用户信息管理页面可以添加用户、用户名、性别信息维护管理、并可根据需要对用户进行修改,删除或查看详细内容等操作,如图5-4所示。

5-4用户管理界面图

 

用户管理界面逻辑代码如下:

@RequestMapping(value = {"/avg_group", "/avg"})

public Map<String, Object> avg(HttpServletRequest request) {

        Query count = service.avg(service.readQuery(request), service.readConfig(request));

        return success(count.getResultList());

}

维修员管理,在维修员信息管理页面可以对维修人员、账号姓名、安排顺序信息进行管理维护、并可根据需要对维修员进行修改,删除或查看详细内容等操作,如图5-5所示。

 

5-5维修员管理界面图

维修安排管理,在维修安排列表页面可以对用户编号、标题、报修时间、故障描述、安排人员信息内容进行管理维护,并可根据需要进行修改,删除或查看详细内容等操作如图5-6所示。

图5-6维修安排管理界面图

 

维修安排管理界面逻辑代码如下:

@RequestMapping("/get_list")

    public Map<String, Object> getList(HttpServletRequest request) {

        Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));

        return success(map);

服务评价管理,在服务评价管理页面可以对维修员、服务评价信息进行维护管理,并可根据需要进行修改,删除或查看详细内容等操作如图5-7所示。

5-7服务评价管理界面图

 

服务评价管理界面关键代码如下:

@RestController

@RequestMapping("auth")

public class AuthController extends BaseController<Auth, AuthService> {

    /**

     * 服务对象

     */

    @Autowired

    public AuthController(AuthService service) {

        setService(service);

    }

第6章 系统测试

系统测试主要是通过测试确定系统的可操作性,系统故障必须在规定的时间内纠正,否则会造成严重的经济损失。验证系统内的保护机制,以防止未经授权的入侵。在安全测试中,测试人员的作用是试图闯入系统并使用各种方法来试图突破防御。因此,系统安全设计的标准是找到一种使入侵系统更先进的方法。

6.1系统测试的目的

程序设计不能保证没有错误,这是一个开发过程,在错误或错误的过程中都是难以避免的。虽然这是不可避免的,但我们不能使这些错误始终存在于系统中,错误可能会造成无法估量的后果,如系统崩溃,安全信息泄露,系统无法正常启动等,为了避免这些问题,我们需要测试程序,在测试过程中发现问题并纠正它们,从而使系统更长时间稳定成熟。本章的作用是发现这些问题并对其进行修改,虽然耗时费力,但对于系统的开发长期使用而言是非常重要和必要的。

软件在设计后必须进行测试,调试过程中使用的方法是软件测试方法。在开发新软件时,系统测试是检查软件是否合格的关键步骤,以及是否符合设计目标的参考。测试主要是查看软件中数据的准确性,正确的操作与否,以及操作的结果,还有哪些方面需要改进。

校园报修管理系统的实现,对于系统中功能模块的实现及操作都必须通过测试进行来评判系统是否可以准确的实现。在校园报修管理系统正式上传使用之前必须做的一步就是系统测试,对于测试发现的错误及时修改处理,保证系统准确无误的供给用户使用。

6.2测试策略

测试系统主要针对以下三个方面进行测试:

1、基于Springboot框架码的单元测试,集成测试,系统测试和验收测试结果;

2、测试对象中列出的可测试或不可接受的特征和功能;

3、分析并记录测试要求:日期的书面文件不影响测试的设计、开发和执行。

6.3测试特性及分析

系统测试的特性如下:

(1)挑剔性:测试是为了找出系统的错误,在系统测试时我们要严格苛刻,十分挑剔。

(2)复杂性:测试是一个非常复杂的过程。

(3)不彻底性:虽然系统经过测试,但测试仍然会存在不够彻底的问题,测试不能保证系统后期运行完整无误,所以要在后期不断的检查、修改。

(4)经济性:通场这种测试称为“选择测试(Selective Testing)”。在测试时要遵守经济性的原则。

经过测试,产品的稳定性和成熟度可以大大提高,产品质量也可以得到保证。

6.4功能测试

系统测试方面,我们通常运用的是白盒测试以及黑盒测试这两种方法。白盒测试是指在了解系统内部工作流程的前提下,可以根据需求规范验证系统内部操作是否能够正常运行的测试;而黑盒测试指的是,倘若知道了这个系统的全部功能,可以进行测试检测系统中的每一个功能是否满足正常使用。

功能测试,主要是对系统的用户登录进行详细的测试,但是登录不可以是任何人都可以登录成功的,所以对登录进行详细测试。

用户登录测试:

模块名称

测试用例

预期结果

实际结果

是否通过

登录模块

用户名:001

密码:002

弹出错误提示,提示密码错误

弹出错误提示,提示密码错误

通过

登录模块

用户名:002 

密码:001

弹出错误提示,提示用户名错误

弹出错误提示,提示用户名错误

通过

登录模块

用户名:001  

密码:001  

管理员登录成功

管理员登录成功

通过

删除分类测试:

模块名称

测试用例

预期结果

实际结果

是否通过

删除分类模块

分类名:最新通知  

删除成功、页面自动跳转

删除成功、页面自动跳转

通过

修改密码测试

模块名称

测试用例

预期结果

实际结果

是否通过

修改密码模块

原密码:888

新密码:123

确认密码:123  

弹出错误提示,提示原密码错误

弹出错误提示,提示原密码错误

通过

修改密码模块

原密码:888

   新密码:123

确认密码:333  

弹出错误提示,提示确认密码不一致

弹出错误提示,提示确认密码不一致

通过

修改密码模块

原密码:888

   新密码:123

确认密码:123  

密码修改成功

密码修改成功

通过

通过对功能的测试,校园报修管理系统的基本功能都是可行的,不管是系统里面的功能,还是界面的设计都是可值得推广宣传的。

6.5测试结果

经过对一系列测试结果的有效分析,本平台开发系统符合用户的要求和需求。所有的基本功能相对齐全,操作起来简单方便,测试系统性能良好,作为大众化系统使用是比较值得推广宣传的。

结  论

此时项目已经完成,即使实施的时间不是很长,但是在这个过程中需要准备很长的一段时间去对系统设计开发所实际用到的技术进行学习和巩固。在学习的过程中,我逐渐认识到了我自身存在的一些不足。对于一些控制是必要的应用技能,能够理解,整个过程中仅仅是掌握了常用的性能和控制方法,我觉得还是相对来说挺容易的。从该系统中,系统的分析和设计的调查数据,已经经历了几个月,并且努力了几个月,该系统现在已经完成。很显然,该系统仍有很多不成熟的地方,在系统设计过程中有许多技术缺陷存在。在设计的过程中也涉及到了很多自己无法解决的问题,主要通过找专业的网站和论坛来解决这些问题,对于圆满完成我的毕业设计,他们也贡献了很大一部分力量。

系统的开发环境和配置都是可以自行安装的,系统使用Springboot框架开发工具,使用比较成熟的MySQL数据库进行对系统后台的数据交互,根据技术语言结合需求对数据库进行修改维护,可以使得系统运行更具有稳定性和安全性,从而完成实现系统的开发。

在设计系统的过程中还遇到了一个棘手的问题,那就是自己的英语水平还有待提高,很多关于网站技术开发的资料文献都是英文版的,关键词语以及技术性词汇不能很好的理解。只有在借助翻译软件的实时性翻译功能的辅助下才勉强看懂。显然英语水平的高低直接影响到系统的开发过程。

回顾毕业设计的整个过程,既付出了努力与汗水也收获了很多难以忘怀的美好经历。虽然在系统开发过程中经历了各种各样的困难,自己也在不断研究与探索,可是系统的实现仍有许多不足之处。但是经过系统编程工作的学习让我有了更多的信心,相信在未来的路上我会走的更好。


参考文献

[1]闫亮,袁梦华.“互联网+供电抢修”的自助式故障报修服务模式[J].上海电力大学学报,2021,37(S1):49-52.

[2]黄秀彬,邓志东,吕静贤,孙荣,赵阳.负载均衡技术下故障报修服务请求信息调度研究[J].信息技术,2021(11):115-120.

[3]王伟,常庆丽,吴朝霞.基于Springboot维修服务系统研究与实现[J].河南科技,2021,40(27):12-14.

[4]曹渝昆,赵田.基于AT_CNN与Attention-BiGRU融合网络的电网故障报修信息的自动分类研究[J].计算机应用与软件,2021,38(05):93-98+116.

[5]王伟勍.基Springboot框架的维修管理项目设计[J].电脑知识与技术,2021,17(11):69-70.

[6]冯震,袁俊杰.基于Django的实验室故障申报系统的设计与实现[J].信息与电脑(理论版),2021,33(07):151-154.

[7]穆兴兴,赵伟娜,牟凤平.船闸机电设备巡查及故障报修系统的研发[J].中国水运,2021(03):71-72.

[8]李广用,陈伟康.基于微信小程序的网络故障报修系统的设计[J].现代信息科技,2021,5(03):25-27+31.

[9]赵传超,林龙,刘晴,刘杨,谷欣,王力华.基于二维码技术的电脑桌面扫码报修系统的设计与应用[J].中国数字医学,2020,15(12):37-40.

[10]王大彬.地铁自动售检票系统设备故障维修系统设计与研究[J].现代信息科技,2020,4(23):109-111.

[11]连钦兴.基于微信报修申请自助服务系统的设计[J].现代计算机,2020(22):104-108.

[12] Technology; Researchers at Harbin Engineering University Target Technology (Research On Fault Repair Method of All-optical Network Based On Sdn)[J]. Journal of Technology & Science,2020:

[13]陈雪东,崔赛.基于故障报修大数据的精准服务[J].中国电力企业管理,2020(17):58-59.

[14]赵俊斌.品管圈在缩短临床医用气体设备故障报修平均处理时间中的应用[J].中国卫生产业,2020,17(04):179-183.

[15]桑一梅,汝心怡.基于ThinkPHP的维修项目管理系统的开发[J].电脑知识与技术,2019,15(25):52-53.

[16]王丙龙,张金时,林伟权.基于GSM的野外路灯精准报修系统设计[J].山西电子技术,2019(04):38-39+48.

[17]张红. 电力公司电力维修项目综合管理系统的设计与实现[D].西安电子科技大学,2019.

[18] Mathematics; Findings from Dalian University of Technology Yields New Findings on Mathematics (Real-time Fault Repair Scheme Based On Improved Genetic Algorithm)[J]. Journal of Engineering,2019:

[19]蒋峰君.降低农网故障报修率的探讨[J].中国电力企业管理,2019(11):38-39.

[20]罗文煜,孙逊,陆侃.基于微信平台的实训室故障报修系统开发与应用[J].苏州市职业大学学报,2019,30(01):21-26

[21], 多媒体设备故障报修系统. 安徽省,安徽辉墨教学仪器有限公司,2018-12-11.


致  谢

时间过得真快,眨眼之间,大学四年的学习生活即将结束,无论是在学习还是生活的这四年,老师们给了我很多帮助,让我终身受益匪浅。老师们不仅帮我树立了正确的人生观和价值观,还帮我养成了很多好习惯,树立了终身学习的意识。在此,我要对我的所有老师表示衷心的感谢。与此同时,我还要感谢陪伴我在这四年里一起成长的伙伴们。他们给了我无私的帮助和关怀,让我在人生最好的四年中获得许多真诚的友谊。

毕业设计是大学四年的最后一个答卷,我们正忙着这四年的美好结束。在毕业项目主题选择的早期阶段,我很紧张担心自己选择的主题很复杂,难以理解,觉得不能这样做会影响我的毕业。是指导老师给我们提供了毕业设计的主题和具体要求,让我们对毕业设计不要太模糊,如果对主题有任何异议,要及时跟他沟通,并且还帮我们介绍他带过的优秀学哥学姐,对我们进行指导,这样再设计上遇到的问题就可以及时得到解决,对我们完成毕业设计提供好的指导条件。

对于毕业设计项目主要是对我在大学所学的专业知识进行一次综合的考验,让我们通过所学的技术知识可以真正的运用到实际动手开发中,通过项目的开发让我意识到自己很多地方的不足,所学知识的不扎实,不能很好的将自己所学的知识运用到系统实际开发上。后来通过自己在图书馆查阅大量书籍,完成系统的设计大纲,阅读笔记和翻译,毕业设计不仅要考验我们的个人能力,还要测验我们的学习态度,做到细节的事情。对于指导老师的帮助,我的毕业设计才可以顺利的完成,我非常感谢。

最后要感谢我的同学们,是你们不断的帮助、鼓励、熬夜、保持调试,测试程序,最终完成校园报修管理系统的运行。我们在交流,谈论时间,将是我们未来的财富,我要深深地感谢你。毕业在即,在今后的工作和生活中,我会铭记师长们的教诲、同学们的帮助,继续不懈努力和追求,来报答所有支持和帮助过我的人!

免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢-

  • 8
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
药品管理系统是一个涉及药品库存、销售、进货、供应商管理等多方面的复杂系统,通过使用基于Spring Boot的技术,可以实现一个高效、稳定、易于维护的药品管理系统。 首先,药品信息的管理是系统的核心功能。可以通过使用数据库来存储药品的信息,包括药品名称、生产日期、保质期、库存数量、销售价格等信息,通过Spring Boot提供的JPA技术可以实现对药品信息的增删改查功能,实现对药品信息的管理。 其次,药品库存管理是系统的重要部分。可以通过使用Spring Boot提供的定时任务功能,定期对药品的库存进行更新,及时了解库存情况,避免库存过多或不足的情况发生。通过系统可以实现对药品的库存量的管理,仓库管理等功能。 另外,药品销售、进货功能也是系统的重要部分。可以通过Spring Boot提供的RESTful API实现对药品销售、进货功能的实现,同时可以结合Spring Security技术对销售、进货权限进行控制,确保系统的安全性。 最后,供应商管理也是药品管理系统的重要功能之一。可以通过使用Spring Boot提供的MVC功能实现对供应商信息的管理,包括供应商的名称、联系方式、地址等信息的管理。 综上所述,基于Spring Boot的药品管理系统设计实现可以实现对药品信息、库存、销售、进货、供应商等多方面的管理,提升了系统的稳定性和可维护性,为药品管理工作提供了便利和高效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值