|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public String checkIn(AppDTO appDTO) { |
|
|
public String checkIn(AppDTO appDTO) { |
|
|
|
|
|
// 查询考勤组信息 |
|
|
AppDTO appDTO1 = dkAttendanceGroupMapper.queryAttendanceGroupBYUserId(appDTO.getUserId()); |
|
|
AppDTO appDTO1 = dkAttendanceGroupMapper.queryAttendanceGroupBYUserId(appDTO.getUserId()); |
|
|
|
|
|
|
|
|
// 判断是否已经打卡,如果已经打卡,则不允许再次打卡 |
|
|
// 判断是否已经打卡,如果已经打卡,则不允许再次打卡 |
|
|
|
|
|
|
|
|
// } |
|
|
// } |
|
|
|
|
|
|
|
|
// 解析给定的时分秒(格式:HH:mm:ss 或 HH:mm) |
|
|
// 解析给定的时分秒(格式:HH:mm:ss 或 HH:mm) |
|
|
// true的时候表示当前时间在给定时间以前,属于正常打卡;false表示当前时间在给定时间以后,属于迟到打卡 |
|
|
|
|
|
boolean result = canSignIn(workStartTime); |
|
|
|
|
|
|
|
|
|
|
|
// 初始化打卡记录对象 |
|
|
// 初始化打卡记录对象 |
|
|
DkCheckInRecord dkCheckInRecord = new DkCheckInRecord(); |
|
|
DkCheckInRecord dkCheckInRecord = new DkCheckInRecord(); |
|
|
|
|
|
|
|
|
|
|
|
// 构造查询条件 |
|
|
LambdaQueryWrapper<DkCheckInRecord> queryWrapper1 = new LambdaQueryWrapper<>(); |
|
|
LambdaQueryWrapper<DkCheckInRecord> queryWrapper1 = new LambdaQueryWrapper<>(); |
|
|
queryWrapper1.eq(DkCheckInRecord::getSysUserId, appDTO.getUserId()); |
|
|
queryWrapper1.eq(DkCheckInRecord::getSysUserId, appDTO.getUserId()); |
|
|
queryWrapper1.apply("DATE(check_in_time) = DATE(NOW())"); |
|
|
|
|
|
|
|
|
// queryWrapper1.apply("DATE(check_in_time) = CURDATE()"); |
|
|
// queryWrapper1.isNotNull(DkCheckInRecord::getClockIn); |
|
|
// queryWrapper1.isNotNull(DkCheckInRecord::getClockIn); |
|
|
List<DkCheckInRecord> dkCheckInRecords1 = dkRecordMapper.selectList(queryWrapper1); |
|
|
List<DkCheckInRecord> dkCheckInRecords1 = dkRecordMapper.selectList(queryWrapper1); |
|
|
|
|
|
|
|
|
|
|
|
// 判断是否已经存在打卡数据 |
|
|
if(dkCheckInRecords1.size() > 0){ |
|
|
if(dkCheckInRecords1.size() > 0){ |
|
|
dkCheckInRecord = dkCheckInRecords1.get(0); |
|
|
|
|
|
|
|
|
System.out.println("已存在打卡数据"+ LocalDate.now() ); |
|
|
|
|
|
dkCheckInRecord = dkCheckInRecords1.stream().filter(dkCheckInRecord1 -> dkCheckInRecord1.getCheckInTime().toLocalDate().equals(LocalDate.now())).findFirst().orElse(null); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// true的时候表示当前时间在给定时间以前,属于正常打卡;false表示当前时间在给定时间以后,属于迟到打卡 |
|
|
|
|
|
boolean result = canSignIn(workStartTime); |
|
|
if(!result){ |
|
|
if(!result){ |
|
|
// 允许迟到打卡 |
|
|
// 允许迟到打卡 |
|
|
if(appDTO1.getAllowLate()){ |
|
|
if(appDTO1.getAllowLate()){ |