【最新原创毕设】基于SpringBoot的高校经费报销流程+74837(免费领源码)可做计算机毕业设计JAVA、PHP、爬虫、APP、小程序、C#、C++、python、数据可视化、大数据、全套文案

目  录

摘要

1 绪论

1.1 选题背景

1.2课题研究意义

1.3论文结构与章节安排

2 高校经费报销流程系统系统分析

2.1 可行性分析

2.1.1 技术可行性分析

2.1.2 经济可行性分析

2.1.3 法律可行性分析

2.2 系统功能分析

2.2.1 功能性分析

2.2.2 非功能性分析

2.3 系统用例分析

2.4  系统流程分析

2.4.1数据增加流程

2.4.2 数据修改流程

2.4.3 数据删除流程

2.5本章小结

3 高校经费报销流程系统总体设计

3.1 系统功能模块设计

3.2 数据库设计

3.2.1 数据库概念结构设计

3.2.2 数据库逻辑结构设计

3.3本章小结

4 高校经费报销流程系统详细设计与实现

4.1 用户注册界面

4.2 用户登录界面

4.3个人资料模块

4.4用户管理模块

4.5经费报销管理管理模块

4.6通知公告管理模块

5系统测试

5.1 测试目的

5.2 系统测试用例

5.3 系统测试结果

结论

参考文献

致  谢

摘要

科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代。在现实运用中,应用软件的工作规则和开发步骤,采用SpringBoot技术建设高校经费报销流程系统。

本设计主要实现集人性化、高效率、便捷等优点于一身的高校经费报销流程系统,完成系统用户、经费报销管理、通知公告管理等功能模块。系统通过浏览器与服务器进行通信,实现数据的交互与变更。本系统通过科学的管理方式、便捷的服务提高了工作效率,减少了数据存储上的错误和遗漏。高校经费报销流程系统基于Java语言、MySQL数据库和SpringBoot框架进行高校经费报销流程系统的设计与实现研究。通过使用Java语言的强大功能和灵活性,结合SpringBoot框架的优势以及MySQL数据库的高效数据存储和管理能力,我们将开发一个功能全面、高效可靠的高校经费报销流程系统。

关键词:Java;SpringBoot;高校经费报销流程;MySQL

Abstract

The rapid development of technological progress has caused tremendous changes in people's daily lives, and the rapid development of electronic information technology has popularized and applied the application level of electronic information technology in various fields. The arrival of the information age has become an unstoppable fashion trend, and the history of human development is entering a new era. In practical application, the working rules and development steps of the application software are used to build a university expense reimbursement process system using SpringBoot technology.

This design mainly implements a university expense reimbursement process system that combines the advantages of humanization, high efficiency, and convenience, and completes functional modules such as system users, expense reimbursement management, and notification and announcement management. The system communicates with the server through a browser to achieve data exchange and change. This system improves work efficiency and reduces errors and omissions in data storage through scientific management and convenient services. The design and implementation of a university expense reimbursement process system is based on Java language, MySQL database, and SpringBoot framework. By utilizing the powerful features and flexibility of Java language, combined with the advantages of the SpringBoot framework and the efficient data storage and management capabilities of MySQL database, we will develop a comprehensive, efficient, and reliable university expense reimbursement process system.

Keywords:Java; SpringBoot; The reimbursement process for university expenses; MySQL

1 绪论

1.1 选题背景

高校经费管理是高校运行管理中至关重要的一环,对高校的发展和稳定起到关键作用。然而,由于传统的手工报销流程存在诸多问题,如信息不透明、操作繁琐、审批流程不规范等,导致了高校经费管理效率低下、成本高昂和风险增加。

传统的手工报销流程通常涉及到填写纸质报销单、收集票据、签字确认、交给财务部门进行审核和报销等步骤。这种流程繁琐耗时,容易出现错误和遗漏,不仅增加了工作量,还延长了报销周期,影响了教职工的工作效率和积极性。

同时,传统的手工报销流程中信息不透明,由于信息沟通不畅导致经费使用和报销的审批结果无法及时反馈给申请人,给教职工带来了不必要的困扰和焦虑。此外,手工报销流程还给了一些不法分子进行盗刷、偷窃等机会,增加了经费管理的风险。因此,有必要研究一种高校经费报销流程系统,以提高高校经费管理的效率和安全性。

1.2课题研究意义

研究并设计一套高校经费报销流程系统,对于改善高校经费管理的状况、提高经费使用效率、降低管理成本以及加强内部控制和风险防范具有重要意义。

首先,引入高校经费报销流程系统可以大大简化和优化报销流程,提高工作效率。系统将实现电子化的报销单填写、票据上传和审核审批等功能,实现报销流程的自动化操作和信息的即时共享,减少了重复性的工作,降低了报销的时间成本。

其次,高校经费报销流程系统可以提高经费使用的透明度和准确性。系统的每个环节都有数据记录和审批,教职工可以通过系统查询报销状态和审批结果,减少信息不畅导致的误差和疑虑。同时,系统可以对经费使用情况进行实时监控和统计分析,帮助高校管理者更好地掌握经费使用状况,优化资金配置。

最后,高校经费报销流程系统可以提升经费管理的安全性。系统通过引入数字签名、权限管理和审计跟踪等技术手段,确保经费使用和报销的合规性和安全性。系统将报销过程中的每个环节记录下来,形成完整的审计痕迹,为后续的风险防范和内部审计提供支撑。

综上所述,研究并设计一套高校经费报销流程系统,对于提高高校经费管理效率、降低成本、加强内部控制和风险防范具有重要的现实意义和应用价值。

1.3论文结构与章节安排

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

第一章为引言,此章节对所设计和实现的系统的背景和状况以及意义进行详细的论述以及说明,同时进行了论文整体框架的结构的简要介绍。

第二章为系统需求分析,章节所做的主要的工作是对系统进行了技术、经济和操作方面可行性的分析;对系统实行了总体功能的需求、用例分析。

第三章为系统的设计,主要是对系统的功能结构进行设计,并对系统数据库的概念结构以及物理结构的设计进行了分析。

第四章就是对系统的实现,根据系统功能的划分,分别的对系统所需要实现的前台客户功能和后台管理员功能进行了分析和说明。

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

第六章:总结。

2 高校经费报销流程系统系统分析

系统需求分析是系统开发的一个关键环节,它在系统的设计和实现上起到了一个承上启下的位置。系统需求分析是对所需要做的系统进行一个需求的挖掘,如果分析的准确可以精准的解决现实中碰到的问题。如果分析不到位会影响后期系统的实现。一个系统的优秀程度需求分析也是占据了非常大的比例,如果需求分析不到位,后面的系统设计要实现就是一个偏离导航的设计。

2.1 可行性分析

系统可行行分析是对系统对系统可行性进行一个探讨。在探讨系统的可行性上我们主要从技术上的可行性和经济上的可行性以及法律层面的可行性上进行分析,如果三个层面度通过,我们则认为系统是比较可行的。

2.1.1 技术可行性分析

高校经费报销流程系统在数据的存储上使用的MySQL数据库,在高校经费报销流程系统开发中使用了Java、HTML、Tomcat、SpringBoot这些开发工具的使用,能够给我们的编写工作带来许多的便利。系统使用B/S模式进行开发,使系统的可扩展性和维护性更佳,减少系统配置代码,简化编程代码,目前B/S模式是目前最受欢迎的一种模式。

2.1.2 经济可行性分析

从经济可行性上看项目在开发阶段需要一台开发PC,在生产阶段需要web服务器和数据库服务器。一台个人PC从经济上来看也不是太多问题,在后期的系统部署生产上来说,服务器的投入也不会过高,在经济层面上是一个比较可行的。

2.1.3 法律可行性分析

系统从法律层面上来看没有对第三方有其他法律层面的问题,系统数据库采用的MySQL开源社区数据库、框架采用的是开源的SpringBoot。系统资讯和相关内容也是符合法律层面的。在源码的管理上采用git开源进行管理,所以在法律可行性上是成立的。

2.2 系统功能分析

2.2.1 功能性分析

高校经费报销流程系统我划分为了普通用户模块和管理员模块这两大部分。

普通用户模块:

(1)主页:普通用户的主页是其工作的起点,通过主页了解当前的一些系统情况,以便更好地开展工作。

(2)个人信息:用户可以查看和修改自己的个人信息,如姓名、联系方式等。他们可以通过系统更新个人信息,并及时与管理人员进行联系,也可以对登录密码进行修改。

(3)经费报销管理管理:用户在此模块可以添加新的经费报销信息,等待管理员审核。对已有的经费报销信息进行修改维护。

(4)通知公告管理:用户可以查看管理员发送的通知公告信息,以及与系统相关的重要信息。

管理员管理模块:

(1)登录:管理员在后台可以输入用户名+密码进行登录,管理员的用户名和密码是在数据库中直接设定好的。

(2)系统用户:管理员负责管理系统中的普通用户和管理员,包括添加新用户、修改权限、删除用户等操作。管理员需要确保用户信息的安全性和合法性,并根据角色分配不同的权限。

(3)经费报销管理:管理员可以对系统所有用户提交的经费报销信息进行状态审核,管理员也可以添加新的经费报销信息。

(4)通知公告管理:管理员可以添加新的通知公告信息并发送给用户。

2.2.2 非功能性分析

高校经费报销流程系统的非功能性需求比如高校经费报销流程系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下2-1表格中:

2-1高校经费报销流程系统非功能需求表

安全性

主要指高校经费报销流程系统数据库的安装,数据库的使用和密码的设定必须合乎规范。

可靠性

可靠性是指高校经费报销流程系统能够按照用户提交的指示进行操作,经过测试,可靠性90%以上。

性能

性能是影响高校经费报销流程系统占据市场的必要条件,所以性能最好要佳才好。

可扩展性

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

易用性

用户只要跟着高校经费报销流程系统的页面展示内容进行操作,就可以了。

可维护性

高校经费报销流程系统开发的可维护性是非常重要的,经过测试,可维护性没有问题

2.3 系统用例分析

高校经费报销流程系统的完整UML用例图分别是图2-1和图2-2。

图2-1就是普通用户角色的用例展示。

图2-1 高校经费报销流程系统普通用户角色用例图

图2-2就是管理员角色的用例展示。

图2-2 高校经费报销流程系统管理员角色用例图

2.4  系统流程分析

业务流程是用一些特定的符合和线条来进行演示用户在使用系统时的过程,在进行系统分析的时候,业务流程可以帮助开发人员更好的理解业务,发现错误,完善系统。

2.4.1数据增加流程

用户成功登入系统后就能够实现增加数据的操作,增加数据的编号是特定的,系统生成,用户不能随意填写,除了编号以外,其他增加信息用户自己填写,填写后的信息经过系统验证,验证合法通过就显示增加数据成功了,相反的话,就没有增加成功,图2-3显示的就是在增加数据时的流程。

图2-3 数据增加流程图

2.4.2 数据修改流程

数据修改时的流程和上面介绍的数据增加时的流程差不多,如图2-4所示。

图2-4  数据修改流程图

2.4.3 数据删除流程

如果系统里面存在一些没有用的数据的话相关的管理人员还可以对这些数据进行删除,图2-5就是数据删除时的流程图。

图2-5 数据删除流程图

2.5本章小结

本章主要通过对高校经费报销流程系统的可行性分析、功能需求分析、系统用例分析、系统流程分析,确定整个高校经费报销流程系统要实现的功能。同时也为高校经费报销流程系统的代码实现和测试提供了标准。

3 高校经费报销流程系统总体设计

本章主要讨论的内容包括高校经费报销流程系统的功能模块设计、数据库系统设计。

3.1 系统功能模块设计

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

图3-1 高校经费报销流程系统功能模块图

3.2 数据库设计

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

3.2.1 数据库概念结构设计

下面是整个高校经费报销流程系统中主要的数据库表总E-R实体关系图。

图3-2 高校经费报销流程系统总E-R关系图

3.2.2 数据库逻辑结构设计

通过上一小节中高校经费报销流程系统中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。

表access_token (登陆访问时长)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

token_id

int

10

0

N

Y

临时访问牌ID

2

token

varchar

64

0

Y

N

临时访问牌

3

info

text

65535

0

Y

N

4

maxage

int

10

0

N

N

2

最大寿命:默认2小时

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

user_id

int

10

0

N

N

0

用户编号:

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

auth_id

int

10

0

N

Y

授权ID:

2

user_group

varchar

64

0

Y

N

用户组:

3

mod_name

varchar

64

0

Y

N

模块名:

4

table_name

varchar

64

0

Y

N

表名:

5

page_title

varchar

255

0

Y

N

页面标题:

6

path

varchar

255

0

Y

N

路由路径:

7

position

varchar

32

0

Y

N

位置:

8

mode

varchar

32

0

N

N

_blank

跳转方式:

9

add

tinyint

3

0

N

N

1

是否可增加:

10

del

tinyint

3

0

N

N

1

是否可删除:

11

set

tinyint

3

0

N

N

1

是否可修改:

12

get

tinyint

3

0

N

N

1

是否可查看:

13

field_add

text

65535

0

Y

N

添加字段:

14

field_set

text

65535

0

Y

N

修改字段:

15

field_get

text

65535

0

Y

N

查询字段:

16

table_nav_name

varchar

500

0

Y

N

跨表导航名称:

17

table_nav

varchar

500

0

Y

N

跨表导航:

18

option

text

65535

0

Y

N

配置:

19

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

20

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表expenses_reimbursement (经费报销)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

expenses_reimbursement_id

int

10

0

N

Y

经费报销ID

2

regular_users

int

10

0

Y

N

0

普通用户

3

user_name

varchar

64

0

Y

N

用户姓名

4

funding_number

varchar

64

0

Y

N

经费编号

5

funding_title

varchar

64

0

Y

N

经费标题

6

reimbursement_items

varchar

64

0

Y

N

报销项目

7

usage_time

datetime

19

0

Y

N

使用时间

8

funding_list

varchar

255

0

Y

N

经费清单

9

reimbursement_materials

varchar

255

0

Y

N

报销材料

10

funding_amount

int

10

0

Y

N

0

经费金额

11

purpose_of_funds

text

65535

0

Y

N

经费用途

12

information_remarks

text

65535

0

Y

N

信息备注

13

examine_state

varchar

16

0

N

N

未审核

审核状态

14

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

hits_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

表notification_announcement (通知公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notification_announcement_id

int

10

0

N

Y

通知公告ID

2

announcement_title

varchar

64

0

Y

N

公告标题

3

release_time

datetime

19

0

Y

N

发布时间

4

announcement_content

text

65535

0

Y

N

公告内容

5

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表regular_users (普通用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

regular_users_id

int

10

0

N

Y

普通用户ID

2

user_name

varchar

64

0

Y

N

用户姓名

3

user_gender

varchar

64

0

Y

N

用户性别

4

contact_phone_number

varchar

64

0

Y

N

联系电话

5

examine_state

varchar

16

0

N

N

已通过

审核状态

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

更新时间

表reimbursement_items (报销项目)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

reimbursement_items_id

int

10

0

N

Y

报销项目ID

2

reimbursement_items

varchar

64

0

Y

N

报销项目

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

upload_id

int

10

0

N

Y

上传ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

访问路径

4

file

varchar

255

0

Y

N

文件路径

5

display

varchar

255

0

Y

N

显示顺序

6

father_id

int

10

0

Y

N

0

父级ID

7

dir

varchar

255

0

Y

N

文件夹

8

type

varchar

32

0

Y

N

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

mediumint

8

0

N

Y

用户ID:[0,8388607]用户获取其他与用户相关的数据

2

state

smallint

5

0

N

N

1

账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

0

Y

N

所在用户组:[0,32767]决定用户身份和权限

4

login_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

上次登录时间:

5

phone

varchar

11

0

Y

N

手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

6

phone_state

smallint

5

0

N

N

0

手机认证:[0,1](0未认证|1审核中|2已认证)

7

username

varchar

16

0

N

N

用户名:[0,16]用户登录时所用的账户名称

8

nickname

varchar

16

0

Y

N

昵称:[0,16]

9

password

varchar

64

0

N

N

密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

10

email

varchar

64

0

Y

N

邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

11

email_state

smallint

5

0

N

N

0

邮箱认证:[0,1](0未认证|1审核中|2已认证)

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

open_id

varchar

255

0

Y

N

针对获取用户信息字段

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

vip_level

varchar

255

0

Y

N

会员等级

16

vip_discount

double

11

2

Y

N

0.00

会员折扣

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_id

mediumint

8

0

N

Y

用户组ID:[0,8388607]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]

3

name

varchar

16

0

N

N

名称:[0,16]

4

description

varchar

255

0

Y

N

描述:[0,255]描述该用户组的特点或权限范围

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

register

smallint

5

0

Y

N

0

注册位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

3.3本章小结

整个高校经费报销流程系统的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。

4 高校经费报销流程系统详细设计与实现

高校经费报销流程系统的详细设计与实现主要是根据前面的高校经费报销流程系统的需求分析和高校经费报销流程系统的总体设计来设计页面并实现业务逻辑。主要从高校经费报销流程系统界面实现、业务逻辑实现这两部分进行介绍。

4.1 用户注册界面

高校经费报销流程系统的游客和普通用户时可以进行注册登录,当用户右上角“注册”按钮的时候,当填写上自己的账号+密码+确认密码+昵称+邮箱+手机号等后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。

用户注册流程图如下所示。

图4-1 用户注册流程

用户注册界面展示如下图4-2所示。

图4-2注册界面图

注册关键代码如下所示。

/**

     * 注册

     * @param user

     * @return

     */

    @PostMapping("register")

    public Map<String, Object> signUp(@RequestBody User user) {

        // 查询用户

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

        Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));

        query.put("username",user.getUsername());

        List list = service.selectBaseList(service.select(query, new HashMap<>()));

        if (list.size()>0){

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

        }

        map.put("password",service.encryption(String.valueOf(map.get("password"))));

        service.insert(map);

        return success(1);

}   

4.2 用户登录界面

管理员、用户在登录界面输入账号+密码,完成验证,点击“登录”按钮,系统在用户数据库表中会对管理员、用户的账号进行匹配,账号+密码正确的话,就会登录到系统中各个用户的主管理界面,否则提示对应的信息,返回到登录的界面。

用户登录流程图如下所示。

图4-3登录流程图

登录界面如下图4-4所示。

图4-4用户登录界面图

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

/**

     * 登录

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

        }

}

4.3个人资料模块

当您完成/注册操作,您就能够更新您的个人资料。您需要确保您的inputname值能够和您所属的实体类型的参数完全对应。当您更新您的个人资料时,您的账号密码应当保持完整,不能出现任何错误。您需要确保您的账号密码是唯一的,才能继续使用。

密码修改流程图如下所示。

图4-5密码修改流程图

密码修改界面如下所示。

图4-6 密码修改界面

密码修改的逻辑代码如下所示。

  /**

     * 修改密码

     * @param data

     * @param request

     * @return

     */

    @PostMapping("change_password")

    public Map<String, Object> change_password(@RequestBody Map<String, String> data, HttpServletRequest request){

        // 根据Token获取UserId

        String token = request.getHeader("x-auth-token");

        Integer userId = tokenGetUserId(token);

        // 根据UserId和旧密码获取用户

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

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

        query.put("user_id" ,String.valueOf(userId));

        query.put("password" ,service.encryption(o_password));

        int count = service.selectBaseCount(service.count(query, service.readConfig(request)));

        if(count > 0){

            // 修改密码

            Map<String,Object> form = new HashMap<>();

            form.put("password",service.encryption(data.get("password")));

            service.update(query,service.readConfig(request),form);

            return success(1);

        }

        return error(10000,"密码修改失败!");

    }

4.4用户管理模块

系统用户管理:管理员负责管理系统的用户,包括管理员和普通用户的登录、权限分配等操作。他们可以添加、编辑、删除或审核用户账户,并设定相应的权限。界面如下图所示。

图4-7用户管理界面图

4.5经费报销管理管理模块

经费报销管理管理:管理员和普通用户都可以对经费报销管理信息进行管理,也可以添加新的经费报销管理信息。用户添加新的经费报销信息,由管理员进行审核回复。用户添加经费报销界面如下图所示。

图4-8 用户添加经费报销界面图

管理员审核经费报销界面如下图所示。

图4-9 管理员审核经费报销界面图

4.6通知公告管理模块

通知公告:管理员对通知公告信息进行增删改查操作。普通用户可以查看管理员发布的通知公告信息。管理员添加通知公告界面如下图所示。

图4-10通知公告添加界面图

用户通知公告管理界面如下图所示。

图4-11用户通知公告管理界面

5 系统测试

5.1 测试目的

对任何系统而言,测试都是必不可少的环节,测试可以发现系统存在的很多问题,所有的软件上线之前,都应该进行充足的测试之后才能保证上线后不会Bug频发,或者是功能不满足需求等问题的发生。下面分别从单元测试,功能测试和用例测试来对系统进行测试以保证系统的稳定性和可靠性。

5.2 系统测试用例

下表是系统登录功能测试用例,检测了用户名和密码的不同的输入情况,观察系统的响应情况。得出该功能达到了设计目标。

表5-1 系统登录功能测试用例

功能描述

用于系统登录

测试目的

检测登录时的合法性检查

测试数据以及操作

预期结果

实际结果

输入的用户名和密码带有非法字符

提示用户名或者密码错误

与预期结果一致

输入的用户名或者密码为空

提示用户名或者密码错误

与预期结果一致

输入的用户名和密码不存在

提示用户名或者密码错误

与预期结果一致

输入正确的用户名和密码

登录成功

与预期结果一致

下表是注册功能测试用例,检测了各种数据的输入情况,观察系统的响应情况。得出该功能达到了设计目标。

表5-2 注册功能测试用例

功能描述

用于用户注册

测试目的

检测用户注册时的合法性检查

测试数据以及操作

预期结果

实际结果

输入的手机号不合法

提示请输入正确的手机号码

与预期结果一致

输入的字段为空

提示必填项不能为空

与预期结果一致

输入的密码少于6位

提示密码必须为6-12位

与预期结果一致

输入的密码大于12位

提示密码必须为6-12位

与预期结果一致

下表是经费报销管理功能的测试用例,检测了经费报销管理中对经费报销信息的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。

前置条件;用户登录系统。

表5-3 经费报销管理的测试用例

功能描述

用于经费报销管理

测试目的

检测经费报销管理时的各种操作的运行情况

测试数据以及操作

预期结果

实际结果

点击添加经费报销,必填项合法输入,点击保存

提示添加成功

与预期结果一致

点击添加经费报销,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击修改经费报销,必填项修改为空,点击保存

提示必填项不能为空

与预期结果一致

点击修改经费报销,必填项输入不合法,点击保存

提示必填项不能为空

与预期结果一致

点击删除经费报销,选择经费报销删除

提示删除成功

与预期结果一致

点击搜索经费报销,输入存在的经费报销名

查找出经费报销

与预期结果一致

点击搜索经费报销,输入不存在的经费报销名

不显示经费报销

与预期结果一致

5.3 系统测试结果

通过对高校经费报销流程系统的调试,能够检测高校经费报销流程系统的稳定性,为高校经费报销流程系统正式运行、稳定运行提供了可预测性的维护备案。能够帮助使用者熟悉整个高校经费报销流程系统,并对高校经费报销流程系统可能出现的错误有所了解。本章节提供了部分调试用例及调试日志,可以帮助使用者解决简单的错误问题,也加深了开发者对于此框架下的高校经费报销流程系统编写的了解度,为后期开发者顺利完成高校经费报销流程系统、发布高校经费报销流程系统提供了非常大的帮助。

结论

该高校经费报销流程系统使用的开发环境是功能强大的SpringBoot技术,结合Java编程语言,在大学的学科中重点学习了这几种技术,在对这些技术学习、熟悉之后,结合对系统进行的需求分析顺利的完成了本次项目的设计。在最初接到任务书的那一刻,比较迷茫,没有任何的思路,在经过了老师的指导以后,调查了一些跟美食推荐系统相关的资料后,慢慢的有了头绪,开始入手开题,明确了系统的内容,对系统进行可行性的分析,确定系统可行以及功能内容以后,就按照开题初步设计的内容进行完善,慢慢补充、学习,最终结束了程序的开发,也完成了论文的写作。这一过程,虽然艰辛,但也学习到了很多,对项目开发流程也有了一个新的认识,动手能力也得到了提高,这正是书本上所学习不到的。

经过开发本项目,让我非常有成就感,与此同时我对程序的开发更加感兴趣了,信息技术真的很强大,也很深奥,在以后工作中,我将会寻找与其相关工作,继续深入学习,开发出更优秀的项目。

参考文献

[1]黄运梅,韦一滨.高校科研经费管理问题及策略探究——以Y高校为例[J].中国农业会计,2024,34(03):40-42.DOI:10.13575/j.cnki.319.2024.03.023.

[2]吴思竺.高校经费报销存在的问题及对策研究[J].经济师,2024,(02):69-70.

[3]刘晶,邝鹏蝶,左秀然.基于信息化平台的医院科研经费报销管理[J].医学信息,2023,36(21):17-20.

[4]孟亚茹.高校科研经费报销的现实困境、内在诱因与优化路径[J].行政事业资产与财务,2023,(09):86-88.

[5]王志亮,纪松波.基于SpringBoot的Web前端与数据库的接口设计[J].工业控制计算机,2023,36(03):51-53.

[6]International Terrorism Victim Expense Reimbursement Program[J].Department of Justice (DOJ) Documents / FIND,2023,88(013):

[7]贾岩.OCR技术在高校财务报销工作中的应用[J].中国管理信息化,2023,26(02):88-90.

[8]Yang Y .Design and Implementation of Student Information Management System Based on Springboot[J].Advances in Computer, Signals and Systems,2022,6(6):

[9]丁淑芹,赵雪婷.高校科研经费报销存在的问题及对策研究[J].中国管理信息化,2022,25(21):52-56.

[10]阳博,温志萍.基于SpringBoot的在线协同办公系统设计与实现[J].电脑知识与技术,2022,18(22):49-51.DOI:10.14004/j.cnki.ckt.2022.1515.

[11]付华.企业财务报销系统的优化对策研究——以LY企业开发应用网上报账系统为例[J].企业改革与管理,2022,(06):50-52.DOI:10.13768/j.cnki.cn11-3793/f.2022.0290.

[12]李宝智,赵旖旎,徐凯.科研经费报销信息化管理现状与无纸化报销展望——基于典型科研单位的调研问卷分析[J].财务与会计,2022,(03):29-31.

[13]Agency Information Collection Activities; Proposed eCollection eComments Requested; Extension of a Currently Approved Collection: International Terrorism Victim Expense Reimbursement Program Application[J].Department of Justice (DOJ) Documents / FIND,2021,86(195):

[14]喻佳,吴丹新.基于SpringBoot的Web快速开发框架[J].电脑编程技巧与维护,2021,(09):31-33.DOI:10.16184/j.cnki.comprg.2021.09.013.

[15]张文娟.科研单位经费报销新模式——网上报销[J].中国产经,2021,(17):142-143.

[16]谭翀,刘斌.“放管服”改革背景下高校科研经费一体化财务管控研究[J].北华航天工业学院学报,2021,31(04):16-18.

[17]陈妍如.高校经费报销管理问题与对策探究[J].财会学习,2021,(23):13-15.

[18]康娟萍.财务共享模式下高校科研经费管理研究[J].产业创新研究,2021,(07):58-60.

[19]杨涛,辛清泉.高校智能财务系统建设的实践与思考[J].财会月刊,2021,(08):42-47.DOI:10.19641/j.cnki.42-1290/f.2021.08.005.

[20]王阿乐.利用信息化手段解决高校科研经费“报销繁”问题的探讨[J].财会通讯,2021,(01):158-162.DOI:10.16144/j.cnki.issn1002-8072.2021.01.031.

致  谢

这篇文章的完成经历了多个日日夜夜的努力,终于在今天得以完成。这篇文章的创作过程实为不易,但在老师和同学的辛勤帮助下顺利渡过。让我在设计过程中举步维艰时,非常感谢我的导师不耐其烦的帮助我解决问题,给予了我许多指导意见。也感谢所有为我授业解惑的老师!

另外,本文的完成也参考借鉴了许多国内外在SpringBoot技术上的著作,如果没有著作原作的辛勤付出和科研成果,我也很难完成本论文。感谢在本论文中关联到的学者们!也感谢Google等公司,感谢他们强大的搜索引擎,让我的资料查阅省事简单。

感谢之余也还有几句话要说,虽大学学习四年,怎奈何本人才疏学浅,本文的完成已为尽力,但文中不免有些不当和错误之处,诚挚真切的请求各位老师对本文的批评改正,感谢百忙之中费心审阅我论文的老师。

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

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

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

  • 15
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值