feat(职位名称变更): 实现职位名称自动替换功能
添加从Excel读取名称变化规则的功能,并在处理历史数据时自动应用匹配的规则
This commit is contained in:
parent
0193264256
commit
c34d04c3d8
20
main.py
20
main.py
@ -59,9 +59,25 @@ while True: # 职级规则
|
|||||||
col += 2
|
col += 2
|
||||||
except:
|
except:
|
||||||
break
|
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_Role = sorted(Rule_Role, key=lambda x: x['start'])
|
||||||
Rule_Level = sorted(Rule_Level, 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()
|
nowtime = datetime.now()
|
||||||
|
|
||||||
@ -204,6 +220,10 @@ for index, row in BaseData.iterrows():
|
|||||||
# 调整职务职级
|
# 调整职务职级
|
||||||
if index > 0 and hrow["职务"] == "":
|
if index > 0 and hrow["职务"] == "":
|
||||||
History_pd.at[index, "职务"] = History_pd.iloc[index-1]["职务"]
|
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["级别档次"] == "":
|
if index > 0 and hrow["级别档次"] == "":
|
||||||
jb, dc = split_level(History_pd.iloc[index-1]["级别档次"])
|
jb, dc = split_level(History_pd.iloc[index-1]["级别档次"])
|
||||||
if hrow["变动原因"] == "两年晋档":
|
if hrow["变动原因"] == "两年晋档":
|
||||||
|
4
规则需求.md
4
规则需求.md
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
## 1.1 新增职位变更&数据模板优化 100
|
## 1.1 新增职位变更&数据模板优化 100
|
||||||
|
|
||||||
- [ ] feat: 职位名称变化
|
- [x] feat: 职位名称变化 [completion:: 2025-05-27]
|
||||||
新增名称变化规则,起始、终止时间内自动替换
|
新增名称变化规则,起始、终止时间内自动替换
|
||||||
- [ ] fix: 原数据模版(带校验数据值填写规范提示)
|
- [ ] fix: 原数据模版(带校验数据值填写规范提示)
|
||||||
- [x] 兼容 yyyy-mm-dd格式 [completion:: 2025-05-27]
|
- [x] 兼容 yyyy-mm-dd格式 [completion:: 2025-05-27]
|
||||||
@ -18,7 +18,7 @@
|
|||||||
- [ ] 带输入格式检测(修正、提示)
|
- [ ] 带输入格式检测(修正、提示)
|
||||||
- [x] doc: 打包成exe教程 [completion:: 2025-05-27]
|
- [x] doc: 打包成exe教程 [completion:: 2025-05-27]
|
||||||
- [x] feat: 【赠送】输出log到文件 [completion:: 2025-05-27]
|
- [x] feat: 【赠送】输出log到文件 [completion:: 2025-05-27]
|
||||||
- [ ] fix: 工龄列改为学龄,不参与任何计算。
|
- [x] fix: 工龄列改为学龄,不参与任何计算。 [completion:: 2025-05-27]
|
||||||
汇总工龄 = 当年年份-参加工作时间年份+工龄调增-工龄调减+1
|
汇总工龄 = 当年年份-参加工作时间年份+工龄调增-工龄调减+1
|
||||||
- [ ] feat:【赠送】新增fall-back逻辑
|
- [ ] feat:【赠送】新增fall-back逻辑
|
||||||
- [x] 职务2 优先计算结果 [completion:: 2025-05-27]
|
- [x] 职务2 优先计算结果 [completion:: 2025-05-27]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user