From e1bea33639bfcb6b9b19f41ea1cfad6b164685f1 Mon Sep 17 00:00:00 2001 From: aikai Date: Tue, 4 Jun 2024 16:29:06 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=83=E5=8B=A4=E7=94=A8=E6=88=B7=E8=BF=87?= =?UTF-8?q?=E6=BB=A4/=E8=80=83=E5=8B=A4=E5=AE=9A=E6=97=B6=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/group/AttendanceGroupController.java | 3 ++- .../punchrecord/vo/AttendancePunchRecordRespVO.java | 4 ++++ .../vo/AttendancePunchRecordSaveReqVO.java | 6 ++++++ .../controller/admin/user/UserController.java | 13 +++++++++++-- .../system/dal/mysql/user/AdminUserMapper.java | 3 ++- .../job/attendance/AttendanceMissingCardJob.java | 2 +- .../service/attendance/AttendanceServiceImpl.java | 2 ++ .../group/AttendanceGroupServiceImpl.java | 3 ++- .../system/service/user/AdminUserService.java | 11 ++++++++++- .../system/service/user/AdminUserServiceImpl.java | 12 ++++++++++-- .../main/resources/mapper/user/AdminUserMapper.xml | 8 +++----- 11 files changed, 53 insertions(+), 14 deletions(-) diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/group/AttendanceGroupController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/group/AttendanceGroupController.java index 2f2b407b..eff45e89 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/group/AttendanceGroupController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/group/AttendanceGroupController.java @@ -8,6 +8,7 @@ import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Operation; +import javax.annotation.security.PermitAll; import javax.validation.*; import javax.servlet.http.*; import java.util.*; @@ -72,7 +73,7 @@ public class AttendanceGroupController { @GetMapping("/test") - @Operation(summary = "测试") + @PermitAll public CommonResult test() { groupService.test(); return success("ok"); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/punchrecord/vo/AttendancePunchRecordRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/punchrecord/vo/AttendancePunchRecordRespVO.java index d47cb039..19398066 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/punchrecord/vo/AttendancePunchRecordRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/punchrecord/vo/AttendancePunchRecordRespVO.java @@ -69,6 +69,10 @@ public class AttendancePunchRecordRespVO { @ExcelProperty("打卡时间") private LocalDateTime punchTime; + @Schema(description = "应打卡时间") + @ExcelProperty("应打卡时间") + private LocalDateTime shouldPunchTime; + @Schema(description = "打卡备注", example = "你说的对") @ExcelProperty("打卡备注") private String remark; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/punchrecord/vo/AttendancePunchRecordSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/punchrecord/vo/AttendancePunchRecordSaveReqVO.java index 7ca7ae2b..2fc30ad9 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/punchrecord/vo/AttendancePunchRecordSaveReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/punchrecord/vo/AttendancePunchRecordSaveReqVO.java @@ -20,9 +20,15 @@ public class AttendancePunchRecordSaveReqVO { @Schema(description = "考勤组id", example = "22293") private Long attendanceGroupId; + @Schema(description = "考勤组名称", example = "22293") + private String attendanceGroupName; + @Schema(description = "班次id", example = "10780") private Long attendanceGroupShiftId; + @Schema(description = "班次名称", example = "22293") + private String attendanceGroupShiftName; + @Schema(description = "班次子表id", example = "10780") private Long attendanceGroupShiftItemId; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java index cdad946b..20db266e 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java @@ -165,12 +165,21 @@ public class UserController { return success(user); } + @PostMapping("/selectByUserIds") + @Operation(summary = "通过用户ids获取用户信息列表") + @PreAuthorize("@ss.hasPermission('system:user:query')") + public CommonResult> selectByUserIds(@RequestBody Collection userIds) { + List user = userService.selectByUserIds(userIds); + return success(BeanUtils.toBean(user, UserRespVO.class)); + } + + @PostMapping("/selectByDeptIdsFilterGroupUser") @Operation(summary = "通过部门ids获取用户信息列表(过滤掉已在考勤组的用户)") @PreAuthorize("@ss.hasPermission('system:user:query')") - public CommonResult> selectByDeptIdsFilterGroupUser(@RequestBody Collection deptIds) { + public CommonResult> selectByDeptIdsFilterGroupUser(@RequestParam(required = false) Long groupId, @RequestBody Collection deptIds) { - List user = userService.selectByDeptIdsFilterGroupUser(deptIds); + List user = userService.selectByDeptIdsFilterGroupUser(deptIds, groupId); return success(user); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java index 52d313f5..c2f7d222 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java @@ -76,9 +76,10 @@ public interface AdminUserMapper extends BaseMapperX { * 根据部门ids查询出用户列表 过滤掉考勤组里有的 * * @param deptIds + * @param groupId * @return */ - List selectByDeptIdsFilterGroupUser(Collection deptIds); + List selectByDeptIdsFilterGroupUser(@Param("deptIds") Collection deptIds, @Param("groupId") Long groupId); List selectUserByBoss(); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/job/attendance/AttendanceMissingCardJob.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/job/attendance/AttendanceMissingCardJob.java index f9634618..8066cf54 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/job/attendance/AttendanceMissingCardJob.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/job/attendance/AttendanceMissingCardJob.java @@ -35,7 +35,7 @@ public class AttendanceMissingCardJob { .eq(AttendancePunchRecordDO::getStatus, AttendanceOnTheDayDTO.PUNCH_STATUS_UN_PUNCH) .le(AttendancePunchRecordDO::getLatestPunchTime, now); AttendancePunchRecordDO attendancePunchRecordDO = new AttendancePunchRecordDO(); - attendancePunchRecordDO.setStatus(AttendanceOnTheDayDTO.PUNCH_STATUS_MISS); + attendancePunchRecordDO.setStatus(AttendanceOnTheDayDTO.PUNCH_STATUS_MISS).setNextDayFlag(Constants.FALSE); attendancePunchRecordMapper.update(attendancePunchRecordDO, le); log.info("结束 修改考勤缺卡"); // 返回执行成功 diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/AttendanceServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/AttendanceServiceImpl.java index 97924067..f28d7fe3 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/AttendanceServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/AttendanceServiceImpl.java @@ -139,7 +139,9 @@ public class AttendanceServiceImpl implements AttendanceService { AttendancePunchRecordSaveReqVO attendancePunchRecordSaveReqVO = new AttendancePunchRecordSaveReqVO() .setUserId(dto.getUserId()) .setAttendanceGroupId(pageVO.getActivationGroup().getId()) + .setAttendanceGroupName(pageVO.getActivationGroup().getGroupName()) .setAttendanceGroupShiftId(pageVO.getAttendanceGroupShiftDO().getId()) + .setAttendanceGroupShiftName(pageVO.getAttendanceGroupShiftDO().getName()) .setAttendanceGroupShiftItemId(pageVO.getAttendanceGroupShiftItemId()) .setType(pageVO.getActivationGroup().getType()) .setPunchType(dto.getPunchType()) diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/group/AttendanceGroupServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/group/AttendanceGroupServiceImpl.java index 6ed83338..593bdca9 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/group/AttendanceGroupServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/attendance/group/AttendanceGroupServiceImpl.java @@ -128,7 +128,7 @@ public class AttendanceGroupServiceImpl implements AttendanceGroupService { Map> groupUserMap = attendanceGroupUserDOS.stream().collect(Collectors.groupingBy(AttendanceGroupUserDO::getAttendanceGroupId, Collectors.mapping(AttendanceGroupUserDO::getUserId, Collectors.toList()))); // -- 获取考勤组下考勤规则 - 将将考勤组分组 - 按类型 - LocalDateTime tomorrowLocalDateTime = LocalDateTimeUtil.offset(LocalDateTime.now(), 1, ChronoUnit.DAYS); + LocalDateTime tomorrowLocalDateTime = LocalDateTime.now(); LocalDateTime theDayAfterTomorrowLocalDateTime = LocalDateTimeUtil.offset(tomorrowLocalDateTime, 1, ChronoUnit.DAYS); String time = tomorrowLocalDateTime.format(Constants.REPO_DATE_FORMAT); @@ -166,6 +166,7 @@ public class AttendanceGroupServiceImpl implements AttendanceGroupService { attendancePunchRecordDO.setLevel(attendanceOnTheDayDTO.getLevel()); attendancePunchRecordDO.setStatus(AttendanceOnTheDayDTO.PUNCH_STATUS_UN_PUNCH); attendancePunchRecordDO.setFieldServiceFlag(Constants.FALSE); + attendancePunchRecordDO.setNextDayFlag(Constants.TRUE); attendancePunchRecordDO.setDayTime(time); LocalDateTime shouldPunchTime = LocalDateTime.ofInstant(DateUtils.buildHHmmTime(attendanceOnTheDayDTO.getTime(), (attendanceOnTheDayDTO.getNextDayFlag() == 0 ? tomorrowLocalDateTime : theDayAfterTomorrowLocalDateTime)).toInstant(), ZoneId.systemDefault()); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java index a4aa6666..7580439a 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java @@ -158,9 +158,10 @@ public interface AdminUserService { * 获取部门下人员过滤掉考勤组内有的 * * @param deptIds + * @param groupId * @return */ - List selectByDeptIdsFilterGroupUser(Collection deptIds); + List selectByDeptIdsFilterGroupUser(Collection deptIds, Long groupId); /** * 获得指定部门的用户数组(除去当前登录者用户) @@ -271,4 +272,12 @@ public interface AdminUserService { * @return 用户编号 */ List getUserByBoss(); + + /** + * 根据用户ids搜索用户列表 + * + * @param userIds + * @return + */ + List selectByUserIds(Collection userIds); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java index 1436fd03..18b67c4d 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java @@ -274,11 +274,11 @@ public class AdminUserServiceImpl implements AdminUserService { } @Override - public List selectByDeptIdsFilterGroupUser(Collection deptIds) { + public List selectByDeptIdsFilterGroupUser(Collection deptIds, Long groupId) { if (CollUtil.isEmpty(deptIds)) { return Collections.emptyList(); } - return userMapper.selectByDeptIdsFilterGroupUser(deptIds); + return userMapper.selectByDeptIdsFilterGroupUser(deptIds, groupId); } @Override @@ -562,4 +562,12 @@ public class AdminUserServiceImpl implements AdminUserService { return userMapper.selectUserByBoss(); } + + @Override + public List selectByUserIds(Collection userIds) { + if (CollectionUtil.isEmpty(userIds)) { + return Collections.emptyList(); + } + return userMapper.selectBatchIds(userIds); + } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/user/AdminUserMapper.xml b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/user/AdminUserMapper.xml index 5bdcc476..57d70435 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/user/AdminUserMapper.xml +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/user/AdminUserMapper.xml @@ -49,11 +49,9 @@ and a.status = 0 and a.user_type = 1 and a.dept_id in - - #{deptIds} + + #{deptId} - - and not exists(select id from kq_attendance_group_user where user_id = a.id) - + and not exists(select id from kq_attendance_group_user where user_id = a.id and attendance_group_id != #{groupId}) \ No newline at end of file