• 301.50 KB
  • 2022-05-17 13:33:23 发布

人事与考勤管理系统方案

  • 19页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
.....人事与考勤管理系统的设计与实现1概述待开发的系统的名称为企业职工在线考勤系统。我以中小型企业的考勤管理业务为依托,结合科学管理的理论,设计并开发一个企业考勤管理信息系统,提供一个科学合理的考勤管理解决方案,彻底实现无纸化作业。根据管理权限的不同,将界面分为一般职员、部门经理、系统管理员和最高管理者四个层次,系统目标如下:(1)提供简单、方便的操作。(2)根据企业用工人事状况及相关制度,提供人事信息管理查询功能。(3)根据企业原来的考勤管理制度,为企业不同管理层次提供相应的功能。(4)通过考勤管理无纸化的实现,使企业的考勤管理更加科学规范,节省考勤管理的成本。实现考勤信息实时化查询,可以及时了解相关情况。(5)提高企业考勤管理的透明度和效率,防止“虚假出勤“的现象。(6)对系统提供必要的权限管理。(7)为企业实现整体信息化的其他相关系统提供必要的数据支持。总体方案设计2需求分析2.1功能需求(1)数据管理功能是设置和管理基础数据,包括人事信息,加班、请假类别的定义和班次的定义,在权限范围内可以进行基础数据的添加、删除和修改。学习参考 .....(2)人事管理分为管理员和一般员工两个功能块,管理员可以添加、删除、查看部门、员工信息,实现人事管理,一般员工可以查看部门信息。实现人事资料管理无纸化作业。(3)考勤管理包括出勤动作、出勤信息的查询;上级对下级员工的出勤信息的确认;生成考勤统计信息并可以根据指定的条件进行查询。实现从每日出勤到统计全部考勤信息的无纸化操作。为方便数据传递和查阅,要根据需求提供不同时间短的考勤统计信息表。(4)请假管理可以提出请假申请,并完善请假信息,如请假开始时间,请假结束时间,请假的次数进行管理。(5)出差管理管理者安排员工出差,对出差时间,次数的管理。(6)实时显示管理员实时查看员工出勤情况。2.2系统功能设计要设计一个完备的企业人事管理系统,需涉及大量的信息,因目前还未涉及C#语言的学习,只能简化系统设计,只选取与企业基本信息紧密相关的部门信息,员工信息以及考勤信息等进行管理。具体规划的模块如下:(1)部门信息管理:包括部门信息的查询,修改,添加,删除等功能。(2)员工信息管理:包括员工基本信息的查询,修改,添加,删除等功能。(3)考勤信息管理:包括考勤信息的录入,查看等功能。根据功能的关联关系,将功能细化为下图所示的功能结构图(图1),其业务流程如图(2)所示。学习参考 .....人事管理系统部门信息管理员工信息管理考勤信息管理系统管理添加部门信息查看部门信息修改部门信息添加员工信息查看员工信息修改员工信息录入出勤信息查看考勤信息管理员录入考勤信息录入出差信息录入病假信息录入事假信息一般员工图(1)登录系统主窗体用户角色管理员普通员工部门信息管理员工信息管理考勤信息管理部门,员工,考勤信息的查看;记录出勤图(2)2.3开发工具选择本系统采用SQLServer2008创建后台数据库,前台开发工具利用DreamweaverCS6进行开发。学习参考 .....详细设计3系统数据库设计3.1实体E-R图根据人事与考勤管理系统的系统分析与功能设计,人事管理系统中主要包括部门信息实体,员工信息实体,职位信息实体,考勤信息实体等,下面为它们的E-R图:学习参考 .....出差月份员工编号上班时间出勤编号员工编号考勤月份员工编号员工编号员工信息姓名性别出生年月政治面貌婚姻状况职位学历n实体E-R图cdfekjiypx工作部门部门编号部门信息办公室负责人部门名称q职位职位信息所属部门职位名称职位编号考勤信息出差天数病假天数考勤月份迟到次数事假m早退次数加班时数事假天数所属部门联系电话考勤病假出差出勤事假信息病假信息出差信息h下班时间病假编号出差编号结束时间起始时间病假月份起始时间结束时间结束时间起始时间事假月份员工编号事假编号员工编号出勤信息学习参考 .....3.2逻辑模型设计3.2.1关系模式员工表(员工编号,姓名,性别,出生年月,所属部门,职位,学历,联系电话,政治面貌,婚姻状况)性别表(性别编号,性别)学历表(学历编号,学历)政治面貌表(面貌编号,政治面貌)婚姻表(婚姻编号,婚姻状况)部门表(部门编号,部门名称,负责人,办公室)职位表(职位编号,职位名称,所属部门)考勤表(职工编号,月份,迟到次数,早退次数,加班时数,出差天数,病假天数,事假天数)出勤表(职工编号,出勤编号,上班时间,下班时间)出差表(职工编号,出差编号,出差月份,出差起始时间,出差结束时间)病假表(职工编号,出差编号,病假月份,病假起始时间,病假结束时间事假表(职工编号,事假编号,事假月份,事假起始时间,事假结束时间)3.2.2数据关系图图3.1学习参考 .....如图3.1所示,在数据库中生成的关系图中,员工编号是员工表的主键,是考勤表、出勤表、出差表、病假表、事假表的外键,而员工表的性别、学历、职位、所属部门、政治面貌、婚姻状况又分别是性别表、学历表、职位表、部门表、政治面貌表、婚姻表的外键。3.3应用程序设计3.3.1建立数据库CREATEDATABASE[rs]ONPRIMARY(NAME=N"rs",FILENAME=N"D:ProgramFilesMicrosoftSQLServerMSSQL10.MSSQLSERVERMSSQLDATArs.mdf",SIZE=3072KB,MAXSIZE=UNLIMITED,FILEGROWTH=1024KB)LOGON(NAME=N"rs_log",FILENAME=N"D:ProgramFilesMicrosoftSQLServerMSSQL10.MSSQLSERVERMSSQLDATArs_log.ldf",SIZE=470144KB,MAXSIZE=2048GB,FILEGROWTH=10%)3.3.2数据表的创建本系统总共建有12个表,创建员工表代码如下,与创建员工表方法相同,创建其余表。所有表分别如图3.2—3.13所示。CREATETABLE[dbo].[员工表]([员工编号][int]NOTNULL,[姓名][nchar](10)NULL,[所属部门][nchar](20)NULL,[职位][nchar](10)NULL,[学历][nchar](10)NULL,[性别][nchar](10)NULL,[出生年月][nchar](20)NULL,[政治面貌][nchar](10)NULL,学习参考 .....[婚姻状况][nchar](10)NULL,[联系电话][nchar](20)NULL,CONSTRAINT[PK_员工表]PRIMARYKEYCLUSTERED([员工编号]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]图3.2员工表图3.3部门表图3.4职位表图3.5性别表学习参考 .....图3.6婚姻表图3.7政治面貌表图3.8学历表图3.9考勤表图3.10出勤表学习参考 .....图3.11出差表图3.12病假表图3.13事假表3.3.3建立视图本系统共建有两个视图,其中员工视图用于查询员工详细信息,员工考勤视图用于查询员工考勤信息。CREATEVIEW[dbo].[员工信息]ASSELECTdbo.员工表.员工编号,dbo.员工表.姓名,dbo.部门表.部门名称,dbo.职位表.职位名称,dbo.学历表.学历,dbo.性别表.性别,dbo.员工表.出生年月,dbo.政治面貌表.政治面貌,dbo.婚姻表.婚姻状况,dbo.员工表.联系电话FROMdbo.员工表INNERJOINdbo.部门表ONdbo.员工表.所属部门=dbo.部门表.部门编号INNERJOINdbo.职位表ONdbo.员工表.职位=dbo.职位表.职位编号INNERJOIN学习参考 .....dbo.学历表ONdbo.员工表.学历=dbo.学历表.学历编号INNERJOINdbo.性别表ONdbo.员工表.性别=dbo.性别表.性别编号INNERJOINdbo.政治面貌表ONdbo.员工表.政治面貌=dbo.政治面貌表.面貌编号INNERJOINdbo.婚姻表ONdbo.员工表.婚姻状况=dbo.婚姻表.婚姻编号CREATEVIEW[dbo].[员工考勤]ASSELECTdbo.员工表.职位,dbo.员工表.姓名,dbo.员工表.员工编号,dbo.考勤表.月份,dbo.考勤表.出差天数,dbo.考勤表.病假天数,dbo.考勤表.事假天数FROMdbo.员工表INNERJOINdbo.考勤表ONdbo.员工表.员工编号=dbo.考勤表.员工编号3.3.4创建触发器本系统中,触发器主要实现数据管理功能,即相关数据的删除,录入和统计功能。创建一个触发器,当删除员工基本信息时,同事也删除其他表中相应员工的信息。即当删除员工表中信息时,触发触发器[dbo].[delkq],也删除考勤表中相应员工的记录内容。同样建立删除出勤记录、出差记录、请假记录和事假记录的同类触发器。从员工表删除考勤记录的触发器代码如下:CREATETRIGGER[dbo].[delkq]ON[dbo].[员工表]AFTERDELETEASDELETEFROMdbo.[考勤表]WHERE[员工编号]=(SELECT[员工编号]FROMdeleted)建立一个触发器,当向出差表中添加一条新的出差记录时,触发统计该员工一个月的出差记录,并存入考勤表的出差次数属性中。病假表、事假表分别建立此类触发器。ALTERTRIGGER[dbo].[updatecctokq]ON[dbo].[出差表]AFTERINSERTAS学习参考 .....IFexists(Select员工编号fromdbo.考勤表where员工编号=(Select员工编号frominserted)AND月份=(Select出差月份frominserted))BEGINUPDATEdbo.[考勤表]SET出差天数=出差天数+(Select出差结束时间frominserted)-(Select出差起始时间frominserted)+1WHERE员工编号=(Select员工编号frominserted)AND月份=(Select出差月份frominserted)ENDELSEBEGININSERTINTOdbo.[考勤表]([员工编号],[月份],[出差天数])VALUES((Select员工编号frominserted),(Select出差月份frominserted),((Select出差结束时间frominserted)-(Select出差起始时间frominserted)+1))END创建立一个触发器,当向出勤表中添加一条新的出勤记录时,触发统计该员工一个月的迟到次数,并存入考勤表的迟到次数属性中。同样建立统计早退次数、加班时数的触发器。CREATETRIGGER[dbo].[updatecdtokq]ON[dbo].[出勤表]AFTERINSERTASIF((12>(Selectconvert(int,Datename(hh,(Select上班时间frominserted)),14))AND(Selectconvert(int,Datename(hh,(Select上班时间frominserted)),14))>8)OR(17>(Selectconvert(int,Datename(hh,(Select上班时间frominserted)),14))AND(Selectconvert(int,Datename(hh,(Select上班时间frominserted)),14))>13))AND(Selectconvert(int,Month((Select上班时间frominserted))))=1IFexists(Select员工编号fromdbo.考勤表where员工编号=(Select员工编号frominserted)AND月份=(Selectconvert(int,Month((Select上班时间frominserted)))))BEGINUPDATEdbo.[考勤表]SET迟到次数=迟到次数+1WHERE员工编号=(Select员工编号frominserted)AND月份=(Selectconvert(int,Month((Select上班时间frominserted)),14))ENDELSEBEGIN学习参考 .....INSERTINTOdbo.[考勤表]([员工编号],[月份],[迟到次数])VALUES((Select员工编号frominserted),(Selectconvert(int,Month((Select上班时间frominserted)),14)),1)ENDGO4网页设计本系统采用DreamweaverCS6设计网页。根据本系统设计的功能,网页分为管理员和普通员工两大类,总共有21个网页页面。其主要功能如下表:编号网页名称功能首页1index.asp首页管理员2guanliyuan.asp登录管理员功能页面3ckbmxx.asp查看、管理部门信息4tjbmxx.asp添加部门信息5tjbmcg.asp添加部门成功6scbmxx.asp删除部门信息7ckygxx.asp查看、管理所有员工的信息8tjygxx.asp添加新的员工信息9tjygcg.asp添加新员工信息成功10scygxx.asp删除员工信息11ckkqxx.asp查看所有员工的考勤信息12tjccxx.asp添加员工出差信息13tjbjxx.asp添加员工病假信息14tjsjxx.asp添加员工事假信息15tjkqcg.asp添加新的考勤信息成功普通员工16ygdl.asp普通员工按权限登录17ptyh.asp登录管理员功能页面,添加上班信息18ptyh1.asp添加下班信息19ckbmxx1.asp查看部门信息20ckygxx1.asp查看登录员工的信息21ckkqxx1.asp查看登录员工的考勤信息4.1网页相关功能的实现网页的重点在于通过网页记录集向数据库添加信息、从数据库读取需要的信息、从数据库删除信息以及网页实时刷新功能的实现。信息统计工作由数据库在后台实现。学习参考 .....4.1.1向数据库添加信息通过数据库INSERT语句向数据库添加数据,数据来源为通过向网页插入的文本域表单插件输入的信息。向数据库的员工表录入员工信息的主要代码如下:<%If(CStr(Request("MM_insert"))="form2")ThenIf(NotMM_abortEdit)Then"executetheinsertDimMM_editCmdSetMM_editCmd=Server.CreateObject("ADODB.Command")MM_editCmd.ActiveConnection=MM_rsglxt_STRINGMM_editCmd.CommandText="INSERTINTOdbo.[员工表]([员工编号],[姓名],[所属部门],[职位],[学历],[性别],[出生年月],[政治面貌],[婚姻状况],[联系电话])VALUES(?,?,?,?,?,?,?,?,?,?)"MM_editCmd.Prepared=trueMM_editCmd.Parameters.AppendMM_editCmd.CreateParameter("param1",5,1,-1,MM_IIF(Request.Form("ygbh"),Request.Form("ygbh"),null))"adDoubleMM_editCmd.Parameters.AppendMM_editCmd.CreateParameter("param2",201,1,-1,Request.Form("xm"))"adLongVarCharMM_editCmd.Parameters.AppendMM_editCmd.CreateParameter("param3",201,1,-1,Request.Form("ssbm"))"adLongVarCharMM_editCmd.Parameters.AppendMM_editCmd.CreateParameter("param4",201,1,-1,Request.Form("zw"))"adLongVarCharMM_editCmd.Parameters.AppendMM_editCmd.CreateParameter("param5",201,1,-1,Request.Form("xl"))"adLongVarCharMM_editCmd.Parameters.AppendMM_editCmd.CreateParameter("param6",201,1,-1,Request.Form("xb"))"adLongVarCharMM_editCmd.Parameters.AppendMM_editCmd.CreateParameter("param7",201,1,-1,Request.Form("csny"))"adLongVarCharMM_editCmd.Parameters.AppendMM_editCmd.CreateParameter("param8",201,1,-1,Request.Form("zzmm"))"adLongVarCharMM_editCmd.Parameters.AppendMM_editCmd.CreateParameter("param9",201,1,-1,Request.Form("hyzk"))"adLongVarCharMM_editCmd.Parameters.AppendMM_editCmd.CreateParameter("param10",201,1,-1,Request.Form("lxdh"))"adLongVarCharMM_editCmd.ExecuteMM_editCmd.ActiveConnection.Close"appendthequerystringtotheredirectURLDimMM_editRedirectUrlMM_editRedirectUrl="tjygcg.asp"学习参考 .....If(Request.QueryString<>"")ThenIf(InStr(1,MM_editRedirectUrl,"?",vbTextCompare)=0)ThenMM_editRedirectUrl=MM_editRedirectUrl&"?"&Request.QueryStringElseMM_editRedirectUrl=MM_editRedirectUrl&"&"&Request.QueryStringEndIfEndIfResponse.Redirect(MM_editRedirectUrl)EndIfEndIf%>4.1.2从数据库添加信息通过数据库SELECT语句由网页记录集从相应的数据库表获得数据来源,以重复读取数据库表信息的方式,显示表中所有记录信息。向网页添加名为ygxx记录集的代码如下,其中数据来源为员工信息视图:<%DimygxxDimygxx_cmdDimygxx_numRowsSetygxx_cmd=Server.CreateObject("ADODB.Command")ygxx_cmd.ActiveConnection=MM_rsglxt_STRINGygxx_cmd.CommandText="SELECT*FROMdbo.员工信息"ygxx_cmd.Prepared=trueSetygxx=ygxx_cmd.Executeygxx_numRows=0%>实现重复显示数据库员工信息视图员工具体信息的代码如下:<%While((Repeat1__numRows<>0)AND(NOTygxx.EOF))%><%=(ygxx.Fields.Item("员工编号").Value)%>
<%=(ygxx.Fields.Item("姓名").Value)%>
<%=(ygxx.Fields.Item("部门名称").Value)%>
<%=(ygxx.Fields.Item("职位名称").Value)%>
<%=(ygxx.Fields.Item("学历").Value)%>
<%=(ygxx.Fields.Item("性别").Value)%>
<%=(ygxx.Fields.Item("出生年月").Value)%><%=(ygxx.Fields.Item("政治面貌").Value)%><%=(ygxx.Fields.Item("婚姻状况").Value)%><%=(ygxx.Fields.Item("联系电话").Value)%><%Repeat1__index=Repeat1__index+1Repeat1__numRows=Repeat1__numRows-1ygxx.MoveNext()Wend%>通过权限限制控制查询范围的功能由SELECT语句实现。实现读取登录用户用工信息的具体代码如下,其中MMColParam是记录集中自建的参数,它主要传递用户登录页面缓存的用户信息:<%DimygxxDimygxx_cmdDimygxx_numRowsSetygxx_cmd=Server.CreateObject("ADODB.Command")ygxx_cmd.ActiveConnection=MM_rsglxt_STRINGygxx_cmd.CommandText="SELECT*FROMdbo.员工信息WHERE[员工编号]=?"ygxx_cmd.Prepared=trueygxx_cmd.Parameters.Appendygxx_cmd.CreateParameter("param1",5,1,-1,ygxx__MMColParam)"adDoubleSetygxx=ygxx_cmd.Executeygxx_numRows=0%><%DimRepeat1__numRowsDimRepeat1__index学习参考 .....Repeat1__numRows=10Repeat1__index=0ygxx_numRows=ygxx_numRows+Repeat1__numRows%>4.1.3从数据库删除信息通过数据库DELETE语句删除网页记录集从相应的数据库表获得的数据。通过网页记录集删除名员工表中信息的代码如下:<%"***DeleteRecord:constructasqldeletestatementandexecuteitIf(CStr(Request("MM_delete"))="form2"AndCStr(Request("MM_recordId"))<>"")ThenIf(NotMM_abortEdit)Then"executethedeleteSetMM_editCmd=Server.CreateObject("ADODB.Command")MM_editCmd.ActiveConnection=MM_rsglxt_STRINGMM_editCmd.CommandText="DELETEFROMdbo.[员工表]WHERE[员工编号]=?"MM_editCmd.Parameters.AppendMM_editCmd.CreateParameter("param1",5,1,-1,Request.Form("MM_recordId"))"N/AMM_editCmd.ExecuteMM_editCmd.ActiveConnection.Close"appendthequerystringtotheredirectURLDimMM_editRedirectUrlMM_editRedirectUrl="ckygxx.asp"If(Request.QueryString<>"")ThenIf(InStr(1,MM_editRedirectUrl,"?",vbTextCompare)=0)ThenMM_editRedirectUrl=MM_editRedirectUrl&"?"&Request.QueryStringElseMM_editRedirectUrl=MM_editRedirectUrl&"&"&Request.QueryStringEndIfEndIfResponse.Redirect(MM_editRedirectUrl)EndIfEndIf%>学习参考 .....4.1.4刷新网页,实时显示功能通过网页自动刷新,向数据库发送命令请求方式实现网页数据更新。具体代码如下:4.2主要网页的最终效果(1)主界面最终效果(2)添加员工信息网页的最终效果(3)员工查看个人信息网页的最终效果:(4)员工查看个人考勤信息网页的最终效果:5心得体会在此次为期10周的《数据库技术》课程学习中,我感受到了学习参考 .....知识全面、系统的重要性,感觉整个系统的设计过程就是一个逐步完善的过程,必须要不停地思考,不停地探索。刚开始的设计系统两天其实基本上毫无头绪,去图书馆去网上都查了资料,在脑海中先形成大致模块和思路。建立数据库的过程看似简单,实则不然。要考虑到实体间的逻辑关系和数据关系模式的完整性问题,努力使之达到第三范式;要针对各种功能实际,不断修改完善代码。然后就是网页界面的设计了,其中,数据源属性配置的过程中出现的问题是最多的,可能是平时学的知识不够牢固,在对数据源的select,update,delect属性进行配置的过程中,反反复复,不能确定,最后,只得静下心来,一步一步一点一点的配置,修改,最后终于全部成功,在这个反复的过程当中已将这些今本知识印于脑海之中,巩固了平时所学,顿时觉得有了成就感,也感受到了数据库知识的强大功能和作用。虽然此学期学的关于数据库平台和网页设计平台应用的知识并不多,但是还是运用老师所讲的实用性很强的基本知识成功设计出了一个完整的系统实现的此次课程设计要求实现的功能,其实心里想要的实现的功能更多,但是所学知识有限,只能暂时这样,通过此次课程设计加深了我对数据库,实体逻辑关系的理解,加深了我对DreamWeaverCS6平台的了解,熟练了很多应用方法,更正了很多习惯性的错误使用方法,激起了我对SQL平台更加熟练使用和C#语言的求知欲望,想尽快学习到更多的数据库设计方面的知识,设计出更加完善实用性更强的系统。参考文献[1]邵超,张斌等数据库实用教程—SQLServer2008.北京:清华大学出版社,2009.[2]RobertE.Walters,MichaelColes等AcceleratedSQLServer2008.任斌,刘芳芳,译.北京:人民邮电出版社,2011.[3]李睦芳等DreamweaverCS6+ASP动态网站开发从基础到实践.北京:机械工业出版社,2014.[4]王珊数据库系统概论[M].北京:高等教育出版社,2012.宁可累死在路上,也不能闲死在家里!宁可去碰壁,也不能面壁。是狼就要练好牙,是羊就要练好腿。什么是奋斗?奋斗就是每天很难,可一年一年却越来越容易。不奋斗就是每天都很容易,可一年一年越来越难。能干的人,不在情绪上计较,只在做事上认真;无能的人!不在做事上认真,只在情绪上计较。拼一个春夏秋冬!赢一个无悔人生!早安!—————献给所有努力的人.学习参考