From b10d9be95ffeaf513b97b6b723c6811431f8b31a Mon Sep 17 00:00:00 2001 From: mxr612 Date: Fri, 13 Jun 2025 15:51:13 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BC=98=E5=8C=96=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E7=BB=93=E6=9E=84=E5=B9=B6=E6=B7=BB=E5=8A=A0=E5=B7=A5?= =?UTF-8?q?=E9=BE=84=E8=AE=A1=E7=AE=97=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 重构all_history数据结构以存储更多变动前后信息 新增calculate_seniority函数用于计算员工工龄 移除重复的datetime导入并合并os导入 --- main.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/main.py b/main.py index 93d7845..9ac7674 100644 --- a/main.py +++ b/main.py @@ -3,8 +3,7 @@ from openpyxl.utils import get_column_letter from openpyxl import load_workbook from datetime import datetime from dateutil.relativedelta import relativedelta -import logging -from datetime import datetime +import logging, os # 配置日志记录 logging.basicConfig(filename='log.txt', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') @@ -68,6 +67,9 @@ def split_level(level:str): except: raise Exception(f"职级[{level}]格式错误") +def calculate_seniority(row, year): + return year - row["参加工作时间"].year + row["工龄调增"] - row["工龄调减"] + 1 + # 读取信息 def read_base_data(): # 读取员工数据 @@ -297,7 +299,11 @@ def main(): load_rule() # 创建一个空的DataFrame来存储所有历史记录 - all_history = pd.DataFrame(columns=["身份证号码", "姓名", "时间", "职务", "职务工资", "级别档次", "级别工资", "工资合计", "变动原因", "晋升备注"]) + all_history = pd.DataFrame(columns=[ + "身份证号码", "姓名", "工龄","变动原因", "晋升备注", + "变动前时间", "变动前职务", "变动前级别档次", "变动前职务工资", "变动前级别工资", "变动前津贴工资", + "变动后时间", "变动后职务", "变动后级别档次", "变动后职务工资", "变动后级别工资", "变动后津贴工资", + "五年1级年份", "两年1档年份"]) for index, row in BaseData.iterrows(): try: @@ -321,7 +327,6 @@ def main(): else: BaseData.at[index, "职务2"] = row["初始职务"] BaseData.at[index, "日期2"] = row["入职时间"] - promote = promote.sort_values(by=["工资执行时间", "任职时间"]).reset_index(drop=True) fill_prompt_info(ws, promote)# 填充晋升信息