Python 練習 人事管理


人事管理系統介紹:
1.展示頁面:
    ①首頁:
    ==========歡迎來到簡歷管理系統v2.1.1==========
                1.管理員登錄
                2.專員登錄
                3.退出
    ②管理員操作頁面    
    ==========歡迎來到簡歷管理系統v2.1.1==========
                1.查看專員信息
                2.添加專員
                3.退出
    ③專員操作頁面
    ==========歡迎來到簡歷管理系統v2.1.1==========
                1.查看簡歷
                2.添加簡歷
                3.退出
2.功能介紹:
    ①。管理員可以查看數據庫中所有專員信息:ID 名字
        可以根據名字查看屬於該名字操作的簡歷的簡歷信息
    ②。管理員可以添加專員賬戶

    ③。專員可以新建簡歷
    ④。專員查看自己操作的簡歷

數據庫介紹:
    用戶表user_t:
        id_ 主鍵自增長
        user_reg 賬號
        user_pwd 密碼
        user_name 姓名
        user_parent 父節點,所屬上級,關聯用戶id
        user_roleId 角色id,關聯角色表

    角色表role_t:
        id_ 主鍵自增長
        role_name 角色名

    簡歷表resum_t:
        id_ 主鍵自增長
        resume_user_name 姓名
        resume_user_sex 性別
        resume_user_phone 電話
        resume_user_email 郵箱
        resume_user_skill 專業
        resume_user_graduationTime 畢業時間
        resume_user_graduationSchool 畢業學校
        resume_user_interviewTime 面試時間
        resume_user_remarks 備注
        resume_operation_userId 操作人關聯user表的id
        resume_operationTime 操作時間

#coding = utf-8
import pymysql
import time
#展示頁面
def printinfo(info1,info2):
    print('''==========歡迎來到管理系統v2.1.1==========
                1.%s
                2.%s
                3.退出
    '''% (info1, info2))
    a = input("請以數字形式輸入您的操作:")
    return a
#鏈接數據庫
def connectsql():
    conn = pymysql.connect(
    host = '192.168.1.110',
    port = 3306,
    user = 'root',
    passwd = 'root',
    db = 'recruitdb',
    charset ='utf8'
    )
    cor = conn.cursor()
    #返回游標
    return conn, cor
#登錄操作
def login(a, acor, aconn):
    a1 = int(a)
    lcor = acor
    lconn = aconn
    req = input('請輸入賬號:')
    passwd = input('請輸入用戶密碼:')
    id = 0
    user_reg = ''
    user_pwd = ''
    user_name = ''
    user_parent = 0
    user_roleId = 0
    #定義一個旗幟,判斷是否登錄成功
    flag = False
    #查詢管理員(專員)數據  a1 = 1為管理員  2 為專員
    sql = lcor.execute('select * from user_t where user_roleId = %d'% a1 )
    info = lcor.fetchmany(sql)
    for f,g,h,j,k,l in info:
        if req == g and passwd == h :
            flag = True
            id = f
            user_reg = g
            user_pwd = h
            user_name = j
            user_parent = k
            user_roleId = l
    aconn.commit()
    return [flag, id, user_reg, user_pwd, user_name, user_parent, user_roleId]

class People(object):
    def __init__(self,cor,aconn, id, name):
        self.cor = cor
        self.conn = aconn
        self.id = id
        self.name = name

    def add_resume(self):
        self.r_name = input('姓名:')
        self.r_sex = input('性別:')
        self.r_phone = input('聯系方式:')
        self.r_email = input('郵箱:')
        self.r_skill = input('技能方向:')
        #畢業時間
        self.time1 = input('畢業時間(yyyy-mm-dd):')
        self.timeStruct1 = time.strptime(self.time1, "%Y-%m-%d")
        self.timeStamp1 = int(time.mktime(self.timeStruct1))
        self.r_graduationTime = time.strftime('%Y-%m-%d',time.localtime(self.timeStamp1))

        self.r_graduationSchool = input('畢業院校:')
        #面試時間
        self.time2 = input('面試時間(yyyy-mm-dd hh:mm:ss):')
        self.timeStruct2 = time.strptime(self.time2, "%Y-%m-%d %H:%M:%S")
        self.timeStamp2 = int(time.mktime(self.timeStruct2))
        self.r_interviewTime = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(self.timeStamp2))
        print('創建人:%s'% self.name)
        print('操作人:%s'% self.name)
        #操作時間,獲取當前時間
        self.r_operationTime = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))

        self.cor.execute('insert into resume_t(resume_user_name,resume_user_sex,\
                              resume_user_phone,resume_user_email,resume_user_skill,\
                              resume_user_graduationTime,resume_user_graduationSchool,\
                              resume_user_interviewTime,resume_user_remarks,resume_operation_userId,resume_operationTime)\
                              values ("%s","%s","%s","%s","%s","%s","%s","%s","%s",%d,"%s")'\
                              %(self.r_name,self.r_sex,self.r_phone,self.r_email,self.r_skill,self.r_graduationTime,\
                              self.r_graduationSchool,self.r_interviewTime,self.name,self.id,self.r_operationTime))
        self.conn.commit()   #數據提交給數據庫
        self.conn.close()
        print('插入成功!')

    def search_resume(self):
        self.k = input("請選擇1.電話,郵箱查詢  2.模糊查詢:")
        if self.k == '1':
            self.sel = input('請選擇你需要進行查詢的方式(1-電話號碼,2-郵箱):')
            if self.sel == '1':
                self.sql = self.cor.execute('select resume_user_phone from resume_t')
                self.all_phone = self.cor.fetchmany(self.sql)
                self.l = []
                for self.i in self.all_phone:
                    self.l.append(self.i[0])
                self.phone = input('請輸入電話號碼:')
                if self.phone in self.l:
                    self.sql_phone = self.cor.execute('select * from resume_t where resume_user_phone\
                                                = "%s"'%self.phone)
                    self.info = self.cor.fetchmany(self.sql_phone)
                    for self.res in self.info:
                        print('姓名:%s'%self.res[1])
                        print('性別:%s'%self.res[2])
                        print('聯系方式:%s'%self.res[3])
                        print('郵箱:%s'%self.res[4])
                        print('技能方向:%s'%self.res[5])
                        print('畢業時間:%s'%self.res[6])
                        print('畢業院校:%s'%(self.res[7]))
                        print('面試時間:%s'%(self.res[8]))
                        print('創建人:%s'%(self.res[9]))
                        print('操作員:%s'%(self.name))
                        print('操作時間:%s'%(self.res[11]))
                else:
                    print('沒有該電話號碼的簡歷')
            elif self.sel == '2':
                self.sql = self.cor.execute('select resume_user_phone from resume_t')
                self.all_email = self.cor.fetchmany(self.sql)
                self.l = []
                for self.i in self.all_email:
                    self.l.append(self.i[0])
                self.email = input('請輸入郵箱:')
                if self.email in self.l:
                    self.sql_email = self.cor.execute('select * from resume_t where \
                                                    resume_user_email = "%s"'%self.email)
                    self.info = self.cor.fetchmany(self.sql_email)
                    for self.res in self.info:
                        print('姓名:%s'%self.res[1])
                        print('性別:%s'%self.res[2])
                        print('聯系方式:%s'%self.res[3])
                        print('郵箱:%s'%self.res[4])
                        print('技能方向:%s'%self.res[5])
                        print('畢業時間:%s'%self.res[6])
                        print('畢業院校:%s'%(self.res[7]))
                        print('面試時間:%s'%(self.res[8]))
                        print('創建人:%s'%(self.res[9]))
                        print('操作員:%s'%(self.name))
                        print('操作時間:%s'%(self.res[11]))
                else:
                    print('沒有該郵箱的簡歷')

        if self.k == '2':
            choose = input('選擇要進行模糊查詢的字段(1-姓名,2-技能方向,3-畢業院校):')
            if choose == '1':
                self.key = input('輸入姓名關鍵字:')
                self.arg = '%'+self.key+'%'
                self.sql = self.cor.execute('select * from resume_t where resume_user_name like "%s"'%self.arg)
                self.info = self.cor.fetchmany(self.sql)
                if self.info is not None:
                    for self.res in self.info:
                        print('姓名:%s'%self.res[1])
                        print('性別:%s'%self.res[2])
                        print('聯系方式:%s'%self.res[3])
                        print('郵箱:%s'%self.res[4])
                        print('技能方向:%s'%self.res[5])
                        print('畢業時間:%s'%self.res[6])
                        print('畢業院校:%s'%self.res[7])
                        print('面試時間:%s'%self.res[8])
                        print('創建人:%s'%self.res[9])
                        print('操作員:%s'%(self.name))
                        print('操作時間:%s'%self.res[11])
                else:
                    print('沒有該姓名的簡歷')
            elif choose == '2':
                self.key = input('輸入技能方向關鍵字:')
                self.arg = '%'+self.key+'%'
                self.sql = self.cor.execute('select * from resume_t where resume_user_skill like "%s"'%self.arg)
                self.info = self.cor.fetchmany(self.sql)
                if self.info is not None:
                    for self.res in self.info:
                        print('姓名:%s'%self.res[1])
                        print('性別:%s'%self.res[2])
                        print('聯系方式:%s'%self.res[3])
                        print('郵箱:%s'%self.res[4])
                        print('技能方向:%s'%self.res[5])
                        print('畢業時間:%s'%self.res[6])
                        print('畢業院校:%s'%self.res[7])
                        print('面試時間:%s'%self.res[8])
                        print('創建人:%s'%self.res[9])
                        print('操作員:%s'%(self.name))
                        print('操作時間:%s'%self.res[11])
                else:
                    print('沒有該姓名的簡歷')
            elif choose == '3':
                self.key = input('輸入畢業院校關鍵字:')
                self.arg = '%'+self.key+'%'
                self.sql = self.cor.execute('select * from resume_t where resume_user_graduationSchool like "%s"'%self.arg)
                self.info = self.cor.fetchmany(self.sql)
                if self.info is not None:
                    for self.res in self.info:
                        print('姓名:%s'%self.res[1])
                        print('性別:%s'%self.res[2])
                        print('聯系方式:%s'%self.res[3])
                        print('郵箱:%s'%self.res[4])
                        print('技能方向:%s'%self.res[5])
                        print('畢業時間:%s'%self.res[6])
                        print('畢業院校:%s'%self.res[7])
                        print('面試時間:%s'%self.res[8])
                        print('創建人:%s'%self.res[9])
                        print('操作員:%s'%(self.name))
                        print('操作時間:%s'%self.res[11])
                else:
                    print('沒有該畢業院校的簡歷')


class Admin(object):
    def __init__(self, cor, aconn, id, name ):
        self.cor = cor
        self.conn = aconn
        self.id = id
        self.name = name

    def adduser(self):
        self.user_reg = input('請輸入賬號:')
        self.user_reg = input('請輸入密碼:')
        self.user_reg = input('請輸入姓名:')
        self.cor.execute('insert into user_t(id_, user_reg, user_pwd, user_name, user_parent, user_roleId) values(NULL, "%s", "%s", "%s",NULL ,2)'%(self.user_reg,self.user_reg,self.user_reg))
        self.conn.commit()

    def search(self):
        sql = self.cor.execute('select id_, user_name from user_t where user_roleId = 2')
        info = self.cor.fetchmany(sql)
        for i in info:
            print('id:%d     名字:%s' % i)
        self.a = input('請輸入想要查看員工所操作簡歷的員工名字:')
        self.sql = self.cor.execute('select * from resume_t where resume_user_remarks = "%s"'% self.a)
        self.info  = self.cor.fetchmany(sql)
        for self.i in self.info:
            print('ID: %d, 姓名:%s,性別:%s,聯系方式:%s,郵箱:%s,技能方向:%s,畢業時間:%s,畢業院校:%s,面試時間:%s,創建人:%s,操作員:%d,操作時間:%s'% self.i)

def action(a, cor, conn):
    acor = cor
    aconn = conn
    if a == '1':
        #登錄
        infoList = login(a, acor, conn)
        if infoList[0]:
            b = printinfo('查看專員信息','添加專員')
            admin = Admin(acor,aconn, infoList[1],infoList[4])
            if b == '1':
                admin.search()
            elif b == '2':
                admin.adduser()
            else:
                print('已成功退到登錄頁面!')

        else:
            print('登錄失敗!')

    if a == '2':
        #登錄
        infoList = login(a, acor,aconn)
        if infoList[0]:
            #登錄后的展示頁面
            b = printinfo('查看簡歷','新建簡歷')
            user = People(acor,aconn, infoList[1],infoList[4])
            if b == '1':
                user.search_resume()
            elif b == '2':
                user.add_resume()
            else:
                print('已成功退到登錄頁面!')

        else:
            print('登錄失敗!')






while True:
    #鏈接數據庫
    conn,cor = connectsql()
    #頁面展示
    a = printinfo('管理員登錄', '專員登錄')
    #用戶操作
    action(a, cor, conn)
    if a == '3':
        break
    cor.close()
    conn.close()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM