12.29
package com.attendance1.service;
// EmployeeService.java - 员工管理服务
@Service
public class EmployeeService {
@Autowired
private EmployeeMapper employeeMapper;
// 自动生成工号
public String generateJobId() {
String prefix = "2019";
String lastJobId = employeeMapper.selectLastJobId();
if (lastJobId == null) {
return prefix + "0001";
}
int lastNum = Integer.parseInt(lastJobId.substring(4));
return String.format("%s%04d", prefix, lastNum + 1);
}
// 新增员工
public Result addEmployee(Employee employee) {
employee.setJobId(generateJobId());
employee.setRole("员工");
employee.setPassword(DigestUtils.md5Hex("123456"));
if (employeeMapper.insert(employee) > 0) {
return Result.success("员工添加成功");
}
return Result.error("员工添加失败");
}
}
// AttendanceService.java - 考勤服务
@Service
public class AttendanceService {
@Autowired
private AttendanceRecordMapper attendanceMapper;
// 上班打卡
public Result clockIn(String jobId) {
LocalDateTime now = LocalDateTime.now();
LocalTime currentTime = now.toLocalTime();
// 判断是否在打卡时间段 (8:00-9:00)
if (currentTime.isAfter(LocalTime.of(8, 0))
&& currentTime.isBefore(LocalTime.of(9, 0))) {
AttendanceRecord record = new AttendanceRecord();
record.setJobId(jobId);
record.setAttendanceTime(now);
record.setAttendanceType(0); // 上班打卡
// 查询员工信息并设置
Employee emp = employeeMapper.selectById(jobId);
record.setName(emp.getName());
record.setSex(emp.getSex());
record.setBirthday(emp.getBirthday());
record.setDepartmentId(emp.getDepartmentId());
attendanceMapper.insert(record);
return Result.success("打卡成功");
} else {
return Result.error("已过上班打卡时间点,打卡无效");
}
}
// 考勤统计
public Map<String, Object> getDepartmentAttendance(String departmentId, String month) {
List<AttendanceStatisticVO> list = attendanceMapper.selectAttendanceStatistic(
departmentId, month);
Map<String, Object> result = new HashMap<>();
result.put("statistics", list);
result.put("total", list.size());
return result;
}
}

浙公网安备 33010602011771号