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/*
|
||||
build/
|
||||
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 datetime import datetime
|
||||
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 # 最大晋升次数
|
||||
|
||||
@ -56,7 +59,7 @@ def role_salary(role:str, time):
|
||||
tmp = rule["rule"][rule["rule"]["role"] == role].iloc[0]
|
||||
return tmp["salary"]
|
||||
except:
|
||||
print(f"[Error] 职位{role}在{time}时不存在工资规则")
|
||||
logging.error(f"职位{role}在{time}时不存在工资规则")
|
||||
return 0
|
||||
|
||||
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]
|
||||
return tmp["salary"]
|
||||
except:
|
||||
print(f"[Error] 职级{level}在{time}时不存在工资规则")
|
||||
logging.error(f"职级{level}在{time}时不存在工资规则")
|
||||
return 0
|
||||
|
||||
def role_limit(role:str):
|
||||
@ -106,7 +109,7 @@ def fill_basic_info(ws, row):# 填充基本信息
|
||||
def fill_prompt_info(ws, promote):# 填充晋升信息
|
||||
for index, prow in promote.iterrows():
|
||||
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])
|
||||
break
|
||||
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():
|
||||
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_Prom"] = row["入职时间"].strftime("%Y.%m")
|
||||
wb = load_workbook("个人台账.xlsx")
|
||||
@ -199,13 +202,13 @@ for index, row in BaseData.iterrows():
|
||||
fill_history_info(ws, History_pd)# 填充历史记录
|
||||
wb.save(f"./output/{row['姓名']}_{row['身份证号码']}.xlsx")
|
||||
except Exception as e:
|
||||
print("[Error]",e)
|
||||
logging.error(e)
|
||||
|
||||
wb = load_workbook("./汇总.xlsx")
|
||||
ws = wb.active
|
||||
for index, row in BaseData.iterrows(): # 汇总
|
||||
try:
|
||||
print("[Debug] 汇总:第",index+1,"共",BaseData.shape[0],"现在是",row["身份证号码"])
|
||||
logging.info(f"汇总:第{index+1}共{BaseData.shape[0]}现在是{row['身份证号码']}")
|
||||
for col in range(1,16):
|
||||
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)
|
||||
@ -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=14, value=row["日期2"])
|
||||
except Exception as e:
|
||||
print("[Error]",e)
|
||||
logging.error(e)
|
||||
wb.save("./名册.xlsx") # 保存汇总
|
||||
|
||||
if max_promote > 0:
|
||||
print(f"[Error]最多有{max_promote}条晋升信息,需要调整模板。记得同时调整薪资历史的起始行和个人评价结果。")
|
||||
logging.error(f"最多有{max_promote}条晋升信息,需要调整模板。记得同时调整薪资历史的起始行和个人评价结果。")
|
||||
if max_history > 0:
|
||||
print(f"[Error]最多有{max_history}条薪资历史,需要调整模板。")
|
||||
logging.error(f"最多有{max_history}条薪资历史,需要调整模板。")
|
Loading…
x
Reference in New Issue
Block a user