人事管理报告_第1页
人事管理报告_第2页
人事管理报告_第3页
人事管理报告_第4页
人事管理报告_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

成绩软件设计综合实习报告实习题目:人事管理系统学生姓名:徐成娇学号:13416216学院:怀德学院专业班级:计算机131同组成员:张彩玲杨芳 指导教师:倪彤光实习时间:2023年9月5日2023年10月10日

目录1引言31.1编写目的31.2背景31.3定义32项目开发计划32.1重要参与人员32.2产品32.2.1非移交的产品32.2.2服务32.3验收标准32.4完毕项目的最迟期限42.5工作任务的分解与人员分工42.6进度43可行性分析43.1技术可行性43.2经济可行性43.3操作可行性43.4功能可行性53.5局限性54需求分析54.1项目概述54.1.1规定54.1.2目的54.1.3运营环境54.1.4具有的功能54.1.5用户特点54.2功能需求64.2.1功能描述64.2.2系统功能架构64.2.3数据流图74.3系统的数据需求74.3.1数据录入和解决的准确性和实时性74.3.2数据的一致性和完整性74.3.3数据的共享性和独立性75概要设计85.1总体架构设计85.1.1系统重要结构85.1.2系统开发环境及工具85.1.3JSP技术85.2总体功能结构设计85.3数据库设计95.4各模块E-R图126具体设计136.1登录模块136.1.1登录模块流程图146.1.2实现模块的重要代码及界面146.2人事管理模块176.2.1模块流程图176.2.2实现模块的重要代码及界面186.3告知公告模块246.3.1模块流程图246.3.2实现模块的重要代码及界面256.4规章制度模块266.4.1模块流程图266.4.2实现模块的重要代码及界面277用户操作手册297.1系统操作说明297.1.1系统操作流程297.1.2系统的启动307.2系统管理员操作说明307.2.1功能描述307.2.2操作方法308系统测试338.1系统测试概述338.2测试计划358.3测试用例358.3.1系统功能测试358.3.2子模块测试368.4测试评估379设计心得37参考文献38人事管理系统1引言1.1编写目的21世纪是知识经济的时代,是人才竞争的时代,随着21世纪的到来,人类已步入信息社会,信息产业正成为全球经济的主导产业。信息自动化的作用也越来越大,特别是各行业的管理领域,智能化信息解决已是提高效率、规范管理、客观审查的最有效途径。人事管理系统在当今社会中是一个不可或缺的、必备的工具软件。然而,一个好的高质量的软件还是少之又少的。并未主线的实现智能化。亦不利于实现科学的管理、体现领导者的决策作用。因此,在本软件设计中心准备开发一个功能完善的人事管理系统。人事管理系统是一个公司不可缺少的部分,它的内容对于公司的决策者和管理者来说都至关重要,随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻结识,它已进入人类社会的各个领域并发挥着越来越重要的作用。1.2背景鉴于现今经济的迅速发展,人们对生活品位的提高,是为了满足人们需求的背景下提出来的理论系统。1.3定义人事管理:所谓人事管理,是指以从事社会劳动的人和有关的事的互相关系为对象,通过组织,协调,控制,监督等手段,谋求人与事以示共事人之间的互相适应,实现充足发挥人的潜能,把事情做得更好这一目的所进行的管理活动。2项目开发计划2.1重要参与人员本小组内成员杨芳、徐成娇、张彩玲。2.2产品一方面在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改善,直到形成可行系统。2.2.1非移交的产品《需求规格说明书》、《概要设计说明书》、《具体设计说明书》、《源代码清单》、《系统测试计划》和《最终测试结果报告》。2.2.2服务1.普通员工:登录系统查询信息2.管理员:登录系统查询、修改、删除、增长信息2.3验收标准1.测试用例不通过数的比例<3%;2.不存在错误等级为1或2的错误;3.错误等级为3的错误数量<=10;4.所有提交的错误都已得到更正。2.4完毕项目的最迟期限2023年10月05日2.5工作任务的分解与人员分工1.设计师(进行需求分析、架构设计和功能设计):张彩玲、杨芳2.开发人员(进行具体的编码工作和单元测试):杨芳、张彩玲3.测试人员(根据计划和总体方案对产品进行系统测试):徐成娇2.6进度时间任务第一周需求分析第二周系统概要设计和系统具体设计第三周编码与测试执行第四周测试评估与部署第五周系统维护3可行性分析3.1技术可行性社保管理、协议管理和部门管理重要涉及数据库的查询和更新,这些信息都可以很清楚的用关系数据库模式表达出来,采用数据库的操作没有难度。

而员工管理模块中的月末记录也只是一个查询记录功能,这些在设计数据库好之后就不是问题。

从规模上来说,人事管理系统应属于中小型数据库应用程序,在过程设计期间可以完毕。从系统需求分析到系统测试的所有工作,不存在开发时间限制的问题。

基于人事管理系统不属于大的数据库系统,并且没有严格的实时性的规定,因此,只要普通系统配置就可运营。对于人事管理系统的开发就没有特殊的规定。3.2经济可行性人事管理系统属于中小规模的MIS,所需的资源不多,开支不会很大,也不需要特殊设备的支持,需要的只是作为服务器的计算机,尚有作为开发平台的计算机就可以了。并且,在系统开发完毕以后,由于人事管理的广泛性,可将系统扩展为通用的软件,增长其重要性,实现资源的最大运用率。这样减少了系统的经济开支,从而实现经济上的可行性。3.3操作可行性随着我国加入世界贸易组织,我国公司与世界联系的更加密切,要想我们的公司管理与世界同步,最重要的就是运用当今飞速发展的计算机技术和网络资源。计算机技术突飞猛进的发展,对世界产生了主线性的影响,特别是对机构、公司的组织结构的影响可谓空前绝后。所以人事管理系统具有社会可行性。3.4功能可行性公司内部的人事的管理,从大的方面分重要集中在公司职工的个人情况、工资细目、调入调出及用车等。所以该系统重要是实现对数据的录入、插入、删除,网上查询.记录.更新.打印等功能。另一方面,为了信息的保密与安全,系统还要提供一定的安全机制。3.5局限性软件系统可以使公司方面地管理所有的员工信息和部门信息,这使得公司可以高效地完毕一项工作。但是,为了能让管理系统发挥出最大的作用,公司管理人员必须努力学习如何对的使用该系统,并且尽自己的职责让它正常运转。4需求分析4.1项目概述4.1.1规定公司人事管理系统必须提供人员基本信息、社保信息,协议信息,部门信息,的基础设立。此外,该系统还必须保证数据的安全性、完整性和准确性。4.1.2目的公司人事管理系统的重要目的是实现公司人事的信息化管理,重要业务就是实现对员工信息的管理,此外还需要提供打印报表功能,其中涉及员工基本信息,协议、社保、部门、员工调动等信息。项目实行后,可以减少管理成本、合理控制人员调动、减少资金占有并提高公司的市场竞争力。4.1.3运营环境CPU:1.4G以上操作系统:WindowsXP以上操作系统软件平台:spring开发工具数据库系统:mysql数据库4.1.4人事管理系统应当具有以下功能(1)系统操作简朴,界面和谐。(2)规范、完善的基础信息设立,涉及对员工基本信息的录入、增长、删除、修改等。(3)支持多人操作,规定具有权限分派功能,按照不同的权限分派可操作功能。(4)为了方便用户,规定系统支持多条件查询。(5)对员工信息在需要时打印不同需要的报表。(6)支持数据更新调整。4.1.5用户特点重要是公司人事部门或公司管理人员使用,对人事管理系统的了解情况参差不齐,规定人事管理系统简朴易懂、易操作。4.2功能需求4.2.1功能描述根据公司人事管理的特点,需要实现以下功能:(1)员工档案的管理:涉及员工基本信息(姓名、性别、年龄)、所在部门、工作信息和工作简历的输入。(2)员工信息的查询、修改和删除(3)员工工资的管理:涉及工资的添加,工资报表的查询、修改和删除(4)管理员将需要的信息以报表形式输出打印4.2.2系统功能架构人事管理系统人事管理系统系统设立档案管理用户登录工资管理帮助信息增删管理员修改密码重新登录退出系统修改员工工资计发员工工资工资明细查询打印职工工资建立员工档案修改员工档案删除员工档案查询档案信息图1人事管理系统功能图4.2.3数据流图用户登录用户登录用户表管理员验证成功读取信息查找信息密码人事管理系统管理用户管理员工基本信息管理修改管理写入添加删除用户工资信息员工基本档案信息用户管理表员工工资管理图2人事管理系统数据流图 4.3系统的数据需求4.3.1数据录入和解决的准确性和实时性数据的输入是否准确是数据解决的前提,错误的输入会导致系统输出的不对的和不可用,从而使系统的工作失去意义。数据的输入来源是手工输入,手工输入要考虑系统界面上的容错性,并且对操作人员要进行系统的培训。在系统中,数据的输入往往是大量的,因此系统要有一定的解决能力,以保证迅速的解决数据。4.3.2数据的一致性与完整性系统涉及的数据统一存储在服务器端。系统的数据是共享的,如何保证数据的一致性,是系统必须解决的问题。要解决这一问题,要有一定的人员维护数据的一致性,在数据录入处控制数据的去向,并且规定对数据库的数据完整性进行严格的约束。对于输入的数据,要为其定义完整性规则,假如不能符合完整性约束,系统应当拒绝该数据。4.3.3数据的共享与独立性整个管理系统的数据是共享的。然而,从系统开发的角度上看,共享会给设计和调试带来困难。因此,应当提供灵活的配置,使各个分系统可以独立运营,而通过人工干预的手段进行系统数据的互换。这样,也能提供系统的强壮性。5概要设计5.1总体架构设计5.1.1系统重要结构本系统采用B/S结构,即浏览器/服务器(Browser/Server,缩写为B/S)结构。它是一种特殊的客户机/服务器结构,重要应用在Internet网中,提供了大量的服务,与传统C/S两层体系结构相比,有许多优势。5.1.2系统开发环境及工具人事管理系统系统存放数据的开发工具是MySQL,设计代码的平台是Sring。作为小型管理系统开发环境,是很合适的。它不仅提供了很大量的jar包,并且在进行编码时能及时给出适当的提醒,重要是根据首字母匹配函数名,并且会对该函数进行简要的解释,一目了然地知道它的功能和返回值,可以省去很多记错记混的麻烦。MySQL是关系型数据库,意思就是以表格的形式存储数据,一个数据库就是可以由一个或者很多个表格组成,就是所谓的关系型数据库。而对于该类数据库的访问读取都是由SQL语句来进行管理的,通过不同的SQL语句的传入,来执行表的增删改功能,实现数据的读取和更新。并且与SQLServer不同的是,MySQL是开源的。意思就是大家都可以根据自己的需求,以及开发习惯,对该平台的功能进行自定义的修改。5.1.3JSP技术人事管理系统是采用JSP技术开发的,该技术可以创建很丰富的基于网页的应用程序,使用上也有很明显的引导作用。在设计时,可以自定义显示模式和操作模式,系统的信息显示模块,正是需要显示区分不同角色的显示界面。此外网页形式的开发是充足具有灵活性的,即可以设立很多显示样式,也能提供源代码参考学习。按照系统的需求,比如系统的期刊管理功能,能在不重启浏览器的情况下,根据显示最新的操作结果。5.2总体功能结构设计根据之前的系统分析,我们可以将整个该系统分为三大模块:人事管理模块,公告告知模块以及规章制度模块。人事管理系统的模块结构图所下所示:管理员登录管理员登录输入验证码规章制度告知公告人事管理规章制度告知公告人事管理规章制度管理规章制度列表告知公告管理告知公告列表规章制度管理规章制度列表告知公告管理告知公告列表在职用户管理离职用户管理图4.1人事管理系统模块结构图下面将简朴介绍本系统三个用户对象的基本功能模块:(1)人事管理模块:对在职用户管理(增长,删除,设为离职用户)和离职用户管理(填写离职信息,激活离职用户为在职)。(2)告知公告管理:对公告的增长、修改、删除以及显示告知公告列表。(3)规章制度管理:其中涉及对规章制度的增长、修改、删除以及显示规章制度的列表。5.3数据库设计在设计人事管理管理系统的时候,根据系统的各模块实现的功能。在数据库设计中,抽象出三实体类,分别为员工信息实体类,公告实体类,规章制度实体类。其中员工实体类中涉及姓名、出生年月日、身份证号码、籍贯、性别、部门、联系方式、入职时间、公积金账号、毕业院校、毕业时间、专业、家庭住址等。告知实体类中涉及标题,内容等。规章制度实体类中涉及标题,内容等。四个实体类的属性图分别为4-1至4-3。出生年月日性别姓名出生年月日性别姓名身份证号工资身份证号工资籍贯员工籍贯员工入职时间入职时间专业专业联系方式毕业院校联系方式毕业院校图4-1员工实体属性图公告公告内容标题内容标题图4-2公告实体属性图规章制度规章制度内容标题内容标题图4-2规章制度实体属性图根据各个实体属性图,一共设计了四张表分别为用户登录信息表,教员表,课题表,告知表。如下表所示。用户登录信息表:字段说明类型可空备注idIDIntNo主键,自增name姓名varchar(50)Nopassword密码varchar(50)No加密员工基本信息表:字段说明类型可空备注idIDIntNo主键,自增name姓名varchar(50)Yessex性别varchar(50)Yesemail邮箱varchar(50)Nophone手机varchar(50)NoSalary工资varchar(50)NoOrigin籍贯varchar(50)YesHouse户籍地址varchar(50)YesPlace现居住地varchar(50)YesCard身份证号varchar(50)YesSchool毕业院校varchar(50)YesTime入职时间varchar(50)NoSubject专业varchar(50)YesSchool1毕业院校varchar(50)YesNumber公积金账号varchar(50)YesBirthday出生年月日varchar(50)Yes告知公告信息表:字段说明类型可空备注idIDIntNo主键,自增Title标题varchar(50)YesText内容varchar(50)Yes规章制度信息表:字段说明类型可空备注idIDIntNo主键,自增Title标题varchar(50)YesText内容varchar(50)Yes5.4各模块E-R图在职用户管理E-R图:管理员管理员选择增长修改查询在职工工信息设为离职11NNN离职职用户管理E-R图:管理员管理员选择搜索激活帐号查询离职用户信息离职信息11NNN告知公告模块E-R图:管理员管理员选择增长修改查看告知列表删除11NNN规章制度模块E-R图:管理员管理员选择增长修改查看规章制度列表删除11NNN6具体设计通过需求分析和总体设计,己具有系统实现的条件,接下来通过对各个模块的重要功能描述、部分页面体现、实现方法来完毕对毕业设计选题管理系统的设计。6.1登录模块系统登录模块是用来验证管理员登录输入的用户名、密码、验证码。假如输入错误,系统会提醒相应的错误信息,且验证码会重新生成。6.1.1登录模块流程图开始开始用户名是否为空密码是否为空提醒用户验证码对的?结束输入用户名是否为空密码是否为空提醒用户验证码对的?结束是否是否用户名存在?用户名存在?否是密码对的?密码对的?否是是登录成功登录成功6.1.2实现登录的重要代码及登录界面代码如下:@ControllerpublicclassLoginController{ //视图途径 privatestaticfinalStringLOGIN="login"; @Resource privateSysUserServicesysUserService; @RequestMapping(value="/login",method=RequestMethod.GET) publicStringlogin(HttpServletRequestrequest,HttpServletResponseresponse){ clearSession(request); returnLOGIN; } //登录验证 @RequestMapping(value="/checkLogin",method={RequestMethod.GET,RequestMethod.POST}) @ResponseBody publicAjaxJsoncheckLogin(HttpServletRequestrequest,HttpServletResponseresponse){ clearSession(request); //设立服务器缓存 HttpSessionsession=request.getSession(); AjaxJsonresult=newAjaxJson(); Stringusername=StringEscapeUtils.escapeHtml4(request.getParameter("username")); Stringpassword=StringEscapeUtils.escapeHtml4(request.getParameter("password")); //前台验证码 Stringcode=StringEscapeUtils.escapeHtml4(request.getParameter("code")); //系统实际验证码 StringcurrentCode=(String)SpringUtil.getSession().getAttribute(TagName.LoginCodeSession); //判断验证码是否对的 if(code.equalsIgnoreCase(currentCode)){ SysUsersysUser=sysUserService.getByUserName(username); if(null!=sysUser){ //判断密码是否一致 if(sysUser.getPassword().equals(MD5Encoder.md5(password))){ //第一次到首页缓存标签设立为true session.setAttribute(TagName.FirstIndexSession,true); sysUser.setLastLoginDate(newDate()); sysUser.setLastLoginIp(RequestUtils.getIpAddr(request)); sysUserService.update(sysUser); // if(!sysUser.getIsAdmin()){// //设立用户权限// List<SysGroupPermission>pList=sysGroupPermissionService.getListByGroup(sysUser.getGroup().getId());// sysUser.setPermissionCodes(newArrayList<String>());// for(SysGroupPermissionsysUserPermission:pList){// sysUser.getPermissionCodes().add(sysUserPermission.getPermissionValue());// }// } session.setAttribute(TagName.SysUserSession,sysUser); }else{ result.setSuccess(false); result.setMsg("密码不对的!"); } }else{ result.setSuccess(false); result.setMsg("用户不存在!"); } }else{ result.setSuccess(false); result.setMsg("验证码错误!"); } returnresult; } //退出登录 @RequestMapping(value="/logout",method=RequestMethod.GET) publicStringlogout(HttpServletRequestrequest,HttpServletResponseresponse){ //request.getSession().invalidate(); clearSession(request); returnLOGIN; } //清除session privatevoidclearSession(HttpServletRequestrequest){ request.getSession().removeAttribute(TagName.SysUserSession); request.getSession().removeAttribute(TagName.SysUserMenuSession); } }登录页面如图所示:6.2人事管理模块人事管理模块用来管理在职用户和离职用户信息。6.2.1模块流程图在职用户管理模块流程图:开始开始在职用户管理在职用户管理模糊查询否模糊查询是输入用户姓名输入用户姓名用可用数据?用可用数据?否是提醒没有数据显示用户信息提醒没有数据显示用户信息选择操作?选择操作?是修改设为离职用户增长搜索修改设为离职用户增长搜索操作完毕后更新在职用户表操作完毕后更新在职用户表结束结束离职用户管理模块流程图:开始开始离职用户管理离职用户管理模糊查询否模糊查询是输入用户姓名输入用户姓名用可用数据?用可用数据?否是提醒没有数据显示用户信息提醒没有数据显示用户信息选择操作?选择操作?是激活账号离职信息搜索激活账号离职信息搜索操作完毕后更新离职用户表操作完毕后更新离职用户表结束结束6.2.2实现人事管理模块的重要代码及界面实现在职用户管理重要的代码如下: @RequestMapping(value="userListData",method={RequestMethod.POST,RequestMethod.GET}) @ResponseBody publicJSONArrayuserListData(HttpServletRequestrequest,HttpServletResponseresponse){ StringgroupId=StringEscapeUtils.escapeHtml4(request.getParameter("groupId"));//所属岗位id CriteriaQuerycq=newCriteriaQuery(SysUser.class,request); if(StringUtils.isNotBlank(groupId)){ cq.add(Restrictions.eq("group.id",groupId)); } cq.add(Restrictions.eq("isDeleted",false)); cq.add(Restrictions.eq("isAdmin",false)); List<SysUser>list=sysUserService.getList(cq,null,null,false); SimplePropertyPreFilterfilter=newSimplePropertyPreFilter(SysUser.class,"id","realname"); Stringresult=JSONArray.toJSONString(list,filter); JSONArrayjsonArray=JSON.parseArray(result); returnjsonArray; } @RequestMapping(value="edit",method={RequestMethod.POST,RequestMethod.GET}) publicStringedit(HttpServletRequestrequest,HttpServletResponseresponse){ Stringid=StringEscapeUtils.escapeHtml4(request.getParameter("id")); SysUsersysUser=null; if(StringUtils.isNotBlank(id)){ sysUser=sysUserService.findByLoadId(SysUser.class,id); } if(sysUser==null){ sysUser=newSysUser(); } SysUserloginUser=getLoginSysUser(request);//当前登录者 request.setAttribute("user",sysUser); request.setAttribute("loginUser",loginUser); returnEDIT; } @RequestMapping(value="view",method={RequestMethod.POST,RequestMethod.GET}) publicStringview(HttpServletRequestrequest,HttpServletResponseresponse){ Stringid=StringEscapeUtils.escapeHtml4(request.getParameter("id")); SysUsersysUser=null; if(StringUtils.isNotBlank(id)){ sysUser=sysUserService.findByLoadId(SysUser.class,id); } if(sysUser==null){ sysUser=newSysUser(); } request.setAttribute("user",sysUser); returnVIEW; } @RequestMapping(value="save",method={RequestMethod.POST,RequestMethod.GET}) @ResponseBody publicAjaxJsonsave(HttpServletRequestrequest,HttpServletResponseresponse,SysUserpojo){ AjaxJsonresult=newAjaxJson(); SysUserloginUser=getLoginSysUser(request); Stringid=StringEscapeUtils.escapeHtml4(request.getParameter("id")); //后台验证 if(!validateForm(result,pojo)){ returnresult; } try{ if(StringUtils.isBlank(id)){ pojo.setCreateUser(loginUser); pojo.setCreateDate(newDate()); pojo.setIsDeleted(false); pojo.setIsAdmin(false); sysUserService.save(pojo); }else{ SysUsermodel=sysUserService.findByLoadId(SysUser.class,id); model.setUpdateUser(loginUser); model.setUpdateDate(newDate()); MyBeanUtils.copyBeanNotNull2Bean(pojo,model); sysUserService.update(model); } }catch(Exceptione){ log.error("保存用户失败!",e); result.setSuccess(false); result.setMsg("保存失败!"); } returnresult; } //设立离职用户 @RequestMapping(value="del",method={RequestMethod.POST,RequestMethod.GET}) @ResponseBody publicAjaxJsondel(HttpServletRequestrequest,HttpServletResponseresponse){ AjaxJsonresult=newAjaxJson(); String[]ids=request.getParameter("ids").split(","); if(ids!=null&&ids.length>0){ for(Stringid:ids){ SysUsersysUser=sysUserService.findByLoadId(SysUser.class,id); if(sysUser.getIsAdmin()){ result.setSuccess(false); result.setMsg("不能将超管账号设为离职!"); returnresult; } } } Stringmodule=SysUser.class.getAnnotation(Log.class).module(); try{ sysUserService.deleteByIds(ids,true); //删除日记信息 Map<String,String>logMap=logUtil.getDeleteLogInfo(ids,SysUser.class,sysUserService,"设立离职"); //删除成功日记 logUtil.deleteLog(request,logMap,"设立离职"); }catch(Exceptione){ logUtil.deleteFailLog(request,"设立离职用户失败,"+e,module,"设立离职"); log.error("设立离职用户失败!",e); result.setSuccess(false); result.setMsg("设立失败!"); } returnresult; } }在职用户页面如图所示:实现离职用户管理的重要代码: @RequestMapping(value="leaveInfo",method={RequestMethod.POST,RequestMethod.GET}) publicStringleaveInfo(HttpServletRequestrequest,HttpServletResponseresponse){ StringuserId=StringEscapeUtils.escapeHtml4(request.getParameter("userId")); SysUserLeaveInfosysUserLeaveInfo=null; SysUsersysUser=null; if(StringUtils.isNotBlank(userId)){ sysUser=sysUserService.findByLoadId(SysUser.class,userId); sysUserLeaveInfo=sysUserLeaveInfoService.findUniqueByProperty(SysUserLeaveInfo.class,"user",sysUser); } if(sysUserLeaveInfo==null){ sysUserLeaveInfo=newSysUserLeaveInfo(); sysUserLeaveInfo.setUser(sysUser); } request.setAttribute("sysUserLeaveInfo",sysUserLeaveInfo); returnLEAVE_INFO; } //保存离职信息 @RequestMapping(value="saveLeaveInfo",method={RequestMethod.POST,RequestMethod.GET}) @ResponseBody publicAjaxJsonsaveLeaveInfo(HttpServletRequestrequest,HttpServletResponseresponse,SysUserLeaveInfopojo){ AjaxJsonresult=newAjaxJson(); //后台验证 if(!validateForm(result,pojo)){ returnresult; } try{ SysUserloginUser=getLoginSysUser(request); if(StringUtils.isBlank(pojo.getId())){ pojo.setUpdateUser(loginUser); pojo.setUpdateDate(newDate()); sysUserLeaveInfoService.save(pojo); }else{ SysUserLeaveInfomodel=sysUserLeaveInfoService.findByLoadId(SysUserLeaveInfo.class,pojo.getId()); model.setUpdateUser(loginUser); model.setUpdateDate(newDate()); MyBeanUtils.copyBeanNotNull2Bean(pojo,model); sysUserLeaveInfoService.update(model); } }catch(Exceptione){ log.error("保存离职信息失败!",e); result.setSuccess(false); result.setMsg("保存失败!"); } returnresult; } //激活离职用户 @RequestMapping(value="start",method={RequestMethod.POST,RequestMethod.GET}) @ResponseBody publicAjaxJsonstart(HttpServletRequestrequest,HttpServletResponseresponse){ AjaxJsonresult=newAjaxJson(); String[]ids=request.getParameter("ids").split(","); Stringmodule=SysUser.class.getAnnotation(Log.class).module(); try{ sysUserService.deleteByIds(ids,false); for(Stringid:ids){ SysUsersysUser=sysUserService.findByLoadId(SysUser.class,id); } //删除日记信息 Map<String,String>logMap=logUtil.getDeleteLogInfo(ids,SysUser.class,sysUserService,"激活离职"); //删除成功日记 logUtil.deleteLog(request,logMap,"激活离职"); }catch(Exceptione){ logUtil.deleteFailLog(request,"激活离职用户失败,"+e,module,"激活离职"); log.error("激活离职用户失败!",e); result.setSuccess(false); result.setMsg("激活失败!"); } returnresult; }}离职用户管理界面:6.3告知公告模块告知公告模块用来管理告知公告。6.3.1模块流程图告知公告管理模块流程图:结束操作完毕更新信息列表删除修改增长搜索是选择操作告知公告开始结束操作完毕更新信息列表删除修改增长搜索是选择操作告知公告开始6.3.2实现模块代码及界面告知公告模块重要实现代码://保存告知公告 @ActionPermissions(value=PermissionValues.ADD_NOTICE+","+PermissionValues.EDIT_NOTICE,param="saveOrUpdate",returnType=ActionPermissions.AJAXJSON) @RequestMapping(value="save",method={RequestMethod.POST,RequestMethod.GET}) @ResponseBody publicAjaxJsonsave(HttpServletRequestrequest,HttpServletResponseresponse,Noticepojo){ AjaxJsonresult=newAjaxJson(); SysUserloginUser=getLoginSysUser(request); pojo.setTitle(StringEscapeUtils.escapeHtml4(pojo.getTitle())); //后台验证 if(!validateForm(result,pojo)){ returnresult; } try{ if(StringUtils.isBlank(pojo.getId())){//新增 pojo.setIsDeleted(false); pojo.setCreateUser(loginUser); pojo.setCreateDate(newDate()); noticeService.save(pojo); }else{//修改 Noticemodel=noticeService.findByLoadId(Notice.class,pojo.getId()); model.setUpdateUser(loginUser); model.setUpdateDate(newDate()); MyBeanUtils.copyBeanNotNull2Bean(pojo,model); noticeService.update(model); } }catch(Exceptione){ log.error("保存告知公告失败!",e); result.setSuccess(false); result.setMsg("保存失败!"); } returnresult; } //删除告知公告 @ActionPermissions(value=PermissionValues.DELETE_NOTICE,returnType=ActionPermissions.AJAXJSON) @RequestMapping(value="del",method={RequestMethod.POST,RequestMethod.GET}) @ResponseBody publicAjaxJsondel(HttpServletRequestrequest,HttpServletResponseresponse){ AjaxJsonresult=newAjaxJson(); String[]tempIds=request.getParameter("ids").split(","); List<String>ids=Arrays.asList(tempIds); Stringmodule=Notice.class.getAnnotation(Log.class).module(); try{ noticeService.deleteByIds(ids); //删除日记信息 Map<String,String>logMap=logUtil.getDeleteLogInfo(tempIds,Notice.class,noticeService); //删除成功日记 logUtil.deleteLog(request,logMap); }catch(Exceptione){ logUtil.deleteFailLog(request,"删除告知失败,"+e,module); log.error("删除告知失败!",e); result.setSuccess(false); result.setMsg("删除失败!"); } returnresult; }}告知公告界面:6.4规章制度模块规章制度模块用来管理告知公告。6.4.1模块流程图规章制度管理模块流程图:结束操作完毕更新信息列表删除修改增长搜索是选择操作规章制度开始结束操作完毕更新信息列表删除修改增长搜索是选择操作规章制度开始6.4.2实现模块代码及界面规章制度模块重要实现代码:@ActionPermissions(value=PermissionValues.ADD_RULES+","+PermissionValues.EDIT_RULES,param="saveOrUpdate",returnType=ActionPermissions.PAGE) @RequestMapping(value="edit",method={RequestMethod.POST,RequestMethod.GET}) publicStringedit(HttpServletRequestrequest,HttpServletResponseresponse){ Stringid=StringEscapeUtils.escapeHtml4(request.getParameter("id")); Rulesrules=null; if(StringUtils.isNotBlank(id)){ rules=rulesService.findByLoadId(Rules.class,id);//修改 }else{ rules=newRules();//新增 } request.setAttribute("rules",rules); returnEDIT; } //保存规章制度 @ActionPermissions(value=PermissionValues.ADD_RULES+","+PermissionValues.EDIT_RULES,param="saveOrUpdate",returnType=ActionPermissions.AJAXJSON) @RequestMapping(value="save",method={RequestMethod.POST,RequestMethod.GET}) @ResponseBody publicAjaxJsonsave(HttpServletRequestrequest,HttpServletResponseresponse,Rulespojo){ AjaxJsonresult=newAjaxJson(); SysUserloginUser=getLoginSysUser(request); pojo.setTitle(StringEscapeUtils.escapeHtml4(pojo.getTitle())); //后台验证 if(!validateForm(result,pojo)){ returnresult; } try{ if(StringUtils.isBlank(pojo.getId())){//新增 pojo.setIsDeleted(false); pojo.setCreateUser(loginUser); pojo.setCreateDate(newDate()); rulesService.save(pojo); }else{//修改 Rulesmodel=rulesService.findByLoadId(Rules.class,pojo.getId()); model.setUpdateUser(loginUser); model.setUpdateDate(newDate()); MyBeanUtils.copyBeanNotNull2Bean(pojo,model); rulesService.update(model); } }catch(Exceptione){ log.error("保存规章制度失败!",e); result.setSuccess(false); result.setMsg("保存失败!"); } returnresult; } //删除规章制度 @ActionPermissions(value=PermissionValues.DELETE_RULES,returnType=ActionPermissions.AJAXJSON) @RequestMapping(value="del",method={RequestMethod.POST,RequestMethod.GET}) @ResponseBody publicAjaxJsondel(HttpServletRequestrequest,HttpServletResponseresponse){ AjaxJsonresult=newAjaxJson(); String[]tempIds=request.getParameter("ids").split(","); List<String>ids=Arrays.asList(tempIds); Stringmodule=Rules.class.getAnnotation(Log.class).module(); try{ rulesService.deleteByIds(ids); //删除日记信息 Map<String,String>logMap=logUtil.getDeleteLogInfo(tempIds,Rules.class,rulesService); //删除成功日记 logUtil.deleteLog(request,logMap); }catch(Exceptione){ logUtil.deleteFailLog(request,"删除规章制度失败,"+e,module); log.error("删除规章制度失败!",e); result.setSuccess(false); result.setMsg("删除失败!"); } returnresult; }}规章制度界面:7.用户操作手册7.1系统操作说明7.1.1系统操作流程管理员登录对员工信息及公告、规章制度进行管理。操作流程图如下:管理员登录管理员登录搜索规章制度列表删除修改搜索增长规章制度管理告知公告列表告知公告删除修改增长告知公告管理离职用户管理人事管理激活账号离职信息搜索设为离职用户删除增长在职用户管理规章制度列表告知公告列表首页用户界面输入验证码搜索规章制度列表删除修改搜索增长规章制度管理告知公告列表告知公告删除修改增长告知公告管理离职用户管理人事管理激活账号离职信息搜索设为离职用户删除增长在职用户管理规章制度列表告知公告列表首页用户界面规章制度规章制度7.1.2系统的启动(1)在系统中部署服务器tomcat7,再把项目添加到服务器中。(2)debug模式运营。(3)打开浏览器输入本地网址启动该系统。7.2系统管理员操作说明7.2.1功能描述系统管理员在此模块对员工信息、公告、规章制度进行增长、搜索、删除、修改等操作。7.2.2操作方法(1)系统登录在系统登录界面输入用户名和密码并输入验证码,登录界面如下图:登录成功后进入系统管理员操作界面。如下图所示:(3)人事管理在职用户管理:可以对员工信息进行搜索、增长、删除、设为离职用户操作。在职用户管理界面如下:离职用户管理:进行填写离职信息,激活离职用户为在职、搜索操作。离职用户管理界面如下:(4)告知公告告知公告管理:涉及对公告的增长、修改、删除操作。告知公告管理界面如下:告知公告列表:显示添加的公告。告知公考列表界面如下:(5)规章制度规章制度管理:涉及对规章制度的搜索、增长、修改、删除。规章制度管理界面如下:规章制度列表:显示增长的规章制度。规章制度列表界面如下:8系统测试测试是保证软件质量的重要手段,它是对软件规格说明、设计和编码的最后复审。软件开发的目的是开发出实现用户需求的高质量、高性能的软件产品,软件测试以检查软件产品的内容和功能特性为核心,是软件质量保证的关键环节,也是成功实现软件开发目的的重要保障。在开发大型软件系统的漫长过程中,面对着极其错综复杂的问题,人的主观结识不也许完全符合客观现实,与工程密切相关的各类人员之间的通信和配合也不也许完美无缺的。因此,在软件生命周期的每个阶段都不可避免地会产生错误,为了排除这些错误,保证软件质量就必须认真地进行软件测试。8.1系统测试概述系统测试是将通过测试的子系统装配成一个完整的系统来测试。它是检查系统是否的确能提供系统方案说明书中指定功能的有效方法。系统测试的目的是对最终软件系统进行全面的测试,保证最终软件系统满足产品需求并且遵循系统设计。

(1)测试目的

对最终软件系统进行全面的测试,保证最终软件系统满足产品需求并且遵循系统设计。

具体的可以包含以下几个方面:①保证系统测试的活动是按计划迸行的。

②验证软件产品是否与系统需求用例不相符合或与之矛盾。

③建立完善的系统测试缺陷记录跟踪库。④保证软件系统测试活动及其结果及时告知相关小组和个人。系统测试应当根据项目的特性拟定测试内容。一般地,系统测试的重要内容涉及:

①功能测试。即测试软件系统的功能是否对的,其依据是需求文档,如《需求规

格说明书》。由于对的性是软件最重要的质量因素,所以功能测试必不可少。

②健壮性测试。即测试软件系统在异常情况下能否正常运营的能力。健

温馨提示

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

评论

0/150

提交评论