Python实现员工管理系统GUI

本文介绍了使用Python和MySQL构建的员工管理系统GUI,包括登录、打卡、多条件查询、报表导出等功能。系统分为管理员和员工两种账号,管理员可进行数据增删改查,员工仅能修改个人信息。通过QT designer设计界面,利用PyMySQL处理数据库交互,提高信息管理效率。
摘要由CSDN通过智能技术生成

Python实现员工管理系统GUI


前言

当今世界应用计算机已经变得十分普遍了,如同汽车一样已经普及到各家各户。在许多工作行业各自的领域上,行内竞争十分关键,谁掌握的知识多,信息量大,处理数据的速度快,谁就能在激烈的行内竞争中立于不败之地。越来越多的企业管理员意识到了信息管理的重要性,所以说信息化是当今世界发展的主流。因此,一个良好的员工管理系统对企业而言必不可少,可以方便地对整个企业的各个员工进行统计和管理,有效地减少了传统管理时间、精力的浪费。本课题是设计一个基于python+mysql的员工档案管理系统,可以有效对公司、工厂的员工进行管理。


一、功能介绍


功能描述
1、登录功能:用户可以两种类型的账号,有管理员账号和员工账号,管理员的权限更高,可以实现对数据的增删改查等操作,而员工账号的权限受到一定约束,如有加班,部门管理功能不让其访问等。

2、员工_员工信息管理::员工根据自己账号登录时只允许修改自己的姓名,性别,年龄,婚姻状况,学历,密码。

3、员工打卡:员工进入界面后,一个签到按钮和一个签退按钮;管理员进入界面后,会看到各个员工的打卡信息,可以根据实际情况对打卡信息进行增删改。

4、管理员_员工信息管理:管理员根据账号登录时可对员工任意信息进行增删查改,包括工资,部门号,职称等,在查方面使用多条件查询的方式。

5、部门职称管理:管理员才可以进入,实现对部门和职称的增删改查,当企业新增一个部门时,管理员可以点击部门表中的增加创建一个新的部门,当企业不要某个部门时,管理员可以进行删除操作;当企业新增一个职称时,管理员可以点击职称表中的增加创建一个新的职称,当企业不要某个职称时,管理员可以进行删除操作。

6、考勤信息管理:管理员进入界面后,对员工的日常打卡信息进行增删查改。

7、加班信息管理:管理员进入后可根据员工加班类型、时间,添加其加班信息。

8、统计查询:管理员会直接看到整个公司以及各个部门的详细情况。

9、报表打印:对统计查询的结果进行导出打印输出展示。

二、前期准备

开发环境:python3.7 + mysql5.7
开发软件:SublimeText3 + Prenium Navicat12

三、创建数据库

1.概念模型

在这里插入图片描述

2.关系模型

employee(id,name,sex,age,marriged,education,employed_time,job_id,department_id)
employee_login(id,employee_id,password)
admin_login(id,password)
attendance(id,on_time,off_time,type,signal,employee_id)
department(id,name)
job(id,name,fees)
overtime(id,type,date,times,employee_id)
salary(id,earlys,lates,date,employee_id)

3.具体设计

1)不使用外键,有利于对业务逻辑的实现。更多原因可以查看链接:一文搞懂MySQL索引
2)添加一定的索引:例如employee_id,因为后面大部分的等值查询需要用到,提高查找的效率。

四、界面ui

使用QT designer进行快速的控件可视化开发,主要使用到的控件有:

QLabel
QPushButton
QMessageBox
QComboBox
QTableWidget

详细使用说明文档请看:白月黑羽教python

五、接口功能

1.引入库

import PySide2
import Pymysql
import xlwt
import json

2.登录功能

:这里用的代码重复度较高,可以考虑用一个登录类来写,区别一下身份就可以。

class EmployeePage:
	#员工登陆
	def __init__(self,employee_name,employee_pass):
		self.employee_name = employee_name
		self.employee_pass = employee_pass
		self.database = 'cdhlr'
		self.databasepass = '666'
	def login(self):
		username = None
		password = None
		# 连接database
		db = pymysql.connect(
		    host="localhost",
		    user="root",
		    password=self.databsepass,
		    database=self.database,
		    charset="utf8")  
		cursor = db.cursor()  # 使用cursor()方法获取操作游标
		sql = "SELECT * FROM employee_login WHERE employee_id = '%s'" % (self.employee_name)  # SQL 查询语句
		try:
		# 执行SQL语句
			cursor.execute(sql)
			# 获取所有记录列表
			results = cursor.fetchall()
			for row in results:
				username = row[1]
				password = row[2]
		except:
			print("Error: unable to fecth data")
			########('警告!', '用户名或密码不正确!')
		db.close()  # 关闭数据库连接
 
		if self.employee_pass == password:
			return 1
		else:
			return 0
class AdminPage:
	#管理员登陆
	def __init__(self,admin_username,admin_pass):
		self.admin_username = admin_username
		self.admin_pass = admin_pass
		self.database = 'cdhlr'
		self.databasepass = '666'
	def login(self):
		username = None
		password = None
		# 数据库操作 查询管理员表
		# 连接database
		db 
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值