考勤管理考勤系统项目书.docx
《考勤管理考勤系统项目书.docx》由会员分享,可在线阅读,更多相关《考勤管理考勤系统项目书.docx(61页珍藏版)》请在冰豆网上搜索。
考勤管理考勤系统项目书
考勤综合管理平台
项目说明书
(.NET项目研发组)
文件编号:
TD07003
文档编号
TD07003
版本号
QMS2013
分册名称
第1册/共1册
总页数
正文
附录
编制
审批
生效日期
武汉厚溥教育科技有限公司
第1章项目介绍
当今社会正处于信息时代,信息技术已渗透到社会生活的各个领域,特别是各行业的管理领域,智能化信息处理已是提高效率、规范管理、客观审查的最有效途径。
考勤作为一个公司的基层管理,是公司对员工工作管理的基本依据。
1.1文档编制目的
编写此文档的主要目的是明确所要开发的软件所应具有的功能,使系统分析人员和软件设计人员能清楚地了解用户的需求,并在此基础上进一步提出概要设计和完成后续设计与开发工作,为软件开发范围、业务处理规范提供依据,也是应用软件进行最终验收的依据。
系统对企业员工的资料和考勤情况进行管理,通过每日的打卡把出勤信息输入到系统中,保存员工每日的出勤情况,以便于统计出勤情况。
同时方便管理员查阅,即节省了人力,又省去了中间的很多容易出错的步骤。
让企业的考勤管理更具有透明性,且方便管理。
此外系统还涉及用户管理的问题、部门管理等问题,因此还要求系统具有系统管理的处理功能。
1.2项目开发背景
考勤是一个比较烦琐的工作,公司每天都要对员工的出勤状况(包括迟到、早退、请假、旷工等情况)进行记录。
而随着企业规模的扩大和市场竞争的更加激烈,企业的人事管理日趋复杂,规范的考勤管理是现代企业提高管理效益的重要保证,而传统的人工管理存在着效率低、不易统计、成本高和易出错等弊端,已经无法适应现代企业的需求。
各类企业都越发认识到人力资源管理的重要性及提升企业自身人力资源管理水平的迫切性。
而人力资源管理水平的提升不仅需要高素质的管理人员而且也需要信息化工具进行辅助。
因而将传统的人工考勤管理计算机化,建立一个高效的、无差错的、规范的考勤管理系统,能够大大的提高企业的管理效率,有效的帮助企业实现“公正考勤,高效薪资”,使企业的管理水平登上一个新的平台。
1.3项目特点
此系统具有如下5个特点:
Ø灵活性:
本系统可以根据不同的登录用户,自动识出用户的身份,并引导和呈现出该用户可以进行的操作。
Ø简单便捷的用户操作:
功能模块的操作采用简单易行的使用原则,用户可以很容易理解某个操作的含义并很容易上手。
Ø友好的用户界面:
系统的操作界面简单、美观、大方,能够给用户一种简洁舒适的感觉。
Ø跨浏览器兼容性:
系统支持多种主流浏览器,用户可以根据自己的喜好选择喜欢的浏览器来访问本系统。
Ø多用户同时在线:
本系统以B/S结构构建,支持多人同时在线,多个不同的用户可以同时在系统中进行操作。
1.4项目开发环境配置
●设备配置
◆服务器端最低配置
硬件平台:
英特尔T4300处理器,2G内存,80G硬盘空间。
软件平台:
WindowsServer2003,数据库SQLServer2005
◆客户端配置
软件平台:
WindowsXP或更高版本,浏览器IE8+,Chrome12+,FireFox6+
●服务器端必要的软件
操作系统WindowsServer2003或更高版本,数据库SQLServer2005或更高版本,.netframework3.5或更高版本
●开发工具及语言
◆VS2010,SQLServer2005
◆C#
第2章项目总体结构
一个设计良好的项目结构必备的条件是:
易维护性、可扩展性、当遇到需求变更或功能变更时能够以最低的代码成本响应变更。
这就要求整个软件在设计上做好周密、全方位的设计。
此软件总体设计如下。
2.1源码目录介绍
我们现从整个项目的源码结构上做如下分析,以下是对项目源码部分进行分开介绍,如下:
图(38)
各项目层次说明如下:
项目
说明
WebSite
界面表示层,引用BLL、Model、SVSE.Framework
BLL
业务逻辑层,引用DAL、Model、SVSE.Framework
DAL
数据访问层,引用SVSE.Framework、Model
Model
实体层,引用SVSE.Framework
SVSE.Framework
基础框架层
各层源码展开如下图所示:
2.2数据库目录结构
2.3系统模块介绍
2.4模块大体功能简介
2.5系统代码格式要求
为保证项目开发代码的规范性、可读性,特制定该代码规范:
1、命名规范:
C#语言规范规定了C#所采用的命名规则为Pascal命名法。
其中,命名空间、类型(类、结构、枚举、委托、接口)首字母大写;方法、属性、事件、公共字段、常量首字母大写;私有字段、局部变量、方法参数首字母小写。
命名时,名称应具备一定的意义,而非随意命名。
2、在三层框架中,实体层应命名为Model或以Model结尾;业务逻辑层应命名为BLL或以BLL结尾,与该层相关的所有业务逻辑类及类文件(cs文件)应以BLL结尾;数据访问层应命名为DAL或以DAL结尾,与该层相关的所有数据访问类及类文件应以DAL结尾。
3、方法的逻辑应做到职责明确、功能单一。
即每个方法只负责完成明确的一个功能,多个功能应采用多个方法。
每个方法的代码应尽量做到简短精炼,避免一个方法的代码过长,如果一个方法代码过长可将其拆分成多个小的方法。
4、方法的参数不宜过多,过多的参数容易导致维护的困难。
如果方法的参数超过了6个,则应考虑将方法的参数包装成特定的类型。
5、如果多个类都使用同一段代码或同一个类似的方法,则应考虑将该段代码、该方法的公共相同部分提取出来,封装成一个通用的方法,使用到的类应该是调用公共的方法而不是将相同的代码复制粘贴。
6、业务逻辑的代码应写在BLL层,DAL层应只负责执行SQL语句,不做任何逻辑上的分支判断等操作。
7、确保数据库连接每次使用之后都会关闭。
可以将关闭数据库连接的方法的代码放在finally块中以确保执行。
8、绝对不要将数据库连接对象SqlConnection设置为静态的。
应该在每次使用数据库连接时创建一个新的SqlConnection对象,并在使用完之后关闭它。
9、不要相信用户的输入永远是正确的。
应该总是对用户的输入进行验证,确保用户的非法输入不会产生程序的异常。
10、不要使用try…catch…来做输入数据的有效性验证。
应使用验证方法(如判断、正则表达式等)对数据进行有效性验证。
11、如果定义的字符串很长(比如用字符串定义了一条很长的复杂Sql查询语句),则应考虑将字符串分行显示以增加可读性。
可以采用两种方法:
使用“+”号将每个字符串常量分行连接起来;或者使用原义字符串“@”abcdedfg……””。
12、如果要验证字符串是否为空(null)或空字符串(””),建议使用string.IsNullOrEmpty方法。
13、不要对string类型的变量、属性等再次调用ToString()方法,产生string.ToString()这类毫无意义的代码。
14、在拼接Sql语句时,如果参数超过2个,应使用string.Format方法来代替直接使用+号的字符串连接。
建议总是使用string.Format方法代替+号以提高阅读性。
例如,将”select*fromtablewhereName=’”+name+“’andPwd=’”+pwd+”’”改写为string.Format(”select*fromtablewhereName=’{0}’andPwd=’{1}’”,name,pwd)。
15、如果要进行大量的字符串拼接,请使用StringBuilder类,而不要直接使用+号连接。
16、在涉及身份验证(如登录验证)、数据安全等影响系统安全的关键段,执行的SQL语句应使用参数化查询,不应该使用拼接的SQL语句。
17、尽量使用强类型数据、强类型集合(如List、Dictionary)以获得更好的编程支持及数据安全。
18、不要把大量的数据存储在全局对象中(如Session、ViewState、Application等),全局对象应只保存关键的、较少量的数据及信息。
19、在定义Javascript函数(方法)时,绝对要注意函数的命名不能与window对象的属性或者方法名称产生冲突。
20、Javascript命名规范:
函数的首字母小写,从第二个单词起,每个单词首字母大写;对象的首字母大写。
以上规范最终解释权归武汉厚溥教育科技有限技术公司所有特此声明!
【个人心得】
个人心得与总结日志
我的体会
1、
2、
3、
我打算做
第3章项目展示
一个好的应用界面的必备的条件是:
内容清楚、指示明白、屏幕美观和有亲切感。
界面通常包含图形和文字。
应用界面的设计是对控件进行适当的取舍及功能的选择和处理过程。
在程序设计中需要对设计的方法反复推敲才能使其达到完美的境界。
3.1系统角色分工
本系统主要分为三种角色:
系统管理员、主管、员工。
各角色进入系统后,根据权限可以操作的模块如下:
系统管理员:
主要完成系统各模块基本数据的初始化工作,包括定义部门、录入员工、设置年月份的特殊上班/休假日期。
主管:
主要完成对所管辖的部门的员工的请假审批工作,以及考勤信息的导入、查看部门员工的考勤状态。
员工:
主要完成请假的申请,以及个人年月份的考勤状态数据的查询。
3.2项目主体内容展示
用户登录页面:
注:
(系统管理员:
admin)登录成功后,根据用户的不同角色,到达不同的功能页面。
系统管理员登录成功后到达考勤设置页面:
用户管理页面:
点击“添加”,打开新增用户界面:
点击“编辑”,打开编辑用户信息界面:
删除用户:
部门管理页面:
点击“添加”,打开新建部门界面:
点击“编辑”,打开修改部门信息界面:
修改个人信息页面:
主管登录成功后到达考勤管理页面:
点击“导入考勤数据”,打开考勤导入界面:
点击表格中的“查看”,打开员工考勤查看界面:
请假审批页面:
点击“查看”,打开请假单审批界面:
当请假单处于“归档”状态时,则打开查看请假单信息界面:
员工登录成功后到达我的考勤页面:
我的考勤状态数据也可以以日历的形式展示:
请假申请页面:
点击“请假”,打开发起请假申请界面:
点击“编辑”,可以打开请假申请信息编辑界面:
【个人心得】
个人心得与总结日志
我的体会
1、
2、
3、
我打算做
第4章模块需求介绍
本系统按照角色身份功能可以分为公共功能、管理员功能、主管功能、员工功能四大类。
4.1公共功能
公共功能为使用本系统的所有用户都具有的功能。
其中包括登录和个人信息。
4.1.1登录
4.1.1.1用户登录
Ø信息来源:
所有用户
Ø信息要求:
用户登录系统及其身份验证
Ø事件信息系统处理:
点击登录按钮后,验证用户名和密码是否允许登录。
对于用户名或密码无效的用户,弹出提示“用户名或密码错误!
”,并不允许登录;对于通过验证的用户,允许用户登录,并根据用户的不同身份跳转到相应的默认页面。
Ø信息处理结果:
对于系统管理员,默认跳转到“考勤设置”;对于主管,默认跳转到“考勤管理”;对于员工,默认跳转到“我的考勤”。
4.1.2系统主页
4.1.2.1个人信息
Ø信息来源:
所有用户
Ø信息要求:
当前登录的用户可以修改登录密码以及手机号码
Ø事件信息系统处理:
点击保存按钮,保存用户修改的手机号码信息。
如果“新密码”和“确认密码”都为空,则可以提交保存,且保存时不用修改登录密码;如果只填写了其中一项,则需给出提示——另一项也必须填写,此时不能提交保存;如果这两项都填写了,则还需要验证两次输入的密码是否一致,如果不一致,给出提示,且不能提交保存;只有两次输入密码相同时,才允许提交保存,此时将修改当前用户的登录密码为本次新设置的密码。
Ø信息处理结果:
将用户修改的手机、登录密码信息更新到数据库。
4.1.2.2退出
Ø信息来源:
所有用户
Ø信息要求:
退出系统
Ø事件信息系统处理:
点击退出按钮,注销当前用户的登录,并跳转到登录页面。
Ø信息处理结果:
注销当前登录用户信息,跳转到登录页面。
4.2管理员功能
系统管理员的主要功能是对系统的的基础数据进行维护,保证系统的正常运行。
其功能包括用户管理、部门管理、考勤设置。
4.2.1用户管理
4.2.1.1查询用户
Ø信息来源:
系统管理员
Ø信息要求:
以表格形式显示分页的用户的数据
Ø事件信息系统处理:
点击查询按钮时,根据所输入的查询条件对用户数据进行联合查询,并将查询结果数据以分页的形式显示在表格中。
列表中列头标题为超链接,点击可以实现按照对应的字段对数据进行升序/降序排列切换显示。
Ø信息处理结果:
查询出所有符合条件的非管理员用户(即所有员工、主管),并以表格形式分页显示。
4.2.1.2添加用户
Ø信息来源:
系统管理员
Ø信息要求:
实现用户的添加功能
Ø事件信息系统处理:
1.用户类型的选项为“员工”、“主管”。
2.点击保存按钮时,对用户信息中的必填项进行验证,如果没有填写,则进行相应的提示,并不允许提交保存。
如果必填项都已填写,则可以提交保存。
提交保存时,需要首先对该用户ID进行验证是否已经存在,如果已经存在则提示“该用户ID已经存在!
”,并不允许保存;如果该用户ID不存在,则保存用户信息,并根据保存结果给出相应的提示。
Ø信息处理结果:
将填写的用户信息保存到数据库,完成用户的添加。
4.2.1.3修改用户
Ø信息来源:
系统管理员
Ø信息要求:
对系统中现有用户的信息进行修改
Ø事件信息系统处理:
1.页面打开时,自动加载出该用户的信息,其中用户ID为只读不能修改。
2.点击保存按钮时,对用户信息中的必填项进行验证,如果没有填写,则进行相应的提示,并不允许提交保存。
如果必填项都已填写,则可以提交保存,并根据保存结果给出相应的提示。
Ø信息处理结果:
将填写的用户信息更新到数据库,完成用户信息的修改。
4.2.1.4删除用户
Ø信息来源:
系统管理员
Ø信息要求:
将所选择的用户从系统中删除
Ø事件信息系统处理:
点击删除按钮时,对用户的删除操作弹出确认提示“确定要删除选择的用户吗?
”如果选择“否”,则不做任何操作;如果选择“是”,则删除所选择的所有用户数据,并根据删除结果给出相应的提示。
Ø信息处理结果:
将用户信息从数据库中删除。
4.2.2部门管理
4.2.2.1查询部门
Ø信息来源:
系统管理员
Ø信息要求:
以表格形式显示分页的部门的数据
Ø事件信息系统处理:
1.加载部门列表时,如果该部门下不存在任何用户,则最后一列操作列中显示删除按钮;如果该部门下存在用户,则不显示删除按钮。
2.点击查询按钮时,根据所输入的查询条件对部门数据进行联合查询,并将查询结果数据以分页的形式显示在表格中。
Ø信息处理结果:
查询出所有符合条件的部门数据,并以表格形式分页显示。
4.2.2.2添加部门
Ø信息来源:
系统管理员
Ø信息要求:
实现部门的添加功能
Ø事件信息系统处理:
点击保存按钮时,对部门信息中的必填项进行验证,如果没有填写,则进行相应的提示,并不允许提交保存。
如果必填项都已填写,则可以提交保存。
提交保存时,需要首先对该部门名称进行验证是否已经存在,如果已经存在则提示“部门名称已经存在!
”,并不允许保存;如果该部门名称不存在,则保存部门信息,并根据保存结果给出相应的提示。
Ø信息处理结果:
将填写的部门信息保存到数据库,完成部门的添加。
4.2.2.3修改部门
Ø信息来源:
系统管理员
Ø信息要求:
对部门信息进行修改
Ø事件信息系统处理:
1.页面打开时,自动加载出部门信息。
2.点击保存按钮时,对部门信息中的必填项进行验证,如果没有填写,则进行相应的提示,并不允许提交保存。
3.提交保存时,如果修改了部门名称,则需要对新的部门名称进行验证是否已经存在,如果存在则提示“部门名称已经存在!
”,并不允许保存。
保存之后,根据保存结果给出相应的提示。
Ø信息处理结果:
将填写的部门信息更新到数据库,完成部门信息的修改。
4.2.2.4删除部门
Ø信息来源:
系统管理员
Ø信息要求:
将所选部门从数据库中删除
Ø事件信息系统处理:
点击删除按钮时,对用户的删除操作弹出确认提示“确定要删除该部门吗?
”如果选择“否”,则不做任何操作;如果选择“是”,则删除所选择的部门数据,并根据删除结果给出相应的提示。
Ø信息处理结果:
将该部门从数据库中删除。
4.2.3考勤设置
4.2.3.1显示设置信息
Ø信息来源:
系统管理员
Ø信息要求:
以列表的形式显示所选月份的考勤设置信息
Ø事件信息系统处理:
1.点击显示按钮,将所选年月份的整月的考勤设置信息以列表形式展示出来,并显示“保存”按钮。
2.列表中的“状态”一列显示为下拉列表,下拉列表的选项为“默认”“上班”“休假”,默认选项为“默认”。
Ø信息处理结果:
显示出所选月份的每一天的状态数据。
4.2.3.2保存设置信息
Ø信息来源:
系统管理员
Ø信息要求:
将列表中该月份的每一天所选择的下拉列表的状态保存到数据库
Ø事件信息系统处理:
点击保存按钮,将整个列表中该月份的每一天所选择的下拉列表的状态保存到数据库中,并根据保存结果给出相应的提示。
Ø信息处理结果:
将所选月份的每一天的状态数据保存到数据库中。
4.3主管功能
4.3.1考勤管理
4.3.1.1查看考勤
Ø信息来源:
主管
Ø信息要求:
以列表形式展示部门员工在所选年月的考勤状态
Ø事件信息系统处理:
1.页面加载后,以分页的形式显示当前主管所管理的部门下所有员工的基本信息,列表中列头标题为超链接,点击可以实现按照对应的字段对数据进行升序/降序排列切换显示。
2.点击“查看”打开考勤查看界面,可以选择年月并查询该员工在所选年月的考勤状态信息。
3.考勤状态信息以列表形式展示,详情见“员工功能——我的考勤——查看考勤信息(列表)”。
Ø信息处理结果:
显示该员工在所选年月的考勤信息状态数据。
4.3.1.2导入考勤
Ø信息来源:
主管
Ø信息要求:
将Excel形式的考勤打卡记录导入到系统中
Ø事件信息系统处理:
点击导入考勤数据按钮,打开考勤导入界面。
浏览要导入的考勤记录Excel文件,并点击导入按钮完成打卡记录的导入。
如果没有选择文件,则提示“请选择要导入的Excel文件”。
所选的文件必须是Excel工作表形式的考勤打卡记录信息,如果所选文件格式不正确,则给出相应的提示“Excel文件格式不正确”。
若Excel文件格式无误(即为打卡记录Excel表),则将Excel中所有的打卡记录全部导入到数据库,并根据导入结果给出相应的提示。
Ø信息处理结果:
将所选的考勤Excel文件中的打卡记录保存到数据库,完成打卡记录的导入。
4.3.2请假审批
4.3.2.1查询请假单
Ø信息来源:
主管
Ø信息要求:
以表格形式显示当前主管所管理的部门的所有员工的请假申请
Ø事件信息系统处理:
页面加载后,以分页的形式显示当前主管所管理的部门下所有员工的请假申请记录,默认查询出“待审批”的请假数据;列表中列头标题为超链接,点击可以实现按照对应的字段对数据进行升序/降序排列切换显示;点击查询按钮时,根据所输入的查询条件对请假单数据进行联合查询,并将查询结果数据以分页的形式显示在表格中。
Ø信息处理结果:
查询出所有符合条件的请假申请数据,并以表格形式分页显示。
4.3.2.2审批请假单
Ø信息来源:
主管
Ø信息要求:
对部门员工的请假申请进行审批
Ø事件信息系统处理:
点击列表上的查看超链接,打开请假审批界面。
页面打开时,加载出请假申请的信息,并且为只读不能修改;并根据当前请假单的状态,显示出不同的审批信息:
如果当前请假单为“待审批”,则审批信息为空,需要主管对该请假单进行审批。
其中,“审批结果”包括“同意”、“不同意”,且为必填项。
点击确定按钮时,需要对必填项进行验证。
保存时,将审批结果信息保存到数据库,并且更新请假单的状态为“归档”;如果当前请假单为“归档”,则查看请假单的审批信息,为只读。
Ø信息处理结果:
将部门员工的请假单审批结果保存到数据库。
4.4员工功能
4.4.1我的考勤
4.4.1.1查看考勤信息(列表)
Ø信息来源:
员工
Ø信息要求:
以列表形式展示所选年月的考勤状态。
Ø事件信息系统处理:
点击查看按钮,查询出当前登录的员工在所选年月的考勤状态结果信息,并以列表的形式显示出来。
其中:
1.将所选月份的所有日期(从当月的第一天到当月的最后一天,如所选日期为4月,则显示4月1日~4月30日)的每一天的考勤状态数据都显示出来;2.显示的信息包括:
日期、星期、首次打卡时间、最后打卡时间、考勤状态。
其中:
日期:
当天的日期
星期:
当天是星期几
首次打卡时间:
当天第一次打卡的时间
最后打卡时间:
当天最后一次打卡的时间
考勤状态:
见下3“考勤状态”
3.考勤状态:
根据当天的打卡情况、是否请假、是否需要上班、是否为默认休假日、是否为指定休假日等综合信息,系统自动推断出当天的考勤结果状态。
考勤状态共有8种:
✧正常:
当天正常按时打卡
✧未打卡:
当天只有一次打卡记录
✧请假:
当天包含于审批同意的请假申请时间范围内
✧休假:
当天为默认休假日(周末)或指定休假日(见考勤设置)
✧缺勤:
当天没有打卡记录
✧迟到:
第一次打卡时间晚于上班时间,且当天打卡两次
✧早退:
最后一次打卡时间早于下班时间,且当天打卡两次
✧迟到且早退:
当天打卡两次,且第一次打卡时间晚于上班时间,最后一次打卡时间早于下班时间
4.考勤的状态以半天为计算单位。
如果当天全天的考勤状态具有一致性,则只显示全天的考勤状态的综合结果(即当天只有一种状态);如果当天全天的考勤状态不具有一致性,则需要分别显示上午的考勤状态和下午的考勤状态(即当天有两种状态)。
具有一致性的考勤状态:
当天中的半天(上午或下午)不是请假状态,即全天上班或全天不上班
不具有一致性的考勤状态:
当天中的半天(上午或下午)处于请假状态,另外半天处于上班状态
Ø信息处理结果:
显示所选年月的考勤信息状态数据。
4.4.1.2查看考勤信息(日历)
Ø信息来源:
员工
Ø信息要求:
以日历形式展示所选年月的考勤状态。
Ø事件信息系统处理:
以日历形式显示当前登录的员工在所选年月的考勤状态信息。
当鼠标停留在日历中的某一天的单元格时,可以以气泡的形式显示出当天的首次打卡时间和最后打卡时间。
考勤状态见“查看考勤信息(列表)”。
Ø信息处理结果:
显示所选年月的考勤信息状态数据。
4.4.2请假申请
4.4.2.1查询申请
Ø信息来源:
员工
Ø信息要求:
以表格形式显示当前用户发起的所有请假申请
Ø事件信