1. 引言
随着信息技术及现代企业的持续发展,人力资源中的考勤已成为企业管理的核心工作之一 [1] 。随着企业不断扩大规模,业务范围的增加导致考勤工作变得更为繁杂 [2] 。为处理大量考勤及其衔接的业务数据,传统的人工方式已逐渐显得力不从心,无法满足日常考勤工作检索、管理、维护等需求;且以往的考勤模式很难顺应信息技术的发展,存在着诸如考勤纰漏、数据及签到造假等诸多问题;此外,尽管考勤制度的重要性无可否认,但即使是最严格的考勤制度也需要包含一定的灵活性,考勤管理需要借助制度的规范作用,但不能仅仅停留在制度的机械执行上,而是应注重发展人性化管理的企业文化 [3] [4] 。为了避免以上问题频繁出现,许多企业已逐步顺应时代发展,开始借助信息技术实现电子式考勤 [5] 。但是在实际运用期间,不少考勤系统依旧出现许多弊端,无法针对性的满足考勤实际需求,如系统功能单一、性能缺乏灵活性、安全性堪忧、功能难以拓展、考勤规则设置机械化等,给企业在进行考勤工作时同样带来不少问题。针对此类诸多问题,开发全新的企业考勤系统迫在眉睫,为企业提供一种高效、准确、便捷的考勤管理解决方案。
2. 系统框架需求分析
2.1. 功能需求分析
作为办公自动化的组成分支,本文所开发的基于MVC的考勤系统关键目的是辅助人力资源在进行员工考勤工作期间提升工作效率,降低工作负担,节约人力、时间方面的成本,便于人力资源管理工作的顺利推进。基于MVC的考勤系统实际功能需求汇总,共包括以下几点内容:
1) 员工信息维护、部门信息维护、查询统计和报表功能等,便于对员工、部门信息进行管理及汇总展示。
2) 员工常规考勤、加班申请与管理换休的功能,能够处理员工假期的审核、审批和申请。
3) 系统角色与权限管理,处理员工邮件,以及实现系统登录和注销的功能。
4) 人事对部门对企业员工信息进行添加、删除、查看和修改操作的能力,对企业部门信息进行添加、删除、查看和修改等操作。
5) 工作时间记录,根据公司规定的工作时间制度,员工的工作时间需要进行详细的记录和统计。
6) 弹性考勤,考虑到员工由于特殊原因导致出勤异常,或者由于出差、紧急任务等情况的出现无法正常考勤,需根据实际情况灵活设置考勤规则,避免考勤工作机械化。
7) 考勤统计,定期对进行员工考勤数据的统计和分析,生成相应的考勤报表。这些报表包括员工的出勤情况、迟到早退次数、加班时数等信息,有助于管理层监控员工的出勤情况。
通过将这些功能融合在一个系统中,企业可以更加高效地管理员工的考勤情况,提高工作效率,并且减少人力资源部门的工作量。
业务用例主模型的建立涉及到系统管理员和员工这两个参与对象。在建立用例模型之前,需要对涉及到系统的参与者与系统管理员的执行行为关系进行分析。在分析的基础上,将软件能够实现的功能和命令进行细化拆分,以完成对系统功能模型的构建。这样的步骤可以确保业务用例模型建立的准确性和完整性。基于MVC的考勤系统需求分类整理,共分为四个需求模块,系统管理模块、人事管理模块、考勤管理模块、统计管理模块。系统的总体功能用例分析图如图1所示。

Figure 1. System function use case diagram
图1. 系统功能用例图
2.2. 非功能需求分析
1) 性能需求
基于MVC的考勤系统对于用户发来的操作需要迅速做出响应,确保响应时间及时高效。此外,系统在处理业务时需具备较快的速度,对于并发操作,尤其是对数据库进行更新等相关操作,有着较高要求。
2) 安全性需求
当需要进行基于MVC的考勤系统管理时,需要借助权限设置、数据加密、认证授权等多种技术手段对数据进行保护,确保系统数据安全性。
3) 可扩展性需求
为了满足用户持续增加的需求,优良的模块化架构是基于MVC的考勤系统设计与实现的必要条件。以便为后期系统优化提供扩展和维护支持,同时支持水平、垂直扩展,适应新的技术标准和发展趋势。
3. 系统总体设计
3.1. 设计思路
考勤系统技术架构选型上,选用了三层的浏览器/服务器(B/S)模式进行搭建、用户与系统的交互使用Java EE架构体系中的SSH框架技术、开发模式选取MVC三层体系结构、并结合JSP开发技术以及SQL Server 2020数据库技术为技术支撑。设计一套简单易用的考勤系统,该系统应实现四种主要功能,并能根据不同用户权限提供相应的功能操作,提升企业考勤工作效率,并带来极大便利性,为企业人力资源管理提供一定的决策依据 [6] [7] [8] 。所有考勤系统的用户只需安装浏览器即可轻松使用基于MVC的考勤系统,不需要额外安装任何第三方浏览器插件,有效地减少兼容性问题的发生。
3.2. MVC开发模式
MVC (Model-View-Controller)模式是一种将程序代码分割成互相独立但又能相互协作的三个部分的设计模式缩写。这种模式的核心思想是将应用程序的输入、处理和输出强制性地分离开来。在MVC模式中,模型部分是核心,主要负责实现业务逻辑等功能;视图部分是系统与客户进行交互的界面;而控制器部分则起到连接模型和视图的桥梁作用。具体而言,MVC模式将一个程序分成了三个独立的部分。视图负责与用户交互,展示界面,接收用户的输入。模型代表数据和逻辑,处理具体的业务逻辑,对数据进行操作和处理。而控制器则接收视图部分的输入,并将用户的需求发送给模型部分进行处理。控制器本身并不进行具体的处理和输出,它的目的是将用户的需求传递给模型进行处理,然后将处理结果返回给视图,由视图来决定使用哪个界面来展示结果。
3.3. 系统网络架构
基于MVC的考勤系统的服务器应该放置在企业内部,以便系统内部用户如系统开发及维护人员等能够通过内部网络进行访问。而其他用户如调度用户则需要通过设有防火墙的广域网来访问系统。防火墙的设置能够有效地防止外部用户的非法入侵,保护系统的数据不被盗取。通过建立一个安全的访问通道,系统能够提供给合法的外部用户使用。此外,系统管理员拥有全部的系统权限,能够对系统进行配置、监控和调整等操作,确保系统的正常运行和管理的高效性。系统的网络架构图如图2所示。

Figure 2. System network architecture diagram
图2. 系统网络架构图
3.4. 系统总体功能
考勤系统功能设计基于功能需求分析结果共划分为系统管理、人事管理、考勤管理以及统计管理四大功能模块,具体如图3所示。

Figure 3. System function structure diagram
图3. 系统功能结构图
3.5. 考勤结果计算规则
确保考勤结果的公平是以融合计算规则为前提,所有按企业规定设置的考勤结果通常分为合格、不合格、待定三大类,之后对不同行为配置对应权重;其中考勤待定具有一定灵活性,可依据实际情况弹性配置对应权重,之后参考加权的和规则明确最终考勤结果。具体计算规则如表1所示。

Table 1. Attendance result calculation rules table
表1. 考勤结果计算规则表
依据考勤行为结果的不同程度共分为以下三种权重配置方式:第一,考勤不合格,分配权重为0;第二,考勤合格,分配权重为1;第三,考勤待定,分配权重0~1,具体的设置值由管理者灵活设置,实现具体原因具体对待的灵活考勤权重明确。之后依据加权的和均值规则得出员工最终考勤结果。
3.6. 系统运行环境
考勤系统是基于MVC模式的应用系统,在B/S架构下运行。为了保证系统的正常运行,至少需要在网络中配置一台数据库服务器和一台web服务器。建议数据库服务器和web服务器配置如下:
服务器操作系统:Windows Server 2019。
数据库:SQL Server 2020。
软件配置:Myeclipse软件。
Web发布配置:Tomcat 8.5。
Java运行环境:JDK 7.00。
其他开源库。
前端框架:DWZ前端软件。
Web服务框架:Spring软件、Hibernate软件、Struts 2软件。
客户端仅需IE8以上浏览器、Firefox,Chrome。
4. 系统数据库设计
4.1. 数据库E-R图设计
在数据库的使用过程中,确保信息的高效存储和关联是数据库使用中不可或缺的关键步骤。E-R关系图即实体–联系图是数据库概念结构中最有效的方式。考勤系统E-R图如图4所示。一个用户信息关联一个员工考勤相关信息,一个用户信息关联一个员工基础信息;员工可发送或接收多条邮件信息,一条邮件信息同样可被多个员工同时接收。
4.2. 数据库物理结构设计
为了有效处理大量数据,需要建立多个信息表,并细致地管理其中的信息关系。基于MVC看考勤系统数据库设计采用SQL Server 2020实现。
1) 用户信息
用户信息主要用来记录用户账户信息,包括登录系统人员用户名称、密码、权限信息等。表结构中包含中文名称、英文名称、累心、长度、是否可空等相关信息。
2) 员工基础信息
员工信息主要记录员工基础属性信息,主要包含员工名称、员工编码、所在部门、身份证号、联系方式、入职日期、教育背景、工作经历等内容。
3) 员工考勤信息
主要是用来查询、录入、修改、删除员工与考勤相关的信息,主要包括员工编号、员工姓名、上下班打卡、出勤、缺勤、迟到、早退、旷工、请假、休假、调休、考勤异常等信息,通过以上信息辅助员工考勤信息统计及报告生成。
4) 邮件信息
邮件信息主要记录员工考勤信息通知情况,包括发件人、收件人、主题、日期、时间、邮件正文、附件上传等信息,通过邮件信息表,员工可以方便地查找和整理自己的邮件考勤记录,提高信息传输工作质量。
5. 系统功能模块设计与实现
5.1. 系统管理
系统管理模块设计包括用户中心管理、权限设置、数据维护,以用户中心管理为例,主要包括对用户信息的增删改查,权限信息的增删改查以及数据信息的增删改查。该部分实现的主要鉴权机制是:
1) 用户依据自身实际需求进行增加、删除、修改和查询的操作;
2) 获取用户登录Session中对应的用户组的标志位值,记录为user-power;
3) 获取修改用户或用户组的标志位值,记录为repair-power;
4) 对user-power和repair-power的值进行判断;
5) 若user-power < repair-power,说明user-power优先级较高,可以修改;
6) 若user-power > repair-power,说明user-power优先级较低,系统返回错误。
5.2. 人事管理
人事管理功能设计包含部门管理、员工管理以及通知管理功能设计。在人事管理的实现上,根据之前的需求分析和设计,对其进行系统功能实现。首先进行用户信息验证,验证通过后则可进入人事管理功能,之后进入部门管理、员工管理或通知管理,并进行相应业务的增删改查;若无用户信息,则需申请并建立新的用户信息,方可进行相应的人事管理业务操作。以人事管理中的部门管理为例,系统部分实现界面效果图如图5所示。

Figure 5. Personnel management to achieve the interface effect diagram
图5. 人事管理实现界面效果图
5.3. 考勤管理
考勤管理包含考勤规范管理、考勤信息管理、考勤异常管理,员工点击进行入考勤管理后,选择相应的细化功能如考勤信息管理,可以进行考勤信息查看、修改、添加、删除等操作。以考勤管理中的考勤规范管理为例,该功能部分实现界面效果图如图6所示。

Figure 6. Attendance management interface effect diagram
图6. 考勤管理实现界面效果图
5.4. 统计管理
统计管理包含考勤查询、考勤统计、考勤报告生成等功能,以考勤报告生成为例,员工点击进入考勤报告生成后,选择相应的时间区间,可以进行对应时间范围内考勤报告生成输出,其中显示员工打卡、请假、缺勤等具体考勤数据汇总及文字分析。以统计管理中的考勤查询为例,该功能部分实现界面效果图如图7所示。

Figure 7. Statistical management to achieve the interface effect diagram
图7. 统计管理实现界面效果图
6. 系统测试
完成MVC架构下考勤系统的开发后,下一步就是进行系统测试,这是确保系统的稳定性和可靠性的关键环节。在测试过程中,主要注重对各个模块的功能进行测试,通过测试的结果可以确认系统是否完全满足业务需求,并且运行流畅。为了更详细地说明,以系统管理模块为例,下面是该模块的具体测试用例及其结果,表2中展示了详细的内容。

Table 2. System management module test table
表2. 系统管理模块的测试
7. 结论与展望
考勤系统在企业发展中的重要性不言而喻,因此对于考勤系统的研究与开发具有深远的意义。为了实现这一目标,本论文以某中小企业考勤系统设计与实现为目标,针对该企业的考勤业务需求进行详细的研究,采用MVC开发模式和SSH框架技术,对系统功能及数据库、架构等进行设计,最终完成高效的考勤系统设计和实现。通过研究,旨在推动企业考勤工作的信息化,提高人力资源的工作效率,以促进企业信息化的高效发展。目前设计与实现的考勤系统仍有不少值得改进的空间,未来可以在优化考勤系统功能上加入大数据、人工智能等技术,进一步实现考勤系统智能化发展。