簡易人事管理系統(pyqt5+mysql)
前言
最近和同學合作完成了資料庫實習,資料庫題目是人事管理系統。我們做的功能比較簡單,還有很多未能完善的。不過這也算是一次創新,之前做的都是網頁,這一次嘗試用python做GUI介面。之前沒有做過GUI介面,並且這一次選用的是pyqt5庫,網上資料不多,所以製作過程比較坎坷。不過磕磕絆絆還是完成了這個專案。一下是對該專案的總結
1 系統概述
人事管理系統,屬於ERP的一個部分。它單指彙集成功企業先進的人力資源管理理念、人力資源管理實踐、人力資源資訊化系統建設的經驗,以資訊科技實現對企業人力資源資訊的高度整合化管理,為中國企業使用的人力資源管理解決方案。核心價值在於將人力資源工作者從繁重的日常瑣碎事務中解放出來,將更多地精力用於企業的人力資源職能管理和管理決策,保持企業的持續高效運營。 集中記錄、監測和分析所有勞動力的技能和資格,提供決策分析。提高企業整體的科技含量與管理效率,加快企業的資訊化建設。
2 相關技術
1.mysql
2.python
3.pyqt5
3 系統分析
3.1需求分析
人事管理系統需要滿足的基本功能如下:
1.員工管理:新增員工資訊、修改員工共資訊、刪除員工資訊、查詢員工資訊
2.部門管理:新增部門資訊、修改部門資訊、刪除部門資訊、查詢部門資訊
3.薪資管理:薪資分配、薪資歷史查詢
4.人事管理:人員調動,調動歷史查詢
5.考核管理:人員考核,考核歷史查詢
3.2資料庫設計
3.2.1資料庫概念模型
3.2.2資料庫邏輯模型
staff(s_no,s_name,s_sex,s_birth,s_id,s_num,s_email,is_married,s_address)
department(d_no,d_name,manager)
professional(p_no,p_name)
education(s_no,xl,major,school,graduate_date)
sp(s_no,p_no,d_no,sj)
checking(s_no,c_date, c_tdays,c_ldays,c_odays,c_adays)
salary(s_no,leastpays,prize,doublingpays,dkannuity,dkinsurance,deduct,real_salary,s_date)
current_salary(s_no,salary,prize,deduct)
注:
staff |
員工表 |
s_no員工編號,s_name姓名,s_sex性別,s_birth出生日期,s_id身份證號,s_num電話,s_email郵箱,is_married婚否,s_address住址 |
department |
部門表 |
d_no部門編號,d_name部門名稱,manager部門經理 |
professional |
職位表 |
p_no職位編號,p_name職位名稱 |
education |
學歷表 |
s_no員工編號,xl學歷,major專業,school畢業院校,graduate_date畢業日期 |
sp |
崗位表 |
s_no員工編號,p_no職位編號,d_no部門編號,sj入職時間 |
checking |
考勤表 |
s_no員工編號,c_date本月日期, c_tdays出勤日,c_ldays請假日,c_odays加班日,c_adays曠工日 |
salary |
薪資表 |
s_no員工編號,leastpays底薪,prize獎金,doublingpays加班費,dkannuity養老金,dkinsurance醫療保險,deduct應扣工資,real_salary實際薪資,s_date發薪日期 |
current_salary |
當前薪資表 |
s_no員工編號,salary底薪,prize獎金,deduct應扣工資 |
3.2.3 資料庫物理模型
管理員資訊表
記錄了管理員的賬號資訊(工號和密碼)。
列名 |
資料型別 |
允許空值 |
s_no(主鍵) |
char(6) |
非空 |
pwd |
char(20) |
非空 |
員工資訊表
該表記錄了員工的部分資訊,如員工的姓名,性別,生日等。
列名 |
資料型別 |
允許空值 |
s_no(主鍵) |
char(6) |
非空 |
s_name |
char(8) |
非空 |
s_sex |
char(2) |
非空 |
s_birth |
date |
非空 |
s_id |
Char(20) |
非空 |
s_num |
char(11) |
非空 |
s_email |
char(20) |
非空 |
is_married |
char(3) |
非空 |
s_address |
varchar(50) |
非空 |
部門資訊表
該表記錄了所有部門的資訊(部門編號,名稱和經理)
列名 |
資料型別 |
允許空值 |
d_no(主鍵) |
char(6) |
非空 |
d_name |
varchar(20) |
空 |
s_no |
char(6) |
空 |
職位資訊表
該表記錄了所有職位的資訊(職位編號和名稱)
列名 |
資料型別 |
允許空值 |
p_no(主鍵) |
char(6) |
非空 |
p_name |
char(30) |
非空 |
就職表
該表記錄了員工所在的部門,擔任的職位和入職時間。
列名 |
資料型別 |
允許空值 |
s_no(主鍵) |
char(6) |
非空 |
p_no |
char(6) |
非空 |
d_no |
char(6) |
非空 |
entry_time |
date |
非空 |
教學資訊表
該表記錄了員工的教育資訊,包括學歷,專業,學校等。
列名 |
資料型別 |
允許空值 |
s_no(主鍵) |
char(6) |
非空 |
xl |
varchar(20) |
非空 |
major |
varchar(20) |
空 |
school |
varchar(20) |
空 |
graduate_date |
date |
空 |
當前薪資表
記錄了員工當前的底薪,獎金和應扣工資。
列名 |
資料型別 |
允許空值 |
s_no(主鍵) |
char(6) |
非空 |
salary |
float(11) |
非空 |
prize |
float(11) |
空 |
deduct |
float(11) |
空 |
歷史發薪表
該表記錄了員工以往工資的詳情資訊(如:獎金,養老金等)。
列名 |
資料型別 |
允許空值 |
sa_no(主鍵) |
char(6) |
非空 |
s_no |
char(6) |
非空 |
leastpays |
float(11) |
非空 |
prize |
float(11) |
空 |
doublingpays |
float(11) |
空 |
dkannuity |
float(11) |
空 |
dkinsurrance |
float(11) |
空 |
s_date |
date |
空 |
deduct |
float(11) |
空 |
real_salary |
float(11) |
空 |
人事調動表
該表記錄了員工的歷史調動資訊(如:調前部門,職位和調後部門,職位等)。
列名 |
資料型別 |
允許空值 |
p_no(主鍵) |
char(6) |
非空 |
s_no |
varchar(20) |
非空 |
predept |
varchar(20) |
非空 |
aftdept |
varchar(20) |
非空 |
prepost |
varchar(20) |
非空 |
aftpost |
varchar(20) |
非空 |
p_date |
date |
非空 |
考勤表
該表記錄了員工的歷史考勤資訊(如:曠工天數,請假天數,出勤天數,加班天數)。
列名 |
資料型別 |
允許空值 |
s_no(主鍵) |
char(6) |
非空 |
c_date(主鍵) |
char(10) |
非空 |
c_tdays |
int(2) |
非空 |
c_ldays |
int(2) |
非空 |
s_odays |
int(2) |
非空 |
s_adays |
int(2) |
非空 |
4 系統功能設計
5 系統主介面
填寫資訊錯誤,會提示: