src/main/java/com/ruoyi/staff/controller/PersonalAttendanceLocationConfigController.java
@@ -1,5 +1,6 @@ package com.ruoyi.staff.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.OrderItem; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.framework.web.domain.R; @@ -44,7 +45,9 @@ @GetMapping("/listPage") public R listPage(Page page){ page.addOrder(OrderItem.desc("id")); return R.ok(personalAttendanceLocationConfigService.page(page)); return R.ok(personalAttendanceLocationConfigService.page(page, new LambdaQueryWrapper<PersonalAttendanceLocationConfig>() .ne(PersonalAttendanceLocationConfig::getId, 999))); } src/main/java/com/ruoyi/staff/controller/PersonalShiftController.java
@@ -60,7 +60,7 @@ } @Operation(summary = "班次状态修改") @PostMapping("update") @PostMapping("/update") public R performanceShiftUpdate(@RequestBody PersonalShift personalShift) { personalShiftService.performanceShiftUpdate(personalShift); return R.ok(); src/main/java/com/ruoyi/staff/service/impl/PersonalAttendanceRecordsServiceImpl.java
@@ -72,7 +72,8 @@ List<PersonalShift> personalShifts = personalShiftMapper.selectList(Wrappers.<PersonalShift>lambdaQuery() .eq(PersonalShift::getStaffOnJobId, staffOnJob.getId()) .eq(PersonalShift::getWorkTime, currentDate.atStartOfDay()) .isNotNull(PersonalShift::getPersonalAttendanceLocationConfigId)); .isNotNull(PersonalShift::getPersonalAttendanceLocationConfigId) .ne(PersonalShift::getPersonalAttendanceLocationConfigId, 999)); if (CollectionUtil.isEmpty(personalShifts)){ throw new BaseException("当前用户当天没有排班数据"); } @@ -230,12 +231,15 @@ List<PersonalShift> personalShifts = personalShiftMapper.selectList(Wrappers.<PersonalShift>lambdaQuery() .eq(PersonalShift::getStaffOnJobId, staffOnJob.getId()) .eq(PersonalShift::getWorkTime, currentDate.atStartOfDay()) .isNotNull(PersonalShift::getPersonalAttendanceLocationConfigId)); .isNotNull(PersonalShift::getPersonalAttendanceLocationConfigId) .ne(PersonalShift::getPersonalAttendanceLocationConfigId, 999)); if (CollectionUtil.isNotEmpty(personalShifts)){ PersonalAttendanceLocationConfig personalAttendanceLocationConfig = personalAttendanceLocationConfigMapper.selectById(personalShifts.get(0).getPersonalAttendanceLocationConfigId()); resultDto.setStartAt(personalAttendanceLocationConfig.getStartAt()); resultDto.setEndAt(personalAttendanceLocationConfig.getEndAt()); resultDto.setShift(personalAttendanceLocationConfig.getShift()); if (personalAttendanceLocationConfig != null) { resultDto.setStartAt(personalAttendanceLocationConfig.getStartAt()); resultDto.setEndAt(personalAttendanceLocationConfig.getEndAt()); resultDto.setShift(personalAttendanceLocationConfig.getShift()); } } return resultDto; } src/main/resources/mapper/staff/PersonalAttendanceRecordsMapper.xml
@@ -42,7 +42,7 @@ order by personal_attendance_records.id desc </select> <!-- 查询指定日期没有考勤记录的在职员工(在指定时间之前入职的) --> <!-- 查询指定日期有排班(非请假)但没有考勤记录的在职员工,没排班视为休息不标记缺勤 --> <select id="selectStaffWithoutAttendanceRecordBeforeTime" resultType="com.ruoyi.staff.pojo.StaffOnJob"> SELECT soj.* FROM staff_on_job soj @@ -50,8 +50,11 @@ AND soj.create_time < #{entryDeadline} AND EXISTS ( SELECT 1 FROM personal_attendance_location_config palc WHERE palc.sys_dept_id = soj.sys_dept_id FROM personal_shift ps WHERE ps.staff_on_job_id = soj.id AND DATE(ps.work_time) = #{date} AND ps.personal_attendance_location_config_id IS NOT NULL AND ps.personal_attendance_location_config_id != 999 ) AND NOT EXISTS ( SELECT 1