feat: 添加日志记录功能并更新文档
将print输出替换为logging模块记录日志,并添加log.txt到.gitignore 在规划需求文档中标记日志功能为已完成 配置日志记录格式和级别,输出到log.txt文件
This commit is contained in:
parent
ea2b8e158b
commit
5a1d4a0aa8
1
.gitignore
vendored
1
.gitignore
vendored
@ -5,3 +5,4 @@ main.spec
|
|||||||
.venv/*
|
.venv/*
|
||||||
build/
|
build/
|
||||||
zip/
|
zip/
|
||||||
|
log.txt
|
21
main.py
21
main.py
@ -3,7 +3,10 @@ from openpyxl.utils import get_column_letter
|
|||||||
from openpyxl import load_workbook
|
from openpyxl import load_workbook
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from dateutil.relativedelta import relativedelta
|
from dateutil.relativedelta import relativedelta
|
||||||
|
import logging
|
||||||
|
|
||||||
|
# 配置日志记录
|
||||||
|
logging.basicConfig(filename='log.txt', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
|
||||||
|
|
||||||
P_LIMIT = 6 # 最大晋升次数
|
P_LIMIT = 6 # 最大晋升次数
|
||||||
|
|
||||||
@ -56,7 +59,7 @@ def role_salary(role:str, time):
|
|||||||
tmp = rule["rule"][rule["rule"]["role"] == role].iloc[0]
|
tmp = rule["rule"][rule["rule"]["role"] == role].iloc[0]
|
||||||
return tmp["salary"]
|
return tmp["salary"]
|
||||||
except:
|
except:
|
||||||
print(f"[Error] 职位{role}在{time}时不存在工资规则")
|
logging.error(f"职位{role}在{time}时不存在工资规则")
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
def level_salary(level:str, time):
|
def level_salary(level:str, time):
|
||||||
@ -66,7 +69,7 @@ def level_salary(level:str, time):
|
|||||||
tmp = rule["rule"][rule["rule"]["level"] == level].iloc[0]
|
tmp = rule["rule"][rule["rule"]["level"] == level].iloc[0]
|
||||||
return tmp["salary"]
|
return tmp["salary"]
|
||||||
except:
|
except:
|
||||||
print(f"[Error] 职级{level}在{time}时不存在工资规则")
|
logging.error(f"职级{level}在{time}时不存在工资规则")
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
def role_limit(role:str):
|
def role_limit(role:str):
|
||||||
@ -106,7 +109,7 @@ def fill_basic_info(ws, row):# 填充基本信息
|
|||||||
def fill_prompt_info(ws, promote):# 填充晋升信息
|
def fill_prompt_info(ws, promote):# 填充晋升信息
|
||||||
for index, prow in promote.iterrows():
|
for index, prow in promote.iterrows():
|
||||||
if index > P_LIMIT-1:
|
if index > P_LIMIT-1:
|
||||||
print(f"[Error] 超过{P_LIMIT}条晋升信息,共{promote.shape[0]}条。")
|
logging.error(f"超过{P_LIMIT}条晋升信息,共{promote.shape[0]}条。")
|
||||||
max_promote = max(max_promote, promote.shape[0])
|
max_promote = max(max_promote, promote.shape[0])
|
||||||
break
|
break
|
||||||
ws.cell(row=P_START+index, column=1, value=prow["任职时间"].strftime("%Y.%m"))
|
ws.cell(row=P_START+index, column=1, value=prow["任职时间"].strftime("%Y.%m"))
|
||||||
@ -131,7 +134,7 @@ BaseData["Latest_Prom"] = None
|
|||||||
|
|
||||||
for index, row in BaseData.iterrows():
|
for index, row in BaseData.iterrows():
|
||||||
try:
|
try:
|
||||||
print("[Debug] 台账:第",index+1,"共",BaseData.shape[0],"现在是",row["身份证号码"])
|
logging.info(f"台账:第{index+1}共{BaseData.shape[0]}现在是{row['身份证号码']}")
|
||||||
BaseData.at[index, "Latest_Role"] = row["初始职务"]
|
BaseData.at[index, "Latest_Role"] = row["初始职务"]
|
||||||
BaseData.at[index, "Latest_Prom"] = row["入职时间"].strftime("%Y.%m")
|
BaseData.at[index, "Latest_Prom"] = row["入职时间"].strftime("%Y.%m")
|
||||||
wb = load_workbook("个人台账.xlsx")
|
wb = load_workbook("个人台账.xlsx")
|
||||||
@ -199,13 +202,13 @@ for index, row in BaseData.iterrows():
|
|||||||
fill_history_info(ws, History_pd)# 填充历史记录
|
fill_history_info(ws, History_pd)# 填充历史记录
|
||||||
wb.save(f"./output/{row['姓名']}_{row['身份证号码']}.xlsx")
|
wb.save(f"./output/{row['姓名']}_{row['身份证号码']}.xlsx")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print("[Error]",e)
|
logging.error(e)
|
||||||
|
|
||||||
wb = load_workbook("./汇总.xlsx")
|
wb = load_workbook("./汇总.xlsx")
|
||||||
ws = wb.active
|
ws = wb.active
|
||||||
for index, row in BaseData.iterrows(): # 汇总
|
for index, row in BaseData.iterrows(): # 汇总
|
||||||
try:
|
try:
|
||||||
print("[Debug] 汇总:第",index+1,"共",BaseData.shape[0],"现在是",row["身份证号码"])
|
logging.info(f"汇总:第{index+1}共{BaseData.shape[0]}现在是{row['身份证号码']}")
|
||||||
for col in range(1,16):
|
for col in range(1,16):
|
||||||
ws.cell(row=3+index, column=col)._style = ws.cell(row=3, column=col)._style
|
ws.cell(row=3+index, column=col)._style = ws.cell(row=3, column=col)._style
|
||||||
ws.cell(row=6+index, column=1, value=index+1)
|
ws.cell(row=6+index, column=1, value=index+1)
|
||||||
@ -223,10 +226,10 @@ for index, row in BaseData.iterrows(): # 汇总
|
|||||||
ws.cell(row=6+index, column=13, value=row["职务2"])
|
ws.cell(row=6+index, column=13, value=row["职务2"])
|
||||||
ws.cell(row=6+index, column=14, value=row["日期2"])
|
ws.cell(row=6+index, column=14, value=row["日期2"])
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print("[Error]",e)
|
logging.error(e)
|
||||||
wb.save("./名册.xlsx") # 保存汇总
|
wb.save("./名册.xlsx") # 保存汇总
|
||||||
|
|
||||||
if max_promote > 0:
|
if max_promote > 0:
|
||||||
print(f"[Error]最多有{max_promote}条晋升信息,需要调整模板。记得同时调整薪资历史的起始行和个人评价结果。")
|
logging.error(f"最多有{max_promote}条晋升信息,需要调整模板。记得同时调整薪资历史的起始行和个人评价结果。")
|
||||||
if max_history > 0:
|
if max_history > 0:
|
||||||
print(f"[Error]最多有{max_history}条薪资历史,需要调整模板。")
|
logging.error(f"最多有{max_history}条薪资历史,需要调整模板。")
|
Loading…
x
Reference in New Issue
Block a user