feat: 保存更新历史记录数据到excel
- 修改历史记录DataFrame的列名,确保与职务和工资相关字段一致 - 添加一个空的DataFrame以存储所有人员的历史记录 - 在处理每个人员的历史记录时,将其添加到总表中并保存到Excel文件 - 记录所有人员历史记录的保存状态
This commit is contained in:
parent
027ae0d108
commit
68bd515030
25
main.py
25
main.py
@ -181,9 +181,9 @@ def fill_history_info(ws, History_pd):# 填充历史记录
|
|||||||
except:
|
except:
|
||||||
logging.warning(f"历史时间格式错误:{hrow['时间']}")
|
logging.warning(f"历史时间格式错误:{hrow['时间']}")
|
||||||
ws.cell(row=H_START+index, column=2, value=hrow["职务"])
|
ws.cell(row=H_START+index, column=2, value=hrow["职务"])
|
||||||
ws.cell(row=H_START+index, column=3, value=hrow["工资额1"])
|
ws.cell(row=H_START+index, column=3, value=hrow["职务工资"])
|
||||||
ws.cell(row=H_START+index, column=4, value=hrow["级别档次"])
|
ws.cell(row=H_START+index, column=4, value=hrow["级别档次"])
|
||||||
ws.cell(row=H_START+index, column=5, value=hrow["工资额2"])
|
ws.cell(row=H_START+index, column=5, value=hrow["级别工资"])
|
||||||
ws.cell(row=H_START+index, column=6, value=hrow["工资合计"])
|
ws.cell(row=H_START+index, column=6, value=hrow["工资合计"])
|
||||||
ws.cell(row=H_START+index, column=7, value=hrow["变动原因"])
|
ws.cell(row=H_START+index, column=7, value=hrow["变动原因"])
|
||||||
# ws.cell(row=H_START+index, column=8, value=index) # Debug
|
# ws.cell(row=H_START+index, column=8, value=index) # Debug
|
||||||
@ -191,6 +191,9 @@ def fill_history_info(ws, History_pd):# 填充历史记录
|
|||||||
BaseData["Latest_Role"] = None
|
BaseData["Latest_Role"] = None
|
||||||
BaseData["Latest_Prom"] = None
|
BaseData["Latest_Prom"] = None
|
||||||
|
|
||||||
|
# 创建一个空的DataFrame来存储所有历史记录
|
||||||
|
all_history = pd.DataFrame(columns=["身份证号码", "姓名", "时间", "职务", "职务工资", "级别档次", "级别工资", "工资合计", "变动原因"])
|
||||||
|
|
||||||
for index, row in BaseData.iterrows():
|
for index, row in BaseData.iterrows():
|
||||||
try:
|
try:
|
||||||
logging.info(f"台账:第[{index+1}]共[{BaseData.shape[0]}]现在是[{row['身份证号码']}]")
|
logging.info(f"台账:第[{index+1}]共[{BaseData.shape[0]}]现在是[{row['身份证号码']}]")
|
||||||
@ -218,7 +221,7 @@ for index, row in BaseData.iterrows():
|
|||||||
fill_prompt_info(ws, promote)# 填充晋升信息
|
fill_prompt_info(ws, promote)# 填充晋升信息
|
||||||
|
|
||||||
# 根据规则匹配职级薪资
|
# 根据规则匹配职级薪资
|
||||||
History_pd = pd.DataFrame(columns=["时间", "职务", "工资额1", "级别档次", "工资额2", "工资合计", "变动原因"])
|
History_pd = pd.DataFrame(columns=["时间", "职务", "职务工资", "级别档次", "级别工资", "工资合计", "变动原因"])
|
||||||
# 添加入职记录
|
# 添加入职记录
|
||||||
History_pd.loc[len(History_pd)] = [row["入职时间"], row["初始职务"], "", row["入职时的初始级别"], "", "", "套改/定级"]
|
History_pd.loc[len(History_pd)] = [row["入职时间"], row["初始职务"], "", row["入职时的初始级别"], "", "", "套改/定级"]
|
||||||
for index, prow in promote.iterrows(): # 添加晋升记录
|
for index, prow in promote.iterrows(): # 添加晋升记录
|
||||||
@ -269,15 +272,25 @@ for index, row in BaseData.iterrows():
|
|||||||
else:
|
else:
|
||||||
History_pd.at[index, "级别档次"] = f"{jb-1}-{dc-1}"
|
History_pd.at[index, "级别档次"] = f"{jb-1}-{dc-1}"
|
||||||
# 计算工资
|
# 计算工资
|
||||||
History_pd.at[index, "工资额1"] = role_salary(History_pd.iloc[index]["职务"], hrow["时间"])
|
History_pd.at[index, "职务工资"] = role_salary(History_pd.iloc[index]["职务"], hrow["时间"])
|
||||||
History_pd.at[index, "工资额2"] = level_salary(History_pd.iloc[index]["级别档次"], hrow["时间"])
|
History_pd.at[index, "级别工资"] = level_salary(History_pd.iloc[index]["级别档次"], hrow["时间"])
|
||||||
History_pd.at[index, "工资合计"] = to_int(History_pd.iloc[index]["工资额1"]) + to_int(History_pd.iloc[index]["工资额2"])
|
History_pd.at[index, "工资合计"] = to_int(History_pd.iloc[index]["职务工资"]) + to_int(History_pd.iloc[index]["级别工资"])
|
||||||
|
|
||||||
fill_history_info(ws, History_pd)# 填充历史记录
|
fill_history_info(ws, History_pd)# 填充历史记录
|
||||||
|
|
||||||
|
# 将当前人员的历史记录添加到总表中
|
||||||
|
History_pd["身份证号码"] = row["身份证号码"]
|
||||||
|
History_pd["姓名"] = row["姓名"]
|
||||||
|
all_history = pd.concat([all_history, History_pd], ignore_index=True)
|
||||||
|
|
||||||
wb.save(f"个人台账/{row['身份证号码']}_{row['姓名']}.xlsx")
|
wb.save(f"个人台账/{row['身份证号码']}_{row['姓名']}.xlsx")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.error(f"{row['身份证号码']}:{e}")
|
logging.error(f"{row['身份证号码']}:{e}")
|
||||||
|
|
||||||
|
# 保存所有历史记录到Excel文件
|
||||||
|
all_history.to_excel("所有人员历史记录.xlsx", index=False)
|
||||||
|
logging.info("所有人员历史记录已保存到'所有人员历史记录.xlsx'")
|
||||||
|
|
||||||
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(): # 汇总
|
||||||
|
Loading…
x
Reference in New Issue
Block a user