作者简介:多年一线开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。
- 代码可以私聊博主获取。
- 赠送计算机毕业设计600个选题excel文件,帮助大学选题。
- 赠送开题报告模板,帮助书写开题报告。
作者完整代码目录供你选择:
- 《Springboot网站项目》400套
- 《ssm网站项目》800套
- 《小程序项目》300套
- 《App项目》500套
- 《python网站项目》600套
⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡
摘 要
21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确、快速、完善,并能提高工作管理效率,促进其发展。
论文主要是对疫情居家办公OA系统 进行了介绍,包括研究的现状,还有涉及的开发背景,然后还对系统的设计目标进行了论述,还有系统的需求,以及整个的设计方案,对系统的设计以及实现,也都论述的比较细致,最后对疫情居家办公OA系统 进行了一些具体测试。
本文以java为开发技术,实现了一个疫情居家办公OA系统 。疫情居家办公OA系统 的主要使用者分为管理员、员工,管理员:个人中心、员工信息管理、留言板管理、系统管理、签到平台管理、签到信息管理、请假平台管理、办公设备管理、设备申请信息管理、请假信息管理、留言管理,员工:个人中心、签到信息管理、设备申请信息管理、请假信息管理、留言板管理等功能。通过这些功能模块的设计,基本上实现了整个疫情居家办公OA系统的过程。
具体在系统设计上,采用了B/S的结构,同时,也使用java技术在动态页面上进行了设计,后台上采用Mysql数据库,是一个非常优秀的疫情居家办公OA系统 。
关键词 :疫情居家办公OA系统 ;java技术;Mysql数据库;B/S结构
网络的快速发展从根本上更改了世界各组织的管理方式,自二十世纪九十年代开始,我国的政府、企事业等单位就设想可以通过互联网系统来进行管理信息。由于以前存在各方面的原因,比如网络普及度低、员工不接受、互联网的相关法律法规也不够完善、开发技术也不够成熟等,阻碍了互联网在各大机构中的发展速度。进入二十一世纪以后,我国经济有了快速的发展,限制机构管理的各个难题逐一被解决,国内各大机构都加入到了电子信息化的管理模式中来。
以往的疫情居家办公OA系统相关信息管理,都是工作人员手工统计。这种方式不但时效性低,而且需要查找和变更的时候很不方便。随着科学的进步,技术的成熟,计算机信息化也日新月异的发展,社会也已经深刻的认识,计算机功能非常的强大,计算机已经进入了人类社会发展的各个领域,并且发挥着十分重要的作用。本系统利用网络沟通、计算机信息存储管理,有着与传统的方式所无法替代的优点。比如计算检索速度特别快、可靠性特别高、存储容量特别大、保密性特别好、可保存时间特别长、成本特别低等。在工作效率上,能够得到极大地提高,延伸至服务水平也会有好的收获,有了网络,疫情居家办公OA系统的各方面的管理更加科学和系统,更加规范和简便。
随着计算机网络的不断渗透,人们的生活与工作、学习的方式也在慢慢发生变化。传统的疫情居家办公OA系统相关信息管理方式一般都采取人工的方式,信息的获取、整理、修改、存储等工作还停留在人工阶段。这种方式一方面需要花费大量的人力、物力和金钱,交互起来比较困难,而且会浪费时间;另一方面对员工等信息的管理,特别是随着员工数量的递增,查询、修改起来特别困难;最后由于员工等其他信息的不断增加,信息的存储也成为了难题。
一些发达国家,网络发展比较快,已经很大程度上完成了从人工到计算机管理的转变。我国计算机应用起步比较晚,而且发展区域不平衡,还有很多地区或单位使用传统的方式进行管理,但是目前计算机发展较快,包括网络也已经普及,很多单位和员工也开始慢慢接触网络管理系统。纵观这些系统主要有以下几个特点:
(1)先进性:实现网络化管理。
(2)通用性:同一行业基本都能使用。
(3)方便性:通过网络就能完成管理工作。
(4)及时性:信息更新及时。
(5)可扩展性:可根据需要进行模块的增加。
(6)安全性:对单位、员工等信息进行加密。
截至如今,互联网已经深入人们的生活,智能手机、笔记本电脑等已经是人们获取信息的主要工具,这是一个沟通无限的时代,因此,利用网络来进行疫情居家办公OA系统的管理也成为大势所趋,所以,开发一个疫情居家办公OA系统 是必须的。
一开始,本文就对系统内谈到的基本知识,从整体上进行了描述,并在此基础上进行了系统分析。为了能够使本系统较好、较为完善的被设计实现出来,就必须先进行分析调查。基于之前相关的基础,在功能上,对新系统进行了细致的分析。然后通过详细的分析,进行系统设计,其次,系统在实施的可行性上,我选择了java技术来进行开发设计,在数据存储上,采用 Mysql数据库来进行设计。由于java 和Mysql都已经非常成熟,因此无论在各个方面,都非常可靠安全实用。最后对系统进行测试完善并发布。
Java语言是在二十世纪末由Sun公司发布的,而且公开源代码,这一优点吸引了许多世界各地优秀的编程爱好者,也使得他们开发出当时一款又一款经典好玩的小游戏。Java语言是纯面向对象语言之一,从发布初期到现今,可以说有将近20多年的历史,已发展成为人类计算机编程语言发展史上的一个深远影响。
Java语言具有非常多种的特性:(1)跨平台的无关性;(2)面向对象; (3)安全性得以保障;(4)支持多个任务;(5)多种编写方式,代码编写简单。对比其他的低级语言、高级语言,Java语言具有明显的显著优势以及未来开阔的前景,可以广泛的应用在个人笔记本电脑、大数据、大型游戏等等。
首先,Java语言具有面向对象的特性,并且易于理解。关于对象,其实可以理解成每一种事物都是一种对象,包括我们人类自身都是一种对象。利用面向对象语言的基本特征来解决软件开发中的实际问题,为有效软件开发提供了技术支持。
其次,Java 语言具有很好的跨平台无关性。所编写出来的应用程序是Java语言编写的,那么就无需再使用编译器来修改程序代码,可以直接在任何计算机系统中运行,Windows系统可以运行,在Linux系统中也可以,也就是经过一次编译,可以到处运行,所以Java语言具有卓越的可移植性,可以很好的跨平台实现。
Mysql是一个多员工、多线程的服务器,采用SQL的数据库,数据库管理系统是基于SQL的员工以及服务器模式的关系,它的优点有强大的功能、操作简单、管理方便、可靠安全、运行较快、多线程、跨平台性、完全网络化、稳定性等,非常适合Web站点或者其他应用软件,在数据库后端的开发。此外,利用许多语言,员工可以编写和访问Mysql数据库的程序。Mysql数据库也是开放源代码的,开发者越来越喜欢使用Mysql关系数据库,应用范围也被推而广之。这是由于速度快和易用性, Web站点或应用软件的数据库后端的开发也都在使用它。
mysql 数据库它有很多的优点,例如它在操作上能够让人通俗易懂、功能强大、信息储存量高等优点。所以被人们广泛应用,对于mysql数据库来说它一般主要是对数据进行编码和查询,而且在很多的设计当中都应用到了该数据库,在此过程当中我们可以对常规的数据进行查询和组合,所以我们在进行使用mysql数据库的时候只要对编写一小段的数据就能实现相应的功能。数据库,就是数据存储的储藏室,只不过数据是存储在计算机上的,而不是现实中的储藏室,数据的存放是按固定格式,而不是无序的,则定义就是 :长期有固定格式,可以共享的存储在计算机存储器上。数据库管理主要包括数据表的建立,数据存储、修改和增加数据,为了使数据库系统能够正常运行,相关人员进行的管理工作。数据表的建立,可以对数据表中的数据进行调整,数据的重新组合及重新构造,保证数据的安全性。
BROWSER/SERVER程序架构方式是使用电脑中安装的各种浏览器来进行访问和使用的,相比C/S的程序结构不需要进行程序的安装就可以直接使用。BROWSER/SERVER架构的运行方式是在远程的服务器上进行安装一个,然后在任何接入互联网的电脑上访问和使用。BROWSER/SERVER架构的开发方式给员工带来了极大的便利,在任何时间和地点都可以使用开发的程序系统。
在B/S的结构中,员工可以在任何可以上网的地方访问和使用系统网站的功能,没有地域和时间等方面的限制,B/S结构是把程序完整放置到计算机网络的服务器上,通过计算机互联网给员工提供远程的网络服务。在三层体系结构的B/S系统中,通过浏览器,员工可以对很多服务器发出请求, B/S系统会很大程度的降低工作量,员工只需要安装运行较少的员工端即可,大量的工作将由服务器承担,另外,服务器也完成包括访问数据库,执行应用程序的工作等等。
B/S结构主要有三层,分别为数据层、控制逻辑层和视图层。员工通过视图层,让控制层调用数据层的数据,从而达到整个访问过程。三层相互独立,维护方便,使用安全,三层有互相调用,提高效率。
所谓系统分析就是,需求人员通过与员工的沟通,所获取的信息,然后把这些信息通过需求说明书的方式展示给员工和开发人员。在软件功能发展的历史长河中,很长时间,特别是最开始的时候,需求分析的重要性并不被人们所认同,例如当时美国IBM公司为英国电信公司开发一套信息管理系统,在需求不明确的情况下开始开发,最初的工期为一年,由于需求获取不清晰导致工期推迟了半年多,造成巨大损失。我们很多软件公司也存在这种情况,边需求,边开发,甚至与员工没有沟通清楚的情况下,直接照搬同类型的项目进行更改,导致到系统验收的时候,重新更改,造成了人力、物力的极大浪费。而导致这一切后果的原因就是需求获取不及时、不清楚、不全面。
疫情居家办公OA系统 主要目标是实现网上查看疫情居家办公OA系统的相关信息管理服务。在确定了目标后,我们从以下四方面对能否实现本系统目标进行可行性分析。
疫情居家办公OA系统 主要采用java技术,基于B/S结构,Mysql数据库,对于应用程序的开发要求具备完整功能,使用简单的特点,并建立一个数据完整安全稳定的数据库。疫情居家办公OA系统 的开发技术具有很高可行性,且开发人员掌握了一定的开发技术,所以系统的开发具有可行性。
疫情居家办公OA系统 的登录界面简单易于操作,采用常见的界面窗口来登录界面,通过电脑进行访问操作,员工只要平时使用过电脑都能进行访问操作。此系统的开发采用java语言开发,基于B/S结构,这些开发环境使系统更加完善。本系统具有易操作、易管理、交互性好的特点,在操作上是非常简单的。因此本系统可以进行开发。
疫情居家办公OA系统 是基于B/S模式,采用Mysql数据库储存数据,所要求的硬件和软件环境,市场上都很容易购买,程序开发主要是管理系统的开发和维护。所以程序在开发人力、财力上要求不高,而且此系统不是很复杂,开发周期短,在经济方面具有较高的可行性。
此疫情居家办公OA系统 是自己设计的管理系统,具有很大的实际意义。因为无论是软件还是数据库,采用的都是开源代码,因此这个系统的开发和设计,并不存在侵权等问题,在法律上完全具有可行性。
综上所述,疫情居家办公OA系统 在技术、经济、操作和法律上都具有很高的可行性,开发此程序是可行的。
疫情居家办公OA系统 开发时,首先进行需求分析,进而对系统进行总体的设计规划,设计系统功能模块,数据库的选择等,本系统的开发流程如图3-1所示
图3-1系统开发流程图
为了保证系统的安全性,要使用本系统对系统信息进行管理,必须先登陆到系统中。如图3-3所示。
图3-2 登录流程图
员工打开并进入系统后,会先显示登录界面,输入正确的用户名和密码,系统自动检测信息,若信息无误,则员工会进入系统功能界面,进行操作,否则会提示错误无法登录,操作流程如图3-3所示。
图3-3 系统操作流程图
管理员可以对疫情居家办公OA系统信息等进行信息的添加,员工也可以对自己权限内的信息进行添加,输入信息后,系统会自行验证输入的信息和数据,若信息正确,会将其添加到数据库内,若信息有误,则会提示重新输入信息,添加信息流程如图3-4所示。
图3-4 添加信息流程图
管理员可以对疫情居家办公OA系统等进行信息的修改,员工也可以对自己权限内的信息进行修改,首先进入修改信息界面,输入修改信息数据,系统进行数据的判断验证,修改信息合法则修改成功,信息更新至数据库,信息不合法则修改失败,重新输入。修改信息流程图如图3-5所示。
图3-5 修改信息流程图
管理员可以对疫情居家办公OA系统信息等进行信息的删除,对要删除的信息进行选中后,点击删除按钮,系统会询问是否确定,若点击确定,则系统会删除掉选中的信息,并在数据库内对信息进行删除,删除信息流程图如图3-6所示。
图3-6 删除信息流程图
系统中的核心员工是系统管理员,管理员登录后,通过管理员菜单来管理后台系统。主要功能有:管理员:个人中心、员工信息管理、留言板管理、系统管理、签到平台管理、签到信息管理、请假平台管理、办公设备管理、设备申请信息管理、请假信息管理、留言管理,具体系统管理员用例如图3-7所示。
图3-7 管理员用例图
员工进入系统可以进行查看个人中心、签到信息管理、设备申请信息管理、请假信息管理、留言板管理等功能
员工用例如图3-8所示。
图3-8 员工用例图
进过系统的分析后,就开始记性系统的设计,系统设计包含总体设计和详细设计。总体设计只是一个大体的设计,经过了总体设计,我们能够划分出系统的一些东西,例如文件、文档、数据等。而且我们通过总体设计,大致可以划分出了程序的模块,以及功能。但是只是一个初步的分类,并没有真正的实现。
整体设计,只是一个初步设计,而且,对于一个项目,我们可以进行多个整体设计,通过对比,包括性能的对比、成本的对比、效益的对比,来最终确定一个最优的设计方案,选择优秀的整体设计可以降低开发成本,增加公司效益,从这一点来讲,整体设计还是非常重要的。
疫情居家办公OA系统 工作原理图如图4-1所示:
图4-1 系统工作原理图
系统架构图属于系统设计阶段,系统架构图只是这个阶段一个产物,系统的总体架构决定了整个系统的模式,是系统的基础。疫情居家办公OA系统 的整体结构设计如图4-2所示。
图4-2 系统结构图
数据库是计算机信息系统的基础。目前,电脑系统的关键与核心部分就是数据库。数据库开发的优劣对整个系统的质量和速度有着直接影响。
概念模式它主要是建立在数据需求分析的基础上,它通常是用概念数据模型来表示各个数据之间的联系,并且对系统员工进行信息的处理和管理,同时建立起E-R图来表示具体的实体、属性和联系的关系。
数据模型中的实体(Entity),也称为实例,对应现实世界中可区别于其他对象的“事件”或“事物”。例如,公司中的每个员工,家里中的每个家具。
本系统的E-R图如下图所示:
1、员工信息实体图如图4-3所示:
图4-3员工信息图
3、设备申请信息管理实体图如图4-5所示:
图4-5设备申请信息管理实体图
数据库的表信息属于设计的一部分,下面介绍数据库中的各个表的详细信息。
表4-1 allusers表
列名 |
数据类型 |
长度 |
约束 |
id |
int |
11 |
NOT NULL |
username |
varchar |
50 |
default NULL |
pwd |
varchar |
50 |
default NULL |
cx |
varchar |
50 |
default NULL |
表4-2:bangongshebei表
列名 |
数据类型 |
长度 |
约束 |
id |
int |
11 |
NOT NULL |
addtime |
varchar |
50 |
default NULL |
shebeibianhao |
varchar |
50 |
default NULL |
shebeimingcheng |
varchar |
50 |
default NULL |
shuliang |
varchar |
50 |
default NULL |
tupian |
varchar |
50 |
default NULL |
xiangqing |
varchar |
50 |
default NULL |
表4-3:qiandaopingtai表
列名 |
数据类型 |
长度 |
约束 |
id |
int |
11 |
NOT NULL |
addtime |
varchar |
50 |
default NULL |
biaoti |
varchar |
50 |
default NULL |
xiangqing |
varchar |
50 |
default NULL |
tupian |
varchar |
50 |
default NULL |
表4-4:qiandaoxinxi表
列名 |
数据类型 |
长度 |
约束 |
ID |
int |
11 |
NOT NULL |
addtime |
varchar |
50 |
default NULL |
qiandaoleixing |
varchar |
50 |
default NULL |
qiandaoshijian |
varchar |
50 |
default NULL |
yuangonggonghao |
varchar |
50 |
default NULL |
yuangongxingming |
varchar |
50 |
default NULL |
表4-5:yuangongxinxi表
列名 |
数据类型 |
长度 |
约束 |
ID |
int |
11 |
NOT NULL |
addtime |
varchar |
50 |
default NULL |
yuangonggonghao |
varchar |
50 |
default NULL |
yuangongxingming |
varchar |
50 |
default NULL |
mima |
varchar |
50 |
default NULL |
xingbie |
varchar |
50 |
default NULL |
bumen |
varchar |
50 |
default NULL |
gangwei |
varchar |
50 |
default NULL |
lianxidianhua |
varchar |
50 |
default NULL |
shenfenzheng |
varchar |
50 |
default NULL |
zhaopian |
varchar |
50 |
default NULL |
jiatingzhuzhi |
varchar |
50 |
default NULL |
疫情居家办公OA系统,在疫情居家办公OA系统首页可以查看首页、签到平台、请假平台、办公设备、留言板、个人中心、后台管理等内容,如图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-7所示:
管理员对留言板管理进行添加、查看、修改以及删除等操作。程序效果图如下图5-8所示:
图5-8留言板管理界面
管理员对签到平台管理进行添加、删除、修改以及查看等操作。程序效果图如下图5-9所示:
图5-9签到平台管理界面
管理员对签到信息管理进行添加、删除、修改以及查看等操作。程序效果图如下图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-17所示:
图5-17请假信息管理界面
员工对留言板管理进行查看等操作。程序效果图如下图5-18所示:
图5-18留言板管理界面
系统开发的最后一个步骤就是系统测试,系统测试也是整个系统十分重要的一个环节,测试的好坏关系到产品的发展。员工对软件的质量、性能和可靠性等需求就要通过测试来实现。测试过程要必须遵循严谨性、完善性、规范性的原则,测试的主要目的就是看看在系统运行中,是否会出现bug,然后对出现的bug进行调试,直到程序完美运行。但是软件的测试只能尽可能的减少bug,理论上来说是无法达到消除bug。但是bug越少,系统出错的几率就越低,员工使用起来也更方便、更安全。
近年来,软件包含测试从现在的检验当中来看,系统接近预期目标可能出现的问题,并对这些错误做出相应的修正,假如我们不进行早期的测试错误就会延续下去,最后所做出的成品就会有很大的困难。
我们要在这个测试的过程当中找出错误。测试成软件开发的主要一部分,自从有了程序的设计那天开始,它就成为了重要的组成部分。经过统计来看,软件测试可以占据这个系统45%的工作量,而在软件开发的成本当中,对于测试成本来说它包含了很多的测试工作。每个程序测试时都会出现和遇到错误。在整个程序的开发过程当中,人为去查找错误是非常复杂和困难的,所以我们一般都会找一些测试的工具来进行测试
随着现代信息的快速发展,在社会各大领域中已经都开始应用网络信息技术,在应用网络技术的同时人们也开始把软件的质量问题作为了一个重要焦点来关注,因为一个软件的好与坏它决定着这个系统在市场上的生存,所以我们必须要把软件质量来做好,这样才有一定的生存能力。对于员工来说它们首先选用的都是保证这个系统软件的质量问题,因为一个系统的软件质量决定着员工在后期上成本经济的问题。图6-1就是纠错测试流程。
图6-1 测试与纠错信息流程
具体测试方法包括:黑盒测试和白盒测试。
黑盒测试又被人们称作为功能测试,通常是在程序的接口来做一些测试的方法,它一般包括对程序的功能和使用的方法来做出一些数据的接受和输出,同时还可以做出正确的输出信息,并保证与外部信息的完整性。
白盒测试通常被人们称作为结构测试,在整个程序的结构和处理当中它是由程序当中的逻辑测试和检验程序来完成一些正确的工作。
具体的功能测试它是包括:系统的适用性、准确性、安全性等功能测试。
本疫情居家办公OA系统 满足相关信息的管理需求,在设计时借鉴了国内外优秀网站的优点,从界面到系统设计都保证了管理员以及员工能够方便操作。系统的主要特点和优点归纳如下:
(1)本系统用的移置性和针对性都比较高,因为针对性高可以提供更好的服务而移置性可以在多个系统上运行,更给员工带来了极大的方便。
(2)该疫情居家办公OA系统 内容全面,管理方便可以及时的全面的处理各种错误,异常,这样避免了很多因员工的马虎操作而出现的失误,其操作方便,员工界面友好,能够上网的人都可以很好的进行操作。
经过对上述的测试结果分析,所有基本功能齐全,操作简单,系统运行性能良好,系统安全可靠,能促进疫情居家办公OA系统的发展,发展前景广阔。
本系统通过对java和Mysql数据库的简介,从硬件和软件两反面说明了疫情居家办公OA系统 的可行性,本文结论及研究成果如下:实现了java与Mysql相结合构建的疫情居家办公OA系统 ,网站可以响应式展示。通过本次疫情居家办公OA系统 的研究与实现,我感到学海无涯,学习是没有终点的,而且实践出真知,只有多动手才能尽快掌握它,经验对系统的开发非常重要,经验不足,就难免会有许多考虑不周之处。比如要有美观的界面,更完善的功能,才能吸引更多的员工。
由于在此之前对于java知识没有深入了解,所以从一开始就碰到许多困难,例如一开始的页面显示不规范、数据库连接有问题已经无法实现参数的传递等等,不过通过在网上寻找有关资料以及同学的帮助下最后都得到了解决,在此过程中,我不仅学到了很多知识,也提高了自己解决问题的能力,尤其是学会如何从大量的信息中筛选出所需有用的信息,同时我更加深刻的体会到了,虽然书本上的大部分知识都是有价值,正确的,但实际上每个人编程的思路和对数据处理的方法、思想都是不同的,这就要求我们一定要通过实践才能找到解决问题的方案。在此次毕业设计活动中,我不断的提高了自己,也得到了宝贵的经验,我相信这些对我以后的发展都会有很大帮助。
通过这次疫情居家办公OA系统 的开发,我参考了很多相关系统的例子,取长补短,吸取了其他系统的长处,逐步对该系统进行了完善,但是该系统还是有很多的不足之处,有待以后进一步学习。
实践证明,疫情居家办公OA系统 有着非常好的发展前景,经过测试运行,系统各项功能都十分完善,界面漂亮,使用方便,操作容易,在技术理论上已经成熟。
大学的学习生活在这个季节将结束,但是在我的生命这仅仅只是一个逗号,我将面对的旅程的另一个的开始。通过这次毕业设计的整个开发过程,从需求分析到具体功能实现,再到最终测试和维护的理解有了很大的进步,让我对系统开发有了更深刻的认识,对我个人的实践能力和解决问题的能力,都有了很大的帮助。这是这次毕业设计最大的收获。
首先要感谢我的指导老师,他在论文写作上,给予了我各种无私的帮助,治学严谨,严格要求,使我获得了很大的收获。老师深厚的理论知识和丰富的实践经验,都深深的影响到我,在这方面,我谨表示衷心的感谢。
其次,我还要对所有的老师和同学表示感谢,他们在我学习的过程中,都积极的提供了很多帮助,无论是专业知识,还是实践操作技能,也能够让我在论文写作中,遇到的一些难题迎刃而解。
最后,对阅读和评审本论文的各位老师表示衷心的感谢!
[3]王浩.基于java技术的在线技能评测系统的设计与实现[J].数字技术与应用,2016,(12):171-172.
[4]王金龙,张静.基于java+Mysql的高校慕课(MOOC)疫情居家办公OA系统 设计[J].通讯世界,2017,(20):276-277.
[5]潘国荣.基于java+JavaBean+Servlet实现模式的增删改模块的设计与实现[J].信息通信,2017,(08):101-103.
[6]葛建霞.《java动态网页设计》课程中项目法的应用研究[J].宿州教育学院学报,2017,20(04):160-161.
[7]李清霞.《java动态网页设计》课程建设与模式研究[J].福建电脑,2017,33(06):92-93+166.
[8]曾晰,舒坚.基于java的养老院管理信息系统的设计与实现[J].信息通信,2017,(09):122-124.
[9]傅峰. 基于移动平台的论坛管理系统的设计[J]. 电子设计工程,2016,24(09):66-68+71.
[10]李丹. 派遣信息网络管理平台设计与实现[J]. 软件导刊,2016,15(03):97-98.
[11]付昕. 基于B/S调度信息管理系统的实现[J].山东省农业管理干部学院学报, 2019, 27(4):166-168
[12] 黄艳峰. 在Java语言中实施“案例医学会网站管理系统”的研究与探索[J]. 电脑知识与技术, 2019, 6(5):1148-1149
[13] 赵钢. java Servlet+EJB的Web模式应用研究[J]. 电子设计工程, 2017, 21(13):47-49
[14] 肖英. 解决java/Servlet开发中的中文乱码问题[J]. 科技传播, 2018, (1)11-25
[15] Hsiao I H, Sosnovsky S, Brusilovsky P. Guiding students to the right questions: adaptive navigation support in an e-learning system for Java programming[J]. Journal of Computer Assisted Learning, 2019, 26(4):270-283.
/**
* 签到信息
* 后端接口
* @author
* @email
* @date 2020-09-29 12:26:11
*/
@RestController
@RequestMapping("/qiandaoxinxi")
public class QiandaoxinxiController {
@Autowired
private QiandaoxinxiService qiandaoxinxiService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map params,QiandaoxinxiEntity qiandaoxinxi, HttpServletRequest request){
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("yuangongxinxi")) {
qiandaoxinxi.setYuangonggonghao((String)request.getSession().getAttribute("username"));
}
EntityWrapper ew = new EntityWrapper();
PageUtils page = qiandaoxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, qiandaoxinxi), params), params));
request.setAttribute("data", page);
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@RequestMapping("/list")
public R list(@RequestParam Map params,QiandaoxinxiEntity qiandaoxinxi, HttpServletRequest request){
EntityWrapper ew = new EntityWrapper();
PageUtils page = qiandaoxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, qiandaoxinxi), params), params));
request.setAttribute("data", page);
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( QiandaoxinxiEntity qiandaoxinxi){
EntityWrapper ew = new EntityWrapper();
ew.allEq(MPUtil.allEQMapPre( qiandaoxinxi, "qiandaoxinxi"));
return R.ok().put("data", qiandaoxinxiService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(QiandaoxinxiEntity qiandaoxinxi){
EntityWrapper< QiandaoxinxiEntity> ew = new EntityWrapper< QiandaoxinxiEntity>();
ew.allEq(MPUtil.allEQMapPre( qiandaoxinxi, "qiandaoxinxi"));
QiandaoxinxiView qiandaoxinxiView = qiandaoxinxiService.selectView(ew);
return R.ok("查询签到信息成功").put("data", qiandaoxinxiView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
QiandaoxinxiEntity qiandaoxinxi = qiandaoxinxiService.selectById(id);
return R.ok().put("data", qiandaoxinxi);
}
/**
* 前端详情
*/
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") String id){
QiandaoxinxiEntity qiandaoxinxi = qiandaoxinxiService.selectById(id);
return R.ok().put("data", qiandaoxinxi);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody QiandaoxinxiEntity qiandaoxinxi, HttpServletRequest request){
qiandaoxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(qiandaoxinxi);
qiandaoxinxiService.insert(qiandaoxinxi);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody QiandaoxinxiEntity qiandaoxinxi, HttpServletRequest request){
qiandaoxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(qiandaoxinxi);
qiandaoxinxiService.insert(qiandaoxinxi);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody QiandaoxinxiEntity qiandaoxinxi, HttpServletRequest request){
//ValidatorUtils.validateEntity(qiandaoxinxi);
qiandaoxinxiService.updateById(qiandaoxinxi);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
qiandaoxinxiService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/**
* 提醒接口
*/
@RequestMapping("/remind/{columnName}/{type}")
public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
@PathVariable("type") String type,@RequestParam Map map) {
map.put("column", columnName);
map.put("type", type);
if(type.equals("2")) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
Date remindStartDate = null;
Date remindEndDate = null;
if(map.get("remindstart")!=null) {
Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindStart);
remindStartDate = c.getTime();
map.put("remindstart", sdf.format(remindStartDate));
}
if(map.get("remindend")!=null) {
Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindEnd);
remindEndDate = c.getTime();
map.put("remindend", sdf.format(remindEndDate));
}
}
Wrapper wrapper = new EntityWrapper();
if(map.get("remindstart")!=null) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null) {
wrapper.le(columnName, map.get("remindend"));
}
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("yuangongxinxi")) {
wrapper.eq("yuangonggonghao", (String)request.getSession().getAttribute("username"));
}
int count = qiandaoxinxiService.selectCount(wrapper);
return R.ok().put("count", count);
}
}