From c34d04c3d8ab888f79bc4914a7c0a8c4b935b286 Mon Sep 17 00:00:00 2001 From: mxr612 Date: Tue, 27 May 2025 16:50:29 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E8=81=8C=E4=BD=8D=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E5=8F=98=E6=9B=B4):=20=E5=AE=9E=E7=8E=B0=E8=81=8C=E4=BD=8D?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E8=87=AA=E5=8A=A8=E6=9B=BF=E6=8D=A2=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加从Excel读取名称变化规则的功能,并在处理历史数据时自动应用匹配的规则 --- main.py | 20 ++++++++++++++++++++ 规则需求.md | 4 ++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/main.py b/main.py index cd3b795..44e4670 100644 --- a/main.py +++ b/main.py @@ -59,9 +59,25 @@ while True: # 职级规则 col += 2 except: break +Rule_RoleName = [] +col = 1 +while True: # 名称变化 + try: + rule = pd.read_excel("原数据.xlsx", sheet_name="名称变化",usecols=f"{get_column_letter(col)}:{get_column_letter(col+1)}", header=None) + Rule_RoleName.append({ + "start":rule.iloc[0,1], + "end":rule.iloc[1,1], + "rule":pd.read_excel("原数据.xlsx", sheet_name="名称变化",usecols=f"{get_column_letter(col)}:{get_column_letter(col+1)}",skiprows=2) + }) + col += 2 + except: + break + +print("读取完成") Rule_Role = sorted(Rule_Role, key=lambda x: x['start']) Rule_Level = sorted(Rule_Level, key=lambda x: x['start']) +Rule_RoleName = sorted(Rule_RoleName, key=lambda x: x['start']) nowtime = datetime.now() @@ -204,6 +220,10 @@ for index, row in BaseData.iterrows(): # 调整职务职级 if index > 0 and hrow["职务"] == "": History_pd.at[index, "职务"] = History_pd.iloc[index-1]["职务"] + for rule in Rule_RoleName: # 名称变化 + if rule["start"] <= hrow["时间"] <= rule["end"]: + if History_pd.iloc[index]["职务"] in rule["rule"]["原名称"].values: + History_pd.at[index, "职务"] = rule["rule"][rule["rule"]["原名称"] == History_pd.iloc[index]["职务"]]["现名称"].values[0] if index > 0 and hrow["级别档次"] == "": jb, dc = split_level(History_pd.iloc[index-1]["级别档次"]) if hrow["变动原因"] == "两年晋档": diff --git a/规则需求.md b/规则需求.md index c3fff59..c19c795 100644 --- a/规则需求.md +++ b/规则需求.md @@ -9,7 +9,7 @@ ## 1.1 新增职位变更&数据模板优化 100 -- [ ] feat: 职位名称变化 +- [x] feat: 职位名称变化 [completion:: 2025-05-27] 新增名称变化规则,起始、终止时间内自动替换 - [ ] fix: 原数据模版(带校验数据值填写规范提示) - [x] 兼容 yyyy-mm-dd格式 [completion:: 2025-05-27] @@ -18,7 +18,7 @@ - [ ] 带输入格式检测(修正、提示) - [x] doc: 打包成exe教程 [completion:: 2025-05-27] - [x] feat: 【赠送】输出log到文件 [completion:: 2025-05-27] -- [ ] fix: 工龄列改为学龄,不参与任何计算。 +- [x] fix: 工龄列改为学龄,不参与任何计算。 [completion:: 2025-05-27] 汇总工龄 = 当年年份-参加工作时间年份+工龄调增-工龄调减+1 - [ ] feat:【赠送】新增fall-back逻辑 - [x] 职务2 优先计算结果 [completion:: 2025-05-27]