企业员工管理系统方案Word下载.docx
《企业员工管理系统方案Word下载.docx》由会员分享,可在线阅读,更多相关《企业员工管理系统方案Word下载.docx(15页珍藏版)》请在冰豆网上搜索。
3.基本表源码
user_info表
CREATETABLE`user_info`<
`id`int<
11>
NOTNULL,
`login_name`varchar<
20>
DEFAULTNULL,
`pass_word`varchar<
`true_name`varchar<
`sex`varchar<
10>
`tel_num`varchar<
`age`int<
3>
`marriage`varchar<
`educational`varchar<
PRIMARYKEY<
`id`>
>
work_info表
CREATETABLE`work_info`<
NOTNULLAUTO_INCREMENT,
`position_id`int<
`status`varchar<
50>
`create_time`datetimeDEFAULTNULL,
`authority`int<
KEY`position_id`<
`position_id`>
CONSTRAINT`work_info_ibfk_5`FOREIGNKEY<
REFERENCES`position`<
ONDELETESETNULLONUPDATESETNULL
position表
CREATETABLE`position`<
`id`int<
`pos_name`varchar<
PRIMARYKEY<
四.软件功能设计
1.软件功能图
在菱形表示的区域中,表示执行改操作需要的权限.
在白底矩形方框中,表示执行此操作的用户.
c>
在蓝底矩形方框中,表示此操作的名称.
d>
在椭圆形中,表示执行当前操作所用到的STRUTS2中的ACTION,ACTION中调用相应的业务逻辑完成各种功能.
e>
在圆角矩形方框中,表示渲染当前操作的JSP界面,并可在JSP过不同的调用不同的ACTION.
该功能图在大体上表示了该人事管理系统的主要逻辑功能,其中一些小的跳转如在提交表单,权限效验时等等失败过程所执行的操作在考虑到图形的复杂性上并没有完全给出,但可以在源程序中看出详细的流程.
2.详细设计
JavaBean模块,该模块主要定义了各个主要的JavaBean,完成对各供需要信息的封装,便于业务逻辑的实现.
包含四个标准的JavaBean和三个hibernate的数据库映射表文件.
PageModel是一个分页模型,它封装了每个页面记录的数量,当前数据在数据库中总的数据条数,当前页码,下一页,上一页页码,以及当前页面封装的List类型的数据,用户JSP界面的迭代输出.
//每个界面容纳记录数的上限
privateintpageSize;
//当前页码
privateintnowPage;
//总的页码
privateinttotalPage;
//上一页的页码
privateintpreviousPage;
//下一页的页码
privateintnextPage;
//封装此Bean的action名
privateStringactionName;
//当前页面的数据
privateList<
UserInfo>
userList;
publicPageModel<
intnowPage,intpageSize,inttotalRecord,
List<
userList>
{
this.totalPage=<
totalRecord+pageSize-1>
/pageSize;
this.nowPage=nowPage;
this.pageSize=pageSize;
this.userList=userList;
//如果上一页比一小,则上一页还是一
previousPage=<
nowPage<
=1>
?
<
1>
:
nowPage-1>
;
//如果下一个的页码大于总页码,则下一个页码还是总页码数
nextPage=<
nowPage>
=totalPage>
totalPage>
nowPage+1>
}
下面的三个bean,Position封装了职位信息并通过Position.hbm.xml完成与数据库的映射;
UserInfo封装了员工个人信息并通过UserInfo.hbm.xml完成与数据库的映射;
WorkInfo封装了工作信息并通过WorkInfo.hbm.xml完成与数据库的映射.
publicclassUserInfo{
//id
privateintid;
//登陆名
privateStringloginName;
//真实
privateStringtrueName;
//密码
privateStringpassWord;
//性别
privateStringsex;
//年龄
privateintage;
//
privateStringtelNum;
//婚姻
privateStringmarriage;
//学历
privateStringeducational;
//一对一映射的工作信息
privateWorkInfoworkInfo;
publicintgetId<
returnid;
publicvoidsetId<
intid>
this.id=id;
publicintgetAge<
returnage;
publicvoidsetAge<
intage>
this.age=age;
publicStringgetMarriage<
returnmarriage;
}
publicvoidsetMarriage<
Stringmarriage>
this.marriage=marriage;
publicStringgetEducational<
returneducational;
publicvoidsetEducational<
Stringeducational>
this.educational=educational;
publicWorkInfogetWorkInfo<
returnworkInfo;
publicvoidsetWorkInfo<
WorkInfoworkInfo>
this.workInfo=workInfo;
publicStringgetLoginName<
returnloginName;
publicvoidsetLoginName<
StringloginName>
this.loginName=loginName;
publicStringgetTrueName<
returntrueName;
publicvoidsetTrueName<
StringtrueName>
this.trueName=trueName;
publicStringgetPassWord<
returnpassWord;
publicvoidsetPassWord<
StringpassWord>
this.passWord=passWord;
publicStringgetSex<
returnsex;
publicvoidsetSex<
Stringsex>
this.sex=sex;
publicStringgetTelNum<
returntelNum;
publicvoidsetTelNum<
StringtelNum>
this.telNum=telNum;
publicUserInfo<
intid,WorkInfoworkInfo>
这里列出UserInfo的映射文件.
<
hibernate-mapping>
classname="
.personnelmanagement.bean.UserInfo"
table="
user_info"
catalog="
personnel"
!
—-由于与WorkInfo表是一一对应的,这里主键采用依赖WrokInfo主键的生成方式以实现一一对应-->
idname="
id"
type="
java.lang.Integer"
columnname="
/>
generatorclass="
foreign"
paramname="
property"
workInfo<
/param>
/generator>
/id>
propertyname="
loginName"
java.lang.String"
update="
false"
login_name"
/property>
passWord"
pass_word"
trueName"
true_name"
sex"
telNum"
tel_num"
marriage"
educational"
age"
—-定义一对一映射-->
one-to-onename="
workInfo"
class="
.personnelmanagement.bean.WorkInfo"
cascade="
all"
/one-to-one>
/class>
/hibernate-mapping>
五.界面设计
界面的结构图如图所示
1.登陆界面
主要通过Struts2的标签完成表单的生成以及简单的逻辑操作
s:
formaction="
/common/loginAction.action"
//如果用户名密码错误在这里显示
actionerror/>
textfieldname="
label="
用户名"
/s:
textfield>
passwordname="
密码"
password>
//通过插入SESSION的ID防止表单重复提交
token/>
submitlabel="
submit"
submit>
form>
2.注册界面
/common/registerAction.action"
validate="
true"
userInfo.loginName"
userInfo.passWord"
重复密码"
userInfo.trueName"
真实"
userInfo.age"
年龄"
userInfo.telNum"
"
selectname="
userInfo.sex"
list="
{'
男性'
'
女性'
}"
性别"
select>
userInfo.marriage"
已婚'
未婚'
婚姻"
selectlabel="
学历"
高中以下'
高中'
专科'
本科'
硕士'
硕士以上'
name="
userInfo.educational"
3.管理员权限与普通权限用户的操作界面
//判断是否是管理员,是管理员则多出审核用户与职位管理操作,这里是属于客户端效验
iftest="
#session.loginUser.workInfo.authority==10"
ahref="
/PersonnelManagement/admin/getAuditUserAction"
审核用户<
/a>
br>
/PersonnelManagement/admin/positionManageAction"
职位管理<
if>
/PersonnelManagement/user/getAllUserAction.action"
员工浏览<
/PersonnelManagement/user/queryUserAction"
员工查询<
a
href="
/PersonnelManagement/user/getUserInfoByIdAction.action?
id=<
%=id%>
个人管理<
/PersonnelManagement/common/logOutAction.action"
注销登陆<
4.用户详细信息的显示与修改界面
5.用户列表的信息显示界面
这里只有管理员才具有删除操作的显示,且也属于客户端验证,即使用户用直接输入网址的方式也不能越权完成操作,因为服务器端验证依然存在.
6.职位管理界面
在空白况中输入新的职位名称,并点击提交即可完成职位添加的操作,这里的职位是不可以重名的,如果重名会有提示.
六.心得体会
经过这次的实验我个人得到了不少的收获,一方面加深了我对课本理论的认识,另一方面也提高了实验操作能力。
在这次的实验中,我对一些测试硬件、软件及其使用有了更深刻的认识。
做这次的测试技术实验,我们学生自己的能力得到了充分的发挥,跟以往那些充满条条框框的实验是不同的。
通过这次的测试技术实验我不但对理论知识有了更加深的理解,对于实际的操作和也有了质的飞跃。
经过这次的实验,我们整体对各个方面都得到了不少的提高,也让我们得到了更好的锻炼。