SSM人事请假签到管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

news2024/10/1 15:31:47

一、源码特点
  SSM人事请假签到管理系统是一套完善的完整人事请假薪酬加班管理,结合SSM框架完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库,系统主要采用B/S模式开发。

视频链接: https://www.bilibili.com/video/BV1Vw411p7wk/
前段主要技术css javascript jsp html LayUi jquery
后端主要技术 SpringMVC spring mybatis
数据库 mysql
开发工具 eclipse  JDK TOMCAT

二、功能介绍
系统主要角色包括员工和管理员
(1)管理员管理:对管理员信息进行添加、删除、修改和查看
(2)部门管理:对部门信息进行添加、删除、修改和查看
(3)员工管理:对员工信息进行添加、删除、修改和查看
(4)部门调换管理:对部门调换信息进行添加、删除、修改和查看
(5)薪资管理:对薪资信息进行添加、删除、修改和查看
(6)考勤管理:对考勤信息进行添加、删除、修改和查看
(7)任务管理:对任务信息进行添加、删除、修改和查看
(8)薪资申请管理:对薪资申请信息进行添加、删除、修改和查看
(9)用户修改个人信息,登录验证有校验码

数据库设计

[表gly] 管理员列属性表格

序号字段名称数据类型长度主键描述
1glyidINTEGER11管理员编号
2yhmVARCHAR40用户名
3mmVARCHAR40密码
4xmVARCHAR40姓名

[表bumen] 部门列属性表格

序号字段名称数据类型长度主键描述
1bmidINTEGER11部门编号
2bmmcVARCHAR40部门名称
3jsVARCHAR40介绍

[表yuangong] 员工列属性表格

序号字段名称数据类型长度主键描述
1ygidINTEGER11员工编号
2yhmVARCHAR40用户名
3mmVARCHAR40密码
4xmVARCHAR40姓名
5lxdhVARCHAR40联系电话
6lxdzVARCHAR40联系地址
7bmVARCHAR40部门
8jbgzVARCHAR40基本工资
9cqgzVARCHAR40出勤工资
10jiabgzVARCHAR40加班工资

[表bmdh] 部门调换列属性表格

序号字段名称数据类型长度主键描述
1bmdhidINTEGER11部门调换编号
2btVARCHAR40标题
3nrVARCHAR40内容
4dhbmVARCHAR40调换部门
5ybmVARCHAR40原部门
6yhVARCHAR40用户
7sqsjVARCHAR40申请时间
8ztVARCHAR40状态

[表xinzi] 薪资列属性表格

序号字段名称数据类型长度主键描述
1xzidINTEGER11薪资编号
2yfVARCHAR40月份
3ygVARCHAR40员工
4jbgzVARCHAR40基本工资
5cqtsVARCHAR40出勤天数
6cqgzVARCHAR40出勤工资
7jbsjVARCHAR40加班时间
8jiabgzVARCHAR40加班工资
9fbsjVARCHAR40发布时间

控制层代码 

@RequestMapping(value="/add")
	public String add(kaoqin kaoqin,HttpServletRequest request){
		Map<String,Object> map= new HashMap<String,Object>();
		//String name=(String)request.getParameter("name");

		map.put("kqid", kaoqin.getKqid());//考勤编号

		map.put("rq", kaoqin.getRq());//日期

		map.put("sbsj", kaoqin.getSbsj());//上班时间

		map.put("xbsj", kaoqin.getXbsj());//下班时间

		map.put("yg", kaoqin.getYg());//员工

		map.put("zt", kaoqin.getZt());//状态

		map.put("jbsj", kaoqin.getJbsj());//加班时间



		String kqid=(String)kaoqin.getKqid();//考勤编号

		String rq=(String)kaoqin.getRq();//日期

		String sbsj=(String)kaoqin.getSbsj();//上班时间

		String xbsj=(String)kaoqin.getXbsj();//下班时间

		String yg=(String)kaoqin.getYg();//员工

		String zt=(String)kaoqin.getZt();//状态

		String jbsj=(String)kaoqin.getJbsj();//加班时间
		DBO db=new DBO();
		String sql="";
		ResultSet rs=null;
		int num=0;
		try{
			sql="select count(1) as num from kaoqin where rq='"+rq+"' and yg='"+yg+"'";
			rs=db.query(sql);
			if(rs.next()){
				
				num=rs.getInt("num");
			}
			if(num>0){
				request.setAttribute("msg", "<script>alert('考勤失败、当日已经产生数据');</script>");
				
			}else{
				kaoqindao.save(map);
				
				
				request.setAttribute("msg", "<script>alert('添加成功');</script>");
			}
			
			
		}catch(Exception e){
			e.printStackTrace();
		}finally{
			db.close();
		}

		
		System.out.println("addok");
		return "kaoqin/kaoqinadd";
	}
	
	/**删除 
	 * 
	 */
	@RequestMapping(value="/del")
	public String  del(Integer id,HttpServletRequest request,Map<String,Object> map){
	//	Map<String,Object> map= new HashMap<String,Object>();
		String a=(String)request.getParameter("keyid");
		id=Integer.parseInt(a);
		request.setAttribute("msg", "<script>alert('删除成功');</script>");
		kaoqindao.del(id);
		return selectall(null,map,request);
	}
	/**删除 
	 * 
	 */
	@RequestMapping(value="/xiaban")
	public String  xiaban(Integer id,HttpServletRequest request,Map<String,Object> map){
	//	Map<String,Object> map= new HashMap<String,Object>();
		String a=(String)request.getParameter("keyid");
		id=Integer.parseInt(a);
		DBO db=new DBO();
		String sql="";
		ResultSet rs=null;
		String rqa="";
		
		StaticMethod st=new StaticMethod();
		String sj=st.getStringDate();
		
		try{
			sql="select * from kaoqin where kqid='"+a+"'";
			rs=db.query(sql);
			if(rs.next()){
				rqa=rs.getString("rq");
			}
		
		
	
		
		
		String rq=sj.substring(0,10);
		
		String hsj=sj.substring(11,13);
		
		
		int num=0;
		if(rq.equals(rqa)){
			
			if(Integer.parseInt(hsj)>=18){//加班了
				num=Integer.parseInt(hsj)-18;
				
				sql="update kaoqin set zt='加班',jbsj='"+num+"',xbsj='"+sj+"'  where kqid='"+a+"'";
				
			}else{
				
				sql="update kaoqin set zt='下班',xbsj='"+sj+"' where kqid='"+a+"'";
				
			}
			db.update(sql);
			
		}else{
			request.setAttribute("msg", "<script>alert('下班失败、只能当日操作');</script>");
		}
		}catch(Exception e){
			
			e.printStackTrace();
		}finally{
			db.close();
		}
		
		
	
		return list(null,map,request);
	}

持久层代码

	 */
	public void save(Map<String, Object> map) {
		sqlSession.insert("com.renwu.insertrenwu", map);
		
	}
	/**
	 * 删除aa
	 * @param id
	 */
	public void del(Integer id) {
		sqlSession.delete("com.renwu.delrenwu", id);
	}

	/**
	 * 修改renwu信息
	 * @param map
	 */
	public void update(Map<String, Object> map) {
		sqlSession.update("com.renwu.updaterenwu", map);
	}

	/**
	 * 查询renwu信息
	 * @param id
	 * @return 
	 */
	public List<Map<String, Object>> select(Integer id) {
		return sqlSession.selectList("com.renwu.selectrenwu", id) ; 
	}

 

三、注意事项
1、管理员账号:admin密码:admin 数据库配置文件datasource.properties
2、开发环境为ECLIPSE开发,数据库为mysql,使用java语言开发。
3、数据库文件名是jspssmgcgl.sql 系统名称ssmgcgl
4、后台地址:http://127.0.0.1:8080/ssmgcgl/login.jsp 

四系统实现

源码获取 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1241648.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

巫溪家和计划——“平安快乐幸福家”宣传活动

8月&#xff0c;在重庆市婚姻收养登记管理中心的指导下&#xff0c;巫溪县民政局婚姻登记处、巫溪县同心社会工作服务中心在通城镇夏布坪海棠园会议室开展了“家和童行过暑假&#xff0c;平安快乐幸福家”安全教育活动&#xff0c;围绕防溺水安全、交通安全、消防安全、防拐怪防…

Linux中df命令使用

在Linux中&#xff0c;df命令用于显示磁盘空间的使用情况。它的基本语法如下&#xff1a; df [选项] [文件或目录]这个命令可以用来查看当前系统上各个磁盘分区的使用情况。如果没有指定文件或目录&#xff0c;则所有当前被挂载的文件系统的可用空间将被显示。 df命令的一些常…

促进材料基因工程基础理论、前沿技术和关键装备的发展和应用,第七届材料基因工程高层论坛将于12月重庆举办,龙讯旷腾出席会议

为了进一步促进材料基因工程基础理论、前沿技术和关键装备的发展和应用&#xff0c;加强国际交流&#xff0c;加速我国新材料的研发和应用&#xff0c;由中国材料研究学会、西部科学城重庆高新区管理委员会主办&#xff0c;重庆大学、北京科技大学、北京云智材料大数据研究院等…

SAP 锁机制及创建与使用介绍

一、SAP为什么要设置锁&#xff1a; 1&#xff0c;保持数据的一致性 如果几个用户要访问同样的资源&#xff0c;需要找到一种同步访问的方法去保持数据的一致性。比如说&#xff0c;在航班预订系统中&#xff0c;需要检查还有没有空座位&#xff0c;当检查的时候&#xff0c;你…

欧拉操作系统下离线安装字体的操作步骤

背景 某 Web 应用部署到欧拉操作系统后&#xff0c;应用中导出的 PDF 文件中文全部显示乱码&#xff0c;原因是字体缺失&#xff0c;但是目标系统上并没有联网&#xff0c;必须找到字体的离线安装包。 CSDN 上还有40个积分&#xff0c;下载了两个相关的资源后&#xff0c;目标…

千兆光模块和万兆光模块的供应链管理

随着网络通信技术的不断发展&#xff0c;千兆光模块和万兆光模块已逐渐成为现代网络建设中不可缺少的组成部分。它们在云计算、数据中心、大规模机房以及企业内部网络等领域广泛应用&#xff0c;已经成为大家熟知的产品。 千兆光模块和万兆光模块的工作原理基本相同&#xff…

【AI】行业消息精选和分析(11月23日)

今日动态 1、Sam Altman 重掌 CEO&#xff0c;OpenAI 权力斗争正式「落幕」 2、重磅好消息&#xff1a;语音 ChatGPT 现已向全用户开放 3、NVIDIA 与基因泰克合作&#xff0c;利用生成式 AI 加速药物发现 4、 英伟达Q3营收同比增长206%至181亿美元 黄仁勋&#xff1a;生成式AI时…

【第一部分:概述】ARM Realm Management Monitor specification

目录 概述机密计算系统软件组成MonitorRealmRealm Management Monitor (RMM)Virtual Machine (VM)HypervisorSecure Partition Manager (SPM)Trusted OS (TOS)Trusted Application (TA) Realm Management Monitor 参考文献 概述 RMM是一个软件组件&#xff0c;它构成了实现ARM…

一站式解决Mac音视频转换需求——Xilisoft Video Converter Ultimate for Mac

在数字化时代&#xff0c;音视频的应用越来越广泛&#xff0c;不同的设备和平台对音视频格式的要求也不尽相同。因此&#xff0c;如何找到一款功能强大、易于操作的音视频转换软件成为了Mac用户的迫切需求。而Xilisoft Video Converter Ultimate for Mac&#xff08;曦力音视频…

【本文由AI创作】人工智能七大领域和对我们生活的影响(图文PPT视频,15分钟完成)

深度学习映万象&#xff0c;神经网络隐层藏。 智能机器触手延&#xff0c;辅助生活工作间。 ——本文全部内容由AIGC大模型生成。 一、人工智能的领域 人工智能不只是聊天&#xff0c;画图&#xff0c;数字人。 大模型火了&#xff0c;人们蜂拥的科学上网&#xff0c;去看ChatG…

【JUC】十一、Future接口与其实现类FutureTask的优缺点

文章目录 1、Future接口2、FutureTask结合线程池提升性能3、Future的缺点一&#xff1a;get导致阻塞4、Future的缺点二&#xff1a;轮询耗费CPU5、其余场景 相关文章&#xff1a; 【Callable与FutureTask】 1、Future接口 Future接口&#xff0c;定义了操作异步任务执行的一些…

Ubuntu18 Opencv3.4.12 viz 3D显示安装、编译、使用、移植

Opencv3.*主模块默认包括两个3D库 calib3d用于相机校准和三维重建 &#xff0c;viz用于三维图像显示&#xff0c;其中viz是cmake选配。 参考&#xff1a; https://docs.opencv.org/3.4.12/index.html 下载linux版本的源码 sources。 查看cmake apt list --installed | grep…

Navicat 技术指引 | GaussDB 数据查看器

Navicat Premium&#xff08;16.2.8 Windows版或以上&#xff09; 已支持对GaussDB 主备版的管理和开发功能。它不仅具备轻松、便捷的可视化数据查看和编辑功能&#xff0c;还提供强大的高阶功能&#xff08;如模型、结构同步、协同合作、数据迁移等&#xff09;&#xff0c;这…

win10底部任务栏无响应?试试这些方法!

win10的任务栏是一个关键的用户界面元素&#xff0c;允许您轻松访问应用程序和系统功能。然而&#xff0c;有时您可能会遇到win10底部任务栏无响应的问题&#xff0c;这会妨碍您的工作流程。本篇文章将介绍解决win 10底部任务栏无响应的问题的三种方法&#xff0c;每种方法都会…

基于Vue+SpringBoot的校园疫情防控管理系统

项目编号&#xff1a; S 037 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S037&#xff0c;文末获取源码。} 项目编号&#xff1a;S037&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 学生2.2 老师2.3 学校管理部门 三、…

nvm切换版本之后npm用不了

原因是 nvm只给你安了对应的node没给你安装对应的node版本的npm 解决办法如下 1找到你安装的node版本号 然后去官网下载对应的版本包 这个网址就是node官网的版本列表 Index of /download/release/ 2下载后解压 把根目录这俩复制到自己的nvm安装目录下 还有那个node_modul…

LED电子屏幕的5种色度处理技术

LED电子大屏幕行业在从单色到双色再到三基色&#xff08;全彩&#xff09;的发展过程中&#xff0c;展现了LED显示屏技术的不断创新和终端用户多元化需求的变化。为了提高LED显示屏的色彩还原能力&#xff0c;LED显示屏厂家不断改进色度处理技术。以下是LED电子大屏幕的五种色度…

debian 设置系统默认以命令行方式启动,关闭x windows

debian 设置系统默认以命令行方式启动,关闭x windows 2021-01-02 tech linux 设置 grub启动设置在/etc/default/grub中,打开 default grub 配置: $ sudo vim /etc/default/grub修改以下配置: 更新grub,设置多用户启动: $ sudo update-grub $ sudo systemctl set-…

C/C++ 开发SCM服务管理组件

SCM&#xff08;Service Control Manager&#xff09;服务管理器是 Windows 操作系统中的一个关键组件&#xff0c;负责管理系统服务的启动、停止和配置。服务是一种在后台运行的应用程序&#xff0c;可以在系统启动时自动启动&#xff0c;也可以由用户或其他应用程序手动启动。…

oracle的debjob挂載查詢

背景 有一個需求需要定時去執行一個produce&#xff0c;可以使用oracle的dbjob定時執行&#xff0c;相比較之前的vbs更加絲滑 --傳遞produce 開始的時間 頻率 declarea number;beginDBMS_JOB.SUBMIT(a,xx_warehouse_daliy_record_p;,to_date(202311230800,yyyymmddhh24mi),…