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;
}

}

posted @ 2025-12-29 19:41  Cx330。  阅读(2)  评论(0)    收藏  举报