Compare commits
No commits in common. "f87b4186bbf3b40ea82409c571630ed50f6650f0" and "b0827c282990b225bdfabe64939a77863da69c18" have entirely different histories.
f87b4186bb
...
b0827c2829
26
main.py
26
main.py
@ -3,7 +3,8 @@ from openpyxl.utils import get_column_letter
|
||||
from openpyxl import load_workbook
|
||||
from datetime import datetime
|
||||
from dateutil.relativedelta import relativedelta
|
||||
import logging, os
|
||||
import logging
|
||||
from datetime import datetime
|
||||
|
||||
# 配置日志记录
|
||||
logging.basicConfig(filename='log.txt', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
|
||||
@ -67,9 +68,6 @@ def split_level(level:str):
|
||||
except:
|
||||
raise Exception(f"职级[{level}]格式错误")
|
||||
|
||||
def calculate_seniority(row, year):
|
||||
return year - row["参加工作时间"].year + row["工龄调增"] - row["工龄调减"] + 1
|
||||
|
||||
# 读取信息
|
||||
|
||||
def read_base_data(): # 读取员工数据
|
||||
@ -198,7 +196,6 @@ def role_salary(role:str, time):
|
||||
logging.error("空职级")
|
||||
else:
|
||||
logging.warning(f"职位[{role}]在[{time}]时不存在工资规则")
|
||||
logging.warning(f"时间[{time}]时不存在职位工资规则")
|
||||
return 0
|
||||
|
||||
def level_salary(level:str, time):
|
||||
@ -209,7 +206,6 @@ def level_salary(level:str, time):
|
||||
return tmp["salary"]
|
||||
except:
|
||||
logging.warning(f"职级[{level}]在[{time}]时不存在工资规则")
|
||||
logging.warning(f"时间[{time}]时不存在职级工资规则")
|
||||
return 0
|
||||
|
||||
def role_limit(role:str):
|
||||
@ -219,17 +215,6 @@ def role_limit(role:str):
|
||||
logging.warning(f"职位[{role}]不存在职级上限规则")
|
||||
return -1
|
||||
|
||||
def allowance(role:str, level:int, time):
|
||||
for rule in Allowance:
|
||||
if rule["start"] <= time <= rule["end"]:
|
||||
try:
|
||||
tmp = rule["rule"][rule["rule"]["level"] == f"{role}-{level}"].iloc[0]
|
||||
return tmp["salary"]
|
||||
except:
|
||||
logging.warning(f"组合[{role}-{level}]在[{time}]时不存在工资规则")
|
||||
logging.warning(f"时间[{time}]时不存在津贴规则")
|
||||
raise 0
|
||||
|
||||
# 填充类辅助函数
|
||||
|
||||
def fill_basic_info(ws, row):# 填充基本信息
|
||||
@ -312,11 +297,7 @@ def main():
|
||||
load_rule()
|
||||
|
||||
# 创建一个空的DataFrame来存储所有历史记录
|
||||
all_history = pd.DataFrame(columns=[
|
||||
"身份证号码", "姓名", "工龄","变动原因", "晋升备注",
|
||||
"变动前时间", "变动前职务", "变动前级别档次", "变动前职务工资", "变动前级别工资", "变动前津贴工资",
|
||||
"变动后时间", "变动后职务", "变动后级别档次", "变动后职务工资", "变动后级别工资", "变动后津贴工资",
|
||||
"五年1级年份", "两年1档年份"])
|
||||
all_history = pd.DataFrame(columns=["身份证号码", "姓名", "时间", "职务", "职务工资", "级别档次", "级别工资", "工资合计", "变动原因", "晋升备注"])
|
||||
|
||||
for index, row in BaseData.iterrows():
|
||||
try:
|
||||
@ -340,6 +321,7 @@ def main():
|
||||
else:
|
||||
BaseData.at[index, "职务2"] = row["初始职务"]
|
||||
BaseData.at[index, "日期2"] = row["入职时间"]
|
||||
|
||||
promote = promote.sort_values(by=["工资执行时间", "任职时间"]).reset_index(drop=True)
|
||||
fill_prompt_info(ws, promote)# 填充晋升信息
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user