springboot基于小程序的企业考勤系统
摘 要
伴随着我国社会的发展,人民生活质量日益提高。于是对各种需求进行规范而严格是十分有必要的,所以许许多多的微信小程序应运而生。此时单靠人力应对这些事务就显得有些力不从心了。所以本论文将设计一套基于小程序的企业考勤系统,帮助企业进行部门信息、上班打卡、员工考勤、员工工资、加班申请、请假申请、调动申请等繁琐又重复的工作,提高工作效率的同时,也减轻了管理者的压力。
本论文的主要内容包括:
第一,研究分析当下主流的Uni-weixin技术,结合企业日常管理方式,进行基于小程序的企业考勤系统的数据库设计,设计基于小程序的企业考勤系统功能,并对每个模块进行说明。
第二,陈列说明该微信小程序实现所采用的架构、系统搭建采用的服务器、系统开发环境和使用的工具,以及系统后台采用的数据库。
最后,对微信小程序进行全面测试,主要包括功能测试、查询性能测试、安全性能测试。分析微信小程序存在的不足以及将来改进的方向。
1 绪 论
1.1研究背景
信息技术的集成化和信息网络化的不断发展,人类开始步入信息化时代,信息技术作为一种资源成为企业战略不可分割的一部分,在当今社会,人们的生活节奏逐渐加快,人们对经济的要求逐渐降低,越来越多的人开始追求简单、快捷的方式。以现在计算机的技术的应用,使计算机成为人们使用现代发达技术的桥梁[1]。计算机可以有效的解决信息,十分方便的获取信息,从而提高工作的效率。
1.2 研究意义
现如今科技的卓越发展,时代环境的大变革。人们生活变得越来越多元化,这种多元化很大程度上由互联网科技发展引起,日新月异的互联网让我们实现了众多的不可能。利用网络进行信息管理改革已经成为了人们追捧的一种趋势[2]。“基于小程序的企业考勤系统”是运用java语言,springboot框架,以Mysql数据库为基础而来发出来的。为保证我国经济的持续性发展,必须要让互联网信息时代在我国日益壮大,蓬勃发展,一个好的基于小程序的企业考勤系统,方便用户通过注册登录微信端查看部门信息、公司公告,修改个人信息等,管理员对信息进行维护与管理,还能帮助工作者从琐碎冗杂的日常管理事务中解放出来,更专心投入在其它事务上,因而能更好的履行它自身的社会责任,这个基于小程序的企业考勤系统也就间接地为美好社会的创建出了一份力[3]。所以基于小程序的企业考勤系统的设计和实现是必要的也是很有意义的。
1.3研究现状
如今,因为无线网相关技术的快速,尤其是在网上进行资源的上传下载、搜索查询等技术,以及信息处理和语言开发技术的进步,同时编程语言、建模技术的不断发展,促使诸多的平台系统架构由C/S(客户端/服务器)更多的转变为采用B/S(浏览器/服务器)的架构,从而让程序平台网络端的系统架构迎来了一个新的阶段。
并且,在对国外基于小程序的企业考勤系统发展现状的了解中,发现国外基于小程序的企业考勤系统一大多是一种门户的建设,除日常的办公业务外,关系紧密的许多业务也都被设计为功能模块加入系统中[4]。在这一点上,我国完全没有落后,通过采用集成了这些功能的系统,帮助企业各项业务的工作效率都得到了极大提高,从而持续地为企业带来更高的管理效率。
1.4本文组织结构
本论文将详细阐述基于小程序的企业考勤系统的开发背景、应用可行性以及系统实现所具有的现实意义,在对基于小程序的企业考勤系统进行详细的需求分析后,会根据需求分析的结果再结合实际情况为系统的实现选取合适的技术和架构,之后在上述分析论述的基础上进行系统设计,最后完成系统实现和测试。
本文共分为七章,分别是:
第一章绪论,在这一章中对基于小程序的企业考勤系统的研究背景和意义进行介绍,同时浅述了信息管理系统的发展,明确了基于小程序的企业考勤系统的实现的目的和方向[5]。
第二章技术介绍,在本章中列举介绍了系统实现采用到的所有技术,包括一些主流的框架技术。
第三章需求分析,这一章对基于小程序的企业考勤系统的需求进行了全面详细的分析,从系统实现的应用可行性、技术可行性,再到系统的功能、性能、安全性需求都做了说明分析,最后描述了系统的业务流程对需求分析进行补充。
第四章系统设计,这一章中包含了系统实现选取的架构模式,以及组成系统的各个功能模块。
第五章系统实现,本章是在经过前面几章的分析后,将基于小程序的企业考勤系统开发实现,章节内容包括系统开发环境、运行环境和具体的功能模块实现。
第六章系统测试,模拟系统的实际应用环境,对编写完成的程序进行测试。在本章中列举了测试用例和测试结果。
第七章总结,对基于小程序的企业考勤系统的整个设计和实现过程进行总结[6]。
2 技术介绍
在这一章中,主要是罗列出实现小程序前端使用微信开发者工具设计,对应小程序的基本组件和页面,通过微信官方的控件属性或者自设属性填充wxss,然后根据业务流程确定各页面逻辑js。数据库使用mysql,小程序框架使用Uni-weixin,管理员界面联系之前所学的web开发相关知识,使用eclipse设计出管理员登录和管理界面,服务器用tomcat7.0搭建。使用springboot框架开发。
2.1微信开发者工具
目前腾讯发布的微信官方网站上所使用的软件开发工具主要是微信开发工具,并且有官方网站为它提供了一个前端开发平台。由于软件不能在浏览器上运行,因此在网络上是不允许使用 Document,Window等方法的。而在以往对HTML5进行加载的过程中,会受到网络环境的限制,需要对HTML、CSS以及JS进行一步又一步的加载,然后返回信息,从而渲染页面,将其在浏览器当中进行呈现。这样的方式用户需要等待许久,而且会降低用户的体验感。微信Web开发者工具与H5开发工具的预览模式存在着一定的差异,其属于一项自己的工具,因此可有效地实现同步本地文件开发和调试等流程。此外小程序开发了相关的标签语言和样式语言,并没有使用相关的HTML5+CSS3。在微信小程序软件的开发过程中,还进一步提供了原生APP的组件。而在HTML5+CSS3当中,这是需要通过模拟才能够有效实现的相关功能,但在小程序当中可以通过组件来得到有效的实现。
2.2小程序目录结构以及框架介绍
(1)目录结构
一个小程序主体部分由三个文件组成,必须放在项目的根目录。小程序主体组成如表2-1。
表2-1 小程序主体组成
文件 必需 作用
小程序.js 是 小程序逻辑
小程序.json 是 小程序公共配置
小程序.wxss 否 小程序公共样式表
一个小程序页面由四个文件组成。小程序页面组成如表2-2。
表2-2 小程序页面组成
文件类型 必需 作用
js 是 页面逻辑
wxml 是 页面结构
json 否 页面配置
wxss 否 页面样式表
(2)框架
整个小程序架构由两个部分组成:逻辑层和视图层。小程序还提供了 WXML和 WXSS的视图层描述语言,并在此基础上构建了一个基于 JavaScript的逻辑层,并在视图层和逻辑层之间设置了数据传递和事件处理,使得开发者可以集中精力在数据和逻辑上。微信小程序的结构,如图2-3所示。
① 逻辑层 App Service
我们所说的逻辑层Service,其实就是对业务流程的控制,主要由JavaScript语言来编写,具体体现在小程序中有四个功能:一、对数据进行初始化,还可以进行云端存储和云端调用。二、增加即将需要处理的逻辑事务。三、把需要进行的逻辑交易进行操作。四、变换视角,显示结果。
② 视图层 View
框架的视图层由 WXML 与 WXSS 编写,由组件来进行展示。将逻辑层的数据反映成视图,同时将视图层的事件发送给逻辑层。
图2-3 微信小程序的结构
2.3 SpringBoot框架
该框架拥有自己独特的配置方式,网站开发人员不需要再进行大量重复的样板 式的配置工作,开箱即用,不会生成额外代码量,不需要进行XML文件的配置。
2.4 Java语言
Java 最大的两个特点就是功能强大和简单易用。Java可以让程序员进行复杂的编程而不必为储存管理对象等问题所烦恼,把精力和时间更多的放在研发与设计上,极大地提高了开发者的工作效率和工作热情。
2.5 Mysql的特点
Mysql 可以处理拥有上千万条记录的大型数据,支持常见的SQL语句规范,可移植性高,安装简单小巧,良好的运行效率,有丰富信息的网络支持,相对其他大型数据库而言,调试、管理,优化简单;使用客户端工具操作效率高,安全性高,使用WEB方式简单方便,不受限制。
2.6本章小结
在本章中,详细介绍了本论文中实现的基于小程序的企业考勤系统所采用的技术,包括后台开发中所使用的springboot框架,对上述技术的研究和应用,可以为程序后续的顺利开发提供帮助,在简化程序开发的同时提高开发效率和质量[7]。
3需求分析
在这一章中将对本论文要实现的基于小程序的企业考勤系统进行详尽的可行性分析、需求分析等,本章内容主要涵盖了对系统预期应用环境的分析,对系统功能和安全性需求的分析,最后还有对系统的功能需求的分析[8]。这一章的内容将为之后的系统设计和实现提供可靠依据,是系统完整可靠实现的重要保障。
3.1可行性分析
3.1.1经济可行性
系统采用的是开发环境Eclipse进行设计以及编写,并且根据所学的java语言来实现相应的功能的开发,综合就是一个比较基础的系统开发设计,所以所用到的有开源的开发环境所构成。而且可以利用现有的设备,不用进行另外的硬件设备购买[9]。
用户通过使用基于小程序的企业考勤系统,很大程度减小了人员成本,极大提高了管理的效率。目前的由人员管理的方式存在很多不足,首先是人工成本大,并且工作效率比较低,然后是存在着很多现金流失的问题[10]。
经济可行性是主要计算项目的开发成本,还有项目成功后可能带来的有效收益。很多的项目只有开发成本能控制在企业有可能接受的范围内的情况下,这样的项目才会被批准开发。然而本次系统的开发在上述所有的问题的情况下,是可以完成相关的系统设计。
3.1.2技术可行性
技术可行性是分析系统都需要用到哪些技术知识,语法是否规范标准,代码量多大,是否具有可移植性,在 MVC在这种设计模式下能够真正的实现数据层和表示层的分离,以及微信端页面是否可以做到美观实用,是否吸引眼球。网站是否足够稳定,服务端管理页面是否足够方便管理,数据库的构建是否可以符合系统要求,是否需要搭建集群等等[11]。
3.1.3运营可行性
可操作性是指将系统开发所涉及到的所有功能全都实现,代码收尾工作完成后对用户消费水平,系统的业务能力是否与用户消费水平所对等,是否可以满足大部分消费者的需求,页面是否美观,能否让用户满意,代码显示是否为轻量级,操作和功能是否简单便捷,是否同时适用于小孩,成人和老人。系统能否同时应用于windows、linux等操作系统,这取决于系统的可移植性。JAVA 编程语言的适应性非常强,基本上能够较好的适应目前市场环境中所流行的各个平台。也就是说Java的可移植性很强,那么系统的价值越高,可行性也就越强[12]。
3.1.4法律可行性
该基于小程序的企业考勤系统是面向大众开源化和不收取任何费用的。它的主要目的是帮助人们解决高重复手工问题。完全符合法律可行性要求,系统内部权限划分不会导致内部用户泄露系统机密。对于用户信息,系统有保护措施,用户密码在数据库中加密,并有严格的自我控制[13]。
3.2系统需求分析
3.2.1 性能需求
基于小程序的企业考勤系统设计的目的在于帮助企业的管理者能够更加高效轻松地进行日常的管理工作,所以作为一个工具,该系统应该被设计得易于上手使用,整个系统界面需要简洁明了、清晰易懂,而且一定要为员工提供必要的提示信息,比如在登录时用户密码或者用户名输入错误时要给予提示。总之一定要从使用者的角度出发,去设计用户操作界面[14]。
3.2.2 安全性需求
首先要保证服务器不受攻击,数据库不能曝露在互联中。对使用系统的不同用户赋予相应的权限,用户只能进行自己权限允许范围内的操作。数据库中进行多用户管理,对用户的敏感信息如身份证信息,只有最高权限的数据库管理员用户可查询,其他用户无权限查看。
3.2.3功能需求
本基于小程序的企业考勤系统是为了提高用户查阅信息的效率和管理人员管理信息的工作效率,可以快速存储大量数据,还有信息检索功能,这大大的满足了员工和管理员这二者的需求。操作简单易懂,合理分析各个模块的功能,尽可能优化界面,让员工和管理员能使用环境更好的系统。
对比要实现的功能来分析出用户的需求,可以让用户在线对其进行查看部门信息、公司公告等信息,这不仅满足了用户的需求,还大大的节省了时间。因此,管理员对信息进行添加、修改、删除、查看,可以提高管理员的工作效率。
(1)管理员用例图如图3-1所示;
图3-1 管理员用例图
(2) 员工用例图如图3-2所示:
图3-2 用户用例图
图3-2 员工用例图
3.3本章小结
在本章中对本论文要实现的基于小程序的企业考勤系统要实现的需求进行了详尽的说明,包括系统实现的可行性分析,整个系统在功能、性能和安全方面需求的分析,最后对整个系统不同身份用户的业务流程进行了有序的阐述。通过对以上内容的分析和说明,使得系统要实现的具体功能更加清晰,这给后面系统的设计和实现奠定了良好的基础,有助于整个程序开发的顺利进行。
4系统设计
通过前三章的分析说明,本论文中基于小程序的企业考勤系统已经具有了良好的实现基础,目前的第四章将对系统的具体实现进行说明介绍。
4.1系统结构设计
随着互联网的兴起以及国内外许多B/S架构的优秀系统被广泛使用而变得流行,B/S架构成为了系统开发的主流。本论文中的基于小程序的企业考勤系统也同样采用了B/S架构标准的三层架构,即将整个系统划分为表现层、业务层和持久层这三层,并且在表现层采用MVC设计模型。
以上这种对程序进行分层的方式,可以使开发者专注于结构中的某一层,每一层要进行的工作十分明确,降低了耦合性,这种标准化的开发方式,有利于程序的复用,也极大地降低了之后对系统功能扩充和维护的成本。
这些功能可以充分满足基于小程序的企业考勤系统的需求。此系统功能较为全面如下图系统功能结构如图4-1所示。
图4-1功能结构图
4.2系统功能模块设计
基于小程序的企业考勤系统的使用者主要有二类用户,一类是管理员,他拥有整个系统的最高权限,然后是员工,他具有管理员给予级别的权限,都只能对自己的个人信息进行操作。系统根据这二类用户,划分出了二大功能模块。
4.3 数据库设计
4.3.1 概念模型设计
概念模型是对现实中的问题出现的事物的进行描述,ER图是由实体线以及关联构成的图,E-R图可以明确地叙述系统中涵盖的实体线相互关系。
加班申请E-R图如图4-5所示:
图4-5加班申请E-R图
基于小程序的企业考勤系统总体E-R图如图4-6所示:
图4-6基于小程序的企业考勤系统总体E-R图
4.4本章小结
本章主要是对基于小程序的企业考勤系统进行设计,详细的说明了该系统实现所采用的架构、系统中所有的功能模块,并以表格的形式展现了系统持久层中的所有实体和实体的所有属性。明确的功能说明和详尽的数据陈列,方便将系统业务和数据联系起来,为后面的程序开发提供方便。
5 系统实现
在上一章中,本论文中的基于小程序的企业考勤系统进行了全面的系统设计。接下来第五章对本基于小程序的企业考勤系统的实现过程进行说明,包括对该基于小程序的企业考勤系统所需的开发环境、运行环境的说明以及对上一章中提到的各种内容的实现。
5.1系统开发环境以及运行环境
5.1.1 系统开发环境
表5-1 开发环境
开发使用的操作系统 Windows10
开发使用的编程语言 JAVA
开发框架选择 springboot
选取的数据库 MySQL
开发采用的Eclipse Eclipse
5.2基于小程序的企业考勤系统的主要功能模块实现
5.2.1员工微信端功能的实现
注册界面,第一次使用本小程序的使用者,首先是要进行注册,点击“注册”,然后就会进入到注册的页面里面,将员工信息录入注册表,确认信息正确后,页面才会跳转到登录界面,员工登录成功后可使用本小程序所提供的所有功能,如图5-1所示。
图5-1员工注册界面
登录界面,首先双击打开微信小程序端系统,连上网络之后会显示出本系统的登录界面,这是进入小程序的第初始页面“登录”,能成功进入到该登录界面则代表小程序的开启是成功的,接下来就可以操作本系统所带有的其他所有的功能,如图5-2所示。
图5-2员工登录界面
小程序首页是员工注册登录后进入的第一个界面,员工可通过小程序端首页进入对应的页面或者通过小程序最下面的那一行导航栏中的“首页、部门信息、公司公告、我的”,也可以点击“我的”进入我的页面,在我的页面可以对上班打卡、员工考勤、员工工资、加班申请、请假申请、调动申请等进行详细操作,如图5-3所示。
图5-3小程序首页界面图
员工点击部门信息,在部门信息页面的搜索栏输入部门名称,进行搜索,还可以查看部门名称、负责人、联系方式、封面、部门人数、点击次数等信息,如图5-4所示。
图5-4 部门信息界面图
员工点击公司公告,在公司公告页面的搜索栏输入标题,进行搜索,然后查看标题、发布时间、封面、点击次数等信息,如图5-5所示。
图5-5公司公告界面图
在我的功能界面,员工点击“我的”进入我的页面,在我的页面可以对上班打卡、员工考勤、员工工资、加班申请、请假申请、调动申请等进行详细操作,如图5-6所示。
图5-6我的功能界面图
5.2.2管理员服务端功能的实现
管理员进行登录,进入系统前在登录页面根据要求填写用户名和密码等信息,点击登录操作,如图5-7所示。
图5-7管理员登录界面图
管理员登录系统后,可以对系统首页、员工、部门信息、上班打卡、员工考勤、员工工资、加班申请、请假申请、调动申请、公司公告、轮播图管理、个人资料等进行相应的操作管理,如图5-8所示。
图5-8管理员功能界图面
员工信息功能在视图层(view层)进行交互,比如点击“新增”按钮或填写员工信息表单。这些员工信息动作被视图层捕获并作为请求发送给相应的控制器层(control1er层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如搜索、新增、更新或删除员工信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便员工信息功能可以看到最新的信息或相应的操作反馈。在员工信息页面的输入栏中输入工号、姓名、性别、部门进行搜索,可以查看到员工信息详细信息,并根据需要进行修改或者删除等操作;如图5-9所示。
图5-9员工理界面图
部门信息功能在视图层(view层)进行交互,比如点击“新增”按钮或填写部门信息表单。这些部门信息动作被视图层捕获并作为请求发送给相应的控制器层(control1er层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如搜索、新增、更新或删除部门信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便部门信息功能可以看到最新的信息或相应的操作反馈。在部门信息页面的输入栏中输入部门名称、负责人进行搜索,可以查看到部门信息详细信息,并根据需要进行修改或者删除等操作;如图5-10所示。
图5-10部门信息界面图
管理员点击上班打卡,在上班打卡页面输入工号、姓名、部门、头像、类型、打卡时间、打卡地点、备注等信息,然后进行搜索或删除上班打卡等操作,如图5-11所示。
图5-11上班打卡界面图
管理员点击员工考勤,在员工考勤页面对工号、姓名、部门、头像、考勤日期、考勤状况、备注等信息,然后进行搜索、新增或删除员工考勤等操作,如图5-12所示。
图5-12员工考勤界面图
管理员点击员工工资,在员工工资页面对月份、工号、姓名、工资条、基本工资、加班工资、绩效奖金、其他补助、扣款金额、实发工资、登记日期等信息,然后进行搜索、新增或删除员工工资等操作,如图5-13所示。
图5-13员工工资界面图
管理员点击加班申请,在加班申请页面对工号、姓名、部门、头像、开始时间、结束时间、申请时间、审核回复、审核状态等信息,然后进行搜索或删除加班申请等操作,如图5-14所示。
图5-14加班申请界面图
管理员点击请假申请,在请假申请页面对工号、姓名、部门、头像、请假类型、请假时间、请假天数、审核回复、审核状态等信息,然后进行搜索或删除请假申请等操作,如图5-15所示。
图5-15请假申请界面图
管理员点击调动申请,在调动申请页面对工号、姓名、头像、原部门、申请部门、申请日期、审核回复、审核状态等信息,然后进行搜索或删除调动申请等操作,如图5-16所示。
图5-16调动申请界面图
5.2.3本章小结
在本章中对系统的开发和应用环境进行说明,这些内容为下一章测试时的环境搭建提供依据。本章还通过文字说明和截图的方式对系统应用的界面做了简要介绍。
6系统测试
系统测试是针对整个产品系统进行的测试,通过测试验证整个系统是否正确满足了前面需求分析篇章中的所有需求,测试系统的性能和功能是否与预想的一致,进而提高系统的稳定性和可靠性[15]。同时,通过合理的测试可以发现系统中存在的问题,以防止系统在正式投入使用后出现故障,影响系统使用者工作的顺利进行。系统测试的的主要方法有白盒测试和黑盒测试,本章节将采用黑盒测试法,从系统的功能和性能两方面入手进行测试。
6.1 系统测试目的
在一个可靠的软件系统开发过程中,系统测试是其中重要的一环,有时在一套大型的软件系统中一个小故障就可能带来严重后果。虽然不存在完全没有问题的软件,但是可以通过全面系统的测试尽可能的发现漏洞,并在系统投入使用前修复漏洞,尽可能减小在实际使用中系统发生故障的概率[16]。
6.4本章小结
本章旨在进一步的完善系统,为此进行了系统测试,通过测试验证了系统运行的正确性和可靠性,根据测试结果也进一步完善了基于小程序的企业考勤系统的功能。
结 论
本文对基于小程序的企业考勤系统的实现进行了分析设计,并给予分析设计的内容实现了基于小程序的企业考勤系统。在论文开端,通过对现实背景的分析论述,证明了基于小程序的企业考勤系统的应用可行性和现实意义。之后我们对系统实现所采用的技术进行研究说明,然后结合企业日常管理工作的实际情况,提出了系统实现要满足的需求,并详细叙述了这些需求的具体内容以及将要应用系统的不同使用者的业务流程,这些是基于小程序的企业考勤系统能够正确实现功能的基本前提和依据,后续的设计与实现都将围绕需求中的内容展开。接着开始进行系统设计,首先进行系统架构设计,采用了当下主流的B/S结构,并在表现层使用了MVC设计模式,将整个系统分层,方便了系统的开发,降低了系统功能扩充的维护成本。然后,对数据库进行设计,将所有数据表列出。最后,我们将基于小程序的企业考勤系统实现,并进行测试。
在整个系统的设计与实现过程中,除了应用在学校中学到的知识外还学习了新的技术,使我在整合已有知识的同时,拓宽了自己的知识面,增加了自己的技能点。这个过程必然不是一帆风顺的,其中有许多同学和老师的帮助,所以这次毕业设计是十分愉快的一次经历。