版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于SpringBoot的企业部门任务管理系统设计目录TOC\o"1-3"\h\u110421绪论 6313911.1研究背景 644561.2研究意义 636471.3研究主要内容 785321.4论文组织结构 791402技术介绍 782982.1Bootstrap 7150302.2MySQL数据库 799142.3Java语言及开发工具 8116212.4SpringBoot框架 817723系统分析 822213.1可行性分析 850183.1.1技术可行性 8206573.1.2安全可行性 852543.1.3操作可行性 8229583.2系统用例分析 847163.3系统功能分析 10248343.4系统数据分析 1157624系统设计 14120744.1数据库模块设计 1489374.1.1用户信息表 1448574.1.2部门信息表 1450084.1.3状态表 15182724.1.4公告信息表 15213484.1.5类型信息表 1583024.1.6职位信息表 16286034.1.7考勤信息表 163844.1.8角色信息表 1693094.1.9角色权限表 16280834.1.10菜单功能表 1732284.2公共模块设计 17197294.2.1公共模块流程设计图 17190284.2.2用户登录设计 1851454.2.3指标模块设计 18147984.2.4个人信息模块设计 18103844.3职员模块设计 19168594.3.1职员流程设计图 19301344.3.2个人任务模块设计 1924664.3.3个人考勤模块设计 19295304.4部门领导模块设计 20271194.4.1部门领导流程设计图 20159734.4.2职员信息维护模块设计 20240834.4.3任务管理模块设计 2058364.4.4考勤信息管理模块设计 2062804.4.5公告管理模块设计 21302214.5系统管理员模块设计 21168924.5.1系统管理员流程设计图 21191124.5.2系统管理模块设计 21239194.5.3角色权限管理模块设计 2120875系统实现 22252245.1数据源配置 22309065.2公共模块功能的实现 22264485.2.1用户登录的实现 22257225.2.2指标模块功能的实现 22155945.2.3个人信息模块功能的实现 239565.3职员模块功能的实现 24161445.3.1个人任务功能的实现 2474655.3.2个人考勤功能的实现 25215835.4部门领导模块功能的实现 26300725.4.1职员信息管理功能的实现 26198085.4.2任务管理功能的实现 2697125.4.3考勤信息管理功能的实现 2710415.4.4公告管理功能的实现 28225725.5系统管理员模块功能的实现 28242115.5.1系统菜单管理功能的实现 2863155.5.2角色列表管理功能的实现 29169426系统测试 30161786.1测试方法 3063166.2公共模块测试 3089846.2.1登录测试 30261046.2.2指标模块测试 30171206.2.3个人信息模块功能测试 3160766.3职员模块测试 324776.3.1个人任务功能测试 32181906.3.2个人考勤功能测试 33296146.4部门领导模块测试 3393236.4.1职员信息管理功能测试 33114696.4.2任务信息管理功能测试 35185706.4.3考勤信息管理功能测试 3521986.4.4公告管理功能测试 36145486.5系统管理员模块测试 3762476.5.1系统菜单管理功能测试 3793406.5.2角色列表管理功能测试 3819649结束语 38摘要:关键词:1绪论1.1研究背景20世纪50年代以来,企业管理就进入了现代化的信息管理阶段,对经济运行模糊的认识发展为可以用数字量化的系统认知,数据的计算分析击败了传统的经验优先思想,在这样的背景下,电子计算机在各项管理流程中成为不可或缺的工具,被各个行业广泛运用。20世纪初由于个人计算机的发展和普及,硬件资源、软件资源以及人力资源得到了极大的补充。工业控制系统因强大的数据处理能力,极强的开放性得到迅猛的发展。工业pc时代的逻辑控制器厂商,系统集成商迅速跟进,进一步促进了工控系统的发展[1]。眼下,各种服务于企业管理的软件技术均已成熟,工业控制系统被应用在各行各业的管理体系中,提升了整个行业的效率,可以说,没有一个管理系统的帮助,企业注定被被超越被淘汰。企业部门任务管理系统集成了对任务管理,职员管理,公告管理,页面管理等功能,能够有层级的,有序的调度各个用户之间的信息,能为企业内部各部门解决信息交互问题[10]。1.2研究意义生产与管理的现代化,信息与技术的普及程度将而今这个时代变成了信息的时代,信息技术下的现代社会就像是一条高速公路,在这条公路上我们即享受着更舒适的服务,也能更方便的服务他人。信息技术极大促进了社会的发展,影响着每一个行业的未来。基于SpringBoot企业部门管理系统用户界面简明美观,性能完善,具有易操作性。在提升部门任务解决率、增强企业核心竞争力具有重要作用。为了较好地解决企业各部门出现的问题,建立一套项目调配系统,大大缩短了工作期间不必要的操作,节约了时间,以及重复的工作。使部门管理能够做到系统化、规范化、自动化[5]。通过设计并实现基于springboot的企业部门任务管理系统加深系统开发者对后端框架Springboot和前端框架Bootstrap开发流程的熟悉程度和对技术本身的理解,开发者实现了对技术的整合,对思维的提升。极大提高开发者应用软件工程思想开发系统软件的能力[1][9]。1.3研究主要内容该系统基于后端框架SpringBoot和前端框架Bootstrap编写,在底层数据库上选用了MySQL,设计之初,首先完成对系统开发的需求分析,明确后选用适合开发系统的技术。然后合理设计系统的整体结构,对各个功能进行分层,最后根据分层结构逐步实现系统功能。最后进行系统测试,确保系统功能稳定[6]。1.4论文组织结构本论文基于Bootstrap的商品积分兑换平台的设计,大体结构内容如下:第一部分:绪论,介绍课题研究的背景及意义,以及研究的大致内容;第二部分:技术简介,概括性介绍系统使用的框架、语言,工具第三部分:系统分析,对系统做一个大致分析,并使用系统用例图和系统实体关系图呈现系统结构;第四部分:系统设计,对系统功能进行初步设计。第五部分:系统实现,以角色分层列出系统各个模块的功能,并附上相关代码。第六部分:系统测试,对系统主要功能进行测试,观察是否正常运行[4]。2技术介绍2.1BootstrapBootstrap是一款基于Jquery建立的完全开源的前端工具库。Bootstrap最大的特点是它所拥有响应式栅格系统,通过事先预设的CSS类,这个系统使Bootstrap能够在各个不同的平台上都能够稳定的运行前台页面,做到了一个框架多种设备。其强大的跨平台性赋予了Bootstrap长盛不衰的生命力[7]。2.2MySQL数据库MySQL数据库是用户量最多、功能也极强一个数据库,受到世界各地程序员的欢迎。这是因为它具备以下三个特点。完全开源——MySQL是开源软件,可以免费使用和修改。功能强——MySQL更新存取的速度都很快。易使用——MySQL很容易安装和使用,对新手友好[8]。2.3Java语言及开发工具Java是一门适应多平台应用程序的面向对象的程序设计语言,主要应用于WEB领域方面[2]。在代码的编译开发上,选用了IntellijIDEA作为本系统的开发工具。IntellijIDEA的主要特点和优势来自于它的智能代码助手,这个功能为系统开发提供了很大的方便,在代码的自动提示、重构、代码审查都给本次开发带来许多帮助[11]。2.4SpringBoot框架SpringBoot是一个使用极为广泛的系统开发框架,SpringBoot事先设定约束,利用事先设定的代码约束条件代替了许多需要配置的参数,因此SpringBoot框架能够开发时简单易用,不必为各种配置烦恼。SpringBoot框架又有“万能框架”之名,因为其可以集成了丰富的Spring平台以及其他第三方平台的组件[3][8]。3系统分析3.1可行性分析3.1.1技术可行性本系统使用java语言开发,采用了SpringBoot+Bootstrap+mybatis的框架结构,SpringBoot和Bootstrap都是很受欢迎的框架体系,具备兼容性强和组件丰富的特点,能够满足本系统功能的开发需求。另一方面,本系统使用MySQL作为底层数据库,Mybatis框架能够有效提高代码复用率,减少了系统冗余,使系统程序响应更快。3.1.2安全可行性用户角色的权限通过表形式保存在数据库中,在登录时通过用户名来查询用户对应的角色权限。保证了系统使用权能够有层次的分配给系统里的各个用户,系统权限由超管统一分配,只有授权后的用户才能使用系统。3.1.3操作可行性本系统采用面向对象程序设计,前台控件和后端代码一一对应,用户哪怕从未接触过该系统,也可以迅速上手,本系统前台页面简洁清爽,功能多集中在左侧菜单栏中,操作流程简单,用户可以在短时间内掌握整个系统各个功能的操作流程。3.2系统用例分析基于SpringBoot的企业部门任务管理系统具有的三个角色与功能如下:职员功能模块:个人信息管理(修改和浏览自己的个人信息)、任务的浏览、接取、和进度提交,每日上下班的考勤的提交。及基本登录功能。部门领导功能模块:用户登录功能,职员信息管理功能,即对职员信息进行增删改查,任务管理功能,发布任务,审核任务,完成任务,提交任务。系统管理员能够进行系统菜单的排序和显示,并可以对角色的信息进行修改。本系统采用角色权限分级管理,上级用户能够执行下级用户的功能,而下级用户不能执行上级用户的功能。如系统管理员不仅拥有自己的系统管理功能,也可以对部门领导执行任务管理和用户管理的功能。职员用例图如图3-1所示,系统整体用例图如图3-2所示。图3-1职员与部门领导用例图图3-2系统整体用例图3.3系统功能分析本系统基于SpringBoot开发,系统功能分为四个模块,公共模块,职员模块,部门领导模块,系统管理员模块。系统功能模块图如图3-3所示:图3-3系统功能模块图3.4系统数据分析该系统采用权限控制的方式管理用户功能,用户实体在系统功能体现为系统管理员,部门领导和职员三个实体,在任务和公告以及考勤的信息控制下,本系统将状态和类型单独处理,以便变更状态信息和类型信息。本系统的主体用户分为三类,系统管理员,部门领导和职员,因为采用权限控制的方式,故权限高的用户可以使用权限低用户的功能,而权限低的用户不能使用权限高的用户的功能,在系统整体运行上,部门领导对职员的任务信息,考勤信息,公告信息进行管理,而系统管理员则对系统菜单进行维护。图3-4系统实体关系图本系统采用权限控制的方式区分用户所能使用的功能,将菜单绑定在角色身上,根据用户对应的角色权限显示不同数量的菜单。下面是权限控制实体关系图。图3-5权限控制E-R图系统公告除自身属性外,还需要调用状态和类型表,获取不断变化的状态和类型。下面是公告实体关系图。图3-6公告实体关系图任务实体具备多种状态,比如新任务,已接受,已完成,已提交等任务状态,这些状态常常发生变化,将任务实体链接到状态表。以下是任务实体E-R图。图3-7任务实体关系图考勤实体通过调用数据库状态表和类型表来达成状态上的变更,以下是考勤实体E-R图。图3-8考勤实体关系图4系统设计4.1数据库模块设计本系统数据库设计了多张数据表,以用户信息表,部门信息表,任务状态表,通知信息表,类型信息表,职位表,考勤信息表,角色权限表为例,包含了字段名称,字段类型和字段描述。下面给出各表的具体字段名称,字段类型和字段描述。4.1.1用户信息表用户信息表(user)是对系统中用户个人信息和具体情况的存储。该表由主键系统用户ID(user_id)和其它一些属性构成,具体情况如系统用户信息所示。表4-1用户信息表字段描述字段名称字段类型用户ID号user_idbigint所在地区addressvarchar银行账号bankvarchar出生日期birthdatetime电子邮箱eamilvarchar雇佣时间hire_timedatetime身份证号user_idcardvarchar密码img_pathvarchar是否冻结is_lockint密码passwordvarchar真实姓名real_namevarchar工资salaryfloat用户学校user_schoolvarchar性别sexvarchar主题颜色theme_skinvarchar学历user_eduvarchar用户名称user_namevarchar个人签名user_signvarchar个人电话user_telvarchar历史holidayint4.1.2部门信息表部门信息表(game)包含账号ID、部门ID号,部门名,部门电话,部门经理,部门邮箱,部门地址数据。表4-2部门信息表字段描述字段名称字段类型部门IDdept_idbigint部门地址dept_addrvarchar部门传真dept_faxvarchar部门名称dept_namevarchar部门电话dept_telvarchar部门邮箱emailvarchar部门经理deptmanagerbigint结束时间end_timedatetime创立时间start_timedatetime4.1.3状态表状态表()包含状态ID号、状态颜色,状态名称,排序值,进度等数据。表4-3任务状态表字段描述字段名称字段类型状态idstatus_idbigint状态颜色status_colorvarchar状态名称status_namevarchar排序值sort_valueint进度sort_precentvarchar4.1.4公告信息表公告信息表包含通知ID、内容,状态ID字段等字段。表4-4公告信息表字段描述字段名称字段类型公告IDnotice_idbigint内容contentvarchar是否置顶is_topint发布时间modify_timedatetime通知时间notice_timedatetime状态IDstatus_idbigint标题titlevarchar类型type_idbigint链接网址urlvarchar用户IDuser_idbigint4.1.5类型信息表任务类型信息表(collection)包含类型ID、类型颜色,类型名称,排序值等数据字段。表4-5任务类型信息表字段描述字段名称字段类型类型IDtype_idbigint类型颜色type_colorvarchar类型名称type_namevarchar排序值sort_valueint4.1.6职位信息表职位信息表(position)包含职位ID,职称,姓名,部门ID数据字段。表4-6职位信息表字段描述字段名称字段类型职位IDposition_idbigint职称levelint姓名namevarchar权限describtionvarchar部门IDdeptidbigint4.1.7考勤信息表考勤信息表(attends)包含编号、标记签名,考勤时间,状态编号,考勤职员id,工作日等数据字段。表4-7考勤信息表字段描述字段名称字段类型编号attends_idbigint标记签名attends_remarkvarchar考勤时间attends_timedatetime状态编号status_idbigint类型编号type_idbigint考勤职员idattends_user_idbigint工作日week_ofdayvarchar4.1.8角色信息表角色信息表(role)包含角色ID、角色名称、角色权限等数据字段。表4-8角色信息表字段描述字段名称字段类型角色IDrole_idbigint角色名称role_namevarchar排序值role_valueint4.1.9角色权限表角色权限表(role_power)包含角色ID、菜单ID、是否显示等数据字段。表4-9角色权限表字段描述字段名称字段类型角色IDrole_idbigint菜单IDmenu_idbigint是否显示is_show Int4.1.10菜单功能表菜单信息表(munu)包含菜单ID、菜单名称、菜单映射地址。表4-10菜单功能表字段描述字段名称字段类型菜单IDmenu_idbigint是否显示is_showint菜单图标menu_iconvarchar菜单名称menu_namevarchar菜单映射地址menu_urlvarchar父级菜单IDparent_idbigint排序idsort_idInt4.2公共模块设计4.2.1公共模块流程设计图图4-1公共模块流程设计4.2.2用户登录设计企业部门任务管理系统的用户登录系统时,首先在浏览器中进入系统网站登陆界面,登录界面设计了三个文本框,分别获取用户输入的用户账号,账号密码,验证码。验证码由系统后端代码随机生成,用户输入验证码后,系统验证用户输入的验证码是否与系统生成的验证码一致,如果用户输入的验证码正确,后台调用数据库验证用户输入的账号和密码,在系统中找到对应的账号密码组合后,跳转系统首页。4.2.3指标模块设计指标模块的目的是为了让职员的完成的任务信息更直观的展现给用户,在用户登录系统后,在首页可以看到任务完成排行的数据表。该数据表能够从数据库中调取用户完成的任务数量,做好排序后以树状图的形式呈现。4.2.4个人信息模块设计用户使用系统时,可以在系统右上用户头像按钮处点击进入用户面板,用户面板是显示用户个人信息的一个页面,主要分为两个部分,个人便签面板和个人信息面板,在个人便签面板,用户可以方便的存储一些文本信息,用作提醒日常工作或彰显个性,也可以随时修改和删除。而个人信息面板则提供了用户浏览修改各种个人信息的功能,其中包括上传头像,修改密码等。4.3职员模块设计4.3.1职员流程设计图图4-2职员模块流程设计4.3.2个人任务模块设计个人任务模块是系统的核心功能,主要分为任务管理和个人任务两个部分,而普通用户则只有使用个人任务功能的权限。用户在首页菜单栏进入个人任务模块后,可以查看自己上级分配给自己的任务信息。用户可以更新任务的状态,如已接受,进行中,已提交。用户在更新任务状态时还可以在反馈栏填写任务进展,以便部门领导进行审查。4.3.3个人考勤模块设计用户在首页可以进行每天的上下班考勤提交,系统在用户申请考勤时,会自动获取用户的考勤时间和考勤次数,并利用后台设定的考勤约束来判断这个时间段可不可以考勤,如不能,弹出对话框提示不能考勤,如可以考勤,再判断今天是第几次考勤,对上班考勤和下班考勤进行区分,如超过两次,更新下班考勤时间。接着根据考勤时间和次数更新本次考勤状态,考勤状态分为迟到,正常,早退三种。4.4部门领导模块设计4.4.1部门领导流程设计图图4-3部门领导模块流程设计4.4.2职员信息维护模块设计部门领导在用户管理页面可以管理普通用户信息,可以新增新的用户信息,也可以重新设置用户的基本信息。4.4.3任务管理模块设计部门领导可以在任务管理模块发布任务,维护任务信息或是删除任务,另外部门领导可以需要审核用户提交的任务进度,普通用户提交的任务状态会同步更新到数据库,部门领导在任务管理模块可以查看用户更新的信息,并受到用户反馈的情况,部门领导审核通过后可以选择修改任务信息为已完成或者重新将任务状态修改为进行中。4.4.4考勤信息管理模块设计部门领导在考勤管理页面可以查看同部门用户的考勤信息,并可以修改职员的考勤状态。4.4.5公告管理模块设计部门领导在公告管理模块可以发布,修改,删除公告信息,公告信息可以被所有用户看到。4.5系统管理员模块设计4.5.1系统管理员流程设计图图4-4系统管理员模块流程设计4.5.2系统管理模块设计系统管理员可以对系统菜单和功能进行管理,可以对系统菜单栏进行排序,或者删除系统菜单栏。4.5.3角色权限管理模块设计本系统采用对用户权限进行了不同的限制,设置了系统管理员、部门领导、职员三个角色,不同的角色登录系统所能操作的功能不同,系统管理员可以在角色列表中浏览三个角色信息,并可以修改角色名称。5系统实现5.1数据源配置本系统的底层数据库使用了MySQL,使用Navicat新建数据库,建立数据库链接。关键的数据源配置代码如下:spring.datasource.driver-class-name=com.MySQL.jdbc.Driver
spring.datasource.url=jdbc:MySQL://localhost:3306spring.datasource.username=root
spring.datasource.password=root5.2公共模块功能的实现5.2.1用户登录的实现用户进入登录界面输入账号密码,点击登录按钮触发登录事件,系统会把登录信息传入后台,调用相应的dao层方法findoneuser来判断用户名与密码的组合是否正确,若找到相应组合则将相应的用户名存入user对象。若查找成功且账号未被冻结则跳转至首页。若失败则返回错误信息,跳转回登录界面。关键代码如下://登录检查
Useruser=uDao.findOneUser(userName,password);
if(Objects.isNull(user)){
model.addAttribute("errormess","账号或密码错误!");
return"login/login";
}
if(user.getIsLock()==1){
model.addAttribute("errormess","账号已被冻结!");
return"login/login";
}
else{
return"redirect:/index";
}5.2.2指标模块功能的实现指标管理模块是对职员完成任务数的一个统计功能,在数据库中已完成状态的数据进行获取,利用在后端对比排序后,传送数据到前端,以可视化图表的方式显示出来的。用户进入前台页面后,前台页面发出向controller层发出请求后,通过dao层方法countfinish方法获取任务状态id为7的用户名和完成任务数,即任务已完成的用户,将用户信息传入hashMap表中以便前台调用。核心代码如下:List<User>uList=uDao.findAll();
HashMap<String,Integer>hashMap=newHashMap<>();inti=0;
for(Useruser:uList){
if(taskDao.countfinish(7l,user.getUserId())>0){
hashMap.put(user.getUserName(),taskDao.countfinish(7l,user.getUserId()));
i++;
}
}
returnnull;
}5.2.3个人信息模块功能的实现个人信息模块分为个人信息维护和个人便签维护两个部分。在用户进入用户面板个人信息页面后,可以对个人信息进行维护,首先前台将用户id传入后台,后台Controller层调用dao层findone方法找到对应用户id,获取该用户信息传回前台。如果用户想要修改个人信息则通过后台事先设定的set方法来重新设置。
publicStringsaveemp(@RequestParam("filePath")MultipartFilefilePath,HttpServletRequestrequest,@ValidUseruser,
BindingResultbr,@SessionAttribute("userId")LonguserId)throwsIllegalStateException,IOException{
Stringimgpath=nservice.upload(filePath);
Userusers=udao.findOne(userId);
//重新set用户信息
users.setRealName(user.getRealName());
users.setUserTel(user.getUserTel());
………………
}用户可以在个人便签页面对自己的便签进行增删改操作,选择新增便签作为例子。首先在controller层设置一个savepaper来接受前端页面传回的信息,在处理完信息后,调用dao层save方法保存便签,核心代码如下:publicStringsavepaper(Notepapernpaper,@SessionAttribute("userId")LonguserId
@RequestParam(value="concent",required=false)Stringconcent){
Useruser=udao.findOne(userId);
npaper.setCreateTime(newDate());
npaper.setUserId(user);
System.out.println("内容"+npaper.getConcent());
if(npaper.getTitle()==null||npaper.getTitle().equals(""))
npaper.setTitle("无标题");
if(npaper.getConcent()==null||npaper.getConcent().equals(""))
npaper.setConcent(concent);
ndao.save(npaper);
return"redirect:/userpanel";
}5.3职员模块功能的实现5.3.1个人任务功能的实现个人任务功能主要分为个人任务查看和个人任务状态反馈两部分。职员进入任务管理界面可以查看上级委派的任务信息,在后台通过modelandview构造个人查看任务页面,获取前端用户id等信息,调用dao层findone函数获取用户任务信息在传回前台显示。核心代码如下:
publicModelAndViewmyseetask(HttpServletRequestreq,@SessionAttribute("userId")LonguserId){
ModelAndViewmav=newModelAndView("task/myseetask");
Stringtaskid=req.getParameter("id");
Longltaskid=Long.parseLong(taskid);
Tasklisttask=tdao.findOne(ltaskid);
Iterable<SystemStatusList>statuslist=sdao.findAll();
Longustatus=tudao.findByuserIdAndTaskId(userId,ltaskid);
SystemStatusListstatus=sdao.findOne(ustatus);
Useruser=udao.findOne(task.getUsersId().getUserId());
List<Tasklogger>logger=tldao.findByTaskId(ltaskid);
mav.addObject("task",task);
……………
returnmav;
}职员可以在个人任务界面修改任务的状态,每个任务分为新任务,已接取,进行中,已完成,已取消各个状态。在用户修改状态后,调用dao层修改任务中间表状态,接着获取任务表中的状态,选择最新的状态id并更改任务表的状态。核心代码如下:
if(!Objects.isNull(logger.getLoggerStatusid())){
tasku.setStatusId(logger.getLoggerStatusid());
}
//存任务中间表
tudao.save(tasku);
//通过任务id查看总状态
List<Integer>statu=tudao.findByTaskId(logger.getTaskId().getTaskId());
//选出最小的状态id修改任务表里面的状态
Integermin=statu.get(0);
for(Integerinteger:statu){
if(Value()<min){
min=integer;
}
}5.3.2个人考勤功能的实现考勤功能是该系统的重要组成部分,系统在首页设置标签,在职员进行考勤操作时,通过系统时间判断考勤是否符合规范,通过记录考勤次数判断上班考勤和下班考勤。关键代码如下:
if(count==0){
if(pareTo(end)<0){
typeId=8;
if(pareTo(start)>0){
statusId=11;
}elseif(pareTo(start)<0){
statusId=10;
}
attends=newAttends(typeId,statusId,date,hourmin,weekofday,attendip,user);
attenceDao.save(attends);
}
}
if(count==1){
typeId=9;
if(pareTo(end)>0){
statusId=10;
}elseif(pareTo(end)<0){
statusId=12;
}
if(count>=2){
if(pareTo(end)>0){statusId=10;
}elseif(pareTo(end)<0){
statusId=12;
}5.4部门领导模块功能的实现5.4.1职员信息管理功能的实现部门领导可以维护职员信息,对其进行增删改查,下面以添加修改职员信息为例,前台将用户名等信息传入后台控制层,后台首先判断用户名是否为空,若用户名为空执行新增操作,若不为空,则调用dao层获取该用户信息,重新设置用户信息。核心代码如下:if(user.getUserId()==null){
user.setPassword("123456");
user.setFatherId(dept.getDeptmanager());……
udao.save(user);
}else{
Useruser2=udao.findOne(user.getUserId());
user2.setUserTel(user.getUserTel());//重新设置用户信息
user2.setRealName(user.getRealName());……
user2.setRole(role);
udao.save(user2);
}
model.addAttribute("success",1);
return"/usermanage";
}5.4.2任务管理功能的实现任务管理模块是部门领导对任务的管理模块,对任务本身可以进行查看,修改,取消,审核等操作。前台将任务相关信息传达至后台,后台根据前台数据设置任务的信息,并保存到数据库中,另外通过构造StringTokenizer对象来分割任务接受人,并将接受人与任务状态信息保存到任务与用户中间表,以便前台查询。以任务发布为例。关键逻辑代码如下:
publicStringaddtask(@SessionAttribute("userId")LonguserId,HttpServletRequestrequest){
Useruserlist=udao.findOne(userId);request.getAttribute("success");
list.setUsersId(userlist);//设置用户id
list.setPublishTime(newDate());//设置交付时间
list.setModifyTime(newDate());//设置修改时间
tdao.save(list);
//分割任务接收人
StringTokenizerst=newStringTokenizer(list.getReciverlist(),";");
while(st.hasMoreElements()){Userreciver=udao.findid(st.nextToken());Taskusertask=newTaskuser();
task.setTaskId(list);
task.setUserId(reciver);
task.setStatusId(list.getStatusId());//设置任务,用户,状态
//存任务中间表
tudao.save(task);
}5.4.3考勤信息管理功能的实现部门领导可以查看自己部门职员的考勤信息,首先,前台发出请求并传回任务id等信息,后台根据用户名查找到所有父级id相同的用户信息放入request域中。前台调用request域中的信息并显示。
LonguserId=Long.parseLong(session.getAttribute("userId")+"");
List<Long>ids=newArrayList<>();
List<User>users=uDao.findByFatherId(userId);
for(Useruser:users){
ids.add(user.getUserId());
}
Useruser=uDao.findOne(userId);List<SystemTypeList>type=(List<SystemTypeList>)typeDao.findByTypeModel("aoa_attends_list");//获取考勤表状态和类型List<SystemStatusList>status=(List<SystemStatusList>) statusDao.findByStatusModel("aoa_attends_list");
request.setAttribute("typelist",type);
request.setAttribute("statuslist",status);
}部门领导不仅可以查看部门职工的考勤信息,还能对这些考勤信息进行增删改操作。以修改考勤信息为例,后台控制层获取前台传来的数据后,对数据进行处理后保存到数据库考勤表中,页面跳转考勤修改成功页面。
publicStringtest4(Modelmodel,HttpSessionsession,HttpServletRequestrequest){
Longuserid=Long.parseLong(session.getAttribute("userId")+"");
Stringstatusname=request.getParameter("status");
SystemStatusListstatusList=statusDao.findByStatusModelAndStatusName("aoa_attends_list",statusname);
longid=Long.parseLong(request.getParameter("id"));
Attendsattends=attenceDao.findOne(id);
attends.setStatusId(statusList.getStatusId());
attenceDao.save(attends);
return"redirect:/attendceatt";
}5.4.4公告管理功能的实现部门领导可以对公告进行管理,通过后端Controller层的相应方法对数据库进行操作实现数据的增删改查。以编辑公告为例,在后端程序获取session域中的进入编辑界面的公告ID值,判断执行新增公告还是修改公告,并将调用Service层将处理好的数据更新到表中。核心代码如下:if(!StringUtils.isEmpty(session.getAttribute("noticeId"))){
menuId=(Long)session.getAttribute("noticeId");//获取进入编辑界面的menuID值
NoticesListinform=informDao.findOne(menuId);
menu.setNoticeTime(inform.getNoticeTime());
menu.setNoticeId(menuId);
informService.save(menu);
}else{
menu.setNoticeTime(newDate());
menu.setUserId(userId);
NoticesListnoticeList=informService.save(menu);
List<User>userList=uDao.findByFatherId(userId);
for(Useruser:userList){
informrelationservice.save(newNoticeUserRelation(noticeList,user,false));
}
}5.5系统管理员模块功能的实现5.5.1系统菜单管理功能的实现系统管理员可以修改界面所能显示的菜单,并根据权限同步修改部门领导和职员的菜单。主要可以分为菜单的删除和排序两个部分,以菜单的删除为例。核心代码如下:
publicStringdelete(HttpServletRequestreq){
LongmenuId=Long.parseLong(req.getParameter("id"));
inti=menuService.deleteThis(menuId);
("{}:i=",i);
return"forward:/testsysmenu";
}5.5.2角色列表管理功能的实现系统管理员在角色管理页面可以查看角色信息。@RequestMapping("rolemanage")
publicModelAndViewindex(@RequestParam(value="page",defaultValue="0")intpage,
@RequestParam(value="size",defaultValue="10")intsize){
Pageablepa=newPageRequest(page,size);
ModelAndViewmav=newModelAndView("role/rolemanage");
Page<Role>pagerole=rdao.findAll(pa);
List<Role>rolelist=pagerole.getContent();
mav.addObject("page",pagerole);
mav.addObject("rolelist",rolelist);
mav.addObject("url","roleser");
returnmav;
}系统管理员可以对角色信息进行增删改查,以角色列表的修改为例。核心代码如下:@RequestMapping("modifyrole")
publicStringindex4(HttpServletRequestreq,@ValidRolerole,BindingResultbr){
Stringid=null;
if(!StringUtil.isEmpty(req.getParameter("id"))){
id=req.getParameter("id");
}
if(!StringUtil.isEmpty(id)){
Longlid=Long.parseLong(id);
Roleroles=rdao.findOne(l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能制造产业链2025年市场细分策略方案解读
- 种植农场运营方案范文
- 高中教育一岗双责制度
- 2026 学龄前自闭症如厕自理训练课件
- 陕西省多校2026届高三下学期模拟预测语文试卷(含答案)
- 2026 育儿幼儿陶艺烧制复杂工艺课件
- 施工安全草原生态转阴为阳管理制度
- 液化石油气安全管理制度
- 体育馆项目临时用电专项方案
- 2026年上半年软件评测师考试基础知识真题(专业解析+参考答案)
- 福建省厦门外国语中学2026届高一下数学期末综合测试模拟试题含解析
- GB/T 1402-2025轨道交通牵引供电系统电压
- 2026年山东省消防设施操作员职业技能鉴定及答案
- DB42T2488-2025微型钢管桩应用技术规程
- 2025年GOLD慢性阻塞性肺疾病诊疗指南
- 2025上海市阳光社区青少年事务中心徐汇工作站招聘5人备考题库及答案详解(历年真题)
- 汽车检测维修毕业论文
- 武汉轻工大学本科生毕业设计(论文)撰写规范
- 彩钢瓦屋面施工安全技术规范方案
- 政治风险评估模型-洞察与解读
- TZDTX 0012-2025 铁路分布式光伏发电工程技术规范
评论
0/150
提交评论