SpringBoot技术打造智能考勤平台

news/2024/11/27 2:16:00/

第1章 绪论
1.1 项目背景及意义
企业内部工作人员每天当中的出勤记录能够看出员工对于工作的积极性和工作是否高效。这种方式比较困难但是也在持续的前进,以前的通过人工记录出勤的企业工作人员工作时态度应用的方法并不正确,不但是这些不利之处,而且还比较的耗费时间和经营管理当中的成本。在这样的背景之下,对于企业所拥有的利益并不是特别好,企业没有办法更好的了解工作人员的态度和每天出勤的记录,因此不可以指定出很合适的工作人员管控方法。如果没有更好的管理方法,就不会得到相对好一点的未来。在这种前提之下,持续的出现了新型的方式来代替旧的办法。
在运用人工的方法处理是比较耗费时间、人们劳动力还有成本的,在计算当中极可能出现误差。企业对于工作人员的上班下班或者需要加班的时候这些状况展开总的统计,了解工作人员的日常工作状态,运用计算机软件办法对于出勤的信息内容展开计算并且进行相应的处理编制,选择且放弃没用的数据内容,归整收纳、获得有用的种种表格和出勤的统计数值。从企业进行管理控制的员工的方面来说,企业有着一整套比较完整的出勤管理控制体系,能够更好的控制管理企业的工作人员,对于员工的日常高效率工作也有所帮助,这样也相应的降低了企业的耗费。从这些来看,研制除了一个水平比较高并且很容易操作运转的企业出勤控制管理的整个体系,对于企业未来的良好发展有很大的作用。
1.2 国内外研究现状
企业对于出勤的管理整个的体系历史是比较久远的,开始运用比较正规的体系最少也是在公元三世纪的时候。就是因为这些历史因素,我们国家在经营的时候管理的能力并不理想,和比较发达一些的国家或者企业存在着比较大的区别。竞争也在日益的变强,在对于工作人员的管理控制分析方面,学习了很多的经验内容。进行管理控制的办法和现代化企业的规定也在持续规整,比较先进的国家外部的管理控制想法也慢慢的流入了中国,但是也留存着许多不足需要处理。最近的这些年,在对于计算机软件技术方面的持续变大,我们国家也变成的完整的信息化的国家。许多比较繁琐的问题在目前的科学发展当中有所解决。目前的国家有关的单位当中,计算机软件技术完成了对于企业出勤记录的整个体系应用比较广泛,对于工作人员的日常工作状态有所管理。在实习时期,企业运用的考察出勤的方式是通过IC卡来进行识别的办法。这样就很大可能得降低了员工的负担,尽可能的不出现人带来的误差,这样也就做到了高效性。
但是按照完整考核的目标对于考察出勤体系的完整性质进行衡量时,整个的出勤记录体系是在对于数值的管理加工和数据的整理规整两个当中能可以更好的完成职任。国家内部和外部现在比较领先的就是运用生物的有关办法对于人体内部的技能地位识别,并且不通过统计来对于数据进行规整聚集最后对数据进行规整加工。
1.3 主要研究内容
这篇文章就是联合了Web展开模型块状的研究开发,研究开发企业的有关出勤考察体系的整个过程。从整个体系的需要方面了解企业的整个管理控制体系展开了解。在体系的构造的完成并且实验当中展开了解。探究的目标就是为了管理的员工和工作人员可以及时的看到出勤规整记录和对于工资的统计的整个的出勤体系。

第4章 系统设计
4.1 总体功能概述
4.1.1系统功能模块的划分
分析企业的考勤管理系统过程可以看到,考勤管理系统中主要要解决的是:
1.考勤信息的管理;
2.考勤、出勤信息的请假及申请;
3.给系统设定用户登录权限;
4.设定密码更改功能等等。
根据以上分析的业务流程,结合传统的考勤系统的业务流程,待开发的考勤管理系统分为两个用户模块:员工和管理员。系统的功能模块图如图所示:
在这里插入图片描述

图4-1 系统总体功能模块图
4.1.2 系统的结构框架图
Firewall 防火墙
MYSQL: 系统服务器所使用的数据库管理系统(DBMS),一种结构化查询数据库的语言
事务流:数据进入模块后可能有多种路径进行处理。
ROLLBACK: 数据库的错误恢复机制。

在这里插入图片描述

图4-2 架构流程图
4.2 系统流程图

图4-3 系统考勤流程图
4.3数据库设计

MySQL 提供了许多支持数据库应用程序的工具。这些工具中有些工具在数据仓库中使用得较频繁,而有些则是专用于解决数据仓库的特殊要求。这里列出的工具常用于数据仓库应用程序,但是大多数工具还可用于其它的数据库应用程序。
4.3.1 系统数据流程图

上下班

加班

考勤时间设置

图5-1 系统数据流程图
4.4 数据库的设计
4.4.1 数据库的概念设计
管理系统主要以管理员、员工来共同完成一个业务流程。他们之间存在着数据关联并且靠数据库关键字段进行索引,建立表关联。

E-R图如下:

在这里插入图片描述

图5-2 E-R图
4.4.2 数据库逻辑结构设计
本管理系统所存在的数据库中有不同的表结构,这些物理表中存放着各种网站所调用的数据,为整个网站的流程提供最基本的数据来源。本网站采用MySQL数据库它是由Microsoft公司开发。对于它的安全性和易操作性来说是开发者首选。
管理员信息表(编号、姓名、帐号、密码)
员工信息表(编号、姓名、性别、登陆用户名、登陆密码、电话、是否部门领导)
出勤信息表(编号、员工ID、天数)
公告信息表(编号、标题、内容)
请假申请信息表(编号、开始时间、结束时间、员工ID、申请状态、恢复信息、备注)
图5-3 管理员信息表属性图

在这里插入图片描述

图5-3 管理员信息表属性图
图5-4员工信息表属性图
在这里插入图片描述

图5-4 员工信息表属性图
图5-5出勤信息表属性图
在这里插入图片描述

图5-5 出勤信息表属性图
在这里插入图片描述

图5-6公告信息表(编号、标题、内容)

图5-6 公告信息表属性图
图5-7请假申请信息表属性图
在这里插入图片描述

图5-7 请假申请信息表属性图
4.4.3 数据库物理设计
是要存储在物理设备上的。为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构(存储结构与存取方法)的过程,就是数据库的物理设计。物理结构依赖于给定的DBMS和和硬件系统,充分了解所用DBMS的内部特征,特别是存储结构和存取方法;充分了解应用环境,特别是应用的处理频率和响应时间要求;以及充分了解外存设备的特性。
表4.1管理员信息表
列名 说明 数据类型 数据长度 可否为空 键码
userid 用户id int 4 否 主键
username 用户名 varchar 51 是
userpw 密码 varchar 50 是

表4.2出勤信息表
列名 说明 数据类型 数据长度 可否为空 键码
id 编号id int 4 否 主键
yuefen 月份 varchar 50 是
tianshu 天数 int 4 是
yuangong_id 员工ID int 4 是

表4.3公告信息表
列名 说明 数据类型 数据长度 可否为空 键码
id 编号 varchar 50 否 主键
title 标题 varchar 50 是
content 内容 varchar 8000 是
shijian 时间 varchar 50 是

表4.4请假申请信息表
列名 说明 数据类型 数据长度 可否为空 键码
id 编号 int 4 否 主键
kaishishijian 开始时间 varchar 50 是
jieshushijian 结束时间 varchar 50 是
beizhu 备注 varchar 5000 是
yuangong_id 员工ID int 4 是
shenhezhuangtai 申请状态 varchar 50 是
huifuxinxi 恢复信息 varchar 50 是

表4.5员工信息表
列名 说明 数据类型 数据长度 可否为空 键码
id id int 4 否 主键
bianhao 编号 varchar 50 是
name 姓名 varchar 100 是
sex 性别 varchar 50 是
shifoubumenlingdao 是否部门领导 varchar 50 是
loginname 登录名 varchar 50 是
loginpw 登陆密码 varchar 50 是
del 电话 varchar 50 是

4.5 输入输出设计
出设计是系统设计中很容易被忽视的环节,又是一个重要的环节。一个好的输出系统设计可以为用户和系统双方带来良好的工作环境,一个好的输出设计可以为管理者提供简捷、明了、有效、实用的管理和控制信息。本管理系统输入设计数据根据输出的要求来选择。输出类型设计是根据需求设计为打印输出,这是用户通常要求的最主要的形式。输入内容设计主要是根据数据库设计和输出设计的结果来确定的。外部输入主要是键盘输入,内部输入只要是数据库中调用的信息,如会员资料信息的注册,在后台对帖子管理,用户信息,重要通知的添加。
4.6 存储过程的设计
存储过程(stored procedure)是Transact-SQL语句的预编译集合,这些语句在一个名称下存储并作为一个单元进行处理。存储过程可以提高客户机重复向数据库服务器发送或请求的功能。存储过程通过接受参数并且返回状态值,以表示成功或失败。
MySQL中的存储过程与其它编程语言中的过程类似,原因是存储过程具备以下功能。
(1)接受输入参数并以输入参数的形式将多个值返回调用过程或批处理。
(2)包含执行数据库操作的编程语句。
(3)向调用过程或批处理返回状态值,以表明成功或失败。
MySQL 存储过程是用Transact-SQL的CREATE PROCEDURE语句创建的,并可用ALTER PROCEDURE语句进行修改。
我们是便用查询分析器生成的,其代码如下:
–1、创建添加出勤表的存储过程
–(1)添加数据
Create procedure proc_addTableCWA(@CWAName varchar(30)) as insert into Table_CWA values(@CWAName) return @@identity
go
–(2)删除数据
Create procedure proc_delTableCWA(@CWAID int) as delete from Table_CWA where CWAID =@CWAID
return @@identity
go
–(3)修改数据
Create procedure proc_updateTableCWA(@CWAID int,@CWAName varchar(30)) asupdate Table_CWA set CWAName=@CWAName where CWAID=@CWAID return @@identity
go
–(4)查找数据
Create Procedure proc_selectTableCWA as select * from Table_CWA
go
Create Procedure proc_selectTableCWAName(@CWAName varchar(40)) as select * from Table_CWA where CWAName=@CWAName
Go
–2、创建添加级别表的存储过程
–(1)添加数据
create procedure proc_AddTableLevel(@PeopleLeval varchar(30)) as
insert into Table_Level values (@PeopleLeval) return @@identity
go
–(2)删除数据
Create Procedure proc_DelTableLevel(@PeopleLevelID int) as delete from Table_Level
where (PeopleLevelID=@PeopleLevelID) return @@identity
go
–(3)修改数据
Create Procedure proc_updateTableLevel(@PeopleLevelID int,@PeopleLeval varchar(30)) as
update Table_Level set PeopleLeval=@PeopleLeval where PeopleLevelID=@PeopleLevelID
return @@identity
go
–(4)查找数据
–全体查找
create Procedure proc_selectTableLevel as select * from Table_Level ORDER BY PeopleLevelID ASC
go
–根据PeopleLeval查找
create Procedure proc_selectTableLevelName(@PeopleLeval varchar(30)) as select * from Table_Level where PeopleLeval=@PeopleLeval
go
–3、创建添加个人情况表的存储过程
–建立个人情况的视图
CREATE VIEW dbo.view_people
AS SELECT dbo.Table_People.PeopleID,
dbo.Table_People.PeopleNumber, dbo.Table_People.PeopleName,
dbo.Table_People.PeopleSex, dbo.Table_Level.PeopleLeval
FROM dbo.Table_People INNER JOIN
dbo.Table_Level ON
dbo.Table_People.PeopleLevelID = dbo.Table_Level.PeopleLevelID
GO
–查找数据(1)
–全部查找
Create Procedure proc_selectTablePeople as select * from view_people
go
–根据编号查找
Create Procedure proc_selectTablePeopleNo(@PeoPleNumber char(6)) as
select * from view_people where PeoPleNumber=@PeoPleNumber
go
–根据时间和个人姓名查找
create procedure proc_SelectPeopleIformationNameTime
(@PeopleName varchar(30),@LYear int,@LMonth int,@LDay int,@LYear1 int,@LMonth1 int,@LDay1 int) as
select * from view_CheckOnWorkAttendance where PeopleName=@PeopleName and LYear>=@LYear and LMonth>=@LMonth and LDay >=@LDay and LYear<=@LYear1 and LMonth<=@LMonth1 and LDay <=@LDay1
go
–根据时间和职业查找
create procedure proc_SelectPeopleIformationLevelTime
(@PeopleLeval varchar(30),@LYear int,@LMonth int,@LDay int,@LYear1 int,@LMonth1 int,@LDay1 int) as
select * from view_CheckOnWorkAttendance where PeopleLeval=@PeopleLeval and LYear>=@LYear and LMonth>=@LMonth and LDay >=@LDay and LYear<=@LYear1 and LMonth<=@LMonth1 and LDay <=@LDay1
go


http://www.ppmy.cn/news/1550212.html

相关文章

GoF设计模式——结构型设计模式分析与应用

文章目录 UML图的结构主要表现为&#xff1a;继承&#xff08;抽象&#xff09;、关联 、组合或聚合 的三种关系。1. 继承&#xff08;抽象&#xff0c;泛化关系&#xff09;2. 关联3. 组合/聚合各种可能的配合&#xff1a;1. 关联后抽象2. 关联的集合3. 组合接口4. 递归聚合接…

SpringBoot(9)-Dubbo+Zookeeper

目录 一、了解分布式系统 二、RPC 三、Dubbo 四、SpringBootDubboZookeeper 4.1 框架搭建 4.2 实现RPC 一、了解分布式系统 分布式系统&#xff1a;由一组通过网络进行通信&#xff0c;为了完成共同的任务而协调工作的计算机节点组成的系统 二、RPC RPC&#xff1a;远程…

如果在docker 容器中安装ros遇到的问题

1.在容器内部无法修改时间&#xff0c;需要在宿主机外边修改时钟。修改时钟&#xff1a; hwclock --systohc或者执行 date -s "2024-11-24 19:25:10"2.容器内部内置有opencv4.5版本&#xff0c;需要卸载&#xff0c;重新安装4.2.0版本。记录折腾好久的卸载过程。 …

websocket是什么?

一、定义 Websocket是一种在单个TCP连接上进行全双工通信的协议&#xff0c;它允许服务器主动向客户端推送数据&#xff0c;而不需要客户端不断的轮询服务器来获取数据 与http协议不同&#xff0c;http是一种无状态的&#xff0c;请求&#xff0c;响应模式的协议(单向通信)&a…

CSS回顾-CSS样式优先级规则详解

一、引言 在之前梳理 CSS 选择器的文章&#xff08;CSS 回顾 - CSS 选择器详解&#xff09;中&#xff0c;我们对 CSS 选择器有了全面的认识。此刻&#xff0c;不妨思考这样一个问题&#xff1a;倘若众多不同类型的选择器均针对 h1 标签设定样式&#xff0c;究竟会呈现何种结果…

蓝网科技临床浏览系统存在SQL注入漏洞

漏洞描述 蓝网科技临床浏览系统是一个专门用于医疗行业的软件系统&#xff0c;主要用于医生、护士和其他医疗专业人员在临床工作中进行信息浏览、查询和管理。在deleteStudy.php中的接口处存在SQL注入漏洞&#xff0c;未经身份验证的恶意攻击者利用 SQL 注入漏洞获取数据库中的…

Jtti:如何知晓服务器的压力上限?具体的步骤和方法

了解服务器的压力上限(也称为性能极限或容量)是确保系统在高负载下仍能稳定运行的重要步骤。这通常通过压力测试(也称为负载测试或性能测试)来实现。以下是详细的步骤和方法来确定服务器的压力上限&#xff1a; 1. 定义测试目标和指标 在进行压力测试前&#xff0c;明确测试目标…

【Mybatis】@Param注解 resultMap手动映射

文章目录 一、映射文件参数二、查询映射2-1 一对一2-2 一对多2-3 总结 一、映射文件参数 Param 注解官方文档解释 1、单个参数&#xff08;对象&#xff09;不使用注解 public int save(User user);<!-- 添加用户 --> <insert id"save" parameterType&quo…