From 1a3f5db043fd381b60a0a5f40687136274a2cbd1 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期五, 27 二月 2026 09:57:41 +0800
Subject: [PATCH] Merge branch 'refs/heads/dev_New' into dev_New_kthg

---
 src/main/resources/mapper/staff/PersonalAttendanceRecordsMapper.xml |   71 ++++++++++++++++++++++++++++++++++-
 1 files changed, 68 insertions(+), 3 deletions(-)

diff --git a/src/main/resources/mapper/staff/PersonalAttendanceRecordsMapper.xml b/src/main/resources/mapper/staff/PersonalAttendanceRecordsMapper.xml
index 13d3513..7dbb388 100644
--- a/src/main/resources/mapper/staff/PersonalAttendanceRecordsMapper.xml
+++ b/src/main/resources/mapper/staff/PersonalAttendanceRecordsMapper.xml
@@ -1,7 +1,72 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.staff.mapper.PersonalAttendanceRecordsMapper">
 
+    <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+    <resultMap id="BaseResultMap" type="com.ruoyi.staff.pojo.PersonalAttendanceRecords">
+        <id column="id" property="id" />
+        <result column="staff_on_job_id" property="staffOnJobId" />
+        <result column="date" property="date" />
+        <result column="work_start_at" property="workStartAt" />
+        <result column="work_end_at" property="workEndAt" />
+        <result column="work_hours" property="workHours" />
+        <result column="status" property="status" />
+        <result column="remark" property="remark" />
+        <result column="tenant_id" property="tenantId" />
+        <result column="create_time" property="createTime" />
+        <result column="update_time" property="updateTime" />
+    </resultMap>
 
+    <select id="listPage" resultType="com.ruoyi.staff.dto.PersonalAttendanceRecordsDto">
+        SELECT
+        personal_attendance_records.*,
+        soj.staff_name as staffName,
+        soj.staff_no as staffNo,
+        sd.dept_name as deptName
+        FROM personal_attendance_records
+        LEFT JOIN
+        staff_on_job soj ON soj.id = personal_attendance_records.staff_on_job_id
+        LEFT JOIN
+        sys_dept sd ON sd.dept_id = soj.sys_dept_id
+        where 1=1
+        <if test="params.staffOnJobId != null and params.staffOnJobId > 0">
+            AND personal_attendance_records.staff_on_job_id = #{params.staffOnJobId}
+        </if>
+        <if test="params.deptId != null and params.deptId > 0">
+            AND sd.dept_id = #{params.deptId}
+        </if>
+        <if test="params.date != null">
+            and personal_attendance_records.date &gt;= #{params.date}
+            and personal_attendance_records.date &lt; DATE_ADD(DATE(#{params.date}), INTERVAL 1 DAY)
+        </if>
+    </select>
 
-</mapper>
\ No newline at end of file
+    <!-- 鏌ヨ鎸囧畾鏃ユ湡娌℃湁鑰冨嫟璁板綍鐨勫湪鑱屽憳宸ワ紙鍦ㄦ寚瀹氭椂闂翠箣鍓嶅叆鑱岀殑锛� -->
+    <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 &lt; #{entryDeadline}
+        AND EXISTS (
+        SELECT 1
+        FROM personal_attendance_location_config palc
+        WHERE palc.sys_dept_id = soj.sys_dept_id
+        )
+        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