基于springboot的高校学生宿舍管理系统设计与实现_第1页
基于springboot的高校学生宿舍管理系统设计与实现_第2页
基于springboot的高校学生宿舍管理系统设计与实现_第3页
基于springboot的高校学生宿舍管理系统设计与实现_第4页
基于springboot的高校学生宿舍管理系统设计与实现_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要随着信息时代的到来,信息技术正以迅猛的姿态渗透于社会的方方面面,改变着人们的社会空间和生活方式,现在的管理方式也逐渐向无纸化办公转变。目前有一些高校的宿舍管理方式仍采用ofice软件来对信息进行存储。这种管理方式效率相对较低,容易出错,手续繁琐且耗费精力。本系统基于B/S架构,采用SpringBoot框架技术。开发环境采用Idea。以MySql作为数据库工具。本系统从总体架构部署上分为前后台,前台的主要功能是户登录、维修上报。后台的主要功能是用户管理、楼栋管理、宿舍管理、学生管理、辅导员管理、维修工管理、维修内容管理等。本系统操作简单,界面友好且功能较为完善,利用现代信息技术手段方便管理员对宿舍和学生的管理及学生进行维修上报和维修工进行查看维修工作。关键词:宿舍管理系统,SpringBoot,MySql

abstractWiththeadventoftheinformationage,informationtechnologyispenetratingintoallaspectsofthesocietywitharapidattitude,changingpeople'ssocialspaceandwayoflife,andthecurrentmanagementmodeisgraduallychangingtothepaperlessoffice.Atpresent,somecollegesanduniversitiesstilluseofficesoftwaretostoreinformation.Thiskindofmanagementmodeefficiencyisrelativelylow,easytomakemistakes,cumbersomeproceduresandenergyconsuming.ThissystemisbasedonB/SarchitectureandadoptsSpringBootframeworktechnology.ThedevelopmentenvironmentusesIdea.MySqlwasusedasadatabasetool.Thesystemisdividedintofrontandbackdesksfromtheoverallarchitecturedeployment.Themainfunctionsofthefrontdeskarehouseholdloginandmaintenancereporting.Themainfunctionsofthebackgroundareusermanagement,buildingmanagement,dormitorymanagement,studentmanagement,counselormanagement,maintenanceworkermanagement,maintenancecontentmanagement,etc.Thesystemissimpletooperate,friendlyininterfaceandperfectinfunction.Moderninformationtechnologymeansareusedtofacilitatethemanagementofdormitoriesandstudents,students'maintenancereportandmaintenanceworkerstocheckthemaintenancework.Keywords:dormitorymanagementsystem,SpringBoot,MySql

目录TOC\o"1-3"\h\u摘要 1abstract 21绪论 41.1研究背景 41.2论文的概述 52相关技术介绍 62.1Javascript 62.2Ajax 62.3MySQL 62.4SpringBoot框架 62.5Freemarker 72.6B/S模式 7一、B/S模式的优点和缺点 73系统需求分析 83.1系统的可行性分析 83.1.1技术可行性 83.1.2经济可行性 83.1.3操作可行性 93.2系统的需求分析 9(1)管理员 9(2)学生 10(2)维修工 103.3非功能需求分析 11(1)系统的实用性 11(2)系统的安全性 11(3)系统的稳定性 12(4)系统的开放性 124系统设计 124.1系统架构 124.2系统总体结构设计 134.3系统工作流程设计 144.4数据库设计 154.4.1数据库概念设计 151.管理员实体 162.楼栋实体 163.宿舍实体 164.学生实体 175.维修工实体 176.维修内容实体 184.4.2数据库逻辑设计 185系统实现 205.1登录界面 20//用统一验证实体方法验证是否合法 215.2学生模块 225.2.1维修上报 225.3维修工模块 235.3.1维修内容管理 235.4系统管理员模块 245.4.1菜单管理 245.4.2角色管理 255.4.3统计 265.4.4楼栋管理 275.4.5宿舍管理 285.4.6学生管理 305.4.8维修管理 315.4.9维修工管理 33//用统一验证实体方法验证是否合法 335.5个人信息管理 346系统测试 376.1测试方法 373.通过数据流图进而总结步骤并进行代码初测试。 376.2测试环境 386.3测试用例 386.4测试结论 41参考文献 41致谢 43

1绪论1.1研究背景宿舍管理对于一所高校来说是至关重要的。但目前许多高校还停留在宿舍管理人员使用office软件来对学生的数据进行简单的存储管理阶段,当大量的学生信息需要记录和存档时这种管理方式是非常繁重的。并且当要查找某条记录时,由于数据量庞大,造成了许多时间上的浪费。当学生宿舍发生问题需要维修时,也经常的不到快速的解决。随着计算机和互联网技术的飞速发展,如今的社会已是互联网的世界,高校的宿舍管理也应逐渐从原来简单的信息存储走向了智能化,原始的记录方式也早已被社会所淘汰了,计算机化管理正是适应时代和科技发展产物。如今高校学生数量逐年递增,学生人数增加的同时学生宿舍的数量也逐渐增多,学生宿舍相当于学生的第二个“家”,学生有相当多时间是在宿舍环境中度过的,如何让学生在宿舍住的安心,让宿舍管理员放心也成为宿舍管理的一个重要部分。伴随学生人数的增加的同时宿舍维修量也日益增加。通过Internet技术建设一个高校宿舍管理系统能够使工作更有效的完成,高校宿舍管理者能够更好的管理学生的信息,学生也可以在遇到宿舍需要维修时更方便的上报需要维修的问题,管理人员可以对维修信息进行更好的管理,维修人员也可以更方便的查看个人需要处理的维修内容。用提高宿舍的管理效率,使其与现代信息化的趋势接轨。基于以上原因,需要建立一个高校宿舍管理系统,使宿舍管理者的工作变得轻松,同时在宿舍需要维修时学生可以及时的上报这样可以提高宿舍维修工作处理问题的速度和准确性。1.2论文的概述本高校宿舍管理系统主要采用FreeMarke+SpringBoot等技术。目的是减少宿舍管理者的工作强度,提高工作效率,以达到很大程度上避免人力的浪费和时间虚度的问题;与此同时,宿舍管理系统还为学生的用户提供了宿舍维修上报的便利,打破了传统的宿舍维修上报模式,为学生和高校宿舍管理员提供了尽可能多的便利。与此同时宿舍管理系统结合了当下传统管理的优点,借助在计算机中可以信息化的数据库管理技术。开发此宿舍管理系统拥有一定的目的,实现规范化、个性化、人性化的宿舍管理也是让学生和宿舍管理者感受到互联网发展带来的便捷。本文的研究目标是基于B/S架构模式,采用SpringBoot框架开发,实现功能齐全且操作简单的高校宿舍管理系统,并将数据库管理系统、Web服务器和宿舍管理结合在一起组建技术支撑。该系统的特点功能是支持学生宿舍维修上报,使学生在发现宿舍需要维修时及时上报,系统自动分配维修工,管理员及时查看维修内容。该系统为管理员、学生和维修工使用。管理员、学生和维修工作为系统的三个角色在平台中运行,其中楼栋管理、宿舍管理、学生管理、维修工管理、查看统计、维修管理、角色管理、菜单管理是管理员角色的主要功能。个人信息管理、维修上报是学生角色的主要功能。个人信息管理、维修内容管理是维修工角色的主要功能。2相关技术介绍2.1JavascriptJavaScript(简称“JS”)诞生于1995年,最初由网景公司设计,它的出现主要用于处理网页的前端验证,同时也是一种具有函数优先的轻量级,解释型或者即时编译型的编程语言。广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,是世界上最流行的语言之一。2.2AjaxAjax全称为“AsynchronousJavaScriptandXML”(异步JavaScript和XML),是前后台交互的能力也就是我们客户端给服务器端发送消息的工具,以及接受响应的工具。使用Ajax技术网页应用可以使网页实现异步更新,这样就可以在不重新更新整个页面的情况下快速地将增量更新呈现在用户界面上。2.3MySQLMySQL是一种关系型数据库管理系统,瑞典MySQLAB公司为MySQL的开发者。MySQL由开源团队维护,社区同步更新,完全兼容,包括API和命令行被广泛地应用在Internet上的中小型网站中。由于它具有体积小、安全性高、支持面向对象、成本低、运行速度快等特点最终决定使用MySQL作为系统的数据库管理系统。2.4SpringBoot框架SpringBoot是由Pivotal团队提供用来简化Spring的搭建和开发过程的全新框架。SpringBoot的优点主要为创建项目非常快,几秒钟就可以搭建完成;快速集成插件,SprinngBoot还提供了入门依赖添加,用于快速的集成各种框架等。Spring可以做的事,现在用SpringBoot都可以做。2.5FreemarkerFreeMarker是一款模板引擎,一种开源的、基于模板的、用来生成/输出文本通用工具。它不是Web应用框架,而是一个Java类库,是Web应用框架中的一个实用组件,是一款程序员可以嵌入他们所开发产品的的一款应用程序组件。2.6B/S模式B/S模式(Browser/Server,浏览器/服务器)模式又称B/S结构,是Web兴起后的一种对C/S结构的一种变化或者改进。一、B/S模式的优点和缺点B/S架构的优点:(1)不用安装客户端。(2)可以直接放在互联网上,从而达到通过某些特权来控制多客户端访问的目的。(3)不会对用户主机造成安全威胁。(4)开发量少。B/S模式的缺点(1)在跨浏览器中,不是令人满意的架构。(2)操作方式的基本方式为鼠标操作,快速操作无法得到满足。(3)不能进行数据缓存。(4)花费大量的设计成本在速度和安全上。(5)客户端和服务器端需要刷新页面以才能达到的交互。图2-1所示是B/S模式应用系统网络结构图:图2-1B/S模式应用系统网络结构图3系统需求分析3.1系统的可行性分析3.1.1技术可行性本系统基于SpringBoot+Jpa+Freemarker+MySQL,并采用B/S模式,加上Freemarker、SpringBoot系统功能强大,而Jpa和MySQL灵活方便维护简单,以及目前的使用广泛,所以使用简单SpringBoot、Freemarker和MySQL是最佳开发新组合。基于以上分析本系统平台在技术方面可行。在硬件方面,目前的硬件平台完全能满足此系统的需要。3.1.2经济可行性从经济可行性上分析可以看出来此宿舍管理系统,主要集中在如下几个方面,包括系统开发、硬件资源整合以及系统运维。系统开发上:系统由本人花费三十个工作日完成开发,成本相对较低。其次系统基于MVC模式、MySQL等开源技术,所以在第三方技术上没有支出。硬件资源上:配置一台电脑进行系统的的开发和测试,预计支出6000元。系统运维上:系统上线后需要长期的使用,需提供独立域名和需要服务器主机。购买独立域名的预算使50元/年,而服务器主机的预算是80元/月。3.1.3操作可行性本系统是基于B/S架构,使用者不需要进行另外的学习就可以进行操作。而对于系统的管理员,会配备专业的开发人员进行现场讲解和指导,这样就可以很方便快捷地学会系统的使用。3.2系统的需求分析宿舍的实际管理系统是根据各大高校宿舍管理情况按照网络化的需求开发的,它的目标非常明确,即通过建立宿舍管理平台,使管理者更方便管理学生信息,学生能够更方便、及时上报宿舍遇到的问题,管理员能够方便分配维修任务,维修人员可以直观查看个人需要进行完成的维修任务,更加方便、高效和有针对性的进行宿舍管理和维修上报。系统功能需求整体上分为三个使用功能即系统管理员使用的功能、学生的使用功能、维修工的使用功能。根据以上功能需求分析,通过用例图来描述系统的主要功能。现在确定本系统用例模型有三个,分别是系统管理员、学生和维修工。下面分别对这三个角色的功能进行描述:(1)管理员管理员主要负责系统的后台管理工作,主要功能如下:a.管理个人信息;b.管理角色;c.管理菜单;d.管理楼栋;e.管理宿舍;f.管理学生;g.管理维修工;h.管理维修;i.统计;图3-1管理员用例图(2)学生学生可以管理个人信息,维修上报。学生主要功能如下:a.管理个人信息;b.维修上报;图3-2学生用例图(2)维修工维修工可以管理个人信息、完成维修内容。维修工主要功能如下:a.管理个人信息;b.管理维修内容;图3-3维修工用例图在确定了系统管理员、维修工和学生功能后就可以构建宿舍管理系统的总体用例图了,如图3-4系统总体用例图所示:图3-4系统总体用例图3.3非功能需求分析(1)系统的实用性使用者可以清晰地感受到系统的方便和快捷,其系统操作和功能不能是冗余的。(2)系统的安全性宿舍管理系统中记录了大量的学生和维修工的信息,这些信息必须是非常重要且有价值的。所以,对系统的安全性能提出了更高的要求,需要确保用户数据信息不容易被盗用和丢失。(3)系统的稳定性系统的稳定性较低,意味着在使用者的使用中,系统会有数据处理上的差错,网页的反应速度较慢,甚至完全不能回应。所以,稳定度是衡量一个使用者对其性能的一个主要因素。为了确保系统的平稳运行,必须使用稳定的操作系统,数据库等。(4)系统的开放性能够在Window操作系统中正常工作。它还支持多种浏览器。同时系统也是易升级与容易管理的。4系统设计4.1系统架构高校宿舍管理系统采用SpringBoot+Freemarker+Jpa框架开发,是标准的MVC模式,该体系分为四个层次:视图(View)、控制层Controller(Controller)、Service(ServiceResourceService)、以及DAO(DataAccessobject)四个层次。在此基础上,Freemarker获取了用于显示的数据,SpringBoot则完成了业务处理,Jpa作为数据对象的持久化引擎。整个系统架构运行流程如图4-1所示:图4-1系统架构运行图View层:与Controller层结合比较紧密,需要二者结合起来协同工发,主要功能是对使用者进行数据的展示和接受,为使用者的交互操作提供接口。Service层:它实现了业务的主要逻辑处理,是系统架构中反映核心价值的部分。Controller层:Controller顾名思义就是控制的意思所以该层为控制器层,它的作用是把用户提交来的请求通过对URL的匹配,分配个不同的接收器,再进行处理,之后向用户返回结果。Dao层:是一个接口,它是直接跟数据库打交道,它的主要功能封装对数据库的访问,不涉及业务逻辑不是对数据的操作。是实现对数据表的Select(查找),Insert(插入),update(增加),Delete(删除)的操作。持久层:使用了Jpa来将实体对象持久化到数据库中。不用再进行繁杂的Jdbc和sql语句。在Dao层使用Jpa语法可以直接使用想要进行的sql,或者可以直接加上@Query注解后面写要进行的sql语句。4.2系统总体结构设计系统不仅需要所有的功能完善,还需要友好的界面,因此功能模块的设计是系统设计成功的关键。实质上,宿舍管理系统的综合化较为稳定较强,复杂程度相对较高,其中涉及到处理程序、MySQL后台数据库系统等。处理程序就是对用户提交表单和相关操作进行处理。后台数据库中的存储数据信息有用户数据、楼栋数据、宿舍数据、辅导员数据、学生数据、维修工数据和维修内容数据等。高校宿舍管理系统共分为学生模块、管理员模块、维修工模块三个模块。系统结构功能如图4-2所示:图4-2系统结构功能图4.3系统工作流程设计系统工作流程包含学生、维修工和管理员这三类的工作流程。如图4-3系统工作流程图所示:图4-3系统工作流程图4.4数据库设计数据库的合理设计直接影响到整个系统的工作效能,合理的数据库设计既能保证数据的正常更新,同时还能有效地改善网络的工作性能、减少用户的查询和回复时间以及增加站点的访问量。合理的数据库结构使得Java程序在其所支撑的网页中简化,容易实施,从而可以增加数据的储存。确保资料完全和连贯。基于以上优点宿舍管理系统采用MySQL作为后台数据库开发工具。4.4.1数据库概念设计数据库的概念设计是将需求分析时得到的用户需求抽象变成信息世界的概念结构模型的一个过程。概念结构设计是数据库设计的一个关键。一般用E-R图来描述。数据库概念设计的E-R图方法中,用属性来描述实体的特征、属性在E-R图中,用(椭圆形表示)。本系统中一共有六个实体:管理员、学生、宿舍、楼栋、维修工、维修内容。根据数据流程分析,绘制宿舍管理系统的全局E-R模型如图4-4所示。图4-4系统全局E-R图根据系统分析的主要实体有:管理员、楼栋、宿舍、辅导员、学生、维修工、维修内容,各实体具体的描述属性图如下:1.管理员实体图4-5管理员实体属性图2.楼栋实体图4-6楼栋实体属性图3.宿舍实体图4-7宿舍实体属性图4.学生实体图4-8学生实体属性图5.维修工实体图4-9维修工实体属性图6.维修内容实体图4-10维修内容实体属性图4.4.2数据库逻辑设计数据库逻辑结构设计是其中的一个重要部分。它的任务是将概念设计阶段绘制的E-R图表转换为相对应的数据模型。其目的是为了确定后续数据库的成功建立。本系统数据库名称为communtity_management,其中中包括:1.用户管理员表(ylrc_user)2.楼栋表(ylrc_building)3.宿舍表(ylrc_dormitory)4.辅导员表(ylrc_coach)5.学生表(ylrc_student)6.维修工表(ylrc_emp)7.维修内容表(ylrc_repairs)各表数据结构如下:表4-1管理员表YNNYNYNYNYNYNY表4-2楼栋表YNNNNNNN表4-3宿舍表YNNYNYNYNYNYNYNYNYNY表4-4学生表YNNYNYNYNYNYNYNYNYNY表4-5维修工表YNNYNYNYNYNYNYNYNY表4-6维修内容表YNNYNYNYNYNYNY5系统实现5.1登录界面在高校宿舍管理系统中包含三个登录方式:管理员登录、学生登录、维修工登录。首先,前台将用户名、登录密码及验证码通过程序传递到后台,然后后台开始验证是否填写用户名和登录密码,如果有一项为空则进行报错返回。并发出请“填写用户名”和“请填写密码”的提示。接下来再验证验证码是否正确,如果验证码正确则开始查询数据库中的账号密码是否存在,及用户状态和角色状态是否可用。如果成功,系统将允许用户登录进入用户主页。图5-1登录页面登录页面操作实现关键代码:publicResult<Boolean>login(HttpServletRequestrequest,Useruser,Stringcpacha,Stringtype){if(user==null){returnResult.error(CodeMsg.DATA_ERROR);}//用统一验证实体方法验证是否合法CodeMsgvalidate=ValidateEntityUtil.validate(user);if(validate.getCode()!=CodeMsg.SUCCESS.getCode()){returnResult.error(validate);}//表示实体信息合法,开始验证验证码是否为空if(StringUtils.isEmpty(cpacha)){returnResult.error(CodeMsg.CPACHA_EMPTY);}}5.2学生模块学生登录系统后进入维修管理模块可以进行上报维修信息、修改维修信息的操作。5.2.1维修上报上报前端操作是根据数据库中学生姓名、学生学号、联系方式、宿舍号的学生信息来自动生成的,而维修工所属类别和备注需要学生手动选择和填写。学生点击确定按钮后前端系统传整个表单的到后台进行数据处理。后台系统根据数据库中BuildingId(楼栋号)和empType(维修工类型)查找任务量最少和是否有空闲的维修工Id,如果有空闲的维修工,系统自动分配该任务给空闲维修工,若没查出空闲师傅,则系统将该任务自动分配给任务量少的维修工。成功分配维修工后系统将发送订单上的备注信息给维修工的邮箱。图5-2维修管理页面维修上报操作实现关键代码:publicResult<Boolean>add(Repairsrepairs){DormitoryDormitoryLongid=repairsDormitory=repairs.getDormitory();dormitory=dormitoryService.find(repairsDormitory.getId());dormitory.getBuilding().getId();intcode=repairs.getEmpType().getCode();List<Repairs>empType=repairsService.findByDormitoryIdAndEmpTypeAndStatus(dormitory.getId(),EmpType.getEmpByCode(code),0);if(!CollectionUtils.isEmpty(empType)){returnResult.error(CodeMsg.ADMIN_REPAIRS_ERROR);}5.3维修工模块5.3.1维修内容管理维修工登录系统后进入维修管理模块,可以查看维修内容,进行维修完成操作。当维修任务完成之后,点击维修完成操作后,系统发送维修完成邮件给上报该任务的学生。图5-3维修内容管理维修完成操作关键代码:publicResult<Boolean>editMte(@RequestParam(name="id")Longid){System.out.println(""+id);//根据ID查出Repairs对象Repairsrepairs=repairsService.findByID(id);//判断是否已完成if(repairs.getStatus()==1){returnResult.error(CodeMsg.ADMIN_MAINTENANCE_EXIST);}if(repairs.getStatus()==0){//定义已完成repairs.setStatus(1);//收件人的邮箱主题完成内容完成任务//获取收件人StudentbyStudentNo=studentService.findByStudentNo(repairs.getStudent().getStudentNo());Stringemail=byStudentNo.getEmail();//证明状态是对的,进行修改数据库repairsService.save(repairs);//定义主题内容finalStringsubject="任务完成!";finalStringcontext="任务完成!请查收";mailService.send(email,subject,context);}returnResult.success(true);}5.4系统管理员模块5.4.1菜单管理菜单管理模块可进行新增菜单、编辑菜单、和删除菜单的操作。该模块的主要作用为各种按钮所跳转后对应的URL的具体内容。图5-4菜单管理菜单列表展示页面关键代码:@RequestMapping(value="/list")publicStringlist(Modelmodel){List<Menu>findAll=menuService.findAll();model.addAttribute("title","菜单列表");model.addAttribute("topMenus",MenuUtil.getTopMenus(findAll));model.addAttribute("secondMenus",MenuUtil.getSecondMenus(findAll));model.addAttribute("thirdMenus",MenuUtil.getThirdMenus(findAll));return"admin/menu/list";}5.4.2角色管理角色管理模块可以进行角色添加、角色编辑、角色删除的操作。主要作用是给不同的角色设置不同的使用权限。图5-5角色管理角色添加操作关键代码:publicStringadd(Modelmodel){List<Menu>findAll=menuService.findAll();model.addAttribute("roleTypes",RoleType.values());model.addAttribute("topMenus",MenuUtil.getTopMenus(findAll));model.addAttribute("secondMenus",MenuUtil.getSecondMenus(findAll));model.addAttribute("thirdMenus",MenuUtil.getThirdMenus(findAll));return"admin/role/add";}5.4.3统计系统管理员可以查看统计图。统计图内容包括:按照楼栋统计、按照维修工种类统计、按照维修工统计。按照楼栋统计图可清晰每个区需要维修的内容的数量,维修工种类统计图可直观的查看各个工种人的数量,维修工统计图可以直观的查看每位维修工维修的工作。图5-6统计图-1图5-7统计图-2统计图关键代码:publicJSONObjectcountBuilding(){StatisticsdataBean=statisticsService.countByBuilding();return(JSONObject)JSON.toJSON(dataBean);}/***按照维修种类统计*@return*/@RequestMapping("/count/empType")@ResponseBodypublicJSONObjectcountEmpType(){StatisticsdataBean=statisticsService.countByEmpType();return(JSONObject)JSON.toJSON(dataBean);}/***按照维修工统计*@return*/@RequestMapping("/count/emp")@ResponseBodypublicJSONObjectcountEmp(){StatisticsdataBean=statisticsService.countByEmp();return(JSONObject)JSON.toJSON(dataBean);}5.4.4楼栋管理楼栋管理模块可以进行查询楼栋、添加楼栋、编辑楼栋和删除楼栋的操作。其中添加楼栋操作是前端页面输入楼号、校区、地址点击确定按钮后,系统传入表单form的ID进行验证校区和楼号是否为空,如果为空则提示请填写校区和请填写楼号的提示框。编辑楼栋是前端选择一条数据进行编辑,系统将纪录的ID传入后台进行编辑操作、删除楼栋操作是前端选择一条数据进行删除,系统将纪录的ID传入后台进行删除操作。图5-8楼栋管理添加楼栋关键代码:publicResult<Boolean>add(Buildingbuilding){//用统一验证实体方法验证是否合法CodeMsgvalidate=ValidateEntityUtil.validate(building);if(validate.getCode()!=CodeMsg.SUCCESS.getCode()){returnResult.error(validate);}if(buildingService.isExistCampusAndBno(building.getCampus(),building.getBno(),0L)){returnResult.error(CodeMsg.ADMIN_BUILDING_EXIST);}//到这说明一切符合条件,进行数据库新增if(buildingService.save(building)==null){returnResult.error(CodeMsg.ADMIN_BUILDING_ADD_ERROR);}operaterLogService.add("添加楼栋,楼栋校区和楼号:"+building.getCampus()+building.getBno());returnResult.success(true);}5.4.5宿舍管理宿舍管理模块可以管理宿舍,可以查询宿舍、添加宿舍、编辑宿舍、删除宿舍。添加宿舍操作前端填入所属楼栋、房间号、备注的信息后点击确定键后表单将信息传到后台系统。程序通过click检查进行检查房间号和备注是否为空。如果为空系统提示请填写房间号和请填写备注的提示。编辑宿舍操作时前端选择一条数据进行编辑,系统将纪录的ID传入后台进行编辑操作、删除宿舍操作时前端选择一条数据进行删除,系统将纪录的ID传入后台进行删除操作。图5-9宿舍管理添加宿舍操作关键代码:publicResult<Boolean>add(Dormitorydormitory){//用统一验证实体方法验证是否合法CodeMsgvalidate=ValidateEntityUtil.validate(dormitory);if(validate.getCode()!=CodeMsg.SUCCESS.getCode()){returnResult.error(validate);}if(dormitory.getBuilding()==null||dormitory.getBuilding().getId()==null){returnResult.error(CodeMsg.ADMIN_DORMITORY_EMPTY);}//判断所属楼栋宿舍号是否存在if(dormitoryService.isExistRoomNo(dormitory.getBuilding().getId(),dormitory.getRoomNo(),0l)){returnResult.error(CodeMsg.ADMIN_DORMITORY_EXIST);}//到这说明一切符合条件,进行数据库新增if(dormitoryService.saveDormitory(dormitory)==null){returnResult.error(CodeMsg.ADMIN_DORMITORY_ADD_ERROR);}operaterLogService.add("添加宿舍,宿舍号:"+dormitory.getRoomNo());returnResult.success(true);}5.4.6学生管理学生管理模块可以进行增加学生、删除学生、编辑学生和查找学生的操作。添加学生操作时系统前端填入头像上传、姓名、性别、邮箱地址、联系方式、辅导员、楼栋、宿舍号的信息后点击确定键后,表单将信息传到后台系统。程序通过click检查信息是否为空。如果为空系统发出提示。编辑学生操作时前端选择一条数据进行编辑,系统将纪录的ID传入后台进行编辑操作。后台区分操作是增加还是编辑操作,如果有这个id在数据库中存在那么这个操作就是编辑反之则是增加操作。删除学生操作时前端选择一条数据进行删除,系统将纪录的ID传入后台进行删除操作。图5-10学生管理添加学生操作关键代码:publicResult<Boolean>add(Studentstudent){if(student.getId()!=null){//用统一验证实体方法验证是否合法CodeMsgvalidate=ValidateEntityUtil.validate(student);if(validate.getCode()!=CodeMsg.SUCCESS.getCode()){returnResult.error(validate);}StudentbyID=studentService.findByID(student.getId());BeanUtils.copyProperties(student,byID,role","password");studentService.save(byID);}else{"id","createTime","updateTime","studentNo","if(!StringUtil.emailFormat(student.getEmail())){returnResult.error(CodeMsg.ADMIN_STUDENT_EMAIL);}if(!StringUtil.isMobile(student.getMobile())){returnResult.error(CodeMsg.ADMIN_STUDENT_MOBILE);}student.setRole(roleService.findByRoleType(RoleType.STUDENT));Strings=StringUtil.generateSn("S","");student.setStudentNo(s);student.setPassword(s);studentService.save(student);}returnResult.success(true);}5.4.8维修管理维修管理模块可以进行撤修维修信息,可以修改维修信息、管理员分配维修人员的操作。该模块是主要用于维修工的分配。和需要维修的宿舍所在的楼栋是否有该工种的维修工。如果没有管理员就应该添加其工种的维修工后再进行分配维修工。图5-12维修管理分配维修工关键代码:Empemp=newEmp();EmpemailEmp=newEmp();if(Objects.nonNull(freeEmp)){emp.setId(freeEmp);repairsSave.setEmp(emp);repairsService.updateEmpId(repairsSave);emailEmp=empService.find(emp.getId());//mailService.send(emailEmp.getEmail(),"任务发配",Objects.nonNull(repairsSave.getRemark())?repairsSave.getRemark():"有任务,需快速完成");returnResult.success(true);}if(leastEmp!=null){emp.setId(leastEmp);repairsSave.setEmp(emp);repairsService.updateEmpId(repairsSave);emailEmp=empService.find(emp.getId());//mailService.send(emailEmp.getEmail(),"任务发配",Objects.nonNull(repairsSave.getRemark())?repairsSave.getRemark():"有任务,需快速完成");}}System.out.println(repairsSave.getId()+"打印Id");}returnResult.success(true);5.4.9维修工管理维修工管理可以查询维修工、添加维修工、编辑维修工、删除维修工的操作。添加维修工操作前端填入头像上传、员工姓名、手机号码、邮箱账号、管理楼栋、所属类别、性别的信息后点击确定键后表单将信息传到后台系统。程序通过click检查信息内容是否为空。如果为空系统发出提示。编辑操作工操作时前端选择一条数据进行编辑,系统将纪录的ID传入后台进行编辑操作、删除操作工操作时前端选择一条数据进行删除,系统将纪录的ID传入后台进行删除操作。图5-13维修工管理维修工添加操作关键代码:publicResult<Boolean>add(Empemp){Stringe=StringUtil.generateSn("E","");emp.setNumber(e);emp.setPassword(emp.getNumber());if(emp==null){Result.error(CodeMsg.DATA_ERROR);}//用统一验证实体方法验证是否合法CodeMsgvalidate=ValidateEntityUtil.validate(emp);if(validate.getCode()!=CodeMsg.SUCCESS.getCode()){returnResult.error(validate);}if(emp.getBuilding()==null||emp.getBuilding().getId()==null){returnResult.error(CodeMsg.ADMIN_EMP_BUILDING_EMPTY);}//判断用户名是否存在if(empService.isExistUsername(emp.getNumber(),0l)){returnResult.error(CodeMsg.ADMIN_EMP_NAME_EXIST);}emp.setRole(roleService.findByRoleType(RoleType.ELECTRICIAN));}5.5个人信息管理系统管理员、维修工、学生都可以管理个人的基本信息,可以修改个人基本信息和修改密码。修改个人基本信息:图5-15修改基本信息修改个人信息关键代码:publicStringupdateUserInfo(Useruser){UserloginedUser=SessionUtil.getLoginedUser();Rolerole=loginedUser.getRole();if(role.getRoleType()==RoleType.ELECTRICIAN){Empemp=empService.find(loginedUser.getId());emp.setEmail(user.getEmail());emp.setMobile(user.getMobile());emp.setHeadPic(user.getHeadPic());empService.save(emp);loginedUser.setEmail(user.getEmail());loginedUser.setMobile(user.getMobile());loginedUser.setHeadPic(user.getHeadPic());}elseif(role.getRoleType()==RoleType.STUDENT){Studentstudent=studentService.findByID(loginedUser.getId());student.setEmail(user.getEmail());student.setMobile(user.getMobile());student.setHeadPic(user.getHeadPic());studentService.save(student);loginedUser.setEmail(user.getEmail());loginedUser.setMobile(user.getMobile());loginedUser.setHeadPic(user.getHeadPic());}else{loginedUser.setEmail(user.getEmail());loginedUser.setMobile(user.getMobile());loginedUser.setHeadPic(user.getHeadPic());userService.save(loginedUser);}//更新session里的值SessionUtil.set(SessionConstant.SESSION_USER_LOGIN_KEY,loginedUser);return"redirect:update_userinfo";}修改密码:图5-16修改密码修改密码关键代码:publicResult<Boolean>updatePwd(@RequestParam(name="oldPwd",required=true)StringoldPwd,@RequestParam(name="newPwd",required=true)StringnewPwd){if(newPwd.length()<4||newPwd==null){returnResult.error(CodeMsg.ADMIN_UPDATE_PWD_ERROR);}UserloginedUser=SessionUtil.getLoginedUser();Rolerole=loginedUser.getRole();if(!loginedUser.getPassword().equals(oldPwd)){returnResult.error(CodeMsg.ADMIN_USER_UPDATE_PWD_ERROR);}if(StringUtils.isEmpty(newPwd

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论