Kaynağa Gözat

1.打卡优化

main
wangqiang 2 hafta önce
ebeveyn
işleme
70ac5f0a00

+ 18
- 18
zs-manager/src/main/java/com/ruoyi/zhushi/service/impl/DkAppServiceImpl.java Dosyayı Görüntüle

@@ -18,6 +18,7 @@ import org.springframework.stereotype.Service;

import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
@@ -46,16 +47,18 @@ public class DkAppServiceImpl implements DkAppService {

// 初始化打卡记录对象
DkCheckInRecord dkCheckInRecord = new DkCheckInRecord();

LocalDate today = LocalDate.now();
LocalDateTime startOfDay = today.atStartOfDay();
LocalDateTime endOfDay = today.plusDays(1).atStartOfDay();
// 构造查询条件
LambdaQueryWrapper<DkCheckInRecord> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(DkCheckInRecord::getSysUserId, appDTO.getUserId());
queryWrapper1.between(DkCheckInRecord::getCheckInTime,startOfDay,endOfDay);
List<DkCheckInRecord> dkCheckInRecords1 = dkRecordMapper.selectList(queryWrapper1);

// 判断是否已经存在打卡数据
if(dkCheckInRecords1.size() > 0){
System.out.println("已存在打卡数据"+ LocalDate.now() );
dkCheckInRecord = dkCheckInRecords1.stream().filter(dkCheckInRecord1 -> dkCheckInRecord1.getCheckInTime().toLocalDate().equals(LocalDate.now())).findFirst().orElse(null);
dkCheckInRecord = dkCheckInRecords1.get(0);
}

// true的时候表示当前时间在给定时间以前,属于正常打卡;false表示当前时间在给定时间以后,属于迟到打卡
@@ -212,10 +215,13 @@ public class DkAppServiceImpl implements DkAppService {
if(workEndTime == null){
return "系统设置错误";
}
LocalDate today = LocalDate.now();
LocalDateTime startOfDay = today.atStartOfDay();
LocalDateTime endOfDay = today.plusDays(1).atStartOfDay();
// 获取当前天的下班打卡记录
LambdaQueryWrapper<DkCheckInRecord> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(DkCheckInRecord::getSysUserId, appDTO.getUserId());
queryWrapper.apply("DATE(check_in_time) = DATE(NOW())");
queryWrapper.between(DkCheckInRecord::getCheckInTime,startOfDay,endOfDay);
queryWrapper.orderByDesc(DkCheckInRecord::getCheckInTime);

// 如果存在下班打卡记录,则更新打卡记录,否则插入打卡记录
@@ -370,21 +376,15 @@ public class DkAppServiceImpl implements DkAppService {

@Override
public List<DkCheckInRecord> getCurrentDayRecord(AppDTO appDTO) {
LocalDate currentDate = LocalDate.now();
// List<DkCheckInRecord> currentDayRecords = dkRecordMapper.getCurrentDayRecord(appDTO.getUserId(), currentDate);
LambdaQueryWrapper<DkCheckInRecord> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(DkCheckInRecord::getSysUserId, appDTO.getUserId());
List<DkCheckInRecord> dkCheckInRecords1 = dkRecordMapper.selectList(queryWrapper1);
LocalDate today = LocalDate.now();
LocalDateTime startOfDay = today.atStartOfDay();
LocalDateTime endOfDay = today.plusDays(1).atStartOfDay();

// 判断是否已经存在打卡数据
List<DkCheckInRecord> results = new ArrayList<>();
DkCheckInRecord dkCheckInRecord;
if(dkCheckInRecords1.size() > 0){
System.out.println("已存在打卡数据"+ LocalDate.now() );
dkCheckInRecord = dkCheckInRecords1.stream().filter(dkCheckInRecord1 -> dkCheckInRecord1.getCheckInTime().toLocalDate().equals(LocalDate.now())).findFirst().orElse(null);
results.add(dkCheckInRecord);
}
return results;
LambdaQueryWrapper<DkCheckInRecord> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(DkCheckInRecord::getSysUserId, appDTO.getUserId());
queryWrapper.between(DkCheckInRecord::getCheckInTime,startOfDay,endOfDay);
List<DkCheckInRecord> dkCheckInRecords = dkRecordMapper.selectList(queryWrapper);
return dkCheckInRecords;
}

@Override

Loading…
İptal
Kaydet