答案:通过Java面向对象设计实现员工请假管理,包含员工类、请假单类及审批服务类,支持提交、审批、查询状态等功能,并可扩展权限控制与数据库集成。

实现员工请假管理功能,核心是设计合理的类结构、状态流程和业务逻辑。Java可以通过面向对象的方式清晰地表达员工、请假单、审批流程等概念。以下是具体实现思路和代码示例。
首先创建员工(Employee)和请假单(LeaveRequest)类,用于封装基本信息。
// 员工类
class Employee {
private String id;
private String name;
private String role; // 如 "普通员工"、"经理"
public Employee(String id, String name, String role) {
this.id = id;
this.name = name;
this.role = role;
}
// getter 方法
public String getId() { return id; }
public String getName() { return name; }
public String getRole() { return role; }
}
// 请假单类
class LeaveRequest {
private String requestId;
private String employeeId;
private String reason;
private int days;
private String status; // "待审批"、"已批准"、"已拒绝"
public LeaveRequest(String requestId, String employeeId, String reason, int days) {
this.requestId = requestId;
this.employeeId = employeeId;
this.reason = reason;
this.days = days;
this.status = "待审批";
}
// getter 和 setter
public String getRequestId() { return requestId; }
public String getEmployeeId() { return employeeId; }
public String getReason() { return reason; }
public int getDays() { return days; }
public String getStatus() { return status; }
public void setStatus(String status) { this.status = status; }
}
通过一个服务类来处理提交和审批请假请求的逻辑。
import java.util.HashMap;
import java.util.Map;
class LeaveService {
private Map<String, Employee> employees = new HashMap<>();
private Map<String, LeaveRequest> requests = new HashMap<>();
public LeaveService() {
// 模拟初始化员工数据
employees.put("E001", new Employee("E001", "张三", "普通员工"));
employees.put("E002", new Employee("E002", "李四", "经理"));
}
// 提交请假
public String submitLeave(String empId, String reason, int days) {
if (!employees.containsKey(empId)) {
return "员工不存在";
}
String reqId = "REQ" + (requests.size() + 1);
LeaveRequest request = new LeaveRequest(reqId, empId, reason, days);
requests.put(reqId, request);
return "请假已提交,申请编号:" + reqId;
}
// 审批请假(经理操作)
public String approveLeave(String requestId, boolean approved) {
LeaveRequest request = requests.get(requestId);
if (request == null) {
return "未找到该请假申请";
}
if ("已批准".equals(request.getStatus()) || "已拒绝".equals(request.getStatus())) {
return "该申请已处理,无法重复审批";
}
if (approved) {
request.setStatus("已批准");
return "已批准请假申请:" + requestId;
} else {
request.setStatus("已拒绝");
return "已拒绝请假申请:" + requestId;
}
}
// 查询请假状态
public LeaveRequest getLeaveStatus(String requestId) {
return requests.get(requestId);
}
}
编写主方法验证功能是否正常运行。
立即学习“Java免费学习笔记(深入)”;
public class LeaveManagementDemo {
public static void main(String[] args) {
LeaveService service = new LeaveService();
// 员工提交请假
String result = service.submitLeave("E001", "生病", 3);
System.out.println(result); // 输出申请编号
// 获取申请编号以便审批
LeaveRequest request = service.getLeaveStatus("REQ1");
if (request != null) {
System.out.println("当前状态: " + request.getStatus());
// 经理审批(模拟)
String approvalResult = service.approveLeave("REQ1", true);
System.out.println(approvalResult);
// 再次查看状态
System.out.println("最新状态: " + service.getLeaveStatus("REQ1").getStatus());
}
}
}
上述实现为基础版本,实际项目中可进一步增强:
以上就是如何用Java实现员工请假管理功能的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号