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["入职时间"]: