From d5ef9972a1dc854be7be3aa6df96f3b3ed931e89 Mon Sep 17 00:00:00 2001 From: mxr612 Date: Sat, 14 Jun 2025 03:43:17 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=9C=A8=E5=8E=86=E5=8F=B2=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E4=B8=AD=E6=B7=BB=E5=8A=A0=E5=B7=A5=E8=B5=84=E5=90=88?= =?UTF-8?q?=E8=AE=A1=E5=AD=97=E6=AE=B5=E5=B9=B6=E4=BC=98=E5=8C=96=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在变动前后工资字段中添加"工资合计"字段 - 优化晋档和晋级记录的计算逻辑,同时更新五年1级和两年1档年份 - 添加工龄计算功能 --- main.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/main.py b/main.py index c854a92..44fa3be 100644 --- a/main.py +++ b/main.py @@ -348,8 +348,8 @@ def main(): "身份证号码", "姓名", # 统一填入 "变动后时间", "变动后职务", "变动原因", "晋升备注", # 直接填入 "工龄", "五年1级年份", "两年1档年份", # 简单计算更新 - "变动后级别档次", "变动后职务工资", "变动后级别工资", "变动后津贴工资", # 复杂计算更新 - "变动前时间", "变动前职务", "变动前级别档次", "变动前职务工资", "变动前级别工资", "变动前津贴工资"]) # 排序后(最后)更新 + "变动后级别档次", "变动后职务工资", "变动后级别工资", "变动后津贴工资", "变动后工资合计", # 复杂计算更新 + "变动前时间", "变动前职务", "变动前级别档次", "变动前职务工资", "变动前级别工资", "变动前津贴工资", "变动前工资合计",]) # 排序后(最后)更新 # 添加入职记录 History_pd.loc[len(History_pd), ["变动后时间","变动后职务","变动原因","变动后级别档次"]] = [ row["入职时间"],row["初始职务"],"套改/定级",row["入职时的初始级别"]] @@ -358,23 +358,29 @@ def main(): prow["工资执行时间"]+relativedelta(hours=prow["任职时间"].month,minutes=prow["任职时间"].day), prow["新职务"],"晋升",f"任{prow['新职务']} {prow['变动批注'] if pd.notna(prow['变动批注']) else ''}"] try: + # 添加晋档记录 calctime=row["晋档起始"] + relativedelta(minute=1) - while True: # 添加晋档记录 + while True: calctime += relativedelta(years=row["晋档间隔"]) if calctime > NOWTIME: break - History_pd.loc[len(History_pd),["变动后时间","变动原因"]] = [calctime,"两年晋档"] + History_pd.loc[len(History_pd),["变动后时间","变动原因","五年1级年份","两年1档年份"]] = [ + calctime,"两年晋档",calctime.year-row["晋级起始"].year,calctime.year-row["晋档起始"].year] calctime=row["晋级起始"] - while True: # 添加晋级记录 + # 添加晋级记录 + while True: calctime += relativedelta(years=row["晋级间隔"]) if calctime > NOWTIME: break - History_pd.loc[len(History_pd),["变动后时间","变动原因"]] = [calctime,"五年晋级"] + History_pd.loc[len(History_pd),["变动后时间","变动原因","五年1级年份","两年1档年份"]] = [ + calctime,"五年晋级",calctime.year-row["晋级起始"].year,calctime.year-row["晋档起始"].year] except: raise Exception(f"晋级、档起始或间隔时间格式错误:{row['晋级起始']}-{row['晋档起始']}-{row['晋级间隔']}-{row['晋档间隔']}") - for rule in Rule_Level: # 工资调标 + # 工资调标 + for rule in Rule_Level: if row["入职时间"] < rule["start"]: History_pd.loc[len(History_pd),["变动后时间","变动原因"]] = [rule["start"], "工资调标"] + History_pd["工龄"] = History_pd.apply(lambda x: calculate_seniority(row, x["变动后时间"]), axis=1) History_pd = History_pd.sort_values(by="时间").reset_index(drop=True) if History_pd.at[0,"时间"] != row["入职时间"]: