From cdb2716064e5c7d0889a8cf51b9dc9d602207954 Mon Sep 17 00:00:00 2001 From: mxr612 Date: Mon, 2 Jun 2025 23:37:43 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0=E8=81=8C=E7=BA=A7?= =?UTF-8?q?=E4=B8=8A=E9=99=90=E8=A7=84=E5=88=99=E5=A4=84=E7=90=86=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E4=BB=A5=E6=94=AF=E6=8C=81=E6=96=B0=E8=81=8C=E4=BD=8D?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E7=9A=84=E7=BA=A7=E5=88=AB=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 调整职位规则读取逻辑,增加对级别限制的处理 - 修改列索引以适应新的数据结构 - 优化异常处理,确保在角色不存在时记录警告信息 --- main.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/main.py b/main.py index e851c56..2f0b86d 100644 --- a/main.py +++ b/main.py @@ -23,7 +23,6 @@ def custom_date_parser(x): BaseData = pd.read_excel("原数据.xlsx", sheet_name="入职信息") Promote = pd.read_excel("原数据.xlsx", sheet_name="职务变动") # -Level_Limit = pd.read_excel("原数据.xlsx", sheet_name="职位规则",usecols="A:B", skiprows=2, names=["limit","role"]) for index, row in BaseData.iterrows(): for col in ["出生年月","任职年月","原职时间","参加工作时间","入职时间", "晋档起始", "晋级起始", "日期2"]: @@ -75,6 +74,14 @@ while True: # 名称变化 except: break +# 读取职位对应的级别限制 +Level_Limit_tmp = pd.read_excel("原数据.xlsx", sheet_name="职位规则", usecols="A:A", skiprows=2, names=["limit"]) +Level_Limit = {} +for rule in Rule_Role: + for index, row in rule["rule"].iterrows(): + Level_Limit[row["role"]] = Level_Limit_tmp.iloc[index]["limit"] + + logging.info("规则加载完成") Rule_Role = sorted(Rule_Role, key=lambda x: x['start']) @@ -115,10 +122,9 @@ def level_salary(level:str, time): return 0 def role_limit(role:str): - try: - tmp = Level_Limit[Level_Limit["role"] == role].iloc[0] - return tmp["limit"] - except: + if role in Level_Limit.keys(): + return Level_Limit[role] + else: logging.warning(f"职位[{role}]不存在职级上限规则") return -1