休假管理制度
一个全面的休假管理系统,将所有数据本地存储在Excel文件中。该系统提供了一种简单有效的方法来管理员工休假请求、批准和休假余额跟踪,而不需要任何数据库设置。
✨ 特性
- 👥 员工管理:添加、查看和管理具有休假权利的员工信息
- 📝 请假申请:提交带日期范围和原因的休假申请
- ✅ 休假审批:批准或拒绝带评论的休假申请
- 📊 休假余额跟踪:自动跟踪已用和剩余的叶子
- 📅 多种休假类型:年假、病假、事假、产假、陪产假
- 🔄 休假取消:取消已批准的休假,并自动恢复平衡
- 📈 报告:生成全面的休假报告和摘要
- 📤 数据导出:将数据导出到单独的Excel文件进行分析
- 💾 本地存储:所有数据存储在有组织的Excel表中(不需要数据库)
📊 Excel表结构
员工表
- 员工ID
- 员工_姓名
- 部门
- 位置
- 电子邮件
- 电话
- 加入_日期
- 离职_离职
休假_申请表
- 请求ID
- 员工ID
- 员工_姓名
- Leave_类型
- 开始日期
- 结束日期
- 总计_天
- 理由
- 状态
- 申请日期\_
- 已批准_By
- 批准日期
- 评论
Leave_资产负债表
- 员工ID
- 员工_姓名
- Leave_类型
- 总计_付款
- 已使用_叶子
- 留下来_屋檐
- 年
🚀 快速开始
1.安装依赖项
pip install pandas openpyxl2.使用该系统
from main import LeaveManagementSystem
# Initialize the system
leave_mgr = LeaveManagementSystem("my_leave_system.xlsx")
# Add an employee
leave_mgr.add_employee(
employee_id="EMP001",
name="vibhanshu",
department="IT",
position="Developer",
email="vibhanshu@gaincafe.com",
phone="123-456-7890",
leave_entitlement=25
)
# Apply for leave
leave_mgr.apply_leave("EMP001", "Annual Leave", "2025-02-15", "2025-02-20", "Family vacation")
# Approve leave
leave_mgr.approve_leave("LR2025020112000000", "HR Manager", "Approved", "Approved as requested")
# Check leave balance
balance = leave_mgr.get_leave_balance("EMP001")
print(balance)📋 可用方法
员工管理
add_employee(employee_id, name, department, position, email, phone, join_date, leave_entitlement):添加新员工get_employee_list():获取所有员工的列表get_employee_name(employee_id):通过ID获取员工姓名
休假管理
apply_leave(employee_id, leave_type, start_date, end_date, reason):提交请假申请approve_leave(request_id, approved_by, status, comments):批准/拒绝休假cancel_leave(request_id, employee_id):取消休假申请get_leave_requests(employee_id, status):通过过滤获取休假请求
休假余额和报告
get_leave_balance(employee_id):为员工获取假期余额get_leave_summary(year):获取年假总结export_to_excel(filename):将数据导出到Excel文件
📅 休假类型和权利
系统自动设置具有标准权利的不同休假类型:
- 年假:基于员工的休假权利(默认值:25天)
- 病假:每年15天
- 事假:每年5天
- 产假:每年90天
- 陪产假:每年15天
🔄 工作流程
1.员工设置
# Add employee with leave entitlement
leave_mgr.add_employee("EMP001", "vibhanshu", "IT", "Developer",
"vibhanshu@gaincafe.com", "123-456-7890", leave_entitlement=25)2.请假申请
# Employee applies for leave
leave_mgr.apply_leave("EMP001", "Annual Leave", "2025-02-15", "2025-02-20", "Family vacation")3.休假审批
# Manager approves/rejects leave
leave_mgr.approve_leave("LR2025020112000000", "HR Manager", "Approved", "Approved as requested")4.休假取消
# Employee cancels approved leave
leave_mgr.cancel_leave("LR2025020112000000", "EMP001")📊 使用示例
日常休假管理
# Get all pending leave requests
pending_leaves = leave_mgr.get_leave_requests(status="Pending")
print(f"Pending requests: {len(pending_leaves)}")
# Get leave balance for specific employee
balance = leave_mgr.get_leave_balance("EMP001")
print(balance)
# Get annual summary
summary = leave_mgr.get_leave_summary(2025)
print(f"Approval rate: {summary['approval_rate']}%")批量操作
# Add multiple employees
employees = [
("EMP002", "gaurav", "HR", "Manager", "gaurav@gaincafe.com", "123-456-7891", 25),
("EMP003", "lakshay", "SEO", "Specialist", "seo@gaincafe.com", "123-456-7892", 25),
("EMP004", "manasvi", "Marketing", "Coordinator", "manasvi@gaincafe.com", "123-456-7893", 25)
]
for emp in employees:
leave_mgr.add_employee(*emp)生成报告
# Export all data to Excel
leave_mgr.export_to_excel("monthly_leave_report.xlsx")
# Get leave requests for specific employee
employee_leaves = leave_mgr.get_leave_requests(employee_id="EMP001")
print(employee_leaves)🏗️ 系统架构
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Your Code │───▶│ Leave Management │───▶│ Local Excel │
│ │ │ System │ │ Files │
└─────────────────┘ └──────────────────┘ └─────────────────┘📁 文件结构
my-first-mcp-server/
├── main.py # Leave management system
├── pyproject.toml # Project dependencies
├── README.md # This documentation
├── leave_management.xlsx # Main data file (generated after first run)
└── leave_management_report.xlsx # Exported reports (generated on demand)🔧 配置
默认设置
- 工作日:周一至周五(周末不包括在假期计算中)
- 休假权利:25天年假(每位员工可配置)
- 日期格式:年月日
- 请求ID格式:LR+时间戳
定制
您可以轻松修改:
- 每位员工的休假权利
- 工作日计算
- 休假类型及其权利
- 请求ID格式
- Excel文件结构
🚨 错误处理
该系统包括全面的错误处理,用于:
- 无效日期 (过去的日期,开始前结束)
- 假期余额不足
- 失踪员工
- 休假类型无效
- 文件 操作
- 数据验证
📈 性能特点
- 高效的Excel操作 使用openpyxl
- 智能数据过滤 和搜索
- 批量操作 用于多次更新
- 自动计算 (工作日,假期余额)
- 数据完整性检查 手术前
🆘 故障排除
常见问题
- “假期余额不足”错误
- 检查当前休假余额 - 核实休假类型和年份 - 确保正确设置休假权利
- “找不到员工”错误
- 验证员工ID拼写 - 检查系统中是否存在员工 - 确保员工设置得当
- “无效日期”错误
- 使用YYYY-MM-DD格式 - 确保日期不是过去的 - 检查开始日期是否早于结束日期
获取帮助
如果您遇到问题:
- 查看错误消息以了解具体详细信息
- 验证Excel文件权限
- 确保数据格式正确
- 检查文件路径和可访问性
📚 api参考
有关API的详细文档,请参阅 main.py 文件。每种方法包括:
- 参数说明
- 返回值信息
- 使用示例
- 错误处理详细信息
🎉 准备使用!
您的休假管理系统现已准备就绪!系统将自动:
- ✅ 创建有组织的Excel文件
- ✅ 设置员工休假权利
- ✅ 自动跟踪假期余额
- ✅ 计算工作日(不包括周末)
- ✅ 生成唯一的请求ID
- ✅ 维护数据完整性
- ✅ 提供全面的报告
只需几行Python代码,即可高效管理员工离职!
🚀 运行系统
要运行演示,请执行以下操作:
python main.py这将:
- 初始化休假管理系统
- 添加样本员工(vibhanshu、gaurav、lakshay、manasvi、kanchi)
- 模拟休假请求
- 演示审批工作流程
- 显示假期余额跟踪
- 将样本数据导出到Excel
📊 包含样本数据
该系统附带了现有员工的示例数据:
- 维班舒 -IT开发人员
- 高瑞夫 -人力资源经理
- 拉克沙伊 -SEO专家
- 马纳斯维 -营销协调员
- 汉字 -人力资源助理
所有员工在开始时都有25天的年假和当年的全部假期余额。
