From 07d8f0087dffaa79a45b8a7e6afb067278ab9167 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期一, 06 七月 2026 16:45:06 +0800
Subject: [PATCH] fix(attendance): 修复考勤配置查询和排班逻辑问题
---
src/main/resources/mapper/staff/PersonalAttendanceRecordsMapper.xml | 33 +++++++++++++++++++++++++++++++++
1 files changed, 33 insertions(+), 0 deletions(-)
diff --git a/src/main/resources/mapper/staff/PersonalAttendanceRecordsMapper.xml b/src/main/resources/mapper/staff/PersonalAttendanceRecordsMapper.xml
index 0e3c2c6..4a15bbf 100644
--- a/src/main/resources/mapper/staff/PersonalAttendanceRecordsMapper.xml
+++ b/src/main/resources/mapper/staff/PersonalAttendanceRecordsMapper.xml
@@ -39,5 +39,38 @@
and personal_attendance_records.date >= #{params.date}
and personal_attendance_records.date < DATE_ADD(DATE(#{params.date}), INTERVAL 1 DAY)
</if>
+ order by personal_attendance_records.id desc
+ </select>
+
+ <!-- 鏌ヨ鎸囧畾鏃ユ湡鏈夋帓鐝紙闈炶鍋囷級浣嗘病鏈夎�冨嫟璁板綍鐨勫湪鑱屽憳宸ワ紝娌℃帓鐝涓轰紤鎭笉鏍囪缂哄嫟 -->
+ <select id="selectStaffWithoutAttendanceRecordBeforeTime" resultType="com.ruoyi.staff.pojo.StaffOnJob">
+ SELECT soj.*
+ FROM staff_on_job soj
+ WHERE soj.staff_state = 1
+ AND soj.create_time < #{entryDeadline}
+ AND EXISTS (
+ SELECT 1
+ 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
+ FROM personal_attendance_records par
+ WHERE par.staff_on_job_id = soj.id
+ AND par.date = #{date}
+ )
+ </select>
+
+ <!-- 妫�鏌ユ寚瀹氬憳宸ュ湪鎸囧畾鏃ユ湡鏄惁宸插瓨鍦ㄨ�冨嫟璁板綍 -->
+ <select id="existsAttendanceRecord" resultType="boolean">
+ SELECT EXISTS (
+ SELECT 1
+ FROM personal_attendance_records
+ WHERE staff_on_job_id = #{staffOnJobId}
+ AND date = #{date}
+ )
</select>
</mapper>
--
Gitblit v1.9.3