员工管理系统实现文档.docx
- 文档编号:11566454
- 上传时间:2023-03-19
- 格式:DOCX
- 页数:13
- 大小:1.26MB
员工管理系统实现文档.docx
《员工管理系统实现文档.docx》由会员分享,可在线阅读,更多相关《员工管理系统实现文档.docx(13页珍藏版)》请在冰豆网上搜索。
员工管理系统实现文档
员工管理系统实现文档
项目开发人员:
XXX
XXX年X月XX日
目录
一、概述1
1.引言1
2.编写目的1
二、系统页面的代码实现2
1.主界面实现2
2.登录界面实现3
3.登录代码实现4
3.1登录功能展示层代码实现4
3.2登录功能控制层代码实现6
4.员工管理界面实现7
5.员工管理代码实现8
5.1员工新增和编辑保存功能代码实现8
5.2员工删除的代码实现9
6.部门管理界面实现10
三、数据库的实现12
四、项目小结13
一、概述
1.引言
自上个世纪90年代以来,计算机技术的迅猛发展和推广普及,为各行各业突飞猛进的发展带来了新生的动力,推动了各个行业向更高的层次进步。
当今时代是飞速发展的信息时代。
在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的原因。
计算机的最大好处在于利用它能够进行信息管理。
使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。
尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。
使用计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。
2.编写目的
手工员工管理是一种原始的工作方法,由于手工操作出现错误的概率比较大,其工作量大,工作程序复杂,消耗大量的人力、物力、财力和时间。
而且随着时间的推移,由于人员的增加,科目的增多以及调整的频繁,这些矛盾显得尤为突出。
随着经济的发展,在这种情况下单靠人工来处理员工的信息不但显得力不从心,而且极容易出错。
因此,开发一套能够替代手工员工管理的管理软件成为很有必要的事情。
该文档是继系统设计文档之后而开发出来能够详尽的介绍本员工管理系统的核心界面和核心代码的实现,该系统的开发具有指导性的意义。
二、系统页面的代码实现
1.主界面实现
主界面的设计采用布局容器有4个区域:
北、南、东和中间。
北部面板存放的内容有系统名称、显示当前登录人、用户登陆后执行重新登录和注销操作链接、系统主题改变链接、用户查看个人信息链接等信息,该部分可以执行折叠操作,折叠后北部面板会暂时隐藏,需要的时候可以点击打开。
西部面板用来存放主要功能菜单链接,该部分采用可折叠面板存放菜单项,可以通过鼠标点击打开和折叠菜单项,点击菜单项可以链接到不同的功能操作页面。
西部菜单的显示会根据当前登录人权限的不同自动控制菜单的显示内容,只有当前登录人能够操作的功能菜单才会展现给当前用户,对于当前登录人没有权限操作的内容,会自动隐藏。
西部面板可以执行折叠操作,折叠后西部面板的所有内容会暂时隐藏起来,当需要时可以点击重新打开西部面板。
南部面板没有元素显示和存放,只供布局美观使用,该面板没有操作对象也不可以执行隐藏操作。
中部面板是用来显示主要功能内容的容器,根据用户对西部菜单的操作,对应菜单的功能内容会以选项卡的形式展现在中部面板中,对选项卡可以执行的操作有刷新、关闭、关闭其他、关闭全部。
刷新是对当前选项卡里存放的内容执行重新加载操作,关闭是关闭当前选项卡操作,关闭其他是对除当前选项卡外的所有选项卡执行关闭操作,关闭全部是中部面板已经打开的所有选项卡执行关闭的操作。
超级管理员主界面的效果预览图如图2-1所示,员工主界面效果预览图如图2-2所示。
图2-1超级管理员主界面预览效果图
图2-2员工主界面预览效果图
2.登录界面实现
登录界面是所有操作本系统的用户进入系统之前必须访问的页面,在系统的设计中加入控制访问的过滤器,登录之前不管输入该系统的任何页面的访问路径都会被转到登录页面来验证用户是否具有访问该系统权限。
在该页面用户和员工需要输入自己的访问凭证并经过系统校验后才可以进入系统的操作界面。
在该页面中有关于本系统的相关简单介绍,点击登录链接窗口会打开一个供输入登录信息的登录的面板,该面板出现后会将背面图层置灰。
可以点击该页面的右下角放松一下的链接进入小游戏页面,并且在页面有一个跟随鼠标的动态时钟。
登录页面的效果预览图如图2-3所示。
图2-3登录界面预览效果图
3.登录代码实现
3.1登录功能展示层代码实现
登录功能在展示层做的操作主要是登录面板的显示、用户输入数据的提交、接收后台校验后的传递的参数并作判断、页面跳转或者错误提示。
(1)登录面板代码实现
该部分只为用户数据的输入提供一个文本框和一个密码框,当用户输入数据为空时文本框提示信息为“用户名不能为空!
”密码框的提示内容为“密码不能为空!
”,只有都输入数据后,才能保证该表单的正确提交,代码实现如下所示。
true,missingMessage:
'用户名不能为空!
'"style="width:
150px;"/>
true,missingMessage:
'密码不能为空!
'"style="width:
150px;"/>
(2)用户数据的提交代码实现
该部分的代码实现使用js语言获得用户输入的姓名和密码数据,先校验两个数据是否为空,为空的话表单不合法。
表单不合法的情况下会给用户一个提示信息而且不会执行提交动作,只有表单校验通过之后,该方法才会将获得的用户输入数据传给控制层,完成用户输入数据的提交操作。
该部分功能的实现是在用户点击登录按钮之后才会执行的,后面还会有在用户输入数据完成后按下键盘Enter键后的数据提交方法的具体实现,代码实现如下所示。
handler:
function(){
$.messager.progress();//显示一个进度条
loginform.submit();
$('#loginform').form('submit',{
onSubmit:
function(){
varisValid=$(this).form('validate');
if(!
isValid){
$.messager.progress('close');//当form不合法的时候隐藏工具条
}else{
name2=document.getElementById("username2").value;
password2=document.getElementById("password2").value;
document.getElementById("password").value=password2;
document.getElementById("username").value=
encodeURI(encodeURI(name2));
returnisValid;
}
},
success:
function(){
$.messager.progress('close');//当成功提交之后隐藏进度条
}
});
}
(3)展现层接收后台数据并实现页面跳转的代码实现
该部分代码实现的功能是接收控制层经过用户名和密码校验后传到展现层的数据,并根据数据的不同来判断当前操作人具有的操作权限从而展示不同的主功能页面,代码实现如下所示。
loginform=$('#loginform').form({
url:
'../user/userlogin',
success:
function(str){
if(str==0){
$.messager.progress('close');
$('#loginDialog').dialog('close');
window.location.href="../index.jsp";
}else{
$.messager.progress('close');
$.messager.alert("提示信息","用户名或密码错误!
!
","error");
}
}
});
3.2登录功能控制层代码实现
控制层主要实现的功能是接收展现层传输的用户名和密码并调用逻辑层和Dao层实现方法来判断用户名和密码的合法性,如果数据库表中存在该姓名和密码的组合则表示登录成功,否则登录失败。
该部分判断员工姓名和密码的合法性的时候调用工具类将用户输入的姓名转换为拼音全拼,如果数据库中存有该员工姓名并且员工输入的密码与姓名经过工具类转换后得到的全拼相同则表示该员工登录成功,有一个条件不符合则表示登录失败,成功状态会发送到展现层向用户或员工以提示框的形式展现出来,成功则转到主页面,不成功则仍停留在当前登录页面并弹出登录失败信息。
具体代码实现如下所示。
publicvoidlogin()throwsIOException{
Stringmsg="1";
Stringname=URLDecoder.decode(URLDecoder.decode(user.getUsername(),"UTF-8"),"UTF-8");
user.setUsername(name);
curryUsercurruser=usermanager.login(user.getUsername(),user.getPassword());
PinYinUtilpinYinUtil=newPinYinUtil();
Stringpy=pinYinUtil.changeToPinyin(name);
if(curruser!
=null){
if(Integer.parseInt(curruser.getPowerlimit())==0){
curruser.setPowerlimit("0");
msg="0";
}elseif(Integer.parseInt(curruser.getPowerlimit())==1){
curruser.setPowerlimit("1");
msg="0";
}
session.put("curruser",curruser);
}elseif(user.getPassword().equals(py)){
curryUsercurrpro=promanager.proLogin(user.getUsername(),user.getPassword());
if(currpro!
=null){
currpro.setPowerlimit("2");
session.put("curruser",currpro);
msg="0";
}
}
response.setCharacterEncoding("utf-8");
response.getWriter().print(msg);
}
4.员工管理界面实现
员工管理操作界面采用北部和中部布局格式,北部面板放置检索条件,中部面板显示主要操作界面。
在北部面板可以执行的操作主要是检索员工数据,该面板放置的检索条件有员工姓名、入职时间、所在部门、和最后修改时间,用户可以输入其中一个或者多个条件进行对员工数据检索。
中部面板放置一个表格,该表格有一个工具栏上面放置增加操作按钮、删除操作按钮、编辑操作按钮和Excel导出操作按钮。
点击增加按钮会弹出一个可以输入员工信息的面板,在该面板中可以输入员工的相关信息,其中姓名具有唯一性验证,即用户不可以输入与与员工列表中员工姓名相同的姓名。
出生日期和入职日期是采用的日期控件,用户可以点击选择日期而不可以直接输入。
员工学历是一个下拉列表框,员工的学历可以从中选择,手机、邮箱、住址和薪水是输入框,用户可以输入新员工的对应信息,其中邮箱具有邮箱格式验证,输入的邮箱地址必须满足一定的邮箱格式才可以继续操作。
员工部门和员工职位是两个联动的下拉列表,其中的数据全部加载于数据库中的部门名称和职位名称,在部门下拉列表选择一个部门名称后,职位下拉列表会将选择部门下的所有职位加载显示出来以供用户选择。
以上所有元素都有非空验证,其中任何一项为空时无法进行保存操作。
员工爱好是一个文本框,可以为空。
点击删除按钮会将用户已选择的所有员工信息执行删除操作、删除之前会弹出提示框,用来防止误操作,用户可以选择多条数据后执行批量删除操作。
在用户未选择员工信息而点击删除按钮的情况下系统会给出提示,提示用户先选择用户数据后再执行删除操作。
点击编辑操作按钮后会弹出一个用来存放用户选择的数据的面板,该面板可以将员工资料以可编辑的格式展现给用户,用户可以对展现出的信息进行修改保存操作,系统会将新的信息替代原来的信息保存到数据库员工表中,在该操作中不支持员工姓名的修改操作,也就是说只要执行新增用户后,用户的姓名边不可以第二次修改。
操作状态的成功与否后台会传到展现层给用户展现出来。
点击导出按钮后,系统会将数据库表中所有员工的信息已Excel表格的形式导出到本地计算机中,存放地址可以由用户自己选择,存放表格标题以员工表加当前时间年月日时分秒的形式自动命名,导出成功后用户可以打开和查看。
导出操作便于公司对员工信息的打印复制处理,方便对员工信息的管理。
中部面板表格主体显示信息由员工姓名、员工姓别、出生日期、入职日期、学历、手机、地址、电子邮件、职位、部门、薪金、爱好、创建时间、最后修改该时间。
每条记录前都有编号和选择框,支持多项选择,记录具有隔行斑马线效果,便于记录的查看和浏览。
表格底部有分页栏,可以选择每页的显示记录数目以及转到下一页、上一页、第一页和最后一页,可以显示当前页面记录数和总记录数目,数据过多时可以自动产生滚动条。
点击一条记录时会有左键菜单弹出,左键菜单的操作功能有对当前记录的详情查看、编辑和删除。
没条记录的员工姓名都有超链接点击超链接可以查看当前员工的详细信息。
员工管理效果预览图如图2-4所示。
图2-4员工管理界面预览效果图
5.员工管理代码实现
5.1员工新增和编辑保存功能代码实现
员工增加保存功能主要是用户点击保存按钮时触发js保存方法,该方法可以获取面板中用户填写的新员工详细信息,并可以控制form表单的提交,form表单提交之前会验证表单的合法性,如果有员工信息输入错误的情况表单提交动作会终止,并有响应提示给用户,只有完全符合设定条件下的表单才会提交到控制层。
控制层接收新员工数据并调用逻辑层和Dao层方法将用户信息保存到数据库表中。
新员工的增加会自动产生一个32位员工编号,该编号是唯一的,不允许重复,在数据库员工表中充当主键作用。
记录创建时间也会在记录插入表格的同时自动生成,而且还会产生一个标示记录状态的员工状态符,该状态可以表示当前记录是否被启用。
员工编辑保存功能如增加保存操作几乎一致,展示层同样将获取用户操作后的员工数据经表单的合法性验证后传到控制层,控制层接收数据后调用逻辑层和Dao层编辑方法对员工信息进行编辑操作。
员工编辑与员工新增功能的不同点在于员工新增时的员工编号是系统自动生成并充当主键作用,员工编辑功能是系统根据员工主键对该员工记录执行信息修改功能,记录的主键并不改变。
员工新增与员工编辑展现层保存方法代码实现如下所示。
functionsaveuser(){
varpdept=$('#pdept2').combobox('getValue');
varpjob=$('#pjob2').combobox('getValue');
varpschoolage=$('#pschoolage2').combobox('getValue');
$("#pdid").attr("value",pdept);
$("#pjid").attr("value",pjob);
$("#pschoolage3").attr("value",pschoolage);
$("#fm").form("submit",{
url:
url,
onsubmit:
function(){
return$(this).form("validate");
},
success:
function(str){
if(str==0){
$.messager.show({
msg:
'操作成功',
title:
'提示'
});
}elseif(str==1){
$.messager.alert("提示信息","操作失败!
","error");
}else{
$.messager.alert("提示信息","内部错误,请联系管理员!
","error");
}
$("#dlg").dialog("close");
$("#dg").datagrid("load");
}
});
}
5.2员工删除的代码实现
员工删除功能的实现在展现层只需将用户选择的将要删除的员工记录编号传到控制层,在控制层调用逻辑层和Dao层的删除方法,即可以执行删除操作。
删除操作允许用户在展现层选择多条记录进行操作,删除操作的展现层代码实现如下所示。
functionforRemove(){
varpid="";
varrows=$('#dg').datagrid('getSelections');
if(rows.length==0){
$.messager.show({
msg:
'请先选择数据!
!
',
title:
'提示'
});
returnfalse;
}
if(!
confirm('确定要删除'+rows.length+'条数据吗?
')){
returnfalse;
}
for(vari=0;i varid=rows[i].pid; pid+=id+","; } $.ajax({ url: 'proforDelPro', data: "pid="+pid, dataType: "text", success: function(str){ $.messager.show({ msg: str, title: '提示' }); editIndex=undefined; $('#dg').datagrid('unselectAll'); $('#dg').datagrid('reload'); } }); } 6.部门管理界面实现 部门管理界面的实现与员工界面有所不同,由于部门操作的信息量较少,部门管理界面的设计采用行编辑的方式来实现部门的增加和编辑操作。 对行编辑操作的描述就是在表格基础上实现部门的增删改查,操作期间并没有弹出面板的出现。 界面布局的实现与员工管理操作界面相似,功能实现的方式有所不同。 执行部门增加操作时会动态添加一行到表格的前端并打开相应信息对应列的可编辑功能,用户在可编辑的列中输入部门信息后点击保存按钮即可实现部门增加功能。 用户在部门信息列表中双击记录所在行即可打开该条记录所在行的编辑功能,执行相关信息的修改完善后点击保存按钮即可实现部门的编辑修改功能。 部门删除功能同样支持批量删除和单删除,相应操作流程可参考员工管理功能的操作实现流程。 部门管理界面效果预览图如图2-5所示。 图2-5部门管理界面预览效果图 三、数据库的实现 数据库表的创建基本符合商业开发对数据库的要求,也符合业务操作对数据库表的要求设计,本系统所有功能操作共涉及到八张表,每张表都有自己的主键和对数据记录的状态标识的字段,个别表格中还包含其他表格的主键作为外键,对应实体的创建中外键会被对应表格实体代替,便于各表数据的相互获取,对数据的控制和获取带来极大方便。 请假表创建语句示例如下: ------------------------------ --Tablestructureforleavetab ------------------------------ DROPTABLEIFEXISTS`leavetab`; CREATETABLE`leavetab`( `id`varchar(36)NOTNULLCOMMENT'主键', `pid`varchar(36)NOTNULLCOMMENT'请假人', `uid`varchar(36)DEFAULTNULL, `reason`varchar(1000)NOTNULLCOMMENT'请假原因', `timebgan`datetimeDEFAULTNULLCOMMENT'请假开始时间', `timeend`datetimeDEFAULTNULLCOMMENT'请假结束时间', `backperson`varchar(30)DEFAULTNULLCOMMENT'批准人', `backtime`datetimeDEFAULTNULLCOMMENT'批准时间', `lasttime`datetimeDEFAULTNULLCOMMENT'销假时间', `remark`varchar(1000)DEFAULTNULL, `status`varchar(10)DEFAULTNULLCOMMENT'1.未提交;2.上级审核;3.已批准;4.未通过;5.已销假', `subtime`datetimeDEFAULTNULLCOMMENT'提交时间', PRIMARYKEY(`id`) )ENGINE=InnoDBDEFAULTCHARSET=utf8; 四、项目小结 该员工管理
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 员工 管理 系统 实现 文档
![提示](https://static.bdocx.com/images/bang_tan.gif)