From d0d4c37fddaceaaf984aff6684b3ddedad3ec1fd Mon Sep 17 00:00:00 2001 From: aikai Date: Mon, 17 Jun 2024 09:58:25 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=94=E5=9B=9E=E8=80=83=E5=8B=A4=E7=BB=84id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/attendance/vo/AttendancePunchPageVO.java | 2 ++ .../attendance/fixed/AttendanceFixedServiceImpl.java | 1 + .../groupshift/AttendanceGroupShiftServiceImpl.java | 6 +++++- .../groupuser/AttendanceGroupUserServiceImpl.java | 6 +++++- .../scheduling/AttendanceSchedulingServiceImpl.java | 1 + 5 files changed, 14 insertions(+), 2 deletions(-) diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/attendance/vo/AttendancePunchPageVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/attendance/vo/AttendancePunchPageVO.java index 501265cb..c691ebd6 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/attendance/vo/AttendancePunchPageVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/attendance/vo/AttendancePunchPageVO.java @@ -13,6 +13,8 @@ import java.util.List; @Data @Accessors(chain = true) public class AttendancePunchPageVO { + @Schema(description = "考勤组id") + private Long attendanceGroupId; @Schema(description = "是否在考勤组 0否 1是") private Integer inGroup = 1; @Schema(description = "当天是否需要考勤 0否 1是") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/fixed/AttendanceFixedServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/fixed/AttendanceFixedServiceImpl.java index 1724b30c..9c77f431 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/fixed/AttendanceFixedServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/fixed/AttendanceFixedServiceImpl.java @@ -234,6 +234,7 @@ public class AttendanceFixedServiceImpl implements AttendanceFixedService, Punch } vo.setAttendanceGroupShiftId(attendanceFixedDO.getAttendanceGroupShiftId()); attendanceService.calculatePunch(dto, vo); + vo.setAttendanceGroupId(activationGroup.getId()); return vo; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/groupshift/AttendanceGroupShiftServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/groupshift/AttendanceGroupShiftServiceImpl.java index 9661327f..5e721f16 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/groupshift/AttendanceGroupShiftServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/groupshift/AttendanceGroupShiftServiceImpl.java @@ -21,6 +21,7 @@ import cn.iocoder.yudao.module.system.dal.mysql.attendance.groupshiftitem.Attend import cn.iocoder.yudao.module.system.dal.mysql.attendance.punchrecord.AttendancePunchRecordMapper; import cn.iocoder.yudao.module.system.dal.mysql.attendance.scheduling.AttendanceSchedulingMapper; import cn.iocoder.yudao.module.system.service.attendance.group.AttendanceGroupService; +import cn.iocoder.yudao.module.system.service.attendance.punch.dto.AttendanceOnTheDayDTO; import cn.iocoder.yudao.module.system.service.attendance.punchrecord.AttendancePunchRecordService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.springframework.context.annotation.Lazy; @@ -248,7 +249,10 @@ public class AttendanceGroupShiftServiceImpl implements AttendanceGroupShiftServ // -- 删除当前考勤组预留的考勤记录 attendancePunchRecordMapper.delete(new LambdaQueryWrapper() .in(AttendancePunchRecordDO::getAttendanceGroupId, groupIds) - .eq(AttendancePunchRecordDO::getNextDayFlag, Constants.TRUE)); + .and(a -> a.eq(AttendancePunchRecordDO::getNextDayFlag, Constants.TRUE) + .or() + .eq(AttendancePunchRecordDO::getStatus, AttendanceOnTheDayDTO.PUNCH_STATUS_UN_PUNCH)) + ); // -- 重新计算 - 插入到redis 和数据中 attendancePunchRecordService.defaultPersistence(groupIds, LocalDateTime.now()); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/groupuser/AttendanceGroupUserServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/groupuser/AttendanceGroupUserServiceImpl.java index c9dc3053..e207e5f5 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/groupuser/AttendanceGroupUserServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/groupuser/AttendanceGroupUserServiceImpl.java @@ -12,6 +12,7 @@ import cn.iocoder.yudao.module.system.dal.dataobject.attendance.groupuser.Attend import cn.iocoder.yudao.module.system.dal.dataobject.attendance.punchrecord.AttendancePunchRecordDO; import cn.iocoder.yudao.module.system.dal.mysql.attendance.groupuser.AttendanceGroupUserMapper; import cn.iocoder.yudao.module.system.dal.mysql.attendance.punchrecord.AttendancePunchRecordMapper; +import cn.iocoder.yudao.module.system.service.attendance.punch.dto.AttendanceOnTheDayDTO; import cn.iocoder.yudao.module.system.service.attendance.punchrecord.AttendancePunchRecordService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.springframework.data.redis.core.StringRedisTemplate; @@ -130,7 +131,10 @@ public class AttendanceGroupUserServiceImpl implements AttendanceGroupUserServic attendancePunchRecordMapper.delete(new LambdaQueryWrapper() .eq(AttendancePunchRecordDO::getAttendanceGroupId, vo.getAttendanceGroupId()) .in(AttendancePunchRecordDO::getUserId, vo.getDelUserIds()) - .eq(AttendancePunchRecordDO::getNextDayFlag, Constants.TRUE)); + .and(a -> a.eq(AttendancePunchRecordDO::getNextDayFlag, Constants.TRUE) + .or() + .eq(AttendancePunchRecordDO::getStatus, AttendanceOnTheDayDTO.PUNCH_STATUS_UN_PUNCH)) + ); } if (CollectionUtil.isNotEmpty(vo.getSaveUserIds())) { attendancePunchRecordService.defaultPersistence(vo.getAttendanceGroupId(), vo.getSaveUserIds(), LocalDateTime.now()); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/scheduling/AttendanceSchedulingServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/scheduling/AttendanceSchedulingServiceImpl.java index 2d2200b2..30129fd7 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/scheduling/AttendanceSchedulingServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/scheduling/AttendanceSchedulingServiceImpl.java @@ -229,6 +229,7 @@ public class AttendanceSchedulingServiceImpl implements AttendanceSchedulingServ } vo.setAttendanceGroupShiftId(attendanceSchedulingDO.getAttendanceGroupShiftId()); attendanceService.calculatePunch(dto, vo); + vo.setAttendanceGroupId(activationGroup.getId()); return vo; }